Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 38e6b75d authored by Borislav Petkov's avatar Borislav Petkov Committed by H. Peter Anvin
Browse files

x86, asm: Cleanup thunk_64.S



Drop thunk_ra macro in favor of an additional argument to the thunk
macro since their bodies are almost identical. Do a whitespace scrubbing
and use CFI-aware macros for full annotation.

Signed-off-by: default avatarBorislav Petkov <bp@alien8.de>
Link: http://lkml.kernel.org/r/1306873314-32523-5-git-send-email-bp@alien8.de


Signed-off-by: default avatarH. Peter Anvin <hpa@linux.intel.com>
parent 838feb47
Loading
Loading
Loading
Loading
+19 −27
Original line number Diff line number Diff line
@@ -5,44 +5,36 @@
 * Added trace_hardirqs callers - Copyright 2007 Steven Rostedt, Red Hat, Inc.
 * Subject to the GNU public license, v.2. No warranty of any kind.
 */

#include <linux/linkage.h>
#include <asm/dwarf2.h>
#include <asm/calling.h>
#include <asm/rwlock.h>

	/* rdi:	arg1 ... normal C conventions. rax is saved/restored. */
	.macro thunk name,func
	.macro THUNK name, func, put_ret_addr_in_rdi=0
	.globl \name
\name:
	CFI_STARTPROC
	SAVE_ARGS
	call \func
	jmp  restore
	CFI_ENDPROC
	.endm

#ifdef CONFIG_TRACE_IRQFLAGS
	/* put return address in rdi (arg1) */
	.macro thunk_ra name,func
	.globl \name
\name:
	CFI_STARTPROC
	/* this one pushes 9 elems, the next one would be %rIP */
	SAVE_ARGS
	/* SAVE_ARGS pushs 9 elements */
	/* the next element would be the rip */
	movq 9*8(%rsp), %rdi

	.if \put_ret_addr_in_rdi
	movq_cfi_restore 9*8, rdi
	.endif

	call \func
	jmp  restore
	CFI_ENDPROC
	.endm

	thunk_ra trace_hardirqs_on_thunk,trace_hardirqs_on_caller
	thunk_ra trace_hardirqs_off_thunk,trace_hardirqs_off_caller
#ifdef CONFIG_TRACE_IRQFLAGS
	THUNK trace_hardirqs_on_thunk,trace_hardirqs_on_caller,1
	THUNK trace_hardirqs_off_thunk,trace_hardirqs_off_caller,1
#endif

#ifdef CONFIG_DEBUG_LOCK_ALLOC
	thunk lockdep_sys_exit_thunk,lockdep_sys_exit
	THUNK lockdep_sys_exit_thunk,lockdep_sys_exit
#endif

	/* SAVE_ARGS below is used only for the .cfi directives it contains. */