diff options
author | Matt Ranostay <matt.ranostay@intel.com> | 2016-03-02 22:18:12 -0500 |
---|---|---|
committer | Jonathan Cameron <jic23@kernel.org> | 2016-05-04 03:42:00 -0400 |
commit | 140afdd9626cdaaf54223e82931213de785c7c94 (patch) | |
tree | 9ba1b9bab9c5dfbc602b8a3807997ad18d6f7810 | |
parent | 431adc0aeca68d257bd705db50f73e4c19e5690d (diff) |
iio: imu: mpu6050: fix possible NULL dereferences
Fix possible null dereferencing of i2c and spi driver data.
Signed-off-by: Matt Ranostay <matt.ranostay@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
-rw-r--r-- | drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c | 3 | ||||
-rw-r--r-- | drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c index f581256d9d4c..d0c0e20c7122 100644 --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c | |||
@@ -117,6 +117,7 @@ static int inv_mpu_probe(struct i2c_client *client, | |||
117 | struct inv_mpu6050_state *st; | 117 | struct inv_mpu6050_state *st; |
118 | int result; | 118 | int result; |
119 | const char *name = id ? id->name : NULL; | 119 | const char *name = id ? id->name : NULL; |
120 | const int chip_type = id ? id->driver_data : 0; | ||
120 | struct regmap *regmap; | 121 | struct regmap *regmap; |
121 | 122 | ||
122 | if (!i2c_check_functionality(client->adapter, | 123 | if (!i2c_check_functionality(client->adapter, |
@@ -131,7 +132,7 @@ static int inv_mpu_probe(struct i2c_client *client, | |||
131 | } | 132 | } |
132 | 133 | ||
133 | result = inv_mpu_core_probe(regmap, client->irq, name, | 134 | result = inv_mpu_core_probe(regmap, client->irq, name, |
134 | NULL, id->driver_data); | 135 | NULL, chip_type); |
135 | if (result < 0) | 136 | if (result < 0) |
136 | return result; | 137 | return result; |
137 | 138 | ||
diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c index dea6c4361de0..7bcb8d839f05 100644 --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c | |||
@@ -46,6 +46,7 @@ static int inv_mpu_probe(struct spi_device *spi) | |||
46 | struct regmap *regmap; | 46 | struct regmap *regmap; |
47 | const struct spi_device_id *id = spi_get_device_id(spi); | 47 | const struct spi_device_id *id = spi_get_device_id(spi); |
48 | const char *name = id ? id->name : NULL; | 48 | const char *name = id ? id->name : NULL; |
49 | const int chip_type = id ? id->driver_data : 0; | ||
49 | 50 | ||
50 | regmap = devm_regmap_init_spi(spi, &inv_mpu_regmap_config); | 51 | regmap = devm_regmap_init_spi(spi, &inv_mpu_regmap_config); |
51 | if (IS_ERR(regmap)) { | 52 | if (IS_ERR(regmap)) { |
@@ -55,7 +56,7 @@ static int inv_mpu_probe(struct spi_device *spi) | |||
55 | } | 56 | } |
56 | 57 | ||
57 | return inv_mpu_core_probe(regmap, spi->irq, name, | 58 | return inv_mpu_core_probe(regmap, spi->irq, name, |
58 | inv_mpu_i2c_disable, id->driver_data); | 59 | inv_mpu_i2c_disable, chip_type); |
59 | } | 60 | } |
60 | 61 | ||
61 | static int inv_mpu_remove(struct spi_device *spi) | 62 | static int inv_mpu_remove(struct spi_device *spi) |