From d53a513aedab1b4d2405ccb1157cd0b9f16f8afb Mon Sep 17 00:00:00 2001 From: Thomas Monjalon Date: Thu, 16 Apr 2020 17:59:04 +0200 Subject: [PATCH] common/mlx5: fix build with rdma-core 21 drivers/common/mlx5/mlx5_glue.c: In function 'mlx5_glue_devx_qp_query': drivers/common/mlx5/mlx5_glue.c:1010:9: error: implicit declaration of function 'mlx5dv_devx_qp_query' The function mlx5dv_devx_qp_query() was added in rdma-core 22. This function is compiled only if HAVE_IBV_DEVX_OBJ, which is true if the function mlx5dv_devx_obj_create is found. Unfortunately mlx5dv_devx_obj_create() was introduced in rdma-core 21, when mlx5dv_devx_qp_query() did not exist yet. A new flag HAVE_IBV_DEVX_QP is added when mlx5dv_devx_qp_query() is found. Fixes: 62d6f70f30f4 ("net/mlx5: add glue for queue query via DevX") Cc: stable@dpdk.org Signed-off-by: Thomas Monjalon Acked-by: Viacheslav Ovsiienko --- drivers/common/mlx5/Makefile | 5 +++++ drivers/common/mlx5/meson.build | 2 ++ drivers/common/mlx5/mlx5_glue.c | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/common/mlx5/Makefile b/drivers/common/mlx5/Makefile index 0c67755225..8b663ef25f 100644 --- a/drivers/common/mlx5/Makefile +++ b/drivers/common/mlx5/Makefile @@ -152,6 +152,11 @@ mlx5_autoconf.h.new: $(RTE_SDK)/buildtools/auto-config-h.sh infiniband/mlx5dv.h \ func mlx5dv_devx_obj_query_async \ $(AUTOCONF_OUTPUT) + $Q sh -- '$<' '$@' \ + HAVE_IBV_DEVX_QP \ + infiniband/mlx5dv.h \ + func mlx5dv_devx_qp_query \ + $(AUTOCONF_OUTPUT) $Q sh -- '$<' '$@' \ HAVE_MLX5DV_DR_ACTION_DEST_DEVX_TIR \ infiniband/mlx5dv.h \ diff --git a/drivers/common/mlx5/meson.build b/drivers/common/mlx5/meson.build index 347d282193..165aa25523 100644 --- a/drivers/common/mlx5/meson.build +++ b/drivers/common/mlx5/meson.build @@ -120,6 +120,8 @@ has_sym_args = [ 'MLX5DV_FLOW_ACTION_COUNTERS_DEVX' ], [ 'HAVE_IBV_DEVX_ASYNC', 'infiniband/mlx5dv.h', 'mlx5dv_devx_obj_query_async' ], + [ 'HAVE_IBV_DEVX_QP', 'infiniband/mlx5dv.h', + 'mlx5dv_devx_qp_query' ], [ 'HAVE_MLX5DV_DR_ACTION_DEST_DEVX_TIR', 'infiniband/mlx5dv.h', 'mlx5dv_dr_action_create_dest_devx_tir' ], [ 'HAVE_IBV_DEVX_EVENT', 'infiniband/mlx5dv.h', diff --git a/drivers/common/mlx5/mlx5_glue.c b/drivers/common/mlx5/mlx5_glue.c index 428de0ffd9..f270f677b7 100644 --- a/drivers/common/mlx5/mlx5_glue.c +++ b/drivers/common/mlx5/mlx5_glue.c @@ -1006,7 +1006,7 @@ mlx5_glue_devx_qp_query(struct ibv_qp *qp, const void *in, size_t inlen, void *out, size_t outlen) { -#ifdef HAVE_IBV_DEVX_OBJ +#ifdef HAVE_IBV_DEVX_QP return mlx5dv_devx_qp_query(qp, in, inlen, out, outlen); #else (void)qp; -- 2.20.1