summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXu Yilun <yilun.xu@linux.intel.com>2025-08-06 15:06:05 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-08-28 16:22:52 +0200
commit56a00082d24153121d155b3a6953e6f1c735767a (patch)
tree7eaf2c8713f655dff3ef0b50989b3c4977c51d09
parentc41a18d0ccc379b70270a6bd7d17cba50344d2de (diff)
downloadlinux-56a00082d24153121d155b3a6953e6f1c735767a.tar.gz
linux-56a00082d24153121d155b3a6953e6f1c735767a.tar.bz2
linux-56a00082d24153121d155b3a6953e6f1c735767a.zip
fpga: zynq_fpga: Fix the wrong usage of dma_map_sgtable()
commit 1ca61060de92a4320d73adfe5dc8d335653907ac upstream. dma_map_sgtable() returns only 0 or the error code. Read sgt->nents to get the number of mapped segments. Fixes: 37e00703228a ("zynq_fpga: use sgtable-based scatterlist wrappers") Reported-by: Pavel Pisa <pisa@fel.cvut.cz> Closes: https://lore.kernel.org/linux-fpga/202508041548.22955.pisa@fel.cvut.cz/ Reviewed-by: Jason Gunthorpe <jgg@nvidia.com> Reviewed-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Xu Yilun <yilun.xu@linux.intel.com> Tested-by: Pavel Pisa <pisa@fel.cvut.cz> Link: https://lore.kernel.org/r/20250806070605.1920909-2-yilun.xu@linux.intel.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/fpga/zynq-fpga.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/fpga/zynq-fpga.c b/drivers/fpga/zynq-fpga.c
index 3743c5f5f0c1..cdb2bea8b6c2 100644
--- a/drivers/fpga/zynq-fpga.c
+++ b/drivers/fpga/zynq-fpga.c
@@ -405,12 +405,12 @@ static int zynq_fpga_ops_write(struct fpga_manager *mgr, struct sg_table *sgt)
}
}
- priv->dma_nelms =
- dma_map_sgtable(mgr->dev.parent, sgt, DMA_TO_DEVICE, 0);
- if (priv->dma_nelms == 0) {
+ err = dma_map_sgtable(mgr->dev.parent, sgt, DMA_TO_DEVICE, 0);
+ if (err) {
dev_err(&mgr->dev, "Unable to DMA map (TO_DEVICE)\n");
- return -ENOMEM;
+ return err;
}
+ priv->dma_nelms = sgt->nents;
/* enable clock */
err = clk_enable(priv->clk);