git: 06690c34624c - main - libmlx5: Fix ABI break from revising the UAR pointer

From: Konstantin Belousov <kib_at_FreeBSD.org>
Date: Wed, 16 Sep 2026 14:13:05 UTC
The branch main has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=06690c34624c37998283ad87e24f50c97105ebbd

commit 06690c34624c37998283ad87e24f50c97105ebbd
Author:     Vag Singh <vag.singh@oneconvergence.com>
AuthorDate: 2025-08-14 06:36:45 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2026-09-16 14:12:08 +0000

    libmlx5: Fix ABI break from revising the UAR pointer
    
    [PATCH 18/31] FreeBSD OFED support for DPDK MLX5 PMD
    
    Provide two implementations of mlx5dv_init_obj, one that has the
    historical behaviour that has existed until now of returning the
    void **uar and a new version that returns the 'void *' version
    renamed to cq_uar.
    
    Differential revision:  https://reviews.freebsd.org/D32192
    MFC after:      1 month
---
 contrib/ofed/libmlx5/libmlx5.map | 6 +++++-
 contrib/ofed/libmlx5/mlx5.c      | 2 +-
 contrib/ofed/libmlx5/mlx5dv.h    | 2 +-
 3 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/contrib/ofed/libmlx5/libmlx5.map b/contrib/ofed/libmlx5/libmlx5.map
index 6d9fb25f00a3..976b8cf35849 100644
--- a/contrib/ofed/libmlx5/libmlx5.map
+++ b/contrib/ofed/libmlx5/libmlx5.map
@@ -3,7 +3,6 @@
 MLX5_1.0 {
 	global:
 		mlx5dv_query_device;
-		mlx5dv_init_obj;
 	local: *;
 };
 
@@ -11,3 +10,8 @@ MLX5_1.1 {
 	global:
 		mlx5dv_create_cq;
 } MLX5_1.0;
+
+MLX5_1.2 {
+	global:
+		mlx5dv_init_obj;
+} MLX5_1.1;
diff --git a/contrib/ofed/libmlx5/mlx5.c b/contrib/ofed/libmlx5/mlx5.c
index 56abaa965a6c..ef6c833c5a31 100644
--- a/contrib/ofed/libmlx5/mlx5.c
+++ b/contrib/ofed/libmlx5/mlx5.c
@@ -712,7 +712,7 @@ static int mlx5dv_get_cq(struct ibv_cq *cq_in,
 	cq_out->cqe_size  = mcq->cqe_sz;
 	cq_out->buf       = mcq->active_buf->buf;
 	cq_out->dbrec     = mcq->dbrec;
-	cq_out->uar	  = mctx->uar;
+	cq_out->cq_uar	  = mctx->uar[0];
 
 	mcq->flags	 |= MLX5_CQ_FLAGS_DV_OWNED;
 
diff --git a/contrib/ofed/libmlx5/mlx5dv.h b/contrib/ofed/libmlx5/mlx5dv.h
index 856b6c68558d..734303c1ca38 100644
--- a/contrib/ofed/libmlx5/mlx5dv.h
+++ b/contrib/ofed/libmlx5/mlx5dv.h
@@ -136,7 +136,7 @@ struct mlx5dv_cq {
 	__be32			*dbrec;
 	uint32_t		cqe_cnt;
 	uint32_t		cqe_size;
-	void			*uar;
+	void			*cq_uar;
 	uint32_t		cqn;
 	uint64_t		comp_mask;
 };