linux-bk/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/config.h>
  11#include <linux/kernel.h>
  12#include <linux/spinlock.h>
  13#include <linux/tty.h>
  14#include <linux/wait.h>
  15#include <linux/vt_kern.h>
  16
  17
  18void bust_spinlocks(int yes)
  19{
  20        if (yes) {
  21                oops_in_progress = 1;
  22        } else {
  23                int loglevel_save = console_loglevel;
  24#ifdef CONFIG_VT
  25                unblank_screen();
  26#endif
  27                oops_in_progress = 0;
  28                /*
  29                 * OK, the message is on the console.  Now we call printk()
  30                 * without oops_in_progress set so that printk() will give klogd
  31                 * and the blanked console a poke.  Hold onto your hats...
  32                 */
  33                console_loglevel = 15;          /* NMI oopser may have shut the console up */
  34                printk(" ");
  35                console_loglevel = loglevel_save;
  36        }
  37}
  38
  39
  40
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.