linux-sgx.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] x86/sgx: Allows ioctl PROVISION to execute before CREATE
@ 2021-01-18 13:33 Tianjia Zhang
  2021-01-19 20:05 ` Sean Christopherson
  2021-01-20 14:31 ` Jarkko Sakkinen
  0 siblings, 2 replies; 7+ messages in thread
From: Tianjia Zhang @ 2021-01-18 13:33 UTC (permalink / raw)
  To: Jarkko Sakkinen, Thomas Gleixner, Ingo Molnar, Borislav Petkov,
	H. Peter Anvin, Andrew Morton, Shuah Khan, haitao.huang,
	Kai Huang, x86, linux-sgx, linux-kernel, linux-mm,
	linux-kselftest, Jia Zhang
  Cc: Tianjia Zhang

In function sgx_encl_create(), the logic of directly assigning
value to attributes_mask determines that the call to
SGX_IOC_ENCLAVE_PROVISION must be after the command of
SGX_IOC_ENCLAVE_CREATE. If change this assignment statement to
or operation, the PROVISION command can be executed earlier and
more flexibly.

Reported-by: Jia Zhang <zhang.jia@linux.alibaba.com>
Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
---
 arch/x86/kernel/cpu/sgx/ioctl.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/kernel/cpu/sgx/ioctl.c b/arch/x86/kernel/cpu/sgx/ioctl.c
index f45957c05f69..0ca3fc238bc2 100644
--- a/arch/x86/kernel/cpu/sgx/ioctl.c
+++ b/arch/x86/kernel/cpu/sgx/ioctl.c
@@ -108,7 +108,7 @@ static int sgx_encl_create(struct sgx_encl *encl, struct sgx_secs *secs)
 	encl->base = secs->base;
 	encl->size = secs->size;
 	encl->attributes = secs->attributes;
-	encl->attributes_mask = SGX_ATTR_DEBUG | SGX_ATTR_MODE64BIT | SGX_ATTR_KSS;
+	encl->attributes_mask |= SGX_ATTR_DEBUG | SGX_ATTR_MODE64BIT | SGX_ATTR_KSS;
 
 	/* Set only after completion, as encl->lock has not been taken. */
 	set_bit(SGX_ENCL_CREATED, &encl->flags);
-- 
2.19.1.3.ge56e4f7


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH] x86/sgx: Allows ioctl PROVISION to execute before CREATE
  2021-01-18 13:33 [PATCH] x86/sgx: Allows ioctl PROVISION to execute before CREATE Tianjia Zhang
@ 2021-01-19 20:05 ` Sean Christopherson
  2021-01-20  3:57   ` Tianjia Zhang
  2021-01-20 14:31 ` Jarkko Sakkinen
  1 sibling, 1 reply; 7+ messages in thread
From: Sean Christopherson @ 2021-01-19 20:05 UTC (permalink / raw)
  To: Tianjia Zhang
  Cc: Jarkko Sakkinen, Thomas Gleixner, Ingo Molnar, Borislav Petkov,
	H. Peter Anvin, Andrew Morton, Shuah Khan, haitao.huang,
	Kai Huang, x86, linux-sgx, linux-kernel, linux-mm,
	linux-kselftest, Jia Zhang

On Mon, Jan 18, 2021, Tianjia Zhang wrote:
> In function sgx_encl_create(), the logic of directly assigning
> value to attributes_mask determines that the call to
> SGX_IOC_ENCLAVE_PROVISION must be after the command of
> SGX_IOC_ENCLAVE_CREATE. If change this assignment statement to
> or operation, the PROVISION command can be executed earlier and
> more flexibly.
> 
> Reported-by: Jia Zhang <zhang.jia@linux.alibaba.com>
> Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
> ---
>  arch/x86/kernel/cpu/sgx/ioctl.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/x86/kernel/cpu/sgx/ioctl.c b/arch/x86/kernel/cpu/sgx/ioctl.c
> index f45957c05f69..0ca3fc238bc2 100644
> --- a/arch/x86/kernel/cpu/sgx/ioctl.c
> +++ b/arch/x86/kernel/cpu/sgx/ioctl.c
> @@ -108,7 +108,7 @@ static int sgx_encl_create(struct sgx_encl *encl, struct sgx_secs *secs)
>  	encl->base = secs->base;
>  	encl->size = secs->size;
>  	encl->attributes = secs->attributes;
> -	encl->attributes_mask = SGX_ATTR_DEBUG | SGX_ATTR_MODE64BIT | SGX_ATTR_KSS;
> +	encl->attributes_mask |= SGX_ATTR_DEBUG | SGX_ATTR_MODE64BIT | SGX_ATTR_KSS;

Alternatively, move the existing code to sgx_open()?  Initializing the field
when the encl object is allocated feels more correct.

>  	/* Set only after completion, as encl->lock has not been taken. */
>  	set_bit(SGX_ENCL_CREATED, &encl->flags);
> -- 
> 2.19.1.3.ge56e4f7
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] x86/sgx: Allows ioctl PROVISION to execute before CREATE
  2021-01-19 20:05 ` Sean Christopherson
@ 2021-01-20  3:57   ` Tianjia Zhang
  2021-01-20 22:34     ` Jarkko Sakkinen
  0 siblings, 1 reply; 7+ messages in thread
From: Tianjia Zhang @ 2021-01-20  3:57 UTC (permalink / raw)
  To: Sean Christopherson
  Cc: Jarkko Sakkinen, Thomas Gleixner, Ingo Molnar, Borislav Petkov,
	H. Peter Anvin, Andrew Morton, Shuah Khan, haitao.huang,
	Kai Huang, x86, linux-sgx, linux-kernel, linux-mm,
	linux-kselftest, Jia Zhang

Hi,

On 1/20/21 4:05 AM, Sean Christopherson wrote:
> On Mon, Jan 18, 2021, Tianjia Zhang wrote:
>> In function sgx_encl_create(), the logic of directly assigning
>> value to attributes_mask determines that the call to
>> SGX_IOC_ENCLAVE_PROVISION must be after the command of
>> SGX_IOC_ENCLAVE_CREATE. If change this assignment statement to
>> or operation, the PROVISION command can be executed earlier and
>> more flexibly.
>>
>> Reported-by: Jia Zhang <zhang.jia@linux.alibaba.com>
>> Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
>> ---
>>   arch/x86/kernel/cpu/sgx/ioctl.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/arch/x86/kernel/cpu/sgx/ioctl.c b/arch/x86/kernel/cpu/sgx/ioctl.c
>> index f45957c05f69..0ca3fc238bc2 100644
>> --- a/arch/x86/kernel/cpu/sgx/ioctl.c
>> +++ b/arch/x86/kernel/cpu/sgx/ioctl.c
>> @@ -108,7 +108,7 @@ static int sgx_encl_create(struct sgx_encl *encl, struct sgx_secs *secs)
>>   	encl->base = secs->base;
>>   	encl->size = secs->size;
>>   	encl->attributes = secs->attributes;
>> -	encl->attributes_mask = SGX_ATTR_DEBUG | SGX_ATTR_MODE64BIT | SGX_ATTR_KSS;
>> +	encl->attributes_mask |= SGX_ATTR_DEBUG | SGX_ATTR_MODE64BIT | SGX_ATTR_KSS;
> 
> Alternatively, move the existing code to sgx_open()?  Initializing the field
> when the encl object is allocated feels more correct.
> 


This seems like a good idea. Thanks for your suggestion. I have sent v2 
patch, include the next two patches.

Best regards,
Tianjia

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] x86/sgx: Allows ioctl PROVISION to execute before CREATE
  2021-01-18 13:33 [PATCH] x86/sgx: Allows ioctl PROVISION to execute before CREATE Tianjia Zhang
  2021-01-19 20:05 ` Sean Christopherson
@ 2021-01-20 14:31 ` Jarkko Sakkinen
  1 sibling, 0 replies; 7+ messages in thread
From: Jarkko Sakkinen @ 2021-01-20 14:31 UTC (permalink / raw)
  To: Tianjia Zhang
  Cc: Thomas Gleixner, Ingo Molnar, Borislav Petkov, H. Peter Anvin,
	Andrew Morton, Shuah Khan, haitao.huang, Kai Huang, x86,
	linux-sgx, linux-kernel, linux-mm, linux-kselftest, Jia Zhang

On Mon, Jan 18, 2021 at 09:33:35PM +0800, Tianjia Zhang wrote:
> In function sgx_encl_create(), the logic of directly assigning
> value to attributes_mask determines that the call to
> SGX_IOC_ENCLAVE_PROVISION must be after the command of
> SGX_IOC_ENCLAVE_CREATE. If change this assignment statement to
> or operation, the PROVISION command can be executed earlier and
> more flexibly.
> 
> Reported-by: Jia Zhang <zhang.jia@linux.alibaba.com>
> Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
> ---

Why?

>  arch/x86/kernel/cpu/sgx/ioctl.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/x86/kernel/cpu/sgx/ioctl.c b/arch/x86/kernel/cpu/sgx/ioctl.c
> index f45957c05f69..0ca3fc238bc2 100644
> --- a/arch/x86/kernel/cpu/sgx/ioctl.c
> +++ b/arch/x86/kernel/cpu/sgx/ioctl.c
> @@ -108,7 +108,7 @@ static int sgx_encl_create(struct sgx_encl *encl, struct sgx_secs *secs)
>  	encl->base = secs->base;
>  	encl->size = secs->size;
>  	encl->attributes = secs->attributes;
> -	encl->attributes_mask = SGX_ATTR_DEBUG | SGX_ATTR_MODE64BIT | SGX_ATTR_KSS;
> +	encl->attributes_mask |= SGX_ATTR_DEBUG | SGX_ATTR_MODE64BIT | SGX_ATTR_KSS;
>  
>  	/* Set only after completion, as encl->lock has not been taken. */
>  	set_bit(SGX_ENCL_CREATED, &encl->flags);
> -- 
> 2.19.1.3.ge56e4f7
> 
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] x86/sgx: Allows ioctl PROVISION to execute before CREATE
  2021-01-20  3:57   ` Tianjia Zhang
@ 2021-01-20 22:34     ` Jarkko Sakkinen
  2021-01-20 22:37       ` Jarkko Sakkinen
  0 siblings, 1 reply; 7+ messages in thread
From: Jarkko Sakkinen @ 2021-01-20 22:34 UTC (permalink / raw)
  To: Tianjia Zhang
  Cc: Sean Christopherson, Thomas Gleixner, Ingo Molnar,
	Borislav Petkov, H. Peter Anvin, Andrew Morton, Shuah Khan,
	haitao.huang, Kai Huang, x86, linux-sgx, linux-kernel, linux-mm,
	linux-kselftest, Jia Zhang

On Wed, Jan 20, 2021 at 11:57:18AM +0800, Tianjia Zhang wrote:
> Hi,
> 
> On 1/20/21 4:05 AM, Sean Christopherson wrote:
> > On Mon, Jan 18, 2021, Tianjia Zhang wrote:
> > > In function sgx_encl_create(), the logic of directly assigning
> > > value to attributes_mask determines that the call to
> > > SGX_IOC_ENCLAVE_PROVISION must be after the command of
> > > SGX_IOC_ENCLAVE_CREATE. If change this assignment statement to
> > > or operation, the PROVISION command can be executed earlier and
> > > more flexibly.
> > > 
> > > Reported-by: Jia Zhang <zhang.jia@linux.alibaba.com>
> > > Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
> > > ---
> > >   arch/x86/kernel/cpu/sgx/ioctl.c | 2 +-
> > >   1 file changed, 1 insertion(+), 1 deletion(-)
> > > 
> > > diff --git a/arch/x86/kernel/cpu/sgx/ioctl.c b/arch/x86/kernel/cpu/sgx/ioctl.c
> > > index f45957c05f69..0ca3fc238bc2 100644
> > > --- a/arch/x86/kernel/cpu/sgx/ioctl.c
> > > +++ b/arch/x86/kernel/cpu/sgx/ioctl.c
> > > @@ -108,7 +108,7 @@ static int sgx_encl_create(struct sgx_encl *encl, struct sgx_secs *secs)
> > >   	encl->base = secs->base;
> > >   	encl->size = secs->size;
> > >   	encl->attributes = secs->attributes;
> > > -	encl->attributes_mask = SGX_ATTR_DEBUG | SGX_ATTR_MODE64BIT | SGX_ATTR_KSS;
> > > +	encl->attributes_mask |= SGX_ATTR_DEBUG | SGX_ATTR_MODE64BIT | SGX_ATTR_KSS;
> > 
> > Alternatively, move the existing code to sgx_open()?  Initializing the field
> > when the encl object is allocated feels more correct.
> > 
> 
> 
> This seems like a good idea. Thanks for your suggestion. I have sent v2
> patch, include the next two patches.

Did you ask from Sean about suggested-by's? Now it looks like
that doing these patches were originally proposed by Sean.

/Jarkko

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] x86/sgx: Allows ioctl PROVISION to execute before CREATE
  2021-01-20 22:34     ` Jarkko Sakkinen
@ 2021-01-20 22:37       ` Jarkko Sakkinen
  2021-01-24  6:36         ` Tianjia Zhang
  0 siblings, 1 reply; 7+ messages in thread
From: Jarkko Sakkinen @ 2021-01-20 22:37 UTC (permalink / raw)
  To: Tianjia Zhang
  Cc: Sean Christopherson, Thomas Gleixner, Ingo Molnar,
	Borislav Petkov, H. Peter Anvin, Andrew Morton, Shuah Khan,
	haitao.huang, Kai Huang, x86, linux-sgx, linux-kernel, linux-mm,
	linux-kselftest, Jia Zhang

On Thu, Jan 21, 2021 at 12:34:49AM +0200, Jarkko Sakkinen wrote:
> On Wed, Jan 20, 2021 at 11:57:18AM +0800, Tianjia Zhang wrote:
> > Hi,
> > 
> > On 1/20/21 4:05 AM, Sean Christopherson wrote:
> > > On Mon, Jan 18, 2021, Tianjia Zhang wrote:
> > > > In function sgx_encl_create(), the logic of directly assigning
> > > > value to attributes_mask determines that the call to
> > > > SGX_IOC_ENCLAVE_PROVISION must be after the command of
> > > > SGX_IOC_ENCLAVE_CREATE. If change this assignment statement to
> > > > or operation, the PROVISION command can be executed earlier and
> > > > more flexibly.
> > > > 
> > > > Reported-by: Jia Zhang <zhang.jia@linux.alibaba.com>
> > > > Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
> > > > ---
> > > >   arch/x86/kernel/cpu/sgx/ioctl.c | 2 +-
> > > >   1 file changed, 1 insertion(+), 1 deletion(-)
> > > > 
> > > > diff --git a/arch/x86/kernel/cpu/sgx/ioctl.c b/arch/x86/kernel/cpu/sgx/ioctl.c
> > > > index f45957c05f69..0ca3fc238bc2 100644
> > > > --- a/arch/x86/kernel/cpu/sgx/ioctl.c
> > > > +++ b/arch/x86/kernel/cpu/sgx/ioctl.c
> > > > @@ -108,7 +108,7 @@ static int sgx_encl_create(struct sgx_encl *encl, struct sgx_secs *secs)
> > > >   	encl->base = secs->base;
> > > >   	encl->size = secs->size;
> > > >   	encl->attributes = secs->attributes;
> > > > -	encl->attributes_mask = SGX_ATTR_DEBUG | SGX_ATTR_MODE64BIT | SGX_ATTR_KSS;
> > > > +	encl->attributes_mask |= SGX_ATTR_DEBUG | SGX_ATTR_MODE64BIT | SGX_ATTR_KSS;
> > > 
> > > Alternatively, move the existing code to sgx_open()?  Initializing the field
> > > when the encl object is allocated feels more correct.
> > > 
> > 
> > 
> > This seems like a good idea. Thanks for your suggestion. I have sent v2
> > patch, include the next two patches.
> 
> Did you ask from Sean about suggested-by's? Now it looks like
> that doing these patches were originally proposed by Sean.

Please do not add tags from people *unauthentically*. I do not
see anything from Sean to any of the patches that would suggest
adding those tags. You are basically just stamping that to all
patches, which he has given a code review. Can you stop doing
this?

/Jarkko

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] x86/sgx: Allows ioctl PROVISION to execute before CREATE
  2021-01-20 22:37       ` Jarkko Sakkinen
@ 2021-01-24  6:36         ` Tianjia Zhang
  0 siblings, 0 replies; 7+ messages in thread
From: Tianjia Zhang @ 2021-01-24  6:36 UTC (permalink / raw)
  To: Jarkko Sakkinen
  Cc: Sean Christopherson, Thomas Gleixner, Ingo Molnar,
	Borislav Petkov, H. Peter Anvin, Andrew Morton, Shuah Khan,
	haitao.huang, Kai Huang, x86, linux-sgx, linux-kernel, linux-mm,
	linux-kselftest, Jia Zhang



On 1/21/21 6:37 AM, Jarkko Sakkinen wrote:
> On Thu, Jan 21, 2021 at 12:34:49AM +0200, Jarkko Sakkinen wrote:
>> On Wed, Jan 20, 2021 at 11:57:18AM +0800, Tianjia Zhang wrote:
>>> Hi,
>>>
>>> On 1/20/21 4:05 AM, Sean Christopherson wrote:
>>>> On Mon, Jan 18, 2021, Tianjia Zhang wrote:
>>>>> In function sgx_encl_create(), the logic of directly assigning
>>>>> value to attributes_mask determines that the call to
>>>>> SGX_IOC_ENCLAVE_PROVISION must be after the command of
>>>>> SGX_IOC_ENCLAVE_CREATE. If change this assignment statement to
>>>>> or operation, the PROVISION command can be executed earlier and
>>>>> more flexibly.
>>>>>
>>>>> Reported-by: Jia Zhang <zhang.jia@linux.alibaba.com>
>>>>> Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
>>>>> ---
>>>>>    arch/x86/kernel/cpu/sgx/ioctl.c | 2 +-
>>>>>    1 file changed, 1 insertion(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/arch/x86/kernel/cpu/sgx/ioctl.c b/arch/x86/kernel/cpu/sgx/ioctl.c
>>>>> index f45957c05f69..0ca3fc238bc2 100644
>>>>> --- a/arch/x86/kernel/cpu/sgx/ioctl.c
>>>>> +++ b/arch/x86/kernel/cpu/sgx/ioctl.c
>>>>> @@ -108,7 +108,7 @@ static int sgx_encl_create(struct sgx_encl *encl, struct sgx_secs *secs)
>>>>>    	encl->base = secs->base;
>>>>>    	encl->size = secs->size;
>>>>>    	encl->attributes = secs->attributes;
>>>>> -	encl->attributes_mask = SGX_ATTR_DEBUG | SGX_ATTR_MODE64BIT | SGX_ATTR_KSS;
>>>>> +	encl->attributes_mask |= SGX_ATTR_DEBUG | SGX_ATTR_MODE64BIT | SGX_ATTR_KSS;
>>>>
>>>> Alternatively, move the existing code to sgx_open()?  Initializing the field
>>>> when the encl object is allocated feels more correct.
>>>>
>>>
>>>
>>> This seems like a good idea. Thanks for your suggestion. I have sent v2
>>> patch, include the next two patches.
>>
>> Did you ask from Sean about suggested-by's? Now it looks like
>> that doing these patches were originally proposed by Sean.
> 
> Please do not add tags from people *unauthentically*. I do not
> see anything from Sean to any of the patches that would suggest
> adding those tags. You are basically just stamping that to all
> patches, which he has given a code review. Can you stop doing
> this?
> 
> /Jarkko
> 

I am very sorry for the trouble caused to you, I have made improvements 
in the new patch, thanks for your suggestions.

Best regards,
Tianjia

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2021-01-24  6:37 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-18 13:33 [PATCH] x86/sgx: Allows ioctl PROVISION to execute before CREATE Tianjia Zhang
2021-01-19 20:05 ` Sean Christopherson
2021-01-20  3:57   ` Tianjia Zhang
2021-01-20 22:34     ` Jarkko Sakkinen
2021-01-20 22:37       ` Jarkko Sakkinen
2021-01-24  6:36         ` Tianjia Zhang
2021-01-20 14:31 ` Jarkko Sakkinen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).