@@ -173,7 +173,7 @@ static int mlx5e_get_sset_count(struct net_device *dev, int sset)
173173 case ETH_SS_STATS :
174174 return NUM_VPORT_COUNTERS +
175175 priv -> params .num_channels * NUM_RQ_STATS +
176- priv -> params .num_channels * priv -> num_tc *
176+ priv -> params .num_channels * priv -> params . num_tc *
177177 NUM_SQ_STATS ;
178178 /* fallthrough */
179179 default :
@@ -207,7 +207,7 @@ static void mlx5e_get_strings(struct net_device *dev,
207207 "rx%d_%s" , i , rq_stats_strings [j ]);
208208
209209 for (i = 0 ; i < priv -> params .num_channels ; i ++ )
210- for (tc = 0 ; tc < priv -> num_tc ; tc ++ )
210+ for (tc = 0 ; tc < priv -> params . num_tc ; tc ++ )
211211 for (j = 0 ; j < NUM_SQ_STATS ; j ++ )
212212 sprintf (data +
213213 (idx ++ ) * ETH_GSTRING_LEN ,
@@ -242,7 +242,7 @@ static void mlx5e_get_ethtool_stats(struct net_device *dev,
242242 ((u64 * )& priv -> channel [i ]-> rq .stats )[j ];
243243
244244 for (i = 0 ; i < priv -> params .num_channels ; i ++ )
245- for (tc = 0 ; tc < priv -> num_tc ; tc ++ )
245+ for (tc = 0 ; tc < priv -> params . num_tc ; tc ++ )
246246 for (j = 0 ; j < NUM_SQ_STATS ; j ++ )
247247 data [idx ++ ] = !test_bit (MLX5E_STATE_OPENED ,
248248 & priv -> state ) ? 0 :
@@ -264,7 +264,7 @@ static int mlx5e_set_ringparam(struct net_device *dev,
264264 struct ethtool_ringparam * param )
265265{
266266 struct mlx5e_priv * priv = netdev_priv (dev );
267- struct mlx5e_params new_params ;
267+ bool was_opened ;
268268 u16 min_rx_wqes ;
269269 u8 log_rq_size ;
270270 u8 log_sq_size ;
@@ -316,11 +316,18 @@ static int mlx5e_set_ringparam(struct net_device *dev,
316316 return 0 ;
317317
318318 mutex_lock (& priv -> state_lock );
319- new_params = priv -> params ;
320- new_params .log_rq_size = log_rq_size ;
321- new_params .log_sq_size = log_sq_size ;
322- new_params .min_rx_wqes = min_rx_wqes ;
323- err = mlx5e_update_priv_params (priv , & new_params );
319+
320+ was_opened = test_bit (MLX5E_STATE_OPENED , & priv -> state );
321+ if (was_opened )
322+ mlx5e_close_locked (dev );
323+
324+ priv -> params .log_rq_size = log_rq_size ;
325+ priv -> params .log_sq_size = log_sq_size ;
326+ priv -> params .min_rx_wqes = min_rx_wqes ;
327+
328+ if (was_opened )
329+ err = mlx5e_open_locked (dev );
330+
324331 mutex_unlock (& priv -> state_lock );
325332
326333 return err ;
@@ -342,7 +349,7 @@ static int mlx5e_set_channels(struct net_device *dev,
342349 struct mlx5e_priv * priv = netdev_priv (dev );
343350 int ncv = priv -> mdev -> priv .eq_table .num_comp_vectors ;
344351 unsigned int count = ch -> combined_count ;
345- struct mlx5e_params new_params ;
352+ bool was_opened ;
346353 int err = 0 ;
347354
348355 if (!count ) {
@@ -365,9 +372,16 @@ static int mlx5e_set_channels(struct net_device *dev,
365372 return 0 ;
366373
367374 mutex_lock (& priv -> state_lock );
368- new_params = priv -> params ;
369- new_params .num_channels = count ;
370- err = mlx5e_update_priv_params (priv , & new_params );
375+
376+ was_opened = test_bit (MLX5E_STATE_OPENED , & priv -> state );
377+ if (was_opened )
378+ mlx5e_close_locked (dev );
379+
380+ priv -> params .num_channels = count ;
381+
382+ if (was_opened )
383+ err = mlx5e_open_locked (dev );
384+
371385 mutex_unlock (& priv -> state_lock );
372386
373387 return err ;
@@ -673,10 +687,10 @@ static int mlx5e_get_rxfh(struct net_device *netdev, u32 *indir, u8 *key,
673687 return 0 ;
674688}
675689
676- static int mlx5e_set_rxfh (struct net_device * netdev , const u32 * indir ,
690+ static int mlx5e_set_rxfh (struct net_device * dev , const u32 * indir ,
677691 const u8 * key , const u8 hfunc )
678692{
679- struct mlx5e_priv * priv = netdev_priv (netdev );
693+ struct mlx5e_priv * priv = netdev_priv (dev );
680694 int err = 0 ;
681695
682696 if (hfunc == ETH_RSS_HASH_NO_CHANGE )
@@ -690,8 +704,8 @@ static int mlx5e_set_rxfh(struct net_device *netdev, const u32 *indir,
690704
691705 priv -> params .rss_hfunc = hfunc ;
692706 if (test_bit (MLX5E_STATE_OPENED , & priv -> state )) {
693- mlx5e_close_locked (priv -> netdev );
694- err = mlx5e_open_locked (priv -> netdev );
707+ mlx5e_close_locked (dev );
708+ err = mlx5e_open_locked (dev );
695709 }
696710
697711 mutex_unlock (& priv -> state_lock );
@@ -724,7 +738,7 @@ static int mlx5e_set_tunable(struct net_device *dev,
724738{
725739 struct mlx5e_priv * priv = netdev_priv (dev );
726740 struct mlx5_core_dev * mdev = priv -> mdev ;
727- struct mlx5e_params new_params ;
741+ bool was_opened ;
728742 u32 val ;
729743 int err = 0 ;
730744
@@ -737,9 +751,16 @@ static int mlx5e_set_tunable(struct net_device *dev,
737751 }
738752
739753 mutex_lock (& priv -> state_lock );
740- new_params = priv -> params ;
741- new_params .tx_max_inline = val ;
742- err = mlx5e_update_priv_params (priv , & new_params );
754+
755+ was_opened = test_bit (MLX5E_STATE_OPENED , & priv -> state );
756+ if (was_opened )
757+ mlx5e_close_locked (dev );
758+
759+ priv -> params .tx_max_inline = val ;
760+
761+ if (was_opened )
762+ err = mlx5e_open_locked (dev );
763+
743764 mutex_unlock (& priv -> state_lock );
744765 break ;
745766 default :
0 commit comments