summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorSajal Gupta <sajal2005gupta@gmail.com>2026-08-21 12:46:13 +0530
committerRuben Wauters <rubenru09@aol.com>2026-08-23 17:35:13 +0100
commitcb732d027aa18e1fcf9d2797f47d20b179ebc59c (patch)
tree049f1adb206ec8aa56552c093e9909eb40379a6a /drivers
parentda1ea35fea67ad841f4ada28dd61b41be65e5437 (diff)
downloadlinux-next-cb732d027aa18e1fcf9d2797f47d20b179ebc59c.tar.gz
linux-next-cb732d027aa18e1fcf9d2797f47d20b179ebc59c.zip
drm/gud: validate GUD_ROTATION_0 is present in supported rotations
The rotation argument to drm_plane_create_rotation_property() is set to DRM_MODE_ROTATE_0, and the device reported rotation bitmask is used as the supported_rotations argument. The driver never validates that GUD_ROTATION_0 is present, so a device that omits it from its GUD_PROPERTY_ROTATION triggers the WARN_ON(rotation & ~supported_rotations) in drm_plane_create_rotation_property() Fix this by skipping the creation of rotation property if the device doesn't have the GUD_ROTATION_0 bit Fixes: 40e1a70b4aed ("drm: Add GUD USB Display driver") Reported-by: syzbot+efe2810681f1b065d3a8@syzkaller.appspotmail.com Closes: https://syzkaller.appspot.com/bug?extid=efe2810681f1b065d3a8 Tested-by: syzbot+efe2810681f1b065d3a8@syzkaller.appspotmail.com Signed-off-by: Sajal Gupta <sajal2005gupta@gmail.com> Acked-by: Ruben Wauters <rubenru09@aol.com> Signed-off-by: Ruben Wauters <rubenru09@aol.com> Link: https://patch.msgid.link/20260821071812.16500-1-sajal2005gupta@gmail.com
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/gud/gud_drv.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/gpu/drm/gud/gud_drv.c b/drivers/gpu/drm/gud/gud_drv.c
index 89bd6ca36003..3a1b9e2a2eaa 100644
--- a/drivers/gpu/drm/gud/gud_drv.c
+++ b/drivers/gpu/drm/gud/gud_drv.c
@@ -289,6 +289,8 @@ static int gud_plane_add_properties(struct gud_device *gdrm)
* but mask out any additions on future devices.
*/
val &= GUD_ROTATION_MASK;
+ if (!(val & GUD_ROTATION_0))
+ continue;
ret = drm_plane_create_rotation_property(&gdrm->plane,
DRM_MODE_ROTATE_0, val);
break;