]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - kernel/panic.c
fs/reiserfs/namei.c: remove unnecessary new_valid_dev() check
[karo-tx-linux.git] / kernel / panic.c
index 04e91ff7560b3a35445f006a5be6e1d786bde245..4579dbb7ed872a7e1c119fdbbf98d9dc8cd67a87 100644 (file)
@@ -23,6 +23,7 @@
 #include <linux/sysrq.h>
 #include <linux/init.h>
 #include <linux/nmi.h>
+#include <linux/console.h>
 
 #define PANIC_TIMER_STEP 100
 #define PANIC_BLINK_SPD 18
@@ -147,6 +148,15 @@ void panic(const char *fmt, ...)
 
        bust_spinlocks(0);
 
+       /*
+        * We may have ended up stopping the CPU holding the lock (in
+        * smp_send_stop()) while still having some valuable data in the console
+        * buffer.  Try to acquire the lock then release it regardless of the
+        * result.  The release will also print the buffers out.
+        */
+       console_trylock();
+       console_unlock();
+
        if (!panic_blink)
                panic_blink = no_blink;