On 1/23/17, 8:34 AM, "Bart Van Assche" <bart.vanassche@xxxxxxxxxxx> 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.vanassche@xxxxxxxxxxx> >Cc: Michael Hernandez <michael.hernandez@xxxxxxxxxx> >Cc: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx> >Cc: Christoph Hellwig <hch@xxxxxx> >Cc: <stable@xxxxxxxxxxxxxxx> >--- > 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.madhani@xxxxxxxxxx> ��.n��������+%������w��{.n�����{������ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f