diff for duplicates of <1494582845.21207.3.camel@baylibre.com> diff --git a/a/1.txt b/N1/1.txt index 8fe85d4..574574c 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -10,8 +10,8 @@ On Sat, 2017-04-15 at 22:09 +0200, Michael Turquette wrote: > > > > Signed-off-by: Jerome Brunet <jbrunet@baylibre.com> > > --- -> > ?drivers/clk/clk.c | 38 ++++++++++++++++++++------------------ -> > ?1 file changed, 20 insertions(+), 18 deletions(-) +> > drivers/clk/clk.c | 38 ++++++++++++++++++++------------------ +> > 1 file changed, 20 insertions(+), 18 deletions(-) > > > > diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c > > index 67201f67a14a..e77f03a47da6 100644 @@ -30,62 +30,62 @@ Indeed, I should tidy up the naming regarding the "_lock" and "_no_lock" This applies to the rest of the patches. > -> > ????????if (!core) -> > ????????????????return 0; -> > ? -> > -???????/* prevent racing with updates to the clock topology */ -> > -???????clk_prepare_lock(); +> > if (!core) +> > return 0; +> > +> > - /* prevent racing with updates to the clock topology */ +> > - clk_prepare_lock(); > > - -> > ????????if (core->parent == parent) -> > -???????????????goto out; -> > +???????????????return 0; -> > ? -> > ????????/* verify ops for for multi-parent clks */ -> > -???????if ((core->num_parents > 1) && (!core->ops->set_parent)) { -> > -???????????????ret = -ENOSYS; -> > -???????????????goto out; -> > -???????} -> > +???????if ((core->num_parents > 1) && (!core->ops->set_parent)) -> > +???????????????return -ENOSYS; -> > ? -> > ????????/* check that we are allowed to re-parent if the clock is in use */ -> > -???????if ((core->flags & CLK_SET_PARENT_GATE) && core->prepare_count) { -> > -???????????????ret = -EBUSY; -> > -???????????????goto out; -> > -???????} -> > +???????if ((core->flags & CLK_SET_PARENT_GATE) && core->prepare_count) -> > +???????????????return -EBUSY; -> > ? -> > ????????/* try finding the new parent index */ -> > ????????if (parent) { +> > if (core->parent == parent) +> > - goto out; +> > + return 0; +> > +> > /* verify ops for for multi-parent clks */ +> > - if ((core->num_parents > 1) && (!core->ops->set_parent)) { +> > - ret = -ENOSYS; +> > - goto out; +> > - } +> > + if ((core->num_parents > 1) && (!core->ops->set_parent)) +> > + return -ENOSYS; +> > +> > /* check that we are allowed to re-parent if the clock is in use */ +> > - if ((core->flags & CLK_SET_PARENT_GATE) && core->prepare_count) { +> > - ret = -EBUSY; +> > - goto out; +> > - } +> > + if ((core->flags & CLK_SET_PARENT_GATE) && core->prepare_count) +> > + return -EBUSY; +> > +> > /* try finding the new parent index */ +> > if (parent) { > > @@ -1818,8 +1811,7 @@ static int clk_core_set_parent(struct clk_core *core, > > struct clk_core *parent) -> > ????????????????if (p_index < 0) { -> > ????????????????????????pr_debug("%s: clk %s can not be parent of clk %s\n", -> > ????????????????????????????????????????__func__, parent->name, core->name); -> > -???????????????????????ret = p_index; -> > -???????????????????????goto out; -> > +???????????????????????return p_index; -> > ????????????????} -> > ????????????????p_rate = parent->rate; -> > ????????} +> > if (p_index < 0) { +> > pr_debug("%s: clk %s can not be parent of clk %s\n", +> > __func__, parent->name, core->name); +> > - ret = p_index; +> > - goto out; +> > + return p_index; +> > } +> > p_rate = parent->rate; +> > } > > @@ -1829,7 +1821,7 @@ static int clk_core_set_parent(struct clk_core *core, > > struct clk_core *parent) -> > ? -> > ????????/* abort if a driver objects */ -> > ????????if (ret & NOTIFY_STOP_MASK) -> > -???????????????goto out; -> > +???????????????return ret; -> > ? -> > ????????/* do the re-parent */ -> > ????????ret = __clk_set_parent(core, parent, p_index); +> > +> > /* abort if a driver objects */ +> > if (ret & NOTIFY_STOP_MASK) +> > - goto out; +> > + return ret; +> > +> > /* do the re-parent */ +> > ret = __clk_set_parent(core, parent, p_index); > > @@ -1842,7 +1834,16 @@ static int clk_core_set_parent(struct clk_core *core, > > struct clk_core *parent) -> > ????????????????__clk_recalc_accuracies(core); -> > ????????} -> > ? +> > __clk_recalc_accuracies(core); +> > } +> > > > -out: -> > +???????return ret; +> > + return ret; > > I do not understand the benefit of the code churn above where gotos are > replaced with returns. This should be a few line patch but it is much @@ -105,26 +105,26 @@ Do you agree ? > > +} > > + > > +static int clk_core_set_parent_lock(struct clk_core *core, -> > +???????????????????????????????????struct clk_core *parent) +> > + struct clk_core *parent) > > +{ -> > +???????int ret; +> > + int ret; > > + -> > +???????clk_prepare_lock(); -> > +???????ret = clk_core_set_parent(core, parent); +> > + clk_prepare_lock(); +> > + ret = clk_core_set_parent(core, parent); > > Above line should be nolock. > -> > ????????clk_prepare_unlock(); -> > ? -> > ????????return ret; +> > clk_prepare_unlock(); +> > +> > return ret; > > @@ -1870,7 +1871,8 @@ int clk_set_parent(struct clk *clk, struct clk > > *parent) -> > ????????if (!clk) -> > ????????????????return 0; -> > ? -> > -???????return clk_core_set_parent(clk->core, parent ? parent->core : NULL); -> > +???????return clk_core_set_parent_lock(clk->core, -> > +???????????????????????????????????????parent ? parent->core : NULL); +> > if (!clk) +> > return 0; +> > +> > - return clk_core_set_parent(clk->core, parent ? parent->core : NULL); +> > + return clk_core_set_parent_lock(clk->core, +> > + parent ? parent->core : NULL); > > We can avoid this line by using the nolock pattern. > @@ -133,18 +133,18 @@ Do you agree ? > Regards, > Mike > -> > ?} -> > ?EXPORT_SYMBOL_GPL(clk_set_parent); -> > ? +> > } +> > EXPORT_SYMBOL_GPL(clk_set_parent); +> > > > @@ -2720,7 +2722,7 @@ void clk_unregister(struct clk *clk) -> > ????????????????/* Reparent all children to the orphan list. */ -> > ????????????????hlist_for_each_entry_safe(child, t, &clk->core->children, -> > ??????????????????????????????????????????child_node) -> > -???????????????????????clk_core_set_parent(child, NULL); -> > +???????????????????????clk_core_set_parent_lock(child, NULL); -> > ????????} -> > ? -> > ????????hlist_del_init(&clk->core->child_node); -> > --? +> > /* Reparent all children to the orphan list. */ +> > hlist_for_each_entry_safe(child, t, &clk->core->children, +> > child_node) +> > - clk_core_set_parent(child, NULL); +> > + clk_core_set_parent_lock(child, NULL); +> > } +> > +> > hlist_del_init(&clk->core->child_node); +> > -- > > 2.9.3 > > diff --git a/a/content_digest b/N1/content_digest index 862c05a..11cabdd 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,10 +1,14 @@ "ref\020170321183330.26722-1-jbrunet@baylibre.com\0" "ref\020170321183330.26722-2-jbrunet@baylibre.com\0" "ref\0149228696755.88277.11390638024881688991@resonance\0" - "From\0jbrunet@baylibre.com (Jerome Brunet)\0" - "Subject\0[RFC 1/7] clk: take the prepare lock out of clk_core_set_parent\0" + "From\0Jerome Brunet <jbrunet@baylibre.com>\0" + "Subject\0Re: [RFC 1/7] clk: take the prepare lock out of clk_core_set_parent\0" "Date\0Fri, 12 May 2017 11:54:05 +0200\0" - "To\0linus-amlogic@lists.infradead.org\0" + "To\0Michael Turquette <mturquette@baylibre.com>" + Stephen Boyd <sboyd@codeaurora.org> + " Kevin Hilman <khilman@baylibre.com>\0" + "Cc\0linux-clk@vger.kernel.org" + " linux-amlogic@lists.infradead.org\0" "\00:1\0" "b\0" "On Sat, 2017-04-15 at 22:09 +0200, Michael Turquette wrote:\n" @@ -19,8 +23,8 @@ "> > \n" "> > Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>\n" "> > ---\n" - "> > ?drivers/clk/clk.c | 38 ++++++++++++++++++++------------------\n" - "> > ?1 file changed, 20 insertions(+), 18 deletions(-)\n" + "> > \302\240drivers/clk/clk.c | 38 ++++++++++++++++++++------------------\n" + "> > \302\2401 file changed, 20 insertions(+), 18 deletions(-)\n" "> > \n" "> > diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c\n" "> > index 67201f67a14a..e77f03a47da6 100644\n" @@ -39,62 +43,62 @@ "This applies to the rest of the patches.\n" "\n" "> \n" - "> > ????????if (!core)\n" - "> > ????????????????return 0;\n" - "> > ?\n" - "> > -???????/* prevent racing with updates to the clock topology */\n" - "> > -???????clk_prepare_lock();\n" + "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (!core)\n" + "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return 0;\n" + "> > \302\240\n" + "> > -\302\240\302\240\302\240\302\240\302\240\302\240\302\240/* prevent racing with updates to the clock topology */\n" + "> > -\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_prepare_lock();\n" "> > -\n" - "> > ????????if (core->parent == parent)\n" - "> > -???????????????goto out;\n" - "> > +???????????????return 0;\n" - "> > ?\n" - "> > ????????/* verify ops for for multi-parent clks */\n" - "> > -???????if ((core->num_parents > 1) && (!core->ops->set_parent)) {\n" - "> > -???????????????ret = -ENOSYS;\n" - "> > -???????????????goto out;\n" - "> > -???????}\n" - "> > +???????if ((core->num_parents > 1) && (!core->ops->set_parent))\n" - "> > +???????????????return -ENOSYS;\n" - "> > ?\n" - "> > ????????/* check that we are allowed to re-parent if the clock is in use */\n" - "> > -???????if ((core->flags & CLK_SET_PARENT_GATE) && core->prepare_count) {\n" - "> > -???????????????ret = -EBUSY;\n" - "> > -???????????????goto out;\n" - "> > -???????}\n" - "> > +???????if ((core->flags & CLK_SET_PARENT_GATE) && core->prepare_count)\n" - "> > +???????????????return -EBUSY;\n" - "> > ?\n" - "> > ????????/* try finding the new parent index */\n" - "> > ????????if (parent) {\n" + "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (core->parent == parent)\n" + "> > -\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240goto out;\n" + "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return 0;\n" + "> > \302\240\n" + "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240/* verify ops for for multi-parent clks */\n" + "> > -\302\240\302\240\302\240\302\240\302\240\302\240\302\240if ((core->num_parents > 1) && (!core->ops->set_parent)) {\n" + "> > -\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240ret = -ENOSYS;\n" + "> > -\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240goto out;\n" + "> > -\302\240\302\240\302\240\302\240\302\240\302\240\302\240}\n" + "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240if ((core->num_parents > 1) && (!core->ops->set_parent))\n" + "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return -ENOSYS;\n" + "> > \302\240\n" + "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240/* check that we are allowed to re-parent if the clock is in use */\n" + "> > -\302\240\302\240\302\240\302\240\302\240\302\240\302\240if ((core->flags & CLK_SET_PARENT_GATE) && core->prepare_count) {\n" + "> > -\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240ret = -EBUSY;\n" + "> > -\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240goto out;\n" + "> > -\302\240\302\240\302\240\302\240\302\240\302\240\302\240}\n" + "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240if ((core->flags & CLK_SET_PARENT_GATE) && core->prepare_count)\n" + "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return -EBUSY;\n" + "> > \302\240\n" + "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240/* try finding the new parent index */\n" + "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (parent) {\n" "> > @@ -1818,8 +1811,7 @@ static int clk_core_set_parent(struct clk_core *core,\n" "> > struct clk_core *parent)\n" - "> > ????????????????if (p_index < 0) {\n" - "> > ????????????????????????pr_debug(\"%s: clk %s can not be parent of clk %s\\n\",\n" - "> > ????????????????????????????????????????__func__, parent->name, core->name);\n" - "> > -???????????????????????ret = p_index;\n" - "> > -???????????????????????goto out;\n" - "> > +???????????????????????return p_index;\n" - "> > ????????????????}\n" - "> > ????????????????p_rate = parent->rate;\n" - "> > ????????}\n" + "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (p_index < 0) {\n" + "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240pr_debug(\"%s: clk %s can not be parent of clk %s\\n\",\n" + "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240__func__, parent->name, core->name);\n" + "> > -\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240ret = p_index;\n" + "> > -\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240goto out;\n" + "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return p_index;\n" + "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240}\n" + "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240p_rate = parent->rate;\n" + "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240}\n" "> > @@ -1829,7 +1821,7 @@ static int clk_core_set_parent(struct clk_core *core,\n" "> > struct clk_core *parent)\n" - "> > ?\n" - "> > ????????/* abort if a driver objects */\n" - "> > ????????if (ret & NOTIFY_STOP_MASK)\n" - "> > -???????????????goto out;\n" - "> > +???????????????return ret;\n" - "> > ?\n" - "> > ????????/* do the re-parent */\n" - "> > ????????ret = __clk_set_parent(core, parent, p_index);\n" + "> > \302\240\n" + "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240/* abort if a driver objects */\n" + "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (ret & NOTIFY_STOP_MASK)\n" + "> > -\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240goto out;\n" + "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return ret;\n" + "> > \302\240\n" + "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240/* do the re-parent */\n" + "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240ret = __clk_set_parent(core, parent, p_index);\n" "> > @@ -1842,7 +1834,16 @@ static int clk_core_set_parent(struct clk_core *core,\n" "> > struct clk_core *parent)\n" - "> > ????????????????__clk_recalc_accuracies(core);\n" - "> > ????????}\n" - "> > ?\n" + "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240__clk_recalc_accuracies(core);\n" + "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240}\n" + "> > \302\240\n" "> > -out:\n" - "> > +???????return ret;\n" + "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240return ret;\n" "> \n" "> I do not understand the benefit of the code churn above where gotos are\n" "> replaced with returns. This should be a few line patch but it is much\n" @@ -114,26 +118,26 @@ "> > +}\n" "> > +\n" "> > +static int clk_core_set_parent_lock(struct clk_core *core,\n" - "> > +???????????????????????????????????struct clk_core *parent)\n" + "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240struct clk_core *parent)\n" "> > +{\n" - "> > +???????int ret;\n" + "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240int ret;\n" "> > +\n" - "> > +???????clk_prepare_lock();\n" - "> > +???????ret = clk_core_set_parent(core, parent);\n" + "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_prepare_lock();\n" + "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240ret = clk_core_set_parent(core, parent);\n" "> \n" "> Above line should be nolock.\n" "> \n" - "> > ????????clk_prepare_unlock();\n" - "> > ?\n" - "> > ????????return ret;\n" + "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_prepare_unlock();\n" + "> > \302\240\n" + "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return ret;\n" "> > @@ -1870,7 +1871,8 @@ int clk_set_parent(struct clk *clk, struct clk\n" "> > *parent)\n" - "> > ????????if (!clk)\n" - "> > ????????????????return 0;\n" - "> > ?\n" - "> > -???????return clk_core_set_parent(clk->core, parent ? parent->core : NULL);\n" - "> > +???????return clk_core_set_parent_lock(clk->core,\n" - "> > +???????????????????????????????????????parent ? parent->core : NULL);\n" + "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (!clk)\n" + "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return 0;\n" + "> > \302\240\n" + "> > -\302\240\302\240\302\240\302\240\302\240\302\240\302\240return clk_core_set_parent(clk->core, parent ? parent->core : NULL);\n" + "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240return clk_core_set_parent_lock(clk->core,\n" + "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240parent ? parent->core : NULL);\n" "> \n" "> We can avoid this line by using the nolock pattern.\n" "> \n" @@ -142,20 +146,20 @@ "> Regards,\n" "> Mike\n" "> \n" - "> > ?}\n" - "> > ?EXPORT_SYMBOL_GPL(clk_set_parent);\n" - "> > ?\n" + "> > \302\240}\n" + "> > \302\240EXPORT_SYMBOL_GPL(clk_set_parent);\n" + "> > \302\240\n" "> > @@ -2720,7 +2722,7 @@ void clk_unregister(struct clk *clk)\n" - "> > ????????????????/* Reparent all children to the orphan list. */\n" - "> > ????????????????hlist_for_each_entry_safe(child, t, &clk->core->children,\n" - "> > ??????????????????????????????????????????child_node)\n" - "> > -???????????????????????clk_core_set_parent(child, NULL);\n" - "> > +???????????????????????clk_core_set_parent_lock(child, NULL);\n" - "> > ????????}\n" - "> > ?\n" - "> > ????????hlist_del_init(&clk->core->child_node);\n" - "> > --?\n" + "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240/* Reparent all children to the orphan list. */\n" + "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240hlist_for_each_entry_safe(child, t, &clk->core->children,\n" + "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240child_node)\n" + "> > -\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_core_set_parent(child, NULL);\n" + "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_core_set_parent_lock(child, NULL);\n" + "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240}\n" + "> > \302\240\n" + "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240hlist_del_init(&clk->core->child_node);\n" + "> > --\302\240\n" "> > 2.9.3\n" > > -821d948ba76ca17be8bbf0fd92a873ca862f82809c27c5afd1f8ee96509127e0 +943bf70a1add3d8f468addba1547630ab2fb34bd4339ad68603e6db55ca6d903
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.