From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] drm/i915: Fix set_caching locking Date: Thu, 27 Sep 2012 08:45:28 +0200 Message-ID: <20120927064528.GS1980@bremse> References: <1348701320-28899-1-git-send-email-ben@bwidawsk.net> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail-bk0-f49.google.com (mail-bk0-f49.google.com [209.85.214.49]) by gabe.freedesktop.org (Postfix) with ESMTP id 154259E8C0 for ; Wed, 26 Sep 2012 23:45:33 -0700 (PDT) Received: by bkwj4 with SMTP id j4so1074084bkw.36 for ; Wed, 26 Sep 2012 23:45:32 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1348701320-28899-1-git-send-email-ben@bwidawsk.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: Ben Widawsky Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org On Wed, Sep 26, 2012 at 04:15:20PM -0700, Ben Widawsky wrote: > On the EINVAL case we don't release struct_mutex. It should be safe to > grab the lock after checking the parameters, which also resolves the > issues. > > Signed-off-by: Ben Widawsky Nice catch, thanks for the patch, applied to fixes. -Daniel > --- > drivers/gpu/drm/i915/i915_gem.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c > index 365a7dc..76bbb37 100644 > --- a/drivers/gpu/drm/i915/i915_gem.c > +++ b/drivers/gpu/drm/i915/i915_gem.c > @@ -3218,10 +3218,6 @@ int i915_gem_set_caching_ioctl(struct drm_device *dev, void *data, > enum i915_cache_level level; > int ret; > > - ret = i915_mutex_lock_interruptible(dev); > - if (ret) > - return ret; > - > switch (args->caching) { > case I915_CACHING_NONE: > level = I915_CACHE_NONE; > @@ -3233,6 +3229,10 @@ int i915_gem_set_caching_ioctl(struct drm_device *dev, void *data, > return -EINVAL; > } > > + ret = i915_mutex_lock_interruptible(dev); > + if (ret) > + return ret; > + > obj = to_intel_bo(drm_gem_object_lookup(dev, file, args->handle)); > if (&obj->base == NULL) { > ret = -ENOENT; > -- > 1.7.12.1 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch