linux-bl808/tools/include/linux
Josh Poimboeuf 7b6c7a877c x86/ftrace: Remove OBJECT_FILES_NON_STANDARD usage
The file-wide OBJECT_FILES_NON_STANDARD annotation is used with
CONFIG_FRAME_POINTER to tell objtool to skip the entire file when frame
pointers are enabled.  However that annotation is now deprecated because
it doesn't work with IBT, where objtool runs on vmlinux.o instead of
individual translation units.

Instead, use more fine-grained function-specific annotations:

- The 'save_mcount_regs' macro does funny things with the frame pointer.
  Use STACK_FRAME_NON_STANDARD_FP to tell objtool to ignore the
  functions using it.

- The return_to_handler() "function" isn't actually a callable function.
  Instead of being called, it's returned to.  The real return address
  isn't on the stack, so unwinding is already doomed no matter which
  unwinder is used.  So just remove the STT_FUNC annotation, telling
  objtool to ignore it.  That also removes the implicit
  ANNOTATE_NOENDBR, which now needs to be made explicit.

Fixes the following warning:

  vmlinux.o: warning: objtool: __fentry__+0x16: return with modified stack frame

Fixes: ed53a0d971 ("x86/alternative: Use .ibt_endbr_seal to seal indirect calls")
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
Link: https://lore.kernel.org/r/b7a7a42fe306aca37826043dac89e113a1acdbac.1654268610.git.jpoimboe@kernel.org
2022-06-06 11:50:22 -07:00
..
sched
unaligned
arm-smccc.h tools: Import ARM SMCCC definitions 2022-05-03 21:30:19 +01:00
atomic.h tools/include: Update atomic definitions 2022-02-20 08:44:37 +02:00
bitmap.h bitmap: Fix return values to be unsigned 2022-06-03 06:52:58 -07:00
bitops.h
bits.h
btf_ids.h
bug.h
build_bug.h
cache.h tools/include: Add cache.h stub 2022-02-20 08:44:37 +02:00
compiler-gcc.h
compiler.h tools compiler.h: Remove duplicate #ifndef noinline block 2022-03-12 11:00:57 -03:00
compiler_types.h
const.h
coresight-pmu.h perf cs-etm: Update deduction of TRCCONFIGR register for branch broadcast 2022-02-15 17:15:32 -03:00
ctype.h
debugfs.h tools/include: Add debugfs.h stub 2022-02-20 08:44:37 +02:00
delay.h
err.h
export.h
filter.h
find.h tools: sync tools/bitmap with mother linux 2022-01-15 08:47:31 -08:00
ftrace.h
gfp.h tools: Move gfp.h and slab.h from radix-tree to lib 2022-02-20 08:44:37 +02:00
hash.h hash.h: remove unused define directive 2022-01-20 08:52:54 +02:00
hashtable.h
interrupt.h
io.h tools/include: Add io.h stub 2022-02-20 08:44:37 +02:00
jhash.h
kallsyms.h
kconfig.h
kern_levels.h
kernel.h tools/include: Add _RET_IP_ and math definitions to kernel.h 2022-02-20 08:44:37 +02:00
linkage.h
list.h
list_sort.h
log2.h
math.h
math64.h
mm.h tools/include: Add mm.h file 2022-02-20 08:44:37 +02:00
module.h
mutex.h
nmi.h
numa.h
objtool.h x86/ftrace: Remove OBJECT_FILES_NON_STANDARD usage 2022-06-06 11:50:22 -07:00
overflow.h
pfn.h tools/include: Add pfn.h stub 2022-02-20 08:44:37 +02:00
poison.h
rbtree.h
rbtree_augmented.h
rcu.h
refcount.h
ring_buffer.h
seq_file.h
sizes.h
slab.h tools: Add kmem_cache_alloc_lru() 2022-04-22 14:24:28 -04:00
spinlock.h
static_call_types.h
string.h
stringify.h
time64.h
types.h memblock: test suite and a small cleanup 2022-03-27 13:36:06 -07:00
zalloc.h