linux/drivers/infiniband/hw
Michael J. Ruhl d310c4bf8a IB/{rdmavt, hfi1, qib}: Remove AH refcount for UD QPs
Historically rdmavt destroy_ah() has returned an -EBUSY when the AH has a
non-zero reference count.  IBTA 11.2.2 notes no such return value or error
case:

	Output Modifiers:
	- Verb results:
	- Operation completed successfully.
	- Invalid HCA handle.
	- Invalid address handle.

ULPs never test for this error and this will leak memory.

The reference count exists to allow for driver independent progress
mechanisms to process UD SWQEs in parallel with post sends.  The SWQE will
hold a reference count until the UD SWQE completes and then drops the
reference.

Fix by removing need to reference count the AH.  Add a UD specific
allocation to each SWQE entry to cache the necessary information for
independent progress.  Copy the information during the post send
processing.

Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
2019-06-28 22:34:26 -03:00
..
bnxt_re Linux 5.2-rc6 2019-06-28 21:18:23 -03:00
cxgb3 Linux 5.2-rc6 2019-06-28 21:18:23 -03:00
cxgb4 Linux 5.2-rc6 2019-06-28 21:18:23 -03:00
efa Linux 5.2-rc6 2019-06-28 21:18:23 -03:00
hfi1 IB/{rdmavt, hfi1, qib}: Remove AH refcount for UD QPs 2019-06-28 22:34:26 -03:00
hns Linux 5.2-rc6 2019-06-28 21:18:23 -03:00
i40iw Linux 5.2-rc6 2019-06-28 21:18:23 -03:00
mlx4 Linux 5.2-rc6 2019-06-28 21:18:23 -03:00
mlx5 Linux 5.2-rc6 2019-06-28 21:18:23 -03:00
mthca Linux 5.2-rc6 2019-06-28 21:18:23 -03:00
ocrdma Linux 5.2-rc6 2019-06-28 21:18:23 -03:00
qedr Linux 5.2-rc6 2019-06-28 21:18:23 -03:00
qib IB/{rdmavt, hfi1, qib}: Remove AH refcount for UD QPs 2019-06-28 22:34:26 -03:00
usnic Linux 5.2-rc6 2019-06-28 21:18:23 -03:00
vmw_pvrdma Linux 5.2-rc6 2019-06-28 21:18:23 -03:00
Makefile rdma: Remove nes 2019-06-13 09:59:49 -04:00