]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPkg/Library/ArmSvcLib/AArch64/ArmSvc.S
ArmPkg/ArmSvcLib: prevent speculative execution beyond svc
[mirror_edk2.git] / ArmPkg / Library / ArmSvcLib / AArch64 / ArmSvc.S
index 7c94db3451f014e743481dbe79f5deacf9a5f001..ee265f94b9608a0f7a29e17c16ffa1185deec3c8 100644 (file)
@@ -1,5 +1,5 @@
 //\r
-//  Copyright (c) 2012 - 2017, ARM Limited. All rights reserved.\r
+//  Copyright (c) 2012 - 2020, ARM Limited. All rights reserved.\r
 //\r
 //  SPDX-License-Identifier: BSD-2-Clause-Patent\r
 //\r
@@ -25,6 +25,9 @@ ASM_PFX(ArmCallSvc):
   ldp   x0, x1, [x0, #0]\r
 \r
   svc   #0\r
+  // Prevent speculative execution beyond svc instruction\r
+  dsb   nsh\r
+  isb\r
 \r
   // Pop the ARM_SVC_ARGS structure address from the stack into x9\r
   ldr   x9, [sp, #16]\r