diff options
author | Asahi Lina <lina@asahilina.net> | 2025-04-11 01:55:24 +0200 |
---|---|---|
committer | Danilo Krummrich <dakr@kernel.org> | 2025-04-24 14:00:13 +0200 |
commit | 0600032c54b7adc309d334c109374433ce3ab243 (patch) | |
tree | 9a03e0ae948b43047ff5a1f83552cc6613bc87a9 /rust/kernel/drm/mod.rs | |
parent | 1e4b8896c0f3cb305a32870e1d8624f1155072d5 (diff) |
rust: drm: add DRM driver registration
Implement the DRM driver `Registration`.
The `Registration` structure is responsible to register and unregister a
DRM driver. It makes use of the `Devres` container in order to allow the
`Registration` to be owned by devres, such that it is automatically
dropped (and the DRM driver unregistered) once the parent device is
unbound.
Signed-off-by: Asahi Lina <lina@asahilina.net>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Lyude Paul <lyude@redhat.com>
Link: https://lore.kernel.org/r/20250410235546.43736-6-dakr@kernel.org
[ Rework of drm::Registration
* move VTABLE to drm::Device to prevent use-after-free bugs; VTABLE
needs to be bound to the lifetime of drm::Device, not the
drm::Registration
* combine new() and register() to get rid of the registered boolean
* remove file_operations
* move struct drm_device creation to drm::Device
* introduce Devres
* original source archive: https://archive.is/Pl9ys
- Danilo ]
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
Diffstat (limited to 'rust/kernel/drm/mod.rs')
-rw-r--r-- | rust/kernel/drm/mod.rs | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/rust/kernel/drm/mod.rs b/rust/kernel/drm/mod.rs index 967854a2083e..2d88e70ba607 100644 --- a/rust/kernel/drm/mod.rs +++ b/rust/kernel/drm/mod.rs @@ -9,6 +9,7 @@ pub mod ioctl; pub use self::device::Device; pub use self::driver::Driver; pub use self::driver::DriverInfo; +pub use self::driver::Registration; pub(crate) mod private { pub trait Sealed {} |