public inbox for linux-rdma@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 06/11] RDMA/nes: abnormal listener termination causes loopback node crash
@ 2009-12-09 22:41 Faisal Latif
  2009-12-10  7:15 ` Or Gerlitz
  0 siblings, 1 reply; 4+ messages in thread
From: Faisal Latif @ 2009-12-09 22:41 UTC (permalink / raw)
  To: Roland Dreier; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA

when listener is destroyed for loopback connection, listener node is
getting reset event. This causes crash as listener is not expecting
reset event. Code review of cm_event_reset() durring debugging showed
the cm_id ref count in incrementing after calling its event handler
and not before.

Signed-off-by: Faisal Latif <faisal.latif-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
---
 drivers/infiniband/hw/nes/nes_cm.c |   16 +++-------------
 1 files changed, 3 insertions(+), 13 deletions(-)

diff --git a/drivers/infiniband/hw/nes/nes_cm.c b/drivers/infiniband/hw/nes/nes_cm.c
index ec04786..20e21f1 100644
--- a/drivers/infiniband/hw/nes/nes_cm.c
+++ b/drivers/infiniband/hw/nes/nes_cm.c
@@ -1014,18 +1014,6 @@ static int mini_cm_dec_refcnt_listen(struct nes_cm_core *cm_core,
 					cm_node->state = NES_CM_STATE_LISTENER_DESTROYED;
 					loopback->state = NES_CM_STATE_CLOSED;
 
-					event.cm_node = cm_node;
-					event.cm_info.rem_addr =
-							 cm_node->rem_addr;
-					event.cm_info.loc_addr =
-							 cm_node->loc_addr;
-					event.cm_info.rem_port =
-							 cm_node->rem_port;
-					event.cm_info.loc_port =
-							 cm_node->loc_port;
-					event.cm_info.cm_id = cm_node->cm_id;
-					cm_event_reset(&event);
-
 					rem_ref_cm_node(cm_node->cm_core,
 							 cm_node);
 
@@ -3440,6 +3428,8 @@ static void cm_event_reset(struct nes_cm_event *event)
 
 	nes_debug(NES_DBG_CM, "%p - cm_id = %p\n", event->cm_node, cm_id);
 	nesqp = cm_id->provider_data;
+	if (!nesqp)
+		return;
 
 	nesqp->cm_id = NULL;
 	/* cm_id->provider_data = NULL; */
@@ -3451,8 +3441,8 @@ static void cm_event_reset(struct nes_cm_event *event)
 	cm_event.private_data = NULL;
 	cm_event.private_data_len = 0;
 
-	ret = cm_id->event_handler(cm_id, &cm_event);
 	cm_id->add_ref(cm_id);
+	ret = cm_id->event_handler(cm_id, &cm_event);
 	atomic_inc(&cm_closes);
 	cm_event.event = IW_CM_EVENT_CLOSE;
 	cm_event.status = IW_CM_EVENT_STATUS_OK;
-- 
1.5.3.3

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 06/11] RDMA/nes: abnormal listener termination causes loopback node crash
  2009-12-09 22:41 [PATCH 06/11] RDMA/nes: abnormal listener termination causes loopback node crash Faisal Latif
@ 2009-12-10  7:15 ` Or Gerlitz
       [not found]   ` <4B20A00C.1070607-smomgflXvOZWk0Htik3J/w@public.gmane.org>
  0 siblings, 1 reply; 4+ messages in thread
From: Or Gerlitz @ 2009-12-10  7:15 UTC (permalink / raw)
  To: Faisal Latif, Steve Wise; +Cc: Roland Dreier, linux-rdma-u79uwXL29TY76Z2rM5mHXA

Faisal Latif wrote:
> when listener is destroyed for loopback connection
Does the upstream iwarp stack supports loopback connections? does it 
apply to all vendors?

Or.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: [PATCH 06/11] RDMA/nes: abnormal listener termination causes loopback node crash
       [not found]   ` <4B20A00C.1070607-smomgflXvOZWk0Htik3J/w@public.gmane.org>
@ 2009-12-10 10:44     ` Tung, Chien Tin
  2009-12-10 15:21     ` Steve Wise
  1 sibling, 0 replies; 4+ messages in thread
From: Tung, Chien Tin @ 2009-12-10 10:44 UTC (permalink / raw)
  To: Or Gerlitz, Latif, Faisal, Steve Wise
  Cc: Roland Dreier, linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org

>Faisal Latif wrote:
>> when listener is destroyed for loopback connection

>Does the upstream iwarp stack supports loopback connections?

Yes.

> does it apply to all vendors?

Yes but Chelsio handles loopback differently from Intel/NetEffect.

This topic came up before, see:

http://lists.openfabrics.org/pipermail/general/2009-July/060542.html

http://lists.openfabrics.org/pipermail/general/2009-July/060548.html


Chien
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 06/11] RDMA/nes: abnormal listener termination causes loopback node crash
       [not found]   ` <4B20A00C.1070607-smomgflXvOZWk0Htik3J/w@public.gmane.org>
  2009-12-10 10:44     ` Tung, Chien Tin
@ 2009-12-10 15:21     ` Steve Wise
  1 sibling, 0 replies; 4+ messages in thread
From: Steve Wise @ 2009-12-10 15:21 UTC (permalink / raw)
  To: Or Gerlitz; +Cc: Faisal Latif, Roland Dreier, linux-rdma-u79uwXL29TY76Z2rM5mHXA

Or Gerlitz wrote:
> Faisal Latif wrote:
>> when listener is destroyed for loopback connection
> Does the upstream iwarp stack supports loopback connections? does it 
> apply to all vendors?
>
> Or.

Loopback support is provider-specific.  There is no software iwarp 
loopback, if that's what your asking.  But the upstream core code 
doesn't prohibit providers from supporting hw-loopback connections.


Steve.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2009-12-10 15:21 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-12-09 22:41 [PATCH 06/11] RDMA/nes: abnormal listener termination causes loopback node crash Faisal Latif
2009-12-10  7:15 ` Or Gerlitz
     [not found]   ` <4B20A00C.1070607-smomgflXvOZWk0Htik3J/w@public.gmane.org>
2009-12-10 10:44     ` Tung, Chien Tin
2009-12-10 15:21     ` Steve Wise

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox