net: dsa: Add initialization helper for CPU port ethtool_ops
authorFlorian Fainelli <f.fainelli@gmail.com>
Tue, 7 Jun 2016 23:32:41 +0000 (16:32 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 8 Jun 2016 18:23:42 +0000 (11:23 -0700)
Add a helper function: dsa_cpu_port_ethtool_init() which initializes a
custom ethtool_ops structure with custom DSA ethtool operations for CPU
ports. This is a preliminary change to move the initialization outside
of net/dsa/slave.c.

Reviewed-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/dsa/dsa_priv.h
net/dsa/slave.c

index b42f1a5f95f3ba6fb80d20e0cb7b8d40c7f6769f..106a9f067f94f8a2d12d2c0b99fa4c6a6460220a 100644 (file)
@@ -58,6 +58,7 @@ const struct dsa_device_ops *dsa_resolve_tag_protocol(int tag_protocol);
 /* slave.c */
 extern const struct dsa_device_ops notag_netdev_ops;
 void dsa_slave_mii_bus_init(struct dsa_switch *ds);
+void dsa_cpu_port_ethtool_init(struct ethtool_ops *ops);
 int dsa_slave_create(struct dsa_switch *ds, struct device *parent,
                     int port, const char *name);
 void dsa_slave_destroy(struct net_device *slave_dev);
index a51dfedf0014dbf104de3e8811be5e7989de33a0..8d159932e082728644cb4246a5a05171835cd2f8 100644 (file)
@@ -865,6 +865,13 @@ static void dsa_slave_poll_controller(struct net_device *dev)
 }
 #endif
 
+void dsa_cpu_port_ethtool_init(struct ethtool_ops *ops)
+{
+       ops->get_sset_count = dsa_cpu_port_get_sset_count;
+       ops->get_ethtool_stats = dsa_cpu_port_get_ethtool_stats;
+       ops->get_strings = dsa_cpu_port_get_strings;
+}
+
 static const struct ethtool_ops dsa_slave_ethtool_ops = {
        .get_settings           = dsa_slave_get_settings,
        .set_settings           = dsa_slave_set_settings,
@@ -1124,12 +1131,7 @@ int dsa_slave_create(struct dsa_switch *ds, struct device *parent,
                       sizeof(struct ethtool_ops));
                memcpy(&dsa_cpu_port_ethtool_ops, &dst->master_ethtool_ops,
                       sizeof(struct ethtool_ops));
-               dsa_cpu_port_ethtool_ops.get_sset_count =
-                                       dsa_cpu_port_get_sset_count;
-               dsa_cpu_port_ethtool_ops.get_ethtool_stats =
-                                       dsa_cpu_port_get_ethtool_stats;
-               dsa_cpu_port_ethtool_ops.get_strings =
-                                       dsa_cpu_port_get_strings;
+               dsa_cpu_port_ethtool_init(&dsa_cpu_port_ethtool_ops);
                master->ethtool_ops = &dsa_cpu_port_ethtool_ops;
        }
        eth_hw_addr_inherit(slave_dev, master);