diff mbox

clk: tegra: dfll: add missing rcu_read_unlock() for error path

Message ID 1442384094-22144-1-git-send-email-vinceh@nvidia.com
State Deferred
Headers show

Commit Message

Vince Hsu Sept. 16, 2015, 6:14 a.m. UTC
From: Vince Hsu <vince.h@nvidia.com>

The commit e770940218028c6a5927fda45f2ca9db5d9b35e0 ("clk: tegra: dfll:
Properly protect OPP list") added the rcu_read_{lock,unlock} but missed
one in the error path. So add the missing one.

Signed-off-by: Vince Hsu <vince.h@nvidia.com>
---
Hi,

I noticed the missed unlock because we had a similar fix as the commit
e77094021 in ChromeOS[1]. 

[1] https://chromium-review.googlesource.com/#/c/223661/


 drivers/clk/tegra/clk-dfll.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Stephen Boyd Sept. 16, 2015, 10:15 p.m. UTC | #1
On 09/16, Vince Hsu wrote:
> From: Vince Hsu <vince.h@nvidia.com>
> 
> The commit e770940218028c6a5927fda45f2ca9db5d9b35e0 ("clk: tegra: dfll:
> Properly protect OPP list") added the rcu_read_{lock,unlock} but missed
> one in the error path. So add the missing one.
> 
> Signed-off-by: Vince Hsu <vince.h@nvidia.com>
> ---

I think we'll just squash this into the original patch from
Thierry.
Vince Hsu Sept. 17, 2015, 1:17 a.m. UTC | #2
On 09/17/2015 06:15 AM, Stephen Boyd wrote:
> On 09/16, Vince Hsu wrote:
>> From: Vince Hsu <vince.h@nvidia.com>
>>
>> The commit e770940218028c6a5927fda45f2ca9db5d9b35e0 ("clk: tegra: dfll:
>> Properly protect OPP list") added the rcu_read_{lock,unlock} but missed
>> one in the error path. So add the missing one.
>>
>> Signed-off-by: Vince Hsu <vince.h@nvidia.com>
>> ---
> I think we'll just squash this into the original patch from
> Thierry.
Sure. Thanks!

Vince
--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/clk/tegra/clk-dfll.c b/drivers/clk/tegra/clk-dfll.c
index 4adff56dd0ef..c4e3a52e225b 100644
--- a/drivers/clk/tegra/clk-dfll.c
+++ b/drivers/clk/tegra/clk-dfll.c
@@ -685,8 +685,10 @@  static int find_lut_index_for_rate(struct tegra_dfll *td, unsigned long rate)
 	rcu_read_lock();
 
 	opp = dev_pm_opp_find_freq_ceil(td->soc->dev, &rate);
-	if (IS_ERR(opp))
+	if (IS_ERR(opp)) {
+		rcu_read_unlock();
 		return PTR_ERR(opp);
+	}
 	uv = dev_pm_opp_get_voltage(opp);
 
 	rcu_read_unlock();