Commit 1dec1311 authored by Justin Tee's avatar Justin Tee Committed by Martin K. Petersen

scsi: lpfc: Fix list_entry null check warning in lpfc_cmpl_els_plogi()

Smatch called out a warning for null checking a ptr that is assigned by
list_entry(). list_entry() does not return null and, if the list is empty,
can return an invalid ptr. Thus, the !psrp check does not execute properly.

 drivers/scsi/lpfc/lpfc_els.c:2133 lpfc_cmpl_els_plogi()
 warn: list_entry() does not return NULL 'prsp'

Replace list_entry() with list_get_first(), which does a list_empty() check
before returning the first entry.

Fixes: a3c3c0a8 ("scsi: lpfc: Validate ELS LS_ACC completion payload")
Reported-by: default avatarDan Carpenter <dan.carpenter@linaro.org>
Closes: https://lore.kernel.org/linux-scsi/01b7568f-4ab4-4d56-bfa6-9ecc5fc261fe@moroto.mountain/Signed-off-by: default avatarJustin Tee <justin.tee@broadcom.com>
Link: https://lore.kernel.org/r/20231031191224.150862-4-justintee8345@gmail.comReviewed-by: default avatarHimanshu Madhani <himanshu.madhani@oracle.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent f5779b52
...@@ -2128,8 +2128,8 @@ lpfc_cmpl_els_plogi(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, ...@@ -2128,8 +2128,8 @@ lpfc_cmpl_els_plogi(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb,
NLP_EVT_DEVICE_RM); NLP_EVT_DEVICE_RM);
} else { } else {
/* Good status, call state machine */ /* Good status, call state machine */
prsp = list_entry(cmdiocb->cmd_dmabuf->list.next, prsp = list_get_first(&cmdiocb->cmd_dmabuf->list,
struct lpfc_dmabuf, list); struct lpfc_dmabuf, list);
if (!prsp) if (!prsp)
goto out; goto out;
if (!lpfc_is_els_acc_rsp(prsp)) if (!lpfc_is_els_acc_rsp(prsp))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment