All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Laight <david.laight.linux@gmail.com>
To: Jonathan Cameron <jic23@kernel.org>
Cc: "David Lechner" <dlechner@baylibre.com>,
	"Nuno Sá" <nuno.sa@analog.com>,
	"Andy Shevchenko" <andy@kernel.org>,
	linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] iio: proximity: isl29501: use scan struct instead of array
Date: Fri, 18 Jul 2025 22:18:50 +0100	[thread overview]
Message-ID: <20250718221850.614d05b3@pumpkin> (raw)
In-Reply-To: <20250713150445.3965931c@jic23-huawei>

On Sun, 13 Jul 2025 15:04:45 +0100
Jonathan Cameron <jic23@kernel.org> wrote:

> On Fri, 11 Jul 2025 11:18:13 -0500
> David Lechner <dlechner@baylibre.com> wrote:
> 
> > Replace the scan buffer array with a struct that contains a single u32
> > for the data and an aligned_s64 for the timestamp. This makes it easier
> > to see the intended layout of the buffer and avoids the need to manually
> > calculate the number of extra elements needed for an aligned timestamp.
> > 
> > Signed-off-by: David Lechner <dlechner@baylibre.com>  
> Why are we using a u32 here?  It's a 16 bit
> read in that isl29501_register_read() call
> and storagebits = 16 in the chan spec.
> 
> So to me looks like you found a bug for big endian platforms.

Maybe not - it looks like there is a read on one place and write in another.
Both are passed the same address.
The interface looks very strange though.

But the updated code is writing uninitialised stack.

	David
 
> > ---
> >  drivers/iio/proximity/isl29501.c | 9 ++++++---
> >  1 file changed, 6 insertions(+), 3 deletions(-)
> > 
> > diff --git a/drivers/iio/proximity/isl29501.c b/drivers/iio/proximity/isl29501.c
> > index d1510fe2405088adc0998e28aa9f36e0186fafae..0eed14f66ab700473af10414b25a56458335b381 100644
> > --- a/drivers/iio/proximity/isl29501.c
> > +++ b/drivers/iio/proximity/isl29501.c
> > @@ -938,12 +938,15 @@ static irqreturn_t isl29501_trigger_handler(int irq, void *p)
> >  	struct iio_dev *indio_dev = pf->indio_dev;
> >  	struct isl29501_private *isl29501 = iio_priv(indio_dev);
> >  	const unsigned long *active_mask = indio_dev->active_scan_mask;
> > -	u32 buffer[4] __aligned(8) = {}; /* 1x16-bit + naturally aligned ts */
> > +	struct {
> > +		u32 data;
> > +		aligned_s64 ts;
> > +	} scan;
> >  
> >  	if (test_bit(ISL29501_DISTANCE_SCAN_INDEX, active_mask))
> > -		isl29501_register_read(isl29501, REG_DISTANCE, buffer);
> > +		isl29501_register_read(isl29501, REG_DISTANCE, &scan.data);
> >  
> > -	iio_push_to_buffers_with_timestamp(indio_dev, buffer, pf->timestamp);
> > +	iio_push_to_buffers_with_timestamp(indio_dev, &scan, pf->timestamp);
> >  	iio_trigger_notify_done(indio_dev->trig);
> >  
> >  	return IRQ_HANDLED;
> > 
> > ---
> > base-commit: f8f559752d573a051a984adda8d2d1464f92f954
> > change-id: 20250711-iio-use-more-iio_declare_buffer_with_ts-7-880ddf1d3070
> > 
> > Best regards,  
> 
> 


      reply	other threads:[~2025-07-18 21:18 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-11 16:18 [PATCH] iio: proximity: isl29501: use scan struct instead of array David Lechner
2025-07-11 16:44 ` Andy Shevchenko
2025-07-13 14:04 ` Jonathan Cameron
2025-07-18 21:18   ` David Laight [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250718221850.614d05b3@pumpkin \
    --to=david.laight.linux@gmail.com \
    --cc=andy@kernel.org \
    --cc=dlechner@baylibre.com \
    --cc=jic23@kernel.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nuno.sa@analog.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.