On 04/13/2015 09:25 PM, Hefty, Sean wrote:
>> @@ -1037,17 +1033,13 @@ void rdma_destroy_id(struct rdma_cm_id *id)
>>      mutex_unlock(&id_priv->handler_mutex);
>>
>>      if (id_priv->cma_dev) {
>> -            switch (rdma_node_get_transport(id_priv->id.device-
>>> node_type)) {
>> -            case RDMA_TRANSPORT_IB:
>> +            if (rdma_ib_or_iboe(id_priv->id.device, id_priv->id.port_num))
> 
> A listen id can be associated with a device without being associated with a 
> port (see the listen_any_list). 
Some other check is needed to handle this case.  I guess the code could check 
the first port on the device
(replace port_num with hardcoded value 1).  Then we wouldn't be any more broken 
than the code already is.
(The 'break' is conceptual, not practical.)

Agree, seems like this is very similar to the case of cma_listen_on_dev() which
do not associated with any particular port in #24.

If the port 1 is enough to present the whole device's cm capability, maybe we 
can
get rid of cap_ib_cm_dev() too?

And maybe cap_ib_cm(device, device->node_type == RDMA_NODE_IB_SWITCH ? 0:1) 
would
be safer?

Regards,
Michael Wang


> 
> This appears to be highlighting an architectural flaw in the iboe integration.
> 
>> {
>>                      if (id_priv->cm_id.ib)
>>                              ib_destroy_cm_id(id_priv->cm_id.ib);
>> -                    break;
>> -            case RDMA_TRANSPORT_IWARP:
>> +            } else if (rdma_tech_iwarp(id_priv->id.device,
>> +                                       id_priv->id.port_num)) {
>>                      if (id_priv->cm_id.iw)
>>                              iw_destroy_cm_id(id_priv->cm_id.iw);
>> -                    break;
>> -            default:
>> -                    break;
>>              }
>>              cma_leave_mc_groups(id_priv);
>>              cma_release_dev(id_priv);
> 
>  - Sean
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to