[PATCH] lockdep: misc fixes in lockdep.c
[sfrench/cifs-2.6.git] / kernel / panic.c
index d8a0bca21233e12d413fa9ab60c436b9b36e0db7..525e365f72390bb3fb4601c0be4c4bd81214eceb 100644 (file)
@@ -18,6 +18,7 @@
 #include <linux/interrupt.h>
 #include <linux/nmi.h>
 #include <linux/kexec.h>
+#include <linux/debug_locks.h>
 
 int panic_on_oops;
 int tainted;
@@ -172,7 +173,7 @@ const char *print_tainted(void)
 
 void add_taint(unsigned flag)
 {
-       debug_locks_off(); /* can't trust the integrity of the kernel anymore */
+       debug_locks = 0; /* can't trust the integrity of the kernel anymore */
        tainted |= flag;
 }
 EXPORT_SYMBOL(add_taint);
@@ -269,3 +270,15 @@ void oops_exit(void)
 {
        do_oops_enter_exit();
 }
+
+#ifdef CONFIG_CC_STACKPROTECTOR
+/*
+ * Called when gcc's -fstack-protector feature is used, and
+ * gcc detects corruption of the on-stack canary value
+ */
+void __stack_chk_fail(void)
+{
+       panic("stack-protector: Kernel stack is corrupted");
+}
+EXPORT_SYMBOL(__stack_chk_fail);
+#endif