Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

crypto: qce - Fix dma_map_sg error check

dma_map_sg return 0 on error, fix the error check and return -EIO to
caller.

Cc: Thara Gopinath <thara.gopinath@gmail.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: linux-crypto@vger.kernel.org
Cc: linux-arm-msm@vger.kernel.org
Cc: linux-kernel@vger.kernel.org

Signed-off-by: Jack Wang <jinpu.wang@ionos.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

authored by

Jack Wang and committed by
Herbert Xu
417f62f6 66f0b6b7

+11 -9
+2 -2
drivers/crypto/qce/aead.c
··· 450 450 if (ret) 451 451 return ret; 452 452 dst_nents = dma_map_sg(qce->dev, rctx->dst_sg, rctx->dst_nents, dir_dst); 453 - if (dst_nents < 0) { 454 - ret = dst_nents; 453 + if (!dst_nents) { 454 + ret = -EIO; 455 455 goto error_free; 456 456 } 457 457
+5 -3
drivers/crypto/qce/sha.c
··· 97 97 } 98 98 99 99 ret = dma_map_sg(qce->dev, req->src, rctx->src_nents, DMA_TO_DEVICE); 100 - if (ret < 0) 101 - return ret; 100 + if (!ret) 101 + return -EIO; 102 102 103 103 sg_init_one(&rctx->result_sg, qce->dma.result_buf, QCE_RESULT_BUF_SZ); 104 104 105 105 ret = dma_map_sg(qce->dev, &rctx->result_sg, 1, DMA_FROM_DEVICE); 106 - if (ret < 0) 106 + if (!ret) { 107 + ret = -EIO; 107 108 goto error_unmap_src; 109 + } 108 110 109 111 ret = qce_dma_prep_sgs(&qce->dma, req->src, rctx->src_nents, 110 112 &rctx->result_sg, 1, qce_ahash_done, async_req);
+4 -4
drivers/crypto/qce/skcipher.c
··· 124 124 rctx->dst_sg = rctx->dst_tbl.sgl; 125 125 126 126 dst_nents = dma_map_sg(qce->dev, rctx->dst_sg, rctx->dst_nents, dir_dst); 127 - if (dst_nents < 0) { 128 - ret = dst_nents; 127 + if (!dst_nents) { 128 + ret = -EIO; 129 129 goto error_free; 130 130 } 131 131 132 132 if (diff_dst) { 133 133 src_nents = dma_map_sg(qce->dev, req->src, rctx->src_nents, dir_src); 134 - if (src_nents < 0) { 135 - ret = src_nents; 134 + if (!src_nents) { 135 + ret = -EIO; 136 136 goto error_unmap_dst; 137 137 } 138 138 rctx->src_sg = req->src;