]> git.karo-electronics.de Git - karo-tx-linux.git/commit
MIPS: r4k,octeon,r2300: stack protector: change canary per task
authorGregory Fong <gregory.0xf0@gmail.com>
Mon, 17 Jun 2013 19:36:07 +0000 (19:36 +0000)
committerRalf Baechle <ralf@linux-mips.org>
Tue, 18 Jun 2013 12:58:58 +0000 (14:58 +0200)
commitd5b7daeed9a76cefbef598daeaa86892ae9f280b
treeb622047e6a6bdf230883323c07da8f45abd79044
parent54fb2e4222ed7d612dbb3021b4733ce19773aaee
MIPS: r4k,octeon,r2300: stack protector: change canary per task

For non-SMP, uses the new random canary value that is stored in the
task struct whenever a new task is forked.  Based on ARM version in
df0698be14c6683606d5df2d83e3ae40f85ed0d9 and subject to the same
limitations: the variable GCC expects, __stack_chk_guard, is global,
so this will not work on SMP.

Quoting Nicolas Pitre <nico@fluxnic.net>: "One way to overcome this
GCC limitation would be to locate the __stack_chk_guard variable into
a memory page of its own for each CPU, and then use TLB locking to
have each CPU see its own page at the same virtual address for each of
them."

Signed-off-by: Gregory Fong <gregory.0xf0@gmail.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/5488/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/kernel/asm-offsets.c
arch/mips/kernel/octeon_switch.S
arch/mips/kernel/r2300_switch.S
arch/mips/kernel/r4k_switch.S