• Konrad Rzeszutek Wilk's avatar
    pci/xen: When free-ing MSI-X/MSI irq->desc also use generic code. · 3d74a539
    Konrad Rzeszutek Wilk authored
    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: default avatarIan Campbell <Ian.Campbell@citrix.com>
    Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    3d74a539
xen.c 9.4 KB