On Wed 2019-05-29 20:03:53, Greg Kroah-Hartman wrote: > [ Upstream commit 24afabdbd0b3553963a2bbf465895492b14d1107 ] > > Make sure that the allocated interrupts are freed if allocating memory for > the msix_entries array fails. > > Cc: Himanshu Madhani <[email protected]> > Cc: Giridhar Malavali <[email protected]> > Signed-off-by: Bart Van Assche <[email protected]> > Acked-by: Himanshu Madhani <[email protected]> > Signed-off-by: Martin K. Petersen <[email protected]> > Signed-off-by: Sasha Levin <[email protected]>
> --- a/drivers/scsi/qla2xxx/qla_isr.c
> +++ b/drivers/scsi/qla2xxx/qla_isr.c
> @@ -3449,7 +3449,7 @@ qla24xx_enable_msix(struct qla_hw_data *ha, struct
> rsp_que *rsp)
> ql_log(ql_log_fatal, vha, 0x00c8,
> "Failed to allocate memory for ha->msix_entries.\n");
> ret = -ENOMEM;
> - goto msix_out;
> + goto free_irqs;
Could we just do > + pci_free_irq_vectors(ha->pdev); return
-ENOMEM; here? Going through two gotos just does not feel right.
And yes, I'd replace msix_out with direct returns, too. gotos have
value when there's cleanup to be done, but we are not doing any here.
Thanks,
Pavel
> }
> ha->flags.msix_enabled = 1;
>
> @@ -3532,6 +3532,10 @@ qla24xx_enable_msix(struct qla_hw_data *ha, struct
> rsp_que *rsp)
>
> msix_out:
> return ret;
> +
> +free_irqs:
> + pci_free_irq_vectors(ha->pdev);
> + goto msix_out;
> }
>
Come on, that is nasty.
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures)
http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
signature.asc
Description: Digital signature

