Re: clk/clk-next boot bisection: v5.1-rc1-142-ga55b079c961b on panda

From: Tony Lindgren
Date: Tue Apr 23 2019 - 10:40:40 EST


* Stephen Boyd <sboyd@xxxxxxxxxx> [691231 23:00]:
> Quoting kernelci.org bot (2019-04-22 17:16:44)
> > * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
> > * This automated bisection report was sent to you on the basis *
> > * that you may be involved with the breaking commit it has *
> > * found. No manual investigation has been done to verify it, *
> > * and the root cause of the problem may be somewhere else. *
> > * Hope this helps! *
> > * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
> >
> > clk/clk-next boot bisection: v5.1-rc1-142-ga55b079c961b on panda
> >
> > Summary:
> > Start: a55b079c961b Merge branch 'clk-hisi' into clk-next
> > Details: https://kernelci.org/boot/id/5cbe3cdb59b514fd22fe6025
> > Plain log: https://storage.kernelci.org//clk/clk-next/v5.1-rc1-142-ga55b079c961b/arm/omap2plus_defconfig/gcc-7/lab-baylibre/boot-omap4-panda.txt
> > HTML log: https://storage.kernelci.org//clk/clk-next/v5.1-rc1-142-ga55b079c961b/arm/omap2plus_defconfig/gcc-7/lab-baylibre/boot-omap4-panda.html
> > Result: ecbf3f1795fd clk: fixed-factor: Let clk framework find parent
> >
> > Checks:
> > revert: PASS
> > verify: PASS
> >
> > Parameters:
> > Tree: clk
> > URL: https://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git
> > Branch: clk-next
> > Target: panda
> > CPU arch: arm
> > Lab: lab-baylibre
> > Compiler: gcc-7
> > Config: omap2plus_defconfig
> > Test suite: boot
> >
> > Breaking commit found:
>
> Awesome! I LOVE IT!!!

This is great, thanks a lot!

Hmm do you guys have some index page of all the found "boot bisection"
issues that I can check every morning while drinking coffee? :)

> > diff --git a/drivers/clk/clk-fixed-factor.c b/drivers/clk/clk-fixed-factor.c
> > index 241b3f8c61a9..5b09f2cdb7de 100644
> > --- a/drivers/clk/clk-fixed-factor.c
> > +++ b/drivers/clk/clk-fixed-factor.c
> > @@ -64,12 +64,14 @@ const struct clk_ops clk_fixed_factor_ops = {
> > };
> > EXPORT_SYMBOL_GPL(clk_fixed_factor_ops);
> >
> > -struct clk_hw *clk_hw_register_fixed_factor(struct device *dev,
> > - const char *name, const char *parent_name, unsigned long flags,
> > - unsigned int mult, unsigned int div)
> > +static struct clk_hw *
> > +__clk_hw_register_fixed_factor(struct device *dev, struct device_node *np,
> > + const char *name, const char *parent_name, int index,
> > + unsigned long flags, unsigned int mult, unsigned int div)
> > {
> > struct clk_fixed_factor *fix;
> > struct clk_init_data init;
> > + struct clk_parent_data pdata = { .index = index };
> > struct clk_hw *hw;
> > int ret;
> >
> > @@ -85,11 +87,17 @@ struct clk_hw *clk_hw_register_fixed_factor(struct device *dev,
> > init.name = name;
> > init.ops = &clk_fixed_factor_ops;
> > init.flags = flags | CLK_IS_BASIC;
> > - init.parent_names = &parent_name;
> > + if (parent_name)
> > + init.parent_names = &parent_name;
> > + else
> > + init.parent_data = &pdata;
>
> Ick. I realized that 'init.parent_names' here can be full of junk! Let's
> initialize it properly. Maybe that makes this all better?

Tested-by: Tony Lindgren <tony@xxxxxxxxxxx>

> ----8<----
> diff --git a/drivers/clk/clk-fixed-factor.c b/drivers/clk/clk-fixed-factor.c
> index 5b09f2cdb7de..2d988a7585d5 100644
> --- a/drivers/clk/clk-fixed-factor.c
> +++ b/drivers/clk/clk-fixed-factor.c
> @@ -70,7 +70,7 @@ __clk_hw_register_fixed_factor(struct device *dev, struct device_node *np,
> unsigned long flags, unsigned int mult, unsigned int div)
> {
> struct clk_fixed_factor *fix;
> - struct clk_init_data init;
> + struct clk_init_data init = { };
> struct clk_parent_data pdata = { .index = index };
> struct clk_hw *hw;
> int ret;