VMI fix for stack protector

From: Alok Kataria
Date: Tue Aug 04 2009 - 18:34:30 EST



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.

Needs to go in for 2.6.30.x too, since STACK_PROTECTOR for 32bit was
introduced in 2.6.30.

Patch on top of 2.6.31-rc5.

Signed-off-by: Alok N Kataria <akataria@xxxxxxxxxx>
Cc: stable@xxxxxxxxxx

Index: linux-2.6/arch/x86/kernel/vmi_32.c
===================================================================
--- linux-2.6.orig/arch/x86/kernel/vmi_32.c 2009-08-03 13:55:41.000000000 -0700
+++ linux-2.6/arch/x86/kernel/vmi_32.c 2009-08-04 14:13:22.000000000 -0700
@@ -442,7 +442,7 @@ vmi_startup_ipi_hook(int phys_apicid, un
ap.ds = __USER_DS;
ap.es = __USER_DS;
ap.fs = __KERNEL_PERCPU;
- ap.gs = 0;
+ ap.gs = __KERNEL_STACK_CANARY;

ap.eflags = 0;



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/