diff options
author | Matthew Brost <matthew.brost@intel.com> | 2024-07-23 04:02:30 +0300 |
---|---|---|
committer | Matthew Brost <matthew.brost@intel.com> | 2024-07-23 18:02:43 +0300 |
commit | 649b93dbb902ae3237fddbe998eb1f4de1a14b71 (patch) | |
tree | 62f6479f076d73c5d77672bda3f95a4c4908580b /drivers/gpu/drm/xe/xe_pt.c | |
parent | 7e0fe233aa0849de8a0a5e60cb0d71dfb359664f (diff) | |
download | linux-649b93dbb902ae3237fddbe998eb1f4de1a14b71.tar.xz |
drm/xe: Fix xe_pt_abort_unbind
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
Diffstat (limited to 'drivers/gpu/drm/xe/xe_pt.c')
-rw-r--r-- | drivers/gpu/drm/xe/xe_pt.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/xe/xe_pt.c b/drivers/gpu/drm/xe/xe_pt.c index c24e869b7eae..97a6a0b0b8ba 100644 --- a/drivers/gpu/drm/xe/xe_pt.c +++ b/drivers/gpu/drm/xe/xe_pt.c @@ -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; } |