Re: [PATCH] clk: Warn about critical clks that fail to enable

From: Guenter Roeck
Date: Mon Dec 30 2019 - 13:46:21 EST


On Mon, Dec 30, 2019 at 09:55:17AM -0800, Stephen Boyd wrote:
> Quoting Stephen Boyd (2019-12-26 14:13:54)
> > If we don't warn here users of the CLK_IS_CRITICAL flag may not know
> > that their clk isn't actually enabled because it silently fails to
> > enable. Let's drop a big WARN_ON in that case so developers find these
> > problems faster.
> >
> > Suggested-by: Jerome Brunet <jbrunet@xxxxxxxxxxxx>
> > Cc: Guenter Roeck <linux@xxxxxxxxxxxx>
> > Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxx>
> > ---
> >
> > I suspect that this may start warning for other users. Let's see
> > and revert in case it doesn't work.
> >
> > drivers/clk/clk.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
> > index 772258de2d1f..6a9a66dfdeaa 100644
> > --- a/drivers/clk/clk.c
> > +++ b/drivers/clk/clk.c
> > @@ -3427,13 +3427,13 @@ static int __clk_core_init(struct clk_core *core)
> > unsigned long flags;
> >
> > ret = clk_core_prepare(core);
> > - if (ret)
> > + if (WARN_ON(ret))
>
> We should probably just print the clk name that failed to be critically
> enabled with a pr_warn(). The traceback pointing to this location will
> be really hard to understand otherwise.
>
Agreed.

Guenter

> > goto out;
> >
> > flags = clk_enable_lock();
> > ret = clk_core_enable(core);
> > clk_enable_unlock(flags);
> > - if (ret) {
> > + if (WARN_ON(ret)) {
> > clk_core_unprepare(core);
> > goto out;
> > }
> >
> > base-commit: 12ead77432f2ce32dea797742316d15c5800cb32
> > --
> > Sent by a computer, using git, on the internet
> >