Skip to content

Commit c276aae

Browse files
roidayanSaeed Mahameed
authored andcommitted
net/mlx5: Move mlx5e hw resources into a sub object
This is to separate between resources attributes and other attributes we will want to use. Signed-off-by: Roi Dayan <[email protected]> Signed-off-by: Saeed Mahameed <[email protected]>
1 parent 5a65d85 commit c276aae

File tree

8 files changed

+40
-35
lines changed

8 files changed

+40
-35
lines changed

drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ static int mlx5e_ptp_alloc_txqsq(struct mlx5e_port_ptp *c, int txq_ix,
174174
sq->mdev = mdev;
175175
sq->ch_ix = c->ix;
176176
sq->txq_ix = txq_ix;
177-
sq->uar_map = mdev->mlx5e_res.bfreg.map;
177+
sq->uar_map = mdev->mlx5e_res.hw_objs.bfreg.map;
178178
sq->min_inline_mode = params->tx_min_inline_mode;
179179
sq->hw_mtu = MLX5E_SW2HW_MTU(params, params->sw_mtu);
180180
sq->stats = &c->priv->port_ptp_stats.sq[tc];
@@ -475,7 +475,7 @@ int mlx5e_port_ptp_open(struct mlx5e_priv *priv, struct mlx5e_params *params,
475475
c->ix = 0;
476476
c->pdev = mlx5_core_dma_dev(priv->mdev);
477477
c->netdev = priv->netdev;
478-
c->mkey_be = cpu_to_be32(priv->mdev->mlx5e_res.mkey.key);
478+
c->mkey_be = cpu_to_be32(priv->mdev->mlx5e_res.hw_objs.mkey.key);
479479
c->num_tc = params->num_tc;
480480
c->stats = &priv->port_ptp_stats.ch;
481481
c->lag_port = lag_port;

drivers/net/ethernet/mellanox/mlx5/core/en/trap.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ static int mlx5e_alloc_trap_rq(struct mlx5e_priv *priv, struct mlx5e_rq_param *r
8484
if (err)
8585
goto err_free_frags;
8686

87-
rq->mkey_be = cpu_to_be32(priv->mdev->mlx5e_res.mkey.key);
87+
rq->mkey_be = cpu_to_be32(mdev->mlx5e_res.hw_objs.mkey.key);
8888

8989
mlx5e_rq_set_trap_handlers(rq, params);
9090

@@ -213,7 +213,7 @@ static int mlx5e_create_trap_direct_rq_tir(struct mlx5_core_dev *mdev, struct ml
213213
return -ENOMEM;
214214

215215
tirc = MLX5_ADDR_OF(create_tir_in, in, ctx);
216-
MLX5_SET(tirc, tirc, transport_domain, mdev->mlx5e_res.td.tdn);
216+
MLX5_SET(tirc, tirc, transport_domain, mdev->mlx5e_res.hw_objs.td.tdn);
217217
MLX5_SET(tirc, tirc, rx_hash_fn, MLX5_RX_HASH_FN_NONE);
218218
MLX5_SET(tirc, tirc, disp_type, MLX5_TIRC_DISP_TYPE_DIRECT);
219219
MLX5_SET(tirc, tirc, inline_rqn, rqn);
@@ -266,7 +266,7 @@ static struct mlx5e_trap *mlx5e_open_trap(struct mlx5e_priv *priv)
266266
t->tstamp = &priv->tstamp;
267267
t->pdev = mlx5_core_dma_dev(priv->mdev);
268268
t->netdev = priv->netdev;
269-
t->mkey_be = cpu_to_be32(priv->mdev->mlx5e_res.mkey.key);
269+
t->mkey_be = cpu_to_be32(priv->mdev->mlx5e_res.hw_objs.mkey.key);
270270
t->stats = &priv->trap_stats.ch;
271271

272272
netif_napi_add(netdev, &t->napi, mlx5e_trap_napi_poll, 64);

drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ static int mlx5e_ktls_create_tir(struct mlx5_core_dev *mdev, u32 *tirn, u32 rqtn
8484

8585
tirc = MLX5_ADDR_OF(create_tir_in, in, ctx);
8686

87-
MLX5_SET(tirc, tirc, transport_domain, mdev->mlx5e_res.td.tdn);
87+
MLX5_SET(tirc, tirc, transport_domain, mdev->mlx5e_res.hw_objs.td.tdn);
8888
MLX5_SET(tirc, tirc, disp_type, MLX5_TIRC_DISP_TYPE_INDIRECT);
8989
MLX5_SET(tirc, tirc, rx_hash_fn, MLX5_RX_HASH_FN_INVERTED_XOR8);
9090
MLX5_SET(tirc, tirc, indirect_table, rqtn);

drivers/net/ethernet/mellanox/mlx5/core/en_common.c

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -38,26 +38,29 @@
3838

3939
int mlx5e_create_tir(struct mlx5_core_dev *mdev, struct mlx5e_tir *tir, u32 *in)
4040
{
41+
struct mlx5e_hw_objs *res = &mdev->mlx5e_res.hw_objs;
4142
int err;
4243

4344
err = mlx5_core_create_tir(mdev, in, &tir->tirn);
4445
if (err)
4546
return err;
4647

47-
mutex_lock(&mdev->mlx5e_res.td.list_lock);
48-
list_add(&tir->list, &mdev->mlx5e_res.td.tirs_list);
49-
mutex_unlock(&mdev->mlx5e_res.td.list_lock);
48+
mutex_lock(&res->td.list_lock);
49+
list_add(&tir->list, &res->td.tirs_list);
50+
mutex_unlock(&res->td.list_lock);
5051

5152
return 0;
5253
}
5354

5455
void mlx5e_destroy_tir(struct mlx5_core_dev *mdev,
5556
struct mlx5e_tir *tir)
5657
{
57-
mutex_lock(&mdev->mlx5e_res.td.list_lock);
58+
struct mlx5e_hw_objs *res = &mdev->mlx5e_res.hw_objs;
59+
60+
mutex_lock(&res->td.list_lock);
5861
mlx5_core_destroy_tir(mdev, tir->tirn);
5962
list_del(&tir->list);
60-
mutex_unlock(&mdev->mlx5e_res.td.list_lock);
63+
mutex_unlock(&res->td.list_lock);
6164
}
6265

6366
void mlx5e_mkey_set_relaxed_ordering(struct mlx5_core_dev *mdev, void *mkc)
@@ -99,7 +102,7 @@ static int mlx5e_create_mkey(struct mlx5_core_dev *mdev, u32 pdn,
99102

100103
int mlx5e_create_mdev_resources(struct mlx5_core_dev *mdev)
101104
{
102-
struct mlx5e_resources *res = &mdev->mlx5e_res;
105+
struct mlx5e_hw_objs *res = &mdev->mlx5e_res.hw_objs;
103106
int err;
104107

105108
err = mlx5_core_alloc_pd(mdev, &res->pdn);
@@ -126,8 +129,8 @@ int mlx5e_create_mdev_resources(struct mlx5_core_dev *mdev)
126129
goto err_destroy_mkey;
127130
}
128131

129-
INIT_LIST_HEAD(&mdev->mlx5e_res.td.tirs_list);
130-
mutex_init(&mdev->mlx5e_res.td.list_lock);
132+
INIT_LIST_HEAD(&res->td.tirs_list);
133+
mutex_init(&res->td.list_lock);
131134

132135
return 0;
133136

@@ -142,7 +145,7 @@ int mlx5e_create_mdev_resources(struct mlx5_core_dev *mdev)
142145

143146
void mlx5e_destroy_mdev_resources(struct mlx5_core_dev *mdev)
144147
{
145-
struct mlx5e_resources *res = &mdev->mlx5e_res;
148+
struct mlx5e_hw_objs *res = &mdev->mlx5e_res.hw_objs;
146149

147150
mlx5_free_bfreg(mdev, &res->bfreg);
148151
mlx5_core_destroy_mkey(mdev, &res->mkey);
@@ -180,8 +183,8 @@ int mlx5e_refresh_tirs(struct mlx5e_priv *priv, bool enable_uc_lb,
180183

181184
MLX5_SET(modify_tir_in, in, bitmask.self_lb_en, 1);
182185

183-
mutex_lock(&mdev->mlx5e_res.td.list_lock);
184-
list_for_each_entry(tir, &mdev->mlx5e_res.td.tirs_list, list) {
186+
mutex_lock(&mdev->mlx5e_res.hw_objs.td.list_lock);
187+
list_for_each_entry(tir, &mdev->mlx5e_res.hw_objs.td.tirs_list, list) {
185188
tirn = tir->tirn;
186189
err = mlx5_core_modify_tir(mdev, tirn, in);
187190
if (err)
@@ -192,7 +195,7 @@ int mlx5e_refresh_tirs(struct mlx5e_priv *priv, bool enable_uc_lb,
192195
kvfree(in);
193196
if (err)
194197
netdev_err(priv->netdev, "refresh tir(0x%x) failed, %d\n", tirn, err);
195-
mutex_unlock(&mdev->mlx5e_res.td.list_lock);
198+
mutex_unlock(&mdev->mlx5e_res.hw_objs.td.list_lock);
196199

197200
return err;
198201
}

drivers/net/ethernet/mellanox/mlx5/core/en_main.c

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ static int mlx5e_create_umr_mkey(struct mlx5_core_dev *mdev,
302302
MLX5_SET(mkc, mkc, access_mode_1_0, MLX5_MKC_ACCESS_MODE_MTT);
303303
mlx5e_mkey_set_relaxed_ordering(mdev, mkc);
304304
MLX5_SET(mkc, mkc, qpn, 0xffffff);
305-
MLX5_SET(mkc, mkc, pd, mdev->mlx5e_res.pdn);
305+
MLX5_SET(mkc, mkc, pd, mdev->mlx5e_res.hw_objs.pdn);
306306
MLX5_SET64(mkc, mkc, len, npages << page_shift);
307307
MLX5_SET(mkc, mkc, translations_octword_size,
308308
MLX5_MTT_OCTW(npages));
@@ -1019,7 +1019,7 @@ static int mlx5e_alloc_xdpsq(struct mlx5e_channel *c,
10191019
sq->pdev = c->pdev;
10201020
sq->mkey_be = c->mkey_be;
10211021
sq->channel = c;
1022-
sq->uar_map = mdev->mlx5e_res.bfreg.map;
1022+
sq->uar_map = mdev->mlx5e_res.hw_objs.bfreg.map;
10231023
sq->min_inline_mode = params->tx_min_inline_mode;
10241024
sq->hw_mtu = MLX5E_SW2HW_MTU(params, params->sw_mtu);
10251025
sq->xsk_pool = xsk_pool;
@@ -1090,7 +1090,7 @@ static int mlx5e_alloc_icosq(struct mlx5e_channel *c,
10901090
int err;
10911091

10921092
sq->channel = c;
1093-
sq->uar_map = mdev->mlx5e_res.bfreg.map;
1093+
sq->uar_map = mdev->mlx5e_res.hw_objs.bfreg.map;
10941094

10951095
param->wq.db_numa_node = cpu_to_node(c->cpu);
10961096
err = mlx5_wq_cyc_create(mdev, &param->wq, sqc_wq, wq, &sq->wq_ctrl);
@@ -1174,7 +1174,7 @@ static int mlx5e_alloc_txqsq(struct mlx5e_channel *c,
11741174
sq->priv = c->priv;
11751175
sq->ch_ix = c->ix;
11761176
sq->txq_ix = txq_ix;
1177-
sq->uar_map = mdev->mlx5e_res.bfreg.map;
1177+
sq->uar_map = mdev->mlx5e_res.hw_objs.bfreg.map;
11781178
sq->min_inline_mode = params->tx_min_inline_mode;
11791179
sq->hw_mtu = MLX5E_SW2HW_MTU(params, params->sw_mtu);
11801180
INIT_WORK(&sq->recover_work, mlx5e_tx_err_cqe_work);
@@ -1257,7 +1257,7 @@ static int mlx5e_create_sq(struct mlx5_core_dev *mdev,
12571257
MLX5_SET(sqc, sqc, flush_in_error_en, 1);
12581258

12591259
MLX5_SET(wq, wq, wq_type, MLX5_WQ_TYPE_CYCLIC);
1260-
MLX5_SET(wq, wq, uar_page, mdev->mlx5e_res.bfreg.index);
1260+
MLX5_SET(wq, wq, uar_page, mdev->mlx5e_res.hw_objs.bfreg.index);
12611261
MLX5_SET(wq, wq, log_wq_pg_sz, csp->wq_ctrl->buf.page_shift -
12621262
MLX5_ADAPTER_PAGE_SHIFT);
12631263
MLX5_SET64(wq, wq, dbr_addr, csp->wq_ctrl->db.dma);
@@ -2032,7 +2032,7 @@ static int mlx5e_open_channel(struct mlx5e_priv *priv, int ix,
20322032
c->cpu = cpu;
20332033
c->pdev = mlx5_core_dma_dev(priv->mdev);
20342034
c->netdev = priv->netdev;
2035-
c->mkey_be = cpu_to_be32(priv->mdev->mlx5e_res.mkey.key);
2035+
c->mkey_be = cpu_to_be32(priv->mdev->mlx5e_res.hw_objs.mkey.key);
20362036
c->num_tc = params->num_tc;
20372037
c->xdp = !!params->xdp_prog;
20382038
c->stats = &priv->channel_stats[ix].ch;
@@ -2217,7 +2217,7 @@ void mlx5e_build_rq_param(struct mlx5e_priv *priv,
22172217
MLX5_SET(wq, wq, end_padding_mode, MLX5_WQ_END_PAD_MODE_ALIGN);
22182218
MLX5_SET(wq, wq, log_wq_stride,
22192219
mlx5e_get_rqwq_log_stride(params->rq_wq_type, ndsegs));
2220-
MLX5_SET(wq, wq, pd, mdev->mlx5e_res.pdn);
2220+
MLX5_SET(wq, wq, pd, mdev->mlx5e_res.hw_objs.pdn);
22212221
MLX5_SET(rqc, rqc, counter_set_id, priv->q_counter);
22222222
MLX5_SET(rqc, rqc, vsd, params->vlan_strip_disable);
22232223
MLX5_SET(rqc, rqc, scatter_fcs, params->scatter_fcs_en);
@@ -2248,7 +2248,7 @@ void mlx5e_build_sq_param_common(struct mlx5e_priv *priv,
22482248
void *wq = MLX5_ADDR_OF(sqc, sqc, wq);
22492249

22502250
MLX5_SET(wq, wq, log_wq_stride, ilog2(MLX5_SEND_WQE_BB));
2251-
MLX5_SET(wq, wq, pd, priv->mdev->mlx5e_res.pdn);
2251+
MLX5_SET(wq, wq, pd, priv->mdev->mlx5e_res.hw_objs.pdn);
22522252

22532253
param->wq.buf_numa_node = dev_to_node(mlx5_core_dma_dev(priv->mdev));
22542254
}
@@ -3421,10 +3421,10 @@ int mlx5e_create_tis(struct mlx5_core_dev *mdev, void *in, u32 *tisn)
34213421
{
34223422
void *tisc = MLX5_ADDR_OF(create_tis_in, in, ctx);
34233423

3424-
MLX5_SET(tisc, tisc, transport_domain, mdev->mlx5e_res.td.tdn);
3424+
MLX5_SET(tisc, tisc, transport_domain, mdev->mlx5e_res.hw_objs.td.tdn);
34253425

34263426
if (MLX5_GET(tisc, tisc, tls_en))
3427-
MLX5_SET(tisc, tisc, pd, mdev->mlx5e_res.pdn);
3427+
MLX5_SET(tisc, tisc, pd, mdev->mlx5e_res.hw_objs.pdn);
34283428

34293429
if (mlx5_lag_is_lacp_owner(mdev))
34303430
MLX5_SET(tisc, tisc, strict_lag_tx_port_affinity, 1);
@@ -3494,7 +3494,7 @@ static void mlx5e_cleanup_nic_tx(struct mlx5e_priv *priv)
34943494
static void mlx5e_build_indir_tir_ctx_common(struct mlx5e_priv *priv,
34953495
u32 rqtn, u32 *tirc)
34963496
{
3497-
MLX5_SET(tirc, tirc, transport_domain, priv->mdev->mlx5e_res.td.tdn);
3497+
MLX5_SET(tirc, tirc, transport_domain, priv->mdev->mlx5e_res.hw_objs.td.tdn);
34983498
MLX5_SET(tirc, tirc, disp_type, MLX5_TIRC_DISP_TYPE_INDIRECT);
34993499
MLX5_SET(tirc, tirc, indirect_table, rqtn);
35003500
MLX5_SET(tirc, tirc, tunneled_offload_en,

drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -708,7 +708,7 @@ static void mlx5_rdma_netdev_free(struct net_device *netdev)
708708

709709
static bool mlx5_is_sub_interface(struct mlx5_core_dev *mdev)
710710
{
711-
return mdev->mlx5e_res.pdn != 0;
711+
return mdev->mlx5e_res.hw_objs.pdn != 0;
712712
}
713713

714714
static const struct mlx5e_profile *mlx5_get_profile(struct mlx5_core_dev *mdev)

drivers/net/ethernet/mellanox/mlx5/core/lib/crypto.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ int mlx5_create_encryption_key(struct mlx5_core_dev *mdev,
4646
MLX5_CMD_OP_CREATE_GENERAL_OBJECT);
4747
MLX5_SET(general_obj_in_cmd_hdr, in, obj_type,
4848
MLX5_GENERAL_OBJECT_TYPES_ENCRYPTION_KEY);
49-
MLX5_SET(encryption_key_obj, obj, pd, mdev->mlx5e_res.pdn);
49+
MLX5_SET(encryption_key_obj, obj, pd, mdev->mlx5e_res.hw_objs.pdn);
5050

5151
err = mlx5_cmd_exec(mdev, in, sizeof(in), out, sizeof(out));
5252
if (!err)

include/linux/mlx5/driver.h

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -644,10 +644,12 @@ struct mlx5_td {
644644
};
645645

646646
struct mlx5e_resources {
647-
u32 pdn;
648-
struct mlx5_td td;
649-
struct mlx5_core_mkey mkey;
650-
struct mlx5_sq_bfreg bfreg;
647+
struct mlx5e_hw_objs {
648+
u32 pdn;
649+
struct mlx5_td td;
650+
struct mlx5_core_mkey mkey;
651+
struct mlx5_sq_bfreg bfreg;
652+
} hw_objs;
651653
};
652654

653655
enum mlx5_sw_icm_type {

0 commit comments

Comments
 (0)