diff options
Diffstat (limited to 'drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c')
| -rw-r--r-- | drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 40 | 
1 files changed, 14 insertions, 26 deletions
| diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c index a280aa34ca1d..4ceaca0f6ce3 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c @@ -1368,45 +1368,33 @@ static void ixgbe_get_ethtool_stats(struct net_device *netdev,  static void ixgbe_get_strings(struct net_device *netdev, u32 stringset,  			      u8 *data)  { -	char *p = (char *)data;  	unsigned int i; +	u8 *p = data;  	switch (stringset) {  	case ETH_SS_TEST: -		for (i = 0; i < IXGBE_TEST_LEN; i++) { -			memcpy(data, ixgbe_gstrings_test[i], ETH_GSTRING_LEN); -			data += ETH_GSTRING_LEN; -		} +		for (i = 0; i < IXGBE_TEST_LEN; i++) +			ethtool_sprintf(&p, ixgbe_gstrings_test[i]);  		break;  	case ETH_SS_STATS: -		for (i = 0; i < IXGBE_GLOBAL_STATS_LEN; i++) { -			memcpy(p, ixgbe_gstrings_stats[i].stat_string, -			       ETH_GSTRING_LEN); -			p += ETH_GSTRING_LEN; -		} +		for (i = 0; i < IXGBE_GLOBAL_STATS_LEN; i++) +			ethtool_sprintf(&p, +					ixgbe_gstrings_stats[i].stat_string);  		for (i = 0; i < netdev->num_tx_queues; i++) { -			sprintf(p, "tx_queue_%u_packets", i); -			p += ETH_GSTRING_LEN; -			sprintf(p, "tx_queue_%u_bytes", i); -			p += ETH_GSTRING_LEN; +			ethtool_sprintf(&p, "tx_queue_%u_packets", i); +			ethtool_sprintf(&p, "tx_queue_%u_bytes", i);  		}  		for (i = 0; i < IXGBE_NUM_RX_QUEUES; i++) { -			sprintf(p, "rx_queue_%u_packets", i); -			p += ETH_GSTRING_LEN; -			sprintf(p, "rx_queue_%u_bytes", i); -			p += ETH_GSTRING_LEN; +			ethtool_sprintf(&p, "rx_queue_%u_packets", i); +			ethtool_sprintf(&p, "rx_queue_%u_bytes", i);  		}  		for (i = 0; i < IXGBE_MAX_PACKET_BUFFERS; i++) { -			sprintf(p, "tx_pb_%u_pxon", i); -			p += ETH_GSTRING_LEN; -			sprintf(p, "tx_pb_%u_pxoff", i); -			p += ETH_GSTRING_LEN; +			ethtool_sprintf(&p, "tx_pb_%u_pxon", i); +			ethtool_sprintf(&p, "tx_pb_%u_pxoff", i);  		}  		for (i = 0; i < IXGBE_MAX_PACKET_BUFFERS; i++) { -			sprintf(p, "rx_pb_%u_pxon", i); -			p += ETH_GSTRING_LEN; -			sprintf(p, "rx_pb_%u_pxoff", i); -			p += ETH_GSTRING_LEN; +			ethtool_sprintf(&p, "rx_pb_%u_pxon", i); +			ethtool_sprintf(&p, "rx_pb_%u_pxoff", i);  		}  		/* BUG_ON(p - data != IXGBE_STATS_LEN * ETH_GSTRING_LEN); */  		break; | 
