regulator: 88pm8607 - fix value range checking for accessing info->vol_table
authorAxel Lin <axel.lin@gmail.com>
Sat, 4 Sep 2010 15:10:48 +0000 (23:10 +0800)
committerLiam Girdwood <lrg@slimlogic.co.uk>
Sun, 5 Sep 2010 10:15:52 +0000 (11:15 +0100)
commitd06563cb860ab594889010889a7111c9e25d1051
treede5486bc44497e7cd8833d3a4d7c14449fef687b
parentb9e5d11a7e70000ace3ba92100bf1e81ff607604
regulator: 88pm8607 - fix value range checking for accessing info->vol_table

In choose_voltage(), we use i as array index of info->vol_table.
The valid value range for i should be 0 .. ARRAY_SIZE(info->vol_table) - 1.

Take LDO1 as example, ARRAY_SIZE(LDO1_table) is 4, vol_nbits of LDO1 is 2.
for (i = 0; i < (2 << info->vol_nbits); i++)  is equivalent to
for (i = 0; i < 8; i++)
which is wrong.

The same value range checking also applies for index in pm8607_list_voltage().

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Mark Brown <broonie@openource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
drivers/regulator/88pm8607.c