> > The iWARP Verbs spec mandates that when the QP is in ERROR, post_send() and > > post_recv() must, at some point, fail synchronously. See: > > > > http://tools.ietf.org/html/draft-hilland-rddp-verbs-00#section-6.2.4 > > OK, > I see it, the iWARP devices need to flush QP before moving to > drain(error) state. > > This leads to another question, why don't we have common specific > functions for iWARP devices? Right now, we have two drivers with the > similar code. > Based on the initial review/discussion of the drain API, it was agreed that the drain logic wouldn't have IB and IW cases, but rather a common and device-specific case. > The suggested refactoring can be as follows: > > post_marker_func(..) > { > post_send .... > } > > ib_drain_qp(..) > { > move_to_error > call_post_marker_func > } > > iw_drain_qp(..) > { > call_to_post_marker_func > move_to_drain > } > This won't work if the QP is already in out of RTS which happens as part of rdma_disconnect(). And currently the ULP usage is to disconnect and then drain. Steve. -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html