diff options
-rw-r--r-- | drivers/dma/amba-pl08x.c | 5 |
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 | ||
1734 | static irqreturn_t pl08x_irq(int irq, void *dev) | 1735 | static irqreturn_t pl08x_irq(int irq, void *dev) |