On Thu, 2012-03-22 at 11:03 -0700, Bhanu Prakash Gollapudi wrote:
> On 2/14/2012 5:34 PM, Vasu Dev wrote:
> > 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.
> >
> > Signed-off-by: Vasu Dev<vasu....@intel.com>
> > Tested-by: Ross Brattain<ross.b.bratt...@intel.com>
> > ---
> >
> >   drivers/scsi/libfc/fc_lport.c |    9 ++++++++-
> >   1 files changed, 8 insertions(+), 1 deletions(-)
> >
> > diff --git a/drivers/scsi/libfc/fc_lport.c b/drivers/scsi/libfc/fc_lport.c
> > index 9a0b2a9..a992692 100644
> > --- a/drivers/scsi/libfc/fc_lport.c
> > +++ b/drivers/scsi/libfc/fc_lport.c
> > @@ -1743,8 +1743,15 @@ 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)
> > +       mfs<  lport->mfs) {
> >             lport->mfs = mfs;
> > +           fc_host_maxframe_size(lport->host) = mfs;
> > +   } else {
> > +           FC_LPORT_DBG(lport, "FLOGI bad mfs:%hu response\n", mfs);
> > +           fc_lport_error(lport, fp);
> > +           goto err;
> > +   }
> > +
> 
> Vasu, sorry for not getting back to you on this earlier, but I found 
> that this check does not allow the FLOGI to succeed on Broadcom devices. 
> We have max frame size set to 2048 even if FLOGI resp indicates 2112.

Failure with 2112 was due to existing wrong check prio to this check as
mfs < lport->mfs and that triggered after else condition was added by
this patch. The final updated patch fixed to allow  flogi response with
2112 also by modifying check as mfs <= lport->mfs and that is the one
applied to the tree by Rob at and that should work:

http://www.open-fcoe.org/git/?p=fcoe/fcoe-next.git;a=commitdiff;h=4394b32e1728196407af14b4527abaada1b938c2;hp=355dff86cf1c0a7f054c17bf1f9dfed69ec5625e


>  
> Even for fcoe driver, with default MTU of 1500, FLOGI is not going to 
> succeed.   Probably if we want to retry, we should check only for 
> MIN_MAX_PAYLOAD.

Modified check ensure response not to exceed n-port mfs and that should
work for this case also.

Thanks
Vasu


_______________________________________________
devel mailing list
devel@open-fcoe.org
https://lists.open-fcoe.org/mailman/listinfo/devel

Reply via email to