diff options
Diffstat (limited to 'arch/x86/kvm/x86.c')
| -rw-r--r-- | arch/x86/kvm/x86.c | 11 | 
1 files changed, 1 insertions, 10 deletions
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index be2ade58edb9..2fe9aa116288 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -3919,14 +3919,9 @@ static int kvm_vm_ioctl_enable_cap(struct kvm *kvm,  			goto split_irqchip_unlock;  		if (kvm->created_vcpus)  			goto split_irqchip_unlock; -		kvm->arch.irqchip_mode = KVM_IRQCHIP_INIT_IN_PROGRESS;  		r = kvm_setup_empty_irq_routing(kvm); -		if (r) { -			kvm->arch.irqchip_mode = KVM_IRQCHIP_NONE; -			/* Pairs with smp_rmb() when reading irqchip_mode */ -			smp_wmb(); +		if (r)  			goto split_irqchip_unlock; -		}  		/* Pairs with irqchip_in_kernel. */  		smp_wmb();  		kvm->arch.irqchip_mode = KVM_IRQCHIP_SPLIT; @@ -4012,12 +4007,8 @@ long kvm_arch_vm_ioctl(struct file *filp,  			goto create_irqchip_unlock;  		} -		kvm->arch.irqchip_mode = KVM_IRQCHIP_INIT_IN_PROGRESS;  		r = kvm_setup_default_irq_routing(kvm);  		if (r) { -			kvm->arch.irqchip_mode = KVM_IRQCHIP_NONE; -			/* Pairs with smp_rmb() when reading irqchip_mode */ -			smp_wmb();  			kvm_ioapic_destroy(kvm);  			kvm_pic_destroy(kvm);  			goto create_irqchip_unlock;  | 
