]> www.infradead.org Git - users/hch/configfs.git/commitdiff
drm/xe: Fix xe_pt_abort_unbind
authorMatthew Brost <matthew.brost@intel.com>
Tue, 23 Jul 2024 01:02:30 +0000 (18:02 -0700)
committerMatthew Brost <matthew.brost@intel.com>
Tue, 23 Jul 2024 15:02:43 +0000 (08:02 -0700)
When restoring the children PT entries on a bind failure the incorrect
loop index has used resulting in PT entries being leaked. This is shown
by running xe_vm.bind-array-conflict-error-inject on a VRAM device going
into a suspend state after the test completes.

v2:
 - s/childern/children (CI, Matt Auld)

Fixes: a708f6501c69 ("drm/xe: Update PT layer with better error handling")
Cc: Matthew Auld <matthew.auld@intel.com>
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240723010230.1652707-1-matthew.brost@intel.com
drivers/gpu/drm/xe/xe_pt.c

index c24e869b7eaead6b3ab93fb0825f1d3a3b1cca4e..97a6a0b0b8bad8d8847a755285fceec50dba5398 100644 (file)
@@ -1564,7 +1564,7 @@ static void xe_pt_abort_unbind(struct xe_vma *vma,
                        continue;
 
                for (j = entry->ofs; j < entry->ofs + entry->qwords; j++)
-                       pt_dir->children[i] =
+                       pt_dir->children[j] =
                                entries[i].pt_entries[j - entry->ofs].pt ?
                                &entries[i].pt_entries[j - entry->ofs].pt->base : NULL;
        }