Commit b110547e authored by Nishanth Menon's avatar Nishanth Menon Committed by Kevin Hilman

ARM: OMAP2+: OPP: Fix to ensure check of right oppdef after bad one

Commit 9fa2df6b
(ARM: OMAP2+: OPP: allow OPP enumeration to continue if device is not present)
makes the logic:
for (i = 0; i < opp_def_size; i++) {
	<snip>
	if (!oh || !oh->od) {
		<snip>
		continue;
	}
<snip>
opp_def++;
}

In short, the moment we hit a "Bad OPP", we end up looping the list
comparing against the bad opp definition pointer for the rest of the
iteration count. Instead, increment opp_def in the for loop itself
and allow continue to be used in code without much thought so that
we check the next set of OPP definition pointers :)

Cc: Steve Sakoman <steve@sakoman.com>
Cc: Tony Lindgren <tony@atomide.com>
Cc: stable@vger.kernel.org
Signed-off-by: default avatarNishanth Menon <nm@ti.com>
Signed-off-by: default avatarKevin Hilman <khilman@ti.com>
parent 164e0cbf
...@@ -53,7 +53,7 @@ int __init omap_init_opp_table(struct omap_opp_def *opp_def, ...@@ -53,7 +53,7 @@ int __init omap_init_opp_table(struct omap_opp_def *opp_def,
omap_table_init = 1; omap_table_init = 1;
/* Lets now register with OPP library */ /* Lets now register with OPP library */
for (i = 0; i < opp_def_size; i++) { for (i = 0; i < opp_def_size; i++, opp_def++) {
struct omap_hwmod *oh; struct omap_hwmod *oh;
struct device *dev; struct device *dev;
...@@ -86,7 +86,6 @@ int __init omap_init_opp_table(struct omap_opp_def *opp_def, ...@@ -86,7 +86,6 @@ int __init omap_init_opp_table(struct omap_opp_def *opp_def,
__func__, opp_def->freq, __func__, opp_def->freq,
opp_def->hwmod_name, i, r); opp_def->hwmod_name, i, r);
} }
opp_def++;
} }
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment