Re: [PATCH v10 3/7] drm/tyr: add Memory Management Unit (MMU) support
"Danilo Krummrich" <[email protected]> Tue, 28 Jul 2026 21:31:50 +0200
| Newsgroups | org.kernel.vger.rust-for-linux,org.freedesktop.lists.dri-devel,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
On Tue Jul 28, 2026 at 8:39 PM CEST, Deborah Brouwer wrote:
> +/// Locked wrapper for carrying out virtual memory (VM) operations on the MMU.
> +#[pin_data]
> +pub(crate) struct Mmu<'drm> {
This shouldn't be 'drm, but 'mmu or just something generic like 'a.
The rationale is that Mmu might be shorter lived than 'drm once we have
self-referencial pin-init. Currently it is straight forward, such as in
struct Foo<'foo> {
dev: &'foo platform::Device<Bound>,
}
struct Data<'bound> {
foo: Foo<'bound>,
}
where the lifetime of `dev` really ties back to 'bound. However, with
self-referencial pin-init it could looks like this:
struct Foo<'foo> {
dev: &'foo platform::Device<Bound>,
io: &'foo IoMem<'foo>,
}
struct Data<'bound> {
foo: Foo<'io>,
io: IoMem<'bound>,
}
Now Foo is not constrained to 'bound anymore, as this would be longer lived than
`io`, so it has to capture 'io instead in order to still compile.