linux-uconsole/tools/include/linux
Josh Poimboeuf 3116dee270 objtool: Combine UNWIND_HINT_RET_OFFSET and UNWIND_HINT_FUNC
commit b735bd3e68 upstream.

The ORC metadata generated for UNWIND_HINT_FUNC isn't actually very
func-like.  With certain usages it can cause stack state mismatches
because it doesn't set the return address (CFI_RA).

Also, users of UNWIND_HINT_RET_OFFSET no longer need to set a custom
return stack offset.  Instead they just need to specify a func-like
situation, so the current ret_offset code is hacky for no good reason.

Solve both problems by simplifying the RET_OFFSET handling and
converting it into a more useful UNWIND_HINT_FUNC.

If we end up needing the old 'ret_offset' functionality again in the
future, we should be able to support it pretty easily with the addition
of a custom 'sp_offset' in UNWIND_HINT_FUNC.

Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Link: https://lore.kernel.org/r/db9d1f5d79dddfbb3725ef6d8ec3477ad199948d.1611263462.git.jpoimboe@redhat.com
[bwh: Backported to 5.10:
 - Don't use bswap_if_needed() since we don't have any of the other fixes
   for mixed-endian cross-compilation
 - Adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-07-25 11:26:07 +02:00
..
sched
unaligned
atomic.h
bitmap.h tools bitmap: Implement bitmap_equal() operation at bitmap API 2020-01-06 11:46:04 -03:00
bitops.h bitops: more BITS_TO_* macros 2020-02-04 03:05:26 +00:00
bits.h linux/bits.h: fix compilation error with GENMASK 2021-06-03 09:00:45 +02:00
btf_ids.h btf: Add BTF_ID_LIST_SINGLE macro 2020-09-21 15:00:40 -07:00
bug.h
build_bug.h tools headers: Synchronize linux/bits.h with the kernel sources 2020-04-14 11:40:05 -03:00
compiler-gcc.h perf tools: Remove broken __no_tail_call attribute 2020-11-03 08:32:15 -03:00
compiler.h perf tools: Remove broken __no_tail_call attribute 2020-11-03 08:32:15 -03:00
const.h linux/bits.h: fix compilation error with GENMASK 2021-06-03 09:00:45 +02:00
coresight-pmu.h
ctype.h
debug_locks.h
delay.h
err.h
export.h
filter.h
ftrace.h
gfp.h
hardirq.h
hash.h
hashtable.h
interrupt.h
irqflags.h lockdep: Remove lockdep_hardirq{s_enabled,_context}() argument 2020-07-10 12:00:02 +02:00
jhash.h tools/: replace HTTP links with HTTPS ones 2020-08-07 11:33:21 -07:00
kallsyms.h kallsyms/printk: add loglvl to print_ip_sym() 2020-06-09 09:39:10 -07:00
kern_levels.h
kernel.h tools headers: Synchronize linux/bits.h with the kernel sources 2020-04-14 11:40:05 -03:00
linkage.h
list.h
lockdep.h
log2.h
module.h
mutex.h
nmi.h
numa.h
objtool.h objtool: Combine UNWIND_HINT_RET_OFFSET and UNWIND_HINT_FUNC 2022-07-25 11:26:07 +02:00
overflow.h
poison.h
proc_fs.h
rbtree.h docs: Add rbtree documentation to the core-api 2020-04-21 10:29:19 -06:00
rbtree_augmented.h docs: Add rbtree documentation to the core-api 2020-04-21 10:29:19 -06:00
rcu.h
refcount.h
ring_buffer.h tools headers: Add missing perf_event.h include 2019-08-22 11:12:36 -03:00
seq_file.h
sizes.h
spinlock.h
stacktrace.h
static_call_types.h static_call: Allow module use without exposing static_call_key 2021-03-30 14:31:53 +02:00
string.h tools lib: Adopt memchr_inv() from kernel 2021-09-26 14:08:57 +02:00
stringify.h
time64.h
types.h
zalloc.h