All of lore.kernel.org
 help / color / mirror / Atom feed
* [v2 PATCH 0/4] bnx2fc version 1.0.11
@ 2012-04-24 22:26 Bhanu Prakash Gollapudi
  2012-04-24 22:26 ` [v2 PATCH 1/4] bnx2fc: Allow FLOGI to be retried when receiving bad responses Bhanu Prakash Gollapudi
                   ` (4 more replies)
  0 siblings, 5 replies; 11+ messages in thread
From: Bhanu Prakash Gollapudi @ 2012-04-24 22:26 UTC (permalink / raw)
  To: JBottomley, linux-scsi; +Cc: Bhanu Prakash Gollapudi

v2 submittal:
Updated "0002-bnx2fc-Decrememnt-io-ref-count-when-abort-times-out"
patch to release the command reference before waiting for the target to
relogin.  Without this, the logout process will not complete and recovery
fails.
---------------

James, please consider merging the following bug fixes for 3.5.

Thanks,
Bhanu

Bhanu Prakash Gollapudi (4):
  bnx2fc: Allow FLOGI to be retried when receiving bad responses.
  bnx2fc: Decrememnt io ref count when abort times out
  bnx2fc: cleanup task management IO when it times out.
  Bumped version to 1.0.11

 drivers/scsi/bnx2fc/bnx2fc.h      |    2 +-
 drivers/scsi/bnx2fc/bnx2fc_els.c  |   16 +----
 drivers/scsi/bnx2fc/bnx2fc_fcoe.c |    2 +-
 drivers/scsi/bnx2fc/bnx2fc_io.c   |  122 +++++++++++++++++++++++--------------
 drivers/scsi/bnx2fc/bnx2fc_tgt.c  |   21 ++++++-
 5 files changed, 100 insertions(+), 63 deletions(-)



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

* [v2 PATCH 1/4] bnx2fc: Allow FLOGI to be retried when receiving bad responses.
  2012-04-24 22:26 [v2 PATCH 0/4] bnx2fc version 1.0.11 Bhanu Prakash Gollapudi
@ 2012-04-24 22:26 ` Bhanu Prakash Gollapudi
  2012-04-24 22:26 ` [v2 PATCH 2/4] bnx2fc: Decrememnt io ref count when abort times out Bhanu Prakash Gollapudi
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 11+ messages in thread
From: Bhanu Prakash Gollapudi @ 2012-04-24 22:26 UTC (permalink / raw)
  To: JBottomley, linux-scsi; +Cc: Bhanu Prakash Gollapudi

Commit 907c07d45199f954ddcf66c2c9763c87d012cb15 added more cases to do FLOGI
retry on receiving bad response. Remove the code that drops the packet and
allow the stack to handle bad FLOGI response.

Signed-off-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
---
 drivers/scsi/bnx2fc/bnx2fc_els.c |   16 +++-------------
 1 files changed, 3 insertions(+), 13 deletions(-)

diff --git a/drivers/scsi/bnx2fc/bnx2fc_els.c b/drivers/scsi/bnx2fc/bnx2fc_els.c
index ce0ce3e..cf3bdcd 100644
--- a/drivers/scsi/bnx2fc/bnx2fc_els.c
+++ b/drivers/scsi/bnx2fc/bnx2fc_els.c
@@ -854,7 +854,6 @@ static void bnx2fc_flogi_resp(struct fc_seq *seq, struct fc_frame *fp,
 	struct fc_exch *exch = fc_seq_exch(seq);
 	struct fc_lport *lport = exch->lp;
 	u8 *mac;
-	struct fc_frame_header *fh;
 	u8 op;
 
 	if (IS_ERR(fp))
@@ -862,13 +861,6 @@ static void bnx2fc_flogi_resp(struct fc_seq *seq, struct fc_frame *fp,
 
 	mac = fr_cb(fp)->granted_mac;
 	if (is_zero_ether_addr(mac)) {
-		fh = fc_frame_header_get(fp);
-		if (fh->fh_type != FC_TYPE_ELS) {
-			printk(KERN_ERR PFX "bnx2fc_flogi_resp:"
-				"fh_type != FC_TYPE_ELS\n");
-			fc_frame_free(fp);
-			return;
-		}
 		op = fc_frame_payload_op(fp);
 		if (lport->vport) {
 			if (op == ELS_LS_RJT) {
@@ -878,12 +870,10 @@ static void bnx2fc_flogi_resp(struct fc_seq *seq, struct fc_frame *fp,
 				return;
 			}
 		}
-		if (fcoe_ctlr_recv_flogi(fip, lport, fp)) {
-			fc_frame_free(fp);
-			return;
-		}
+		fcoe_ctlr_recv_flogi(fip, lport, fp);
 	}
-	fip->update_mac(lport, mac);
+	if (!is_zero_ether_addr(mac))
+		fip->update_mac(lport, mac);
 done:
 	fc_lport_flogi_resp(seq, fp, lport);
 }
-- 
1.7.0.6



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

* [v2 PATCH 2/4] bnx2fc: Decrememnt io ref count when abort times out
  2012-04-24 22:26 [v2 PATCH 0/4] bnx2fc version 1.0.11 Bhanu Prakash Gollapudi
  2012-04-24 22:26 ` [v2 PATCH 1/4] bnx2fc: Allow FLOGI to be retried when receiving bad responses Bhanu Prakash Gollapudi
@ 2012-04-24 22:26 ` Bhanu Prakash Gollapudi
  2012-04-24 22:26 ` [v2 PATCH 3/4] bnx2fc: cleanup task management IO when it " Bhanu Prakash Gollapudi
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 11+ messages in thread
From: Bhanu Prakash Gollapudi @ 2012-04-24 22:26 UTC (permalink / raw)
  To: JBottomley, linux-scsi; +Cc: Bhanu Prakash Gollapudi

When IO abort times out during eh_abort or a flush operation is performed while
abort is pending, the driver is not cleaning up the IO and thus not reducing
the IO reference count. With this change, as part of explicit logout, the IO is
cleaned up.

Signed-off-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
---
 drivers/scsi/bnx2fc/bnx2fc_io.c  |  106 +++++++++++++++++++++----------------
 drivers/scsi/bnx2fc/bnx2fc_tgt.c |   11 ++++-
 2 files changed, 70 insertions(+), 47 deletions(-)

diff --git a/drivers/scsi/bnx2fc/bnx2fc_io.c b/drivers/scsi/bnx2fc/bnx2fc_io.c
index 84a78af..4843b42 100644
--- a/drivers/scsi/bnx2fc/bnx2fc_io.c
+++ b/drivers/scsi/bnx2fc/bnx2fc_io.c
@@ -1089,6 +1089,48 @@ int bnx2fc_eh_device_reset(struct scsi_cmnd *sc_cmd)
 	return bnx2fc_initiate_tmf(sc_cmd, FCP_TMF_LUN_RESET);
 }
 
+int bnx2fc_expl_logo(struct fc_lport *lport, struct bnx2fc_cmd *io_req)
+{
+	struct bnx2fc_rport *tgt = io_req->tgt;
+	struct fc_rport_priv *rdata = tgt->rdata;
+	int logo_issued;
+	int rc = SUCCESS;
+	int wait_cnt = 0;
+
+	BNX2FC_IO_DBG(io_req, "Expl logo - tgt flags = 0x%lx\n",
+		      tgt->flags);
+	logo_issued = test_and_set_bit(BNX2FC_FLAG_EXPL_LOGO,
+				       &tgt->flags);
+	io_req->wait_for_comp = 1;
+	bnx2fc_initiate_cleanup(io_req);
+
+	spin_unlock_bh(&tgt->tgt_lock);
+
+	wait_for_completion(&io_req->tm_done);
+
+	io_req->wait_for_comp = 0;
+	/*
+	 * release the reference taken in eh_abort to allow the
+	 * target to re-login after flushing IOs
+	 */
+	 kref_put(&io_req->refcount, bnx2fc_cmd_release);
+
+	if (!logo_issued) {
+		clear_bit(BNX2FC_FLAG_SESSION_READY, &tgt->flags);
+		mutex_lock(&lport->disc.disc_mutex);
+		lport->tt.rport_logoff(rdata);
+		mutex_unlock(&lport->disc.disc_mutex);
+		do {
+			msleep(BNX2FC_RELOGIN_WAIT_TIME);
+			if (wait_cnt++ > BNX2FC_RELOGIN_WAIT_CNT) {
+				rc = FAILED;
+				break;
+			}
+		} while (!test_bit(BNX2FC_FLAG_SESSION_READY, &tgt->flags));
+	}
+	spin_lock_bh(&tgt->tgt_lock);
+	return rc;
+}
 /**
  * bnx2fc_eh_abort - eh_abort_handler api to abort an outstanding
  *			SCSI command
@@ -1103,10 +1145,7 @@ int bnx2fc_eh_abort(struct scsi_cmnd *sc_cmd)
 	struct fc_rport_libfc_priv *rp = rport->dd_data;
 	struct bnx2fc_cmd *io_req;
 	struct fc_lport *lport;
-	struct fc_rport_priv *rdata;
 	struct bnx2fc_rport *tgt;
-	int logo_issued;
-	int wait_cnt = 0;
 	int rc = FAILED;
 
 
@@ -1183,58 +1222,31 @@ int bnx2fc_eh_abort(struct scsi_cmnd *sc_cmd)
 	list_add_tail(&io_req->link, &tgt->io_retire_queue);
 
 	init_completion(&io_req->tm_done);
-	io_req->wait_for_comp = 1;
 
-	if (!test_and_set_bit(BNX2FC_FLAG_ISSUE_ABTS, &io_req->req_flags)) {
-		/* Cancel the current timer running on this io_req */
-		if (cancel_delayed_work(&io_req->timeout_work))
-			kref_put(&io_req->refcount,
-				 bnx2fc_cmd_release); /* drop timer hold */
-		set_bit(BNX2FC_FLAG_EH_ABORT, &io_req->req_flags);
-		rc = bnx2fc_initiate_abts(io_req);
-	} else {
+	if (test_and_set_bit(BNX2FC_FLAG_ISSUE_ABTS, &io_req->req_flags)) {
 		printk(KERN_ERR PFX "eh_abort: io_req (xid = 0x%x) "
 				"already in abts processing\n", io_req->xid);
 		if (cancel_delayed_work(&io_req->timeout_work))
 			kref_put(&io_req->refcount,
 				 bnx2fc_cmd_release); /* drop timer hold */
-		bnx2fc_initiate_cleanup(io_req);
+		rc = bnx2fc_expl_logo(lport, io_req);
+		goto out;
+	}
 
+	/* Cancel the current timer running on this io_req */
+	if (cancel_delayed_work(&io_req->timeout_work))
+		kref_put(&io_req->refcount,
+			 bnx2fc_cmd_release); /* drop timer hold */
+	set_bit(BNX2FC_FLAG_EH_ABORT, &io_req->req_flags);
+	io_req->wait_for_comp = 1;
+	rc = bnx2fc_initiate_abts(io_req);
+	if (rc == FAILED) {
+		bnx2fc_initiate_cleanup(io_req);
 		spin_unlock_bh(&tgt->tgt_lock);
-
 		wait_for_completion(&io_req->tm_done);
-
 		spin_lock_bh(&tgt->tgt_lock);
 		io_req->wait_for_comp = 0;
-		rdata = io_req->tgt->rdata;
-		logo_issued = test_and_set_bit(BNX2FC_FLAG_EXPL_LOGO,
-					       &tgt->flags);
-		kref_put(&io_req->refcount, bnx2fc_cmd_release);
-		spin_unlock_bh(&tgt->tgt_lock);
-
-		if (!logo_issued) {
-			BNX2FC_IO_DBG(io_req, "Expl logo - tgt flags = 0x%lx\n",
-				      tgt->flags);
-			mutex_lock(&lport->disc.disc_mutex);
-			lport->tt.rport_logoff(rdata);
-			mutex_unlock(&lport->disc.disc_mutex);
-			do {
-				msleep(BNX2FC_RELOGIN_WAIT_TIME);
-				/*
-				 * If session not recovered, let SCSI-ml
-				 * escalate error recovery.
-				 */
-				if (wait_cnt++ > BNX2FC_RELOGIN_WAIT_CNT)
-					return FAILED;
-			} while (!test_bit(BNX2FC_FLAG_SESSION_READY,
-					   &tgt->flags));
-		}
-		return SUCCESS;
-	}
-	if (rc == FAILED) {
-		kref_put(&io_req->refcount, bnx2fc_cmd_release);
-		spin_unlock_bh(&tgt->tgt_lock);
-		return rc;
+		goto done;
 	}
 	spin_unlock_bh(&tgt->tgt_lock);
 
@@ -1247,7 +1259,8 @@ int bnx2fc_eh_abort(struct scsi_cmnd *sc_cmd)
 		/* Let the scsi-ml try to recover this command */
 		printk(KERN_ERR PFX "abort failed, xid = 0x%x\n",
 		       io_req->xid);
-		rc = FAILED;
+		rc = bnx2fc_expl_logo(lport, io_req);
+		goto out;
 	} else {
 		/*
 		 * We come here even when there was a race condition
@@ -1259,9 +1272,10 @@ int bnx2fc_eh_abort(struct scsi_cmnd *sc_cmd)
 		bnx2fc_scsi_done(io_req, DID_ABORT);
 		kref_put(&io_req->refcount, bnx2fc_cmd_release);
 	}
-
+done:
 	/* release the reference taken in eh_abort */
 	kref_put(&io_req->refcount, bnx2fc_cmd_release);
+out:
 	spin_unlock_bh(&tgt->tgt_lock);
 	return rc;
 }
diff --git a/drivers/scsi/bnx2fc/bnx2fc_tgt.c b/drivers/scsi/bnx2fc/bnx2fc_tgt.c
index c1800b5..d3ee231 100644
--- a/drivers/scsi/bnx2fc/bnx2fc_tgt.c
+++ b/drivers/scsi/bnx2fc/bnx2fc_tgt.c
@@ -213,8 +213,17 @@ void bnx2fc_flush_active_ios(struct bnx2fc_rport *tgt)
 
 		BNX2FC_IO_DBG(io_req, "retire_queue flush\n");
 
-		if (cancel_delayed_work(&io_req->timeout_work))
+		if (cancel_delayed_work(&io_req->timeout_work)) {
+			if (test_and_clear_bit(BNX2FC_FLAG_EH_ABORT,
+						&io_req->req_flags)) {
+				/* Handle eh_abort timeout */
+				BNX2FC_IO_DBG(io_req, "eh_abort for IO "
+					      "in retire_q\n");
+				if (io_req->wait_for_comp)
+					complete(&io_req->tm_done);
+			}
 			kref_put(&io_req->refcount, bnx2fc_cmd_release);
+		}
 
 		clear_bit(BNX2FC_FLAG_ISSUE_RRQ, &io_req->req_flags);
 	}
-- 
1.7.0.6



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

* [v2 PATCH 3/4] bnx2fc: cleanup task management IO when it times out.
  2012-04-24 22:26 [v2 PATCH 0/4] bnx2fc version 1.0.11 Bhanu Prakash Gollapudi
  2012-04-24 22:26 ` [v2 PATCH 1/4] bnx2fc: Allow FLOGI to be retried when receiving bad responses Bhanu Prakash Gollapudi
  2012-04-24 22:26 ` [v2 PATCH 2/4] bnx2fc: Decrememnt io ref count when abort times out Bhanu Prakash Gollapudi
@ 2012-04-24 22:26 ` Bhanu Prakash Gollapudi
  2012-05-04  8:49   ` Mike Christie
  2012-04-24 22:26 ` [v2 PATCH 4/4] Bumped version to 1.0.11 Bhanu Prakash Gollapudi
  2012-05-21 16:18 ` [v2 PATCH 0/4] bnx2fc version 1.0.11 Bhanu Prakash Gollapudi
  4 siblings, 1 reply; 11+ messages in thread
From: Bhanu Prakash Gollapudi @ 2012-04-24 22:26 UTC (permalink / raw)
  To: JBottomley, linux-scsi; +Cc: Bhanu Prakash Gollapudi

When the task management IO times out, or a flush operation is performed while
task management IO is pending, driver is not cleaning up the IO. This patch
cleans up the IO for the above cases.

Signed-off-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
---
 drivers/scsi/bnx2fc/bnx2fc_io.c  |   16 +++++++++++++++-
 drivers/scsi/bnx2fc/bnx2fc_tgt.c |   10 ++++++++++
 2 files changed, 25 insertions(+), 1 deletions(-)

diff --git a/drivers/scsi/bnx2fc/bnx2fc_io.c b/drivers/scsi/bnx2fc/bnx2fc_io.c
index 4843b42..27074ee 100644
--- a/drivers/scsi/bnx2fc/bnx2fc_io.c
+++ b/drivers/scsi/bnx2fc/bnx2fc_io.c
@@ -810,8 +810,22 @@ retry_tmf:
 	spin_lock_bh(&tgt->tgt_lock);
 
 	io_req->wait_for_comp = 0;
-	if (!(test_bit(BNX2FC_FLAG_TM_COMPL, &io_req->req_flags)))
+	if (!(test_bit(BNX2FC_FLAG_TM_COMPL, &io_req->req_flags))) {
 		set_bit(BNX2FC_FLAG_TM_TIMEOUT, &io_req->req_flags);
+		if (io_req->on_tmf_queue) {
+			list_del_init(&io_req->link);
+			io_req->on_tmf_queue = 0;
+		}
+		io_req->wait_for_comp = 1;
+		bnx2fc_initiate_cleanup(io_req);
+		spin_unlock_bh(&tgt->tgt_lock);
+		rc = wait_for_completion_timeout(&io_req->tm_done,
+						 BNX2FC_FW_TIMEOUT);
+		spin_lock_bh(&tgt->tgt_lock);
+		io_req->wait_for_comp = 0;
+		if (!rc)
+			kref_put(&io_req->refcount, bnx2fc_cmd_release);
+	}
 
 	spin_unlock_bh(&tgt->tgt_lock);
 
diff --git a/drivers/scsi/bnx2fc/bnx2fc_tgt.c b/drivers/scsi/bnx2fc/bnx2fc_tgt.c
index d3ee231..082a25c 100644
--- a/drivers/scsi/bnx2fc/bnx2fc_tgt.c
+++ b/drivers/scsi/bnx2fc/bnx2fc_tgt.c
@@ -185,6 +185,16 @@ void bnx2fc_flush_active_ios(struct bnx2fc_rport *tgt)
 		BUG_ON(rc);
 	}
 
+	list_for_each_safe(list, tmp, &tgt->active_tm_queue) {
+		i++;
+		io_req = (struct bnx2fc_cmd *)list;
+		list_del_init(&io_req->link);
+		io_req->on_tmf_queue = 0;
+		BNX2FC_IO_DBG(io_req, "tm_queue cleanup\n");
+		if (io_req->wait_for_comp)
+			complete(&io_req->tm_done);
+	}
+
 	list_for_each_safe(list, tmp, &tgt->els_queue) {
 		i++;
 		io_req = (struct bnx2fc_cmd *)list;
-- 
1.7.0.6



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

* [v2 PATCH 4/4] Bumped version to 1.0.11
  2012-04-24 22:26 [v2 PATCH 0/4] bnx2fc version 1.0.11 Bhanu Prakash Gollapudi
                   ` (2 preceding siblings ...)
  2012-04-24 22:26 ` [v2 PATCH 3/4] bnx2fc: cleanup task management IO when it " Bhanu Prakash Gollapudi
@ 2012-04-24 22:26 ` Bhanu Prakash Gollapudi
  2012-05-21 16:18 ` [v2 PATCH 0/4] bnx2fc version 1.0.11 Bhanu Prakash Gollapudi
  4 siblings, 0 replies; 11+ messages in thread
From: Bhanu Prakash Gollapudi @ 2012-04-24 22:26 UTC (permalink / raw)
  To: JBottomley, linux-scsi; +Cc: Bhanu Prakash Gollapudi

Signed-off-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
---
 drivers/scsi/bnx2fc/bnx2fc.h      |    2 +-
 drivers/scsi/bnx2fc/bnx2fc_fcoe.c |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/scsi/bnx2fc/bnx2fc.h b/drivers/scsi/bnx2fc/bnx2fc.h
index a4953ef..f2b8875 100644
--- a/drivers/scsi/bnx2fc/bnx2fc.h
+++ b/drivers/scsi/bnx2fc/bnx2fc.h
@@ -62,7 +62,7 @@
 #include "bnx2fc_constants.h"
 
 #define BNX2FC_NAME		"bnx2fc"
-#define BNX2FC_VERSION		"1.0.10"
+#define BNX2FC_VERSION		"1.0.11"
 
 #define PFX			"bnx2fc: "
 
diff --git a/drivers/scsi/bnx2fc/bnx2fc_fcoe.c b/drivers/scsi/bnx2fc/bnx2fc_fcoe.c
index 1c34a44..9783b0a 100644
--- a/drivers/scsi/bnx2fc/bnx2fc_fcoe.c
+++ b/drivers/scsi/bnx2fc/bnx2fc_fcoe.c
@@ -22,7 +22,7 @@ DEFINE_PER_CPU(struct bnx2fc_percpu_s, bnx2fc_percpu);
 
 #define DRV_MODULE_NAME		"bnx2fc"
 #define DRV_MODULE_VERSION	BNX2FC_VERSION
-#define DRV_MODULE_RELDATE	"Jan 22, 2011"
+#define DRV_MODULE_RELDATE	"Apr 24, 2012"
 
 
 static char version[] __devinitdata =
-- 
1.7.0.6



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

* Re: [v2 PATCH 3/4] bnx2fc: cleanup task management IO when it times out.
  2012-04-24 22:26 ` [v2 PATCH 3/4] bnx2fc: cleanup task management IO when it " Bhanu Prakash Gollapudi
@ 2012-05-04  8:49   ` Mike Christie
  0 siblings, 0 replies; 11+ messages in thread
From: Mike Christie @ 2012-05-04  8:49 UTC (permalink / raw)
  To: Bhanu Prakash Gollapudi; +Cc: JBottomley, linux-scsi

On 04/24/2012 05:26 PM, Bhanu Prakash Gollapudi wrote:
> diff --git a/drivers/scsi/bnx2fc/bnx2fc_tgt.c b/drivers/scsi/bnx2fc/bnx2fc_tgt.c
> index d3ee231..082a25c 100644
> --- a/drivers/scsi/bnx2fc/bnx2fc_tgt.c
> +++ b/drivers/scsi/bnx2fc/bnx2fc_tgt.c
> @@ -185,6 +185,16 @@ void bnx2fc_flush_active_ios(struct bnx2fc_rport *tgt)
>  		BUG_ON(rc);
>  	}
>  
> +	list_for_each_safe(list, tmp, &tgt->active_tm_queue) {
> +		i++;
> +		io_req = (struct bnx2fc_cmd *)list;

Why didn't you use list_for_each_entry_safe()? Or, when using
list_for_each_safe, instead of the cast are we supposed to be using
list_entry()?


> +		list_del_init(&io_req->link);
> +		io_req->on_tmf_queue = 0;
> +		BNX2FC_IO_DBG(io_req, "tm_queue cleanup\n");
> +		if (io_req->wait_for_comp)
> +			complete(&io_req->tm_done);
> +	}
> +
>  	list_for_each_safe(list, tmp, &tgt->els_queue) {
>  		i++;
>  		io_req = (struct bnx2fc_cmd *)list;


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

* Re: [v2 PATCH 0/4] bnx2fc version 1.0.11
  2012-04-24 22:26 [v2 PATCH 0/4] bnx2fc version 1.0.11 Bhanu Prakash Gollapudi
                   ` (3 preceding siblings ...)
  2012-04-24 22:26 ` [v2 PATCH 4/4] Bumped version to 1.0.11 Bhanu Prakash Gollapudi
@ 2012-05-21 16:18 ` Bhanu Prakash Gollapudi
  2012-05-21 18:06   ` James Bottomley
  4 siblings, 1 reply; 11+ messages in thread
From: Bhanu Prakash Gollapudi @ 2012-05-21 16:18 UTC (permalink / raw)
  To: Bhanu Prakash Gollapudi; +Cc: JBottomley, linux-scsi, Mike Christie

On 4/24/2012 3:26 PM, Bhanu Prakash Gollapudi wrote:

James, can you please include this patch set in the next round of 3.4+ 
merge window?

thanks,
Bhanu

> v2 submittal:
> Updated "0002-bnx2fc-Decrememnt-io-ref-count-when-abort-times-out"
> patch to release the command reference before waiting for the target to
> relogin.  Without this, the logout process will not complete and recovery
> fails.
> ---------------
>
> James, please consider merging the following bug fixes for 3.5.
>
> Thanks,
> Bhanu
>
> Bhanu Prakash Gollapudi (4):
>    bnx2fc: Allow FLOGI to be retried when receiving bad responses.
>    bnx2fc: Decrememnt io ref count when abort times out
>    bnx2fc: cleanup task management IO when it times out.
>    Bumped version to 1.0.11
>
>   drivers/scsi/bnx2fc/bnx2fc.h      |    2 +-
>   drivers/scsi/bnx2fc/bnx2fc_els.c  |   16 +----
>   drivers/scsi/bnx2fc/bnx2fc_fcoe.c |    2 +-
>   drivers/scsi/bnx2fc/bnx2fc_io.c   |  122 +++++++++++++++++++++++--------------
>   drivers/scsi/bnx2fc/bnx2fc_tgt.c  |   21 ++++++-
>   5 files changed, 100 insertions(+), 63 deletions(-)
>



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

* Re: [v2 PATCH 0/4] bnx2fc version 1.0.11
  2012-05-21 16:18 ` [v2 PATCH 0/4] bnx2fc version 1.0.11 Bhanu Prakash Gollapudi
@ 2012-05-21 18:06   ` James Bottomley
  2012-05-21 18:35     ` Bhanu Prakash Gollapudi
  0 siblings, 1 reply; 11+ messages in thread
From: James Bottomley @ 2012-05-21 18:06 UTC (permalink / raw)
  To: Bhanu Prakash Gollapudi; +Cc: linux-scsi, Mike Christie

On Mon, 2012-05-21 at 09:18 -0700, Bhanu Prakash Gollapudi wrote:
> On 4/24/2012 3:26 PM, Bhanu Prakash Gollapudi wrote:
> 
> James, can you please include this patch set in the next round of 3.4+ 
> merge window?

I was waiting for you to respond to Mike Christie's comment about using
list_for_each_entry_safe() or list_entry().

James



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

* Re: [v2 PATCH 0/4] bnx2fc version 1.0.11
  2012-05-21 18:06   ` James Bottomley
@ 2012-05-21 18:35     ` Bhanu Prakash Gollapudi
  2012-05-22  8:45       ` James Bottomley
  0 siblings, 1 reply; 11+ messages in thread
From: Bhanu Prakash Gollapudi @ 2012-05-21 18:35 UTC (permalink / raw)
  To: James Bottomley; +Cc: linux-scsi, Mike Christie, Bhanu Prakash Gollapudi

On 5/21/2012 11:06 AM, James Bottomley wrote:
> On Mon, 2012-05-21 at 09:18 -0700, Bhanu Prakash Gollapudi wrote:
>> On 4/24/2012 3:26 PM, Bhanu Prakash Gollapudi wrote:
>>
>> James, can you please include this patch set in the next round of 3.4+
>> merge window?
>
> I was waiting for you to respond to Mike Christie's comment about using
> list_for_each_entry_safe() or list_entry().

James, I responded to Mike Christie's comment. Here is the link for the 
thread - http://marc.info/?l=linux-scsi&m=133643754200805&w=2.

thanks,
Bhanu
>
> James
>
>
>



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

* Re: [v2 PATCH 0/4] bnx2fc version 1.0.11
  2012-05-21 18:35     ` Bhanu Prakash Gollapudi
@ 2012-05-22  8:45       ` James Bottomley
  2012-05-22 17:06         ` Bhanu Prakash Gollapudi
  0 siblings, 1 reply; 11+ messages in thread
From: James Bottomley @ 2012-05-22  8:45 UTC (permalink / raw)
  To: Bhanu Prakash Gollapudi; +Cc: linux-scsi, Mike Christie

On Mon, 2012-05-21 at 11:35 -0700, Bhanu Prakash Gollapudi wrote:
> On 5/21/2012 11:06 AM, James Bottomley wrote:
> > On Mon, 2012-05-21 at 09:18 -0700, Bhanu Prakash Gollapudi wrote:
> >> On 4/24/2012 3:26 PM, Bhanu Prakash Gollapudi wrote:
> >>
> >> James, can you please include this patch set in the next round of 3.4+
> >> merge window?
> >
> > I was waiting for you to respond to Mike Christie's comment about using
> > list_for_each_entry_safe() or list_entry().
> 
> James, I responded to Mike Christie's comment. Here is the link for the 
> thread - http://marc.info/?l=linux-scsi&m=133643754200805&w=2.

Ah, OK, you broke threading, which is why I didn't get this.  You need
to reply to the message on the list.  Your reply has:

References: <4FA85912.2030800@broadcom.com>
In-reply-to: <4FA85912.2030800@broadcom.com>

But the actual message is:

Message-id: <4FA39836.3070907@cs.wisc.edu>

Evolution matches threads by the in-reply-to fields.

James



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

* Re: [v2 PATCH 0/4] bnx2fc version 1.0.11
  2012-05-22  8:45       ` James Bottomley
@ 2012-05-22 17:06         ` Bhanu Prakash Gollapudi
  0 siblings, 0 replies; 11+ messages in thread
From: Bhanu Prakash Gollapudi @ 2012-05-22 17:06 UTC (permalink / raw)
  To: James Bottomley; +Cc: linux-scsi, Mike Christie

On 5/22/2012 1:45 AM, James Bottomley wrote:
> On Mon, 2012-05-21 at 11:35 -0700, Bhanu Prakash Gollapudi wrote:
>> On 5/21/2012 11:06 AM, James Bottomley wrote:
>>> On Mon, 2012-05-21 at 09:18 -0700, Bhanu Prakash Gollapudi wrote:
>>>> On 4/24/2012 3:26 PM, Bhanu Prakash Gollapudi wrote:
>>>>
>>>> James, can you please include this patch set in the next round of 3.4+
>>>> merge window?
>>>
>>> I was waiting for you to respond to Mike Christie's comment about using
>>> list_for_each_entry_safe() or list_entry().
>>
>> James, I responded to Mike Christie's comment. Here is the link for the
>> thread - http://marc.info/?l=linux-scsi&m=133643754200805&w=2.
>
> Ah, OK, you broke threading, which is why I didn't get this.  You need
> to reply to the message on the list.  Your reply has:
>
> References:<4FA85912.2030800@broadcom.com>
> In-reply-to:<4FA85912.2030800@broadcom.com>
>
> But the actual message is:
>
> Message-id:<4FA39836.3070907@cs.wisc.edu>
>
> Evolution matches threads by the in-reply-to fields.

Thanks for the information, James. I'll take care of it from next time.

>
> James
>
>
>



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

end of thread, other threads:[~2012-05-22 17:08 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-04-24 22:26 [v2 PATCH 0/4] bnx2fc version 1.0.11 Bhanu Prakash Gollapudi
2012-04-24 22:26 ` [v2 PATCH 1/4] bnx2fc: Allow FLOGI to be retried when receiving bad responses Bhanu Prakash Gollapudi
2012-04-24 22:26 ` [v2 PATCH 2/4] bnx2fc: Decrememnt io ref count when abort times out Bhanu Prakash Gollapudi
2012-04-24 22:26 ` [v2 PATCH 3/4] bnx2fc: cleanup task management IO when it " Bhanu Prakash Gollapudi
2012-05-04  8:49   ` Mike Christie
2012-04-24 22:26 ` [v2 PATCH 4/4] Bumped version to 1.0.11 Bhanu Prakash Gollapudi
2012-05-21 16:18 ` [v2 PATCH 0/4] bnx2fc version 1.0.11 Bhanu Prakash Gollapudi
2012-05-21 18:06   ` James Bottomley
2012-05-21 18:35     ` Bhanu Prakash Gollapudi
2012-05-22  8:45       ` James Bottomley
2012-05-22 17:06         ` Bhanu Prakash Gollapudi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.