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