Re: [PATCH 0/6] rust: drm: Higher-Ranked Lifetime private data

From: Danilo Krummrich

Date: Tue May 19 2026 - 15:28:37 EST


On Tue May 19, 2026 at 8:59 PM CEST, Boris Brezillon wrote:
> On Thu, 14 May 2026 21:07:11 +0200
> "Danilo Krummrich" <dakr@xxxxxxxxxx> wrote:
>
>> On Thu May 14, 2026 at 8:59 PM CEST, Deborah Brouwer wrote:
>> > let unreg_dev = drm::UnregisteredDevice::<TyrDrmDriver>::new(pdev, data)?;
>>
>> You shouldn't need this anymore as the drm::Registration itself has private data
>> now that is bound to the lifetime of the underlying bus device, which should be
>> the correct lifetime for juggling the GPU page tables.
>
> The problem we have is that, to initialize some of the sub-components
> of the driver, we need to be able to allocate GEM objects before the DRM
> device is exposed (registered), and because the data we want to attach
> to the final registration contains these sub-components, we need to
> defer the data assignment to the registration step (which was allowed
> by [1], but apparently this was dropped from the latest version of
> the series for some reason).

I'm perfectly aware, what I'm saying above is that you probably want to store
those GEM objects (that you can create with the previously allocated
drm::Device) in the drm::Registration data. This fulfills this requirement *and*
ties the lifetime of those GEM objects to the lifetime of the underlying bus
device being bound to the driver, which is exactly what you want for GEM objects
that contain the device page tables.