Re: [PATCH] iio: imu: mpu6050: fix possible NULL dereferences

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 03/03/16 03:18, Matt Ranostay wrote:
> Fix possible null dereferencing of i2c and spi driver data.
Is there actually a way of making this happen?  Far as I know
both i2c and spi should always provide an appropriate value...
Is it the absence of a dt match table that is causing the issue?

Jonathan
> 
> Signed-off-by: Matt Ranostay <matt.ranostay@xxxxxxxxx>
> ---
>  drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c | 3 ++-
>  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,
>  	struct inv_mpu6050_state *st;
>  	int result;
>  	const char *name = id ? id->name : NULL;
> +	const int chip_type = id ? id->driver_data : 0;
>  	struct regmap *regmap;
>  
>  	if (!i2c_check_functionality(client->adapter,
> @@ -131,7 +132,7 @@ static int inv_mpu_probe(struct i2c_client *client,
>  	}
>  
>  	result = inv_mpu_core_probe(regmap, client->irq, name,
> -				    NULL, id->driver_data);
> +				    NULL, chip_type);
>  	if (result < 0)
>  		return result;
>  
> 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)
>  	struct regmap *regmap;
>  	const struct spi_device_id *id = spi_get_device_id(spi);
>  	const char *name = id ? id->name : NULL;
> +	const int chip_type = id ? id->driver_data : 0;
>  
>  	regmap = devm_regmap_init_spi(spi, &inv_mpu_regmap_config);
>  	if (IS_ERR(regmap)) {
> @@ -55,7 +56,7 @@ static int inv_mpu_probe(struct spi_device *spi)
>  	}
>  
>  	return inv_mpu_core_probe(regmap, spi->irq, name,
> -				  inv_mpu_i2c_disable, id->driver_data);
> +				  inv_mpu_i2c_disable, chip_type);
>  }
>  
>  static int inv_mpu_remove(struct spi_device *spi)
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux