aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/kernel/panic.c
diff options
context:
space:
mode:
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>2015-12-04 14:01:02 +0100
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2015-12-04 14:01:02 +0100
commitc09c9dd2e9c732658c744a802101d5c34fedde22 (patch)
tree89f930ede811e66e7a70761aaca079d779fed38a /kernel/panic.c
parentx86/PCI/ACPI: Fix regression caused by commit 4d6b4e69a245 (diff)
parentPCI / PM: Tune down retryable runtime suspend error messages (diff)
downloadwireguard-linux-c09c9dd2e9c732658c744a802101d5c34fedde22.tar.xz
wireguard-linux-c09c9dd2e9c732658c744a802101d5c34fedde22.zip
Merge branches 'acpi-pci' and 'pm-pci'
* acpi-pci: x86/PCI/ACPI: Fix regression caused by commit 4d6b4e69a245 * pm-pci: PCI / PM: Tune down retryable runtime suspend error messages
Diffstat (limited to 'kernel/panic.c')
-rw-r--r--kernel/panic.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/kernel/panic.c b/kernel/panic.c
index 04e91ff7560b..4b150bc0c6c1 100644
--- a/kernel/panic.c
+++ b/kernel/panic.c
@@ -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,18 @@ 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. Locks debug
+ * should be disabled to avoid reporting bad unlock balance when
+ * panic() is not being callled from OOPS.
+ */
+ debug_locks_off();
+ console_trylock();
+ console_unlock();
+
if (!panic_blink)
panic_blink = no_blink;