Commit 00efcb1c authored by Sylwester Nawrocki's avatar Sylwester Nawrocki Committed by Mike Turquette
Browse files

clk: Correct handling of NULL clk in __clk_{get, put}



Ensure clk->kref is dereferenced only when clk is not NULL.

Signed-off-by: default avatarSylwester Nawrocki <s.nawrocki@samsung.com>
Tested-by: default avatarSachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: default avatarMike Turquette <mturquette@linaro.org>
parent 624009a7
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -2226,23 +2226,24 @@ EXPORT_SYMBOL_GPL(devm_clk_unregister);
 */
int __clk_get(struct clk *clk)
{
	if (clk && !try_module_get(clk->owner))
	if (clk) {
		if (!try_module_get(clk->owner))
			return 0;

		kref_get(&clk->ref);
	}
	return 1;
}

void __clk_put(struct clk *clk)
{
	if (WARN_ON_ONCE(IS_ERR(clk)))
	if (!clk || WARN_ON_ONCE(IS_ERR(clk)))
		return;

	clk_prepare_lock();
	kref_put(&clk->ref, __clk_release);
	clk_prepare_unlock();

	if (clk)
	module_put(clk->owner);
}