Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fe52e750 authored by Maxime COQUELIN's avatar Maxime COQUELIN Committed by Mike Turquette
Browse files

clk: divider: Fix table round up function



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: default avatarFabio Estevam <festevam@gmail.com>
Reported-by: default avatarShawn Guo <shawn.guo@freescale.com>
Tested-by: default avatarFabio Estevam <festevam@gmail.com>
Tested-by: default avatarShawn Guo <shawn.guo@freescale.com>
Signed-off-by: default avatarMaxime Coquelin <maxime.coquelin@st.com>
Signed-off-by: default avatarMike Turquette <mturquette@linaro.org>
parent 4b660a7f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -147,7 +147,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)