diff options
author | Nicolas Ferre <nicolas.ferre@microchip.com> | 2019-04-03 06:23:57 -0400 |
---|---|---|
committer | Vinod Koul <vkoul@kernel.org> | 2019-04-23 01:08:55 -0400 |
commit | e2c114c06da2d9ffad5b16690abf008d6696f689 (patch) | |
tree | 620e19030ebdf8405d027183d64e85845257b1a1 | |
parent | 23b846396b9501f9500cd8fb033a866f8c01f1a6 (diff) |
dmaengine: at_xdmac: remove BUG_ON macro in tasklet
Even if this case shouldn't happen when controller is properly programmed,
it's still better to avoid dumping a kernel Oops for this.
As the sequence may happen only for debugging purposes, log the error and
just finish the tasklet call.
Signed-off-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Acked-by: Ludovic Desroches <ludovic.desroches@microchip.com>
Signed-off-by: Vinod Koul <vkoul@kernel.org>
-rw-r--r-- | drivers/dma/at_xdmac.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/dma/at_xdmac.c b/drivers/dma/at_xdmac.c index fe69dccfa0c0..37a269420435 100644 --- a/drivers/dma/at_xdmac.c +++ b/drivers/dma/at_xdmac.c | |||
@@ -1606,7 +1606,11 @@ static void at_xdmac_tasklet(unsigned long data) | |||
1606 | struct at_xdmac_desc, | 1606 | struct at_xdmac_desc, |
1607 | xfer_node); | 1607 | xfer_node); |
1608 | dev_vdbg(chan2dev(&atchan->chan), "%s: desc 0x%p\n", __func__, desc); | 1608 | dev_vdbg(chan2dev(&atchan->chan), "%s: desc 0x%p\n", __func__, desc); |
1609 | BUG_ON(!desc->active_xfer); | 1609 | if (!desc->active_xfer) { |
1610 | dev_err(chan2dev(&atchan->chan), "Xfer not active: exiting"); | ||
1611 | spin_unlock_bh(&atchan->lock); | ||
1612 | return; | ||
1613 | } | ||
1610 | 1614 | ||
1611 | txd = &desc->tx_dma_desc; | 1615 | txd = &desc->tx_dma_desc; |
1612 | 1616 | ||