On Wednesday 09 December 2015 05:50 PM, Patrik Jakobsson wrote: > On Wed, Dec 9, 2015 at 12:53 PM, Sudip Mukherjee > <sudipm.mukherjee at gmail.com> wrote: >> On Thu, Oct 08, 2015 at 06:17:48PM +0530, Sudip Mukherjee wrote: >>> We are allocating backing using psbfb_alloc() and so >>> backing->stolen is always true. So we were freeing backing two times. >>> Moreover if we follow the execution path then we should be freeing >>> backing after we have released the helper. So remove the one which frees >>> backing before the helper is released. >>> While at it the error labels are also renamed to give a meaningful >>> name. >>> >>> Signed-off-by: Sudip Mukherjee <sudip at vectorindia.org> >>> Reviewed-by: Patrik Jakobsson <patrik.r.jakobsson at gmail.com> >>> --- >> >> This patch was never picked up. It will not apply now. >> >> Daniel, please let me know if you want me to resend after making >> necessary changes. > > I will pick this up and pass it along to Dave. Sorry for the delay.
This was not picked up. But I guess it is still true. Do you want me to rebase and send it again.. regards sudip > > -Patrik > >> >> regards >> sudip >> >>> drivers/gpu/drm/gma500/framebuffer.c | 13 ++++--------- >>> 1 file changed, 4 insertions(+), 9 deletions(-) >>> >>> diff --git a/drivers/gpu/drm/gma500/framebuffer.c >>> b/drivers/gpu/drm/gma500/framebuffer.c >>> index 2eaf1b3..52e2bf3 100644 >>> --- a/drivers/gpu/drm/gma500/framebuffer.c >>> +++ b/drivers/gpu/drm/gma500/framebuffer.c >>> @@ -411,7 +411,7 @@ static int psbfb_create(struct psb_fbdev *fbdev, >>> info = drm_fb_helper_alloc_fbi(&fbdev->psb_fb_helper); >>> if (IS_ERR(info)) { >>> ret = PTR_ERR(info); >>> - goto out_err1; >>> + goto err_unlock; >>> } >>> info->par = fbdev; >>> >>> @@ -419,7 +419,7 @@ static int psbfb_create(struct psb_fbdev *fbdev, >>> >>> ret = psb_framebuffer_init(dev, psbfb, &mode_cmd, backing); >>> if (ret) >>> - goto out_unref; >>> + goto err_release; >>> >>> fb = &psbfb->base; >>> psbfb->fbdev = info; >>> @@ -465,14 +465,9 @@ static int psbfb_create(struct psb_fbdev *fbdev, >>> >>> mutex_unlock(&dev->struct_mutex); >>> return 0; >>> -out_unref: >>> - if (backing->stolen) >>> - psb_gtt_free_range(dev, backing); >>> - else >>> - drm_gem_object_unreference(&backing->gem); >>> - >>> +err_release: >>> drm_fb_helper_release_fbi(&fbdev->psb_fb_helper); >>> -out_err1: >>> +err_unlock: >>> mutex_unlock(&dev->struct_mutex); >>> psb_gtt_free_range(dev, backing); >>> return ret; >>> -- >>> 1.9.1 >>>