Blame view

lib/bust_spinlocks.c 696 Bytes
b24413180   Greg Kroah-Hartman   License cleanup: ...
1
  // SPDX-License-Identifier: GPL-2.0
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
2
3
4
5
6
7
8
9
  /*
   * 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
10
  #include <linux/kernel.h>
dc72c32e1   Frederic Weisbecker   printk: Provide a...
11
  #include <linux/printk.h>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
12
13
14
15
  #include <linux/spinlock.h>
  #include <linux/tty.h>
  #include <linux/wait.h>
  #include <linux/vt_kern.h>
b61312d35   Viktor Rosendahl   oops handling: en...
16
  #include <linux/console.h>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
17

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