aboutsummaryrefslogtreecommitdiff
path: root/block
diff options
context:
space:
mode:
authorGravatar Steve Wise <swise@opengridcomputing.com> 2017-11-09 07:21:26 -0800
committerGravatar Doug Ledford <dledford@redhat.com> 2017-11-13 16:59:22 -0500
commitbc52e9ca74b9a395897bb640c6671b2cbf716032 (patch)
treebf286e85ae7597e6b6bbd744491ea49631904952 /block
parentiw_cxgb4: only call the cq comp_handler when the cq is armed (diff)
downloadlinux-bc52e9ca74b9a395897bb640c6671b2cbf716032.tar.gz
linux-bc52e9ca74b9a395897bb640c6671b2cbf716032.tar.bz2
linux-bc52e9ca74b9a395897bb640c6671b2cbf716032.zip
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>
Diffstat (limited to 'block')
0 files changed, 0 insertions, 0 deletions