On Tue, Feb 07, 2017 at 03:10:50PM +0100, Daniel Vetter wrote: > diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c > index 5220a7b5e6ff..074ab22a7cf3 100644 > --- a/drivers/gpu/drm/drm_fb_helper.c > +++ b/drivers/gpu/drm/drm_fb_helper.c > @@ -781,7 +781,9 @@ EXPORT_SYMBOL(drm_fb_helper_init); > * @fb_helper: driver-allocated fbdev helper > * > * A helper to alloc fb_info and the members cmap and apertures. Called > - * by the driver within the fb_probe fb_helper callback function. > + * by the driver within the fb_probe fb_helper callback function. Drivers do not > + * need to release the allocated fb_info structure themselves, this is > + * automatically done when calling drm_fb_helper_fini(). > * > * RETURNS: > * fb_info pointer if things went okay, pointer containing error code > @@ -866,9 +868,19 @@ EXPORT_SYMBOL(drm_fb_helper_release_fbi); I was expecting to see drm_fb_helper_release_fbi() removed. > */ > void drm_fb_helper_fini(struct drm_fb_helper *fb_helper) > { > - if (!drm_fbdev_emulation) > + struct fb_info *info; > + > + if (!drm_fbdev_emulation || !fb_helper) > return; > > + info = fb_helper->fbdev; > + if (info) { > + if (info->cmap.len) > + fb_dealloc_cmap(&info->cmap); > + framebuffer_release(info); > + } > + fb_helper->fbdev = NULL; > + > mutex_lock(&kernel_fb_helper_lock); > if (!list_empty(&fb_helper->kernel_fb_list)) { > list_del(&fb_helper->kernel_fb_list); > diff --git a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx