Blame view

lib/bust_spinlocks.c 636 Bytes
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
1
2
3
4
5
6
7
8
  /*
   * lib/bust_spinlocks.c
   *
   * Provides a minimal bust_spinlocks for architectures which don't have one of their own.
   *
   * bust_spinlocks() clears any spinlocks which would prevent oops, die(), BUG()
   * and panic() information from reaching the user.
   */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
9
10
11
12
13
  #include <linux/kernel.h>
  #include <linux/spinlock.h>
  #include <linux/tty.h>
  #include <linux/wait.h>
  #include <linux/vt_kern.h>
b61312d35   Viktor Rosendahl   oops handling: en...
14
  #include <linux/console.h>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
15

cefc8be82   Kirill Korotaev   [PATCH] Consolida...
16
  void __attribute__((weak)) bust_spinlocks(int yes)
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
17
18
  {
  	if (yes) {
004429956   Jan Beulich   handle recursive ...
19
  		++oops_in_progress;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
20
  	} else {
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
21
22
23
  #ifdef CONFIG_VT
  		unblank_screen();
  #endif
b61312d35   Viktor Rosendahl   oops handling: en...
24
  		console_unblank();
004429956   Jan Beulich   handle recursive ...
25
26
  		if (--oops_in_progress == 0)
  			wake_up_klogd();
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
27
28
  	}
  }