diff options
Diffstat (limited to 'drivers/xen/events.c')
-rw-r--r-- | drivers/xen/events.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/xen/events.c b/drivers/xen/events.c index e4e8e9a745bf..e51f3c50bd40 100644 --- a/drivers/xen/events.c +++ b/drivers/xen/events.c | |||
@@ -728,7 +728,14 @@ int xen_destroy_irq(int irq) | |||
728 | unmap_irq.pirq = info->u.pirq.pirq; | 728 | unmap_irq.pirq = info->u.pirq.pirq; |
729 | unmap_irq.domid = info->u.pirq.domid; | 729 | unmap_irq.domid = info->u.pirq.domid; |
730 | rc = HYPERVISOR_physdev_op(PHYSDEVOP_unmap_pirq, &unmap_irq); | 730 | rc = HYPERVISOR_physdev_op(PHYSDEVOP_unmap_pirq, &unmap_irq); |
731 | if (rc) { | 731 | /* If another domain quits without making the pci_disable_msix |
732 | * call, the Xen hypervisor takes care of freeing the PIRQs | ||
733 | * (free_domain_pirqs). | ||
734 | */ | ||
735 | if ((rc == -ESRCH && info->u.pirq.domid != DOMID_SELF)) | ||
736 | printk(KERN_INFO "domain %d does not have %d anymore\n", | ||
737 | info->u.pirq.domid, info->u.pirq.pirq); | ||
738 | else if (rc) { | ||
732 | printk(KERN_WARNING "unmap irq failed %d\n", rc); | 739 | printk(KERN_WARNING "unmap irq failed %d\n", rc); |
733 | goto out; | 740 | goto out; |
734 | } | 741 | } |