linux/drivers/dma
Haavard Skinnemoen 348badf1e8 dmaengine: fix broken device refcounting
When a DMA device is unregistered, its reference count is decremented twice
for each channel: Once dma_class_dev_release() and once in
dma_chan_cleanup().  This may result in the DMA device driver's remove()
function completing before all channels have been cleaned up, causing lots
of use-after-free fun.

Fix it by incrementing the device's reference count twice for each
channel during registration.

[dan.j.williams@intel.com: kill unnecessary client refcounting]
Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Shannon Nelson <shannon.nelson@intel.com>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-11-14 18:45:39 -08:00
..
dmaengine.c dmaengine: fix broken device refcounting 2007-11-14 18:45:39 -08:00
ioat_dca.c I/OAT: clean up error handling and some print messages 2007-10-18 14:37:32 -07:00
ioat_dma.c I/OAT: Add completion callback for async_tx interface use 2007-10-18 14:37:32 -07:00
ioat.c I/OAT: clean up error handling and some print messages 2007-10-18 14:37:32 -07:00
ioatdma_hw.h I/OAT: Split PCI startup from DMA handling code 2007-10-16 09:43:09 -07:00
ioatdma_registers.h I/OAT: Add support for MSI and MSI-X 2007-10-16 09:43:09 -07:00
ioatdma.h I/OAT: Tighten descriptor setup performance 2007-10-18 14:37:32 -07:00
iop-adma.c Remove "unsafe" from module struct 2007-10-17 08:42:49 -07:00
iovlock.c [NET_DMA]: remove unused dma_memcpy_to_kernel_iovec 2007-07-31 02:28:03 -07:00
Kconfig Remove bogus default y for DMAR and NET_DMA 2007-10-30 08:06:55 -07:00
Makefile I/OAT: Add DCA services 2007-10-16 09:43:09 -07:00