On 22/10/2020 15:10, Jason Gunthorpe wrote: > On Thu, Oct 22, 2020 at 02:21:00PM +0300, Leon Romanovsky wrote: >> On Thu, Oct 22, 2020 at 01:58:29PM +0300, Gal Pressman wrote: >>> Hi all, >>> >>> The new IOCTL query GID API 9f85cbe50aa0 ("RDMA/uverbs: Expose the new GID query >>> API to user space") currently breaks EFA, as ibv_query_gid() no longer works. >>> >>> The problem is that the IOCTL call checks for: >>> if (!rdma_ib_or_roce(ib_dev, port_num)) >>> return -EOPNOTSUPP; >>> >>> EFA is neither of these, but it uses GIDs. >>> >>> Any objections to remove the check? Any other solutions come to mind? >> >> We added this check to protect access to rdma_get_gid_attr() for devices >> without GID table. >> 1234 table = rdma_gid_table(device, port_num); >> 1235 if (index < 0 || index >= table->sz) >> 1236 return ERR_PTR(-EINVAL); >> >> So you can extend that function to return for table == NULL an error and >> remove rdma_ib_or_roce() > > How does table == NULL ever? A driver with gid_tbl_len == 0 would make the allocation return NULL, no?