From 4968eac71c0ba61ee52e86c64a63bfb2fd59dd25 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 e4a10c2526..a188b40ed4 100644 --- a/ArmPkg/Library/ArmLib/AArch64/AArch64Support.S +++ b/ArmPkg/Library/ArmLib/AArch64/AArch64Support.S @@ -402,10 +402,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 bd2861c444..6bde5bacc3 100644 --- a/ArmPkg/Library/ArmLib/Arm/ArmLibSupport.S +++ b/ArmPkg/Library/ArmLib/Arm/ArmLibSupport.S @@ -154,10 +154,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