| From: Lee Jones <lee.jones@linaro.org> |
| Date: Tue, 1 May 2018 10:26:59 +0100 |
| Subject: mfd: tps65911-comparator: Fix an off by one bug |
| |
| commit 1768391c3674b0c6bdc4947121f15fb0c2f47ec4 upstream. |
| |
| The COMP1 and COMP2 elements are in 0 and 1 respectively so this code is |
| accessing the wrong elements and one space beyond the end of the array. |
| |
| The "id" variable is never COMP (0) so that code can be removed. |
| |
| Fixes: 6851ad3ab346 ("TPS65911: Comparator: Add comparator driver") |
| Reported-by: Dan Carpenter <dan.carpenter@oracle.com> |
| Signed-off-by: Lee Jones <lee.jones@linaro.org> |
| Signed-off-by: Ben Hutchings <ben@decadent.org.uk> |
| --- |
| drivers/mfd/tps65911-comparator.c | 11 ++--------- |
| 1 file changed, 2 insertions(+), 9 deletions(-) |
| |
| --- a/drivers/mfd/tps65911-comparator.c |
| +++ b/drivers/mfd/tps65911-comparator.c |
| @@ -22,9 +22,8 @@ |
| #include <linux/gpio.h> |
| #include <linux/mfd/tps65910.h> |
| |
| -#define COMP 0 |
| -#define COMP1 1 |
| -#define COMP2 2 |
| +#define COMP1 0 |
| +#define COMP2 1 |
| |
| /* Comparator 1 voltage selection table in millivolts */ |
| static const u16 COMP_VSEL_TABLE[] = { |
| @@ -63,9 +62,6 @@ static int comp_threshold_set(struct tps |
| int ret; |
| u8 index = 0, val; |
| |
| - if (id == COMP) |
| - return 0; |
| - |
| while (curr_voltage < tps_comp.uV_max) { |
| curr_voltage = tps_comp.vsel_table[index]; |
| if (curr_voltage >= voltage) |
| @@ -89,9 +85,6 @@ static int comp_threshold_get(struct tps |
| unsigned int val; |
| int ret; |
| |
| - if (id == COMP) |
| - return 0; |
| - |
| ret = tps65910_reg_read(tps65910, tps_comp.reg, &val); |
| if (ret < 0) |
| return ret; |