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 ba0e34b..dbe984f 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) {