X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=kernel%2Fpanic.c;h=934fb377f4b328a4821e56a23051ca330647e74e;hb=035f5afb022451b6b4f7ca1ff65a43d7ea8154a1;hp=3fd8c5bf8b394dd94fee9ce22fa8c20135c76c4f;hpb=c7edad5fcb86c4398f9ab2ccea82ddcc067b88af;p=karo-tx-linux.git diff --git a/kernel/panic.c b/kernel/panic.c index 3fd8c5bf8b39..934fb377f4b3 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);