• Thomas Gleixner's avatar
    x86/pci/xen: Fixup fallout from the PCI/MSI overhaul · 6c796996
    Thomas Gleixner authored
    David reported that the recent PCI/MSI rework results in MSI descriptor
    leakage under XEN.
    
    This is caused by:
    
      1) The missing MSI_FLAG_FREE_MSI_DESCS flag in the XEN MSI domain info,
         which is required now that PCI/MSI delegates descriptor freeing to
         the core MSI code.
    
      2) Not disassociating the interrupts on teardown, by setting the
         msi_desc::irq to 0. This was not required before because the teardown
         was unconditional and did not check whether a MSI descriptor was still
         connected to a Linux interrupt.
    
    On further inspection it came to light that the MSI_FLAG_DEV_SYSFS is
    missing in the XEN MSI domain info as well to restore the pre 6.2 status
    quo.
    
    Add the missing MSI flags and disassociate the MSI descriptor from the
    Linux interrupt in the XEN specific teardown function.
    
    Fixes: b2bdda20 ("PCI/MSI: Let the MSI core free descriptors")
    Fixes: 2f2940d1 ("genirq/msi: Remove filter from msi_free_descs_free_range()")
    Fixes: ffd84485 ("PCI/MSI: Let the irq code handle sysfs groups")
    Reported-by: default avatarDavid Woodhouse <dwmw@amazon.co.uk>
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Tested-by: default avatarDavid Woodhouse <dwmw@amazon.co.uk>
    Link: https://lore.kernel.org/r/871qnunycr.ffs@tglx
    6c796996
xen.c 14.6 KB