linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Mike Christie <michaelc@cs.wisc.edu>
To: open-iscsi@googlegroups.com
Cc: Eddie Wai <eddie.wai@broadcom.com>,
	James Bottomley <JBottomley@novell.com>,
	linux-scsi <linux-scsi@vger.kernel.org>,
	Michael Chan <mchan@broadcom.com>,
	Anil Veerabhadrappa <anilgv@broadcom.com>,
	Ben Li <benli@broadcom.com>
Subject: Re: [PATCH 06/16] BNX2I: Added code to handle the binding of an existing connection
Date: Sat, 01 Jan 2011 22:11:07 -0600	[thread overview]
Message-ID: <4D1FFADB.60307@cs.wisc.edu> (raw)
In-Reply-To: <4CE49C85.2070109@cs.wisc.edu>

[-- Attachment #1: Type: text/plain, Size: 1734 bytes --]

On 11/17/2010 09:24 PM, Mike Christie wrote:
> On 11/10/2010 05:04 PM, Eddie Wai wrote:
>> This is the case when iscsid gets re-launched due to features like
>> iSCSI boot which requires the daemon to re-launch due to
>> pivot root. If the code detected the connection had an existing
>> endpoint, the old endpoint must get cleaned up.
>>
>> Signed-off-by: Eddie Wai<eddie.wai@broadcom.com>
>> Acked-by: Anil Veerabhadrappa<anilgv@broadcom.com>
>> ---
>> drivers/scsi/bnx2i/bnx2i_iscsi.c | 7 +++++++
>> 1 files changed, 7 insertions(+), 0 deletions(-)
>>
>> diff --git a/drivers/scsi/bnx2i/bnx2i_iscsi.c
>> b/drivers/scsi/bnx2i/bnx2i_iscsi.c
>> index 823e4fa..3b65c64 100644
>> --- a/drivers/scsi/bnx2i/bnx2i_iscsi.c
>> +++ b/drivers/scsi/bnx2i/bnx2i_iscsi.c
>> @@ -1410,6 +1410,13 @@ static int bnx2i_conn_bind(struct
>> iscsi_cls_session *cls_session,
>> hba->netdev->name);
>> return -EEXIST;
>> }
>> + if (bnx2i_conn->ep) {
>> + printk(KERN_ALERT "bnx2i: Binding to an existing endpoint "
>> + "detected. Disconnecting the old...\n");
>> + mutex_lock(&hba->net_dev_lock);
>> + bnx2i_hw_ep_disconnect(bnx2i_conn->ep);
>> + mutex_unlock(&hba->net_dev_lock);
>> + }
>> bnx2i_ep->conn = bnx2i_conn;
>> bnx2i_conn->ep = bnx2i_ep;
>> bnx2i_conn->iscsi_conn_cid = bnx2i_ep->ep_iscsi_cid;
>
> Don't you still leak what bnx2i_free_ep frees?
>
> In userspace you should have iscsid/iscsi_sync_session match the iscsi
> endpoint with the iscsi conn and set transport_ep_handle. ep_disconnect
> will then get called like normal to clean up the old connection.
>

I went a different way. In the attached patch we detect the problem when 
binding and will force a disconnect of the old ep before binding a new one.

Try it out and let me know.

[-- Attachment #2: iscsi-fix-ep-boot-leak.patch --]
[-- Type: text/plain, Size: 10619 bytes --]

diff --git a/drivers/infiniband/ulp/iser/iscsi_iser.c b/drivers/infiniband/ulp/iser/iscsi_iser.c
index 7b2fc98..921c2cb 100644
--- a/drivers/infiniband/ulp/iser/iscsi_iser.c
+++ b/drivers/infiniband/ulp/iser/iscsi_iser.c
@@ -331,8 +331,7 @@ iscsi_iser_conn_destroy(struct iscsi_cls_conn *cls_conn)
 
 static int
 iscsi_iser_conn_bind(struct iscsi_cls_session *cls_session,
-		     struct iscsi_cls_conn *cls_conn, uint64_t transport_eph,
-		     int is_leading)
+		     struct iscsi_cls_conn *cls_conn, uint64_t transport_eph)
 {
 	struct iscsi_conn *conn = cls_conn->dd_data;
 	struct iscsi_iser_conn *iser_conn;
@@ -340,10 +339,6 @@ iscsi_iser_conn_bind(struct iscsi_cls_session *cls_session,
 	struct iscsi_endpoint *ep;
 	int error;
 
-	error = iscsi_conn_bind(cls_session, cls_conn, is_leading);
-	if (error)
-		return error;
-
 	/* the transport ep handle comes from user space so it must be
 	 * verified against the global ib connections list */
 	ep = iscsi_lookup_endpoint(transport_eph);
@@ -352,6 +347,11 @@ iscsi_iser_conn_bind(struct iscsi_cls_session *cls_session,
 			 (unsigned long long)transport_eph);
 		return -EINVAL;
 	}
+
+	error = iscsi_conn_bind(cls_session, cls_conn, ep);
+	if (error)
+		return error;
+
 	ib_conn = ep->dd_data;
 
 	/* binds the iSER connection retrieved from the previously
diff --git a/drivers/scsi/be2iscsi/be_iscsi.c b/drivers/scsi/be2iscsi/be_iscsi.c
index eaaa881..97533e7 100644
--- a/drivers/scsi/be2iscsi/be_iscsi.c
+++ b/drivers/scsi/be2iscsi/be_iscsi.c
@@ -174,7 +174,7 @@ static int beiscsi_bindconn_cid(struct beiscsi_hba *phba,
  */
 int beiscsi_conn_bind(struct iscsi_cls_session *cls_session,
 		      struct iscsi_cls_conn *cls_conn,
-		      u64 transport_fd, int is_leading)
+		      u64 transport_fd)
 {
 	struct iscsi_conn *conn = cls_conn->dd_data;
 	struct beiscsi_conn *beiscsi_conn = conn->dd_data;
@@ -191,7 +191,7 @@ int beiscsi_conn_bind(struct iscsi_cls_session *cls_session,
 
 	beiscsi_ep = ep->dd_data;
 
-	if (iscsi_conn_bind(cls_session, cls_conn, is_leading))
+	if (iscsi_conn_bind(cls_session, cls_conn, ep))
 		return -EINVAL;
 
 	if (beiscsi_ep->phba != phba) {
diff --git a/drivers/scsi/be2iscsi/be_iscsi.h b/drivers/scsi/be2iscsi/be_iscsi.h
index 8950a70..4047ec1 100644
--- a/drivers/scsi/be2iscsi/be_iscsi.h
+++ b/drivers/scsi/be2iscsi/be_iscsi.h
@@ -46,7 +46,7 @@ struct iscsi_cls_conn *beiscsi_conn_create(struct iscsi_cls_session
 
 int beiscsi_conn_bind(struct iscsi_cls_session *cls_session,
 		      struct iscsi_cls_conn *cls_conn,
-		      uint64_t transport_fd, int is_leading);
+		      uint64_t transport_fd);
 
 int beiscsi_conn_get_param(struct iscsi_cls_conn *cls_conn,
 			   enum iscsi_param param, char *buf);
diff --git a/drivers/scsi/bnx2i/bnx2i_iscsi.c b/drivers/scsi/bnx2i/bnx2i_iscsi.c
index f0dce26..7c5c1d9 100644
--- a/drivers/scsi/bnx2i/bnx2i_iscsi.c
+++ b/drivers/scsi/bnx2i/bnx2i_iscsi.c
@@ -1373,7 +1373,7 @@ free_conn:
  */
 static int bnx2i_conn_bind(struct iscsi_cls_session *cls_session,
 			   struct iscsi_cls_conn *cls_conn,
-			   uint64_t transport_fd, int is_leading)
+			   uint64_t transport_fd)
 {
 	struct iscsi_conn *conn = cls_conn->dd_data;
 	struct bnx2i_conn *bnx2i_conn = conn->dd_data;
@@ -1399,7 +1399,7 @@ static int bnx2i_conn_bind(struct iscsi_cls_session *cls_session,
 		/* Peer disconnect via' FIN or RST */
 		return -EINVAL;
 
-	if (iscsi_conn_bind(cls_session, cls_conn, is_leading))
+	if (iscsi_conn_bind(cls_session, cls_conn, ep))
 		return -EINVAL;
 
 	if (bnx2i_ep->hba != hba) {
diff --git a/drivers/scsi/cxgbi/libcxgbi.c b/drivers/scsi/cxgbi/libcxgbi.c
index be56617..84125e9 100644
--- a/drivers/scsi/cxgbi/libcxgbi.c
+++ b/drivers/scsi/cxgbi/libcxgbi.c
@@ -2264,7 +2264,7 @@ EXPORT_SYMBOL_GPL(cxgbi_create_conn);
 
 int cxgbi_bind_conn(struct iscsi_cls_session *cls_session,
 				struct iscsi_cls_conn *cls_conn,
-				u64 transport_eph, int is_leading)
+				u64 transport_eph)
 {
 	struct iscsi_conn *conn = cls_conn->dd_data;
 	struct iscsi_tcp_conn *tcp_conn = conn->dd_data;
@@ -2285,7 +2285,7 @@ int cxgbi_bind_conn(struct iscsi_cls_session *cls_session,
 	if (err < 0)
 		return err;
 
-	err = iscsi_conn_bind(cls_session, cls_conn, is_leading);
+	err = iscsi_conn_bind(cls_session, cls_conn, ep);
 	if (err)
 		return -EINVAL;
 
diff --git a/drivers/scsi/cxgbi/libcxgbi.h b/drivers/scsi/cxgbi/libcxgbi.h
index c57d59d..1bd50e3 100644
--- a/drivers/scsi/cxgbi/libcxgbi.h
+++ b/drivers/scsi/cxgbi/libcxgbi.h
@@ -718,7 +718,7 @@ int cxgbi_set_conn_param(struct iscsi_cls_conn *,
 int cxgbi_get_conn_param(struct iscsi_cls_conn *, enum iscsi_param, char *);
 struct iscsi_cls_conn *cxgbi_create_conn(struct iscsi_cls_session *, u32);
 int cxgbi_bind_conn(struct iscsi_cls_session *,
-			struct iscsi_cls_conn *, u64, int);
+			struct iscsi_cls_conn *, u64);
 void cxgbi_destroy_session(struct iscsi_cls_session *);
 struct iscsi_cls_session *cxgbi_create_session(struct iscsi_endpoint *,
 			u16, u16, u32);
diff --git a/drivers/scsi/iscsi_tcp.c b/drivers/scsi/iscsi_tcp.c
index fec47de..9961c22 100644
--- a/drivers/scsi/iscsi_tcp.c
+++ b/drivers/scsi/iscsi_tcp.c
@@ -651,8 +651,7 @@ free_addr:
 
 static int
 iscsi_sw_tcp_conn_bind(struct iscsi_cls_session *cls_session,
-		       struct iscsi_cls_conn *cls_conn, uint64_t transport_eph,
-		       int is_leading)
+		       struct iscsi_cls_conn *cls_conn, uint64_t transport_eph)
 {
 	struct Scsi_Host *shost = iscsi_session_to_shost(cls_session);
 	struct iscsi_host *ihost = shost_priv(shost);
@@ -685,7 +684,7 @@ iscsi_sw_tcp_conn_bind(struct iscsi_cls_session *cls_session,
 	if (err)
 		goto free_socket;
 
-	err = iscsi_conn_bind(cls_session, cls_conn, is_leading);
+	err = iscsi_conn_bind(cls_session, cls_conn, NULL);
 	if (err)
 		goto free_socket;
 
diff --git a/drivers/scsi/libiscsi.c b/drivers/scsi/libiscsi.c
index da8b615..76960fb 100644
--- a/drivers/scsi/libiscsi.c
+++ b/drivers/scsi/libiscsi.c
@@ -3137,16 +3137,18 @@ void iscsi_conn_stop(struct iscsi_cls_conn *cls_conn, int flag)
 EXPORT_SYMBOL_GPL(iscsi_conn_stop);
 
 int iscsi_conn_bind(struct iscsi_cls_session *cls_session,
-		    struct iscsi_cls_conn *cls_conn, int is_leading)
+		    struct iscsi_cls_conn *cls_conn,
+		    struct iscsi_endpoint *ep)
 {
 	struct iscsi_session *session = cls_session->dd_data;
 	struct iscsi_conn *conn = cls_conn->dd_data;
 
 	spin_lock_bh(&session->lock);
-	if (is_leading)
-		session->leadconn = conn;
+	session->leadconn = conn;
 	spin_unlock_bh(&session->lock);
 
+	ep->conn = cls_conn;
+	cls_conn->ep = ep;
 	/*
 	 * Unblock xmitworker(), Login Phase will pass through.
 	 */
diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c
index f905ecb..035c8bd 100644
--- a/drivers/scsi/scsi_transport_iscsi.c
+++ b/drivers/scsi/scsi_transport_iscsi.c
@@ -975,7 +975,6 @@ iscsi_create_conn(struct iscsi_cls_session *session, int dd_size, uint32_t cid)
 
 	spin_lock_irqsave(&connlock, flags);
 	list_add(&conn->conn_list, &connlist);
-	conn->active = 1;
 	spin_unlock_irqrestore(&connlock, flags);
 
 	ISCSI_DBG_TRANS_CONN(conn, "Completed conn creation\n");
@@ -1001,7 +1000,6 @@ int iscsi_destroy_conn(struct iscsi_cls_conn *conn)
 	unsigned long flags;
 
 	spin_lock_irqsave(&connlock, flags);
-	conn->active = 0;
 	list_del(&conn->conn_list);
 	spin_unlock_irqrestore(&connlock, flags);
 
@@ -1430,6 +1428,26 @@ release_host:
 	return err;
 }
 
+static int iscsi_if_ep_disconnect(struct iscsi_transport *transport,
+				  u64 ep_handle)
+{
+	struct iscsi_cls_conn *conn;
+	struct iscsi_endpoint *ep;
+
+	if (!transport->ep_disconnect)
+		return -EINVAL;
+
+	ep = iscsi_lookup_endpoint(ep_handle);
+	if (!ep)
+		return -EINVAL;
+	conn = ep->conn;
+
+	transport->ep_disconnect(ep);
+	if (conn)
+		conn->ep = NULL;
+	return 0;
+}
+
 static int
 iscsi_if_transport_ep(struct iscsi_transport *transport,
 		      struct iscsi_uevent *ev, int msg_type)
@@ -1454,14 +1472,8 @@ iscsi_if_transport_ep(struct iscsi_transport *transport,
 						   ev->u.ep_poll.timeout_ms);
 		break;
 	case ISCSI_UEVENT_TRANSPORT_EP_DISCONNECT:
-		if (!transport->ep_disconnect)
-			return -EINVAL;
-
-		ep = iscsi_lookup_endpoint(ev->u.ep_disconnect.ep_handle);
-		if (!ep)
-			return -EINVAL;
-
-		transport->ep_disconnect(ep);
+		rc = iscsi_if_ep_disconnect(transport,
+					    ev->u.ep_disconnect.ep_handle);
 		break;
 	}
 	return rc;
@@ -1609,10 +1621,12 @@ iscsi_if_recv_msg(struct sk_buff *skb, struct nlmsghdr *nlh, uint32_t *group)
 		session = iscsi_session_lookup(ev->u.b_conn.sid);
 		conn = iscsi_conn_lookup(ev->u.b_conn.sid, ev->u.b_conn.cid);
 
+		if (conn && conn->ep)
+			iscsi_if_ep_disconnect(transport, conn->ep->id);
+
 		if (session && conn)
 			ev->r.retcode =	transport->bind_conn(session, conn,
-					ev->u.b_conn.transport_eph,
-					ev->u.b_conn.is_leading);
+					ev->u.b_conn.transport_eph);
 		else
 			err = -EINVAL;
 		break;
diff --git a/include/scsi/libiscsi.h b/include/scsi/libiscsi.h
index 748382b..006148e 100644
--- a/include/scsi/libiscsi.h
+++ b/include/scsi/libiscsi.h
@@ -388,7 +388,7 @@ extern void iscsi_conn_teardown(struct iscsi_cls_conn *);
 extern int iscsi_conn_start(struct iscsi_cls_conn *);
 extern void iscsi_conn_stop(struct iscsi_cls_conn *, int);
 extern int iscsi_conn_bind(struct iscsi_cls_session *, struct iscsi_cls_conn *,
-			   int);
+			   struct iscsi_endpoint *);
 extern void iscsi_conn_failure(struct iscsi_conn *conn, enum iscsi_err err);
 extern void iscsi_session_failure(struct iscsi_session *session,
 				  enum iscsi_err err);
diff --git a/include/scsi/scsi_transport_iscsi.h b/include/scsi/scsi_transport_iscsi.h
index 7fff94b..225fe57 100644
--- a/include/scsi/scsi_transport_iscsi.h
+++ b/include/scsi/scsi_transport_iscsi.h
@@ -95,7 +95,7 @@ struct iscsi_transport {
 				uint32_t cid);
 	int (*bind_conn) (struct iscsi_cls_session *session,
 			  struct iscsi_cls_conn *cls_conn,
-			  uint64_t transport_eph, int is_leading);
+			  uint64_t transport_eph);
 	int (*start_conn) (struct iscsi_cls_conn *conn);
 	void (*stop_conn) (struct iscsi_cls_conn *conn, int flag);
 	void (*destroy_conn) (struct iscsi_cls_conn *conn);
@@ -160,8 +160,8 @@ struct iscsi_cls_conn {
 	void *dd_data;			/* LLD private data */
 	struct iscsi_transport *transport;
 	uint32_t cid;			/* connection id */
+	struct iscsi_endpoint *ep;
 
-	int active;			/* must be accessed with the connlock */
 	struct device dev;		/* sysfs transport/container device */
 };
 
@@ -222,6 +222,7 @@ struct iscsi_endpoint {
 	void *dd_data;			/* LLD private data */
 	struct device dev;
 	uint64_t id;
+	struct iscsi_cls_conn *conn;
 };
 
 /*

  reply	other threads:[~2011-01-02  4:14 UTC|newest]

Thread overview: 189+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <Eddie Wai <eddie.wai@broadcom.com>
2010-06-26  1:39 ` [PATCH 0/7] BNX2I: Patch set to fix various disconnect conditions Eddie Wai
2010-06-26  1:39 ` [PATCH 1/7] BNX2I: Separated the hardware's cleanup procedure from ep_disconnect Eddie Wai
2010-06-30  5:53   ` Mike Christie
2010-06-30  6:07     ` Eddie Wai
2010-06-26  1:39 ` [PATCH 2/7] BNX2I: Created an active linklist which holds bnx2i endpoints Eddie Wai
     [not found]   ` <1277516372-469-3-git-send-email-eddie.wai-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2010-06-30  5:59     ` Mike Christie
2010-06-26  1:39 ` [PATCH 3/7] BNX2I: Optimized the bnx2i_stop connection clean up procedure Eddie Wai
2010-06-30  6:11   ` Mike Christie
2010-06-30  6:56     ` Eddie Wai
2010-06-26  1:39 ` [PATCH 4/7] BNX2I: Fine tuned conn destroy and context destroy timeout values Eddie Wai
2010-06-26  1:39 ` [PATCH 5/7] BNX2I: Fixed the TCP graceful termination initiation Eddie Wai
2010-06-30  6:20   ` Mike Christie
2010-06-26  1:39 ` [PATCH 6/7] BNX2I: Added host param ISCSI_HOST_PARAM_IPADDRESS Eddie Wai
2010-06-26  1:39 ` [PATCH 7/7] BNX2I: Updated version from 2.1.1 to 2.1.2 Eddie Wai
2010-07-01 22:34 ` [PATCH 0/7 v2] BNX2I: Patch set to fix various disconnect conditions Eddie Wai
2010-07-08  0:49   ` Mike Christie
2010-07-01 22:34 ` [PATCH 1/7 v2] BNX2I: Separated the hardware's cleanup procedure from ep_disconnect Eddie Wai
2010-07-01 22:34 ` [PATCH 3/7 v2] BNX2I: Optimized the bnx2i_stop connection clean up procedure Eddie Wai
2010-07-01 22:34 ` [PATCH 5/7 v2] BNX2I: Fixed the TCP graceful termination initiation Eddie Wai
2010-07-01 22:34 ` [PATCH 6/7 v2] BNX2I: Added host param ISCSI_HOST_PARAM_IPADDRESS Eddie Wai
2010-07-01 22:34 ` [PATCH 7/7 v2] BNX2I: Updated version from 2.1.1 to 2.1.2 Eddie Wai
2010-07-21 18:51 ` [PATCH] Added fix for unsolicited NOP-In handling Eddie Wai
2010-07-21 18:51 ` [PATCH] BNX2I: Fixed bugs in the handling of unsolicited NOP-Ins Eddie Wai
     [not found]   ` <1279738270-21911-2-git-send-email-eddie.wai-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2010-07-23  4:50     ` Mike Christie
2010-07-27 16:12 ` [PATCH] BNX2I: Added fix for NOP-Out response panic from unsolicited NOP-In Eddie Wai
2010-07-27 17:27   ` Mike Christie
2010-08-10 19:09 ` [PATCH 0/5] Patch set to fix various bugs in bnx2i Eddie Wai
2010-08-10 19:09 ` [PATCH 2/5] BNX2I: Added support for other TMFs besides ABORT_TASK Eddie Wai
     [not found]   ` <1281467374-6182-3-git-send-email-eddie.wai-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2010-08-11 19:07     ` Mike Christie
2010-08-11 19:26       ` Eddie Wai
2010-08-11 19:38         ` Mike Christie
2010-08-10 19:09 ` [PATCH 4/5] BNX2I: Added chip cleanup for the remove module path Eddie Wai
2010-08-11 19:09   ` Mike Christie
2010-08-10 19:09 ` [PATCH 5/5] BNX2I: Updated version to bnx2i-2.1.3 Eddie Wai
2010-08-12 23:44 ` [PATCH 0/5 v2] Patch set to fix various bugs in bnx2i Eddie Wai
2010-08-12 23:44 ` [PATCH 1/5 v2] BNX2I: Fixed a protocol violation on nopout responses Eddie Wai
2010-08-12 23:44 ` [PATCH 2/5 v2] BNX2I: Added support for other TMFs besides ABORT_TASK Eddie Wai
2010-08-13  1:38   ` Mike Christie
2010-08-12 23:44 ` [PATCH 3/5 v2] BNX2I: Recouple the CFC delete cleanup with cm_abort/close completion Eddie Wai
2010-08-12 23:44 ` [PATCH 4/5 v2] BNX2I: Added chip cleanup for the remove module path Eddie Wai
2010-08-12 23:44 ` [PATCH 5/5 v2] BNX2I: Updated version to bnx2i-2.1.3 Eddie Wai
2010-08-13 16:33 ` [PATCH 2/5 v3] BNX2I: Added support for other TMFs besides ABORT_TASK Eddie Wai
2010-08-13 16:42   ` Mike Christie
2010-11-10 23:04 ` [PATCH 00/16] BNX2I: Patch set to fix various bug fixes Eddie Wai
2010-11-10 23:04 ` [PATCH 01/16] BNX2I: Fixed bugs in the handling of unsolicited NOP-Ins Eddie Wai
2010-11-10 23:04 ` [PATCH 02/16] BNX2I: Added fix for NOP-Out response panic from unsolicited NOP-In Eddie Wai
2010-11-10 23:04 ` [PATCH 03/16] BNX2I: Fixed the endian bug in the TMF LUN cmd send Eddie Wai
2010-11-10 23:04 ` [PATCH 04/16] BNX2I: Updated the handling of NETEVENTs to alleviate recovery Eddie Wai
2010-11-18  3:14   ` Mike Christie
2010-11-18 18:25     ` Eddie Wai
2010-11-18 18:28     ` Michael Chan
2010-11-10 23:04 ` [PATCH 05/16] BNX2I: Modified the bnx2i stop path to compensate for in progress ops Eddie Wai
2010-11-10 23:04 ` [PATCH 06/16] BNX2I: Added code to handle the binding of an existing connection Eddie Wai
2010-11-18  3:24   ` Mike Christie
2011-01-02  4:11     ` Mike Christie [this message]
2011-01-06  6:54       ` Or Gerlitz
2011-01-06 20:38         ` Mike Christie
2010-11-10 23:04 ` [PATCH 07/16] BNX2I: Fixed the remote TCP RST handling for the 570X (1g) Eddie Wai
2010-11-10 23:04 ` [PATCH 09/16] BNX2I: Removed the dynamic registration of CNIC Eddie Wai
2010-11-18  3:29   ` Mike Christie
2010-11-10 23:04 ` [PATCH 11/16] BNX2I: Added return code check for chip kwqe submission request Eddie Wai
2010-11-10 23:04 ` [PATCH 12/16] BNX2I: Added feature to silently drop NOPOUT request Eddie Wai
2010-11-18  3:40   ` Mike Christie
2010-11-18 19:25     ` Eddie Wai
2010-11-18 19:55       ` Mike Christie
     [not found]         ` <4CE584C6.7070300-hcNo3dDEHLuVc3sceRu5cw@public.gmane.org>
2010-11-18 20:04           ` Mike Christie
2010-11-18 21:59             ` Eddie Wai
2010-11-20  5:07               ` Mike Christie
2010-11-10 23:04 ` [PATCH 13/16] BNX2I: Cleaned up various error conditions in ep_connect/disconnect Eddie Wai
2010-11-10 23:04 ` [PATCH 14/16] BNX2I: Allow to abort the connection if connect request times out Eddie Wai
2010-11-10 23:04 ` [PATCH 15/16] BNX2I: Updated copyright and maintainer info Eddie Wai
2010-11-10 23:04 ` [PATCH 16/16] BNX2I: Updated version to 2.6.2.2 Eddie Wai
2010-11-19  1:29 ` [PATCH 00/14] BNX2I: Patch set to fix various bug fixes Eddie Wai
2010-11-19  1:29 ` [PATCH v2 01/14] BNX2I: Fixed bugs in the handling of unsolicited NOP-Ins Eddie Wai
2010-11-19  1:29 ` [PATCH v2 02/14] BNX2I: Added fix for NOP-Out response panic from unsolicited NOP-In Eddie Wai
2010-11-19  1:29 ` [PATCH v2 03/14] BNX2I: Fixed the endian bug in the TMF LUN cmd send Eddie Wai
2010-11-19  1:29 ` [PATCH v2 04/14] BNX2I: Fixed a cid leak issue for 5771X (10g) Eddie Wai
2010-11-19  1:30 ` [PATCH v2 05/14] BNX2I: Fixed the remote TCP RST handling for the 570X (1g) Eddie Wai
2010-11-19  1:30 ` [PATCH v2 06/14] BNX2I: Allow to abort the connection if connect request times out Eddie Wai
2010-11-19  1:30 ` [PATCH v2 07/14] BNX2I: Added mutex lock protection to conn_get_param Eddie Wai
2010-11-19  1:30 ` [PATCH v2 08/14] BNX2I: Removed the dynamic registration of CNIC Eddie Wai
2010-11-19  1:30 ` [PATCH v2 09/14] BNX2I: Modified the bnx2i stop path to compensate for in progress ops Eddie Wai
2010-11-19  1:30 ` [PATCH v2 10/14] BNX2I: Added return code check for chip kwqe submission request Eddie Wai
2010-11-19  1:30 ` [PATCH v2 11/14] BNX2I: Added feature to silently drop NOPOUT request Eddie Wai
     [not found]   ` <1290130209-32133-12-git-send-email-eddie.wai-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2010-11-22 17:42     ` Mike Christie
2010-11-19  1:30 ` [PATCH v2 12/14] BNX2I: Cleaned up various error conditions in ep_connect/disconnect Eddie Wai
2010-11-19  1:30 ` [PATCH v2 13/14] BNX2I: Updated copyright and maintainer info Eddie Wai
2010-11-19  1:30 ` [PATCH v2 14/14] BNX2I: Updated version to 2.6.2.1 Eddie Wai
2010-11-23 23:29 ` PATCH 00/13] BNX2I: Patch set to fix various bug fixes Eddie Wai
2010-11-24  0:16   ` Mike Christie
2010-11-23 23:29 ` [PATCH v3 01/13] BNX2I: Fixed bugs in the handling of unsolicited NOP-Ins Eddie Wai
2010-11-23 23:29 ` [PATCH v3 02/13] BNX2I: Added fix for NOP-Out response panic from unsolicited NOP-In Eddie Wai
2010-11-23 23:29 ` [PATCH v3 03/13] BNX2I: Fixed the endian bug in the TMF LUN cmd send Eddie Wai
2010-11-23 23:29 ` [PATCH v3 04/13] BNX2I: Fixed a cid leak issue for 5771X (10g) Eddie Wai
2010-11-23 23:29 ` [PATCH v3 05/13] BNX2I: Fixed the remote TCP RST handling for the 570X (1g) Eddie Wai
2010-11-23 23:29 ` [PATCH v3 06/13] BNX2I: Allow to abort the connection if connect request times out Eddie Wai
2010-11-23 23:29 ` [PATCH v3 08/13] BNX2I: Removed the dynamic registration of CNIC Eddie Wai
2010-11-23 23:29 ` [PATCH v3 09/13] BNX2I: Modified the bnx2i stop path to compensate for in progress ops Eddie Wai
2010-11-23 23:29 ` [PATCH v3 10/13] BNX2I: Added return code check for chip kwqe submission request Eddie Wai
2010-11-23 23:29 ` [PATCH v3 11/13] BNX2I: Cleaned up various error conditions in ep_connect/disconnect Eddie Wai
2010-11-23 23:29 ` [PATCH v3 12/13] BNX2I: Updated copyright and maintainer info Eddie Wai
2010-11-23 23:29 ` [PATCH v3 13/13] BNX2I: Updated version to 2.6.2.2 Eddie Wai
2011-01-05 20:44 ` [PATCH 0/8] Added bug fixes and several features for BNX2I Eddie Wai
2011-01-05 20:52   ` James Bottomley
     [not found]     ` <1294260724.16957.29.camel-0iu6Cu4xQGLYCGPCin2YbQ@public.gmane.org>
2011-01-06  0:42       ` Eddie Wai
2011-01-06 20:43   ` Mike Christie
2011-01-26 21:55     ` Mike Christie
2011-01-05 20:44 ` [PATCH 1/8] BNX2I: Allow ep CONNECT_FAILED condition to go through proper cleanup Eddie Wai
2011-01-05 20:44 ` [PATCH 2/8] BNX2I: Fixed the 32-bit swapping of the LUN field for nopouts for 5771X Eddie Wai
2011-01-05 20:44 ` [PATCH 3/8] BNX2I: Added handling for unsupported iSCSI offload hba Eddie Wai
2011-01-05 20:44 ` [PATCH 4/8] BNX2I: Added support for the 57712(E) devices Eddie Wai
2011-01-05 20:44 ` [PATCH 5/8] BNX2I: Added TCP timestamps option support Eddie Wai
2011-01-05 20:52   ` Mike Christie
2011-01-05 21:06     ` Mike Christie
     [not found]       ` <4D24DD45.8060701-hcNo3dDEHLuVc3sceRu5cw@public.gmane.org>
2011-01-06  0:39         ` Eddie Wai
2011-01-05 20:44 ` [PATCH 6/8] BNX2I: Added jumbo MTU support for the no shost case Eddie Wai
2011-01-05 20:50   ` Mike Christie
2011-01-05 22:58     ` Eddie Wai
2011-01-05 20:44 ` [PATCH 7/8] BNX2I: Added iSCSI text pdu support for iSCSI offload Eddie Wai
2011-01-05 20:44 ` [PATCH 8/8] BNX2I: Updated to version 2.6.2.3 Eddie Wai
2011-01-09  2:00 ` [PATCH] BNX2I: Added reconnect fix connecting against Lefthand targets Eddie Wai
2011-01-09  5:44   ` Mike Christie
2011-05-16 18:13 ` [PATCH 0/3] BNX2I: Bug fixes and Performance Optimization Eddie Wai
2011-05-18 19:52   ` Mike Christie
2011-05-16 18:13 ` [PATCH 1/3] BNX2I: Fixed packet error created when the sq_size is set to 16 Eddie Wai
2011-05-16 18:13 ` [PATCH 2/3] BNX2I: Updated the connection shutdown/cleanup timeout Eddie Wai
2011-05-16 18:13 ` [PATCH 3/3] BNX2I: Optimized the iSCSI offload performance Eddie Wai
2011-05-16 19:13   ` Mike Christie
2011-06-21 16:49 ` [PATCH 0/4] BNX2I: Code and performance optimization Eddie Wai
2011-06-21 16:49 ` [PATCH 1/4] BNX2I: Added the use of kthreads to handle SCSI cmd completion Eddie Wai
2011-06-22  2:54   ` Mike Christie
2011-06-22  6:46     ` Eddie Wai
2011-06-21 16:49 ` [PATCH 2/4] BNX2I: Modified to skip CNIC registration if iSCSI is not supported Eddie Wai
2011-06-21 16:49 ` [PATCH 3/4] BNX2I: Changed the nopout_wqe->lun memcpy to use sizeof instead Eddie Wai
2011-06-22  8:00   ` Rolf Eike Beer
2011-06-21 16:49 ` [PATCH 4/4] BNX2I: Updated copyright and bump version Eddie Wai
2011-06-23 22:51 ` [PATCH 0/4 v2] BNX2I: Code and performance optimization Eddie Wai
2011-06-23 22:51 ` [PATCH 1/4 v2] BNX2I: Added the use of kthreads to handle SCSI cmd completion Eddie Wai
2011-06-23 22:51 ` [PATCH 2/4 v2] BNX2I: Modified to skip CNIC registration if iSCSI is not supported Eddie Wai
2011-06-23 22:51 ` [PATCH 3/4 v2] BNX2I: Changed the nopout_wqe->lun memcpy to use sizeof instead Eddie Wai
2011-06-24 20:20   ` Mike Christie
2011-06-29 21:53     ` James Bottomley
2011-06-23 22:51 ` [PATCH 4/4 v2] BNX2I: Updated copyright and bump version Eddie Wai
2011-07-11 18:14 ` [PATCH] BNX2I: Fixed kernel panic due to illegal usage of sc->request->cpu Eddie Wai
     [not found]   ` <1310408095-11882-1-git-send-email-eddie.wai-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2011-07-11 20:02     ` Mike Christie
2011-07-14  6:33       ` Eddie Wai
2011-07-14  7:20         ` Mike Christie
2011-07-14  7:41         ` Mike Christie
2011-07-14 17:13           ` Eddie Wai
2011-07-14 23:42 ` [PATCH v2] " Eddie Wai
2011-07-15  0:29   ` Michael Chan
2011-07-15  1:11     ` Eddie Wai
2011-07-15 18:17 ` [PATCH v3] " Eddie Wai
2012-04-25 22:03 ` [PATCH 1/2] BNX2I: Added the setting of target can_queue via target_alloc Eddie Wai
     [not found]   ` <1335391425-30410-1-git-send-email-eddie.wai-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2012-04-26  3:48     ` Mike Christie
2012-04-25 22:08 ` [PATCH 2/2] BNX2I: Updated version and copyright year Eddie Wai
2012-06-29 23:37 ` [PATCH] BNX2I: Removed the reference to the netdev->base_addr Eddie Wai
     [not found]   ` <1341013055-16339-1-git-send-email-eddie.wai-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2012-06-30  2:41     ` Mike Christie
2012-07-03 22:06       ` Eddie Wai
2012-10-23  0:53 ` [PATCH] LIBISCSI: Added the new boot_nic entry in the session sysfs Eddie Wai
     [not found] ` <Eddie Wai <eddie.wai-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2010-07-01 22:34   ` [PATCH 2/7 v2] BNX2I: Created an active linklist which holds bnx2i endpoints Eddie Wai
2010-07-01 22:34   ` [PATCH 4/7 v2] BNX2I: Fine tuned conn destroy and context destroy timeout values Eddie Wai
2010-08-10 19:09   ` [PATCH 1/5] BNX2I: Fixed a protocol violation on nopout responses Eddie Wai
2010-08-10 19:09   ` [PATCH 3/5] BNX2I: Recouple the CFC delete cleanup with cm_abort/close completion Eddie Wai
2010-11-10 23:04   ` [PATCH 08/16] BNX2I: Added mutex lock protection to conn_get_param Eddie Wai
2010-11-18  3:27     ` Mike Christie
2010-11-18 19:08       ` Eddie Wai
2010-11-10 23:04   ` [PATCH 10/16] BNX2I: Fixed a cid leak issue for 5771X (10g) Eddie Wai
2010-11-23 23:29   ` [PATCH v3 07/13] BNX2I: Added mutex lock protection to conn_get_param Eddie Wai
2012-02-02 23:22   ` [PATCH] BNX2I: Fixed the override of the error_mask module param Eddie Wai
2012-08-21 17:35   ` [PATCH] BNX2I: Fixed NULL ptr deference for 1G bnx2 Linux iSCSI offload Eddie Wai
     [not found]     ` <1345570553-23067-1-git-send-email-eddie.wai-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2012-08-21 17:41       ` Mike Christie
2012-10-16  0:31   ` [PATCH] BNX2I: Removed the individual PCI DEVICE ID checking Eddie Wai
2012-10-24  7:02     ` Mike Christie
2013-02-20  2:30   ` [PATCH] SCSI: amd_iommu dma_boundary overflow Eddie Wai
2013-02-20  9:37     ` James Bottomley
2013-02-21 10:19       ` Joerg Roedel
2013-09-18  5:30   ` [PATCH 0/4] Fixed a race condition and a rtnl_lock deadlock for bnx2fc Eddie Wai
2013-06-20 17:21 ` [PATCH v2] LIBISCSI: Added new boot entries in the session sysfs Eddie Wai
     [not found]   ` <1371748886-5018-1-git-send-email-eddie.wai-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2013-06-20 17:24     ` Mike Christie
2013-07-12  0:15 ` [PATCH 1/2] BNX2I: Update version and copyright year 2013 Eddie Wai
2013-07-12  0:15   ` [PATCH 2/2] MAINTAINER: Added maintainer info for bnx2i Eddie Wai
2013-09-18  5:33 ` [PATCH 1/4] BNX2FC: Fixed a SCSI CMD cmpl race condition between ABTS and CLEANUP Eddie Wai
2013-09-18  5:33 ` [PATCH 2/4] BNX2FC: hung task timeout warning observed when rmmod bnx2x with active FCoE targets Eddie Wai
2013-09-18  5:33 ` [PATCH 3/4] BNX2FC: Bump version from 1.0.14 to 2.4.1 Eddie Wai
2013-09-18  5:33 ` [PATCH 4/4] MAINTAINER: Updated maintainer info for bnx2fc Eddie Wai
2013-09-26  5:01 ` [PATCH v2 2/4] BNX2FC: hung task timeout warning observed when rmmod bnx2x with active FCoE targets Eddie Wai
     [not found]   ` <1380171680-4905-1-git-send-email-eddie.wai-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2013-10-18 13:49     ` Tomas Henzl
2013-10-18 14:54       ` Eddie Wai

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4D1FFADB.60307@cs.wisc.edu \
    --to=michaelc@cs.wisc.edu \
    --cc=JBottomley@novell.com \
    --cc=anilgv@broadcom.com \
    --cc=benli@broadcom.com \
    --cc=eddie.wai@broadcom.com \
    --cc=linux-scsi@vger.kernel.org \
    --cc=mchan@broadcom.com \
    --cc=open-iscsi@googlegroups.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).