diff options
author | imp <imp@FreeBSD.org> | 2004-11-12 00:46:52 +0000 |
---|---|---|
committer | imp <imp@FreeBSD.org> | 2004-11-12 00:46:52 +0000 |
commit | 4527d163738e015ea8f8927e0d2f4f2cc86da05f (patch) | |
tree | 59b6387f43f25f68d2d408612ad375ba45c38060 /sys/dev/aha | |
parent | eba1da745d3acc5075ad2b3a0e0736ee9b4c9390 (diff) | |
download | FreeBSD-src-4527d163738e015ea8f8927e0d2f4f2cc86da05f.zip FreeBSD-src-4527d163738e015ea8f8927e0d2f4f2cc86da05f.tar.gz |
Don't use aha after calling aha_free.
Diffstat (limited to 'sys/dev/aha')
-rw-r--r-- | sys/dev/aha/aha_isa.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/dev/aha/aha_isa.c b/sys/dev/aha/aha_isa.c index 7215cb0..db4634a 100644 --- a/sys/dev/aha/aha_isa.c +++ b/sys/dev/aha/aha_isa.c @@ -247,29 +247,29 @@ aha_isa_attach(device_t dev) /* lockfunc */ busdma_lock_mutex, /* lockarg */ &Giant, &aha->parent_dmat) != 0) { - aha_free(aha); bus_release_resource(dev, SYS_RES_IOPORT, aha->portrid, aha->port); bus_release_resource(dev, SYS_RES_IRQ, aha->irqrid, aha->irq); bus_release_resource(dev, SYS_RES_DRQ, aha->drqrid, aha->drq); + aha_free(aha); return (ENOMEM); } if (aha_init(aha)) { device_printf(dev, "init failed\n"); - aha_free(aha); bus_release_resource(dev, SYS_RES_IOPORT, aha->portrid, aha->port); bus_release_resource(dev, SYS_RES_IRQ, aha->irqrid, aha->irq); bus_release_resource(dev, SYS_RES_DRQ, aha->drqrid, aha->drq); + aha_free(aha); return (ENOMEM); } error = aha_attach(aha); if (error) { device_printf(dev, "attach failed\n"); - aha_free(aha); bus_release_resource(dev, SYS_RES_IOPORT, aha->portrid, aha->port); bus_release_resource(dev, SYS_RES_IRQ, aha->irqrid, aha->irq); bus_release_resource(dev, SYS_RES_DRQ, aha->drqrid, aha->drq); + aha_free(aha); return (error); } @@ -277,10 +277,10 @@ aha_isa_attach(device_t dev) &ih); if (error) { device_printf(dev, "Unable to register interrupt handler\n"); - aha_free(aha); bus_release_resource(dev, SYS_RES_IOPORT, aha->portrid, aha->port); bus_release_resource(dev, SYS_RES_IRQ, aha->irqrid, aha->irq); bus_release_resource(dev, SYS_RES_DRQ, aha->drqrid, aha->drq); + aha_free(aha); return (error); } |