On Tue, Apr 14, 2015 at 10:35:34AM +0200, Michael Wang wrote: > > > 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?
I don't see support for switch port 0 in cm_add_one() now. Are switches supposed to be supported? Ira > > Regards, > Michael Wang > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/