summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorAlok Kataria <akataria@vmware.com>2009-08-04 15:34:22 -0700
committerGreg Kroah-Hartman <gregkh@suse.de>2009-08-16 14:19:07 -0700
commit11ebe4a3a51c597583df02572f6ddca844b6ecc8 (patch)
tree602b534c6790a8bec403f42b1adb3f272b970288 /arch
parentfe1bbf0945bfff8913fe36b54bde71ebc412ce4b (diff)
downloadlinux-stable-11ebe4a3a51c597583df02572f6ddca844b6ecc8.tar.gz
linux-stable-11ebe4a3a51c597583df02572f6ddca844b6ecc8.tar.bz2
linux-stable-11ebe4a3a51c597583df02572f6ddca844b6ecc8.zip
x86: Fix VMI && stack protector
commit 7d5b005652bc5ae3e1e0efc53fd0e25a643ec506 upstream. With CONFIG_STACK_PROTECTOR turned on, VMI doesn't boot with more than one processor. The problem is with the gs value not being initialized correctly when registering the secondary processor for VMI's case. The patch below initializes the gs value for the AP to __KERNEL_STACK_CANARY. Without this the secondary processor keeps on taking a GP on every gs access. Signed-off-by: Alok N Kataria <akataria@vmware.com> LKML-Reference: <1249425262.18955.40.camel@ank32.eng.vmware.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/kernel/vmi_32.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/kernel/vmi_32.c b/arch/x86/kernel/vmi_32.c
index 95deb9f2211e..c6a61d2a77f5 100644
--- a/arch/x86/kernel/vmi_32.c
+++ b/arch/x86/kernel/vmi_32.c
@@ -441,7 +441,7 @@ vmi_startup_ipi_hook(int phys_apicid, unsigned long start_eip,
ap.ds = __USER_DS;
ap.es = __USER_DS;
ap.fs = __KERNEL_PERCPU;
- ap.gs = 0;
+ ap.gs = __KERNEL_STACK_CANARY;
ap.eflags = 0;