diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | i386/intel/pmap.c | 7 |
2 files changed, 11 insertions, 1 deletions
@@ -1,3 +1,8 @@ +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. + 2007-11-15 Samuel Thibault <samuel.thibault@ens-lyon.org> * ddb/db_examine.c (db_strcpy): Add extra parentheses around 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); } |