OSDN Git Service

mfd: menelaus: Remove null pointer dereference
authorHimangi Saraogi <himangi774@gmail.com>
Sat, 9 Aug 2014 16:40:27 +0000 (22:10 +0530)
committerLee Jones <lee.jones@linaro.org>
Fri, 26 Sep 2014 07:15:36 +0000 (08:15 +0100)
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>
drivers/mfd/menelaus.c

index 5e2667a..18ff56f 100644 (file)
@@ -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);