diff options
author | Yang Yingliang <yangyingliang@huawei.com> | 2022-01-07 03:40:47 +0100 |
---|---|---|
committer | Vinod Koul <vkoul@kernel.org> | 2022-02-15 06:26:04 +0100 |
commit | aa7accb7f91c4c2c98bfdde62446d96ecc1ef2c6 (patch) | |
tree | 6dbb42918a6dfff755b4a886c3b1cce7bfbc8265 /drivers/dma | |
parent | dmaengine: ptdma: Fix the error handling path in pt_core_init() (diff) | |
download | linux-aa7accb7f91c4c2c98bfdde62446d96ecc1ef2c6.tar.xz linux-aa7accb7f91c4c2c98bfdde62446d96ecc1ef2c6.zip |
dmaengine: at_xdmac: Fix missing unlock in at_xdmac_tasklet()
Add the missing unlock before return from at_xdmac_tasklet().
Fixes: e77e561925df ("dmaengine: at_xdmac: Fix race over irq_status")
Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Reviewed-by: Tudor Ambarus <tudor.ambarus@microchip.com>
Link: https://lore.kernel.org/r/20220107024047.1051915-1-yangyingliang@huawei.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Diffstat (limited to 'drivers/dma')
-rw-r--r-- | drivers/dma/at_xdmac.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/dma/at_xdmac.c b/drivers/dma/at_xdmac.c index a1da2b4b6d73..1476156af74b 100644 --- a/drivers/dma/at_xdmac.c +++ b/drivers/dma/at_xdmac.c @@ -1681,8 +1681,10 @@ static void at_xdmac_tasklet(struct tasklet_struct *t) __func__, atchan->irq_status); if (!(atchan->irq_status & AT_XDMAC_CIS_LIS) && - !(atchan->irq_status & error_mask)) + !(atchan->irq_status & error_mask)) { + spin_unlock_irq(&atchan->lock); return; + } if (atchan->irq_status & error_mask) at_xdmac_handle_error(atchan); |