drm/i915: Check new context against kernel_context after reporting an error
Avoid any pointer dereference in inspecting a potential PTR_ERR by checking for the error pointer before checking for an invalid context. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/20170705142634.18554-1-chris@chris-wilson.co.uk
This commit is contained in:
Родитель
817aef5d86
Коммит
e4d5dc218c
|
@ -571,14 +571,13 @@ int i915_gem_context_open(struct drm_i915_private *i915,
|
||||||
mutex_lock(&i915->drm.struct_mutex);
|
mutex_lock(&i915->drm.struct_mutex);
|
||||||
ctx = i915_gem_create_context(i915, file_priv);
|
ctx = i915_gem_create_context(i915, file_priv);
|
||||||
mutex_unlock(&i915->drm.struct_mutex);
|
mutex_unlock(&i915->drm.struct_mutex);
|
||||||
|
|
||||||
GEM_BUG_ON(i915_gem_context_is_kernel(ctx));
|
|
||||||
|
|
||||||
if (IS_ERR(ctx)) {
|
if (IS_ERR(ctx)) {
|
||||||
idr_destroy(&file_priv->context_idr);
|
idr_destroy(&file_priv->context_idr);
|
||||||
return PTR_ERR(ctx);
|
return PTR_ERR(ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GEM_BUG_ON(i915_gem_context_is_kernel(ctx));
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче