diff options
author | alc <alc@FreeBSD.org> | 2008-07-31 04:42:42 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2008-07-31 04:42:42 +0000 |
commit | 9a91b0b82bcd21aac5700918064e49f2f3c59bad (patch) | |
tree | 6e82ba18a9eef0af7abef4cb777f38d34f9e1855 /sys/amd64 | |
parent | aa725a00f3cfd9316a873d01ce73338dc2ac2dd9 (diff) | |
download | FreeBSD-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.c | 7 |
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 { |