On 09/19/2017 08:56 AM, Vivien Didelot wrote: > The DSA core overrides the master device's ethtool_ops structure so that > it can inject statistics and such of its dedicated switch CPU port. > > This ethtool code is currently called on unnecessary conditions or > before the master interface and its switch CPU port get wired up. > This patchset fixes this. > > Similarly to slave.c where the DSA slave net_device is the entry point > of the dsa_slave_* functions, this patchset also isolates the master's > ethtool code in a new master.c file, where the DSA master net_device is > the entry point of the dsa_master_* functions. > > This is a first step towards better control of the master device and > support for multiple CPU ports.
Tested-by: Florian Fainelli <f.faine...@gmail.com> * ethtool -S eth0 -> switch port CPU stats are still correctly overlayed * ethtool -s gphy wol g -> both switch port and CPU port correctly enable WoL * ethtool -i eth0 -> driver still reports correct information Thanks! > > Vivien Didelot (4): > net: dsa: remove copy of master ethtool_ops > net: dsa: setup master ethtool unconditionally > net: dsa: setup master ethtool after dsa_ptr > net: dsa: move master ethtool code > > include/net/dsa.h | 1 - > net/dsa/Makefile | 2 +- > net/dsa/dsa.c | 28 ------------- > net/dsa/dsa2.c | 18 ++++---- > net/dsa/dsa_priv.h | 7 ++-- > net/dsa/legacy.c | 10 ++--- > net/dsa/master.c | 120 > +++++++++++++++++++++++++++++++++++++++++++++++++++++ > net/dsa/slave.c | 80 ----------------------------------- > 8 files changed, 136 insertions(+), 130 deletions(-) > create mode 100644 net/dsa/master.c > -- Florian