summaryrefslogtreecommitdiff
path: root/arch/arm64/include/asm/nospec-branch.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm64/include/asm/nospec-branch.h')
-rw-r--r--arch/arm64/include/asm/nospec-branch.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/arm64/include/asm/nospec-branch.h b/arch/arm64/include/asm/nospec-branch.h
index 463ec183f4ec..63db0e2b19a2 100644
--- a/arch/arm64/include/asm/nospec-branch.h
+++ b/arch/arm64/include/asm/nospec-branch.h
@@ -3,9 +3,13 @@
#ifndef _ASM_ARM64_NOSPEC_BRANCH_H_
#define _ASM_ARM64_NOSPEC_BRANCH_H_
+#include <asm/alternative.h>
+#include <asm/cpucaps.h>
+
#ifdef __ASSEMBLY__
.macro retpoline
+alternative_if ARM64_RETPOLINE
str x30, [sp, #-16]!
bl 101f
100: //speculation trap
@@ -16,6 +20,7 @@
ret
102: //non-spec code
ldr x30, [sp], #16
+alternative_else_nop_endif
.endm
.macro br_nospec reg