30 lines · c
1// SPDX-License-Identifier: GPL-2.02/*3 * lib/bust_spinlocks.c4 *5 * Provides a minimal bust_spinlocks for architectures which don't6 * 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 20void bust_spinlocks(int yes)21{22 if (yes) {23 ++oops_in_progress;24 } else {25 console_unblank();26 if (--oops_in_progress == 0)27 wake_up_klogd();28 }29}30