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

Reply via email to