MSI: Give archs the option to free all MSI/Xs at once.
authorMichael Ellerman <michael@ellerman.id.au>
Wed, 18 Apr 2007 09:39:22 +0000 (19:39 +1000)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 3 May 2007 02:02:38 +0000 (19:02 -0700)
commit032de8e2fe3c0eec5fb0ffe4d38aa602dad397dc
treeb9ad28ab3642c2dfba8e059fc72bd8e86c667449
parent9c8313343c83c0ca731ceb8d2a4ab1e022ed9c94
MSI: Give archs the option to free all MSI/Xs at once.

This patch introduces an optional function, arch_teardown_msi_irqs(),
which gives an arch the opportunity to do per-device teardown for
MSI/X. If that's not required, the default version simply calls
arch_teardown_msi_irq() for each msi irq required.

arch_teardown_msi_irqs() is simply passed a pdev, attached to the pdev
is a list of msi_descs, it is up to the arch to free the irq associated
with each of these as appropriate.

For archs that _don't_ implement arch_teardown_msi_irqs(), all msi_descs
with irq == 0 are considered unallocated, and the arch teardown routine
is not called on them.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/pci/msi.c
include/linux/msi.h