On Thu, Jul 31, 2025 at 05:48:09PM +0200, Danilo Krummrich wrote: > In drm_dev_put() call in AlwaysRefCounted::dec_ref() we rely on struct > drm_device to be the first field in drm::Device, whereas everywhere > else we correctly obtain the address of the actual struct drm_device. > > Analogous to the from_drm_device() helper, provide the > into_drm_device() helper in order to address this. > > Fixes: 1e4b8896c0f3 ("rust: drm: add device abstraction") > Signed-off-by: Danilo Krummrich <d...@kernel.org> > + /// # Safety > + /// > + /// `ptr` must be a valid pointer to `Self`. > + unsafe fn into_drm_device(ptr: NonNull<Self>) -> *mut > bindings::drm_device { > + // SAFETY: By the safety requirements of this function, `ptr` is a > valid pointer to `Self`. > + unsafe { &raw mut (*ptr.as_ptr()).dev }.cast() > + }
I think it would somewhat more consistent to use the naming raw_get() or cast_into(), but I am ok with this naming too. Reviewed-by: Alice Ryhl <alicer...@google.com> Alice