aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/mlx5/user.h
diff options
context:
space:
mode:
authorEli Cohen <eli@dev.mellanox.co.il>2014-01-30 13:49:48 +0200
committerRoland Dreier <roland@purestorage.com>2014-02-06 23:00:48 -0800
commit78c0f98cc9dd46824fa66f35f14ea24ba733d145 (patch)
tree16954ba1b3c48438748dcb954c01695eb3902005 /drivers/infiniband/hw/mlx5/user.h
parentIB/mlx5: Fix RC transport send queue overhead computation (diff)
downloadlinux-dev-78c0f98cc9dd46824fa66f35f14ea24ba733d145.tar.xz
linux-dev-78c0f98cc9dd46824fa66f35f14ea24ba733d145.zip
IB/mlx5: Fix binary compatibility with libmlx5
Commit c1be5232d21d ("Fix micro UAR allocator") broke binary compatibility between libmlx5 and mlx5_ib since it defines a different value to the number of micro UARs per page, leading to wrong calculation in libmlx5. This patch defines struct mlx5_ib_alloc_ucontext_req_v2 as an extension to struct mlx5_ib_alloc_ucontext_req. The extended size is determined in mlx5_ib_alloc_ucontext() and in case of old library we use uuarn 0 which works fine -- this is acheived due to create_user_qp() falling back from high to medium then to low class where low class will return 0. For new libraries we use the more sophisticated allocation algorithm. Signed-off-by: Eli Cohen <eli@mellanox.com> Reviewed-by: Yann Droneaud <ydroneaud@opteya.com> Signed-off-by: Roland Dreier <roland@purestorage.com>
Diffstat (limited to 'drivers/infiniband/hw/mlx5/user.h')
-rw-r--r--drivers/infiniband/hw/mlx5/user.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/mlx5/user.h b/drivers/infiniband/hw/mlx5/user.h
index 32a2a5dfc523..0f4f8e42a17f 100644
--- a/drivers/infiniband/hw/mlx5/user.h
+++ b/drivers/infiniband/hw/mlx5/user.h
@@ -62,6 +62,13 @@ struct mlx5_ib_alloc_ucontext_req {
__u32 num_low_latency_uuars;
};
+struct mlx5_ib_alloc_ucontext_req_v2 {
+ __u32 total_num_uuars;
+ __u32 num_low_latency_uuars;
+ __u32 flags;
+ __u32 reserved;
+};
+
struct mlx5_ib_alloc_ucontext_resp {
__u32 qp_tab_size;
__u32 bf_reg_size;