summaryrefslogtreecommitdiffstats
path: root/drivers/mfd/da903x.c
diff options
context:
space:
mode:
authorIra Snyder <iws@ovro.caltech.edu>2009-05-19 15:42:13 -0700
committerLi Yang <leoli@freescale.com>2009-05-22 16:49:17 +0800
commit138ef0185177a6d221d24b6aa8f12d867fbbef90 (patch)
tree4a48ab1154b7533dcaac831ff2dad0e10865efa1 /drivers/mfd/da903x.c
parentf47edc6dab11801c2e97088ba7bbce042ded867c (diff)
downloadlinux-138ef0185177a6d221d24b6aa8f12d867fbbef90.tar.gz
linux-138ef0185177a6d221d24b6aa8f12d867fbbef90.tar.bz2
linux-138ef0185177a6d221d24b6aa8f12d867fbbef90.zip
fsldma: fix "DMA halt timeout!" errors
When using the DMA controller from multiple threads at the same time, it is possible to get lots of "DMA halt timeout!" errors printed to the kernel log. This occurs due to a race between fsl_dma_memcpy_issue_pending() and the interrupt handler, fsl_dma_chan_do_interrupt(). Both call the fsl_chan_xfer_ld_queue() function, which does not protect against concurrent accesses to dma_halt() and dma_start(). The existing spinlock is moved to cover the dma_halt() and dma_start() functions. Testing shows that the "DMA halt timeout!" errors disappear. Signed-off-by: Ira W. Snyder <iws@ovro.caltech.edu> Signed-off-by: Li Yang <leoli@freescale.com>
Diffstat (limited to 'drivers/mfd/da903x.c')
0 files changed, 0 insertions, 0 deletions