]> xenbits.xensource.com Git - people/liuw/xen.git/commitdiff
x86/AMD: unbreak CPU hotplug on AMD systems without RstrFpErrPtrs
authorIgor Druzhinin <igor.druzhinin@citrix.com>
Tue, 10 Dec 2019 10:07:22 +0000 (11:07 +0100)
committerJan Beulich <jbeulich@suse.com>
Tue, 10 Dec 2019 10:07:22 +0000 (11:07 +0100)
If the feature is not present Xen will try to force X86_BUG_FPU_PTRS
feature at CPU identification time. This is especially noticeable in
PV-shim that usually hotplugs its vCPUs. We either need to restrict this
action for boot CPU only or allow secondary CPUs to modify
forced CPU capabilities at runtime. Choose the former since modifying
forced capabilities out of boot path leaves the system in potentially
inconsistent state.

Signed-off-by: Igor Druzhinin <igor.druzhinin@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
xen/arch/x86/cpu/amd.c

index fec2830c6ae5e49674ce14b160e6bbaa80fdee13..8b5f0f2e4c8d12876e97529ee2f9ff3c430cfc54 100644 (file)
@@ -583,7 +583,7 @@ static void init_amd(struct cpuinfo_x86 *c)
         * Older AMD CPUs don't save/load FOP/FIP/FDP unless an FPU exception
         * is pending.  Xen works around this at (F)XRSTOR time.
         */
-       if (!cpu_has(c, X86_FEATURE_RSTR_FP_ERR_PTRS))
+       if (c == &boot_cpu_data && !cpu_has(c, X86_FEATURE_RSTR_FP_ERR_PTRS))
                setup_force_cpu_cap(X86_BUG_FPU_PTRS);
 
        /*