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