• Sinan Kaya's avatar
    mfd: rtsx: Release IRQ during shutdown · 107b7d9f
    Sinan Kaya authored
    'Commit cc27b735 ("PCI/portdrv: Turn off PCIe services during
    shutdown")' revealed a resource leak in rtsx_pci driver during shutdown.
    
    Issue shows up as a warning during shutdown as follows:
    
    remove_proc_entry: removing non-empty directory 'irq/17', leaking at least
    'rtsx_pci'
    WARNING: CPU: 0 PID: 1578 at fs/proc/generic.c:572
    remove_proc_entry+0x11d/0x130
    Modules linked in <long list but none that are out-of-tree>
    ...
    Call Trace:
    unregister_irq_proc
    free_desc
    irq_free_descs
    mp_unmap_irq
    acpi_unregister_gsi_apic
    acpi_pci_irq_disable
    do_pci_disable_device
    pci_disable_device
    device_shutdown
    kernel_restart
    Sys_reboot
    
    Even though rtsx_pci driver implements a shutdown callback, it is not
    releasing the interrupt that it registered during probe. This is causing
    the ACPI layer to complain that the shared IRQ is in use while freeing
    IRQ.
    
    This code releases the IRQ to prevent resource leak and eliminate the
    warning.
    
    Fixes: cc27b735 ("PCI/portdrv: Turn off PCIe services during shutdown")
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=198141Reported-by: default avatarChris Clayton <chris2553@googlemail.com>
    Signed-off-by: default avatarSinan Kaya <okaya@codeaurora.org>
    Reviewed-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
    107b7d9f
rtsx_pcr.c 36.3 KB