2016-03-24 09:09:59

by Tirdea, Irina

[permalink] [raw]
Subject: [PATCH 1/1] iio: fix config watermark initial value

config structure is set to 0 when updating the buffers, so by
default config->watermark will be 0. When computing the minimum
between config->watermark and the buffer->watermark or
insert_buffer-watermark, this will always be 0 regardless of the
value set by the user for the buffer.

Set as initial value for config->watermark the maximum allowed
value so that the minimum value will always be set from one of the
buffers.

Signed-off-by: Irina Tirdea <[email protected]>
---
drivers/iio/industrialio-buffer.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/iio/industrialio-buffer.c b/drivers/iio/industrialio-buffer.c
index b976332..90462fc 100644
--- a/drivers/iio/industrialio-buffer.c
+++ b/drivers/iio/industrialio-buffer.c
@@ -653,6 +653,7 @@ static int iio_verify_update(struct iio_dev *indio_dev,
unsigned int modes;

memset(config, 0, sizeof(*config));
+ config->watermark = ~0;

/*
* If there is just one buffer and we are removing it there is nothing
--
1.9.1


2016-03-24 09:23:50

by Lars-Peter Clausen

[permalink] [raw]
Subject: Re: [PATCH 1/1] iio: fix config watermark initial value

On 03/24/2016 10:09 AM, Irina Tirdea wrote:
> config structure is set to 0 when updating the buffers, so by
> default config->watermark will be 0. When computing the minimum
> between config->watermark and the buffer->watermark or
> insert_buffer-watermark, this will always be 0 regardless of the
> value set by the user for the buffer.
>
> Set as initial value for config->watermark the maximum allowed
> value so that the minimum value will always be set from one of the
> buffers.
>
> Signed-off-by: Irina Tirdea <[email protected]>

Looks good. This bug was my fault, sorry.

Fixes: f0566c0c405d ("iio: Set device watermark based on watermark of all
attached buffers")

> ---
> drivers/iio/industrialio-buffer.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/iio/industrialio-buffer.c b/drivers/iio/industrialio-buffer.c
> index b976332..90462fc 100644
> --- a/drivers/iio/industrialio-buffer.c
> +++ b/drivers/iio/industrialio-buffer.c
> @@ -653,6 +653,7 @@ static int iio_verify_update(struct iio_dev *indio_dev,
> unsigned int modes;
>
> memset(config, 0, sizeof(*config));
> + config->watermark = ~0;
>
> /*
> * If there is just one buffer and we are removing it there is nothing
>

2016-03-28 10:02:23

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [PATCH 1/1] iio: fix config watermark initial value

On 24/03/16 09:23, Lars-Peter Clausen wrote:
> On 03/24/2016 10:09 AM, Irina Tirdea wrote:
>> config structure is set to 0 when updating the buffers, so by
>> default config->watermark will be 0. When computing the minimum
>> between config->watermark and the buffer->watermark or
>> insert_buffer-watermark, this will always be 0 regardless of the
>> value set by the user for the buffer.
>>
>> Set as initial value for config->watermark the maximum allowed
>> value so that the minimum value will always be set from one of the
>> buffers.
>>
>> Signed-off-by: Irina Tirdea <[email protected]>
>
> Looks good. This bug was my fault, sorry.
>
> Fixes: f0566c0c405d ("iio: Set device watermark based on watermark of all
> attached buffers")
Applied to the fixes-togreg-post-rc1 branch of iio.git and marked for stable.

Thanks,

Jonathan
>
>> ---
>> drivers/iio/industrialio-buffer.c | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/iio/industrialio-buffer.c b/drivers/iio/industrialio-buffer.c
>> index b976332..90462fc 100644
>> --- a/drivers/iio/industrialio-buffer.c
>> +++ b/drivers/iio/industrialio-buffer.c
>> @@ -653,6 +653,7 @@ static int iio_verify_update(struct iio_dev *indio_dev,
>> unsigned int modes;
>>
>> memset(config, 0, sizeof(*config));
>> + config->watermark = ~0;
>>
>> /*
>> * If there is just one buffer and we are removing it there is nothing
>>
>