|
@@ -643,30 +643,6 @@ int ib_cache_gid_del_all_netdev_gids(struct ib_device *ib_dev, u8 port,
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-static int __ib_cache_gid_get(struct ib_device *ib_dev, u8 port, int index,
|
|
|
- union ib_gid *gid, struct ib_gid_attr *attr)
|
|
|
-{
|
|
|
- struct ib_gid_table *table;
|
|
|
-
|
|
|
- table = rdma_gid_table(ib_dev, port);
|
|
|
-
|
|
|
- if (index < 0 || index >= table->sz)
|
|
|
- return -EINVAL;
|
|
|
-
|
|
|
- if (!is_gid_entry_valid(table->data_vec[index]))
|
|
|
- return -EINVAL;
|
|
|
-
|
|
|
- memcpy(gid, &table->data_vec[index]->attr.gid, sizeof(*gid));
|
|
|
- if (attr) {
|
|
|
- memcpy(attr, &table->data_vec[index]->attr,
|
|
|
- sizeof(*attr));
|
|
|
- if (attr->ndev)
|
|
|
- dev_hold(attr->ndev);
|
|
|
- }
|
|
|
-
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
/**
|
|
|
* rdma_find_gid_by_port - Returns the GID entry attributes when it finds
|
|
|
* a valid GID entry for given search parameters. It searches for the specified
|
|
@@ -973,28 +949,6 @@ static int gid_table_setup_one(struct ib_device *ib_dev)
|
|
|
return err;
|
|
|
}
|
|
|
|
|
|
-int ib_get_cached_gid(struct ib_device *device,
|
|
|
- u8 port_num,
|
|
|
- int index,
|
|
|
- union ib_gid *gid,
|
|
|
- struct ib_gid_attr *gid_attr)
|
|
|
-{
|
|
|
- int res;
|
|
|
- unsigned long flags;
|
|
|
- struct ib_gid_table *table;
|
|
|
-
|
|
|
- if (!rdma_is_port_valid(device, port_num))
|
|
|
- return -EINVAL;
|
|
|
-
|
|
|
- table = rdma_gid_table(device, port_num);
|
|
|
- read_lock_irqsave(&table->rwlock, flags);
|
|
|
- res = __ib_cache_gid_get(device, port_num, index, gid, gid_attr);
|
|
|
- read_unlock_irqrestore(&table->rwlock, flags);
|
|
|
-
|
|
|
- return res;
|
|
|
-}
|
|
|
-EXPORT_SYMBOL(ib_get_cached_gid);
|
|
|
-
|
|
|
/**
|
|
|
* rdma_query_gid - Read the GID content from the GID software cache
|
|
|
* @device: Device to query the GID
|
|
@@ -1102,28 +1056,6 @@ int ib_find_cached_gid(struct ib_device *device, const union ib_gid *gid,
|
|
|
}
|
|
|
EXPORT_SYMBOL(ib_find_cached_gid);
|
|
|
|
|
|
-int ib_find_gid_by_filter(struct ib_device *device,
|
|
|
- const union ib_gid *gid,
|
|
|
- u8 port_num,
|
|
|
- bool (*filter)(const union ib_gid *gid,
|
|
|
- const struct ib_gid_attr *,
|
|
|
- void *),
|
|
|
- void *context, u16 *index)
|
|
|
-{
|
|
|
- const struct ib_gid_attr *res;
|
|
|
-
|
|
|
- res = rdma_find_gid_by_filter(device, gid, port_num, filter,
|
|
|
- context);
|
|
|
- if (IS_ERR(res))
|
|
|
- return PTR_ERR(res);
|
|
|
-
|
|
|
- if (index)
|
|
|
- *index = res->index;
|
|
|
-
|
|
|
- rdma_put_gid_attr(res);
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
int ib_get_cached_pkey(struct ib_device *device,
|
|
|
u8 port_num,
|
|
|
int index,
|