mv643xx_eth: set sane default receive coalescing timeout
[deliverable/linux.git] / net / phonet / pn_netlink.c
index 242fe8f8c322d5fb048d737a46d36b99797f47aa..1ceea1f92413d2d4b03d545152f339e628ab9b33 100644 (file)
@@ -123,17 +123,16 @@ nla_put_failure:
 
 static int getaddr_dumpit(struct sk_buff *skb, struct netlink_callback *cb)
 {
-       struct net *net = sock_net(skb->sk);
+       struct phonet_device_list *pndevs;
        struct phonet_device *pnd;
        int dev_idx = 0, dev_start_idx = cb->args[0];
        int addr_idx = 0, addr_start_idx = cb->args[1];
 
-       spin_lock_bh(&pndevs.lock);
-       list_for_each_entry(pnd, &pndevs.list, list) {
+       pndevs = phonet_device_list(sock_net(skb->sk));
+       spin_lock_bh(&pndevs->lock);
+       list_for_each_entry(pnd, &pndevs->list, list) {
                u8 addr;
 
-               if (!net_eq(dev_net(pnd->netdev), net))
-                       continue;
                if (dev_idx > dev_start_idx)
                        addr_start_idx = 0;
                if (dev_idx++ < dev_start_idx)
@@ -153,16 +152,21 @@ static int getaddr_dumpit(struct sk_buff *skb, struct netlink_callback *cb)
        }
 
 out:
-       spin_unlock_bh(&pndevs.lock);
+       spin_unlock_bh(&pndevs->lock);
        cb->args[0] = dev_idx;
        cb->args[1] = addr_idx;
 
        return skb->len;
 }
 
-void __init phonet_netlink_register(void)
+int __init phonet_netlink_register(void)
 {
-       rtnl_register(PF_PHONET, RTM_NEWADDR, addr_doit, NULL);
-       rtnl_register(PF_PHONET, RTM_DELADDR, addr_doit, NULL);
-       rtnl_register(PF_PHONET, RTM_GETADDR, NULL, getaddr_dumpit);
+       int err = __rtnl_register(PF_PHONET, RTM_NEWADDR, addr_doit, NULL);
+       if (err)
+               return err;
+
+       /* Further __rtnl_register() cannot fail */
+       __rtnl_register(PF_PHONET, RTM_DELADDR, addr_doit, NULL);
+       __rtnl_register(PF_PHONET, RTM_GETADDR, NULL, getaddr_dumpit);
+       return 0;
 }
This page took 0.025391 seconds and 5 git commands to generate.