diff options
| author | Axel Lin <axel.lin@gmail.com> | 2010-07-26 03:34:14 -0400 |
|---|---|---|
| committer | Liam Girdwood <lrg@slimlogic.co.uk> | 2010-07-27 06:29:23 -0400 |
| commit | 979da89a9c230381ca55ea0764428a5d42a01e7f (patch) | |
| tree | 0bce5a6e5c147cddaba8b6c455a00039b45993c3 | |
| parent | b37fa16e78d6f9790462b3181602a26b5af36260 (diff) | |
ab3100: fix off-by-one value range checking for voltage selector
We use voltage selector as an array index for typ_voltages.
Thus the valid range for voltage selector should be 0..voltages_len-1.
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Linus Walleij <linus.walleij@stericsson.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
| -rw-r--r-- | drivers/regulator/ab3100.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/regulator/ab3100.c b/drivers/regulator/ab3100.c index 7b14a67bdca2..11790990277a 100644 --- a/drivers/regulator/ab3100.c +++ b/drivers/regulator/ab3100.c | |||
| @@ -286,7 +286,7 @@ static int ab3100_list_voltage_regulator(struct regulator_dev *reg, | |||
| 286 | { | 286 | { |
| 287 | struct ab3100_regulator *abreg = reg->reg_data; | 287 | struct ab3100_regulator *abreg = reg->reg_data; |
| 288 | 288 | ||
| 289 | if (selector > abreg->voltages_len) | 289 | if (selector >= abreg->voltages_len) |
| 290 | return -EINVAL; | 290 | return -EINVAL; |
| 291 | return abreg->typ_voltages[selector]; | 291 | return abreg->typ_voltages[selector]; |
| 292 | } | 292 | } |
| @@ -318,7 +318,7 @@ static int ab3100_get_voltage_regulator(struct regulator_dev *reg) | |||
| 318 | regval &= 0xE0; | 318 | regval &= 0xE0; |
| 319 | regval >>= 5; | 319 | regval >>= 5; |
| 320 | 320 | ||
| 321 | if (regval > abreg->voltages_len) { | 321 | if (regval >= abreg->voltages_len) { |
| 322 | dev_err(®->dev, | 322 | dev_err(®->dev, |
| 323 | "regulator register %02x contains an illegal voltage setting\n", | 323 | "regulator register %02x contains an illegal voltage setting\n", |
| 324 | abreg->regreg); | 324 | abreg->regreg); |
