static void
 vmxnet3_get_strings(struct net_device *netdev, u32 stringset, u8 *buf)
 {
-        struct vmxnet3_adapter *adapter = netdev_priv(netdev);
-       if (stringset == ETH_SS_STATS) {
-               int i, j;
-               for (j = 0; j < adapter->num_tx_queues; j++) {
-                       for (i = 0; i < ARRAY_SIZE(vmxnet3_tq_dev_stats); i++) {
-                               memcpy(buf, vmxnet3_tq_dev_stats[i].desc,
-                                      ETH_GSTRING_LEN);
-                               buf += ETH_GSTRING_LEN;
-                       }
-                       for (i = 0; i < ARRAY_SIZE(vmxnet3_tq_driver_stats);
-                            i++) {
-                               memcpy(buf, vmxnet3_tq_driver_stats[i].desc,
-                                      ETH_GSTRING_LEN);
-                               buf += ETH_GSTRING_LEN;
-                       }
-               }
+       struct vmxnet3_adapter *adapter = netdev_priv(netdev);
+       int i, j;
 
-               for (j = 0; j < adapter->num_rx_queues; j++) {
-                       for (i = 0; i < ARRAY_SIZE(vmxnet3_rq_dev_stats); i++) {
-                               memcpy(buf, vmxnet3_rq_dev_stats[i].desc,
-                                      ETH_GSTRING_LEN);
-                               buf += ETH_GSTRING_LEN;
-                       }
-                       for (i = 0; i < ARRAY_SIZE(vmxnet3_rq_driver_stats);
-                            i++) {
-                               memcpy(buf, vmxnet3_rq_driver_stats[i].desc,
-                                      ETH_GSTRING_LEN);
-                               buf += ETH_GSTRING_LEN;
-                       }
-               }
+       if (stringset != ETH_SS_STATS)
+               return;
 
-               for (i = 0; i < ARRAY_SIZE(vmxnet3_global_stats); i++) {
-                       memcpy(buf, vmxnet3_global_stats[i].desc,
-                               ETH_GSTRING_LEN);
-                       buf += ETH_GSTRING_LEN;
-               }
+       for (j = 0; j < adapter->num_tx_queues; j++) {
+               for (i = 0; i < ARRAY_SIZE(vmxnet3_tq_dev_stats); i++)
+                       ethtool_sprintf(&buf, vmxnet3_tq_dev_stats[i].desc);
+               for (i = 0; i < ARRAY_SIZE(vmxnet3_tq_driver_stats); i++)
+                       ethtool_sprintf(&buf, vmxnet3_tq_driver_stats[i].desc);
+       }
+
+       for (j = 0; j < adapter->num_rx_queues; j++) {
+               for (i = 0; i < ARRAY_SIZE(vmxnet3_rq_dev_stats); i++)
+                       ethtool_sprintf(&buf, vmxnet3_rq_dev_stats[i].desc);
+               for (i = 0; i < ARRAY_SIZE(vmxnet3_rq_driver_stats); i++)
+                       ethtool_sprintf(&buf, vmxnet3_rq_driver_stats[i].desc);
        }
+
+       for (i = 0; i < ARRAY_SIZE(vmxnet3_global_stats); i++)
+               ethtool_sprintf(&buf, vmxnet3_global_stats[i].desc);
 }
 
 netdev_features_t vmxnet3_fix_features(struct net_device *netdev,