summaryrefslogtreecommitdiff
path: root/arch/x86/kernel/paravirt-spinlocks.c
diff options
context:
space:
mode:
authorBorislav Petkov <bp@suse.de>2021-03-31 18:04:19 +0200
committerBorislav Petkov <bp@suse.de>2021-03-31 18:04:19 +0200
commitf2ac256b9a8b7e79847efcd82bd10fd876369b9f (patch)
tree8769fa5130754ecc605df8803650293f88357879 /arch/x86/kernel/paravirt-spinlocks.c
parent52fa82c21f64e900a72437269a5cc9e0034b424e (diff)
parent054ac8ad5ebe4a69e1f0e842483821ddbe560121 (diff)
Merge 'x86/alternatives'
Pick up dependent changes. Signed-off-by: Borislav Petkov <bp@suse.de>
Diffstat (limited to 'arch/x86/kernel/paravirt-spinlocks.c')
-rw-r--r--arch/x86/kernel/paravirt-spinlocks.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/x86/kernel/paravirt-spinlocks.c b/arch/x86/kernel/paravirt-spinlocks.c
index 4f75d0cf6305..9e1ea99ad9df 100644
--- a/arch/x86/kernel/paravirt-spinlocks.c
+++ b/arch/x86/kernel/paravirt-spinlocks.c
@@ -32,3 +32,12 @@ bool pv_is_native_vcpu_is_preempted(void)
return pv_ops.lock.vcpu_is_preempted.func ==
__raw_callee_save___native_vcpu_is_preempted;
}
+
+void __init paravirt_set_cap(void)
+{
+ if (!pv_is_native_spin_unlock())
+ setup_force_cpu_cap(X86_FEATURE_PVUNLOCK);
+
+ if (!pv_is_native_vcpu_is_preempted())
+ setup_force_cpu_cap(X86_FEATURE_VCPUPREEMPT);
+}