Description
In the Linux kernel, the following vulnerability has been resolved: drm/amdkfd: svm range restore work deadlock when process exit kfd_process_notifier_release flush svm_range_restore_work which calls svm_range_list_lock_and_flush_work to flush deferred_list work, but if deferred_list work mmput release the last user, it will call exit_mmap -> notifier_release, it is deadlock with below backtrace. Move flush svm_range_restore_work to kfd_process_wq_release to avoid deadlock. Then svm_range_restore_work take task->mm ref to avoid mm is gone while validating and mapping ranges to GPU. Workqueue: events svm_range_deferred_list_work [amdgpu] Call Trace: wait_for_completion+0x94/0x100 __flush_work+0x12a/0x1e0 __cancel_work_timer+0x10e/0x190 cancel_delayed_work_sync+0x13/0x20 kfd_process_notifier_release+0x98/0x2a0 [amdgpu] __mmu_notifier_release+0x74/0x1f0 exit_mmap+0x170/0x200 mmput+0x5d/0x130 svm_range_deferred_list_work+0x104/0x230 [amdgpu] process_one_work+0x220/0x3c0
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
8a7c184a16d73ab25360e0f5997f82306ff5d5a2 to < a6be83086e91891081e0589e4b4645bf4643e897affected8a7c184a16d73ab25360e0f5997f82306ff5d5a2 to < 858822905f4bf44100d63c5e22e263109976f7cbaffected8a7c184a16d73ab25360e0f5997f82306ff5d5a2 to < 6225bb3a88d22594aacea2485dc28ca12d596721affected
Linux Linux
Default version status: affected
5.14affected0 to < 5.14unaffected5.16.20 to ≤ 5.16.*unaffected5.17.3 to ≤ 5.17.*unaffected5.18 to ≤ *unaffected