Josh Poimboeuf
223918e32a
ftrace: Add ftrace_graph_ret_addr() stack unwinding helpers
...
When function graph tracing is enabled for a function, ftrace modifies
the stack by replacing the original return address with the address of a
hook function (return_to_handler).
Stack unwinders need a way to get the original return address. Add an
arch-independent helper function for that named ftrace_graph_ret_addr().
This adds two variations of the function: one depends on
HAVE_FUNCTION_GRAPH_RET_ADDR_PTR, and the other relies on an index state
variable.
The former is recommended because, in some cases, the latter can cause
problems when the unwinder skips stack frames. It can get out of sync
with the ret_stack index and wrong addresses can be reported for the
stack trace.
Once all arches have been ported to use
HAVE_FUNCTION_GRAPH_RET_ADDR_PTR, we can get rid of the distinction.
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Acked-by: Steven Rostedt <rostedt@goodmis.org>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Byungchul Park <byungchul.park@lge.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Nilay Vaish <nilayvaish@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/36bd90f762fc5e5af3929e3797a68a64906421cf.1471607358.git.jpoimboe@redhat.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2016-08-24 12:15:14 +02:00
..
bpf
bpf: fix bpf_skb_in_cgroup helper naming
2016-08-12 21:53:33 -07:00
configs
config: add android config fragments
2016-08-02 19:35:42 -04:00
debug
events
perf/core: Check return value of the perf_event_read() IPI
2016-08-18 10:35:52 +02:00
gcov
gcov: add support for gcc version >= 6
2016-07-15 14:54:27 +09:00
irq
genirq/msi: Make sure PCI MSIs are activated early
2016-08-09 09:19:32 +02:00
livepatch
modules: add ro_after_init support
2016-08-04 10:16:55 +09:30
locking
locking/pvqspinlock: Fix a bug in qstat_read()
2016-08-10 14:13:29 +02:00
power
Merge branch 'pm-sleep'
2016-08-18 03:27:08 +02:00
printk
Revert "printk: create pr_<level> functions"
2016-08-09 10:48:18 -07:00
rcu
Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2016-07-29 13:55:30 -07:00
sched
sched/cputime: Resync steal time when guest & host lose sync
2016-08-18 11:19:48 +02:00
time
timers: Fix get_next_timer_interrupt() computation
2016-08-09 09:31:55 +02:00
trace
ftrace: Add ftrace_graph_ret_addr() stack unwinding helpers
2016-08-24 12:15:14 +02:00
.gitignore
acct.c
async.c
audit.c
Merge branch 'stable-4.8' of git://git.infradead.org/users/pcmoore/audit
2016-07-29 17:54:17 -07:00
audit.h
Merge branch 'stable-4.8' of git://git.infradead.org/users/pcmoore/audit
2016-07-29 17:54:17 -07:00
audit_fsnotify.c
audit_tree.c
audit: cleanup prune_tree_thread
2016-04-04 09:46:47 -04:00
audit_watch.c
don't bother with ->d_inode->i_sb - it's always equal to ->d_sb
2016-04-10 17:11:51 -04:00
auditfilter.c
audit: add fields to exclude filter by reusing user filter
2016-06-27 11:01:00 -04:00
auditsc.c
Merge branch 'stable-4.8' of git://git.infradead.org/users/pcmoore/audit
2016-07-29 17:54:17 -07:00
backtracetest.c
bounds.c
capability.c
kernel: Add noaudit variant of ns_capable()
2016-06-06 20:16:18 +10:00
cgroup.c
Merge branch 'for-4.7-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup
2016-07-29 14:29:04 -07:00
cgroup_freezer.c
cgroup_pids.c
cgroup: Use lld instead of ld when printing pids controller events_limit
2016-06-21 15:03:36 -04:00
compat.c
configs.c
context_tracking.c
cpu.c
timers/core: Correct callback order during CPU hot plug
2016-07-28 18:56:22 +02:00
cpu_pm.c
cpuset.c
cpuset, mm: fix TIF_MEMDIE check in cpuset_change_task_nodemask
2016-07-28 16:07:41 -07:00
crash_dump.c
cred.c
cred: Reject inodes with invalid ids in set_create_file_as()
2016-06-30 18:05:09 -05:00
delayacct.c
dma.c
elfcore.c
exec_domain.c
exit.c
kernel/exit.c: quieten greatest stack depth printk
2016-08-02 19:35:23 -04:00
extable.c
fork.c
fork: Add generic vmalloced stack support
2016-08-24 12:11:41 +02:00
freezer.c
freezer, oom: check TIF_MEMDIE on the correct task
2016-07-28 16:07:41 -07:00
futex.c
futex: Assume all mappings are private on !MMU systems
2016-07-29 18:44:14 +02:00
futex_compat.c
groups.c
hung_task.c
kernel/hung_task.c: use timeout diff when timeout is updated
2016-03-22 15:36:02 -07:00
irq_work.c
jump_label.c
powerpc updates for 4.8 #2
2016-08-05 09:00:54 -04:00
kallsyms.c
kallsyms: add support for relative offsets in kallsyms address table
2016-03-15 16:55:16 -07:00
kcmp.c
Kconfig.freezer
Kconfig.hz
Kconfig.locks
Kconfig.preempt
kcov.c
kernel/kcov: unproxify debugfs file's fops
2016-06-15 04:56:35 -07:00
kexec.c
kexec: allow architectures to override boot mapping
2016-08-02 19:35:27 -04:00
kexec_core.c
kexec: add restriction on kexec_load() segment sizes
2016-08-02 19:35:31 -04:00
kexec_file.c
kexec: introduce a protection mechanism for the crashkernel reserved memory
2016-05-23 17:04:14 -07:00
kexec_internal.h
kmod.c
kprobes.c
ksysfs.c
kexec: add a kexec_crash_loaded() function
2016-08-02 19:35:30 -04:00
kthread.c
latencytop.c
Makefile
ELF/MIPS build fix
2016-05-23 17:04:14 -07:00
membarrier.c
memremap.c
libnvdimm for 4.8
2016-07-28 17:38:16 -07:00
module-internal.h
module.c
Removed the MODULE_SIG_FORCE-means-no-MODULE_FORCE_LOAD patch.
2016-08-04 09:14:38 -04:00
module_signing.c
KEYS: Move the point of trust determination to __key_link()
2016-04-11 22:43:43 +01:00
notifier.c
nsproxy.c
padata.c
kernel/padata.c: hide unused functions
2016-05-19 19:12:14 -07:00
panic.c
kexec: use core_param for crash_kexec_post_notifiers boot option
2016-08-02 19:35:29 -04:00
params.c
pid.c
remove lots of IS_ERR_VALUE abuses
2016-05-27 15:26:11 -07:00
pid_namespace.c
profile.c
profile: Convert to hotplug state machine
2016-07-15 10:41:42 +02:00
ptrace.c
tree-wide: replace config_enabled() with IS_ENABLED()
2016-08-04 08:50:07 -04:00
range.c
reboot.c
relay.c
relay: add global mode support for buffer-only channels
2016-08-02 19:35:41 -04:00
resource.c
/proc/iomem: only expose physical resource addresses to privileged users
2016-04-14 12:56:09 -07:00
seccomp.c
tree-wide: replace config_enabled() with IS_ENABLED()
2016-08-04 08:50:07 -04:00
signal.c
signals: Use hrtimer for sigtimedwait()
2016-07-07 10:35:07 +02:00
smp.c
Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2016-07-29 13:55:30 -07:00
smpboot.c
cpu/hotplug: Unpark smpboot threads from the state machine
2016-03-01 20:36:56 +01:00
smpboot.h
cpu/hotplug: Create hotplug threads
2016-03-01 20:36:56 +01:00
softirq.c
arch, ftrace: for KASAN put hard/soft IRQ entries into separate sections
2016-03-25 16:37:42 -07:00
stacktrace.c
stop_machine.c
stop_machine: Touch_nmi_watchdog() after MULTI_STOP_PREPARE
2016-07-27 11:12:11 +02:00
sys.c
prctl: make PR_SET_THP_DISABLE wait for mmap_sem killable
2016-05-23 17:04:14 -07:00
sys_ni.c
sysctl.c
printk: add kernel parameter to control writes to /dev/kmsg
2016-08-02 19:35:06 -04:00
sysctl_binary.c
kernel/sysctl_binary.c: use generic UUID library
2016-05-20 17:58:30 -07:00
task_work.c
task_work: use READ_ONCE/lockless_dereference, avoid pi_lock if !task_works
2016-08-02 19:35:02 -04:00
taskstats.c
taskstats: use the libnl API to align nlattr on 64-bit
2016-04-23 20:13:25 -04:00
test_kprobes.c
torture.c
torture: Stop onoff task if there is only one cpu
2016-06-14 16:03:28 -07:00
tracepoint.c
kernel/...: convert pr_warning to pr_warn
2016-03-22 15:36:02 -07:00
tsacct.c
time, acct: Drop irq save & restore from __acct_update_integrals()
2016-02-29 09:53:09 +01:00
uid16.c
up.c
user-return-notifier.c
user.c
user_namespace.c
fs: Limit file caps to the user namespace of the super block
2016-06-24 10:40:31 -05:00
utsname.c
utsname_sysctl.c
watchdog.c
Revert "perf/x86/intel, watchdog: Switch NMI watchdog to ref cycles on x86"
2016-07-10 20:58:36 +02:00
workqueue.c
Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2016-07-29 13:55:30 -07:00
workqueue_internal.h
sched/core: Get rid of 'cpu' argument in wq_worker_sleeping()
2016-03-02 10:28:47 -05:00