Re: [PATCH v2 0/5] iio: buffer: fix timestamp alignment (in rare case)
From: Jonathan Cameron
Date: Sun Apr 12 2026 - 10:21:12 EST
On Mon, 09 Mar 2026 14:15:41 +0000
Nuno Sá <noname.nuno@xxxxxxxxx> wrote:
> On Sat, 2026-03-07 at 19:44 -0600, David Lechner wrote:
> > In [1], it was pointed out that the iio_push_to_buffers_with_timestamp()
> > function is not putting the timestamp at the correct offset in the scan
> > buffer in rare cases where the largest scan element size is larger than
> > sizeof(int64_t).
> >
> > [1]: https://lore.kernel.org/linux-iio/20260215162351.79f40b32@jic23-huawei/
> >
> > This only affected one driver, namely hid-sensor-rotation since it is
> > the only driver that meets the condition. To fix things up, first we
> > fix the hid-sensor-rotation driver in a way that preserves compatibility
> > with the broken timestamp alignment. Then we are free to fix the core
> > IIO code without affecting any users.
> >
> > The first patch depends on [2] which is now in iio/fixes-togreg. It
> > should be OK to apply the first patch there and let the rest of the
> > patches go through iio/togreg (the later patches are just preventing
> > future bugs).
> >
> > [2]:
> > https://lore.kernel.org/linux-iio/20260228-iio-fix-repeat-alignment-v2-0-d58bfaa2920d@xxxxxxxxxxxx/
> >
> > Signed-off-by: David Lechner <dlechner@xxxxxxxxxxxx>
> > ---
>
> LGTM,
>
> Reviewed-by: Nuno Sá <nuno.sa@xxxxxxxxxx>
Applied 2-5 to the testing branch of iio.git.
Next cycle material so won't be in next until I can rebase on rc1.
Thanks,
Jonathan
>
> > Changes in v2:
> > - Don't say "HACK" in comments.
> > - Cache timestamp offset instead of largest scan element size.
> > - New patch to ensure size/alignment is always power of 2 bytes.
> > - Link to v1:
> > https://lore.kernel.org/r/20260301-iio-fix-timestamp-alignment-v1-0-1a54980bfb90@xxxxxxxxxxxx
> >
> > ---
> > David Lechner (5):
> > iio: orientation: hid-sensor-rotation: add timestamp hack to not break userspace
> > iio: buffer: check return value of iio_compute_scan_bytes()
> > iio: buffer: cache timestamp offset in scan buffer
> > iio: buffer: ensure repeat alignment is a power of two
> > iio: buffer: fix timestamp alignment when quaternion in scan
> >
> > drivers/iio/industrialio-buffer.c | 46 ++++++++++++++++++++-------
> > drivers/iio/orientation/hid-sensor-rotation.c | 22 +++++++++++--
> > include/linux/iio/buffer.h | 12 +++++--
> > include/linux/iio/iio.h | 3 ++
> > 4 files changed, 66 insertions(+), 17 deletions(-)
> > ---
> > base-commit: 6f25a6105c41a7d6b12986dbe80ded396a5667f8
> > change-id: 20260228-iio-fix-timestamp-alignment-89ade1af458b
> > prerequisite-message-id: <20260228-iio-fix-repeat-alignment-v2-0-d58bfaa2920d@xxxxxxxxxxxx>
> > prerequisite-patch-id: e155a526d57c5759a2fcfbfca7f544cb419addfd
> > prerequisite-patch-id: 6c69eaad0dd2ae69bd2745e7d387f739fc1a9ba0
> >
> > Best regards,
> > --
> > David Lechner <dlechner@xxxxxxxxxxxx>
>