]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915: Always use kref tracking for all contexts.
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 9 Apr 2014 08:07:36 +0000 (09:07 +0100)
committerJani Nikula <jani.nikula@intel.com>
Fri, 11 Apr 2014 10:29:51 +0000 (13:29 +0300)
commita17f53d6e8cd4502886a470d434e3e52fa25ef06
tree94f06dbabc3e37fa207554bf181a0774af1c9b9b
parentc33a01c768cb3167b79baf26a7b6aeae8869fd0a
drm/i915: Always use kref tracking for all contexts.

If we always initialize kref for the context, even if we are using fake
contexts for hangstats when there is no hw support, we can forgo the
dance to dereference the ctx->obj and inspect whether we are permitted
to use kref inside i915_gem_context_reference() and _unreference().

My ulterior motive here is to improve the debugging of a use-after-free
of ctx->obj. This patch avoids the dereference here and instead forces
the assertion checks associated with kref.

v2: Refactor the fake contexts to being even more like the real
contexts, so that there is much less duplicated and special case code.

v3: Tweaks.
v4: Tweaks, minor.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76671
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Tested-by: lu hua <huax.lu@intel.com>
Cc: Ben Widawsky <benjamin.widawsky@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Reviewed-by: Ben Widawsky <ben@bwidawsk.net>
[Jani: tiny change to backport to drm-intel-fixes.]
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_gem.c
drivers/gpu/drm/i915/i915_gem_context.c
drivers/gpu/drm/i915/i915_gem_execbuffer.c