From a1f1b3b478b45259a7b5472ea9ec1b48ef6b5cd6 Mon Sep 17 00:00:00 2001 From: Gary Guo Date: Wed, 22 Jul 2026 19:50:16 +0100 Subject: [PATCH] rust: devres: use `cast_pin_init` instead of manual reimplementation Remove the manual type-casting which is already available as `cast_pin_init`. Signed-off-by: Gary Guo Link: https://patch.msgid.link/20260722-merge-init-v1-2-d4594de76538@garyguo.net Signed-off-by: Danilo Krummrich --- rust/kernel/devres.rs | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/rust/kernel/devres.rs b/rust/kernel/devres.rs index ebb5c19e851e..aecc8906de2c 100644 --- a/rust/kernel/devres.rs +++ b/rust/kernel/devres.rs @@ -435,11 +435,7 @@ pub unsafe fn new<'a, E>( // SAFETY: The caller guarantees the data is valid for the device's full bound scope. // Lifetimes do not affect layout, so F::Of<'a> and F::Of<'static> have identical // representation; casting the slot pointer is sound. - let data = unsafe { - pin_init::pin_init_from_closure::, E>(move |slot| { - data.__pinned_init(slot.cast()) - }) - }; + let data = unsafe { pin_init::cast_pin_init(data) }; Ok(Self(Devres::new(dev, data)?)) }