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!!!

> 
> 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?

----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;

Reply via email to