diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-02-23 07:06:55 +0100 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2008-05-26 16:15:31 +0200 |
commit | 4c7f8900f1d8a0e464e7092f132a7e93f7c20f2f (patch) | |
tree | 2f3eed17ac2723d5a68aec38683478599c2096b3 /arch | |
parent | b3733034f113a4119f734b84e94180a42c8bc1a1 (diff) | |
download | kernel_samsung_espresso10-4c7f8900f1d8a0e464e7092f132a7e93f7c20f2f.zip kernel_samsung_espresso10-4c7f8900f1d8a0e464e7092f132a7e93f7c20f2f.tar.gz kernel_samsung_espresso10-4c7f8900f1d8a0e464e7092f132a7e93f7c20f2f.tar.bz2 |
x86: stackprotector & PARAVIRT fix
on paravirt enabled 64-bit kernels the paravirt ops do function
calls themselves - which is bad with the stackprotector - for
example pda_init() loads 0 into %gs and then does MSR_GS_BASE
write (which modifies gs.base) - but that MSR write is a function
call on paravirt, which with stackprotector tries to read the
stack canary from the PDA ... crashing the bootup.
the solution was suggested by Arjan van de Ven: to exclude paravirt.c
from stackprotector, too many lowlevel functionality is in it. It's
not like we'll have paravirt functions with character arrays on
their stack anyway...
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/kernel/Makefile | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile index 5e618c3..8161e5a 100644 --- a/arch/x86/kernel/Makefile +++ b/arch/x86/kernel/Makefile @@ -14,6 +14,7 @@ nostackp := $(call cc-option, -fno-stack-protector) CFLAGS_vsyscall_64.o := $(PROFILING) -g0 $(nostackp) CFLAGS_hpet.o := $(nostackp) CFLAGS_tsc_64.o := $(nostackp) +CFLAGS_paravirt.o := $(nostackp) obj-y := process_$(BITS).o signal_$(BITS).o entry_$(BITS).o obj-y += traps_$(BITS).o irq_$(BITS).o |