Skip to content

Commit e537bd4

Browse files
AsakuraMizumingzi47
andcommitted
fix(la64): set PTEFlags::D with MappingFlags::WRITE
Co-authored-by: mingzi <[email protected]>
1 parent 005155b commit e537bd4

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

page_table_entry/src/arch/loongarch64.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ impl From<MappingFlags> for PTEFlags {
9797
ret |= Self::NR;
9898
}
9999
if f.contains(MappingFlags::WRITE) {
100-
ret |= Self::W;
100+
ret |= Self::W | Self::D;
101101
}
102102
if !f.contains(MappingFlags::EXECUTE) {
103103
ret |= Self::NX;
@@ -134,7 +134,7 @@ impl LA64PTE {
134134

135135
impl GenericPTE for LA64PTE {
136136
fn new_page(paddr: PhysAddr, flags: MappingFlags, is_huge: bool) -> Self {
137-
let mut flags = PTEFlags::from(flags) | PTEFlags::D;
137+
let mut flags = PTEFlags::from(flags);
138138
if is_huge {
139139
flags |= PTEFlags::GH;
140140
}
@@ -153,7 +153,7 @@ impl GenericPTE for LA64PTE {
153153
self.0 = (self.0 & !Self::PHYS_ADDR_MASK) | (paddr.as_usize() as u64 & Self::PHYS_ADDR_MASK)
154154
}
155155
fn set_flags(&mut self, flags: MappingFlags, is_huge: bool) {
156-
let mut flags = PTEFlags::from(flags) | PTEFlags::D;
156+
let mut flags = PTEFlags::from(flags);
157157
if is_huge {
158158
flags |= PTEFlags::GH;
159159
}

0 commit comments

Comments
 (0)