diff options
author | Simon Baatz <gmbnomis@gmail.com> | 2012-07-19 00:04:09 +0200 |
---|---|---|
committer | Andrew Lunn <andrew@lunn.ch> | 2012-07-25 17:06:21 +0200 |
commit | baffab28b13120694fa3ebab08d3e99667a851d2 (patch) | |
tree | ba6021fe52fd1814b06ab07ba2aa8f51c6c2da06 /drivers/net/ethernet/marvell | |
parent | 30e0f58035073c895a8d33e1521e412be73e02bc (diff) | |
download | linux-baffab28b13120694fa3ebab08d3e99667a851d2.tar.bz2 |
ARM: Orion: fix driver probe error handling with respect to clk
The clk patches added code to get and enable clocks in the
respective driver probe functions. If the probe function failed
for some reason after enabling the clock, the clock was not
disabled again in many cases.
Signed-off-by: Simon Baatz <gmbnomis@gmail.com>
Signed-off-by: Andrew Lumm <andrew@lunn.ch>
Diffstat (limited to 'drivers/net/ethernet/marvell')
-rw-r--r-- | drivers/net/ethernet/marvell/mv643xx_eth.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/ethernet/marvell/mv643xx_eth.c b/drivers/net/ethernet/marvell/mv643xx_eth.c index f0f06b2bc28b..4fbba57b8ff4 100644 --- a/drivers/net/ethernet/marvell/mv643xx_eth.c +++ b/drivers/net/ethernet/marvell/mv643xx_eth.c @@ -2983,6 +2983,12 @@ static int mv643xx_eth_probe(struct platform_device *pdev) return 0; out: +#if defined(CONFIG_HAVE_CLK) + if (!IS_ERR(mp->clk)) { + clk_disable_unprepare(mp->clk); + clk_put(mp->clk); + } +#endif free_netdev(dev); return err; |