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/spinlock.h>
  12#include <linux/tty.h>
  13#include <linux/wait.h>
  14#include <linux/vt_kern.h>
  15#include <linux/console.h>
  16
  17
  18void __attribute__((weak)) bust_spinlocks(int yes)
  19{
  20        if (yes) {
  21                ++oops_in_progress;
  22        } else {
  23#ifdef CONFIG_VT
  24                unblank_screen();
  25#endif
  26                console_unblank();
  27                if (--oops_in_progress == 0)
  28                        wake_up_klogd();
  29        }
  30}
  31
  32
  33