OSDN Git Service

dmaengine: at_hdmac: Do not print messages on console while holding the lock
authorTudor Ambarus <tudor.ambarus@microchip.com>
Tue, 25 Oct 2022 09:02:50 +0000 (12:02 +0300)
committerVinod Koul <vkoul@kernel.org>
Fri, 11 Nov 2022 06:45:08 +0000 (12:15 +0530)
The descriptor was already removed from the transfer list, there's no
reason to keep the channel lock while printing desc info, thus do the
prints without holding the lock.

Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Link: https://lore.kernel.org/r/20221025090306.297886-1-tudor.ambarus@microchip.com
Link: https://lore.kernel.org/r/20221025090306.297886-17-tudor.ambarus@microchip.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/at_hdmac.c

index 858bd64..f365ac4 100644 (file)
@@ -549,6 +549,8 @@ static void atc_handle_error(struct at_dma_chan *atchan)
                atc_dostart(atchan, desc);
        }
 
+       spin_unlock_irqrestore(&atchan->lock, flags);
+
        /*
         * KERN_CRITICAL may seem harsh, but since this only happens
         * when someone submits a bad physical address in a
@@ -564,8 +566,6 @@ static void atc_handle_error(struct at_dma_chan *atchan)
        list_for_each_entry(child, &bad_desc->tx_list, desc_node)
                atc_dump_lli(atchan, &child->lli);
 
-       spin_unlock_irqrestore(&atchan->lock, flags);
-
        /* Pretend the descriptor completed successfully */
        atc_chain_complete(atchan, bad_desc);
 }