kernel_optimize_test/arch
Tejun Heo 60a5317ff0 x86: implement x86_32 stack protector
Impact: stack protector for x86_32

Implement stack protector for x86_32.  GDT entry 28 is used for it.
It's set to point to stack_canary-20 and have the length of 24 bytes.
CONFIG_CC_STACKPROTECTOR turns off CONFIG_X86_32_LAZY_GS and sets %gs
to the stack canary segment on entry.  As %gs is otherwise unused by
the kernel, the canary can be anywhere.  It's defined as a percpu
variable.

x86_32 exception handlers take register frame on stack directly as
struct pt_regs.  With -fstack-protector turned on, gcc copies the
whole structure after the stack canary and (of course) doesn't copy
back on return thus losing all changed.  For now, -fno-stack-protector
is added to all files which contain those functions.  We definitely
need something better.

Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-02-10 00:42:01 +01:00
..
alpha Merge commit 'v2.6.29-rc4' into core/percpu 2009-02-09 14:58:11 +01:00
arm Merge commit 'v2.6.29-rc4' into core/percpu 2009-02-09 14:58:11 +01:00
avr32 eeprom: More consistent symbol names 2009-01-26 21:19:57 +01:00
blackfin Merge commit 'v2.6.29-rc4' into core/percpu 2009-02-09 14:58:11 +01:00
cris
frv
h8300
ia64 Merge commit 'v2.6.29-rc4' into core/percpu 2009-02-09 14:58:11 +01:00
m32r eeprom: More consistent symbol names 2009-01-26 21:19:57 +01:00
m68k m68knommu: remove the no longer used PCI support option 2009-01-27 16:42:02 +10:00
m68knommu m68knommu: fix 5329 ColdFire periphal addressing 2009-01-27 16:42:03 +10:00
mips Merge commit 'v2.6.29-rc4' into core/percpu 2009-02-09 14:58:11 +01:00
mn10300
parisc Merge branch 'linus' into core/percpu 2009-01-30 18:23:30 +01:00
powerpc Merge commit 'v2.6.29-rc4' into core/percpu 2009-02-09 14:58:11 +01:00
s390 [S390] Add missing compat system call wrappers. 2009-01-23 16:40:29 +01:00
sh sh: Fix up T-bit error handling in SH-4A mutex fastpath. 2009-01-29 11:56:03 +09:00
sparc Merge commit 'v2.6.29-rc4' into core/percpu 2009-02-09 14:58:11 +01:00
um
x86 x86: implement x86_32 stack protector 2009-02-10 00:42:01 +01:00
xtensa
.gitignore
Kconfig