int vxlan_vnigroup_init(struct vxlan_dev *vxlan);
 void vxlan_vnigroup_uninit(struct vxlan_dev *vxlan);
 
-void vxlan_vnifilter_init(void);
+int vxlan_vnifilter_init(void);
 void vxlan_vnifilter_uninit(void);
 void vxlan_vnifilter_count(struct vxlan_dev *vxlan, __be32 vni,
                           struct vxlan_vni_node *vninode,
 
        return err;
 }
 
-void vxlan_vnifilter_init(void)
+static const struct rtnl_msg_handler vxlan_vnifilter_rtnl_msg_handlers[] = {
+       {THIS_MODULE, PF_BRIDGE, RTM_GETTUNNEL, NULL, vxlan_vnifilter_dump, 0},
+       {THIS_MODULE, PF_BRIDGE, RTM_NEWTUNNEL, vxlan_vnifilter_process, NULL, 0},
+       {THIS_MODULE, PF_BRIDGE, RTM_DELTUNNEL, vxlan_vnifilter_process, NULL, 0},
+};
+
+int vxlan_vnifilter_init(void)
 {
-       rtnl_register_module(THIS_MODULE, PF_BRIDGE, RTM_GETTUNNEL, NULL,
-                            vxlan_vnifilter_dump, 0);
-       rtnl_register_module(THIS_MODULE, PF_BRIDGE, RTM_NEWTUNNEL,
-                            vxlan_vnifilter_process, NULL, 0);
-       rtnl_register_module(THIS_MODULE, PF_BRIDGE, RTM_DELTUNNEL,
-                            vxlan_vnifilter_process, NULL, 0);
+       return rtnl_register_many(vxlan_vnifilter_rtnl_msg_handlers);
 }
 
 void vxlan_vnifilter_uninit(void)
 {
-       rtnl_unregister(PF_BRIDGE, RTM_GETTUNNEL);
-       rtnl_unregister(PF_BRIDGE, RTM_NEWTUNNEL);
-       rtnl_unregister(PF_BRIDGE, RTM_DELTUNNEL);
+       rtnl_unregister_many(vxlan_vnifilter_rtnl_msg_handlers);
 }