Messages in this thread | | | Date | Fri, 18 Dec 2009 17:02:35 +0100 (CET) | From | Thomas Gleixner <> | Subject | Re: [PATCH 1/2] x86: initialize stack canary in secondary start |
| |
On Thu, 17 Dec 2009, Pan, Jacob jun wrote: > >From 06503838368350268a46528e134c1dad9f4f8c93 Mon Sep 17 00:00:00 2001 > From: Jacob Pan <jacob.jun.pan@intel.com> > Date: Thu, 17 Sep 2009 07:36:43 -0700 > Subject: [PATCH 1/2] x86: initialize stack canary in secondary start > > some secondary clockevent setup code needs to call request_irq, which will > cause fake stack check failure in schedule() if voluntary preemption > model is chosen, it is safe to have stack canary initialized here early, > since start_secondary() does not return.
Where is it initialized now ? Shouldnt the current init be removed ?
Thanks,
tglx
> Signed-off-by: Jacob Pan <jacob.jun.pan@intel.com> > --- > arch/x86/kernel/smpboot.c | 4 ++++ > 1 files changed, 4 insertions(+), 0 deletions(-) > > diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c > index 678d0b8..56ce974 100644 > --- a/arch/x86/kernel/smpboot.c > +++ b/arch/x86/kernel/smpboot.c > @@ -48,6 +48,7 @@ > #include <linux/err.h> > #include <linux/nmi.h> > #include <linux/tboot.h> > +#include <linux/stackprotector.h> > > #include <asm/acpi.h> > #include <asm/desc.h> > @@ -324,6 +325,9 @@ notrace static void __cpuinit start_secondary(void *unused) > /* enable local interrupts */ > local_irq_enable(); > > + /* to prevent fake stack check failure in clock setup */ > + boot_init_stack_canary(); > + > x86_cpuinit.setup_percpu_clockev(); > > wmb(); > -- > 1.6.5.3 > >
| |