diff options
| author | Vinod Koul <vinod.koul@linux.intel.com> | 2012-05-11 01:54:41 -0400 |
|---|---|---|
| committer | Vinod Koul <vinod.koul@linux.intel.com> | 2012-05-11 01:54:41 -0400 |
| commit | eab21585580344c8533d5e7bc4edea27ad1e268f (patch) | |
| tree | 2000d5cd6f0ba08c7b6868cff3ac5ab23007524f | |
| parent | 88c08a3fba9954ce0ec3e1eab07c498a419ad7e3 (diff) | |
dmaengine: pl330: dont complete descriptor for cyclic dma
the cookie updates completed the cyclic dma descriptor wrongly. This caused the
BUG_ON to be hit as submit is called for completed descriptor
Fix this by not marking the cyclic descriptor as complete
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
Tested-by: Thomas Abraham <thomas.abraham@linaro.org>
| -rw-r--r-- | drivers/dma/pl330.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c index 2ee6e23930ad..fa3fb21e60be 100644 --- a/drivers/dma/pl330.c +++ b/drivers/dma/pl330.c | |||
| @@ -2322,7 +2322,8 @@ static void pl330_tasklet(unsigned long data) | |||
| 2322 | /* Pick up ripe tomatoes */ | 2322 | /* Pick up ripe tomatoes */ |
| 2323 | list_for_each_entry_safe(desc, _dt, &pch->work_list, node) | 2323 | list_for_each_entry_safe(desc, _dt, &pch->work_list, node) |
| 2324 | if (desc->status == DONE) { | 2324 | if (desc->status == DONE) { |
| 2325 | dma_cookie_complete(&desc->txd); | 2325 | if (pch->cyclic) |
| 2326 | dma_cookie_complete(&desc->txd); | ||
| 2326 | list_move_tail(&desc->node, &list); | 2327 | list_move_tail(&desc->node, &list); |
| 2327 | } | 2328 | } |
| 2328 | 2329 | ||
