Re: [PATCH V4 net-next 7/8] net: hns3: Add Ethtool support to HNS3 driver

From: Florian Fainelli
Date: Thu Jul 27 2017 - 14:05:03 EST


On 07/27/2017 11:01 AM, Salil Mehta wrote:
> Hi Florian,
>
>> -----Original Message-----
>> From: Florian Fainelli [mailto:f.fainelli@xxxxxxxxx]
>> Sent: Sunday, July 23, 2017 6:05 PM
>> To: Salil Mehta; davem@xxxxxxxxxxxxx
>> Cc: Zhuangyuzeng (Yisen); huangdaode; lipeng (Y);
>> mehta.salil.lnk@xxxxxxxxx; netdev@xxxxxxxxxxxxxxx; linux-
>> kernel@xxxxxxxxxxxxxxx; linux-rdma@xxxxxxxxxxxxxxx; Linuxarm
>> Subject: Re: [PATCH V4 net-next 7/8] net: hns3: Add Ethtool support to
>> HNS3 driver
>>
>>
>>
>> On 07/22/2017 03:09 PM, Salil Mehta wrote:
>>> This patch adds the support of the Ethtool interface to
>>> the HNS3 Ethernet driver. Various commands to read the
>>> statistics, configure the offloading, loopback selftest etc.
>>> are supported.
>>>
>>> Signed-off-by: Daode Huang <huangdaode@xxxxxxxxxxxxx>
>>> Signed-off-by: lipeng <lipeng321@xxxxxxxxxx>
>>> Signed-off-by: Salil Mehta <salil.mehta@xxxxxxxxxx>
>>> Signed-off-by: Yisen Zhuang <yisen.zhuang@xxxxxxxxxx>
>>> ---
>>> Patch V4: addressed below comments
>>> 1. Andrew Lunn
>>> Removed the support of loop PHY back for now
>>> Patch V3: Address below comments
>>> 1. Stephen Hemminger
>>> https://lkml.org/lkml/2017/6/13/974
>>> 2. Andrew Lunn
>>> https://lkml.org/lkml/2017/6/13/1037
>>> Patch V2: No change
>>> Patch V1: Initial Submit
>>> ---
>>> .../ethernet/hisilicon/hns3/hns3pf/hns3_ethtool.c | 543
>> +++++++++++++++++++++
>>> 1 file changed, 543 insertions(+)
>>> create mode 100644
>> drivers/net/ethernet/hisilicon/hns3/hns3pf/hns3_ethtool.c
>>>
>>> diff --git
>> a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hns3_ethtool.c
>> b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hns3_ethtool.c
>>> new file mode 100644
>>> index 000000000000..82b0d4d829f8
>>> --- /dev/null
>>> +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hns3_ethtool.c
>>> @@ -0,0 +1,543 @@
>>> +/*
>>> + * Copyright (c) 2016~2017 Hisilicon Limited.
>>> + *
>>> + * This program is free software; you can redistribute it and/or
>> modify
>>> + * it under the terms of the GNU General Public License as published
>> by
>>> + * the Free Software Foundation; either version 2 of the License, or
>>> + * (at your option) any later version.
>>> + */
>>> +
>>> +#include <linux/etherdevice.h>
>>> +#include "hns3_enet.h"
>>> +
>>> +struct hns3_stats {
>>> + char stats_string[ETH_GSTRING_LEN];
>>> + int stats_size;
>>> + int stats_offset;
>>> +};
>>> +
>>> +/* netdev related stats */
>>> +#define HNS3_NETDEV_STAT(_string, _member) \
>>> + { _string, \
>>> + FIELD_SIZEOF(struct rtnl_link_stats64, _member), \
>>> + offsetof(struct rtnl_link_stats64, _member), \
>>> + }
>>
>> Can you make this macro use named initializers?
> Can you please explain bit more or point out some
> example. This would be very handy.

.stat_string = _string,
.stats_size = FIELD_SIZEOF(struct rtnl_link_stat64, _member),
.stats_offset = offsetof(struct rtnl_link_stats64, _member),

https://gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html
--
Florian