diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-04-13 11:30:26 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-04-13 11:30:26 -0700 |
commit | bf20753c0cdf842c5c65af688c2cefd1eafa7630 (patch) | |
tree | 8431fb73349b928d93ce02e24c1c993562fa1f95 /kernel | |
parent | 01599fca6758d2cd133e78f87426fc851c9ea725 (diff) | |
parent | 574bbe782057fdf0490dc7dec906a2dc26363e20 (diff) |
Merge branch 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
lockdep: continue lock debugging despite some taints
lockdep: warn about lockdep disabling after kernel taint
Diffstat (limited to 'kernel')
-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); |