mirror of
https://github.com/torvalds/linux.git
synced 2024-11-07 12:41:55 +00:00
3d74a539ae
This code path is only run when an MSI/MSI-X PCI device is passed in to PV DomU. In 2.6.37 time-frame we over-wrote the default cleanup handler for MSI/MSI-X irq->desc to be "xen_teardown_msi_irqs". That function calls the the xen-pcifront driver which can tell the backend to cleanup/take back the MSI/MSI-X device. However, we forgot to continue the process of free-ing the MSI/MSI-X device resources (irq->desc) in the PV domU side. Which is what the default cleanup handler: default_teardown_msi_irqs did. Hence we would leak IRQ descriptors. Without this patch, doing "rmmod igbvf;modprobe igbvf" multiple times ends with abandoned IRQ descriptors: 28: 5 xen-pirq-pcifront-msi-x 29: 8 xen-pirq-pcifront-msi-x ... 130: 10 xen-pirq-pcifront-msi-x with the end result of running out of IRQ descriptors. Reviewed-by: Ian Campbell <Ian.Campbell@citrix.com> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> |
||
---|---|---|
.. | ||
acpi.c | ||
amd_bus.c | ||
broadcom_bus.c | ||
bus_numa.c | ||
bus_numa.h | ||
ce4100.c | ||
common.c | ||
direct.c | ||
early.c | ||
fixup.c | ||
i386.c | ||
init.c | ||
irq.c | ||
legacy.c | ||
Makefile | ||
mmconfig_32.c | ||
mmconfig_64.c | ||
mmconfig-shared.c | ||
mrst.c | ||
numaq_32.c | ||
olpc.c | ||
pcbios.c | ||
visws.c | ||
xen.c |