[SCSI] lpfc 8.3.36: Fixed setting sequential delivery bit
authorJames Smart <james.smart@emulex.com>
Wed, 31 Oct 2012 18:45:01 +0000 (14:45 -0400)
committerJames Bottomley <JBottomley@Parallels.com>
Tue, 27 Nov 2012 04:59:44 +0000 (08:59 +0400)
Fixed setting sequential delivery bit in a service class that is not valid

Signed-off-by: James Smart <james.smart@emulex.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/lpfc/lpfc_els.c

index f19e9b6..b9440de 100644 (file)
@@ -1182,8 +1182,6 @@ lpfc_issue_els_flogi(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
        sp->cmn.w2.r_a_tov = 0;
        sp->cmn.virtual_fabric_support = 0;
        sp->cls1.classValid = 0;
-       sp->cls2.seqDelivery = 1;
-       sp->cls3.seqDelivery = 1;
        if (sp->cmn.fcphLow < FC_PH3)
                sp->cmn.fcphLow = FC_PH3;
        if (sp->cmn.fcphHigh < FC_PH3)
@@ -1198,7 +1196,13 @@ lpfc_issue_els_flogi(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
                        /* Set the fcfi to the fcfi we registered with */
                        elsiocb->iocb.ulpContext = phba->fcf.fcfi;
                }
+               /* Can't do SLI4 class2 without support sequence coalescing */
+               sp->cls2.classValid = 0;
+               sp->cls2.seqDelivery = 0;
        } else {
+               /* Historical, setting sequential-delivery bit for SLI3 */
+               sp->cls2.seqDelivery = (sp->cls2.classValid) ? 1 : 0;
+               sp->cls3.seqDelivery = (sp->cls3.classValid) ? 1 : 0;
                if (phba->sli3_options & LPFC_SLI3_NPIV_ENABLED) {
                        sp->cmn.request_multiple_Nport = 1;
                        /* For FLOGI, Let FLOGI rsp set the NPortID for VPI 0 */