On 02/26/12 06:32, David Dillow wrote: > On Sat, 2012-01-14 at 12:44 +0000, Bart Van Assche wrote: >> When disconnecting the IB connection via the IB CM, wait until >> any invoked completion handlers have finished processing SRP >> protocol data and prevent that new work completions are queued. >> Change the IB completion handlers such that all error completions >> are processed instead of a subset and also such that receiving a >> completion with zero wr_id is recognized as an end-of-work marker. > This seems really ugly, and a bit of overkill. There must be a better > way.
The only alternative I know of for waiting until completion processing stopped is to destroy and recreate the queue pair. The reason I had not chosen for that approach is that some srp_disconnect_target() calls are from outside a CM callback function and hence destroying the QP inside srp_disconnect_target() would race with QP manipulations from inside CM callbacks. Bart. -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
