linux-hardened/drivers/uio
Brian Russell a087146c72 uio: Request/free irq separate from dev lifecycle
Separate irq request/free from the device lifecycle.
After device unregister the parent module can call pci_disable_msi.
>From the PCI MSI how to:

"Before calling this function, a device driver must always call free_irq()
on any interrupt for which it previously called request_irq().
Failure to do so results in a BUG_ON(), leaving the device with
MSI enabled and thus leaking its vector."

So we need to separately free the irq at unregister to allow the device
to be kept around in the case of it still having open FDs.

Signed-off-by: Brian Russell <brussell@brocade.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-03-20 13:18:16 +01:00
..
Kconfig uio: uio_fsl_elbc_gpcm: new driver 2015-01-12 05:04:13 -08:00
Makefile uio: uio_fsl_elbc_gpcm: new driver 2015-01-12 05:04:13 -08:00
uio.c uio: Request/free irq separate from dev lifecycle 2015-03-20 13:18:16 +01:00
uio_aec.c uio: uio_aec: remove unnecessary pci_set_drvdata() 2013-09-26 08:47:25 -07:00
uio_cif.c uio: uio_cif: remove unnecessary pci_set_drvdata() 2013-09-26 08:47:25 -07:00
uio_dmem_genirq.c uio: drop owner assignment from platform_drivers 2014-10-20 16:21:46 +02:00
uio_fsl_elbc_gpcm.c uio: uio_fsl_elbc_gpcm: new driver 2015-01-12 05:04:13 -08:00
uio_mf624.c uio: uio_mf624: remove DEFINE_PCI_DEVICE_TABLE macro 2013-12-08 22:41:48 -08:00
uio_netx.c uio: uio_netx: remove unnecessary pci_set_drvdata() 2013-09-26 08:47:25 -07:00
uio_pci_generic.c uio/uio_pci_generic: don't return zero on failure path in probe() 2015-01-12 05:04:12 -08:00
uio_pdrv_genirq.c uio: drop owner assignment from platform_drivers 2014-10-20 16:21:46 +02:00
uio_pruss.c uio: drop owner assignment from platform_drivers 2014-10-20 16:21:46 +02:00
uio_sercos3.c uio: uio_sercos3: remove unnecessary pci_set_drvdata() 2013-09-26 08:47:25 -07:00