max8998: fix off-by-one value range checking
authorAxel Lin <axel.lin@gmail.com>
Wed, 4 Aug 2010 06:34:10 +0000 (14:34 +0800)
committerLiam Girdwood <lrg@slimlogic.co.uk>
Wed, 11 Aug 2010 10:38:02 +0000 (11:38 +0100)
In max8998_list_voltage() and max8998_set_voltage(),
we use ldo as array index of ldo_voltage_map.
Thus the valid range should be 0 .. ARRAY_SIZE(ldo_voltage_map)-1.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
drivers/regulator/max8998.c

index 03e55a1..ab67298 100644 (file)
@@ -119,7 +119,7 @@ static int max8998_list_voltage(struct regulator_dev *rdev,
        int ldo = max8998_get_ldo(rdev);
        int val;
 
-       if (ldo > ARRAY_SIZE(ldo_voltage_map))
+       if (ldo >= ARRAY_SIZE(ldo_voltage_map))
                return -EINVAL;
 
        desc = ldo_voltage_map[ldo];
@@ -306,7 +306,7 @@ static int max8998_set_voltage(struct regulator_dev *rdev,
        u8 val;
        bool en_ramp = false;
 
-       if (ldo > ARRAY_SIZE(ldo_voltage_map))
+       if (ldo >= ARRAY_SIZE(ldo_voltage_map))
                return -EINVAL;
 
        desc = ldo_voltage_map[ldo];