diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2016-06-15 08:17:49 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2016-06-17 03:43:39 -0400 |
commit | 80de34611af6f123937a40ea17c8db792d38baba (patch) | |
tree | e0427f6e82c697d9e209a72ffd1f35e212a37a9b /drivers/gpu/drm/drm_crtc.c | |
parent | 40daac6136948dc83c1dec14fe4a2444915b22df (diff) |
drm: Automatically unregister the connector during cleanup
As we now can call drm_connector_unregister() multiple times, provide a
failsafe unregister for a connector when cleaning it up.
v2: Add a WARN to catch any connectors that are still visible to
userspace when we come to destoy them.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Dave Airlie <airlied@redhat.com>
Cc: dri-devel@lists.freedesktop.org
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/1465993109-19523-5-git-send-email-chris@chris-wilson.co.uk
Diffstat (limited to 'drivers/gpu/drm/drm_crtc.c')
-rw-r--r-- | drivers/gpu/drm/drm_crtc.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c index ea5ec641eacc..316dea9bea08 100644 --- a/drivers/gpu/drm/drm_crtc.c +++ b/drivers/gpu/drm/drm_crtc.c | |||
@@ -938,6 +938,12 @@ void drm_connector_cleanup(struct drm_connector *connector) | |||
938 | struct drm_device *dev = connector->dev; | 938 | struct drm_device *dev = connector->dev; |
939 | struct drm_display_mode *mode, *t; | 939 | struct drm_display_mode *mode, *t; |
940 | 940 | ||
941 | /* The connector should have been removed from userspace long before | ||
942 | * it is finally destroyed. | ||
943 | */ | ||
944 | if (WARN_ON(connector->registered)) | ||
945 | drm_connector_unregister(connector); | ||
946 | |||
941 | if (connector->tile_group) { | 947 | if (connector->tile_group) { |
942 | drm_mode_put_tile_group(dev, connector->tile_group); | 948 | drm_mode_put_tile_group(dev, connector->tile_group); |
943 | connector->tile_group = NULL; | 949 | connector->tile_group = NULL; |