[PATCH] drm: reset dev->registered on drm_dev_register() error path

From: oushixiong1025

Date: Thu Aug 06 2026 - 05:34:11 EST


From: Shixiong Ou <oushixiong@xxxxxxxxxx>

drm_dev_register() sets dev->registered = true before calling
drm_modeset_register_all(), but the error path does not reset it.
This triggers a spurious WARN_ON in drm_mode_object_unregister()
during teardown of drmm-managed resources after a failed probe.

Observed on hibmc-drm where drm_modeset_register_all() fails with
-ENOENT from connector registration, producing:

hibmc-drm 0000:22:00.0: [drm] *ERROR* failed to register drv
for userspace access: -2
WARNING: CPU: 32 PID: 2887 at drm_mode_object_unregister+0x9c/0xb0

Signed-off-by: Shixiong Ou <oushixiong@xxxxxxxxxx>
---
drivers/gpu/drm/drm_drv.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
index 1ff0bf7cba6a..4497af8c9d1c 100644
--- a/drivers/gpu/drm/drm_drv.c
+++ b/drivers/gpu/drm/drm_drv.c
@@ -1120,6 +1120,7 @@ int drm_dev_register(struct drm_device *dev, unsigned long flags)
if (dev->driver->unload)
dev->driver->unload(dev);
err_minors:
+ dev->registered = false;
remove_compat_control_link(dev);
drm_minor_unregister(dev, DRM_MINOR_ACCEL);
drm_minor_unregister(dev, DRM_MINOR_PRIMARY);
--
2.25.1


No virus found
Checked by Hillstone Network AntiVirus