]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/xe: Disable garbage collector work item on SVM close
authorMatthew Brost <matthew.brost@intel.com>
Fri, 27 Feb 2026 01:52:25 +0000 (17:52 -0800)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Mon, 30 Mar 2026 12:52:14 +0000 (08:52 -0400)
When an SVM is closed, the garbage collector work item must be stopped
synchronously and any future queuing must be prevented. Replace
flush_work() with disable_work_sync() to ensure both conditions are
met.

Fixes: 63f6e480d115 ("drm/xe: Add SVM garbage collector")
Cc: stable@vger.kernel.org
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Link: https://patch.msgid.link/20260227015225.3081787-1-matthew.brost@intel.com
(cherry picked from commit 2247feb9badca5a4774df9a437bfc44fba4f22de)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/xe/xe_svm.c

index ca67d0bdbfac5a159c6de9d71b9bf87b75d606e8..c6b92d4ea6f43e14d4d1495320de020225d7fed0 100644 (file)
@@ -903,7 +903,7 @@ int xe_svm_init(struct xe_vm *vm)
 void xe_svm_close(struct xe_vm *vm)
 {
        xe_assert(vm->xe, xe_vm_is_closed(vm));
-       flush_work(&vm->svm.garbage_collector.work);
+       disable_work_sync(&vm->svm.garbage_collector.work);
        xe_svm_put_pagemaps(vm);
        drm_pagemap_release_owner(&vm->svm.peer);
 }