* [PATCH 0/3] clk: remove dead code allocations of parent lookup tables
@ 2016-01-07 3:16 Vladimir Zapolskiy
2016-01-07 3:16 ` [PATCH 1/3] clk: don't fetch parent index for non multi-parent clocks Vladimir Zapolskiy
` (3 more replies)
0 siblings, 4 replies; 9+ messages in thread
From: Vladimir Zapolskiy @ 2016-01-07 3:16 UTC (permalink / raw)
To: Michael Turquette, Stephen Boyd; +Cc: linux-clk
The change simplifies core operations over multi-parent clocks (clock
registration, clk_set_parent() and clk_get_parent() internals) by
rejecting a possibilty to skip failed memory allocation during clock
registration time and falling back to it on the next [gs]et_parent.
No functional change is intended.
Vladimir Zapolskiy (3):
clk: don't fetch parent index for non multi-parent clocks
clk: simplify array allocation of clock parents for lookup
clk: remove redundant clock parents lookup table allocations
drivers/clk/clk.c | 49 +++++++++++++++++++------------------------------
1 file changed, 19 insertions(+), 30 deletions(-)
--
2.5.0
^ permalink raw reply [flat|nested] 9+ messages in thread* [PATCH 1/3] clk: don't fetch parent index for non multi-parent clocks 2016-01-07 3:16 [PATCH 0/3] clk: remove dead code allocations of parent lookup tables Vladimir Zapolskiy @ 2016-01-07 3:16 ` Vladimir Zapolskiy 2016-01-07 3:16 ` [PATCH 2/3] clk: simplify array allocation of clock parents for lookup Vladimir Zapolskiy ` (2 subsequent siblings) 3 siblings, 0 replies; 9+ messages in thread From: Vladimir Zapolskiy @ 2016-01-07 3:16 UTC (permalink / raw) To: Michael Turquette, Stephen Boyd; +Cc: linux-clk If clk_set_parent(clk, parent) is called when 'clk' is a root clock or 'clk' has a single parent different from 'parent' clock, a vain attempt to find 'parent' index is still performed, which causes either an allocation of 0-byte size lookup array or never used sizeof(struct clk*) array. Like in case of invalid clk_set_parent() of a multi-parent clock, return -EINVAL in the cases described above without trying to allocate a lookup table. Signed-off-by: Vladimir Zapolskiy <vz@mleia.com> --- drivers/clk/clk.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index b4db67a..129ac0a 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -1794,8 +1794,13 @@ static int clk_core_set_parent(struct clk_core *core, struct clk_core *parent) if (core->parent == parent) goto out; + if (core->num_parents <= 1) { + ret = -EINVAL; + goto out; + } + /* verify ops for for multi-parent clks */ - if ((core->num_parents > 1) && (!core->ops->set_parent)) { + if (!core->ops->set_parent) { ret = -ENOSYS; goto out; } -- 2.1.4 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/3] clk: simplify array allocation of clock parents for lookup 2016-01-07 3:16 [PATCH 0/3] clk: remove dead code allocations of parent lookup tables Vladimir Zapolskiy 2016-01-07 3:16 ` [PATCH 1/3] clk: don't fetch parent index for non multi-parent clocks Vladimir Zapolskiy @ 2016-01-07 3:16 ` Vladimir Zapolskiy 2016-01-07 3:16 ` [PATCH 3/3] clk: remove redundant clock parents lookup table allocations Vladimir Zapolskiy 2016-01-08 0:33 ` [PATCH 0/3] clk: remove dead code allocations of parent lookup tables Vladimir Zapolskiy 3 siblings, 0 replies; 9+ messages in thread From: Vladimir Zapolskiy @ 2016-01-07 3:16 UTC (permalink / raw) To: Michael Turquette, Stephen Boyd; +Cc: linux-clk The change intends to centralize allocation of clock's clk_core parents array on clock registration, originally is done from multiple places: * __clk_init() * __clk_init_parent() * clk_fetch_parent_index() The original approach historically was needed, but at the moment all assumptions supporting it are wrong: 1) GFP_KERNEL heap is available at the time of a clock registration, for example it is used to dynamically allocate struct clk_core, clock name and clock parent names, if allocation fails, return -ENOMEM as usual instead of repeating attempts to allocate the array in future, 2) due to the layering scheme clk_core parents can not be defined statically by the drivers, instead the drivers provide string arrays of clock parent names and clock parents for a lookup array are always obtained from that data. To ensure that there is no need to check for allocated status of the parent lookup table and/or allocate the table from other places within the common clock framework, don't register a clock, if there is no enough memory. Signed-off-by: Vladimir Zapolskiy <vz@mleia.com> --- drivers/clk/clk.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index 129ac0a..2fb0dae 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -2371,27 +2371,25 @@ static int __clk_init(struct device *dev, struct clk *clk_user) /* * Allocate an array of struct clk *'s to avoid unnecessary string - * look-ups of clk's possible parents. This can fail for clocks passed - * in to clk_init during early boot; thus any access to core->parents[] - * must always check for a NULL pointer and try to populate it if - * necessary. - * - * If core->parents is not NULL we skip this entire block. This allows - * for clock drivers to statically initialize core->parents. + * look-ups of clk's possible parents. */ - if (core->num_parents > 1 && !core->parents) { + if (core->num_parents > 1) { core->parents = kcalloc(core->num_parents, sizeof(struct clk *), GFP_KERNEL); + if (!core->parents) { + ret = -ENOMEM; + goto out; + } + /* * clk_core_lookup returns NULL for parents that have not been * clk_init'd; thus any access to clk->parents[] must check * for a NULL pointer. We can always perform lazy lookups for * missing parents later on. */ - if (core->parents) - for (i = 0; i < core->num_parents; i++) - core->parents[i] = - clk_core_lookup(core->parent_names[i]); + for (i = 0; i < core->num_parents; i++) + core->parents[i] = + clk_core_lookup(core->parent_names[i]); } core->parent = __clk_init_parent(core); -- 2.1.4 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 3/3] clk: remove redundant clock parents lookup table allocations 2016-01-07 3:16 [PATCH 0/3] clk: remove dead code allocations of parent lookup tables Vladimir Zapolskiy 2016-01-07 3:16 ` [PATCH 1/3] clk: don't fetch parent index for non multi-parent clocks Vladimir Zapolskiy 2016-01-07 3:16 ` [PATCH 2/3] clk: simplify array allocation of clock parents for lookup Vladimir Zapolskiy @ 2016-01-07 3:16 ` Vladimir Zapolskiy 2016-01-07 9:00 ` Masahiro Yamada 2016-01-08 0:33 ` [PATCH 0/3] clk: remove dead code allocations of parent lookup tables Vladimir Zapolskiy 3 siblings, 1 reply; 9+ messages in thread From: Vladimir Zapolskiy @ 2016-01-07 3:16 UTC (permalink / raw) To: Michael Turquette, Stephen Boyd; +Cc: linux-clk Since clock parents lookup table for clocks with multiple parent clocks is always allocated during clock registration, remove similar allocations from __clk_init_parent() and clk_fetch_parent_index(). The change also corrects a pointer type of a single lookup table entry on calculation of the lookup table size. Signed-off-by: Vladimir Zapolskiy <vz@mleia.com> --- drivers/clk/clk.c | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index 2fb0dae..f8872f9 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -1067,13 +1067,6 @@ static int clk_fetch_parent_index(struct clk_core *core, { int i; - if (!core->parents) { - core->parents = kcalloc(core->num_parents, - sizeof(struct clk *), GFP_KERNEL); - if (!core->parents) - return -ENOMEM; - } - /* * find index of new parent clock using cached parent ptrs, * or if not yet cached, use string name comparison and cache @@ -1711,18 +1704,11 @@ static struct clk_core *__clk_init_parent(struct clk_core *core) } /* - * Do our best to cache parent clocks in core->parents. This prevents - * unnecessary and expensive lookups. We don't set core->parent here; - * that is done by the calling function. + * We don't set core->parent here; that is done by the calling function. */ index = core->ops->get_parent(core->hw); - if (!core->parents) - core->parents = - kcalloc(core->num_parents, sizeof(struct clk *), - GFP_KERNEL); - ret = clk_core_get_parent_by_index(core, index); out: @@ -2374,8 +2360,8 @@ static int __clk_init(struct device *dev, struct clk *clk_user) * look-ups of clk's possible parents. */ if (core->num_parents > 1) { - core->parents = kcalloc(core->num_parents, sizeof(struct clk *), - GFP_KERNEL); + core->parents = kcalloc(core->num_parents, + sizeof(struct clk_core *), GFP_KERNEL); if (!core->parents) { ret = -ENOMEM; goto out; -- 2.1.4 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 3/3] clk: remove redundant clock parents lookup table allocations 2016-01-07 3:16 ` [PATCH 3/3] clk: remove redundant clock parents lookup table allocations Vladimir Zapolskiy @ 2016-01-07 9:00 ` Masahiro Yamada 2016-01-07 10:44 ` Vladimir Zapolskiy 0 siblings, 1 reply; 9+ messages in thread From: Masahiro Yamada @ 2016-01-07 9:00 UTC (permalink / raw) To: Vladimir Zapolskiy; +Cc: Michael Turquette, Stephen Boyd, linux-clk Hi Vladimir, 2016-01-07 12:16 GMT+09:00 Vladimir Zapolskiy <vz@mleia.com>: > Since clock parents lookup table for clocks with multiple parent > clocks is always allocated during clock registration, remove similar > allocations from __clk_init_parent() and clk_fetch_parent_index(). > > The change also corrects a pointer type of a single lookup table > entry on calculation of the lookup table size. > > Signed-off-by: Vladimir Zapolskiy <vz@mleia.com> > --- > drivers/clk/clk.c | 20 +++----------------- > 1 file changed, 3 insertions(+), 17 deletions(-) > > diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c > index 2fb0dae..f8872f9 100644 > --- a/drivers/clk/clk.c > +++ b/drivers/clk/clk.c > @@ -1067,13 +1067,6 @@ static int clk_fetch_parent_index(struct clk_core *core, > { > int i; > > - if (!core->parents) { > - core->parents = kcalloc(core->num_parents, > - sizeof(struct clk *), GFP_KERNEL); > - if (!core->parents) > - return -ENOMEM; > - } > - > /* > * find index of new parent clock using cached parent ptrs, > * or if not yet cached, use string name comparison and cache > @@ -1711,18 +1704,11 @@ static struct clk_core *__clk_init_parent(struct clk_core *core) > } > > /* > - * Do our best to cache parent clocks in core->parents. This prevents > - * unnecessary and expensive lookups. We don't set core->parent here; > - * that is done by the calling function. > + * We don't set core->parent here; that is done by the calling function. > */ > > index = core->ops->get_parent(core->hw); > > - if (!core->parents) > - core->parents = > - kcalloc(core->num_parents, sizeof(struct clk *), > - GFP_KERNEL); > - > ret = clk_core_get_parent_by_index(core, index); > > out: > @@ -2374,8 +2360,8 @@ static int __clk_init(struct device *dev, struct clk *clk_user) > * look-ups of clk's possible parents. > */ > if (core->num_parents > 1) { > - core->parents = kcalloc(core->num_parents, sizeof(struct clk *), > - GFP_KERNEL); > + core->parents = kcalloc(core->num_parents, > + sizeof(struct clk_core *), GFP_KERNEL); > if (!core->parents) { > ret = -ENOMEM; > goto out; You are doing the similar thing as mine. See https://patchwork.kernel.org/patch/7925571/ This series gives a big conflict with my clean-up series, which Michael said he would apply after v4.5-rc1. See http://www.serverphorums.com/read.php?12,1376630 -- Best Regards Masahiro Yamada ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 3/3] clk: remove redundant clock parents lookup table allocations 2016-01-07 9:00 ` Masahiro Yamada @ 2016-01-07 10:44 ` Vladimir Zapolskiy 2016-01-07 11:33 ` Masahiro Yamada 0 siblings, 1 reply; 9+ messages in thread From: Vladimir Zapolskiy @ 2016-01-07 10:44 UTC (permalink / raw) To: Masahiro Yamada; +Cc: Michael Turquette, Stephen Boyd, linux-clk Hi Masahiro, On 07.01.2016 11:00, Masahiro Yamada wrote: > Hi Vladimir, > > > 2016-01-07 12:16 GMT+09:00 Vladimir Zapolskiy <vz@mleia.com>: >> Since clock parents lookup table for clocks with multiple parent >> clocks is always allocated during clock registration, remove similar >> allocations from __clk_init_parent() and clk_fetch_parent_index(). >> >> The change also corrects a pointer type of a single lookup table >> entry on calculation of the lookup table size. >> >> Signed-off-by: Vladimir Zapolskiy <vz@mleia.com> >> --- >> drivers/clk/clk.c | 20 +++----------------- >> 1 file changed, 3 insertions(+), 17 deletions(-) >> >> diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c >> index 2fb0dae..f8872f9 100644 >> --- a/drivers/clk/clk.c >> +++ b/drivers/clk/clk.c >> @@ -1067,13 +1067,6 @@ static int clk_fetch_parent_index(struct clk_core *core, >> { >> int i; >> >> - if (!core->parents) { >> - core->parents = kcalloc(core->num_parents, >> - sizeof(struct clk *), GFP_KERNEL); >> - if (!core->parents) >> - return -ENOMEM; >> - } >> - >> /* >> * find index of new parent clock using cached parent ptrs, >> * or if not yet cached, use string name comparison and cache >> @@ -1711,18 +1704,11 @@ static struct clk_core *__clk_init_parent(struct clk_core *core) >> } >> >> /* >> - * Do our best to cache parent clocks in core->parents. This prevents >> - * unnecessary and expensive lookups. We don't set core->parent here; >> - * that is done by the calling function. >> + * We don't set core->parent here; that is done by the calling function. >> */ >> >> index = core->ops->get_parent(core->hw); >> >> - if (!core->parents) >> - core->parents = >> - kcalloc(core->num_parents, sizeof(struct clk *), >> - GFP_KERNEL); >> - >> ret = clk_core_get_parent_by_index(core, index); >> >> out: >> @@ -2374,8 +2360,8 @@ static int __clk_init(struct device *dev, struct clk *clk_user) >> * look-ups of clk's possible parents. >> */ >> if (core->num_parents > 1) { >> - core->parents = kcalloc(core->num_parents, sizeof(struct clk *), >> - GFP_KERNEL); >> + core->parents = kcalloc(core->num_parents, >> + sizeof(struct clk_core *), GFP_KERNEL); >> if (!core->parents) { >> ret = -ENOMEM; >> goto out; > > > You are doing the similar thing as mine. > > See > https://patchwork.kernel.org/patch/7925571/ Ok, I was not aware of your work, unfortunately. > > This series gives a big conflict with my clean-up series, > which Michael said he would apply after v4.5-rc1. > > See > http://www.serverphorums.com/read.php?12,1376630 > > No problem, of course your work goes first. Obviously I have to review your changes more carefully, but do you have something similar to my 1/3? If no, then it is a regression. --- With best wishes, Vladimir ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 3/3] clk: remove redundant clock parents lookup table allocations 2016-01-07 10:44 ` Vladimir Zapolskiy @ 2016-01-07 11:33 ` Masahiro Yamada 2016-01-07 13:45 ` Vladimir Zapolskiy 0 siblings, 1 reply; 9+ messages in thread From: Masahiro Yamada @ 2016-01-07 11:33 UTC (permalink / raw) To: Vladimir Zapolskiy; +Cc: Michael Turquette, Stephen Boyd, linux-clk Hi Vladimir, 2016-01-07 19:44 GMT+09:00 Vladimir Zapolskiy <vz@mleia.com>: > Hi Masahiro, > > On 07.01.2016 11:00, Masahiro Yamada wrote: >> Hi Vladimir, >> >> >> 2016-01-07 12:16 GMT+09:00 Vladimir Zapolskiy <vz@mleia.com>: >>> Since clock parents lookup table for clocks with multiple parent >>> clocks is always allocated during clock registration, remove similar >>> allocations from __clk_init_parent() and clk_fetch_parent_index(). >>> >>> The change also corrects a pointer type of a single lookup table >>> entry on calculation of the lookup table size. >>> >>> Signed-off-by: Vladimir Zapolskiy <vz@mleia.com> >>> --- >>> drivers/clk/clk.c | 20 +++----------------- >>> 1 file changed, 3 insertions(+), 17 deletions(-) >>> >>> diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c >>> index 2fb0dae..f8872f9 100644 >>> --- a/drivers/clk/clk.c >>> +++ b/drivers/clk/clk.c >>> @@ -1067,13 +1067,6 @@ static int clk_fetch_parent_index(struct clk_core *core, >>> { >>> int i; >>> >>> - if (!core->parents) { >>> - core->parents = kcalloc(core->num_parents, >>> - sizeof(struct clk *), GFP_KERNEL); >>> - if (!core->parents) >>> - return -ENOMEM; >>> - } >>> - >>> /* >>> * find index of new parent clock using cached parent ptrs, >>> * or if not yet cached, use string name comparison and cache >>> @@ -1711,18 +1704,11 @@ static struct clk_core *__clk_init_parent(struct clk_core *core) >>> } >>> >>> /* >>> - * Do our best to cache parent clocks in core->parents. This prevents >>> - * unnecessary and expensive lookups. We don't set core->parent here; >>> - * that is done by the calling function. >>> + * We don't set core->parent here; that is done by the calling function. >>> */ >>> >>> index = core->ops->get_parent(core->hw); >>> >>> - if (!core->parents) >>> - core->parents = >>> - kcalloc(core->num_parents, sizeof(struct clk *), >>> - GFP_KERNEL); >>> - >>> ret = clk_core_get_parent_by_index(core, index); >>> >>> out: >>> @@ -2374,8 +2360,8 @@ static int __clk_init(struct device *dev, struct clk *clk_user) >>> * look-ups of clk's possible parents. >>> */ >>> if (core->num_parents > 1) { >>> - core->parents = kcalloc(core->num_parents, sizeof(struct clk *), >>> - GFP_KERNEL); >>> + core->parents = kcalloc(core->num_parents, >>> + sizeof(struct clk_core *), GFP_KERNEL); >>> if (!core->parents) { >>> ret = -ENOMEM; >>> goto out; >> >> >> You are doing the similar thing as mine. >> >> See >> https://patchwork.kernel.org/patch/7925571/ > > Ok, I was not aware of your work, unfortunately. > >> >> This series gives a big conflict with my clean-up series, >> which Michael said he would apply after v4.5-rc1. >> >> See >> http://www.serverphorums.com/read.php?12,1376630 >> >> > > No problem, of course your work goes first. > > Obviously I have to review your changes more carefully, but do you > have something similar to my 1/3? If no, then it is a regression. No. I solved the problem in a different way. https://patchwork.kernel.org/patch/7925571/ In my way, core->parents is always allocated. 1/3 is not needed. If I am wrong, please point out. -- Best Regards Masahiro Yamada ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 3/3] clk: remove redundant clock parents lookup table allocations 2016-01-07 11:33 ` Masahiro Yamada @ 2016-01-07 13:45 ` Vladimir Zapolskiy 0 siblings, 0 replies; 9+ messages in thread From: Vladimir Zapolskiy @ 2016-01-07 13:45 UTC (permalink / raw) To: Masahiro Yamada; +Cc: Michael Turquette, Stephen Boyd, linux-clk Hi Masahiro, On 07.01.2016 13:33, Masahiro Yamada wrote: > Hi Vladimir, > > 2016-01-07 19:44 GMT+09:00 Vladimir Zapolskiy <vz@mleia.com>: >> Hi Masahiro, >> >> On 07.01.2016 11:00, Masahiro Yamada wrote: >>> Hi Vladimir, >>> >>> >>> 2016-01-07 12:16 GMT+09:00 Vladimir Zapolskiy <vz@mleia.com>: >>>> Since clock parents lookup table for clocks with multiple parent >>>> clocks is always allocated during clock registration, remove similar >>>> allocations from __clk_init_parent() and clk_fetch_parent_index(). >>>> >>>> The change also corrects a pointer type of a single lookup table >>>> entry on calculation of the lookup table size. >>>> >>>> Signed-off-by: Vladimir Zapolskiy <vz@mleia.com> >>>> --- >>>> drivers/clk/clk.c | 20 +++----------------- >>>> 1 file changed, 3 insertions(+), 17 deletions(-) >>>> >>>> diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c >>>> index 2fb0dae..f8872f9 100644 >>>> --- a/drivers/clk/clk.c >>>> +++ b/drivers/clk/clk.c >>>> @@ -1067,13 +1067,6 @@ static int clk_fetch_parent_index(struct clk_core *core, >>>> { >>>> int i; >>>> >>>> - if (!core->parents) { >>>> - core->parents = kcalloc(core->num_parents, >>>> - sizeof(struct clk *), GFP_KERNEL); >>>> - if (!core->parents) >>>> - return -ENOMEM; >>>> - } >>>> - >>>> /* >>>> * find index of new parent clock using cached parent ptrs, >>>> * or if not yet cached, use string name comparison and cache >>>> @@ -1711,18 +1704,11 @@ static struct clk_core *__clk_init_parent(struct clk_core *core) >>>> } >>>> >>>> /* >>>> - * Do our best to cache parent clocks in core->parents. This prevents >>>> - * unnecessary and expensive lookups. We don't set core->parent here; >>>> - * that is done by the calling function. >>>> + * We don't set core->parent here; that is done by the calling function. >>>> */ >>>> >>>> index = core->ops->get_parent(core->hw); >>>> >>>> - if (!core->parents) >>>> - core->parents = >>>> - kcalloc(core->num_parents, sizeof(struct clk *), >>>> - GFP_KERNEL); >>>> - >>>> ret = clk_core_get_parent_by_index(core, index); >>>> >>>> out: >>>> @@ -2374,8 +2360,8 @@ static int __clk_init(struct device *dev, struct clk *clk_user) >>>> * look-ups of clk's possible parents. >>>> */ >>>> if (core->num_parents > 1) { >>>> - core->parents = kcalloc(core->num_parents, sizeof(struct clk *), >>>> - GFP_KERNEL); >>>> + core->parents = kcalloc(core->num_parents, >>>> + sizeof(struct clk_core *), GFP_KERNEL); >>>> if (!core->parents) { >>>> ret = -ENOMEM; >>>> goto out; >>> >>> >>> You are doing the similar thing as mine. >>> >>> See >>> https://patchwork.kernel.org/patch/7925571/ >> >> Ok, I was not aware of your work, unfortunately. >> >>> >>> This series gives a big conflict with my clean-up series, >>> which Michael said he would apply after v4.5-rc1. >>> >>> See >>> http://www.serverphorums.com/read.php?12,1376630 >>> >>> >> >> No problem, of course your work goes first. >> >> Obviously I have to review your changes more carefully, but do you >> have something similar to my 1/3? If no, then it is a regression. > > > No. > > I solved the problem in a different way. > https://patchwork.kernel.org/patch/7925571/ > > In my way, core->parents is always allocated. what's about the case of root clocks, when (core->num_parents == 0) ? Yours unconditional @@ -2560,12 +2537,20 @@ struct clk *clk_register(struct device *dev, struct clk_hw *hw) } } + /* avoid unnecessary string look-ups of clk_core's possible parents. */ + core->parents = kcalloc(core->num_parents, sizeof(*core->parents), + GFP_KERNEL); + if (!core->parents) { + ret = -ENOMEM; + goto fail_parents; + }; + looks suspicious, but I have to test and review the background changes as well, most probably I'm missing something. > 1/3 is not needed. Actually 1/3 solves a bit different kind of problem, but again I have to review/test your series. Shortly you may test it beforehand by a fuzz testing -- see the details in 1/3 commit message, you may insert a known in advance wrong ret = clk_set_parent(clk, parent); and get the result. > If I am wrong, please point out. > > I'll test and review your series today later on or tomorrow more carefully. -- With best wishes, Vladimir ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 0/3] clk: remove dead code allocations of parent lookup tables 2016-01-07 3:16 [PATCH 0/3] clk: remove dead code allocations of parent lookup tables Vladimir Zapolskiy ` (2 preceding siblings ...) 2016-01-07 3:16 ` [PATCH 3/3] clk: remove redundant clock parents lookup table allocations Vladimir Zapolskiy @ 2016-01-08 0:33 ` Vladimir Zapolskiy 3 siblings, 0 replies; 9+ messages in thread From: Vladimir Zapolskiy @ 2016-01-08 0:33 UTC (permalink / raw) To: Michael Turquette, Stephen Boyd; +Cc: linux-clk, Masahiro Yamada On 07.01.2016 05:16, Vladimir Zapolskiy wrote: > The change simplifies core operations over multi-parent clocks (clock > registration, clk_set_parent() and clk_get_parent() internals) by > rejecting a possibilty to skip failed memory allocation during clock > registration time and falling back to it on the next [gs]et_parent. > > No functional change is intended. > > Vladimir Zapolskiy (3): > clk: don't fetch parent index for non multi-parent clocks > clk: simplify array allocation of clock parents for lookup > clk: remove redundant clock parents lookup table allocations > > drivers/clk/clk.c | 49 +++++++++++++++++++------------------------------ > 1 file changed, 19 insertions(+), 30 deletions(-) > Please ignore this series, the discussed Masahiro's changeset completely covers the proposed improvements (and it adds even more of them). -- With best wishes, Vladimir ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2016-01-08 0:33 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-01-07 3:16 [PATCH 0/3] clk: remove dead code allocations of parent lookup tables Vladimir Zapolskiy 2016-01-07 3:16 ` [PATCH 1/3] clk: don't fetch parent index for non multi-parent clocks Vladimir Zapolskiy 2016-01-07 3:16 ` [PATCH 2/3] clk: simplify array allocation of clock parents for lookup Vladimir Zapolskiy 2016-01-07 3:16 ` [PATCH 3/3] clk: remove redundant clock parents lookup table allocations Vladimir Zapolskiy 2016-01-07 9:00 ` Masahiro Yamada 2016-01-07 10:44 ` Vladimir Zapolskiy 2016-01-07 11:33 ` Masahiro Yamada 2016-01-07 13:45 ` Vladimir Zapolskiy 2016-01-08 0:33 ` [PATCH 0/3] clk: remove dead code allocations of parent lookup tables Vladimir Zapolskiy
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox