On Fri, 14 Sep 2018 08:06:17 +0100 Sergei Trofimovich <slyfox@xxxxxxxxxx> wrote: > SCHED_STACK_END_CHECK assumes stack grows in one direction. > ia64 is a rare case where it is not. > > As a result kernel fails at startup as: > Kernel panic - not syncing: corrupted stack end detected inside scheduler > > The error does not find a real problem: it's register backing store > is written on top of canary value. > > Disable SCHED_STACK_END_CHECK on ia64 as there is no good > place for canary without moving initial stack address. > > CC: Tony Luck <tony.luck@xxxxxxxxx> > CC: Fenghua Yu <fenghua.yu@xxxxxxxxx> > CC: linux-ia64@xxxxxxxxxxxxxxx > CC: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> > CC: linux-kernel@xxxxxxxxxxxxxxx > Signed-off-by: Sergei Trofimovich <slyfox@xxxxxxxxxx> > --- > lib/Kconfig.debug | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug > index 4966c4fbe7f7..a097dfe38d2b 100644 > --- a/lib/Kconfig.debug > +++ b/lib/Kconfig.debug > @@ -1004,7 +1004,7 @@ config SCHEDSTATS > > config SCHED_STACK_END_CHECK > bool "Detect stack corruption on calls to schedule()" > - depends on DEBUG_KERNEL > + depends on DEBUG_KERNEL && !IA64 > default n > help > This option checks for a stack overrun on calls to schedule(). > -- > 2.19.0 > Ping. -- Sergei
![]() |