> On Mon, Apr 13, 2015 at 07:25:48PM +0000, 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.) > > Hum. So, devices on a port must have some compatibility when it comes > to these invariants. It looks like all ports must have the same > iwarpyness, for multiple reasons. > > Less clear is how rocee vs ib work within a device... Can you APM > between those two kinds of ports?
No idea > All these switches are so ugly :| Function pointers setup in > iw_/ib_create_cm_id would be a lot clearer and safer. I noticed this too. The if checks throughout the cma are becoming unmaintainable. It may be cleaner if all devices adopted using the cm device function pointers. > > This appears to be highlighting an architectural flaw in the iboe > integration. > > You mean iwarp? I meant iboe. Wildcard listens map to multiple listens, one per device. The assumption being that all ports on the device are the same. IBoE changed that assumption. -- 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/