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

Reply via email to