[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH]vtd: Fix for irq bind failure after PCI attaching 32 times



vtd: Fix for irq bind failure after PCI attaching 32 times

Originally when detaching a PCI device, pirq_to_emuirq and pirq_to_irq are 
freed via hypercall do_physdev_op. Now in function pt_irq_destroy_bind_vtd, 
duplicated logic is added to free pirq_to_emuirq, but not pirq_to_irq. This 
causes do_physdev_op fail to free both emuirq and irq. After attaching a PCI 
device for 32 times, irq resources run out. This patch removes the redundant 
logic.

Signed-off-by: Fengzhe Zhang <fengzhe.zhang@xxxxxxxxx>

diff -r 003acf02d416 xen/drivers/passthrough/io.c
--- a/xen/drivers/passthrough/io.c      Thu Jan 20 17:04:06 2011 +0000
+++ b/xen/drivers/passthrough/io.c      Wed Jan 26 23:05:33 2011 +0800
@@ -375,7 +375,6 @@
             hvm_irq_dpci->mirq[machine_gsi].dom   = NULL;
             hvm_irq_dpci->mirq[machine_gsi].flags = 0;
             clear_bit(machine_gsi, hvm_irq_dpci->mapping);
-            unmap_domain_pirq_emuirq(d, machine_gsi);
         }
     }
     spin_unlock(&d->event_lock);

Attachment: irq_bind_failure_after_pci-attach_32_times_fix.patch
Description: irq_bind_failure_after_pci-attach_32_times_fix.patch

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.