summaryrefslogtreecommitdiff
path: root/sys/arch/mvmeppc
diff options
context:
space:
mode:
authorDale Rahn <drahn@cvs.openbsd.org>2002-07-24 02:29:58 +0000
committerDale Rahn <drahn@cvs.openbsd.org>2002-07-24 02:29:58 +0000
commit191b499c82e32b60a8ba313eab51554083f434e8 (patch)
tree77d8a5835ef124503ea20f15bb69f144c1527f65 /sys/arch/mvmeppc
parentc7e7f672d73e4b0521e4932a18643e549b55316c (diff)
- change pte_spill_X() to take an extra parameter to determine if
the fault is a EXE fault or R/W fault. - mask/or the SR_NOEXEC bit into the segment register value when the number of executable pages becomes 0/non-zero. - create segments with SR_NOEXEC set, will be cleared when first exec mapping in the segment is created. - allow pte_spill_X() to deal with a new type of fault, page mapped but non executable, when execute was requested. Adds up to - non-exec stack support. [keep mvmeppc in sync]
Diffstat (limited to 'sys/arch/mvmeppc')
-rw-r--r--sys/arch/mvmeppc/mvmeppc/locore.S4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/arch/mvmeppc/mvmeppc/locore.S b/sys/arch/mvmeppc/mvmeppc/locore.S
index e6c37c21030..b187d469ed4 100644
--- a/sys/arch/mvmeppc/mvmeppc/locore.S
+++ b/sys/arch/mvmeppc/mvmeppc/locore.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: locore.S,v 1.2 2002/06/07 01:01:40 miod Exp $ */
+/* $OpenBSD: locore.S,v 1.3 2002/07/24 02:29:57 drahn Exp $ */
/* $NetBSD: locore.S,v 1.2 1996/10/16 19:33:09 ws Exp $ */
/*
@@ -952,6 +952,7 @@ s_dsitrap:
mfdar 3
mfsrr1 4
mfdsisr 5
+ li 6, 0
s_pte_spill:
bl _C_LABEL(pte_spill_r) /* try a spill */
cmpwi 0,3,0
@@ -1006,6 +1007,7 @@ s_isitrap:
mfsrr0 3
mfsrr1 4
li 5, 0
+ li 6, 1
b s_pte_spill /* above */
/*