diff --git a/rmm b/rmm index bb27f57228..ed8bcfca1f 160000 --- a/rmm +++ b/rmm @@ -1 +1 @@ -Subproject commit bb27f57228b1260cc6ad51b7bf96cf33bd2cee4f +Subproject commit ed8bcfca1f7427d8acca966a8c6ca36ce887467b diff --git a/src/arch/x86/rmm.rs b/src/arch/x86/rmm.rs index b0ad69c8dc..cc16c4332d 100644 --- a/src/arch/x86/rmm.rs +++ b/src/arch/x86/rmm.rs @@ -91,7 +91,7 @@ unsafe fn inner( let flags = A::ENTRY_FLAG_READWRITE | A::ENTRY_FLAG_DEFAULT_TABLE; mapper .table() - .set_entry(i, PageEntry::new(phys.data() | flags)); + .set_entry(i, PageEntry::new(phys.data(), flags)); } // Map all physical areas at PHYS_OFFSET @@ -154,10 +154,7 @@ unsafe fn inner( for i in 0..pages { let phys = PhysicalAddress::new(phys + i * A::PAGE_SIZE); let virt = VirtualAddress::new(virt + i * A::PAGE_SIZE); - let flags = PageFlags::new() - .write(true) - // Write combining flag - .custom_flag(EntryFlags::HUGE_PAGE.bits(), true); + let flags = PageFlags::new().write(true).write_combining(true); let flush = mapper .map_phys(virt, phys, flags) .expect("failed to map frame"); diff --git a/src/arch/x86_64/rmm.rs b/src/arch/x86_64/rmm.rs index 65ed22366d..c1836f6b96 100644 --- a/src/arch/x86_64/rmm.rs +++ b/src/arch/x86_64/rmm.rs @@ -141,10 +141,7 @@ unsafe fn inner( for i in 0..pages { let phys = PhysicalAddress::new(phys + i * A::PAGE_SIZE); let virt = VirtualAddress::new(virt + i * A::PAGE_SIZE); - let flags = PageFlags::new() - .write(true) - // Write combining flag - .custom_flag(EntryFlags::HUGE_PAGE.bits(), true); + let flags = PageFlags::new().write(true).write_combining(true); let flush = mapper .map_phys(virt, phys, flags) .expect("failed to map frame");