x86, microcode: Fix accessing dis_ucode_ldr on 32-bit
authorBorislav Petkov <bp@suse.de>
Wed, 5 Nov 2014 16:28:06 +0000 (17:28 +0100)
committerBorislav Petkov <bp@suse.de>
Wed, 5 Nov 2014 16:28:06 +0000 (17:28 +0100)
We should be accessing it through a pointer, like on the BSP.

Tested-by: Richard Hendershot <rshendershot@mchsi.com>
Fixes: 65cef1311d5d ("x86, microcode: Add a disable chicken bit")
Cc: <stable@vger.kernel.org> # v3.15+
Signed-off-by: Borislav Petkov <bp@suse.de>
arch/x86/kernel/cpu/microcode/core_early.c

index 5f28a64e71ea9e834bb835ed5fe4d8e7adaf472f..2c017f242a78144ba18499f52aa5ca0c069aa880 100644 (file)
@@ -124,7 +124,7 @@ void __init load_ucode_bsp(void)
 static bool check_loader_disabled_ap(void)
 {
 #ifdef CONFIG_X86_32
-       return __pa_nodebug(dis_ucode_ldr);
+       return *((bool *)__pa_nodebug(&dis_ucode_ldr));
 #else
        return dis_ucode_ldr;
 #endif