mirror of https://gitee.com/openkylin/linux.git
kvm: svm: Fix implicit declaration for __default_cpu_present_to_apicid()
The commit8221c13700
("svm: Manage vcpu load/unload when enable AVIC") introduces a build error due to implicit function declaration when #ifdef CONFIG_X86_32 and #ifndef CONFIG_X86_LOCAL_APIC (as reported by Kbuild test robot i386-randconfig-x0-06121009). So, this patch introduces kvm_cpu_get_apicid() wrapper around __default_cpu_present_to_apicid() with additional handling if CONFIG_X86_LOCAL_APIC is not defined. Reported-by: kbuild test robot <fengguang.wu@intel.com> Fixes: commit8221c13700
("svm: Manage vcpu load/unload when enable AVIC") Signed-off-by: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
0699fdb380
commit
7d669f5084
|
@ -27,6 +27,7 @@
|
|||
#include <linux/irqbypass.h>
|
||||
#include <linux/hyperv.h>
|
||||
|
||||
#include <asm/apic.h>
|
||||
#include <asm/pvclock-abi.h>
|
||||
#include <asm/desc.h>
|
||||
#include <asm/mtrr.h>
|
||||
|
@ -1368,4 +1369,14 @@ static inline void kvm_arch_vcpu_unblocking(struct kvm_vcpu *vcpu)
|
|||
|
||||
static inline void kvm_arch_vcpu_block_finish(struct kvm_vcpu *vcpu) {}
|
||||
|
||||
static inline int kvm_cpu_get_apicid(int mps_cpu)
|
||||
{
|
||||
#ifdef CONFIG_X86_LOCAL_APIC
|
||||
return __default_cpu_present_to_apicid(mps_cpu);
|
||||
#else
|
||||
WARN_ON_ONCE(1);
|
||||
return BAD_APICID;
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif /* _ASM_X86_KVM_HOST_H */
|
||||
|
|
|
@ -1324,7 +1324,7 @@ static int avic_vm_init(struct kvm *kvm)
|
|||
static void avic_set_running(struct kvm_vcpu *vcpu, bool is_run)
|
||||
{
|
||||
u64 entry;
|
||||
int h_physical_id = __default_cpu_present_to_apicid(vcpu->cpu);
|
||||
int h_physical_id = kvm_cpu_get_apicid(vcpu->cpu);
|
||||
struct vcpu_svm *svm = to_svm(vcpu);
|
||||
|
||||
if (!kvm_vcpu_apicv_active(vcpu))
|
||||
|
@ -1349,7 +1349,7 @@ static void avic_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
|
|||
{
|
||||
u64 entry;
|
||||
/* ID = 0xff (broadcast), ID > 0xff (reserved) */
|
||||
int h_physical_id = __default_cpu_present_to_apicid(cpu);
|
||||
int h_physical_id = kvm_cpu_get_apicid(cpu);
|
||||
struct vcpu_svm *svm = to_svm(vcpu);
|
||||
|
||||
if (!kvm_vcpu_apicv_active(vcpu))
|
||||
|
@ -4236,7 +4236,7 @@ static void svm_deliver_avic_intr(struct kvm_vcpu *vcpu, int vec)
|
|||
|
||||
if (avic_vcpu_is_running(vcpu))
|
||||
wrmsrl(SVM_AVIC_DOORBELL,
|
||||
__default_cpu_present_to_apicid(vcpu->cpu));
|
||||
kvm_cpu_get_apicid(vcpu->cpu));
|
||||
else
|
||||
kvm_vcpu_wake_up(vcpu);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue