regulator: Fix unbalanced lock/unlock in mc13892_regulator_probe error path
PATCH 1/1 regulator: Fix unbalanced lock/unlock in mc13892_regulator_probe error path
We do not hold a lock while registering regulator, thus should not call unlock if regulator_register fails.
Signed-off-by Axel Lin <[email protected]>
--- drivers/regulator/mc13892-regulator.c | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-)
drivers/regulator/mc13892-regulator.c +5 -5
@@ -552,7 +552,7 @@ static int __devinit mc13892_regulator_probe(struct platform_device *pdev)mc13xxx_lock (mc13892); ret =mc13xxx_reg_read (mc13892,MC13892_REVISION , &val);if (ret) - goto err_free; + goto err_unlock;/* enable switch auto mode */ if ((val &0x0000FFFF ) ==0x45d0 ) {
@@ -562,7 +562,7 @@ static int __devinit mc13892_regulator_probe(struct platform_device *pdev)MC13892_SWITCHERS4_SW1MODE_AUTO | MC13892_SWITCHERS4_SW2MODE_AUTO);if (ret) - goto err_free; + goto err_unlock; ret = mc13xxx_reg_rmw(mc13892, MC13892_SWITCHERS5, MC13892_SWITCHERS5_SW3MODE_M |
@@ -570,7 +570,7 @@ static int __devinit mc13892_regulator_probe(struct platform_device *pdev)MC13892_SWITCHERS5_SW3MODE_AUTO | MC13892_SWITCHERS5_SW4MODE_AUTO);if (ret) - goto err_free; + goto err_unlock; }mc13xxx_unlock (mc13892);
@@ -612,10 +612,10 @@ static int __devinit mc13892_regulator_probe(struct platform_device *pdev) err:while (--i >=0 )regulator_unregister (priv->regulators[i]); +return ret; -err_free: +err_unlock:mc13xxx_unlock (mc13892); -return ret; }
Signature · 1 line
1.7.5.4
Mark Brown
AppliedQuoted 2 lines · Axel Lin
We do not hold a lock while registering regulator, thus should not call unlock if
regulator_registerfails.
Applied, thanks.