diff mbox series

x86/sgx: fix the return type of sgx_init

Message ID 20210113232311.277302-1-samitolvanen@google.com (mailing list archive)
State New, archived
Headers show
Series x86/sgx: fix the return type of sgx_init | expand

Commit Message

Sami Tolvanen Jan. 13, 2021, 11:23 p.m. UTC
device_initcall() expects a function of type initcall_t, which returns
an integer. Change the signature of sgx_init() to match.

Fixes: e7e0545299d8c ("x86/sgx: Initialize metadata for Enclave Page Cache (EPC) sections")
Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
---
 arch/x86/kernel/cpu/sgx/main.c | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)


base-commit: 65f0d2414b7079556fbbcc070b3d1c9f9587606d

Comments

Darren Kenny Jan. 14, 2021, 12:12 p.m. UTC | #1
On Wednesday, 2021-01-13 at 15:23:11 -08, Sami Tolvanen wrote:
> device_initcall() expects a function of type initcall_t, which returns
> an integer. Change the signature of sgx_init() to match.
>
> Fixes: e7e0545299d8c ("x86/sgx: Initialize metadata for Enclave Page Cache (EPC) sections")
> Signed-off-by: Sami Tolvanen <samitolvanen@google.com>

Makes sense.

Reviewed-by: Darren Kenny <darren.kenny@oracle.com>

> ---
>  arch/x86/kernel/cpu/sgx/main.c | 14 +++++++++-----
>  1 file changed, 9 insertions(+), 5 deletions(-)
>
> diff --git a/arch/x86/kernel/cpu/sgx/main.c b/arch/x86/kernel/cpu/sgx/main.c
> index c519fc5f6948..8df81a3ed945 100644
> --- a/arch/x86/kernel/cpu/sgx/main.c
> +++ b/arch/x86/kernel/cpu/sgx/main.c
> @@ -700,25 +700,27 @@ static bool __init sgx_page_cache_init(void)
>  	return true;
>  }
>  
> -static void __init sgx_init(void)
> +static int __init sgx_init(void)
>  {
>  	int ret;
>  	int i;
>  
>  	if (!cpu_feature_enabled(X86_FEATURE_SGX))
> -		return;
> +		return -ENODEV;
>  
>  	if (!sgx_page_cache_init())
> -		return;
> +		return -ENOMEM;
>  
> -	if (!sgx_page_reclaimer_init())
> +	if (!sgx_page_reclaimer_init()) {
> +		ret = -ENOMEM;
>  		goto err_page_cache;
> +	}
>  
>  	ret = sgx_drv_init();
>  	if (ret)
>  		goto err_kthread;
>  
> -	return;
> +	return 0;
>  
>  err_kthread:
>  	kthread_stop(ksgxd_tsk);
> @@ -728,6 +730,8 @@ static void __init sgx_init(void)
>  		vfree(sgx_epc_sections[i].pages);
>  		memunmap(sgx_epc_sections[i].virt_addr);
>  	}
> +
> +	return ret;
>  }
>  
>  device_initcall(sgx_init);
>
> base-commit: 65f0d2414b7079556fbbcc070b3d1c9f9587606d
> -- 
> 2.30.0.284.gd98b1dd5eaa7-goog
Jarkko Sakkinen Jan. 15, 2021, 10:08 a.m. UTC | #2
On Wed, Jan 13, 2021 at 03:23:11PM -0800, Sami Tolvanen wrote:
> device_initcall() expects a function of type initcall_t, which returns
> an integer. Change the signature of sgx_init() to match.
> 
> Fixes: e7e0545299d8c ("x86/sgx: Initialize metadata for Enclave Page Cache (EPC) sections")
> Signed-off-by: Sami Tolvanen <samitolvanen@google.com>

Thank you.

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

I applied this to the master and next of

git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-sgx.git

Including to the v5.12 PR, actually is the first commit included to that.
That reminds that I should get the next branch mirrored to linux-next.

Stephen, can you start picking the next branch?

/Jarkko
Jarkko Sakkinen Jan. 15, 2021, 10:08 a.m. UTC | #3
On Thu, Jan 14, 2021 at 12:12:12PM +0000, Darren Kenny wrote:
> On Wednesday, 2021-01-13 at 15:23:11 -08, Sami Tolvanen wrote:
> > device_initcall() expects a function of type initcall_t, which returns
> > an integer. Change the signature of sgx_init() to match.
> >
> > Fixes: e7e0545299d8c ("x86/sgx: Initialize metadata for Enclave Page Cache (EPC) sections")
> > Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
> 
> Makes sense.
> 
> Reviewed-by: Darren Kenny <darren.kenny@oracle.com>

I appended this. Thank you.

/Jarkko
diff mbox series

Patch

diff --git a/arch/x86/kernel/cpu/sgx/main.c b/arch/x86/kernel/cpu/sgx/main.c
index c519fc5f6948..8df81a3ed945 100644
--- a/arch/x86/kernel/cpu/sgx/main.c
+++ b/arch/x86/kernel/cpu/sgx/main.c
@@ -700,25 +700,27 @@  static bool __init sgx_page_cache_init(void)
 	return true;
 }
 
-static void __init sgx_init(void)
+static int __init sgx_init(void)
 {
 	int ret;
 	int i;
 
 	if (!cpu_feature_enabled(X86_FEATURE_SGX))
-		return;
+		return -ENODEV;
 
 	if (!sgx_page_cache_init())
-		return;
+		return -ENOMEM;
 
-	if (!sgx_page_reclaimer_init())
+	if (!sgx_page_reclaimer_init()) {
+		ret = -ENOMEM;
 		goto err_page_cache;
+	}
 
 	ret = sgx_drv_init();
 	if (ret)
 		goto err_kthread;
 
-	return;
+	return 0;
 
 err_kthread:
 	kthread_stop(ksgxd_tsk);
@@ -728,6 +730,8 @@  static void __init sgx_init(void)
 		vfree(sgx_epc_sections[i].pages);
 		memunmap(sgx_epc_sections[i].virt_addr);
 	}
+
+	return ret;
 }
 
 device_initcall(sgx_init);