clk: handle NULL struct clk gracefully
At some point changes to clk_set_rate and clk_set_parent introduced a bug whereby NULL struct clk pointers were treated as an error. This is in violation of the API in include/linux/clk.h. Reintroduce graceful handling of NULL clk's by bailing from clk_set_rate and clk_set_parent with return codes of zero. Signed-off-by: Mike Turquette <mturquette@linaro.org>
This commit is contained in:
parent
bddbd13453
commit
89ac8d7ae1
1 changed files with 7 additions and 1 deletions
|
@ -1428,6 +1428,9 @@ int clk_set_rate(struct clk *clk, unsigned long rate)
|
||||||
struct clk *top, *fail_clk;
|
struct clk *top, *fail_clk;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
|
if (!clk)
|
||||||
|
return 0;
|
||||||
|
|
||||||
/* prevent racing with updates to the clock topology */
|
/* prevent racing with updates to the clock topology */
|
||||||
clk_prepare_lock();
|
clk_prepare_lock();
|
||||||
|
|
||||||
|
@ -1567,7 +1570,10 @@ int clk_set_parent(struct clk *clk, struct clk *parent)
|
||||||
u8 p_index = 0;
|
u8 p_index = 0;
|
||||||
unsigned long p_rate = 0;
|
unsigned long p_rate = 0;
|
||||||
|
|
||||||
if (!clk || !clk->ops)
|
if (!clk)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if (!clk->ops)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
/* verify ops for for multi-parent clks */
|
/* verify ops for for multi-parent clks */
|
||||||
|
|
Loading…
Reference in a new issue