ArmPkg/AArch64Mmu: use correct AP[] bits in ArmClearMemoryRegionReadOnly

The function ArmClearMemoryRegionReadOnly() was supposed to undo the
effect of ArmSetMemoryRegionReadOnly(), but instead, it sets the permissions
to EL0-no access, EL1-read-only. Since the EL0 bit should be 1 to align
with EL2/3 (where the bit is SBO), use TT_AP_RW_RW instead, which makes the
entry read-write for EL0 when executing at EL1, and read-write for all other
levels.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
This commit is contained in:
Ard Biesheuvel 2016-03-17 14:55:00 +01:00
parent 1b02a38329
commit b5d89de167
1 changed files with 1 additions and 1 deletions

View File

@ -558,7 +558,7 @@ ArmClearMemoryRegionReadOnly (
return SetMemoryRegionAttribute ( return SetMemoryRegionAttribute (
BaseAddress, BaseAddress,
Length, Length,
TT_AP_NO_RO, TT_AP_RW_RW,
~(TT_ADDRESS_MASK_BLOCK_ENTRY | TT_AP_MASK)); ~(TT_ADDRESS_MASK_BLOCK_ENTRY | TT_AP_MASK));
} }