hpsa: avoid unneccesary calls to resource freeing functions
authorRobert Elliott <elliott@hp.com>
Fri, 23 Jan 2015 22:42:54 +0000 (16:42 -0600)
committerJames Bottomley <JBottomley@Parallels.com>
Mon, 2 Feb 2015 17:57:39 +0000 (09:57 -0800)
If hpsa_allocate_cmd_pool failed, we were calling two functions unnecessarily:

  hpsa_free_sg_chain_blocks(h);
  hpsa_free_cmd_pool(h);

This didn't cause any problem, as those functions can tolerate being called
when what they free hasn't been allocated (relevant pointers would be NULL)
but it is potentially confusing.

Reviewed-by: Scott Teel <scott.teel@pmcs.com>
Signed-off-by: Robert Elliott <elliott@hp.com>
Signed-off-by: Don Brace <don.brace@pmcs.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/scsi/hpsa.c

index a66a50e..bee24b2 100644 (file)
@@ -6948,8 +6948,9 @@ reinit_after_soft_reset:
        dev_info(&pdev->dev, "%s: <0x%x> at IRQ %d%s using DAC\n",
               h->devname, pdev->device,
               h->intr[h->intr_mode], dac ? "" : " not");
-       if (hpsa_allocate_cmd_pool(h))
-               goto clean4;
+       rc = hpsa_allocate_cmd_pool(h);
+       if (rc)
+               goto clean2_and_free_irqs;
        if (hpsa_allocate_sg_chain_blocks(h))
                goto clean4;
        init_waitqueue_head(&h->scan_wait_queue);
@@ -7038,6 +7039,7 @@ reinit_after_soft_reset:
 clean4:
        hpsa_free_sg_chain_blocks(h);
        hpsa_free_cmd_pool(h);
+clean2_and_free_irqs:
        hpsa_free_irqs(h);
 clean2:
 clean1: