On 09/21/2013 01:59 PM, Jonathan Cameron wrote:
On 09/18/13 21:27, Lars-Peter Clausen wrote:
[...]
+int iio_update_buffers(struct iio_dev *indio_dev,
+ struct iio_buffer *insert_buffer,
+ struct iio_buffer *remove_buffer)
+{
+ int ret;
+
+ mutex_lock(&indio_dev->info_exist_lock);
+ mutex_lock(&indio_dev->mlock);
+
+ if (indio_dev->info == NULL)
+ return -ENODEV;
Yea, ok that happens when send patches way to late in the evening. Of course we still need to unlock here...
Any reason not to do the indio_dev->info test before locking in the first place?
The check and the updating needs to happen in one atomic step, otherwise the
updating might race against the iio_disable_all_buffers in the
iio_device_unregister function.
+ ret = __iio_update_buffers(indio_dev, insert_buffer, remove_buffer);
+
+ mutex_unlock(&indio_dev->mlock);
+ mutex_unlock(&indio_dev->info_exist_lock);
+
+ return ret;
+}
--
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