]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPkg/Library/ArmSvcLib/Arm/ArmSvc.asm
ArmPkg/ArmSvcLib: prevent speculative execution beyond svc
[mirror_edk2.git] / ArmPkg / Library / ArmSvcLib / Arm / ArmSvc.asm
index 82d10c023ae302fff5fc4d33c55e2c599acd93ff..d1751488b2b19151c4f4bccfcafd8d8d40a0f7e5 100644 (file)
@@ -1,5 +1,5 @@
 //\r
-//  Copyright (c) 2016 - 2017, ARM Limited. All rights reserved.\r
+//  Copyright (c) 2016 - 2020, ARM Limited. All rights reserved.\r
 //\r
 //  SPDX-License-Identifier: BSD-2-Clause-Patent\r
 //\r
@@ -16,6 +16,9 @@
     ldm     r0, {r0-r7}\r
 \r
     svc     #0\r
+    // Prevent speculative execution beyond svc instruction\r
+    dsb     nsh\r
+    isb\r
 \r
     // Load the ARM_SVC_ARGS structure address from the stack into r8\r
     ldr     r8, [sp]\r