diff options
| -rw-r--r-- | arch/x86/kernel/kvm.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c index 697b93af02dd..a0e2a8a80c94 100644 --- a/arch/x86/kernel/kvm.c +++ b/arch/x86/kernel/kvm.c | |||
| @@ -775,11 +775,22 @@ void __init kvm_spinlock_init(void) | |||
| 775 | if (!kvm_para_has_feature(KVM_FEATURE_PV_UNHALT)) | 775 | if (!kvm_para_has_feature(KVM_FEATURE_PV_UNHALT)) |
| 776 | return; | 776 | return; |
| 777 | 777 | ||
| 778 | printk(KERN_INFO "KVM setup paravirtual spinlock\n"); | 778 | pv_lock_ops.lock_spinning = PV_CALLEE_SAVE(kvm_lock_spinning); |
| 779 | pv_lock_ops.unlock_kick = kvm_unlock_kick; | ||
| 780 | } | ||
| 781 | |||
| 782 | static __init int kvm_spinlock_init_jump(void) | ||
| 783 | { | ||
| 784 | if (!kvm_para_available()) | ||
| 785 | return 0; | ||
| 786 | if (!kvm_para_has_feature(KVM_FEATURE_PV_UNHALT)) | ||
| 787 | return 0; | ||
| 779 | 788 | ||
| 780 | static_key_slow_inc(¶virt_ticketlocks_enabled); | 789 | static_key_slow_inc(¶virt_ticketlocks_enabled); |
| 790 | printk(KERN_INFO "KVM setup paravirtual spinlock\n"); | ||
| 781 | 791 | ||
| 782 | pv_lock_ops.lock_spinning = PV_CALLEE_SAVE(kvm_lock_spinning); | 792 | return 0; |
| 783 | pv_lock_ops.unlock_kick = kvm_unlock_kick; | ||
| 784 | } | 793 | } |
| 794 | early_initcall(kvm_spinlock_init_jump); | ||
| 795 | |||
| 785 | #endif /* CONFIG_PARAVIRT_SPINLOCKS */ | 796 | #endif /* CONFIG_PARAVIRT_SPINLOCKS */ |
