On 01.06.2023 16:38, Andrew Cooper wrote:
> If for any reason early_microcode_init() concludes that no microcode loading
> is available, early_update_cache() will fall over a NULL function pointer:
> 
>   (XEN) Xen call trace:
>   (XEN)    [<ffff82d04037372e>] R show_code+0x91/0x18f
>   (XEN)    [<ffff82d040373a49>] F show_execution_state+0x2d/0x1fc
>   (XEN)    [<ffff82d040374210>] F fatal_trap+0x87/0x19a
>   (XEN)    [<ffff82d040647f2c>] F init_idt_traps+0/0x1bd
>   (XEN)    [<ffff82d04063854f>] F early_page_fault+0x8f/0x94
>   (XEN)    [<0000000000000000>] F 0000000000000000
>   (XEN)    [<ffff82d040628c46>] F 
> arch/x86/cpu/microcode/core.c#early_update_cache+0x11/0x74
>   (XEN)    [<ffff82d040628e5c>] F microcode_init_cache+0x5a/0x5c
>   (XEN)    [<ffff82d04064388f>] F __start_xen+0x1e11/0x27ee
>   (XEN)    [<ffff82d040206184>] F __high_start+0x94/0xa0
> 
> which is actually parse_blob()'s use of ucode_ops.collect_cpu_info.
> 
> Skip trying to cache anything if microcode loading is unavailable.
> 
> Fixes: dc380df12acf ("x86/ucode: load microcode earlier on boot CPU")
> Signed-off-by: Andrew Cooper <andrew.coop...@citrix.com>

Reviewed-by: Jan Beulich <jbeul...@suse.com>



Reply via email to