dmaengine: pl330: Acquire dmac's spinlock in pl330_tx_status
[cascardo/linux.git] / drivers / dma / pl330.c
index 31e9c49..c4d6152 100644 (file)
@@ -2287,6 +2287,7 @@ pl330_tx_status(struct dma_chan *chan, dma_cookie_t cookie,
                goto out;
 
        spin_lock_irqsave(&pch->lock, flags);
+       spin_lock(&pch->thread->dmac->lock);
 
        if (pch->thread->req_running != -1)
                running = pch->thread->req[pch->thread->req_running].desc;
@@ -2329,6 +2330,7 @@ pl330_tx_status(struct dma_chan *chan, dma_cookie_t cookie,
                if (desc->last)
                        residual = 0;
        }
+       spin_unlock(&pch->thread->dmac->lock);
        spin_unlock_irqrestore(&pch->lock, flags);
 
 out: