diff options
-rw-r--r-- | arch/x86/kvm/lapic.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c index 0cd431c85d38..49f4ac047f60 100644 --- a/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c | |||
@@ -1185,7 +1185,8 @@ void kvm_lapic_reset(struct kvm_vcpu *vcpu) | |||
1185 | update_divide_count(apic); | 1185 | update_divide_count(apic); |
1186 | atomic_set(&apic->lapic_timer.pending, 0); | 1186 | atomic_set(&apic->lapic_timer.pending, 0); |
1187 | if (kvm_vcpu_is_bsp(vcpu)) | 1187 | if (kvm_vcpu_is_bsp(vcpu)) |
1188 | vcpu->arch.apic_base |= MSR_IA32_APICBASE_BSP; | 1188 | kvm_lapic_set_base(vcpu, |
1189 | vcpu->arch.apic_base | MSR_IA32_APICBASE_BSP); | ||
1189 | vcpu->arch.pv_eoi.msr_val = 0; | 1190 | vcpu->arch.pv_eoi.msr_val = 0; |
1190 | apic_update_ppr(apic); | 1191 | apic_update_ppr(apic); |
1191 | 1192 | ||
@@ -1310,8 +1311,7 @@ int kvm_create_lapic(struct kvm_vcpu *vcpu) | |||
1310 | HRTIMER_MODE_ABS); | 1311 | HRTIMER_MODE_ABS); |
1311 | apic->lapic_timer.timer.function = apic_timer_fn; | 1312 | apic->lapic_timer.timer.function = apic_timer_fn; |
1312 | 1313 | ||
1313 | apic->base_address = APIC_DEFAULT_PHYS_BASE; | 1314 | kvm_lapic_set_base(vcpu, APIC_DEFAULT_PHYS_BASE); |
1314 | vcpu->arch.apic_base = APIC_DEFAULT_PHYS_BASE; | ||
1315 | 1315 | ||
1316 | kvm_lapic_reset(vcpu); | 1316 | kvm_lapic_reset(vcpu); |
1317 | kvm_iodevice_init(&apic->dev, &apic_mmio_ops); | 1317 | kvm_iodevice_init(&apic->dev, &apic_mmio_ops); |
@@ -1380,8 +1380,7 @@ void kvm_apic_post_state_restore(struct kvm_vcpu *vcpu) | |||
1380 | { | 1380 | { |
1381 | struct kvm_lapic *apic = vcpu->arch.apic; | 1381 | struct kvm_lapic *apic = vcpu->arch.apic; |
1382 | 1382 | ||
1383 | apic->base_address = vcpu->arch.apic_base & | 1383 | kvm_lapic_set_base(vcpu, vcpu->arch.apic_base); |
1384 | MSR_IA32_APICBASE_BASE; | ||
1385 | kvm_apic_set_version(vcpu); | 1384 | kvm_apic_set_version(vcpu); |
1386 | 1385 | ||
1387 | apic_update_ppr(apic); | 1386 | apic_update_ppr(apic); |