x86/amd: only call setup_force_cpu_cap for boot CPU
authorRoss Lagerwall <ross.lagerwall@citrix.com>
Mon, 15 Aug 2022 13:35:10 +0000 (15:35 +0200)
committerJan Beulich <jbeulich@suse.com>
Mon, 15 Aug 2022 13:35:10 +0000 (15:35 +0200)
This should only be called for the boot CPU to avoid calling _init code
after it has been unloaded.

Fixes: 062868a5a8b4 ("x86/amd: Work around CLFLUSH ordering on older parts")
Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
master commit: 31b41ce858c8bd5159212d40969f8e0b7124bbf0
master date: 2022-08-11 17:44:26 +0200

xen/arch/x86/cpu/amd.c

index 37ac84ddd74dee0900430bcdaad13207ffd3ae12..9635eee6194e1f80b7a7271b5698f2cd9ee84e3b 100644 (file)
@@ -845,7 +845,7 @@ static void init_amd(struct cpuinfo_x86 *c)
         * everything, including reads and writes to address, and
         * LFENCE/SFENCE instructions.
         */
-       if (!cpu_has_clflushopt)
+       if (c == &boot_cpu_data && !cpu_has_clflushopt)
                setup_force_cpu_cap(X86_BUG_CLFLUSH_MFENCE);
 
        switch(c->x86)