[Intel-gfx] [PATCH] drm/i915: Don't deref context->file_priv ERR_PTR upon reset

Mika Kuoppala mika.kuoppala at linux.intel.com
Tue Nov 22 14:27:16 UTC 2016


Chris Wilson <chris at chris-wilson.co.uk> writes:

> When a user context is closed, it's file_priv backpointer is replaced by
> ERR_PTR(-EBADF); be careful not to chase this invalid pointer after a
> hang and a GPU reset.
>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Fixes: b083a0870c79 ("drm/i915: Add per client max context ban limit")
> Cc: Mika Kuoppala <mika.kuoppala at intel.com>

Reviewed-by: Mika Kuoppala <mika.kuoppala at intel.com>

> ---
>  drivers/gpu/drm/i915/i915_gem.c | 12 ++++--------
>  1 file changed, 4 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index b850e66c2f83..d75196b86693 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -2647,16 +2647,12 @@ static void i915_gem_context_mark_guilty(struct i915_gem_context *ctx)
>  			 ctx->name, ctx->ban_score,
>  			 yesno(ctx->banned));
>  
> -	if (!ctx->file_priv)
> +	if (!ctx->banned || IS_ERR_OR_NULL(ctx->file_priv))
>  		return;
>  
> -	if (ctx->banned) {
> -		ctx->file_priv->context_bans++;
> -
> -		DRM_DEBUG_DRIVER("client %s has has %d context banned\n",
> -				 ctx->name,
> -				 ctx->file_priv->context_bans);
> -	}
> +	ctx->file_priv->context_bans++;
> +	DRM_DEBUG_DRIVER("client %s has had %d context banned\n",
> +			 ctx->name, ctx->file_priv->context_bans);
>  }
>  
>  static void i915_gem_context_mark_innocent(struct i915_gem_context *ctx)
> -- 
> 2.10.2


More information about the Intel-gfx mailing list