From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from BL2PR02CU003.outbound.protection.outlook.com (mail-eastusazon11011057.outbound.protection.outlook.com [52.101.52.57]) (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 5192739D6F6 for ; Wed, 8 Jul 2026 23:58:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.52.57 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783555103; cv=fail; b=N3DWgsVUnkg6trk06svcQujLpxhzmA+PN3hxtnfNM5Vv09itpeLK6G/lupdoYauphk0KgB2pQLWXESbUMquvQaNTuC4FTD/c5MM5dyxi2DVxoe5yvjiVKzPmhO2d4w3g5OR8/B37CRXeC2UaS97Ag+Z//GbyTZsa1dPjO8HQG8A= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783555103; c=relaxed/simple; bh=SmTUqPuAWc6+7bXA7pyISFG57HSI/gtHdyq3kJmVRx4=; h=From:To:Subject:Date:Message-ID:MIME-Version:Content-Type; b=BLW8717NcR79dsgorN59VaPrXLaopCl7n4MQFSPkuB0S95JuZgdaANb8tIYD26/pIkPE/nHpTyR8lKvx4IMV5F4S/wjCwtt0NoS6PXbpLLVQBDlz4FROuEPRDQhahWy/jdfDlXEEtanEXx1DgQMrr+t70Gw/66CGUxC8SV3Hnyc= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=qbvFnGDr; arc=fail smtp.client-ip=52.101.52.57 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="qbvFnGDr" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xEf05WGQzw6RdNFh8f8GJ0ZchIiDzQTDiXBIrexhMCvzWQ/MQWStfLGe9iJCNQHkqFDfhBt1/s/Bd9qTG4q/aQG4h3oT+ExTdNiNh+/pTDqxjtVqQiXqs2nkyVBOTry22ocsvVrMg92a2HaOaGMZW14XGsKpG3ml4IVDiNVwhKyLsc8siiFPEB+BB6/3moOMtOxTNy0tJ3dOpg6imLQIAk71Hv0Ypt0GuwE2GkRYnoZn97pLsaeVnInRKKsWD8ZDd9epFXsCpkJoLyo3sYTRzUNVhXeFk1AjTkIwZfvySc+1Zayn61X35lLawzdGyWdNQknG8UUrfWv9ytN2BrOySA== 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=OTfPKXprKrYGhdufQNREzknYjJMBaO/y7cgmKO1P2jY=; b=PcQRbg29lP5uW0vdUUJxC5+kdpEAJIomIL3XZ72Z6Y+gIW95k3EJsbevYzLURf+z/0OviBJCamScCBQlxVaVUVKvn4EOLbGnHeV7ZVoPB/skQEptvdcRuzVnJdBo4HP2wQcgxpCyRRoKJvuWYriZuG0oAHlroyVzYvx76gH43nZ3f/Sh0b6oPLc6nUpgpQ75OB3ckH3qvIz7iwpomBTc+ymUkSXlidlEj8jImYNrOp1LwtICSkxqX0+3svAEZ5ygUrR1Il4inau4qIIquovZbEia12NT+HVTtN43LthqAmdTT7PnL9nbVY/nZF+Vx3XrwI93CzJxHSzSlZDr3B98Kg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=gmail.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) 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=OTfPKXprKrYGhdufQNREzknYjJMBaO/y7cgmKO1P2jY=; b=qbvFnGDrwSrtduOInq1UGC7QqKsApw8qHeDm+lBHAXvJPNzzgoBKWzTFlC5qdrf/mJvYMWT5EGQEUHsnbowY/v8mhFT9BeL1ZW/kBcGbkZPpyshz18O6jmSyJFqSnel60wi1j5tGq3hGeDGtN5Gcr8o7SI4kRTWvXPaAyTZiXm4LQ8guuNfWwirQHtDY1RhP7tSeb5neKOjQR5NgjHvAYNVinhke5S0es9/ou9dn8xRuktxoeFVueB6n2p/LkaIjYEYJQYWFIlBhPQ9etxbAcFT0au3boJ8OYqsQDzbJQgmUuMg5dX8gEWeOFBfSEhxDVNbaUhMLG2vhv2aejiksmA== Received: from CH0PR04CA0117.namprd04.prod.outlook.com (2603:10b6:610:75::32) by SN7PR12MB8003.namprd12.prod.outlook.com (2603:10b6:806:32a::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.181.8; Wed, 8 Jul 2026 23:58:13 +0000 Received: from CH1PEPF0000AD76.namprd04.prod.outlook.com (2603:10b6:610:75:cafe::1d) by CH0PR04CA0117.outlook.office365.com (2603:10b6:610:75::32) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.202.10 via Frontend Transport; Wed, 8 Jul 2026 23:58:06 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by CH1PEPF0000AD76.mail.protection.outlook.com (10.167.244.53) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.181.6 via Frontend Transport; Wed, 8 Jul 2026 23:58:06 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Wed, 8 Jul 2026 16:57:54 -0700 Received: from ttabi.nvidia.com (10.126.231.37) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Wed, 8 Jul 2026 16:57:53 -0700 From: Timur Tabi To: Liam Girdwood , Mark Brown , Douglas Anderson , Subject: [PATCH] regulator: core: regulator_lock_two() should test for EDEADLK not EDEADLOCK Date: Wed, 8 Jul 2026 18:57:22 -0500 Message-ID: <20260708235722.2953579-1-ttabi@nvidia.com> X-Mailer: git-send-email 2.54.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NVConfidentiality: public Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: rnnvmail203.nvidia.com (10.129.68.9) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH1PEPF0000AD76:EE_|SN7PR12MB8003:EE_ X-MS-Office365-Filtering-Correlation-Id: 0b4888e6-d45b-4314-5c25-08dedd4cc165 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|23010399003|82310400026|36860700016|18002099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: ifEytQA2WorZCO7mMgnTlDZ1tgWGy3bUFQrLXMQ9sGaSi/g9ESnDWgT3o6QS25n5dLLZDXSjGadEg1668sJlRmo19O81ZwWEYeg3gIWL165qry8+ya4dvorTaPx9DaMZQcKMaegc/o+fKkEbhCBbHD+RFAuSq73hIlAPHBjA9wb1nNYQ1O1kkGpvHg2J+4WKy21966iQGLDWa0sgLJcv4eY1Jr+FpwPrwmILtWhs722MbAtjsYNkQAAOnK0lx4BejIwTD89n090dWNNSu02Ksx71i7zkg/d8kYm7x1Zer+rxuCv4QqQf2y4rNbkPgf1RCdOkY0wsM1rBZnlAqUVNhN0YE25llH9RtOVj2/3ac/WDE1EWmuy2k17a6hrl8rnF/wQMvOcxccSQOxWqLSQa80P4GSUIuxi0/8ysjWSXGz8gd53W32w2Jp8vyy3ukO5cWF+QOAjCzCyfme8MCs/fiCdl1mSMkGKA0mSRwthOaEGbOAlxaG8Pj0ZR0fXdNON05sFrI+VnBuHYXUmBKfc8RwYmiUGQW/oqQ6/ATHqaJSZDf5uuuzuwGPY9i/2b5x2T8Wxen6LXqe92i7NmVNBgrg6MbAiuaVMNIHPEyr73cui3QTWEhgYzOLIyUZf8yq84RS4O7YSfkdb5fk5lA16T4v+CjMUtWPTD0773Ne/jiPaOIJqI6/vObYBJskncdaQogpvaobv7WP147jaQuySLGQ== X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230040)(376014)(1800799024)(23010399003)(82310400026)(36860700016)(18002099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 4MnLX4gfmFVQP/eM39g0zvj31BaykBlCVALp/6Rjx2eWRuwaSrln7w5eUu07gBBpBi59KghwkW+DL8U8bGm6TZQ9APeKFf10l+yMbYu+UwG5VZrf6zXQ9+6awG+V11ZzEIZjhPYD2NsIXI4dqT2q5tvgqX/yrxw8i4g/oeHjDnOvFCbPQYjTApCy1fCLhZJ3kpQyXMWf5azkkv+PC5F36mwKOodYwJ4nR4leB4dct4VpBS+FWQ5aRRuPSCo+IBZ0k/3yllcfQppPHKWihe1CoeXx566NW2jye0h2L9HQY+6Hy/OcCMWsT7Wq2NWkfOd7i0eacE75Y2w/NsDrIGulec1e7bKZ6x3je4aVw/dkc0G7x9Ya9Dk8a34nQwQbjcLBqBUWLexx/UjhMAGbkZAHkwqqhLeQPchwKCRPiDgsxHTPtI66DPE58napBhIl+Ubf X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jul 2026 23:58:06.3848 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0b4888e6-d45b-4314-5c25-08dedd4cc165 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CH1PEPF0000AD76.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB8003 Compare against -EDEADLK, which is what ww_mutex_lock() actually returns and what every other deadlock check in this file already uses. Function regulator_lock_two() acquires two regulators via regulator_lock_nested() -> ww_mutex_lock(). On contention, ww_mutex_lock() returns -EDEADLK, which is the caller's signal to drop the lock it holds and retry the acquisition in the canonical order. However, regulator_lock_two() tests the return value against -EDEADLOCK rather than -EDEADLK. On most architectures, EDEADLK and EDEADLOCK are the same value, so the comparison happens to be correct and the bug is invisible. But on MIPS, SPARC, and PowerPC, those two errors have different values. The test is wrong: a genuine -EDEADLK backoff no longer matches -EDEADLOCK, so instead of unlocking and retrying, the code falls into WARN_ON(ret) and returns with only one of the two regulators locked. In practice, this is a bug only on MIPS, because the regulator core is not built or used on the other two platforms. In general, EDEADLK is preferred over EDEADLOCK for new code. Fixes: cba6cfdc7c3f ("regulator: core: Avoid lockdep reports when resolving supplies") Signed-off-by: Timur Tabi --- drivers/regulator/core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index dc5d67767336..1797929dfe56 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c @@ -248,7 +248,7 @@ static void regulator_lock_two(struct regulator_dev *rdev1, ret = regulator_lock_nested(rdev1, ww_ctx); WARN_ON(ret); ret = regulator_lock_nested(rdev2, ww_ctx); - if (ret != -EDEADLOCK) { + if (ret != -EDEADLK) { WARN_ON(ret); goto exit; } @@ -264,7 +264,7 @@ static void regulator_lock_two(struct regulator_dev *rdev1, swap(held, contended); ret = regulator_lock_nested(contended, ww_ctx); - if (ret != -EDEADLOCK) { + if (ret != -EDEADLK) { WARN_ON(ret); break; } -- 2.54.0