From patchwork Mon Jun 9 04:51:05 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Harsh Jain X-Patchwork-Id: 894936 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2069.outbound.protection.outlook.com [40.107.244.69]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C7FB233F6; Mon, 9 Jun 2025 04:51:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.244.69 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749444691; cv=fail; b=TDKVxiNL9r0ijLgTtsiIj/c+UqZVtL6j5SVOAASDvW7U3nLeQdGZ4sR+nY8L5JGCQ07pgo7awormtoP2Wu9ZrKtBgFcqKvxBCiSkMrOswKzmGjdovClW7JjMCXvLbby8pCoaqJZuG/momCVcnPA28FLABhImUAHB7zocPCgKU5E= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749444691; c=relaxed/simple; bh=VCmremSkXGpkjNW2aqEzA2RVXDlaPSHAmX2Hp6XxM9k=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=mlmz+iNqiPWnu6SLUxT1MG+oC+PbOWMLMdi2zfa/9d1lCewJ4LFQjjVUaXXn+wL9E0+ZaYlYRzpprnvnEsCIV7/DBZksiOyczN/UxQ1mjaY+aL3oL/0OUg2ghZrv2oN27caZOV1UpYUJjtEfO0rGFhzW2ydZCWZdm5ur1dGsHpw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=IkF4wfAw; arc=fail smtp.client-ip=40.107.244.69 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="IkF4wfAw" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=o2c5a7bz62wXJSf3rQTljMRcBEzx9c8SBqHHGXn1Hm5bf6LtWEzTkelDjKdNJxO7X+CLFhum1bDfp3WYAni62BxFcAZhxI75MnN/1naO5lOJmih4ojyE9xxKpUvrhDQXgBO0EXwK22aIrsgXFtHeiqqIMdhwtQJMDfgOVpb8I6bga3/k7fENAPkf6ueBeAKQ9wbDl1VLhg3g17oDYvrqo8G7DcQrMCwLK7ImSDMSLcz8geBlxRdJ6uNPeLNuwm3pdq3eaXimQObv+1RF+FAbF5LinEa+n1myv59bsJfLD54Z6Dgkjs58xlRYTUy6f4EbRzZVN2mBvggnINkCbDBFNQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=8TrLNjKUwJ16l+dLZ6vklzONEhQg8xBijbjVQBMcGCk=; b=rUtJraKBQqyEjli5S8LaiJUWtO4acBvRlXHX5p5RB5bBvCcMvsZcUAeNmDL1ItTzXXOjFtVUXVielTj/pKOPg28Q2gcaAiMR/gnCuh5l/+Uofl777//qO2NPEQ+r+NXpMniZri8hewaQGI5NUhlkn0PxzF/gmCfUd+DIBwJ+gq2JInq+iqaoQpH23V8lzhF4/RnnYvzWYf9H2Axl3xz0ScIDMoZ24qkx803/dZ2dI9E+U1bDSbrxJ7D0CxePgG2919/lATGMMHxdLohYPhzkngy9REocGGiw9kwDYlwg5MI+WTkMzCN1Lm0o4SQPFBo/Hs1YAwsHWy3jRkilgOvdrg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=gondor.apana.org.au smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8TrLNjKUwJ16l+dLZ6vklzONEhQg8xBijbjVQBMcGCk=; b=IkF4wfAw1cnSJW55+cpzdQBFa95AZ3bWfv/jSAI4VqpUvJwaeT+r1/JfS35hRAJihanDZFoeVsGhODnNXFc3uMuDOLJ2nLAeHrbmSSBHh2lN5oqJBY7t8xOxCLWRkm7ybnOq2+Ihug9fmMEPysxuY8Ji64IVHeBl9E1eDm1dI84= Received: from BLAPR03CA0048.namprd03.prod.outlook.com (2603:10b6:208:32d::23) by CH2PR12MB4199.namprd12.prod.outlook.com (2603:10b6:610:a7::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.40; Mon, 9 Jun 2025 04:51:26 +0000 Received: from BL02EPF00029927.namprd02.prod.outlook.com (2603:10b6:208:32d:cafe::be) by BLAPR03CA0048.outlook.office365.com (2603:10b6:208:32d::23) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8792.34 via Frontend Transport; Mon, 9 Jun 2025 04:51:26 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL02EPF00029927.mail.protection.outlook.com (10.167.249.52) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Mon, 9 Jun 2025 04:51:25 +0000 Received: from SATLEXMB06.amd.com (10.181.40.147) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Sun, 8 Jun 2025 23:51:25 -0500 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Sun, 8 Jun 2025 23:51:24 -0500 Received: from xhdharshah40.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Sun, 8 Jun 2025 23:51:22 -0500 From: Harsh Jain To: , , , , , , , CC: Harsh Jain Subject: [PATCH v2 1/6] dt-bindings: crypto: Add node for True Random Number Generator Date: Mon, 9 Jun 2025 10:21:05 +0530 Message-ID: <20250609045110.1786634-2-h.jain@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250609045110.1786634-1-h.jain@amd.com> References: <20250609045110.1786634-1-h.jain@amd.com> Precedence: bulk X-Mailing-List: linux-crypto@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF00029927:EE_|CH2PR12MB4199:EE_ X-MS-Office365-Filtering-Correlation-Id: 985aac66-6dca-44e9-f026-08dda7114a2e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|82310400026|36860700013|376014|13003099007; X-Microsoft-Antispam-Message-Info: nv6L/7K8jMR1w0quZPGXFpQnHHb9Jhzj9QTDGMz+TMtD+y2sf7J/ezqOvniq/EV5Y+yI45D/yVGZXDUTa4jnxg4orp2BA9Nt7yuNfTUpHG4/lF9Dv5BfWqNAW+MqkuLQoICbM5II2oVhKarjKiquhX6Q7i3jaGuTZa50QqDgG8qZrRModE27CtvYTjevP7Aq3HC83lN7HBQfw44saJ/5CeioS85PwRq/sG+aVd9Gl1Jnk8ZVs+fkZBXjYCDwp2iyNMUbNLxUZ3gskbqvMIun28Ala3rsTb1I4mSkokBGT3/I+kLN1bTWT6D3c51UOXssOhvSz/MMPIut1zUa7dnwZfNCwF4P8Pu82M3dmjeQf5WwCgo63OXy+KFCUHXpIZm12B40mqfcg+aDd5sJ1wfDTv0TyOXTFp8/nY8zfwXXq6U0eF5XOAEdNkkEL73lgaoduGXfhn0FOp8U/9XvGETdAOeQz7pzbTnxp8y7O5tbgS/M46t1O956ERApd45QVR5Zj+u9NvhS0fIjwtritBHDefCFiVnT2EkkbQCNyIwm8HYd5JMy4Jp0gs7wU54iNrtjsRbjLA6b0LpjLa1iDu4n2mdnsRL+JdpM19NYy5zaksRKADKtp2vh8bYxy0SgsvjkTDmh8uR3ENvcPyOa5kMuZB9DRFSvseRBuLRLO/3zY6xGsqWQWQHWq7Nwk9LiiHrec1G4vJBK9TW6FiJWcGJFjpOvUKQ1kls7waXlhEu4iby+N0R7WUsL+UITW6N98xJYLiwURGElBwXVhqY4UPFgioYPxN4W4iGGfnOYXLwPzh8uXvWop+t30OQe3WhSNm3zcFVahat3F5D0GRRr4Xt3OdX+q4DwunSIAoVDt2xjn45HsH6oKYFJXPH7OKNEbcc95JYWykv5KtElyYGmgiJ07KZuKVD91T7nLK09/54tqf78JYR1/IDXB8/rBHMy4aQx4Oq647xTIf11AvXi7UvQ8/P/uqTanOc77DMCvKFauDowXQ3ajwqm0urOpv79WSlhAG0V2nVG0tgg6z8nEcyOWVK2rFb/DCY4GSQ/+05zlxZMZv3bJ75wzSfeypCDycBQeVWIuVMCMyHkhqK95vYckVYSqlMy2O5vt2mgffQjUd6oZmFAEYTcglO2SmKQRe5c9vDn9RWQjbq+qQNXxxJMyxqtOaBgqn5Yn7qapCRkyosJiZSSS87ipGEd5A7BhYfZyNeZ+NNk/U8wHntCDOsHQYkOOe47akSTbV9wVrVJcZ1WrCiKEVzEJjVeZcpQg6XLR2/EENaHD5ZWdEMmEv2nJ2zAGq5vrroNRgkWfqU7kTAFJVucDG1/Em4mW1Vs+p6op6VN6fB+1hW9aE5w0laWOxzgIl5kIvZSClAYXRDmathLKRurZdxW4XKfftRb8wW4+IycXlILGuSZM53mmFSNhJ3jFctW9ln2uOJxnALdRVLUG3wYObdEchRlyVcn685H/KtLqNgZHEOPuFd8Sa0+Hw== X-Forefront-Antispam-Report: CIP:165.204.84.17; CTRY:US; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:SATLEXMB04.amd.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(1800799024)(82310400026)(36860700013)(376014)(13003099007); DIR:OUT; SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jun 2025 04:51:25.6904 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 985aac66-6dca-44e9-f026-08dda7114a2e X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d; Ip=[165.204.84.17]; Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF00029927.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4199 From: Mounika Botcha Add TRNG node compatible string and reg properities. Signed-off-by: Mounika Botcha Signed-off-by: Harsh Jain --- .../bindings/crypto/xlnx,versal-trng.yaml | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 Documentation/devicetree/bindings/crypto/xlnx,versal-trng.yaml diff --git a/Documentation/devicetree/bindings/crypto/xlnx,versal-trng.yaml b/Documentation/devicetree/bindings/crypto/xlnx,versal-trng.yaml new file mode 100644 index 000000000000..b6424eeb5966 --- /dev/null +++ b/Documentation/devicetree/bindings/crypto/xlnx,versal-trng.yaml @@ -0,0 +1,36 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/crypto/xlnx,versal-rng.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Xilinx Versal True Random Number Generator Hardware Accelerator + +maintainers: + - Harsh Jain + - Mounika Botcha + +description: + The Versal True Random Number Generator consists of Ring Oscillators as + entropy source and a deterministic CTR_DRBG random bit generator (DRBG). + +properties: + compatible: + const: xlnx,versal-rng + + reg: + maxItems: 1 + +required: + - reg + +additionalProperties: false + +examples: + - | + rng@f1230000 { + compatible = "xlnx,versal-rng"; + reg = <0xf1230000 0x1000>; + }; +... + From patchwork Mon Jun 9 04:51:06 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Harsh Jain X-Patchwork-Id: 897726 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2073.outbound.protection.outlook.com [40.107.236.73]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BCA1733F6; Mon, 9 Jun 2025 04:51:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.236.73 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749444698; cv=fail; b=TDET/ztLj7RFbalx0JOvK7HR3TGZ82vFwjPbznOrgY42XFDggyl+2lvwyg4PsNCgsM6XXdX2eE/nFilgyHp3y17L+bjDn4VjXcsXLRjwXf7MapSuVZIaR+s3sRiLSDnhhFGzrh1A93hLQCL5Z8X1EfemS2JTF16/0GP6MT1Ceog= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749444698; c=relaxed/simple; bh=BnKHssEn1YmsxSu8/un5ujyzy6DU2nTOnSnio/xwemg=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=NG6UeVGaROqoF7qnGe9ddjcy/W4EAQ5f8IMo+8pqUB1YaP8uyN+1QeOXAv7R2/hug8yTIBVKeYPAVX1zRcmholc3UPfXUzx8xM4ztqGbcQNd2f2qaVctT8SsUBhS/o4na8rdCrvTPEYgVdvBU8WcpOcAwis2eoZJOwgnY6Vhzeo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=3y9LS+XY; arc=fail smtp.client-ip=40.107.236.73 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="3y9LS+XY" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=dvO4SYjheKv/DFFPS1WXrPrk/Ms5rU0asyHole297ESUUpIu7sHboUKZOcCRMX1JYydymGTysr9s3yDoe0Da5WO4yS9WOK39HqrOqUMmqYdSV6rmWdTa/c/fqsiFXPEhXJR+ZNyN2opm9XvIRgVHK/BCuSkVnIgbmN7RnwwNeNnAjkrjQy6fS3vHZqCGl1oCJsz3j9i1zDJVtqky+6KUD1RGhXWn3n1g8u8FOkdgD2vSWeOrbecOdo1U8E/wa4Uctc3YxvcYYLbXsvoR8l1PLxKGt6hjnVYS5PM7L2gpjvEmKNqmdyc4mQyWQ4YHmB1nE4k5mnZ1Ix/+84wDJ3W9bA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=oSXnda0Nk4/moBRR1HBdBhGHnz72fYK1ITx4A2LfxFM=; b=A+VDHJkr1cJenCSVEfz0u68VgLFNwxb1pmmMoJd0aS24XreP71iK4NTbjQ8MFWCAhxNdSCkskIz4+gFa6FsFCpYF80Zijxw4cZ39qblh1Ol8OjuY3G64C6Aazk358JK86/6vucBk1z2my0hPiEQnplFx9iJ+W7oLAQ1Ei9IWqXztlHhN1LlFJ6RWo9tOEHMQe591SLEKeOqkCaA1fjGDI79JPzhQqzkHj1PhHcfYeMjGYdS9zh0MG4ZZfU5nRM2jfNxkNGd/iE8aUjIcAcpKdmsCWgedFjL3NIw+Y5I0+5MgHzX6HjduNm2LrID8w3OSt+7cILqeNUXENiIhmcm2rA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=gondor.apana.org.au smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=oSXnda0Nk4/moBRR1HBdBhGHnz72fYK1ITx4A2LfxFM=; b=3y9LS+XYLhWULiihIilPRxGHWnjbtD9lO97D5sNQcH6S31KUWMmzGtgzldbiO5O+Rek1xbKpmvLLAylyRf6Pzl2ajlZadXMUFHN7XhGNvoUbNBhQuvhBF42at7alswpmxvmZy50v9FTjr3vg0QeAr2uvrzXayDGaxpA/NfIVYnc= Received: from BL1PR13CA0101.namprd13.prod.outlook.com (2603:10b6:208:2b9::16) by PH7PR12MB9074.namprd12.prod.outlook.com (2603:10b6:510:2f4::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.40; Mon, 9 Jun 2025 04:51:29 +0000 Received: from BL02EPF0002992D.namprd02.prod.outlook.com (2603:10b6:208:2b9:cafe::e2) by BL1PR13CA0101.outlook.office365.com (2603:10b6:208:2b9::16) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8835.16 via Frontend Transport; Mon, 9 Jun 2025 04:51:29 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL02EPF0002992D.mail.protection.outlook.com (10.167.249.58) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Mon, 9 Jun 2025 04:51:28 +0000 Received: from SATLEXMB05.amd.com (10.181.40.146) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Sun, 8 Jun 2025 23:51:28 -0500 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Sun, 8 Jun 2025 23:51:27 -0500 Received: from xhdharshah40.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Sun, 8 Jun 2025 23:51:25 -0500 From: Harsh Jain To: , , , , , , , CC: Harsh Jain Subject: [PATCH v2 2/6] crypto: xilinx: Add TRNG driver for Versal Date: Mon, 9 Jun 2025 10:21:06 +0530 Message-ID: <20250609045110.1786634-3-h.jain@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250609045110.1786634-1-h.jain@amd.com> References: <20250609045110.1786634-1-h.jain@amd.com> Precedence: bulk X-Mailing-List: linux-crypto@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Received-SPF: None (SATLEXMB05.amd.com: h.jain@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF0002992D:EE_|PH7PR12MB9074:EE_ X-MS-Office365-Filtering-Correlation-Id: be4c0a90-c5d9-400d-2dd0-08dda7114bf3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|36860700013|82310400026|376014; X-Microsoft-Antispam-Message-Info: 9NkVh+3G1+KIqemcJDG5ryg3IKQN6nNAV8qVJpxj+zU8MHBDbgeCSjhYFprg3GKaXtYf9SVlcXjODnC92fbnR0ObWH60z1SU7P6/R9snKpK1/MzSzRSzXwajge7C9u+MUPwIvVnaQMw0nB8VTGTNITwiEwk6ncASxOmVzd84McK7d1YCweQztrT/e2vTVZpt44BRHZDfO7pnwPdk9oMg6zS4c9EGzqQdhpi3768G9JE9H2dQCxRPD+sH29oKFIz2iXx9wN2KllQ8AXohObCpPblNtxQbVulDQ3wejzHzyf1xGzl5sZN7e6lKlQWT4gYQkSfyw/+wxNyuCBQme/E9gW5zT8gw77zRX6EuS5DvmQnzMpLukZZtOmbOEsz1x49PJVCqWl1/Uc0gZ5yFK4tsUQ01cranulmN0MNYkDSUJMp6IeOVn+2xt7KvKw+bOhP8aoi512YUXv2tXwFFOSXaHhBru3sgGW4Bp+w+kJQX6bpYuIPqa+RAYlyWDbZ+HZySL5ibOK+1Y4crbWLa/vBm3D7x4DY708nQMV3qij1LVl2BbohLR8/e6bAoPvIEpmp2B9iJznCi9LICFQqCGXSc3L0VGIvW9/d0yKV2OPXBua6eW3dakg01STZnNa/QxhObeIXysK+M6lkYwzQzUAa8ZThiWex0iFq6nfHN1iXyMafAVkdn6JlL9HoXMNO7D9yWcDgQzwxuPiqY2bVpUF2NUtSTtbWiVF9j1jhI+mh7EJF9KMuoIX4idBOuZbrvQYOnnP5GzRHMJ3UEjLdLZelQtyXYk3Temb861cLJFR9+8rqEGBsXmC4Smf8FM8oYIdeqRV4UpNcY42QLnTb28/091F77Dyk2AL+SwNT4cJM8rQaHRua15ZX1fb/yhfCqyuVp4OzZYDqr38Yf5HjMUCpDLKn6wSIoMphJ6n1OT8rYueRvIJL5pTL09LFN8qhwcPuCSXLXWVXXMFGZs2bsLOnWz+FREAWkaApW0v3DAZ2eVsANv9kRwFmOibsYFXr+AyXydq7CQq2ByIdU3VuoraS+JHnl5lOsLmNppbTQpFR7BL/BwKr2mmqALALD8wsuVjr3w/cavnRKPJS7zW4pUGSXeDtRggiH8K3aV/XGYpSo5QJtZ5q0uApgI27FmrxDYSK7Tv3tZI07b0+17R/hftBT0771cgutqbrAWl8ONn+IbzruTyXja6wYO13vTAr3gijTa19nz+VDQu0RvloxqhB8QI5YpceHNkQpJZeQk+Mmh2mgqrQbIqZkmXsIqbQFkQWao7+8La5gRJqiTJqmt/hrTGadIs3/ZWd70GPX6GQmQxV4Z0uOOaxd7eQI2AWgR2ON9EIA7XBQlRv5GnnznEXCEHFOgVtRqL1SKap0tbC4TWsvNG5Y618sGBBOnxrcM3MxOdjhObd1whtlvOarpk/V/BrCgBT/fJMLmYzA7s26P9p18bpgz6vBBVC2tyDvqbnVIc4/GOD+etQ2eA1KZl3jGkBYBjHlJguyXcp+5pIxzCxsaDmb1g7HcLjZph4UUG+R X-Forefront-Antispam-Report: CIP:165.204.84.17; CTRY:US; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:SATLEXMB04.amd.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014); DIR:OUT; SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jun 2025 04:51:28.6564 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: be4c0a90-c5d9-400d-2dd0-08dda7114bf3 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d; Ip=[165.204.84.17]; Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF0002992D.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB9074 Add True Random Number Generator(TRNG) driver for Versal platform. Co-developed-by: Mounika Botcha Signed-off-by: Mounika Botcha Signed-off-by: Harsh Jain --- MAINTAINERS | 6 + drivers/crypto/Kconfig | 12 + drivers/crypto/xilinx/Makefile | 1 + drivers/crypto/xilinx/xilinx-trng.c | 408 ++++++++++++++++++++++++++++ 4 files changed, 427 insertions(+) create mode 100644 drivers/crypto/xilinx/xilinx-trng.c diff --git a/MAINTAINERS b/MAINTAINERS index 85f7619e06b6..6995a0017a35 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -26578,6 +26578,12 @@ F: drivers/misc/Makefile F: drivers/misc/xilinx_sdfec.c F: include/uapi/misc/xilinx_sdfec.h +XILINX TRNG DRIVER +M: Mounika Botcha +M: Harsh Jain +S: Maintained +F: drivers/crypto/xilinx/xilinx-trng.c + XILINX UARTLITE SERIAL DRIVER M: Peter Korsgaard L: linux-serial@vger.kernel.org diff --git a/drivers/crypto/Kconfig b/drivers/crypto/Kconfig index 5686369779be..209720b42ec6 100644 --- a/drivers/crypto/Kconfig +++ b/drivers/crypto/Kconfig @@ -711,6 +711,18 @@ config CRYPTO_DEV_TEGRA Select this to enable Tegra Security Engine which accelerates various AES encryption/decryption and HASH algorithms. +config CRYPTO_DEV_XILINX_TRNG + tristate "Support for Xilinx True Random Generator" + depends on ZYNQMP_FIRMWARE || COMPILE_TEST + select CRYPTO_RNG + select HW_RANDOM + help + Xilinx Versal SoC driver provides kernel-side support for True Random Number + Generator and Pseudo random Number in CTR_DRBG mode as defined in NIST SP800-90A. + + To compile this driver as a module, choose M here: the module + will be called xilinx-trng. + config CRYPTO_DEV_ZYNQMP_AES tristate "Support for Xilinx ZynqMP AES hw accelerator" depends on ZYNQMP_FIRMWARE || COMPILE_TEST diff --git a/drivers/crypto/xilinx/Makefile b/drivers/crypto/xilinx/Makefile index 730feff5b5f2..9b51636ef75e 100644 --- a/drivers/crypto/xilinx/Makefile +++ b/drivers/crypto/xilinx/Makefile @@ -1,3 +1,4 @@ # SPDX-License-Identifier: GPL-2.0-only +obj-$(CONFIG_CRYPTO_DEV_XILINX_TRNG) += xilinx-trng.o obj-$(CONFIG_CRYPTO_DEV_ZYNQMP_AES) += zynqmp-aes-gcm.o obj-$(CONFIG_CRYPTO_DEV_ZYNQMP_SHA3) += zynqmp-sha.o diff --git a/drivers/crypto/xilinx/xilinx-trng.c b/drivers/crypto/xilinx/xilinx-trng.c new file mode 100644 index 000000000000..3b861d1a8a8d --- /dev/null +++ b/drivers/crypto/xilinx/xilinx-trng.c @@ -0,0 +1,408 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * AMD Versal True Random Number Generator driver + * Copyright (c) 2024 - 2025 Advanced Micro Devices, Inc. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* TRNG Registers Offsets */ +#define TRNG_STATUS_OFFSET 0x4U +#define TRNG_CTRL_OFFSET 0x8U +#define TRNG_EXT_SEED_OFFSET 0x40U +#define TRNG_PER_STRNG_OFFSET 0x80U +#define TRNG_CORE_OUTPUT_OFFSET 0xC0U +#define TRNG_RESET_OFFSET 0xD0U +#define TRNG_OSC_EN_OFFSET 0xD4U + +/* Mask values */ +#define TRNG_RESET_VAL_MASK BIT(0) +#define TRNG_OSC_EN_VAL_MASK BIT(0) +#define TRNG_CTRL_PRNGSRST_MASK BIT(0) +#define TRNG_CTRL_EUMODE_MASK BIT(8) +#define TRNG_CTRL_TRSSEN_MASK BIT(2) +#define TRNG_CTRL_PRNGSTART_MASK BIT(5) +#define TRNG_CTRL_PRNGXS_MASK BIT(3) +#define TRNG_CTRL_PRNGMODE_MASK BIT(7) +#define TRNG_STATUS_DONE_MASK BIT(0) +#define TRNG_STATUS_QCNT_MASK GENMASK(11, 9) +#define TRNG_STATUS_QCNT_16_BYTES 0x800 + +/* Sizes in bytes */ +#define TRNG_SEED_LEN_BYTES 48U +#define TRNG_ENTROPY_SEED_LEN_BYTES 64U +#define TRNG_SEC_STRENGTH_SHIFT 5U +#define TRNG_SEC_STRENGTH_BYTES BIT(TRNG_SEC_STRENGTH_SHIFT) +#define TRNG_BYTES_PER_REG 4U +#define TRNG_RESET_DELAY 10 +#define TRNG_NUM_INIT_REGS 12U +#define TRNG_READ_4_WORD 4 +#define TRNG_DATA_READ_DELAY 8000 + +struct xilinx_rng { + void __iomem *rng_base; + struct device *dev; + struct mutex lock; /* Protect access to TRNG device */ + struct hwrng trng; +}; + +struct xilinx_rng_ctx { + struct xilinx_rng *rng; +}; + +static struct xilinx_rng *xilinx_rng_dev; + +static void xtrng_readwrite32(void __iomem *addr, u32 mask, u8 value) +{ + u32 val; + + val = ioread32(addr); + val = (val & (~mask)) | (mask & value); + iowrite32(val, addr); +} + +static void xtrng_trng_reset(void __iomem *addr) +{ + xtrng_readwrite32(addr + TRNG_RESET_OFFSET, TRNG_RESET_VAL_MASK, TRNG_RESET_VAL_MASK); + udelay(TRNG_RESET_DELAY); + xtrng_readwrite32(addr + TRNG_RESET_OFFSET, TRNG_RESET_VAL_MASK, 0); +} + +static void xtrng_hold_reset(void __iomem *addr) +{ + xtrng_readwrite32(addr + TRNG_CTRL_OFFSET, TRNG_CTRL_PRNGSRST_MASK, + TRNG_CTRL_PRNGSRST_MASK); + iowrite32(TRNG_RESET_VAL_MASK, addr + TRNG_RESET_OFFSET); + udelay(TRNG_RESET_DELAY); +} + +static void xtrng_softreset(struct xilinx_rng *rng) +{ + xtrng_readwrite32(rng->rng_base + TRNG_CTRL_OFFSET, TRNG_CTRL_PRNGSRST_MASK, + TRNG_CTRL_PRNGSRST_MASK); + udelay(TRNG_RESET_DELAY); + xtrng_readwrite32(rng->rng_base + TRNG_CTRL_OFFSET, TRNG_CTRL_PRNGSRST_MASK, 0); +} + +/* Return no. of bytes read */ +static size_t xtrng_readblock32(void __iomem *rng_base, __be32 *buf, int blocks32, bool wait) +{ + int read = 0, ret; + int timeout = 1; + int i, idx; + u32 val; + + if (wait) + timeout = TRNG_DATA_READ_DELAY; + + for (i = 0; i < (blocks32 * 2); i++) { + /* TRNG core generate data in 16 bytes. Read twice to complete 32 bytes read */ + ret = readl_poll_timeout(rng_base + TRNG_STATUS_OFFSET, val, + (val & TRNG_STATUS_QCNT_MASK) == + TRNG_STATUS_QCNT_16_BYTES, !!wait, timeout); + if (ret) + break; + + for (idx = 0; idx < TRNG_READ_4_WORD; idx++) { + *(buf + read) = cpu_to_be32(ioread32(rng_base + TRNG_CORE_OUTPUT_OFFSET)); + read += 1; + } + } + return read * 4; +} + +static int xtrng_collect_random_data(struct xilinx_rng *rng, u8 *rand_gen_buf, + int no_of_random_bytes, bool wait) +{ + u8 randbuf[TRNG_SEC_STRENGTH_BYTES]; + int byteleft, blocks, count = 0; + int ret; + + byteleft = no_of_random_bytes & (TRNG_SEC_STRENGTH_BYTES - 1); + blocks = no_of_random_bytes >> TRNG_SEC_STRENGTH_SHIFT; + xtrng_readwrite32(rng->rng_base + TRNG_CTRL_OFFSET, TRNG_CTRL_PRNGSTART_MASK, + TRNG_CTRL_PRNGSTART_MASK); + if (blocks) { + ret = xtrng_readblock32(rng->rng_base, (__be32 *)rand_gen_buf, blocks, wait); + if (!ret) + return 0; + count += ret; + } + + if (byteleft) { + ret = xtrng_readblock32(rng->rng_base, (__be32 *)randbuf, 1, wait); + if (!ret) + return count; + memcpy(rand_gen_buf + (blocks * TRNG_SEC_STRENGTH_BYTES), randbuf, byteleft); + count += byteleft; + } + + xtrng_readwrite32(rng->rng_base + TRNG_CTRL_OFFSET, + TRNG_CTRL_PRNGMODE_MASK | TRNG_CTRL_PRNGSTART_MASK, 0U); + + return count; +} + +static void xtrng_write_multiple_registers(void __iomem *base_addr, u32 *values, size_t n) +{ + void __iomem *reg_addr; + size_t i; + + /* Write seed value into EXTERNAL_SEED Registers in big endian format */ + for (i = 0; i < n; i++) { + reg_addr = (base_addr + ((n - 1 - i) * TRNG_BYTES_PER_REG)); + iowrite32((u32 __force)(cpu_to_be32(values[i])), reg_addr); + } +} + +static void xtrng_enable_entropy(struct xilinx_rng *rng) +{ + iowrite32(TRNG_OSC_EN_VAL_MASK, rng->rng_base + TRNG_OSC_EN_OFFSET); + xtrng_softreset(rng); + iowrite32(TRNG_CTRL_EUMODE_MASK | TRNG_CTRL_TRSSEN_MASK, rng->rng_base + TRNG_CTRL_OFFSET); +} + +static int xtrng_reseed_internal(struct xilinx_rng *rng) +{ + u8 entropy[TRNG_ENTROPY_SEED_LEN_BYTES]; + u32 entropylen = TRNG_SEED_LEN_BYTES; + struct drbg_string data; + LIST_HEAD(seedlist); + u32 val; + int ret; + + drbg_string_fill(&data, entropy, entropylen); + list_add_tail(&data.list, &seedlist); + memset(entropy, 0, sizeof(entropy)); + xtrng_enable_entropy(rng); + + /* collect random data to use it as entropy (input for DF) */ + ret = xtrng_collect_random_data(rng, entropy, TRNG_SEED_LEN_BYTES, true); + if (ret != TRNG_SEED_LEN_BYTES) + return -EINVAL; + + xtrng_write_multiple_registers(rng->rng_base + TRNG_EXT_SEED_OFFSET, + (u32 *)entropy, TRNG_NUM_INIT_REGS); + /* select reseed operation */ + iowrite32(TRNG_CTRL_PRNGXS_MASK, rng->rng_base + TRNG_CTRL_OFFSET); + + /* Start the reseed operation with above configuration and wait for STATUS.Done bit to be + * set. Monitor STATUS.CERTF bit, if set indicates SP800-90B entropy health test has failed. + */ + xtrng_readwrite32(rng->rng_base + TRNG_CTRL_OFFSET, TRNG_CTRL_PRNGSTART_MASK, + TRNG_CTRL_PRNGSTART_MASK); + + ret = readl_poll_timeout(rng->rng_base + TRNG_STATUS_OFFSET, val, + (val & TRNG_STATUS_DONE_MASK) == TRNG_STATUS_DONE_MASK, + 1U, 15000U); + if (ret) + return ret; + + xtrng_readwrite32(rng->rng_base + TRNG_CTRL_OFFSET, TRNG_CTRL_PRNGSTART_MASK, 0U); + + return 0; +} + +static int xtrng_random_bytes_generate(struct xilinx_rng *rng, u8 *rand_buf_ptr, + u32 rand_buf_size, int wait) +{ + int nbytes; + int ret; + + xtrng_readwrite32(rng->rng_base + TRNG_CTRL_OFFSET, + TRNG_CTRL_PRNGMODE_MASK | TRNG_CTRL_PRNGXS_MASK, + TRNG_CTRL_PRNGMODE_MASK | TRNG_CTRL_PRNGXS_MASK); + nbytes = xtrng_collect_random_data(rng, rand_buf_ptr, rand_buf_size, wait); + + ret = xtrng_reseed_internal(rng); + if (ret) { + dev_err(rng->dev, "Re-seed fail\n"); + return ret; + } + + return nbytes; +} + +static int xtrng_trng_generate(struct crypto_rng *tfm, const u8 *src, u32 slen, + u8 *dst, u32 dlen) +{ + struct xilinx_rng_ctx *ctx = crypto_rng_ctx(tfm); + int ret; + + mutex_lock(&ctx->rng->lock); + ret = xtrng_random_bytes_generate(ctx->rng, dst, dlen, true); + mutex_unlock(&ctx->rng->lock); + + return ret < 0 ? ret : 0; +} + +static int xtrng_trng_seed(struct crypto_rng *tfm, const u8 *seed, unsigned int slen) +{ + return 0; +} + +static int xtrng_trng_init(struct crypto_tfm *rtfm) +{ + struct xilinx_rng_ctx *ctx = crypto_tfm_ctx(rtfm); + + ctx->rng = xilinx_rng_dev; + + return 0; +} + +static struct rng_alg xtrng_trng_alg = { + .generate = xtrng_trng_generate, + .seed = xtrng_trng_seed, + .seedsize = 0, + .base = { + .cra_name = "stdrng", + .cra_driver_name = "xilinx-trng", + .cra_priority = 300, + .cra_ctxsize = sizeof(struct xilinx_rng_ctx), + .cra_module = THIS_MODULE, + .cra_init = xtrng_trng_init, + }, +}; + +static int xtrng_hwrng_trng_read(struct hwrng *hwrng, void *data, size_t max, bool wait) +{ + u8 buf[TRNG_SEC_STRENGTH_BYTES]; + struct xilinx_rng *rng; + int ret = -EINVAL, i = 0; + + rng = container_of(hwrng, struct xilinx_rng, trng); + /* Return in case wait not set and lock not available. */ + if (!mutex_trylock(&rng->lock) && !wait) + return 0; + else if (!mutex_is_locked(&rng->lock) && wait) + mutex_lock(&rng->lock); + + while (i < max) { + ret = xtrng_random_bytes_generate(rng, buf, TRNG_SEC_STRENGTH_BYTES, wait); + if (ret < 0) + break; + + memcpy(data + i, buf, min(ret, (max - i))); + i += min(ret, (max - i)); + } + mutex_unlock(&rng->lock); + + return ret; +} + +static int xtrng_hwrng_register(struct hwrng *trng) +{ + int ret; + + trng->name = "Xilinx Versal Crypto Engine TRNG"; + trng->read = xtrng_hwrng_trng_read; + + ret = hwrng_register(trng); + if (ret) + pr_err("Fail to register the TRNG\n"); + + return ret; +} + +static void xtrng_hwrng_unregister(struct hwrng *trng) +{ + hwrng_unregister(trng); +} + +static int xtrng_probe(struct platform_device *pdev) +{ + struct xilinx_rng *rng; + int ret; + + rng = devm_kzalloc(&pdev->dev, sizeof(*rng), GFP_KERNEL); + if (!rng) + return -ENOMEM; + + rng->dev = &pdev->dev; + rng->rng_base = devm_platform_ioremap_resource(pdev, 0); + if (IS_ERR(rng->rng_base)) { + dev_err(&pdev->dev, "Failed to map resource %ld\n", PTR_ERR(rng->rng_base)); + return PTR_ERR(rng->rng_base); + } + + xtrng_trng_reset(rng->rng_base); + ret = xtrng_reseed_internal(rng); + if (ret) { + dev_err(&pdev->dev, "TRNG Seed fail\n"); + return ret; + } + + xilinx_rng_dev = rng; + mutex_init(&rng->lock); + ret = crypto_register_rng(&xtrng_trng_alg); + if (ret) { + dev_err(&pdev->dev, "Crypto Random device registration failed: %d\n", ret); + return ret; + } + ret = xtrng_hwrng_register(&rng->trng); + if (ret) { + dev_err(&pdev->dev, "HWRNG device registration failed: %d\n", ret); + goto crypto_rng_free; + } + platform_set_drvdata(pdev, rng); + + return 0; + +crypto_rng_free: + crypto_unregister_rng(&xtrng_trng_alg); + + return ret; +} + +static void xtrng_remove(struct platform_device *pdev) +{ + struct xilinx_rng *rng; + u32 zero[TRNG_NUM_INIT_REGS] = { }; + + rng = platform_get_drvdata(pdev); + xtrng_hwrng_unregister(&rng->trng); + crypto_unregister_rng(&xtrng_trng_alg); + xtrng_write_multiple_registers(rng->rng_base + TRNG_EXT_SEED_OFFSET, zero, + TRNG_NUM_INIT_REGS); + xtrng_write_multiple_registers(rng->rng_base + TRNG_PER_STRNG_OFFSET, zero, + TRNG_NUM_INIT_REGS); + xtrng_hold_reset(rng->rng_base); + xilinx_rng_dev = NULL; +} + +static const struct of_device_id xtrng_of_match[] = { + { .compatible = "xlnx,versal-rng", }, + {}, +}; + +MODULE_DEVICE_TABLE(of, xtrng_of_match); + +static struct platform_driver xtrng_driver = { + .driver = { + .name = "xlnx,versal-rng", + .of_match_table = xtrng_of_match, + }, + .probe = xtrng_probe, + .remove = xtrng_remove, +}; + +module_platform_driver(xtrng_driver); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Harsh Jain "); +MODULE_AUTHOR("Mounika Botcha "); +MODULE_DESCRIPTION("True Random Number Generator Driver"); From patchwork Mon Jun 9 04:51:07 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Harsh Jain X-Patchwork-Id: 894935 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2062.outbound.protection.outlook.com [40.107.244.62]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8C13719AD70; Mon, 9 Jun 2025 04:51:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.244.62 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749444699; cv=fail; b=TSL0rBrxkkyWjo/m9COrTLZkoKLcIG4ISSJK87vsZ4E46Hp4QgvYicGTj0K5zt/fYgRiYRV1hytTCncf3UUMNWsRh1BN18PA5iNHxGBNVToL1lHyIXwDsfc9o0A/GCSfP4xsC1mcMnO7CXQT52xUWtA2mA8x9TCd+dVQAeSGJrI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749444699; c=relaxed/simple; bh=MoI5QoDfZPxXPpY63QdCyXKdQQGXxZM94BedQ9p1wJU=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=GCo5EZN6wTdxDlpW6hRC5gWAcJKhQxlfGWMApuWY+lvbHRz0yzO8LtBoHmju9SAxzWgfLCTDUhd3mJeyZFhdSPffKw0fI6H4Zf9mtebzsaUFieO/P6c9MbAgBxGqaKFJCb5+dF/UQVMqWSvyztLP75OqMTUBtK8u0h6tF84prqU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=DFZaN/Zn; arc=fail smtp.client-ip=40.107.244.62 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="DFZaN/Zn" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Z8yOrkc9is13rROcgbWGuNgbYpm270B1tUQGeQcn2a9vS8ETUKSeL1OjjBKph6Lb/LsX+DNPZ3h1zykLHbXhVOHyBXUHZkHn9aLHhY/EbGdXGMelGAhvER3BWJruCgnWPZYXULS3301u+xSzPJqmTINlMEdkypIbg3gB+RkM6qAfM1r3W8k31busSvQfph1PBTbPBiQ+CRLEubZ0k9Srb4lXdXU/yxEOEODF/wZa/WBCXnbDlqshW89H5iWe61wtWsBnVNU7412jfdTcpiQYeW6pH4NkHo4N5W7vd6MovHoYnmOTvFpZWm2Tb3tpZNxRpsM1677rFjV65wP9Az3taw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=TUHpRqDKxmGsQCLJlc0SNCuvSYql0lFht/UId3+I7mA=; b=N+AxbbaqZxWnqb49LsuGbIS/XigFoRgwQiJhgfm/WBP2O8cXN5xFqajmX+2k3wHcPrzeAGOLqirTuaTW9GBQFEJCIyCNiwB/sNRQ4CAhgPyODmyFWsZL4+1Pjj7iO6+BFHIVZEJNkDuoXMNOKSpKp+TKYggEQhQLFGy+9p3+aAlipFDDO5AWfdJbLSrjiUF9LQqoHcNoKEUzHt94BX1bzB6aBF9tyr5buV7I04fJqX4yZJVpWd12q2c88o530miIREBio7tpyeZMGxX2aWyA5/CMTCP3EHOBkCOu/gj2P32WYw3eRolJNZ4fT+CM3cYMZrMnHcqHt4sqqh4xRgwurg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=gondor.apana.org.au smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TUHpRqDKxmGsQCLJlc0SNCuvSYql0lFht/UId3+I7mA=; b=DFZaN/Zna8J50mLb7IwIUv5jqgLmp724N/DpM+NeHWeIk67+BveeNMaMhBVaJ8DASKPCmUFMV9ajyKjfQq8OYkwLbYBUH8t2EbBOas9RpzK/D31VX9HN8WA18NOkp1muB0XXPud3RLyT57PYC4U8xjovAFXl8O2tUxazsj79kjU= Received: from DM6PR21CA0008.namprd21.prod.outlook.com (2603:10b6:5:174::18) by SJ5PPF0170DF9F2.namprd12.prod.outlook.com (2603:10b6:a0f:fc02::985) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.31; Mon, 9 Jun 2025 04:51:33 +0000 Received: from CY4PEPF0000E9D8.namprd05.prod.outlook.com (2603:10b6:5:174:cafe::c0) by DM6PR21CA0008.outlook.office365.com (2603:10b6:5:174::18) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8835.16 via Frontend Transport; Mon, 9 Jun 2025 04:51:32 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB03.amd.com; pr=C Received: from SATLEXMB03.amd.com (165.204.84.17) by CY4PEPF0000E9D8.mail.protection.outlook.com (10.167.241.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Mon, 9 Jun 2025 04:51:32 +0000 Received: from SATLEXMB05.amd.com (10.181.40.146) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Sun, 8 Jun 2025 23:51:31 -0500 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Sun, 8 Jun 2025 23:51:30 -0500 Received: from xhdharshah40.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Sun, 8 Jun 2025 23:51:28 -0500 From: Harsh Jain To: , , , , , , , CC: Harsh Jain Subject: [PATCH v2 3/6] crypto: drbg: Export CTR DRBG DF functions Date: Mon, 9 Jun 2025 10:21:07 +0530 Message-ID: <20250609045110.1786634-4-h.jain@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250609045110.1786634-1-h.jain@amd.com> References: <20250609045110.1786634-1-h.jain@amd.com> Precedence: bulk X-Mailing-List: linux-crypto@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Received-SPF: None (SATLEXMB05.amd.com: h.jain@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9D8:EE_|SJ5PPF0170DF9F2:EE_ X-MS-Office365-Filtering-Correlation-Id: ea532df3-1c1a-40c8-e79d-08dda7114e0d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|36860700013|376014|1800799024|82310400026; X-Microsoft-Antispam-Message-Info: N3y/UEN0s3pcQP6DSXcbgpwVWJdOLWZZvMbThJCfUBip9ze1V6cVCIKoHcw7XrYBgCGD9BptMehM5i8pyFn09vAm6/FZ6eT4QPGySITca/wCjRkjukayTJI5z0cmDe883cQon9fTMeLw2gfKucEYh/v5kp4Oc7L4FMWiFVovA0PffXiewJBlHsAU68uGRlujcwSRMNM7ZZC6X4fW89V8G3cuURLVkTFX7cnKLbuo2HJIGemf0eHiQSEXZiTkiEvOe625EbXtyDR3xITKls0jJ0BB+cSsHISE2K5hZOasvrk23L64TO5ZkLVvHVdfAzCrrAooP/2/uBbRGWo2Jjl/tVMdprRe8er0VRqa4cUxxQPsc9wQK/4+6OYbyJ3JH+c1b2QYpuHg1bmEnZDO493aSqF4JQW9nxDNTiTNSt25QFi+fOqnsi+O5KXUfMbMhUriy3Q83x+qX7mzRlgBjSZk66E3t4WL2MGoYDda7FpO4nylmxAu5bc1zO9Z7u7/PfTuhSf+CJqAOJFYcMX+pz4Gzdk6gIxQWE+/t0vSwSvVq0twTqZUHKMZRyD0eCEe7uFjxpM3psyRJGhabYXWU9S/dbmq/8COGfNRJj3qmAd3TGXjb+CcpYC4bSS2z1X3GFvECCFAX3qCrJ1HVHhP9PGxmSml7gpz3BPcRSKuqHYQb2uHOQ/zb5uU54ze2A07SZHPZYlVCmyaRmWsNI7muDkOvUum5nUJW0jJSA1fPmxMkjbTIDlE62F0A7+DPPwIOmaZtGmkW5CEqCtQoUxkLywgMmOYIuhiaByknu1uqi3NyOEYnxB9BejuWsvMTzn9R6cl/ZHW65RzTugdR0F5bx8CPEm+MjACfxdHxg8xbbtMdxE+ZEZ2CLG703e7oeLEFr/3dD4h3CUQWolq3kadPXl1Zf+OOsajBWu334cvYrXs14+G/SqqYRjiiHJfg04LcFiU75TimP3foBLreraKU2ZlnTiqvrUo9juHyxW2WYsDFlb3AupE6nKNJbm0HSZUO3tNFuXJohSpzhd+9NfXVLxJza41oNH5VB3VdUq8DoSlWxn3krtO4hqsnarUbPSJL1dU8m/Ymy5VtfkbNAkG/3PrNjLX6SaNH0FxAk7agUkOFBKeOAMLCuRzMJityZY6ngv+DWCVnCssGCyKyZo2e6ZjXIHpNiBFYWgwqKZDgMg0O/nDRIQu3cOOEK8qeXGEefx9IHxjLkDbapNhnfx+3/Vy+c1FHS8d6hI9TgpDzBej6lG8YBklRtSHgmV1Wc+P8GYl3QTC/LaEuBjUvPxpiHrgA0bfiOQA3XiNDnhd327rP/RKnc/kkF/Nt+S5IeNReFEi/p/YQsHDInNXGP1t3BeWOXCapuLdfanYi452NuwcNSouhuSSMKDK+q3chUB+PQHyS/1ZUi/8/Vn9w233RUlaOTDZVyBA9zmU41/5iepV9dT27tKgHO6qkelEB7p5vSG2ne6JvxuRUq5bKZPlZuFAuPBOynfRRv6FZxcmFhGk467ktD5mdmggY1WWovf6KZ4T X-Forefront-Antispam-Report: CIP:165.204.84.17; CTRY:US; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:SATLEXMB03.amd.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(36860700013)(376014)(1800799024)(82310400026); DIR:OUT; SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jun 2025 04:51:32.1290 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ea532df3-1c1a-40c8-e79d-08dda7114e0d X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d; Ip=[165.204.84.17]; Helo=[SATLEXMB03.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000E9D8.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPF0170DF9F2 Export drbg_ctr_df() derivative function to re-use it in xilinx trng driver. Changes has been tested by enabling CONFIG_CRYPTO_USER_API_RNG_CAVP Signed-off-by: Harsh Jain --- crypto/drbg.c | 108 +++++++++++++++------------- drivers/crypto/Kconfig | 1 + drivers/crypto/xilinx/xilinx-trng.c | 30 +++++++- include/crypto/drbg.h | 15 ++++ 4 files changed, 101 insertions(+), 53 deletions(-) diff --git a/crypto/drbg.c b/crypto/drbg.c index dbe4c8bb5ceb..322c630c54b8 100644 --- a/crypto/drbg.c +++ b/crypto/drbg.c @@ -294,10 +294,11 @@ MODULE_ALIAS_CRYPTO("drbg_nopr_ctr_aes192"); MODULE_ALIAS_CRYPTO("drbg_pr_ctr_aes128"); MODULE_ALIAS_CRYPTO("drbg_nopr_ctr_aes128"); -static void drbg_kcapi_symsetkey(struct drbg_state *drbg, - const unsigned char *key); -static int drbg_kcapi_sym(struct drbg_state *drbg, unsigned char *outval, - const struct drbg_string *in); +static void drbg_kcapi_symsetkey(struct crypto_cipher *tfm, + const unsigned char *key, + u8 keylen); +static int drbg_kcapi_sym(struct crypto_cipher *tfm, unsigned char *outval, + const struct drbg_string *in, u8 blocklen_bytes); static int drbg_init_sym_kernel(struct drbg_state *drbg); static int drbg_fini_sym_kernel(struct drbg_state *drbg); static int drbg_kcapi_sym_ctr(struct drbg_state *drbg, @@ -306,28 +307,31 @@ static int drbg_kcapi_sym_ctr(struct drbg_state *drbg, #define DRBG_OUTSCRATCHLEN 256 /* BCC function for CTR DRBG as defined in 10.4.3 */ -static int drbg_ctr_bcc(struct drbg_state *drbg, + +static int drbg_ctr_bcc(struct crypto_cipher *tfm, unsigned char *out, const unsigned char *key, - struct list_head *in) + struct list_head *in, + u8 blocklen_bytes, + u8 keylen) { int ret = 0; struct drbg_string *curr = NULL; struct drbg_string data; short cnt = 0; - drbg_string_fill(&data, out, drbg_blocklen(drbg)); + drbg_string_fill(&data, out, blocklen_bytes); /* 10.4.3 step 2 / 4 */ - drbg_kcapi_symsetkey(drbg, key); + drbg_kcapi_symsetkey(tfm, key, keylen); list_for_each_entry(curr, in, list) { const unsigned char *pos = curr->buf; size_t len = curr->len; /* 10.4.3 step 4.1 */ while (len) { /* 10.4.3 step 4.2 */ - if (drbg_blocklen(drbg) == cnt) { + if (blocklen_bytes == cnt) { cnt = 0; - ret = drbg_kcapi_sym(drbg, out, &data); + ret = drbg_kcapi_sym(tfm, out, &data, blocklen_bytes); if (ret) return ret; } @@ -339,13 +343,13 @@ static int drbg_ctr_bcc(struct drbg_state *drbg, } /* 10.4.3 step 4.2 for last block */ if (cnt) - ret = drbg_kcapi_sym(drbg, out, &data); + ret = drbg_kcapi_sym(tfm, out, &data, blocklen_bytes); return ret; } /* - * scratchpad usage: drbg_ctr_update is interlinked with drbg_ctr_df + * scratchpad usage: drbg_ctr_update is interlinked with crypto_drbg_ctr_df * (and drbg_ctr_bcc, but this function does not need any temporary buffers), * the scratchpad is used as follows: * drbg_ctr_update: @@ -362,7 +366,7 @@ static int drbg_ctr_bcc(struct drbg_state *drbg, * drbg_statelen(drbg) + drbg_blocklen(drbg) * length: drbg_statelen(drbg) * - * drbg_ctr_df: + * crypto_drbg_ctr_df: * pad * start: df_data + drbg_statelen(drbg) * length: drbg_blocklen(drbg) @@ -381,21 +385,24 @@ static int drbg_ctr_bcc(struct drbg_state *drbg, * the final output of all BCC rounds are truncated). * Therefore, add drbg_blocklen(drbg) to cover all * possibilities. + * refer to crypto_drbg_ctr_df_datalen() to get required length */ /* Derivation Function for CTR DRBG as defined in 10.4.2 */ -static int drbg_ctr_df(struct drbg_state *drbg, +int crypto_drbg_ctr_df(struct crypto_cipher *tfm, unsigned char *df_data, size_t bytes_to_return, - struct list_head *seedlist) + struct list_head *seedlist, + u8 blocklen_bytes, + u8 statelen) { int ret = -EFAULT; unsigned char L_N[8]; /* S3 is input */ struct drbg_string S1, S2, S4, cipherin; LIST_HEAD(bcc_list); - unsigned char *pad = df_data + drbg_statelen(drbg); - unsigned char *iv = pad + drbg_blocklen(drbg); - unsigned char *temp = iv + drbg_blocklen(drbg); + unsigned char *pad = df_data + statelen; + unsigned char *iv = pad + blocklen_bytes; + unsigned char *temp = iv + blocklen_bytes; size_t padlen = 0; unsigned int templen = 0; /* 10.4.2 step 7 */ @@ -410,10 +417,11 @@ static int drbg_ctr_df(struct drbg_state *drbg, size_t generated_len = 0; size_t inputlen = 0; struct drbg_string *seed = NULL; + u8 keylen; - memset(pad, 0, drbg_blocklen(drbg)); - memset(iv, 0, drbg_blocklen(drbg)); - + memset(pad, 0, blocklen_bytes); + memset(iv, 0, blocklen_bytes); + keylen = statelen - blocklen_bytes; /* 10.4.2 step 1 is implicit as we work byte-wise */ /* 10.4.2 step 2 */ @@ -429,10 +437,10 @@ static int drbg_ctr_df(struct drbg_state *drbg, drbg_cpu_to_be32(bytes_to_return, &L_N[4]); /* 10.4.2 step 5: length is L_N, input_string, one byte, padding */ - padlen = (inputlen + sizeof(L_N) + 1) % (drbg_blocklen(drbg)); + padlen = (inputlen + sizeof(L_N) + 1) % (blocklen_bytes); /* wrap the padlen appropriately */ if (padlen) - padlen = drbg_blocklen(drbg) - padlen; + padlen = blocklen_bytes - padlen; /* * pad / padlen contains the 0x80 byte and the following zero bytes. * As the calculated padlen value only covers the number of zero @@ -442,7 +450,7 @@ static int drbg_ctr_df(struct drbg_state *drbg, pad[0] = 0x80; /* 10.4.2 step 4 -- first fill the linked list and then order it */ - drbg_string_fill(&S1, iv, drbg_blocklen(drbg)); + drbg_string_fill(&S1, iv, blocklen_bytes); list_add_tail(&S1.list, &bcc_list); drbg_string_fill(&S2, L_N, sizeof(L_N)); list_add_tail(&S2.list, &bcc_list); @@ -451,7 +459,7 @@ static int drbg_ctr_df(struct drbg_state *drbg, list_add_tail(&S4.list, &bcc_list); /* 10.4.2 step 9 */ - while (templen < (drbg_keylen(drbg) + (drbg_blocklen(drbg)))) { + while (templen < (keylen + (blocklen_bytes))) { /* * 10.4.2 step 9.1 - the padding is implicit as the buffer * holds zeros after allocation -- even the increment of i @@ -459,22 +467,23 @@ static int drbg_ctr_df(struct drbg_state *drbg, */ drbg_cpu_to_be32(i, iv); /* 10.4.2 step 9.2 -- BCC and concatenation with temp */ - ret = drbg_ctr_bcc(drbg, temp + templen, K, &bcc_list); + ret = drbg_ctr_bcc(tfm, temp + templen, K, &bcc_list, + blocklen_bytes, keylen); if (ret) goto out; /* 10.4.2 step 9.3 */ i++; - templen += drbg_blocklen(drbg); + templen += blocklen_bytes; } /* 10.4.2 step 11 */ - X = temp + (drbg_keylen(drbg)); - drbg_string_fill(&cipherin, X, drbg_blocklen(drbg)); + X = temp + (keylen); + drbg_string_fill(&cipherin, X, blocklen_bytes); /* 10.4.2 step 12: overwriting of outval is implemented in next step */ /* 10.4.2 step 13 */ - drbg_kcapi_symsetkey(drbg, temp); + drbg_kcapi_symsetkey(tfm, temp, keylen); while (generated_len < bytes_to_return) { short blocklen = 0; /* @@ -482,12 +491,12 @@ static int drbg_ctr_df(struct drbg_state *drbg, * implicit as the key is only drbg_blocklen in size based on * the implementation of the cipher function callback */ - ret = drbg_kcapi_sym(drbg, X, &cipherin); + ret = drbg_kcapi_sym(tfm, X, &cipherin, blocklen_bytes); if (ret) goto out; - blocklen = (drbg_blocklen(drbg) < + blocklen = (blocklen_bytes < (bytes_to_return - generated_len)) ? - drbg_blocklen(drbg) : + blocklen_bytes : (bytes_to_return - generated_len); /* 10.4.2 step 13.2 and 14 */ memcpy(df_data + generated_len, X, blocklen); @@ -497,11 +506,12 @@ static int drbg_ctr_df(struct drbg_state *drbg, ret = 0; out: - memset(iv, 0, drbg_blocklen(drbg)); - memset(temp, 0, drbg_statelen(drbg) + drbg_blocklen(drbg)); - memset(pad, 0, drbg_blocklen(drbg)); + memset(iv, 0, blocklen_bytes); + memset(temp, 0, statelen + blocklen_bytes); + memset(pad, 0, blocklen_bytes); return ret; } +EXPORT_SYMBOL_GPL(crypto_drbg_ctr_df); /* * update function of CTR DRBG as defined in 10.2.1.2 @@ -548,7 +558,9 @@ static int drbg_ctr_update(struct drbg_state *drbg, struct list_head *seed, /* 10.2.1.3.2 step 2 and 10.2.1.4.2 step 2 */ if (seed) { - ret = drbg_ctr_df(drbg, df_data, drbg_statelen(drbg), seed); + ret = crypto_drbg_ctr_df(drbg->priv_data, df_data, drbg_statelen(drbg), seed, + drbg_blocklen(drbg), + drbg_statelen(drbg)); if (ret) goto out; } @@ -1310,10 +1322,8 @@ static inline int drbg_alloc_state(struct drbg_state *drbg) sb_size = 0; else if (drbg->core->flags & DRBG_CTR) sb_size = drbg_statelen(drbg) + drbg_blocklen(drbg) + /* temp */ - drbg_statelen(drbg) + /* df_data */ - drbg_blocklen(drbg) + /* pad */ - drbg_blocklen(drbg) + /* iv */ - drbg_statelen(drbg) + drbg_blocklen(drbg); /* temp */ + crypto_drbg_ctr_df_datalen(drbg_statelen(drbg), + drbg_blocklen(drbg)); else sb_size = drbg_statelen(drbg) + drbg_blocklen(drbg); @@ -1800,21 +1810,17 @@ static int drbg_init_sym_kernel(struct drbg_state *drbg) return alignmask; } -static void drbg_kcapi_symsetkey(struct drbg_state *drbg, - const unsigned char *key) +static void drbg_kcapi_symsetkey(struct crypto_cipher *tfm, + const unsigned char *key, u8 keylen) { - struct crypto_cipher *tfm = drbg->priv_data; - - crypto_cipher_setkey(tfm, key, (drbg_keylen(drbg))); + crypto_cipher_setkey(tfm, key, keylen); } -static int drbg_kcapi_sym(struct drbg_state *drbg, unsigned char *outval, - const struct drbg_string *in) +static int drbg_kcapi_sym(struct crypto_cipher *tfm, unsigned char *outval, + const struct drbg_string *in, u8 blocklen_bytes) { - struct crypto_cipher *tfm = drbg->priv_data; - /* there is only component in *in */ - BUG_ON(in->len < drbg_blocklen(drbg)); + BUG_ON(in->len < blocklen_bytes); crypto_cipher_encrypt_one(tfm, outval, in->buf); return 0; } diff --git a/drivers/crypto/Kconfig b/drivers/crypto/Kconfig index 209720b42ec6..1bbac5298ffa 100644 --- a/drivers/crypto/Kconfig +++ b/drivers/crypto/Kconfig @@ -714,6 +714,7 @@ config CRYPTO_DEV_TEGRA config CRYPTO_DEV_XILINX_TRNG tristate "Support for Xilinx True Random Generator" depends on ZYNQMP_FIRMWARE || COMPILE_TEST + select CRYPTO_DRBG_CTR select CRYPTO_RNG select HW_RANDOM help diff --git a/drivers/crypto/xilinx/xilinx-trng.c b/drivers/crypto/xilinx/xilinx-trng.c index 3b861d1a8a8d..adaf69c58647 100644 --- a/drivers/crypto/xilinx/xilinx-trng.c +++ b/drivers/crypto/xilinx/xilinx-trng.c @@ -57,6 +57,8 @@ struct xilinx_rng { void __iomem *rng_base; struct device *dev; + unsigned char *scratchpadbuf; + struct crypto_cipher *tfm; struct mutex lock; /* Protect access to TRNG device */ struct hwrng trng; }; @@ -195,9 +197,14 @@ static int xtrng_reseed_internal(struct xilinx_rng *rng) ret = xtrng_collect_random_data(rng, entropy, TRNG_SEED_LEN_BYTES, true); if (ret != TRNG_SEED_LEN_BYTES) return -EINVAL; + ret = crypto_drbg_ctr_df(rng->tfm, rng->scratchpadbuf, + TRNG_SEED_LEN_BYTES, &seedlist, AES_BLOCK_SIZE, + TRNG_SEED_LEN_BYTES); + if (ret) + return ret; xtrng_write_multiple_registers(rng->rng_base + TRNG_EXT_SEED_OFFSET, - (u32 *)entropy, TRNG_NUM_INIT_REGS); + (u32 *)rng->scratchpadbuf, TRNG_NUM_INIT_REGS); /* select reseed operation */ iowrite32(TRNG_CTRL_PRNGXS_MASK, rng->rng_base + TRNG_CTRL_OFFSET); @@ -327,6 +334,7 @@ static void xtrng_hwrng_unregister(struct hwrng *trng) static int xtrng_probe(struct platform_device *pdev) { struct xilinx_rng *rng; + size_t sb_size; int ret; rng = devm_kzalloc(&pdev->dev, sizeof(*rng), GFP_KERNEL); @@ -340,6 +348,19 @@ static int xtrng_probe(struct platform_device *pdev) return PTR_ERR(rng->rng_base); } + rng->tfm = crypto_alloc_cipher("aes", 0, 0); + if (IS_ERR(rng->tfm)) { + pr_info("DRBG: could not allocate cipher TFM handle:\n"); + return PTR_ERR(rng->tfm); + } + + sb_size = crypto_drbg_ctr_df_datalen(TRNG_SEED_LEN_BYTES, AES_BLOCK_SIZE); + rng->scratchpadbuf = devm_kzalloc(&pdev->dev, sb_size, GFP_KERNEL); + if (!rng->scratchpadbuf) { + ret = -ENOMEM; + goto cipher_cleanup; + } + xtrng_trng_reset(rng->rng_base); ret = xtrng_reseed_internal(rng); if (ret) { @@ -352,8 +373,9 @@ static int xtrng_probe(struct platform_device *pdev) ret = crypto_register_rng(&xtrng_trng_alg); if (ret) { dev_err(&pdev->dev, "Crypto Random device registration failed: %d\n", ret); - return ret; + goto cipher_cleanup; } + ret = xtrng_hwrng_register(&rng->trng); if (ret) { dev_err(&pdev->dev, "HWRNG device registration failed: %d\n", ret); @@ -366,6 +388,9 @@ static int xtrng_probe(struct platform_device *pdev) crypto_rng_free: crypto_unregister_rng(&xtrng_trng_alg); +cipher_cleanup: + crypto_free_cipher(rng->tfm); + return ret; } @@ -377,6 +402,7 @@ static void xtrng_remove(struct platform_device *pdev) rng = platform_get_drvdata(pdev); xtrng_hwrng_unregister(&rng->trng); crypto_unregister_rng(&xtrng_trng_alg); + crypto_free_cipher(rng->tfm); xtrng_write_multiple_registers(rng->rng_base + TRNG_EXT_SEED_OFFSET, zero, TRNG_NUM_INIT_REGS); xtrng_write_multiple_registers(rng->rng_base + TRNG_PER_STRNG_OFFSET, zero, diff --git a/include/crypto/drbg.h b/include/crypto/drbg.h index af5ad51d3eef..978a4a0c34e0 100644 --- a/include/crypto/drbg.h +++ b/include/crypto/drbg.h @@ -53,6 +53,7 @@ #include #include #include +#include /* * Concatenation Helper and string operation helper @@ -264,6 +265,14 @@ static inline int crypto_drbg_reset_test(struct crypto_rng *drng, return crypto_rng_reset(drng, pers->buf, pers->len); } +static inline int crypto_drbg_ctr_df_datalen(u8 statelen, u8 blocklen) +{ + return statelen + /* df_data */ + blocklen + /* pad */ + blocklen + /* iv */ + statelen + blocklen; /* temp */ +} + /* DRBG type flags */ #define DRBG_CTR ((drbg_flag_t)1<<0) #define DRBG_HMAC ((drbg_flag_t)1<<1) @@ -283,4 +292,10 @@ enum drbg_prefixes { DRBG_PREFIX3 }; +int crypto_drbg_ctr_df(struct crypto_cipher *tfm, + unsigned char *df_data, size_t bytes_to_return, + struct list_head *seedlist, + u8 blocklen_bytes, + u8 statelen); + #endif /* _DRBG_H */ From patchwork Mon Jun 9 04:51:08 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Harsh Jain X-Patchwork-Id: 897725 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2050.outbound.protection.outlook.com [40.107.220.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 944CA1A3167; Mon, 9 Jun 2025 04:51:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.220.50 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749444700; cv=fail; b=nw/c30zTxcD20erBobubZejxw+s2jdl5uUE6b03qc7kjvJz0Kdw2cuErAhBR1fuTHw9BHMs2cJ4RVz4fPdzGKj8Lw16s8A491sKlmQjG7Ez3Pdo2bs1bxvM7Di3MebVE65RbJk76nP8YZhWIuBxbZJIoiaKAGVGgT/nD7+MCyko= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749444700; c=relaxed/simple; bh=xDFoTrEyFWx78D4tU78qUWyI5L/Kup/KhTl1k5p6htI=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=pwhZV+M8Uo8DKKFnEz1Z2cEIctyMSniU6iuoF6Y8eDQYAeetFQ06VfaBQ1FqyuyqzzuKmCj8MSlg4Wn3CO0N1Qs8X8PE8g5KZx9aK7CqF0YzFJRPNDMc16/i+6mzJ3stFLOBUsKHc7JMSHyzGF+Z8GXfVNBgwH1GC6oiknP3XMk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=0ClwDbj6; arc=fail smtp.client-ip=40.107.220.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="0ClwDbj6" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ghPvTDQB4frzCtjSt+agg7jY1+VAOgUOAyBR53h10eWK8j4sPLmo/dUJ8takyE9+FnDJVyBDwFC7ltKl6NrReHHIQRbDAPy743JUeSiZ0wJJFbgt3ofRwcAPbP9XppTQ0oo3f6I61Em5/AVl2hzGnH59hljiKiPqKJ5o84tfr7R6cefcvu8KKOcyOYS02TsFaNsPrW9HctlFNagaisCwbVw0nnqxwkPyT+XUQqsCy0r0HgdlgCGAvshnR5c1LAugHiggQmpgGLCUAQIldKk2FOjucrE0cn5MjpuWcPV+Z/BXKg6/7pgAmkWDN51xYscwbBJv24am0z9ipV595idg0A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=UVUkp8WzpxndSYh1LUC9UT1Eb0l4ajhkHj/WiNmQYTk=; b=hX1Y0wOQIeEHEpfPYfU0oPtZdqmPcnxSY/BmDCOILi1tyo1/ly8NctVh0tpQYQ7WtLwHU1+sJglLH6SZTjJcg5K7vVI1Tpg5z50MzY0XaPHA+gJkLZJWUo2DiTRsxJ8/4ZIFPmYg/dzrd4mo4yf5Y7YVfy1OJnzx3HjfxWDEuoMfh4WCj2Xd244IqtJkzaruGcE9lK8wNDB1Y0CRm2zlDkbLwWt2g/A07MwTn8588lukth9HzjXotZ1KvCdXb0JPw+9CUfFyM7wNaYZ+XWk6mmB65MSfzU6+doD469ITB+rQYHGhA9UWjPxHYLg8Gb/v4TYxFnJULZj+7+mknNUNiQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=gondor.apana.org.au smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UVUkp8WzpxndSYh1LUC9UT1Eb0l4ajhkHj/WiNmQYTk=; b=0ClwDbj6Zm5SPDnr+wcIvU4wgUKECs85cii8MZ1HP9PzTk6VK/CN5ifsm0g1XTeFOAhML7GPZt9h96I4/7pnWMvyv8bH/w7LO6QCn9J9dZ3m3joqNQmSGVFGZlr2PGB3vBXReDiq+QHPwXQ4gXI0Vwx99c/KaM9qRV0fFn0V3jo= Received: from BL1PR13CA0094.namprd13.prod.outlook.com (2603:10b6:208:2b9::9) by LV8PR12MB9156.namprd12.prod.outlook.com (2603:10b6:408:181::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8769.26; Mon, 9 Jun 2025 04:51:35 +0000 Received: from BL02EPF0002992D.namprd02.prod.outlook.com (2603:10b6:208:2b9::4) by BL1PR13CA0094.outlook.office365.com (2603:10b6:208:2b9::9) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8835.16 via Frontend Transport; Mon, 9 Jun 2025 04:51:35 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL02EPF0002992D.mail.protection.outlook.com (10.167.249.58) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Mon, 9 Jun 2025 04:51:35 +0000 Received: from SATLEXMB05.amd.com (10.181.40.146) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Sun, 8 Jun 2025 23:51:34 -0500 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Sun, 8 Jun 2025 23:51:34 -0500 Received: from xhdharshah40.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Sun, 8 Jun 2025 23:51:31 -0500 From: Harsh Jain To: , , , , , , , CC: Harsh Jain , kernel test robot Subject: [PATCH v2 4/6] crypto: xilinx: Select dependant Kconfig option for CRYPTO_DRBG_CTR Date: Mon, 9 Jun 2025 10:21:08 +0530 Message-ID: <20250609045110.1786634-5-h.jain@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250609045110.1786634-1-h.jain@amd.com> References: <20250609045110.1786634-1-h.jain@amd.com> Precedence: bulk X-Mailing-List: linux-crypto@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Received-SPF: None (SATLEXMB05.amd.com: h.jain@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF0002992D:EE_|LV8PR12MB9156:EE_ X-MS-Office365-Filtering-Correlation-Id: c95427ed-e3c0-4d44-e36e-08dda7114fc5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|82310400026|1800799024|36860700013|376014|13003099007; X-Microsoft-Antispam-Message-Info: AS3IU7u0Qm98NV60bZ3BhRF7ixohRyiT+f+94q2+ttR4fQmsVY7jNeSJTLb90mEr7HXuQGVCIt0JCPigwyaNffjXXAnUDc59ScEKhoc0GQxoslwj9e6p66Qw9IC8+NXfftA582wMtQyXzNVvrA5S8h3HUztipo4sHhYc6au3oNRUcB6J59TDGva/dUlWJQBHq6UhjQ67RtQBbrMLAOacCmgnzkvhtsheZ1fyYRXuihZlye5XFhzMlqUkDv9TkyLidJE282U+nYowGv17IUtc0vYLX31MJjtfWsMszXH1Os7sOtLIqRGF2RKXoenuEZD93CanhhcusbcDW9bV4oFKT2jTRWcgAItLm6EyNW6zZHVjrzdxx+jXz32e1Of82+zXJqB5I7kWUm4tcJJv33XS0gtzCDliFbdX9xfxSqgwMiMciJOdpu+t23zEokgyQ25JAdjOt2Nq3ARPjKsGVHk+7p2Vd4S19WcjupiwiNg6+IV55riK9pdXMKPatXh7sBvkMyW9+gFSsBmQSMit8LXxt0xKKzGM0SE8HSzEwBn5CgdMv71gE954Ra7ktdo/UHAspUb2AAXSVlaPEQFwCQQf/g2FPngLHFIauoR3Lq1CyhdKskuKC6OAO+wtSMrYQlPg5ujxnD5WQ6kedPR9CvRmDYV7byrBtKfNjsrHtIPl86GP0uqOdmaiKQNCERw2F5M4fmbkzsln9nYTeXK8Xp2kWw1nqFGXr4A9To/UWF2u1c95n6qcEXXSgsaZxDxAYUoH7X9JBxZbODl2bOiOlwjAxe5v0FTTVG9maYW3XOygMBrJh3FFdfAxI5pbhbxrFDsg8JhA5VDKwN/aNa9bIROZ03djL2/iIUl+zm3KPBFgFx5UApGAj2wleCpiiHYhb5iod355DwyC06SbZc2F56Txt7tHzIVJk7G3bivhwLR5y2mfCP2jzlJTZD2uEMPexrQT/J3oAAaMDxSCx4w9mGDZckmZKHmqbOeOEIqY1zfxV5aOmzZfcINmaV2+FK3SHIYcfvu8DvDzkpV/hauXVi/isPKvxZe0MmoJuk+uulcFuguksOAsUJU6oQIFv9uLV3SWWRUFbAkCxR5uU0I297tbfoKBVXFcVi4vdQ3QgTsN+JVaeVNRQwoZUHtqd5u21H0XHofUXhr+uMdBiXMnxNTfuqqj0C2prrG4/LtW2gkxO1Nx/bK8QQkR9Ed4JL//ok65lHZKQiV0s1pzTJzLymkkjQGwXZRUxUbKjx67NJt4Nr5d2+V5uZcpo1kX6XdAC+BUOSSTQH41RAkxBA++G7zY+6Gvhu/RMZU4907mBx9rKQ2ka89XJmxmgnbg4HIPT2u074H+iqH2MHBIy1cl61MEYhK4ZlBxx0yOgdjtrp6J6ST2VvnUoWDF18CvIRqZAGKVQhWSAb7ZNohB5sNUrieFictwgqe5aTe+92DkQ82BJBRvbMaQemj8aeOGuSBX/ySyCb5iNItrN8TYsYzsxPo4gAAmsSrKPI1RuM9ISbxlBdNQ3tfUALjrwNSIjUmCLovtjmgffrC2v0Edv4jJSX9EHQ== X-Forefront-Antispam-Report: CIP:165.204.84.17; CTRY:US; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:SATLEXMB04.amd.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014)(13003099007); DIR:OUT; SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jun 2025 04:51:35.0690 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c95427ed-e3c0-4d44-e36e-08dda7114fc5 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d; Ip=[165.204.84.17]; Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF0002992D.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9156 CRYPTO_DRBG_MENU Kconfig option is dependant on CRYPTO_DRBG_CTR. Select CRYPTO_DRBG_MENU to fix warning reported by kernel test robot. Reported-by: kernel test robot Closes: https://lore.kernel.org/oe-kbuild-all/202505301900.Ufegky8f-lkp@intel.com/ Signed-off-by: Harsh Jain --- drivers/crypto/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/crypto/Kconfig b/drivers/crypto/Kconfig index 1bbac5298ffa..cfbc06451fec 100644 --- a/drivers/crypto/Kconfig +++ b/drivers/crypto/Kconfig @@ -714,6 +714,7 @@ config CRYPTO_DEV_TEGRA config CRYPTO_DEV_XILINX_TRNG tristate "Support for Xilinx True Random Generator" depends on ZYNQMP_FIRMWARE || COMPILE_TEST + select CRYPTO_DRBG_MENU select CRYPTO_DRBG_CTR select CRYPTO_RNG select HW_RANDOM From patchwork Mon Jun 9 04:51:09 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Harsh Jain X-Patchwork-Id: 894934 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2051.outbound.protection.outlook.com [40.107.223.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 24E771A3167; Mon, 9 Jun 2025 04:51:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.223.51 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749444704; cv=fail; b=S7hDtSlW74NeFU7ayoKkISARmAnovH4jGw8t1eGyDLEXGbcHZ20PWzkXRD/ChOoSMbwkZeihH3sl0FqAe77dvBP45ld8Eq9ckAOSEFFPNzac+JeSHMLc+sy6fznfZ0NP4EXpdRMAfLmRH2UmZODupQSUjjKG7q+A2hSacIx81T4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749444704; c=relaxed/simple; bh=/MxiJ8Fhkz/5h9QQVo5VjyWcwckk6spSP0uUy6xNxmU=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Iqd3uA3yHvmHtj2XQdUtg//iP1l2gwdnmM9cbPhUsyV5O5CZnKsvW0tP1AJ1FHuYOBAV5aHbaxrumU+bekHcl8YEzR15QjXveGDs/n06qzwq3DynxMCCefVmtKCW3ffqOXl+k5r2sEROavNPtC48ZoU9Shvh4wda5juP90CRF4w= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=3nYejP5C; arc=fail smtp.client-ip=40.107.223.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="3nYejP5C" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=kR3JhFT58uQkkmAxa69NfP1N//OxbAYQIj/kXFkY6MIUs3PDTAtlIWe38nzvEuEXnn7WtRkgeqIeWwE6N0GyJOD2Ap2saHCyXNAo+pNEIVNRAwNGsqZJ9zj0Z/4Vf2i9dNDT/xw2gVV4wrFzH874/3R8H8kB4uPQFJ9yctywR1qWplwSm6H93lFhUJjAKs8HSJ46P+e0lx+0H3lxvz8dBsxct+S97jfxMb8dDBBbZtYnY0q32Us88eLbRj9FIwdmjXo+yA0lMk/BNd4VibaebJkcG2QwElsZbo/cyAiTU0DM/DZIunq8fk+wwJMt1vs3AldyXFJgae8irdN1NsjrqQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=aZTRdPwyosdLWFDu4OPGv1BY5ICA8J5E8TXEk5j7wu8=; b=Vt+bd4OJ/OiRUeEBaLQYaWXCEhoFZajME9DjRa2tnirY/4uE908CjXzeOrLTEupr99rQ/hLDoIHeBnxR9XgArJEBzkwoNubKNilts43yDRTGqvLon0E7zdlKPvUDd+fZVzBCiciZGahocUx8FvvyY2eKdjexc9Aq5DhPSq4EVcMc4QNp+iYJgoBuT5+WbcKpIBVbXtWLrbRJAFLJD5JatiPSO5/R7BOWhbLomdMceKJJq3q5dlE/9UGSDxVfshhkJuxSTutEMWKFQSMrO+TVqeIXXAJr1no6NEb0rgHFZe9cZKS2zdayTP2U3KCK6M2bhRbw03V4hACg32GqmQLmzA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=gondor.apana.org.au smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aZTRdPwyosdLWFDu4OPGv1BY5ICA8J5E8TXEk5j7wu8=; b=3nYejP5CyVmGldVAHYNASHFRuXgavfK+zmxac4hp0G96psPBX1OGpSsIM1eL9cuBjEExguyC93uaDn4d0LSix63pxpp1pBejCZSLzupu9pHG8oMnxwPV7DEoAmIkuN2Wa5H8YyjkXoDGTbWFV0xFmMBo5J0KpZ/apyxVw+VJvPg= Received: from BN0PR04CA0194.namprd04.prod.outlook.com (2603:10b6:408:e9::19) by DM6PR12MB4433.namprd12.prod.outlook.com (2603:10b6:5:2a1::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.41; Mon, 9 Jun 2025 04:51:40 +0000 Received: from BL02EPF0002992B.namprd02.prod.outlook.com (2603:10b6:408:e9:cafe::13) by BN0PR04CA0194.outlook.office365.com (2603:10b6:408:e9::19) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8792.34 via Frontend Transport; Mon, 9 Jun 2025 04:51:40 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL02EPF0002992B.mail.protection.outlook.com (10.167.249.56) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Mon, 9 Jun 2025 04:51:38 +0000 Received: from SATLEXMB05.amd.com (10.181.40.146) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Sun, 8 Jun 2025 23:51:38 -0500 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Sun, 8 Jun 2025 23:51:37 -0500 Received: from xhdharshah40.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Sun, 8 Jun 2025 23:51:34 -0500 From: Harsh Jain To: , , , , , , , CC: Harsh Jain , kernel test robot , "Dan Carpenter" Subject: [PATCH v2 5/6] crypto: xilinx: Fix missing goto in probe Date: Mon, 9 Jun 2025 10:21:09 +0530 Message-ID: <20250609045110.1786634-6-h.jain@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250609045110.1786634-1-h.jain@amd.com> References: <20250609045110.1786634-1-h.jain@amd.com> Precedence: bulk X-Mailing-List: linux-crypto@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Received-SPF: None (SATLEXMB05.amd.com: h.jain@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF0002992B:EE_|DM6PR12MB4433:EE_ X-MS-Office365-Filtering-Correlation-Id: 5f2bbd05-4f09-4421-4336-08dda71151dc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|36860700013|82310400026|376014|13003099007; X-Microsoft-Antispam-Message-Info: 30qEfkI99RmiX7WWwHPcBrExf5p/S/Zmf2PCDPZGF8DclIwaFna+L/AYjbNt+gf4Lwec4nTh2Q0Q6KSfNBwSWS/WWINOuX9ene3uFhcceg17EENyEdASsY0JYTNDH7xl9aVPr0DZTP+D/UCwtQn3TIeIPu2H9YbG1XXHq98n0bYb/3vlt/KlIhun5GjxD3JZ75/14xP1W5AcYCHWsSdzjzINx0M0O7xPDj5WK+Jwf5R8t3dt9Vc/fYCCY2xnCmrJ/yUpHUL145mFoOxcXHiCxNlMgRajxKwFlITnizHOYuhWZ+LQf84SQjs9QEt71MFBSQqf3599J5eutlyIT07gkXzzfPa3P7v5Y7XPELMOaqYl64MDMv5FaqhG6K7r0qcZcxEM1d4U1QvI4lG+aB1IdF7zl+1GTiwodYgWUZs91dF7Lw5+hashXuoAIFsXWCKWpH47EIxDCQXiq2d8VlFrRnYxvHU6RwnKoMnZE16ALcNStbtTPwf0sDDarQaM3AxlhBFszQWQk9XX8DP5XaUTtBBA+4XNhDocy5RRhWk1SZqILF5BxvwdCZE+1A/TMmi+Sp8EYx1C33zgKovVlKpS5dqA7dnZucrN2VUBSHUx9+iFN7j5DNGi6ui5RNpCX1/45+RJtK5L8cxoR7Td6tLVo9E9HGFWD/s5Ev0jO6r0jPfRxmhlsg0Ta/z/+1s4jwVSPDEGeRaWqqmOj76odWJ+3owfM09KD8SWq9nw0s8XXMS3YQeSBa6xqvAgRRjLqVzeNMWIlMEbm9OMd2tRVA6QaVnDaSHb71rgVpm/zLeCNWeP6yfZxTwc5NuoLDduxUko9cKalNRF9WO0k0QLJeqFnYzf5L4YqL1KKAQCj+fF3JGlqevrq6DTyYwHocj75kyXapuss889w3Baq35HLYGyvNdGSls7AY46WoTY0SGlVPd9/jBXhjqTSAedusqu8MS6/N+XSwJCZKrANwpVUOIbq4YEvIvHlRskT+xJn2pN1xdPLbcTR9r9sbeH/Ql2nyr72F+uan0/vHWkglHn4yIDqOjuYD3UMIRkjyH0fKaFSejh1dGYafSa3ZldDzOEvxlD3sH5hUzqKpgsPfHUBoUl8C6NIle66Q4ZBwBbhxez/QUxC5T4ioiWa3JBXs3xfeAEg09qKSQpL1kXLd/vzY6XkGbS8DJ41K/3PnA5GaTGCTe+WUB3157lICgJLLJ9/pKcnmVWaFpSPad+ABBR1u3RErhogwl3JFnpxCaI+iUsdt3ab8IL9ud4MnzpqqFujfRNtEpqg8/YFCBnyVnROgYiVrxSTi/JcfGsIgFo49XzcBCXB5Qh8x2l8FIs2GjYphul1LXjK4DQXr8sZPT5WCL+ZhdYfpsg1T5s/DJutFmLagbK2WjSmmekVG8tTng03SLiIFYZ44wfpqQaOmzr7zMPqh/gl8tz16NY9h7giPjQiXJb2a2uK5nSQpU5HBGOAer3QCpxBmWXANZ3nu3khhIE2UIBfLiYKVjUdL3DpH0ERlYq1vDMUY02f/8qEqKiqMCC5FJaOa1SYw9QxKzRiyvDVw== X-Forefront-Antispam-Report: CIP:165.204.84.17; CTRY:US; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:SATLEXMB04.amd.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014)(13003099007); DIR:OUT; SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jun 2025 04:51:38.5708 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5f2bbd05-4f09-4421-4336-08dda71151dc X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d; Ip=[165.204.84.17]; Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF0002992B.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4433 Add goto to clean up allocated cipher on reseed failure. Reported-by: kernel test robot Reported-by: Dan Carpenter Closes: https://lore.kernel.org/r/202505311325.22fIOcCt-lkp@intel.com/ Signed-off-by: Harsh Jain --- drivers/crypto/xilinx/xilinx-trng.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/crypto/xilinx/xilinx-trng.c b/drivers/crypto/xilinx/xilinx-trng.c index adaf69c58647..8ec0f83b53f1 100644 --- a/drivers/crypto/xilinx/xilinx-trng.c +++ b/drivers/crypto/xilinx/xilinx-trng.c @@ -365,7 +365,7 @@ static int xtrng_probe(struct platform_device *pdev) ret = xtrng_reseed_internal(rng); if (ret) { dev_err(&pdev->dev, "TRNG Seed fail\n"); - return ret; + goto cipher_cleanup; } xilinx_rng_dev = rng; From patchwork Mon Jun 9 04:51:10 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Harsh Jain X-Patchwork-Id: 897724 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2081.outbound.protection.outlook.com [40.107.244.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B513A27F166; Mon, 9 Jun 2025 04:51:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.244.81 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749444710; cv=fail; b=bGYOySbNvOWlnEfIM0h683N5H2b9ekiT9Buzoz405o61o+bHUWu08LCYxvPxCvNKvEMCR761SmaS2ippL3jtLFXxOSKI0bi/Y1UMDvu83N9hKw9vhmEgSCQTec8ZmXhwNPeeMgFRirQRLDrOSlAwYNwpOLlLgmN84hNOYSUuafw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749444710; c=relaxed/simple; bh=CF7fhwE5HjwVMZ7sdD4qmwvuIiCG8Aogj94nQ7IzrGQ=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=s6BIY6S0BEErYm7Sd/r4FXbUUB2AZmrnIK1kh2vjQbUu0ZarTB3XGW4vt2BzVqjNhjgU0j1rkgeozHejeifQ1N/AnT7Dn/M38cf3tKSxtW0OtWzt6fsNxiUu4hT5aIWP5nxsHbe4TspjLz0DJbdjSOUVnbyFu8+Outs5ip3iaJk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=093Lv2NS; arc=fail smtp.client-ip=40.107.244.81 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="093Lv2NS" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RkL34o5X7RXCGCAEAIsvd6c4MMuBQoM7g+fLnnoG4QFtAX2Oajml/c0LGUPbv+FtsGu1UTUqAiQZ4cJ9wVGBcpfajAdo161NxX0yOZgAeoKSq6Uy/Aq+wrBxn48vOQns4GlRtij6UyQ/KERMB7nnhH0N2wb8kc7BQyHnCuiTGPL+nqU7V9MGKhkQi8R6cHkmAvP8SZeMfgP4LHgMheerLLa6002HGwUxhYJ0C6L8rjdw6mVGrIYvSv8pvBbhg0CRgKgoIMOum0OItw3yApzJkK290EDY8+3k3gBYqD6AC+tCo3jFKXZShxz5SN6nWURL/YnREVKeqmwYrjVtnC5HeQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=6DFzQU6Fzm83VtVBnD1KMNhwIcXZ32Qbj1a+LA5OiZQ=; b=bVlMrIdkN9viYEShv6xrz+SRi99NrPfV2xQug3Eoncgl80tchKlnzUxKMq72r8jn7mpgFN/El9XAD3iEl+5oeb8/TbIk/rga1yxUjrOjnQTiUKj8Krh8XGdWSwhbpsFDXBkJUVRUHw3DdoBXY4jUCfB1ct7NAs7Oh/Z7fLMnAUpM6lkWOV6yIsRxUWQsDMhQoh7h1WuuzNA65IdU97F3/dAk3JYfpbJ68wQrQnq0xHbCgJ4XHryZjVmFm+j4TvOzTTlTc0Q5bCVfQx5oWP6NKCiasOwe9GRkhPtr6yQB9IZlIyBf4okmp7h1eU2D9LPxhHlLZ6O0jPafIm0Mk3TiWg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=gondor.apana.org.au smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6DFzQU6Fzm83VtVBnD1KMNhwIcXZ32Qbj1a+LA5OiZQ=; b=093Lv2NSvTIwBaWvCOtSWTjN1/DOIMxPXxNkoCT+Y3VmyouXV6ho2J0y3lEaV5NmJdn6ywWPpqk8rBsH+nn52DdowqEurDYgNhBtpw+Uq0OtIpqoTVGnPF6ejI8hUyNs3bS/Maa3XreWgjYovAD5ixP+C6ZgRr4LoLMwAXFD7gs= Received: from CY5PR19CA0065.namprd19.prod.outlook.com (2603:10b6:930:69::13) by IA1PR12MB7493.namprd12.prod.outlook.com (2603:10b6:208:41b::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.36; Mon, 9 Jun 2025 04:51:43 +0000 Received: from CY4PEPF0000E9DB.namprd05.prod.outlook.com (2603:10b6:930:69:cafe::77) by CY5PR19CA0065.outlook.office365.com (2603:10b6:930:69::13) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8792.35 via Frontend Transport; Mon, 9 Jun 2025 04:51:42 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB03.amd.com; pr=C Received: from SATLEXMB03.amd.com (165.204.84.17) by CY4PEPF0000E9DB.mail.protection.outlook.com (10.167.241.74) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Mon, 9 Jun 2025 04:51:42 +0000 Received: from SATLEXMB05.amd.com (10.181.40.146) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Sun, 8 Jun 2025 23:51:41 -0500 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Sun, 8 Jun 2025 23:51:41 -0500 Received: from xhdharshah40.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Sun, 8 Jun 2025 23:51:38 -0500 From: Harsh Jain To: , , , , , , , CC: Harsh Jain , kernel test robot Subject: [PATCH v2 6/6] crypto: xilinx: Use min_t macro to compare value Date: Mon, 9 Jun 2025 10:21:10 +0530 Message-ID: <20250609045110.1786634-7-h.jain@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250609045110.1786634-1-h.jain@amd.com> References: <20250609045110.1786634-1-h.jain@amd.com> Precedence: bulk X-Mailing-List: linux-crypto@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Received-SPF: None (SATLEXMB05.amd.com: h.jain@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9DB:EE_|IA1PR12MB7493:EE_ X-MS-Office365-Filtering-Correlation-Id: 9b7078c8-7b5b-43b6-170c-08dda7115402 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|376014|36860700013|82310400026; X-Microsoft-Antispam-Message-Info: ufZIYwOhyXLeTyzvFg1KKLE0DQw0+r2wFRh9oDw96LCEB/JNoAFoJnzGvVWMClEHJ0+cmSQiD1vR/eli56DONYde4C7SihKFfN3upJgxx1uDq1ANGD1WTm1XPoemfmTNHSQXKQT4++WpwMuon0OnNZm3jQ6qJUlMHssYSqgH+EnRaoLDdq4M6MrkR4MOQNA7jv5y0fSEfVmmxhh4A+I+KxliMIzn2ZFFqSspGcn3+U9s9tiQqYQc3kpmPVE1i50EEoHLDOacmldLSbDuXXM6gLMzzh5tBCFBr3FeHZlL33r2kfWR2lEzPtk8UNU7+cIDRfa7d5iH8W0alujS0UO1nRnSEh1NEKRHln7e5XxrexZ18zvmjaptTbopYVOAR+KluQo4rqAK25Muvq0lvypg2so9SxkIjtoMmCM8H4RgiZ64giNACLvJVrsx6tQgP7a2usvIz7P6XcfTgU++q7AXt98Gw7r8jo0U7SAYY5HCybjzynH/JhMX4f1a7NkMXE86YGoO82lDzUxl64xLrwUEuwYpbhiI5+6tiCM2HY1723m5Nj6SbyCQEgmkGxIztokSTLP6fsm6Rv37uJUk7SHosfO47u4Dv8CgRj+DaGqZ2PFYiKDU5xsWDlV3W+UOpNp3Uv+VOBLKkmwwxuJFUKtaeuJj7LSED/eUn8m+V+YmyeTrEZ3FYmga/hnzKkjVCdMvLaXRVdrY62/k4pyozg4+eovBbXQ1w/22xfUn2NLaX0DPJeheFGovBcXb1ubyvqdAFkuFBU/olkF9KAUwTYaj9tU9yTZngalVw3iaZGSiCU5i0fuYtz5rxi/IkjwxZs1ZNVTVUQRf2HbDrPKVB6I6y7D5jls6ws5OeUtSdOflLM6u/zeB6l5n861h1RJjsFGcpr7KQTU6f9dSW75PpIeWPpjg3uZmhefczGAzRfqHwproB32uOq1g4CTDmoGO1qsdpkP8Q4NoWC0ah0/c9gI0xr+cGE9rCZV3XB3YN2Usn4K1iDTZ+jLuZvn8ccqaL6wHNp3+UOrrTPSD24CVkNb5c76A8UKxOVACA2odIvSunAgdjrDHcw//i4JPhMplN/EYo4buNqdyigtwhQqSUOPQzU4qTECB0j87YK/SLJPZLImzQ1IDqHk6GYc0UQoettJ4vVCa3jgJ6TvkDXJC9ljS08rmo0EVl4COaUuMQ/8XMNEhiN9EnTZhemxnL9wQ06p4bAKoTY7MNRosTmK79+ENpxTx5mQ22lq2WoUH+VnfFXAlfRXNyA8T6VmAjlT6knn7A7aj+G6SzknuuNGoxbxma4ISx09PvrXLjvNOle59HvXdq2CN0JW2BbGYc+7QntaNNQ7sIxV8/YNZ4RpmFMU6h/Cu2A+46KR+Ue0l+T0M2wXklQf1+c08xyGqUP618HrMECgUmVYslIKOQxrEdLqopSvtIZcNv0Ng5/TJj5xYWX0Ju/1QSocGSWBdH3nrtmzD7k+hREGnXmsWn/Gdnt7+EI+v7fuFbBi3AWTbHWf9L+lGaOz2Bp78DhzQ0nhI4dNVARO6EoODcomD1t56nmXD8Q== X-Forefront-Antispam-Report: CIP:165.204.84.17; CTRY:US; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:SATLEXMB03.amd.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(1800799024)(376014)(36860700013)(82310400026); DIR:OUT; SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jun 2025 04:51:42.1143 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9b7078c8-7b5b-43b6-170c-08dda7115402 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d; Ip=[165.204.84.17]; Helo=[SATLEXMB03.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000E9DB.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB7493 Fix signedness error reported by kernel test robot. Reported-by: kernel test robot Closes: https://lore.kernel.org/oe-kbuild-all/202505310740.bRheYmxs-lkp@intel.com/ Signed-off-by: Harsh Jain --- drivers/crypto/xilinx/xilinx-trng.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/crypto/xilinx/xilinx-trng.c b/drivers/crypto/xilinx/xilinx-trng.c index 8ec0f83b53f1..4edcaf911475 100644 --- a/drivers/crypto/xilinx/xilinx-trng.c +++ b/drivers/crypto/xilinx/xilinx-trng.c @@ -304,8 +304,8 @@ static int xtrng_hwrng_trng_read(struct hwrng *hwrng, void *data, size_t max, bo if (ret < 0) break; - memcpy(data + i, buf, min(ret, (max - i))); - i += min(ret, (max - i)); + memcpy(data + i, buf, min_t(int, ret, (max - i))); + i += min_t(int, ret, (max - i)); } mutex_unlock(&rng->lock);