scsi: lpfc: Fix silent memory allocation failure in lpfc_sli4_bsg_link_diag_test()
authorJames Smart <jsmart2021@gmail.com>
Mon, 12 Apr 2021 01:31:19 +0000 (18:31 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 13 Apr 2021 05:39:13 +0000 (01:39 -0400)
In the unlikely case of a failure to allocate an LPFC_MBOXQ_t structure, no
return status is set, thus the routine never logs an error and returns
success to the callee.

Fix by setting a return code on failure.

Link: https://lore.kernel.org/r/20210412013127.2387-9-jsmart2021@gmail.com
Co-developed-by: Justin Tee <justin.tee@broadcom.com>
Signed-off-by: Justin Tee <justin.tee@broadcom.com>
Signed-off-by: James Smart <jsmart2021@gmail.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/lpfc/lpfc_bsg.c

index 503540cf2041447ba9dce27529995d4613555aa5..48a6b0cc58efccc693ae43005ef25c49a3baff57 100644 (file)
@@ -2435,8 +2435,10 @@ lpfc_sli4_bsg_link_diag_test(struct bsg_job *job)
                goto job_error;
 
        pmboxq = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL);
-       if (!pmboxq)
+       if (!pmboxq) {
+               rc = -ENOMEM;
                goto link_diag_test_exit;
+       }
 
        req_len = (sizeof(struct lpfc_mbx_set_link_diag_state) -
                   sizeof(struct lpfc_sli4_cfg_mhdr));