浏览代码

IB/mlx4: Exposing modify CQ callback to uverbs layer

Exposed mlx4_ib_modify_cq to be called from ib device
verb list.

Signed-off-by: Yonatan Cohen <yonatanc@mellanox.com>
Reviewed-by: Majd Dibbiny <majd@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Yonatan Cohen 7 年之前
父节点
当前提交
34d9a270e7
共有 3 个文件被更改,包括 7 次插入0 次删除
  1. 3 0
      drivers/infiniband/hw/mlx4/main.c
  2. 1 0
      drivers/infiniband/hw/mlx4/mlx4_ib.h
  3. 3 0
      include/linux/mlx4/cq.h

+ 3 - 0
drivers/infiniband/hw/mlx4/main.c

@@ -2750,6 +2750,9 @@ static void *mlx4_ib_add(struct mlx4_dev *dev)
 	ibdev->ib_dev.get_dev_fw_str    = get_fw_ver_str;
 	ibdev->ib_dev.get_dev_fw_str    = get_fw_ver_str;
 	ibdev->ib_dev.disassociate_ucontext = mlx4_ib_disassociate_ucontext;
 	ibdev->ib_dev.disassociate_ucontext = mlx4_ib_disassociate_ucontext;
 
 
+	ibdev->ib_dev.uverbs_ex_cmd_mask |=
+		(1ull << IB_USER_VERBS_EX_CMD_MODIFY_CQ);
+
 	if ((dev->caps.flags2 & MLX4_DEV_CAP_FLAG2_RSS) &&
 	if ((dev->caps.flags2 & MLX4_DEV_CAP_FLAG2_RSS) &&
 	    ((mlx4_ib_port_link_layer(&ibdev->ib_dev, 1) ==
 	    ((mlx4_ib_port_link_layer(&ibdev->ib_dev, 1) ==
 	    IB_LINK_LAYER_ETHERNET) ||
 	    IB_LINK_LAYER_ETHERNET) ||

+ 1 - 0
drivers/infiniband/hw/mlx4/mlx4_ib.h

@@ -47,6 +47,7 @@
 #include <linux/mlx4/device.h>
 #include <linux/mlx4/device.h>
 #include <linux/mlx4/doorbell.h>
 #include <linux/mlx4/doorbell.h>
 #include <linux/mlx4/qp.h>
 #include <linux/mlx4/qp.h>
+#include <linux/mlx4/cq.h>
 
 
 #define MLX4_IB_DRV_NAME	"mlx4_ib"
 #define MLX4_IB_DRV_NAME	"mlx4_ib"
 
 

+ 3 - 0
include/linux/mlx4/cq.h

@@ -136,6 +136,9 @@ enum {
 	MLX4_CQE_BAD_FCS                 = 1 << 4,
 	MLX4_CQE_BAD_FCS                 = 1 << 4,
 };
 };
 
 
+#define MLX4_MAX_CQ_PERIOD (BIT(16) - 1)
+#define MLX4_MAX_CQ_COUNT (BIT(16) - 1)
+
 static inline void mlx4_cq_arm(struct mlx4_cq *cq, u32 cmd,
 static inline void mlx4_cq_arm(struct mlx4_cq *cq, u32 cmd,
 			       void __iomem *uar_page,
 			       void __iomem *uar_page,
 			       spinlock_t *doorbell_lock)
 			       spinlock_t *doorbell_lock)