summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVinod Koul <vinod.koul@intel.com>2018-04-10 06:25:30 +0300
committerVinod Koul <vinod.koul@intel.com>2018-04-10 06:25:30 +0300
commitf18b46190c62858fe04414e8ee9efea26f759e91 (patch)
tree7bd47311c76e444ccbb0a7aebdc0f0eb3cd4e8b0
parentc21bd0a86789ed54cf7dfb948c590766484a585c (diff)
parenta3ca831249ca8c4c226e4ceafee04e280152e59d (diff)
downloadlinux-f18b46190c62858fe04414e8ee9efea26f759e91.tar.xz
Merge branch 'topic/pl330' into for-linus
-rw-r--r--drivers/dma/pl330.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c
index d7327fd5f445..de1fd59fe136 100644
--- a/drivers/dma/pl330.c
+++ b/drivers/dma/pl330.c
@@ -1510,7 +1510,7 @@ static void pl330_dotask(unsigned long data)
/* Returns 1 if state was updated, 0 otherwise */
static int pl330_update(struct pl330_dmac *pl330)
{
- struct dma_pl330_desc *descdone, *tmp;
+ struct dma_pl330_desc *descdone;
unsigned long flags;
void __iomem *regs;
u32 val;
@@ -1588,7 +1588,9 @@ static int pl330_update(struct pl330_dmac *pl330)
}
/* Now that we are in no hurry, do the callbacks */
- list_for_each_entry_safe(descdone, tmp, &pl330->req_done, rqd) {
+ while (!list_empty(&pl330->req_done)) {
+ descdone = list_first_entry(&pl330->req_done,
+ struct dma_pl330_desc, rqd);
list_del(&descdone->rqd);
spin_unlock_irqrestore(&pl330->lock, flags);
dma_pl330_rqcb(descdone, PL330_ERR_NONE);