You do two things in this change on cpu_cooling.c: (1) fix the case where
the loop is kept running indefinitely. (2) Reserve a specific role for each
index in this function.
So the issue is that the changes are not independent. With just the
fix for the infinite loop, get_cpu_frequency() is still completely
broken because it is not interpreting the level correctly and will
return the wrong frequency (and thus not throttling correctly, which
is bad). Perhaps the commit should be more general, like "fix
handling of invalid frequency table entries"? What do you think?
Thanks,
Andrew