summaryrefslogtreecommitdiff
path: root/sys/arch/arm64
diff options
context:
space:
mode:
authorMartin Pieuchot <mpi@cvs.openbsd.org>2021-05-05 07:29:02 +0000
committerMartin Pieuchot <mpi@cvs.openbsd.org>2021-05-05 07:29:02 +0000
commitdaa628bb5a5a83e2a2628e281f3ab8bde8317812 (patch)
tree8116dc1d7a606bfc0136008f365c19db7cba6438 /sys/arch/arm64
parentfc21cd1a8850beb1e985c811d3eabec5fc887807 (diff)
Unlock top part of the fault handler.
ok kettenis@
Diffstat (limited to 'sys/arch/arm64')
-rw-r--r--sys/arch/arm64/arm64/trap.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/sys/arch/arm64/arm64/trap.c b/sys/arch/arm64/arm64/trap.c
index c2b6795e7ce..c4a3ef0d50e 100644
--- a/sys/arch/arm64/arm64/trap.c
+++ b/sys/arch/arm64/arm64/trap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: trap.c,v 1.35 2021/01/25 19:37:18 kettenis Exp $ */
+/* $OpenBSD: trap.c,v 1.36 2021/05/05 07:29:00 mpi Exp $ */
/*-
* Copyright (c) 2014 Andrew Turner
* All rights reserved.
@@ -120,9 +120,7 @@ udata_abort(struct trapframe *frame, uint64_t esr, uint64_t far, int exe)
if (pmap_fault_fixup(map->pmap, va, access_type))
return;
- KERNEL_LOCK();
error = uvm_fault(map, va, 0, access_type);
- KERNEL_UNLOCK();
if (error == 0) {
uvm_grow(p, va);
@@ -178,9 +176,7 @@ kdata_abort(struct trapframe *frame, uint64_t esr, uint64_t far, int exe)
/* Handle referenced/modified emulation */
if (!pmap_fault_fixup(map->pmap, va, access_type)) {
- KERNEL_LOCK();
error = uvm_fault(map, va, 0, access_type);
- KERNEL_UNLOCK();
if (error == 0 && map != kernel_map)
uvm_grow(p, va);