linux/drivers/infiniband
Bart Van Assche 9294000d6d IB/srp: Drain the send queue before destroying a QP
A quote from the IB spec:

However, if the Consumer does not wait for the Affiliated Asynchronous
Last WQE Reached Event, then WQE and Data Segment leakage may occur.
Therefore, it is good programming practice to tear down a QP that is
associated with an SRQ by using the following process:
* Put the QP in the Error State;
* wait for the Affiliated Asynchronous Last WQE Reached Event;
* either:
  * drain the CQ by invoking the Poll CQ verb and either wait for CQ
    to be empty or the number of Poll CQ operations has exceeded CQ
    capacity size; or
  * post another WR that completes on the same CQ and wait for this WR to return as a WC;
* and then invoke a Destroy QP or Reset QP.

Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Israel Rukshin <israelr@mellanox.com>
Cc: Max Gurtovoy <maxg@mellanox.com>
Cc: Laurence Oberman <loberman@redhat.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
2017-02-19 09:51:55 -05:00
..
core IB/core: Add support for draining IB_POLL_DIRECT completion queues 2017-02-19 09:51:55 -05:00
hw RDMA/qedr: Fix some error handling 2017-02-19 09:27:29 -05:00
sw IB/hfi1, qib, rdmavt: Move AETH defines to rdma/ib_hdrs.h 2017-02-19 09:18:44 -05:00
ulp IB/srp: Drain the send queue before destroying a QP 2017-02-19 09:51:55 -05:00
Kconfig RDMA/bnxt_re: Add bnxt_re driver build support 2017-02-14 09:51:28 -05:00
Makefile IB/rdmavt: Create module framework and handle driver registration 2016-03-10 20:37:04 -05:00