Message ID | 20220723064027.2956623-1-williamsukatube@163.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | scsi: lpfc: check the return value of alloc_workqueue() | expand |
On 7/22/2022 11:40 PM, williamsukatube@163.com wrote: > From: William Dean <williamsukatube@gmail.com> > > The function alloc_workqueue() in lpfc_sli4_driver_resource_setup() can > fail, but there is no check of its return value. To fix this bug, its > return value should be checked with new error handling code. > > Fixes: 3cee98db2610f ("scsi: lpfc: Fix crash on driver unload in wq free") > Reported-by: Hacash Robot <hacashRobot@santino.com> > Signed-off-by: William Dean <williamsukatube@gmail.com> > --- > drivers/scsi/lpfc/lpfc_init.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c > index 750dd1e9f2cc..8e9594f4ed16 100644 > --- a/drivers/scsi/lpfc/lpfc_init.c > +++ b/drivers/scsi/lpfc/lpfc_init.c > @@ -7958,6 +7958,8 @@ lpfc_sli4_driver_resource_setup(struct lpfc_hba *phba) > > /* The lpfc_wq workqueue for deferred irq use */ > phba->wq = alloc_workqueue("lpfc_wq", WQ_MEM_RECLAIM, 0); > + if (!phba->wq) > + return -ENOMEM; > > /* > * Initialize timers used by driver Reviewed-by: James Smart <jsmart2021@gmail.com> -- james
diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c index 750dd1e9f2cc..8e9594f4ed16 100644 --- a/drivers/scsi/lpfc/lpfc_init.c +++ b/drivers/scsi/lpfc/lpfc_init.c @@ -7958,6 +7958,8 @@ lpfc_sli4_driver_resource_setup(struct lpfc_hba *phba) /* The lpfc_wq workqueue for deferred irq use */ phba->wq = alloc_workqueue("lpfc_wq", WQ_MEM_RECLAIM, 0); + if (!phba->wq) + return -ENOMEM; /* * Initialize timers used by driver