diff options
author | Dale Rahn <drahn@cvs.openbsd.org> | 2002-07-24 02:29:58 +0000 |
---|---|---|
committer | Dale Rahn <drahn@cvs.openbsd.org> | 2002-07-24 02:29:58 +0000 |
commit | 191b499c82e32b60a8ba313eab51554083f434e8 (patch) | |
tree | 77d8a5835ef124503ea20f15bb69f144c1527f65 /sys/arch/mvmeppc | |
parent | c7e7f672d73e4b0521e4932a18643e549b55316c (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.S | 4 |
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 */ /* |