diff options
Diffstat (limited to 'net/dsa/slave.c')
| -rw-r--r-- | net/dsa/slave.c | 34 | 
1 files changed, 15 insertions, 19 deletions
diff --git a/net/dsa/slave.c b/net/dsa/slave.c index 64ca2a6fa0d..64c5af0a10d 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c @@ -41,8 +41,8 @@ void dsa_slave_mii_bus_init(struct dsa_switch *ds)  	ds->slave_mii_bus->name = "dsa slave smi";  	ds->slave_mii_bus->read = dsa_slave_phy_read;  	ds->slave_mii_bus->write = dsa_slave_phy_write; -	snprintf(ds->slave_mii_bus->id, MII_BUS_ID_SIZE, "%s:%.2x", -			ds->master_mii_bus->id, ds->pd->sw_addr); +	snprintf(ds->slave_mii_bus->id, MII_BUS_ID_SIZE, "dsa-%d:%.2x", +			ds->index, ds->pd->sw_addr);  	ds->slave_mii_bus->parent = &ds->master_mii_bus->dev;  } @@ -66,7 +66,7 @@ static int dsa_slave_open(struct net_device *dev)  	if (!(master->flags & IFF_UP))  		return -ENETDOWN; -	if (compare_ether_addr(dev->dev_addr, master->dev_addr)) { +	if (!ether_addr_equal(dev->dev_addr, master->dev_addr)) {  		err = dev_uc_add(master, dev->dev_addr);  		if (err < 0)  			goto out; @@ -89,7 +89,7 @@ clear_allmulti:  	if (dev->flags & IFF_ALLMULTI)  		dev_set_allmulti(master, -1);  del_unicast: -	if (compare_ether_addr(dev->dev_addr, master->dev_addr)) +	if (!ether_addr_equal(dev->dev_addr, master->dev_addr))  		dev_uc_del(master, dev->dev_addr);  out:  	return err; @@ -107,7 +107,7 @@ static int dsa_slave_close(struct net_device *dev)  	if (dev->flags & IFF_PROMISC)  		dev_set_promiscuity(master, -1); -	if (compare_ether_addr(dev->dev_addr, master->dev_addr)) +	if (!ether_addr_equal(dev->dev_addr, master->dev_addr))  		dev_uc_del(master, dev->dev_addr);  	return 0; @@ -146,17 +146,17 @@ static int dsa_slave_set_mac_address(struct net_device *dev, void *a)  	if (!(dev->flags & IFF_UP))  		goto out; -	if (compare_ether_addr(addr->sa_data, master->dev_addr)) { +	if (!ether_addr_equal(addr->sa_data, master->dev_addr)) {  		err = dev_uc_add(master, addr->sa_data);  		if (err < 0)  			return err;  	} -	if (compare_ether_addr(dev->dev_addr, master->dev_addr)) +	if (!ether_addr_equal(dev->dev_addr, master->dev_addr))  		dev_uc_del(master, dev->dev_addr);  out: -	memcpy(dev->dev_addr, addr->sa_data, ETH_ALEN); +	ether_addr_copy(dev->dev_addr, addr->sa_data);  	return 0;  } @@ -203,10 +203,10 @@ dsa_slave_set_settings(struct net_device *dev, struct ethtool_cmd *cmd)  static void dsa_slave_get_drvinfo(struct net_device *dev,  				  struct ethtool_drvinfo *drvinfo)  { -	strncpy(drvinfo->driver, "dsa", 32); -	strncpy(drvinfo->version, dsa_driver_version, 32); -	strncpy(drvinfo->fw_version, "N/A", 32); -	strncpy(drvinfo->bus_info, "platform", 32); +	strlcpy(drvinfo->driver, "dsa", sizeof(drvinfo->driver)); +	strlcpy(drvinfo->version, dsa_driver_version, sizeof(drvinfo->version)); +	strlcpy(drvinfo->fw_version, "N/A", sizeof(drvinfo->fw_version)); +	strlcpy(drvinfo->bus_info, "platform", sizeof(drvinfo->bus_info));  }  static int dsa_slave_nway_reset(struct net_device *dev) @@ -288,7 +288,6 @@ static const struct ethtool_ops dsa_slave_ethtool_ops = {  	.get_drvinfo		= dsa_slave_get_drvinfo,  	.nway_reset		= dsa_slave_nway_reset,  	.get_link		= dsa_slave_get_link, -	.set_sg			= ethtool_op_set_sg,  	.get_strings		= dsa_slave_get_strings,  	.get_ethtool_stats	= dsa_slave_get_ethtool_stats,  	.get_sset_count		= dsa_slave_get_sset_count, @@ -302,7 +301,6 @@ static const struct net_device_ops dsa_netdev_ops = {  	.ndo_start_xmit		= dsa_xmit,  	.ndo_change_rx_flags	= dsa_slave_change_rx_flags,  	.ndo_set_rx_mode	= dsa_slave_set_rx_mode, -	.ndo_set_multicast_list = dsa_slave_set_rx_mode,  	.ndo_set_mac_address	= dsa_slave_set_mac_address,  	.ndo_do_ioctl		= dsa_slave_ioctl,  }; @@ -315,7 +313,6 @@ static const struct net_device_ops edsa_netdev_ops = {  	.ndo_start_xmit		= edsa_xmit,  	.ndo_change_rx_flags	= dsa_slave_change_rx_flags,  	.ndo_set_rx_mode	= dsa_slave_set_rx_mode, -	.ndo_set_multicast_list = dsa_slave_set_rx_mode,  	.ndo_set_mac_address	= dsa_slave_set_mac_address,  	.ndo_do_ioctl		= dsa_slave_ioctl,  }; @@ -328,7 +325,6 @@ static const struct net_device_ops trailer_netdev_ops = {  	.ndo_start_xmit		= trailer_xmit,  	.ndo_change_rx_flags	= dsa_slave_change_rx_flags,  	.ndo_set_rx_mode	= dsa_slave_set_rx_mode, -	.ndo_set_multicast_list = dsa_slave_set_rx_mode,  	.ndo_set_mac_address	= dsa_slave_set_mac_address,  	.ndo_do_ioctl		= dsa_slave_ioctl,  }; @@ -350,8 +346,8 @@ dsa_slave_create(struct dsa_switch *ds, struct device *parent,  		return slave_dev;  	slave_dev->features = master->vlan_features; -	SET_ETHTOOL_OPS(slave_dev, &dsa_slave_ethtool_ops); -	memcpy(slave_dev->dev_addr, master->dev_addr, ETH_ALEN); +	slave_dev->ethtool_ops = &dsa_slave_ethtool_ops; +	eth_hw_addr_inherit(slave_dev, master);  	slave_dev->tx_queue_len = 0;  	switch (ds->dst->tag_protocol) { @@ -395,7 +391,7 @@ dsa_slave_create(struct dsa_switch *ds, struct device *parent,  	if (p->phy != NULL) {  		phy_attach(slave_dev, dev_name(&p->phy->dev), -			   0, PHY_INTERFACE_MODE_GMII); +			   PHY_INTERFACE_MODE_GMII);  		p->phy->autoneg = AUTONEG_ENABLE;  		p->phy->speed = 0;  | 
