On Thu, Jul 24, 2014 at 01:28:44PM +0100, Chris Wilson wrote:
> Move the code around in order to acquire and release the spinlock in the
> same function and in the same block. This keeps static analysers happy
> and the reader sane.
> 
> Suggested-by: Julia Lawall <julia.law...@lip6.fr>
> Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk>
> Cc: Julia Lawall <julia.law...@lip6.fr>

Queued for -next, thanks for the patch.
-Daniel

> ---
>  drivers/gpu/drm/i915/i915_gem_userptr.c | 17 ++++++++---------
>  1 file changed, 8 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem_userptr.c 
> b/drivers/gpu/drm/i915/i915_gem_userptr.c
> index 12358fd..4ef5a92 100644
> --- a/drivers/gpu/drm/i915/i915_gem_userptr.c
> +++ b/drivers/gpu/drm/i915/i915_gem_userptr.c
> @@ -96,10 +96,10 @@ static unsigned long cancel_userptr(struct 
> drm_i915_gem_object *obj)
>       return end;
>  }
>  
> -static void invalidate_range__linear(struct i915_mmu_notifier *mn,
> -                                  struct mm_struct *mm,
> -                                  unsigned long start,
> -                                  unsigned long end)
> +static void *invalidate_range__linear(struct i915_mmu_notifier *mn,
> +                                   struct mm_struct *mm,
> +                                   unsigned long start,
> +                                   unsigned long end)
>  {
>       struct i915_mmu_object *mo;
>       unsigned long serial;
> @@ -123,7 +123,7 @@ restart:
>                       goto restart;
>       }
>  
> -     spin_unlock(&mn->lock);
> +     return NULL;
>  }
>  
>  static void i915_gem_userptr_mn_invalidate_range_start(struct mmu_notifier 
> *_mn,
> @@ -138,13 +138,12 @@ static void 
> i915_gem_userptr_mn_invalidate_range_start(struct mmu_notifier *_mn,
>  
>       end--; /* interval ranges are inclusive, but invalidate range is 
> exclusive */
>       while (next < end) {
> -             struct drm_i915_gem_object *obj;
> +             struct drm_i915_gem_object *obj = NULL;
>  
> -             obj = NULL;
>               spin_lock(&mn->lock);
>               if (mn->has_linear)
> -                     return invalidate_range__linear(mn, mm, start, end);
> -             if (serial == mn->serial)
> +                     it = invalidate_range__linear(mn, mm, start, end);
> +             else if (serial == mn->serial)
>                       it = interval_tree_iter_next(it, next, end);
>               else
>                       it = interval_tree_iter_first(&mn->objects, start, end);
> -- 
> 1.9.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
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to