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