]> 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>
Thu, 13 Mar 2025 11:47:30 +0000 (12:47 +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 8fdfc35ef39281f13112e22301892d7385281e0b..748a4af8151d445d3595d152f07d1287c02b8db9 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");