| From ffe381cbea200147b9f6e2f1383f6268b6f0424d Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Fri, 14 May 2021 12:55:56 -0700 |
| Subject: scsi: lpfc: Fix crash when lpfc_sli4_hba_setup() fails to initialize |
| the SGLs |
| |
| From: James Smart <jsmart2021@gmail.com> |
| |
| [ Upstream commit 5aa615d195f1e142c662cb2253f057c9baec7531 ] |
| |
| The driver is encountering a crash in lpfc_free_iocb_list() while |
| performing initial attachment. |
| |
| Code review found this to be an errant failure path that was taken, jumping |
| to a tag that then referenced structures that were uninitialized. |
| |
| Fix the failure path. |
| |
| Link: https://lore.kernel.org/r/20210514195559.119853-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> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/scsi/lpfc/lpfc_sli.c | 5 +++-- |
| 1 file changed, 3 insertions(+), 2 deletions(-) |
| |
| diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c |
| index 7551743835fc..c063a6d2b690 100644 |
| --- a/drivers/scsi/lpfc/lpfc_sli.c |
| +++ b/drivers/scsi/lpfc/lpfc_sli.c |
| @@ -7962,7 +7962,7 @@ lpfc_sli4_hba_setup(struct lpfc_hba *phba) |
| "0393 Error %d during rpi post operation\n", |
| rc); |
| rc = -ENODEV; |
| - goto out_destroy_queue; |
| + goto out_free_iocblist; |
| } |
| lpfc_sli4_node_prep(phba); |
| |
| @@ -8128,8 +8128,9 @@ out_io_buff_free: |
| out_unset_queue: |
| /* Unset all the queues set up in this routine when error out */ |
| lpfc_sli4_queue_unset(phba); |
| -out_destroy_queue: |
| +out_free_iocblist: |
| lpfc_free_iocb_list(phba); |
| +out_destroy_queue: |
| lpfc_sli4_queue_destroy(phba); |
| out_stop_timers: |
| lpfc_stop_hba_timers(phba); |
| -- |
| 2.30.2 |
| |