On 1/23/17, 8:34 AM, "Bart Van Assche" <[email protected]> wrote:
>qla2x00_probe_one() allocates IRQs before it initializes rsp_q_map
>so IRQs must be freed even if rsp_q_map allocation did not occur.
>This was detected by kmemleak.
>
>Fixes: 4fa183455988 ("scsi: qla2xxx: Utilize
>pci_alloc_irq_vectors/pci_free_irq_vectors calls")
>Signed-off-by: Bart Van Assche <[email protected]>
>Cc: Michael Hernandez <[email protected]>
>Cc: Himanshu Madhani <[email protected]>
>Cc: Christoph Hellwig <[email protected]>
>Cc: <[email protected]>
>---
> drivers/scsi/qla2xxx/qla_isr.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
>diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
>index dc88a09f9043..a94b0b6bd030 100644
>--- a/drivers/scsi/qla2xxx/qla_isr.c
>+++ b/drivers/scsi/qla2xxx/qla_isr.c
>@@ -3242,7 +3242,7 @@ qla2x00_free_irqs(scsi_qla_host_t *vha)
> * from a probe failure context.
> */
> if (!ha->rsp_q_map || !ha->rsp_q_map[0])
>- return;
>+ goto free_irqs;
> rsp = ha->rsp_q_map[0];
>
> if (ha->flags.msix_enabled) {
>@@ -3262,6 +3262,7 @@ qla2x00_free_irqs(scsi_qla_host_t *vha)
> free_irq(pci_irq_vector(ha->pdev, 0), rsp);
> }
>
>+free_irqs:
> pci_free_irq_vectors(ha->pdev);
> }
>
>--
>2.11.0
Thanks Bart. Looks good.
Acked-By: Himanshu Madhani <[email protected]>
N�����r��y����b�X��ǧv�^�){.n�+����{���"�{ay�ʇڙ�,j��f���h���z��w���
���j:+v���w�j�m��������zZ+�����ݢj"��!�i