rtnetlink: fix VF info size
authorJiri Benc <jbenc@redhat.com>
Fri, 8 Aug 2014 14:44:32 +0000 (16:44 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 8 Aug 2014 17:28:09 +0000 (10:28 -0700)
Commit 1d8faf48c74b8 ("net/core: Add VF link state control") added new
attribute to IFLA_VF_INFO group in rtnl_fill_ifinfo but did not adjust size
of the allocated memory in if_nlmsg_size/rtnl_vfinfo_size. As the result, we
may trigger warnings in rtnl_getlink and similar functions when many VF
links are enabled, as the information does not fit into the allocated skb.

Fixes: 1d8faf48c74b8 ("net/core: Add VF link state control")
Reported-by: Yulong Pei <ypei@redhat.com>
Signed-off-by: Jiri Benc <jbenc@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/rtnetlink.c

index 8d39071f32d76a41d10c5b48e06f4cf59dca1ee5..f0493e3b7471099f0245b0ea0c4b52de4a03034f 100644 (file)
@@ -804,7 +804,8 @@ static inline int rtnl_vfinfo_size(const struct net_device *dev,
                        (nla_total_size(sizeof(struct ifla_vf_mac)) +
                         nla_total_size(sizeof(struct ifla_vf_vlan)) +
                         nla_total_size(sizeof(struct ifla_vf_spoofchk)) +
-                        nla_total_size(sizeof(struct ifla_vf_rate)));
+                        nla_total_size(sizeof(struct ifla_vf_rate)) +
+                        nla_total_size(sizeof(struct ifla_vf_link_state)));
                return size;
        } else
                return 0;