diff options
author | Pavel Emelyanov <xemul@openvz.org> | 2008-05-21 14:12:46 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-05-21 14:12:46 -0700 |
commit | 96e74088f1da4d9a53735a4a57a4f984f86b75c6 (patch) | |
tree | 4c645107e3b75694ac142b562e221a868d3ccb89 /net/core/rtnetlink.c | |
parent | 34ac2573e88c4f80fc5e219d8012ea383a788803 (diff) | |
download | lwn-96e74088f1da4d9a53735a4a57a4f984f86b75c6.tar.gz lwn-96e74088f1da4d9a53735a4a57a4f984f86b75c6.zip |
net: The dev->get_stats pointer is not NULL nowadays.
And so does the pointer is returns, but sysfs and netlinks still
check for both cases.
Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/rtnetlink.c')
-rw-r--r-- | net/core/rtnetlink.c | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c index cf857c4dc7b1..ca32ddb8ad17 100644 --- a/net/core/rtnetlink.c +++ b/net/core/rtnetlink.c @@ -606,6 +606,8 @@ static int rtnl_fill_ifinfo(struct sk_buff *skb, struct net_device *dev, { struct ifinfomsg *ifm; struct nlmsghdr *nlh; + struct net_device_stats *stats; + struct nlattr *attr; nlh = nlmsg_put(skb, pid, seq, type, sizeof(*ifm), flags); if (nlh == NULL) @@ -652,19 +654,13 @@ static int rtnl_fill_ifinfo(struct sk_buff *skb, struct net_device *dev, NLA_PUT(skb, IFLA_BROADCAST, dev->addr_len, dev->broadcast); } - if (dev->get_stats) { - struct net_device_stats *stats = dev->get_stats(dev); - if (stats) { - struct nlattr *attr; + attr = nla_reserve(skb, IFLA_STATS, + sizeof(struct rtnl_link_stats)); + if (attr == NULL) + goto nla_put_failure; - attr = nla_reserve(skb, IFLA_STATS, - sizeof(struct rtnl_link_stats)); - if (attr == NULL) - goto nla_put_failure; - - copy_rtnl_link_stats(nla_data(attr), stats); - } - } + stats = dev->get_stats(dev); + copy_rtnl_link_stats(nla_data(attr), stats); if (dev->rtnl_link_ops) { if (rtnl_link_fill(skb, dev) < 0) |