void br_vlan_port_event(struct net_bridge_port *p, unsigned long event);
 int br_vlan_bridge_event(struct net_device *dev, unsigned long event,
                         void *ptr);
-void br_vlan_rtnl_init(void);
+int br_vlan_rtnl_init(void);
 void br_vlan_rtnl_uninit(void);
 void br_vlan_notify(const struct net_bridge *br,
                    const struct net_bridge_port *p,
        return 0;
 }
 
-static inline void br_vlan_rtnl_init(void)
+static inline int br_vlan_rtnl_init(void)
 {
+       return 0;
 }
 
 static inline void br_vlan_rtnl_uninit(void)
 
        return err;
 }
 
-void br_vlan_rtnl_init(void)
+static const struct rtnl_msg_handler br_vlan_rtnl_msg_handlers[] = {
+       {THIS_MODULE, PF_BRIDGE, RTM_NEWVLAN, br_vlan_rtm_process, NULL, 0},
+       {THIS_MODULE, PF_BRIDGE, RTM_DELVLAN, br_vlan_rtm_process, NULL, 0},
+       {THIS_MODULE, PF_BRIDGE, RTM_GETVLAN, NULL, br_vlan_rtm_dump, 0},
+};
+
+int br_vlan_rtnl_init(void)
 {
-       rtnl_register_module(THIS_MODULE, PF_BRIDGE, RTM_GETVLAN, NULL,
-                            br_vlan_rtm_dump, 0);
-       rtnl_register_module(THIS_MODULE, PF_BRIDGE, RTM_NEWVLAN,
-                            br_vlan_rtm_process, NULL, 0);
-       rtnl_register_module(THIS_MODULE, PF_BRIDGE, RTM_DELVLAN,
-                            br_vlan_rtm_process, NULL, 0);
+       return rtnl_register_many(br_vlan_rtnl_msg_handlers);
 }
 
 void br_vlan_rtnl_uninit(void)
 {
-       rtnl_unregister(PF_BRIDGE, RTM_GETVLAN);
-       rtnl_unregister(PF_BRIDGE, RTM_NEWVLAN);
-       rtnl_unregister(PF_BRIDGE, RTM_DELVLAN);
+       rtnl_unregister_many(br_vlan_rtnl_msg_handlers);
 }