linux/arch/arm/kernel
Will Deacon 42309ab450 ARM: 8087/1: ptrace: reload syscall number after secure_computing() check
On the syscall tracing path, we call out to secure_computing() to allow
seccomp to check the syscall number being attempted. As part of this, a
SIGTRAP may be sent to the tracer and the syscall could be re-written by
a subsequent SET_SYSCALL ptrace request. Unfortunately, this new syscall
is ignored by the current code unless TIF_SYSCALL_TRACE is also set on
the current thread.

This patch slightly reworks the enter path of the syscall tracing code
so that we always reload the syscall number from
current_thread_info()->syscall after the potential ptrace traps.

Acked-by: Kees Cook <keescook@chromium.org>
Tested-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2014-06-29 10:29:35 +01:00
..
.gitignore
arch_timer.c arch_timer: Move to generic sched_clock framework 2013-10-09 16:54:10 -07:00
armksyms.c ARM: Better virt_to_page() handling 2014-04-03 22:46:34 +01:00
arthur.c
asm-offsets.c ARM: KVM: introduce per-vcpu HYP Configuration Register 2014-03-03 01:15:23 +00:00
atags_compat.c ARM: 7505/1: split out ATAGS parsing 2012-09-03 22:55:56 +01:00
atags_parse.c ARM: 8025/1: Get rid of meminfo 2014-06-01 01:17:12 +01:00
atags_proc.c procfs: new helper - PDE_DATA(inode) 2013-04-09 14:13:32 -04:00
atags.h ARM: constify machine_desc structure uses 2013-07-26 14:55:59 +01:00
bios32.c ARM/PCI: Call pcie_bus_configure_settings() to set MPS 2014-05-30 10:50:57 -06:00
calls.S ARM: add renameat2 syscall 2014-04-23 11:27:42 +01:00
cpuidle.c cpuidle: Add common time keeping and irq enabling 2012-03-21 01:59:40 -04:00
crash_dump.c ARM: 8012/1: kdump: Avoid overflow when converting pfn to physaddr 2014-04-07 12:10:00 +01:00
debug.S ARM: compile fix for DEBUG_LL=y && MMU=n 2013-01-16 14:30:06 -08:00
devtree.c Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into next 2014-06-05 15:57:04 -07:00
dma-isa.c
dma.c locking, ARM: Annotate low level hw locks as raw 2011-09-13 11:12:14 +02:00
early_printk.c early_printk: consolidate random copies of identical code 2013-04-29 18:28:13 -07:00
elf.c Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
entry-armv.S Merge branches 'alignment', 'fixes', 'l2c' (early part) and 'misc' into for-next 2014-06-05 12:35:52 +01:00
entry-common.S ARM: consolidate last remaining open-coded alignment trap enable 2014-06-02 09:20:20 +01:00
entry-header.S Merge branches 'alignment', 'fixes', 'l2c' (early part) and 'misc' into for-next 2014-06-05 12:35:52 +01:00
entry-v7m.S ARM: 7890/1: v7-M: drop using mach/entry-macro.S 2013-12-29 12:32:32 +00:00
etm.c ARM: 7905/1: etm: Remove unnecessary amba_set_drvdata() 2013-12-29 12:32:34 +00:00
fiq.c ARM: 7819/1: fiq: Cast the first argument of flush_icache_range() 2013-08-20 00:11:50 +01:00
fiqasm.S
ftrace.c ARM: 8022/1: ftrace: work with CONFIG_DEBUG_SET_MODULE_RONX 2014-04-23 01:24:31 +01:00
head-common.S ARM: remove global cr_no_alignment 2014-06-02 09:20:18 +01:00
head-nommu.S ARM: fix asm/memory.h build error 2013-12-13 20:25:30 +00:00
head.S Merge branches 'alignment', 'fixes', 'l2c' (early part) and 'misc' into for-next 2014-06-05 12:35:52 +01:00
hibernate.c ARM: 8011/1: ARM hibernation / suspend-to-disk 2014-04-23 01:24:14 +01:00
hw_breakpoint.c CPU hotplug notifiers registration fixes for 3.15-rc1 2014-04-07 14:55:46 -07:00
hyp-stub.S ARM: 7786/1: hyp: fix macro parameterisation 2013-07-22 14:30:34 +01:00
insn.c ARM: fix missing bug.h include in arch/arm/kernel/insn.c 2012-03-30 11:51:46 +01:00
insn.h ARM: 7334/1: add jump label support 2012-03-24 09:38:56 +00:00
io.c ARM: 7930/1: Introduce atomic MMIO modify 2014-01-28 14:06:25 +00:00
irq.c ARM: l2c: add platform independent core L2 cache OF initialisation 2014-05-30 00:49:00 +01:00
isa.c arm: convert use of typedef ctl_table to struct ctl_table 2014-06-06 16:08:15 -07:00
iwmmxt.S Merge branches 'alignment', 'fixes', 'l2c' (early part) and 'misc' into for-next 2014-06-05 12:35:52 +01:00
jump_label.c ARM: 7334/1: add jump label support 2012-03-24 09:38:56 +00:00
kgdb.c
kprobes-arm.c ARM: Make arch_specific_insn a define for new arch_probes_insn structure 2014-03-18 16:39:40 -04:00
kprobes-common.c ARM: probes: fix instruction fetch order with <asm/opcodes.h> 2014-04-01 16:45:19 +03:00
kprobes-test-arm.c ARM: kprobes-test: use <asm/opcodes.h> for ARM instruction building 2014-04-01 16:48:24 +03:00
kprobes-test-thumb.c ARM: kprobes-test: use <asm/opcodes.h> for Thumb instruction building 2014-04-01 16:48:26 +03:00
kprobes-test.c ARM: kprobes-test: Workaround GAS .align bug 2014-04-01 16:48:27 +03:00
kprobes-test.h ARM: kprobes-test: Workaround GAS .align bug 2014-04-01 16:48:27 +03:00
kprobes-thumb.c ARM: probes: fix instruction fetch order with <asm/opcodes.h> 2014-04-01 16:45:19 +03:00
kprobes.c ARM: probes: fix instruction fetch order with <asm/opcodes.h> 2014-04-01 16:45:19 +03:00
kprobes.h ARM: Make arch_specific_insn a define for new arch_probes_insn structure 2014-03-18 16:39:40 -04:00
machine_kexec.c ARM: 8030/1: ARM : kdump : add arch_crash_save_vmcoreinfo 2014-04-22 22:23:58 +01:00
Makefile Merge branches 'alignment', 'fixes', 'l2c' (early part) and 'misc' into for-next 2014-06-05 12:35:52 +01:00
module.c Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2013-11-14 08:51:29 +09:00
opcodes.c ARM: 7206/1: Add generic ARM instruction set condition code checks. 2011-12-13 08:52:02 +00:00
patch.c ARM: 7332/1: extract out code patch function from kprobes 2012-03-24 09:38:55 +00:00
patch.h ARM: 7332/1: extract out code patch function from kprobes 2012-03-24 09:38:55 +00:00
perf_event_cpu.c Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-06-12 19:18:49 -07:00
perf_event_v6.c ARM: perf: don't pretend to support counting of L1I writes 2013-01-16 12:01:59 +00:00
perf_event_v7.c ARM: perf: fix compiler warning with gcc 4.6.4 (and tidy code) 2014-06-19 11:29:39 +01:00
perf_event_xscale.c ARM: perf: don't pretend to support counting of L1I writes 2013-01-16 12:01:59 +00:00
perf_event.c perf/ARM: Use common PMU interrupt disabled code 2014-06-05 12:30:00 +02:00
perf_regs.c ARM: perf: add support for perf registers API 2013-09-30 16:41:50 +01:00
pj4-cp0.c ARM: 8040/1: pj4: properly detect existence of iWMMXt coprocessor 2014-04-25 12:07:34 +01:00
probes-arm.c ARM: Make arch_specific_insn a define for new arch_probes_insn structure 2014-03-18 16:39:40 -04:00
probes-arm.h ARM: Make arch_specific_insn a define for new arch_probes_insn structure 2014-03-18 16:39:40 -04:00
probes-thumb.c ARM: Make arch_specific_insn a define for new arch_probes_insn structure 2014-03-18 16:39:40 -04:00
probes-thumb.h ARM: Make arch_specific_insn a define for new arch_probes_insn structure 2014-03-18 16:39:40 -04:00
probes.c ARM: probes: fix instruction fetch order with <asm/opcodes.h> 2014-04-01 16:45:19 +03:00
probes.h ARM: Make arch_specific_insn a define for new arch_probes_insn structure 2014-03-18 16:39:40 -04:00
process.c Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm 2014-04-11 11:56:40 -07:00
psci_smp.c ARM: Check if a CPU has gone offline 2014-05-15 10:16:30 -04:00
psci.c PSCI: Add initial support for PSCIv0.2 functions 2014-05-15 10:16:00 -04:00
ptrace.c ARM: 8087/1: ptrace: reload syscall number after secure_computing() check 2014-06-29 10:29:35 +01:00
relocate_kernel.S ARM: 7897/1: kexec: Use the right ISA for relocate_new_kernel 2013-11-30 22:21:02 +00:00
return_address.c ARM: 7676/1: fix a wrong value returned from CALLER_ADDRn 2013-03-19 11:43:46 +00:00
setup.c Merge branches 'alignment', 'fixes', 'l2c' (early part) and 'misc' into for-next 2014-06-05 12:35:52 +01:00
signal.c ARM: add uprobes support 2014-03-18 16:39:40 -04:00
sigreturn_codes.S ARM: 7895/1: signal: fix armv7-m build issue in sigreturn_codes.S 2013-11-30 22:21:00 +00:00
sleep.S ARM: 8053/1: kernel: sleep: restore HYP mode configuration in cpu_resume 2014-05-25 23:49:27 +01:00
smp_scu.c ARM: smp_scu: data endian fixes 2013-10-19 20:46:33 +01:00
smp_tlb.c ARM: 7855/1: Add check for Cortex-A15 errata 798181 ECO 2013-10-29 11:06:13 +00:00
smp_twd.c cpufreq: remove unused notifier: CPUFREQ_{SUSPENDCHANGE|RESUMECHANGE} 2014-03-19 14:10:24 +01:00
smp.c cpufreq: remove unused notifier: CPUFREQ_{SUSPENDCHANGE|RESUMECHANGE} 2014-03-19 14:10:24 +01:00
stacktrace.c ARM: 8049/1: ftrace/add save_stack_trace_regs() implementation 2014-05-30 01:12:32 +01:00
suspend.c ARM: suspend: use hash of cpu_logical_map value to index into save array 2013-07-30 09:00:43 -04:00
swp_emulate.c arm: single_open() leaks 2013-05-05 00:07:22 -04:00
sys_arm.c arm: switch to generic fork/vfork/clone 2012-11-28 22:13:54 -05:00
sys_oabi-compat.c locks: rename file-private locks to "open file description locks" 2014-04-22 08:23:58 -04:00
tcm.c ARM: add permission annotations to MT_MEMORY* mapping types 2013-12-11 09:53:14 +00:00
thumbee.c ARM: 7385/1: ThumbEE: Use cpuid macros to read ID_PFR0 for ThumbEE 2012-04-25 19:49:26 +01:00
time.c ARM: call of_clk_init from default time_init handler 2013-09-29 21:09:15 +02:00
topology.c Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-06-12 19:42:15 -07:00
traps.c Dump the registers on undefined instruction userspace faults 2014-04-11 14:48:39 +01:00
unwind.c arm, unwind, LLVMLinux: Enable clang to be used for unwinding the stack 2014-06-07 11:44:39 -07:00
uprobes-arm.c ARM: add uprobes support 2014-03-18 16:39:40 -04:00
uprobes.c ARM: 8043/1: uprobes need icache flush after xol write 2014-05-25 23:48:45 +01:00
uprobes.h ARM: add uprobes support 2014-03-18 16:39:40 -04:00
v7m.c ARM: 7828/1: ARMv7-M: implement restart routine common to all v7-M machines 2013-09-02 13:49:29 +01:00
vmlinux.lds.S ARM: use linker magic for vectors and vector stubs 2013-07-31 21:34:24 +01:00
xscale-cp0.c arm: remove several unnecessary module.h include instances 2011-10-31 19:30:48 -04:00