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);
--
next prev 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