linux/arch/arm/kernel
Tim Bird e787ec1376 ARM: 7410/1: Add extra clobber registers for assembly in kernel_execve
The inline assembly in kernel_execve() uses r8 and r9.  Since this
code sequence does not return, it usually doesn't matter if the
register clobber list is accurate.  However, I saw a case where a
particular version of gcc used r8 as an intermediate for the value
eventually passed to r9.  Because r8 is used in the inline
assembly, and not mentioned in the clobber list, r9 was set
to an incorrect value.

This resulted in a kernel panic on execution of the first user-space
program in the system.  r9 is used in ret_to_user as the thread_info
pointer, and if it's wrong, bad things happen.

Cc: <stable@vger.kernel.org>
Signed-off-by: Tim Bird <tim.bird@am.sony.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-05-05 13:54:01 +01:00
..
.gitignore [ARM] 5194/1: update .gitignore 2008-08-12 19:54:09 +01:00
armksyms.c Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
arthur.c
asm-offsets.c ARM: 7114/1: cache-l2x0: add resume entry for l2 in secure mode 2011-10-17 09:11:51 +01:00
atags.c
atags.h
bios32.c ARM: fix bios32.c build warning 2012-03-30 21:03:54 +01:00
calls.S ARM: wire up process_vm_writev and process_vm_readv syscalls 2011-11-17 16:58:00 +00:00
compat.c ARM: deprecate support for old way to pass kernel parameters 2010-07-07 16:38:36 +02:00
compat.h ARM: deprecate support for old way to pass kernel parameters 2010-07-07 16:38:36 +02:00
cpuidle.c cpuidle: Add common time keeping and irq enabling 2012-03-21 01:59:40 -04:00
crash_dump.c crash_dump: export is_kdump_kernel to modules, consolidate elfcorehdr_addr, setup_elfcorehdr and saved_max_pfn 2011-03-23 19:47:19 -07:00
debug.S ARM: cleanups of io includes 2012-03-29 18:02:10 -07:00
devtree.c arm: convert core files from module.h to export.h 2011-10-31 19:30:49 -04:00
dma-isa.c ARM: dma-isa: request cascade channel after registering it 2009-12-24 18:34:08 +00:00
dma.c locking, ARM: Annotate low level hw locks as raw 2011-09-13 11:12:14 +02:00
early_printk.c ARM: Add an earlyprintk debug console 2009-12-09 10:02:18 +00:00
elf.c Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
entry-armv.S ARM: cleanups of io includes 2012-03-29 18:02:10 -07:00
entry-common.S ARM: make arch_ret_to_user macro optional 2012-02-21 17:04:10 -06:00
entry-header.S Merge branch 'devel-stable' into for-next 2011-07-22 23:09:07 +01:00
etm.c arm: fix implicit module.h users by adding it to arch/arm as required. 2011-10-31 19:30:50 -04:00
fiq.c ARM: move CP15 definitions to separate header file 2012-03-28 18:30:01 +01:00
fiqasm.S ARM: 6938/1: fiq: Refactor {get,set}_fiq_regs() for Thumb-2 2011-05-26 10:31:06 +01:00
ftrace.c ARM: 7331/1: extract out insn generation code from ftrace 2012-03-24 09:38:55 +00:00
head-common.S arm/dt: Make __vet_atags also accept a dtb image 2011-05-11 15:12:32 +02:00
head-nommu.S ARM: move CP15 definitions to separate header file 2012-03-28 18:30:01 +01:00
head.S ARM: move CP15 definitions to separate header file 2012-03-28 18:30:01 +01:00
hw_breakpoint.c Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
init_task.c Use new __init_task_data macro in arch init_task.c files. 2009-09-21 06:27:08 +02: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: convert core files from module.h to export.h 2011-10-31 19:30:49 -04:00
irq.c ARM: 7406/1: hotplug: copy the affinity mask when forcefully migrating IRQs 2012-04-28 11:01:31 +01:00
isa.c sysctl: Drop & in front of every proc_handler. 2009-11-18 08:37:40 -08:00
iwmmxt.S ARM: pxa: fix logic error in PJ4 iWMMXt handling 2011-08-11 10:10:26 +08:00
jump_label.c ARM: 7334/1: add jump label support 2012-03-24 09:38:56 +00:00
kgdb.c kgdb,arm: fix register dump 2010-10-29 13:14:40 -05:00
kprobes-arm.c ARM: 7181/1: Restrict kprobes probing SWP instructions to ARMv5 and below 2011-11-30 23:54:54 +00:00
kprobes-common.c Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
kprobes-test-arm.c ARM: 7181/1: Restrict kprobes probing SWP instructions to ARMv5 and below 2011-11-30 23:54:54 +00:00
kprobes-test-thumb.c ARM: 7174/1: Fix build error in kprobes test code on Thumb2 kernels 2011-11-26 21:58:53 +00:00
kprobes-test.c ARM: 7209/1: Use generic ARM instruction set condition code checks for kprobes. 2011-12-13 08:52:03 +00:00
kprobes-test.h ARM: 7174/1: Fix build error in kprobes test code on Thumb2 kernels 2011-11-26 21:58:53 +00:00
kprobes-thumb.c ARM: kprobes: Add exports for test code 2011-09-20 18:17:43 +00:00
kprobes.c Autogenerated GPG tag for Rusty D1ADB8F1: 15EE 8D6C AB0E 7F0C F999 BFCB D920 0E6C D1AD B8F1 2012-04-02 08:53:24 -07:00
kprobes.h ARM: kprobes: Add exports for test code 2011-09-20 18:17:43 +00:00
leds.c arm: leds: convert sysdev_class to a regular subsystem 2011-12-21 15:52:57 -08:00
machine_kexec.c Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2012-03-29 16:53:48 -07:00
Makefile Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux 2012-03-30 16:45:39 -07:00
module.c ARM: 7059/1: LPAE: Use PMD_(SHIFT|SIZE|MASK) instead of PGDIR_* 2011-08-23 15:30:33 +01: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_v6.c ARM: 7356/1: perf: check that we have an event in the PMU IRQ handlers 2012-03-07 09:40:49 +00:00
perf_event_v7.c Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2012-03-29 16:53:48 -07:00
perf_event_xscale.c ARM: 7357/1: perf: fix overflow handling for xscale2 PMUs 2012-03-07 09:40:49 +00:00
perf_event.c Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2012-03-29 16:53:48 -07:00
pj4-cp0.c arm: remove several unnecessary module.h include instances 2011-10-31 19:30:48 -04:00
pmu.c ARM: PMU: re-export release_pmu symbol to modules 2011-11-16 10:06:42 +00:00
process.c Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2012-03-29 16:53:48 -07:00
ptrace.c ARM: 7337/1: ptrace: fix ptrace_read_user for !CONFIG_MMU platforms 2012-03-30 12:17:33 +01:00
relocate_kernel.S ARM: 7065/1: kexec: ensure new kernel is entered in ARM state 2011-08-28 10:39:41 +01:00
return_address.c arm: convert core files from module.h to export.h 2011-10-31 19:30:49 -04:00
sched_clock.c ARM: sync sched_clock() state on suspend 2012-03-24 09:38:53 +00:00
setup.c ARM: 7382/1: mm: truncate memory banks to fit in 4GB space for classic MMU 2012-04-15 22:00:30 +01:00
signal.c ARM: 7399/1: vfp: move user vfp state save/restore code out of signal.c 2012-04-23 15:44:41 +01:00
signal.h ARM: Fix signal restart issues with NX and OABI compat 2009-10-25 15:39:37 +00:00
sleep.S Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
smp_scu.c Merge branches 'arnd-randcfg-fixes', 'debug', 'io' (early part), 'l2x0', 'p2v', 'pgt' (early part) and 'smp' into for-linus 2011-10-25 08:19:29 +01:00
smp_tlb.c smp: introduce a generic on_each_cpu_mask() function 2012-03-28 17:14:35 -07:00
smp_twd.c Revert "ARM: 7359/2: smp_twd: Only wait for reprogramming on active cpus" 2012-04-19 19:35:10 +01:00
smp.c ARM: 7405/1: kexec: call platform_cpu_kill on the killer rather than the victim 2012-04-28 11:01:31 +01:00
stacktrace.c arm: convert core files from module.h to export.h 2011-10-31 19:30:49 -04:00
suspend.c ARM: suspend: use idmap_pgd instead of suspend_pgd 2011-12-06 14:04:14 +00:00
swp_emulate.c ARM: 7208/1: Add condition code checking to SWP emulation handler. 2011-12-13 08:52:03 +00:00
sys_arm.c ARM: 7410/1: Add extra clobber registers for assembly in kernel_execve 2012-05-05 13:54:01 +01:00
sys_oabi-compat.c ARM: 6891/1: prevent heap corruption in OABI semtimedop 2011-04-29 15:53:14 +01:00
tcm.c Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
tcm.h ARM: 5580/2: ARM TCM (Tightly-Coupled Memory) support v3 2009-09-15 22:11:05 +01:00
thumbee.c Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
time.c Merge branch 'sched_clock-for-rmk' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into devel-stable 2012-02-04 10:32:18 +00:00
topology.c ARM: 7182/1: ARM cpu topology: fix warning 2011-11-30 23:55:21 +00:00
traps.c Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2012-03-29 16:53:48 -07:00
unwind.c ARM: unwinder: fix bisection to find origin in .idx section 2011-12-15 14:02:19 -08:00
vmlinux.lds.S ARM: 7320/1: Fix proc_info table alignment 2012-02-09 16:25:37 +00:00
xscale-cp0.c arm: remove several unnecessary module.h include instances 2011-10-31 19:30:48 -04:00