On Tue, 29 Jan 2019 21:18:28 -0700, David Ahern wrote: > On 1/28/19 4:44 PM, Jakub Kicinski wrote: > > @@ -4946,6 +4964,9 @@ static size_t if_nlmsg_stats_size(const struct > > net_device *dev, > > rcu_read_unlock(); > > } > > > > + if (stats_attr_valid(filter_mask, IFLA_STATS_LINK_HSTATS, 0)) > > filter_mask is populated by RTEXT_FILTER_ from > include/uapi/linux/rtnetlink.h
ext_filter_mask is from IFLA_EXT_MASK and has RTEXT_FILTER_ bits set. Here the mask is from struct if_stats_msg::filter_mask of RTM_GETSTATS. Am I missing the point? :S > > + size += rtnl_get_link_hstats_size(dev); > > rtnl_get_link_hstats_size == __rtnl_get_link_hstats can return < 0. Ups! Thank you! In general how much do you dislike this code? :) > > + > > return size; > > } > > > > >