While converting ATA to use MPIPE allocations, ata_dmaalloc was changed
authorJoerg Sonnenberger <joerg@dragonflybsd.org>
Tue, 9 Mar 2004 21:38:05 +0000 (21:38 +0000)
committerJoerg Sonnenberger <joerg@dragonflybsd.org>
Tue, 9 Mar 2004 21:38:05 +0000 (21:38 +0000)
commitfc1bc74e2cec56b8b7a21181ec76944eef93d1bb
tree85409a9bef096ebf1d7327231d1c2fdfc8bb3c6a
parent83be63feef2046474e5f71775332dd810014638e
While converting ATA to use MPIPE allocations, ata_dmaalloc was changed
to allocate the DMA buffer directly without checking if it already is.
Since atapi_queue_cmd and ad_start doesn't check this and the DMA buffer
is only freed from ad_free, ad_detach and atapi_detach, the MPIPE was
exhausted very soon. The calls the ata_dmafree has been removed in revision
1.9.

This adds an additional check wether a DMA buffer is already allocated and
reuses that instead.
sys/dev/disk/ata/ata-dma.c