From: Chris Wilson Date: Mon, 17 Sep 2012 09:38:03 +0000 (+0000) Subject: drm: Destroy the planes prior to destroying the associated CRTC X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=3184009c36da413724f283e3c7ac9cc60c623bc4;p=GitHub%2Fmt8127%2Fandroid_kernel_alcatel_ttab.git drm: Destroy the planes prior to destroying the associated CRTC As during the plane cleanup, we wish to disable the hardware and so may modify state on the associated CRTC, that CRTC must continue to exist until we are finished. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=54101 Signed-off-by: Chris Wilson Cc: Jesse Barnes Cc: stable@vger.kernel.org Reviewed-by: Jesse Barnes Tested-by: lu hua Signed-off-by: Dave Airlie --- diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c index c317f721a8d3..c418c772a7e5 100644 --- a/drivers/gpu/drm/drm_crtc.c +++ b/drivers/gpu/drm/drm_crtc.c @@ -1034,15 +1034,15 @@ void drm_mode_config_cleanup(struct drm_device *dev) fb->funcs->destroy(fb); } - list_for_each_entry_safe(crtc, ct, &dev->mode_config.crtc_list, head) { - crtc->funcs->destroy(crtc); - } - list_for_each_entry_safe(plane, plt, &dev->mode_config.plane_list, head) { plane->funcs->destroy(plane); } + list_for_each_entry_safe(crtc, ct, &dev->mode_config.crtc_list, head) { + crtc->funcs->destroy(crtc); + } + idr_remove_all(&dev->mode_config.crtc_idr); idr_destroy(&dev->mode_config.crtc_idr); }