dmaengine: dw-axi-dmac: do not print NULL LLI during error
authorBen Dooks <ben.dooks@sifive.com>
Fri, 8 Jul 2022 17:01:52 +0000 (18:01 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 25 Aug 2022 09:40:37 +0000 (11:40 +0200)
[ Upstream commit 86cb0defe0e275453bc39e856bb523eb425a6537 ]

During debugging we have seen an issue where axi_chan_dump_lli()
is passed a NULL LLI pointer which ends up causing an OOPS due
to trying to get fields from it. Simply print NULL LLI and exit
to avoid this.

Signed-off-by: Ben Dooks <ben.dooks@sifive.com>
Link: https://lore.kernel.org/r/20220708170153.269991-3-ben.dooks@sifive.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c

index 35993ab..8f765e2 100644 (file)
@@ -944,6 +944,11 @@ static int dw_axi_dma_chan_slave_config(struct dma_chan *dchan,
 static void axi_chan_dump_lli(struct axi_dma_chan *chan,
                              struct axi_dma_hw_desc *desc)
 {
+       if (!desc->lli) {
+               dev_err(dchan2dev(&chan->vc.chan), "NULL LLI\n");
+               return;
+       }
+
        dev_err(dchan2dev(&chan->vc.chan),
                "SAR: 0x%llx DAR: 0x%llx LLP: 0x%llx BTS 0x%x CTL: 0x%x:%08x",
                le64_to_cpu(desc->lli->sar),