riscv refine: fix ppn handling in checkMappingPPtr

This commit is contained in:
Gerwin Klein 2019-07-21 16:30:20 +10:00
parent 09dbc34a0c
commit 11bcbc1675
1 changed files with 1 additions and 1 deletions

View File

@ -249,7 +249,7 @@ checkMappingPPtr :: PPtr Word -> PTE -> KernelF LookupFailure ()
checkMappingPPtr pptr pte =
case pte of
PagePTE { ptePPN = ppn } ->
unless (ptrFromPAddr ppn == pptr) $ throw InvalidRoot
unless (ptrFromPAddr (ppn `shiftL` ptBits) == pptr) $ throw InvalidRoot
_ -> throw InvalidRoot
unmapPage :: VMPageSize -> ASID -> VPtr -> PPtr Word -> Kernel ()