drm: Show leaked connectors upon unload
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 19 Jan 2017 09:05:13 +0000 (09:05 +0000)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Mon, 23 Jan 2017 08:26:22 +0000 (09:26 +0100)
After warning that the connector list is not empty on device
unregistration (i.e. module unload) also print out which connectors are
still hanging around to aide finding the leak.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/20170119090513.4154-1-chris@chris-wilson.co.uk
drivers/gpu/drm/drm_mode_config.c

index ed1ee5a44a7ba78b885ea78567ad82ecf23e5c51..884cc4d26fb59e8568abac449252c248e253fdc1 100644 (file)
@@ -421,7 +421,12 @@ void drm_mode_config_cleanup(struct drm_device *dev)
                drm_connector_unreference(connector);
        }
        drm_connector_list_iter_put(&conn_iter);
-       WARN_ON(!list_empty(&dev->mode_config.connector_list));
+       if (WARN_ON(!list_empty(&dev->mode_config.connector_list))) {
+               drm_connector_list_iter_get(dev, &conn_iter);
+               drm_for_each_connector_iter(connector, &conn_iter)
+                       DRM_ERROR("connector %s leaked!\n", connector->name);
+               drm_connector_list_iter_put(&conn_iter);
+       }
 
        list_for_each_entry_safe(property, pt, &dev->mode_config.property_list,
                                 head) {