Subject: linux-next: build failure after merge of the net-next tree

From: Stephen Rothwell <[email-masked]>
Date: Thu, 28 Oct 2021 12:56:12 +1100

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 <[email-masked]>
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 <[email-masked]>
---
 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