From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from LO3P265CU004.outbound.protection.outlook.com (mail-uksouthazon11020128.outbound.protection.outlook.com [52.101.196.128]) (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 4B68A3EFD34; Wed, 6 May 2026 13:41:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.196.128 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778074877; cv=fail; b=fGCghRPSq+jQSEPbHAjFLW6qilgVeyoQFl0biC8OqSbS7QQnviOvP4vzKYdMa+nmbOUDt7Kcx/PHLEn7VQ72NCi25kHd+TDFI7yZ8gXk01uAF+8MZ06CEuTz1VPIgDigpW06hdSNkbETwEPZn+4PmIB5SMEYT123nd2oTWjyiiY= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778074877; c=relaxed/simple; bh=22g7Uo8ON2npHPf8o074VTdzvsAdhhfrFJY1g0wFH5M=; h=Content-Type:Date:Message-Id:Cc:Subject:From:To:References: In-Reply-To:MIME-Version; b=f+m17I+llQIIW1vfPl6wq6nw6v2y6PLEIL+GiAw1aMDSsUIQ1CQA77cADJZYqCx2ZeSR9PWR6OmT2eVZloW94++pcqSyUn3M4av95rXvkI3+4A8HVNocjiNX+/fB572r046i1Tdw7phXFJyTPTXwFYTOPtdzenTUTbHUIhGm8I8= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=garyguo.net; spf=pass smtp.mailfrom=garyguo.net; dkim=pass (1024-bit key) header.d=garyguo.net header.i=@garyguo.net header.b=0MSavuiL; arc=fail smtp.client-ip=52.101.196.128 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=garyguo.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=garyguo.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=garyguo.net header.i=@garyguo.net header.b="0MSavuiL" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=oBpjWdhmMdEmuWeiEi6Iz0eEppBntu56h6pVF/x9xTkd8A51ufPmK7f6Z1PNvyJmOD7tSXfC1meG0INdesbWmfxxk6arQP75IwuiJ4hrGkt4Ri8jsc+BkVUlrwZ5nSSR+7XIlSNNtnC+AgPYNsoHu4o98PbC3GCkGIFyodPlPd+lMZlivbrUlzGcxti37r/ykfx7AWO0lhgFSp5Dhy8QHOB9upC9fg4ltHhz8TYjqWcvYeWBMAglWGsR3b47o7C585PJ48zMuCziPyP91z1agkeVIvgVfZKYnv30mlD91dQpjRU1pdlBzrGYdta07f0DQt5vNJu8ZGovNGqY7l6zFg== 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=22g7Uo8ON2npHPf8o074VTdzvsAdhhfrFJY1g0wFH5M=; b=pAk2AZH8Zj1ySGrZv0lzD6kxXu+48EsezP7FS+lnWHAm6XuEA5hbkEoWD923aBIYO7sFAge57CFGXhtH0Yjv/Ko24+wH2KaTqoFo0KuRyTDzDXS/SiD6lQh1ZYPNUqI1ZhlYfHtLE2MKqE7d72+4WeIMcIhPFvpcbPiS8HBpiX5JEMgQ9GJPJ0Dz/mrZZzxZdAoegR++Zd5z9WTIap0P+cnj5sVjfd6piEjwympGSEhEuPCWwPtAPu/tJjEGJA9iYVSlkOnkOCSZMpAN/LqVOTbZLf2k7pbCneVNL9PctL5jbeVhIp18PkagLtXkeHnA+By2ZQFIjJI/yidE/hkMcA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=garyguo.net; dmarc=pass action=none header.from=garyguo.net; dkim=pass header.d=garyguo.net; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=garyguo.net; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=22g7Uo8ON2npHPf8o074VTdzvsAdhhfrFJY1g0wFH5M=; b=0MSavuiLJWhJ9R9Tvix11ck1oeJ0yzxRQfaQ/ZLrD6i7XWJfH2zwWJ6yn9ToKVUoGhMAZRXOFykEPgSsrqN8XHGsBU/3YVtz0WMLz8hSFJ9hatSq9Pj0m+fx+kNfYmpanuwmRWYB8f2OAng5a0IKTUUoQ9gwRwBI/7YdQZLuNRg= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=garyguo.net; Received: from LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:488::16) by LO0P265MB6664.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:30d::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Wed, 6 May 2026 13:41:08 +0000 Received: from LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986]) by LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM ([fe80::1c3:ceba:21b4:9986%4]) with mapi id 15.20.9891.015; Wed, 6 May 2026 13:41:08 +0000 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 Date: Wed, 06 May 2026 14:41:06 +0100 Message-Id: Cc: , , , , , , , , , , , , , , , , , Subject: Re: [PATCH v2 2/3] rust: auxiliary: add registration data to auxiliary devices From: "Gary Guo" To: "Alice Ryhl" , "Danilo Krummrich" X-Mailer: aerc 0.21.0 References: <20260505152400.3905096-1-dakr@kernel.org> <20260505152400.3905096-3-dakr@kernel.org> In-Reply-To: X-ClientProxiedBy: FR3P281CA0109.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a3::9) To LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:488::16) 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: LOVP265MB8871:EE_|LO0P265MB6664:EE_ X-MS-Office365-Filtering-Correlation-Id: bdaf4c84-d4f2-44dd-46b1-08deab7520f4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014|56012099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: EJ2PHG0fVH04zWaC9bNfFRji/lugc8gpAN1oyJbnpBRor6iCH/jP8ZMBIVORnuC7asseNo6cX+Thtt3v65Ews5ZwywqmfilzLv5Qz2na2x1Ly7Y+X0ZPvgq1bNZKmuLOFgu9glHH+PcrcubUN9dRYugwXUeZ9xbAi6ZJH6VHZYn9mazPNSm8/wsyB9hAElSqb1o38/bfFiwnkj8xJF3mcMMyq/FYr5kyJjbG3FyAlGfc5mw8oOdN0hOnty20wzX3e1yrkQ65IFSOYquzs3gVYbqHVEKMvLwWzuiJtH2aT3a0MeiRY2MGEyRalWfh6tdSooi8X9WVxyBrauZmk66yIMkOKcmz9jeO9gpyjLpX+QM3q9yPJr2qKYIouFu0GZlrDSfXQnDwNmekd2ybxP+f5TeSCdc6zO8ORZLWcMPpyuN0FBvUaB313R6u0DIy1niCFrrrdWxGKEOVc3q+KAAm4sSjueB1EXtoK42ic3OuQaKd3ANIi8lqAnjt1UrXaTrU+ZMaTVM5NFtSTsxpdiKz6zbpP/sxeQjIeKfAtZLfzNgQcJWXNGThPETiZwdVFz69TwfawvV9XN5ssidtdVM1lna7yUzioK/RCxLCKO7Dr/E/c6MxFH2fPNyY2GWlWZ2G+g5VMoMSVxQ9HnqwfeoDPI3l7aRAxREDClpOVruW1X50J5eymc5k8cb7pf+jx2f5 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Z0FFM3RydU92OTFIZUZ1anJOYitvVDZlY1lJdXVYNzdHbHVDQ3ZrcGdieDZL?= =?utf-8?B?VnR1SHdNcnlBb1VmbFF5cVZ2ek05d1gybUI5c01iMUhKaFg1eHNpcXhFbEpu?= =?utf-8?B?d3NMOFdwa2hoa0psaURnTUxBTGZDUzBSR0JwSWl3Umw1cVd3bmlxU3VRYlBy?= =?utf-8?B?TzNBbmM3SmVnVXdBVUVrOGcvNTB2a1R6VXpzY3JYZ09EejFmMXI1bVdGc3p5?= =?utf-8?B?VW1WNEhUc0tDQncrNTNrUWZpRk8rVFp3NGtCeHhnc2RMMTRBeE5aQ3RSWHUv?= =?utf-8?B?eDY3Y2g5WGFFRnVUQVRFRFpEeFNsVDR0Q1FuRGYzbjhlSStYNHowbTlPNjhl?= =?utf-8?B?ZEovNzdIYXpxTytjS1MyY2l2bk1CNEhyT0VCN2xqNk9WTE1PN2hvbS8yOFRB?= =?utf-8?B?MkI4OGFiRGd1Ky9zRWp3bVNSQ1VkRVc5N0ljWXppbDVlWUpjNUVMWWdSdENw?= =?utf-8?B?ck8xdTROU2hUbi9lSHZlay9EbmwwZVp1anBlNE90QSs3SmJ0NGhTREJKZDhS?= =?utf-8?B?NzZKY3lsOC9QMVlBYVRCVXRSZmJibEpVNEJwelAreDhTRitrVGluYUFyNDcx?= =?utf-8?B?dERpeENQdFRiVHFQMzA1K0dxN005ZG5iTFRQSWdMNTlnRzB2Y2RiWHAxb3lx?= =?utf-8?B?d2RkT3d4NVdKdmZEY0twcGV3eXI3aDV2TjBvejQ2dlV3bC9KczFDODdra3Q1?= =?utf-8?B?MjZxMHQrand3VFNkR1U0ZFdPWWNZVjJtOHFIWWlKV1FTMmtMbU9ZVlhMNmhN?= =?utf-8?B?aTQyMWFOZ2orUXR0UnFLTGxva0w4ak1USzQzZ0U3ejAyVHREajdJVktiUk44?= =?utf-8?B?bG5oRjZibHBqNTI2a0hUZUtiSENXWFlNM3RTNjlnZ00vZUdDZXBDVHVrWTlJ?= =?utf-8?B?OTdsQ0syNjFOenRWYXQvaFVUL1ltR3QzWStoeTlQaGU0ckU0OUYycjNDZTcv?= =?utf-8?B?Tno0VWRYK1RVTW5PUHo2d1dKdHVMTGYxNkVNc2hnQUVHbWVLOE9QeG1yTy9P?= =?utf-8?B?SEFpNGxrNzB6L25OVzU5Vk1KK1krK0oyVHdCOGMxd2dLNUlDQldRakJEdm9i?= =?utf-8?B?YmhZYUI1YkJ3Q2JKbWNPY1JQZ2tmTlJqMFpZdTRXMWg1ZXY0R3JYd1VRNHU2?= =?utf-8?B?Y2ZHMEtvTGNXQUF6NzZ2WVRGR1pRaFYwQS9HSHBObVpkSGpnU0JGd3dvNTBu?= =?utf-8?B?RjZMaDBkTWw5aHpFZjBDdlNVbVc0TUpNMm96UzRNU0pPcml5RWxMdlVCbXh2?= =?utf-8?B?em1jZnRabmk2aWRFSkErM2JYRlZabk5WVVV1SFc3RnMrV2FqQUZFcUpWWGtw?= =?utf-8?B?N0xEYmhkc2NSc0U4eExwc2JsZlpiMU9DTW96QlFVYkRBQWJaYmJhL1BTTzVQ?= =?utf-8?B?N1hQNzREcUlBQXNJUkY4aHNEVlNZZmd4MnBwWGQ3cWdEVndPQUxyNFlyb2cv?= =?utf-8?B?TlRqZ2d4RHhucGM2OFE4aU0wK3FENHg0Q2ZuOGRyaGt3NWpXYkNqbGlDTHd6?= =?utf-8?B?a1A4TTdod2RzcWpYNndzUzFwYXlIZkl0UVVIL0FmcG9vSTZEMXl2QnQrNE14?= =?utf-8?B?NVNqL3ZWQlZ0ZDJoQTE2ZVNLM3NVaTgwNUV4Yysvb2YrZnNheUlIL1FWZGFa?= =?utf-8?B?SEMxYVZCNTdXWlVzUkw5cUZXd1ZFbWk5bVdJQnZJMlBVUXJENGhqWHFqOTg3?= =?utf-8?B?UGtaUEs3UHNPSVVzUGl4dEhZN2VkUW9vQmtqZnpPcTg2azEyQ2E0NUlVam1L?= =?utf-8?B?azQySm9oeEZtRWNkSTNvMjJNVHliL3NaREtoYUIvT0M3SFBUSmI5WlhJaWwz?= =?utf-8?B?TjlRNStNb2hWcmc3dG5aTnhqTkpLU3kvV3lWdHk0UkNOYnRwWGJVMno4b2hi?= =?utf-8?B?WjBaVm83VThYYkdxUUltalNnK3hxQVpVMVpmdGR4NFYxNXd3dXVGWGp6NUd2?= =?utf-8?B?OFhnTDRGTCtGZm9WWlFmV2krd0hTQzdoeVNTY3M5NUVBRFlOUG5BZUppRlUx?= =?utf-8?B?T0NLNS9pWEhMUEljVEpTWWhsNHI0ekJsVlBlbjBNL1ZZbDhiYkRhZEpqb3la?= =?utf-8?B?MTdOQjVKcjdhTVdybmFsMERWeUVWRk9hSGRVOGVBRC9tTWQwYTE1TGltWnFa?= =?utf-8?B?NzRlcnc4K3QvRXZPdHRXa3JNeEZlcGhiV2F6WTIzZTdnQU9XNFFLbjY4cFdJ?= =?utf-8?B?RndVdVhXaFlXYlJZVnVBNjY2eHNieVVZY1JDSnU4a0dCcWoyR3M5aHlDUmpD?= =?utf-8?B?YVFpMzVqTVpXUEZWNnArVmZBemRLcU5kS1pXUEZzRVJxT3BobW1LYjY3MHJZ?= =?utf-8?Q?noRtZjCYb4e76pCNZW?= X-OriginatorOrg: garyguo.net X-MS-Exchange-CrossTenant-Network-Message-Id: bdaf4c84-d4f2-44dd-46b1-08deab7520f4 X-MS-Exchange-CrossTenant-AuthSource: LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2026 13:41:08.6918 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bbc898ad-b10f-4e10-8552-d9377b823d45 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: duh8pDDcrfw1fSo557HVWVRr9J5nnu/4Y6KsLJtdPmi/rI/NDsiUDk5q/TEaDBhBUHUVWylsHr5C+acDUAUKqg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO0P265MB6664 On Wed May 6, 2026 at 1:42 PM BST, Alice Ryhl wrote: > On Tue, May 05, 2026 at 05:23:08PM +0200, Danilo Krummrich wrote: >> Add a registration_data pointer to struct auxiliary_device, allowing the >> registering (parent) driver to attach private data to the device at >> registration time and retrieve it later when called back by the >> auxiliary (child) driver. >>=20 >> By tying the data to the device's registration, Rust drivers can bind >> the lifetime of device resources to it, since the auxiliary bus >> guarantees that the parent driver remains bound while the auxiliary >> device is bound. >>=20 >> On the Rust side, Registration takes ownership of the data via >> ForeignOwnable. A TypeId is stored alongside the data for runtime type >> checking, making Device::registration_data() a safe method. >>=20 >> Signed-off-by: Danilo Krummrich > > The change itself LGTM. > > Reviewed-by: Alice Ryhl > > But I'm not entirely convinced that this is the most convenient > user-interface. I'm wondering if the auxiliary driver trait could > specify which type the parent driver data is using in an associated > type, and whether you could eliminate the check and error path that way. > But then again, AuxiliaryDriver does not appear as a generic parameter > in auxiliary::Driver, so it might not work. I think that's similar to what I'm suggesting in https://lore.kernel.org/rust-for-linux/DI6L13A5LMOW.DU7ZTHXZYB0K@garyguo.ne= t/. This does still require the type ID to exist and that probe of auxiliary dr= ivers need to fail if type ID mismatches during probing. Best, Gary