diff mbox series

[v5,3/3] x86/sgx: Remove redundant if conditions in sgx_encl_create

Message ID 20210216033133.79543-4-tianjia.zhang@linux.alibaba.com
State New
Headers show
Series Some optimizations related to sgx | expand

Commit Message

tianjia.zhang Feb. 16, 2021, 3:31 a.m. UTC
In this scenario, there is no case where va_page is NULL, and
the error has been checked. The if-condition statement here is
redundant, so remove the condition detection.

Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
Acked-by: Jarkko Sakkinen <jarkko@kernel.org>
---
 arch/x86/kernel/cpu/sgx/ioctl.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

Comments

tianjia.zhang Feb. 24, 2021, 9:31 a.m. UTC | #1
On 2/16/21 4:29 PM, Jarkko Sakkinen wrote:
> On Tue, Feb 16, 2021 at 11:31:33AM +0800, Tianjia Zhang wrote:

>> In this scenario, there is no case where va_page is NULL, and

>> the error has been checked. The if-condition statement here is

>> redundant, so remove the condition detection.

>>

>> Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>

>> Acked-by: Jarkko Sakkinen <jarkko@kernel.org>

>> ---

>>   arch/x86/kernel/cpu/sgx/ioctl.c | 7 ++++---

>>   1 file changed, 4 insertions(+), 3 deletions(-)

>>

>> diff --git a/arch/x86/kernel/cpu/sgx/ioctl.c b/arch/x86/kernel/cpu/sgx/ioctl.c

>> index 1c6ecf9fbeff..719c21cca569 100644

>> --- a/arch/x86/kernel/cpu/sgx/ioctl.c

>> +++ b/arch/x86/kernel/cpu/sgx/ioctl.c

>> @@ -66,9 +66,10 @@ static int sgx_encl_create(struct sgx_encl *encl, struct sgx_secs *secs)

>>   	va_page = sgx_encl_grow(encl);

>>   	if (IS_ERR(va_page))

>>   		return PTR_ERR(va_page);

>> -	else if (va_page)

>> -		list_add(&va_page->list, &encl->va_pages);

>> -	/* else the tail page of the VA page list had free slots. */

>> +	if (!va_page)

>> +		return -EIO;

> 

> Why this check?

> 


The value of va_page may be a negative error value, it may be NULL, or 
it may be a valid pointer, so check this return value.

Tianjia

>> +

>> +	list_add(&va_page->list, &encl->va_pages);

>>   

>>   	/* The extra page goes to SECS. */

>>   	encl_size = secs->size + PAGE_SIZE;

>> -- 

>> 2.19.1.3.ge56e4f7

>>

>>

> 

> /Jarkko

>
diff mbox series

Patch

diff --git a/arch/x86/kernel/cpu/sgx/ioctl.c b/arch/x86/kernel/cpu/sgx/ioctl.c
index 1c6ecf9fbeff..719c21cca569 100644
--- a/arch/x86/kernel/cpu/sgx/ioctl.c
+++ b/arch/x86/kernel/cpu/sgx/ioctl.c
@@ -66,9 +66,10 @@  static int sgx_encl_create(struct sgx_encl *encl, struct sgx_secs *secs)
 	va_page = sgx_encl_grow(encl);
 	if (IS_ERR(va_page))
 		return PTR_ERR(va_page);
-	else if (va_page)
-		list_add(&va_page->list, &encl->va_pages);
-	/* else the tail page of the VA page list had free slots. */
+	if (!va_page)
+		return -EIO;
+
+	list_add(&va_page->list, &encl->va_pages);
 
 	/* The extra page goes to SECS. */
 	encl_size = secs->size + PAGE_SIZE;