scsi: lpfc: Fix issue_lip if link is disabled
authorJames Smart <jsmart2021@gmail.com>
Tue, 30 Jan 2018 23:58:55 +0000 (15:58 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 25 May 2018 14:13:08 +0000 (16:13 +0200)
[ Upstream commit 2289e9598dde9705400559ca2606fb8c145c34f0 ]

The driver ignored checks on whether the link should be kept
administratively down after a link bounce. Correct the checks.

Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
Signed-off-by: James Smart <james.smart@broadcom.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/scsi/lpfc/lpfc_attr.c

index 453299095847c965ab90ec909e5e7502d0a02c4f..cf15b9754402b7e11e27bc7a06f8a139766a6f37 100644 (file)
@@ -635,7 +635,12 @@ lpfc_issue_lip(struct Scsi_Host *shost)
        LPFC_MBOXQ_t *pmboxq;
        int mbxstatus = MBXERR_ERROR;
 
+       /*
+        * If the link is offline, disabled or BLOCK_MGMT_IO
+        * it doesn't make any sense to allow issue_lip
+        */
        if ((vport->fc_flag & FC_OFFLINE_MODE) ||
+           (phba->hba_flag & LINK_DISABLED) ||
            (phba->sli.sli_flag & LPFC_BLOCK_MGMT_IO))
                return -EPERM;