From: Dan Carpenter <dan.carpenter@oracle.com>
To: Lee Jones <lee.jones@linaro.org>
Cc: linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org
Subject: [PATCH v2] mfd: tps65911-comparator: Fix an off by one bug
Date: Fri, 20 Apr 2018 09:09:10 +0000 [thread overview]
Message-ID: <20180420090910.GA26071@mwanda> (raw)
In-Reply-To: <20180420083909.66a6t63s5q6vpwp7@dell>
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.
We should be using "id - 1" instead.
The "id" variable is never COMP (0) so that code can be removed.
Fixes: 6851ad3ab346 ("TPS65911: Comparator: Add comparator driver")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
---
v2: we can fix the bug and save memory.
diff --git a/drivers/mfd/tps65911-comparator.c b/drivers/mfd/tps65911-comparator.c
index c0789f81a1c5..887409c3938d 100644
--- a/drivers/mfd/tps65911-comparator.c
+++ b/drivers/mfd/tps65911-comparator.c
@@ -22,7 +22,6 @@
#include <linux/gpio.h>
#include <linux/mfd/tps65910.h>
-#define COMP 0
#define COMP1 1
#define COMP2 2
@@ -58,14 +57,11 @@ static struct comparator tps_comparators[] = {
static int comp_threshold_set(struct tps65910 *tps65910, int id, int voltage)
{
- struct comparator tps_comp = tps_comparators[id];
+ struct comparator tps_comp = tps_comparators[id - 1];
int curr_voltage = 0;
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)
@@ -85,13 +81,10 @@ static int comp_threshold_set(struct tps65910 *tps65910, int id, int voltage)
static int comp_threshold_get(struct tps65910 *tps65910, int id)
{
- struct comparator tps_comp = tps_comparators[id];
+ struct comparator tps_comp = tps_comparators[id - 1];
int ret;
u8 val;
- if (id = COMP)
- return 0;
-
ret = tps65910->read(tps65910, tps_comp.reg, 1, &val);
if (ret < 0)
return ret;
WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: Lee Jones <lee.jones@linaro.org>
Cc: linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org
Subject: [PATCH v2] mfd: tps65911-comparator: Fix an off by one bug
Date: Fri, 20 Apr 2018 12:09:10 +0300 [thread overview]
Message-ID: <20180420090910.GA26071@mwanda> (raw)
In-Reply-To: <20180420083909.66a6t63s5q6vpwp7@dell>
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.
We should be using "id - 1" instead.
The "id" variable is never COMP (0) so that code can be removed.
Fixes: 6851ad3ab346 ("TPS65911: Comparator: Add comparator driver")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
---
v2: we can fix the bug and save memory.
diff --git a/drivers/mfd/tps65911-comparator.c b/drivers/mfd/tps65911-comparator.c
index c0789f81a1c5..887409c3938d 100644
--- a/drivers/mfd/tps65911-comparator.c
+++ b/drivers/mfd/tps65911-comparator.c
@@ -22,7 +22,6 @@
#include <linux/gpio.h>
#include <linux/mfd/tps65910.h>
-#define COMP 0
#define COMP1 1
#define COMP2 2
@@ -58,14 +57,11 @@ static struct comparator tps_comparators[] = {
static int comp_threshold_set(struct tps65910 *tps65910, int id, int voltage)
{
- struct comparator tps_comp = tps_comparators[id];
+ struct comparator tps_comp = tps_comparators[id - 1];
int curr_voltage = 0;
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)
@@ -85,13 +81,10 @@ static int comp_threshold_set(struct tps65910 *tps65910, int id, int voltage)
static int comp_threshold_get(struct tps65910 *tps65910, int id)
{
- struct comparator tps_comp = tps_comparators[id];
+ struct comparator tps_comp = tps_comparators[id - 1];
int ret;
u8 val;
- if (id == COMP)
- return 0;
-
ret = tps65910->read(tps65910, tps_comp.reg, 1, &val);
if (ret < 0)
return ret;
next prev parent reply other threads:[~2018-04-20 9:09 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-19 13:46 [PATCH] mfd: tps65911-comparator: Fix an off by one bug Dan Carpenter
2018-04-19 13:46 ` Dan Carpenter
2018-04-20 8:09 ` Lee Jones
2018-04-20 8:09 ` Lee Jones
2018-04-20 8:21 ` Dan Carpenter
2018-04-20 8:21 ` Dan Carpenter
2018-04-20 8:24 ` Dan Carpenter
2018-04-20 8:24 ` Dan Carpenter
2018-04-20 8:39 ` Lee Jones
2018-04-20 8:39 ` Lee Jones
2018-04-20 9:01 ` Dan Carpenter
2018-04-20 9:01 ` Dan Carpenter
2018-04-23 6:26 ` Lee Jones
2018-04-23 6:26 ` Lee Jones
2018-04-20 9:09 ` Dan Carpenter [this message]
2018-04-20 9:09 ` [PATCH v2] " Dan Carpenter
2018-04-23 6:44 ` Lee Jones
2018-04-23 6:44 ` Lee Jones
2018-04-23 10:27 ` Dan Carpenter
2018-04-23 10:27 ` Dan Carpenter
2018-04-24 5:45 ` Lee Jones
2018-04-24 5:45 ` Lee Jones
2018-04-20 8:59 ` [PATCH] " Dan Carpenter
2018-04-20 8:59 ` Dan Carpenter
2018-04-20 9:21 ` [PATCH] mfd: tps65911-comparator: Fix a build error Dan Carpenter
2018-04-20 9:21 ` Dan Carpenter
2018-04-23 18:13 ` Rhyland Klein
2018-04-23 18:13 ` Rhyland Klein
2018-04-24 5:46 ` Lee Jones
2018-04-24 5:46 ` Lee Jones
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180420090910.GA26071@mwanda \
--to=dan.carpenter@oracle.com \
--cc=kernel-janitors@vger.kernel.org \
--cc=lee.jones@linaro.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.