linux/drivers/infiniband/core
Sean Hefty d3d72d909e RDMA/verbs: Cleanup XRC TGT QPs when destroying XRCD
XRC TGT QPs are intended to be shared among multiple users and
processes.  Allow the destruction of an XRC TGT QP to be done explicitly
through ib_destroy_qp() or when the XRCD is destroyed.

To support destroying an XRC TGT QP, we need to track TGT QPs with the
XRCD.  When the XRCD is destroyed, all tracked XRC TGT QPs are also
cleaned up.

To avoid stale reference issues, if a user is holding a reference on a
TGT QP, we increment a reference count on the QP.  The user releases the
reference by calling ib_release_qp.  This releases any access to the QP
from a user above verbs, but allows the QP to continue to exist until
destroyed by the XRCD.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
2011-10-13 09:20:27 -07:00
..
addr.c net: Abstract dst->neighbour accesses behind helpers. 2011-07-17 23:11:35 -07:00
agent.c IB/mad: Improve an error message so error code is included 2011-03-18 09:42:20 -07:00
agent.h
cache.c IB/core: Add GID change event 2011-07-18 21:04:30 -07:00
cm_msgs.h
cm.c RDMA: Check for NULL mode in .devnode methods 2011-07-04 15:53:28 -07:00
cma.c RDMA/cma: Don't allow IPoIB port space for IBoE 2011-07-18 16:50:25 -07:00
core_priv.h
device.c RDMA: Allow for NULL .modify_device() and .modify_port() methods 2011-07-18 16:44:30 -07:00
fmr_pool.c
iwcm.c RDMA/iwcm: Get rid of enum iw_cm_event_status 2011-05-09 22:23:57 -07:00
iwcm.h
mad_priv.h
mad_rmpp.c
mad_rmpp.h
mad.c IB/mad: Return EPROTONOSUPPORT when an RDMA device lacks the QP required 2011-05-23 11:15:48 -07:00
Makefile RDMA: Add netlink infrastructure 2011-05-20 11:46:11 -07:00
multicast.c IB/mad: IBoE supports only QP1 (no QP0) 2010-10-13 09:38:11 -07:00
netlink.c rtnetlink: Compute and store minimum ifinfo dump size 2011-06-09 20:38:07 -07:00
packer.c
sa_query.c RDMA: Update missed conversion of flush_scheduled_work() 2011-01-28 16:39:08 -08:00
sa.h
smi.c
smi.h
sysfs.c IB/core: Add link layer type information to sysfs 2010-10-25 10:20:39 -07:00
ucm.c
ucma.c Merge branches 'cma', 'cxgb3', 'cxgb4', 'misc', 'nes', 'netlink', 'srp' and 'uverbs' into for-next 2011-05-25 13:47:20 -07:00
ud_header.c IB/pack: Remove some unused code added by the IBoE patches 2010-12-01 16:30:18 -08:00
umem.c RDMA: Update workqueue usage 2011-01-16 21:16:31 -08:00
user_mad.c IB: Add devnode methods to cm_class and umad_class 2011-05-23 11:24:28 -07:00
uverbs_cmd.c RDMA/core: Add SRQ type field 2011-10-13 09:13:26 -07:00
uverbs_main.c RDMA: Check for NULL mode in .devnode methods 2011-07-04 15:53:28 -07:00
uverbs_marshall.c IB: Fix information leak in marshalling code 2010-12-01 16:33:18 -08:00
uverbs.h
verbs.c RDMA/verbs: Cleanup XRC TGT QPs when destroying XRCD 2011-10-13 09:20:27 -07:00