From patchwork Mon May 20 12:13:50 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg Kroah-Hartman X-Patchwork-Id: 164604 Delivered-To: patch@linaro.org Received: by 2002:a92:9e1a:0:0:0:0:0 with SMTP id q26csp218828ili; Mon, 20 May 2019 05:23:07 -0700 (PDT) X-Google-Smtp-Source: APXvYqx8rKFj6msVkM2Dziclyk5csYZcPm6Y0gN9O8YylmlS7uR3mHx1ZBVC34KZnaqeQwDXJPGN X-Received: by 2002:a62:425b:: with SMTP id p88mr30387238pfa.26.1558354987377; Mon, 20 May 2019 05:23:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558354987; cv=none; d=google.com; s=arc-20160816; b=n8QI4Sr1Lw46KmijiwgDUpvw+0QnsRbc7DspRltiPBtDfEjUlnghJjFTSxoSDsL8Pf JJ2MA1FQFZJOiJAaMznucCa3BCiGP+ovfFBQ5vY4x9GBg0O4udCGFvEfSiBTTTT3LdWc hKNc0uRaBwfb5D95lxCltZzNGzaHMwbLO2dBEJEobl5Zl2e2O8wibKJsWO/AZK2zNzsH pzFiwgDtVRfGI0EKt42pyBbyRXweDMPciptL7VB1Yf6OZg5rCYbAqq/0dbqAb/bh7anU q65cL5UyKDlp3Yq8XD61xacVDkBMFPeImM45amOe78G2tVRtwCm8GDrrAd2ElpdLf9jn /A1g== 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=r8uPgyUeCKZj+u1oFM/J+1e3esHunGPP7dCdNrZZqNQ=; b=SLOQR4skeK+UcawRbceoJXjTNQuS3Ey5YeB6ZKqkrLxWBtDnWC/c1a1rGE8Le6IAsG WbP5KiTd1cdoe65E1NL9hgrB6VJ6EGH372oeEaD2kTzl8ZjBXNbCcBnSwf0/QiWuiR58 6NytPf8FjjIWu56Jzva0kHm78rRbuSeIZ01QKGeR3f7/fgxJu6Co9yjEyOQaimbnDVLy NxMxfbaEcqp8Gx4Yhz8afn3aJaa5aoNB49bHovfpQpTXZTt7ci+KTF07f9pgHbxFNNhb j/QRUeeKKZ7XCtNkMNFNRMERBzHuxK4RrT/+cNAEmkDjc4/dFUchF+IZ+zHvwrd1qCc7 1ePA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=jmNTun6f; 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 v29si10662519pgc.64.2019.05.20.05.23.07; Mon, 20 May 2019 05:23:07 -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=jmNTun6f; 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 S2388524AbfETMXF (ORCPT + 30 others); Mon, 20 May 2019 08:23:05 -0400 Received: from mail.kernel.org ([198.145.29.99]:37200 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388288AbfETMXC (ORCPT ); Mon, 20 May 2019 08:23:02 -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 2767E216C4; Mon, 20 May 2019 12:22:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1558354980; bh=t4YPewq3D+jh2vmXPVGr1+GWoDZMuOUNpivSsGEzJiM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jmNTun6fbwayVKRLkEmOHBhPP4p5FzCzUl8RNj4WMqEI0E1DYW9oaSaxWzak0wFLi VMOnRm62ezAc874Y/E8r5HT6mB4TbH7rSkocHnHPHdISMTkBCyuo3HbZtv/RbcMb6T gv0QTuHFtPOlblBguHE9sQS6Axa9X8rTa5ESJSz8= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Gilad Ben-Yossef , Herbert Xu Subject: [PATCH 4.19 044/105] crypto: ccree - remove special handling of chained sg Date: Mon, 20 May 2019 14:13:50 +0200 Message-Id: <20190520115250.067723383@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190520115247.060821231@linuxfoundation.org> References: <20190520115247.060821231@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Gilad Ben-Yossef commit c4b22bf51b815fb61a35a27fc847a88bc28ebb63 upstream. We were handling chained scattergather lists with specialized code needlessly as the regular sg APIs handle them just fine. The code handling this also had an (unused) code path with a use-before-init error, flagged by Coverity. Remove all special handling of chained sg and leave their handling to the regular sg APIs. Signed-off-by: Gilad Ben-Yossef Cc: stable@vger.kernel.org # v4.19+ Signed-off-by: Herbert Xu Signed-off-by: Greg Kroah-Hartman --- drivers/crypto/ccree/cc_buffer_mgr.c | 98 +++++++---------------------------- 1 file changed, 22 insertions(+), 76 deletions(-) --- a/drivers/crypto/ccree/cc_buffer_mgr.c +++ b/drivers/crypto/ccree/cc_buffer_mgr.c @@ -83,24 +83,17 @@ static void cc_copy_mac(struct device *d */ static unsigned int cc_get_sgl_nents(struct device *dev, struct scatterlist *sg_list, - unsigned int nbytes, u32 *lbytes, - bool *is_chained) + unsigned int nbytes, u32 *lbytes) { unsigned int nents = 0; while (nbytes && sg_list) { - if (sg_list->length) { - nents++; - /* get the number of bytes in the last entry */ - *lbytes = nbytes; - nbytes -= (sg_list->length > nbytes) ? - nbytes : sg_list->length; - sg_list = sg_next(sg_list); - } else { - sg_list = (struct scatterlist *)sg_page(sg_list); - if (is_chained) - *is_chained = true; - } + nents++; + /* get the number of bytes in the last entry */ + *lbytes = nbytes; + nbytes -= (sg_list->length > nbytes) ? + nbytes : sg_list->length; + sg_list = sg_next(sg_list); } dev_dbg(dev, "nents %d last bytes %d\n", nents, *lbytes); return nents; @@ -142,7 +135,7 @@ void cc_copy_sg_portion(struct device *d { u32 nents, lbytes; - nents = cc_get_sgl_nents(dev, sg, end, &lbytes, NULL); + nents = cc_get_sgl_nents(dev, sg, end, &lbytes); sg_copy_buffer(sg, nents, (void *)dest, (end - to_skip + 1), to_skip, (direct == CC_SG_TO_BUF)); } @@ -311,40 +304,10 @@ static void cc_add_sg_entry(struct devic sgl_data->num_of_buffers++; } -static int cc_dma_map_sg(struct device *dev, struct scatterlist *sg, u32 nents, - enum dma_data_direction direction) -{ - u32 i, j; - struct scatterlist *l_sg = sg; - - for (i = 0; i < nents; i++) { - if (!l_sg) - break; - if (dma_map_sg(dev, l_sg, 1, direction) != 1) { - dev_err(dev, "dma_map_page() sg buffer failed\n"); - goto err; - } - l_sg = sg_next(l_sg); - } - return nents; - -err: - /* Restore mapped parts */ - for (j = 0; j < i; j++) { - if (!sg) - break; - dma_unmap_sg(dev, sg, 1, direction); - sg = sg_next(sg); - } - return 0; -} - static int cc_map_sg(struct device *dev, struct scatterlist *sg, unsigned int nbytes, int direction, u32 *nents, u32 max_sg_nents, u32 *lbytes, u32 *mapped_nents) { - bool is_chained = false; - if (sg_is_last(sg)) { /* One entry only case -set to DLLI */ if (dma_map_sg(dev, sg, 1, direction) != 1) { @@ -358,35 +321,21 @@ static int cc_map_sg(struct device *dev, *nents = 1; *mapped_nents = 1; } else { /*sg_is_last*/ - *nents = cc_get_sgl_nents(dev, sg, nbytes, lbytes, - &is_chained); + *nents = cc_get_sgl_nents(dev, sg, nbytes, lbytes); if (*nents > max_sg_nents) { *nents = 0; dev_err(dev, "Too many fragments. current %d max %d\n", *nents, max_sg_nents); return -ENOMEM; } - if (!is_chained) { - /* In case of mmu the number of mapped nents might - * be changed from the original sgl nents - */ - *mapped_nents = dma_map_sg(dev, sg, *nents, direction); - if (*mapped_nents == 0) { - *nents = 0; - dev_err(dev, "dma_map_sg() sg buffer failed\n"); - return -ENOMEM; - } - } else { - /*In this case the driver maps entry by entry so it - * must have the same nents before and after map - */ - *mapped_nents = cc_dma_map_sg(dev, sg, *nents, - direction); - if (*mapped_nents != *nents) { - *nents = *mapped_nents; - dev_err(dev, "dma_map_sg() sg buffer failed\n"); - return -ENOMEM; - } + /* In case of mmu the number of mapped nents might + * be changed from the original sgl nents + */ + *mapped_nents = dma_map_sg(dev, sg, *nents, direction); + if (*mapped_nents == 0) { + *nents = 0; + dev_err(dev, "dma_map_sg() sg buffer failed\n"); + return -ENOMEM; } } @@ -571,7 +520,6 @@ void cc_unmap_aead_request(struct device struct crypto_aead *tfm = crypto_aead_reqtfm(req); struct cc_drvdata *drvdata = dev_get_drvdata(dev); u32 dummy; - bool chained; u32 size_to_unmap = 0; if (areq_ctx->mac_buf_dma_addr) { @@ -636,15 +584,14 @@ void cc_unmap_aead_request(struct device size_to_unmap += crypto_aead_ivsize(tfm); dma_unmap_sg(dev, req->src, - cc_get_sgl_nents(dev, req->src, size_to_unmap, - &dummy, &chained), + cc_get_sgl_nents(dev, req->src, size_to_unmap, &dummy), 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, cc_get_sgl_nents(dev, req->dst, size_to_unmap, - &dummy, &chained), + &dummy), DMA_BIDIRECTIONAL); } if (drvdata->coherent && @@ -1022,7 +969,6 @@ static int cc_aead_chain_data(struct cc_ unsigned int size_for_map = req->assoclen + req->cryptlen; struct crypto_aead *tfm = crypto_aead_reqtfm(req); u32 sg_index = 0; - bool chained = false; bool is_gcm4543 = areq_ctx->is_gcm4543; u32 size_to_skip = req->assoclen; @@ -1043,7 +989,7 @@ static int cc_aead_chain_data(struct cc_ size_for_map += (direct == DRV_CRYPTO_DIRECTION_ENCRYPT) ? authsize : 0; src_mapped_nents = cc_get_sgl_nents(dev, req->src, size_for_map, - &src_last_bytes, &chained); + &src_last_bytes); sg_index = areq_ctx->src_sgl->length; //check where the data starts while (sg_index <= size_to_skip) { @@ -1085,7 +1031,7 @@ static int cc_aead_chain_data(struct cc_ } dst_mapped_nents = cc_get_sgl_nents(dev, req->dst, size_for_map, - &dst_last_bytes, &chained); + &dst_last_bytes); sg_index = areq_ctx->dst_sgl->length; offset = size_to_skip; @@ -1486,7 +1432,7 @@ int cc_map_hash_request_update(struct cc dev_dbg(dev, " less than one block: curr_buff=%pK *curr_buff_cnt=0x%X copy_to=%pK\n", curr_buff, *curr_buff_cnt, &curr_buff[*curr_buff_cnt]); areq_ctx->in_nents = - cc_get_sgl_nents(dev, src, nbytes, &dummy, NULL); + cc_get_sgl_nents(dev, src, nbytes, &dummy); sg_copy_to_buffer(src, areq_ctx->in_nents, &curr_buff[*curr_buff_cnt], nbytes); *curr_buff_cnt += nbytes; From patchwork Mon May 20 12:13:51 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg Kroah-Hartman X-Patchwork-Id: 164605 Delivered-To: patch@linaro.org Received: by 2002:a92:9e1a:0:0:0:0:0 with SMTP id q26csp219240ili; Mon, 20 May 2019 05:23:32 -0700 (PDT) X-Google-Smtp-Source: APXvYqyTYBwA5zYhCQ2x1sP0YRvrEYR0jZ7fs7J4BSOtPZTl5CaCE/AhTbhIYroH0wFoTrncryKw X-Received: by 2002:a17:902:6b:: with SMTP id 98mr75581009pla.271.1558355012220; Mon, 20 May 2019 05:23:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558355012; cv=none; d=google.com; s=arc-20160816; b=mK6t3Y3f7A8nN8HTLXr9lCzbbOVbAOccb1kojZ3URFzbucAW1jxY4NhUhirAP1gEat RCAeMYenSnezcUkbqY3IQHwg5ewpN1HGSSvYcd5AKTHsvEot7CVy6gmLR2gGPj7xOOrp L7pRC/xD0DIt1x7kcfIffsHyze/8EfvKRpjP6ZyoyyMgvuaes4aZUGYi0AKFMRvPp3IR X5PBCFme8OfDtDNYaiIWX1+aJTOlB+W0dRDB5UwZ1La5/0/zi/oAC+a5SauQZuWw4ZNg jMhbFG6mMk56KqbLbWgikNOmWV97VVl4A5S2MX0fcQxEa4ffz1Uuuh+BZcHka1ucieZ9 Ziyw== 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=TEOjFFbIAKtWDVj7b5kOGp66OjQtTgLzbcPkVCXl414=; b=xu4tq4Vc4A+dxU+ZFH8E0QZbWpJt/iIdbQ5HJLf1BBtaY24qeHh3ksXG6ioRubUiUe h9e947d90kpKIDS1t5A4CdmO+Wp7RwmYv24pLgqWHCfkiKvJcahtbi88TlRLGqC9/0xx S/zbR7waC9BTma1ZszX8TUSLrjToOQlMuaxP5RU1HTr3q++3LiZwddzQhB8fpNixOvov sdFuBRjSgDJXnLXeo39C4jpUx4WbwoqmCDwmB76b8fQleQ5VCLc3FiqffBOJ6Kg6dTPe SAarutNwcDf39RZMMFecKQEnfVjEk4bmuOcFiZ0p/otiYG+3cn1fZH5Rsy0kG+RN1eUx FIQw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=auzmw+dp; 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 q193si19662183pfq.95.2019.05.20.05.23.31; Mon, 20 May 2019 05:23:32 -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=auzmw+dp; 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 S2388617AbfETMXb (ORCPT + 30 others); Mon, 20 May 2019 08:23:31 -0400 Received: from mail.kernel.org ([198.145.29.99]:37960 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388023AbfETMX3 (ORCPT ); Mon, 20 May 2019 08:23:29 -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 9365B20675; Mon, 20 May 2019 12:23:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1558355009; bh=Vc76SIEwx46ODrXQqltdqyN2/mHnKSGbQiibyzx/1hQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=auzmw+dpH+8DZGb3Sh0ZSb5o1JdWQe9lIB8YznJUcGcMzJYgrBszwKCq0jvKXQxsZ 3BzY2SQrmY6oXkSIzOEZthXnw2pbcBoVP+bWofMbLfFqVGjFepCzAYYp2vU1bKsw4H CSMRSlCe0M7TVvkMKd82rMgWDMa1aA3fqb5oxYZU= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Gilad Ben-Yossef , Herbert Xu Subject: [PATCH 4.19 045/105] crypto: ccree - fix mem leak on error path Date: Mon, 20 May 2019 14:13:51 +0200 Message-Id: <20190520115250.133283526@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190520115247.060821231@linuxfoundation.org> References: <20190520115247.060821231@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Gilad Ben-Yossef commit d574b707c873d6ef1a2a155f8cfcfecd821e9a2e upstream. Fix a memory leak on the error path of IV generation code. Signed-off-by: Gilad Ben-Yossef Cc: stable@vger.kernel.org # v4.19+ Signed-off-by: Herbert Xu Signed-off-by: Greg Kroah-Hartman --- drivers/crypto/ccree/cc_ivgen.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) --- a/drivers/crypto/ccree/cc_ivgen.c +++ b/drivers/crypto/ccree/cc_ivgen.c @@ -154,9 +154,6 @@ void cc_ivgen_fini(struct cc_drvdata *dr } ivgen_ctx->pool = NULL_SRAM_ADDR; - - /* release "this" context */ - kfree(ivgen_ctx); } /*! @@ -174,10 +171,12 @@ int cc_ivgen_init(struct cc_drvdata *drv int rc; /* Allocate "this" context */ - ivgen_ctx = kzalloc(sizeof(*ivgen_ctx), GFP_KERNEL); + ivgen_ctx = devm_kzalloc(device, sizeof(*ivgen_ctx), GFP_KERNEL); if (!ivgen_ctx) return -ENOMEM; + drvdata->ivgen_handle = ivgen_ctx; + /* Allocate pool's header for initial enc. key/IV */ ivgen_ctx->pool_meta = dma_alloc_coherent(device, CC_IVPOOL_META_SIZE, &ivgen_ctx->pool_meta_dma, @@ -196,8 +195,6 @@ int cc_ivgen_init(struct cc_drvdata *drv goto out; } - drvdata->ivgen_handle = ivgen_ctx; - return cc_init_iv_sram(drvdata); out: From patchwork Mon May 20 12:13:53 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg Kroah-Hartman X-Patchwork-Id: 164607 Delivered-To: patch@linaro.org Received: by 2002:a92:9e1a:0:0:0:0:0 with SMTP id q26csp220154ili; Mon, 20 May 2019 05:24:30 -0700 (PDT) X-Google-Smtp-Source: APXvYqzKI7iR0N4gxSKJoolGNF1Of9j6+fLEDW5xB3U7xgDWeuMWmE0NOT+tgTZxt2w83rxyZf1O X-Received: by 2002:a63:a709:: with SMTP id d9mr6820178pgf.263.1558355070420; Mon, 20 May 2019 05:24:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558355070; cv=none; d=google.com; s=arc-20160816; b=CJhms2yVSuMpv6wI+ewcTuPg6xZYnuHlqgfNjv/By1N9SmIvsRQFsfw6sVUy9THU/X eJmKxp2uEswahpzn9O+CXACC2Udbx6wK/7O55B3aMOIm+moFHZH25Kx+7/y8hYjXejG8 QvS/Wz1XKAb/iXC1qdB1c+x7X32IzvN2vqWpAEsN9ntUqpT1n6ItTEl77AY6FQGHccoS 0ZRwURUo0FizRFMxfi6JvAXXpBEOA8a3iUhr9hfN+BY9CZTl8pOutK0QDfD/ZtejzraI Yz5uyMriw8EQtNFAI5cBYBy0jXUJkaEiVJe/1FaD+bbab1hJyDrLK6zlodLPeZInOJPp hVPQ== 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=sTHS2xKH2fSHAupQfBYjZdjTk9GNWxx6IVU50GDW+TY=; b=aohiskD2zW04OCXzlNig0KDvbdaYMgRn5Oz3V5WLHuqPaeJdGAx7Zo9XbW+h82uNAD QY7pPYzT6ACDNOtq8dhU7WfP2qsTmiRb8TtqTUeWnW/bIjFkiUPw5X/WDx2jRvvFJWAt 6GzpPdlCx36HbKQmI9iz/4Hud5MYDMOKH87Soe5TXO2nttsEgM+OuRA3NEai44okt0bG tKY7TQ9lBjgufBVx3AvFWlHhrMH2HlOro0YjdNBrE0licseHVdY6e9Bui8l5LjgO05+d lFrWgdyIkIGzw6uxUCcmu7e+H9AG0/MChYCJKEk+a8OsIl1tj8pswNlS6HnZ6PGcfZw8 k8Xg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="TZfd1/SD"; 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 g13si16855233pgs.161.2019.05.20.05.24.30; Mon, 20 May 2019 05:24:30 -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="TZfd1/SD"; 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 S2388850AbfETMY3 (ORCPT + 30 others); Mon, 20 May 2019 08:24:29 -0400 Received: from mail.kernel.org ([198.145.29.99]:39268 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388839AbfETMY0 (ORCPT ); Mon, 20 May 2019 08:24:26 -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 ADA6E20645; Mon, 20 May 2019 12:24:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1558355066; bh=MX77u6kdfwvVUV47sbTkHYwPbZuLAvAi0T8q94a6MjY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TZfd1/SD1Jg0Rq+alTlaPGdNt/OFwhBkQBGju/SdfAeIDHt4knzDeAeM0a9uREhWg ugkoEcJNQZlEjNwSZ8vvLAkyGvwr6kX/tXniA94uhtq0cKNges1wj1lEuNsZYzRTRa cMH/J1T92Xml4XFnT7vxdBtpGFmwBHAOLpy0yOWc= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Gilad Ben-Yossef , Herbert Xu Subject: [PATCH 4.19 047/105] crypto: ccree - use correct internal state sizes for export Date: Mon, 20 May 2019 14:13:53 +0200 Message-Id: <20190520115250.270977831@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190520115247.060821231@linuxfoundation.org> References: <20190520115247.060821231@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Gilad Ben-Yossef commit f3df82b468f00cca241d96ee3697c9a5e7fb6bd0 upstream. We were computing the size of the import buffer based on the digest size but the 318 and 224 byte variants use 512 and 256 bytes internal state sizes respectfully, thus causing the import buffer to overrun. Fix it by using the right sizes. Signed-off-by: Gilad Ben-Yossef Cc: stable@vger.kernel.org # v4.19+ Signed-off-by: Herbert Xu Signed-off-by: Greg Kroah-Hartman --- drivers/crypto/ccree/cc_hash.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/drivers/crypto/ccree/cc_hash.c +++ b/drivers/crypto/ccree/cc_hash.c @@ -1616,7 +1616,7 @@ static struct cc_hash_template driver_ha .setkey = cc_hash_setkey, .halg = { .digestsize = SHA224_DIGEST_SIZE, - .statesize = CC_STATE_SIZE(SHA224_DIGEST_SIZE), + .statesize = CC_STATE_SIZE(SHA256_DIGEST_SIZE), }, }, .hash_mode = DRV_HASH_SHA224, @@ -1641,7 +1641,7 @@ static struct cc_hash_template driver_ha .setkey = cc_hash_setkey, .halg = { .digestsize = SHA384_DIGEST_SIZE, - .statesize = CC_STATE_SIZE(SHA384_DIGEST_SIZE), + .statesize = CC_STATE_SIZE(SHA512_DIGEST_SIZE), }, }, .hash_mode = DRV_HASH_SHA384, From patchwork Mon May 20 12:13:54 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg Kroah-Hartman X-Patchwork-Id: 164608 Delivered-To: patch@linaro.org Received: by 2002:a92:9e1a:0:0:0:0:0 with SMTP id q26csp220387ili; Mon, 20 May 2019 05:24:45 -0700 (PDT) X-Google-Smtp-Source: APXvYqymEFlT5JHYhYXn5vY48zNNEpQop9llNM8KD3rUnvbG3dWwZqM4ZB7kMv493Zx2Npnbm/ff X-Received: by 2002:a62:6d47:: with SMTP id i68mr80279019pfc.189.1558355085180; Mon, 20 May 2019 05:24:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558355085; cv=none; d=google.com; s=arc-20160816; b=pr+XG9HjZW8P3Sg3+MFQ3LtAk3PolVZaKlVAwzjwp2jcnceUB/nNtdzPKHIm9KtCkU FcWDRc56HmEmnmNbiIjLGj4d5w2bAjJ/5ryGjozQ4FEualOUFDdT95FTUPmSrdlWRKHS FiVWnVR1/GC2YRNspB1kUy1JR++VTHG4p2aeGoI3wly9X29HmHTTDDCWD1972HS0MJgI TfM4P7IKIjLYJJqOS4iPOLNWT+fPTi4TDBlmIXI/WgLeFVbUmgrKKqbv8sZSPMXAOrTU Dy3yJrrBqrYbvpgjaMcaZp6mBi6cjFcXvVFLB1Jcb7h2C/zYD3/bPQOsFI5iZY/obndf 071A== 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=/L1gTgmf54OvOQg3yyWlnZS57Eu1UJSE90FM1YorMIY=; b=o0lRGl6ytJmuLC2TpSB2WdOx4f1AAv+NwQ48aDT6ht9CzCJqBVO8O4FWwjmD4o3mLk k4umWV2d9MAxkiU0GdABDArnB5n1pXhC4e/wpBmbZ1ee15OgFotD4o4FEsYM104F0q3v Hqug3cO9E6Spx0CSyp1moxaQrl+i6fiKi6TYgPuFrkin66qYB3uJ0Z5cm3mQTYgrZrjp o8Kxjiw08tx/IXyvElOCUuz4ej9g6EWN/E1qzYWg5AEQGDwTQYNLwYsEgQzVMVEGN2Hg yYOP+NWV71CdaiIIdmXFr1lX9jl5pRTp4ZcZ0qtBSfwHr1dSSQwgxxIvfuleGdv3q4kM HlyA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=gA89OXXP; 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 f61si13018507plf.46.2019.05.20.05.24.44; Mon, 20 May 2019 05:24:45 -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=gA89OXXP; 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 S2388904AbfETMYn (ORCPT + 30 others); Mon, 20 May 2019 08:24:43 -0400 Received: from mail.kernel.org ([198.145.29.99]:39568 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388885AbfETMYk (ORCPT ); Mon, 20 May 2019 08:24:40 -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 CBA3F21019; Mon, 20 May 2019 12:24:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1558355079; bh=YAkbjODZNkoC+Zlx6qjgS40R45ZfN0cmn3YqIIsg8Io=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gA89OXXPlgzyu5oe4xo/bI1XZQaRcIsOXpBUgxwj+UxwPCKdouhbUMkvzzLuqGudZ DZsh1My30TxMWvU2AVYQjZE8OpuOY1KcO50hRqkhijiTR2Eu9cmP2UVVO3J1dKkuhF 7dmbd0TGPEID09aC844nHJhvx6fHx3x9bIg+bHqA= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Gilad Ben-Yossef , Herbert Xu Subject: [PATCH 4.19 048/105] crypto: ccree - dont map AEAD key and IV on stack Date: Mon, 20 May 2019 14:13:54 +0200 Message-Id: <20190520115250.343985241@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190520115247.060821231@linuxfoundation.org> References: <20190520115247.060821231@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Gilad Ben-Yossef commit e8662a6a5f8f7f2cadc0edb934aef622d96ac3ee upstream. The AEAD authenc key and IVs might be passed to us on stack. Copy it to a slab buffer before mapping to gurantee proper DMA mapping. Signed-off-by: Gilad Ben-Yossef Cc: stable@vger.kernel.org # v4.19+ Signed-off-by: Herbert Xu Signed-off-by: Greg Kroah-Hartman --- drivers/crypto/ccree/cc_aead.c | 11 ++++++++++- drivers/crypto/ccree/cc_buffer_mgr.c | 15 ++++++++++++--- drivers/crypto/ccree/cc_driver.h | 1 + 3 files changed, 23 insertions(+), 4 deletions(-) --- a/drivers/crypto/ccree/cc_aead.c +++ b/drivers/crypto/ccree/cc_aead.c @@ -415,7 +415,7 @@ static int validate_keys_sizes(struct cc /* This function prepers the user key so it can pass to the hmac processing * (copy to intenral buffer or hash in case of key longer than block */ -static int cc_get_plain_hmac_key(struct crypto_aead *tfm, const u8 *key, +static int cc_get_plain_hmac_key(struct crypto_aead *tfm, const u8 *authkey, unsigned int keylen) { dma_addr_t key_dma_addr = 0; @@ -428,6 +428,7 @@ static int cc_get_plain_hmac_key(struct unsigned int hashmode; unsigned int idx = 0; int rc = 0; + u8 *key = NULL; struct cc_hw_desc desc[MAX_AEAD_SETKEY_SEQ]; dma_addr_t padded_authkey_dma_addr = ctx->auth_state.hmac.padded_authkey_dma_addr; @@ -446,11 +447,17 @@ static int cc_get_plain_hmac_key(struct } if (keylen != 0) { + + key = kmemdup(authkey, keylen, GFP_KERNEL); + if (!key) + return -ENOMEM; + key_dma_addr = dma_map_single(dev, (void *)key, keylen, DMA_TO_DEVICE); if (dma_mapping_error(dev, key_dma_addr)) { dev_err(dev, "Mapping key va=0x%p len=%u for DMA failed\n", key, keylen); + kzfree(key); return -ENOMEM; } if (keylen > blocksize) { @@ -533,6 +540,8 @@ static int cc_get_plain_hmac_key(struct if (key_dma_addr) dma_unmap_single(dev, key_dma_addr, keylen, DMA_TO_DEVICE); + kzfree(key); + return rc; } --- a/drivers/crypto/ccree/cc_buffer_mgr.c +++ b/drivers/crypto/ccree/cc_buffer_mgr.c @@ -560,6 +560,7 @@ void cc_unmap_aead_request(struct device if (areq_ctx->gen_ctx.iv_dma_addr) { dma_unmap_single(dev, areq_ctx->gen_ctx.iv_dma_addr, hw_iv_size, DMA_BIDIRECTIONAL); + kzfree(areq_ctx->gen_ctx.iv); } /* Release pool */ @@ -664,19 +665,27 @@ static int cc_aead_chain_iv(struct cc_dr struct aead_req_ctx *areq_ctx = aead_request_ctx(req); unsigned int hw_iv_size = areq_ctx->hw_iv_size; struct device *dev = drvdata_to_dev(drvdata); + gfp_t flags = cc_gfp_flags(&req->base); int rc = 0; if (!req->iv) { areq_ctx->gen_ctx.iv_dma_addr = 0; + areq_ctx->gen_ctx.iv = NULL; goto chain_iv_exit; } - areq_ctx->gen_ctx.iv_dma_addr = dma_map_single(dev, req->iv, - hw_iv_size, - DMA_BIDIRECTIONAL); + areq_ctx->gen_ctx.iv = kmemdup(req->iv, hw_iv_size, flags); + if (!areq_ctx->gen_ctx.iv) + return -ENOMEM; + + areq_ctx->gen_ctx.iv_dma_addr = + dma_map_single(dev, areq_ctx->gen_ctx.iv, hw_iv_size, + DMA_BIDIRECTIONAL); if (dma_mapping_error(dev, areq_ctx->gen_ctx.iv_dma_addr)) { dev_err(dev, "Mapping iv %u B at va=%pK for DMA failed\n", hw_iv_size, req->iv); + kzfree(areq_ctx->gen_ctx.iv); + areq_ctx->gen_ctx.iv = NULL; rc = -ENOMEM; goto chain_iv_exit; } --- a/drivers/crypto/ccree/cc_driver.h +++ b/drivers/crypto/ccree/cc_driver.h @@ -162,6 +162,7 @@ struct cc_alg_template { struct async_gen_req_ctx { dma_addr_t iv_dma_addr; + u8 *iv; enum drv_crypto_direction op_type; }; From patchwork Mon May 20 12:13:55 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg Kroah-Hartman X-Patchwork-Id: 164635 Delivered-To: patch@linaro.org Received: by 2002:a92:9e1a:0:0:0:0:0 with SMTP id q26csp247734ili; Mon, 20 May 2019 05:50:57 -0700 (PDT) X-Google-Smtp-Source: APXvYqzmo8HgdNyxTduVK+mc19/RmlTTdWKbQLpPNrw/VvQJ7JAl7rn+CS9qzS4JfG98BNzxA2aF X-Received: by 2002:a65:640c:: with SMTP id a12mr13190111pgv.1.1558356657442; Mon, 20 May 2019 05:50:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558356657; cv=none; d=google.com; s=arc-20160816; b=BE1FTF4vb7Z8smcDGIu8ZIT39yIj5pGSH/75HguJG/kMzpvkwNBEBbHK8s7J6ziSn1 KPL+fYQI34IDQYNRkqhCscuqV9IbfB2njQhRmyldDa24c6Q8GGVRlEtx3/QbCED5ci8J tSs7CTGl1wii1+FdagL9qnjd2xDegermV2Kzde+SQfmkhuf8WDSS87CW0Y1uTyGjMcFV sZySdPTRe9p0bx52kUAWq+ROOkeyt4LXkhRLAxLwXefKdw2ulYBQlNq7Xb0xMF+YhNWI mgs9d7adpPJjEfTBCCBU1Xh/2R3DtDZ4QqRiWsAvnRfcLupbdgtiLOeOUqhm6h2k0DAv ib6A== 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=7VDXYu1Vil/45PCSSpHKBrSUhZb+7wVJ3dTnv4Vglp8=; b=CzgdiEO2RsFjgmL5XXgIsagYd1SOGWdQ6IxohCBdLeUc1kXLq2lNHAq2JxgUd7kt7C 0K4t5StJNqSm+rFjANiMhLOjLewxb8QYN8wIQoYL5fyX/AvFzndHYkoe235lC6dD/1c0 1PUDXhjf49fXOFxTBRbds7bPfM15R6kO704Po/QKa5kV+JazEC2eP1YxZqRDxRqz4o5d +nXmL0vgjcRpDQyV9/7eZhFKpole8O0fxWpp0FPtCNknT0oqGXJtdc6Iakef45cV+mlB TkIs7t3IAwxHTrjCk2h4eF476pEwYnX8ULQUP4AiK+S30QortUx58whIshcvqmC4CDHO fyWw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=fHXknbxc; 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 e11si12396932pgv.569.2019.05.20.05.50.53; Mon, 20 May 2019 05:50:57 -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=fHXknbxc; 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 S2389640AbfETMrC (ORCPT + 30 others); Mon, 20 May 2019 08:47:02 -0400 Received: from mail.kernel.org ([198.145.29.99]:39634 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388895AbfETMYm (ORCPT ); Mon, 20 May 2019 08:24:42 -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 6909D216C4; Mon, 20 May 2019 12:24:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1558355081; bh=Uw0pF31YOHlAKBRVzNCneThPQgBmKK3R8VVsUrLP+AI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fHXknbxcp5YuhxEXK4Em1yXF48PFoRnubZ9VZfxZ8NSWLy1wS/iY1p6RYqeUdhawo zzATjQYDqgQ/a4maLa2YxlpLhVnK9A7hTSeWHF54zMiKZYqA95FsDtKRduznkiAFnA 4sXjcBewaxzjuhhb6PDjQTj0rtBWmO9NwUSaTwAU= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Ofir Drang , Gilad Ben-Yossef , Herbert Xu Subject: [PATCH 4.19 049/105] crypto: ccree - pm resume first enable the source clk Date: Mon, 20 May 2019 14:13:55 +0200 Message-Id: <20190520115250.419216080@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190520115247.060821231@linuxfoundation.org> References: <20190520115247.060821231@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Ofir Drang commit 7766dd774d80463cec7b81d90c8672af91de2da1 upstream. On power management resume function first enable the device clk source to allow access to the device registers. Signed-off-by: Ofir Drang Signed-off-by: Gilad Ben-Yossef Cc: stable@vger.kernel.org # v4.19+ Signed-off-by: Herbert Xu Signed-off-by: Greg Kroah-Hartman --- drivers/crypto/ccree/cc_pm.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) --- a/drivers/crypto/ccree/cc_pm.c +++ b/drivers/crypto/ccree/cc_pm.c @@ -42,14 +42,15 @@ int cc_pm_resume(struct device *dev) struct cc_drvdata *drvdata = dev_get_drvdata(dev); dev_dbg(dev, "unset HOST_POWER_DOWN_EN\n"); - cc_iowrite(drvdata, CC_REG(HOST_POWER_DOWN_EN), POWER_DOWN_DISABLE); - + /* Enables the device source clk */ rc = cc_clk_on(drvdata); if (rc) { dev_err(dev, "failed getting clock back on. We're toast.\n"); return rc; } + cc_iowrite(drvdata, CC_REG(HOST_POWER_DOWN_EN), POWER_DOWN_DISABLE); + rc = init_cc_regs(drvdata, false); if (rc) { dev_err(dev, "init_cc_regs (%x)\n", rc); From patchwork Mon May 20 12:13:56 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg Kroah-Hartman X-Patchwork-Id: 164609 Delivered-To: patch@linaro.org Received: by 2002:a92:9e1a:0:0:0:0:0 with SMTP id q26csp220438ili; Mon, 20 May 2019 05:24:48 -0700 (PDT) X-Google-Smtp-Source: APXvYqx2J2bxX+VnRWAKIJMHoRzncf/c8xtFMuiOKFlkO9axH3DDpjvd/8N6Fnq+hzvO+ZK8hcxz X-Received: by 2002:a63:2118:: with SMTP id h24mr76011720pgh.320.1558355088245; Mon, 20 May 2019 05:24:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558355088; cv=none; d=google.com; s=arc-20160816; b=OrqA7WY+rODAXKfjX45zkyEbUg8D1q+KC7dJYmToVn2zpo0YhTxwCrAWvJleyjAhm6 VYtvTf0zluSb22Qj3+EvMe2e/OgCPOsCL9Qoon3gp31Eba+/16I4W7OoU3JOX4VIrwp5 2IZN/6kJl4Lphw5huZDro27+p4A6iQVJluHGGcxEuuuxPRfHpPS0mPI3WpqzTKTyhxgu xPtoQZKidWioiy7OWMizk7CrBFbOGZknBxCGXYJ5s7TlEdav9nKEX0ArDB6wjNtv9dcx xIyG1RtRLxyeOSiVEvYSMo7BjlgSLzsHVkhL+P1ryXQgjVZalDT9Uwv+oFlhi0nDWQI2 ZXlA== 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=MQsQd7JjODRrsK+dQeyghBZyBB4P818m4ncJkixtdw8=; b=WFUb5Y703vS4DQHno159wt5/Pf4FytGihac33iPijTV6qGpqw/hVXZYsSTsnbAvjW5 d0fHmpaNKPUCUOnbngMhS9LlNrr5OD7qU58m+ViV1xPBbTIoNrPVEn/YmUjF8rwxrIuj 5avllc2PR1PDKKT4y9ORFAalE8VunAU4ABzx13v7cZgaWUmFtSlQ7Rr8f3Py2Wd7OvSI Mf1PUerv71TrP9KUxj7oFhqPbuDZ79hNUd8kYrbWUazbxQ3AMs1vThvmapwWlWRvu5bi kSWoDQKTZ0XXgoZkUPcsPny7wJqHnk8T1cg8j80t51eL28cN/nIkzwbmptD9I2dNHlVg GmVQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=ahne2PDQ; 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 f61si13018507plf.46.2019.05.20.05.24.47; Mon, 20 May 2019 05:24:48 -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=ahne2PDQ; 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 S2388914AbfETMYr (ORCPT + 30 others); Mon, 20 May 2019 08:24:47 -0400 Received: from mail.kernel.org ([198.145.29.99]:39666 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388502AbfETMYp (ORCPT ); Mon, 20 May 2019 08:24:45 -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 3568421479; Mon, 20 May 2019 12:24:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1558355084; bh=N9QFeO4yQVMQCWzkv0CVm3igV/vAF6zg1t8BEEZGIbY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ahne2PDQSWZq8HCKGvhI9xFDo26wLPwCLzV+WBr0bt4q1qC263BVV18NUbP2uqZjU qYzafox2TF8bwAMoSxp0nrVpUabnPxRR+OS0uQjresGdHxLkQiS9+fcjjhcpzW3opX PI9D0xuJoKMaaqf5mVh3QLs4Kc8SchpI79wc/vzE= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Ofir Drang , Gilad Ben-Yossef , Herbert Xu Subject: [PATCH 4.19 050/105] crypto: ccree - HOST_POWER_DOWN_EN should be the last CC access during suspend Date: Mon, 20 May 2019 14:13:56 +0200 Message-Id: <20190520115250.492893602@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190520115247.060821231@linuxfoundation.org> References: <20190520115247.060821231@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Ofir Drang commit 3499efbeed39d114873267683b9e776bcb34b058 upstream. During power management suspend the driver need to prepare the device for the power down operation and as a last indication write to the HOST_POWER_DOWN_EN register which signals to the hardware that The ccree is ready for power down. Signed-off-by: Ofir Drang Signed-off-by: Gilad Ben-Yossef Cc: stable@vger.kernel.org # v4.19+ Signed-off-by: Herbert Xu Signed-off-by: Greg Kroah-Hartman --- drivers/crypto/ccree/cc_pm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/drivers/crypto/ccree/cc_pm.c +++ b/drivers/crypto/ccree/cc_pm.c @@ -25,13 +25,13 @@ int cc_pm_suspend(struct device *dev) int rc; dev_dbg(dev, "set HOST_POWER_DOWN_EN\n"); - cc_iowrite(drvdata, CC_REG(HOST_POWER_DOWN_EN), POWER_DOWN_ENABLE); rc = cc_suspend_req_queue(drvdata); if (rc) { dev_err(dev, "cc_suspend_req_queue (%x)\n", rc); return rc; } fini_cc_regs(drvdata); + cc_iowrite(drvdata, CC_REG(HOST_POWER_DOWN_EN), POWER_DOWN_ENABLE); cc_clk_off(drvdata); return 0; } From patchwork Mon May 20 12:13:58 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg Kroah-Hartman X-Patchwork-Id: 164611 Delivered-To: patch@linaro.org Received: by 2002:a92:9e1a:0:0:0:0:0 with SMTP id q26csp220545ili; Mon, 20 May 2019 05:24:55 -0700 (PDT) X-Google-Smtp-Source: APXvYqw/i/s4/P1fc0BResuCx93DaTwJZnSSHcV/1uPGVPt5l/CjG6L8E5G98FGD+JeC9L7ztuGP X-Received: by 2002:a62:d244:: with SMTP id c65mr41904856pfg.173.1558355094936; Mon, 20 May 2019 05:24:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558355094; cv=none; d=google.com; s=arc-20160816; b=SQU9kLc6JpiixKN7aRYGJsTSKqUQkLCSSv4GNenMHODh996WYmYX6gQYKVvgeEg43w h8wgJZTTtRJCHtbphIOrzFXnHcFDPZDQPxiepLnAB7ojcv3uMLufVG9A65yH9jJP5eKA 2GN7s1wRhdhLvQHWpudUvos0E1/JX1GaWoZsTZoA4Z2aU1ak8wq1vYJHyKWMdz5dq1w+ DpOiEpxbb5xy1X0PmHtK6iaVN3cX96ZtqsJCeWY8I3JH6bVhJtaFA/Jmi36QbtNrhQeM VwaktZdV0yreGvDwTh1mcCM7OE7gwQgm1ozI35ERnDDJ3Dv2QKLWB9jUR4NPWiqiSpTI m/EA== 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=Bsr5lnxGn3aaW5Bh5tHhpU2uotZZ/yJORIJIhWro+k8=; b=d7WQS5qei7jJLROSDuqiz9zFkjonfrCLNC4gJKOFBt0fYVAwVZAZU9PY3yRWrHf3V5 K8xXNYb2/By9TPV3dGXzs+m54mDZg2nxRzgBg/FY6RNAV5As/zOMKy0uK8f6M6BpSii5 JTY4EUwYxZXlu8rYymA0J8SMBajg4JILoD/X5G7wcJVZ/no7fA4lCUPnqui7ju+ZEgYV c/Tjw7XmKcqdcscw4uJKxYX1bWfUWytPq2B4DpKPzhrEFidUMEfpbmyJj1Q5QDMvL+cM BCSFsD9kCiPuLk+dRN/n1yjVLGI0zSWss0gte28dbIgAKmtQdHFsHkqOdY2LwZ95a3rb RZRQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=uqratxeL; 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 j185si7827853pge.465.2019.05.20.05.24.54; Mon, 20 May 2019 05:24: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; dkim=pass header.i=@kernel.org header.s=default header.b=uqratxeL; 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 S2388937AbfETMYw (ORCPT + 30 others); Mon, 20 May 2019 08:24:52 -0400 Received: from mail.kernel.org ([198.145.29.99]:39780 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388923AbfETMYu (ORCPT ); Mon, 20 May 2019 08:24:50 -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 8013D21479; Mon, 20 May 2019 12:24:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1558355090; bh=evbFVzhLxEg4SbCoKYUaCDJhdyPgsuUfMr8WxKWYoSI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uqratxeL/FEKfOGSyHQUmgwR74/LuMarNB0TwFfK5VbzhXxucbS+xR6C1vD54CGYv Vj5aCPKmfusRZPnKUmAIAUHZelcK2hcvFHv9c3r71n5oO59g2/KfASPpITBsfSVrqo 3Xzm68uiPsbix5gYo5UFQITSNGsW6gMtQRvn0Nzw= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Ofir Drang , Gilad Ben-Yossef , Herbert Xu Subject: [PATCH 4.19 052/105] crypto: ccree - handle tee fips error during power management resume Date: Mon, 20 May 2019 14:13:58 +0200 Message-Id: <20190520115250.648743917@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190520115247.060821231@linuxfoundation.org> References: <20190520115247.060821231@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Ofir Drang commit 7138377ce10455b7183c6dde4b2c51b33f464c45 upstream. in order to support cryptocell tee fips error that may occurs while cryptocell ree is suspended, an cc_tee_handle_fips_error call added to the cc_pm_resume function. Signed-off-by: Ofir Drang Signed-off-by: Gilad Ben-Yossef Cc: stable@vger.kernel.org # v4.19+ Signed-off-by: Herbert Xu Signed-off-by: Greg Kroah-Hartman --- drivers/crypto/ccree/cc_pm.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) --- a/drivers/crypto/ccree/cc_pm.c +++ b/drivers/crypto/ccree/cc_pm.c @@ -11,6 +11,7 @@ #include "cc_ivgen.h" #include "cc_hash.h" #include "cc_pm.h" +#include "cc_fips.h" #define POWER_DOWN_ENABLE 0x01 #define POWER_DOWN_DISABLE 0x00 @@ -50,12 +51,13 @@ int cc_pm_resume(struct device *dev) } cc_iowrite(drvdata, CC_REG(HOST_POWER_DOWN_EN), POWER_DOWN_DISABLE); - rc = init_cc_regs(drvdata, false); if (rc) { dev_err(dev, "init_cc_regs (%x)\n", rc); return rc; } + /* check if tee fips error occurred during power down */ + cc_tee_handle_fips_error(drvdata); rc = cc_resume_req_queue(drvdata); if (rc) { From patchwork Mon May 20 12:14:41 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg Kroah-Hartman X-Patchwork-Id: 164612 Delivered-To: patch@linaro.org Received: by 2002:a92:9e1a:0:0:0:0:0 with SMTP id q26csp221429ili; Mon, 20 May 2019 05:25:43 -0700 (PDT) X-Google-Smtp-Source: APXvYqyOiy+rpVM7paEGpL/sYcmwoZVlzcj9dak8ifvMsoGCpSPRIPMqNHuSCl70m0Pdb78Kuf3c X-Received: by 2002:a65:42c3:: with SMTP id l3mr51059374pgp.372.1558355143379; Mon, 20 May 2019 05:25:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558355143; cv=none; d=google.com; s=arc-20160816; b=AVkAzE1nimRu10ZtxiA6eGrrBviu8cUlR0Z33RASxpyfk7u5Z1szCSje4pfKMOW3tI a0uV00KIpT19S7+eupfjriu8qGGdI0Z/QPJleGXUDSa10F+34GLB9buy8xGq/qseCush JEimj/NP5DwEKMKaAxCZFb5sqdXHd5j/7Zx4S9VXO2rIVDz8I4vzDv6vk5UpNYgm76DT WfleAKa+NOJId4E/2go0W7EFoZky5mhHEmiCyifFrkO6JZrHcT8SuIPTrnp65F/fjunh MrHGbPfV0gcx39Nm3t2e43sr16sn8zMEz5vwG4oESLlRjC4HoB01fmUxJR/ErmPZJyOe NpHA== 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=TUPNSHossysRuj+WUqYIBYEPJWe2qyjuO0314sIaUp8=; b=zrtXjc4Eu5AZqtacpP/txQgx9R6N3doiaMvZxKKS7pbbQ7RqJWbaJx0nEGOET4h42E ZXaas36RyIPMtjn4YwKdg1YVHcaSzpvqcyAQTBrBJadUp9/LTI78Y9pLMr33KVCCdiyj eNeCbCCmISHzx3Rimo4yy/e5oTVco7i0n2wUmV+BJyQrmR2n0vuvzRIjZCbVhtRp+hxO 8mHuc+iof8Nc1ZTxMBTqOCIs8PfQILwpVNRaP4g+fLBG91mIcKuH67jPc/8uW5aF3GLY Z7w8z6Qf3RzrQhDNQtPALj1uMDXm/gxtTRkLMoy7R4LfSGeht3GpbSW3DD3djOW7zYOG zXtQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=B6qyOIyX; 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 d191si16864443pga.454.2019.05.20.05.25.42; Mon, 20 May 2019 05:25:43 -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=B6qyOIyX; 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 S2389137AbfETMZl (ORCPT + 30 others); Mon, 20 May 2019 08:25:41 -0400 Received: from mail.kernel.org ([198.145.29.99]:40830 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389122AbfETMZj (ORCPT ); Mon, 20 May 2019 08:25:39 -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 12372216FD; Mon, 20 May 2019 12:25:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1558355138; bh=09QVKkQqMoheB3aUsH33wCiXmOFBHYceqh6lQ2WyUM8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=B6qyOIyXwgqtXWestOv1a6pepEiLfTB/Xmh6LFtylDfQ+IrcZgsnz7C8Zvi8k8NZi 8SQKkS59uuEhBXyqZSpMZ466pbe8SNcpELmKSbDApn9ybeOtBNP+TNRWC+Z8KVKwrZ kf0J+Nw7bYc7Y3j8wXxsHIC02O5QKg78TKSwlKa0= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Masahiro Yamada Subject: [PATCH 4.19 095/105] kbuild: turn auto.conf.cmd into a mandatory include file Date: Mon, 20 May 2019 14:14:41 +0200 Message-Id: <20190520115253.800079090@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190520115247.060821231@linuxfoundation.org> References: <20190520115247.060821231@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Masahiro Yamada commit d2f8ae0e4c5c754f1b2a7b8388d19a1a977e698a upstream. syncconfig is responsible for keeping auto.conf up-to-date, so if it fails for any reason, the build must be terminated immediately. However, since commit 9390dff66a52 ("kbuild: invoke syncconfig if include/config/auto.conf.cmd is missing"), Kbuild continues running even after syncconfig fails. You can confirm this by intentionally making syncconfig error out: # diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c # index 08ba146..307b9de 100644 # --- a/scripts/kconfig/confdata.c # +++ b/scripts/kconfig/confdata.c # @@ -1023,6 +1023,9 @@ int conf_write_autoconf(int overwrite) # FILE *out, *tristate, *out_h; # int i; # # + if (overwrite) # + return 1; # + # if (!overwrite && is_present(autoconf_name)) # return 0; Then, syncconfig fails, but Make would not stop: $ make -s mrproper allyesconfig defconfig $ make scripts/kconfig/conf --syncconfig Kconfig *** Error during sync of the configuration. make[2]: *** [scripts/kconfig/Makefile;69: syncconfig] Error 1 make[1]: *** [Makefile;557: syncconfig] Error 2 make: *** [include/config/auto.conf.cmd] Deleting file 'include/config/tristate.conf' make: Failed to remake makefile 'include/config/auto.conf'. SYSTBL arch/x86/include/generated/asm/syscalls_32.h SYSHDR arch/x86/include/generated/asm/unistd_32_ia32.h SYSHDR arch/x86/include/generated/asm/unistd_64_x32.h SYSTBL arch/x86/include/generated/asm/syscalls_64.h [ continue running ... ] The reason is in the behavior of a pattern rule with multi-targets. %/auto.conf %/auto.conf.cmd %/tristate.conf: $(KCONFIG_CONFIG) $(Q)$(MAKE) -f $(srctree)/Makefile syncconfig GNU Make knows this rule is responsible for making all the three files simultaneously. As far as examined, auto.conf.cmd is the target in question when this rule is invoked. It is probably because auto.conf.cmd is included below the inclusion of auto.conf. The inclusion of auto.conf is mandatory, while that of auto.conf.cmd is optional. GNU Make does not care about the failure in the process of updating optional include files. I filed this issue (https://savannah.gnu.org/bugs/?56301) in case this behavior could be improved somehow in future releases of GNU Make. Anyway, it is quite easy to fix our Makefile. Given that auto.conf is already a mandatory include file, there is no reason to stick auto.conf.cmd optional. Make it mandatory as well. Cc: linux-stable # 5.0+ Fixes: 9390dff66a52 ("kbuild: invoke syncconfig if include/config/auto.conf.cmd is missing") Signed-off-by: Masahiro Yamada [commented out diff above to keep patch happy - gregkh] Signed-off-by: Greg Kroah-Hartman --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/Makefile +++ b/Makefile @@ -623,7 +623,7 @@ ifeq ($(may-sync-config),1) # Read in dependencies to all Kconfig* files, make sure to run syncconfig if # changes are detected. This should be included after arch/$(SRCARCH)/Makefile # because some architectures define CROSS_COMPILE there. --include include/config/auto.conf.cmd +include include/config/auto.conf.cmd # To avoid any implicit rule to kick in, define an empty command $(KCONFIG_CONFIG): ;