[PULL] drm-xe-fixes

Lucas De Marchi
2024-10-03T14:15:42Z

Hi Dave and Simona,

drm-xe-fixes for 6.12-rc2. A few fixes, particularly on error paths and
corner cases. We have more than usual as I decided to skip last week
pull request. Some tuning for Xe2 were missing and also got updated to
match the spec.

Thanks
Lucas De Marchi

drm-xe-fixes-2024-10-03:
Driver Changes:
- Restore pci state on resume (Rodrigo Vivi)
- Fix locking on submission, queue and vm (Matthew Auld, Matthew Brost)
- Fix UAF on queue destruction (Matthew Auld)
- Fix resource release on freq init error path (He Lugang)
- Use rw_semaphore to reduce contention on ASID->VM lookup (Matthew Brost)
- Fix steering for media on Xe2_HPM (Gustavo Sousa)
- Tuning updates to Xe2 (Gustavo Sousa)
- Resume TDR after GT reset to prevent jobs running forever (Matthew Brost)
- Move id allocation to avoid userspace using a guessed number
to trigger UAF (Matthew Auld, Matthew Brost)
- Fix OA stream close preventing pbatch buffers to complete (José)
- Fix NPD when migrating memory on LNL (Zhanjun Dong)
- Fix memory leak when aborting binds (Matthew Brost)
The following changes since commit 9852d85ec9d492ebef56dc5f229416c925758edc:

Linux 6.12-rc1 (2024-09-29 15:06:19 -0700)

are available in the Git repository at:

https://gitlab.freedesktop.org/drm/xe/kernel.git tags/drm-xe-fixes-2024-10-03

for you to fetch changes up to a6f3b2527375c786f2eff77d3ee8b805bcfe026d:

drm/xe: Fix memory leak when aborting binds (2024-10-03 01:24:54 -0500)

----------------------------------------------------------------
Driver Changes:
- Restore pci state on resume (Rodrigo Vivi)
- Fix locking on submission, queue and vm (Matthew Auld, Matthew Brost)
- Fix UAF on queue destruction (Matthew Auld)
- Fix resource release on freq init error path (He Lugang)
- Use rw_semaphore to reduce contention on ASID->VM lookup (Matthew Brost)
- Fix steering for media on Xe2_HPM (Gustavo Sousa)
- Tuning updates to Xe2 (Gustavo Sousa)
- Resume TDR after GT reset to prevent jobs running forever (Matthew Brost)
- Move id allocation to avoid userspace using a guessed number
to trigger UAF (Matthew Auld, Matthew Brost)
- Fix OA stream close preventing pbatch buffers to complete (José)
- Fix NPD when migrating memory on LNL (Zhanjun Dong)
- Fix memory leak when aborting binds (Matthew Brost)

----------------------------------------------------------------
Gustavo Sousa (3):
drm/xe/mcr: Use Xe2_LPM steering tables for Xe2_HPM
drm/xe/xe2: Extend performance tuning to media GT
drm/xe/xe2: Add performance tuning for L3 cache flushing

He Lugang (1):
drm/xe: use devm_add_action_or_reset() helper

José Roberto de Souza (1):
drm/xe/oa: Don't reset OAC_CONTEXT_ENABLE on OA stream close

Matthew Auld (4):
drm/xe/guc_submit: add missing locking in wedged_fini
drm/xe: fix UAF around queue destruction
drm/xe/vm: move xa_alloc to prevent UAF
drm/xe/queue: move xa_alloc to prevent UAF

Matthew Brost (5):
drm/xe: Convert to USM lock to rwsem
drm/xe: Use helper for ASID -> VM in GPU faults and access counters
drm/xe: Resume TDR after GT reset
drm/xe: Clean up VM / exec queue file lock usage.
drm/xe: Fix memory leak when aborting binds

Rodrigo Vivi (1):
drm/xe: Restore pci state upon resume

Zhanjun Dong (1):
drm/xe: Prevent null pointer access in xe_migrate_copy

drivers/gpu/drm/xe/regs/xe_gt_regs.h | 11 ++++++++++
drivers/gpu/drm/xe/xe_bo.c | 4 ++--
drivers/gpu/drm/xe/xe_device.c | 12 +++++------
drivers/gpu/drm/xe/xe_device_types.h | 19 +++++++++++++----
drivers/gpu/drm/xe/xe_drm_client.c | 9 +++++++-
drivers/gpu/drm/xe/xe_exec_queue.c | 6 +++---
drivers/gpu/drm/xe/xe_gpu_scheduler.c | 5 +++++
drivers/gpu/drm/xe/xe_gpu_scheduler.h | 2 ++
drivers/gpu/drm/xe/xe_gt_freq.c | 4 ++--
drivers/gpu/drm/xe/xe_gt_mcr.c | 2 +-
drivers/gpu/drm/xe/xe_gt_pagefault.c | 39 +++++++++++++++++++----------------
drivers/gpu/drm/xe/xe_gt_sysfs.c | 2 +-
drivers/gpu/drm/xe/xe_guc_submit.c | 37 ++++++++++++++++++++++++++++++---
drivers/gpu/drm/xe/xe_guc_types.h | 2 ++
drivers/gpu/drm/xe/xe_oa.c | 9 +++-----
drivers/gpu/drm/xe/xe_pci.c | 2 ++
drivers/gpu/drm/xe/xe_pt.c | 2 +-
drivers/gpu/drm/xe/xe_tuning.c | 28 +++++++++++++++++++++++++
drivers/gpu/drm/xe/xe_vm.c | 28 +++++++++++--------------
19 files changed, 159 insertions(+), 64 deletions(-)