Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp3907076pxf; Tue, 16 Mar 2021 00:16:13 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzvh2B4lerBZJHl50hxDRtC4dCkz2LL05evv+Hi+V1bS8XSzwCoEh24UFyg4RkqKu0cikgs X-Received: by 2002:a17:906:5012:: with SMTP id s18mr27036915ejj.100.1615878973365; Tue, 16 Mar 2021 00:16:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1615878973; cv=none; d=google.com; s=arc-20160816; b=rzKQ05ofwSht8lxucPSHAAD5viRqL4P8YQmcPvGutu5Wc9KTIVECGhlA3CHZQwwqzI jQKlyBzLum3XVcDCE6/AcV+JddGpJWFpr18LLwi6zdGDknrdwl1WQ/JUz9PNdHyPW27S scNKpSvL9lJNoa/FaapviQZD25gU3BIPfkDSCaPhilaWrUNXLko75LOdh2ZrEuTWTXKf FUNoAPYhRipiAtLH/ILzGBjrqjViTZoG0dKYes01eN7b2IioksT1fbVUNfROaSs7cx2t QarlmxzpUSGyJxqQTJWhPfUKwYdFinDKxqbIilR1JvfuAkYQyKhyuELcEJ79NWQ2TxZS 6/ZQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from; bh=EGv1zapbwIZYQWFXU5HS7a6y9yQqJEWyl+53m1SEtlM=; b=axl0E/Gllt8S7NOAKf1UHi6XGAY9K8VTU52vZ4XrirYSmCK74tCYXvNiarjxcDn/ZT Rb4ebzIYpWzVGcfgGtM+tV6t0FZd1TiyIQQgOrjWx2GfvFfgRSFnZGEi7eziw+uMV2rL 43yFTz0AVYiw9tc3G90H1SWvhitfFVyjT0g4eZ6FG8z9kp7ks6MA1qshbbCTRVEZBTqV Z9t0NUhbUMyNZeSYYz/0X6iLO5t5ALX22s/5RIOx6o2RQ+05CJIMNFycdeN+FaPiDer8 zyjDK/zKjSFrsB9i2XzuHmm4QsXTXB1CHQS9gtVZzdGaHD9fFnFGRKje0V+c6H4eM3m5 gPuw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=hisilicon.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id i13si12377013ejy.93.2021.03.16.00.15.50; Tue, 16 Mar 2021 00:16:13 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=hisilicon.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233878AbhCPB7y (ORCPT + 99 others); Mon, 15 Mar 2021 21:59:54 -0400 Received: from szxga05-in.huawei.com ([45.249.212.191]:13958 "EHLO szxga05-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231668AbhCPB7v (ORCPT ); Mon, 15 Mar 2021 21:59:51 -0400 Received: from DGGEMS409-HUB.china.huawei.com (unknown [172.30.72.58]) by szxga05-in.huawei.com (SkyGuard) with ESMTP id 4DzxJK6X6RzrWkn; Tue, 16 Mar 2021 09:57:53 +0800 (CST) Received: from localhost.localdomain (10.69.192.58) by DGGEMS409-HUB.china.huawei.com (10.3.19.209) with Microsoft SMTP Server id 14.3.498.0; Tue, 16 Mar 2021 09:59:36 +0800 From: chenxiang To: , , , , CC: , , Xiang Chen Subject: [PATCH v2 4/4] crypto: allwinner - Fix the parameter of dma_unmap_sg() Date: Tue, 16 Mar 2021 09:55:26 +0800 Message-ID: <1615859726-57062-5-git-send-email-chenxiang66@hisilicon.com> X-Mailer: git-send-email 2.8.1 In-Reply-To: <1615859726-57062-1-git-send-email-chenxiang66@hisilicon.com> References: <1615859726-57062-1-git-send-email-chenxiang66@hisilicon.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.69.192.58] X-CFilter-Loop: Reflected Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org From: Xiang Chen For function dma_unmap_sg(), the 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 Acked-by: Corentin LABBE Tested-by: Corentin LABBE --- drivers/crypto/allwinner/sun8i-ce/sun8i-ce-cipher.c | 9 ++++++--- drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c | 3 ++- drivers/crypto/allwinner/sun8i-ss/sun8i-ss-cipher.c | 9 ++++++--- drivers/crypto/allwinner/sun8i-ss/sun8i-ss-hash.c | 3 ++- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-cipher.c b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-cipher.c index 33707a2..54ae8d1 100644 --- a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-cipher.c +++ b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-cipher.c @@ -240,11 +240,14 @@ static int sun8i_ce_cipher_prepare(struct crypto_engine *engine, void *async_req theend_sgs: if (areq->src == areq->dst) { - dma_unmap_sg(ce->dev, areq->src, nr_sgs, DMA_BIDIRECTIONAL); + dma_unmap_sg(ce->dev, areq->src, sg_nents(areq->src), + DMA_BIDIRECTIONAL); } else { if (nr_sgs > 0) - dma_unmap_sg(ce->dev, areq->src, nr_sgs, DMA_TO_DEVICE); - dma_unmap_sg(ce->dev, areq->dst, nr_sgd, DMA_FROM_DEVICE); + dma_unmap_sg(ce->dev, areq->src, sg_nents(areq->src), + DMA_TO_DEVICE); + dma_unmap_sg(ce->dev, areq->dst, sg_nents(areq->dst), + DMA_FROM_DEVICE); } theend_iv: diff --git a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c index 2f09a37..8819471 100644 --- a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c +++ b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c @@ -405,7 +405,8 @@ int sun8i_ce_hash_run(struct crypto_engine *engine, void *breq) err = sun8i_ce_run_task(ce, flow, crypto_tfm_alg_name(areq->base.tfm)); dma_unmap_single(ce->dev, addr_pad, j * 4, DMA_TO_DEVICE); - dma_unmap_sg(ce->dev, areq->src, nr_sgs, DMA_TO_DEVICE); + dma_unmap_sg(ce->dev, areq->src, sg_nents(areq->src), + DMA_TO_DEVICE); dma_unmap_single(ce->dev, addr_res, digestsize, DMA_FROM_DEVICE); diff --git a/drivers/crypto/allwinner/sun8i-ss/sun8i-ss-cipher.c b/drivers/crypto/allwinner/sun8i-ss/sun8i-ss-cipher.c index ed2a69f..f945750 100644 --- a/drivers/crypto/allwinner/sun8i-ss/sun8i-ss-cipher.c +++ b/drivers/crypto/allwinner/sun8i-ss/sun8i-ss-cipher.c @@ -232,10 +232,13 @@ static int sun8i_ss_cipher(struct skcipher_request *areq) theend_sgs: if (areq->src == areq->dst) { - dma_unmap_sg(ss->dev, areq->src, nr_sgs, DMA_BIDIRECTIONAL); + dma_unmap_sg(ss->dev, areq->src, sg_nents(areq->src), + DMA_BIDIRECTIONAL); } else { - dma_unmap_sg(ss->dev, areq->src, nr_sgs, DMA_TO_DEVICE); - dma_unmap_sg(ss->dev, areq->dst, nr_sgd, DMA_FROM_DEVICE); + dma_unmap_sg(ss->dev, areq->src, sg_nents(areq->src), + DMA_TO_DEVICE); + dma_unmap_sg(ss->dev, areq->dst, sg_nents(areq->dst), + DMA_FROM_DEVICE); } theend_iv: diff --git a/drivers/crypto/allwinner/sun8i-ss/sun8i-ss-hash.c b/drivers/crypto/allwinner/sun8i-ss/sun8i-ss-hash.c index 0b9aa24..7d1fc9a 100644 --- a/drivers/crypto/allwinner/sun8i-ss/sun8i-ss-hash.c +++ b/drivers/crypto/allwinner/sun8i-ss/sun8i-ss-hash.c @@ -432,7 +432,8 @@ int sun8i_ss_hash_run(struct crypto_engine *engine, void *breq) err = sun8i_ss_run_hash_task(ss, rctx, crypto_tfm_alg_name(areq->base.tfm)); dma_unmap_single(ss->dev, addr_pad, j * 4, DMA_TO_DEVICE); - dma_unmap_sg(ss->dev, areq->src, nr_sgs, DMA_TO_DEVICE); + dma_unmap_sg(ss->dev, areq->src, sg_nents(areq->src), + DMA_TO_DEVICE); dma_unmap_single(ss->dev, addr_res, digestsize, DMA_FROM_DEVICE); kfree(pad); -- 2.8.1