aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/dma/amba-pl08x.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/dma/amba-pl08x.c b/drivers/dma/amba-pl08x.c
index 5d9a15652dba..69cfb05e4d3c 100644
--- a/drivers/dma/amba-pl08x.c
+++ b/drivers/dma/amba-pl08x.c
@@ -1627,11 +1627,12 @@ static void pl08x_tasklet(unsigned long data)
1627 struct pl08x_dma_chan *plchan = (struct pl08x_dma_chan *) data; 1627 struct pl08x_dma_chan *plchan = (struct pl08x_dma_chan *) data;
1628 struct pl08x_phy_chan *phychan = plchan->phychan; 1628 struct pl08x_phy_chan *phychan = plchan->phychan;
1629 struct pl08x_driver_data *pl08x = plchan->host; 1629 struct pl08x_driver_data *pl08x = plchan->host;
1630 unsigned long flags;
1630 1631
1631 if (!plchan) 1632 if (!plchan)
1632 BUG(); 1633 BUG();
1633 1634
1634 spin_lock(&plchan->lock); 1635 spin_lock_irqsave(&plchan->lock, flags);
1635 1636
1636 if (plchan->at) { 1637 if (plchan->at) {
1637 dma_async_tx_callback callback = 1638 dma_async_tx_callback callback =
@@ -1728,7 +1729,7 @@ static void pl08x_tasklet(unsigned long data)
1728 } 1729 }
1729 } 1730 }
1730 1731
1731 spin_unlock(&plchan->lock); 1732 spin_unlock_irqrestore(&plchan->lock, flags);
1732} 1733}
1733 1734
1734static irqreturn_t pl08x_irq(int irq, void *dev) 1735static irqreturn_t pl08x_irq(int irq, void *dev)