]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
lpfc: Fixed setting sequential delivery bit in a service class that is not valid
authorJames Smart <james.smart@emulex.com>
Mon, 26 Nov 2012 22:58:28 +0000 (15:58 -0700)
committerJerry Snitselaar <jerry.snitselaar@oracle.com>
Mon, 26 Nov 2012 22:58:28 +0000 (15:58 -0700)
http://marc.info/?l=linux-scsi&m=135170914726116

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

index 3c521e35f39cb69fe1f9e24b53a3ca67694837f2..541ffcbc7020478ca0adba50034f5d2c7d9188e2 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 */