diff options
Diffstat (limited to 'kernel/panic.c')
| -rw-r--r-- | kernel/panic.c | 12 | 
1 files changed, 10 insertions, 2 deletions
diff --git a/kernel/panic.c b/kernel/panic.c index 3fd8c5bf8b3..934fb377f4b 100644 --- a/kernel/panic.c +++ b/kernel/panic.c @@ -213,8 +213,16 @@ unsigned long get_taint(void)  void add_taint(unsigned flag)  { -	/* can't trust the integrity of the kernel anymore: */ -	debug_locks = 0; +	/* +	 * Can't trust the integrity of the kernel anymore. +	 * We don't call directly debug_locks_off() because the issue +	 * is not necessarily serious enough to set oops_in_progress to 1 +	 * Also we want to keep up lockdep for staging development and +	 * post-warning case. +	 */ +	if (flag != TAINT_CRAP && flag != TAINT_WARN && __debug_locks_off()) +		printk(KERN_WARNING "Disabling lockdep due to kernel taint\n"); +  	set_bit(flag, &tainted_mask);  }  EXPORT_SYMBOL(add_taint);  | 
