From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Jones Subject: gma500: remove double free in psbfb_create Date: Fri, 20 Sep 2013 09:56:48 -0400 Message-ID: <20130920135648.GA19879@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org To: Dave Airlie Cc: Patrik Jakobsson , Daniel Vetter , Rob Clark , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org This code appears to be calling psb_gtt_free_range twice with the same args. (The second call didn't appear in the diff output, it's right after the mutex_unlock) Spotted with Coverity, not tested due to lack of hardware. Signed-off-by: Dave Jones diff --git a/drivers/gpu/drm/gma500/framebuffer.c b/drivers/gpu/drm/gma500/framebuffer.c index 01dd7d2..d35ffc4 100644 --- a/drivers/gpu/drm/gma500/framebuffer.c +++ b/drivers/gpu/drm/gma500/framebuffer.c @@ -479,9 +479,7 @@ 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 + if (!backing->stolen) drm_gem_object_unreference(&backing->gem); out_err1: mutex_unlock(&dev->struct_mutex);