linux/arch/arm64/kernel
Will Deacon eb35bdd7bc arm64: flush TLS registers during exec
Nathan reports that we leak TLS information from the parent context
during an exec, as we don't clear the TLS registers when flushing the
thread state.

This patch updates the flushing code so that we:

  (1) Unconditionally zero the tpidr_el0 register (since this is fully
      context switched for native tasks and zeroed for compat tasks)

  (2) Zero the tp_value state in thread_info before clearing the
      tpidrr0_el0 register for compat tasks (since this is only writable
      by the set_tls compat syscall and therefore not fully switched).

A missing compiler barrier is also added to the compat set_tls syscall.

Cc: <stable@vger.kernel.org>
Acked-by: Nathan Lynch <Nathan_Lynch@mentor.com>
Reported-by: Nathan Lynch <Nathan_Lynch@mentor.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2014-09-11 18:34:58 +01:00
..
vdso
.gitignore
arm64ksyms.c
asm-offsets.c
cpu_ops.c
cpuinfo.c arm64: fix typo in I-cache policy detection 2014-08-18 19:47:03 +01:00
cputable.c
debug-monitors.c
efi-entry.S
efi-stub.c
efi.c Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-08-24 16:17:41 -07:00
entry-fpsimd.S
entry-ftrace.S
entry.S
fpsimd.c arm64: fix bug for reloading FPSIMD state after cpu power off 2014-09-01 12:55:21 +01:00
ftrace.c
head.S arm64: Remove unused variable in head.S 2014-08-26 19:24:00 +01:00
hw_breakpoint.c
hyp-stub.S
image.h
insn.c
io.c
irq.c arm64: use irq_set_affinity with force=false when migrating irqs 2014-09-03 19:24:38 +01:00
jump_label.c
kgdb.c
kuser32.S
Makefile
module.c
perf_event.c
perf_regs.c arm64: perf: don't rely on layout of pt_regs when grabbing sp or pc 2014-08-28 20:01:50 +01:00
process.c arm64: flush TLS registers during exec 2014-09-11 18:34:58 +01:00
psci.c
ptrace.c arm64: ptrace: fix compat reg getter/setter return values 2014-08-28 20:01:42 +01:00
return_address.c
setup.c Revert "arm64: cpuinfo: print info for all CPUs" 2014-09-01 15:55:22 +01:00
signal32.c Merge branch 'signal-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/misc 2014-08-09 09:58:12 -07:00
signal.c
sleep.S
smp_spin_table.c
smp.c Nicolas Pitre added generic tracepoints for tracing IPIs and updated the 2014-08-09 17:33:44 -07:00
stacktrace.c
suspend.c
sys32.S
sys_compat.c arm64: flush TLS registers during exec 2014-09-11 18:34:58 +01:00
sys.c
time.c
topology.c
traps.c
vdso.c
vmlinux.lds.S