diff options
author | Alan Cox <alc@FreeBSD.org> | 2014-07-15 17:16:06 +0000 |
---|---|---|
committer | Alan Cox <alc@FreeBSD.org> | 2014-07-15 17:16:06 +0000 |
commit | 87dd8ef960f9d620cdf156652c22e1e3c682d77a (patch) | |
tree | 459269314a2b710874a841c699581c0e45162551 | |
parent | fae9277339678a481d68f940652ffdef3e696670 (diff) | |
download | src-87dd8ef960f9d620cdf156652c22e1e3c682d77a.tar.gz src-87dd8ef960f9d620cdf156652c22e1e3c682d77a.zip |
Actually set the "no execute" bit on 1 MB page mappings in pmap_protect().
Previously, the "no execute" bit was being set directly in the PTE, instead
of the local variable in which the new PTE value is being constructed. So,
when the local variable was finally assigned to the PTE, the "no execute"
bit setting was lost.
Notes
Notes:
svn path=/head/; revision=268693
-rw-r--r-- | sys/arm/arm/pmap-v6.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/arm/arm/pmap-v6.c b/sys/arm/arm/pmap-v6.c index 3ae139bb07ee..7bd0cdc6d5ba 100644 --- a/sys/arm/arm/pmap-v6.c +++ b/sys/arm/arm/pmap-v6.c @@ -2846,7 +2846,7 @@ pmap_protect(pmap_t pmap, vm_offset_t sva, vm_offset_t eva, vm_prot_t prot) eva >= next_bucket) { l1pd &= ~(L1_S_PROT_MASK | L1_S_XN); if (!(prot & VM_PROT_EXECUTE)) - *pl1pd |= L1_S_XN; + l1pd |= L1_S_XN; /* * At this point we are always setting * write-protect bit. |