Am Mittwoch, 21. M?rz 2018, 03:39:20 CET schrieb Shawn Lin: > We can't restore every phase, for instance the invalid phase and > the phase for coming rate which is out of the scope of boards' > ability. And this patch also corrects the error path to return > invalid pointer to clk if clk_notifier_register failed introduced > by the same offending commit. > > Fixes: 60cf09e45fbc ("clk: rockchip: Restore the clock phase after the rate was changed") > Reported-by: wlq <wlq at rock-chips.com> > Signed-off-by: Shawn Lin <shawn.lin at rock-chips.com> > Tested-by: wlq <wlq at rock-chips.com> I've split off the part below [fix for error handling] into a separate patch and applied both patches for 4.17 Thanks Heiko > @@ -211,8 +223,10 @@ struct clk *rockchip_clk_register_mmc(const char *name, > mmc_clock->shift = shift; > > clk = clk_register(NULL, &mmc_clock->hw); > - if (IS_ERR(clk)) > + if (IS_ERR(clk)) { > + ret = PTR_ERR(clk); > goto err_register; > + } > > mmc_clock->clk_rate_change_nb.notifier_call = > &rockchip_mmc_clk_rate_notify; > @@ -225,5 +239,5 @@ struct clk *rockchip_clk_register_mmc(const char *name, > clk_unregister(clk); > err_register: > kfree(mmc_clock); > - return clk; > + return ERR_PTR(ret); > } >