All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] clk: divider: Fix table round up function
@ 2014-05-07 16:48 ` Maxime COQUELIN
  0 siblings, 0 replies; 12+ messages in thread
From: Maxime COQUELIN @ 2014-05-07 16:48 UTC (permalink / raw)
  To: linux-arm-kernel

Commit 1d9fe6b97 ("clk: divider: Fix best div calculation for power-of-two and
table dividers") introduces a regression in its _table_round_up function.

When the divider passed to this function is greater than the max divider
available in the table, this function returns table's max divider.
Problem is that it causes an infinite loop in clk_divider_bestdiv() because
_next_div() will never return a value greater than maxdiv.

Instead of returning table's max divider, this patch returns INT_MAX.

Reported-by: Fabio Estevam <festevam@gmail.com>
Reported-by: Shawn Guo <shawn.guo@freescale.com>
Tested-by: Fabio Estevam <festevam@gmail.com>
Cc: Mike Turquette <mike.turquette@linaro.org>
Signed-off-by: Maxime Coquelin <maxime.coquelin@st.com>
---
 drivers/clk/clk-divider.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/clk/clk-divider.c b/drivers/clk/clk-divider.c
index b3c8396..cf9114a 100644
--- a/drivers/clk/clk-divider.c
+++ b/drivers/clk/clk-divider.c
@@ -158,7 +158,7 @@ static bool _is_valid_div(struct clk_divider *divider, unsigned int div)
 static int _round_up_table(const struct clk_div_table *table, int div)
 {
 	const struct clk_div_table *clkt;
-	int up = _get_table_maxdiv(table);
+	int up = INT_MAX;
 
 	for (clkt = table; clkt->div; clkt++) {
 		if (clkt->div == div)
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH] clk: divider: Fix table round up function
@ 2014-05-07 16:48 ` Maxime COQUELIN
  0 siblings, 0 replies; 12+ messages in thread
From: Maxime COQUELIN @ 2014-05-07 16:48 UTC (permalink / raw)
  To: Mike Turquette, Fabio Estevam, Shawn Guo, linux-arm-kernel,
	linux-kernel
  Cc: maxime.coquelin

Commit 1d9fe6b97 ("clk: divider: Fix best div calculation for power-of-two and
table dividers") introduces a regression in its _table_round_up function.

When the divider passed to this function is greater than the max divider
available in the table, this function returns table's max divider.
Problem is that it causes an infinite loop in clk_divider_bestdiv() because
_next_div() will never return a value greater than maxdiv.

Instead of returning table's max divider, this patch returns INT_MAX.

Reported-by: Fabio Estevam <festevam@gmail.com>
Reported-by: Shawn Guo <shawn.guo@freescale.com>
Tested-by: Fabio Estevam <festevam@gmail.com>
Cc: Mike Turquette <mike.turquette@linaro.org>
Signed-off-by: Maxime Coquelin <maxime.coquelin@st.com>
---
 drivers/clk/clk-divider.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/clk/clk-divider.c b/drivers/clk/clk-divider.c
index b3c8396..cf9114a 100644
--- a/drivers/clk/clk-divider.c
+++ b/drivers/clk/clk-divider.c
@@ -158,7 +158,7 @@ static bool _is_valid_div(struct clk_divider *divider, unsigned int div)
 static int _round_up_table(const struct clk_div_table *table, int div)
 {
 	const struct clk_div_table *clkt;
-	int up = _get_table_maxdiv(table);
+	int up = INT_MAX;
 
 	for (clkt = table; clkt->div; clkt++) {
 		if (clkt->div == div)
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH] clk: divider: Fix table round up function
  2014-05-07 16:48 ` Maxime COQUELIN
@ 2014-05-08  2:21   ` Shawn Guo
  -1 siblings, 0 replies; 12+ messages in thread
From: Shawn Guo @ 2014-05-08  2:21 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, May 07, 2014 at 06:48:52PM +0200, Maxime COQUELIN wrote:
> Commit 1d9fe6b97 ("clk: divider: Fix best div calculation for power-of-two and
> table dividers") introduces a regression in its _table_round_up function.
> 
> When the divider passed to this function is greater than the max divider
> available in the table, this function returns table's max divider.
> Problem is that it causes an infinite loop in clk_divider_bestdiv() because
> _next_div() will never return a value greater than maxdiv.
> 
> Instead of returning table's max divider, this patch returns INT_MAX.
> 
> Reported-by: Fabio Estevam <festevam@gmail.com>
> Reported-by: Shawn Guo <shawn.guo@freescale.com>
> Tested-by: Fabio Estevam <festevam@gmail.com>
> Cc: Mike Turquette <mike.turquette@linaro.org>
> Signed-off-by: Maxime Coquelin <maxime.coquelin@st.com>

Tested-by: Shawn Guo <shawn.guo@freescale.com>

Thanks for the fix.

Shawn

> ---
>  drivers/clk/clk-divider.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/clk/clk-divider.c b/drivers/clk/clk-divider.c
> index b3c8396..cf9114a 100644
> --- a/drivers/clk/clk-divider.c
> +++ b/drivers/clk/clk-divider.c
> @@ -158,7 +158,7 @@ static bool _is_valid_div(struct clk_divider *divider, unsigned int div)
>  static int _round_up_table(const struct clk_div_table *table, int div)
>  {
>  	const struct clk_div_table *clkt;
> -	int up = _get_table_maxdiv(table);
> +	int up = INT_MAX;
>  
>  	for (clkt = table; clkt->div; clkt++) {
>  		if (clkt->div == div)
> -- 
> 1.9.1
> 

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] clk: divider: Fix table round up function
@ 2014-05-08  2:21   ` Shawn Guo
  0 siblings, 0 replies; 12+ messages in thread
From: Shawn Guo @ 2014-05-08  2:21 UTC (permalink / raw)
  To: Maxime COQUELIN
  Cc: Mike Turquette, Fabio Estevam, linux-arm-kernel, linux-kernel

On Wed, May 07, 2014 at 06:48:52PM +0200, Maxime COQUELIN wrote:
> Commit 1d9fe6b97 ("clk: divider: Fix best div calculation for power-of-two and
> table dividers") introduces a regression in its _table_round_up function.
> 
> When the divider passed to this function is greater than the max divider
> available in the table, this function returns table's max divider.
> Problem is that it causes an infinite loop in clk_divider_bestdiv() because
> _next_div() will never return a value greater than maxdiv.
> 
> Instead of returning table's max divider, this patch returns INT_MAX.
> 
> Reported-by: Fabio Estevam <festevam@gmail.com>
> Reported-by: Shawn Guo <shawn.guo@freescale.com>
> Tested-by: Fabio Estevam <festevam@gmail.com>
> Cc: Mike Turquette <mike.turquette@linaro.org>
> Signed-off-by: Maxime Coquelin <maxime.coquelin@st.com>

Tested-by: Shawn Guo <shawn.guo@freescale.com>

Thanks for the fix.

Shawn

> ---
>  drivers/clk/clk-divider.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/clk/clk-divider.c b/drivers/clk/clk-divider.c
> index b3c8396..cf9114a 100644
> --- a/drivers/clk/clk-divider.c
> +++ b/drivers/clk/clk-divider.c
> @@ -158,7 +158,7 @@ static bool _is_valid_div(struct clk_divider *divider, unsigned int div)
>  static int _round_up_table(const struct clk_div_table *table, int div)
>  {
>  	const struct clk_div_table *clkt;
> -	int up = _get_table_maxdiv(table);
> +	int up = INT_MAX;
>  
>  	for (clkt = table; clkt->div; clkt++) {
>  		if (clkt->div == div)
> -- 
> 1.9.1
> 

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH] clk: divider: Fix table round up function
  2014-05-07 16:48 ` Maxime COQUELIN
@ 2014-05-15 13:28   ` Fabio Estevam
  -1 siblings, 0 replies; 12+ messages in thread
From: Fabio Estevam @ 2014-05-15 13:28 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Mike,

On Wed, May 7, 2014 at 1:48 PM, Maxime COQUELIN <maxime.coquelin@st.com> wrote:
> Commit 1d9fe6b97 ("clk: divider: Fix best div calculation for power-of-two and
> table dividers") introduces a regression in its _table_round_up function.
>
> When the divider passed to this function is greater than the max divider
> available in the table, this function returns table's max divider.
> Problem is that it causes an infinite loop in clk_divider_bestdiv() because
> _next_div() will never return a value greater than maxdiv.
>
> Instead of returning table's max divider, this patch returns INT_MAX.
>
> Reported-by: Fabio Estevam <festevam@gmail.com>
> Reported-by: Shawn Guo <shawn.guo@freescale.com>
> Tested-by: Fabio Estevam <festevam@gmail.com>
> Cc: Mike Turquette <mike.turquette@linaro.org>
> Signed-off-by: Maxime Coquelin <maxime.coquelin@st.com>

Any comments on this one? It does fix a regression.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] clk: divider: Fix table round up function
@ 2014-05-15 13:28   ` Fabio Estevam
  0 siblings, 0 replies; 12+ messages in thread
From: Fabio Estevam @ 2014-05-15 13:28 UTC (permalink / raw)
  To: Maxime COQUELIN
  Cc: Mike Turquette, Shawn Guo, linux-arm-kernel@lists.infradead.org,
	linux-kernel

Hi Mike,

On Wed, May 7, 2014 at 1:48 PM, Maxime COQUELIN <maxime.coquelin@st.com> wrote:
> Commit 1d9fe6b97 ("clk: divider: Fix best div calculation for power-of-two and
> table dividers") introduces a regression in its _table_round_up function.
>
> When the divider passed to this function is greater than the max divider
> available in the table, this function returns table's max divider.
> Problem is that it causes an infinite loop in clk_divider_bestdiv() because
> _next_div() will never return a value greater than maxdiv.
>
> Instead of returning table's max divider, this patch returns INT_MAX.
>
> Reported-by: Fabio Estevam <festevam@gmail.com>
> Reported-by: Shawn Guo <shawn.guo@freescale.com>
> Tested-by: Fabio Estevam <festevam@gmail.com>
> Cc: Mike Turquette <mike.turquette@linaro.org>
> Signed-off-by: Maxime Coquelin <maxime.coquelin@st.com>

Any comments on this one? It does fix a regression.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH] clk: divider: Fix table round up function
  2014-05-15 13:28   ` Fabio Estevam
@ 2014-05-21 12:52     ` Maxime Coquelin
  -1 siblings, 0 replies; 12+ messages in thread
From: Maxime Coquelin @ 2014-05-21 12:52 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Mike,

On 05/15/2014 03:28 PM, Fabio Estevam wrote:
> Hi Mike,
>
> On Wed, May 7, 2014 at 1:48 PM, Maxime COQUELIN <maxime.coquelin@st.com> wrote:
>> Commit 1d9fe6b97 ("clk: divider: Fix best div calculation for power-of-two and
>> table dividers") introduces a regression in its _table_round_up function.
>>
>> When the divider passed to this function is greater than the max divider
>> available in the table, this function returns table's max divider.
>> Problem is that it causes an infinite loop in clk_divider_bestdiv() because
>> _next_div() will never return a value greater than maxdiv.
>>
>> Instead of returning table's max divider, this patch returns INT_MAX.
>>
>> Reported-by: Fabio Estevam <festevam@gmail.com>
>> Reported-by: Shawn Guo <shawn.guo@freescale.com>
>> Tested-by: Fabio Estevam <festevam@gmail.com>
>> Cc: Mike Turquette <mike.turquette@linaro.org>
>> Signed-off-by: Maxime Coquelin <maxime.coquelin@st.com>
>
> Any comments on this one? It does fix a regression.
>

This patch is important as it fixes a regression, could you review it 
please?

Thanks,
Maxime

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] clk: divider: Fix table round up function
@ 2014-05-21 12:52     ` Maxime Coquelin
  0 siblings, 0 replies; 12+ messages in thread
From: Maxime Coquelin @ 2014-05-21 12:52 UTC (permalink / raw)
  To: Mike Turquette
  Cc: Fabio Estevam, Shawn Guo, linux-arm-kernel@lists.infradead.org,
	linux-kernel

Hi Mike,

On 05/15/2014 03:28 PM, Fabio Estevam wrote:
> Hi Mike,
>
> On Wed, May 7, 2014 at 1:48 PM, Maxime COQUELIN <maxime.coquelin@st.com> wrote:
>> Commit 1d9fe6b97 ("clk: divider: Fix best div calculation for power-of-two and
>> table dividers") introduces a regression in its _table_round_up function.
>>
>> When the divider passed to this function is greater than the max divider
>> available in the table, this function returns table's max divider.
>> Problem is that it causes an infinite loop in clk_divider_bestdiv() because
>> _next_div() will never return a value greater than maxdiv.
>>
>> Instead of returning table's max divider, this patch returns INT_MAX.
>>
>> Reported-by: Fabio Estevam <festevam@gmail.com>
>> Reported-by: Shawn Guo <shawn.guo@freescale.com>
>> Tested-by: Fabio Estevam <festevam@gmail.com>
>> Cc: Mike Turquette <mike.turquette@linaro.org>
>> Signed-off-by: Maxime Coquelin <maxime.coquelin@st.com>
>
> Any comments on this one? It does fix a regression.
>

This patch is important as it fixes a regression, could you review it 
please?

Thanks,
Maxime

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH] clk: divider: Fix table round up function
  2014-05-07 16:48 ` Maxime COQUELIN
@ 2014-05-23 21:39   ` Mike Turquette
  -1 siblings, 0 replies; 12+ messages in thread
From: Mike Turquette @ 2014-05-23 21:39 UTC (permalink / raw)
  To: linux-arm-kernel

Quoting Maxime COQUELIN (2014-05-07 09:48:52)
> Commit 1d9fe6b97 ("clk: divider: Fix best div calculation for power-of-two and
> table dividers") introduces a regression in its _table_round_up function.
> 
> When the divider passed to this function is greater than the max divider
> available in the table, this function returns table's max divider.
> Problem is that it causes an infinite loop in clk_divider_bestdiv() because
> _next_div() will never return a value greater than maxdiv.
> 
> Instead of returning table's max divider, this patch returns INT_MAX.
> 
> Reported-by: Fabio Estevam <festevam@gmail.com>
> Reported-by: Shawn Guo <shawn.guo@freescale.com>
> Tested-by: Fabio Estevam <festevam@gmail.com>
> Cc: Mike Turquette <mike.turquette@linaro.org>
> Signed-off-by: Maxime Coquelin <maxime.coquelin@st.com>

Pulled into clk-fixes for -rc7.

Regards,
Mike

> ---
>  drivers/clk/clk-divider.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/clk/clk-divider.c b/drivers/clk/clk-divider.c
> index b3c8396..cf9114a 100644
> --- a/drivers/clk/clk-divider.c
> +++ b/drivers/clk/clk-divider.c
> @@ -158,7 +158,7 @@ static bool _is_valid_div(struct clk_divider *divider, unsigned int div)
>  static int _round_up_table(const struct clk_div_table *table, int div)
>  {
>         const struct clk_div_table *clkt;
> -       int up = _get_table_maxdiv(table);
> +       int up = INT_MAX;
>  
>         for (clkt = table; clkt->div; clkt++) {
>                 if (clkt->div == div)
> -- 
> 1.9.1
> 

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] clk: divider: Fix table round up function
@ 2014-05-23 21:39   ` Mike Turquette
  0 siblings, 0 replies; 12+ messages in thread
From: Mike Turquette @ 2014-05-23 21:39 UTC (permalink / raw)
  To: Maxime COQUELIN, Fabio Estevam, Shawn Guo, linux-arm-kernel,
	linux-kernel
  Cc: maxime.coquelin

Quoting Maxime COQUELIN (2014-05-07 09:48:52)
> Commit 1d9fe6b97 ("clk: divider: Fix best div calculation for power-of-two and
> table dividers") introduces a regression in its _table_round_up function.
> 
> When the divider passed to this function is greater than the max divider
> available in the table, this function returns table's max divider.
> Problem is that it causes an infinite loop in clk_divider_bestdiv() because
> _next_div() will never return a value greater than maxdiv.
> 
> Instead of returning table's max divider, this patch returns INT_MAX.
> 
> Reported-by: Fabio Estevam <festevam@gmail.com>
> Reported-by: Shawn Guo <shawn.guo@freescale.com>
> Tested-by: Fabio Estevam <festevam@gmail.com>
> Cc: Mike Turquette <mike.turquette@linaro.org>
> Signed-off-by: Maxime Coquelin <maxime.coquelin@st.com>

Pulled into clk-fixes for -rc7.

Regards,
Mike

> ---
>  drivers/clk/clk-divider.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/clk/clk-divider.c b/drivers/clk/clk-divider.c
> index b3c8396..cf9114a 100644
> --- a/drivers/clk/clk-divider.c
> +++ b/drivers/clk/clk-divider.c
> @@ -158,7 +158,7 @@ static bool _is_valid_div(struct clk_divider *divider, unsigned int div)
>  static int _round_up_table(const struct clk_div_table *table, int div)
>  {
>         const struct clk_div_table *clkt;
> -       int up = _get_table_maxdiv(table);
> +       int up = INT_MAX;
>  
>         for (clkt = table; clkt->div; clkt++) {
>                 if (clkt->div == div)
> -- 
> 1.9.1
> 

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH] clk: divider: Fix table round up function
  2014-05-23 21:39   ` Mike Turquette
@ 2014-05-26  7:31     ` Maxime Coquelin
  -1 siblings, 0 replies; 12+ messages in thread
From: Maxime Coquelin @ 2014-05-26  7:31 UTC (permalink / raw)
  To: linux-arm-kernel



On 05/23/2014 11:39 PM, Mike Turquette wrote:
> Quoting Maxime COQUELIN (2014-05-07 09:48:52)
>> Commit 1d9fe6b97 ("clk: divider: Fix best div calculation for power-of-two and
>> table dividers") introduces a regression in its _table_round_up function.
>>
>> When the divider passed to this function is greater than the max divider
>> available in the table, this function returns table's max divider.
>> Problem is that it causes an infinite loop in clk_divider_bestdiv() because
>> _next_div() will never return a value greater than maxdiv.
>>
>> Instead of returning table's max divider, this patch returns INT_MAX.
>>
>> Reported-by: Fabio Estevam <festevam@gmail.com>
>> Reported-by: Shawn Guo <shawn.guo@freescale.com>
>> Tested-by: Fabio Estevam <festevam@gmail.com>
>> Cc: Mike Turquette <mike.turquette@linaro.org>
>> Signed-off-by: Maxime Coquelin <maxime.coquelin@st.com>
>
> Pulled into clk-fixes for -rc7.

Thanks Mike.

Regards,
Maxime

>
> Regards,
> Mike
>
>> ---
>>   drivers/clk/clk-divider.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/clk/clk-divider.c b/drivers/clk/clk-divider.c
>> index b3c8396..cf9114a 100644
>> --- a/drivers/clk/clk-divider.c
>> +++ b/drivers/clk/clk-divider.c
>> @@ -158,7 +158,7 @@ static bool _is_valid_div(struct clk_divider *divider, unsigned int div)
>>   static int _round_up_table(const struct clk_div_table *table, int div)
>>   {
>>          const struct clk_div_table *clkt;
>> -       int up = _get_table_maxdiv(table);
>> +       int up = INT_MAX;
>>
>>          for (clkt = table; clkt->div; clkt++) {
>>                  if (clkt->div == div)
>> --
>> 1.9.1
>>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] clk: divider: Fix table round up function
@ 2014-05-26  7:31     ` Maxime Coquelin
  0 siblings, 0 replies; 12+ messages in thread
From: Maxime Coquelin @ 2014-05-26  7:31 UTC (permalink / raw)
  To: Mike Turquette, Fabio Estevam, Shawn Guo, linux-arm-kernel,
	linux-kernel



On 05/23/2014 11:39 PM, Mike Turquette wrote:
> Quoting Maxime COQUELIN (2014-05-07 09:48:52)
>> Commit 1d9fe6b97 ("clk: divider: Fix best div calculation for power-of-two and
>> table dividers") introduces a regression in its _table_round_up function.
>>
>> When the divider passed to this function is greater than the max divider
>> available in the table, this function returns table's max divider.
>> Problem is that it causes an infinite loop in clk_divider_bestdiv() because
>> _next_div() will never return a value greater than maxdiv.
>>
>> Instead of returning table's max divider, this patch returns INT_MAX.
>>
>> Reported-by: Fabio Estevam <festevam@gmail.com>
>> Reported-by: Shawn Guo <shawn.guo@freescale.com>
>> Tested-by: Fabio Estevam <festevam@gmail.com>
>> Cc: Mike Turquette <mike.turquette@linaro.org>
>> Signed-off-by: Maxime Coquelin <maxime.coquelin@st.com>
>
> Pulled into clk-fixes for -rc7.

Thanks Mike.

Regards,
Maxime

>
> Regards,
> Mike
>
>> ---
>>   drivers/clk/clk-divider.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/clk/clk-divider.c b/drivers/clk/clk-divider.c
>> index b3c8396..cf9114a 100644
>> --- a/drivers/clk/clk-divider.c
>> +++ b/drivers/clk/clk-divider.c
>> @@ -158,7 +158,7 @@ static bool _is_valid_div(struct clk_divider *divider, unsigned int div)
>>   static int _round_up_table(const struct clk_div_table *table, int div)
>>   {
>>          const struct clk_div_table *clkt;
>> -       int up = _get_table_maxdiv(table);
>> +       int up = INT_MAX;
>>
>>          for (clkt = table; clkt->div; clkt++) {
>>                  if (clkt->div == div)
>> --
>> 1.9.1
>>

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2014-05-26  7:32 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-05-07 16:48 [PATCH] clk: divider: Fix table round up function Maxime COQUELIN
2014-05-07 16:48 ` Maxime COQUELIN
2014-05-08  2:21 ` Shawn Guo
2014-05-08  2:21   ` Shawn Guo
2014-05-15 13:28 ` Fabio Estevam
2014-05-15 13:28   ` Fabio Estevam
2014-05-21 12:52   ` Maxime Coquelin
2014-05-21 12:52     ` Maxime Coquelin
2014-05-23 21:39 ` Mike Turquette
2014-05-23 21:39   ` Mike Turquette
2014-05-26  7:31   ` Maxime Coquelin
2014-05-26  7:31     ` Maxime Coquelin

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.