On 3/15/16, 1:20 AM, Nicolas Dichtel wrote: > Le 15/03/2016 07:30, roopa a écrit : >> On 3/14/16, 8:00 AM, Nicolas Dichtel wrote: >>> Le 13/03/2016 02:56, Roopa Prabhu a écrit : > [snip] >>>> diff --git a/include/uapi/linux/rtnetlink.h >>>> b/include/uapi/linux/rtnetlink.h >>>> index ca764b5..2bbb300 100644 >>>> --- a/include/uapi/linux/rtnetlink.h >>>> +++ b/include/uapi/linux/rtnetlink.h >>>> @@ -139,6 +139,13 @@ enum { >>>> RTM_GETNSID = 90, >>>> #define RTM_GETNSID RTM_GETNSID >>>> >>>> + RTM_NEWSTATS = 92, >>>> +#define RTM_NEWSTATS RTM_NEWSTATS >>>> + RTM_DELSTATS = 93, >>>> +#define RTM_DELSTATS RTM_DELSTATS >>> RTM_DELSTATS is never used. >> >> yeah, i had to define it just because rtnetlink_rcv_msg seems to expect all >> three to be >> there when it tries to check if it is a get msg. But, i could sure not >> declare this >> but make rtnetlink_rcv_msg happy by keeping the GET msg at the right offset. > Not sure to understand what is the problem. > Look at RTM_NEWNETCONF/RTM_GETNETCONF, there is no DEL command.
yep, same thing as RTM_NEWNETCONF, there is no DEL but GET becomes +2. I was trying to say that I can do the same also. will drop DEL and make GET RTM_NEWSTATS + 2. will take care of it in v2. thanks. > >>> >>>> + RTM_GETSTATS = 94, >>>> +#define RTM_GETSTATS RTM_GETSTATS >>>> + >>>> __RTM_MAX, >>>> #define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1) >>>> }; >>>> diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c >>>> index d2d9e5e..d1e3d17 100644 >>>> --- a/net/core/rtnetlink.c >>>> +++ b/net/core/rtnetlink.c >>> [snip] >>>> +static noinline size_t if_nlmsg_stats_size(const struct net_device *dev, >>>> + u32 filter_mask) >>> Why are you using the 'noinline' attribute? >> >> I actually picked it up from if_nlmsg_size ... > If there is no better reason, I suggest to remove it ;-) > It was introduced by Eric (commit 9e34a5b51684 ("net/core: EXPORT_SYMBOL > cleanups"). > Eric, do you remember why you add this 'noinline' attribute? >