@@ -359,8 +359,8 @@ static int mlx4_en_get_coalesce(struct net_device *dev,
359
359
{
360
360
struct mlx4_en_priv * priv = netdev_priv (dev );
361
361
362
- coal -> tx_coalesce_usecs = 0 ;
363
- coal -> tx_max_coalesced_frames = 0 ;
362
+ coal -> tx_coalesce_usecs = priv -> tx_usecs ;
363
+ coal -> tx_max_coalesced_frames = priv -> tx_frames ;
364
364
coal -> rx_coalesce_usecs = priv -> rx_usecs ;
365
365
coal -> rx_max_coalesced_frames = priv -> rx_frames ;
366
366
@@ -388,6 +388,21 @@ static int mlx4_en_set_coalesce(struct net_device *dev,
388
388
MLX4_EN_RX_COAL_TIME :
389
389
coal -> rx_coalesce_usecs ;
390
390
391
+ /* Setting TX coalescing parameters */
392
+ if (coal -> tx_coalesce_usecs != priv -> tx_usecs ||
393
+ coal -> tx_max_coalesced_frames != priv -> tx_frames ) {
394
+ priv -> tx_usecs = coal -> tx_coalesce_usecs ;
395
+ priv -> tx_frames = coal -> tx_max_coalesced_frames ;
396
+ for (i = 0 ; i < priv -> tx_ring_num ; i ++ ) {
397
+ priv -> tx_cq [i ].moder_cnt = priv -> tx_frames ;
398
+ priv -> tx_cq [i ].moder_time = priv -> tx_usecs ;
399
+ if (mlx4_en_set_cq_moder (priv , & priv -> tx_cq [i ])) {
400
+ en_warn (priv , "Failed changing moderation "
401
+ "for TX cq %d\n" , i );
402
+ }
403
+ }
404
+ }
405
+
391
406
/* Set adaptive coalescing params */
392
407
priv -> pkt_rate_low = coal -> pkt_rate_low ;
393
408
priv -> rx_usecs_low = coal -> rx_coalesce_usecs_low ;
0 commit comments