linux/drivers/infiniband/hw/cxgb4
Steve Wise bc52e9ca74 iw_cxgb4: atomically flush the qp
__flush_qp() has a race condition where during the flush operation,
the qp lock is released allowing another thread to possibly post a WR,
which corrupts the queue state, possibly causing crashes.  The lock was
released to preserve the cq/qp locking hierarchy of cq first, then qp.
However releasing the qp lock is not necessary; both RQ and SQ CQ locks
can be acquired first, followed by the qp lock, and then the RQ and SQ
flushing can be done w/o unlocking.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
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
cm.c iw_cxgb4: remove BUG_ON() usage. 2017-11-13 15:01:25 -05:00
cq.c iw_cxgb4: remove BUG_ON() usage. 2017-11-13 15:01:25 -05: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
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: atomically flush the qp 2017-11-13 16:59:22 -05: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