[PATCH] ia64: disable SCHED_STACK_END_CHECK

From: Sergei Trofimovich
Date: Fri Sep 14 2018 - 03:06:33 EST


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