Re: [PATCH] x86/sgx: fix uninitialized 'nid' variable

From: Jarkko Sakkinen
Date: Fri Mar 19 2021 - 01:39:49 EST


On Thu, Mar 18, 2021 at 02:49:33PM -0700, Dave Hansen wrote:
> The NUMA fallback in __sgx_alloc_epc_page() recently grew an
> additional 'nid' variable to prevent extra trips through the
> fallback loop in case where the thread is migrated around.
>
> But, the new copy is not properly initialized. Fix it.
>
> This was found by some fancy clang that 0day runs. My gcc
> does not detect it.
>
> Fixes: 5b8719504e3a ("x86/sgx: Add a basic NUMA allocation scheme to sgx_alloc_epc_page()")
> Reported-by: kernel test robot <lkp@xxxxxxxxx>
> Signed-off-by: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
> Cc: Jarkko Sakkinen <jarkko@xxxxxxxxxx>
> Cc: Borislav Petkov <bp@xxxxxxxxx>
> Cc: x86@xxxxxxxxxx
> Cc: linux-sgx@xxxxxxxxxxxxxxx


Reviewed-by: Jarkko Sakkinen <jarkko@xxxxxxxxxx>

> ---
> arch/x86/kernel/cpu/sgx/main.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/x86/kernel/cpu/sgx/main.c b/arch/x86/kernel/cpu/sgx/main.c
> index 2a0031e4a4dc..1b4d8a0e0915 100644
> --- a/arch/x86/kernel/cpu/sgx/main.c
> +++ b/arch/x86/kernel/cpu/sgx/main.c
> @@ -489,7 +489,7 @@ struct sgx_epc_page *__sgx_alloc_epc_page(void)
> {
> struct sgx_epc_page *page;
> int nid_of_current = numa_node_id();
> - int nid;
> + int nid = nid_of_current;
>
> if (node_isset(nid_of_current, sgx_numa_mask)) {
> page = __sgx_alloc_epc_page_from_node(nid_of_current);
> --
> 2.19.1
>
>

/Jarkko