audk/ArmPkg/Library/ArmLib/AArch64
Ard Biesheuvel d1ec2b2f78 ArmPkg/AArch64Mmu: don't let table entries inherit XN permission bits
When we split a block entry into a table entry, the UXN/PXN/XN permission
attributes are inherited both by the new table entry and by the new block
entries at the next level down. Unlike the NS bit, which only affects the
next level of lookup, the XN table bits supersede the permissions of the
final translation, and setting the permissions at multiple levels is not
only redundant, it also prevents us from lifting XN restrictions on a
subregion of the original block entry by simply clearing the appropriate
bits at the lowest level.

So drop the code that sets the UXN/PXN/XN bits on the table entries.

Reported-by: "Oliyil Kunnil, Vishal" <vishalo@qti.qualcomm.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2016-05-10 14:44:40 +02:00
..
AArch64ArchTimer.c ArmPkg: Move TimerDxe and ArmArchTimerLib to new ArmGenericTimerCounterLib 2014-09-09 16:10:18 +00:00
AArch64ArchTimerSupport.S ArmPkg: fix ArmWriteCntkCtl simple code bug 2015-05-13 18:21:58 +00:00
AArch64Lib.c ArmPkg: ArmLib: purge incorrect ArmDrainWriteBuffer () alias 2015-11-20 13:14:59 +00:00
AArch64Lib.h ArmPkg/ArmLib: remove unused ArmCleanDataCacheToPoU() 2015-11-09 13:26:11 +00:00
AArch64Lib.inf ArmPkg/AArch64Mmu: disable MMU during page table manipulations 2016-04-14 18:01:52 +02:00
AArch64LibConstructor.c ArmPkg/AArch64Mmu: disable MMU during page table manipulations 2016-04-14 18:01:52 +02:00
AArch64LibPrePi.inf ArmPkg: remove cache maintenance by VA operation range size threshold 2015-04-14 11:54:40 +00:00
AArch64LibSec.inf ArmPkg: remove cache maintenance by VA operation range size threshold 2015-04-14 11:54:40 +00:00
AArch64Mmu.c ArmPkg/AArch64Mmu: don't let table entries inherit XN permission bits 2016-05-10 14:44:40 +02:00
AArch64Support.S ArmPkg/AArch64Mmu: disable MMU during page table manipulations 2016-04-14 18:01:52 +02:00
ArmLibSupportV8.S ArmPkg: CpuDxe: fix AArch64 interrupt read masks 2016-02-23 12:07:11 +01:00