linux/samples/rust
Danilo Krummrich 8ea0b6d5be rust: pci: make Bar lifetime-parameterized
Convert pci::Bar<SIZE> to pci::Bar<'a, SIZE>, storing &'a Device<Bound>
to tie the BAR mapping lifetime to the device.

iomap_region_sized() now returns Result<Bar<'a, SIZE>> directly instead
of impl PinInit<Devres<Bar<SIZE>>, Error>.

Since the lifetime ties the mapping to the device's bound state, callers
no longer need Devres for the common case where the Bar lives in the
driver's private data.

Add Bar::into_devres() to consume the bar and register it as a
device-managed resource, returning Devres<Bar<'static, SIZE>>. The
lifetime is erased to 'static because Devres guarantees the bar does not
actually outlive the device -- access is revoked on unbind.

Reviewed-by: Eliot Courtney <ecourtney@nvidia.com>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Reviewed-by: Alexandre Courbot <acourbot@nvidia.com>
Reviewed-by: Gary Guo <gary@garyguo.net>
Link: https://patch.msgid.link/20260525202921.124698-19-dakr@kernel.org
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
History 2026-05-27 16:24:23 +02:00
..
hostprogs samples: add first Rust examples 2022-09-28 09:03:08 +02:00
Kconfig rust: Add SoC Driver Sample 2025-12-28 12:44:31 +01:00
Makefile rust: Add SoC Driver Sample 2025-12-28 12:44:31 +01:00
rust_configfs.rs rust: configfs: replace kernel::c_str! with C-Strings 2026-01-15 09:26:49 +01:00
rust_debugfs.rs rust: platform: make Driver trait lifetime-parameterized 2026-05-27 16:23:31 +02:00
rust_debugfs_scoped.rs samples: rust: debugfs: replace kernel::c_str! with C-Strings 2025-12-22 17:30:35 +01:00
rust_dma.rs rust: pci: make Driver trait lifetime-parameterized 2026-05-27 16:23:10 +02:00
rust_driver_auxiliary.rs rust: auxiliary: make Driver trait lifetime-parameterized 2026-05-27 16:23:47 +02:00
rust_driver_faux.rs rust: samples: driver-core: remove redundant .as_ref() for dev_* print 2026-01-24 01:12:49 +01:00
rust_driver_i2c.rs rust: i2c: make Driver trait lifetime-parameterized 2026-05-27 16:24:10 +02:00
rust_driver_pci.rs rust: pci: make Bar lifetime-parameterized 2026-05-27 16:24:23 +02:00
rust_driver_platform.rs rust: platform: make Driver trait lifetime-parameterized 2026-05-27 16:23:31 +02:00
rust_driver_usb.rs rust: usb: make Driver trait lifetime-parameterized 2026-05-27 16:23:51 +02:00
rust_i2c_client.rs rust: platform: make Driver trait lifetime-parameterized 2026-05-27 16:23:31 +02:00
rust_minimal.rs rust: samples: add a module parameter to the rust_minimal sample 2025-11-03 14:42:34 +01:00
rust_misc_device.rs Char/Misc/IIO driver changes for 7.0-rc1 2026-02-17 09:11:04 -08:00
rust_print_events.c rust: samples: add tracepoint to Rust sample 2024-11-04 16:21:44 -05:00
rust_print_main.rs samples: rust: remove imports available via prelude 2026-01-26 18:15:20 +01:00
rust_soc.rs rust: platform: make Driver trait lifetime-parameterized 2026-05-27 16:23:31 +02:00