linux/drivers/infiniband/core
Steve Wise 54e05f15cc RDMA/iwcm: Don't call provider reject func with irqs disabled
In commit cb58160e ("RDMA/iwcm: Reject the connection when the cm_id
is destroyed") a call to the provider's reject handler was added to
destroy_cm_id() to fix a provider endpoint leak.  This call needs to
be done with interrupts enabled.  So unlock and relock around this
call.  This is safe because:

1) the provider will do nothing with this endpoint until the iwcm either
   accepts or rejects.
2) the lock is only released after the iwcm state is changed, so an
   errant iwcm app that is destroying -and- rejecting the connection
   concurrently will get a failure on one of the calls.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
2009-10-07 15:38:12 -07:00
..
Makefile
addr.c RDMA: Add __init/__exit macros to addr.c and cma.c 2009-06-23 10:38:42 -07:00
agent.c
agent.h RDMA: Remove subversion $Id tags 2008-07-14 23:48:44 -07:00
cache.c RDMA: Remove subversion $Id tags 2008-07-14 23:48:44 -07:00
cm.c IB: Remove __constant_{endian} uses 2009-01-17 17:11:57 -08:00
cm_msgs.h IB: Remove __constant_{endian} uses 2009-01-17 17:11:57 -08:00
cma.c RDMA: Add __init/__exit macros to addr.c and cma.c 2009-06-23 10:38:42 -07:00
core_priv.h RDMA: Remove subversion $Id tags 2008-07-14 23:48:44 -07:00
device.c IB: Remove sysfs files before unregistering device 2009-02-25 13:27:46 -08:00
fmr_pool.c RDMA: Remove subversion $Id tags 2008-07-14 23:48:44 -07:00
iwcm.c RDMA/iwcm: Don't call provider reject func with irqs disabled 2009-10-07 15:38:12 -07:00
iwcm.h
mad.c Merge branch 'mad' into for-linus 2009-09-10 21:19:45 -07:00
mad_priv.h IB/mad: Allow tuning of QP0 and QP1 sizes 2009-09-07 08:28:48 -07:00
mad_rmpp.c IB/mad: Fix lock-lock-timer deadlock in RMPP code 2009-09-23 11:10:15 -07:00
mad_rmpp.h RDMA: Remove subversion $Id tags 2008-07-14 23:48:44 -07:00
multicast.c IB/core: Fix send multicast group leave retry 2009-09-05 20:24:24 -07:00
packer.c RDMA: Remove subversion $Id tags 2008-07-14 23:48:44 -07:00
sa.h
sa_query.c IB: Use DEFINE_SPINLOCK() for static spinlocks 2009-09-05 20:24:23 -07:00
smi.c IB/mad: Check hop count field in directed route MAD to avoid array overflow 2009-09-05 20:24:10 -07:00
smi.h IB/mad: Enable loopback of DR SMP responses from userspace 2008-01-25 14:15:25 -08:00
sysfs.c infiniband: remove driver_data direct access of struct device 2009-06-15 21:30:26 -07:00
ucm.c headers: remove sched.h from poll.h 2009-10-04 15:05:10 -07:00
ucma.c RDMA/ucma: Test ucma_alloc_multicast() return against NULL, not with IS_ERR() 2008-10-10 12:00:19 -07:00
ud_header.c RDMA: Remove subversion $Id tags 2008-07-14 23:48:44 -07:00
umem.c RDMA: Remove subversion $Id tags 2008-07-14 23:48:44 -07:00
user_mad.c headers: remove sched.h from poll.h 2009-10-04 15:05:10 -07:00
uverbs.h RDMA: Remove subversion $Id tags 2008-07-14 23:48:44 -07:00
uverbs_cmd.c RDMA/core: Add memory management extensions support 2008-07-14 23:48:45 -07:00
uverbs_main.c headers: remove sched.h from poll.h 2009-10-04 15:05:10 -07:00
uverbs_marshall.c
verbs.c IB/core: Reset to error QP state transition is not allowed 2008-07-14 23:48:46 -07:00