linux/drivers/infiniband/hw/cxgb4
Steve Wise c058ecf6e4 iw_cxgb4: only insert drain cqes if wq is flushed
Only insert our special drain CQEs to support ib_drain_sq/rq() after
the wq is flushed. Otherwise, existing but not yet polled CQEs can be
returned out of order to the user application.  This can happen when the
QP has exited RTS but not yet flushed the QP, which can happen during
a normal close (vs abortive close).

In addition never count the drain CQEs when determining how many CQEs
need to be synthesized during the flush operation.  This latter issue
should never happen if the QP is properly flushed before inserting the
drain CQE, but I wanted to avoid corrupting the CQ state.  So we handle
it and log a warning once.

Fixes: 4fe7c2962e ("iw_cxgb4: refactor sq/rq drain logic")
Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Cc: stable@vger.kernel.org
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
2017-12-11 15:33:51 -07:00
..
cm.c iw_cxgb4: remove BUG_ON() usage. 2017-11-13 15:01:25 -05:00
cq.c iw_cxgb4: only insert drain cqes if wq is flushed 2017-12-11 15:33:51 -07:00
device.c iw_cxgb4: Fix possible circular dependency locking warning 2017-11-13 16:59:22 -05:00
ev.c iw_cxgb4: only call the cq comp_handler when the cq is armed 2017-11-13 16:59:22 -05:00
id_table.c iw_cxgb4: remove BUG_ON() usage. 2017-11-13 15:01:25 -05:00
iw_cxgb4.h iw_cxgb4: Fix possible circular dependency locking warning 2017-11-13 16:59:22 -05:00
Kconfig IB/{cxgb3,cxgb4}: Remove unneeded config dependencies 2017-09-27 08:54:19 -04:00
Makefile libcxgb,iw_cxgb4,cxgbit: add cxgb_get_4tuple() 2016-09-15 20:49:19 -04:00
mem.c iw_cxgb4: add referencing to wait objects 2017-09-29 11:46:41 -04:00
provider.c iw_cxgb4: Fix possible circular dependency locking warning 2017-11-13 16:59:22 -05:00
qp.c iw_cxgb4: only insert drain cqes if wq is flushed 2017-12-11 15:33:51 -07:00
resource.c iw_cxgb4: Remove __func__ parameter from pr_debug() 2017-09-27 10:13:14 -04:00
t4.h iw_cxgb4: remove BUG_ON() usage. 2017-11-13 15:01:25 -05:00
t4fw_ri_api.h RDMA/cxgb4: Annotate r2 and stag as __be32 2017-11-10 13:04:09 -05:00