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....@linux.alibaba.com>
Signed-off-by: Tianjia Zhang <tianjia.zh...@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

Reply via email to