summaryrefslogtreecommitdiff
path: root/rust/kernel/devres.rs
diff options
context:
space:
mode:
authorDanilo Krummrich <dakr@kernel.org>2025-06-26 22:00:39 +0200
committerDanilo Krummrich <dakr@kernel.org>2025-06-28 18:06:52 +0200
commitce7c22b2e1fb1db467d33bd050546941ce82f21f (patch)
treee948ab921d26ce70e3d54f333a850ce460cbd121 /rust/kernel/devres.rs
parent14648fc30e679b53cff87f20a8ed747bf3db43a3 (diff)
rust: revocable: support fallible PinInit types
Currently, Revocable::new() only supports infallible PinInit implementations, i.e. impl PinInit<T, Infallible>. This has been sufficient so far, since users such as Devres do not support fallibility. Since this is about to change, make Revocable::new() generic over the error type E. Reviewed-by: Benno Lossin <lossin@kernel.org> Reviewed-by: Alice Ryhl <aliceryhl@google.com> Acked-by: Miguel Ojeda <ojeda@kernel.org> Link: https://lore.kernel.org/r/20250626200054.243480-2-dakr@kernel.org Signed-off-by: Danilo Krummrich <dakr@kernel.org>
Diffstat (limited to 'rust/kernel/devres.rs')
-rw-r--r--rust/kernel/devres.rs2
1 files changed, 1 insertions, 1 deletions
diff --git a/rust/kernel/devres.rs b/rust/kernel/devres.rs
index 8ede607414fd..fd8b75aa03bc 100644
--- a/rust/kernel/devres.rs
+++ b/rust/kernel/devres.rs
@@ -100,7 +100,7 @@ pub struct Devres<T: Send>(Arc<DevresInner<T>>);
impl<T: Send> DevresInner<T> {
fn new(dev: &Device<Bound>, data: T, flags: Flags) -> Result<Arc<DevresInner<T>>> {
let inner = Arc::pin_init(
- pin_init!( DevresInner {
+ try_pin_init!( DevresInner {
dev: dev.into(),
callback: Self::devres_callback,
data <- Revocable::new(data),