On 26/11/14 17:55, Lars-Peter Clausen wrote: > If a buffer implementation does not implement the set_length() callback the > length will be static and can not be changed by userspace. Mark the length > attribute as a read only property in this case so userspace is aware of this > rather than just silently accepting any length value. > > Signed-off-by: Lars-Peter Clausen <lars@xxxxxxxxxx> Nice little change. Thanks Jonathan > --- > drivers/iio/industrialio-buffer.c | 10 +++++++--- > 1 file changed, 7 insertions(+), 3 deletions(-) > > diff --git a/drivers/iio/industrialio-buffer.c b/drivers/iio/industrialio-buffer.c > index a4d3ff6..3e0c3a9 100644 > --- a/drivers/iio/industrialio-buffer.c > +++ b/drivers/iio/industrialio-buffer.c > @@ -416,8 +416,7 @@ static ssize_t iio_buffer_write_length(struct device *dev, > if (iio_buffer_is_active(indio_dev->buffer)) { > ret = -EBUSY; > } else { > - if (buffer->access->set_length) > - buffer->access->set_length(buffer, val); > + buffer->access->set_length(buffer, val); > ret = 0; > } > mutex_unlock(&indio_dev->mlock); > @@ -755,6 +754,8 @@ static const char * const iio_scan_elements_group_name = "scan_elements"; > > static DEVICE_ATTR(length, S_IRUGO | S_IWUSR, iio_buffer_read_length, > iio_buffer_write_length); > +static struct device_attribute dev_attr_length_ro = __ATTR(length, > + S_IRUGO, iio_buffer_read_length, NULL); > static DEVICE_ATTR(enable, S_IRUGO | S_IWUSR, > iio_buffer_show_enable, iio_buffer_store_enable); > > @@ -781,7 +782,10 @@ int iio_buffer_alloc_sysfs(struct iio_dev *indio_dev) > if (!buffer->buffer_group.attrs) > return -ENOMEM; > > - buffer->buffer_group.attrs[0] = &dev_attr_length.attr; > + if (buffer->access->set_length) > + buffer->buffer_group.attrs[0] = &dev_attr_length.attr; > + else > + buffer->buffer_group.attrs[0] = &dev_attr_length_ro.attr; > buffer->buffer_group.attrs[1] = &dev_attr_enable.attr; > if (buffer->attrs) > memcpy(&buffer->buffer_group.attrs[2], buffer->attrs, > -- 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