summaryrefslogtreecommitdiffstats
path: root/sys/alpha
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2001-06-29 04:18:59 +0000
committerjhb <jhb@FreeBSD.org>2001-06-29 04:18:59 +0000
commit3c7ad7347031542b48d722a7f375355a04259295 (patch)
tree20de132804ff93a2c44724d5d221955293b14849 /sys/alpha
parentcc8833dfe93c8b4278dc447d08a183bffab6c910 (diff)
downloadFreeBSD-src-3c7ad7347031542b48d722a7f375355a04259295.zip
FreeBSD-src-3c7ad7347031542b48d722a7f375355a04259295.tar.gz
Grab Giant around fault handling at the top level for now.
Diffstat (limited to 'sys/alpha')
-rw-r--r--sys/alpha/alpha/trap.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/alpha/alpha/trap.c b/sys/alpha/alpha/trap.c
index a4132c7..3e958ef 100644
--- a/sys/alpha/alpha/trap.c
+++ b/sys/alpha/alpha/trap.c
@@ -523,6 +523,7 @@ trap(a0, a1, a2, entry, framep)
goto out;
}
+ mtx_lock(&Giant);
/*
* It is only a kernel address space fault iff:
* 1. !user and
@@ -629,9 +630,11 @@ trap(a0, a1, a2, entry, framep)
rv = KERN_INVALID_ADDRESS;
}
if (rv == KERN_SUCCESS) {
+ mtx_unlock(&Giant);
goto out;
}
+ mtx_unlock(&Giant);
if (!user) {
/* Check for copyin/copyout fault */
if (p != NULL &&
OpenPOWER on IntegriCloud