Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Revert "KVM: X86: Fix setup the virt_spin_lock_key before static key get initialized"

This reverts commit 34226b6b70980a8f81fff3c09a2c889f77edeeff.

Commit 8990cac6e5ea ("x86/jump_label: Initialize static branching
early") adds jump_label_init() call in setup_arch() to make static
keys initialized early, so we could use the original simpler code
again.

The similar change for XEN is in commit 090d54bcbc54 ("Revert
"x86/paravirt: Set up the virt_spin_lock_key after static keys get
initialized"")

Signed-off-by: Zhenzhong Duan <zhenzhong.duan@oracle.com>
Reviewed-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Radim Krcmar <rkrcmar@redhat.com>
Cc: Sean Christopherson <sean.j.christopherson@intel.com>
Cc: Vitaly Kuznetsov <vkuznets@redhat.com>
Cc: Wanpeng Li <wanpengli@tencent.com>
Cc: Jim Mattson <jmattson@google.com>
Cc: Joerg Roedel <joro@8bytes.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

authored by

Zhenzhong Duan and committed by
Paolo Bonzini
de585020 e47c4aee

+3 -9
+3 -9
arch/x86/kernel/kvm.c
··· 570 570 } 571 571 } 572 572 573 - static void __init kvm_smp_prepare_cpus(unsigned int max_cpus) 574 - { 575 - native_smp_prepare_cpus(max_cpus); 576 - if (kvm_para_has_hint(KVM_HINTS_REALTIME)) 577 - static_branch_disable(&virt_spin_lock_key); 578 - } 579 - 580 573 static void __init kvm_smp_prepare_boot_cpu(void) 581 574 { 582 575 /* ··· 664 671 } 665 672 666 673 #ifdef CONFIG_SMP 667 - smp_ops.smp_prepare_cpus = kvm_smp_prepare_cpus; 668 674 smp_ops.smp_prepare_boot_cpu = kvm_smp_prepare_boot_cpu; 669 675 if (pv_sched_yield_supported()) { 670 676 smp_ops.send_call_func_ipi = kvm_smp_send_call_func_ipi; ··· 871 879 if (!kvm_para_has_feature(KVM_FEATURE_PV_UNHALT)) 872 880 return; 873 881 874 - if (kvm_para_has_hint(KVM_HINTS_REALTIME)) 882 + if (kvm_para_has_hint(KVM_HINTS_REALTIME)) { 883 + static_branch_disable(&virt_spin_lock_key); 875 884 return; 885 + } 876 886 877 887 /* Don't use the pvqspinlock code if there is only 1 vCPU. */ 878 888 if (num_possible_cpus() == 1)