|
@@ -131,6 +131,21 @@ cflags-$(CONFIG_CPU_LITTLE_ENDIAN) += $(shell $(CC) -dumpmachine |grep -q 'mips.
|
|
|
|
|
|
cflags-$(CONFIG_SB1XXX_CORELIS) += $(call cc-option,-mno-sched-prolog) \
|
|
|
-fno-omit-frame-pointer
|
|
|
+
|
|
|
+# Some distribution-specific toolchains might pass the -fstack-check
|
|
|
+# option during the build, which adds a simple stack-probe at the beginning
|
|
|
+# of every function. This stack probe is to ensure that there is enough
|
|
|
+# stack space, else a SEGV is generated. This is not desirable for MIPS
|
|
|
+# as kernel stacks are small, placed in unmapped virtual memory, and do not
|
|
|
+# grow when overflowed. Especially on SGI IP27 platforms, this check will
|
|
|
+# lead to a NULL pointer dereference in _raw_spin_lock_irq.
|
|
|
+#
|
|
|
+# In disassembly, this stack probe appears at the top of a function as:
|
|
|
+# sd zero,<offset>(sp)
|
|
|
+# Where <offset> is a negative value.
|
|
|
+#
|
|
|
+cflags-y += -fno-stack-check
|
|
|
+
|
|
|
#
|
|
|
# CPU-dependent compiler/assembler options for optimization.
|
|
|
#
|