diff options
author | Himangi Saraogi <himangi774@gmail.com> | 2014-08-09 12:40:27 -0400 |
---|---|---|
committer | Lee Jones <lee.jones@linaro.org> | 2014-09-26 03:15:36 -0400 |
commit | e0c8a1f52d0d3dc5f79ce04d7bf6da0782dcee16 (patch) | |
tree | 3ef61a9b36a9a26c05bb824a272ddc5c7a79093e /drivers/mfd | |
parent | 7821d9b24bf73eee7a4e3e3744f05c6eee88db48 (diff) |
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/mfd')
-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, | |||
466 | struct i2c_client *c = the_menelaus->client; | 466 | struct i2c_client *c = the_menelaus->client; |
467 | 467 | ||
468 | mutex_lock(&the_menelaus->lock); | 468 | mutex_lock(&the_menelaus->lock); |
469 | if (!vtg) | ||
470 | goto set_voltage; | ||
471 | 469 | ||
472 | ret = menelaus_read_reg(vtg->vtg_reg); | 470 | ret = menelaus_read_reg(vtg->vtg_reg); |
473 | if (ret < 0) | 471 | if (ret < 0) |
@@ -482,7 +480,6 @@ static int menelaus_set_voltage(const struct menelaus_vtg *vtg, int mV, | |||
482 | ret = menelaus_write_reg(vtg->vtg_reg, val); | 480 | ret = menelaus_write_reg(vtg->vtg_reg, val); |
483 | if (ret < 0) | 481 | if (ret < 0) |
484 | goto out; | 482 | goto out; |
485 | set_voltage: | ||
486 | ret = menelaus_write_reg(vtg->mode_reg, mode); | 483 | ret = menelaus_write_reg(vtg->mode_reg, mode); |
487 | out: | 484 | out: |
488 | mutex_unlock(&the_menelaus->lock); | 485 | mutex_unlock(&the_menelaus->lock); |