]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
zynq_fpga: use sgtable-based scatterlist wrappers
authorMarek Szyprowski <m.szyprowski@samsung.com>
Mon, 16 Jun 2025 12:09:32 +0000 (14:09 +0200)
committerXu Yilun <yilun.xu@linux.intel.com>
Wed, 18 Jun 2025 02:36:55 +0000 (10:36 +0800)
Use common wrappers operating directly on the struct sg_table objects to
fix incorrect use of statterlists related calls. dma_unmap_sg() function
has to be called with the number of elements originally passed to the
dma_map_sg() function, not the one returned in sgtable's nents.

CC: stable@vger.kernel.org
Fixes: 425902f5c8e3 ("fpga zynq: Use the scatterlist interface")
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Reviewed-by: Xu Yilun <yilun.xu@intel.com>
Link: https://lore.kernel.org/r/20250616120932.1090614-1-m.szyprowski@samsung.com
Signed-off-by: Xu Yilun <yilun.xu@linux.intel.com>
drivers/fpga/zynq-fpga.c

index f7e08f7ea9ef3cca215fbdf30cdcbf4cddbed9ea..0be0d569589d5c2327eb4e56ae8855102a852904 100644 (file)
@@ -406,7 +406,7 @@ static int zynq_fpga_ops_write(struct fpga_manager *mgr, struct sg_table *sgt)
        }
 
        priv->dma_nelms =
-           dma_map_sg(mgr->dev.parent, sgt->sgl, sgt->nents, DMA_TO_DEVICE);
+           dma_map_sgtable(mgr->dev.parent, sgt, DMA_TO_DEVICE, 0);
        if (priv->dma_nelms == 0) {
                dev_err(&mgr->dev, "Unable to DMA map (TO_DEVICE)\n");
                return -ENOMEM;
@@ -478,7 +478,7 @@ out_clk:
        clk_disable(priv->clk);
 
 out_free:
-       dma_unmap_sg(mgr->dev.parent, sgt->sgl, sgt->nents, DMA_TO_DEVICE);
+       dma_unmap_sgtable(mgr->dev.parent, sgt, DMA_TO_DEVICE, 0);
        return err;
 }