]> www.infradead.org Git - users/willy/xarray.git/commitdiff
crypto: cavium - Fix the parameter of dma_unmap_sg()
authorXiang Chen <chenxiang66@hisilicon.com>
Tue, 16 Mar 2021 01:55:24 +0000 (09:55 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 26 Mar 2021 09:02:34 +0000 (20:02 +1100)
For function dma_unmap_sg(), the <nents> parameter should be number of
elements in the scatterlist prior to the mapping, not after the mapping.
So fix this usage.

Signed-off-by: Xiang Chen <chenxiang66@hisilicon.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/cavium/nitrox/nitrox_reqmgr.c

index 53ef0679213301b81a79a47a66368952d34cbd93..df95ba26b414150c9b8163323973fd8f98e5e9c2 100644 (file)
@@ -58,14 +58,15 @@ static void softreq_unmap_sgbufs(struct nitrox_softreq *sr)
        struct device *dev = DEV(ndev);
 
 
-       dma_unmap_sg(dev, sr->in.sg, sr->in.sgmap_cnt, DMA_BIDIRECTIONAL);
+       dma_unmap_sg(dev, sr->in.sg, sg_nents(sr->in.sg),
+                    DMA_BIDIRECTIONAL);
        dma_unmap_single(dev, sr->in.sgcomp_dma, sr->in.sgcomp_len,
                         DMA_TO_DEVICE);
        kfree(sr->in.sgcomp);
        sr->in.sg = NULL;
        sr->in.sgmap_cnt = 0;
 
-       dma_unmap_sg(dev, sr->out.sg, sr->out.sgmap_cnt,
+       dma_unmap_sg(dev, sr->out.sg, sg_nents(sr->out.sg),
                     DMA_BIDIRECTIONAL);
        dma_unmap_single(dev, sr->out.sgcomp_dma, sr->out.sgcomp_len,
                         DMA_TO_DEVICE);
@@ -178,7 +179,7 @@ static int dma_map_inbufs(struct nitrox_softreq *sr,
        return 0;
 
 incomp_err:
-       dma_unmap_sg(dev, req->src, nents, DMA_BIDIRECTIONAL);
+       dma_unmap_sg(dev, req->src, sg_nents(req->src), DMA_BIDIRECTIONAL);
        sr->in.sgmap_cnt = 0;
        return ret;
 }
@@ -203,7 +204,7 @@ static int dma_map_outbufs(struct nitrox_softreq *sr,
        return 0;
 
 outcomp_map_err:
-       dma_unmap_sg(dev, req->dst, nents, DMA_BIDIRECTIONAL);
+       dma_unmap_sg(dev, req->dst, sg_nents(req->dst), DMA_BIDIRECTIONAL);
        sr->out.sgmap_cnt = 0;
        sr->out.sg = NULL;
        return ret;