From 53aab0a6dc9da6687fd95db1a609785b01eec3ff Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 18 Nov 2007 17:33:07 +0000 Subject: 2007-11-18 Samuel Thibault * i386/intel/pmap.c (pmap_map_bd): Use INTEL_PTE_NCACHE|INTEL_PTE_WTHRU. Get pmap lock. --- i386/intel/pmap.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'i386/intel/pmap.c') 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); } -- cgit v1.2.3