xref: /openbmc/linux/arch/s390/include/asm/ftrace.lds.h (revision 762f99f4f3cb41a775b5157dd761217beba65873)
1*de5012b4SIlya Leoshkevich /* SPDX-License-Identifier: GPL-2.0 */
2*de5012b4SIlya Leoshkevich #ifndef DIV_ROUND_UP
3*de5012b4SIlya Leoshkevich #define DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))
4*de5012b4SIlya Leoshkevich #endif
5*de5012b4SIlya Leoshkevich 
6*de5012b4SIlya Leoshkevich #define SIZEOF_MCOUNT_LOC_ENTRY 8
7*de5012b4SIlya Leoshkevich #define SIZEOF_FTRACE_HOTPATCH_TRAMPOLINE 24
8*de5012b4SIlya Leoshkevich #define FTRACE_HOTPATCH_TRAMPOLINES_SIZE(n)				       \
9*de5012b4SIlya Leoshkevich 	DIV_ROUND_UP(SIZEOF_FTRACE_HOTPATCH_TRAMPOLINE * (n),		       \
10*de5012b4SIlya Leoshkevich 		     SIZEOF_MCOUNT_LOC_ENTRY)
11*de5012b4SIlya Leoshkevich 
12*de5012b4SIlya Leoshkevich #ifdef CONFIG_FUNCTION_TRACER
13*de5012b4SIlya Leoshkevich #define FTRACE_HOTPATCH_TRAMPOLINES_TEXT				       \
14*de5012b4SIlya Leoshkevich 	. = ALIGN(8);							       \
15*de5012b4SIlya Leoshkevich 	__ftrace_hotpatch_trampolines_start = .;			       \
16*de5012b4SIlya Leoshkevich 	. = . + FTRACE_HOTPATCH_TRAMPOLINES_SIZE(__stop_mcount_loc -	       \
17*de5012b4SIlya Leoshkevich 						 __start_mcount_loc);	       \
18*de5012b4SIlya Leoshkevich 	__ftrace_hotpatch_trampolines_end = .;
19*de5012b4SIlya Leoshkevich #else
20*de5012b4SIlya Leoshkevich #define FTRACE_HOTPATCH_TRAMPOLINES_TEXT
21*de5012b4SIlya Leoshkevich #endif
22