| From 27aa64b9d1bd0d23fd692c91763a48309b694311 Mon Sep 17 00:00:00 2001 |
| From: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> |
| Date: Mon, 31 Mar 2014 19:51:14 +0200 |
| Subject: pata_at91: fix ata_host_activate() failure handling |
| |
| From: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> |
| |
| commit 27aa64b9d1bd0d23fd692c91763a48309b694311 upstream. |
| |
| 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 <linux@maxim.org.za> |
| Cc: Nicolas Ferre <nicolas.ferre@atmel.com> |
| Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com> |
| Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> |
| Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> |
| Signed-off-by: Tejun Heo <tj@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/ata/pata_at91.c | 11 ++++++----- |
| 1 file changed, 6 insertions(+), 5 deletions(-) |
| |
| --- a/drivers/ata/pata_at91.c |
| +++ b/drivers/ata/pata_at91.c |
| @@ -408,12 +408,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); |