On Wed, Sep 19, 2012 at 9:52 PM, Joonyoung Shim <jy0922.shim@xxxxxxxxxxx> wrote: > On 09/17/2012 06:38 PM, Chris Wilson wrote: >> >> 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. > > > A similar issue can occur in the drm_framebuffer_cleanup(). If crtc and > plane use same framebuffer and the framebuffer is destroyed, crtc is > turned off prior to turning off plane. > I imagine my patch to add refcnt'ing to fb would help in this case.. BR, -R >> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=54101 >> Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> >> Cc: Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx> >> Cc: stable@xxxxxxxxxxxxxxx >> --- >> drivers/gpu/drm/drm_crtc.c | 8 ++++---- >> 1 file changed, 4 insertions(+), 4 deletions(-) >> >> diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c >> index 6fbfc24..af81f77 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); >> } > > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/dri-devel _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel