KVM: x86: check against irqchip_mode in ioapic_in_kernel()
KVM_IRQCHIP_KERNEL implies a fully inititalized ioapic, while kvm->arch.vioapic might temporarily be set but invalidated again if e.g. setting of default routing fails when setting KVM_CREATE_IRQCHIP. Signed-off-by: David Hildenbrand <david@redhat.com> Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
This commit is contained in:
parent
19d25a0e47
commit
f567080bdd
|
@ -112,10 +112,11 @@ static inline struct kvm_ioapic *ioapic_irqchip(struct kvm *kvm)
|
|||
|
||||
static inline int ioapic_in_kernel(struct kvm *kvm)
|
||||
{
|
||||
int ret;
|
||||
int mode = kvm->arch.irqchip_mode;
|
||||
|
||||
ret = (ioapic_irqchip(kvm) != NULL);
|
||||
return ret;
|
||||
/* Matches smp_wmb() when setting irqchip_mode */
|
||||
smp_rmb();
|
||||
return mode == KVM_IRQCHIP_KERNEL;
|
||||
}
|
||||
|
||||
void kvm_rtc_eoi_tracking_restore_one(struct kvm_vcpu *vcpu);
|
||||
|
|
Loading…
Reference in New Issue