linux/drivers/dma
Dan Williams 95475e5711 async_tx: remove walk of tx->parent chain in dma_wait_for_async_tx
We currently walk the parent chain when waiting for a given tx to
complete however this walk may race with the driver cleanup routine.
The routines in async_raid6_recov.c may fall back to the synchronous
path at any point so we need to be prepared to call async_tx_quiesce()
(which calls  dma_wait_for_async_tx).  To remove the ->parent walk we
guarantee that every time a dependency is attached ->issue_pending() is
invoked, then we can simply poll the initial descriptor until
completion.

This also allows for a lighter weight 'issue pending' implementation as
there is no longer a requirement to iterate through all the channels'
->issue_pending() routines as long as operations have been submitted in
an ordered chain.  async_tx_issue_pending() is added for this case.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
2009-08-29 19:09:27 -07:00
..
ipu dma: Add SoF and EoF debugging to ipu_idmac.c, minor cleanup 2009-04-02 16:59:10 -07:00
dmaengine.c async_tx: remove walk of tx->parent chain in dma_wait_for_async_tx 2009-08-29 19:09:27 -07:00
dmatest.c dmatest: add dma interrupts and callbacks 2009-03-25 09:13:25 -07:00
dw_dmac_regs.h dw_dmac: add cyclic API to DW DMA driver 2009-04-01 15:42:34 -07:00
dw_dmac.c dw_dmac: add cyclic API to DW DMA driver 2009-04-01 15:42:34 -07:00
fsldma.c dmaengine: initialize tx_list in dma_async_tx_descriptor_init 2009-03-25 09:13:24 -07:00
fsldma.h fsldma: allow Freescale Elo DMA driver to be compiled as a module 2008-09-26 17:00:11 -07:00
ioat_dca.c I/OAT: update driver version and copyright dates 2009-03-04 16:04:40 -07:00
ioat_dma.c dmaengine: initialize tx_list in dma_async_tx_descriptor_init 2009-03-25 09:13:24 -07:00
ioat.c I/OAT: update driver version and copyright dates 2009-03-04 16:04:40 -07:00
ioatdma_hw.h I/OAT: update driver version and copyright dates 2009-03-04 16:04:40 -07:00
ioatdma_registers.h I/OAT: update driver version and copyright dates 2009-03-04 16:04:40 -07:00
ioatdma.h I/OAT: update driver version and copyright dates 2009-03-04 16:04:40 -07:00
iop-adma.c async_tx: rename zero_sum to val 2009-04-08 14:28:37 -07:00
iovlock.c [2/4] I/OAT: fix dma_pin_iovec_pages() error handling 2008-11-10 15:00:56 -08:00
Kconfig async_xor: permit callers to pass in a 'dma/page scribble' region 2009-06-03 14:22:28 -07:00
Makefile i.MX31: Image Processing Unit DMA and IRQ drivers 2009-01-19 15:36:21 -07:00
mv_xor.c dmaengine: initialize tx_list in dma_async_tx_descriptor_init 2009-03-25 09:13:24 -07:00
mv_xor.h dmaengine: DMA engine driver for Marvell XOR engine 2008-07-08 11:58:36 -07:00