[PULL] drm-xe-fixes

Rodrigo Vivi
2024-08-22T15:13:10Z

This is indeed a hectic week on our drm-xe-fixes.

- 10 of the patches here are patches that got recent merged.
- 9 are extra patches, mostly workarounds, which were already
in drm-xe-next, but not picked up for fixes due the lack of
Fixes tag. Lucas had identified them on a backport effort and
they look important for the overall stability, hence we are
adding this for this round on top of the 10 regular fixes.

The conflicts on taking them now were only trivial and solved
getting the -next tree versions on a drm-tip rebuild.
Everything recorded directly in drm-rerere, with no extra
manual conflict handling needed.

Thanks,
Rodrigo.

drm-xe-fixes-2024-08-22:
UAPI Changes:
- Fix OA format masks which were breaking build with gcc-5 (Geert)

Driver Changes:
- Fix opregion leak (Lucas)
- Fix OA sysfs entry (Ashutosh)
- Fix VM dma-resv lock (Brost)
- Fix tile fini sequence (Brost)
- Prevent UAF around preempt fence (Auld)
- Fix DGFX display suspend/resume (Maarten)
- Many Xe/Xe2 critical workarounds (Auld, Ngai-Mint, Bommu, Tejas, Daniele)
- Fix devm/drmm issues (Daniele)
- Fix missing workqueue destroy in xe_gt_pagefault (Stuart)
- Drop HW fence pointer to HW fence ctx (Brost)
- Free job before xe_exec_queue_put (Brost)
The following changes since commit 47ac09b91befbb6a235ab620c32af719f8208399:

Linux 6.11-rc4 (2024-08-18 13:17:27 -0700)

are available in the Git repository at:

https://gitlab.freedesktop.org/drm/xe/kernel.git tags/drm-xe-fixes-2024-08-22

for you to fetch changes up to 9e7f30563677fbeff62d368d5d2a5ac7aaa9746a:

drm/xe: Free job before xe_exec_queue_put (2024-08-21 11:53:15 -0400)

----------------------------------------------------------------
UAPI Changes:
- Fix OA format masks which were breaking build with gcc-5 (Geert)

Driver Changes:
- Fix opregion leak (Lucas)
- Fix OA sysfs entry (Ashutosh)
- Fix VM dma-resv lock (Brost)
- Fix tile fini sequence (Brost)
- Prevent UAF around preempt fence (Auld)
- Fix DGFX display suspend/resume (Maarten)
- Many Xe/Xe2 critical workarounds (Auld, Ngai-Mint, Bommu, Tejas, Daniele)
- Fix devm/drmm issues (Daniele)
- Fix missing workqueue destroy in xe_gt_pagefault (Stuart)
- Drop HW fence pointer to HW fence ctx (Brost)
- Free job before xe_exec_queue_put (Brost)

----------------------------------------------------------------
Ashutosh Dixit (1):
drm/xe/observation: Drop empty sysctl table entry

Bommu Krishnaiah (1):
drm/xe/xe2lpg: Extend workaround 14021402888

Daniele Ceraolo Spurio (3):
drm/xe: fix WA 14018094691
drm/xe: use devm instead of drmm for managed bo
drm/xe/uc: Use devm to register cleanup that includes exec_queues

Geert Uytterhoeven (1):
drm/xe/oa/uapi: Make bit masks unsigned

Lucas De Marchi (1):
drm/xe: Fix opregion leak

Maarten Lankhorst (1):
drm/xe/display: Make display suspend/resume work on discrete

Matthew Auld (2):
drm/xe: prevent UAF around preempt fence
drm/xe/bmg: implement Wa_16023588340

Matthew Brost (4):
drm/xe: Move VM dma-resv lock from xe_exec_queue_create to __xe_exec_queue_init
drm/xe: Fix tile fini sequence
drm/xe: Drop HW fence pointer to HW fence ctx
drm/xe: Free job before xe_exec_queue_put

Ngai-Mint Kwan (1):
drm/xe/xe2lpm: Extend Wa_16021639441

Stuart Summers (1):
drm/xe: Fix missing workqueue destroy in xe_gt_pagefault

Tejas Upadhyay (3):
drm/xe/xe2: Make subsequent L2 flush sequential
drm/xe/xe2: Add Wa_15015404425
drm/xe/xe2hpg: Add Wa_14021821874

drivers/gpu/drm/xe/Makefile | 2 ++
drivers/gpu/drm/xe/display/xe_display.c | 28 ++++++++++++++-
drivers/gpu/drm/xe/display/xe_dsb_buffer.c | 8 +++++
drivers/gpu/drm/xe/display/xe_fb_pin.c | 3 ++
drivers/gpu/drm/xe/regs/xe_gt_regs.h | 9 +++++
drivers/gpu/drm/xe/xe_bo.c | 6 ++--
drivers/gpu/drm/xe/xe_device.c | 32 +++++++++++++++++
drivers/gpu/drm/xe/xe_device.h | 1 +
drivers/gpu/drm/xe/xe_exec_queue.c | 24 +++++++------
drivers/gpu/drm/xe/xe_exec_queue_types.h | 2 --
drivers/gpu/drm/xe/xe_gsc.c | 8 ++---
drivers/gpu/drm/xe/xe_gt.c | 55 +++++++++++++++++++++++++++++
drivers/gpu/drm/xe/xe_gt_pagefault.c | 18 ++++++++--
drivers/gpu/drm/xe/xe_gt_types.h | 6 ++++
drivers/gpu/drm/xe/xe_guc_submit.c | 4 +--
drivers/gpu/drm/xe/xe_hw_fence.c | 9 ++---
drivers/gpu/drm/xe/xe_hw_fence_types.h | 7 ++--
drivers/gpu/drm/xe/xe_mmio.c | 28 ++++++++++++++-
drivers/gpu/drm/xe/xe_observation.c | 1 -
drivers/gpu/drm/xe/xe_pat.c | 11 +++++-
drivers/gpu/drm/xe/xe_pm.c | 11 +++---
drivers/gpu/drm/xe/xe_preempt_fence.c | 3 +-
drivers/gpu/drm/xe/xe_preempt_fence_types.h | 2 ++
drivers/gpu/drm/xe/xe_sched_job.c | 3 +-
drivers/gpu/drm/xe/xe_trace.h | 2 +-
drivers/gpu/drm/xe/xe_wa.c | 18 ++++++++++
drivers/gpu/drm/xe/xe_wa_oob.rules | 1 +
include/uapi/drm/xe_drm.h | 8 ++---
28 files changed, 265 insertions(+), 45 deletions(-)