On Mon May 25, 2026 at 9:21 PM BST, Danilo Krummrich wrote: > 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 <[email protected]> > Reviewed-by: Greg Kroah-Hartman <[email protected]> > Reviewed-by: Alexandre Courbot <[email protected]> > Signed-off-by: Danilo Krummrich <[email protected]>
Reviewed-by: Gary Guo <[email protected]> > --- > drivers/gpu/nova-core/driver.rs | 7 +++-- > rust/kernel/devres.rs | 2 +- > rust/kernel/pci/io.rs | 52 +++++++++++++++++++-------------- > samples/rust/rust_driver_pci.rs | 5 ++-- > 4 files changed, 38 insertions(+), 28 deletions(-)
