diff options
author | peter <peter@FreeBSD.org> | 2002-07-13 20:58:56 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 2002-07-13 20:58:56 +0000 |
commit | 33ec32bcbff69e584ebb8946f6905aab86f10bed (patch) | |
tree | d65cc67d278614f4288d691b1307aef602f91144 | |
parent | 995438bbe58ef8b7b5c8e843376821a0eb84672e (diff) | |
download | FreeBSD-src-33ec32bcbff69e584ebb8946f6905aab86f10bed.zip FreeBSD-src-33ec32bcbff69e584ebb8946f6905aab86f10bed.tar.gz |
Do global shootdowns when switching to/from 4MB pages. I believe we can
do a shootdown on a 4MB "page" though, but this should be safer for now.
Noticed by: tegge
-rw-r--r-- | sys/amd64/amd64/pmap.c | 4 | ||||
-rw-r--r-- | sys/i386/i386/pmap.c | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index 03e3aa4..2d00a12 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -1389,7 +1389,7 @@ pmap_allocpte(pmap_t pmap, vm_offset_t va) if (ptepa & PG_PS) { pmap->pm_pdir[ptepindex] = 0; ptepa = 0; - invltlb(); + pmap_invalidate_all(kernel_pmap); } /* @@ -2352,7 +2352,7 @@ retry: ptepindex += 1; } vm_page_flag_set(p, PG_MAPPED); - invltlb(); + pmap_invalidate_all(kernel_pmap); return; } diff --git a/sys/i386/i386/pmap.c b/sys/i386/i386/pmap.c index 03e3aa4..2d00a12 100644 --- a/sys/i386/i386/pmap.c +++ b/sys/i386/i386/pmap.c @@ -1389,7 +1389,7 @@ pmap_allocpte(pmap_t pmap, vm_offset_t va) if (ptepa & PG_PS) { pmap->pm_pdir[ptepindex] = 0; ptepa = 0; - invltlb(); + pmap_invalidate_all(kernel_pmap); } /* @@ -2352,7 +2352,7 @@ retry: ptepindex += 1; } vm_page_flag_set(p, PG_MAPPED); - invltlb(); + pmap_invalidate_all(kernel_pmap); return; } |