On Thu, Oct 22, 2020 at 09:10:35AM -0300, 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? ok, you are right in that regards. However, mlx5 IB representors don't support GIDs and sets gid_tbl_len to be zero. Do we want to rely on the assumption that table will always exist? Thanks > > Jason