Commit 109f2d39 authored by Avihai Horon's avatar Avihai Horon Committed by Jason Gunthorpe

RDMA/core: Modify rdma_query_gid() to return accurate error codes

Modify rdma_query_gid() to return -ENOENT for empty entries. This will
make error reporting more accurate and will be used in next patches.

Link: https://lore.kernel.org/r/1f2b65dfb4d995e74b621e3e21e7c7445d187956.1639055490.git.leonro@nvidia.comSigned-off-by: default avatarAvihai Horon <avihaih@nvidia.com>
Reviewed-by: default avatarMark Zhang <markzhang@nvidia.com>
Signed-off-by: default avatarLeon Romanovsky <leonro@nvidia.com>
Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
parent 0045e0d3
......@@ -955,7 +955,7 @@ int rdma_query_gid(struct ib_device *device, u32 port_num,
{
struct ib_gid_table *table;
unsigned long flags;
int res = -EINVAL;
int res;
if (!rdma_is_port_valid(device, port_num))
return -EINVAL;
......@@ -963,9 +963,15 @@ int rdma_query_gid(struct ib_device *device, u32 port_num,
table = rdma_gid_table(device, port_num);
read_lock_irqsave(&table->rwlock, flags);
if (index < 0 || index >= table->sz ||
!is_gid_entry_valid(table->data_vec[index]))
if (index < 0 || index >= table->sz) {
res = -EINVAL;
goto done;
}
if (!is_gid_entry_valid(table->data_vec[index])) {
res = -ENOENT;
goto done;
}
memcpy(gid, &table->data_vec[index]->attr.gid, sizeof(*gid));
res = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment