linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] libfc fix for scsi-rc-fixes
@ 2012-04-06 22:52 Robert Love
  2012-04-06 22:52 ` [PATCH] libfc: update mfs boundry checking Robert Love
  0 siblings, 1 reply; 2+ messages in thread
From: Robert Love @ 2012-04-06 22:52 UTC (permalink / raw)
  To: linux-scsi

Here's just one patch that fixes a regression introduced in the merge window.
This is critical for BRDCM, so I would like to see it merged before v3.4 is
released.

Thanks, //Rob

---

Vasu Dev (1):
      libfc: update mfs boundry checking


 drivers/scsi/libfc/fc_lport.c |   12 +++++++-----
 1 files changed, 7 insertions(+), 5 deletions(-)

-- 

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

* [PATCH] libfc: update mfs boundry checking
  2012-04-06 22:52 [PATCH] libfc fix for scsi-rc-fixes Robert Love
@ 2012-04-06 22:52 ` Robert Love
  0 siblings, 0 replies; 2+ messages in thread
From: Robert Love @ 2012-04-06 22:52 UTC (permalink / raw)
  To: linux-scsi; +Cc: Bhanu Prakash Gollapudi, Vasu Dev

From: Vasu Dev <vasu.dev@intel.com>

A previous commit changed the mfs checking to ensure the new
mfs is less or equal to the mfs supported by the FCF. This
doesn't work for BRDCM cards as they set an mfs of 2048 regardless
of whether the switch returns a larger mfs.

This patch validates the new mfs against the upper and lower spec
defined boundries for a FCoE mfs.

Signed-off-by: Vasu Dev <vasu.dev@intel.com>
Signed-off-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
Signed-off-by: Robert Love <robert.w.love@intel.com>
---
 drivers/scsi/libfc/fc_lport.c |   12 +++++++-----
 1 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/drivers/scsi/libfc/fc_lport.c b/drivers/scsi/libfc/fc_lport.c
index ef9560d..cc83b66 100644
--- a/drivers/scsi/libfc/fc_lport.c
+++ b/drivers/scsi/libfc/fc_lport.c
@@ -1742,17 +1742,19 @@ void fc_lport_flogi_resp(struct fc_seq *sp, struct fc_frame *fp,
 
 	mfs = ntohs(flp->fl_csp.sp_bb_data) &
 		FC_SP_BB_DATA_MASK;
-	if (mfs >= FC_SP_MIN_MAX_PAYLOAD &&
-	    mfs <= lport->mfs) {
-		lport->mfs = mfs;
-		fc_host_maxframe_size(lport->host) = mfs;
-	} else {
+
+	if (mfs < FC_SP_MIN_MAX_PAYLOAD || mfs > FC_SP_MAX_MAX_PAYLOAD) {
 		FC_LPORT_DBG(lport, "FLOGI bad mfs:%hu response, "
 			     "lport->mfs:%hu\n", mfs, lport->mfs);
 		fc_lport_error(lport, fp);
 		goto err;
 	}
 
+	if (mfs <= lport->mfs) {
+		lport->mfs = mfs;
+		fc_host_maxframe_size(lport->host) = mfs;
+	}
+
 	csp_flags = ntohs(flp->fl_csp.sp_features);
 	r_a_tov = ntohl(flp->fl_csp.sp_r_a_tov);
 	e_d_tov = ntohl(flp->fl_csp.sp_e_d_tov);


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

end of thread, other threads:[~2012-04-06 22:52 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-04-06 22:52 [PATCH] libfc fix for scsi-rc-fixes Robert Love
2012-04-06 22:52 ` [PATCH] libfc: update mfs boundry checking Robert Love

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).