pcmcia: sa11x0: fix missing clk_put() in sa11x0 socket drivers
authorRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 26 Mar 2015 10:22:20 +0000 (10:22 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Wed, 8 Jul 2015 10:29:55 +0000 (11:29 +0100)
Fix the lack of clk_put() in sa11xx_base.c's error cleanup paths by
converting the driver to the devm_* API.

Fixes: 86d88bfca475 ("ARM: 8247/2: pcmcia: sa1100: make use of device clock")
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
drivers/pcmcia/sa1100_generic.c
drivers/pcmcia/sa11xx_base.c

index 8039452..42861cc 100644 (file)
@@ -93,7 +93,6 @@ static int sa11x0_drv_pcmcia_remove(struct platform_device *dev)
        for (i = 0; i < sinfo->nskt; i++)
                soc_pcmcia_remove_one(&sinfo->skt[i]);
 
-       clk_put(sinfo->clk);
        kfree(sinfo);
        return 0;
 }
index cf6de2c..553d70a 100644 (file)
@@ -222,7 +222,7 @@ int sa11xx_drv_pcmcia_probe(struct device *dev, struct pcmcia_low_level *ops,
        int i, ret = 0;
        struct clk *clk;
 
-       clk = clk_get(dev, NULL);
+       clk = devm_clk_get(dev, NULL);
        if (IS_ERR(clk))
                return PTR_ERR(clk);
 
@@ -251,7 +251,6 @@ int sa11xx_drv_pcmcia_probe(struct device *dev, struct pcmcia_low_level *ops,
        if (ret) {
                while (--i >= 0)
                        soc_pcmcia_remove_one(&sinfo->skt[i]);
-               clk_put(clk);
                kfree(sinfo);
        } else {
                dev_set_drvdata(dev, sinfo);