From patchwork Thu Apr 18 13:39:01 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gilad Ben-Yossef X-Patchwork-Id: 162492 Delivered-To: patch@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp762499jan; Thu, 18 Apr 2019 06:41:54 -0700 (PDT) X-Google-Smtp-Source: APXvYqyWokhv68h5P6SdmeM5gPKet6BhbNnd6dKR26vqeDuJTUMMjPgsu7BMwqkICE27Gx+Uhc9c X-Received: by 2002:a65:4482:: with SMTP id l2mr5244946pgq.362.1555594914674; Thu, 18 Apr 2019 06:41:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555594914; cv=none; d=google.com; s=arc-20160816; b=Kc3cNH+gcu5wbct1q2MTTMydG+9HdFNSYz6pZMIZnvkpWbY0YwPdD9TSlowR9SLfG/ 9vU8lfTRMsZTxIYIBa1ffJGQPerNk3afO9TO4GlFyd+BgWCmGUfLjsi1phchD4BYac83 2muhs+Ra4C16LSvEOVioHSGsW2i1m6vRhm2l8x22UFG4hXiFWaHXspTEsbbwIsK64EY2 A/pIij2/TFDcO5NRc8xfmYsGqxae+69fLmLG7zCPhV69RN2p0lv9CDFZirXzekQPN3Vy Dmch3cv95cLBOeQps6TBh/kO8i7TBXqbyh+IUVK5e9hlfl8nUc3jhMuY0Ou+bN6PTf7c ccyw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=hpd2kj9BRB4B1TNKDwRQ8KOwQ758CfUlG58kAOsgBDY=; b=Svo7KPprGW4R6LdN03Tz2Ka9v1Muh+Vw0J5nxSMD1h06L5nBpqSR66jfoGjOMYL1NI zEMnRV7d8DFnPXfqXkhAb3Zy9RK508brAOT6ZgphWjcgvkBCr0KPm+bwhwx0La5NzbCy uAe8kthmu7plyYPRdgF3ShjXzsBUIUKATg6iqDkg+GAkNFxxD2zCJRuFjyzWYuXy+/VN 8IrroPEWzscUKtHX9EO+xOevSAAZUCy6TL2QSuCJ5eL3hCNrU3alUBAl9iSvgPBIyriC X3rwItJ0J8bBpKXOeNkw9YPq7iQmmsp3NOM/gobj27+XqVTeG/DXJicA6h8M0dzWtYZe 0n+w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g123si2482047pfb.24.2019.04.18.06.41.54; Thu, 18 Apr 2019 06:41:54 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389455AbfDRNlw (ORCPT + 30 others); Thu, 18 Apr 2019 09:41:52 -0400 Received: from usa-sjc-mx-foss1.foss.arm.com ([217.140.101.70]:33718 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388375AbfDRNlt (ORCPT ); Thu, 18 Apr 2019 09:41:49 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 15CD880D; Thu, 18 Apr 2019 06:41:49 -0700 (PDT) Received: from e110176-lin.kfn.arm.com (e110176-lin.kfn.arm.com [10.50.4.178]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 6D42C3F5AF; Thu, 18 Apr 2019 06:41:47 -0700 (PDT) From: Gilad Ben-Yossef To: Herbert Xu , "David S. Miller" Cc: Ofir Drang , stable@vger.kernel.org, linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 26/35] crypto: ccree: zap entire sg on aead request unmap Date: Thu, 18 Apr 2019 16:39:01 +0300 Message-Id: <20190418133913.9122-27-gilad@benyossef.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190418133913.9122-1-gilad@benyossef.com> References: <20190418133913.9122-1-gilad@benyossef.com> MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org We were trying to be clever zapping out of the cache only the required length out of scatter list on AEAD request completion and getting it wrong. As Knuth said: "when in douby, use brute force". Zap the whole length of the scatter list. Signed-off-by: Gilad Ben-Yossef Cc: stable@vger.kernel.org # v4.19+ --- drivers/crypto/ccree/cc_buffer_mgr.c | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) -- 2.21.0 diff --git a/drivers/crypto/ccree/cc_buffer_mgr.c b/drivers/crypto/ccree/cc_buffer_mgr.c index fa625bdde3f9..09dceec7d828 100644 --- a/drivers/crypto/ccree/cc_buffer_mgr.c +++ b/drivers/crypto/ccree/cc_buffer_mgr.c @@ -517,9 +517,7 @@ void cc_unmap_aead_request(struct device *dev, struct aead_request *req) { struct aead_req_ctx *areq_ctx = aead_request_ctx(req); unsigned int hw_iv_size = areq_ctx->hw_iv_size; - struct crypto_aead *tfm = crypto_aead_reqtfm(req); struct cc_drvdata *drvdata = dev_get_drvdata(dev); - u32 size_to_unmap = 0; if (areq_ctx->mac_buf_dma_addr) { dma_unmap_single(dev, areq_ctx->mac_buf_dma_addr, @@ -576,19 +574,12 @@ void cc_unmap_aead_request(struct device *dev, struct aead_request *req) dev_dbg(dev, "Unmapping src sgl: req->src=%pK areq_ctx->src.nents=%u areq_ctx->assoc.nents=%u assoclen:%u cryptlen=%u\n", sg_virt(req->src), areq_ctx->src.nents, areq_ctx->assoc.nents, areq_ctx->assoclen, req->cryptlen); - size_to_unmap = areq_ctx->assoclen + req->cryptlen; - if (areq_ctx->gen_ctx.op_type == DRV_CRYPTO_DIRECTION_ENCRYPT) - size_to_unmap += areq_ctx->req_authsize; - if (areq_ctx->is_gcm4543) - size_to_unmap += crypto_aead_ivsize(tfm); - dma_unmap_sg(dev, req->src, sg_nents_for_len(req->src, size_to_unmap), - DMA_BIDIRECTIONAL); + dma_unmap_sg(dev, req->src, sg_nents(req->src), DMA_BIDIRECTIONAL); if (req->src != req->dst) { dev_dbg(dev, "Unmapping dst sgl: req->dst=%pK\n", sg_virt(req->dst)); - dma_unmap_sg(dev, req->dst, - sg_nents_for_len(req->dst, size_to_unmap), + dma_unmap_sg(dev, req->dst, sg_nents(req->dst), DMA_BIDIRECTIONAL); } if (drvdata->coherent &&