Received: by 2002:ac0:bc90:0:0:0:0:0 with SMTP id a16csp602363img; Fri, 22 Mar 2019 04:59:21 -0700 (PDT) X-Google-Smtp-Source: APXvYqxxvfSuvsVAozoXrknubaR8KWuLIkDIkbgtLGXbbmIBSv8jC4P5i+5drQMNPFRIdFzsSuMk X-Received: by 2002:a62:5687:: with SMTP id h7mr8714893pfj.198.1553255961109; Fri, 22 Mar 2019 04:59:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553255961; cv=none; d=google.com; s=arc-20160816; b=i63/yen6Lwneb+21gNGVIFHc4kfs6RLwFhJFM4UqTMHkDchVhSQyLg/FC4deJ4gNtZ qvkZ854Zi3W4glNZD1UBzzsH012+hUCdbBOZqMAW0KAjkHspSfiDB2nQ98Q5OZ+D37wu Bn6M43Fxs5Lt6n6R6oWjNh0gAILXyO3ZlqWMCT+S4LEhlX1b7hjHq/kmQGwnVyjnPxy6 Y4gXUfp/KFpX9G1WLpYu7a4iqQsJeel8dTCMsND2+ACZLC/8LIByAD7WDnskLplzfgYF CV//JcA21YYwTlATRDQ61q+GOHRs2hjnMvCKELTnqb4T4daYHIj5Jidy0mcagrpgnjUH BJGg== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=RH/7uuFSN3a7iSpheCpF8dkWDRaYe0CdiULw7ag+O90=; b=LCdaCbvwpUw1R70pLWSwhixbP6Top85OPpK+kkhPxFMYXdERXNL9Q3/aiPoJohUIlO TYLTniAM5CvqOzF5558AXN33dYKKqPbIpEwq/nY8aBYVmWnRAaTAXhxF28qESkn8lZJh vSTJhBiJH6sipFxy7H04qmfOMZgpZ1iWdc1tN8hVv0dFeiKeKubxpBt030mo/TOl2oTD 2vb8w0up/TBmG+NvntpGlBIn7lE9mJO80rbYBLJAp58KPLaRB1T/DT851gvaQpYBfcsf fEQzSnZrcK/W8fqr0/mjR9z6w+9wBdmt2e5kgM+2hKm8NDBbQhW+TSwU615R3QlOk4Qk 8V1A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=h7OPojfG; 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 b4si6766517pls.231.2019.03.22.04.59.06; Fri, 22 Mar 2019 04:59:21 -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; dkim=pass header.i=@kernel.org header.s=default header.b=h7OPojfG; 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 S1732861AbfCVL5S (ORCPT + 99 others); Fri, 22 Mar 2019 07:57:18 -0400 Received: from mail.kernel.org ([198.145.29.99]:33730 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732951AbfCVL5Q (ORCPT ); Fri, 22 Mar 2019 07:57:16 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id B3B3B2192B; Fri, 22 Mar 2019 11:57:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1553255835; bh=CI6OJJpJeC49gkm5VWyuHEROiDRWEbxUhx6WdLqEXHM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=h7OPojfGfXPNImriljuoLmA2di2r7JCDGCzrngQ6CgEJQPrrBrieqef58jgcuE79c 4HY8RojVZ5qKcZD7qjDOk70d6O+8+u1RzQDvQuLj7M0FmhgXbNTFWAZJCWW9sWRne/ dBSlXS7QEfvpTus9yS96fjM8ojrv7rupSWSzsZT8= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Eric Biggers , Zhang Zhijie , Herbert Xu Subject: [PATCH 4.19 021/280] crypto: rockchip - fix scatterlist nents error Date: Fri, 22 Mar 2019 12:12:54 +0100 Message-Id: <20190322111307.491937554@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190322111306.356185024@linuxfoundation.org> References: <20190322111306.356185024@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.19-stable review patch. If anyone has any objections, please let me know. ------------------ From: Zhang Zhijie commit 4359669a087633132203c52d67dd8c31e09e7b2e upstream. In some cases, the nents of src scatterlist is different from dst scatterlist. So two variables are used to handle the nents of src&dst scatterlist. Reported-by: Eric Biggers Fixes: 433cd2c617bf ("crypto: rockchip - add crypto driver for rk3288") Cc: # v4.5+ Signed-off-by: Zhang Zhijie Signed-off-by: Herbert Xu Signed-off-by: Greg Kroah-Hartman --- drivers/crypto/rockchip/rk3288_crypto.c | 2 +- drivers/crypto/rockchip/rk3288_crypto.h | 3 ++- drivers/crypto/rockchip/rk3288_crypto_ablkcipher.c | 5 +++-- drivers/crypto/rockchip/rk3288_crypto_ahash.c | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) --- a/drivers/crypto/rockchip/rk3288_crypto.c +++ b/drivers/crypto/rockchip/rk3288_crypto.c @@ -119,7 +119,7 @@ static int rk_load_data(struct rk_crypto count = (dev->left_bytes > PAGE_SIZE) ? PAGE_SIZE : dev->left_bytes; - if (!sg_pcopy_to_buffer(dev->first, dev->nents, + if (!sg_pcopy_to_buffer(dev->first, dev->src_nents, dev->addr_vir, count, dev->total - dev->left_bytes)) { dev_err(dev->dev, "[%s:%d] pcopy err\n", --- a/drivers/crypto/rockchip/rk3288_crypto.h +++ b/drivers/crypto/rockchip/rk3288_crypto.h @@ -207,7 +207,8 @@ struct rk_crypto_info { void *addr_vir; int aligned; int align_size; - size_t nents; + size_t src_nents; + size_t dst_nents; unsigned int total; unsigned int count; dma_addr_t addr_in; --- a/drivers/crypto/rockchip/rk3288_crypto_ablkcipher.c +++ b/drivers/crypto/rockchip/rk3288_crypto_ablkcipher.c @@ -260,8 +260,9 @@ static int rk_ablk_start(struct rk_crypt dev->total = req->nbytes; dev->sg_src = req->src; dev->first = req->src; - dev->nents = sg_nents(req->src); + dev->src_nents = sg_nents(req->src); dev->sg_dst = req->dst; + dev->dst_nents = sg_nents(req->dst); dev->aligned = 1; spin_lock_irqsave(&dev->lock, flags); @@ -297,7 +298,7 @@ static int rk_ablk_rx(struct rk_crypto_i dev->unload_data(dev); if (!dev->aligned) { - if (!sg_pcopy_from_buffer(req->dst, dev->nents, + if (!sg_pcopy_from_buffer(req->dst, dev->dst_nents, dev->addr_vir, dev->count, dev->total - dev->left_bytes - dev->count)) { --- a/drivers/crypto/rockchip/rk3288_crypto_ahash.c +++ b/drivers/crypto/rockchip/rk3288_crypto_ahash.c @@ -206,7 +206,7 @@ static int rk_ahash_start(struct rk_cryp dev->sg_dst = NULL; dev->sg_src = req->src; dev->first = req->src; - dev->nents = sg_nents(req->src); + dev->src_nents = sg_nents(req->src); rctx = ahash_request_ctx(req); rctx->mode = 0;