diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2007-11-18 17:33:07 +0000 |
---|---|---|
committer | Thomas Schwinge <tschwinge@gnu.org> | 2009-06-18 00:27:13 +0200 |
commit | 53aab0a6dc9da6687fd95db1a609785b01eec3ff (patch) | |
tree | 52c8a2715ebe161ca55c7e4598a46a4744acfd31 /i386/intel | |
parent | 0a9db9be1c17787ef586de7c1363b675a0a4d248 (diff) |
2007-11-18 Samuel Thibault <samuel.thibault@ens-lyon.org>
* i386/intel/pmap.c (pmap_map_bd): Use
INTEL_PTE_NCACHE|INTEL_PTE_WTHRU. Get pmap lock.
Diffstat (limited to 'i386/intel')
-rw-r--r-- | i386/intel/pmap.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/i386/intel/pmap.c b/i386/intel/pmap.c index 7746c61..539e3f0 100644 --- a/i386/intel/pmap.c +++ b/i386/intel/pmap.c @@ -502,13 +502,17 @@ vm_offset_t pmap_map_bd(virt, start, end, prot) { register pt_entry_t template; register pt_entry_t *pte; + int spl; - template = pa_to_pte(start) | INTEL_PTE_VALID; + template = pa_to_pte(start) + | INTEL_PTE_NCACHE|INTEL_PTE_WTHRU + | INTEL_PTE_VALID; if (CPU_HAS_FEATURE(CPU_FEATURE_PGE)) template |= INTEL_PTE_GLOBAL; if (prot & VM_PROT_WRITE) template |= INTEL_PTE_WRITE; + PMAP_READ_LOCK(pmap, spl); while (start < end) { pte = pmap_pte(kernel_pmap, virt); if (pte == PT_ENTRY_NULL) @@ -518,6 +522,7 @@ vm_offset_t pmap_map_bd(virt, start, end, prot) virt += PAGE_SIZE; start += PAGE_SIZE; } + PMAP_READ_UNLOCK(pmap, spl); return(virt); } |