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