aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Dumazet <eric.dumazet@gmail.com>2009-11-04 10:59:38 -0800
committerDavid S. Miller <davem@davemloft.net>2009-11-04 10:59:38 -0800
commitb4d745db12bd2d45a456565ed63325bbfc689e68 (patch)
tree2fdee34d2a383bd4891e038bd8e5fb3245cc4aba
parentd94d9fee9fa4e66a0b91640a694b8b10177075b3 (diff)
downloadlinux-2.6.34-ux500-b4d745db12bd2d45a456565ed63325bbfc689e68.tar.gz
decnet: avoid touching device refcount in dn_dev_by_index()
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/decnet/dn_dev.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/net/decnet/dn_dev.c b/net/decnet/dn_dev.c
index 6e1f085db06..d82694d930b 100644
--- a/net/decnet/dn_dev.c
+++ b/net/decnet/dn_dev.c
@@ -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;
}