From patchwork Wed Jan 4 15:03:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: shihyic X-Patchwork-Id: 1722514 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256 header.s=selector2 header.b=f3+OKz94; dkim-atps=neutral Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4NpT131bGZz23fc for ; Sat, 7 Jan 2023 03:13:58 +1100 (AEDT) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1pDpLq-0008RT-8d; Fri, 06 Jan 2023 16:13:50 +0000 Received: from mail-co1nam11on2084.outbound.protection.outlook.com ([40.107.220.84] helo=NAM11-CO1-obe.outbound.protection.outlook.com) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1pD5Ib-0000l3-TT for kernel-team@lists.ubuntu.com; Wed, 04 Jan 2023 15:03:26 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=isy2FsjPlooSQ2WebicoAjQlw0LWu58PSJScHux+HEZyse8zk/CqxWy9q8EDVSb0j7n8E91Yz+BCI8HG+/+9oNC0gK1ExCGHe1oJkqX2i3tjzmEk2SQ799rOHC6qfKKURavGyETRfGj/ySGTR5HhtiN15iCsYvwtQehkpgEA6snLPdmp8F8vBxx3mlOsI0x2QyLKioGRsl2ZTuBgnk64+yrKfj7Bkjqlux0K7B4Y5T0zk8RYDuVShdhW/y0eZ7ByJ/kCVCzHYRTxOD0XpHuv7SyOkX9jXinLQSiKEx0zL5SbKoAjYPP+n06DcGenKEAVxSLB+hDgaF0oJcLlC50F+A== 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=Kweh7PWk+F4cpIyNvfyaTCDUwo3hIdZRfnYU/GoDWD4=; b=iK640o+/zbIqheYg21kTcDDQ5Lw753igPEFQhL1oO4vpSup0z+XOrt/TmN2hYEoAUyGdu1mR5kHydITVvdTVFT2xVVT2sJ7esSujDGKgYa1Udu57rOZWiBhmG0hRo5+5Hviill5VKUQiaHGm4tvvW3Km2CfslfoQXJvtdodDeie+9t3jy4ddeUM+DLpKIoib7fdUaDrBdu6RrVb11n54BJTu9fqHZroVS3rsUrecc2Z3KE5rRZ6KzFTPIm5IkmmiNSjeO6BblqLZMCvEs+n89DiOcnqOhAYIDOKeHIN1jHBiCw44TeL/y6TSHsqZbRgpx0CxiqiA4vOPOaTXD43JHg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.233) smtp.rcpttodomain=lists.ubuntu.com smtp.mailfrom=mellanox.com; dmarc=fail (p=reject sp=reject pct=100) action=oreject header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Kweh7PWk+F4cpIyNvfyaTCDUwo3hIdZRfnYU/GoDWD4=; b=f3+OKz94APSTiXpCwWMZC6Q9IOxjOQfqNNeSLapgvOzO9xgfqv/uAKtVCgU6ho2+1w8KdoV76w03oy7Zv6w4VRK4AHbxzHiEQ061K8YBx3dGw7C05TtIYmSXfsyCppLfN5SkfdhU4z1Kg7Ew5685vF4zusm7K6tntc8Sse4udQ8Dl89k/mYb4W0l64f0xKOezqfYHzUXl4WYn6a6qsUlEqH81wXlhDQpKSLFd6jkDhRlbh4WB/pV/zxXOoASZbyQBX9hvSYhPx01wn61ELsfYz6g3gNxHZItnSwasURbrxCIo/y35aHrH5ja6ON8dqGm9G9WVHleliGvQEIHl/D7FQ== Received: from DS7PR03CA0194.namprd03.prod.outlook.com (2603:10b6:5:3b6::19) by PH0PR12MB7908.namprd12.prod.outlook.com (2603:10b6:510:28e::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Wed, 4 Jan 2023 15:03:23 +0000 Received: from DM6NAM11FT036.eop-nam11.prod.protection.outlook.com (2603:10b6:5:3b6:cafe::92) by DS7PR03CA0194.outlook.office365.com (2603:10b6:5:3b6::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.14 via Frontend Transport; Wed, 4 Jan 2023 15:03:22 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.233) smtp.mailfrom=mellanox.com; dkim=none (message not signed) header.d=none;dmarc=fail action=oreject header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of mellanox.com designates 216.228.118.233 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.233; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.233) by DM6NAM11FT036.mail.protection.outlook.com (10.13.172.64) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5966.17 via Frontend Transport; Wed, 4 Jan 2023 15:03:22 +0000 Received: from drhqmail203.nvidia.com (10.126.190.182) by mail.nvidia.com (10.127.129.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Wed, 4 Jan 2023 07:03:19 -0800 Received: from drhqmail201.nvidia.com (10.126.190.180) by drhqmail203.nvidia.com (10.126.190.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Wed, 4 Jan 2023 07:03:18 -0800 Received: from mtl123.mtl.labs.mlnx (10.127.8.10) by mail.nvidia.com (10.126.190.180) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36 via Frontend Transport; Wed, 4 Jan 2023 07:03:18 -0800 Received: from mtbu-labmailer.labs.mlnx ([10.15.2.12]) by mtl123.mtl.labs.mlnx (8.14.4/8.14.4) with ESMTP id 304F3ECO002362; Wed, 4 Jan 2023 17:03:15 +0200 Received: from bu-vnc03.mtbu.labs.mlnx (bu-vnc03.mtbu.labs.mlnx [10.15.2.66]) by mtbu-labmailer.labs.mlnx (8.14.4/8.14.4) with ESMTP id 304F3Ew7018021; Wed, 4 Jan 2023 10:03:14 -0500 Received: (from shihyic@localhost) by bu-vnc03.mtbu.labs.mlnx (8.14.7/8.13.8/Submit) id 304F3E1s029183; Wed, 4 Jan 2023 10:03:14 -0500 From: shihyic To: Subject: [SRU][F/J:linux-bluefield][PATCH v1 1/1] UBUNTU: SAUCE: mlxbf-pka: Fix kernel crash with pka TRNG ioctl call Date: Wed, 4 Jan 2023 10:03:06 -0500 Message-ID: <20230104150306.29134-2-shihyic@nvidia.com> X-Mailer: git-send-email 2.30.1 In-Reply-To: <20230104150306.29134-1-shihyic@nvidia.com> References: <20230104150306.29134-1-shihyic@nvidia.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6NAM11FT036:EE_|PH0PR12MB7908:EE_ X-MS-Office365-Filtering-Correlation-Id: ce118453-5d88-4c54-3dde-08daee64d2ca X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ZmsJyWt9C2FfkkbD02048qexUpSQdc1npc4+5teLtpxxSIk6Uoq8GM+Mha9OVxYCnXjQdU9pgG84PCffIHNFqSVaSKiFWVb4ke+yINJb+PAlCOQuLCqBYtDYqkiA6vlU3MrOOMoVI22e75h2GAGnFcLGJNfhv2TzUb4imeLzOeSxS5lTaMizRwgqK/Zc7lqU5C7+/gKasaMjq12W0OX5iptcFe6a+KqIc1NAutfat/EBB/3YLMoZkGybEhOIR89hsiJ4UZ3LJCPhDXoY8LvgXJUuTOmx2qBJPmrLS/pe2F+vT50BMQzV3uzbOsQiXY8A4yrYJwQRDCFmk1Hg11jaOSIizhkgJgtY68bSUSpHurDSpZx5ve2pgWkJ7xFSGxIwISd3/E4FK4XszV8KEQFHiUVIPWvSCPfz47zokRBqPjaMpD33vvEr/dUPTTLbW+OQixbSWjduZLUlnA2vHf4b+wL3bLc8MrqejRLqa+nrY1rkvSpIUrGL7CTX5HCBo2N+8FVzRcqmpX6cf6sQViTjDEolwfXkeBHdQkFJuhUHbQbghNF80PuNN1cokHxKysYfHL3QBso9EmZ5+DN6PXOAUNDZaIBPsrRk8y/mCjt2hM2gKvU+f8IagEiLmZO0zR+w9nqFWJxtbJiJOrd2dH0bNXb99ELHU6T5f/sRoI0kQaYe/zOa2pE4ymZM5zUyHXaLtTr2lD3sQYwouuQ8WwiT1kCJoyIxCwmF2bS7cZF4m/BulkrTk7hI+crzRYa5X70J4/dz10X/wF+4A67sGKPh0tSOxRkndeqg3PsqgQZcddw= X-Forefront-Antispam-Report: CIP:216.228.118.233; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc7edge2.nvidia.com; CAT:NONE; SFS:(13230022)(4636009)(136003)(396003)(39860400002)(346002)(376002)(451199015)(46966006)(40470700004)(36840700001)(41300700001)(40460700003)(316002)(42186006)(47076005)(70206006)(70586007)(42882007)(6916009)(8676002)(336012)(4326008)(2616005)(7636003)(82310400005)(356005)(83170400001)(36860700001)(82740400003)(83380400001)(5660300002)(40480700001)(36756003)(1076003)(8936002)(478600001)(966005)(2906002)(6666004)(186003)(26005)(107886003); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jan 2023 15:03:22.5550 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ce118453-5d88-4c54-3dde-08daee64d2ca X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.118.233]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT036.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB7908 X-Mailman-Approved-At: Fri, 06 Jan 2023 16:13:49 +0000 X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Shih-Yi Chen Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" From: Shih-Yi Chen BugLink: https://bugs.launchpad.net/bugs/2001564 Bluefield encounters kernel crash/oops when HTTPS client uses OpenSSL with PKA engine during TLS handshake. The issue is with TRNG ioctl call. The kernel logs show the following errors. Unable to handle kernel access to user memory outside uaccess routines at virtual address 0000ffffce65d328 Signed-off-by: Shih-Yi Chen --- drivers/platform/mellanox/mlxbf_pka/mlxbf_pka_drv.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/platform/mellanox/mlxbf_pka/mlxbf_pka_drv.c b/drivers/platform/mellanox/mlxbf_pka/mlxbf_pka_drv.c index b8b5a465e00a..9e26ccf21d1b 100644 --- a/drivers/platform/mellanox/mlxbf_pka/mlxbf_pka_drv.c +++ b/drivers/platform/mellanox/mlxbf_pka/mlxbf_pka_drv.c @@ -467,7 +467,7 @@ static long pka_drv_ring_ioctl(void *device_data, } else if (cmd == PKA_CLEAR_RING_COUNTERS) { return pka_dev_clear_ring_counters(ring_dev->ring); } else if (cmd == PKA_GET_RANDOM_BYTES) { - pka_dev_trng_info_t *trng_data; + pka_dev_trng_info_t trng_data; pka_dev_shim_t *shim; bool trng_present; uint32_t byte_cnt; @@ -476,12 +476,17 @@ static long pka_drv_ring_ioctl(void *device_data, ret = -ENOENT; shim = ring_dev->ring->shim; - trng_data = (pka_dev_trng_info_t *)arg; + ret = copy_from_user(&trng_data, (void __user *)(arg), sizeof(pka_dev_trng_info_t)); + if (ret) { + PKA_DEBUG(PKA_DRIVER, "Failed to copy user request.\n"); + return -EFAULT; + } + /* * We need byte count which is multiple of 4 as * required by pka_dev_trng_read() interface. */ - byte_cnt = round_up(trng_data->count, 4); + byte_cnt = round_up(trng_data.count, 4); data = kzalloc(byte_cnt, GFP_KERNEL); if (data == NULL) { @@ -502,7 +507,7 @@ static long pka_drv_ring_ioctl(void *device_data, return ret; } - ret = copy_to_user((void __user *)(trng_data->data), data, trng_data->count); + ret = copy_to_user((void __user *)(trng_data.data), data, trng_data.count); kfree(data); return ret ? -EFAULT : 0; }