From 51e767463a752ec8f02b61139787a0ee03ee5d50 Mon Sep 17 00:00:00 2001 From: Mikhail Krichanov Date: Tue, 1 Oct 2024 13:54:44 +0300 Subject: [PATCH] ArmLib: Added Instruction Synchronization Barriers for PAN changes. --- ArmPkg/Library/ArmLib/AArch64/AArch64Support.S | 2 ++ ArmPkg/Library/ArmLib/Arm/ArmLibSupport.S | 2 ++ 2 files changed, 4 insertions(+) diff --git a/ArmPkg/Library/ArmLib/AArch64/AArch64Support.S b/ArmPkg/Library/ArmLib/AArch64/AArch64Support.S index d7f9af67be..3beab1609d 100644 --- a/ArmPkg/Library/ArmLib/AArch64/AArch64Support.S +++ b/ArmPkg/Library/ArmLib/AArch64/AArch64Support.S @@ -528,10 +528,12 @@ ASM_FUNC(ArmReadIdAA64Pfr1) ASM_FUNC(ArmSetPan) msr pan, #1 + isb ret ASM_FUNC(ArmClearPan) msr pan, #0 + isb ret ASM_FUNCTION_REMOVE_IF_UNREFERENCED diff --git a/ArmPkg/Library/ArmLib/Arm/ArmLibSupport.S b/ArmPkg/Library/ArmLib/Arm/ArmLibSupport.S index ddf775e829..c635e4fb12 100644 --- a/ArmPkg/Library/ArmLib/Arm/ArmLibSupport.S +++ b/ArmPkg/Library/ArmLib/Arm/ArmLibSupport.S @@ -171,10 +171,12 @@ ASM_FUNC (ArmGetPhysicalAddressBits) ASM_FUNC(ArmSetPan) setpan #1 + isb bx LR ASM_FUNC(ArmClearPan) setpan #0 + isb bx LR ASM_FUNCTION_REMOVE_IF_UNREFERENCED