summaryrefslogtreecommitdiffstats
path: root/sys/i386
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2010-03-25 17:24:03 +0000
committeralc <alc@FreeBSD.org>2010-03-25 17:24:03 +0000
commitcb200ace0730b74bdb7fbda34a8a65d80b5c5f16 (patch)
tree7981fb6ac2ee91e8a01f7696950fd9cc1946628d /sys/i386
parentb360d7db9a6ab6ca923817b16369d869bd87bf76 (diff)
downloadFreeBSD-src-cb200ace0730b74bdb7fbda34a8a65d80b5c5f16.zip
FreeBSD-src-cb200ace0730b74bdb7fbda34a8a65d80b5c5f16.tar.gz
A ptrace(2) by one processor may trigger a promotion in the address space
of another process. Modify pmap_promote_pde() to handle this. (This is not a problem on amd64 due to implementation differences.) Reported by: jh@ MFC after: 1 week
Diffstat (limited to 'sys/i386')
-rw-r--r--sys/i386/i386/pmap.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/i386/i386/pmap.c b/sys/i386/i386/pmap.c
index c83e99c..c501878 100644
--- a/sys/i386/i386/pmap.c
+++ b/sys/i386/i386/pmap.c
@@ -3154,7 +3154,7 @@ pmap_promote_pde(pmap_t pmap, pd_entry_t *pde, vm_offset_t va)
* either invalid, unused, or does not map the first 4KB physical page
* within a 2- or 4MB page.
*/
- firstpte = vtopte(trunc_4mpage(va));
+ firstpte = pmap_pte_quick(pmap, trunc_4mpage(va));
setpde:
newpde = *firstpte;
if ((newpde & ((PG_FRAME & PDRMASK) | PG_A | PG_V)) != (PG_A | PG_V)) {
OpenPOWER on IntegriCloud