mtd: rawnand: intel: Fix an error handling path in 'ebu_dma_start()'
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Sun, 24 Jan 2021 07:39:55 +0000 (08:39 +0100)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Mon, 1 Feb 2021 17:59:19 +0000 (18:59 +0100)
If 'dmaengine_prep_slave_single()' fails, we must undo a previous
'dma_map_single()' call, as already done in all the other error handling
paths of this function.

Fixes: 0b1039f016e8 ("mtd: rawnand: Add NAND controller support on Intel LGM SoC")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20210124073955.728797-1-christophe.jaillet@wanadoo.fr
drivers/mtd/nand/raw/intel-nand-controller.c

index fdb112e..4c08e9f 100644 (file)
@@ -318,8 +318,10 @@ static int ebu_dma_start(struct ebu_nand_controller *ebu_host, u32 dir,
        }
 
        tx = dmaengine_prep_slave_single(chan, buf_dma, len, dir, flags);
-       if (!tx)
-               return -ENXIO;
+       if (!tx) {
+               ret = -ENXIO;
+               goto err_unmap;
+       }
 
        tx->callback = callback;
        tx->callback_param = ebu_host;