diff options
author | Dick Kennedy <dick.kennedy@broadcom.com> | 2017-08-23 16:55:33 -0700 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2017-08-24 22:29:36 -0400 |
commit | bb6a8a2c24f263cdff78b62ada58cecd8c89c03d (patch) | |
tree | f3c59de16e265298e2e46e80a358de9f8a73ef9d /drivers/scsi/lpfc/lpfc_nvme.c | |
parent | d2aa48761e4f102b672e9ff1b6c8d26af782b286 (diff) | |
download | talos-op-linux-bb6a8a2c24f263cdff78b62ada58cecd8c89c03d.tar.gz talos-op-linux-bb6a8a2c24f263cdff78b62ada58cecd8c89c03d.zip |
scsi: lpfc: Fix oops when NVME Target is discovered in a nonNVME environment
lpfc oops when it discovers a NVME target but is configured for SCSI
only operation. Oops is in lpfc_nvme_register_port+0x33/0x300.
The localport is not valid so it should not have been referenced.
Added validity check for localport
Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
Signed-off-by: James Smart <james.smart@broadcom.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_nvme.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_nvme.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/scsi/lpfc/lpfc_nvme.c b/drivers/scsi/lpfc/lpfc_nvme.c index c18db8707fed..ce8d6bbf8148 100644 --- a/drivers/scsi/lpfc/lpfc_nvme.c +++ b/drivers/scsi/lpfc/lpfc_nvme.c @@ -2296,6 +2296,9 @@ lpfc_nvme_register_port(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp) ndlp->nlp_DID, ndlp->nlp_type); localport = vport->localport; + if (!localport) + return 0; + lport = (struct lpfc_nvme_lport *)localport->private; /* NVME rports are not preserved across devloss. |