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