summaryrefslogtreecommitdiffstats
path: root/sys/dev/aac
diff options
context:
space:
mode:
authormarius <marius@FreeBSD.org>2013-12-29 17:37:32 +0000
committermarius <marius@FreeBSD.org>2013-12-29 17:37:32 +0000
commit36c626f331ef3a2a0f2b31912feb3ef2a89afc3a (patch)
tree0a7793aa5fb2455f54eecd30bfe574e5d552fbba /sys/dev/aac
parent85492dd71d1fa069c24da17e4156a7e34cb28c6f (diff)
downloadFreeBSD-src-36c626f331ef3a2a0f2b31912feb3ef2a89afc3a.zip
FreeBSD-src-36c626f331ef3a2a0f2b31912feb3ef2a89afc3a.tar.gz
Free the MSI again on detach if allocated. Arguably, this code would be
better off living in aac_pci.c, but it doesn't seem worth creating a aac_pci_detach() and it's also not the first PCI-specific bit in aac.c MFC after: 3 days
Diffstat (limited to 'sys/dev/aac')
-rw-r--r--sys/dev/aac/aac.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/dev/aac/aac.c b/sys/dev/aac/aac.c
index c56aeca..c0f11f9 100644
--- a/sys/dev/aac/aac.c
+++ b/sys/dev/aac/aac.c
@@ -631,9 +631,11 @@ aac_free(struct aac_softc *sc)
/* disconnect the interrupt handler */
if (sc->aac_intr)
bus_teardown_intr(sc->aac_dev, sc->aac_irq, sc->aac_intr);
- if (sc->aac_irq != NULL)
+ if (sc->aac_irq != NULL) {
bus_release_resource(sc->aac_dev, SYS_RES_IRQ,
rman_get_rid(sc->aac_irq), sc->aac_irq);
+ pci_release_msi(sc->aac_dev);
+ }
/* destroy data-transfer DMA tag */
if (sc->aac_buffer_dmat)
OpenPOWER on IntegriCloud