On Tue, 2020-05-19 at 16:17 +0200, Thomas Trepl via lfs-dev wrote:
> Am Montag, den 11.05.2020, 09:50 +0200 schrieb Pierre Labastie via
> lfs-dev:
> > Sorry if this has already been reported. With gcc 10 and kernel
> > 5.6.11,
> > I get:
> > Kernel panic - not syncing: stack-protector: Kernel stack is
> > corrupted
> > in: start_secondary+0x169/0x170
> > 
> > at early boot.
> > this has been reported upstream [1], who made a complicated patch,
> > mainly consisting of comments. It seems it occurs only when
> > CONFIG_STACKPROTECTOR_STRONG=y. I do not know which kernel will
> > have
> > it. 5.6.12 doesn't.
> > 
> > Two possibilities: remove the STACK_PROTECTOR_STRONG config, or
> > apply
> > this sed:
> > 
> > sed -e '/cpu_startup/a asm("");' -i arch/x86/kernel/smpboot.c
> > 
> > which does not fix xen kernel, but does everything else the patch
> > does.
> > 
> > Pierre
> > 
> > [1] end of a long thread on lkml: 
> > https://lore.kernel.org/lkml/158798746828.28353.6010675315553653459.tip-bot2@tip-bot2/
> > 
> Sorry for not responding in time.
> 
> I just compiled linux-5.6.13 first without the modifications and i
> failed to boot with exactly the same kernel-panic.
> 
> According to a patch which can be found on lkml, i modified the
> sources by applying
> 
> ====
> diff -Naur linux-5.6.13.orig/arch/x86/kernel/smpboot.c linux-
> 5.6.13/arch/x86/kernel/smpboot.c
> --- linux-5.6.13.orig/arch/x86/kernel/smpboot.c       2020-03-30
> 00:25:41.000000000 +0200
> +++ linux-5.6.13/arch/x86/kernel/smpboot.c    2020-05-19
> 14:00:42.250125049 +0200
> @@ -262,6 +262,7 @@
>  
>       wmb();
>       cpu_startup_entry(CPUHP_AP_ONLINE_IDLE);
> +     asm("");  // disable tail-call optimization
>  }
>  
>  /**
> diff -Naur linux-5.6.13.orig/arch/x86/xen/smp_pv.c linux-
> 5.6.13/arch/x86/xen/smp_pv.c
> --- linux-5.6.13.orig/arch/x86/xen/smp_pv.c   2020-03-30
> 00:25:41.000000000 +0200
> +++ linux-5.6.13/arch/x86/xen/smp_pv.c        2020-05-19
> 14:01:41.717566594
> +0200
> @@ -92,6 +92,7 @@
>       cpu_bringup();
>       boot_init_stack_canary();
>       cpu_startup_entry(CPUHP_AP_ONLINE_IDLE);
> +     asm("");  // disable tail-call optimization
>  }
>  
>  void xen_smp_intr_free_pv(unsigned int cpu)
> ====
> 
> And with this, machine boots. Btw, i have
> CONFIG_STACKPROTECTOR_STRONG=y
> 
> I'd vote for applying the patch (or a sed) rather than unsetting
> CONFIG_STACKPROTECTOR_STRONG as at least the name of this option
> sounds like it has to do with security. Switching off security i
> think
> is the second best. But i also have to admit that i haven't read the
> documentation about those options, yet.
> 

Done (with a sed) at r11852.

Pierre

-- 
http://lists.linuxfromscratch.org/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to