@@ -1196,60 +1196,56 @@ qlcnic_get_strings(struct net_device *dev, u32 stringset, u8 *data)
11961196{
11971197 struct qlcnic_adapter * adapter = netdev_priv (dev );
11981198 int index , i , num_stats ;
1199+ const char * str ;
11991200
12001201 switch (stringset ) {
12011202 case ETH_SS_TEST :
1202- memcpy ( data , * qlcnic_gstrings_test ,
1203- QLCNIC_TEST_LEN * ETH_GSTRING_LEN );
1203+ for ( i = 0 ; i < QLCNIC_TEST_LEN ; i ++ )
1204+ ethtool_puts ( & data , qlcnic_gstrings_test [ i ] );
12041205 break ;
12051206 case ETH_SS_STATS :
12061207 num_stats = ARRAY_SIZE (qlcnic_tx_queue_stats_strings );
1207- for (i = 0 ; i < adapter -> drv_tx_rings ; i ++ ) {
1208+ for (i = 0 ; i < adapter -> drv_tx_rings ; i ++ )
12081209 for (index = 0 ; index < num_stats ; index ++ ) {
1209- sprintf ( data , "tx_queue_%d %s" , i ,
1210- qlcnic_tx_queue_stats_strings [ index ]);
1211- data += ETH_GSTRING_LEN ;
1210+ str = qlcnic_tx_queue_stats_strings [ index ];
1211+ ethtool_sprintf ( & data , "tx_queue_%d %s" , i ,
1212+ str ) ;
12121213 }
1213- }
12141214
1215- for (index = 0 ; index < QLCNIC_STATS_LEN ; index ++ ) {
1216- memcpy (data + index * ETH_GSTRING_LEN ,
1217- qlcnic_gstrings_stats [index ].stat_string ,
1218- ETH_GSTRING_LEN );
1215+ for (i = 0 ; i < QLCNIC_STATS_LEN ; i ++ ) {
1216+ str = qlcnic_gstrings_stats [i ].stat_string ;
1217+ ethtool_puts (& data , str );
12191218 }
12201219
12211220 if (qlcnic_83xx_check (adapter )) {
12221221 num_stats = ARRAY_SIZE (qlcnic_83xx_tx_stats_strings );
1223- for (i = 0 ; i < num_stats ; i ++ , index ++ )
1224- memcpy ( data + index * ETH_GSTRING_LEN ,
1225- qlcnic_83xx_tx_stats_strings [ i ],
1226- ETH_GSTRING_LEN );
1222+ for (i = 0 ; i < num_stats ; i ++ ) {
1223+ str = qlcnic_83xx_tx_stats_strings [ i ];
1224+ ethtool_puts ( & data , str );
1225+ }
12271226 num_stats = ARRAY_SIZE (qlcnic_83xx_mac_stats_strings );
1228- for (i = 0 ; i < num_stats ; i ++ , index ++ )
1229- memcpy ( data + index * ETH_GSTRING_LEN ,
1230- qlcnic_83xx_mac_stats_strings [ i ],
1231- ETH_GSTRING_LEN );
1227+ for (i = 0 ; i < num_stats ; i ++ ) {
1228+ str = qlcnic_83xx_mac_stats_strings [ i ];
1229+ ethtool_puts ( & data , str );
1230+ }
12321231 num_stats = ARRAY_SIZE (qlcnic_83xx_rx_stats_strings );
1233- for (i = 0 ; i < num_stats ; i ++ , index ++ )
1234- memcpy ( data + index * ETH_GSTRING_LEN ,
1235- qlcnic_83xx_rx_stats_strings [ i ],
1236- ETH_GSTRING_LEN );
1232+ for (i = 0 ; i < num_stats ; i ++ ) {
1233+ str = qlcnic_83xx_rx_stats_strings [ i ];
1234+ ethtool_puts ( & data , str );
1235+ }
12371236 return ;
12381237 } else {
12391238 num_stats = ARRAY_SIZE (qlcnic_83xx_mac_stats_strings );
1240- for (i = 0 ; i < num_stats ; i ++ , index ++ )
1241- memcpy ( data + index * ETH_GSTRING_LEN ,
1242- qlcnic_83xx_mac_stats_strings [ i ],
1243- ETH_GSTRING_LEN );
1239+ for (i = 0 ; i < num_stats ; i ++ ) {
1240+ str = qlcnic_83xx_mac_stats_strings [ i ];
1241+ ethtool_puts ( & data , str );
1242+ }
12441243 }
12451244 if (!(adapter -> flags & QLCNIC_ESWITCH_ENABLED ))
12461245 return ;
12471246 num_stats = ARRAY_SIZE (qlcnic_device_gstrings_stats );
1248- for (i = 0 ; i < num_stats ; index ++ , i ++ ) {
1249- memcpy (data + index * ETH_GSTRING_LEN ,
1250- qlcnic_device_gstrings_stats [i ],
1251- ETH_GSTRING_LEN );
1252- }
1247+ for (i = 0 ; i < num_stats ; i ++ )
1248+ ethtool_puts (& data , qlcnic_device_gstrings_stats [i ]);
12531249 }
12541250}
12551251
0 commit comments