Author: bonefish Date: 2010-06-13 21:58:43 +0200 (Sun, 13 Jun 2010) New Revision: 37130 Changeset: http://dev.haiku-os.org/changeset/37130/haiku Modified: haiku/trunk/src/system/kernel/arch/x86/paging/pae/X86PagingMethodPAE.cpp Log: X86PagingMethodPAE::PutPageTableEntryInTable(): Incorrectly used 32 bit type, which caused the upper 32 bit of the address to be ignored, thus mapping to the wrong page. Modified: haiku/trunk/src/system/kernel/arch/x86/paging/pae/X86PagingMethodPAE.cpp =================================================================== --- haiku/trunk/src/system/kernel/arch/x86/paging/pae/X86PagingMethodPAE.cpp 2010-06-13 19:56:04 UTC (rev 37129) +++ haiku/trunk/src/system/kernel/arch/x86/paging/pae/X86PagingMethodPAE.cpp 2010-06-13 19:58:43 UTC (rev 37130) @@ -766,7 +766,7 @@ phys_addr_t physicalAddress, uint32 attributes, uint32 memoryType, bool globalPage) { - page_table_entry page = (physicalAddress & X86_PAE_PTE_ADDRESS_MASK) + pae_page_table_entry page = (physicalAddress & X86_PAE_PTE_ADDRESS_MASK) | X86_PAE_PTE_PRESENT | (globalPage ? X86_PAE_PTE_GLOBAL : 0) | MemoryTypeToPageTableEntryFlags(memoryType);