From: Vasu Dev <[email protected]>

Currently fc_host mfs is not getting updated in case its changed during
FLOGI and that leaves fc_host to show its initial old value in sysfs, so
instead have fc_host mfs updated along with updating lport mfs during
FLOGI.

Also in case of bad mfs during flogi, error out instead of continuing
with flogi.

[Bhanu: Updated this patch to modify the error condition to error out
only when mfs is not in the supported range.]

[ Robert Love: Updated this patch to apply to linus' kernel. ]

Signed-off-by: Vasu Dev <[email protected]>
Tested-by: Ross Brattain <[email protected]>
Signed-off-by: Bhanu Prakash Gollapudi <[email protected]>
Signed-off-by: Robert Love <[email protected]>
---
 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);

_______________________________________________
devel mailing list
[email protected]
https://lists.open-fcoe.org/mailman/listinfo/devel

Reply via email to