From: Matthew Brost Date: Fri, 16 Jan 2026 22:17:26 +0000 (-0800) Subject: drm/xe: Taint TLB invalidation seqno lock with GFP_KERNEL X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8d7a9f801ed72c6a2506bb26f2eec1f8245bface;p=thirdparty%2Fkernel%2Flinux.git 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 Reviewed-by: Matt Atwood Tested-by: Stuart Summers Link: https://patch.msgid.link/20260116221731.868657-7-matthew.brost@intel.com --- diff --git a/drivers/gpu/drm/xe/xe_tlb_inval.c b/drivers/gpu/drm/xe/xe_tlb_inval.c index e837888367c4d..21fef337f29c4 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);