]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/xe: Don't copy pinned kernel bos twice on suspend
authorThomas Hellström <thomas.hellstrom@linux.intel.com>
Thu, 18 Sep 2025 09:22:05 +0000 (11:22 +0200)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Mon, 22 Sep 2025 16:13:18 +0000 (12:13 -0400)
We were copying the bo content the bos on the list
"xe->pinned.late.kernel_bo_present" twice on suspend.

Presumingly the intent is to copy the pinned external bos on
the first pass.

This is harmless since we (currently) should have no pinned
external bos needing copy since
a) exernal system bos don't have compressed content,
b) We do not (yet) allow pinning of VRAM bos.

Still, fix this up so that we copy pinned external bos on
the first pass. We're about to allow bos pinned in VRAM.

Fixes: c6a4d46ec1d7 ("drm/xe: evict user memory in PM notifier")
Cc: Matthew Auld <matthew.auld@intel.com>
Cc: <stable@vger.kernel.org> # v6.16+
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Link: https://lore.kernel.org/r/20250918092207.54472-2-thomas.hellstrom@linux.intel.com
(cherry picked from commit 9e69bafece43dcefec864f00b3ec7e088aa7fcbc)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/xe/xe_bo_evict.c

index 7484ce55a303d64e9229dadb9496ff31d38c1761..d5dbc51e8612d87687becfc620316a66ffe9af91 100644 (file)
@@ -158,8 +158,8 @@ int xe_bo_evict_all(struct xe_device *xe)
        if (ret)
                return ret;
 
-       ret = xe_bo_apply_to_pinned(xe, &xe->pinned.late.kernel_bo_present,
-                                   &xe->pinned.late.evicted, xe_bo_evict_pinned);
+       ret = xe_bo_apply_to_pinned(xe, &xe->pinned.late.external,
+                                   &xe->pinned.late.external, xe_bo_evict_pinned);
 
        if (!ret)
                ret = xe_bo_apply_to_pinned(xe, &xe->pinned.late.kernel_bo_present,