Messages in this thread | | | Date | Tue, 6 Apr 2021 12:46:46 -0300 | From | Jason Gunthorpe <> | Subject | Re: [PATCH rdma-next 4/8] IB/core: Skip device which doesn't have necessary capabilities |
| |
On Mon, Apr 05, 2021 at 08:49:56AM +0300, Leon Romanovsky wrote: > @@ -2293,6 +2295,17 @@ static void ib_sa_event(struct ib_event_handler *handler, > } > } > > +static bool ib_sa_client_supported(struct ib_device *device) > +{ > + unsigned int i; > + > + rdma_for_each_port(device, i) { > + if (rdma_cap_ib_sa(device, i)) > + return true; > + } > + return false; > +}
This is already done though:
for (i = 0; i <= e - s; ++i) { spin_lock_init(&sa_dev->port[i].ah_lock); if (!rdma_cap_ib_sa(device, i + 1)) continue; [..]
if (!count) { ret = -EOPNOTSUPP; goto free;
Why does it need to be duplicated? The other patches are all basically like that too.
The add_one function should return -EOPNOTSUPP if it doesn't want to run on this device and any supported checks should just be at the front - this is how things work right now
Jason
| |