]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
tools headers: Sync linux/cfi_types.h with the kernel source
authorNamhyung Kim <namhyung@kernel.org>
Mon, 18 Aug 2025 17:32:18 +0000 (10:32 -0700)
committerNamhyung Kim <namhyung@kernel.org>
Mon, 18 Aug 2025 19:38:42 +0000 (12:38 -0700)
To pick up the changes in this cset:

  5ccaeedb489b41ce 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: Namhyung Kim <namhyung@kernel.org>
tools/include/linux/cfi_types.h

index 6b87136757655c05d8254b76120f14d32a32f2ac..685f7181780f9233cc5fc06d1c5b2b3046d1cc07 100644 (file)
        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 */