IB/providers: Avoid zero GID check for RoCE
authorParav Pandit <parav@mellanox.com>
Sun, 1 Apr 2018 12:08:22 +0000 (15:08 +0300)
committerJason Gunthorpe <jgg@mellanox.com>
Wed, 4 Apr 2018 03:33:51 +0000 (21:33 -0600)
Now that the IB core GID cache ensures that a zero GID doesn't exist in
the GID table remove zero GID checks from the provider drivers for
clarity.

Reviewed-by: Mark Bloch <markb@mellanox.com>
Signed-off-by: Parav Pandit <parav@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/hw/mlx4/main.c
drivers/infiniband/hw/mlx4/qp.c
drivers/infiniband/hw/ocrdma/ocrdma_hw.c
drivers/infiniband/hw/qedr/qedr_roce_cm.c
drivers/infiniband/hw/qedr/verbs.c

index d9422a44549e4366bcb92d7ac441e09298b194ca..a31a3edfbf28ec6f6e56db727ebbf26d8833c55a 100644 (file)
@@ -411,9 +411,6 @@ int mlx4_ib_gid_index_to_real_index(struct mlx4_ib_dev *ibdev,
        if (attr.ndev)
                dev_put(attr.ndev);
 
-       if (!memcmp(&gid, &zgid, sizeof(gid)))
-               return -EINVAL;
-
        spin_lock_irqsave(&iboe->lock, flags);
        port_gid_table = &iboe->gids[port_num - 1];
 
index 523028e944ed2dd87862c9093c26d995f6f29d59..726a6ae90de0e1047ea65e452e57f54df5c2204c 100644 (file)
@@ -2370,8 +2370,6 @@ static int __mlx4_ib_modify_qp(void *src, enum mlx4_ib_source_type src_type,
 
                        status = ib_get_cached_gid(&dev->ib_dev, port_num,
                                                   index, &gid, &gid_attr);
-                       if (!status && !memcmp(&gid, &zgid, sizeof(gid)))
-                               status = -ENOENT;
                        if (!status && gid_attr.ndev) {
                                vlan = rdma_vlan_dev_vlan_id(gid_attr.ndev);
                                memcpy(smac, gid_attr.ndev->dev_addr, ETH_ALEN);
index 90cf77223771e71da640994fa2aafd49eb68589d..12783262eb7597a55d2df877338bc2c757db11ee 100644 (file)
@@ -2494,7 +2494,7 @@ static int ocrdma_set_av_params(struct ocrdma_qp *qp,
 {
        int status;
        struct rdma_ah_attr *ah_attr = &attrs->ah_attr;
-       union ib_gid sgid, zgid;
+       union ib_gid sgid;
        struct ib_gid_attr sgid_attr;
        u32 vlan_id = 0xFFFF;
        u8 mac_addr[6], hdr_type;
@@ -2533,10 +2533,6 @@ static int ocrdma_set_av_params(struct ocrdma_qp *qp,
                dev_put(sgid_attr.ndev);
        }
 
-       memset(&zgid, 0, sizeof(zgid));
-       if (!memcmp(&sgid, &zgid, sizeof(zgid)))
-               return -EINVAL;
-
        qp->sgid_idx = grh->sgid_index;
        memcpy(&cmd->params.sgid[0], &sgid.raw[0], sizeof(cmd->params.sgid));
        status = ocrdma_resolve_dmac(dev, ah_attr, &mac_addr[0]);
index 2bdbb12bfc69af687ac4dd0d2c944f46305315b0..eedb937d6fa9a90af2c16b85bad814f2f0b20283 100644 (file)
@@ -420,12 +420,6 @@ static inline int qedr_gsi_build_header(struct qedr_dev *dev,
                dev_put(sgid_attr.ndev);
        }
 
-       if (!memcmp(&sgid, &zgid, sizeof(sgid))) {
-               DP_ERR(dev, "gsi post send: GID not found GID index %d\n",
-                      grh->sgid_index);
-               return -ENOENT;
-       }
-
        has_udp = (sgid_attr.gid_type == IB_GID_TYPE_ROCE_UDP_ENCAP);
        if (!has_udp) {
                /* RoCE v1 */
index ccc09a8e4195fa505a845668476b2be3c298ecca..a523d6f5fef33d42b1f8f48e43a39f038fa727a9 100644 (file)
@@ -1093,9 +1093,6 @@ static inline int get_gid_info_from_table(struct ib_qp *ibqp,
        if (rc)
                return rc;
 
-       if (!memcmp(&gid, &zgid, sizeof(gid)))
-               return -ENOENT;
-
        if (gid_attr.ndev) {
                qp_params->vlan_id = rdma_vlan_dev_vlan_id(gid_attr.ndev);