linux/lib/bust_spinlocks.c
<<
>>
Prefs
   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
  20void bust_spinlocks(int yes)
  21{
  22        if (yes) {
  23                ++oops_in_progress;
  24        } else {
  25#ifdef CONFIG_VT
  26                unblank_screen();
  27#endif
  28                console_unblank();
  29                if (--oops_in_progress == 0)
  30                        wake_up_klogd();
  31        }
  32}
  33