@@ -2263,22 +2263,28 @@ void mlx5e_set_netdev_mtu_boundaries(struct mlx5e_priv *priv)
22632263 ETH_MAX_MTU );
22642264}
22652265
2266- static void mlx5e_netdev_set_tcs (struct net_device * netdev , u16 nch , u8 ntc )
2266+ static int mlx5e_netdev_set_tcs (struct net_device * netdev , u16 nch , u8 ntc )
22672267{
2268- int tc ;
2268+ int tc , err ;
22692269
22702270 netdev_reset_tc (netdev );
22712271
22722272 if (ntc == 1 )
2273- return ;
2273+ return 0 ;
22742274
2275- netdev_set_num_tc (netdev , ntc );
2275+ err = netdev_set_num_tc (netdev , ntc );
2276+ if (err ) {
2277+ netdev_WARN (netdev , "netdev_set_num_tc failed (%d), ntc = %d\n" , err , ntc );
2278+ return err ;
2279+ }
22762280
22772281 /* Map netdev TCs to offset 0
22782282 * We have our own UP to TXQ mapping for QoS
22792283 */
22802284 for (tc = 0 ; tc < ntc ; tc ++ )
22812285 netdev_set_tc_queue (netdev , tc , nch , 0 );
2286+
2287+ return 0 ;
22822288}
22832289
22842290int mlx5e_update_tx_netdev_queues (struct mlx5e_priv * priv )
@@ -2315,8 +2321,9 @@ static int mlx5e_update_netdev_queues(struct mlx5e_priv *priv)
23152321 ntc = mlx5e_get_dcb_num_tc (& priv -> channels .params );
23162322 num_rxqs = nch * priv -> profile -> rq_groups ;
23172323
2318- mlx5e_netdev_set_tcs (netdev , nch , ntc );
2319-
2324+ err = mlx5e_netdev_set_tcs (netdev , nch , ntc );
2325+ if (err )
2326+ goto err_out ;
23202327 err = mlx5e_update_tx_netdev_queues (priv );
23212328 if (err )
23222329 goto err_tcs ;
@@ -2338,6 +2345,7 @@ static int mlx5e_update_netdev_queues(struct mlx5e_priv *priv)
23382345
23392346err_tcs :
23402347 mlx5e_netdev_set_tcs (netdev , old_num_txqs / old_ntc , old_ntc );
2348+ err_out :
23412349 return err ;
23422350}
23432351
0 commit comments