]> git.karo-electronics.de Git - linux-beck.git/commitdiff
IB/mlx5: Report mlx5 multi packet WQE caps during query
authorBodong Wang <bodong@mellanox.com>
Mon, 31 Oct 2016 10:15:21 +0000 (12:15 +0200)
committerDoug Ledford <dledford@redhat.com>
Tue, 13 Dec 2016 18:33:25 +0000 (13:33 -0500)
The capabilities whether hardware support multi packet WQE or not is
exposed to user space through query_device by uhw.

Signed-off-by: Bodong Wang <bodong@mellanox.com>
Reviewed-by: Matan Barak <matanb@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/hw/mlx5/main.c
include/uapi/rdma/mlx5-abi.h

index 46facd30e6727f5a1e4ab17a2aaa58fce0924a88..a16207c333336be21da109ecf08c333af2f4309c 100644 (file)
@@ -672,6 +672,17 @@ static int mlx5_ib_query_device(struct ib_device *ibdev,
                        1 << MLX5_CAP_GEN(dev->mdev, log_max_rq);
        }
 
+       if (field_avail(typeof(resp), mlx5_ib_support_multi_pkt_send_wqes,
+                       uhw->outlen)) {
+               resp.mlx5_ib_support_multi_pkt_send_wqes =
+                       MLX5_CAP_ETH(mdev, multi_pkt_send_wqe);
+               resp.response_length +=
+                       sizeof(resp.mlx5_ib_support_multi_pkt_send_wqes);
+       }
+
+       if (field_avail(typeof(resp), reserved, uhw->outlen))
+               resp.response_length += sizeof(resp.reserved);
+
        if (uhw->outlen) {
                err = ib_copy_to_udata(uhw, &resp, resp.response_length);
 
index f5d0f4e83b59f4f507ad0e2da87bd4611b64e1be..93d6b9fe8e78b56aa2682f3410adef72a3a9412f 100644 (file)
@@ -129,6 +129,8 @@ struct mlx5_ib_query_device_resp {
        __u32   response_length;
        struct  mlx5_ib_tso_caps tso_caps;
        struct  mlx5_ib_rss_caps rss_caps;
+       __u32   mlx5_ib_support_multi_pkt_send_wqes;
+       __u32   reserved;
 };
 
 struct mlx5_ib_create_cq {