Use the workqueue based CQ type similar to what isert was using previously, and properly split up the completion handlers.
Ideally, we'd have a separate done handler for each time of response (text, logout, tmr, normal task etc..) but it requires more work so that would be possible, we can do it incrementally. This patch had a minor conflict on top of a fix patch from Jenny, I fixed the fuzz, would you mind if I resend a combined set once the code passes our regression tests?
Note that this also takes special care to handle the magic login WRs separately, and also renames the submission functions so that it's clear that they are only to be used for the login buffers.
That's very helpful.
static void +isert_beacon_done(struct ib_cq *cq, struct ib_wc *wc) +{ + struct isert_conn *isert_conn = wc->qp->qp_context; + + isert_print_wc(wc); + + isert_info("conn %p completing wait_comp_err\n", isert_conn); + complete(&isert_conn->wait_comp_err); +} +
I have a patch that replaces this with the new ib_drain_qp() from Steve, I'll add it to the set. Looks good, Acked-by: Sagi Grimberg <sagig@xxxxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe target-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html