From nobody Mon Jun 8 17:38:45 2026 Received: from CWXP265CU008.outbound.protection.outlook.com (mail-ukwestazon11020125.outbound.protection.outlook.com [52.101.195.125]) (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 8A36C44DB7B; Wed, 27 May 2026 17:20:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.195.125 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779902415; cv=fail; b=mOw1eOgGWhkuyZ3fKRc6vWNS/2eezCSdgey49VCHaEZFlx/vtEULwp2QsM756xG9PCrO9p73zdkF+++FzwhWei39zU1G4qcGYZfm0d1uk+I4X8kBbIA8vVoMJtH+pZaRZ3EQKh3ZFCwVoAgUCSAcZXHMNL8SK4uiE/JylWCeBS0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779902415; c=relaxed/simple; bh=h9r32tfaI6E0LU+Ga+wapGjMq6WLlxN85RtjLvkFCww=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=Hnl7KJ4JnDYKKhG7KSkfugnGwA9YND+ofwhqMkeMBYtSWrdF7GltV4HP/oH9qOXpuc5VHa4sToCMog5voycVhpKV/vZfxTYuHAhfFjf4vbxUoVYmM0A9bKEzATFBW6icZwnOoITZXTUOc6Dx4uC2pJsWPb42ss2jNq5EsIHlWGQ= 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=gRmbm+Ah; arc=fail smtp.client-ip=52.101.195.125 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="gRmbm+Ah" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rtTToMhIwWlbolQhKuXGSX6pJf2W+WV/4/HxsKJGxldLBP8LPjyKji1KvpdA93sqPwsfYrJ/BJILfuNnfIo9cXDMfRk7T8xiPu+EBnsi7SnWUK36nrRWhHePLq/aYo7aQlghwYcrR1shJdnOSlitvN8MpL0IV8i6aiFE9h0wGmEfYn0Iq7lO461Kf4nKgA35sORiwiISnyxRobXtulZj08j2HAgb8PpVSSV17TbSnmw/6kGsNoZDhQmPMmS0QvvhMtIz74IMfZXnHDSV4bYcFhzDAJ4+aRM8mZkX6oO/g3LLb4gADFW760s9azEk4hUHkBR78PZfqL+kPKkFRKU7Ow== 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=cNG111uz6LowYpDFiZKoIX68oc2jtWnlWwoT0GArU0Y=; b=Bl16NJ9J89BAjSQwrszdUDUkLzXKbq56F2P9MKWIUIpmKJeVhqrVoH6MDIq1LWd5NBsJ84bm1iZhebGyslS0Wug9fQ+DCcG0zrbtTN9QbG7p9H61uXv49/u0/IDKvMnFCU8roTTlf8HRg1PSGCsw4g6g4/h7ofvlkTTeGDHbGwY4PECAhpnJ9nd0jqDYGLp6FFcJvcEpBoyyxpZwptfjhvu4CIb0f26aFbeDodJCS9zNYpVIJxd2Itr57vNvF65TkrX4EW4P/fLocVJonoEMc+FSqQnD0bCw6fJI2bF4sIZvTYNk9h3jYRPfHMzTWb/X0nfhh332eH7a8wnCBpa+Vw== 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=cNG111uz6LowYpDFiZKoIX68oc2jtWnlWwoT0GArU0Y=; b=gRmbm+Ah3kZP79DwahHl9vulgk3/NbgEZvDkN6iogEJVxEEX+Es7SyxMJ7Op2H8SI2PZlKluSe6fiRh75rCWaH3oL2duFEmAkqI2z39GEmwuNseI63IrXLp9sm40ZxFl/gNvje/ErEH6bBzc2EHnD7cYLEWYnwAsTBoMA2/zKnM= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=garyguo.net; Received: from CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:27c::13) by LO8P265MB7781.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:3ad::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.12; Wed, 27 May 2026 17:20:06 +0000 Received: from CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM ([fe80::6c9e:93c8:10db:e995]) by CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM ([fe80::6c9e:93c8:10db:e995%6]) with mapi id 15.21.0071.011; Wed, 27 May 2026 17:20:06 +0000 From: Gary Guo Date: Wed, 27 May 2026 18:19:52 +0100 Subject: [PATCH 1/8] rust: pin-init: internal: pin_data: filter non-`#[cfg]` attr in generated code Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260527-pin-init-sync-v1-1-e20335ed2501@garyguo.net> References: <20260527-pin-init-sync-v1-0-e20335ed2501@garyguo.net> In-Reply-To: <20260527-pin-init-sync-v1-0-e20335ed2501@garyguo.net> To: Benno Lossin , Miguel Ojeda , Boqun Feng , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Gary Guo , Martin Kletzander X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1779902405; l=5286; i=gary@garyguo.net; s=20221204; h=from:subject:message-id; bh=7VF0qmHqQNL3C8uBJDTmK/5pfP+4bGzm+i+S98pq+/c=; b=5YoraleFjobXvo39HW/R3VzTardy1EM8JE3Q1et50Si6Es/WM+0lR9hxAKgnUd7egxlZpCfhv S+YEHErH6l3DACxTEdjX5eF9ARkY+mruNc8Osvi0ZHNOjk4NDdNZmS3 X-Developer-Key: i=gary@garyguo.net; a=ed25519; pk=vB3uIX95SM4eVrIqo1DWNWKDKD2xzB+yLLLr0yOPYMo= X-ClientProxiedBy: LO4P123CA0524.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:2c5::9) To CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:27c::13) 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: CW1P265MB8877:EE_|LO8P265MB7781:EE_ X-MS-Office365-Filtering-Correlation-Id: be63550a-aeb8-4fff-5e36-08debc1431ff X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|10070799003|7416014|376014|18002099003|22082099003|6133799003|5023799004|56012099006; X-Microsoft-Antispam-Message-Info: Z18YU+Buv9KPNx0GutcpIfd9RnNZ3QzFEkzns3spa447x3pBjEGYpjFzQkrslcx+zu59UYPW5rrHDlQWaN2NSWVEa0Pj2ooMtsMOUsH69RiMX81aJEWD0e5WV4WlBOWwumijXXkdAaKUuESQGxhoKqxXe2WHQp0k2HdugB9tQnrM8I0vX0GAU45cxaqBi5yAMZQVN88JQW/VSwbTlWT20ZUuSklUZBimhwA3rJqqdqpnAr8gSFSg6JFomA0Lnx7Bi7TEcbUv7qZQk2eDWyzhH5BgJ+P3l0TtgY60d6Ovj0ussuHcCz4qcU5NF/CzKgyODGQrVkd2STYjE3XIFy5IuPELRmcA7bIQ+zQLu9MPOAtqj/HzTOYsczinh9QUfdwrJKRmkOwYudVEIJTDU/pJAUyoRKovBQW/JQSWraN+9tTrh72sJ1lZkBYl22/i5Tkdy94zszXFofSJDkkuUR/0pYbg0nE2nt0i0S5aIIZHkC1oh5tIdGKhtOlIw8d+yOq5pFfzZDFwVvXMWlteTTwuDcWMTkzmrsnU4kpAKY8gILAjB8w7QzyYPJcLSsQk94gzdnQdYFo4D+zfvMhOLWr6wVT+99BxtEPM2RkfJciHFSbSFNcgY+h0usWKLes4nLImaiCKPnPAt154GKT6riP4BXaJzKmNIHY1mMJNhXUaQhss+0+xr3nz4J4cvOBd3oY2 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(10070799003)(7416014)(376014)(18002099003)(22082099003)(6133799003)(5023799004)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dkt1bHl4WjBFdmJwTkp6TU1LcGd4WWZCM1dFZXhmOTlZRXExQnI3K1poWkV6?= =?utf-8?B?bVgxSG5sc3U3czF3YUZnQ3lYK3FCajRDdWJhSld5NVk3eWxqRlcwalVnWjJ1?= =?utf-8?B?VDhwTWhmMkd4N0NCOEt0bStBMkMrYkc0YndURStpclRRSnNUbXdDUm95WUo5?= =?utf-8?B?UnJoL1BLeUFIYkp3Smp5Z1VicXhPZVc5bklFdHd5NmtleU0yUjJZdVNEZnJw?= =?utf-8?B?T2x1VzBqK3BWVFlXQ2k3UXBtVG9KcFRWZmZiYndEYlEybHB5emZGbExITE9N?= =?utf-8?B?bEdqQm45RUpiRWRFbnpjdXFtZWJNbXJoSnYrWWVmOFpBTWlHc1RsMTJNeHJY?= =?utf-8?B?VFkzZ2pLVDh6WERyWlBka05nTkhtSFQxMEcyd0dGb2pEMFVWUGExV0xtUkV5?= =?utf-8?B?eDROTVVybElnTk84VXUzU3BOZHdtS1JrOGVsY3JpR01KMGdOQTA2MkFkUUg5?= =?utf-8?B?MnNsTXFrcjllUVVrVFJicDcrNjRVRTZubXRLVXRGWWFZcnY1WnlhZGF0N2s3?= =?utf-8?B?QTdXa2REKzJpQzk2RXNBTWxnc1ZxNmdHOG5DUjFZb3Z5c2RrRVRaNnZDUnBQ?= =?utf-8?B?VGZPRitnYWJiMGZ3UkVCL21vQnZTa2lEclJUaXVQUmNHeEVMZlpFL2drdVMw?= =?utf-8?B?MzJtOWQzVGNIa3dyZmM0Yzd1SGovaXhaNnF5L1FJVDIyZUw3OS9vd0ZwUkI0?= =?utf-8?B?cmpKb2I0ZmxjYXhxVlUxeVZkZmlrMmpMaEdIbVhwcnVUeHpaQUJRdUJhZWkv?= =?utf-8?B?YXFQNHlRbXJSWVV2RGdwUlBFajRvZ3JVWTFDRHlmekRXUHc0dGFOd1VZWHRM?= =?utf-8?B?MGdTd1ByYTdKWk02RVhyNldJdFloWHhRNkwva1pZNDJsaFZNQ1pHMmJpeVd5?= =?utf-8?B?NkYyM2V3SitQM0FERzgxVzd4ZEE5V0g0NEwyaEFZVlpaVUsvSzFSMHVHRXhL?= =?utf-8?B?MWJ4eGk0cHllM0c4bkdHZlJrRWRGaTVxbUtLR1krc3hyUlQ0SWdnVmtkMkJv?= =?utf-8?B?dmYrZUx6Rk5pQVI0b0c5TFVxK3BzSFErN2RDY09OTk9aVSsyWTVMR2hTQjJZ?= =?utf-8?B?NVVIc2xGcm1rcWF4K1Eva2ozclVaSjNiWDg2QWV2SUpPZWdsejRxb1BxQktC?= =?utf-8?B?enNwWmNVb0FDeUZTbDZWdTNjWnlZSGJLZ09PTFpxNmdIWStSM2hFcXNXWXFS?= =?utf-8?B?RllnR0ErZTAxZ2d6YXpDUS9vZWdIUXdQSkQ4d1lWK2JjSEErYmN3cGVHT0RJ?= =?utf-8?B?SEprZFloeUJIMlZBOW5jb2pBb0xvMmErbEZHQit6MFBQeEtkNmtRVEtXeG9k?= =?utf-8?B?SW8xa3VWMkNRNlNHRUlETmpCNFIvbmtzRUZ6QnZKdjU4a3I2Ty9NNUkyYU4r?= =?utf-8?B?eVlST1p4YTQzZjBaejM3S2ZQWklKbWxBNFl0bVNyTDUzVGF1ZGlRUUxjd2Ev?= =?utf-8?B?SmFCcFR6SDg4ZzNCQUVXR25nc2h2V1I2SGFnaG9ZMGh2eHcxc3NrZ1RYVzlR?= =?utf-8?B?UGtlNS9tdFI3elNSVExBaDhRRWNiTlVTcXJTTlZKRkdNSXRCemh5VmtoS1Uz?= =?utf-8?B?ZDNOV3dSMHBEQis2dW44Z2I1YU92QWNxbmswMG45UUd5dGVCVjlWeGRhNzlZ?= =?utf-8?B?cnpFYjFlR3Rzcm1ha0Y1U0FaSXJFVUJVbTRja0NlTjlNTTJBdWs2bXRxNEFW?= =?utf-8?B?cXppUVdqUXcvd0JucnNBcnN0ZjFlb0xrYTVZY1VqREYwZVdFSGd1OWc0bzRD?= =?utf-8?B?L3lZZS95K1RTQi9WSTFPc1ZIZm9jc01laGVUblIwNERuRmZGUjNFWG96eXFk?= =?utf-8?B?QWhlSnlsYjFIenpneWw5c201VDNyR094N1MyYVVBNXlFbGxQaWNzeWRRcGlJ?= =?utf-8?B?WXRERVJCblEwNjltaDJDenY3VlBpcENUV1Z2WXpsbkFaNSs4WW56dmVNU1p0?= =?utf-8?B?VGRWOG80S3R4RXFSWEJUQlZESm9KLzJsR284UG5oYXNnZXhBQWRRK0FYWjRx?= =?utf-8?B?cTI1Q1Z1NVRMZ2x5Smg3YnNWd1JMQTl4SVhJWUp4MWtpMmdRMFBHM2VwdW9V?= =?utf-8?B?YTQ1ano3RGdwcW9IQlE4K3ZpcDV3WWZQTnYvOXZwWWFGVHZXT0N1ZGhKVEx4?= =?utf-8?B?U09WOTM4cVFJRUUzb0J5VUpHTjJBNjMwcmVtVHk0S002dnJsRGZ6WTQ0Mjdq?= =?utf-8?B?dGNUUDg2TXliWE5OTDBrczBmZkNZTGRpdnMzS1dDR0diaWN3Ni9wMG1ZOXBY?= =?utf-8?B?ZnBtYk1oaFBrNXFYcFJkRTRNdzNPcnVPU2haMmJMMEJaNC9tcm1jU09URTRM?= =?utf-8?B?MFM2VTFCUGhUOGMzNFMyMVNaNndTMVRDZHBJUjV1eHpJMWE2bjJrdz09?= X-OriginatorOrg: garyguo.net X-MS-Exchange-CrossTenant-Network-Message-Id: be63550a-aeb8-4fff-5e36-08debc1431ff X-MS-Exchange-CrossTenant-AuthSource: CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 May 2026 17:20:05.8340 (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: KONcgbreTqkihiOshUDex+yOyY7x8JABiFVG9ZM4a5Owa4SNOSmIK521OmgW1eL+HmwF6DxM1vDmEGCgepnhEQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO8P265MB7781 From: Martin Kletzander When using a macro with custom attributes in a `#[pin_data]` struct it can mess up the generated code. The generated code needs nothing more than the `#[cfg]` attribute, thus strip away all other attributes. Signed-off-by: Martin Kletzander [ Rebased and updated to only include `#[cfg]` instead of both `#[cfg]` and `#[doc]`; doc is not needed for the generated hidden items. - Gary ] Co-developed-by: Gary Guo Signed-off-by: Gary Guo --- rust/pin-init/internal/src/pin_data.rs | 52 ++++++++++++++++++------------= ---- 1 file changed, 28 insertions(+), 24 deletions(-) diff --git a/rust/pin-init/internal/src/pin_data.rs b/rust/pin-init/interna= l/src/pin_data.rs index 2284256a6220..9ca8235ed3d6 100644 --- a/rust/pin-init/internal/src/pin_data.rs +++ b/rust/pin-init/internal/src/pin_data.rs @@ -7,7 +7,7 @@ parse_quote, parse_quote_spanned, spanned::Spanned, visit_mut::VisitMut, - Field, Generics, Ident, Item, PathSegment, Type, TypePath, Visibility,= WhereClause, + Attribute, Field, Generics, Ident, Item, PathSegment, Type, TypePath, = Visibility, WhereClause, }; =20 use crate::diagnostics::{DiagCtxt, ErrorGuaranteed}; @@ -38,6 +38,7 @@ fn parse(input: syn::parse::ParseStream<'_>) -> syn::Resu= lt { struct FieldInfo<'a> { field: &'a Field, pinned: bool, + cfg_attrs: Vec<&'a Attribute>, } =20 pub(crate) fn pin_data( @@ -86,9 +87,16 @@ pub(crate) fn pin_data( field.attrs.retain(|a| !a.path().is_ident("pin")); let pinned =3D len !=3D field.attrs.len(); =20 + let cfg_attrs =3D field + .attrs + .iter() + .filter(|a| a.path().is_ident("cfg")) + .collect(); + FieldInfo { field: &*field, pinned, + cfg_attrs, } }) .collect(); @@ -171,7 +179,15 @@ fn generate_unpin_impl( else { unreachable!() }; - let pinned_fields =3D fields.iter().filter(|f| f.pinned).map(|f| f.fie= ld); + let pinned_fields =3D fields.iter().filter(|f| f.pinned).map(|f| { + let ident =3D f.field.ident.as_ref().unwrap(); + let ty =3D &f.field.ty; + let cfg_attrs =3D &f.cfg_attrs; + quote!( + #(#cfg_attrs)* + #ident: #ty + ) + }); quote! { // This struct will be used for the unpin analysis. It is needed, = because only structurally // pinned fields are relevant whether the struct should implement = `Unpin`. @@ -259,27 +275,20 @@ fn generate_projections( let (fields_decl, fields_proj): (Vec<_>, Vec<_>) =3D fields .iter() .map(|field| { - let Field { - vis, - ident, - ty, - attrs, - .. - } =3D &field.field; - - let mut no_doc_attrs =3D attrs.clone(); - no_doc_attrs.retain(|a| !a.path().is_ident("doc")); + let Field { vis, ident, ty, .. } =3D &field.field; + let cfg_attrs =3D &field.cfg_attrs; + let ident =3D ident .as_ref() .expect("only structs with named fields are supported"); if field.pinned { ( quote!( - #(#attrs)* + #(#cfg_attrs)* #vis #ident: ::core::pin::Pin<&'__pin mut #ty>, ), quote!( - #(#no_doc_attrs)* + #(#cfg_attrs)* // SAFETY: this field is structurally pinned. #ident: unsafe { ::core::pin::Pin::new_unchecked(&= mut #this.#ident) }, ), @@ -287,11 +296,11 @@ fn generate_projections( } else { ( quote!( - #(#attrs)* + #(#cfg_attrs)* #vis #ident: &'__pin mut #ty, ), quote!( - #(#no_doc_attrs)* + #(#cfg_attrs)* #ident: &mut #this.#ident, ), ) @@ -358,13 +367,8 @@ fn generate_the_pin_data( let field_accessors =3D fields .iter() .map(|f| { - let Field { - vis, - ident, - ty, - attrs, - .. - } =3D f.field; + let Field { vis, ident, ty, .. } =3D f.field; + let cfg_attrs =3D &f.cfg_attrs; =20 let field_name =3D ident .as_ref() @@ -381,7 +385,7 @@ fn generate_the_pin_data( /// - `(*slot).#field_name` is properly aligned. /// - `(*slot).#field_name` points to uninitialized and ex= clusively accessed /// memory. - #(#attrs)* + #(#cfg_attrs)* #[inline(always)] #vis unsafe fn #field_name( self, --=20 2.54.0 From nobody Mon Jun 8 17:38:45 2026 Received: from LO0P265CU003.outbound.protection.outlook.com (mail-uksouthazon11022088.outbound.protection.outlook.com [52.101.96.88]) (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 482A844B692; Wed, 27 May 2026 17:20:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.96.88 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779902413; cv=fail; b=jKZfVp8OTCnKb99l2X1W3o+FY8DFboeCyK3OwiDRPuqppC/nfEiBC2NBrH5ZMeLTnpUfPdsSJUKL9grABeadX73XKAxeWuA3DcGvaRekKur3JEy7z1qQg33qSSxw3livavzvH41U+xX6gobqA6OcnxBwiVR68rtku6VGiZtyr30= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779902413; c=relaxed/simple; bh=kTRw4j5OKC1N/59Vd32M5cpT17i2r052Kw8SPQGT6sc=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=rlO7naIcKvYGGc3ymfUwZPrQetw7FOMlM9WS6iuvOCIbZPVFsQ4+aWBHBY8yqJDl8YOsRO/ORWup+gfyxmQVkJebLWh7lZ3rr54KWA8wKj/sW3scgzTJ3oggZTAu/HGf8YJYrcIpaq7mSOOFIwQrVXOQ3VFtfHlN9gQW2Ppv214= 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=OnGtnOf3; arc=fail smtp.client-ip=52.101.96.88 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="OnGtnOf3" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=YXk/M/dJaNwyAtj58Wve53gB88EmDpLITgkZzoB2Dn+hq36KgWlPjHPSUD7c1FSxcwC1qd5oNDefhO94h8NcozGuFta7qLW6cOhPnYCvI5N+0xWqf5L7+tuYMetyG+1scaq/jHu6/7XN8k+iQ/A13+p8H85xAc18Tmt1lGL7UFiKVqsSC7QcXydd8/r58ad9cxDJdc8vSV+7unHl4XUpL1fDdeOFrp+GPsNsLZZEgObKnh5FqsM4W1fmInmnDhc4EtgCL9NHltRrjaCjIlAMdvD1qRGpX6Z9APmZZCDurrJjD+56vmNKVDOzRjGux1nHHDQrLzD+Oe9JDyb5Ed90QQ== 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=w2trc4Jy/Zu1rsgI67ZRc/hxhYw5SdHWk0n0Nollr3c=; b=u54sn3jUxw5xmHvBRyg5L+WY8YfMhdTeSuc5EfA2LM17lf/cl81xqgdAKVAFRfHyIeHFxyzawxPLzimA0POTc3K17x9tuKmqyRLfxgC1n+GfAA69BPJ0fo8zfL+xfWWo9+JgTYbAoh+FT098zfH3eip82FmGOd4+j1I6R7Ye6bgQXJgGstZSy6C52oLRpvDYzmIfPOgrTCd1tVoCvknXz+7a81Ify7e98H8WFoJ2Po0ijRHXEVBjBwBWExRFt4Gs+/d/BjuRJCkLP6M1Gwdk3sYgAqvKYdH5o3g652jTBGZZMA8oqWdFv8AqtOwG4yYyaQbRHeMLznvgyTSi+t9DiA== 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=w2trc4Jy/Zu1rsgI67ZRc/hxhYw5SdHWk0n0Nollr3c=; b=OnGtnOf3RhxVVYE+EJWOJFK1dx/b9xoBEPKJgTuNBp4vbfVNDFhPn45OD8Hc1a3jO6CMoih9On0zbIEAd99XR9AhnhgJiul4kH7ReiSCTPqdW1Y617yGDjP/oZj+L6giC0Z9H8phSpDAhZqqVB1RQvytZVfHSa5qXKpyQQjEGa0= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=garyguo.net; Received: from CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:27c::13) by LO8P265MB7781.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:3ad::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.12; Wed, 27 May 2026 17:20:06 +0000 Received: from CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM ([fe80::6c9e:93c8:10db:e995]) by CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM ([fe80::6c9e:93c8:10db:e995%6]) with mapi id 15.21.0071.011; Wed, 27 May 2026 17:20:06 +0000 From: Gary Guo Date: Wed, 27 May 2026 18:19:53 +0100 Subject: [PATCH 2/8] rust: pin-init: internal: suppress `non_snake_case` lint in `#[pin_data]` Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260527-pin-init-sync-v1-2-e20335ed2501@garyguo.net> References: <20260527-pin-init-sync-v1-0-e20335ed2501@garyguo.net> In-Reply-To: <20260527-pin-init-sync-v1-0-e20335ed2501@garyguo.net> To: Benno Lossin , Miguel Ojeda , Boqun Feng , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Gary Guo , Mirko Adzic X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1779902405; l=2211; i=gary@garyguo.net; s=20221204; h=from:subject:message-id; bh=uKh2wsjyuta+7TCwLBQEIENT9BfZkYLsX4gn0ItlPG4=; b=U786KB6phzr7q9WAQLTC2Ywp+8s0F741fn329tOtpIEjzET0kByejV/yYd62ptgRvIs1+BklA NQLVY+67UGuDVJC9W+t0+gry/929XdQC2rJiLuM4oHb8N8pRtJUnjcX X-Developer-Key: i=gary@garyguo.net; a=ed25519; pk=vB3uIX95SM4eVrIqo1DWNWKDKD2xzB+yLLLr0yOPYMo= X-ClientProxiedBy: LO4P123CA0524.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:2c5::9) To CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:27c::13) 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: CW1P265MB8877:EE_|LO8P265MB7781:EE_ X-MS-Office365-Filtering-Correlation-Id: 7f8883cf-6c44-40bc-daf7-08debc143233 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|10070799003|7416014|376014|18002099003|22082099003|6133799003|5023799004|56012099006; X-Microsoft-Antispam-Message-Info: eSGlq3GqvofM2WNzr5jH5lO+SocBcCO2dSC63ce4R6eiJ58ZBIB3X9ug4rvei42rzOxgLBzK9fT6tJCEN0wKEIMN+FgQh3tibAsvVnKCg6v6LW509z3rSjdsgehIb+N9Osg7AlmIMNCwNFloiOCWen3CjVm6QZ1aE0M3/ZPG4AcReA8xr1nGDmnmtPYu6mg1ootkxA2ErLxh618Oj4I7RfL1sdTvCchQjQF4kvQpgeXqEhfzYqTSG18N5yVJI5rb/DvSkXfSV5SsMe0z8gaFeYzNENl0aGjFEffA7ayFGt/G4O6EQV1YntB1SfWrp4soh8VSibd3JjW2YpCQ3KIrVqxZukDR9QKg7lyYrYp65QK38LLWrpDO5Htxx4U18ixcB41pIOU5R+hN05ghDbIo57kKhHdj8q42Dvhw/krmGUh/M1ZtkV2cRhCT12ECW7aQ2mqx6ieVtUrVyQRKodEupgLh3PKPc6mxqhLXcZGoRc6AWprMfLmHPF4zQAZYtqGKa9Nzx3az/e0/rNPH5DECAGvq0TLbdFk17G/tvAuMfSPStJJQZOCY5rT1vUrNj071Bd5Ip+wGfxF79yMZnjCQpOSbHtRvTSTBe0NDaXmr4UI70FJl7zU31kR338z3xDbvCmM1Qp/DvgwgrnXQadkifFwDLTPcspTigyqzTHJno4XGt+gDn6lJ2O6UShExycCW X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(10070799003)(7416014)(376014)(18002099003)(22082099003)(6133799003)(5023799004)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?QzVlYUI5Wk0vRE9qa2RLZUthbkFMZmY3UmtlbWl1TnlnYkI2aDY5SEJ2cldW?= =?utf-8?B?dXp0T3BHT3pTczZtNVYyQXU2OEdiTHVFUHhnS2VSOTB4V25FbnRaVmxOVzZL?= =?utf-8?B?a2o5aXR0NzZmd1JiM0NFUnlFYnRHdkt2WnJDYStiSWNyZW9LeFNndzJaUDcx?= =?utf-8?B?Qlc0N3R1aTMwS0tYUVBTL2FWczJYZjBqN3llVFoxN2hFb3NQU0NxRzFlaGdC?= =?utf-8?B?MzZaQTMrZ1VDUUJubXNyM2hpUWIvREVsZ0g5QkpyQUJ6ZlltMnorRW9QbFly?= =?utf-8?B?aEFSZ0RlZERRZGFLOWw2QnJ2ZUtINyt6dnBSTjEyc05rREhvQXdCYW5uL3Nv?= =?utf-8?B?Qm4rRzZEYU5aOUhWSDV6anZFaDJ2ZUdqN1BsNy9OYUNZZnk4a0doU0FMaVJX?= =?utf-8?B?MUhyZXphbWtoWXgvTHBTN0xNZTc5bzNmZCszdU5hd1l0TnFsb04rcXdLVUFr?= =?utf-8?B?WHhyOVdKSllScWVzTWZ0dUtlMGsyREk5QlBUT253UEFEWDAwcUFnckh6N0py?= =?utf-8?B?QkZKWmJBN1ZFV1V0S25hSDJHSlpYdmQyNjBUcytOUWxMZUtLenN0MjJCYUg1?= =?utf-8?B?eDZVZjk4V2VORTFBWVpDVXUrS1laWkVOV3R5cUVOYWRidjU5NGxRdWs1emk1?= =?utf-8?B?bEI3UVdqczFrcUpqaGtWeVM3L0h6WnhCZnhlTEtSeVhJNDIyMklRdzZsTWVP?= =?utf-8?B?RWFuTHRxK3RxaUFNTU45blZvVXdjU1NvNUp5cE1SRk1EQVhKcmZlOHBTR3FY?= =?utf-8?B?MnNYd0xyL3k2S1RndjkzajFiL3ZlM3ZGRHZZNDlLcEpPeVJKSFRySE9taS9I?= =?utf-8?B?eE5FVDJKSUhycnBQc0xNOElPcTVwUzA2UHNEUkUwMVBRZU9JZjAvNlV4ZDlt?= =?utf-8?B?RGVSYStvZFlMWW1tdkI2UkhuMEk2emo2aWU3Yno4VG0vRHd3OGNhQXQxZ0dR?= =?utf-8?B?U3BiUjhEZW5ZZVNMZ3crNHMrdXhnYjcrWXVYNmg3YkYweFpubWF5cXZTN0lD?= =?utf-8?B?SUNKNmdDQmVyL0lIc2dGS0p0S0MwKzUzWTRIczJLd0FBVVllcFlUQ0NZaFdr?= =?utf-8?B?OVdRRzRnTXFUbVlHNXkrb3R4TlI3dmNtREZtUW9jNFlNVnpUL2x3T3RaK2Jp?= =?utf-8?B?V0lMYVNYMDNCOVFVWVRkQzRucTM5M1kvekRveFNKeTdhTlF6UlFsZElacHFO?= =?utf-8?B?c3VLanlKTnZNREQvZjVGVFZmRDhpSndIbmtJZjFGSnZqWXN0Vk5lSWtMNFBV?= =?utf-8?B?QzJoZFhxaWtQdjgxZDE4RWlCYzAwdGJ2SUZYK210UERtZlRhSnczTGZoUWYr?= =?utf-8?B?Zis1T2J1UkwxUkxvVjdLVmcrY3RtK0wyL0pleUQrVnUzTjRLdGtYZWZVelh2?= =?utf-8?B?ZkROVSszZmhwQnlnNXFOaDZtcTlOMTRuQ2h4KytSQy93U2duUDJFUVd5L1VO?= =?utf-8?B?M2xVY09yN1BUUVJvYlRYVVlFZXhPT0hrRWlZaVVwd1lFT29OSDJEdDFmQi9Q?= =?utf-8?B?OUx1M1M2SXREVHRYcko4RlRKZ0tLQlladHJ5Nm9wRUoxUXF0eXR0Ylc3MWFQ?= =?utf-8?B?QWZZeTJRS1FZYlRqTWR0L2Zub0NQZTlieTZnNmQ5aUs4bGl3QUFHV1pYcUdu?= =?utf-8?B?L01kUHRhc3hnMGFuWDZjSjYwU0pmYm15QXVqdW9JQkNlRHp1bnFrSGVGMTB4?= =?utf-8?B?OXF3RFJjelhiSGFtUjFxeDhEZVVMTzZZQVF2cEcwT0RQQlNKWnBrOE1rNnUw?= =?utf-8?B?Tm1ZSk1aQzgrUlhwZ05LUjgwblhrYkl4VmhrWjNqMW1QOHpIam9RbDZPNkVt?= =?utf-8?B?ZkU3T1JYWmxpVW5RdE5jMk02Q1RJZzNEQXBuOHBNeTlLeGVPMnlWcTJKMnBC?= =?utf-8?B?dHVGT0djZVBEL0crakYxSis0WU0rS09HZFpJaE44R1hyOUFxblcwUlJUYVhK?= =?utf-8?B?b3RuOTk3VmVXMzhzUjZkcFAwOE84N0Z5bFlxaDV2UkM0Q3UxZVdURDhCbmt6?= =?utf-8?B?YlJFWE9PVC95cEJaMWpGMW53YzRTRDJRZVVVZlA0Vm12aWJhN1dFbmo2eklw?= =?utf-8?B?OEQ5OEFyRTdzR204T3VwRGkxQkx1YnRiZDJQRkErejhsVVpqeWVXTEZRK25w?= =?utf-8?B?VDBEdGxDSVp6c1VydDAxWVkyaTc5T01TUUt3YzJGVjd2NmpDRThmcC9ONCtI?= =?utf-8?B?eWJ0YzF3RlZLejdRT2lyMmplTjQxOGMyVTJZNy9hR2ExOTJkUWs0c0F6VFVp?= =?utf-8?B?RHh4UThoRnBFemZvTkEzaVlIZHlYUnJmRXFWdk4zcW5yUFZWd2dVK1lUNW5G?= =?utf-8?B?Q3N2bUR2Wi9OaEk1Rk9jc1FoN3VEbTlnd0YyN25FbTNnZTRGM1JwUT09?= X-OriginatorOrg: garyguo.net X-MS-Exchange-CrossTenant-Network-Message-Id: 7f8883cf-6c44-40bc-daf7-08debc143233 X-MS-Exchange-CrossTenant-AuthSource: CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 May 2026 17:20:06.1523 (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: ffsuSX6pcQVH7YF3fIh0BZV1eyo4iSL2LGK915QdH8rAlCczCBy8fp8O1Yap0xfaiAD9TY7lLpxKYAMWFMj72w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO8P265MB7781 From: Mirko Adzic Allows `non_snake_case` lint on struct fields generated by `#[pin_data]`. Since the same warning will be reported by the compiler on the struct definition, having extra warnings for the generated code is unnecessary and confusing. Signed-off-by: Mirko Adzic Signed-off-by: Gary Guo --- rust/pin-init/internal/src/pin_data.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/rust/pin-init/internal/src/pin_data.rs b/rust/pin-init/interna= l/src/pin_data.rs index 9ca8235ed3d6..9fbbd25bcaac 100644 --- a/rust/pin-init/internal/src/pin_data.rs +++ b/rust/pin-init/internal/src/pin_data.rs @@ -191,7 +191,10 @@ fn generate_unpin_impl( quote! { // This struct will be used for the unpin analysis. It is needed, = because only structurally // pinned fields are relevant whether the struct should implement = `Unpin`. - #[allow(dead_code)] // The fields below are never used. + #[allow( + dead_code, // The fields below are never used. + non_snake_case // The warning will be emitted on the struct de= finition. + )] struct __Unpin #generics_with_pin_lt #where_token #predicates @@ -318,7 +321,9 @@ fn generate_projections( let docs =3D format!(" Pin-projections of [`{ident}`]"); quote! { #[doc =3D #docs] - #[allow(dead_code)] + // Allow `non_snake_case` since the same warning will be emitted on + // the struct definition. + #[allow(dead_code, non_snake_case)] #[doc(hidden)] #vis struct #projection #generics_with_pin_lt #whr @@ -386,6 +391,9 @@ fn generate_the_pin_data( /// - `(*slot).#field_name` points to uninitialized and ex= clusively accessed /// memory. #(#cfg_attrs)* + // Allow `non_snake_case` since the same warning will be e= mitted on + // the struct definition. + #[allow(non_snake_case)] #[inline(always)] #vis unsafe fn #field_name( self, --=20 2.54.0 From nobody Mon Jun 8 17:38:45 2026 Received: from LO0P265CU003.outbound.protection.outlook.com (mail-uksouthazon11022088.outbound.protection.outlook.com [52.101.96.88]) (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 A73A84508E9; Wed, 27 May 2026 17:20:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.96.88 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779902417; cv=fail; b=aAr97OGFvACj0IPUwx7SfjfHPWZm4ztKNXSCJwRbOWa59+FlocFXGiA4zM/BZiXrZLWg5XLpo2oXukXDqLzyO7/xqsvBxLuo4d5licIQFOoHqgwg8ZXTm8Ga9uJXKxh1QT42y84EhFmDYr4FOhzcsdZJNAnyXylplRbS9U9MEC4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779902417; c=relaxed/simple; bh=pDG4+Tzbavmxr4zS4UmqpvsJAJmifcwZ7nNBM999DFs=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=EJDDs8W1HBxgMrgHbydyrcnMxEfKfXeftkUzolIa9hrAH0kSChxTrHlPYbZZrHr4zIZMZZ4uZ9VH4ybjSoeePLbPe197Fo9dPpBsB8Nu2TdaV6FOsHjbP8Lear/sAoiRBLWjlvNS0iU17YYX2Plnr3RJiN+vdVyR0Qo/o7evKsU= 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=kg+SxUyB; arc=fail smtp.client-ip=52.101.96.88 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="kg+SxUyB" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=tBNdO2JRtSk/zAKU8E7lTxAohA9ahNF9200b0g9eeMJdWCn3u+JrLnzTvLCLaV3QfMHVmsgQdgNcji3CCUvOpcsRg9GvExqmA+KMk+Kl+YsFUy1uu1x4aomKTxVlGEDX/7a92x98kNZBLLZ/KhZgBDi0XmYhstzMcw7tznU1AzGTfKm/3biK7FVgIlt/OjBiSDDxLhglYt9ZQ6C4xDm8ZSXIofetXLAySQ41hZcv8nNzW+WMXhhA8haOWdDJc603p+YhJYdmv6A8fITesbEcrXTb6FHtCxAquAepmK6z1/+qWJK077b4B7oQapsp0vqYGoQbkZwO5umCIavHYoreEg== 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=TrvupSjMZV0cZ4PEUMFEDpQWZa9FzvOk7k4pDB8PfCQ=; b=qrzcUtCLZxzeY373YhsZsfnJicg/7/L3FhvMx0Ell+i6Z/53shcFBGERxaeEbF7k1Cvnq9nc4G4Nh+a/426v+p9c2h8Iv+NnpIetoxBXLkC1bnr9yZTnHzBXmiPR9sEungcwI58Vt9DRF1b/IgF9dIKoobiM6IIpLdPh65HhuAJAC4HnXPoJUIUi+IKAWpOB7+hi63Ys9jGapiEmoFMJhxPZgRrjQ7QdgklQ/AMEz1qlCB+IL+byla+vsZyfkNUJ8dAqTRp1O1UZ/r/Achr9bercQkIzJ47T3OG/ytZfENIGOCvjhJBQ2L7HAAbDIXxwHyrjjSRtv3mR1jnj22RigA== 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=TrvupSjMZV0cZ4PEUMFEDpQWZa9FzvOk7k4pDB8PfCQ=; b=kg+SxUyBKSAHorl9w1SlgZFIfPEB7HUlW5aZgLl+QbkOy3CNbZIl96h7G0dglNJytJOeUp1MLLCxB/gZwdtKa7RZZBYaOYkysLNkSRLAb9FrUUElKhnAVZv9T8AWj3Vezy4xDhwUYvWX5z6/BfTt/T9YSwmEGjq+7Nt5y2JafwU= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=garyguo.net; Received: from CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:27c::13) by LO8P265MB7781.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:3ad::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.12; Wed, 27 May 2026 17:20:06 +0000 Received: from CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM ([fe80::6c9e:93c8:10db:e995]) by CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM ([fe80::6c9e:93c8:10db:e995%6]) with mapi id 15.21.0071.011; Wed, 27 May 2026 17:20:06 +0000 From: Gary Guo Date: Wed, 27 May 2026 18:19:54 +0100 Subject: [PATCH 3/8] rust: pin-init: internal: suppress `non_snake_case` lint in `[pin_]init!` Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260527-pin-init-sync-v1-3-e20335ed2501@garyguo.net> References: <20260527-pin-init-sync-v1-0-e20335ed2501@garyguo.net> In-Reply-To: <20260527-pin-init-sync-v1-0-e20335ed2501@garyguo.net> To: Benno Lossin , Miguel Ojeda , Boqun Feng , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Gary Guo , Mirko Adzic X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1779902405; l=1448; i=gary@garyguo.net; s=20221204; h=from:subject:message-id; bh=9g92ne+weSAhoNoaJQtv5ncNm34mTbvTq1YDTwM6op0=; b=/21NzsbQXvrUudjOx1XlZLbKekVVe7ZjWQi/Lfhh1D9u4n0nUDpl80cD/s4rZdgHiL9UUPg+v wczSfnbdaH8AaclErSOuiWuFwHbW/8zhefq2s2Ln4lN7yshv++ilXBX X-Developer-Key: i=gary@garyguo.net; a=ed25519; pk=vB3uIX95SM4eVrIqo1DWNWKDKD2xzB+yLLLr0yOPYMo= X-ClientProxiedBy: LO4P123CA0524.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:2c5::9) To CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:27c::13) 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: CW1P265MB8877:EE_|LO8P265MB7781:EE_ X-MS-Office365-Filtering-Correlation-Id: e07c8341-b155-4b84-9736-08debc143265 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|10070799003|7416014|376014|18002099003|22082099003|56012099006; X-Microsoft-Antispam-Message-Info: UIEm8T9n9E26IHWqDtQd7Xt6dh6rTu1RcGpUOYBxikt7UBceHCgZXBDzy6rs6jLi9FOKyRWcoG2/+h2JRzn0vUzuYVETYvPSWGLiq1r/Db7l8s6VYqC+GMnHF3o8OYPiTT17TGgagoF8kWRKCKmmNMSwwNIPnZHLzBtKX3OPJs/oPlIEHUOFJWIUiu+GQiBeQ9e7i3AA0F/TVPbPeaJu2yvvzI977JAVJfIveW10xfGfU96y/STu/e0zFroa16H7ol3n1KaCuF9n6GqpZMiUBXRmDDZ6O652oMXlBbXj1gA0Gn1dCnhuhUzQlk7jEnubPOUDKCsFtxs2tKb2f0fFKz6UKdAcQctzrqXcmsL6dAVGNgn5J3c6XyXBPn6Lm0qGPXhC5D/YdmSsnhauZPaQHXIymT27f2LjhX982vD85+gqXExjBwU1p/SfhFWMwepqNv6ItXyMkTF3u8f4msieLgXkpZ5Xmgs5Mbo6mOCqHKmEELzTG2FpH2VXhfsCuLW68a9xMELSjfoTNyQenLdz5tBHg/9MneGGfPdEx4D2PWthfrpoffWSsFK3MmoHhTfCsMh3k98TqumOQ3lL5NZKse1tTqGqXo/vgADfBV3MG4AxFzw3BE9tJqBRteyuHnYq2+cEW1NwfX2V9lMphlJ+4RQgi5cWNcHGO8ziyDwWh49Lqs6FKi5ReVKiVnOk+vrjqquDWR+PIFG/dQpWYf58IQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(10070799003)(7416014)(376014)(18002099003)(22082099003)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?S2NMWFl6MTQ4VERKTlI4VnF3UDZyUFl5UFNZcHZWQVNvMkRwbzdCY2o5SkFO?= =?utf-8?B?V21DMkhvUnR6MWYxM1hCdU9lclRIaXVYcHVsaXJFNjJaV0RiMWJldG9DOWI3?= =?utf-8?B?WnZVb0RhWmpRN2VXSXpYS1BRaGJJdkhCUFVEcnVLcGliajBPQWdneGV5clVp?= =?utf-8?B?M3RsSUkyMkZtdTBiaEJvVDdEQ1BzVWlLczg1MnNsd000cHg5bUc1eG9GYmFj?= =?utf-8?B?Y2NLSFBkTXRoWXpxdXJHSjkxVHZkbmlnTHVvODhzNUY3dUd5RGV5bGxlZ0Vo?= =?utf-8?B?S3MvdTlKZEMvd2d4YVJlQS9iZ3pDd1VhZVZrallRZExOMzJvRWdvOXhPSzJ5?= =?utf-8?B?TTB2MjRUQ2doQ0dBaGVUNjNLOWV3enEzQWlDQ3k2REN2TUpVMHlVdWJITXJ4?= =?utf-8?B?REJ1TTBNVnd3Q0tJbVR1YzV4bFY0Q1pFMGI0SGthUzQ0MnVDSVZsVExKZnlB?= =?utf-8?B?QTU4Z3A5WkxSQmtrcDNZY2ZhZWNSem9VM3MyUnBCdnc5UWdoOS9ISzN3eXB6?= =?utf-8?B?elNhdHdsUDRaSndHS24zNXk5cW9CaERoeHNSaDV4Y1p6ajRqRzB4NzcyTXMx?= =?utf-8?B?YkN0K3F3RjNrZVEvR3FucGJzdktBdWZDbnJqL3ZINXpCekJJb00zNGJqYlJt?= =?utf-8?B?bmFYbzVLekJQai9DdHd2WkliU29iOGxFbnJ3YVhWVE5zbE53bGJ0TitJUmlH?= =?utf-8?B?bHJpTVhDbTMvMDc4NTNncnNwdHBzWjJXTU1iRHV6VDVzeEkrdzJraFdTcHhQ?= =?utf-8?B?S1c4OWdTMXAzZ0pNMnVJTW4yTUIydFVmTzVzU0s0MTBUM0pQcFNQazlsLzBl?= =?utf-8?B?ZEFIbVpwTnVCdU1hSUpNV00wUmhkZENGZ0Z4SVN5QUR2Wm90SlJneTZaNmQw?= =?utf-8?B?RnU1TmNvT28yYkNqMEc5cE9BeVB0aCtXNmNPVUVXdWQxQWZnTkZYZUxoMVd0?= =?utf-8?B?dDlQMndTdjNLR1BDTndaVW5VUlFVRUluSGVBRUpXWmZPRUMvOUVkMEpkZ2pE?= =?utf-8?B?TkswdmgwSWZLNnkwdzRRZmRhNmNRak0vOG1yZ0VNbG9HRGpFSTNHa3BDcHlU?= =?utf-8?B?aVJrTjg0SHFWbkdZdzIrdUtzWmMzSUF5MnEzSi9TdkV6Ym05enF0eEhCYkUx?= =?utf-8?B?RVlWM0cxRFBOSENMalFTYisxMEhrV1hyYWFKUFFiNlR1MnlQQTB0bUgxb0Mz?= =?utf-8?B?c09wbXZtY3ZycVk2MmxQc1lnaGRKd1I5N3UzS2t5VmpudnVHRmpkMm9wSnh4?= =?utf-8?B?c0JDOHRKb1AzcDZZSDRNV0FkejA2Q2JBTkVRemkxRnhMVzNhT0NtREtGVlBW?= =?utf-8?B?ZlBPZXpsVHRDdUVZRmpyd20wK3BOaXpxUllERVhicUd2L1UxZnBHYndZNEpR?= =?utf-8?B?dmJoSUp3Wmwra0I3TE5VTTVZdW85MFdqKzFnbEhpY0NhOXllU2doNUhwVWov?= =?utf-8?B?L3JxVkgrc1UrZjQrbW9yZk5EL05LbFlpdVhzM1MrKzUzdE9tRlM2aWJ0K3lI?= =?utf-8?B?aWVlcVFpL082KzV5MXVqNnBvbUpvSjdkZElzVTZzb2ZyWmFKTzJLQ3pST0sy?= =?utf-8?B?ZnFxc0NOdkRIYUsrMVQrazJ6a0hYd1I4ZTdvL0RGMUk5QVVEZENVOU44SG1C?= =?utf-8?B?YnFyOWlQaGo3YzZwZWcrUlJPcVlkNVZ0VHhySFhnUGZjM2dXaytCSEttOVJo?= =?utf-8?B?REtPdzB1YXorL0NVR3Y2eEtlRml5ZUdHd3RNcVNOUmlZekIrSUVWM2p0cEVp?= =?utf-8?B?SFFtamlzeTRmcldDUDZaTkR6S3BOaWUyRHJyMXBtKzdSMkVmeXpWM0JpK1hH?= =?utf-8?B?NGh4bFBHT21nZ1dsZWxjV0VDQ1I1a1FTUGFoS3FrSnBDcmdEU3UxZ09MNHd3?= =?utf-8?B?d1ZJdUxaNWUxMll5bmUyaTNwSHhBcUhQYXIrTDZZdkFEV0xqSzVvZUlyTHhr?= =?utf-8?B?ZEwwRWl0ejl5Z1hCeE1ia1Q4SXFlMW1nSStCVFZCZVBwMldLRkE3bURRcE4z?= =?utf-8?B?Z2JvbG1qOUNPV3pOZll1eG1UVktaVVBCVjRqRXR4Z1ZTMTZJZkR5OHlWRFhZ?= =?utf-8?B?QnZ6S2hyV3hZZXJNN2VSZ3RaV1pRVSt0MEdOWTR6Zm5RUUs5MUx0SS8zQ201?= =?utf-8?B?TmdsMmZBN3FBZGFsamdvVHh0ajJISjhwY1JZYWhjM0JtNVU2K0ZvbG9YM0Nv?= =?utf-8?B?ZmZBKzlKR2xDWXN3TUhuQ3pvTFRtdkFsdWpLcW9aYWZoQnZPTVQ0MDN5ejdw?= =?utf-8?B?akMyN2U1UDl6WDlmK2FaTXdzU2lROGszdWNLT2dsY3dDM2VmY2NmU2c5dkJE?= =?utf-8?B?ODBIeGVMYUxHL3MyUjNVOWk0cFl4UzhOckxMWUlDSUlkM1J6alVuUT09?= X-OriginatorOrg: garyguo.net X-MS-Exchange-CrossTenant-Network-Message-Id: e07c8341-b155-4b84-9736-08debc143265 X-MS-Exchange-CrossTenant-AuthSource: CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 May 2026 17:20:06.5606 (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: tl5T2i0KMeUZ8hcaBAObFXUzrdEgndlxz81Hw2oWVp0P9acrpPl28n+eShC4824LogXpNOK588MntH5O3PagwQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO8P265MB7781 From: Mirko Adzic Allows `non_snake_case` lint on local variables generated in `[pin_]init!`. Conceptually the identifiers in `[pin_]init!` just references the field names, and are not defining them, so the warning should not be generated, similar to how constructing a struct with non-snake-case field names do no generate these warnings. Reported-by: Gary Guo Closes: https://github.com/Rust-for-Linux/pin-init/issues/125 Closes: https://lore.kernel.org/rust-for-linux/DGTBJBIVFZ2K.2F1ZEFGY0G7NK@g= aryguo.net/ Fixes: 42415d163e5d ("rust: pin-init: add references to previously initiali= zed fields") Signed-off-by: Mirko Adzic [ Reworded commit message - Gary ] Signed-off-by: Gary Guo --- rust/pin-init/internal/src/init.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/rust/pin-init/internal/src/init.rs b/rust/pin-init/internal/sr= c/init.rs index 699b105570a5..041a84593730 100644 --- a/rust/pin-init/internal/src/init.rs +++ b/rust/pin-init/internal/src/init.rs @@ -296,7 +296,9 @@ fn init_fields( #init =20 #(#cfgs)* - #[allow(unused_variables)] + // Allow `non_snake_case` since the same warning is going to b= e reported for the struct + // field. + #[allow(unused_variables, non_snake_case)] let #ident =3D #guard.let_binding(); }); =20 --=20 2.54.0 From nobody Mon Jun 8 17:38:45 2026 Received: from LO0P265CU003.outbound.protection.outlook.com (mail-uksouthazon11022088.outbound.protection.outlook.com [52.101.96.88]) (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 E9E8F44E027; Wed, 27 May 2026 17:20:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.96.88 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779902415; cv=fail; b=FzQX0vBnXAETjiiElWbBMTfCc1rJCzYiMndA1vu+PljlL+Rf7/APzUUpOhoyI+346qHv+yFgpe8wNYib34D7lFm2THY4DPDAplHvfpDMtagwxRrcue1GG4VSSiNw0XEiN87g9b4LT+SabhmZfl+zWWZARIHiL19M8RuCBn8ai8o= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779902415; c=relaxed/simple; bh=jgSHAzYzOUdkc0YGaJO9f9QmiU2kyK5PbYPccyXGl/U=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=Sq5GI5FrABC38V1trEfgJpxO9W9Pdhs539ihvEj7J1Kab8B2ujpmef6m0mSfEIS/CbwiUcPGO+X9cUJCWtUE3XWGxVht6NWHsTXLt82SzsmNfU9mEUco/kVxfe9nbDyO9VhkYQQ34FtRZ+FPL/rZcxBNbmfUL+mM9nuT6KHtMlM= 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=OLaBmtO+; arc=fail smtp.client-ip=52.101.96.88 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="OLaBmtO+" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=T0rUzO6KwVui7FjbQdpGkLZL28fkUgktDpEk50hDwRAH2gGvO5J+tgBgxWltK+BsUBidPv5UBgAj23MHt7hmjwF3IuKlmGq5Uh1XCcB6BxjzBhf66CjuYZu3y/2DUiSvVxU4hqQ9hZMmZ70zAr4suwyYkqZ29D3UXI0V5sbcW96vXFGqmWJYicfu5xTlqr7ujGhbs+LSl2iOixzoSE7fTIZlXQbrze54mvBWOQHbsfHa71d/J/YyEKbNdKgKjdCsM+RUxYBz4720GRqaQvY5DpZkWQzwlT/lUYF+H1jdx2UJZUDFqEri3S019escsw14972N2gwQ2/MsNkE+7UP3LA== 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=Ok9Gb7BaRWMk6WZjIlXNBX2AYOLaBVXgEKXWS46W50I=; b=Gvit0JR0WcMdUwR1KLxoib/VktWG44vjPvzZQz7fV3AF+6/x8WH8JI+lEaxD/AZxMTB+pIwhHEwqcw0Xe+3q/w33V+cOjLzc1BA4PWh7LLVr2KsZ4ZJwymG3kD6TkmfVQGB2nr9XGqO4agv358bGFfilQ66ON1webym2qritUpHS3FP04lokAYliEgxWIC8biv/g+kfEJ+dR3QIddvUV5NdWr+aPfSuTJ3mQ2JU4APZmas90g4qC+eKFB2paPSrS3VYAZXmkdYVlZFSqqZIj4UL18Ls4rz5WhvqQ9IqSvOsXZUx3/8Iq0TIQ9MHPMAsjAGsPaE8GWA9V3dbdjWvvFA== 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=Ok9Gb7BaRWMk6WZjIlXNBX2AYOLaBVXgEKXWS46W50I=; b=OLaBmtO+dImH+TT2bVcJsJApaxfFrHlUVmdw+HNDftVcIKtWayLGNhOmH18rSCpKrisndoOy5nrChVZdQWNbBlbxHMPxVOxJqqRv2q7kooXow5kDdPfFkq4YIKGd+tMHc5ap26222S+Bx39AeYkE66H406J49avaheyVPFHa55U= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=garyguo.net; Received: from CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:27c::13) by LO8P265MB7781.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:3ad::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.12; Wed, 27 May 2026 17:20:07 +0000 Received: from CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM ([fe80::6c9e:93c8:10db:e995]) by CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM ([fe80::6c9e:93c8:10db:e995%6]) with mapi id 15.21.0071.011; Wed, 27 May 2026 17:20:07 +0000 From: Gary Guo Date: Wed, 27 May 2026 18:19:55 +0100 Subject: [PATCH 4/8] rust: pin-init: docs: fix typos in MaybeZeroable documentation Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260527-pin-init-sync-v1-4-e20335ed2501@garyguo.net> References: <20260527-pin-init-sync-v1-0-e20335ed2501@garyguo.net> In-Reply-To: <20260527-pin-init-sync-v1-0-e20335ed2501@garyguo.net> To: Benno Lossin , Miguel Ojeda , Boqun Feng , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Gary Guo , Xiaobo Liu X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1779902405; l=826; i=gary@garyguo.net; s=20221204; h=from:subject:message-id; bh=1a2qKlYHAjfFG8diPnZ7PMcVB17v+Kn0nZbJgswPNDw=; b=oAhywkA31CHlTkTA1bkDyrvdl1q4ElrjkUPYSm64SapvD2tLYW57EoagWVQkwETZvSqIFOV14 u4ENe3i0MSpDi0oKCfSZ6GFaQgtf9wjrXmoKQYMKdd9tntWlKRTTpJK X-Developer-Key: i=gary@garyguo.net; a=ed25519; pk=vB3uIX95SM4eVrIqo1DWNWKDKD2xzB+yLLLr0yOPYMo= X-ClientProxiedBy: LO4P123CA0524.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:2c5::9) To CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:27c::13) 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: CW1P265MB8877:EE_|LO8P265MB7781:EE_ X-MS-Office365-Filtering-Correlation-Id: e0ae910e-af8f-47b9-d2b1-08debc1432aa X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|10070799003|7416014|376014|18002099003|22082099003|56012099006; X-Microsoft-Antispam-Message-Info: CuOSWjEGrx4OIU3hs8DQnNrXYyXijU0GXhyZyUwhI5eKQfFC78TQb11iJ7mHxR+XKrqMd8ImT9hZwsAoeuLbT9q2YBAH5zYynuH8UGGSUsPfk8j3CTAVm0I9Q1N2FGoNb8dfxHjJOoDpE9Ej1l/iDgVxgpkOiL2jY9ngGUWsxPF6LHbt4XtGQTLnI9auJGKNd0NTEHgI6l7yKWaoZi752Fm772kuyjAU2Oul+8hKpO5rkiXrnwxfdFxaMCBDSVvjl8KnNhaSZRZBAlvQzr0mVtJmvq1I9PVTOfxqhDR2zpsAVsBkOqX4yLh352Z1iuj2g+V7UbcdEAwLGco6i0VzVAh6thAnGeGi8t17jZLHxXZVRR8Ej1sw7v4CulzQULQjsbRfkxcLKBCSaLjab6+Icuadt/LfIPBoAI6x74hrR5d8H/CVUGN9g7V+1FuVnXKTwEAn493cdq/8XW1tLTaut7LKigiyfK0FI48Vup2rKfv8qnImlFFdB425PF7mLbOt1hch5EOBxli9z1Aw9JZ3Cec3ozvIBcIIG17iXrNHZpVKipAyv5pY9830BvaEyawBYQ8XF78cJmGZKG0xZ0Llo/1ABBQsoxpBjNYbBvWSuuNcJ7GmCQNN785UnFY00HwRIHiDAXv0bXZyrbWYQH4lU2URSYNg9OPoYgOxG3q70vPn1NaTNE4A/CP+wvsW2BsA X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(10070799003)(7416014)(376014)(18002099003)(22082099003)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?M01Nb0JWcTFseG52VzNVVk8yN2ZaVFRoTHFQczVWdUJiVnRHK05tQjNaU1lx?= =?utf-8?B?aTh6NStxNnZLYlZWVzdBT3NrY1pnQTFwQ1Y0RUluWGtIVDNUcVdEREkvaE5I?= =?utf-8?B?Kzg1dm9iQTVMa2hKZzRxeDg1a3gxUUdRek9xUGJUdW4vWUNjM0xCVjhBdFhn?= =?utf-8?B?N0duSHpTS3dER2J1VVJXMDl5RGwrWEFQYzJPNGhBV3lVWGh6UFdZY1kwM0V4?= =?utf-8?B?eHNrMDVvMGtPZStxd1JUSmtHWENZWWRoaWl5M0tKZFBOa3B4OE1EM240SSt1?= =?utf-8?B?QnQ3OE5sa3F0M0ZkNWZZRFJFaVNQUTM4aWxEYm0xK3pzRXNENG9MYi9MOTF6?= =?utf-8?B?ekcxVVRPcmxnUUt3UjNYM2w0Um1GS05FWlhjSG1NYUxHMEhVYkk5QnVhbVRF?= =?utf-8?B?QXMrbmhYeDBmTmxMMjhiMEg1OFk3VVNpMTQyQ2h5S2lrREdtamt4TUVEVy9o?= =?utf-8?B?bFpXeUNoM3htRktPL2Z2YzJCb2o5Szkxc3lidUsvRTZqZHl3L0xqampSUHBB?= =?utf-8?B?ck94WUdkUmFVMlV1Y3RzNEcxcWZsNzV0SXNZTm9ua25pa1NsTEF1QzNUUWp6?= =?utf-8?B?aEtlT2NJeHNLRW1KTWI0M045Sjc3emJOVVk4MGZad1gvd3RyZTlCL2toOVV0?= =?utf-8?B?VnFVR2l2MDV4b3BYSjJad2pyRFZSRHV3ZFVEZEtCdjE2SHA5SFZaalcwSkxM?= =?utf-8?B?Y1hZU3EvZ3hDQ2tuTEcwUzlpbmpyczNqSGo5TTAwYnlkT0NNUkZXVzJuckJI?= =?utf-8?B?eXZNblA5SFYraXQzZUkybDFkVElybjZxai9DNXRidlYvN2VjUlZIN01MeU5m?= =?utf-8?B?d2pUbHVDS25FcXEvQUpxZlFkNWJlMUVCOXRpT29oTGUwd09yajkzSXhyQTRS?= =?utf-8?B?SzF0S0FWbGJZWkEyMEFsY2ZNbHRKbGdqenVsdExsY2x0WHlOSUlSQXhKdVho?= =?utf-8?B?UFhHSUJHY2ExL1dieTBSeG5EcGRha3RLYld2d0ZtUFRydWlWemJYbTdoL3Bw?= =?utf-8?B?YWxHbnRDSldJNURJL3FvNitBUTdiOVlqVjUweVI4NzgxdGtKRUQ2QVVSWmli?= =?utf-8?B?YUdWV1JVVUJqanhNTFhYcHE1REVhZFNVa3FiQXhRTWtnWmsvZTIyZjBqb3Bl?= =?utf-8?B?dEEwWlR5NlA5TDU2K1J4ckFBeE5Meit6cDhDNzdYTUE0V3RueVhZS2hqM2Fv?= =?utf-8?B?aG5abG5scy9heW1RNmhTTXRjUVpnanp3eUxsajZ1RGMzckZCaDZ1Z045REda?= =?utf-8?B?dkRaQzg2VGh6K3NRT3YxdG9xQmNMNGI4NDkydmt4dVkrVTFtVGUrRTk2T3BL?= =?utf-8?B?bHFTQ2VCYTArb2dpL012ZllPR0RUQXJIL0Z3cmFaNnNJVEkrNlRuREMxNGJZ?= =?utf-8?B?ZmxuM1pFencyUzI1ZHEyTHJGQUVveW4vZU9pY1pEdDQwQ1hsUXh4M1lPd0hO?= =?utf-8?B?azZGUWYyY3JVYWp4UVhHOFlPMldVbytCZnpKOUVyWmViR3ZldG14WklqU3Zo?= =?utf-8?B?K2ZGZ01YSStnSzlXOUtXYXhJRmtSYjlpMG55bVBtcTVGVkQybDNrckdDSE1H?= =?utf-8?B?M0pCVlNQS0tBZTMvcktlZ0VBS2xCR3d2U0VGNmJjaytXMXk2cUw4N29GUCtY?= =?utf-8?B?RVczMUtLVXNYSzVyaU50WldudzRZWVpUcXlHc1hmdG1XYkkwbEU4TnJUek1n?= =?utf-8?B?aDUxMk5IektOL3J5NmcrbmFLRTVDVGFKSThXODloY1RoQ0ppYzMzaXB2M0hH?= =?utf-8?B?VVY3R09ybVA1SnlsRTR6bXpMUXNhcklIZUd1RndUWHVjMFpJRzFPODdyNHhV?= =?utf-8?B?cGRzWjRsYTdFMTlTM3VCU3dWRjBrYnRRejVHTS85a0ZTOFZlQ3VYZnRhZmdN?= =?utf-8?B?Um1admIrSGxLeEFwcW1sQjB2a3M0cTFhbHlsc0N5cnVkOTk1OGQrYlpsTS9T?= =?utf-8?B?L0dON2JKclNaOTM1VWExZU0yQVVmMTFySjFnQVF3UmhhQVFsRmJzTk9xeVds?= =?utf-8?B?RXVPSkZ5UkFUeDdITGNnZHR5ODJQV0hadlpPMnJQRkVELy8wangzeVBsQkhF?= =?utf-8?B?bHJPb2VGMldWR1J6Z3VZRmd2SktyT1BuRkpPSjVJd0pqQ0txaWpnV0t0U0J4?= =?utf-8?B?YU1WMTUyMW9JaFA4Z255d1UrVHdjdlZmL3ltUlRLU0t2NDM3Y1JMb3RZd2JS?= =?utf-8?B?Rjl4ZnRhQU03SVN6QXovV0kwYWNxK1IxcTdjTFA3Y0hmaEE0ZUF6ek4rMzQy?= =?utf-8?B?ZTFIM2ZOREtwMGdRZDZCNWF0QUtTcHpMZmtxQWdWV21FaWpqSlpQL0JRRTFi?= =?utf-8?B?UjhuRlI3bU1jVFV4Q2lIWEJzTUdMSHNrMkJjSEkwZkRmNnJ2ZVFVdz09?= X-OriginatorOrg: garyguo.net X-MS-Exchange-CrossTenant-Network-Message-Id: e0ae910e-af8f-47b9-d2b1-08debc1432aa X-MS-Exchange-CrossTenant-AuthSource: CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 May 2026 17:20:06.9639 (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: kG1fZ2jAsmRqb03PFTYk362NE0VUFCHHhVUVWVyOQ63ubf2DJkkRO8zVa2QNPsH7aR3ntgGDDoBqEtTwVmwCCg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO8P265MB7781 From: Xiaobo Liu Signed-off-by: Xiaobo Liu Signed-off-by: Gary Guo --- rust/pin-init/src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rust/pin-init/src/lib.rs b/rust/pin-init/src/lib.rs index c9e2cbe27915..84099474324e 100644 --- a/rust/pin-init/src/lib.rs +++ b/rust/pin-init/src/lib.rs @@ -431,7 +431,7 @@ /// ``` /// use pin_init::MaybeZeroable; /// -/// // implmements `Zeroable` +/// // implements `Zeroable` /// #[derive(MaybeZeroable)] /// pub struct DriverData { /// pub(crate) id: i64, @@ -439,7 +439,7 @@ /// len: usize, /// } /// -/// // does not implmement `Zeroable` +/// // does not implement `Zeroable` /// #[derive(MaybeZeroable)] /// pub struct DriverData2 { /// pub(crate) id: i64, --=20 2.54.0 From nobody Mon Jun 8 17:38:45 2026 Received: from CWXP265CU008.outbound.protection.outlook.com (mail-ukwestazon11020125.outbound.protection.outlook.com [52.101.195.125]) (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 8968444DB6D; Wed, 27 May 2026 17:20:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.195.125 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779902417; cv=fail; b=TUEzjH9uKWOpVoP+mpWob8c2ZfqSzSXwu8ThlTJ/tPKB4FOiG8uSuzwJo5by6Dv8E5WudnjgeTzJl20baQV7arCJvdZ9b+sZiEqT/r32t3a/vm9t85StayWNW1RuKqc3Jeq41et2ag7kW+ncvY+bBIhpNHbx8H0UaStR30+swQs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779902417; c=relaxed/simple; bh=70UMeDcL/4xezQUvB6VGnMeGFSx8WkPM/B3RdnNUXmo=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=hzUYI5ZzkshuMcB1NL++Kql18wJPq8PMCzSkhAMpq1lzuk0Ztsv0+y/NmBb8g/Meu9u4zKkZKZM6suE1X14UoO8xm6/Wl+iya+wgy3xjCm3rjJJEZLDvlL1G6lD9UNiXPh1TsnKkLknD2FM+JaMQKnqmjA43C62D8gcfp1ZWyqo= 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=DyscUV/z; arc=fail smtp.client-ip=52.101.195.125 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="DyscUV/z" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hNrN4mubJxDA7xyQNbOLDFN2ynawTy0CjAaTUf/Ie9iTDWPDbVsOEtiXlIerjtxS4/ixnY+BUMt+AV4uvpWosizj4RsJHr5oypk4R1jOJWoEZYF8kRx0Qs+IfkSpofk7r4YDf5joMR3ZfLi3LG3qnkLtw2MhuyXNzfQ/9NR8cIO0Rcjc2rymd8zGJhhY0DJrnUNitiV9hcsFkRO/5epAgefu0ZxIgcII/9yw/sdokmkLoGXPEmQ9Ixsx0zJRdNoHApftMNE1qHEYjbOBPQvz9K17aBnj3pruixBOH11LE1pAVxskJziz08aHv+DcHaMM87w/3B+ja7Ybi9bSgJcc0Q== 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=XIu+52lsUa5+E8dZVDO7qyE7ZdjuBnZ1VLkjgWCvNZE=; b=EF+TOSlqIgekrylX/181jXb3nWfaPSGG6u4pyFmfFqCe7vsknqZFJYLi/NzdO4XvCiQGWjEWW/hJ5bk/1SNaTwtYPHKC3mj4q3w2iRY1Xx219OQf52sCNR6I3XleHQoDrySucjo5Lmt28u8DELtZ9ykByPtVTnsRl05sgqMAvfG1RGD/ZXTwekzBGBfuIdimxxF4rnbwFANdUqq3s6eLlNpPViA3/y2GC5sak4m4bL2YPMNnuIt84r0tBFI/0yOCWxQHUIUZxdrpTJb1vr/5KH9aEeWvZR3O/r3Q81eHJub5SpW22v7WRst+Vf38sSI7cpiOzNmpuXiJB4fjdHhzMg== 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=XIu+52lsUa5+E8dZVDO7qyE7ZdjuBnZ1VLkjgWCvNZE=; b=DyscUV/zgeZo6flNcYvIy1iu68B6jQuN3BsA4iCWec2VUZNLx66SCxFH+YmSxtHCgmmq7Dtu8Z58QOcn+XRzV5zSHRb7Gj24/39UKZUCrpRTLDBp0CuUV5sc+W21iFALH349QrOknB1AZTgyyedMoIPLzxwv4L9SrXVgQtlYhMs= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=garyguo.net; Received: from CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:27c::13) by LO8P265MB7781.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:3ad::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.12; Wed, 27 May 2026 17:20:07 +0000 Received: from CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM ([fe80::6c9e:93c8:10db:e995]) by CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM ([fe80::6c9e:93c8:10db:e995%6]) with mapi id 15.21.0071.011; Wed, 27 May 2026 17:20:07 +0000 From: Gary Guo Date: Wed, 27 May 2026 18:19:56 +0100 Subject: [PATCH 5/8] rust: pin-init: move `InitClosure` out from `__internal` Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260527-pin-init-sync-v1-5-e20335ed2501@garyguo.net> References: <20260527-pin-init-sync-v1-0-e20335ed2501@garyguo.net> In-Reply-To: <20260527-pin-init-sync-v1-0-e20335ed2501@garyguo.net> To: Benno Lossin , Miguel Ojeda , Boqun Feng , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Gary Guo X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1779902405; l=4235; i=gary@garyguo.net; s=20221204; h=from:subject:message-id; bh=70UMeDcL/4xezQUvB6VGnMeGFSx8WkPM/B3RdnNUXmo=; b=XJJw6iwccqfEGqjZN1b87LGbw0BXa5I6oxqiX8jm3lA1or49WtAGpCQkAmr9nxOCrQqgtVFBg /JNwfHjsGzsCdgeteZBrIodhBWeQBZTWs237W7VpsN7InorFNQeSMG4 X-Developer-Key: i=gary@garyguo.net; a=ed25519; pk=vB3uIX95SM4eVrIqo1DWNWKDKD2xzB+yLLLr0yOPYMo= X-ClientProxiedBy: LO4P123CA0524.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:2c5::9) To CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:27c::13) 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: CW1P265MB8877:EE_|LO8P265MB7781:EE_ X-MS-Office365-Filtering-Correlation-Id: 5d5ca10e-8041-4c07-c48a-08debc1432df X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|10070799003|7416014|376014|18002099003|22082099003|6133799003|56012099006; X-Microsoft-Antispam-Message-Info: lVE24Dp5vAr1y/9X8vUsTk2Yd6LsEPkup8fRkkZ1M7VhHj62bwU9CacFyYxjxgAvOF2Z2lMLxK4qPdfKoIJFBzFzWN7Sjcea7ZZ4NG/zVb8qW/FqzN9AJcUDCdHrShMZVd39sedVKr5UinaSPeW0b4/+eP83PltowPHpqg4xL6PkvFZwYf7OxhSHFDj22KcQBzVkTBBDcJnpiS+aGs3Fx0JIiLTVDMRMFmU1DLA7yWzWEgDTVsZ7UL+bbz57SUXmydXJrIIU7CS8DqLU1ch/yCasUidFpJiMs0umgE58A+wmlcBZh50OwFM5d+n0wc7yyqQxm1gdQJ8IrrDx4KCc2m1QCpz0lAqmq5+HqKWiG+BwQuQh0wx2aRy1r43tebEbGpBL7CTB9ZcHolMLC4pRf5VvTxqFNiVXVreVwhzGeiosRReseZxrtNMOKgA7+SJiMx9x0aApEonbH6C6RNrU45ku9xGFlVwieK8cfp0GfeJhAEjDbmIONNBS291wgUjQ4Lkaka2wFjJxtD4GG33pfZhEovesjWTjoBZhgLTNfL2Qu+jrI6IQcUdXvYct7VDzHRN15LtF9Umz7G75drJNgotNgZmy+eG5GpPqAKzkVN18moWXP02Jqp2rxd7IHKNboxvOZRZMdUaT8jaDb8OxEbF+HTqIdGFquZ3s0cOg+NJuDjGNFWMM3u8s6dR2uMGY X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(10070799003)(7416014)(376014)(18002099003)(22082099003)(6133799003)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?R0hsaEttOU1zQzNYb1ZDc1RJVzNGSkRMaGpvZTRpbGRkSW5PN3Y5bjV0VFZX?= =?utf-8?B?Q291UXVpYlp3NlJPN2V6YTJkU3NxSmpQRDcvS1ppMGlNTmRVSmdrWmhCbGpO?= =?utf-8?B?QTlST2tkK3dacndDWG1rZUhldWpMc3ptRWJDWHg1Z2RnSUpoalMveHNUcStj?= =?utf-8?B?MFBPOHc5QjhlWVFhUHdrZkI2Y3hCZ2EydWQ3c3NYbHA2RU9iYUpLOG9HQjVZ?= =?utf-8?B?b21CNS9yaGlVNXN4MG5CaVYzZ28xeWhsbkhmMGhYZlRiR2JyVGk4RHhWR0Vx?= =?utf-8?B?a3VPSm5LeFVtc0s0WnJuTVNMd0lldXZsMHFpVHZpZ2xrVE52QlhYSVZIVm5P?= =?utf-8?B?V1hrRHRDcVBSdFNCUFdZUzVTRWV4SFMwUG1RaUllWmZSVEJUMmNEc3A5bTNz?= =?utf-8?B?emRGL3Z0RDY0VC9oekdLREIrdUNRWVY3WEg1SEVFU09DTXlpai90NnRJQVZw?= =?utf-8?B?UUZ4WEQwWHd6WlJHOTNnTGlNUUtzbWppS3V1T2FJU1h5SC9CV3NkUWxWeU5P?= =?utf-8?B?a1U2TDA4VFZkbHVXMktFV2ovZXhkeXV6UjZqN2V3cHhGblAyeTNKeUJmMlRn?= =?utf-8?B?blN1cnlUSHF1enlpU0ZVMGxwdnFiejhVMFRDOUNqbUVabnFFYnFVNEtjc3RM?= =?utf-8?B?TzJMekI2L3BOcjVWT3hwNjZYdzFrYXhRLy82aVExRDRGdU9qVzRoMTJNZkc5?= =?utf-8?B?Zm9TalBEYmk4VkJnMnY3eWJKYmh2ajdDVVhXcDlzcGE0ZGR3Rks4NHhMdEQ1?= =?utf-8?B?TUJ1amxvUXpPM3pBSnJrRHMyalF0K0tQKzFGS0k0RDR3N0hHdk5Yb2VJVmRJ?= =?utf-8?B?L09oOEhrMVlrSXUvMnpuamcyMEo4clRTZVcwK0hGeDFCeDB1RE1OemZaMXlW?= =?utf-8?B?WXpESUVXK0lkelZRc3FQYnk3d0lEczN1Y2FFYUNHYkVITmtVVThnWVNzVThY?= =?utf-8?B?NUxYUGJqMjZ4QTNCNzhxQy9LUnQwQnNpSU8zdHlONTZtcmVWWDY0TWljSENM?= =?utf-8?B?eUtUYW1TMEVKUEFDRytJOXdzVlRSR1VrdUhhM0JXbTV5YWRjSml0NzJZSmFT?= =?utf-8?B?cW9rdFRzWnA3YzdFRWRYekYxWS9VK2M4cDFxTGNURVFLUkVTcWJzcS9WS2Nq?= =?utf-8?B?a05mRWdpSmc3c1NrMWpxQzU3eG5Ec29QZ0g5UDZSZmpNTjJVa1hUUjNmSVNj?= =?utf-8?B?VERUL1FPeklZL1ZYY3EydGIzZEp3NExQTXU3UmFidE5zS1pJMzRrTXMvckdh?= =?utf-8?B?MXpKeWJQd1RrcXJ0L3FpUlFVTVVVejBTa3FKSjNVbU50RjJab0VpaHhaRFhl?= =?utf-8?B?VXlrWmZEQVRDYkxJUE5HMCtHM3pwcGFQbTFnL1ZWRnBsWlNzVi9HSStNQTU1?= =?utf-8?B?bmJZTU55eC9IS0VmNG8vd1B4WHdBSlJ4R3ROZTlrN1RucnN4bk9HVDFzbXNt?= =?utf-8?B?Qmozci8zTktnbzhZYldsdkZuYktMRVA1Q251ak9rRHNzOHBQbWd4VFcwTDlq?= =?utf-8?B?bWxjelFCK2hhY2V3a0k5bjRWdDRGTGNhR3VSTWRha0p5OXhnVFdRaEpUR3NS?= =?utf-8?B?WWZMQTJYTEdaL1dQZ29CbWR3c0UxSmlIVDhnTVNaaFphd0xlaXJXVWdaWlFn?= =?utf-8?B?aS8rT25oQVhXWDhtOEw1M0FBRmwvUXB6R2NuUTlUQ2ZlMC96TDlDaHFaVmtl?= =?utf-8?B?U20yVWlhSWFVS0V2UW1Wc0pBaFk2YVY1SE5kLzVJS25YbWJiQlJQOUNxVEph?= =?utf-8?B?M2dXblFFbzJJT1lrVjFyNmZwOFY1T3dGQzNYcThWNFlxWUVaM21IRUwxMWV3?= =?utf-8?B?ZlBUYkJUUk5VZHZOZTBsMFZrbFZzVnlwZ2g5T0t4Vjk0TDdPOXdXMXMrODZV?= =?utf-8?B?ZWMxeUF4YW1GQlpKVTVXRWJsRXZsSXYxaE13TllHK2hnRGFpYmNTMWludkVI?= =?utf-8?B?aDc1WFJrUVViaUhkR1pWYnNkenJKcVJjMGRYOHk3UDRpZk83UnNRVnlQQW5C?= =?utf-8?B?UjZrTnNVc0lvV3l1WGRuekR5UFpaVllER3BGY0llcmo0SW5QYm9OY3RzZTdI?= =?utf-8?B?ZU9iZ1Q5bjB6TEFxdGVnRTJRaFBlc1c4MWgwL2FUSEkxaGpyNlByOSt1c3lB?= =?utf-8?B?cjF2MHZmdStZanB5azJ1WEQyNXdkSFZNQ0tERTZtVzBaQjRtc2J3aTNWUU5P?= =?utf-8?B?RVlOSk1RUzFxMjVoanhIRmFFSGNFdnZyYy9udHFIWVVUbkJXeFJ0WUYxR0R2?= =?utf-8?B?bnZHT3pHdDVKaUcwKzhjeStOaWgzL0lTOXdpMVZEQzlVdzdqMDNBRTBHcHFj?= =?utf-8?B?dnMyQ1JTWTFqcS82dERUY1NRNnJMdzdpbXFIMG9WQTNlRUFiNmJsdz09?= X-OriginatorOrg: garyguo.net X-MS-Exchange-CrossTenant-Network-Message-Id: 5d5ca10e-8041-4c07-c48a-08debc1432df X-MS-Exchange-CrossTenant-AuthSource: CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 May 2026 17:20:07.2978 (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: mJp1Ls0/hCDEBcrlIfhrH2C0mapJ8DbRlBviO3SoIWBbFpzV9CXCgiFfR1KBLIA6DUo6IKI6iVj+YFzh2iitbg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO8P265MB7781 The `__internal` module is for exposing internal items publicly to procedural macros (pin-init-internal). Types that are crate-local only can just have proper visibility and does not need to be in `__internal`. The type name of `InitClosure` can often shows up in symbol names, this reduces the length slightly. Signed-off-by: Gary Guo --- rust/pin-init/src/__internal.rs | 30 ------------------------------ rust/pin-init/src/lib.rs | 34 ++++++++++++++++++++++++++++++++-- 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/rust/pin-init/src/__internal.rs b/rust/pin-init/src/__internal= .rs index 540add6cee8a..56dc655e323e 100644 --- a/rust/pin-init/src/__internal.rs +++ b/rust/pin-init/src/__internal.rs @@ -58,36 +58,6 @@ pub const fn new() -> Self { } } =20 -/// Module-internal type implementing `PinInit` and `Init`. -/// -/// It is unsafe to create this type, since the closure needs to fulfill t= he same safety -/// requirement as the `__pinned_init`/`__init` functions. -pub(crate) struct InitClosure(pub(crate) F, pub(crate) Ph= antomInvariant<(E, T)>); - -// SAFETY: While constructing the `InitClosure`, the user promised that it= upholds the -// `__init` invariants. -unsafe impl Init for InitClosure -where - F: FnOnce(*mut T) -> Result<(), E>, -{ - #[inline] - unsafe fn __init(self, slot: *mut T) -> Result<(), E> { - (self.0)(slot) - } -} - -// SAFETY: While constructing the `InitClosure`, the user promised that it= upholds the -// `__pinned_init` invariants. -unsafe impl PinInit for InitClosure -where - F: FnOnce(*mut T) -> Result<(), E>, -{ - #[inline] - unsafe fn __pinned_init(self, slot: *mut T) -> Result<(), E> { - (self.0)(slot) - } -} - /// Token type to signify successful initialization. /// /// Can only be constructed via the unsafe [`Self::new`] function. The ini= tializer macros use this diff --git a/rust/pin-init/src/lib.rs b/rust/pin-init/src/lib.rs index 84099474324e..9732af32795c 100644 --- a/rust/pin-init/src/lib.rs +++ b/rust/pin-init/src/lib.rs @@ -1092,6 +1092,36 @@ unsafe fn __pinned_init(self, slot: *mut T) -> Resul= t<(), E> { } } =20 +/// Implement `PinInit` and `Init` for closures. +/// +/// It is unsafe to create this type, since the closure needs to fulfill t= he same safety +/// requirement as the `__pinned_init`/`__init` functions. +struct InitClosure(F, __internal::PhantomInvariant<(E, T)= >); + +// SAFETY: While constructing the `InitClosure`, the user promised that it= upholds the +// `__init` invariants. +unsafe impl Init for InitClosure +where + F: FnOnce(*mut T) -> Result<(), E>, +{ + #[inline] + unsafe fn __init(self, slot: *mut T) -> Result<(), E> { + (self.0)(slot) + } +} + +// SAFETY: While constructing the `InitClosure`, the user promised that it= upholds the +// `__pinned_init` invariants. +unsafe impl PinInit for InitClosure +where + F: FnOnce(*mut T) -> Result<(), E>, +{ + #[inline] + unsafe fn __pinned_init(self, slot: *mut T) -> Result<(), E> { + (self.0)(slot) + } +} + /// Creates a new [`PinInit`] from the given closure. /// /// # Safety @@ -1108,7 +1138,7 @@ unsafe fn __pinned_init(self, slot: *mut T) -> Result= <(), E> { pub const unsafe fn pin_init_from_closure( f: impl FnOnce(*mut T) -> Result<(), E>, ) -> impl PinInit { - __internal::InitClosure(f, __internal::PhantomInvariant::new()) + InitClosure(f, __internal::PhantomInvariant::new()) } =20 /// Creates a new [`Init`] from the given closure. @@ -1127,7 +1157,7 @@ unsafe fn __pinned_init(self, slot: *mut T) -> Result= <(), E> { pub const unsafe fn init_from_closure( f: impl FnOnce(*mut T) -> Result<(), E>, ) -> impl Init { - __internal::InitClosure(f, __internal::PhantomInvariant::new()) + InitClosure(f, __internal::PhantomInvariant::new()) } =20 /// Changes the to be initialized type. --=20 2.54.0 From nobody Mon Jun 8 17:38:45 2026 Received: from CWXP265CU008.outbound.protection.outlook.com (mail-ukwestazon11020125.outbound.protection.outlook.com [52.101.195.125]) (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 756AE43C051; Wed, 27 May 2026 17:20:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.195.125 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779902431; cv=fail; b=IWknSvN8EfmR9VS3Nbx+wEeFSObvXMoSCZTXY1er6R7j4FNwV8OqFHPeTglrQ8jSGL3aHNQ2m7sFmVAlUa4oVLwqTVoQE7mUyV1RnzwGKodlu9NOIVTT5iu81e4Ffy6tsevs1to5jrvDSyuXMPqx5lcOqKYejD39A3QE9XoIf/g= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779902431; c=relaxed/simple; bh=MjQFSz2PbR0NaJrNhtBpGxFU5eqkE8VyzPV6FKi9OVQ=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=Uc5G2kkuUbMUe1ADQSE/DYrIGoZGzxokyVo3xJCOHo5shdjmc3EkzcxfUVVP3YW2uh24GimI1Ka/GDvUpEbPhkyWzXroIBsag3EvfRkENkmPcKLeLXqUVOJpTCFW7luGifk2F0Ckd3xuMkmMe00XwJ9HR94WKykIOdnjO++VHe0= 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=L0I3g73r; arc=fail smtp.client-ip=52.101.195.125 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="L0I3g73r" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jbiUs5GSB23ZmiMVCwRLXqTxbXW76CqF/mPCrj1TtGIC9ii58X4v297KUmxAmunI1dX2nGfRguNrOtxCC8FGTGbKXGttx8VDrxinPh/6zJNlMezE3jZIkkfTy1ZbaQ8+G9n5Lb2UwjXQE8WDQG8QFWacANxojaXORZwR7u5RfuVd2fEMG0hphvaj57WZiozF6ISJrfC3Zc32IzW0URKq8tI2ccvXWTNnrgo5gSKvjMlF8jidWJNkqWtfkBynGswYtCw5nUCIhSdhjVcAg1/4SDEnWP0SXC0zEvCOYAdU3M9L/6E0jXL3hsJbdkTD3n3lmH7AR0p86TUR2sJivKM16g== 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=P/r/mvq9ctJ7Q6ic+5EHYlhMYTG1o58XZrE+OPv5GwI=; b=eqSF78yI8U/QkR0vwR1kpvkPc4jU/VU8nO+uuv8NBeeMeQ+8K9UnlTMQYmN/Jhwo/uDLEtP4A87K8NN6fF5YGsOaOBcUF+HATUdqfrG1I5wtSTLIcUfdaLHI4SgkXkHHpSFh4wCzjVjg77wqzpC4Gomj8/IJuUokc5Eq3RVQd7kn8SF8f8CTZFcCLHXE7RVYVhyLCh2GCIrocomOBvaO27KH1L8UUb9bYXC5W2GMBsI3T9EBwzGggDOhosTAjGdkbKNIC7k84GeHM5iAjUqPGPQhMdxo6AkhJV0ZV3bB5WfsAs7a1tWdRT8J3dKXue8lccawewsbT1vE7hHglPfApg== 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=P/r/mvq9ctJ7Q6ic+5EHYlhMYTG1o58XZrE+OPv5GwI=; b=L0I3g73riIZDiHrgM2MJ08fzV3ZSBVTfdr7G57BwrsYYwSQxxAmVfhqPu1cai1MPM6iUMjFvfOot1iyG6+WYEB4oI/mwsQz7k3nXFsLt4AzAHyXOJwe4O6CMMiq2wS/2QvDjJbGymJkdL+8t+qn3cSVgTK8iMY647C0jAOGNAkc= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=garyguo.net; Received: from CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:27c::13) by LO8P265MB7781.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:3ad::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.12; Wed, 27 May 2026 17:20:07 +0000 Received: from CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM ([fe80::6c9e:93c8:10db:e995]) by CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM ([fe80::6c9e:93c8:10db:e995%6]) with mapi id 15.21.0071.011; Wed, 27 May 2026 17:20:07 +0000 From: Gary Guo Date: Wed, 27 May 2026 18:19:57 +0100 Subject: [PATCH 6/8] rust: pin-init: remove `E` from `InitClosure` Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260527-pin-init-sync-v1-6-e20335ed2501@garyguo.net> References: <20260527-pin-init-sync-v1-0-e20335ed2501@garyguo.net> In-Reply-To: <20260527-pin-init-sync-v1-0-e20335ed2501@garyguo.net> To: Benno Lossin , Miguel Ojeda , Boqun Feng , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Gary Guo X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1779902405; l=1840; i=gary@garyguo.net; s=20221204; h=from:subject:message-id; bh=MjQFSz2PbR0NaJrNhtBpGxFU5eqkE8VyzPV6FKi9OVQ=; b=4EVVAsm/h/CCdAs5HUtVXg0Mm2MZddEaqH08AD9sPHmOI5vUoS0jn+NKPpOY21aXb9vMW5kmY TixcM16c9xYAQVqb3FmzlXTnS4i+O34Ynx/7EcBp0rn/lQzKiOM/SAb X-Developer-Key: i=gary@garyguo.net; a=ed25519; pk=vB3uIX95SM4eVrIqo1DWNWKDKD2xzB+yLLLr0yOPYMo= X-ClientProxiedBy: LO4P123CA0524.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:2c5::9) To CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:27c::13) 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: CW1P265MB8877:EE_|LO8P265MB7781:EE_ X-MS-Office365-Filtering-Correlation-Id: 393e8e94-c669-4318-f120-08debc143315 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|10070799003|7416014|376014|18002099003|22082099003|6133799003|56012099006; X-Microsoft-Antispam-Message-Info: PMm7R+8eHKGgU0EYuwXaqIG1SinXABrd//vnqQwhQQPBBaAgZV6GjybndNcXhVvQkeLPp7FUbqWPMUJRuvffClWS4a4/Lt1cf0XIz5I44wYKSMIh0JaGy8Pd5uja+0KoO0EHP1SlknIIU53h4gyOoIpJm6Wg5/DSaSXPCO35OEG/QR4r9Qiz6zzOKW99nhq5dDj9luxwH1yeTaniV8FqiNUJctRG7HgYQgJ5avOzRKPoyFl6BphQlhQHpDDEviUbQW1dXURK3/MjzYMNvzFwzo3DhvVT0TNtbtn29vV2rcAhKsmAjMlhoC/sMpgYSsg0R/relymSX8CUH+d1oXSOFfjFQZHAblckU/s0/KeHumXRUmWPuKfpqwzgDOzlj1X5lNIuCiT3AELodNCK+D03jBphYLpSCzVyUzh2Zrgi/fMNsSn4jKp9i7mfrLF4XH0zxjfkq0VSMs0e1ENT1wfqvn7mrRh15c2PWDRwHzFsn42phnHqqozQAVKeA2CYqzcttUglorfeZyOmxS/n9cv3GTWSlzUH8HkdRx2kh9RwzDP9ByiFkLTEvJ1qLaQDwnSJJf5wtTZNZ70nIVGHDYDWPacUh7CxH68MxMRK6KotbxNkHQbQKNm8EWItuwMQqigwInSm9LZ9+PepKqyW4QKIT0qNp8FFwKVo+MCs7vZOHL1GA+4xyitNvgEgpnni7The X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(10070799003)(7416014)(376014)(18002099003)(22082099003)(6133799003)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?c2IwR3Y3dG5WTWwrcWF6OU9IbHlmUGhjQ2c4OU5vY0tqYXdLZkc1Uko4akFl?= =?utf-8?B?VncyMmNBbEd1OFVBSnpUc0o4VGdnZHhZbEJtSzFLWHVBVnllWmRuTnREV21l?= =?utf-8?B?VEpLamNUS0lYRXUxUlE1WFVhM3V5Z1M4ZllKcFFqOWhXbmQwNE5yNWk2Nmd2?= =?utf-8?B?RGo3Nnc4RW9YamE3KzNYVHdzTExuUkJTWDhTSW1wSytJNFBnRDFDTjA2eUpv?= =?utf-8?B?MDgrNytlYWZocnowQWJGeWwvZFFMY3BSL2FyUEhFOHFEdnNYUzREUzlVUnBS?= =?utf-8?B?NW5CYnB2Y0tTRUpyand5TDVBZ3I4YzV0Y1NjLzZJdmZrZWI4SEJxWU8yS3py?= =?utf-8?B?eU5xMndDTFhOVTdTWGk1RTNtbWZWVWVhOWVLNUVGdXVMT296UTN1ZFZBMEF3?= =?utf-8?B?QnU0N3BQaXlncmlhMnE1M3hRaVIxZHdOdnFMNFo2Z1V5UWZ0b05oSTRNalgw?= =?utf-8?B?QUlPUGpDRGY5cGZVRm9QazVobldRVkYyMVhtRVRPTGViM3JTUEZ1YlZCeGZi?= =?utf-8?B?OTNDblNncTVEaGQ2b2ZuUE1vRzJjTUxTaXZYQUh1R2JYNk9DdE01bnhuZ0cr?= =?utf-8?B?aE1ncnN2NWR2WnA1NjEvV1pGQktQc2NydGdkVXIwZFl4NnRySy9OL0k2OTFk?= =?utf-8?B?eEl4OFIvaGd2UjVDbXE2NnFnUHUvZFdRcVBvbUgxWUJqNWY2bzNuRS9OQ1VW?= =?utf-8?B?dTQyanI3Vld1aEgyNDd6ai9CaTh1Z3JOS0taN21IMXVveFhCbWZOMXd5MTZF?= =?utf-8?B?SWZSeE1sRzBCeStUaExDT1BiT2xTcGR3cFJSRUZJbDhqUDRMOEVrRHpQWVFT?= =?utf-8?B?MkJ1dVJkUGlSUnIybFZHaEFzdVg5VzBIMUdhekh3NHZ0UC8zVUVrWlVGajR0?= =?utf-8?B?TUh3UjBpeTBiRFRsaEZoVjRuN0cxN0pXYWIvYkRTbFhTTTRkR291Qkc1a1dG?= =?utf-8?B?eHJRblg2amFmV3lLT2kwQmZocEhaWm5HMmxQSWwzblZNTWY2bzhjL25SMlZU?= =?utf-8?B?NDNwQnVOc1NzZ0tKVnp6a2FSK25mM2oxY2N5N3dGRXhXT3JUZFJUUVhZWFBQ?= =?utf-8?B?bzJId2hNYkRJM2NuMXhFSzFXOFNuM2psZlZ2UmZ0Y2RHNWVzUTh0eUEyd2ZH?= =?utf-8?B?TWZTdUQyS1JDbzVFb2FFdnFoaS9aMWU0VXVuSU83bFJ6M0MzWUxTYmswNHVu?= =?utf-8?B?YkdjWEtEU1hxOGhUKzk0dDFCMm9KK1o4Rm50ZlNmZ0VIMDNYYm1PY24wWVFM?= =?utf-8?B?M05NVEJHUy9ZZWxlL2NBTk1lYzdtaklDMUU3b2xoaUxXN2ZmY2hEQWc2dDlM?= =?utf-8?B?dVdIVU1HTkIvUzIyek9CWUNQS0RnOTdadlBOM3ZoK3IyVkE2SW5pSHVIUTdU?= =?utf-8?B?bGN0L1lLaFgwZ0F6elRkZDUxWU1aQjkwTnh4dHBKZ0MvUHR3Z2J0SVA2eHVO?= =?utf-8?B?U1kwa0I2Ukk3YzJQZTlaYXhzdmU0VThGR0dDVzN0TUZNdjVPNDVWV0VoYW5Q?= =?utf-8?B?SDdhT2drV1BRYkFhbUVTc0xOaEhxZjcxR0RoeHpyNWpoQ2RhajlsNVJ6Nnp6?= =?utf-8?B?cjl3RVN6RTJlZWhCWU1LbzF0T3NDcG5ON2xreERmTUtSQWpua2lDMjN5Q2ZB?= =?utf-8?B?d2R0L2d6M1V4WTA1dyt4dzBnWkN1dWJZeHA1ODV6cCtqKzc2NWh3KzdsWUFP?= =?utf-8?B?MjcrL09PSGZicEZ5aDlmMGxaTUtFYkk3V0ZqRTRIYkUvR3pGK3pYbENBVzhr?= =?utf-8?B?MnBpazN4alRZU2NaYWg4SEF1bUxEV21NQ0lEcnhKNzJuUW9HT3lqTDNkNEF0?= =?utf-8?B?eElSZm9UU3RpaUQ4Q0lHSEUzUFNCRGV2dVJpU1FBbmFFQ1dDeGgveXlSY0hl?= =?utf-8?B?WGRDOEVnb3ZiQ3hwTFdEL3MxZmQzVHVWam1KNHdhTW1DVEZONnFoMHY5cVcw?= =?utf-8?B?bzBTelcvSHg2OWxxeUNXeEtEZnhvQXUra3VGM1ZrdlFhbjI0bXJsSllxc2lE?= =?utf-8?B?UDdZeVlQc3dyTHNtZytPV21lZjdydXVVcXRzS2p5WDRZVVFqZUN5Z0FqR3oy?= =?utf-8?B?cFQ0Qnc2OFlrb3Ywb2N2ai9ZK3UrK0thZXV4YzZtK0VMNXNqQmlMV3FVSG9i?= =?utf-8?B?aGNLNzJETWhCdmlWSDczWFBNMURkanUwWlVOY2J4UDhBRTJXU0lJV3dZdHVn?= =?utf-8?B?czI4NUVTdk1xakFwWno3OUdpWVIzRExDREpUTitKZGNUT3VDUXBuZ3BxZ1gz?= =?utf-8?B?Zi95bWdKbThJdGU1QlkwblNUYlQwZU5QVnErZzZQWmpmTnJlZmtmVVozald5?= =?utf-8?B?NjdGbm9SRHdMY2xDVFR1WXJNRHNNZDlJaytURmpyV1VaUndkUTIzdz09?= X-OriginatorOrg: garyguo.net X-MS-Exchange-CrossTenant-Network-Message-Id: 393e8e94-c669-4318-f120-08debc143315 X-MS-Exchange-CrossTenant-AuthSource: CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 May 2026 17:20:07.6916 (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: qzNBW9RozGzvuGEQ3I3+V1tFruKR0NLSxz8Vck7OYhDuVzLG8mw/h89LvsToTg9oYeJocuV4+Kh7g51hcwDZ1A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO8P265MB7781 Move `E` from type to trait impl block. This greatly shortens the monomorphized type names. The `__pinned_init` function name is only slightly shortened as it still encodes the `E` as part of `PinInit` in the symbol. `T` cannot be moved to trait impl block otherwise it will start to conflict with the `impl Init for T` as Rust cannot deduce that there're no types that fulfill `T: FnOnce(*mut T)`. Signed-off-by: Gary Guo --- rust/pin-init/src/lib.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rust/pin-init/src/lib.rs b/rust/pin-init/src/lib.rs index 9732af32795c..fd40c8f244a1 100644 --- a/rust/pin-init/src/lib.rs +++ b/rust/pin-init/src/lib.rs @@ -1096,11 +1096,11 @@ unsafe fn __pinned_init(self, slot: *mut T) -> Resu= lt<(), E> { /// /// It is unsafe to create this type, since the closure needs to fulfill t= he same safety /// requirement as the `__pinned_init`/`__init` functions. -struct InitClosure(F, __internal::PhantomInvariant<(E, T)= >); +struct InitClosure(F, __internal::PhantomInvariant); =20 // SAFETY: While constructing the `InitClosure`, the user promised that it= upholds the // `__init` invariants. -unsafe impl Init for InitClosure +unsafe impl Init for InitClosure where F: FnOnce(*mut T) -> Result<(), E>, { @@ -1112,7 +1112,7 @@ unsafe fn __init(self, slot: *mut T) -> Result<(), E>= { =20 // SAFETY: While constructing the `InitClosure`, the user promised that it= upholds the // `__pinned_init` invariants. -unsafe impl PinInit for InitClosure +unsafe impl PinInit for InitClosure where F: FnOnce(*mut T) -> Result<(), E>, { --=20 2.54.0 From nobody Mon Jun 8 17:38:45 2026 Received: from CWXP265CU008.outbound.protection.outlook.com (mail-ukwestazon11020125.outbound.protection.outlook.com [52.101.195.125]) (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 BFD5F44CF56; Wed, 27 May 2026 17:20:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.195.125 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779902427; cv=fail; b=h5wORaU5PYWDG8yspGjJu5hhIgUPZ2A6y9OQ5eY0PK4tSTUFDdxChGwSFhJfczQ5UNMYCC+5EbYecDWEDeVd8hQv25hWkVIUPCU26/9VUQKvoCzFyvssN5OoSI1lzU+4Msvrvv9iYza9pf2P3nrhC0DoYeCvBgzHsIdoe8pKYEY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779902427; c=relaxed/simple; bh=6llyztURJmhahUxoKrYpj516sin0qEZla1z6Wyy4M1g=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=Y9Gh/nsRtaLPvRIaAmFaSasGichqDQfkNbVvF/dDDGrF6vsL5HR0XTLiUhTAsUafs4d3ibGKOBKmDw6P6biiUq5r6tQuEwJ8Wmltqk4Q7brCxi7gTa07Rk/WPwgS2hgH1Aa0SNv5mi0Tqm44bwTxhmTuW7XRd1VwluYJqzQrcjc= 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=DTpMKK7Y; arc=fail smtp.client-ip=52.101.195.125 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="DTpMKK7Y" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yM3HJvFu7+oen1xdxZbixYyErqq9ADVlVl8SeCeUyzwHjztJP2uz5BufTgfkAAi8mXM1pLvNMLu8dY5kFVrkVBshBNzY5QwbtF1N7ViQZiaiyivDyQMq8fBbAHWUWJulx72crNHa2Pz3I+wy/7970yMAlAyPOyMI7sM0xSvU+dPYoE+3KTlZ2vC+vIzWRs3/EKqwxbSyClu4zn8AeiuA1w6yBEsefc3JbnDSaVLslqCZ1zVrxZyVmRO58mKkXb/FA/L2XgNojqvR//7GuzsQk61Hq5umefaZJ6ZqT3PTmKNbOukaGpYWhMBeM/eoLQaiK/vhYpGUQZJCGdrlfYvhRw== 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=7t8V301t+UQEptToANWEiMsECg9txwurLeYKjIwSq8w=; b=CWsKyGCD0XRL7XkMTOBSLml37NfOAVRch9LtyEBX9zxZiIc3cP6PUiIhYABgfz+i67CtYn3zC6NagBOiOzCXMU6aACZxAd8XrgxNEdHYDk1fD5OZrj0SR6FpNoq+Tw9kgmbljGEQ57EW1oon6d4DatfJ2n840YX08CbiBkmeQeoP/31W1ejvz2ppyMx3EVPg/IoIYhPJB1cfOE10MNSlGDQx1g3iMGeve5vNjeLZ32eCPUp2t+mju707QDptd2xn+TKp5F41VVorykF/z81EjL02kPXO/1wFYbgX/49zJ06xUEEDASjTlr7Tznv5o1lzXu+QTcnhc3pusCoC065yfQ== 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=7t8V301t+UQEptToANWEiMsECg9txwurLeYKjIwSq8w=; b=DTpMKK7YWi0Iv4xTWPYTByVRxO57I2KuAUwllufdTVcgMHyfmasYAYPZHRjF/qmwLADk++EK9iOT3m3bODMW34wvX0CKOKF1yQebOWSzwm9/i2vZhU4uhuESybincvrP9o8B3yvA3mLTRwfJHhh6NlVjgJYwyX8Wel+ONu9J+zM= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=garyguo.net; Received: from CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:27c::13) by LO8P265MB7781.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:3ad::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.12; Wed, 27 May 2026 17:20:09 +0000 Received: from CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM ([fe80::6c9e:93c8:10db:e995]) by CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM ([fe80::6c9e:93c8:10db:e995%6]) with mapi id 15.21.0071.011; Wed, 27 May 2026 17:20:08 +0000 From: Gary Guo Date: Wed, 27 May 2026 18:19:58 +0100 Subject: [PATCH 7/8] rust: pin-init: make `[pin_]init_array_from_fn` unwind safe Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260527-pin-init-sync-v1-7-e20335ed2501@garyguo.net> References: <20260527-pin-init-sync-v1-0-e20335ed2501@garyguo.net> In-Reply-To: <20260527-pin-init-sync-v1-0-e20335ed2501@garyguo.net> To: Benno Lossin , Miguel Ojeda , Boqun Feng , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Gary Guo , Mirko Adzic X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1779902405; l=8925; i=gary@garyguo.net; s=20221204; h=from:subject:message-id; bh=sELLWy14SmP6t5JZ0JJw1J2MIb+IB3PGAdLM0rO0FgA=; b=GVng5CouifM6SZIIi8xIxWW6WnWhhBKNCdASrtm3n2nLfspy/xxedtHRfKSNViZzsYBbBrLFq dCA1Djy5g2bCZphRwtLVx+5LY0fPUmK5ll3d3WaBLkcs4C7wdKrrQf8 X-Developer-Key: i=gary@garyguo.net; a=ed25519; pk=vB3uIX95SM4eVrIqo1DWNWKDKD2xzB+yLLLr0yOPYMo= X-ClientProxiedBy: LO4P123CA0524.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:2c5::9) To CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:27c::13) 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: CW1P265MB8877:EE_|LO8P265MB7781:EE_ X-MS-Office365-Filtering-Correlation-Id: 6743069d-2b08-4d9a-224e-08debc143353 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|10070799003|7416014|376014|18002099003|22082099003|6133799003|5023799004|56012099006; X-Microsoft-Antispam-Message-Info: QqKF2lerK3c3j4r5uMg7DEZP04uwwOCAH5fCpVgf6wHInw+sU1qYqmz3bEVOPl/66t2UdAjueXl2gwv0zw4c5bfnSgwFTVRDfFtICkLoj679vF2WdmJKzBOsA6NzzohdLxQpBIc+DKcXUUBnqUIuqyfzrw60AzEYvZKMEYhyJGMPyO28YB0nIUlzRWKAaw6atoDox2s/SDRDJ/r2iNifUZnQswu0ytfwUPbmBSUUHuWc8pkxyuWH3m/aqwNIXLlcZkom1+hd4/EOUM+8Ya7W5fSrQYN9Su80aDJ0gCmh2eVjTVYt8ziL0svjEWj1twcgpsYv2Ci9k68/FqoH37+7OKksg1XBonfVD8DtVICk20EhYyZz2Zvm6xbXFRPuaTjXyZ8tFdphoY+gZoqX97o9NkoEepIHT5iLvbtNjSFAKraX+CfJ0gbcvQWtq8ihD3Hp06yLpC+DOawJFR6P7Mg5QVQqbvnUYXplylsGcTewi9r5GJkEVtqsEZ/d+LwoT2IMbo8QF1LH+o6YQtIO29xIjfeACjFiulR6F3x3X4KOQAGbJu6g41LXAAgywgmgMspsf1uf/CIFmWiLw+hWmrzwqaRvHT3Dw9N0+UXPG33anWuSBnQgsVguTHP1VTHQbc9uh6pkB1qrY7YKgO3Y863LxOI3vVzktyy3wMkgkleD+en7Wcr6ttOIQ7K0IdWs0ulz X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(10070799003)(7416014)(376014)(18002099003)(22082099003)(6133799003)(5023799004)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cE5OMytJNS9CUG9hYzRhaXIyUVFuT1FTcjRGZThOS0Z4TWZiOW5BS2h1ZEli?= =?utf-8?B?ekpETVU3bml1SEpkdTRiVkFZanZqWWpnLzUyV2xIa01aSzR3d0RSbVd5RUd1?= =?utf-8?B?VmlBeWlwaTVhTy9ZUFArcmdSL3dpSTJxYnFyc1REa2FZK1ltVlRnbUQ4bkpa?= =?utf-8?B?elVjVWtVV202cEdobE45SlJkZW5FaitCOFhWUkJKTkJxcm1GRURzVlZEd2dz?= =?utf-8?B?SXBxZEhla0lSN2paR0VRMlJpczcvVnZ5Q2dFMkowdTRab2NkKzlWMkRZTXRx?= =?utf-8?B?dFJKaDIxZ25UWGVUcHBQSTlVeWttY3hva0EyQXdvdDlza1BqRkhIQU1rTEdB?= =?utf-8?B?aG4vaVNzVXdFTnNhaTJOQlVqUEgxNzlCUURjZXhkRURpRmw0TG96N3RYWjBj?= =?utf-8?B?OW1rM2tla2V4L3YzR1ZMR1ZLeU01OWZUdWhSNlQ2UVRpVy93Y3pxeEJ0MlMr?= =?utf-8?B?U1d1YTFodDcyUkEyWUFWd3NaYVBjRFVkNmx4Zm9hdzEyMTYvekkxYjgvWUVM?= =?utf-8?B?b3dlR09zTFpXbEpyU2hqUWtWd29FWFNKOWh1bng5YWZRUlJOYXVXMVJMWVph?= =?utf-8?B?bklJT2E3NmN1cUQva0tvZlRBOTlnMEduL244WWRyWmx4UTRTSmErdXhwZXEz?= =?utf-8?B?VVA0a2YwNnE1ZTVsSll4UlZXZWtuNDVPWitJMUhYemhFaVg5UGxJQXpyQTB2?= =?utf-8?B?RXUvOWtmeU5XZzhuY3FIWE1xSlVGVWtTYUZYUHNGNExJSmRvcjIxRksreHIr?= =?utf-8?B?UHgrVUsxVEJ4N2ZFeGZtS3ZoaFBYcVN0NCt4RU43NUlOY1NieWdjekV3dllZ?= =?utf-8?B?M0QxbEdwY3MyVUo0NWpTOWVOV2psbUZRMnlQV21ZRThRaTg5ZVF2dVoyVFl4?= =?utf-8?B?YlZlcUE4SDlyQjdNL1FTaFNCOEdJQ0ZINGpNSHdLWE9sYUI4MFhGd1RYT3RN?= =?utf-8?B?anpwNFlSNGdZV1M2TWNtMlJJMFcwUlFJbHovMDkrRFBSRjZ4b3hBZGkrMERo?= =?utf-8?B?OElEcU54bWtiaGszVHN5SzBsN1BBMkNxalY0emJuTGRna0NUVE43Kzd3Y1I1?= =?utf-8?B?Njg2amV4QkxKbW1FZGpJL0NZYmE5R1hxK1BFRXhDaCsrK3ZhZWRQRnBuam5l?= =?utf-8?B?dXpUYlRxQXRtU29XYlV4UUpEMzBvVy9STk5qL0JEV3FGenJieWYyaUI1dWRX?= =?utf-8?B?djZFcmgvVUVKTEVWeTBSN3prR2RTWmdWU0dCV25pQWRTd2JZK0dpa0hWYktQ?= =?utf-8?B?UTdWamdQNjdWUmxYdUJXSzBnYmdhWUc5VEhnUXV5a0RvaVhvQW5EWnRPL1lC?= =?utf-8?B?MjNDNU5jYk82cGFyc21PT1oxdlg0SVdkekIvRGk4VnBMQmNMS3pnMFh1VVZv?= =?utf-8?B?bTNpR2NDNXphSFp5ZStZdkRvdHNqMzB6YWlwYmlPc2J1ZkF0MmxBc3JQekNT?= =?utf-8?B?SW9KYnRtMlpyNUhCdVNSWW03ZTVrV09ZblMxZmNUbUFwRTMzYnA1d0RQdnkr?= =?utf-8?B?TU5POGNLYm9mK2xtc1lFRzlRaWhueFFZN1Q5V0EwYzcwNmE0R0diVkJQUWYr?= =?utf-8?B?ZDBIcW9FVHJHODJxMVViR0htelhGS1ZQSU9jWDk4dDhsd2ppZzBHb29uYTRm?= =?utf-8?B?ckhraEVRWm53cFU0SE9RdmluRmZENnEvRENyUDIvT3BMNndMbCtDcjF5UUc4?= =?utf-8?B?cEdVYU1WQlRubDUxbFRDM0dpOEJJUCtyRUVaVDlaQi9tNXZuSjlYMHBNWGxL?= =?utf-8?B?bitLY1NGaWlOdyt0Q1ltcDBqSElYcSttVndkTjVjUVk5My9uZ2dHUWljZ2d1?= =?utf-8?B?VkRQQzkxOWN0TlZwemxhOTdNTEJkamNjVTlnT3I2T0ZyZWRQNHJMdkVRUnp2?= =?utf-8?B?WWRmemhjWThiM1ZueE14TnNrTVhBdVc1WWJNZXM0OWYwU2ZNdWUvUUlKNnNV?= =?utf-8?B?TXdoR2gwNXA0c1RQK1RxZXBWU3lhb0JVSDJWR1J1ZnRQS0JFWFZ2SFl6RlFP?= =?utf-8?B?MFZnVi90VUlFSnhlSTRBOTZzK1JKaEtRdSszWmoxdFZwenN3Y1hhSVVJaEFW?= =?utf-8?B?aHBJbEpudDJQWlhXdGRqSE9yVjZKYWg4Z3Q2M215a2hQWHlnNFJSYlp6czhQ?= =?utf-8?B?bzV2eXB3c0ErbHlTTENNWEw2ZVFleXpOUlJzVHZwYlRiU3JjK3VSTDJkNXJH?= =?utf-8?B?dHRDeGFWVTN2SWhxanlvVEVSL09jQTFHVWRERitBby9yYTFDVHd5M0J2UmxY?= =?utf-8?B?cVR4Z2srdHh5dFVYUjhwYkxEYkZQUzFhL1VzY240cFVFMVpCN0hiVjhBUnBt?= =?utf-8?B?S0hEOUl1ZldOcXFjS2p0WGtib3NrZC9FWlJIU3Zhdk5jMC93STdZdz09?= X-OriginatorOrg: garyguo.net X-MS-Exchange-CrossTenant-Network-Message-Id: 6743069d-2b08-4d9a-224e-08debc143353 X-MS-Exchange-CrossTenant-AuthSource: CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 May 2026 17:20:08.0714 (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: sdpY0BtWAGxJfLcIhA/S2TmMuuAESYF8gAjlXfC2PxxZALa5dZBtKJFbOR6UHhPVrlWF+pCG4Jn6V2Qu/rc3Ug== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO8P265MB7781 From: Mirko Adzic Adds a guard type that safely initializes an array by running an initializer on each element, keeping track of the number of initialized elements. In the case of a panic or error in the per-element initializer, the guard drops the already-initialized portion of the array; nothing is dropped on success. The previous code only ran cleanup on the explicit error path. If the per- element initializer panicked partway through, the elements already written into the array would be leaked: their `Drop` impls would never run. Reported-by: Gary Guo Closes: https://github.com/Rust-for-Linux/pin-init/issues/136 Suggested-by: Gary Guo Signed-off-by: Mirko Adzic [ Add `#[inline]` to `ArrayInit::drop` - Gary ] Signed-off-by: Gary Guo --- rust/pin-init/src/lib.rs | 157 ++++++++++++++++++++++++++++++++++---------= ---- 1 file changed, 115 insertions(+), 42 deletions(-) diff --git a/rust/pin-init/src/lib.rs b/rust/pin-init/src/lib.rs index fd40c8f244a1..1fdf9c2366ff 100644 --- a/rust/pin-init/src/lib.rs +++ b/rust/pin-init/src/lib.rs @@ -1193,6 +1193,117 @@ pub fn uninit() -> impl Init, = E> { unsafe { init_from_closure(|_| Ok(())) } } =20 +/// Allows safe (pinned and non-pinned) initialization of an array. +/// +/// Drops the already initialized elements of the array if an error or pan= ic occurs +/// partway through the initialization process. +/// +/// # Invariants +/// +/// If `ptr` is not null: +/// - `ptr[..num_init]` contains initialized elements of type `T` +/// - `ptr[num_init..N]` (where N is the size of the array) contains unini= tialized memory +struct ArrayInit { + /// A pointer to the first element of the array. + ptr: *mut T, + /// The number of initialized elements in the array. + num_init: usize, + /// Initialization function factory. + make_init: F, +} + +impl ArrayInit { + #[inline] + fn new(make_init: F) -> Self { + Self { + // INVARIANT: `ptr` is null prior to any initialization. + ptr: core::ptr::null_mut(), + num_init: 0, + make_init, + } + } +} + +/// SAFETY: On success, all `N` elements of the array have been initialize= d through +/// `I: Init`. On error or panic, the elements that have been initialized = so far are +/// dropped, thus leaving the array uninitialized and ready to deallocate.= The `Init` +/// implementation executes the same code as that of `PinInit`. +unsafe impl Init<[T; N], E> for ArrayInit +where + F: FnMut(usize) -> I, + I: Init, +{ + unsafe fn __init(mut self, slot: *mut [T; N]) -> Result<(), E> { + debug_assert!(!slot.is_null()); + // INVARIANT: `self.ptr` is non-null once initialization starts. + self.ptr =3D slot.cast::(); + for i in 0..N { + // INVARIANT: Elements `self.ptr[..self.num_init]` have been i= nitialized + // thus far. This hold true for every `self.num_init =3D i`. + self.num_init =3D i; + let init =3D (self.make_init)(i); + // SAFETY: `self.ptr.add(i)` is in bounds. + let ptr =3D unsafe { self.ptr.add(i) }; + // SAFETY: The pointer is derived from `slot` with a valid off= set. It is + // thus valid for writes and points uninitialized memory. + unsafe { init.__init(ptr) }?; + } + // INVARIANT: `self.ptr` is null after the array is initialized. + self.ptr =3D core::ptr::null_mut(); + Ok(()) + } +} + +/// SAFETY: On success, all `N` elements of the array have been initialize= d through +/// `I`. Since `I: PinInit` guarantees that the pinning invariants of `T` = are upheld, +/// the guarantees of `[T; N]` are also upheld. On error or panic, the ele= ments that +/// have been initialized so far are dropped, thus leaving the array unini= tialized +/// and ready to deallocate. +unsafe impl PinInit<[T; N], E> for ArrayInit +where + F: FnMut(usize) -> I, + I: PinInit, +{ + unsafe fn __pinned_init(mut self, slot: *mut [T; N]) -> Result<(), E> { + debug_assert!(!slot.is_null()); + // INVARIANT: `self.ptr` is non-null once initialization starts. + self.ptr =3D slot.cast::(); + for i in 0..N { + // INVARIANT: Elements `self.ptr[..self.num_init]` have been i= nitialized + // thus far. This hold true for every `self.num_init =3D i`. + self.num_init =3D i; + let init =3D (self.make_init)(i); + // SAFETY: `self.ptr.add(i)` is in bounds. + let ptr =3D unsafe { self.ptr.add(i) }; + // SAFETY: The pointer is derived from `slot` with a valid off= set. It is + // thus valid for writes and points uninitialized memory. + unsafe { init.__pinned_init(ptr) }?; + } + // INVARIANT: `self.ptr` is null after the array is initialized. + self.ptr =3D core::ptr::null_mut(); + Ok(()) + } +} + +impl Drop for ArrayInit { + #[inline] + fn drop(&mut self) { + if self.ptr.is_null() { + // Since `self.ptr` is null - either no initialization has bee= n attempted + // or the array was successfully initialized, per type invaria= nt. Nothing + // to drop. + return; + } + + // SAFETY: Since `self.ptr` is not null - the initialization has f= ailed + // partway. Drop `self.ptr[..self.num_init]` which are initialized= per + // type invariant. + unsafe { + core::ptr::drop_in_place(core::ptr::slice_from_raw_parts_mut(s= elf.ptr, self.num_init)) + }; + } +} + /// Initializes an array by initializing each element via the provided ini= tializer. /// /// # Examples @@ -1204,31 +1315,12 @@ pub fn uninit() -> impl Init, = E> { /// assert_eq!(array.len(), 1_000); /// ``` pub fn init_array_from_fn( - mut make_init: impl FnMut(usize) -> I, + make_init: impl FnMut(usize) -> I, ) -> impl Init<[T; N], E> where I: Init, { - let init =3D move |slot: *mut [T; N]| { - let slot =3D slot.cast::(); - for i in 0..N { - let init =3D make_init(i); - // SAFETY: Since 0 <=3D `i` < N, it is still in bounds of `[T;= N]`. - let ptr =3D unsafe { slot.add(i) }; - // SAFETY: The pointer is derived from `slot` and thus satisfi= es the `__init` - // requirements. - if let Err(e) =3D unsafe { init.__init(ptr) } { - // SAFETY: The loop has initialized the elements `slot[0..= i]` and since we return - // `Err` below, `slot` will be considered uninitialized me= mory. - unsafe { ptr::drop_in_place(ptr::slice_from_raw_parts_mut(= slot, i)) }; - return Err(e); - } - } - Ok(()) - }; - // SAFETY: The initializer above initializes every element of the arra= y. On failure it drops - // any initialized elements and returns `Err`. - unsafe { init_from_closure(init) } + ArrayInit::new(make_init) } =20 /// Initializes an array by initializing each element via the provided ini= tializer. @@ -1247,31 +1339,12 @@ pub fn init_array_from_fn( /// assert_eq!(array.len(), 1_000); /// ``` pub fn pin_init_array_from_fn( - mut make_init: impl FnMut(usize) -> I, + make_init: impl FnMut(usize) -> I, ) -> impl PinInit<[T; N], E> where I: PinInit, { - let init =3D move |slot: *mut [T; N]| { - let slot =3D slot.cast::(); - for i in 0..N { - let init =3D make_init(i); - // SAFETY: Since 0 <=3D `i` < N, it is still in bounds of `[T;= N]`. - let ptr =3D unsafe { slot.add(i) }; - // SAFETY: The pointer is derived from `slot` and thus satisfi= es the `__init` - // requirements. - if let Err(e) =3D unsafe { init.__pinned_init(ptr) } { - // SAFETY: The loop has initialized the elements `slot[0..= i]` and since we return - // `Err` below, `slot` will be considered uninitialized me= mory. - unsafe { ptr::drop_in_place(ptr::slice_from_raw_parts_mut(= slot, i)) }; - return Err(e); - } - } - Ok(()) - }; - // SAFETY: The initializer above initializes every element of the arra= y. On failure it drops - // any initialized elements and returns `Err`. - unsafe { pin_init_from_closure(init) } + ArrayInit::new(make_init) } =20 /// Construct an initializer in a closure and run it. --=20 2.54.0 From nobody Mon Jun 8 17:38:45 2026 Received: from CWXP265CU008.outbound.protection.outlook.com (mail-ukwestazon11020125.outbound.protection.outlook.com [52.101.195.125]) (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 AC5A31427A; Wed, 27 May 2026 17:20:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.195.125 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779902429; cv=fail; b=lXL9iz/EJOl524UTBnIOT92DVSF9wraKqiJwNjWnsbWrLzXnGmoYPVxlXlnlZjDSnwVHa1cTqoy/TZH6CxA4/EoviRqjSffwOkS7/z5Uvf2rO4Yg2IFie1pLqpgKf0Lkjw/CXLzNKH645iMrAfpi+DBp/bGSTL7aSbbNB22K0xw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779902429; c=relaxed/simple; bh=z17V869ig6MM8rLfkUp2rDQiFuW+jWeYL9W10JDYJ4w=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=gOtLccpLNSOtoeLW7KHsM5eQKXX3ahDrBfBzn1Gla/2VH4hnfyqPzcl/f9tQ48qTtsynznxd3Xb3rxHEDZ/jRjseVS20BmSp8ozkcNofNFXvmAxYZgyRhCId2Dz+HdzTuFQUA2qWwxdSpYYFd8U9yHhHgya1QBfEiHX4SXbWSL8= 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=GkD1S8iJ; arc=fail smtp.client-ip=52.101.195.125 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="GkD1S8iJ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GsFo6TXnKzT/o/YfBIBipyFL2oIxXgRtttyfP6VBuHYjQbqOjBbGFLscJIj5vX3SZb6y63z7NHzLieRUNVoZiOYMbIoQ69iehitGNHdR+5+pfG7g9mMATmIsP67hmt/YqFlQH7bSrr1QMJJnRhQhuf/mTx38NO5x+yZxXw0E/FGwvIEExZlFxi7HpTMRfN9J5Dn3wZQy7OB9gppLkTM9xRK2OoDn1f1YOtKgYMhUC0LwFNnAxPywMTGphK4bxHQo0ww8yigPdK6tM5rEg6z1IEXv2iOBsF/9HX7p/9yFMcba6Q3lRYH9gsjgzOur4m/I17ZuUfnSrgjegXCs2/h8xA== 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=8PMsvyIHmDCobe+L00gq/xhllURHepbJ6uS1ZlEjCQI=; b=RJfv2fVOZr7s5nmLdXcsa2L9cf+1UKbL9WcRNLvducCHNlUTNf/4gLAJKr5SFV5ucHrvzMnGIF75NaKQOB1DjXZhKC95RC6GqG2vdLqyvJwbmdI+Fx2XAQ721NL4T9n73uZZMqX66TDJ+Za+cvcPiiGKCl/dUX+Fiad747HTgYHAqzcHS62LQDMXs67fVMLpM9mSV6/PHJYdWljEycb71KRzSf/jijdWmx/KTgIPNSITJugZ+tM4nnZREUO1P/biaIQH+XgqGIA7v8F2t/wnPyYW20gwuLkRysyQfqezoyy/QtztjD8tW+WfBPTV6dzSQBoGVFZmSN0PnTveEIR8ig== 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=8PMsvyIHmDCobe+L00gq/xhllURHepbJ6uS1ZlEjCQI=; b=GkD1S8iJP/Apj++v4V0Whhowat+vAa53g/EVVOxb9RXyQkrZixzd+oyMFQyQSYeO33MwWxh3ZAkDFq99aLIb11sWzgx4QZb49NjbGTcpZbcb9U2frt6h60RfScOxOzfF0yJEQnvsp6ot1qkMKEOVUB6J7Ak+CEjYjWrKL/N4JDc= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=garyguo.net; Received: from CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:27c::13) by LO8P265MB7781.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:3ad::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.12; Wed, 27 May 2026 17:20:10 +0000 Received: from CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM ([fe80::6c9e:93c8:10db:e995]) by CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM ([fe80::6c9e:93c8:10db:e995%6]) with mapi id 15.21.0071.011; Wed, 27 May 2026 17:20:10 +0000 From: Gary Guo Date: Wed, 27 May 2026 18:19:59 +0100 Subject: [PATCH 8/8] rust: pin-init: make `[pin_]chain` unwind safe Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260527-pin-init-sync-v1-8-e20335ed2501@garyguo.net> References: <20260527-pin-init-sync-v1-0-e20335ed2501@garyguo.net> In-Reply-To: <20260527-pin-init-sync-v1-0-e20335ed2501@garyguo.net> To: Benno Lossin , Miguel Ojeda , Boqun Feng , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Gary Guo , Mirko Adzic X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1779902405; l=2555; i=gary@garyguo.net; s=20221204; h=from:subject:message-id; bh=iVy4JUEB9gvWWijKQRqERK1MJazdzl2rCyv/ahAoS/4=; b=yNtEs38MlVRY4oLERN1WPeZ9nLBharrXSIcig2D8YmouwTI7VC1NLcnHxUpjUTTDU8KNtDrVd 6o4VcvkzRWvBEjnYVDc8FXjW4tb46ithRKLcSIBk5hLC2hiDrqzt7wv X-Developer-Key: i=gary@garyguo.net; a=ed25519; pk=vB3uIX95SM4eVrIqo1DWNWKDKD2xzB+yLLLr0yOPYMo= X-ClientProxiedBy: LO4P123CA0524.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:2c5::9) To CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:27c::13) 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: CW1P265MB8877:EE_|LO8P265MB7781:EE_ X-MS-Office365-Filtering-Correlation-Id: 8680ce8a-6eb9-45c1-48e7-08debc143387 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|10070799003|7416014|376014|18002099003|22082099003|6133799003|56012099006; X-Microsoft-Antispam-Message-Info: rPrzHAOyMttUEL+eYf+F9Cyyends3lZp10MRHm4tEc/iAAckcEzK+7yqs2rya5CvsOSEpchJdbo7/fxqdtc2HXEPQY3056oRhFRhvpnFt2B5YAcuBNk2nby9WVIA5pMF27feFwknbPt6JBU7jWM5XCqHudzWyGQiGtzZO1l6D7hLNWrBjt95CNBiKtwbrYwxUzBl0XmnrU2AhxzGjXxIGVAm6IZCQZj05LdKeDmJxg9VAV1WYjfTxp/v4oGgxObFOvjyMwPnxXCHZw9lk8DXF2J9FslXJS40kFR/3iZyse1Pj1Z3SspbTRYnT5hwBQtTcSH8E5k3BZrsuIX6rRYNX+7UrWmdSilti3F8xmkeujps70a0QxWwt7oaHNJShgfwIoBXu3KUkfT9teuaJ4T1OPldxE53UVoMlOF2qQ5e1sy5pw68pMZm5VCj/Y5VKDJTjPniMyGXkPcXoJlrb94dv4bPIyKRQVE3Wrqa6ps2UG39s2n20kJ/FIqbCpjmpka//yKXZ5eCrOaKEu+GL5zw/mjVAKzr/FqzoQZJJm+1r5vaKmDqYmtonpB9dZ+qFECdfubTOFvnjxTRuREUEmaEIxI+8eaGYPJ7KP5UtXJWihIAScFQO227JO6qtyBnGraCQvfXgpZEil6psHHLcaf2biKD0R1+n1iz+eW873/iBLkJovBjzQzl5lD5k2CBOyt9oMxIiS2kTI3NIryQPaF5nw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(10070799003)(7416014)(376014)(18002099003)(22082099003)(6133799003)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?REQrQlIyeitDMGNMWEdMcGRtV0ZGdVVmM0R2MHloTnBxSkhhN0lSYzlnUzVj?= =?utf-8?B?d1ZJWWdGYUlNSER2UHhTVzllNXlkUWI1RjBlaEFscWNSZGkxWDg0SmhWR3R1?= =?utf-8?B?Q2ZHaUFYTmM5dzJwTFpPYytOajRUNnBNeVFLdEk0SFVmQmtPNTR5RTV6cXVZ?= =?utf-8?B?azdNbDB1YlF2NXh1aHhlZVZtTzArK3RoOTRpNmpOQUhFV1ZQbW4yMFE4M2sr?= =?utf-8?B?bTI2SzdpS0pSTXBVOHR6R1BjeDhMUnA0NXphWVdmME93cXJvd3ZkWlJkTE56?= =?utf-8?B?NmNGU1dha0swenllT0JYREg4ZG5JckR3TXQ3UHlVTy90SVphS0tKcWNHc0M3?= =?utf-8?B?NWpWS2loQzRiMUQzbnc4TU9JUVZ6YXlJVzc5UzNRbDVSQ0V5RWZZZ0Nwc3ow?= =?utf-8?B?UDBtNXJSK0tpcVYzZzQ5eFFzMWluOVRkMm54N2wyNWRWYUZtd0RYVkFXZHg5?= =?utf-8?B?UXR3dlpUYldoUG9UVS83aWdkZ0hlcVc5b2ZZSEdtU1RCVkdNOWpPam5oaDFB?= =?utf-8?B?cUY1RGNqcEEyaXNnQW4zeHdLLzIySENwOWt0K2NwSTVkNW5aemlNMXZtWUJT?= =?utf-8?B?NDBtb0VtV2M5SVZjN0hUWlUzT09CSitodDVJVGdxZWJKZzNJOVR6MHJ6ckJj?= =?utf-8?B?cVdZOGQ3bmFXSC9OTlBDWldkRkh5cjdSbUtTVFhMMXI0QUY1TWpmWHBEb1Fu?= =?utf-8?B?eEpXNEt5cUs2V0oxNStiRTNBNDlua3dlaVJyY0I0ekJncHN4YmMyVFhkWmFx?= =?utf-8?B?ckZabjltNHhnRlY1d2RLeEh1SklGOFVkQWtBWGgwWk1EWmx6V1FrK2djSnNV?= =?utf-8?B?cERxS0ZWajBzYWxaemNuQ2hzNHdDb3ZrMENnaDRRamd0Y3g1bDVFZ3BtYkJz?= =?utf-8?B?d2hSdTJFVTI0S1RWMXpzMVdjQ1dNL1lTRFJ1eHByb0tnbGFhREVxRW1MRlg2?= =?utf-8?B?WnRCWlgwR2NRZkdUOWZTN1pJWTRZUzNBcktLUEtVb2I5Q0FkTStnL3hqdTRt?= =?utf-8?B?ZURqTVNBTXNVd3J6K0dac29LeWpUUTF5UjdZTFZVdVN2NzdidTdOQnl6YWFZ?= =?utf-8?B?WmF4cW5uVGRFVlE0M0swNUUrOFRvVGtBU3dNY2RwVDdHRXBJVjRGdTkrMHBk?= =?utf-8?B?NkQyK0RURDZpUVFqSENQcHVNUk4yWStpWWorZ3dzbWw3UnpGOUNOY0xHR3hK?= =?utf-8?B?dW8wMkhaaGhYdy9tSm1HSGNwNi9KbEFocUlWVmdWN044RFNETGd1Q3lHclF5?= =?utf-8?B?Nkdnem9Za1BLTUZSTmtxVkhkQnEwQ3oxbXg4Q3dKYmlCanhqcVJVMjEwNkE4?= =?utf-8?B?Q04zeW9ld3FhdUJ1NmZNaWNRR1RFV0xBMGZYY1NFOUxQZVNsbVE3UlREUytD?= =?utf-8?B?SzAxblJzRjJ6QlZOZjhNQnVuMkJwamxKbVZsUUJrUVloWjBtRjh2ZFVTQ3NH?= =?utf-8?B?WktPZEJGSlptM1BhalVRaTlkbmVmQ2NiSGVvUVNDditRWG1xSUFZaHlhbzRV?= =?utf-8?B?N29FNThzTHJYVHRpdGg4akxqaU1NRzZXMHdSak10TUkxWVpsRTlBdUZNQkJx?= =?utf-8?B?aUx4K1Q2Wlp4TFVpejNLWDBwb2RyUW1DazlXRndtaE1Cd2JPdVhLK245UkNN?= =?utf-8?B?TlRyU29oWmV5R1hGNTl0M2NTOE9GWjFhZjFaWERKZGRVWnVKeWZNSUVYeGRY?= =?utf-8?B?QkN6OWR2eFhyL0dsRHA2cno0OFlrRzFobCtpS1RYQVVHbFVFcmo1UkV4T0R3?= =?utf-8?B?STM5WVN6cHR6SWFRS1doclRiYXEwUnp0OHJrQVVxN0J5RlV5Z3dFVmxvamhB?= =?utf-8?B?OUw3dTBOd2JLVXVsRitzZGlZOGc3SFowWXZpSnMrRWRETWRtdnEyVWZ3aEFI?= =?utf-8?B?bHMzWWNXYTFaUTFSWU9McEljeXIwMGlQblZyb3FMbkFYbjhlT0pXeVJVSGk1?= =?utf-8?B?RHBmVEFwRC9NV01ibUdHVFNDZDlDekJ6cGYyY0M1eUFSS2llem9UbWQrR05n?= =?utf-8?B?TERQdk5INExEUzJOOGV6YlZUMXJwVExqdmtmak4wTGJyemU2RllGL1NmRmw3?= =?utf-8?B?Tm5SQW8vUHYxVkpMeUtzUkg0ejlBR2lMYVdJd21lMFp3ZDkzZDlrVUdkQmJB?= =?utf-8?B?UnNLRENpVko5NDE4M0lUNkR6WGFIQ05lVXRPaTdGa2tKQVg1SXo4TGpBUnFr?= =?utf-8?B?SjVackNhN2x1ZFBRRk1yUUo5eUtFeTB3angrWkRsQVVQZmFoZlNNVU5WRDNu?= =?utf-8?B?M2lTK1hDZ2RkUGk2UTNmbFNZZDZaVFVUU0JTbFRIU3VrUis5VGdOL0MrRnV3?= =?utf-8?B?RGZ6VGpRL2JrckJaeFJLaGJlQnZmNHpLZ3VaTVpaUXhrNnBMZ0hGUT09?= X-OriginatorOrg: garyguo.net X-MS-Exchange-CrossTenant-Network-Message-Id: 8680ce8a-6eb9-45c1-48e7-08debc143387 X-MS-Exchange-CrossTenant-AuthSource: CW1P265MB8877.GBRP265.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 May 2026 17:20:08.4458 (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: C4XNMJAZqh21aZZV4N+biiaUAQx9zb2G6fOf3w6irpny/ay1shnbwQVhaIpbSShGBiK5u/bljX368F/e1AJkHA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO8P265MB7781 From: Mirko Adzic Adds a drop guard before the call to the chained closure so that the value initialized by the first stage is dropped if the closure errors or panics; `mem::forget` the guard on success. The previous code only ran cleanup on the explicit error path, leaking the first-stage value if the chained closure panicked. Reported-by: Gary Guo Closes: https://github.com/Rust-for-Linux/pin-init/issues/136 Suggested-by: Gary Guo Signed-off-by: Mirko Adzic Signed-off-by: Gary Guo --- rust/pin-init/src/lib.rs | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/rust/pin-init/src/lib.rs b/rust/pin-init/src/lib.rs index 1fdf9c2366ff..b5af88c9e48b 100644 --- a/rust/pin-init/src/lib.rs +++ b/rust/pin-init/src/lib.rs @@ -965,13 +965,11 @@ unsafe impl PinInit for Cha= inPinInit { unsafe fn __pinned_init(self, slot: *mut T) -> Result<(), E> { // SAFETY: All requirements fulfilled since this function is `__pi= nned_init`. - unsafe { self.0.__pinned_init(slot)? }; - // SAFETY: The above call initialized `slot` and we still have uni= que access. - let val =3D unsafe { &mut *slot }; - // SAFETY: `slot` is considered pinned. - let val =3D unsafe { Pin::new_unchecked(val) }; - // SAFETY: `slot` was initialized above. - (self.1)(val).inspect_err(|_| unsafe { core::ptr::drop_in_place(sl= ot) }) + let mut guard =3D + unsafe { __internal::Slot::<__internal::Pinned, _>::new(slot) = }.init(self.0)?; + (self.1)(guard.let_binding())?; + core::mem::forget(guard); + Ok(()) } } =20 @@ -1072,11 +1070,11 @@ unsafe impl Init for Chai= nInit { unsafe fn __init(self, slot: *mut T) -> Result<(), E> { // SAFETY: All requirements fulfilled since this function is `__in= it`. - unsafe { self.0.__pinned_init(slot)? }; - // SAFETY: The above call initialized `slot` and we still have uni= que access. - (self.1)(unsafe { &mut *slot }).inspect_err(|_| - // SAFETY: `slot` was initialized above. - unsafe { core::ptr::drop_in_place(slot) }) + let mut guard =3D + unsafe { __internal::Slot::<__internal::Unpinned, _>::new(slot= ) }.init(self.0)?; + (self.1)(guard.let_binding())?; + core::mem::forget(guard); + Ok(()) } } =20 --=20 2.54.0