[haiku-commits] r36589 - haiku/trunk/src/system/kernel/arch/x86

  • From: ingo_weinhold@xxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Mon, 3 May 2010 00:50:30 +0200 (CEST)

Author: bonefish
Date: 2010-05-03 00:50:30 +0200 (Mon, 03 May 2010)
New Revision: 36589
Changeset: http://dev.haiku-os.org/changeset/36589/haiku

Modified:
   haiku/trunk/src/system/kernel/arch/x86/arch_vm_translation_map.cpp
Log:
memory_type_to_pte_flags(): Also set the write-through flag for uncacheable
memory. This avoids implementation defined behavior on Pentium Pro/II when
intersecting with an write-combining or write-protected MTRR range.


Modified: haiku/trunk/src/system/kernel/arch/x86/arch_vm_translation_map.cpp
===================================================================
--- haiku/trunk/src/system/kernel/arch/x86/arch_vm_translation_map.cpp  
2010-05-02 22:35:18 UTC (rev 36588)
+++ haiku/trunk/src/system/kernel/arch/x86/arch_vm_translation_map.cpp  
2010-05-02 22:50:30 UTC (rev 36589)
@@ -163,11 +163,11 @@
        // (usually only write-combining for the frame buffer).
        switch (memoryType) {
                case B_MTR_UC:
-                       return X86_PTE_CACHING_DISABLED;
+                       return X86_PTE_CACHING_DISABLED | X86_PTE_WRITE_THROUGH;
 
                case B_MTR_WC:
                        // X86_PTE_WRITE_THROUGH would be closer, but the 
combination with
-                       // MTRR WC is "implementation defined" for Pentium 
[Pro].
+                       // MTRR WC is "implementation defined" for Pentium 
Pro/II.
                        return 0;
 
                case B_MTR_WT:


Other related posts:

  • » [haiku-commits] r36589 - haiku/trunk/src/system/kernel/arch/x86 - ingo_weinhold