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 : }
|