From 11bcbc1675ee436d7a4a952f38e1a1e02628c85f Mon Sep 17 00:00:00 2001 From: Gerwin Klein Date: Sun, 21 Jul 2019 16:30:20 +1000 Subject: [PATCH] riscv refine: fix ppn handling in checkMappingPPtr --- spec/haskell/src/SEL4/Kernel/VSpace/RISCV64.hs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/haskell/src/SEL4/Kernel/VSpace/RISCV64.hs b/spec/haskell/src/SEL4/Kernel/VSpace/RISCV64.hs index 488406233..9c21b40a7 100644 --- a/spec/haskell/src/SEL4/Kernel/VSpace/RISCV64.hs +++ b/spec/haskell/src/SEL4/Kernel/VSpace/RISCV64.hs @@ -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 ()