[PATCH] svm: Do not support AVIC if not CONFIG_X86_LOCAL_APIC

From: Suravee Suthikulpanit
Date: Wed Jun 15 2016 - 18:40:09 EST


Add logic to disable AVIC #ifndef CONFIG_X86_LOCAL_APIC.

Suggested-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Signed-off-by: Suravee Suthikulpanit <suravee.suthikulpanit@xxxxxxx>
---
arch/x86/kvm/svm.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
index 0d2aa13..1b18b50 100644
--- a/arch/x86/kvm/svm.c
+++ b/arch/x86/kvm/svm.c
@@ -241,7 +241,9 @@ module_param(nested, int, S_IRUGO);

/* enable / disable AVIC */
static int avic;
+#ifdef CONFIG_X86_LOCAL_APIC
module_param(avic, int, S_IRUGO);
+#endif

static void svm_set_cr0(struct kvm_vcpu *vcpu, unsigned long cr0);
static void svm_flush_tlb(struct kvm_vcpu *vcpu);
@@ -1023,7 +1025,10 @@ static __init int svm_hardware_setup(void)
} else
kvm_disable_tdp();

- if (avic && (!npt_enabled || !boot_cpu_has(X86_FEATURE_AVIC)))
+ if (avic)
+ if (!npt_enabled ||
+ !boot_cpu_has(X86_FEATURE_AVIC) ||
+ !IS_ENABLED(CONFIG_X86_LOCAL_APIC))
avic = false;

if (avic) {
--
1.9.1