Messages in this thread | | | Date | Tue, 14 Apr 2015 11:50:34 -0400 | From | "ira.weiny" <> | Subject | Re: [PATCH v3 10/28] IB/Verbs: Reform cm related part in IB-core cma |
| |
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 >
| |