]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/xe: Do not run GPU page fault handler on a closed VM
authorMatthew Brost <matthew.brost@intel.com>
Wed, 11 Sep 2024 01:18:20 +0000 (18:18 -0700)
committerMatthew Brost <matthew.brost@intel.com>
Thu, 12 Sep 2024 19:17:55 +0000 (12:17 -0700)
Closing a VM removes page table memory thus we shouldn't touch page
tables when a VM is closed. Do not run the GPU page fault handler once
the VM is closed to avoid touching page tables.

Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240911011820.825127-1-matthew.brost@intel.com
drivers/gpu/drm/xe/xe_gt_pagefault.c

index 730eec07795e20c1e203e68ded7922154594d8a6..00af059a8971a8e54f082633383aa763819bc0f1 100644 (file)
@@ -212,6 +212,12 @@ static int handle_pagefault(struct xe_gt *gt, struct pagefault *pf)
         * TODO: Change to read lock? Using write lock for simplicity.
         */
        down_write(&vm->lock);
+
+       if (xe_vm_is_closed(vm)) {
+               err = -ENOENT;
+               goto unlock_vm;
+       }
+
        vma = lookup_vma(vm, pf->page_addr);
        if (!vma) {
                err = -EINVAL;