On Sun Aug 30, 2026 at 8:37 PM BST, Danilo Krummrich wrote: > Add a lifetime parameter to Coherent and CoherentBox that ties the DMA > allocation to the device's bound scope, ensuring it is freed before the > device is unbound. > > DMA allocations carry device resources (e.g. IOMMU mappings) that must > not outlive the device's bound lifetime. Without a lifetime parameter, > there was no compile-time enforcement that a Coherent or CoherentBox is > dropped before the device is unbound. > > Propagate the new lifetime parameter through all users. > > Signed-off-by: Danilo Krummrich <[email protected]>
The rust/kernel code looks good to me. Haven't checked nova part in detail, but it looks like a mechanical conversion, so would be fine if it builds. Reviewed-by: Gary Guo <[email protected]> Sashiko points out that the `Coherent` could be leaked -- what's the implication when that happens? I think it's not going to be as problematic like registrations because coherent allocation carries no callbacks, so we probably don't need this to be unsafe, but I do wonder how'd DMA subsystem handle this. Best, Gary > --- > drivers/gpu/nova-core/falcon.rs | 2 +- > drivers/gpu/nova-core/fb.rs | 2 +- > drivers/gpu/nova-core/firmware/booter.rs | 2 +- > drivers/gpu/nova-core/firmware/fsp.rs | 8 +- > .../nova-core/firmware/fwsec/bootloader.rs | 12 +- > drivers/gpu/nova-core/firmware/gsp.rs | 14 +- > drivers/gpu/nova-core/firmware/riscv.rs | 8 +- > drivers/gpu/nova-core/fsp.rs | 20 +-- > drivers/gpu/nova-core/gpu.rs | 4 +- > drivers/gpu/nova-core/gsp.rs | 30 ++--- > drivers/gpu/nova-core/gsp/boot.rs | 10 +- > drivers/gpu/nova-core/gsp/cmdq.rs | 35 +++-- > drivers/gpu/nova-core/gsp/commands.rs | 2 +- > drivers/gpu/nova-core/gsp/fw.rs | 12 +- > drivers/gpu/nova-core/gsp/hal.rs | 14 +- > drivers/gpu/nova-core/gsp/hal/gh100.rs | 16 +-- > drivers/gpu/nova-core/gsp/hal/tu102.rs | 34 ++--- > drivers/gpu/nova-core/gsp/sequencer.rs | 6 +- > rust/kernel/dma.rs | 121 +++++++++--------- > rust/kernel/uaccess.rs | 4 +- > samples/rust/rust_dma.rs | 4 +- > 21 files changed, 176 insertions(+), 184 deletions(-)
