diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-04-27 12:26:46 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-04-27 12:26:46 -0400 |
commit | 15c54033964a943de7b0763efd3bd0ede7326395 (patch) | |
tree | 840b292612d1b5396d5bab5bde537a9013db3ceb /net/decnet/dn_dev.c | |
parent | ad5da3cf39a5b11a198929be1f2644e17ecd767e (diff) | |
parent | 912a41a4ab935ce8c4308428ec13fc7f8b1f18f4 (diff) |
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (448 commits)
[IPV4] nl_fib_lookup: Initialise res.r before fib_res_put(&res)
[IPV6]: Fix thinko in ipv6_rthdr_rcv() changes.
[IPV4]: Add multipath cached to feature-removal-schedule.txt
[WIRELESS] cfg80211: Clarify locking comment.
[WIRELESS] cfg80211: Fix locking in wiphy_new.
[WEXT] net_device: Don't include wext bits if not required.
[WEXT]: Misc code cleanups.
[WEXT]: Reduce inline abuse.
[WEXT]: Move EXPORT_SYMBOL statements where they belong.
[WEXT]: Cleanup early ioctl call path.
[WEXT]: Remove options.
[WEXT]: Remove dead debug code.
[WEXT]: Clean up how wext is called.
[WEXT]: Move to net/wireless
[AFS]: Eliminate cmpxchg() usage in vlocation code.
[RXRPC]: Fix pointers passed to bitops.
[RXRPC]: Remove bogus atomic_* overrides.
[AFS]: Fix u64 printing in debug logging.
[AFS]: Add "directory write" support.
[AFS]: Implement the CB.InitCallBackState3 operation.
...
Diffstat (limited to 'net/decnet/dn_dev.c')
-rw-r--r-- | net/decnet/dn_dev.c | 31 |
1 files changed, 5 insertions, 26 deletions
diff --git a/net/decnet/dn_dev.c b/net/decnet/dn_dev.c index 060d725e2942..5c2a9951b638 100644 --- a/net/decnet/dn_dev.c +++ b/net/decnet/dn_dev.c | |||
@@ -799,7 +799,6 @@ static int dn_nl_dump_ifaddr(struct sk_buff *skb, struct netlink_callback *cb) | |||
799 | skip_ndevs = cb->args[0]; | 799 | skip_ndevs = cb->args[0]; |
800 | skip_naddr = cb->args[1]; | 800 | skip_naddr = cb->args[1]; |
801 | 801 | ||
802 | read_lock(&dev_base_lock); | ||
803 | for (dev = dev_base, idx = 0; dev; dev = dev->next, idx++) { | 802 | for (dev = dev_base, idx = 0; dev; dev = dev->next, idx++) { |
804 | if (idx < skip_ndevs) | 803 | if (idx < skip_ndevs) |
805 | continue; | 804 | continue; |
@@ -824,8 +823,6 @@ static int dn_nl_dump_ifaddr(struct sk_buff *skb, struct netlink_callback *cb) | |||
824 | } | 823 | } |
825 | } | 824 | } |
826 | done: | 825 | done: |
827 | read_unlock(&dev_base_lock); | ||
828 | |||
829 | cb->args[0] = idx; | 826 | cb->args[0] = idx; |
830 | cb->args[1] = dn_idx; | 827 | cb->args[1] = dn_idx; |
831 | 828 | ||
@@ -913,7 +910,7 @@ static void dn_send_endnode_hello(struct net_device *dev, struct dn_ifaddr *ifa) | |||
913 | pktlen = (__le16 *)skb_push(skb,2); | 910 | pktlen = (__le16 *)skb_push(skb,2); |
914 | *pktlen = dn_htons(skb->len - 2); | 911 | *pktlen = dn_htons(skb->len - 2); |
915 | 912 | ||
916 | skb->nh.raw = skb->data; | 913 | skb_reset_network_header(skb); |
917 | 914 | ||
918 | dn_rt_finish_output(skb, dn_rt_all_rt_mcast, msg->id); | 915 | dn_rt_finish_output(skb, dn_rt_all_rt_mcast, msg->id); |
919 | } | 916 | } |
@@ -1005,7 +1002,7 @@ static void dn_send_router_hello(struct net_device *dev, struct dn_ifaddr *ifa) | |||
1005 | pktlen = (__le16 *)skb_push(skb, 2); | 1002 | pktlen = (__le16 *)skb_push(skb, 2); |
1006 | *pktlen = dn_htons(skb->len - 2); | 1003 | *pktlen = dn_htons(skb->len - 2); |
1007 | 1004 | ||
1008 | skb->nh.raw = skb->data; | 1005 | skb_reset_network_header(skb); |
1009 | 1006 | ||
1010 | if (dn_am_i_a_router(dn, dn_db, ifa)) { | 1007 | if (dn_am_i_a_router(dn, dn_db, ifa)) { |
1011 | struct sk_buff *skb2 = skb_copy(skb, GFP_ATOMIC); | 1008 | struct sk_buff *skb2 = skb_copy(skb, GFP_ATOMIC); |
@@ -1447,24 +1444,6 @@ static const struct file_operations dn_dev_seq_fops = { | |||
1447 | 1444 | ||
1448 | #endif /* CONFIG_PROC_FS */ | 1445 | #endif /* CONFIG_PROC_FS */ |
1449 | 1446 | ||
1450 | static struct rtnetlink_link dnet_rtnetlink_table[RTM_NR_MSGTYPES] = | ||
1451 | { | ||
1452 | [RTM_NEWADDR - RTM_BASE] = { .doit = dn_nl_newaddr, }, | ||
1453 | [RTM_DELADDR - RTM_BASE] = { .doit = dn_nl_deladdr, }, | ||
1454 | [RTM_GETADDR - RTM_BASE] = { .dumpit = dn_nl_dump_ifaddr, }, | ||
1455 | #ifdef CONFIG_DECNET_ROUTER | ||
1456 | [RTM_NEWROUTE - RTM_BASE] = { .doit = dn_fib_rtm_newroute, }, | ||
1457 | [RTM_DELROUTE - RTM_BASE] = { .doit = dn_fib_rtm_delroute, }, | ||
1458 | [RTM_GETROUTE - RTM_BASE] = { .doit = dn_cache_getroute, | ||
1459 | .dumpit = dn_fib_dump, }, | ||
1460 | [RTM_GETRULE - RTM_BASE] = { .dumpit = dn_fib_dump_rules, }, | ||
1461 | #else | ||
1462 | [RTM_GETROUTE - RTM_BASE] = { .doit = dn_cache_getroute, | ||
1463 | .dumpit = dn_cache_dump, }, | ||
1464 | #endif | ||
1465 | |||
1466 | }; | ||
1467 | |||
1468 | static int __initdata addr[2]; | 1447 | static int __initdata addr[2]; |
1469 | module_param_array(addr, int, NULL, 0444); | 1448 | module_param_array(addr, int, NULL, 0444); |
1470 | MODULE_PARM_DESC(addr, "The DECnet address of this machine: area,node"); | 1449 | MODULE_PARM_DESC(addr, "The DECnet address of this machine: area,node"); |
@@ -1485,7 +1464,9 @@ void __init dn_dev_init(void) | |||
1485 | 1464 | ||
1486 | dn_dev_devices_on(); | 1465 | dn_dev_devices_on(); |
1487 | 1466 | ||
1488 | rtnetlink_links[PF_DECnet] = dnet_rtnetlink_table; | 1467 | rtnl_register(PF_DECnet, RTM_NEWADDR, dn_nl_newaddr, NULL); |
1468 | rtnl_register(PF_DECnet, RTM_DELADDR, dn_nl_deladdr, NULL); | ||
1469 | rtnl_register(PF_DECnet, RTM_GETADDR, NULL, dn_nl_dump_ifaddr); | ||
1489 | 1470 | ||
1490 | proc_net_fops_create("decnet_dev", S_IRUGO, &dn_dev_seq_fops); | 1471 | proc_net_fops_create("decnet_dev", S_IRUGO, &dn_dev_seq_fops); |
1491 | 1472 | ||
@@ -1500,8 +1481,6 @@ void __init dn_dev_init(void) | |||
1500 | 1481 | ||
1501 | void __exit dn_dev_cleanup(void) | 1482 | void __exit dn_dev_cleanup(void) |
1502 | { | 1483 | { |
1503 | rtnetlink_links[PF_DECnet] = NULL; | ||
1504 | |||
1505 | #ifdef CONFIG_SYSCTL | 1484 | #ifdef CONFIG_SYSCTL |
1506 | { | 1485 | { |
1507 | int i; | 1486 | int i; |