OSDN Git Service

drm/i915/gtt: Neuter the deferred unbind callback from gen6_ppgtt_cleanup
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 24 May 2019 06:45:29 +0000 (07:45 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 24 May 2019 09:02:01 +0000 (10:02 +0100)
commit63e8dcdb4f8e596f2a290af4278e0bca3304a1f1
treedfa64b984a7af5670fe0fcedd0a5ebe23eacdf0b
parentb3ca0d44917c12f581cfdae52f9d6efdbfda5fe6
drm/i915/gtt: Neuter the deferred unbind callback from gen6_ppgtt_cleanup

Having deferred the vma destruction to a worker where we can acquire the
struct_mutex, we have to avoid chasing back into the now destroyed
ppgtt. The pd_vma is special in having a custom unbind function to scan
for unused pages despite the VMA itself being notionally part of the
GGTT. As such, we need to disable that callback to avoid a
use-after-free.

This unfortunately blew up so early during boot that CI declared the
machine unreachable as opposed to being the major failure it was. Oops.

Fixes: d3622099c76f ("drm/i915/gtt: Always acquire struct_mutex for gen6_ppgtt_cleanup")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Tomi Sarvela <tomi.p.sarvela@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190524064529.20514-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_gem_gtt.c