From nobody Sat Jun 20 07:12:08 2026 Received: from BN8PR05CU002.outbound.protection.outlook.com (mail-eastus2azon11011036.outbound.protection.outlook.com [52.101.57.36]) (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 679BD48CFC for ; Tue, 5 May 2026 02:51:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.57.36 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777949495; cv=fail; b=LaEKYuCq1rhg+3bbSXM4EUbnxmJNg56RsCg8ijc/wAagvK2+5EDtSZ5sQqvp00licblFQ7i4ZAuXJFKH4cksmdO35c55H3wIQLRQiIEssF/QkYTWV7YpPpr7w3tHJ5BKedCnV2wOiXjsbdB6D/RKcSUjcy6p+zjSAK+lRBTwHXc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777949495; c=relaxed/simple; bh=VcRH61N6iQ+Bqs8uOJnUYUIMJGCo7cbihljWZmY3h+k=; h=From:To:Cc:Subject:Date:Message-ID:Content-Type:MIME-Version; b=J8uiKSeamybuPOiFERMIY0iB9+9O+QnNiqM4qVwgDXuEDtP/fqRXP2y7G5KznQo9gFDPtnFV1Wf7tXtfwHnvsq64+oofZ3axn7V2uCdL50DHOugVTQW8F2QW6XCdnbzoIE1Bbd//UPrzrvGfLGGUpAqO4jyDOsaku5Utt3XZnDc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=altera.com; spf=pass smtp.mailfrom=altera.com; dkim=pass (2048-bit key) header.d=altera.com header.i=@altera.com header.b=lGs4/MVL; arc=fail smtp.client-ip=52.101.57.36 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=altera.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=altera.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=altera.com header.i=@altera.com header.b="lGs4/MVL" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ZQf9toj+L2hYDiwE5vh1MLMpt89KqtRoqM1yJsCjXpAFkGfpO+swvayG+TCW6LjtqyCqxFzTi9Z7fI4cEpPCwjwI9h2mukw931CvHuRr6ksBKufyjvUrmYUFlCCJrlbIBnQLQzyfVHiNARWrZAkazwurQ35C24NV6r/v5oQZsPAngN5jKEOjblCaz85gaohLnkJWky/13jaJBrhiYJaYfYkaQgUtQ/aB8U6htX0ZVZThZNBW3KSm8U/EOfExV8A/SIRSPcaDLkUMIaWm1zoytbH+X/J855TWBZthLmxKefmCy+VY+Kg458/HpbFWt2AdU8tVNfb3fNLLlEs6mWf+sA== 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=Hz0Gd0KpjRuA8q2orlRNCHP3nCq4BC0Kn3BCyF5iN2Q=; b=MU52INtVWvdmwR6oi12OxW835bI688ACOaQkzTG72aKvF5YTRYy2fc/dcGgGTIvWGjd/wY9SzHuaH/Lvwpn+5YzHTJw3SltKRga8zK4hiEnQULzJlia6Sn+yz8iP+X5NR+I75MxpglBvAtDaP20D5eeNlQbrbfZxqjguo+T3kNEBUk0rE2/uScZDTn9NFHAzyZAvPM+c0YJ9dqAk8aJbCTaZBiQfuzEkk1t+kZWjaKNKo9MPPtWYYwxuB00zghrUUAuFaVqQG2wFuTNfjFJQqgnrdDRYWy6JqG+UmLNSMw+GeSZa8Ui99+5+FSea9lvuZcHwp9P67OWCHqUth6bH7g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=altera.com; dmarc=pass action=none header.from=altera.com; dkim=pass header.d=altera.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=altera.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Hz0Gd0KpjRuA8q2orlRNCHP3nCq4BC0Kn3BCyF5iN2Q=; b=lGs4/MVLC7zQo6w0jYhVYfX3DyNFSOWgZwsIZNtCqX7Tsoto0uuMoCW5hbbm+bUiUISQbdiIHqtdT4Nc0W28XcEld4JGNR9yvNmJO2COEWc3P2y2upYK3ZUS5CVCfHnRwG4BKylAQs437SZqs+Ypfdia1Yz67oCclQXd0mX9L+LSA+ZPh4ucU9JZLzuumBOX+SXohWGcKBBIYUSZveZqd5NooEpJDI1FciCM9tmK/OovlfXBona7XZJUB9awFVtdBq/1brZBZzfAysxQcNalep3PD3e7G0J+suVuLqRgeJeMiCV/bYoYBx/qhVtIcyyLuBatgXQWtBc+keTgz5BOmg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=altera.com; Received: from SJ0PR03MB5950.namprd03.prod.outlook.com (2603:10b6:a03:2d3::20) by DS3PR03MB989169.namprd03.prod.outlook.com (2603:10b6:8:39c::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Tue, 5 May 2026 02:51:32 +0000 Received: from SJ0PR03MB5950.namprd03.prod.outlook.com ([fe80::53a0:bf93:6b6b:de01]) by SJ0PR03MB5950.namprd03.prod.outlook.com ([fe80::53a0:bf93:6b6b:de01%4]) with mapi id 15.20.9870.023; Tue, 5 May 2026 02:51:31 +0000 From: tze.yee.ng@altera.com To: Dinh Nguyen , linux-kernel@vger.kernel.org Cc: Adrian Ng Ho Yin , Nazim Amirul , Tze Yee Ng Subject: [PATCH] firmware: stratix10-rsu: avoid RSU mutex deadlock on update Date: Mon, 4 May 2026 19:51:29 -0700 Message-ID: X-Mailer: git-send-email 2.43.7 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BYAPR11CA0104.namprd11.prod.outlook.com (2603:10b6:a03:f4::45) To SJ0PR03MB5950.namprd03.prod.outlook.com (2603:10b6:a03:2d3::20) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR03MB5950:EE_|DS3PR03MB989169:EE_ X-MS-Office365-Filtering-Correlation-Id: 0713784c-1e28-474c-3045-08deaa51367b X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|55112099003|18002099003|56012099003; X-Microsoft-Antispam-Message-Info: sMf8veyQwliuWBXHBQ6mY3/LGvS/uvC5fkP0XZOT7P1j0LRjTsAWdFBdPd+yo4xRlyunNm0CK5O41AXw7tsEpUrAjQ75N7afPZBFTPG20ML9nSJmDaPPBI9SIGB1EvRNWeV1hNScs/sh/7BdqB8BcfUhzPh40khxh5jf2D1Fxh77vjXFy8zT6kucjLBPAXL9i+dzsWB+tk9I1hOdLHb3lloulA5+gMHxDtwxm07Q5ywlk/roMY3FZueqn/25yJB2x5CMvHMUSnCyOO3gAD3NVkCkKdxGARnUBMZr9oi4z+jE4+DESM5w2ttvp4xCkgih8qfVv4oHfvJ96jUeyc5w7AbUbNapPCKAsVMGWmk42i0kIuls0aj2KbWs4ZV3lxV5fyPOsipHzVTH12eRk/8SwUlei6cBURdLIGmtqJoBVBkMBMNnSJhpDJyncSROfpP7Ru84L3d9r6gEjdnEWRxcNbG63IP/GqDb+sbcqjNO41k74ofBrNNSuli1d56yW5NRVF4BST3qehrCPhITKhqPWJDTQEQKHLknPXHjtek3M5hDuTFVTibYZAVRyhw+UT8PFwrXVHy+raOfDCvQ9QuneK8QY3ScHHrRTzixW2sAD59epb7Gcu4F+xDGnsLbldhg1J/Qx+Ken60PmLezX4LDA2i51319jT153veidW2w0hn764wzv+7CwXjtuGFy5IJ+ X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR03MB5950.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(55112099003)(18002099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?2ZDw9fDc/aqfybXY2E9jCjVbqZiAEc7ggBubQ+/bBMn0225vIUNrHaRV/8mA?= =?us-ascii?Q?Grb0BfGeAIw2qVcBvJDDpaEY+DqtSRqOorddgixAPtEehZyT3Mtxic5/Olfp?= =?us-ascii?Q?q2OzNMZyC8NyR7edGl6JH40abwqH53UE0+Vbr/oW9XGYwHmbpCduNlhz66QM?= =?us-ascii?Q?bBAo03dBOO8BxGAav3/3XQdZDIMWO+srUzzoAbqTDa2Vvsq2wW9PXshJdyYl?= =?us-ascii?Q?T26iXvYTPmurAeRAr/5xMCypAhJKcscKtLfj4dUMua5JZBJUmS8s9Wddj0FZ?= =?us-ascii?Q?uu0LidAeiZHSYCUQBO99LdEq/MVuabxXsOXhRP2LG1f/2oj6gHAojwDjzoFH?= =?us-ascii?Q?cQqflcIYXNjs6smHHIta6y+aYxWfdZBVcBepbsHmjUwu5qcJdfa/XQx81p5k?= =?us-ascii?Q?oyNbKB+nLf4mRsmNuEZm50yBhGGpyy0F8LkiP7lxmYeEVFZIqMejHdcx14Qt?= =?us-ascii?Q?1zrq00ZXV0ts0mtgY0bm7UMxD9sr3NwTnj2q2thF9w5xzgJb2b3si2MIGh/4?= =?us-ascii?Q?np0sAs649ZXtn7DqZZoE4/e0YcXKz8Ys+KQ6qSh9Xm5ibaSchUZPdDm43A0X?= =?us-ascii?Q?fAoRzeKjHZAj5KDKmnXxtHj+Mhhtwq345pQr36i8TFORWJHm8exVHbBA9W0X?= =?us-ascii?Q?NIwI8GBmRXqJM3e5T58UgAVjVZC79ue4nQz5gwVmLCV2c1RBoJ5p8UOnbOZT?= =?us-ascii?Q?evhNFluUF2BtdfiRkCO2IAT98/iAgPnXmYZGIlFFyfq9dBHI0h+ntpR7jSN9?= =?us-ascii?Q?Hj85MjxhEI7nTkb5rFZZEKS4jaPueI3H4KIlu9D9baCmW2+NMCv3NrVWQ7pk?= =?us-ascii?Q?LT5IF27svuOvxYui6MHyIENGM4H75YNuAS0oCuF8ssNs4uRCgvrTW8fg6d5D?= =?us-ascii?Q?N1Fetc4mSxcgf8a0XOnFVrVnSI4X0pPjxSSJ/8VsKoaXzWelzNeF6bTQhBjz?= =?us-ascii?Q?rLxnso9OPh4kPVOcX19rM8CuOC3k34STnpriKKlWTCb2R7JM5j7sLrwkWG+s?= =?us-ascii?Q?z4PKUVsNDu7dQEh7kLlrE9DcrBcHMRSCYv1ejWrtl10gi0Ck2cANsZDEgoY/?= =?us-ascii?Q?YR/W2Nz3HF4asBo/1wJt3WuUnjX1RMXu58F45qh1lPllmkUrkrRnNGQQqiO9?= =?us-ascii?Q?5pcsGmyq7G465zS2iPfPqJ8uOWBh+x+MbIwaAKjrLcqr65QxxWA9qns89cpe?= =?us-ascii?Q?8fI3E4QtSHimag+5T51ziDQBq/QB4DEAtY69kCxCGS6gaI3QiR6FC3KTosb+?= =?us-ascii?Q?uDkzjDfyY0DkZoUegxrBjTYxEZ/HarePA0vLAr8GDCCxrT1UTQ0b4MZZZgK6?= =?us-ascii?Q?8EjZygXlzHtS+r0OjAkDDlFq4Jnt4TheAIfjjjfY2pfjcZlJPilKII1whuK4?= =?us-ascii?Q?mkyViJhUIf6LD5LbPFTHCC5YhYbGxvIpc6vP+KfItNgHTyw4rjYrqvTi8jvD?= =?us-ascii?Q?fmOYt3aUoYOyMUv84F9G3cD0S6BplorJGNlGYFGuf/AwTng0baO8QMpg4FJ5?= =?us-ascii?Q?v7W5ISqWZIyfi48PQceW68UqEc1XMN8XG1hh+P9N37jjLguOS/A7B69yxoag?= =?us-ascii?Q?wT/q1zDUTuabynOxH/Fy53msda2lNb9Msm9cvaL4AFR66xATgcLfC0qK1f4l?= =?us-ascii?Q?x7x/eca2DsSjvA0bcPKZt68Shek1s+l2JIzacdU/dp5PrkdMMb8pa+wAlNt7?= =?us-ascii?Q?QaBTpdcBNHfxnG9I1nT0/axRQRrahDMpFzoXRo7bav3EmCYeRXnVA8q2BIfa?= =?us-ascii?Q?nXg0FQAn0A=3D=3D?= X-OriginatorOrg: altera.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0713784c-1e28-474c-3045-08deaa51367b X-MS-Exchange-CrossTenant-AuthSource: SJ0PR03MB5950.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2026 02:51:31.8517 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fbd72e03-d4a5-4110-adce-614d51f2077a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: zG9NGlbBQF0cIWfjlmFQWaHChsXqzk9/ogyxjRMqLHYkKIjrXdbb0LSQtLs371c6PsXE+CyN/JKB55dDlRUcvQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS3PR03MB989169 Content-Type: text/plain; charset="utf-8" From: Tze Yee Ng Use mutex_trylock() in rsu_send_msg() instead of mutex_lock() so callers that already hold priv->lock or race with an in-flight RSU operation get -EAGAIN instead of blocking forever. In reboot_image_store(), treat -EAGAIN as a no-op success so sysfs write does not hang when the RSU path is busy. Signed-off-by: Tze Yee Ng --- drivers/firmware/stratix10-rsu.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/drivers/firmware/stratix10-rsu.c b/drivers/firmware/stratix10-= rsu.c index e1912108a0fe..f3ee0b4e49a8 100644 --- a/drivers/firmware/stratix10-rsu.c +++ b/drivers/firmware/stratix10-rsu.c @@ -254,7 +254,13 @@ static void rsu_async_get_spt_table_callback(struct de= vice *dev, * is necessary to get RSU boot log or set the address of bitstream to * boot after reboot. * - * Returns 0 on success or -ETIMEDOUT on error. + * Return: + * * 0 on success + * * -EAGAIN if the driver mutex could not be acquired + * * a negative errno from stratix10_svc_send() on failure to send the req= uest + * * -ETIMEDOUT if waiting for the SMC callback times out + * * a negative errno from wait_for_completion_interruptible_timeout() if + * interrupted or otherwise signaled while waiting (for example -ERESTAR= TSYS) */ static int rsu_send_msg(struct stratix10_rsu_priv *priv, enum stratix10_svc_command_code command, @@ -264,7 +270,8 @@ static int rsu_send_msg(struct stratix10_rsu_priv *priv, struct stratix10_svc_client_msg msg; int ret; =20 - mutex_lock(&priv->lock); + if (!mutex_trylock(&priv->lock)) + return -EAGAIN; reinit_completion(&priv->completion); priv->client.receive_cb =3D callback; =20 @@ -597,7 +604,9 @@ static ssize_t reboot_image_store(struct device *dev, =20 ret =3D rsu_send_msg(priv, COMMAND_RSU_UPDATE, address, rsu_command_callback); - if (ret) { + if (ret =3D=3D -EAGAIN) { + return 0; + } else if (ret) { dev_err(dev, "Error, RSU update returned %i\n", ret); return ret; } --=20 2.43.7