|
@@ -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);
|