Skip to content

Commit 862cf85

Browse files
nunojsajic23
authored andcommitted
iio: commom: st_sensors: ensure proper DMA alignment
Aligning the buffer to the L1 cache is not sufficient in some platforms as they might have larger cacheline sizes for caches after L1 and thus, we can't guarantee DMA safety. That was the whole reason to introduce IIO_DMA_MINALIGN in [1]. Do the same for st_sensors common buffer. While at it, moved the odr_lock before buffer_data as we definitely don't want any other data to share a cacheline with the buffer. [1]: https://lore.kernel.org/linux-iio/20220508175712.647246-2-jic23@kernel.org/ Fixes: e031d5f ("iio:st_sensors: remove buffer allocation at each buffer enable") Signed-off-by: Nuno Sa <nuno.sa@analog.com> Cc: <Stable@vger.kernel.org> Link: https://lore.kernel.org/r/20240131-dev_dma_safety_stm-v2-1-580c07fae51b@analog.com Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
1 parent 621c625 commit 862cf85

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

include/linux/iio/common/st_sensors.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -258,9 +258,9 @@ struct st_sensor_data {
258258
bool hw_irq_trigger;
259259
s64 hw_timestamp;
260260

261-
char buffer_data[ST_SENSORS_MAX_BUFFER_SIZE] ____cacheline_aligned;
262-
263261
struct mutex odr_lock;
262+
263+
char buffer_data[ST_SENSORS_MAX_BUFFER_SIZE] __aligned(IIO_DMA_MINALIGN);
264264
};
265265

266266
#ifdef CONFIG_IIO_BUFFER

0 commit comments

Comments
 (0)