From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.16]) (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 9C9BD27E05E for ; Tue, 9 Jun 2026 07:02:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=192.198.163.16 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780988560; cv=fail; b=ocUmE4YbuQ9yj+itm33biB/7de65L5TCMOQBWT4KpSXi0xvsXpQ5pnIhM7z33EQgjg9uRhX0pknfoZt020Z/zEvS3KmIBdFyTKUAFYv56+/oieD43FgtuO/TajEzcIzFgz2+vUIvIjiH0FlFabkbxcznM+adKhwio8Cb5PML5E4= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780988560; c=relaxed/simple; bh=FPY0whv6ZC2hcAZf4snCCWJCDBfO4PdToIGv4gljfV0=; h=Message-ID:Date:Subject:To:CC:References:From:In-Reply-To: Content-Type:MIME-Version; b=H1N25E35dNTD+TtBh7YrYjB6mcfntqaeSjf/Dfbo6fhEw7xKhwPC5584hx5pYr5dUZoA4xsbKPPpT9dBw6lvUO2LxtZ726qxRnVwWB7FKUeJfYJHuLYZ4RM6uHxw+lavtwCoGmLOMGbhhlFNK6cTrb99Ga8lblpmEGcn+fW0Azo= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=K/nz7F+y; arc=fail smtp.client-ip=192.198.163.16 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="K/nz7F+y" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1780988559; x=1812524559; h=message-id:date:subject:to:cc:references:from: in-reply-to:content-transfer-encoding:mime-version; bh=FPY0whv6ZC2hcAZf4snCCWJCDBfO4PdToIGv4gljfV0=; b=K/nz7F+yy21Ul0YeSJfgdkmaJ+DdJll6ZLnDm/jKJk6H2NFdi5KdxDBK nWadKaGy2ERNdWX85x/wy5i705m4Ku69hFnlxUkTcSnLLBWJGADtrdN7Y BHVs79kF/5yM1g07bZRAxbJbuz6hs+nP8hvEE8gsvS+NqKxmLNcXhC0OY OIDhbSQGog2qLOZMUQZ5Qpr+8fJpPKQP2kQ7z936br123DDYpHR558CRM DQ4sJ0HsxH+0P2okN4m5Iolru4/8vU7iIsHFbo2ErPDXVoSkbLDkFKzkW n/pl1OQMPytJkDMQ+YLTdcK8g24tXDU8U4Ob618tRU4le4IKYdXYT2Q22 w==; X-CSE-ConnectionGUID: B4WDvlsbROaIurO8K/8W+Q== X-CSE-MsgGUID: FRr2md8STOOmgxU7HUUYGQ== X-IronPort-AV: E=McAfee;i="6800,10657,11811"; a="69274977" X-IronPort-AV: E=Sophos;i="6.24,195,1774335600"; d="scan'208";a="69274977" Received: from fmviesa007.fm.intel.com ([10.60.135.147]) by fmvoesa110.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Jun 2026 00:02:38 -0700 X-CSE-ConnectionGUID: eVrlsdTkTIqfg21V+FjhLw== X-CSE-MsgGUID: /Q11k4OSReSgO1lnimr28Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.24,195,1774335600"; d="scan'208";a="242836562" Received: from fmsmsx902.amr.corp.intel.com ([10.18.126.91]) by fmviesa007.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Jun 2026 00:02:38 -0700 Received: from FMSMSX901.amr.corp.intel.com (10.18.126.90) by fmsmsx902.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37; Tue, 9 Jun 2026 00:02:37 -0700 Received: from fmsedg901.ED.cps.intel.com (10.1.192.143) by FMSMSX901.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37 via Frontend Transport; Tue, 9 Jun 2026 00:02:37 -0700 Received: from DM5PR21CU001.outbound.protection.outlook.com (52.101.62.53) by edgegateway.intel.com (192.55.55.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37; Tue, 9 Jun 2026 00:02:36 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yZLFM6hAGBen8uptmQq6H3QMh7kIl1Fy3kl9lvigoU/XIiR5XRsCSf27xQj5GsJ8Ac0eBIos0Inmc663vO9W+/SYwqQlLl7l2HovXaPHpQbUJt9JSKByRhjoKUh3Cv1TIuZn7DC+yUZUl08pY/lAeJ+++/EKcMy7sudDAJGkKTUEZODlWFHusH5ysoOnKbdUW/B+QTdovAAfJgrAwqHuM9CgUDVZUoi4X8yJK196nTl4t/mClUpZTjw3CdQGS6WJkR8yyJvgBkWmieZXczX4CXk0ZDwp+llQH6qkmYuEfjt9vvSbLiZF/Sr/ugI7FjEijJG+pdIvswnOsmiob5jaLg== 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=pJs6h6XeqbgJO9S7w8XHXlKL9k33s8m58NOBChpBaSE=; b=wTtM0I1rs5UK4PzQgPBx5FZ0Cab0njr367TtqvTHxFgi0pKDqbTjRtQIlg3+ecomzJ1OQ+JEQcJqVYa3r061BG6xKN1W14O5wWyv4W72i1E/5ZKrT8lOPekQAdgFkkngTYc9gzgY3yNIt/RpmpvN3ZDOVezfdVEbMnhl2JCQVa+gVReR9QVZQbuToaJYhzaX6y5C57pTxaoR30UxwD6CNppOp71t2gRbpM6IZ/qVZIe5gHU/s9GgK9+48Kq5HU+jm2NsVlnFQWhvPy36Xctcwff9+KOIrqDXtJfqj7H3O09LIdJUYZX3Y9f66T2MXkAGyG8CxyK0IEPF0Ut21I/n7w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; Received: from IA1PR11MB7198.namprd11.prod.outlook.com (2603:10b6:208:419::15) by BL1PR11MB6051.namprd11.prod.outlook.com (2603:10b6:208:393::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.13; Tue, 9 Jun 2026 07:02:29 +0000 Received: from IA1PR11MB7198.namprd11.prod.outlook.com ([fe80::2c4e:e92a:4fa:a456]) by IA1PR11MB7198.namprd11.prod.outlook.com ([fe80::2c4e:e92a:4fa:a456%3]) with mapi id 15.21.0092.011; Tue, 9 Jun 2026 07:02:29 +0000 Message-ID: Date: Tue, 9 Jun 2026 10:02:25 +0300 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH V2 3/7] i3c: master: Prevent reuse of dynamic address on device add failure To: Frank Li CC: , , , References: <20260608075801.16111-1-adrian.hunter@intel.com> <20260608075801.16111-4-adrian.hunter@intel.com> Content-Language: en-US From: Adrian Hunter Organization: Intel Finland Oy, Registered Address: c/o Alberga Business Park, 6 krs, Bertel Jungin Aukio 5, 02600 Espoo, Business Identity Code: 0357606 - 4, Domiciled in Helsinki In-Reply-To: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-ClientProxiedBy: DUZPR01CA0316.eurprd01.prod.exchangelabs.com (2603:10a6:10:4ba::14) To IA1PR11MB7198.namprd11.prod.outlook.com (2603:10b6:208:419::15) 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: IA1PR11MB7198:EE_|BL1PR11MB6051:EE_ X-MS-Office365-Filtering-Correlation-Id: b111ea38-2edf-41c0-8e50-08dec5f511ec X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|4143699003|11063799006|56012099006|6133799003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: 9hp1IAjzCc6zXz3niu158/JoK7VlcuMotGqAhfzJVnB2nNOmbaoJSL0OUIRPf4ttkeJzC8SpqwNZYf9r5BeWN1qK9pF5YANVyEbwPGK5lBCMuC3BqLLoJ9VM9PlMZz6pVAtCQOOfO2qYejNUq2MzIXHO55rcLEPaUCyM0KrDrwL7DUJOwGyDj21KUXWhlu3vGnZBm0vlyjZ395S3IY653j919oDKNA9LgK30f+6nOSdiJxltX4sUaHu8IDaUrlgmid04ZUfOw1KGiNqAqier/lldqrFjvfGZAFEpKK9lCPOhjhptgADsBU4getEjHlTxTWx0HEE4WVYmy95ZU/Ew9rFHvbbU0XD+DONkjMHfVtglhEusbozj09c2kljrE74i3xCdE7Rarb4s6wK8YRzzcUD3wxoRo+ILk7kaYyKAgSzltE+plDGHF0MD+swEiMZ/vwn72B92qBMHrlr39VuUzG9uCPqcAnPgV1NfBGjTqq/baeXZPOeQbnkgeT2CD1+l+duiiyVmIuailA9HZnqqK2hml+rWybIkDQlnizK+pOaHhPdRD0blc37VWOhj8HizIdAcaKstmcKNlorjwYsiPoqr4DIW/Oz5Q/RJjZGjkrRjcgLeeiK25VdeQRAn5ELz5XvjggOLFuE+2z9AVTjfxOCW/zEO8HMfsSBcfh6Isko9HVzz/UVkVWq4MOfOue2K X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR11MB7198.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(4143699003)(11063799006)(56012099006)(6133799003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VXF1N2tSMU90Yk5aZkplZXZVQmRJYW52Y0l4YmdiRUoxK1BLR0FVSTZCYWN5?= =?utf-8?B?VEZjN3dqWjdQRDR1ZHErbEFpYm9KblRFOUNWU1QyRFVMbkJuRGZqRC9vSGxV?= =?utf-8?B?TUZmY0JQMFpKcWMwUDBPeDIzNVFyNGxuYkQraFQ5dy9Ya2o3UEMyeFV1azV5?= =?utf-8?B?Z2pMQTFiNVlIVDl0N1hHbUZHd2FMZHM0amhONy9VUHRKakFrVkNkVU5uY1FN?= =?utf-8?B?WGZEZVdjTWFzUyt4MXIzcFZ0M2tQR0Z4Z0VWUzRYNDk0RlExdlNlQWdFdFhr?= =?utf-8?B?SXE5RVdnKzQwei8zVGxjQjM4aTEySE5QQjdNNi9NWkVCVVJHT2R2MWtyQmxL?= =?utf-8?B?OTB3c0xIdXhqbW1xTDhBRGN3cVlVWDdTVlZxU0NGRkU4QmJML3R0WDlUVjZ3?= =?utf-8?B?cFhOdTFxMVpkRUpzd0Z0UzE0OVhhZGVjZG5MZ0ZrWmc2OS93REdJME9vM0Q4?= =?utf-8?B?dCtORzdSWlN3TEMxcHIyTFRCZHJJZWcwbG1OSCtObHVGV3hJbFBCWUxzQm1Z?= =?utf-8?B?a3Nhd2xCV2p2N3h4UlVwQlpYR05zRzNXZnhUTU0vUTBRMEJJL0xQN2hKcjl4?= =?utf-8?B?N0RpUGhtSTQ3bkFDOE11Qm9BYi9DSTZTd2Fna3pxK2JJTlVxOGpjY0V5QTNh?= =?utf-8?B?cDBHUzRoSzFGZXhzL053bENUSXAzcXBmbEFEd2tVcFdUU2Y5NVIzVUVuNlBr?= =?utf-8?B?ZUhnMVlUSmVQNHJWNXhEZ3E0TkVOWDU1TjVIaDUzQ1ZCMEhBL09PSTdMaktW?= =?utf-8?B?bFVqM0dMY3BPNHcxSGZOVEtVaExtQi9Tem0wOGJMR3NuWnNXSUw0bXhScTQ2?= =?utf-8?B?ckRoajFkTTRmMU11eTNqVTJzQmZyTlRUZFpubkc5T25sMEtvMHZWTklqTGlI?= =?utf-8?B?dnpaZzErNUFyTnpxNkZkNlRDUWlMUGpHaDhuTTEwTGkzOE42QzFrcUx0VTc0?= =?utf-8?B?QzNzMWxnL3BYTWhnaVpubW53bXlHS0V3K08wdTh2TnNXZUFjMEJPUmFYTCtl?= =?utf-8?B?YU5KeWlHV2J2YzRadXRZN3I2QkVWb0Z2ampPcHBKQ3FZVnJMeFlGQkREMm5k?= =?utf-8?B?L3ByYXcwV3dtVFBVdkhsMVp1YzZKYWJWYWFaYXBNVGowdzRMTFVqY0FsL3Rt?= =?utf-8?B?MFRhc04wcnhVNUpXaG01MmZTWDZUUXNCTTh0aU9SZHdyWHpYRkFhcDkyOTdQ?= =?utf-8?B?NGhuek51TUt5TzVpVkhRQWxCQ0daTHp1eEcyU3VMQlBOSjlaTTN0Qm9PbDdK?= =?utf-8?B?UlorMnY2UUNPMWcyeWplQnpFd1VjNmRnUHBRUHhVNFJuUzZBbE9wR09BRkw4?= =?utf-8?B?MjRFNURhOFZmWlFRR1hQdUJ3bEVobUVOeHNMaDJoYS9wN0t5aXB5MkpFeGdi?= =?utf-8?B?YTZldU9xdzZ0RFFaUHRmTVpLYUwxRWRVWjlXUUw1QzBrdzViNjB5b1BRbTJ4?= =?utf-8?B?L3JrWlNXQUtKdTVEMUd3dnpJa2hxZzlwS210UVluWERiOXJRTXZqTmQxaStB?= =?utf-8?B?RHZwTDdZWVVMM0ovSlhHVkdvbW9ZVXkrY3lVQWk0OGxrZmVsNWFiNXZVM2ZY?= =?utf-8?B?bDVVZG9tK1Y4WFVBT2xWNWNLbFFYRk5Sdm1lQURHVVJoVzlNTFZJOUt4cjdP?= =?utf-8?B?Y0U1ZnNib0duUytFcVZ1K0F0NXNibXJOdm1OQnRDTGFXUkdtTjMySS94dUpZ?= =?utf-8?B?RDE3TmduMFNlanUwYTlFZlEwVHZ5anJyNElhRTRKN2lzbUdydWJZU1lza0R3?= =?utf-8?B?Z0FlaTZZVmdOdnNrbzFLQ0JSUklUMWUrZ0RmSkh1S0VoWnUxb3Yxdi9PM2pk?= =?utf-8?B?dlZ6VXlvRlJoVU1CZW9GZGwxYitzZUphZ3ZvR3d3NE56T0o2a1YxdWhPWWpm?= =?utf-8?B?ckRqMi9GT1dRYUlCVS9MMWN6REpzL3hDOGdoQ3d5bmlDVWdYNWdxUUVIanpO?= =?utf-8?B?OGhjeTRnNE1kamk4YUl1NXgwLy91c2RDeUZHV0NjRmFZZXh5WjFDK2NqbXhJ?= =?utf-8?B?b0lZSi9jUWlRTXFoWjlUb1B3ZDV3aTRCTW5UZTFrTkowTC9TQlRPR043WWg4?= =?utf-8?B?RUtDYnJrMHo2bkFvRlNra0l4R2V3R0hvcWg1bmI4MHg3MDNyNS9DL0l0QUNt?= =?utf-8?B?ajhtWnZidlhiUFVTTmQzdmFiMjJPSytZenZDcy9iYWVBZ0s0WmVqTEZlUk9N?= =?utf-8?B?UWI5aXM0anQzSnE1MWF1dWhtTWIxM1dmWGpib1VZNllpaDdZdk5TdytHdmZu?= =?utf-8?B?SVBLK2RFcnV4MEVPWnNJVEEvWEhVdHNvaE1nNlB1UE5EbVlCa3RaWVJYWnJR?= =?utf-8?B?ZmkxdUg1QUFKcmR1TUxiZDQ3TldjTmJRK2VGTzRCMnB3NVAwck5CWnRZVVpR?= =?utf-8?Q?5j72LRUfCHF5bLL8=3D?= X-Exchange-RoutingPolicyChecked: aZINWZYyQW9bfTkUcw6D+v9oV78NGkregSuf6dHFMj+zGI6/0FjTimWbgN7mkZ9dF3+fyyR/NQWsXwPh9Sr1mCUlhRKt3BEqgQoR7jqGP2a30JYGt1zEBgLxF+9UFE9dFzwpJbSp4JHMcmRWAtAM0sm3LKJIHhO9jwzZiBPd2St5RrAZIEurBiKeCKZJYRFKly3vwI0DktlCOzxUt37QtgZ8fWd/2dZsNrRvvt1ncMehVZxiff8tQr+HLJsIEHdRNMFcoSDfO04ziKrMkK7HOUrce4RIQkcc9Zy2b/lJu7K+sI2qocygcz7qsAIHKXVDgdLYNryXmdKR0cBevPv97g== X-MS-Exchange-CrossTenant-Network-Message-Id: b111ea38-2edf-41c0-8e50-08dec5f511ec X-MS-Exchange-CrossTenant-AuthSource: IA1PR11MB7198.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jun 2026 07:02:29.3682 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: GegK2rTCx8wM58VdbQp/qY1kR7E45WwhrHolV2n6C3Mi/zGwbauwtAqPHsAgPKJgHGm7qffGtzjykvs79o3MLA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR11MB6051 X-OriginatorOrg: intel.com On 08/06/2026 20:45, Frank Li wrote: > On Mon, Jun 08, 2026 at 10:57:56AM +0300, Adrian Hunter wrote: >> i3c_master_add_i3c_dev_locked() is called after a device has already >> been assigned a dynamic address. If the function fails, the address >> remains marked as free and may be reallocated to another device, >> leading to address conflicts on the bus. > > There are other error patch, which also free dynamic address. And if add > dev failure, should it send CCC command to clean device dymatic address? Between bus init and bus cleanup, there is only i3c_master_add_i3c_dev_locked() as far as I can see. Also, Direct RSTDAA is deprecated starting v1.1 and v1.1+ target devices are meant to NACK it. So that is not an option going forward. > > Frank >> >> Ensure the address is not marked as free on failure, by updating the >> address slot state to prevent the address from being re-used. >> >> Emit an error message to inform of the failure. >> >> Opportunistically remove the !master check because it is impossible. >> >> Fixes: 3a379bbcea0af ("i3c: Add core I3C infrastructure") >> Signed-off-by: Adrian Hunter >> --- >> >> >> Changes in V2: >> >> Fix 'if (IS_ERR(newdev)' error path. >> Be defensive and do not change the addr_slot_status if it is not >> free, and update commit message accordingly. >> Amend commit message to note removal of unnecesary 'if (!master)' >> check. >> Add Fixes tag. >> >> >> drivers/i3c/master.c | 19 ++++++++++++++----- >> 1 file changed, 14 insertions(+), 5 deletions(-) >> >> diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c >> index f87bf0099d3c..7b60b0c7f646 100644 >> --- a/drivers/i3c/master.c >> +++ b/drivers/i3c/master.c >> @@ -2345,12 +2345,11 @@ int i3c_master_add_i3c_dev_locked(struct i3c_master_controller *master, >> bool enable_ibi = false; >> int ret; >> >> - if (!master) >> - return -EINVAL; >> - >> newdev = i3c_master_alloc_i3c_dev(master, &info); >> - if (IS_ERR(newdev)) >> - return PTR_ERR(newdev); >> + if (IS_ERR(newdev)) { >> + ret = PTR_ERR(newdev); >> + goto err_prevent_addr_reuse; >> + } >> >> ret = i3c_master_attach_i3c_dev(master, newdev); >> if (ret) >> @@ -2472,6 +2471,16 @@ int i3c_master_add_i3c_dev_locked(struct i3c_master_controller *master, >> err_free_dev: >> i3c_master_free_i3c_dev(newdev); >> >> +err_prevent_addr_reuse: >> + /* >> + * Although the device has not been added, the address has been >> + * assigned. Prevent the address from being used again. >> + */ >> + if (i3c_bus_get_addr_slot_status(&master->bus, addr) == I3C_ADDR_SLOT_FREE) >> + i3c_bus_set_addr_slot_status(&master->bus, addr, I3C_ADDR_SLOT_I3C_DEV); >> + >> + dev_err(&master->dev, "Failed to add I3C device at address %u, error %d\n", addr, ret); >> + >> return ret; >> } >> EXPORT_SYMBOL_GPL(i3c_master_add_i3c_dev_locked); >> -- >> 2.51.0 >>