@@ -1675,7 +1675,7 @@ static int mlx5e_open_tx_cqs(struct mlx5e_channel *c,
1675
1675
1676
1676
for (tc = 0 ; tc < c -> num_tc ; tc ++ ) {
1677
1677
err = mlx5e_open_cq (c , params -> tx_cq_moderation ,
1678
- & cparam -> tx_cq , & c -> sq [tc ].cq );
1678
+ & cparam -> txq_sq . cqp , & c -> sq [tc ].cq );
1679
1679
if (err )
1680
1680
goto err_close_tx_cqs ;
1681
1681
}
@@ -1707,7 +1707,7 @@ static int mlx5e_open_sqs(struct mlx5e_channel *c,
1707
1707
int txq_ix = c -> ix + tc * params -> num_channels ;
1708
1708
1709
1709
err = mlx5e_open_txqsq (c , c -> priv -> tisn [c -> lag_port ][tc ], txq_ix ,
1710
- params , & cparam -> sq , & c -> sq [tc ], tc );
1710
+ params , & cparam -> txq_sq , & c -> sq [tc ], tc );
1711
1711
if (err )
1712
1712
goto err_close_sqs ;
1713
1713
}
@@ -1817,37 +1817,36 @@ static int mlx5e_open_queues(struct mlx5e_channel *c,
1817
1817
struct dim_cq_moder icocq_moder = {0 , 0 };
1818
1818
int err ;
1819
1819
1820
- err = mlx5e_open_cq (c , icocq_moder , & cparam -> icosq_cq , & c -> async_icosq .cq );
1820
+ err = mlx5e_open_cq (c , icocq_moder , & cparam -> icosq . cqp , & c -> async_icosq .cq );
1821
1821
if (err )
1822
1822
return err ;
1823
1823
1824
- err = mlx5e_open_cq (c , icocq_moder , & cparam -> icosq_cq , & c -> icosq .cq );
1824
+ err = mlx5e_open_cq (c , icocq_moder , & cparam -> async_icosq . cqp , & c -> icosq .cq );
1825
1825
if (err )
1826
1826
goto err_close_async_icosq_cq ;
1827
1827
1828
1828
err = mlx5e_open_tx_cqs (c , params , cparam );
1829
1829
if (err )
1830
1830
goto err_close_icosq_cq ;
1831
1831
1832
- err = mlx5e_open_cq (c , params -> tx_cq_moderation , & cparam -> tx_cq , & c -> xdpsq .cq );
1832
+ err = mlx5e_open_cq (c , params -> tx_cq_moderation , & cparam -> xdp_sq . cqp , & c -> xdpsq .cq );
1833
1833
if (err )
1834
1834
goto err_close_tx_cqs ;
1835
1835
1836
- err = mlx5e_open_cq (c , params -> rx_cq_moderation , & cparam -> rx_cq , & c -> rq .cq );
1836
+ err = mlx5e_open_cq (c , params -> rx_cq_moderation , & cparam -> rq . cqp , & c -> rq .cq );
1837
1837
if (err )
1838
1838
goto err_close_xdp_tx_cqs ;
1839
1839
1840
- /* XDP SQ CQ params are same as normal TXQ sq CQ params */
1841
1840
err = c -> xdp ? mlx5e_open_cq (c , params -> tx_cq_moderation ,
1842
- & cparam -> tx_cq , & c -> rq_xdpsq .cq ) : 0 ;
1841
+ & cparam -> xdp_sq . cqp , & c -> rq_xdpsq .cq ) : 0 ;
1843
1842
if (err )
1844
1843
goto err_close_rx_cq ;
1845
1844
1846
1845
napi_enable (& c -> napi );
1847
1846
1848
1847
spin_lock_init (& c -> async_icosq_lock );
1849
1848
1850
- err = mlx5e_open_icosq (c , params , & cparam -> icosq , & c -> async_icosq );
1849
+ err = mlx5e_open_icosq (c , params , & cparam -> async_icosq , & c -> async_icosq );
1851
1850
if (err )
1852
1851
goto err_disable_napi ;
1853
1852
@@ -2158,6 +2157,7 @@ void mlx5e_build_rq_param(struct mlx5e_priv *priv,
2158
2157
MLX5_SET (rqc , rqc , scatter_fcs , params -> scatter_fcs_en );
2159
2158
2160
2159
param -> wq .buf_numa_node = dev_to_node (mdev -> device );
2160
+ mlx5e_build_rx_cq_param (priv , params , xsk , & param -> cqp );
2161
2161
}
2162
2162
2163
2163
static void mlx5e_build_drop_rq_param (struct mlx5e_priv * priv ,
@@ -2200,6 +2200,7 @@ static void mlx5e_build_sq_param(struct mlx5e_priv *priv,
2200
2200
mlx5e_build_sq_param_common (priv , param );
2201
2201
MLX5_SET (wq , wq , log_wq_sz , params -> log_sq_size );
2202
2202
MLX5_SET (sqc , sqc , allow_swp , allow_swp );
2203
+ mlx5e_build_tx_cq_param (priv , params , & param -> cqp );
2203
2204
}
2204
2205
2205
2206
static void mlx5e_build_common_cq_param (struct mlx5e_priv * priv ,
@@ -2276,6 +2277,7 @@ void mlx5e_build_icosq_param(struct mlx5e_priv *priv,
2276
2277
2277
2278
MLX5_SET (wq , wq , log_wq_sz , log_wq_size );
2278
2279
MLX5_SET (sqc , sqc , reg_umr , MLX5_CAP_ETH (priv -> mdev , reg_umr_sq ));
2280
+ mlx5e_build_ico_cq_param (priv , log_wq_size , & param -> cqp );
2279
2281
}
2280
2282
2281
2283
void mlx5e_build_xdpsq_param (struct mlx5e_priv * priv ,
@@ -2288,6 +2290,7 @@ void mlx5e_build_xdpsq_param(struct mlx5e_priv *priv,
2288
2290
mlx5e_build_sq_param_common (priv , param );
2289
2291
MLX5_SET (wq , wq , log_wq_sz , params -> log_sq_size );
2290
2292
param -> is_mpw = MLX5E_GET_PFLAG (params , MLX5E_PFLAG_XDP_TX_MPWQE );
2293
+ mlx5e_build_tx_cq_param (priv , params , & param -> cqp );
2291
2294
}
2292
2295
2293
2296
static u8 mlx5e_build_icosq_log_wq_sz (struct mlx5e_params * params ,
@@ -2306,18 +2309,17 @@ static void mlx5e_build_channel_param(struct mlx5e_priv *priv,
2306
2309
struct mlx5e_params * params ,
2307
2310
struct mlx5e_channel_param * cparam )
2308
2311
{
2309
- u8 icosq_log_wq_sz ;
2312
+ u8 icosq_log_wq_sz , async_icosq_log_wq_sz ;
2310
2313
2311
2314
mlx5e_build_rq_param (priv , params , NULL , & cparam -> rq );
2312
2315
2313
2316
icosq_log_wq_sz = mlx5e_build_icosq_log_wq_sz (params , & cparam -> rq );
2317
+ async_icosq_log_wq_sz = MLX5E_PARAMS_MINIMUM_LOG_SQ_SIZE ;
2314
2318
2315
- mlx5e_build_sq_param (priv , params , & cparam -> sq );
2319
+ mlx5e_build_sq_param (priv , params , & cparam -> txq_sq );
2316
2320
mlx5e_build_xdpsq_param (priv , params , & cparam -> xdp_sq );
2317
2321
mlx5e_build_icosq_param (priv , icosq_log_wq_sz , & cparam -> icosq );
2318
- mlx5e_build_rx_cq_param (priv , params , NULL , & cparam -> rx_cq );
2319
- mlx5e_build_tx_cq_param (priv , params , & cparam -> tx_cq );
2320
- mlx5e_build_ico_cq_param (priv , icosq_log_wq_sz , & cparam -> icosq_cq );
2322
+ mlx5e_build_icosq_param (priv , async_icosq_log_wq_sz , & cparam -> async_icosq );
2321
2323
}
2322
2324
2323
2325
int mlx5e_open_channels (struct mlx5e_priv * priv ,
0 commit comments