From 75bd6fc2947e1235cbc4da679f11859d2f85ce4c Mon Sep 17 00:00:00 2001 From: Yesh Date: Mon, 3 Oct 2022 12:40:04 +0800 Subject: [PATCH] Fix page faults on QEMU --- src/paging/page_table.rs | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/paging/page_table.rs b/src/paging/page_table.rs index 56896fe2..f52f53cc 100644 --- a/src/paging/page_table.rs +++ b/src/paging/page_table.rs @@ -125,9 +125,7 @@ impl PTE for PageTableEntryX32 { fn frame(&self) -> FrameWith { FrameWith::of_addr(self.addr()) } - fn set(&mut self, frame: FrameWith, mut flags: PageTableFlags) { - // U540 will raise page fault when accessing page with A=0 or D=0 - flags |= EF::ACCESSED | EF::DIRTY; + fn set(&mut self, frame: FrameWith, flags: PageTableFlags) { self.0 = ((frame.number() << 10) | flags.bits()) as u32; } fn flags_mut(&mut self) -> &mut PageTableFlags { @@ -169,9 +167,7 @@ impl PTE for PageTableEntryX64 { fn frame(&self) -> FrameWith { FrameWith::of_addr(self.addr()) } - fn set(&mut self, frame: FrameWith, mut flags: PageTableFlags) { - // U540 will raise page fault when accessing page with A=0 or D=0 - flags |= EF::ACCESSED | EF::DIRTY; + fn set(&mut self, frame: FrameWith, flags: PageTableFlags) { self.0 = ((frame.number() << 10) | flags.bits()) as u64; } fn flags_mut(&mut self) -> &mut PageTableFlags { @@ -248,5 +244,3 @@ bitflags! { const RESERVED2 = 1 << 9; } } - -type EF = PageTableFlags;