linux-stable/tools/include/linux
Peter Zijlstra 5b06fd3bb9 static_call: Handle tail-calls
GCC can turn our static_call(name)(args...) into a tail call, in which
case we get a JMP.d32 into the trampoline (which then does a further
tail-call).

Teach objtool to recognise and mark these in .static_call_sites and
adjust the code patching to deal with this.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: https://lore.kernel.org/r/20200818135805.101186767@infradead.org
2020-09-01 09:58:06 +02:00
..
sched
unaligned License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
atomic.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
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 Raise gcc version requirement to 4.9 2020-07-08 10:48:35 -07:00
btf_ids.h bpf: Make btf_sock_ids global 2020-07-21 13:26:26 -07:00
bug.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
build_bug.h tools headers: Synchronize linux/bits.h with the kernel sources 2020-04-14 11:40:05 -03:00
compiler-gcc.h tools compiler.h: Add attribute to disable tail calls 2020-06-01 12:24:21 -03:00
compiler.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-08-05 20:13:21 -07:00
const.h tools headers: Update linux/vdso.h and grab a copy of vdso/const.h 2020-04-14 08:55:03 -03:00
coresight-pmu.h coresight: etm4x: Add kernel configuration for CONTEXTID 2019-04-25 22:00:16 +02:00
ctype.h tools perf: Move from sane_ctype.h obtained from git to the Linux's original 2019-06-25 21:02:47 -03:00
debug_locks.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
delay.h
err.h docs: fix broken documentation links 2019-06-08 13:42:13 -06:00
export.h
filter.h bpf, selftest: test {rd, wr}only flags and direct value access 2019-04-09 17:05:47 -07:00
ftrace.h
gfp.h
hardirq.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hash.h tools/headers: Synchronize kernel ABI headers 2017-11-04 09:27:46 +01:00
hashtable.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
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 License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
kernel.h tools headers: Synchronize linux/bits.h with the kernel sources 2020-04-14 11:40:05 -03:00
linkage.h
list.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
lockdep.h tools/lib/lockdep: Add dummy task_struct state member 2018-09-10 13:48:24 +02:00
log2.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
module.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mutex.h
nmi.h tools/lib/lockdep: Add empty nmi.h 2018-09-10 13:48:23 +02:00
numa.h tools/: replace open encodings for NUMA_NO_NODE 2019-03-05 21:07:14 -08:00
overflow.h tools: bpf: make use of reallocarray 2018-07-11 22:13:34 +02:00
poison.h Drop flex_arrays 2019-03-12 10:04:03 -07:00
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 rcu: Don't return a value from rcu_assign_pointer() 2019-06-13 15:38:34 -07:00
refcount.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ring_buffer.h tools headers: Add missing perf_event.h include 2019-08-22 11:12:36 -03:00
seq_file.h
sizes.h tools: bpftool: add "prog run" subcommand to test-run programs 2019-07-05 23:48:07 +02:00
spinlock.h xarray: Add XArray unconditional store operations 2018-10-21 10:45:57 -04:00
stacktrace.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
static_call_types.h static_call: Handle tail-calls 2020-09-01 09:58:06 +02:00
string.h tools lib: Fix builds when glibc contains strlcpy() 2020-01-06 11:46:10 -03:00
stringify.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
time64.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
types.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
zalloc.h tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00