IB/core: Refer to RoCE port property instead of GID table property
authorParav Pandit <parav@mellanox.com>
Sun, 25 Mar 2018 10:40:21 +0000 (13:40 +0300)
committerJason Gunthorpe <jgg@mellanox.com>
Tue, 27 Mar 2018 22:22:12 +0000 (16:22 -0600)
ib_find_gid_by_filter() searches GID with filter only for RoCE link
layer regardless of HCA's support for GID table.
Therefore, right way to lookup is compare RoCE port property and not
the GID table property.

Fixes: 99b27e3b5da0 ("IB/cache: Add ib_find_gid_by_filter cache API")
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/cache.c

index 4f77043424104fdb121b32fb92d2c2a6f8101399..b94f8d1b262f41cfc7039e6de293ac59fae47d71 100644 (file)
@@ -893,7 +893,7 @@ int ib_find_gid_by_filter(struct ib_device *device,
                          void *context, u16 *index)
 {
        /* Only RoCE GID table supports filter function */
-       if (!rdma_cap_roce_gid_table(device, port_num) && filter)
+       if (!rdma_protocol_roce(device, port_num) && filter)
                return -EPROTONOSUPPORT;
 
        return ib_cache_gid_find_by_filter(device, gid,