summaryrefslogtreecommitdiffstats
path: root/sys/amd64
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2008-07-31 04:42:42 +0000
committeralc <alc@FreeBSD.org>2008-07-31 04:42:42 +0000
commit9a91b0b82bcd21aac5700918064e49f2f3c59bad (patch)
tree6e82ba18a9eef0af7abef4cb777f38d34f9e1855 /sys/amd64
parentaa725a00f3cfd9316a873d01ce73338dc2ac2dd9 (diff)
downloadFreeBSD-src-9a91b0b82bcd21aac5700918064e49f2f3c59bad.zip
FreeBSD-src-9a91b0b82bcd21aac5700918064e49f2f3c59bad.tar.gz
Eliminate recomputation of the PDE by pmap_pde_attr().
Diffstat (limited to 'sys/amd64')
-rw-r--r--sys/amd64/amd64/pmap.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c
index c72f5d3..ef5839c 100644
--- a/sys/amd64/amd64/pmap.c
+++ b/sys/amd64/amd64/pmap.c
@@ -4270,13 +4270,10 @@ pmap_pte_attr(vm_offset_t va, int mode)
/* Adjust the cache mode for a 2MB page mapped via a PDE. */
static __inline void
-pmap_pde_attr(vm_offset_t va, int mode)
+pmap_pde_attr(pd_entry_t *pde, int mode)
{
- pd_entry_t *pde;
u_int opde, npde;
- pde = pmap_pde(kernel_pmap, va);
-
/*
* The cache mode bits are all in the low 32-bits of the
* PDE, so we can just spin on updating the low 32-bits.
@@ -4420,7 +4417,7 @@ pmap_change_attr(vm_offset_t va, vm_size_t size, int mode)
for (tmpva = base; size > 0; ) {
pde = pmap_pde(kernel_pmap, tmpva);
if (*pde & PG_PS) {
- pmap_pde_attr(tmpva, mode);
+ pmap_pde_attr(pde, mode);
tmpva += NBPDR;
size -= NBPDR;
} else {
OpenPOWER on IntegriCloud