]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
scsi: lpfc: Fix null ptr oops updating lpfc_devloss_tmo via sysfs attribute
authorJames Smart <jsmart2021@gmail.com>
Wed, 14 Aug 2019 23:56:45 +0000 (16:56 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 20 Aug 2019 02:41:09 +0000 (22:41 -0400)
If an admin updates lpfc's devloss_tmo sysfs attribute, the kernel will
oops.

Coding of a loop allowed a new value (rport) to be set/checked for null
followed by an older value (remoteport) checked for null to allow progress
where the new value, even though null, will be referenced.

Rework the logic to validate and prevent any reference to the null ptr.

Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
Signed-off-by: James Smart <jsmart2021@gmail.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/lpfc/lpfc_attr.c

index ea62322ffe2bb7e711bc87d521903573550be282..0e71348bf3a34094f9d020d230aa44a732cb4b74 100644 (file)
@@ -3682,8 +3682,8 @@ lpfc_update_rport_devloss_tmo(struct lpfc_vport *vport)
                if (rport)
                        remoteport = rport->remoteport;
                spin_unlock(&vport->phba->hbalock);
-               if (remoteport)
-                       nvme_fc_set_remoteport_devloss(rport->remoteport,
+               if (rport && remoteport)
+                       nvme_fc_set_remoteport_devloss(remoteport,
                                                       vport->cfg_devloss_tmo);
 #endif
        }