| From 07b62dfad93d7c6d4f63a2fd485779b32cd65254 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Sun, 13 Jun 2021 16:23:00 +0100 |
| Subject: iio: light: vcnl4035: Fix buffer alignment in |
| iio_push_to_buffers_with_timestamp() |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| From: Jonathan Cameron <Jonathan.Cameron@huawei.com> |
| |
| [ Upstream commit ec90b52c07c0403a6db60d752484ec08d605ead0 ] |
| |
| Add __aligned(8) to ensure the buffer passed to |
| iio_push_to_buffers_with_timestamp() is suitable for the naturally |
| aligned timestamp that will be inserted. |
| |
| Here an explicit structure is not used, because the holes would |
| necessitate the addition of an explict memset(), to avoid a potential |
| kernel data leak, making for a less minimal fix. |
| |
| Fixes: 55707294c4eb ("iio: light: Add support for vishay vcnl4035") |
| Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> |
| Cc: Parthiban Nallathambi <pn@denx.de> |
| Reviewed-by: Nuno Sรก <nuno.sa@analog.com> |
| Link: https://lore.kernel.org/r/20210613152301.571002-8-jic23@kernel.org |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/iio/light/vcnl4035.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/iio/light/vcnl4035.c b/drivers/iio/light/vcnl4035.c |
| index 765c44adac57..1bd85e21fd11 100644 |
| --- a/drivers/iio/light/vcnl4035.c |
| +++ b/drivers/iio/light/vcnl4035.c |
| @@ -102,7 +102,8 @@ static irqreturn_t vcnl4035_trigger_consumer_handler(int irq, void *p) |
| struct iio_poll_func *pf = p; |
| struct iio_dev *indio_dev = pf->indio_dev; |
| struct vcnl4035_data *data = iio_priv(indio_dev); |
| - u8 buffer[ALIGN(sizeof(u16), sizeof(s64)) + sizeof(s64)]; |
| + /* Ensure naturally aligned timestamp */ |
| + u8 buffer[ALIGN(sizeof(u16), sizeof(s64)) + sizeof(s64)] __aligned(8); |
| int ret; |
| |
| ret = regmap_read(data->regmap, VCNL4035_ALS_DATA, (int *)buffer); |
| -- |
| 2.30.2 |
| |