|
|
|
@ -1350,6 +1350,10 @@ void kvm_lapic_set_base(struct kvm_vcpu *vcpu, u64 value) |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!kvm_vcpu_is_bsp(apic->vcpu)) |
|
|
|
|
value &= ~MSR_IA32_APICBASE_BSP; |
|
|
|
|
vcpu->arch.apic_base = value; |
|
|
|
|
|
|
|
|
|
/* update jump label if enable bit changes */ |
|
|
|
|
if ((vcpu->arch.apic_base ^ value) & MSR_IA32_APICBASE_ENABLE) { |
|
|
|
|
if (value & MSR_IA32_APICBASE_ENABLE) |
|
|
|
@ -1359,10 +1363,6 @@ void kvm_lapic_set_base(struct kvm_vcpu *vcpu, u64 value) |
|
|
|
|
recalculate_apic_map(vcpu->kvm); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!kvm_vcpu_is_bsp(apic->vcpu)) |
|
|
|
|
value &= ~MSR_IA32_APICBASE_BSP; |
|
|
|
|
|
|
|
|
|
vcpu->arch.apic_base = value; |
|
|
|
|
if ((old_value ^ value) & X2APIC_ENABLE) { |
|
|
|
|
if (value & X2APIC_ENABLE) { |
|
|
|
|
u32 id = kvm_apic_id(apic); |
|
|
|
|