Make ch->dma.free() called symmetrically to ch->dma.alloc().

This commit is contained in:
Alexander Motin 2009-02-18 21:12:48 +00:00
parent 6a03316a2d
commit 6340835dfd
2 changed files with 5 additions and 3 deletions

View File

@ -186,6 +186,11 @@ ata_detach(device_t dev)
bus_teardown_intr(dev, ch->r_irq, ch->ih);
bus_release_resource(dev, SYS_RES_IRQ, ATA_IRQ_RID, ch->r_irq);
ch->r_irq = NULL;
/* free DMA resources if DMA HW present*/
if (ch->dma.free)
ch->dma.free(dev);
mtx_destroy(&ch->state_mtx);
mtx_destroy(&ch->queue_mtx);
return 0;

View File

@ -544,14 +544,11 @@ ata_pcichannel_attach(device_t dev)
static int
ata_pcichannel_detach(device_t dev)
{
struct ata_channel *ch = device_get_softc(dev);
int error;
if ((error = ata_detach(dev)))
return error;
ch->dma.free(dev);
/* XXX SOS free resources for io and ctlio ?? */
return 0;