From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-001ae601.pphosted.com (mx0b-001ae601.pphosted.com [67.231.152.168]) (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 EAE2C2E6CA8 for ; Wed, 26 Nov 2025 14:44:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=67.231.152.168 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764168273; cv=fail; b=D35zU5Q3n0j9k3DC0T9vO1SrWJlWyn9GQu4/wcRMWIMc3v+wgmrfbVfo3UlXnVer9aeiVK2SfWWlC87TsrB/2Gq4Gv8Yf/BqaqbtcriaNH/BjrkqQ0RubxydpEAYYYIO+GqIOFEtoZhKSn2NfQKY3ml4bnZAm/0BRURLpIUyndU= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764168273; c=relaxed/simple; bh=T1gNnPLcpe0la86zvIAB1mS1Qpih5IJXWr4Wa23RCeM=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=Qtqf3kHd8wGvI4qGoOex+d85jjyaAam4F3fuWL38xujhYAKwMcMHw9LmpLK/2pI+AEBl9pEg3XcoKpiY2PlH4HdKKBQH24lV7Xerm4tKBd5ubzl/wX/lcVTLEsWna75JiVzraG/mSzm79DWIZNPA5tHy+bORRkkxYHQs3I5rt4k= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=opensource.cirrus.com; spf=pass smtp.mailfrom=opensource.cirrus.com; dkim=pass (2048-bit key) header.d=cirrus.com header.i=@cirrus.com header.b=ZhA31YuS; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b=zFIfjy3g; arc=fail smtp.client-ip=67.231.152.168 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=opensource.cirrus.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=opensource.cirrus.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=cirrus.com header.i=@cirrus.com header.b="ZhA31YuS"; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b="zFIfjy3g" Received: from pps.filterd (m0077474.ppops.net [127.0.0.1]) by mx0b-001ae601.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5AQ4sR9S2394947; Wed, 26 Nov 2025 08:44:16 -0600 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cirrus.com; h=cc :content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to; s=PODMain02222019; bh=pGGAMpL5CoEtnruxz7 JNz+Fj32PqoclhAVQVn4XsgWM=; b=ZhA31YuSsW62ipF6i9Ij4lya9pFaPaVFtU cWraxQwHLVwG0jveft2ISm+w/h/u3Nz/gKA+80vbc5Xzh3bnSaNwooIsKaruTiwv XcCZNQKwKYas6lgUS0YOFGJdPzMM0OdqW0wEkZ8SdJI7dXDRe2vdgwmvKovHxY7o BMFJa5lM9efUGAcudjQ5zgo+o4C6Njh5KO6IBCQ7PPXGi5wb4eCKmQZcb2x4L53I HQUxjgHQfXcmKZNQgMocj41VSABEUoDr8V5kprUmbwwxXPb7oV75f6+ygkhyHeA1 KXPIGP1peUMiPIcLM7AkAkoFnsfsefWccO97eEICzKNw3U9fTlYg== Received: from dm5pr21cu001.outbound.protection.outlook.com (mail-centralusazon11021100.outbound.protection.outlook.com [52.101.62.100]) by mx0b-001ae601.pphosted.com (PPS) with ESMTPS id 4anjvwrxus-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 26 Nov 2025 08:44:15 -0600 (CST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=u7Br8OWE3r6KXBoe/sNNPTVZyZSVFUZ9LgRh4+xWLRIA2QY2R/kK3OBY0zWh0bNyAmSxbJF4egAjzMyWNAPLw7WC8MVUsD5xpzB+dUu4H1Tt+VMuW+n0fUmpTxj+llYmaXxzSabixM4ZxTu4PUNGmsVVnobMfFa5caW4wjMP6oU8kvXNtGVebRVIh458ip7ma2/M6QUpmd0XAIWYj7zYcRJkBpOFPxtXujYl4fduSLof8eoCOCn7jDw9Bv38tS/1O6Cg2PDL0if39bq/y/D1tCG7QBU8lQnAwlDr5kBzkRrPabru3mFi5dOFKywFKvjBLvyT0NDHx/LMU6bkIq/wWA== 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=pGGAMpL5CoEtnruxz7JNz+Fj32PqoclhAVQVn4XsgWM=; b=jGPw+KVhIXLR+KQiyMnrSJxRSWtBCTmZ6/TcrPruzrbqd3YALFTz2JGyCBthPHlKlUjz3eWq6p+5ptj4DLRYHLsY36EuMj+1BDlR4aSpItMA1/tc/CQaflr8tK1CHtCKuXMrMhlemNUEEn+3lwFl5qr0QlgEbSl+sre1k5tSl0qdsMoF4y7nydfTxeTzuaW+P2RzU9xNzvBgPgOoVRSPa4zyqsLjKBkpMpTXVqcYMaV45qrS9yMus73Q5J4fpwJpKO7Ns2yonMT+jx761RTX3pkiYukhU9ZNN1ZdeOjc1KWwZTZ8CtxERylomDDFCHfXkwBET9YJ7jXMXKEwVru+Hw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 84.19.233.75) smtp.rcpttodomain=gmail.com smtp.mailfrom=opensource.cirrus.com; dmarc=fail (p=reject sp=reject pct=100) action=oreject header.from=opensource.cirrus.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cirrus4.onmicrosoft.com; s=selector2-cirrus4-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pGGAMpL5CoEtnruxz7JNz+Fj32PqoclhAVQVn4XsgWM=; b=zFIfjy3g1UOB5eGAPAMb43etj8cCdvPQz1Z1oqgRvncCqqQ/NhkLOTOdwf8j/jndzRXyCLq3Qz38CQXjzfKzcLzrQiyOZcutJYZVUsDgYoe/iImok2QO83jfkFfcXdn4Tp4Xh8qWqtABa/okMF568C9vK3IQBpZYKPAHvw/3tsA= Received: from PH8PR15CA0016.namprd15.prod.outlook.com (2603:10b6:510:2d2::26) by BY5PR19MB3779.namprd19.prod.outlook.com (2603:10b6:a03:220::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.12; Wed, 26 Nov 2025 14:44:10 +0000 Received: from SN1PEPF000397B1.namprd05.prod.outlook.com (2603:10b6:510:2d2:cafe::f8) by PH8PR15CA0016.outlook.office365.com (2603:10b6:510:2d2::26) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.13 via Frontend Transport; Wed, 26 Nov 2025 14:44:07 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 84.19.233.75) smtp.mailfrom=opensource.cirrus.com; dkim=none (message not signed) header.d=none;dmarc=fail action=oreject header.from=opensource.cirrus.com; Received-SPF: Fail (protection.outlook.com: domain of opensource.cirrus.com does not designate 84.19.233.75 as permitted sender) receiver=protection.outlook.com; client-ip=84.19.233.75; helo=edirelay1.ad.cirrus.com; Received: from edirelay1.ad.cirrus.com (84.19.233.75) by SN1PEPF000397B1.mail.protection.outlook.com (10.167.248.55) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.7 via Frontend Transport; Wed, 26 Nov 2025 14:44:09 +0000 Received: from ediswmail9.ad.cirrus.com (ediswmail9.ad.cirrus.com [198.61.86.93]) by edirelay1.ad.cirrus.com (Postfix) with ESMTPS id DC99B406541; Wed, 26 Nov 2025 14:44:07 +0000 (UTC) Received: from opensource.cirrus.com (ediswmail9.ad.cirrus.com [198.61.86.93]) by ediswmail9.ad.cirrus.com (Postfix) with ESMTPSA id C8D1682024D; Wed, 26 Nov 2025 14:44:07 +0000 (UTC) Date: Wed, 26 Nov 2025 14:44:06 +0000 From: Charles Keepax To: sparkhuang Cc: Liam Girdwood , Mark Brown , Charles Keepax , linux-kernel@vger.kernel.org, weipengliang@xiaomi.com, wengjinfei@xiaomi.com, caodan1@xiaomi.com Subject: Re: [PATCH] regulator: core: Protect regulator_supply_alias_list with regulator_list_mutex Message-ID: References: <20251126061542.3849-1-huangshaobo3@xiaomi.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20251126061542.3849-1-huangshaobo3@xiaomi.com> X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF000397B1:EE_|BY5PR19MB3779:EE_ X-MS-Office365-Filtering-Correlation-Id: 710e41c9-7de2-44ab-3896-08de2cfa422d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|61400799027|82310400026|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?1P9IzdVOTN3r+RqEDpLuludnb+K0+JTyC6HPMBea6qW1irqoI0LSj5lgYWEW?= =?us-ascii?Q?HKmwydsOK+hfBzQ3qOmmS9aZtRRShNw577ILLDIQuHavo2D5OqxDX4QN6skm?= =?us-ascii?Q?YUEMH8VjADwZuToBDegjFSZAufhd8qyoC1/hx3wZ/LFbPzBHdlwnxzvKJ3d0?= =?us-ascii?Q?g9ESXwrk6Z0GNwvoO6RusNMEpZFefraF8WlbTaZPu3vA7g8Z/fGKQaeBz7qi?= =?us-ascii?Q?uLNdyaWZWTbPIKc/5jmD+LsLn5a0ADaLl9I+hFYOpBYGy31NoxPNfa2IKp26?= =?us-ascii?Q?sRmal50fc/+5WzCosxv1/6UH6EeBtXFr9BczfpVnxYVrxcTVo68vWKL1rkDI?= =?us-ascii?Q?bJ1QQFX/9FBghPFNrBeaBKjFIhmEbjIL/7LooI0tpWpkF/Kx9kIrGmc5mBj4?= =?us-ascii?Q?SVuSM0ckOHW5VFClqpiSez4bm+b0Jy29kTCsBPba6+bs0iuSWC7aavgaRBRg?= =?us-ascii?Q?+zz4ROc2g7wfqgiAo40zJHLDCYzU9Uu8I7/7G+LvAl5xMIe/4AbNpeWVo/HP?= =?us-ascii?Q?rjtoZx530Tg3DFxTp+GoCBhI1FP6jG+pmN1JuqtQYV7AVjwfMA/H6sMEZsct?= =?us-ascii?Q?H1sa+uKkqiM0sv5ufLJbblEIyTKC2YWdwaFkzPLaFeZXDWws/ZbEQrTLC34j?= =?us-ascii?Q?tLPpyddsAKcI/8CwE+epus5FU/Ifon5vbm3akKWEpI6jCJwCuKw3zEHkiQfd?= =?us-ascii?Q?YXKu2xM8xlpGWZJ2UWcMddU5QusLWaqCn7VpjICFgrajTONq8uia2mJw7rOq?= =?us-ascii?Q?hV92sG/eH8o/V+EC6azU7L+U3ZDFqKzYAtbWig+hBkh+Vb9NXnEUBMlw8047?= =?us-ascii?Q?57DJtJ6vY9oJlcKP07hiLB8m3WQGxj1ZK26VBKgGQDjheAHim63iSztCFUvv?= =?us-ascii?Q?yezLLhtbLuDUyqmEYqjEsO2qq6JCiuD5G/3gBWlZ+ObKh1hIUD7eiVrW67Ih?= =?us-ascii?Q?YmM+Pm9wUNVXA7G1u/tqp+sNQEmQpZRk/atYc97UcB+hW4vJehb+snyxcxjh?= =?us-ascii?Q?DLXJ1N3P/qPCzVgwKUbCG04BcxOebtzGz/ZJ2vqsxrPBqTmxLL8N2VdRk9us?= =?us-ascii?Q?ws8LkIYZW1DSbuHiyASbtNw9utvKiy6qyxmKs/Wuavoo55iB8/H5spCw9AIw?= =?us-ascii?Q?9TN2atS+suaimOjohv8PdDelia6EjvdjtmkhNmlR8lcry8OKBXS+rOIPiDly?= =?us-ascii?Q?za11fP4IKpl2YQ5y2coA5rb8AlInZxJJmX+aiC8pyubUwTqAuy4SPntdcIMa?= =?us-ascii?Q?f5mzFYWxdklQyEWilNcuSZ9x2VoK9EAVzRQXAdc5HclzqxQe5Obwq8gYCE69?= =?us-ascii?Q?izCcP7axCRoNUQ9m2TDmNs64u80GFhAhGmWq/up4Od/FEdmB4pC/TlwoZsem?= =?us-ascii?Q?hwXZrNk0h4dfCZxdMPAGjX7hbYgrRhCy8Zb1h1dzfKiUg2Fzkt/UQt6Clwah?= =?us-ascii?Q?luvlQbtYfxIwzYHl0KhVOG2b1wcE9IziuX5fmqbSBAcmUSHjrmTW+PVFZnlU?= =?us-ascii?Q?ENJLsXmGAS/WF6ep8Za/9vt4/O0pkhp33Xv/3CKn9M8rcuNVN+D8v5MQDgw5?= =?us-ascii?Q?roEp/2z8ddsQ3Vru7SE=3D?= X-Forefront-Antispam-Report: CIP:84.19.233.75;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:edirelay1.ad.cirrus.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(61400799027)(82310400026)(36860700013);DIR:OUT;SFP:1102; X-OriginatorOrg: opensource.cirrus.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 14:44:09.4089 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 710e41c9-7de2-44ab-3896-08de2cfa422d X-MS-Exchange-CrossTenant-Id: bec09025-e5bc-40d1-a355-8e955c307de8 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=bec09025-e5bc-40d1-a355-8e955c307de8;Ip=[84.19.233.75];Helo=[edirelay1.ad.cirrus.com] X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TreatMessagesAsInternal-SN1PEPF000397B1.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR19MB3779 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-ORIG-GUID: zfdt3yUl3K1aD8OfO7vJYkwgHuZMPEi_ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTI2MDEyMSBTYWx0ZWRfXySKKtpSdBDfQ VxWrECn33eTx1+C5EPpjlIr3ERro5mBQWxue/EXo+qjdZUzN5jgoRxi5/9FcAHJObYwP+73ToGg vGqYBVzgIdj3UZG4Yn+xAGSIyzydybG9OyhnzM8Zoo+RSasFPmWb1G2GXGS8d9NmJiRGUMbkyjE zAQiAMpZM1mXFukn/axDF11xPs8vxQguXZI+qN97mIobYeZ4fgGpjdZpP85QfCni4InrkhjAt9m kF/Hj/WAwRQTCe18TFv2vvV2o6O1t3SgxN2sLkbdIFV4tz/jf1M4I32dOm0LF04+kQHbIqSeB4h 97oovb8tBKvsd+LrPMBpzB1QrI+KqYKhVHJGK/H0WsNDLajKBGHaFkjPDHvfX7oZyDSZj47C7y9 lbf0T9PjPqkrDnZrtwtEFS/11R5JHw== X-Authority-Analysis: v=2.4 cv=Vvouwu2n c=1 sm=1 tr=0 ts=69271240 cx=c_pps a=qXr7QywujOwG71/BKD+DQg==:117 a=h1hSm8JtM9GN1ddwPAif2w==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=kj9zAlcOel0A:10 a=6UeiqGixMTsA:10 a=s63m1ICgrNkA:10 a=RWc_ulEos4gA:10 a=VkNPw1HP01LnGYTKEx00:22 a=IeNN-m2dAAAA:8 a=mjVk8aH2LKX1x2_3x_cA:9 a=CjuIK1q_8ugA:10 X-Proofpoint-GUID: MGzsOlgVAWk-7V-MUQvFC6LAPr8hzEhE X-Proofpoint-Spam-Reason: safe On Wed, Nov 26, 2025 at 02:15:42PM +0800, sparkhuang wrote: > regulator_supply_alias_list was accessed without any locking in > regulator_supply_alias(), regulator_register_supply_alias(), and > regulator_unregister_supply_alias(). Concurrent registration, > unregistration and lookups can race, leading to: > > 1 use-after-free if an alias entry is removed while being read, > 2 duplicate entries when two threads register the same alias, > 3 inconsistent alias mappings observed by consumers. > > Protect all traversals, insertions and deletions on > regulator_supply_alias_list with the existing regulator_list_mutex. > > Fixes: a06ccd9c3785f ("regulator: core: Add ability to create a lookup alias for supply") > Signed-off-by: sparkhuang > --- > { > struct regulator_supply_alias *map; > + struct regulator_supply_alias *new_map; > > - map = regulator_find_supply_alias(dev, id); > - if (map) > - return -EEXIST; > - > - map = kzalloc(sizeof(struct regulator_supply_alias), GFP_KERNEL); > - if (!map) > + new_map = kzalloc(sizeof(struct regulator_supply_alias), GFP_KERNEL); > + if (!new_map) > return -ENOMEM; > > - map->src_dev = dev; > - map->src_supply = id; > - map->alias_dev = alias_dev; > - map->alias_supply = alias_id; > + mutex_lock(®ulator_list_mutex); > + map = regulator_find_supply_alias(dev, id); > + if (map) { > + mutex_unlock(®ulator_list_mutex); > + kfree(new_map); > + return -EEXIST; > + } > > + new_map->src_dev = dev; > + new_map->src_supply = id; > + new_map->alias_dev = alias_dev; > + new_map->alias_supply = alias_id; > list_add(&map->list, ®ulator_supply_alias_list); In addition to Mark's comment the first argument here should be the new item to add. Personally I would be inclined to just leave the allocation inside the lock and not require the extra variable but up to you. Thanks, Charles