Commit 7f56978e authored by Namhyung Kim's avatar Namhyung Kim
Browse files

tools headers: Update the arch/x86/lib/memset_64.S copy with the kernel sources



To pick up the changes in:

  2981557c x86,kcfi: Fix EXPORT_SYMBOL vs kCFI

That required adding a copy of include/linux/cfi_types.h and its checking
in tools/perf/check-headers.h.

Addressing this perf tools build warning:

  Warning: Kernel ABI header differences:
    diff -u tools/arch/x86/lib/memset_64.S arch/x86/lib/memset_64.S

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

Acked-by: default avatarIngo Molnar <mingo@kernel.org>
Tested-by: default avatarVenkat Rao Bagalkote <venkat88@linux.ibm.com>
Cc: x86@kernel.org
Link: https://lore.kernel.org/r/20250410001125.391820-11-namhyung@kernel.org


Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
parent 847f1403
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@

#include <linux/export.h>
#include <linux/linkage.h>
#include <linux/cfi_types.h>
#include <asm/cpufeatures.h>
#include <asm/alternative.h>

@@ -28,7 +29,7 @@
 * only for the return value that is the same as the source input,
 * which the compiler could/should do much better anyway.
 */
SYM_FUNC_START(__memset)
SYM_TYPED_FUNC_START(__memset)
	ALTERNATIVE "jmp memset_orig", "", X86_FEATURE_FSRS

	movq %rdi,%r9
+45 −0
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Clang Control Flow Integrity (CFI) type definitions.
 */
#ifndef _LINUX_CFI_TYPES_H
#define _LINUX_CFI_TYPES_H

#ifdef __ASSEMBLY__
#include <linux/linkage.h>

#ifdef CONFIG_CFI_CLANG
/*
 * Use the __kcfi_typeid_<function> type identifier symbol to
 * annotate indirectly called assembly functions. The compiler emits
 * these symbols for all address-taken function declarations in C
 * code.
 */
#ifndef __CFI_TYPE
#define __CFI_TYPE(name)				\
	.4byte __kcfi_typeid_##name
#endif

#define SYM_TYPED_ENTRY(name, linkage, align...)	\
	linkage(name) ASM_NL				\
	align ASM_NL					\
	__CFI_TYPE(name) ASM_NL				\
	name:

#define SYM_TYPED_START(name, linkage, align...)	\
	SYM_TYPED_ENTRY(name, linkage, align)

#else /* CONFIG_CFI_CLANG */

#define SYM_TYPED_START(name, linkage, align...)	\
	SYM_START(name, linkage, align)

#endif /* CONFIG_CFI_CLANG */

#ifndef SYM_TYPED_FUNC_START
#define SYM_TYPED_FUNC_START(name) 			\
	SYM_TYPED_START(name, SYM_L_GLOBAL, SYM_A_ALIGN)
#endif

#endif /* __ASSEMBLY__ */
#endif /* _LINUX_CFI_TYPES_H */
+1 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ FILES=(
  "include/uapi/linux/stat.h"
  "include/linux/bits.h"
  "include/vdso/bits.h"
  "include/linux/cfi_types.h"
  "include/linux/const.h"
  "include/vdso/const.h"
  "include/vdso/unaligned.h"