diff options
| author | Nishanth Menon <nm@ti.com> | 2012-05-18 12:26:19 -0500 | 
|---|---|---|
| committer | Kevin Hilman <khilman@ti.com> | 2012-06-19 15:23:29 -0700 | 
| commit | b110547e586eb5825bc1d04aa9147bff83b57672 (patch) | |
| tree | 6547f2dea4af3251a647e391a3eeac65f54ecdd3 | |
| parent | 164e0cbf608214bddc4d28e2777f49e7b3a0f65c (diff) | |
| download | olio-linux-3.10-b110547e586eb5825bc1d04aa9147bff83b57672.tar.xz olio-linux-3.10-b110547e586eb5825bc1d04aa9147bff83b57672.zip | |
ARM: OMAP2+: OPP: Fix to ensure check of right oppdef after bad one
Commit 9fa2df6b90786301b175e264f5fa9846aba81a65
(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: Nishanth Menon <nm@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
| -rw-r--r-- | arch/arm/mach-omap2/opp.c | 3 | 
1 files changed, 1 insertions, 2 deletions
| diff --git a/arch/arm/mach-omap2/opp.c b/arch/arm/mach-omap2/opp.c index de6d4645174..d8f6dbf45d1 100644 --- a/arch/arm/mach-omap2/opp.c +++ b/arch/arm/mach-omap2/opp.c @@ -53,7 +53,7 @@ int __init omap_init_opp_table(struct omap_opp_def *opp_def,  	omap_table_init = 1;  	/* 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 device *dev; @@ -86,7 +86,6 @@ int __init omap_init_opp_table(struct omap_opp_def *opp_def,  					__func__, opp_def->freq,  					opp_def->hwmod_name, i, r);  		} -		opp_def++;  	}  	return 0; |