[PATCH i-g-t v5] lib/igt_kms: Add plane type verification in igt_crtc_get_plane_type

Jing-Ping Jan <[email protected]> Thu, 23 Jul 2026 17:18:02 +0800
Newsgroups org.freedesktop.lists.igt-dev
Message-ID <[email protected]>
Verify plane type matches requested type to avoid returning invalid
planes.

Fixes: 5426dc0a889a ("lib/kms: Skip rather than fail when a suitable plane can't be found")
Cc: Chris Wilson <[email protected]>
Cc: Ville Syrjälä <[email protected]>
Cc: Swati Sharma <[email protected]>
Cc: Karthik B S <[email protected]>
Signed-off-by: Jing-Ping Jan <[email protected]>
---
v5:
 - update Chris's email
 - update commit subject
 - print found type value only
v4:
 - Remove unintended changes
v3:
 - Moving condition after old one
 - print type string instead of enum value
v2:
 - Cc Swati and Karthik.
 - split condition with additional branch

 lib/igt_kms.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 2eefb773b..6b4d58237 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -3537,6 +3537,13 @@ igt_plane_t *igt_crtc_get_plane_type(igt_crtc_t *crtc, int plane_type)
 		      "Valid pipe->planes idx not found. plane_idx=%d plane_type=%d n_planes=%d\n",
 		      plane_idx, plane_type, crtc->n_planes);
 
+	igt_require_f(crtc->planes[plane_idx].type == plane_type,
+		      "Unexpected plane type, found plane_idx=%d, "
+		      "type=%d != requested plane_type=%d (%s)\n", plane_idx,
+                      crtc->planes[plane_idx].type,
+                      plane_type,
+		      plane_type == DRM_PLANE_TYPE_PRIMARY ? "PRIMARY" : "CURSOR");
+
 	return &crtc->planes[plane_idx];
 }
 
-- 
2.55.0.229.g6434b31f56-goog