[Intel-gfx] [PATCH 48/64] drm/i915: Kill drop_pages()

Tvrtko Ursulin tvrtko.ursulin at linux.intel.com
Tue Jul 12 15:14:16 UTC 2016


On 07/07/16 09:41, Chris Wilson wrote:
> The drop_pages() function is a dangerous trap in that it can release the
> passed in object pointer and so unless the caller is aware, it can
> easily trick us into using the stale object afterwards. Move it into its
> solitary callsite where we know it is safe.
>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> ---
>   drivers/gpu/drm/i915/i915_gem.c | 20 +++++---------------
>   1 file changed, 5 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index 28a3079a7892..b6497e9961ab 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -306,20 +306,6 @@ i915_gem_object_unbind(struct drm_i915_gem_object *obj)
>   	return ret;
>   }
>
> -static int
> -drop_pages(struct drm_i915_gem_object *obj)
> -{
> -	int ret;
> -
> -	i915_gem_object_get(obj);
> -	ret = i915_gem_object_unbind(obj);
> -	if (ret == 0)
> -		ret = i915_gem_object_put_pages(obj);
> -	i915_gem_object_put(obj);
> -
> -	return ret;
> -}
> -
>   int
>   i915_gem_object_attach_phys(struct drm_i915_gem_object *obj,
>   			    int align)
> @@ -340,7 +326,11 @@ i915_gem_object_attach_phys(struct drm_i915_gem_object *obj,
>   	if (obj->base.filp == NULL)
>   		return -EINVAL;
>
> -	ret = drop_pages(obj);
> +	ret = i915_gem_object_unbind(obj);
> +	if (ret)
> +		return ret;
> +
> +	ret = i915_gem_object_put_pages(obj);
>   	if (ret)
>   		return ret;
>
>

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>

Regards,

Tvrtko


More information about the Intel-gfx mailing list