:: commit c7b26f1fde128ddf886424c4b77dce1cb228a33a

Mintsuki <mintsuki@protonmail.com> — 2026-04-17 00:44

parents: 935430a152

mm/vmm: Mask physical address bits in RISC-V pte_new

diff --git a/common/mm/vmm.c b/common/mm/vmm.c
index 106f47e3..1ad632ba 100644
--- a/common/mm/vmm.c
+++ b/common/mm/vmm.c
@@ -295,7 +295,7 @@ level4:
 #define PT_IS_LARGE(x)      (((x) & (PT_FLAG_VALID | PT_FLAG_RWX)) > PT_FLAG_VALID)
 #define PT_TO_VMM_FLAGS(x)  (pt_to_vmm_flags_internal(x))
 
-#define pte_new(addr, flags)    (((pt_entry_t)(addr) >> 2) | (flags))
+#define pte_new(addr, flags)    ((((pt_entry_t)(addr) >> 2) & PT_PADDR_MASK) | (flags))
 #define pte_addr(pte)           (((pte) & PT_PADDR_MASK) << 2)
 
 static uint64_t pt_to_vmm_flags_internal(pt_entry_t entry) {
tab: 248 wrap: offon