From 7091b52645f30d7cc32d04fce5810cf9cd4fa6d0 Mon Sep 17 00:00:00 2001
From: Lyude Paul <lyude@redhat.com>
Date: Mon, 2 Dec 2024 14:58:09 -0500
Subject: [PATCH] squash! WIP: rust: drm/kms: Add OpaquePlane and
 OpaquePlaneState

V3:
* Add safety comment to implementation of ModeObject
---
 rust/kernel/drm/kms/plane.rs | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/rust/kernel/drm/kms/plane.rs b/rust/kernel/drm/kms/plane.rs
index c7dcc799d91f8..f12cfd708d26c 100644
--- a/rust/kernel/drm/kms/plane.rs
+++ b/rust/kernel/drm/kms/plane.rs
@@ -404,7 +404,10 @@ impl<T: KmsDriver> AsRawPlane for OpaquePlane<T> {
     }
 }
 
-impl<T: KmsDriver> ModeObject for OpaquePlane<T> {
+// SAFETY: We don't expose OpaquePlane<T> to users before `base` is initialized in
+// Plane::<T>::new(), so `raw_mode_obj` always returns a valid poiner to a
+// bindings::drm_mode_object.
+unsafe impl<T: KmsDriver> ModeObject for OpaquePlane<T> {
     type Driver = T;
 
     fn drm_dev(&self) -> &Device<Self::Driver> {
-- 
GitLab