diff mbox series

[RFC,4/6] arm64: assembler: Add macro to annotate asm function having non standard stack-frame.

Message ID 20190409135243.12424-5-raphael.gault@arm.com (mailing list archive)
State RFC
Headers show
Series objtool: Add support for Arm64 | expand

Commit Message

Raphael Gault April 9, 2019, 1:52 p.m. UTC
Signed-off-by: Raphael Gault <raphael.gault@arm.com>
---
 arch/arm64/include/asm/assembler.h | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

Comments

Julien Thierry April 24, 2019, 10:44 a.m. UTC | #1
Hi Raphaël,

On 09/04/2019 14:52, Raphael Gault wrote:
> Signed-off-by: Raphael Gault <raphael.gault@arm.com>

Even there is not much to say, we include a commit message to explain
what the patch does and/or why we want it.

> ---
>  arch/arm64/include/asm/assembler.h | 18 ++++++++++++++++++
>  1 file changed, 18 insertions(+)
> 
> diff --git a/arch/arm64/include/asm/assembler.h b/arch/arm64/include/asm/assembler.h
> index 4feb6119c3c9..636a07a7eb76 100644
> --- a/arch/arm64/include/asm/assembler.h
> +++ b/arch/arm64/include/asm/assembler.h
> @@ -748,4 +748,22 @@ USER(\label, ic	ivau, \tmp2)			// invalidate I line PoU
>  .Lyield_out_\@ :
>  	.endm
>  
> +
> +#ifdef	CONFIG_STACK_VALIDATION
> +	/*
> +	 * 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
> +	.pushsection ".discard.func_stack_frame_non_standard"
> +	.8byte	\func
> +	.popsection
> +	.endm
> +#else
> +	.macro	asm_stack_frame_non_standard	func
> +	.endm
> +#endif
> +
> +

This can be simplified as:

	.macro asm_stack_frame_non_standard func
#ifdef CONFIG_STACK_VALIDATION
	[...]
#endif
	.endm

>  #endif	/* __ASM_ASSEMBLER_H */
> 

Cheers,
diff mbox series

Patch

diff --git a/arch/arm64/include/asm/assembler.h b/arch/arm64/include/asm/assembler.h
index 4feb6119c3c9..636a07a7eb76 100644
--- a/arch/arm64/include/asm/assembler.h
+++ b/arch/arm64/include/asm/assembler.h
@@ -748,4 +748,22 @@  USER(\label, ic	ivau, \tmp2)			// invalidate I line PoU
 .Lyield_out_\@ :
 	.endm
 
+
+#ifdef	CONFIG_STACK_VALIDATION
+	/*
+	 * 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
+	.pushsection ".discard.func_stack_frame_non_standard"
+	.8byte	\func
+	.popsection
+	.endm
+#else
+	.macro	asm_stack_frame_non_standard	func
+	.endm
+#endif
+
+
 #endif	/* __ASM_ASSEMBLER_H */