audk/ArmPkg/Library
Ard Biesheuvel ae2c904c3d ArmPkg/ArmMmuLib: Avoid splitting block entries if possible
Currently, the ARM MMU page table logic will break down any block entry
that overlaps with the region being mapped, even if the block entry in
question is using the same attributes as the new region.

This means that creating a non-executable mapping inside a region that
is already mapped non-executable at a coarser granularity may trigger a
call to AllocatePages (), which may recurse back into the page table
code to update the attributes on the newly allocated page tables.

Let's avoid this, by preserving the block entry if it already covers the
region being mapped with the correct attributes.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Leif Lindholm <quic_llindhol@quicinc.com>
2023-03-16 21:14:49 +00:00
..
ArmArchTimerLib ArmPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
ArmCacheMaintenanceLib ArmPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
ArmDisassemblerLib ArmPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
ArmExceptionLib UefiCpuPkg: Simplify InitializeSeparateExceptionStacks 2022-08-09 04:12:28 +00:00
ArmGenericTimerPhyCounterLib ArmPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
ArmGenericTimerVirtCounterLib ArmPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
ArmGicArchLib ArmPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
ArmGicArchSecLib ArmPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
ArmHvcLib ArmPkg: Remove RVCT support 2022-05-13 14:58:54 +00:00
ArmHvcLibNull ArmPkg/ArmHvcLibNull: Add NULL instance of ArmHvcLib 2022-11-06 16:32:28 +00:00
ArmLib ArmPkg/ArmMmuLib ARM: Isolate the access flag from AP mask 2023-03-16 21:14:49 +00:00
ArmMmuLib ArmPkg/ArmMmuLib: Avoid splitting block entries if possible 2023-03-16 21:14:49 +00:00
ArmMonitorLib ArmPkg/ArmMonitorLib: Add ArmMonitorLib 2022-11-06 16:32:28 +00:00
ArmMtlNullLib ArmPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
ArmPsciResetSystemLib ArmPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
ArmSmcLib ArmPkg: Remove RVCT support 2022-05-13 14:58:54 +00:00
ArmSmcLibNull ArmPkg: Add SMC helper functions 2021-12-14 11:30:26 +00:00
ArmSmcPsciResetSystemLib ArmPkg: Handle warm reboot request correctly 2022-09-05 13:52:51 +00:00
ArmSoftFloatLib ArmPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
ArmSvcLib ArmPkg: Remove RVCT support 2022-05-13 14:58:54 +00:00
ArmTrngLib ArmPkg/ArmTrngLib: Remove ASSERTs in ArmTrngLibConstructor() 2022-11-26 14:42:41 +00:00
CompilerIntrinsicsLib ArmPkg: Remove RVCT support 2022-05-13 14:58:54 +00:00
DebugAgentSymbolsBaseLib ArmPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
DebugPeCoffExtraActionLib ArmPkg: Remove RealView Debugger support 2023-01-30 16:50:14 +00:00
DefaultExceptionHandlerLib ArmPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
GccLto ArmPkg: convert LFs to CRLF, expand hard TABs 2020-03-04 12:22:07 +00:00
LinuxBootBootManagerLib ArmPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
OpteeLib ArmPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
PeiServicesTablePointerLib ArmPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
PlatformBootManagerLib ArmPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
SemiHostingDebugLib ArmPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
SemiHostingSerialPortLib ArmPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
SemihostLib ArmPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
StandaloneMmMmuLib ArmPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00