Hi all, After merging the net-next tree, today's linux-next build (x86_64 allmodconfig) failed like this: In file included from drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.h:11, from drivers/net/ethernet/mellanox/mlx5/core/eswitch.h:48, from drivers/net/ethernet/mellanox/mlx5/core/main.c:59: drivers/net/ethernet/mellanox/mlx5/core/en.h:646:24: error: field 'mkey' has incomplete type 646 | struct mlx5_core_mkey mkey; | ^~~~ In file included from drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.h:11, from drivers/net/ethernet/mellanox/mlx5/core/eswitch.h:48, from drivers/net/ethernet/mellanox/mlx5/core/eq.c:18: drivers/net/ethernet/mellanox/mlx5/core/en.h:646:24: error: field 'mkey' has incomplete type 646 | struct mlx5_core_mkey mkey; | ^~~~ drivers/net/ethernet/mellanox/mlx5/core/en_rx.c: In function 'mlx5e_build_shampo_hd_umr': drivers/net/ethernet/mellanox/mlx5/core/en_rx.c:547:45: error: request for member 'key' in something not a structure or union 547 | u32 lkey = rq->mdev->mlx5e_res.hw_objs.mkey.key; | ^ Caused by commits e5ca8fb08ab2 ("net/mlx5e: Add control path for SHAMPO feature") 64509b052525 ("net/mlx5e: Add data path for SHAMPO feature") interacting with commit 83fec3f12a59 ("RDMA/mlx5: Replace struct mlx5_core_mkey by u32 key") from the rmda tree. I have applied the following merge fix patch. From: Stephen Rothwell Date: Thu, 28 Oct 2021 12:36:29 +1100 Subject: [PATCH] fixup for "RDMA/mlx5: Replace struct mlx5_core_mkey by u32 key" Signed-off-by: Stephen Rothwell --- drivers/net/ethernet/mellanox/mlx5/core/en.h | 2 +- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 11 +++++------ drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 2 +- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en.h b/drivers/net/ethernet/mellanox/mlx5/core/en.h index 5083a8a7eceb..f0ac6b0d9653 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/en.h @@ -643,7 +643,7 @@ struct mlx5e_rq_frags_info { }; struct mlx5e_shampo_hd { - struct mlx5_core_mkey mkey; + u32 mkey; struct mlx5e_dma_info *info; struct page *last_page; u16 hd_per_wq; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c index 43b7a1e6a482..9febe4a916df 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c @@ -323,8 +323,7 @@ static int mlx5e_create_umr_mtt_mkey(struct mlx5_core_dev *mdev, } static int mlx5e_create_umr_klm_mkey(struct mlx5_core_dev *mdev, - u64 nentries, - struct mlx5_core_mkey *umr_mkey) + u64 nentries, u32 *umr_mkey) { int inlen; void *mkc; @@ -518,7 +517,7 @@ static int mlx5_rq_shampo_alloc(struct mlx5_core_dev *mdev, goto err_hw_gro_data; } rq->mpwqe.shampo->key = - cpu_to_be32(rq->mpwqe.shampo->mkey.key); + cpu_to_be32(rq->mpwqe.shampo->mkey); rq->mpwqe.shampo->hd_per_wqe = mlx5e_shampo_hd_per_wqe(mdev, params, rqp); wq_size = BIT(MLX5_GET(wq, wqc, log_wq_sz)); @@ -529,7 +528,7 @@ static int mlx5_rq_shampo_alloc(struct mlx5_core_dev *mdev, err_hw_gro_data: mlx5e_rq_shampo_hd_info_free(rq); err_shampo_info: - mlx5_core_destroy_mkey(mdev, &rq->mpwqe.shampo->mkey); + mlx5_core_destroy_mkey(mdev, rq->mpwqe.shampo->mkey); err_shampo_hd: mlx5e_rq_shampo_hd_free(rq); out: @@ -543,7 +542,7 @@ static void mlx5e_rq_free_shampo(struct mlx5e_rq *rq) kvfree(rq->hw_gro_data); mlx5e_rq_shampo_hd_info_free(rq); - mlx5_core_destroy_mkey(rq->mdev, &rq->mpwqe.shampo->mkey); + mlx5_core_destroy_mkey(rq->mdev, rq->mpwqe.shampo->mkey); mlx5e_rq_shampo_hd_free(rq); } @@ -819,7 +818,7 @@ int mlx5e_create_rq(struct mlx5e_rq *rq, struct mlx5e_rq_param *param) if (test_bit(MLX5E_RQ_STATE_SHAMPO, &rq->state)) { MLX5_SET(wq, wq, log_headers_buffer_entry_num, order_base_2(rq->mpwqe.shampo->hd_per_wq)); - MLX5_SET(wq, wq, headers_mkey, rq->mpwqe.shampo->mkey.key); + MLX5_SET(wq, wq, headers_mkey, rq->mpwqe.shampo->mkey); } mlx5_fill_page_frag_array(&rq->wq_ctrl.buf, diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c index fe979edd96dc..f63c8ff3ef3f 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c @@ -544,7 +544,7 @@ static int mlx5e_build_shampo_hd_umr(struct mlx5e_rq *rq, { struct mlx5e_shampo_hd *shampo = rq->mpwqe.shampo; u16 entries, pi, i, header_offset, err, wqe_bbs, new_entries; - u32 lkey = rq->mdev->mlx5e_res.hw_objs.mkey.key; + u32 lkey = rq->mdev->mlx5e_res.hw_objs.mkey; struct page *page = shampo->last_page; u64 addr = shampo->last_addr; struct mlx5e_dma_info *dma_info; -- 2.33.0 -- Cheers, Stephen Rothwell