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