OpenCloudOS-Kernel/drivers/dma
Simon Guinot cc60f8878e dmaengine: fix interrupt clearing for mv_xor
When using simultaneously the two DMA channels on a same engine, some
transfers are never completed. For example, an endless lock can occur
while writing heavily on a RAID5 array (with async-tx offload support
enabled).

Note that this issue can also be reproduced by using the DMA test
client.

On a same engine, the interrupt cause register is shared between two
DMA channels. This patch make sure that the cause bit is only cleared
for the requested channel.

Signed-off-by: Simon Guinot <sguinot@lacie.com>
Tested-by: Luc Saillard <luc@saillard.org>
Acked-by: saeed bishara <saeed.bishara@gmail.com>
Cc: <stable@kernel.org>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
2010-09-23 14:14:22 -07:00
..
ioat ioat2: catch and recover from broken vtd configurations v6 2010-08-04 14:18:17 -07:00
ipu DMAENGINE: extend the control command to include an arg 2010-05-17 16:30:42 -07:00
ppc4xx of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
Kconfig Merge branches 'master' and 'devel' into for-linus 2010-08-10 23:17:52 +01:00
Makefile dmaengine: Driver for Topcliff PCH DMA controller 2010-08-04 14:12:05 -07:00
at_hdmac.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx 2010-08-09 21:00:07 -07:00
at_hdmac_regs.h at_hdmac: implement a private tx_list 2009-09-08 17:53:03 -07:00
coh901318.c DMAENGINE: add runtime slave control to COH 901 318 v3 2010-08-04 14:15:44 -07:00
coh901318_lli.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
coh901318_lli.h tree-wide: Assorted spelling fixes 2010-02-09 11:13:56 +01:00
dmaengine.c Merge branch 'ioat' into dmaengine 2010-05-17 16:30:58 -07:00
dmatest.c dma: dmatest: fix potential sign bug 2010-08-04 14:27:47 -07:00
dw_dmac.c DMAENGINE: extend the control command to include an arg 2010-05-17 16:30:42 -07:00
dw_dmac_regs.h dw_dmac: implement a private tx_list 2009-09-08 17:53:02 -07:00
fsldma.c of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
fsldma.h fsldma: major cleanups and fixes 2010-02-02 14:51:42 -07:00
intel_mid_dma.c intel_mid: Add Mrst & Mfld DMA Drivers 2010-07-27 23:32:57 -07:00
intel_mid_dma_regs.h intel_mid: Add Mrst & Mfld DMA Drivers 2010-07-27 23:32:57 -07:00
iop-adma.c Merge branch 'ioat' into dmaengine 2010-05-17 16:30:58 -07:00
iovlock.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
mpc512x_dma.c of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
mv_xor.c dmaengine: fix interrupt clearing for mv_xor 2010-09-23 14:14:22 -07:00
mv_xor.h mv_xor: implement a private tx_list 2009-09-08 17:53:03 -07:00
pch_dma.c DMAENGINE: pch_dma: kill another usage of __raw_{read|write}l 2010-08-04 22:08:45 -07:00
pl330.c DMA: PL330: Add dma api driver 2010-05-23 20:28:19 -07:00
shdma.c dma/shdma: move dereference below the NULL check 2010-09-22 15:29:17 -07:00
shdma.h dmaengine: shdma: Introduce include/linux/sh_dma.h 2010-03-23 17:20:06 +09:00
ste_dma40.c DMAENGINE: add runtime slave config to DMA40 v3 2010-08-04 14:14:05 -07:00
ste_dma40_ll.c DMAENGINE: ste_dma40: allocate LCLA dynamically 2010-06-22 18:01:55 -07:00
ste_dma40_ll.h DMAENGINE: ste_dma40: allocate LCLA dynamically 2010-06-22 18:01:55 -07:00
timb_dma.c drivers/dma: Eliminate a NULL pointer dereference 2010-07-01 02:27:35 -07:00
txx9dmac.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx 2010-05-21 17:05:46 -07:00
txx9dmac.h txx9dmac: implement a private tx_list 2009-09-08 17:53:03 -07:00