summaryrefslogtreecommitdiff
path: root/rust/kernel/drm
diff options
context:
space:
mode:
authorDanilo Krummrich <dakr@kernel.org>2026-06-28 16:53:30 +0200
committerDanilo Krummrich <dakr@kernel.org>2026-07-12 15:56:52 +0200
commit499eb35cd4776b7c1ac8c6bb2ea6e693b7519a11 (patch)
tree1df05d38fac1344a66b5f2a0ec3e3dfaecd58e30 /rust/kernel/drm
parent1c8a1f88ac32a987643bf2d534ef4aa2d3da3aeb (diff)
downloadlinux-next-499eb35cd4776b7c1ac8c6bb2ea6e693b7519a11.tar.gz
linux-next-499eb35cd4776b7c1ac8c6bb2ea6e693b7519a11.zip
rust: drm: pin ioctl Device reference to Normal context
Explicitly annotate the Device reference produced by from_raw() in the ioctl dispatch macro as Device<_, Normal>. Without this annotation, the context is inferred from the handler's first parameter type, which would allow a handler declaring &Device<T, Registered> to obtain a Registered reference without runtime proof via RegistrationGuard. Reviewed-by: Lyude Paul <lyude@redhat.com> Reviewed-by: Alexandre Courbot <acourbot@nvidia.com> Tested-by: Deborah Brouwer <deborah.brouwer@collabora.com> Link: https://patch.msgid.link/20260628145406.2107056-11-dakr@kernel.org Signed-off-by: Danilo Krummrich <dakr@kernel.org>
Diffstat (limited to 'rust/kernel/drm')
-rw-r--r--rust/kernel/drm/ioctl.rs3
1 files changed, 2 insertions, 1 deletions
diff --git a/rust/kernel/drm/ioctl.rs b/rust/kernel/drm/ioctl.rs
index ccf4150d83b6..6f5a9877bdae 100644
--- a/rust/kernel/drm/ioctl.rs
+++ b/rust/kernel/drm/ioctl.rs
@@ -134,7 +134,8 @@ macro_rules! declare_drm_ioctls {
// FIXME: Currently there is nothing enforcing that the types of the
// dev/file match the current driver these ioctls are being declared
// for, and it's not clear how to enforce this within the type system.
- let dev = $crate::drm::device::Device::from_raw(raw_dev);
+ let dev: &$crate::drm::device::Device<_, $crate::drm::Normal> =
+ $crate::drm::device::Device::from_raw(raw_dev);
// Enforce that the handler accepts higher-ranked
// lifetimes, preventing it from requiring 'static