IB/core: Search GID only for IB link layer
authorParav Pandit <parav@mellanox.com>
Sun, 25 Mar 2018 10:40:22 +0000 (13:40 +0300)
committerJason Gunthorpe <jgg@mellanox.com>
Tue, 27 Mar 2018 22:22:12 +0000 (16:22 -0600)
Even though API is only used by IPoIB driver, its incorrect to refer
RoCE GID table property to search for GID.

Look for only IB link layer to search for the GID.

Fixes: dbb12562f7c2 ("IB/{core, ipoib}: Simplify ib_find_gid to search only for IB link layer")
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/core/device.c

index ba0e34b096483c4529b97ba4a73bccdd0e8735bc..dbe984faed65cdd5dc3c68f0fec04db7c1199831 100644 (file)
@@ -1061,7 +1061,7 @@ int ib_find_gid(struct ib_device *device, union ib_gid *gid,
        int ret, port, i;
 
        for (port = rdma_start_port(device); port <= rdma_end_port(device); ++port) {
-               if (rdma_cap_roce_gid_table(device, port))
+               if (!rdma_protocol_ib(device, port))
                        continue;
 
                for (i = 0; i < device->port_immutable[port].gid_tbl_len; ++i) {