diff mbox

[1/2] net: introduce NETDEV_PRE_INIT notifier

Message ID 1254075999.6583.4.camel@johannes.local
State Deferred, archived
Delegated to: David Miller
Headers show

Commit Message

Johannes Berg Sept. 27, 2009, 6:26 p.m. UTC
For various purposes including a wireless extensions
bugfix, we need to hook into the netdev creation at
a point before netdev_register_kobject(). It seems
more generic, however, to have it even earlier. This
will also ease doing the dev type assignment that
Marcel was working on generically.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
---
 include/linux/notifier.h |    1 +
 net/core/dev.c           |    5 +++++
 2 files changed, 6 insertions(+)



--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Marcel Holtmann Sept. 27, 2009, 8:11 p.m. UTC | #1
Hi Johannes,

> For various purposes including a wireless extensions
> bugfix, we need to hook into the netdev creation at
> a point before netdev_register_kobject(). It seems
> more generic, however, to have it even earlier. This
> will also ease doing the dev type assignment that
> Marcel was working on generically.

you are beating me to it. I can only second that this is a good idea for
the dev type assignment. Once Dave acks this I can sent a rebased patch
for the dev type stuff for WiFi.

Regards

Marcel


--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

--- wireless-testing.orig/include/linux/notifier.h	2009-09-27 15:09:10.000000000 +0200
+++ wireless-testing/include/linux/notifier.h	2009-09-27 15:10:19.000000000 +0200
@@ -199,6 +199,7 @@  static inline int notifier_to_errno(int 
 #define NETDEV_FEAT_CHANGE	0x000B
 #define NETDEV_BONDING_FAILOVER 0x000C
 #define NETDEV_PRE_UP		0x000D
+#define NETDEV_PRE_INIT		0x000E
 
 #define SYS_DOWN	0x0001	/* Notify of system down */
 #define SYS_RESTART	SYS_DOWN
--- wireless-testing.orig/net/core/dev.c	2009-09-27 15:09:56.000000000 +0200
+++ wireless-testing/net/core/dev.c	2009-09-27 15:11:40.000000000 +0200
@@ -4734,6 +4734,11 @@  int register_netdevice(struct net_device
 
 	dev->iflink = -1;
 
+	ret = call_netdevice_notifiers(NETDEV_PRE_INIT, dev);
+	ret = notifier_to_errno(ret);
+	if (ret)
+		goto out;
+
 	/* Init, if this function is available */
 	if (dev->netdev_ops->ndo_init) {
 		ret = dev->netdev_ops->ndo_init(dev);