aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/lapic.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kvm/lapic.c')
-rw-r--r--arch/x86/kvm/lapic.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
index 44f20cdb5709..b0661300eb28 100644
--- a/arch/x86/kvm/lapic.c
+++ b/arch/x86/kvm/lapic.c
@@ -793,7 +793,8 @@ void kvm_lapic_set_base(struct kvm_vcpu *vcpu, u64 value)
793 vcpu->arch.apic_base = value; 793 vcpu->arch.apic_base = value;
794 return; 794 return;
795 } 795 }
796 if (apic->vcpu->vcpu_id) 796
797 if (!kvm_vcpu_is_bsp(apic->vcpu))
797 value &= ~MSR_IA32_APICBASE_BSP; 798 value &= ~MSR_IA32_APICBASE_BSP;
798 799
799 vcpu->arch.apic_base = value; 800 vcpu->arch.apic_base = value;
@@ -844,7 +845,7 @@ void kvm_lapic_reset(struct kvm_vcpu *vcpu)
844 } 845 }
845 update_divide_count(apic); 846 update_divide_count(apic);
846 atomic_set(&apic->lapic_timer.pending, 0); 847 atomic_set(&apic->lapic_timer.pending, 0);
847 if (vcpu->vcpu_id == 0) 848 if (kvm_vcpu_is_bsp(vcpu))
848 vcpu->arch.apic_base |= MSR_IA32_APICBASE_BSP; 849 vcpu->arch.apic_base |= MSR_IA32_APICBASE_BSP;
849 apic_update_ppr(apic); 850 apic_update_ppr(apic);
850 851
@@ -985,7 +986,7 @@ int kvm_apic_accept_pic_intr(struct kvm_vcpu *vcpu)
985 u32 lvt0 = apic_get_reg(vcpu->arch.apic, APIC_LVT0); 986 u32 lvt0 = apic_get_reg(vcpu->arch.apic, APIC_LVT0);
986 int r = 0; 987 int r = 0;
987 988
988 if (vcpu->vcpu_id == 0) { 989 if (kvm_vcpu_is_bsp(vcpu)) {
989 if (!apic_hw_enabled(vcpu->arch.apic)) 990 if (!apic_hw_enabled(vcpu->arch.apic))
990 r = 1; 991 r = 1;
991 if ((lvt0 & APIC_LVT_MASKED) == 0 && 992 if ((lvt0 & APIC_LVT_MASKED) == 0 &&