Merge tag 'for-linus-unmerged' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma...
[linux-block.git] / drivers / infiniband / core / device.c
index b7459cf524e454f946d683fbddcc2e9d070cb42d..ea9fbcfb21bd4ac683b9411061dde5c23b640256 100644 (file)
@@ -103,7 +103,6 @@ static int ib_device_check_mandatory(struct ib_device *device)
                IB_MANDATORY_FUNC(query_device),
                IB_MANDATORY_FUNC(query_port),
                IB_MANDATORY_FUNC(query_pkey),
-               IB_MANDATORY_FUNC(query_gid),
                IB_MANDATORY_FUNC(alloc_pd),
                IB_MANDATORY_FUNC(dealloc_pd),
                IB_MANDATORY_FUNC(create_ah),
@@ -853,7 +852,7 @@ int ib_query_port(struct ib_device *device,
        if (rdma_port_get_link_layer(device, port_num) != IB_LINK_LAYER_INFINIBAND)
                return 0;
 
-       err = ib_query_gid(device, port_num, 0, &gid, NULL);
+       err = device->query_gid(device, port_num, 0, &gid);
        if (err)
                return err;
 
@@ -871,19 +870,13 @@ EXPORT_SYMBOL(ib_query_port);
  * @attr: Returned GID attributes related to this GID index (only in RoCE).
  *   NULL means ignore.
  *
- * ib_query_gid() fetches the specified GID table entry.
+ * ib_query_gid() fetches the specified GID table entry from the cache.
  */
 int ib_query_gid(struct ib_device *device,
                 u8 port_num, int index, union ib_gid *gid,
                 struct ib_gid_attr *attr)
 {
-       if (rdma_cap_roce_gid_table(device, port_num))
-               return ib_get_cached_gid(device, port_num, index, gid, attr);
-
-       if (attr)
-               return -EINVAL;
-
-       return device->query_gid(device, port_num, index, gid);
+       return ib_get_cached_gid(device, port_num, index, gid, attr);
 }
 EXPORT_SYMBOL(ib_query_gid);
 
@@ -1049,19 +1042,18 @@ EXPORT_SYMBOL(ib_modify_port);
  *   a specified GID value occurs. Its searches only for IB link layer.
  * @device: The device to query.
  * @gid: The GID value to search for.
- * @ndev: The ndev related to the GID to search for.
  * @port_num: The port number of the device where the GID value was found.
  * @index: The index into the GID table where the GID was found.  This
  *   parameter may be NULL.
  */
 int ib_find_gid(struct ib_device *device, union ib_gid *gid,
-               struct net_device *ndev, u8 *port_num, u16 *index)
+               u8 *port_num, u16 *index)
 {
        union ib_gid tmp_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) {