diff options
| author | Shuicheng Lin <shuicheng.lin@intel.com> | 2026-07-21 20:55:15 +0000 |
|---|---|---|
| committer | Shuicheng Lin <shuicheng.lin@intel.com> | 2026-07-22 15:55:49 -0700 |
| commit | cc98c031846e3f2f2f91fe4256d5754cd2f7ef71 (patch) | |
| tree | 0437aad0436aab1fb954df142a6d98679d433293 | |
| parent | ca2a3587d577ba764e0fe628fb676244fc33ddd4 (diff) | |
| download | linux-next-cc98c031846e3f2f2f91fe4256d5754cd2f7ef71.tar.gz linux-next-cc98c031846e3f2f2f91fe4256d5754cd2f7ef71.zip | |
drm/xe/vm: Remove redundant INIT_WORK() for rebind_work in xe_vm_create()
xe_vm_create() initializes vm->preempt.rebind_work twice for LR-mode
VMs: once in the LR-mode setup block before xe_svm_init(), and again
inside the xe_validation_guard() block. The second call is a no-op on
top of the first since the work is never queued between them, but
re-initializing a work item is unnecessary and makes lifetime and
ordering harder to reason about (e.g., any future change that queues
the work earlier would be silently corrupted by the second INIT_WORK).
Drop the duplicate INIT_WORK() and keep only the batch_invalidate_tlb
flag handling in the later LR-mode block. The single INIT_WORK() call
in the earlier LR-mode setup block remains the sole initialization.
No functional change.
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Assisted-by: Claude:claude-opus-4.7
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
Link: https://patch.msgid.link/20260721205516.4058959-3-shuicheng.lin@intel.com
Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>
| -rw-r--r-- | drivers/gpu/drm/xe/xe_vm.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c index 5e636c6e5a51..660e387f36fc 100644 --- a/drivers/gpu/drm/xe/xe_vm.c +++ b/drivers/gpu/drm/xe/xe_vm.c @@ -1765,10 +1765,8 @@ struct xe_vm *xe_vm_create(struct xe_device *xe, u32 flags, struct xe_file *xef) vm->batch_invalidate_tlb = true; } - if (vm->flags & XE_VM_FLAG_LR_MODE) { - INIT_WORK(&vm->preempt.rebind_work, preempt_rebind_work_func); + if (vm->flags & XE_VM_FLAG_LR_MODE) vm->batch_invalidate_tlb = false; - } /* Fill pt_root after allocating scratch tables */ for_each_tile(tile, xe, id) { |
