]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
mtd: rawnand: cadence: fix incorrect device in dma_unmap_single
authorNiravkumar L Rabara <niravkumar.l.rabara@intel.com>
Mon, 10 Feb 2025 05:35:51 +0000 (13:35 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 7 Mar 2025 15:56:40 +0000 (16:56 +0100)
commit f37d135b42cb484bdecee93f56b9f483214ede78 upstream.

dma_map_single is using physical/bus device (DMA) but dma_unmap_single
is using framework device(NAND controller), which is incorrect.
Fixed dma_unmap_single to use correct physical/bus device.

Fixes: ec4ba01e894d ("mtd: rawnand: Add new Cadence NAND driver to MTD subsystem")
Cc: stable@vger.kernel.org
Signed-off-by: Niravkumar L Rabara <niravkumar.l.rabara@intel.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/mtd/nand/raw/cadence-nand-controller.c

index de5a88a775d88861c962c2e0625192fdc2e0a83b..7d686a96d44ccc11dc1b7b632c7946f8ab015574 100644 (file)
@@ -1858,12 +1858,12 @@ static int cadence_nand_slave_dma_transfer(struct cdns_nand_ctrl *cdns_ctrl,
        dma_async_issue_pending(cdns_ctrl->dmac);
        wait_for_completion(&finished);
 
-       dma_unmap_single(cdns_ctrl->dev, buf_dma, len, dir);
+       dma_unmap_single(dma_dev->dev, buf_dma, len, dir);
 
        return 0;
 
 err_unmap:
-       dma_unmap_single(cdns_ctrl->dev, buf_dma, len, dir);
+       dma_unmap_single(dma_dev->dev, buf_dma, len, dir);
 
 err:
        dev_dbg(cdns_ctrl->dev, "Fall back to CPU I/O\n");