aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIsrael Rukshin <israelr@mellanox.com>2019-06-11 11:52:50 -0400
committerJason Gunthorpe <jgg@mellanox.com>2019-06-24 10:49:27 -0400
commitc0a6cbb9cbccffc249743afa16e64f16c46c80b2 (patch)
tree5d2cdcd5da9126d1e6053fd47ca1071eddcf3719
parent5a6781a558cc3909851c04a0d44e3a87a35aad94 (diff)
RDMA/core: Rename signature qp create flag and signature device capability
Rename IB_QP_CREATE_SIGNATURE_EN to IB_QP_CREATE_INTEGRITY_EN and IB_DEVICE_SIGNATURE_HANDOVER to IB_DEVICE_INTEGRITY_HANDOVER. Signed-off-by: Israel Rukshin <israelr@mellanox.com> Reviewed-by: Max Gurtovoy <maxg@mellanox.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
-rw-r--r--drivers/infiniband/core/rw.c4
-rw-r--r--drivers/infiniband/hw/mlx5/main.c2
-rw-r--r--drivers/infiniband/hw/mlx5/mlx5_ib.h3
-rw-r--r--drivers/infiniband/hw/mlx5/qp.c14
-rw-r--r--drivers/infiniband/ulp/iser/iser_verbs.c4
-rw-r--r--drivers/infiniband/ulp/isert/ib_isert.c4
-rw-r--r--include/rdma/ib_verbs.h4
7 files changed, 17 insertions, 18 deletions
diff --git a/drivers/infiniband/core/rw.c b/drivers/infiniband/core/rw.c
index f825990bacfa..b45b49a2ccfc 100644
--- a/drivers/infiniband/core/rw.c
+++ b/drivers/infiniband/core/rw.c
@@ -688,7 +688,7 @@ void rdma_rw_init_qp(struct ib_device *dev, struct ib_qp_init_attr *attr)
688 * we'll need two additional MRs for the registrations and the 688 * we'll need two additional MRs for the registrations and the
689 * invalidation. 689 * invalidation.
690 */ 690 */
691 if (attr->create_flags & IB_QP_CREATE_SIGNATURE_EN) 691 if (attr->create_flags & IB_QP_CREATE_INTEGRITY_EN)
692 factor += 6; /* (inv + reg) * (data + prot + sig) */ 692 factor += 6; /* (inv + reg) * (data + prot + sig) */
693 else if (rdma_rw_can_use_mr(dev, attr->port_num)) 693 else if (rdma_rw_can_use_mr(dev, attr->port_num))
694 factor += 2; /* inv + reg */ 694 factor += 2; /* inv + reg */
@@ -709,7 +709,7 @@ int rdma_rw_init_mrs(struct ib_qp *qp, struct ib_qp_init_attr *attr)
709 u32 nr_mrs = 0, nr_sig_mrs = 0; 709 u32 nr_mrs = 0, nr_sig_mrs = 0;
710 int ret = 0; 710 int ret = 0;
711 711
712 if (attr->create_flags & IB_QP_CREATE_SIGNATURE_EN) { 712 if (attr->create_flags & IB_QP_CREATE_INTEGRITY_EN) {
713 nr_sig_mrs = attr->cap.max_rdma_ctxs; 713 nr_sig_mrs = attr->cap.max_rdma_ctxs;
714 nr_mrs = attr->cap.max_rdma_ctxs * 2; 714 nr_mrs = attr->cap.max_rdma_ctxs * 2;
715 } else if (rdma_rw_can_use_mr(dev, attr->port_num)) { 715 } else if (rdma_rw_can_use_mr(dev, attr->port_num)) {
diff --git a/drivers/infiniband/hw/mlx5/main.c b/drivers/infiniband/hw/mlx5/main.c
index bd0322b61362..9aa10cfbc064 100644
--- a/drivers/infiniband/hw/mlx5/main.c
+++ b/drivers/infiniband/hw/mlx5/main.c
@@ -889,7 +889,7 @@ static int mlx5_ib_query_device(struct ib_device *ibdev,
889 } 889 }
890 props->device_cap_flags |= IB_DEVICE_MEM_MGT_EXTENSIONS; 890 props->device_cap_flags |= IB_DEVICE_MEM_MGT_EXTENSIONS;
891 if (MLX5_CAP_GEN(mdev, sho)) { 891 if (MLX5_CAP_GEN(mdev, sho)) {
892 props->device_cap_flags |= IB_DEVICE_SIGNATURE_HANDOVER; 892 props->device_cap_flags |= IB_DEVICE_INTEGRITY_HANDOVER;
893 /* At this stage no support for signature handover */ 893 /* At this stage no support for signature handover */
894 props->sig_prot_cap = IB_PROT_T10DIF_TYPE_1 | 894 props->sig_prot_cap = IB_PROT_T10DIF_TYPE_1 |
895 IB_PROT_T10DIF_TYPE_2 | 895 IB_PROT_T10DIF_TYPE_2 |
diff --git a/drivers/infiniband/hw/mlx5/mlx5_ib.h b/drivers/infiniband/hw/mlx5/mlx5_ib.h
index 7980814f355d..5999792b5698 100644
--- a/drivers/infiniband/hw/mlx5/mlx5_ib.h
+++ b/drivers/infiniband/hw/mlx5/mlx5_ib.h
@@ -431,8 +431,7 @@ struct mlx5_ib_qp {
431 431
432 int create_type; 432 int create_type;
433 433
434 /* Store signature errors */ 434 bool integrity_en;
435 bool signature_en;
436 435
437 struct list_head qps_list; 436 struct list_head qps_list;
438 struct list_head cq_recv_list; 437 struct list_head cq_recv_list;
diff --git a/drivers/infiniband/hw/mlx5/qp.c b/drivers/infiniband/hw/mlx5/qp.c
index f6651b93e469..879162da63e3 100644
--- a/drivers/infiniband/hw/mlx5/qp.c
+++ b/drivers/infiniband/hw/mlx5/qp.c
@@ -442,9 +442,9 @@ static int calc_send_wqe(struct ib_qp_init_attr *attr)
442 } 442 }
443 443
444 size += attr->cap.max_send_sge * sizeof(struct mlx5_wqe_data_seg); 444 size += attr->cap.max_send_sge * sizeof(struct mlx5_wqe_data_seg);
445 if (attr->create_flags & IB_QP_CREATE_SIGNATURE_EN && 445 if (attr->create_flags & IB_QP_CREATE_INTEGRITY_EN &&
446 ALIGN(max_t(int, inl_size, size), MLX5_SEND_WQE_BB) < MLX5_SIG_WQE_SIZE) 446 ALIGN(max_t(int, inl_size, size), MLX5_SEND_WQE_BB) < MLX5_SIG_WQE_SIZE)
447 return MLX5_SIG_WQE_SIZE; 447 return MLX5_SIG_WQE_SIZE;
448 else 448 else
449 return ALIGN(max_t(int, inl_size, size), MLX5_SEND_WQE_BB); 449 return ALIGN(max_t(int, inl_size, size), MLX5_SEND_WQE_BB);
450} 450}
@@ -496,8 +496,8 @@ static int calc_sq_size(struct mlx5_ib_dev *dev, struct ib_qp_init_attr *attr,
496 sizeof(struct mlx5_wqe_inline_seg); 496 sizeof(struct mlx5_wqe_inline_seg);
497 attr->cap.max_inline_data = qp->max_inline_data; 497 attr->cap.max_inline_data = qp->max_inline_data;
498 498
499 if (attr->create_flags & IB_QP_CREATE_SIGNATURE_EN) 499 if (attr->create_flags & IB_QP_CREATE_INTEGRITY_EN)
500 qp->signature_en = true; 500 qp->integrity_en = true;
501 501
502 wq_size = roundup_pow_of_two(attr->cap.max_send_wr * wqe_size); 502 wq_size = roundup_pow_of_two(attr->cap.max_send_wr * wqe_size);
503 qp->sq.wqe_cnt = wq_size / MLX5_SEND_WQE_BB; 503 qp->sq.wqe_cnt = wq_size / MLX5_SEND_WQE_BB;
@@ -1039,7 +1039,7 @@ static int create_kernel_qp(struct mlx5_ib_dev *dev,
1039 void *qpc; 1039 void *qpc;
1040 int err; 1040 int err;
1041 1041
1042 if (init_attr->create_flags & ~(IB_QP_CREATE_SIGNATURE_EN | 1042 if (init_attr->create_flags & ~(IB_QP_CREATE_INTEGRITY_EN |
1043 IB_QP_CREATE_BLOCK_MULTICAST_LOOPBACK | 1043 IB_QP_CREATE_BLOCK_MULTICAST_LOOPBACK |
1044 IB_QP_CREATE_IPOIB_UD_LSO | 1044 IB_QP_CREATE_IPOIB_UD_LSO |
1045 IB_QP_CREATE_NETIF_QP | 1045 IB_QP_CREATE_NETIF_QP |
@@ -4714,7 +4714,7 @@ static int set_pi_umr_wr(const struct ib_send_wr *send_wr,
4714 4714
4715 if (unlikely(send_wr->num_sge != 0) || 4715 if (unlikely(send_wr->num_sge != 0) ||
4716 unlikely(wr->access & IB_ACCESS_REMOTE_ATOMIC) || 4716 unlikely(wr->access & IB_ACCESS_REMOTE_ATOMIC) ||
4717 unlikely(!sig_mr->sig) || unlikely(!qp->signature_en) || 4717 unlikely(!sig_mr->sig) || unlikely(!qp->integrity_en) ||
4718 unlikely(!sig_mr->sig->sig_status_checked)) 4718 unlikely(!sig_mr->sig->sig_status_checked))
4719 return -EINVAL; 4719 return -EINVAL;
4720 4720
@@ -4763,7 +4763,7 @@ static int set_sig_umr_wr(const struct ib_send_wr *send_wr,
4763 4763
4764 if (unlikely(wr->wr.num_sge != 1) || 4764 if (unlikely(wr->wr.num_sge != 1) ||
4765 unlikely(wr->access_flags & IB_ACCESS_REMOTE_ATOMIC) || 4765 unlikely(wr->access_flags & IB_ACCESS_REMOTE_ATOMIC) ||
4766 unlikely(!sig_mr->sig) || unlikely(!qp->signature_en) || 4766 unlikely(!sig_mr->sig) || unlikely(!qp->integrity_en) ||
4767 unlikely(!sig_mr->sig->sig_status_checked)) 4767 unlikely(!sig_mr->sig->sig_status_checked))
4768 return -EINVAL; 4768 return -EINVAL;
4769 4769
diff --git a/drivers/infiniband/ulp/iser/iser_verbs.c b/drivers/infiniband/ulp/iser/iser_verbs.c
index ea9cf04ad002..a6548de0e218 100644
--- a/drivers/infiniband/ulp/iser/iser_verbs.c
+++ b/drivers/infiniband/ulp/iser/iser_verbs.c
@@ -399,7 +399,7 @@ static int iser_create_ib_conn_res(struct ib_conn *ib_conn)
399 init_attr.qp_type = IB_QPT_RC; 399 init_attr.qp_type = IB_QPT_RC;
400 if (ib_conn->pi_support) { 400 if (ib_conn->pi_support) {
401 init_attr.cap.max_send_wr = ISER_QP_SIG_MAX_REQ_DTOS + 1; 401 init_attr.cap.max_send_wr = ISER_QP_SIG_MAX_REQ_DTOS + 1;
402 init_attr.create_flags |= IB_QP_CREATE_SIGNATURE_EN; 402 init_attr.create_flags |= IB_QP_CREATE_INTEGRITY_EN;
403 iser_conn->max_cmds = 403 iser_conn->max_cmds =
404 ISER_GET_MAX_XMIT_CMDS(ISER_QP_SIG_MAX_REQ_DTOS); 404 ISER_GET_MAX_XMIT_CMDS(ISER_QP_SIG_MAX_REQ_DTOS);
405 } else { 405 } else {
@@ -712,7 +712,7 @@ static void iser_addr_handler(struct rdma_cm_id *cma_id)
712 /* connection T10-PI support */ 712 /* connection T10-PI support */
713 if (iser_pi_enable) { 713 if (iser_pi_enable) {
714 if (!(device->ib_device->attrs.device_cap_flags & 714 if (!(device->ib_device->attrs.device_cap_flags &
715 IB_DEVICE_SIGNATURE_HANDOVER)) { 715 IB_DEVICE_INTEGRITY_HANDOVER)) {
716 iser_warn("T10-PI requested but not supported on %s, " 716 iser_warn("T10-PI requested but not supported on %s, "
717 "continue without T10-PI\n", 717 "continue without T10-PI\n",
718 dev_name(&ib_conn->device->ib_device->dev)); 718 dev_name(&ib_conn->device->ib_device->dev));
diff --git a/drivers/infiniband/ulp/isert/ib_isert.c b/drivers/infiniband/ulp/isert/ib_isert.c
index ffef4ac152ca..53bc505f5292 100644
--- a/drivers/infiniband/ulp/isert/ib_isert.c
+++ b/drivers/infiniband/ulp/isert/ib_isert.c
@@ -141,7 +141,7 @@ isert_create_qp(struct isert_conn *isert_conn,
141 attr.sq_sig_type = IB_SIGNAL_REQ_WR; 141 attr.sq_sig_type = IB_SIGNAL_REQ_WR;
142 attr.qp_type = IB_QPT_RC; 142 attr.qp_type = IB_QPT_RC;
143 if (device->pi_capable) 143 if (device->pi_capable)
144 attr.create_flags |= IB_QP_CREATE_SIGNATURE_EN; 144 attr.create_flags |= IB_QP_CREATE_INTEGRITY_EN;
145 145
146 ret = rdma_create_qp(cma_id, device->pd, &attr); 146 ret = rdma_create_qp(cma_id, device->pd, &attr);
147 if (ret) { 147 if (ret) {
@@ -317,7 +317,7 @@ isert_create_device_ib_res(struct isert_device *device)
317 317
318 /* Check signature cap */ 318 /* Check signature cap */
319 device->pi_capable = ib_dev->attrs.device_cap_flags & 319 device->pi_capable = ib_dev->attrs.device_cap_flags &
320 IB_DEVICE_SIGNATURE_HANDOVER ? true : false; 320 IB_DEVICE_INTEGRITY_HANDOVER ? true : false;
321 321
322 return 0; 322 return 0;
323 323
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
index 28db256cbdb9..6de0ea1aafc3 100644
--- a/include/rdma/ib_verbs.h
+++ b/include/rdma/ib_verbs.h
@@ -253,7 +253,7 @@ enum ib_device_cap_flags {
253 */ 253 */
254 IB_DEVICE_CROSS_CHANNEL = (1 << 27), 254 IB_DEVICE_CROSS_CHANNEL = (1 << 27),
255 IB_DEVICE_MANAGED_FLOW_STEERING = (1 << 29), 255 IB_DEVICE_MANAGED_FLOW_STEERING = (1 << 29),
256 IB_DEVICE_SIGNATURE_HANDOVER = (1 << 30), 256 IB_DEVICE_INTEGRITY_HANDOVER = (1 << 30),
257 IB_DEVICE_ON_DEMAND_PAGING = (1ULL << 31), 257 IB_DEVICE_ON_DEMAND_PAGING = (1ULL << 31),
258 IB_DEVICE_SG_GAPS_REG = (1ULL << 32), 258 IB_DEVICE_SG_GAPS_REG = (1ULL << 32),
259 IB_DEVICE_VIRTUAL_FUNCTION = (1ULL << 33), 259 IB_DEVICE_VIRTUAL_FUNCTION = (1ULL << 33),
@@ -1056,7 +1056,7 @@ enum ib_qp_create_flags {
1056 IB_QP_CREATE_MANAGED_SEND = 1 << 3, 1056 IB_QP_CREATE_MANAGED_SEND = 1 << 3,
1057 IB_QP_CREATE_MANAGED_RECV = 1 << 4, 1057 IB_QP_CREATE_MANAGED_RECV = 1 << 4,
1058 IB_QP_CREATE_NETIF_QP = 1 << 5, 1058 IB_QP_CREATE_NETIF_QP = 1 << 5,
1059 IB_QP_CREATE_SIGNATURE_EN = 1 << 6, 1059 IB_QP_CREATE_INTEGRITY_EN = 1 << 6,
1060 /* FREE = 1 << 7, */ 1060 /* FREE = 1 << 7, */
1061 IB_QP_CREATE_SCATTER_FCS = 1 << 8, 1061 IB_QP_CREATE_SCATTER_FCS = 1 << 8,
1062 IB_QP_CREATE_CVLAN_STRIPPING = 1 << 9, 1062 IB_QP_CREATE_CVLAN_STRIPPING = 1 << 9,