]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - kernel/panic.c
futex: Replace PF_EXITPIDONE with a state
[linux.git] / kernel / panic.c
index 1d89f54234261657fe63875d6f602c9975cae7cb..f470a038b05bd1111bc3e0dd2195d6b15e823d14 100644 (file)
@@ -180,6 +180,7 @@ void panic(const char *fmt, ...)
         * after setting panic_cpu) from invoking panic() again.
         */
        local_irq_disable();
+       preempt_disable_notrace();
 
        /*
         * It's possible to come here directly from a panic-assertion and
@@ -559,9 +560,6 @@ void __warn(const char *file, int line, void *caller, unsigned taint,
 {
        disable_trace_on_warning();
 
-       if (args)
-               pr_warn(CUT_HERE);
-
        if (file)
                pr_warn("WARNING: CPU: %d PID: %d at %s:%d %pS\n",
                        raw_smp_processor_id(), current->pid, file, line,
@@ -599,25 +597,26 @@ void __warn(const char *file, int line, void *caller, unsigned taint,
        add_taint(taint, LOCKDEP_STILL_OK);
 }
 
-#ifdef WANT_WARN_ON_SLOWPATH
+#ifndef __WARN_FLAGS
 void warn_slowpath_fmt(const char *file, int line, unsigned taint,
                       const char *fmt, ...)
 {
        struct warn_args args;
 
+       pr_warn(CUT_HERE);
+
+       if (!fmt) {
+               __warn(file, line, __builtin_return_address(0), taint,
+                      NULL, NULL);
+               return;
+       }
+
        args.fmt = fmt;
        va_start(args.args, fmt);
        __warn(file, line, __builtin_return_address(0), taint, NULL, &args);
        va_end(args.args);
 }
 EXPORT_SYMBOL(warn_slowpath_fmt);
-
-void warn_slowpath_null(const char *file, int line)
-{
-       pr_warn(CUT_HERE);
-       __warn(file, line, __builtin_return_address(0), TAINT_WARN, NULL, NULL);
-}
-EXPORT_SYMBOL(warn_slowpath_null);
 #else
 void __warn_printk(const char *fmt, ...)
 {