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