Commit aa34642f authored by Namhyung Kim's avatar Namhyung Kim
Browse files

tools headers: Sync linux/cfi_types.h with the kernel source



To pick up the changes in this cset:

  5ccaeedb cfi: add C CFI type macro

This addresses these perf build warnings:

  Warning: Kernel ABI header differences:
    diff -u tools/include/linux/cfi_types.h include/linux/cfi_types.h

Please see tools/include/uapi/README for further details.

Cc: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
parent 6cb86079
Loading
Loading
Loading
Loading
+23 −0
Original line number Diff line number Diff line
@@ -41,5 +41,28 @@
	SYM_TYPED_START(name, SYM_L_GLOBAL, SYM_A_ALIGN)
#endif

#else /* __ASSEMBLY__ */

#ifdef CONFIG_CFI_CLANG
#define DEFINE_CFI_TYPE(name, func)						\
	/*									\
	 * Force a reference to the function so the compiler generates		\
	 * __kcfi_typeid_<func>.						\
	 */									\
	__ADDRESSABLE(func);							\
	/* u32 name __ro_after_init = __kcfi_typeid_<func> */			\
	extern u32 name;							\
	asm (									\
	"	.pushsection	.data..ro_after_init,\"aw\",\%progbits	\n"	\
	"	.type	" #name ",\%object				\n"	\
	"	.globl	" #name "					\n"	\
	"	.p2align	2, 0x0					\n"	\
	#name ":							\n"	\
	"	.4byte	__kcfi_typeid_" #func "				\n"	\
	"	.size	" #name ", 4					\n"	\
	"	.popsection						\n"	\
	);
#endif

#endif /* __ASSEMBLY__ */
#endif /* _LINUX_CFI_TYPES_H */