drm/i915/gem: Fix a lockdep warning the __i915_gem_is_lmem() function
authorThomas Hellström <thomas.hellstrom@linux.intel.com>
Wed, 22 Sep 2021 08:38:05 +0000 (10:38 +0200)
committerThomas Hellström <thomas.hellstrom@linux.intel.com>
Fri, 24 Sep 2021 06:17:39 +0000 (08:17 +0200)
Somehow we managed to invert the test for i915_gem_object_evictable(),
which causes a warning in DG1 BAT, igt@debugfs_test@read_all_entries.

Fix the lock check to only warn if the object *is* indeed evictable and
not protected from eviction by fences.

Cc: Matthew Brost <matthew.brost@intel.com>
Fixes: 91160c839824 ("drm/i915: Take pinning into account in __i915_gem_object_is_lmem")

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/20210922083807.888206-2-thomas.hellstrom@linux.intel.com
drivers/gpu/drm/i915/gem/i915_gem_lmem.c

index d659239fcbcc79f6e05a6221472af6a6a9c1793b..444f8268b9c5f40e36256e5d350f8bcf468bcc3a 100644 (file)
@@ -67,7 +67,7 @@ bool __i915_gem_object_is_lmem(struct drm_i915_gem_object *obj)
 
 #ifdef CONFIG_LOCKDEP
        GEM_WARN_ON(dma_resv_test_signaled(obj->base.resv, true) &&
-                   !i915_gem_object_evictable(obj));
+                   i915_gem_object_evictable(obj));
 #endif
        return mr && (mr->type == INTEL_MEMORY_LOCAL ||
                      mr->type == INTEL_MEMORY_STOLEN_LOCAL);