drm/i915/ttm: Fix illegal addition to shrinker list
authorThomas Hellström <thomas.hellstrom@linux.intel.com>
Wed, 10 Nov 2021 08:55:27 +0000 (09:55 +0100)
committerThomas Hellström <thomas.hellstrom@linux.intel.com>
Thu, 11 Nov 2021 08:00:00 +0000 (09:00 +0100)
commitd3cb30f8dcbcb797bb4dd62dc8e85dd2334c3475
treeb9c25771e338c8c92eb6e4e59ec089ca82aab673
parent498f02b657b7a591c61cf269f7b02dc136231ea1
drm/i915/ttm: Fix illegal addition to shrinker list

There's a small window of opportunity during which the adjust_lru()
function can be called with a GEM refcount of zero from the TTM
eviction code. This results in a kernel BUG().

Ensure that we don't attempt to modify the GEM shrinker lists unless
we have a GEM refcount.

Fixes: ebd4a8ec7799 ("drm/i915/ttm: move shrinker management into adjust_lru")
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20211110085527.1033475-1-thomas.hellstrom@linux.intel.com
drivers/gpu/drm/i915/gem/i915_gem_ttm.c