Netdev List
 help / color / mirror / Atom feed
From: Thomas Graf <tgraf@suug.ch>
To: davem@davemloft.net
Cc: netdev@vger.kernel.org, Thomas Graf <tgraf@suug.ch>
Subject: [PATCH 11/12] [BRIDGE]: Use rtnl registration interface
Date: Thu, 22 Mar 2007 14:00:06 +0100	[thread overview]
Message-ID: <20070322130058.635523370@lsx.localdomain> (raw)
In-Reply-To: 20070322125955.055083236@lsx.localdomain

[-- Attachment #1: rtnl_reg_bridge_convert --]
[-- Type: text/plain, Size: 2490 bytes --]

Signed-off-by: Thomas Graf <tgraf@suug.ch>

Index: net-2.6.22/net/bridge/br.c
===================================================================
--- net-2.6.22.orig/net/bridge/br.c	2007-03-22 13:23:11.000000000 +0100
+++ net-2.6.22/net/bridge/br.c	2007-03-22 13:24:03.000000000 +0100
@@ -47,7 +47,10 @@ static int __init br_init(void)
 	if (err)
 		goto err_out2;
 
-	br_netlink_init();
+	err = br_netlink_init();
+	if (err)
+		goto err_out3;
+
 	brioctl_set(br_ioctl_deviceless_stub);
 	br_handle_frame_hook = br_handle_frame;
 
@@ -55,7 +58,8 @@ static int __init br_init(void)
 	br_fdb_put_hook = br_fdb_put;
 
 	return 0;
-
+err_out3:
+	unregister_netdevice_notifier(&br_device_notifier);
 err_out2:
 	br_netfilter_fini();
 err_out1:
Index: net-2.6.22/net/bridge/br_netlink.c
===================================================================
--- net-2.6.22.orig/net/bridge/br_netlink.c	2007-03-22 13:23:11.000000000 +0100
+++ net-2.6.22/net/bridge/br_netlink.c	2007-03-22 13:24:03.000000000 +0100
@@ -11,8 +11,7 @@
  */
 
 #include <linux/kernel.h>
-#include <linux/rtnetlink.h>
-#include <net/netlink.h>
+#include <net/rtnetlink.h>
 #include "br_private.h"
 
 static inline size_t br_nlmsg_size(void)
@@ -179,18 +178,19 @@ static int br_rtm_setlink(struct sk_buff
 }
 
 
-static struct rtnetlink_link bridge_rtnetlink_table[RTM_NR_MSGTYPES] = {
-	[RTM_GETLINK - RTM_BASE] = { .dumpit	= br_dump_ifinfo, },
-	[RTM_SETLINK - RTM_BASE] = { .doit      = br_rtm_setlink, },
-};
-
-void __init br_netlink_init(void)
+int __init br_netlink_init(void)
 {
-	rtnetlink_links[PF_BRIDGE] = bridge_rtnetlink_table;
+	if (__rtnl_register(PF_BRIDGE, RTM_GETLINK, NULL, br_dump_ifinfo))
+		return -ENOBUFS;
+
+	/* Only the first call to __rtnl_register can fail */
+	__rtnl_register(PF_BRIDGE, RTM_SETLINK, br_rtm_setlink, NULL);
+
+	return 0;
 }
 
 void __exit br_netlink_fini(void)
 {
-	rtnetlink_links[PF_BRIDGE] = NULL;
+	rtnl_unregister_all(PF_BRIDGE);
 }
 
Index: net-2.6.22/net/bridge/br_private.h
===================================================================
--- net-2.6.22.orig/net/bridge/br_private.h	2007-03-22 13:23:11.000000000 +0100
+++ net-2.6.22/net/bridge/br_private.h	2007-03-22 13:24:03.000000000 +0100
@@ -235,7 +235,7 @@ extern void (*br_fdb_put_hook)(struct ne
 
 
 /* br_netlink.c */
-extern void br_netlink_init(void);
+extern int br_netlink_init(void);
 extern void br_netlink_fini(void);
 extern void br_ifinfo_notify(int event, struct net_bridge_port *port);
 

--


  parent reply	other threads:[~2007-03-22 13:02 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-03-22 12:59 [PATCH 00/12] [RESEND] rtnetlink message handler registration interface Thomas Graf
2007-03-22 12:59 ` [PATCH 01/12] [RTNL]: Message " Thomas Graf
2007-03-22 12:59 ` [PATCH 02/12] [NET] link: Use rtnl " Thomas Graf
2007-03-22 12:59 ` [PATCH 03/12] [NEIGH]: " Thomas Graf
2007-03-22 12:59 ` [PATCH 04/12] [NET] rules: " Thomas Graf
2007-03-22 13:00 ` [PATCH 05/12] [IPv4]: " Thomas Graf
2007-03-22 13:00 ` [PATCH 06/12] [PKT_SCHED] qdisc: " Thomas Graf
2007-03-22 13:00 ` [PATCH 07/12] [PKT_SCHED] cls: " Thomas Graf
2007-03-22 13:00 ` [PATCH 08/12] [PKT_SCHED] act: " Thomas Graf
2007-03-22 13:00 ` [PATCH 09/12] [DECNet]: " Thomas Graf
2007-03-22 13:07   ` Steven Whitehouse
2007-03-22 19:06     ` David Miller
2007-03-22 13:00 ` [PATCH 10/12] [IPv6]: " Thomas Graf
2007-03-22 13:00 ` Thomas Graf [this message]
2007-03-22 13:00 ` [PATCH 12/12] [RTNL]: Use rtnl registration interface for dump-all aliases Thomas Graf
2007-03-22 19:06 ` [PATCH 00/12] [RESEND] rtnetlink message handler registration interface David Miller
2007-03-22 21:27   ` Recent net-2.6.22 patches break bootup! Stephen Hemminger
2007-03-22 23:47     ` Thomas Graf
2007-03-23  4:41       ` David Miller
2007-03-23 18:07         ` Stephen Hemminger
  -- strict thread matches above, loose matches on Subject: below --
2007-03-21  0:05 [PATCH 00/12] [PATCHSET] RTNetlink message handler registration interface Thomas Graf
2007-03-21  0:06 ` [PATCH 11/12] [BRIDGE]: Use rtnl " Thomas Graf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070322130058.635523370@lsx.localdomain \
    --to=tgraf@suug.ch \
    --cc=davem@davemloft.net \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox