Re: [PATCH] iio:accel:kxsd9 fix missing mutex unlock

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

 



On 11/13/13 20:39, Lars-Peter Clausen wrote:
> On 11/13/2013 09:27 PM, Jonathan Cameron wrote:
>> From: Frank Zago <frank@xxxxxxxx>
>>
>> This will leave a lock held after reading from the device, preventing
>> any further reads.
>>
>> Signed-off-by: Frank Zago <frank@xxxxxxxx>
>> Signed-off-by: Jonathan Cameron <jic23@xxxxxxxxxx>
>> ---
>> I have reworked this from a patch sent to me by Frank and put it
>> into the correct format.
>>
>> Frank, do you mind me adding your sign off on this. It's shorter
>> than your patch, but the effect is the same.  This approach of unlocking
>> before checking a return value is a common kernel idiom.
>>
>> Jonathan
>>
>>   drivers/iio/accel/kxsd9.c | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/iio/accel/kxsd9.c b/drivers/iio/accel/kxsd9.c
>> index d72118d1189c..12df91986dd2 100644
>> --- a/drivers/iio/accel/kxsd9.c
>> +++ b/drivers/iio/accel/kxsd9.c
>> @@ -112,6 +112,7 @@ static int kxsd9_read(struct iio_dev *indio_dev, u8 address)
>>       mutex_lock(&st->buf_lock);
>>       st->tx[0] = KXSD9_READ(address);
>>       ret = spi_sync_transfer(st->us, xfers, ARRAY_SIZE(xfers));
>> +    mutex_unlock(&st->buf_lock);
>>       if (ret)
>>           return ret;
>>       return (((u16)(st->rx[0])) << 8) | (st->rx[1] & 0xF0);
> 
> I think you'll need to hold the lock until you've actually read the data from the buffer.
Good point, I wasn't thinking through what it was actually for.  Frank was in fact much more correct. I'll post his
version in a sec.
> 
> - Lars
> 
> -- 
> 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