Blob Blame History Raw
From 11f308ee18d74cdb579ba8bc8f10557b9f2cc2f2 Mon Sep 17 00:00:00 2001
From: Dan Carpenter <dan.carpenter@oracle.com>
Date: Mon, 19 Jun 2017 13:51:25 +0300
Subject: [PATCH 8/9] crypto: cavium/nitrox - dma_mapping_error() returns bool
References: FATE#323034
Git-commit: f2339eb9b9b01c6728ed36c274ca381bc6c452c0
Patch-mainline: v4.13-rc1

We want to return negative error codes here, but we're accidentally
propogating the "true" return from dma_mapping_error().

Fixes: 14fa93cdcd9b ("crypto: cavium - Add support for CNN55XX adapters.")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Oliver Neukum <oneukum@suse.com>
---
 drivers/crypto/cavium/nitrox/nitrox_reqmgr.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/drivers/crypto/cavium/nitrox/nitrox_reqmgr.c b/drivers/crypto/cavium/nitrox/nitrox_reqmgr.c
index b6bd2a870028..4bb4377c5ac0 100644
--- a/drivers/crypto/cavium/nitrox/nitrox_reqmgr.c
+++ b/drivers/crypto/cavium/nitrox/nitrox_reqmgr.c
@@ -199,9 +199,10 @@ static int dma_map_inbufs(struct nitrox_softreq *sr,
 	sr->in.sglist = glist;
 	/* map IV */
 	dma = dma_map_single(dev, &req->iv, req->ivsize, DMA_BIDIRECTIONAL);
-	ret = dma_mapping_error(dev, dma);
-	if (ret)
+	if (dma_mapping_error(dev, dma)) {
+		ret = -EINVAL;
 		goto iv_map_err;
+	}
 
 	sr->in.dir = (req->src == req->dst) ? DMA_BIDIRECTIONAL : DMA_TO_DEVICE;
 	/* map src entries */
@@ -268,16 +269,18 @@ static int dma_map_outbufs(struct nitrox_softreq *sr,
 	/* map ORH */
 	sr->resp.orh_dma = dma_map_single(dev, &sr->resp.orh, ORH_HLEN,
 					  sr->out.dir);
-	ret = dma_mapping_error(dev, sr->resp.orh_dma);
-	if (ret)
+	if (dma_mapping_error(dev, sr->resp.orh_dma)) {
+		ret = -EINVAL;
 		goto orh_map_err;
+	}
 
 	/* map completion */
 	sr->resp.completion_dma = dma_map_single(dev, &sr->resp.completion,
 						 COMP_HLEN, sr->out.dir);
-	ret = dma_mapping_error(dev, sr->resp.completion_dma);
-	if (ret)
+	if (dma_mapping_error(dev, sr->resp.completion_dma)) {
+		ret = -EINVAL;
 		goto compl_map_err;
+	}
 
 	sr->inplace = (req->src == req->dst) ? true : false;
 	/* out place */
-- 
2.12.3