summaryrefslogtreecommitdiff
path: root/drivers/hsi/controllers
diff options
context:
space:
mode:
authorJack Wang <jinpu.wang@ionos.com>2022-08-26 12:12:27 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2022-10-26 12:35:05 +0200
commit6225501072d3f2280eaad1e10a26a019fd5492a2 (patch)
treefeed3d11b9b0113c6f80df68214931b6904a05c8 /drivers/hsi/controllers
parent691f23a8475f04c988f7e98066b084e996b40fa0 (diff)
downloadlinux-6225501072d3f2280eaad1e10a26a019fd5492a2.tar.gz
linux-6225501072d3f2280eaad1e10a26a019fd5492a2.tar.bz2
linux-6225501072d3f2280eaad1e10a26a019fd5492a2.zip
HSI: omap_ssi_port: Fix dma_map_sg error check
[ Upstream commit 551e325bbd3fb8b5a686ac1e6cf76e5641461cf2 ] dma_map_sg return 0 on error, in case of error return -EIO to caller. Cc: Sebastian Reichel <sre@kernel.org> Cc: linux-kernel@vger.kernel.org (open list) Fixes: b209e047bc74 ("HSI: Introduce OMAP SSI driver") Signed-off-by: Jack Wang <jinpu.wang@ionos.com> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'drivers/hsi/controllers')
-rw-r--r--drivers/hsi/controllers/omap_ssi_port.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/hsi/controllers/omap_ssi_port.c b/drivers/hsi/controllers/omap_ssi_port.c
index a0cb5be246e1..b9495b720f1b 100644
--- a/drivers/hsi/controllers/omap_ssi_port.c
+++ b/drivers/hsi/controllers/omap_ssi_port.c
@@ -230,10 +230,10 @@ static int ssi_start_dma(struct hsi_msg *msg, int lch)
if (msg->ttype == HSI_MSG_READ) {
err = dma_map_sg(&ssi->device, msg->sgt.sgl, msg->sgt.nents,
DMA_FROM_DEVICE);
- if (err < 0) {
+ if (!err) {
dev_dbg(&ssi->device, "DMA map SG failed !\n");
pm_runtime_put_autosuspend(omap_port->pdev);
- return err;
+ return -EIO;
}
csdp = SSI_DST_BURST_4x32_BIT | SSI_DST_MEMORY_PORT |
SSI_SRC_SINGLE_ACCESS0 | SSI_SRC_PERIPHERAL_PORT |
@@ -247,10 +247,10 @@ static int ssi_start_dma(struct hsi_msg *msg, int lch)
} else {
err = dma_map_sg(&ssi->device, msg->sgt.sgl, msg->sgt.nents,
DMA_TO_DEVICE);
- if (err < 0) {
+ if (!err) {
dev_dbg(&ssi->device, "DMA map SG failed !\n");
pm_runtime_put_autosuspend(omap_port->pdev);
- return err;
+ return -EIO;
}
csdp = SSI_SRC_BURST_4x32_BIT | SSI_SRC_MEMORY_PORT |
SSI_DST_SINGLE_ACCESS0 | SSI_DST_PERIPHERAL_PORT |