summaryrefslogtreecommitdiffstats
path: root/drivers/iio/proximity
diff options
context:
space:
mode:
authorJonathan Cameron <Jonathan.Cameron@huawei.com>2021-05-01 18:01:14 +0100
committerJonathan Cameron <Jonathan.Cameron@huawei.com>2021-05-17 13:54:29 +0100
commit19f1a254fe4949fff1e67db386409f48cf438bd7 (patch)
tree8845ac8968e83c36d23d665ff042f617bc71f6ef /drivers/iio/proximity
parentf4ca2e2595d9fee65d5ce0d218b22ce00e5b2915 (diff)
downloadlinux-19f1a254fe4949fff1e67db386409f48cf438bd7.tar.gz
linux-19f1a254fe4949fff1e67db386409f48cf438bd7.tar.bz2
linux-19f1a254fe4949fff1e67db386409f48cf438bd7.zip
iio: prox: srf08: Fix buffer alignment in iio_push_to_buffers_with_timestamp()
To make code more readable, use a structure to express the channel layout and ensure the timestamp is 8 byte aligned. Found during an audit of all calls of uses of iio_push_to_buffers_with_timestamp() Fixes: 78f839029e1d ("iio: distance: srf08: add IIO driver for us ranger") Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Cc: Andreas Klinger <ak@it-klinger.de> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com> Link: https://lore.kernel.org/r/20210501170121.512209-13-jic23@kernel.org
Diffstat (limited to 'drivers/iio/proximity')
-rw-r--r--drivers/iio/proximity/srf08.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/iio/proximity/srf08.c b/drivers/iio/proximity/srf08.c
index 70beac5c9c1d..9b0886760f76 100644
--- a/drivers/iio/proximity/srf08.c
+++ b/drivers/iio/proximity/srf08.c
@@ -63,11 +63,11 @@ struct srf08_data {
int range_mm;
struct mutex lock;
- /*
- * triggered buffer
- * 1x16-bit channel + 3x16 padding + 4x16 timestamp
- */
- s16 buffer[8];
+ /* Ensure timestamp is naturally aligned */
+ struct {
+ s16 chan;
+ s64 timestamp __aligned(8);
+ } scan;
/* Sensor-Type */
enum srf08_sensor_type sensor_type;
@@ -190,9 +190,9 @@ static irqreturn_t srf08_trigger_handler(int irq, void *p)
mutex_lock(&data->lock);
- data->buffer[0] = sensor_data;
+ data->scan.chan = sensor_data;
iio_push_to_buffers_with_timestamp(indio_dev,
- data->buffer, pf->timestamp);
+ &data->scan, pf->timestamp);
mutex_unlock(&data->lock);
err: