diff --git a/drivers/opp/core.c b/drivers/opp/core.c
index f2f32786ee4511fa9d82c55cdffeec3a218b3c53..bdb028c7793df3ed465abd5eb278d8d2e24aef7d 100644
--- a/drivers/opp/core.c
+++ b/drivers/opp/core.c
@@ -907,7 +907,7 @@ int dev_pm_opp_set_rate(struct device *dev, unsigned long target_freq)
 
 		ret = _set_opp_bw(opp_table, NULL, dev, true);
 		if (ret)
-			return ret;
+			goto put_opp_table;
 
 		if (opp_table->regulator_enabled) {
 			regulator_disable(opp_table->regulators[0]);