]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - net/decnet/dn_dev.c
[DECNet]: Use rtnl registration interface
[net-next-2.6.git] / net / decnet / dn_dev.c
index 2b2c7fe45a719e96e52f1c1746e067b12a822326..61be2caddc576936585ab35030397f268b704280 100644 (file)
@@ -261,7 +261,6 @@ static void dn_dev_sysctl_register(struct net_device *dev, struct dn_dev_parms *
        for(i = 0; i < ARRAY_SIZE(t->dn_dev_vars) - 1; i++) {
                long offset = (long)t->dn_dev_vars[i].data;
                t->dn_dev_vars[i].data = ((char *)parms) + offset;
-               t->dn_dev_vars[i].de = NULL;
        }
 
        if (dev) {
@@ -273,16 +272,12 @@ static void dn_dev_sysctl_register(struct net_device *dev, struct dn_dev_parms *
        }
 
        t->dn_dev_dev[0].child = t->dn_dev_vars;
-       t->dn_dev_dev[0].de = NULL;
        t->dn_dev_conf_dir[0].child = t->dn_dev_dev;
-       t->dn_dev_conf_dir[0].de = NULL;
        t->dn_dev_proto_dir[0].child = t->dn_dev_conf_dir;
-       t->dn_dev_proto_dir[0].de = NULL;
        t->dn_dev_root_dir[0].child = t->dn_dev_proto_dir;
-       t->dn_dev_root_dir[0].de = NULL;
        t->dn_dev_vars[0].extra1 = (void *)dev;
 
-       t->sysctl_header = register_sysctl_table(t->dn_dev_root_dir, 0);
+       t->sysctl_header = register_sysctl_table(t->dn_dev_root_dir);
        if (t->sysctl_header == NULL)
                kfree(t);
        else
@@ -918,7 +913,7 @@ static void dn_send_endnode_hello(struct net_device *dev, struct dn_ifaddr *ifa)
        pktlen = (__le16 *)skb_push(skb,2);
        *pktlen = dn_htons(skb->len - 2);
 
-       skb->nh.raw = skb->data;
+       skb_reset_network_header(skb);
 
        dn_rt_finish_output(skb, dn_rt_all_rt_mcast, msg->id);
 }
@@ -1010,7 +1005,7 @@ static void dn_send_router_hello(struct net_device *dev, struct dn_ifaddr *ifa)
        pktlen = (__le16 *)skb_push(skb, 2);
        *pktlen = dn_htons(skb->len - 2);
 
-       skb->nh.raw = skb->data;
+       skb_reset_network_header(skb);
 
        if (dn_am_i_a_router(dn, dn_db, ifa)) {
                struct sk_buff *skb2 = skb_copy(skb, GFP_ATOMIC);
@@ -1452,24 +1447,6 @@ static const struct file_operations dn_dev_seq_fops = {
 
 #endif /* CONFIG_PROC_FS */
 
-static struct rtnetlink_link dnet_rtnetlink_table[RTM_NR_MSGTYPES] =
-{
-       [RTM_NEWADDR  - RTM_BASE] = { .doit     = dn_nl_newaddr,        },
-       [RTM_DELADDR  - RTM_BASE] = { .doit     = dn_nl_deladdr,        },
-       [RTM_GETADDR  - RTM_BASE] = { .dumpit   = dn_nl_dump_ifaddr,    },
-#ifdef CONFIG_DECNET_ROUTER
-       [RTM_NEWROUTE - RTM_BASE] = { .doit     = dn_fib_rtm_newroute,  },
-       [RTM_DELROUTE - RTM_BASE] = { .doit     = dn_fib_rtm_delroute,  },
-       [RTM_GETROUTE - RTM_BASE] = { .doit     = dn_cache_getroute,
-                                     .dumpit   = dn_fib_dump,          },
-       [RTM_GETRULE  - RTM_BASE] = { .dumpit   = dn_fib_dump_rules,    },
-#else
-       [RTM_GETROUTE - RTM_BASE] = { .doit     = dn_cache_getroute,
-                                     .dumpit   = dn_cache_dump,        },
-#endif
-
-};
-
 static int __initdata addr[2];
 module_param_array(addr, int, NULL, 0444);
 MODULE_PARM_DESC(addr, "The DECnet address of this machine: area,node");
@@ -1490,7 +1467,9 @@ void __init dn_dev_init(void)
 
        dn_dev_devices_on();
 
-       rtnetlink_links[PF_DECnet] = dnet_rtnetlink_table;
+       rtnl_register(PF_DECnet, RTM_NEWADDR, dn_nl_newaddr, NULL);
+       rtnl_register(PF_DECnet, RTM_DELADDR, dn_nl_deladdr, NULL);
+       rtnl_register(PF_DECnet, RTM_GETADDR, NULL, dn_nl_dump_ifaddr);
 
        proc_net_fops_create("decnet_dev", S_IRUGO, &dn_dev_seq_fops);
 
@@ -1505,8 +1484,6 @@ void __init dn_dev_init(void)
 
 void __exit dn_dev_cleanup(void)
 {
-       rtnetlink_links[PF_DECnet] = NULL;
-
 #ifdef CONFIG_SYSCTL
        {
                int i;