From e7a78ed288c594fa9dd7b024b33f3ec7e0f135d3 Mon Sep 17 00:00:00 2001 From: Animesh K Trivedi Date: Tue, 28 Sep 2010 14:44:02 +0000 Subject: [PATCH] --- yaml --- r: 217747 b: refs/heads/master c: 26012f0750dd73348b0a0a680a4bee2715d4a334 h: refs/heads/master i: 217745: 34bab920a5a4c2538a66b929c581250e5e88eca6 217743: f778c1fb89c9c0a9e8628cf28feb1d6d1d950053 v: v3 --- [refs] | 2 +- trunk/drivers/infiniband/core/iwcm.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 055912acdb09..c43ca05ab22b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 557d0540b96176dc42943e84c88c288f523388ca +refs/heads/master: 26012f0750dd73348b0a0a680a4bee2715d4a334 diff --git a/trunk/drivers/infiniband/core/iwcm.c b/trunk/drivers/infiniband/core/iwcm.c index bfead5bc25f6..2a1e9ae134b4 100644 --- a/trunk/drivers/infiniband/core/iwcm.c +++ b/trunk/drivers/infiniband/core/iwcm.c @@ -506,6 +506,8 @@ int iw_cm_accept(struct iw_cm_id *cm_id, qp = cm_id->device->iwcm->get_qp(cm_id->device, iw_param->qpn); if (!qp) { spin_unlock_irqrestore(&cm_id_priv->lock, flags); + clear_bit(IWCM_F_CONNECT_WAIT, &cm_id_priv->flags); + wake_up_all(&cm_id_priv->connect_wait); return -EINVAL; } cm_id->device->iwcm->add_ref(qp); @@ -565,6 +567,8 @@ int iw_cm_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *iw_param) qp = cm_id->device->iwcm->get_qp(cm_id->device, iw_param->qpn); if (!qp) { spin_unlock_irqrestore(&cm_id_priv->lock, flags); + clear_bit(IWCM_F_CONNECT_WAIT, &cm_id_priv->flags); + wake_up_all(&cm_id_priv->connect_wait); return -EINVAL; } cm_id->device->iwcm->add_ref(qp);