aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/ipath
diff options
context:
space:
mode:
authorAnimesh K Trivedi <ATR@zurich.ibm.com>2010-09-28 14:44:02 +0000
committerRoland Dreier <rolandd@cisco.com>2010-10-11 20:24:04 -0700
commit26012f0750dd73348b0a0a680a4bee2715d4a334 (patch)
tree5e180250d46e74f9116c15503830b1b9a0b1ac50 /drivers/infiniband/hw/ipath
parentIB/umad: Make user_mad semaphore a real one (diff)
downloadlinux-dev-26012f0750dd73348b0a0a680a4bee2715d4a334.tar.xz
linux-dev-26012f0750dd73348b0a0a680a4bee2715d4a334.zip
RDMA/iwcm: Fix hang in uninterruptible wait on cm_id destroy
A process can get stuck in an uninterruptible wait in the kernel while destroying a cm_id when iw_cm_connect() fails: For example, When creation of a PD fails but the user continues with an attempt to connect to the server without checking the return value, in iw_cm_connect() a NULL qp is found so the call fails. However the IWCM_F_CONNECT_WAIT bit is not cleared. destroy_cm_id() then waits forever for IWCM_F_CONNECT_WAIT to be cleared. The same problem exists on the passive side with the accept call. Fix this by clearing the bit and waking up any waiters in the appropriate spots. Signed-off-by: Animesh Trivedi <atr@zurich.ibm.com> Acked-by: Steve Wise <swise@opengridcomputing.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband/hw/ipath')
0 files changed, 0 insertions, 0 deletions