Skip to contentSkip to conversation

pata_at91: fix ata_host_activate() failure handling

PATCH In review Bartlomiej Zolnierkiewicz 3 participants 3 messages Mar 31, 2014 – Apr 2, 2014

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 pata_at91: fix ata_host_activate() failure handling

Add missing clk_put() call to ata_host_activate() failure path.

Cc Andrew Victor <[email protected]>
Cc Nicolas Ferre <[email protected]>
Cc Jean-Christophe Plagniol-Villard <[email protected]>
---
 drivers/ata/pata_at91.c |   11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)
drivers/ata/pata_at91.c +6 -5
Index: b/drivers/ata/pata_at91.c
===================================================================
@@ -407,12 +407,13 @@ static int pata_at91_probe(struct platfo
 
 	host->private_data = info;
 
-	return ata_host_activate(host, gpio_is_valid(irq) ? gpio_to_irq(irq) : 0,
-			gpio_is_valid(irq) ? ata_sff_interrupt : NULL,
-			irq_flags, &pata_at91_sht);
+	ret = ata_host_activate(host, gpio_is_valid(irq) ? gpio_to_irq(irq) : 0,
+				gpio_is_valid(irq) ? ata_sff_interrupt : NULL,
+				irq_flags, &pata_at91_sht);
+	if (ret)
+		goto err_put;
 
-	if (!ret)
-		return 0;
+	return 0;
 
 err_put:
 	clk_put(info->mck);
#1 lore raw

Hello.

Quoted 20 lines · Bartlomiej Zolnierkiewicz

Add missing clk_put() call to ata_host_activate() failure path.

Cc Andrew Victor <[email protected]>
Cc Nicolas Ferre <[email protected]>
Cc Jean-Christophe Plagniol-Villard <[email protected]>
---
  drivers/ata/pata_at91.c |   11 ++++++-----
  1 file changed, 6 insertions(+), 5 deletions(-)

Index: b/drivers/ata/pata_at91.c
===================================================================

drivers/ata/pata_at91.c +0 -2
@@ -407,12 +407,13 @@ static int pata_at91_probe(struct platfo
 
  	host->private_data = info;
 
-	return ata_host_activate(host, gpio_is_valid(irq) ? gpio_to_irq(irq) : 0,
-			gpio_is_valid(irq) ? ata_sff_interrupt : NULL,

drivers/ata/pata_at91.c static int pata_at91_probe(struct platfo · line 416

Quoted 10 lines
drivers/ata/pata_at91.c +6 -3
-			irq_flags, &pata_at91_sht);
+	ret = ata_host_activate(host, gpio_is_valid(irq) ? gpio_to_irq(irq) : 0,
+				gpio_is_valid(irq) ? ata_sff_interrupt : NULL,
+				irq_flags, &pata_at91_sht);
+	if (ret)
+		goto err_put;
 
-	if (!ret)
-		return 0;
+	return 0;

Hm, I have once fixed that (see that *if* (!ret)) but looks like a later
commit 477c87e90853d136b188c50c0e4a93d01cad872e (ARM: at91/pata: use gpio_is_valid to check the gpio) broke it again. :-( Would be good if the changelog did mention that...

MBR, Sergei

Applied
#2 lore raw

PATCH 1/1 pata_at91: fix ata_host_activate() failure handling

In reply to Bartlomiej Zolnierkiewicz

Applied to libata/for-3.15-fixes.

Thanks.
------- 8< -------

Quoted 1 line

From 27aa64b9d1bd0d23fd692c91763a48309b694311 Mon Sep 17 00:00:00 2001

From: Bartlomiej Zolnierkiewicz <[email protected]>
Date: Mon, 31 Mar 2014 19:51:14 +0200

Add missing clk_put() call to ata_host_activate() failure path.

Sergei says,

"Hm, I have once fixed that (see that *if* (!ret)) but looks like a
later commit 477c87e90853d136b188c50c0e4a93d01cad872e (ARM:
at91/pata: use gpio_is_valid to check the gpio) broke it again. :-( Would be good if the changelog did mention that..."

Cc Andrew Victor <[email protected]>
Cc Nicolas Ferre <[email protected]>
Cc Jean-Christophe Plagniol-Villard <[email protected]>
Cc Sergei Shtylyov <[email protected]>
Cc stable at vger.kernel.org
---
 drivers/ata/pata_at91.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)
drivers/ata/pata_at91.c +6 -5
index e9c8727..8a66f23 100644
@@ -407,12 +407,13 @@ static int pata_at91_probe(struct platform_device *pdev)
 
 	host->private_data = info;
 
-	return ata_host_activate(host, gpio_is_valid(irq) ? gpio_to_irq(irq) : 0,
-			gpio_is_valid(irq) ? ata_sff_interrupt : NULL,
-			irq_flags, &pata_at91_sht);
+	ret = ata_host_activate(host, gpio_is_valid(irq) ? gpio_to_irq(irq) : 0,
+				gpio_is_valid(irq) ? ata_sff_interrupt : NULL,
+				irq_flags, &pata_at91_sht);
+	if (ret)
+		goto err_put;
 
-	if (!ret)
-		return 0;
+	return 0;
 
 err_put:
 	clk_put(info->mck);
Signature · 1 line
1.9.0