On Thu, 28 Nov 2019, Noralf Trønnes <noralf@xxxxxxxxxxx> wrote: > Den 27.11.2019 17.31, skrev Jani Nikula: >> Deferred IO now preserves the fb_ops. >> >> Cc: Noralf Trønnes <noralf@xxxxxxxxxxx> >> Cc: dri-devel@xxxxxxxxxxxxxxxxxxxxx >> Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx> >> --- >> drivers/gpu/drm/drm_fb_helper.c | 18 ++---------------- >> 1 file changed, 2 insertions(+), 16 deletions(-) >> >> diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c >> index 0c088ea70ad0..a5a2a538d085 100644 >> --- a/drivers/gpu/drm/drm_fb_helper.c >> +++ b/drivers/gpu/drm/drm_fb_helper.c >> @@ -1954,7 +1954,6 @@ static int drm_fbdev_fb_release(struct fb_info *info, int user) >> static void drm_fbdev_cleanup(struct drm_fb_helper *fb_helper) >> { >> struct fb_info *fbi = fb_helper->fbdev; >> - struct fb_ops *fbops = NULL; >> void *shadow = NULL; >> >> if (!fb_helper->dev) >> @@ -1963,15 +1962,11 @@ static void drm_fbdev_cleanup(struct drm_fb_helper *fb_helper) >> if (fbi && fbi->fbdefio) { >> fb_deferred_io_cleanup(fbi); >> shadow = fbi->screen_buffer; >> - fbops = fbi->fbops; >> } >> >> drm_fb_helper_fini(fb_helper); >> >> - if (shadow) { >> - vfree(shadow); >> - kfree(fbops); >> - } >> + vfree(shadow); >> >> drm_client_framebuffer_delete(fb_helper->buffer); >> } >> @@ -2062,23 +2057,14 @@ static int drm_fb_helper_generic_probe(struct drm_fb_helper *fb_helper, >> drm_fb_helper_fill_info(fbi, fb_helper, sizes); >> >> if (drm_fbdev_use_shadow_fb(fb_helper)) { >> - struct fb_ops *fbops; >> void *shadow; >> >> - /* >> - * fb_deferred_io_cleanup() clears &fbops->fb_mmap so a per >> - * instance version is necessary. >> - */ >> - fbops = kzalloc(sizeof(*fbops), GFP_KERNEL); >> shadow = vzalloc(fbi->screen_size); >> - if (!fbops || !shadow) { >> - kfree(fbops); >> + if (!shadow) { >> vfree(shadow); > > This vfree can is a no-op now and can be dropped. With that: D'oh! With that I think I'd also drop the shadow local variable and assign to fbi->screen_buffer directly. Fine with that? Thanks. BR, Jani. > > Reviewed-by: Noralf Trønnes <noralf@xxxxxxxxxxx> > >> return -ENOMEM; >> } >> >> - *fbops = *fbi->fbops; >> - fbi->fbops = fbops; >> fbi->screen_buffer = shadow; >> fbi->fbdefio = &drm_fbdev_defio; >> >> > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Jani Nikula, Intel Open Source Graphics Center _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel