summary refs log tree commit diff
path: root/drivers/ata/libahci.c
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2015-10-30 17:09:35 -0400
committerTejun Heo <tj@kernel.org>2015-10-31 10:04:34 +0900
commit0a142b26921c23ccdb6ef802d8047d02ad4cf0a7 (patch)
treee8be8f5cd07c47561b09368be84f613ffafcb631 /drivers/ata/libahci.c
parent899a63c3ebf3fad8723a432c1bba875ec3ef1948 (diff)
downloadlinux-0a142b26921c23ccdb6ef802d8047d02ad4cf0a7.tar.gz
ahci: cleanup ahci_host_activate_multi_irqs
With devm there is no need to explicitly free irqs on error.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'drivers/ata/libahci.c')
-rw-r--r--drivers/ata/libahci.c21
1 files changed, 3 insertions, 18 deletions
diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c
index 67f97e3e471a..096064cd6c52 100644
--- a/drivers/ata/libahci.c
+++ b/drivers/ata/libahci.c
@@ -2496,25 +2496,10 @@ static int ahci_host_activate_multi_irqs(struct ata_host *host, int irq,
 					       ahci_port_thread_fn, 0,
 					       pp->irq_desc, host->ports[i]);
 		if (rc)
-			goto out_free_irqs;
-	}
-
-	for (i = 0; i < host->n_ports; i++)
+			return rc;
 		ata_port_desc(host->ports[i], "irq %d", irq + i);
-
-	rc = ata_host_register(host, sht);
-	if (rc)
-		goto out_free_all_irqs;
-
-	return 0;
-
-out_free_all_irqs:
-	i = host->n_ports;
-out_free_irqs:
-	for (i--; i >= 0; i--)
-		devm_free_irq(host->dev, irq + i, host->ports[i]);
-
-	return rc;
+	}
+	return ata_host_register(host, sht);
 }
 
 /**