Blame view
lib/bust_spinlocks.c
696 Bytes
b24413180
|
1 |
// SPDX-License-Identifier: GPL-2.0 |
1da177e4c
|
2 3 4 5 6 7 8 9 |
/* * lib/bust_spinlocks.c * * Provides a minimal bust_spinlocks for architectures which don't have one of their own. * * bust_spinlocks() clears any spinlocks which would prevent oops, die(), BUG() * and panic() information from reaching the user. */ |
1da177e4c
|
10 |
#include <linux/kernel.h> |
dc72c32e1
|
11 |
#include <linux/printk.h> |
1da177e4c
|
12 13 14 15 |
#include <linux/spinlock.h> #include <linux/tty.h> #include <linux/wait.h> #include <linux/vt_kern.h> |
b61312d35
|
16 |
#include <linux/console.h> |
1da177e4c
|
17 |
|
cefc8be82
|
18 |
void __attribute__((weak)) bust_spinlocks(int yes) |
1da177e4c
|
19 20 |
{ if (yes) { |
004429956
|
21 |
++oops_in_progress; |
1da177e4c
|
22 |
} else { |
1da177e4c
|
23 24 25 |
#ifdef CONFIG_VT unblank_screen(); #endif |
b61312d35
|
26 |
console_unblank(); |
004429956
|
27 28 |
if (--oops_in_progress == 0) wake_up_klogd(); |
1da177e4c
|
29 30 |
} } |