Pass `uobj' to uvmfault_unlockall() at the end of the fault handler.
authormpi <mpi@openbsd.org>
Sun, 5 Sep 2021 07:59:47 +0000 (07:59 +0000)
committermpi <mpi@openbsd.org>
Sun, 5 Sep 2021 07:59:47 +0000 (07:59 +0000)
This is currently a NOOP but will become necessary to unlock the UVM
object with the upcoing "vmobjlock" diff.

Tested by patrick@ and robert@

ok jsg@

sys/dev/pci/drm/ttm/ttm_bo_vm.c

index cd70004..a2d27de 100644 (file)
@@ -711,7 +711,7 @@ ttm_bo_vm_fault(struct uvm_faultinfo *ufi, vaddr_t vaddr, vm_page_t *pps,
                        break;
                }
 
-               uvmfault_unlockall(ufi, NULL, NULL);
+               uvmfault_unlockall(ufi, NULL, uobj);
                return ret;
        }
 
@@ -730,7 +730,7 @@ ttm_bo_vm_fault(struct uvm_faultinfo *ufi, vaddr_t vaddr, vm_page_t *pps,
 
        dma_resv_unlock(bo->base.resv);
 
-       uvmfault_unlockall(ufi, NULL, NULL);
+       uvmfault_unlockall(ufi, NULL, uobj);
        return ret;
 }
 EXPORT_SYMBOL(ttm_bo_vm_fault);