decnet: avoid touching device refcount in dn_dev_by_index()
Eric Dumazet [Wed, 4 Nov 2009 18:59:38 +0000 (10:59 -0800)]
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

net/decnet/dn_dev.c

index 6e1f085..d82694d 100644 (file)
@@ -600,15 +600,17 @@ static void dn_dev_check_default(struct net_device *dev)
                dev_put(dev);
 }
 
+/*
+ * Called with RTNL
+ */
 static struct dn_dev *dn_dev_by_index(int ifindex)
 {
        struct net_device *dev;
        struct dn_dev *dn_dev = NULL;
-       dev = dev_get_by_index(&init_net, ifindex);
-       if (dev) {
+
+       dev = __dev_get_by_index(&init_net, ifindex);
+       if (dev)
                dn_dev = dev->dn_ptr;
-               dev_put(dev);
-       }
 
        return dn_dev;
 }