[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