From patchwork Fri Jul 29 10:02:23 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gaurav Jain X-Patchwork-Id: 1661967 X-Patchwork-Delegate: sbabic@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=SzeVhXow; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LvNPW1Vzdz9sGR for ; Fri, 29 Jul 2022 20:03:11 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 3CDE380586; Fri, 29 Jul 2022 12:03:06 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="SzeVhXow"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 89D5880586; Fri, 29 Jul 2022 12:03:05 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS, SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.2 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2076.outbound.protection.outlook.com [40.107.22.76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id E6947800C8 for ; Fri, 29 Jul 2022 12:03:00 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=gaurav.jain@nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Jds9WcwnwJtYpWx4Lf5gXyLFdmQkWzJWdEnyZx86uJv0U2iBRBjG0p+0b7aQGUcp15g98DqDeWs4eOP7hhK1c5aSKgJuRMnXmR0nYMOPlkIcps6N6yBrOgopuuYaVCOnbE2aCW0cvJbuvZRM7H6t7TwzPn+o56dcIRmbk2QkJ8tfjSZhhc2lM4HzGlXy9xAolyNlhjx0gNsJrvIrlDfO8qYWsAEfMhJnWh/VvNEYvYeTVg/sTsaVsBRfh6lBzxT68PnV8D8cWnWNnJe9RY7pwaaj2ZGIGDELH8rI74NFOvbB/PO2DJ0vg7ha5Fl4KRNIRx3Kjc72tg84NpFgUNO1RA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=t0xe7U9XmStfCDRnseKJal7vKgObdzREgC+ovPFaJbw=; b=RYQMfWagHwuAq2Lrt+gBOmV7LZOO8IyjWxRiZf0SsNhO9G8Hkd9c5iu3ko+Oie8ewWJXM+fAOP/84Qn5XlNs+la7TRaNaqLbmI5PeMn0qwU1Fp9X+f/Fxv6l5dTlC4a1X7s2jnrHmUs2BLYruW4FiKlZg3X87VFpJ1IvBFDfTGbQuBuEQC/sR3duNUQvxGym6//JhNuUlZOP2ki18+C/cyCyIXGtqlTFJLUjJDWYuKwCQcuZjPwYDNbcyPKLSJsICUFguHlDoyjwGYDdkaPw+qMy4IDOh4GGEzo+zXmhxnldMxI2EWtZaiknTSsue4/MYU9OTSGuu3SbeSZbgrTcow== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=t0xe7U9XmStfCDRnseKJal7vKgObdzREgC+ovPFaJbw=; b=SzeVhXowxm4IiKeLdM8LQymvrGg95AiXtFGngYqFzpRdJzUAiLImN+1bEzgoZJ+r8+TYtz1rE8vQlgM5SIDt0ZD8pHAOt+8t7GqjJ5zh7XvWNgcZUVcfISOVpl1vXFD0zETf7N5/L724BogoINhXHV1+0bEMyjAFr8u0gUgRt0s= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from VI1PR04MB5342.eurprd04.prod.outlook.com (2603:10a6:803:46::16) by VI1PR04MB3982.eurprd04.prod.outlook.com (2603:10a6:803:49::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5482.6; Fri, 29 Jul 2022 10:02:59 +0000 Received: from VI1PR04MB5342.eurprd04.prod.outlook.com ([fe80::7478:5e4e:81cb:af90]) by VI1PR04MB5342.eurprd04.prod.outlook.com ([fe80::7478:5e4e:81cb:af90%6]) with mapi id 15.20.5482.012; Fri, 29 Jul 2022 10:02:59 +0000 From: Gaurav Jain To: u-boot@lists.denx.de Cc: Stefano Babic , Fabio Estevam , Peng Fan , Ye Li , Horia Geanta , Varun Sethi , "NXP i . MX U-Boot Team" , Gaurav Jain Subject: [PATCH v4] crypto/fsl: fsl_hash: Fix crash in flush dcache Date: Fri, 29 Jul 2022 15:32:23 +0530 Message-Id: <20220729100223.3012706-1-gaurav.jain@nxp.com> X-Mailer: git-send-email 2.25.1 X-ClientProxiedBy: SI2P153CA0028.APCP153.PROD.OUTLOOK.COM (2603:1096:4:190::9) To VI1PR04MB5342.eurprd04.prod.outlook.com (2603:10a6:803:46::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 3b710339-a08a-4bb5-c6b9-08da71498418 X-MS-TrafficTypeDiagnostic: VI1PR04MB3982:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Rdc+XN6IkKC9BFYuq3NzoYhjVq1YbNe3VwiOudHCcvQVjvqa+YNvrG38FKGRV4Bc9SJIBAG4BQ4p/rpTsTHrSGwNSq2pErKjmpLAmoZPLgB4tMVHezFlmm5PPXDMExVQQWIsc0PcdVzGnyTcNITGj3frkzsHA4R4WnEoL1HN1msTFxiypDHkZB/PVjDsOqFJtVlcuXDiS2Pt8dnl/tDmaiY8Fl0gLSqqclNKz/zbxTABjTYXcyMnAJVnPFOtf9Khe7dVclfkaID/HZ5FTDL1o3ux2ie8RZIrg2nAwTFS1x3gvgjlB2NdbtSCBpTr4ECyGdgaElOyxlzGsBKfOslJPOXSCzo+R7o6HR1tcVyH2J5xnutIUXWDlfpmFRSxKxI9xFYYdygqvBl2kT8bfbntDaOOA97PdGZCzpw5rSx8dHLBksXVow4scDtqNY9FuCYGNPJDCuQzqy8dtN5wyNNMJXcZk8Xzuv0ozuBJ3l46O9+/wNFzaR5x3Imr1yW9wf2mPXHofDCiqcvWTL9xxhYXbs0qMVyss37OkSU0JajMkl2GVV2iG04G7AeDeNXsHgyxeISKr6Qa8fAVmsSVHS8dMAv7ZlmaIN++8AmGByxPfWqoIGOPLPn2qaejwgIpzu6/mPoxBHagMarTC8ganSXQfRJ0Tj2WsuUSlybgJefC5DDoHu8s80+EmALINfmbIFfOeZ9GchjRNFkiz8AQLpP0ZqwlXo2xiV26NpVqVSI1HknqbhclZ3w3x3EYLBpVxsePv30Q8MF4JTEz5ABrPNBaNEnPKh2FP9FXmCZP+tzyOSz3aKrO+yElxnJvSpAKsX40 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR04MB5342.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(136003)(376002)(396003)(366004)(39860400002)(346002)(2906002)(44832011)(5660300002)(8936002)(66556008)(66946007)(66476007)(8676002)(6916009)(54906003)(316002)(6506007)(4326008)(26005)(86362001)(52116002)(38350700002)(478600001)(6486002)(6666004)(41300700001)(6512007)(38100700002)(2616005)(36756003)(1076003)(83380400001)(186003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: xnsdaqwNiZFyxW2SjweTED7KEmK/PYZxXz+QmYurQTNiAaJShgUuT28OoaH1YlRyiLeL5BIcAmktzNjR2kKTYqUFpe5dqU0n5wU9uJHnMjaL7Zhvc5dPQe3PeuSwnP+56j+f3hsmmFD2Hi++u45lPeyzUH1ENO0Iy6KvvmOzayfllTw4RPerTEDJEMLcWbLTm3EF0CEVGTJfrA61zgtdtDFUBV7Z8qyqDCMwIgAwQh92HsH7C9GFSZOylpkxHAuo4l5sk9dWUCGquksHMymV6f+yhRhDQaguvAZ2X2q3ZVl6vMZDIentNCjq/MkJGat0eJ/F33/5TAIeeFQdsvU4eqw70x0HXJ/4r3wokmxwRQNRP/TgGMD1VAEZVGBEPgLdZ0VrULxIryRP4ezYCIeYSgfLLOVJGfOWPbTwgn58ZVpyeF4S7Ist72IqjRthHKLKwYJsinLcOW+q+4RCK7++4S44uitZxEMTMLJ9riUT52YKyFzjzhlKa4eRSMsPkOYjQVl4yTeza8ZtAiro9Xb372AWEkmANA/bVLViluLFaxdZ1iGZGIgDyp6XAyzf9FMASy0fMGxjhPt7E8vf9ouVpM8oukgv8mQzG23QIzDkjukLc187CLfyHmvgBrA6UyCsyA0Nf+Hh+G8N53pR4CX1Zeo1qR5eEATvEsMjQUqY+ZEkZ+Kw7yvh5oL0rrQGgiTLsnEw9wmyH/Mx3TOTemVPpb8+6mOpS0Y/0RvPBrje425Rz5paXy8x5B1UTCmTfFGyTtgECfrA9wF62KClzQqd5wbG1dJv2P0G0KZaqF07pgMBoC/HBZBuvaWDUTw9pR6QdyVZnBu7gKTfPHp4gB0sw6GfDHVXd5KTshO+PRMq48hm/+aQ4pdj8aDEGBZ9sK9WPu/UdxcW1ODMPiuuNAbW6M97oQ4pBWwd81Ilsw4IWmQZxpEHWT4bss7RnibL4Fp2VSSxUk76ttirPlUEm9W7KDDupoKGnLqplSqF27EZoSeG3UZCtQG9xicLqi33d8zf1rADMssyaN3HDeVXX0P+XxqqQQUvvIKRkZdu5oboju6SSfxJqR+d5OmgyYC8p56YLahPW+DoVDjYh5THZ121ceDS1ItXPKwnSJEl4E2pybb3KGpZG2jQEEJoPRd03RKfSIE0AXq8tofx2tR9SxmonPZ6fgJhm3TR29p1XGty69N/eXp//hKl47XMDaUJVUNYmQw/Cyr/TBSlOs+8jy1VwEAEZsiqQm69q87uEXwcdfhOWTETEsiNHKmm5PBylrs0qGFZ7OBJTjiEtqvncw2BcdD/Lst3OQdXZWLsTanQT8M6BsKEpAy3fHAGEkV0l80XlsE3W8CTh9lfX8samtiP+azBiJ25NF9n1F19dtKwbJm17avn8ei5MpqpfoRMOMKXHLE3793dEqDO3ZRGaI2M78aEmhEbQ3QL+JVDiQvoedz6dhiNdThqjl0zNBe2gEpdgPExjU7G5SwWRNI/fssgJNC5WNT42f2rvVgpiErBpUkNOcd5yjA6eMWKv1X9nteqgiOus+q3+ITb0sM6La/HXC6RoRDKYdwNtTgzL/yxgao28igwlqaYV40OoTOkc5TJ X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3b710339-a08a-4bb5-c6b9-08da71498418 X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5342.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jul 2022 10:02:59.2082 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: TTuG6duCKvGX6wa+uI6dyh97usW0ZyAv0LzYEDcDDeOBVxi1bESVg4W2JgTBc8FZm15pkcecUPgyLMwaWtHrMA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB3982 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.6 at phobos.denx.de X-Virus-Status: Clean wrong end address passed to flush_dcache_range. modified the flush_dache logic for scatter list elements. Fixes: 1919f58a8f (crypto/fsl: fsl_hash: Fix dcache issue in caam_hash_finish) Signed-off-by: Gaurav Jain --- changes in v4: - fix powerpc error: left shift count >= width of type [-Wshift-count-overflow] addr = (addr << 32) | sec_in32(&ctx->sg_tbl[i].addr_lo); ^~ changes in v3: - fix error: left shift count >= width of type [-Werror=shift-count-overflow] drivers/crypto/fsl/fsl_hash.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/drivers/crypto/fsl/fsl_hash.c b/drivers/crypto/fsl/fsl_hash.c index 575196778c..f22f24b607 100644 --- a/drivers/crypto/fsl/fsl_hash.c +++ b/drivers/crypto/fsl/fsl_hash.c @@ -131,25 +131,35 @@ static int caam_hash_update(void *hash_ctx, const void *buf, static int caam_hash_finish(void *hash_ctx, void *dest_buf, int size, enum caam_hash_algos caam_algo) { - uint32_t len = 0; + uint32_t len = 0, sg_entry_len; struct sha_ctx *ctx = hash_ctx; int i = 0, ret = 0; + caam_dma_addr_t addr; if (size < driver_hash[caam_algo].digestsize) { return -EINVAL; } - for (i = 0; i < ctx->sg_num; i++) - len += (sec_in32(&ctx->sg_tbl[i].len_flag) & - SG_ENTRY_LENGTH_MASK); - + flush_dcache_range((ulong)ctx->sg_tbl, + (ulong)(ctx->sg_tbl) + (ctx->sg_num * sizeof(struct sg_entry))); + for (i = 0; i < ctx->sg_num; i++) { + sg_entry_len = (sec_in32(&ctx->sg_tbl[i].len_flag) & + SG_ENTRY_LENGTH_MASK); + len += sg_entry_len; +#ifdef CONFIG_CAAM_64BIT + addr = sec_in32(&ctx->sg_tbl[i].addr_hi); + addr = (addr << 32) | sec_in32(&ctx->sg_tbl[i].addr_lo); +#else + addr = sec_in32(&ctx->sg_tbl[i].addr_lo); +#endif + flush_dcache_range(addr, addr + sg_entry_len); + } inline_cnstr_jobdesc_hash(ctx->sha_desc, (uint8_t *)ctx->sg_tbl, len, ctx->hash, driver_hash[caam_algo].alg_type, driver_hash[caam_algo].digestsize, 1); - flush_dcache_range((ulong)ctx->sg_tbl, (ulong)(ctx->sg_tbl) + len); flush_dcache_range((ulong)ctx->sha_desc, (ulong)(ctx->sha_desc) + (sizeof(uint32_t) * MAX_CAAM_DESCSIZE)); flush_dcache_range((ulong)ctx->hash,