diff options
author | Joseph Cihula <joseph.cihula@intel.com> | 2009-03-30 14:03:01 -0700 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-04-03 19:48:41 +0200 |
commit | 9b7b89efa3bdaceaa2efb93e2d635391835da209 (patch) | |
tree | f98eb1e69b74b32098f8f2d3ae2deb8546b3fa82 /arch/x86/power | |
parent | 6a491e2e3e52a64c6d88a192c56499d931842ac5 (diff) | |
download | lwn-9b7b89efa3bdaceaa2efb93e2d635391835da209.tar.gz lwn-9b7b89efa3bdaceaa2efb93e2d635391835da209.zip |
x86: disable stack-protector for __restore_processor_state()
The __restore_processor_state() fn restores %gs on resume from S3. As
such, it cannot be protected by the stack-protector guard since %gs will
not be correct on function entry.
There are only a few other fns in this file and it should not negatively
impact kernel security that they will also have the stack-protector
guard removed (and so it's not worth moving them to another file).
Without this change, S3 resume on a kernel built with
CONFIG_CC_STACKPROTECTOR_ALL=y will fail.
Signed-off-by: Joseph Cihula <joseph.cihula@intel.com>
Tested-by: Chris Wright <chrisw@sous-sol.org>
Cc: Arjan van de Ven <arjan@linux.intel.com>
Cc: Tejun Heo <tj@kernel.org>
LKML-Reference: <49D13385.5060900@intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/power')
-rw-r--r-- | arch/x86/power/Makefile | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/x86/power/Makefile b/arch/x86/power/Makefile index 9ff4d5b55ad1..58b32db33125 100644 --- a/arch/x86/power/Makefile +++ b/arch/x86/power/Makefile @@ -1,2 +1,7 @@ +# __restore_processor_state() restores %gs after S3 resume and so should not +# itself be stack-protected +nostackp := $(call cc-option, -fno-stack-protector) +CFLAGS_cpu_$(BITS).o := $(nostackp) + obj-$(CONFIG_PM_SLEEP) += cpu_$(BITS).o obj-$(CONFIG_HIBERNATION) += hibernate_$(BITS).o hibernate_asm_$(BITS).o |