diff options
author | Himangi Saraogi <himangi774@gmail.com> | 2014-08-09 18:40:27 +0200 |
---|---|---|
committer | Lee Jones <lee.jones@linaro.org> | 2014-09-26 09:15:36 +0200 |
commit | e0c8a1f52d0d3dc5f79ce04d7bf6da0782dcee16 (patch) | |
tree | 3ef61a9b36a9a26c05bb824a272ddc5c7a79093e /drivers | |
parent | mfd: wm8994: Export symbols ready for built-in => modular build (diff) | |
download | linux-e0c8a1f52d0d3dc5f79ce04d7bf6da0782dcee16.tar.xz linux-e0c8a1f52d0d3dc5f79ce04d7bf6da0782dcee16.zip |
mfd: menelaus: Remove null pointer dereference
If vtg is NULL, it is not possible to access its mode_reg field. At all
sites where the static function menelaus_set_voltage is called, the first
argument is the address of a structure defined in the file. So, the null
test is unnecessary and is removed. Also, a label is done away with.
This problem was found using the following Coccinelle semantic match:
// <smpl>
@@
expression E, E1;
identifier f;
statement S1,S2,S3;
@@
* if (E == NULL)
{
... when != if (E == NULL) S1 else S2
when != E = E1
* E->f
... when any
return ...;
}
else S3
// </smpl>
Signed-off-by: Himangi Saraogi <himangi774@gmail.com>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/mfd/menelaus.c | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/drivers/mfd/menelaus.c b/drivers/mfd/menelaus.c index 5e2667afe2bc..18ff56f3b52a 100644 --- a/drivers/mfd/menelaus.c +++ b/drivers/mfd/menelaus.c @@ -466,8 +466,6 @@ static int menelaus_set_voltage(const struct menelaus_vtg *vtg, int mV, struct i2c_client *c = the_menelaus->client; mutex_lock(&the_menelaus->lock); - if (!vtg) - goto set_voltage; ret = menelaus_read_reg(vtg->vtg_reg); if (ret < 0) @@ -482,7 +480,6 @@ static int menelaus_set_voltage(const struct menelaus_vtg *vtg, int mV, ret = menelaus_write_reg(vtg->vtg_reg, val); if (ret < 0) goto out; -set_voltage: ret = menelaus_write_reg(vtg->mode_reg, mode); out: mutex_unlock(&the_menelaus->lock); |