diff mbox series

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

Message ID 5cbe596c.1c69fb81.e252.b9d0@mx.google.com
State New
Headers show
Series clk/clk-next boot bisection: v5.1-rc1-142-ga55b079c961b on panda | expand

Commit Message

kernelci.org bot April 23, 2019, 12:16 a.m. UTC
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* 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:

-------------------------------------------------------------------------------
commit ecbf3f1795fda56122632c1d024cfd0d3f4fe353
Author: Stephen Boyd <sboyd@kernel.org>
Date:   Fri Apr 12 11:31:50 2019 -0700

    clk: fixed-factor: Let clk framework find parent
    
    Convert this driver to a more modern way of specifying parents now that
    we have a way to specify clk parents by DT index. This lets us nicely
    avoid a problem where a parent clk name isn't know because the parent
    clk hasn't been registered yet.
    
    Cc: Miquel Raynal <miquel.raynal@bootlin.com>
    Cc: Jerome Brunet <jbrunet@baylibre.com>
    Cc: Russell King <linux@armlinux.org.uk>
    Cc: Michael Turquette <mturquette@baylibre.com>
    Cc: Jeffrey Hugo <jhugo@codeaurora.org>
    Cc: Chen-Yu Tsai <wens@csie.org>
    Tested-by: Jeffrey Hugo <jhugo@codeaurora.org>

    Signed-off-by: Stephen Boyd <sboyd@kernel.org>


-------------------------------------------------------------------------------


Git bisection log:

-------------------------------------------------------------------------------
git bisect start
# good: [21eb35a1ae4db08d32e2b5a8d9fe476c16056511] Merge commit 'tags/clk-fixes-for-linus^0' into clk-next
git bisect good 21eb35a1ae4db08d32e2b5a8d9fe476c16056511
# bad: [a55b079c961be4c94df8616583d0182b51b868a5] Merge branch 'clk-hisi' into clk-next
git bisect bad a55b079c961be4c94df8616583d0182b51b868a5
# good: [b6c3e3069dadab64103f62cbdf19e5f07c42cc04] Merge branch 'clk-samsung' into clk-next
git bisect good b6c3e3069dadab64103f62cbdf19e5f07c42cc04
# good: [3f644cdb2351fe21cded6ee1e5c13ea7905c3a64] Merge branch 'clk-zynq' into clk-next
git bisect good 3f644cdb2351fe21cded6ee1e5c13ea7905c3a64
# good: [dde4eff47c82c52a72af333d9e55370eee6d95d6] clk: Look for parents with clkdev based clk_lookups
git bisect good dde4eff47c82c52a72af333d9e55370eee6d95d6
# bad: [e04cb6e358cbcdce56cda317725131252ecf6ccd] Merge branch 'clk-parent-rewrite-1' into clk-next
git bisect bad e04cb6e358cbcdce56cda317725131252ecf6ccd
# bad: [ecbf3f1795fda56122632c1d024cfd0d3f4fe353] clk: fixed-factor: Let clk framework find parent
git bisect bad ecbf3f1795fda56122632c1d024cfd0d3f4fe353
# good: [601b6e93304a65f8f7c37168763ab9ba5b195ce5] clk: Allow parents to be specified via clkspec index
git bisect good 601b6e93304a65f8f7c37168763ab9ba5b195ce5
# first bad commit: [ecbf3f1795fda56122632c1d024cfd0d3f4fe353] clk: fixed-factor: Let clk framework find parent
-------------------------------------------------------------------------------

Comments

Stephen Boyd April 23, 2019, 1:06 a.m. UTC | #1
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;
Geert Uytterhoeven April 23, 2019, 11:54 a.m. UTC | #2
Hi Stephen,

On Tue, Apr 23, 2019 at 5:56 AM Stephen Boyd <sboyd@kernel.org> wrote:
> 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;


Thank you, this fixes the issue on r8a73a4/ape6evm, r8a7740/armadillo,
and sh73a0/kzm9g for me.

Fixes: ecbf3f1795fda561 ("clk: fixed-factor: Let clk framework find parent")
Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>


For reference, the crash log on r8a73a4/ape6evm with earlycon enabled is:

Unable to handle kernel paging request at virtual address 9d3cbbd0
pgd = (ptrval)
[9d3cbbd0] *pgd=00000000
Internal error: Oops: 5 [#1] SMP ARM
CPU: 0 PID: 0 Comm: swapper/0 Not tainted
5.1.0-rc6-ape6evm-05231-g1e7e3c938ac19d0f #92
Hardware name: Generic R8A73A4 (Flattened Device Tree)
PC is at strlen+0x4/0x24
LR is at kstrdup+0x18/0x4c
pc : [<c04f4d04>]    lr : [<c01269c4>]    psr: a00000d3
sp : c06cde80  ip : ef01e2c0  fp : c06cdee0
r10: c06d9408  r9 : 00000001  r8 : ef01e280
r7 : ef01e280  r6 : c02bc64c  r5 : 00000cc0  r4 : 9d3cbbd0
r3 : 9d3cbbd0  r2 : c0506000  r1 : 00000cc0  r0 : 9d3cbbd0
Flags: NzCv  IRQs off  FIQs off  Mode SVC_32  ISA ARM  Segment none
Control: 10c5387d  Table: 4000406a  DAC: 00000051
Process swapper/0 (pid: 0, stack limit = 0x(ptrval))
Stack: (0xc06cde80 to 0xc06ce000)
de80: ef021300 00000000 ef01e380 ef01e280 ef01e280 c02bc64c 600000d3 00000000
dea0: c0730db4 c014e1c4 ef000c00 ef01e380 c06d9408 ef01e380 00000000 ef7f2d54
dec0: ef7f2f58 ef01e680 00000001 c02bccdc ef01e380 c02bde58 00000001 00000000
dee0: 00000000 00000000 00000000 00000000 ef7f2f58 c0535838 c06d9408 c06cdee0
df00: c0730db4 60000001 00000020 9d3cbbd0 00000000 ef7f2d54 00000000 c06d9408
df20: c06d9408 00000001 ef01e688 c02bdff8 00000000 00000000 00000001 00000002
df40: ef7f2f58 00000002 00000001 9d3cbbd0 00000000 c06cdf6c ef01eb40 c0693db0
df60: 00000000 ef7f2d54 00000000 ef01e508 ef01e748 9d3cbbd0 00000007 00000000
df80: ef7e6f00 ffffffff c074ab40 c06d9400 c074ab40 00000001 c06b28e4 c0674488
dfa0: 00000000 c0671e78 ffffffff ffffffff 00000000 c067186c 00000000 c06d9408
dfc0: 00000000 c06b28e4 9d39bad0 00000000 00000000 c0671330 00000051 10c0387d
dfe0: 00000f44 40f00000 412fc0f3 10c5387d 00000000 00000000 00000000 00000000
[<c04f4d04>] (strlen) from [<c01269c4>] (kstrdup+0x18/0x4c)
[<c01269c4>] (kstrdup) from [<c02bc64c>] (__clk_register+0x150/0x6c0)
[<c02bc64c>] (__clk_register) from [<c02bccdc>] (of_clk_hw_register+0x14/0x20)
[<c02bccdc>] (of_clk_hw_register) from [<c02bde58>]
(__clk_hw_register_fixed_factor+0xfc/0x114)
[<c02bde58>] (__clk_hw_register_fixed_factor) from [<c02bdff8>]
(_of_fixed_factor_clk_setup+0xec/0x15c)
[<c02bdff8>] (_of_fixed_factor_clk_setup) from [<c0693db0>]
(of_clk_init+0x1b4/0x258)
[<c0693db0>] (of_clk_init) from [<c0674488>] (time_init+0x20/0x2c)
[<c0674488>] (time_init) from [<c0671e78>] (start_kernel+0x318/0x474)
[<c0671e78>] (start_kernel) from [<00000000>] (  (null))
Code: e12fff1e e1a0300c eafffff3 e1a03000 (e5d32000)
---[ end trace 8ec24e97351727c3 ]---

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
Tony Lindgren April 23, 2019, 2:40 p.m. UTC | #3
* Stephen Boyd <sboyd@kernel.org> [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@atomide.com>


> ----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;
Mark Brown April 25, 2019, 5:28 p.m. UTC | #4
On Tue, Apr 23, 2019 at 07:40:28AM -0700, Tony Lindgren wrote:

> Hmm do you guys have some index page of all the found "boot bisection"

> issues that I can check every morning while drinking coffee? :)


Sadly there's no web UI for this bit of the system.  The nearest would
be trying to find the reports on LKML but that is suboptimal.
Guillaume Tucker April 25, 2019, 5:44 p.m. UTC | #5
On 25/04/2019 18:28, Mark Brown wrote:
> On Tue, Apr 23, 2019 at 07:40:28AM -0700, Tony Lindgren wrote:

> 

>> Hmm do you guys have some index page of all the found "boot bisection"

>> issues that I can check every morning while drinking coffee? :)

> 

> Sadly there's no web UI for this bit of the system.  The nearest would

> be trying to find the reports on LKML but that is suboptimal.


Quite:

  https://www.google.co.uk/search?q=lkml.org+%22boot%20bisection%3A%22

Also there aren't that many bisections, maybe a couple per month.
I think we could cc the KernelCI reports mailing list, or maybe
have a new list, for people who want to receive all the bisection
reports.  There should be more as we keep adding trees and
especially when we start bisecting test suite results, not just
boots.

Guillaume
Mark Brown April 25, 2019, 6:17 p.m. UTC | #6
On Thu, Apr 25, 2019 at 06:44:16PM +0100, Guillaume Tucker wrote:

> Also there aren't that many bisections, maybe a couple per month.

> I think we could cc the KernelCI reports mailing list, or maybe

> have a new list, for people who want to receive all the bisection

> reports.  There should be more as we keep adding trees and

> especially when we start bisecting test suite results, not just

> boots.


This is the sort of thing that tends to go in phases as subsystems get
worked on IME - if something is getting disruptive work done on it you
can get a lot of issues for a while.  You'd also see a lot more reports
if all boards got reported.
Tony Lindgren April 25, 2019, 7:28 p.m. UTC | #7
Hi,

* Guillaume Tucker <guillaume.tucker@collabora.com> [190425 17:44]:
> On 25/04/2019 18:28, Mark Brown wrote:

> > On Tue, Apr 23, 2019 at 07:40:28AM -0700, Tony Lindgren wrote:

> > 

> >> Hmm do you guys have some index page of all the found "boot bisection"

> >> issues that I can check every morning while drinking coffee? :)

> > 

> > Sadly there's no web UI for this bit of the system.  The nearest would

> > be trying to find the reports on LKML but that is suboptimal.

> 

> Quite:

> 

>   https://www.google.co.uk/search?q=lkml.org+%22boot%20bisection%3A%22

> 

> Also there aren't that many bisections, maybe a couple per month.

> I think we could cc the KernelCI reports mailing list, or maybe

> have a new list, for people who want to receive all the bisection

> reports.  There should be more as we keep adding trees and

> especially when we start bisecting test suite results, not just

> boots.


OK well maybe still consider an automatically generated index page
of last few tens "boot bisection" links at some point.

Assuming LKML is always in Cc, and the "boot bisection" report
has the breaking patch inlined, it should show up also at
lore.kernel.org. So the next time around I have hard time
finding out if somebody already bisected something, I'll just
try:

https://lore.kernel.org/lkml/?q=%22boot+bisection%22

Regards,

Tony
diff mbox series

Patch

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;
 	init.num_parents = 1;
 
 	hw = &fix->hw;
-	ret = clk_hw_register(dev, hw);
+	if (dev)
+		ret = clk_hw_register(dev, hw);
+	else
+		ret = of_clk_hw_register(np, hw);
 	if (ret) {
 		kfree(fix);
 		hw = ERR_PTR(ret);
@@ -97,6 +105,14 @@  struct clk_hw *clk_hw_register_fixed_factor(struct device *dev,
 
 	return hw;
 }
+
+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)
+{
+	return __clk_hw_register_fixed_factor(dev, NULL, name, parent_name, -1,
+					      flags, mult, div);
+}
 EXPORT_SYMBOL_GPL(clk_hw_register_fixed_factor);
 
 struct clk *clk_register_fixed_factor(struct device *dev, const char *name,
@@ -143,11 +159,10 @@  static const struct of_device_id set_rate_parent_matches[] = {
 	{ /* Sentinel */ },
 };
 
-static struct clk *_of_fixed_factor_clk_setup(struct device_node *node)
+static struct clk_hw *_of_fixed_factor_clk_setup(struct device_node *node)
 {
-	struct clk *clk;
+	struct clk_hw *hw;
 	const char *clk_name = node->name;
-	const char *parent_name;
 	unsigned long flags = 0;
 	u32 div, mult;
 	int ret;
@@ -165,30 +180,28 @@  static struct clk *_of_fixed_factor_clk_setup(struct device_node *node)
 	}
 
 	of_property_read_string(node, "clock-output-names", &clk_name);
-	parent_name = of_clk_get_parent_name(node, 0);
 
 	if (of_match_node(set_rate_parent_matches, node))
 		flags |= CLK_SET_RATE_PARENT;
 
-	clk = clk_register_fixed_factor(NULL, clk_name, parent_name, flags,
-					mult, div);
-	if (IS_ERR(clk)) {
+	hw = __clk_hw_register_fixed_factor(NULL, node, clk_name, NULL, 0,
+					    flags, mult, div);
+	if (IS_ERR(hw)) {
 		/*
-		 * If parent clock is not registered, registration would fail.
 		 * Clear OF_POPULATED flag so that clock registration can be
 		 * attempted again from probe function.
 		 */
 		of_node_clear_flag(node, OF_POPULATED);
-		return clk;
+		return ERR_CAST(hw);
 	}
 
-	ret = of_clk_add_provider(node, of_clk_src_simple_get, clk);
+	ret = of_clk_add_hw_provider(node, of_clk_hw_simple_get, hw);
 	if (ret) {
-		clk_unregister(clk);
+		clk_hw_unregister_fixed_factor(hw);
 		return ERR_PTR(ret);
 	}
 
-	return clk;
+	return hw;
 }
 
 /**
@@ -203,17 +216,17 @@  CLK_OF_DECLARE(fixed_factor_clk, "fixed-factor-clock",
 
 static int of_fixed_factor_clk_remove(struct platform_device *pdev)
 {
-	struct clk *clk = platform_get_drvdata(pdev);
+	struct clk_hw *clk = platform_get_drvdata(pdev);
 
 	of_clk_del_provider(pdev->dev.of_node);
-	clk_unregister_fixed_factor(clk);
+	clk_hw_unregister_fixed_factor(clk);
 
 	return 0;
 }
 
 static int of_fixed_factor_clk_probe(struct platform_device *pdev)
 {
-	struct clk *clk;
+	struct clk_hw *clk;
 
 	/*
 	 * This function is not executed when of_fixed_factor_clk_setup