From patchwork Tue Sep 28 14:44:02 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Animesh K Trivedi1 X-Patchwork-Id: 215112 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter1.kernel.org (8.14.4/8.14.3) with ESMTP id o8SEi6AN025688 for ; Tue, 28 Sep 2010 14:44:06 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755575Ab0I1OoF (ORCPT ); Tue, 28 Sep 2010 10:44:05 -0400 Received: from mtagate2.de.ibm.com ([195.212.17.162]:58548 "EHLO mtagate2.de.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755567Ab0I1OoE (ORCPT ); Tue, 28 Sep 2010 10:44:04 -0400 Received: from d12nrmr1507.megacenter.de.ibm.com (d12nrmr1507.megacenter.de.ibm.com [9.149.167.1]) by mtagate2.de.ibm.com (8.13.1/8.13.1) with ESMTP id o8SEi3r0028525 for ; Tue, 28 Sep 2010 14:44:03 GMT Received: from d12av05.megacenter.de.ibm.com (d12av05.megacenter.de.ibm.com [9.149.165.216]) by d12nrmr1507.megacenter.de.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id o8SEi2sp3739832 for ; Tue, 28 Sep 2010 16:44:02 +0200 Received: from d12av05.megacenter.de.ibm.com (loopback [127.0.0.1]) by d12av05.megacenter.de.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id o8SEi1na001169 for ; Tue, 28 Sep 2010 16:44:01 +0200 Received: from d12mc302.megacenter.de.ibm.com (d12mc302.megacenter.de.ibm.com [9.149.170.82]) by d12av05.megacenter.de.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id o8SEi1gV001166 for ; Tue, 28 Sep 2010 16:44:01 +0200 Subject: fixing blocking rdma_connect call on failure X-KeepSent: D1E009D6:AB14F4A6-C12577AC:00485D02; type=4; name=$KeepSent To: Bernard Metzler Cc: linux-rdma@vger.kernel.org X-Mailer: Lotus Notes Release 8.0.2 HF623 January 16, 2009 Message-ID: From: Animesh K Trivedi1 Date: Tue, 28 Sep 2010 16:44:02 +0200 X-MIMETrack: Serialize by Router on D12MC302/12/M/IBM(Release 8.5|December 05, 2008) at 28/09/2010 16:44:02 MIME-Version: 1.0 Content-type: text/plain; charset=US-ASCII Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.3 (demeter1.kernel.org [140.211.167.41]); Tue, 28 Sep 2010 14:44:06 +0000 (UTC) diff --git a/drivers/infiniband/core/iwcm.c b/drivers/infiniband/core/iwcm.c index bfead5b..2a1e9ae 100644 --- a/drivers/infiniband/core/iwcm.c +++ b/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; }