|
@@ -526,8 +526,10 @@ static int assign_guest_irq(struct kvm *kvm,
|
|
dev->irq_requested_type |= guest_irq_type;
|
|
dev->irq_requested_type |= guest_irq_type;
|
|
if (dev->ack_notifier.gsi != -1)
|
|
if (dev->ack_notifier.gsi != -1)
|
|
kvm_register_irq_ack_notifier(kvm, &dev->ack_notifier);
|
|
kvm_register_irq_ack_notifier(kvm, &dev->ack_notifier);
|
|
- } else
|
|
|
|
|
|
+ } else {
|
|
kvm_free_irq_source_id(kvm, dev->irq_source_id);
|
|
kvm_free_irq_source_id(kvm, dev->irq_source_id);
|
|
|
|
+ dev->irq_source_id = -1;
|
|
|
|
+ }
|
|
|
|
|
|
return r;
|
|
return r;
|
|
}
|
|
}
|