On 1/23/17, 8:34 AM, "Bart Van Assche" <bart.vanass...@sandisk.com> 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 <bart.vanass...@sandisk.com>
>Cc: Michael Hernandez <michael.hernan...@cavium.com>
>Cc: Himanshu Madhani <himanshu.madh...@cavium.com>
>Cc: Christoph Hellwig <h...@lst.de>
>Cc: <sta...@vger.kernel.org>
>---
> 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 <himanshu.madh...@cavium.com>

N�����r��y����b�X��ǧv�^�)޺{.n�+����{���"�{ay�ʇڙ�,j��f���h���z��w���
���j:+v���w�j�m��������zZ+�����ݢj"��!�i

Reply via email to