Some functions don't have standard stack-frames but are intended
this way. In order for objtool to ignore those particular cases
we add a macro that enables us to annotate the cases we chose
to mark as particular.

Signed-off-by: Raphael Gault <raphael.ga...@arm.com>
---
 arch/arm64/include/asm/assembler.h | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/arch/arm64/include/asm/assembler.h 
b/arch/arm64/include/asm/assembler.h
index c5308d01e228..8948474a9bcb 100644
--- a/arch/arm64/include/asm/assembler.h
+++ b/arch/arm64/include/asm/assembler.h
@@ -760,4 +760,17 @@ USER(\label, ic    ivau, \tmp2)                    // 
invalidate I line PoU
 .Lyield_out_\@ :
        .endm
 
+       /*
+        * This macro is the arm64 assembler equivalent of the
+        * macro STACK_FRAME_NON_STANDARD define at
+        * ~/include/linux/frame.h
+        */
+       .macro  asm_stack_frame_non_standard    func
+#ifdef CONFIG_STACK_VALIDATION
+       .pushsection ".discard.func_stack_frame_non_standard"
+       .8byte  \func
+       .popsection
+#endif
+       .endm
+
 #endif /* __ASM_ASSEMBLER_H */
-- 
2.17.1

Reply via email to