linux/arch/arm/kernel
Abel Vesa 620176f335 ARM: 8678/1: ftrace: Adds support for CONFIG_DYNAMIC_FTRACE_WITH_REGS
The DYNAMIC_FTRACE_WITH_REGS configuration makes it possible for a
ftrace operation to specify if registers need to saved/restored by
the ftrace handler. This is needed by kgraft and possibly other
ftrace-based tools, and the ARM architecture is currently lacking
this feature. It would also be the first step to support the
"Kprobes-on-ftrace" optimization on ARM.

This patch introduces a new ftrace handler that stores the registers
on the stack before calling the next stage. The registers are restored
from the stack before going back to the instrumented function.

A side-effect of this patch is to activate the support for
ftrace_modify_call() as it defines ARCH_SUPPORTS_FTRACE_OPS for the
ARM architecture.

Signed-off-by: Abel Vesa <abelvesa@linux.com>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2017-06-18 22:25:16 +01:00
..
.gitignore
arch_timer.c
armksyms.c arm: kernel: Add SMC structure parameter 2017-02-03 18:46:33 +00:00
asm-offsets.c ARM: save and reset the address limit when entering an exception 2016-07-07 16:01:01 +01:00
atags_compat.c
atags_parse.c
atags_proc.c
atags.h ARM: 8495/1: ATAGS: move save_atags() to arch/arm/include/asm/setup.h 2016-01-04 11:26:00 +00:00
bios32.c ARM/PCI: Use generic pci_mmap_resource_range() 2017-04-20 08:47:47 -05:00
cpuidle.c ARM: 8595/2: apply more __ro_after_init 2016-08-12 16:47:06 +01:00
crash_dump.c
debug.S
devtree.c ARM: 8616/1: dt: Respect property size when parsing CPUs 2016-09-29 16:57:43 +01:00
dma-isa.c
dma.c
early_printk.c
efi.c ARM/efi: Apply strict permissions for UEFI Runtime Services regions 2016-04-28 11:33:53 +02:00
elf.c
entry-armv.S ARM: fix address limit restoration for undefined instructions 2016-08-09 22:57:59 +01:00
entry-common.S ARM: convert to generated system call tables 2016-10-18 21:34:06 +01:00
entry-ftrace.S ARM: 8678/1: ftrace: Adds support for CONFIG_DYNAMIC_FTRACE_WITH_REGS 2017-06-18 22:25:16 +01:00
entry-header.S ARM: save and reset the address limit when entering an exception 2016-07-07 16:01:01 +01:00
entry-v7m.S ARM: rename S_FRAME_SIZE to PT_REGS_SIZE 2016-06-22 19:54:28 +01:00
fiq.c
fiqasm.S
ftrace.c ARM: 8678/1: ftrace: Adds support for CONFIG_DYNAMIC_FTRACE_WITH_REGS 2017-06-18 22:25:16 +01:00
head-common.S
head-nommu.S ARM: 8649/2: nommu: remove Hivecs configuration is asm 2017-02-28 11:06:15 +00:00
head.S Revert "arm: move exports to definitions" 2016-11-23 10:00:03 +00:00
hibernate.c ARM: use virt_to_idmap() for soft_restart() 2016-02-08 15:48:32 +00:00
hw_breakpoint.c ARM: 8634/1: hw_breakpoint: blacklist Scorpion CPUs 2017-01-10 23:32:26 +00:00
hyp-stub.S ARM: hyp-stub: Fix Thumb-2 compilation 2017-04-20 12:58:53 +02:00
insn.c
io.c
irq.c ARM: 8499/1: irq: l2c: do not print error in case of missing l2c from 2016-01-26 23:49:02 +00:00
isa.c
iwmmxt.S
jump_label.c
kgdb.c scripts/spelling.txt: add regsiter -> register spelling mistake 2017-05-08 17:15:13 -07:00
machine_kexec.c arm: use set_memory.h header 2017-05-08 17:15:13 -07:00
Makefile Revert "arm: move exports to definitions" 2016-11-23 10:00:03 +00:00
module-plts.c ARM: 8662/1: module: split core and init PLT sections 2017-03-17 10:01:28 +00:00
module.c ARM: Silence first allocation with CONFIG_ARM_MODULE_PLTS=y 2017-05-11 14:43:31 +01:00
module.lds ARM: 8662/1: module: split core and init PLT sections 2017-03-17 10:01:28 +00:00
opcodes.c
paravirt.c arm: introduce CONFIG_PARAVIRT, PARAVIRT_TIME_ACCOUNTING and pv_time_ops 2015-12-21 14:40:54 +00:00
patch.c arch: Rename CONFIG_DEBUG_RODATA and CONFIG_DEBUG_MODULE_RONX 2017-02-07 12:32:52 -08:00
perf_callchain.c perf core: Add a 'nr' field to perf_event_callchain_context 2016-05-16 23:11:51 -03:00
perf_event_v6.c arm: perf: use builtin_platform_driver 2017-02-03 18:46:42 +00:00
perf_event_v7.c arm: perf: use builtin_platform_driver 2017-02-03 18:46:42 +00:00
perf_event_xscale.c arm: perf: use builtin_platform_driver 2017-02-03 18:46:42 +00:00
perf_regs.c sched/headers: Prepare for new header dependencies before moving code to <linux/sched/task_stack.h> 2017-03-02 08:42:36 +01:00
pj4-cp0.c ARM: 8452/3: PJ4: make coprocessor access sequences buildable in Thumb2 mode 2016-01-04 11:12:10 +00:00
process.c ARM: 8673/1: Fix __show_regs output timestamps 2017-05-23 17:26:38 +01:00
psci_smp.c ARM: use const and __initconst for smp_operations 2015-12-01 22:17:45 +01:00
ptrace.c sched/headers: Prepare for new header dependencies before moving code to <linux/sched/task_stack.h> 2017-03-02 08:42:36 +01:00
reboot.c ARM: soft-reboot into same mode that we entered the kernel 2017-04-09 07:49:24 -07:00
reboot.h
relocate_kernel.S
return_address.c
setup.c ARM: 8667/3: Fix memory attribute inconsistencies when using fixmap 2017-04-20 11:19:42 +01:00
signal.c Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm 2015-09-19 21:05:02 -07:00
sigreturn_codes.S
sleep.S
smccc-call.S arm: kernel: Add SMC structure parameter 2017-02-03 18:46:33 +00:00
smp_scu.c
smp_tlb.c ARM: 8613/1: Fix the uaccess crash on PB11MPCore 2017-01-16 17:30:46 +00:00
smp_twd.c cpu/hotplug: Cleanup state names 2016-12-25 10:47:44 +01:00
smp.c sched/headers: Move task->mm handling methods to <linux/sched/mm.h> 2017-03-03 01:43:28 +01:00
stacktrace.c sched/headers: Prepare for new header dependencies before moving code to <linux/sched/debug.h> 2017-03-02 08:42:34 +01:00
suspend.c sched/headers: Prepare to remove the <linux/mm_types.h> dependency from <linux/sched.h> 2017-03-02 08:42:37 +01:00
swp_emulate.c sched/headers: Prepare to remove the <linux/mm_types.h> dependency from <linux/sched.h> 2017-03-02 08:42:37 +01:00
sys_arm.c
sys_oabi-compat.c sched/headers: Prepare to remove <linux/cred.h> inclusion from <linux/sched.h> 2017-03-02 08:42:31 +01:00
tcm.c
thumbee.c
time.c clocksource: cosmetic: Drop OF 'dependency' from symbols 2015-10-01 02:18:39 +02:00
topology.c sched/headers: Prepare for new header dependencies before moving code to <linux/sched/topology.h> 2017-03-02 08:42:26 +01:00
traps.c sched/headers: Prepare for new header dependencies before moving code to <linux/sched/task_stack.h> 2017-03-02 08:42:36 +01:00
unwind.c
v7m.c
vdso.c Merge branch 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm 2016-10-06 07:59:37 -07:00
vmlinux-xip.lds.S debug: Fix __bug_table[] in arch linker scripts 2017-04-03 10:22:40 +02:00
vmlinux.lds.S debug: Fix __bug_table[] in arch linker scripts 2017-04-03 10:22:40 +02:00
xscale-cp0.c ARM: make xscale iwmmxt code multiplatform aware 2015-12-01 21:44:24 +01:00