init: Do not warn on non-zero initcall return
Steven Rostedt [Wed, 1 May 2013 17:35:51 +0000 (13:35 -0400)]
Commit f91eb62f71b3 ("init: scream bloody murder if interrupts are
enabled too early") added three new warnings.  The first two seemed
reasonable, but the third included a warning when an initcall returned
non-zero.  Although, the third WARN() does include an imbalanced preempt
disabled, or irqs disable, it shouldn't warn if it only had an initcall
that just returns non-zero.

In fact, according to Linus, it shouldn't print at all.  As it only
prints with initcall_debug set, and that already shows enough
information to fix things.

Link: http://lkml.kernel.org/r/CA+55aFzaBC5SFi7=F2mfm+KWY5qTsBmOqgbbs8E+LUS8JK-sBg@mail.gmail.com

Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Reported-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

init/main.c

index bea1287..ceed17a 100644 (file)
@@ -686,11 +686,8 @@ int __init_or_module do_one_initcall(initcall_t fn)
 
        msgbuf[0] = 0;
 
-       if (ret && ret != -ENODEV && initcall_debug)
-               sprintf(msgbuf, "error code %d ", ret);
-
        if (preempt_count() != count) {
-               strlcat(msgbuf, "preemption imbalance ", sizeof(msgbuf));
+               sprintf(msgbuf, "preemption imbalance ");
                preempt_count() = count;
        }
        if (irqs_disabled()) {