linux/drivers/infiniband/hw
Mike Marciniszyn fa8dac3968 IB/hfi1: Fix another case where pq is left on waitlist
The commit noted below fixed a case where a pq is left on the sdma wait
list.

It however missed another case.

user_sdma_send_pkts() has two calls from hfi1_user_sdma_process_request().

If the first one fails as indicated by -EBUSY, the pq will be placed on
the waitlist as by design.

If the second call then succeeds, the pq is still on the waitlist setting
up a race with the interrupt handler if a subsequent request uses a
different SDMA engine

Fix by deleting the first call.

The use of pcount and the intent to send a short burst of packets followed
by the larger balance of packets was never correctly implemented, because
the two calls always send pcount packets no matter what.  A subsequent
patch will correct that issue.

Fixes: 9a293d1e21 ("IB/hfi1: Ensure pq is not left on waitlist")
Link: https://lore.kernel.org/r/20200504130917.175613.43231.stgit@awfm-01.aw.intel.com
Cc: <stable@vger.kernel.org>
Reviewed-by: Kaike Wan <kaike.wan@intel.com>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
2020-05-12 11:47:48 -03:00
..
bnxt_re RDMA/bnxt_re: make bnxt_re_ib_init static 2020-03-30 15:03:19 -03:00
cxgb4 Linux 5.6-rc4 2020-03-04 13:11:06 -04:00
efa RDMA/efa: Use in-kernel offsetofend() to check field availability 2020-03-18 21:06:37 -03:00
hfi1 IB/hfi1: Fix another case where pq is left on waitlist 2020-05-12 11:47:48 -03:00
hns RDMA/hns: Fix uninitialized variable bug 2020-03-29 11:09:55 -03:00
i40iw IB/i40iw: Remove bogus call to netdev_master_upper_dev_get() 2020-05-12 11:47:48 -03:00
mlx4 IB/mlx4: Test return value of calls to ib_get_cached_pkey 2020-05-12 11:47:48 -03:00
mlx5 RDMA/mlx5: Set GRH fields in query QP on RoCE 2020-04-22 15:43:46 -03:00
mthca RDMA/providers: Fix return value when QP type isn't supported 2020-03-04 12:13:42 -04:00
ocrdma RDMA/providers: Fix return value when QP type isn't supported 2020-03-04 12:13:42 -04:00
qedr RDMA/providers: Fix return value when QP type isn't supported 2020-03-04 12:13:42 -04:00
qib IB/qib: Delete struct qib_ivdev.qp_rnd 2020-03-29 11:15:16 -03:00
usnic RDMA/providers: Fix return value when QP type isn't supported 2020-03-04 12:13:42 -04:00
vmw_pvrdma RDMA/providers: Fix return value when QP type isn't supported 2020-03-04 12:13:42 -04:00
Makefile RDMA/iw_cxgb3: Remove the iw_cxgb3 module from kernel 2019-10-04 15:08:59 -03:00