Re: [PATCH v2 3/4] iio: ti-ads8688: Update buffer allocation for timestamps

From: Jonathan Cameron
Date: Sun Dec 16 2018 - 06:06:46 EST


On Tue, 11 Dec 2018 13:12:06 -0600
Dan Murphy <dmurphy@xxxxxx> wrote:

> Per Jonathan Cameron, the buffer needs to allocate room for a
> 64 bit timestamp as well as the channels. Change the buffer
> to allocate this additional space.
>
> Signed-off-by: Dan Murphy <dmurphy@xxxxxx>
Same question around data types as in the previous patch.

If you can track down the original patch that introduced the bug and add
add a fixes tag, that would be great as well. This one should go into
stable.

Thanks,

Jonathan
> ---
>
> v2 - New patch suggested change by maintainer - https://lore.kernel.org/patchwork/patch/1021048/
>
> drivers/iio/adc/ti-ads8688.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/iio/adc/ti-ads8688.c b/drivers/iio/adc/ti-ads8688.c
> index 184d686ebd99..3597bc0697ee 100644
> --- a/drivers/iio/adc/ti-ads8688.c
> +++ b/drivers/iio/adc/ti-ads8688.c
> @@ -385,7 +385,7 @@ static irqreturn_t ads8688_trigger_handler(int irq, void *p)
> {
> struct iio_poll_func *pf = p;
> struct iio_dev *indio_dev = pf->indio_dev;
> - u16 buffer[8];
> + unsigned short buffer[8 + sizeof(s64)/sizeof(short)];
Why change from a well defined size of data to one that is only
defined by the c spec to be no more than the size of an int?

> int i, j = 0;
>
> for (i = 0; i < indio_dev->masklength; i++) {