-
- Downloads
x86/microcode/AMD: Split load_microcode_amd()
commit 1d81d85d upstream This function should've been split a long time ago because it is used in two paths: 1) On the late loading path, when the microcode is loaded through the request_firmware interface 2) In the save_microcode_in_initrd() path which collects all the microcode patches which are relevant for the current system before the initrd with the microcode container has been jettisoned. In that path, it is not really necessary to iterate over the nodes on a system and match a patch however it didn't cause any trouble so it was left for a later cleanup However, that later cleanup was expedited by the fact that Jens was enabling "Use L3 as a NUMA node" in the BIOS setting in his machine and so this causes the NUMA CPU masks used in cpumask_of_node() to be generated *after* 2) above happened on the first node. Which means, all those masks were funky, wrong, uninitialized and whatnot, leading to explosions when dereffing c->microcode in load_microcode_amd(). So split that function and do only the necessary work needed at each stage. Fixes: 94838d23 ("x86/microcode/AMD: Use the family,model,stepping encoded in the patch ID") Reported-by:Jens Axboe <axboe@kernel.dk> Signed-off-by:
Borislav Petkov (AMD) <bp@alien8.de> Tested-by:
Jens Axboe <axboe@kernel.dk> Link: https://lore.kernel.org/r/91194406-3fdf-4e38-9838-d334af538f74@kernel.dk Signed-off-by:
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Please register or sign in to comment