dmaengine: at_xdmac: remove BUG_ON macro in tasklet
authorNicolas Ferre <nicolas.ferre@microchip.com>
Wed, 3 Apr 2019 10:23:57 +0000 (12:23 +0200)
committerVinod Koul <vkoul@kernel.org>
Tue, 23 Apr 2019 05:08:55 +0000 (10:38 +0530)
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>
drivers/dma/at_xdmac.c

index fe69dcc..37a2694 100644 (file)
@@ -1606,7 +1606,11 @@ static void at_xdmac_tasklet(unsigned long data)
                                        struct at_xdmac_desc,
                                        xfer_node);
                dev_vdbg(chan2dev(&atchan->chan), "%s: desc 0x%p\n", __func__, desc);
-               BUG_ON(!desc->active_xfer);
+               if (!desc->active_xfer) {
+                       dev_err(chan2dev(&atchan->chan), "Xfer not active: exiting");
+                       spin_unlock_bh(&atchan->lock);
+                       return;
+               }
 
                txd = &desc->tx_dma_desc;