]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
iio: temp: maxim-thermocouple: Fix potential lack of DMA safe buffer.
authorJonathan Cameron <Jonathan.Cameron@huawei.com>
Sun, 13 Apr 2025 10:34:36 +0000 (11:34 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 18 May 2025 06:24:09 +0000 (08:24 +0200)
[ Upstream commit f79aeb6c631b57395f37acbfbe59727e355a714c ]

The trick of using __aligned(IIO_DMA_MINALIGN) ensures that there is
no overlap between buffers used for DMA and those used for driver
state storage that are before the marking. It doesn't ensure
anything above state variables found after the marking. Hence
move this particular bit of state earlier in the structure.

Fixes: 10897f34309b ("iio: temp: maxim_thermocouple: Fix alignment for DMA safety")
Reviewed-by: David Lechner <dlechner@baylibre.com>
Link: https://patch.msgid.link/20250413103443.2420727-14-jic23@kernel.org
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/iio/temperature/maxim_thermocouple.c

index c28a7a6dea5f125ddd1d37b76a478d5b5266d27b..555a61e2f3fdd179b551183aa5a6de445f6cc20a 100644 (file)
@@ -121,9 +121,9 @@ static const struct maxim_thermocouple_chip maxim_thermocouple_chips[] = {
 struct maxim_thermocouple_data {
        struct spi_device *spi;
        const struct maxim_thermocouple_chip *chip;
+       char tc_type;
 
        u8 buffer[16] __aligned(IIO_DMA_MINALIGN);
-       char tc_type;
 };
 
 static int maxim_thermocouple_read(struct maxim_thermocouple_data *data,