Thread (5 messages) 5 messages, 2 authors, 2011-09-10

Re: [PATCH -next] drivers/net: Makefile, fix netconsole link order

flat view

From: Lin Ming <hidden>
Date: 2011-09-10 04:29:04
Also in: lkml

On Sat, 2011-09-10 at 12:10 +0800, Andrew Morton wrote:
On Sat, 10 Sep 2011 10:43:32 +0800 Lin Ming [off-list ref] wrote:
quoted
On Sat, 2011-09-10 at 08:00 +0800, Andrew Morton wrote:
quoted
quoted
+obj-$(CONFIG_NETCONSOLE) += netconsole.o
It would be preferable to fix this with initcall ordering.  Perhaps by
switching init_netconsole() to subsys_initcall.
subsys_initcall is defined as __define_initcall("4",fn,4).
In !MODULE case, device driver module_int() is defined as
__define_initcall("6",fn,6)
oop, yes, I am chronologically challenged.
quoted
If we use subsys_initcall for init_netconsole, it will still be called
before network device driver is initialized.

How about late_initcall?

(Not tested yet)
quoted
From 11f4f035e96ff430192d0a75552dd715acb5f3b8 Mon Sep 17 00:00:00 2001
From: Lin Ming <redacted>
Date: Sat, 10 Sep 2011 10:36:10 +0800
Subject: [PATCH] drivers/net: Makefile, fix netconsole link order

Commit 88491d8(drivers/net: Kconfig & Makefile cleanup) causes a
regression that netconsole does not work if netconsole and network
device driver are build into kernel, because netconsole is linked before
network device driver.

Fixes it by switching init_netconsole() to late_initcall if it's
build-in.

Signed-off-by: Lin Ming <redacted>
---
 drivers/net/netconsole.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c
index dfc8272..914be29 100644
--- a/drivers/net/netconsole.c
+++ b/drivers/net/netconsole.c
@@ -799,5 +799,9 @@ static void __exit cleanup_netconsole(void)
 	}
 }
 
+#ifdef MODULE
 module_init(init_netconsole);
 module_exit(cleanup_netconsole);
+#else
+late_initcall(init_netconsole);
+#endif /* !MODULE */
That should work, unless any net driver is weirdly also using
late_initcall.  But if there are such drivers, they would have failed
with the old Makefile ordering.
Yes.

BTW, may I get your ACK after testing this patch?

Thanks.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help