diff options
| author | Matthew Brost <matthew.brost@intel.com> | 2026-01-17 01:17:26 +0300 |
|---|---|---|
| committer | Matthew Brost <matthew.brost@intel.com> | 2026-01-17 05:24:51 +0300 |
| commit | 8d7a9f801ed72c6a2506bb26f2eec1f8245bface (patch) | |
| tree | 7b0a528e59db368a54fe87890ea5f7186d1d48d2 | |
| parent | a3866ce7b1221353b795603bb8d0c81d81e60e65 (diff) | |
| download | linux-8d7a9f801ed72c6a2506bb26f2eec1f8245bface.tar.xz | |
drm/xe: Taint TLB invalidation seqno lock with GFP_KERNEL
Taint TLB invalidation seqno lock with GFP_KERNEL as TLB invalidations
can be in the path of reclaim (e.g., MMU notifiers).
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Matt Atwood <matthew.s.atwood@intel.com>
Tested-by: Stuart Summers <stuart.summers@intel.com>
Link: https://patch.msgid.link/20260116221731.868657-7-matthew.brost@intel.com
| -rw-r--r-- | drivers/gpu/drm/xe/xe_tlb_inval.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/gpu/drm/xe/xe_tlb_inval.c b/drivers/gpu/drm/xe/xe_tlb_inval.c index e837888367c4..21fef337f29c 100644 --- a/drivers/gpu/drm/xe/xe_tlb_inval.c +++ b/drivers/gpu/drm/xe/xe_tlb_inval.c @@ -111,6 +111,16 @@ static void tlb_inval_fini(struct drm_device *drm, void *arg) xe_tlb_inval_reset(tlb_inval); } +static void primelockdep(struct xe_tlb_inval *tlb_inval) +{ + if (!IS_ENABLED(CONFIG_LOCKDEP)) + return; + + fs_reclaim_acquire(GFP_KERNEL); + might_lock(&tlb_inval->seqno_lock); + fs_reclaim_release(GFP_KERNEL); +} + /** * xe_gt_tlb_inval_init - Initialize TLB invalidation state * @gt: GT structure @@ -137,6 +147,8 @@ int xe_gt_tlb_inval_init_early(struct xe_gt *gt) if (err) return err; + primelockdep(tlb_inval); + tlb_inval->job_wq = drmm_alloc_ordered_workqueue(&xe->drm, "gt-tbl-inval-job-wq", WQ_MEM_RECLAIM); |
