Re: [PATCH] iio:st_sensors: Fix oops when probing SPI devices

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

 



On 23/04/15 04:04, Denis Ciocca wrote:
> Hi Alban,
> 
> after several months I'm finally back. I already did this patch, but I had no time to submit. Thanks to your support it is ok for me!
> 
Welcome back ;)
> We need to propagate also the patch to fix previous kernel versions...
> 
> Acked-by: Denis Ciocca <denis.ciocca@xxxxxx>
> 
Applied to the fixes-togreg branch of iio.git and marked for stable.

Jonathan
> 
> Denis
> 
> 
> On 04/20/2015 07:57 PM, Alban Bedel wrote:
>> In SPI mode the transfer buffer is locked with a mutex. However this
>> mutex is only initilized after the probe, but some transfer needs to
>> be done in the probe.
>>
>> To fix this bug we move the mutex initialization at the beginning of
>> the device probe.
>>
>> Signed-off-by: Alban Bedel <alban.bedel@xxxxxxxxxxxxxxxxx>
>> ---
>>   drivers/iio/accel/st_accel_core.c               | 1 +
>>   drivers/iio/common/st_sensors/st_sensors_core.c | 2 --
>>   drivers/iio/gyro/st_gyro_core.c                 | 1 +
>>   drivers/iio/magnetometer/st_magn_core.c         | 1 +
>>   drivers/iio/pressure/st_pressure_core.c         | 1 +
>>   5 files changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/iio/accel/st_accel_core.c b/drivers/iio/accel/st_accel_core.c
>> index 58d1d13..211b132 100644
>> --- a/drivers/iio/accel/st_accel_core.c
>> +++ b/drivers/iio/accel/st_accel_core.c
>> @@ -546,6 +546,7 @@ int st_accel_common_probe(struct iio_dev *indio_dev)
>>         indio_dev->modes = INDIO_DIRECT_MODE;
>>       indio_dev->info = &accel_info;
>> +    mutex_init(&adata->tb.buf_lock);
>>         st_sensors_power_enable(indio_dev);
>>   diff --git a/drivers/iio/common/st_sensors/st_sensors_core.c b/drivers/iio/common/st_sensors/st_sensors_core.c
>> index edd13d2..8dd0477 100644
>> --- a/drivers/iio/common/st_sensors/st_sensors_core.c
>> +++ b/drivers/iio/common/st_sensors/st_sensors_core.c
>> @@ -304,8 +304,6 @@ int st_sensors_init_sensor(struct iio_dev *indio_dev,
>>       struct st_sensors_platform_data *of_pdata;
>>       int err = 0;
>>   -    mutex_init(&sdata->tb.buf_lock);
>> -
>>       /* If OF/DT pdata exists, it will take precedence of anything else */
>>       of_pdata = st_sensors_of_probe(indio_dev->dev.parent, pdata);
>>       if (of_pdata)
>> diff --git a/drivers/iio/gyro/st_gyro_core.c b/drivers/iio/gyro/st_gyro_core.c
>> index 21395f2..ffe9664 100644
>> --- a/drivers/iio/gyro/st_gyro_core.c
>> +++ b/drivers/iio/gyro/st_gyro_core.c
>> @@ -400,6 +400,7 @@ int st_gyro_common_probe(struct iio_dev *indio_dev)
>>         indio_dev->modes = INDIO_DIRECT_MODE;
>>       indio_dev->info = &gyro_info;
>> +    mutex_init(&gdata->tb.buf_lock);
>>         st_sensors_power_enable(indio_dev);
>>   diff --git a/drivers/iio/magnetometer/st_magn_core.c b/drivers/iio/magnetometer/st_magn_core.c
>> index 8ade473..2e56f81 100644
>> --- a/drivers/iio/magnetometer/st_magn_core.c
>> +++ b/drivers/iio/magnetometer/st_magn_core.c
>> @@ -369,6 +369,7 @@ int st_magn_common_probe(struct iio_dev *indio_dev)
>>         indio_dev->modes = INDIO_DIRECT_MODE;
>>       indio_dev->info = &magn_info;
>> +    mutex_init(&mdata->tb.buf_lock);
>>         st_sensors_power_enable(indio_dev);
>>   diff --git a/drivers/iio/pressure/st_pressure_core.c b/drivers/iio/pressure/st_pressure_core.c
>> index 97baf40d..e881fa6 100644
>> --- a/drivers/iio/pressure/st_pressure_core.c
>> +++ b/drivers/iio/pressure/st_pressure_core.c
>> @@ -417,6 +417,7 @@ int st_press_common_probe(struct iio_dev *indio_dev)
>>         indio_dev->modes = INDIO_DIRECT_MODE;
>>       indio_dev->info = &press_info;
>> +    mutex_init(&press_data->tb.buf_lock);
>>         st_sensors_power_enable(indio_dev);
>>   
> 
> -- 
> 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

--
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