Hi,
+ if (!dev)
+ return -ENODEV;
+
+ nskb = nlmsg_new(if_nlmsg_stats_size(dev), GFP_KERNEL);
+ if (!nskb)
+ return -ENOBUFS;
+
+ err = rtnl_fill_statsinfo(nskb, dev, RTM_NEWSTATS,
+ NETLINK_CB(skb).portid, nlh->nlmsg_seq, 0, 0);
+ if (err < 0) {
It should be here: -EMSGSIZE implies BUG in if_nlmsg_stats_size (instead of
if_nlmsg_size)
+ /* -EMSGSIZE implies BUG in if_nlmsg_size */
+ WARN_ON(err == -EMSGSIZE);
+ kfree_skb(nskb);
+ } else {
+ err = rtnl_unicast(nskb, net, NETLINK_CB(skb).portid);
+ }
Other than that, it seems ok, thanks for this patch!
Regards,
Rami Rosen
Intel Corporation