All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] init - dont loose initcall code returned
@ 2008-04-24 18:21 Cyrill Gorcunov
  0 siblings, 0 replies; only message in thread
From: Cyrill Gorcunov @ 2008-04-24 18:21 UTC (permalink / raw)
  To: Ingo Molnar, Andrew Morton, H. Peter Anvin; +Cc: LKML

There is an ability to loose initcall returned code if it happened
with irq disabled or imbalanced preemption (and if we debug initcall)

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
---

Please review carefully - *ANY* comments are welcome!


Index: linux-2.6.git/init/main.c
===================================================================
--- linux-2.6.git.orig/init/main.c	2008-04-24 12:30:17.000000000 +0400
+++ linux-2.6.git/init/main.c	2008-04-24 22:13:22.000000000 +0400
@@ -698,7 +698,6 @@ static void __init do_initcalls(void)
 
 	for (call = __initcall_start; call < __initcall_end; call++) {
 		ktime_t t0, t1, delta;
-		char *msg = NULL;
 		char msgbuf[40];
 		int result;
 
@@ -727,23 +726,22 @@ static void __init do_initcalls(void)
 				(unsigned long) *call);
 		}
 
-		if (result && result != -ENODEV && initcall_debug) {
-			sprintf(msgbuf, "error code %d", result);
-			msg = msgbuf;
-		}
+		msgbuf[0] = 0;
+		if (result && result != -ENODEV && initcall_debug)
+			sprintf(msgbuf, "error code %d ", result);
 		if (preempt_count() != count) {
-			msg = "preemption imbalance";
+			strncat(msgbuf, "preemption imbalance", sizeof(msgbuf));
 			preempt_count() = count;
 		}
 		if (irqs_disabled()) {
-			msg = "disabled interrupts";
+			strncat(msgbuf, "disabled interrupts", sizeof(msgbuf));
 			local_irq_enable();
 		}
-		if (msg) {
+		if (msgbuf[0]) {
 			printk(KERN_WARNING "initcall at 0x%p", *call);
 			print_fn_descriptor_symbol(": %s()",
 					(unsigned long) *call);
-			printk(": returned with %s\n", msg);
+			printk(": returned with %s\n", msgbuf);
 		}
 	}
 

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2008-04-24 18:21 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-04-24 18:21 [PATCH] init - dont loose initcall code returned Cyrill Gorcunov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.