This is a note to let you know that I've just added the patch titled RDMA/qedr: Don't reset QP when queues aren't flushed to the 4.9-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: rdma-qedr-don-t-reset-qp-when-queues-aren-t-flushed.patch and it can be found in the queue-4.9 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From foo@baz Thu Jun 15 16:35:05 CEST 2017 From: Ram Amrani <Ram.Amrani@xxxxxxxxxx> Date: Tue, 24 Jan 2017 13:50:38 +0200 Subject: RDMA/qedr: Don't reset QP when queues aren't flushed From: Ram Amrani <Ram.Amrani@xxxxxxxxxx> [ Upstream commit 933e6dcaa0f65eb2f624ad760274020874a1f35e ] Fail QP state transition from error to reset if SQ/RQ are not empty and still in the process of flushing out the queued work entries. Signed-off-by: Ram Amrani <Ram.Amrani@xxxxxxxxxx> Signed-off-by: Michal Kalderon <Michal.Kalderon@xxxxxxxxxx> Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx> Signed-off-by: Sasha Levin <alexander.levin@xxxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/infiniband/hw/qedr/verbs.c | 8 ++++++++ 1 file changed, 8 insertions(+) --- a/drivers/infiniband/hw/qedr/verbs.c +++ b/drivers/infiniband/hw/qedr/verbs.c @@ -1729,6 +1729,14 @@ static int qedr_update_qp_state(struct q /* ERR->XXX */ switch (new_state) { case QED_ROCE_QP_STATE_RESET: + if ((qp->rq.prod != qp->rq.cons) || + (qp->sq.prod != qp->sq.cons)) { + DP_NOTICE(dev, + "Error->Reset with rq/sq not empty rq.prod=%x rq.cons=%x sq.prod=%x sq.cons=%x\n", + qp->rq.prod, qp->rq.cons, qp->sq.prod, + qp->sq.cons); + status = -EINVAL; + } break; default: status = -EINVAL; Patches currently in stable-queue which might be from Ram.Amrani@xxxxxxxxxx are queue-4.9/rdma-qedr-don-t-spam-dmesg-if-qp-is-in-error-state.patch queue-4.9/rdma-qedr-dispatch-port-active-event-from-qedr_add.patch queue-4.9/rdma-qedr-don-t-reset-qp-when-queues-aren-t-flushed.patch queue-4.9/rdma-qedr-fix-and-simplify-memory-leak-in-pd-alloc.patch queue-4.9/rdma-qedr-return-max-inline-data-in-qp-query-result.patch