diff options
Diffstat (limited to 'drivers/net/ibm_newemac/core.c')
| -rw-r--r-- | drivers/net/ibm_newemac/core.c | 42 | 
1 files changed, 22 insertions, 20 deletions
diff --git a/drivers/net/ibm_newemac/core.c b/drivers/net/ibm_newemac/core.c index 3fae8755979..fb0ac6d7c04 100644 --- a/drivers/net/ibm_newemac/core.c +++ b/drivers/net/ibm_newemac/core.c @@ -391,11 +391,11 @@ static void emac_hash_mc(struct emac_instance *dev)  	struct dev_mc_list *dmi;  	int i; -	DBG(dev, "hash_mc %d" NL, dev->ndev->mc_count); +	DBG(dev, "hash_mc %d" NL, netdev_mc_count(dev->ndev));  	memset(gaht_temp, 0, sizeof (gaht_temp)); -	for (dmi = dev->ndev->mc_list; dmi; dmi = dmi->next) { +	netdev_for_each_mc_addr(dmi, dev->ndev) {  		int slot, reg, mask;  		DBG2(dev, "mc %pM" NL, dmi->dmi_addr); @@ -425,9 +425,9 @@ static inline u32 emac_iff2rmr(struct net_device *ndev)  	if (ndev->flags & IFF_PROMISC)  		r |= EMAC_RMR_PME;  	else if (ndev->flags & IFF_ALLMULTI || -			 (ndev->mc_count > EMAC_XAHT_SLOTS(dev))) +			 (netdev_mc_count(ndev) > EMAC_XAHT_SLOTS(dev)))  		r |= EMAC_RMR_PMME; -	else if (ndev->mc_count > 0) +	else if (!netdev_mc_empty(ndev))  		r |= EMAC_RMR_MAE;  	return r; @@ -1976,27 +1976,27 @@ static int emac_ethtool_set_settings(struct net_device *ndev,  	if (cmd->autoneg == AUTONEG_DISABLE) {  		switch (cmd->speed) {  		case SPEED_10: -			if (cmd->duplex == DUPLEX_HALF -			    && !(f & SUPPORTED_10baseT_Half)) +			if (cmd->duplex == DUPLEX_HALF && +			    !(f & SUPPORTED_10baseT_Half))  				return -EINVAL; -			if (cmd->duplex == DUPLEX_FULL -			    && !(f & SUPPORTED_10baseT_Full)) +			if (cmd->duplex == DUPLEX_FULL && +			    !(f & SUPPORTED_10baseT_Full))  				return -EINVAL;  			break;  		case SPEED_100: -			if (cmd->duplex == DUPLEX_HALF -			    && !(f & SUPPORTED_100baseT_Half)) +			if (cmd->duplex == DUPLEX_HALF && +			    !(f & SUPPORTED_100baseT_Half))  				return -EINVAL; -			if (cmd->duplex == DUPLEX_FULL -			    && !(f & SUPPORTED_100baseT_Full)) +			if (cmd->duplex == DUPLEX_FULL && +			    !(f & SUPPORTED_100baseT_Full))  				return -EINVAL;  			break;  		case SPEED_1000: -			if (cmd->duplex == DUPLEX_HALF -			    && !(f & SUPPORTED_1000baseT_Half)) +			if (cmd->duplex == DUPLEX_HALF && +			    !(f & SUPPORTED_1000baseT_Half))  				return -EINVAL; -			if (cmd->duplex == DUPLEX_FULL -			    && !(f & SUPPORTED_1000baseT_Full)) +			if (cmd->duplex == DUPLEX_FULL && +			    !(f & SUPPORTED_1000baseT_Full))  				return -EINVAL;  			break;  		default: @@ -2149,9 +2149,12 @@ static int emac_ethtool_nway_reset(struct net_device *ndev)  	return res;  } -static int emac_ethtool_get_stats_count(struct net_device *ndev) +static int emac_ethtool_get_sset_count(struct net_device *ndev, int stringset)  { -	return EMAC_ETHTOOL_STATS_COUNT; +	if (stringset == ETH_SS_STATS) +		return EMAC_ETHTOOL_STATS_COUNT; +	else +		return -EINVAL;  }  static void emac_ethtool_get_strings(struct net_device *ndev, u32 stringset, @@ -2182,7 +2185,6 @@ static void emac_ethtool_get_drvinfo(struct net_device *ndev,  	info->fw_version[0] = '\0';  	sprintf(info->bus_info, "PPC 4xx EMAC-%d %s",  		dev->cell_index, dev->ofdev->node->full_name); -	info->n_stats = emac_ethtool_get_stats_count(ndev);  	info->regdump_len = emac_ethtool_get_regs_len(ndev);  } @@ -2202,7 +2204,7 @@ static const struct ethtool_ops emac_ethtool_ops = {  	.get_rx_csum = emac_ethtool_get_rx_csum,  	.get_strings = emac_ethtool_get_strings, -	.get_stats_count = emac_ethtool_get_stats_count, +	.get_sset_count = emac_ethtool_get_sset_count,  	.get_ethtool_stats = emac_ethtool_get_ethtool_stats,  	.get_link = ethtool_op_get_link,  | 
