Re: [PATCH 1/3] iio: imu: adis: ensure proper DMA alignment

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 17 Jan 2024 14:10:49 +0100
Nuno Sa <nuno.sa@xxxxxxxxxx> wrote:

> 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 the sigma_delta ADCs.
> 
> [1]: https://lore.kernel.org/linux-iio/20220508175712.647246-2-jic23@xxxxxxxxxx/
> 
> Fixes: ccd2b52f4ac6 ("staging:iio: Add common ADIS library")
> Signed-off-by: Nuno Sa <nuno.sa@xxxxxxxxxx>
Guess I didn't look in the main headers :(

Anyhow good to clean this straggler up.  I'll apply it to the fixes-togreg
branch of iio.git and mark it for stable.
I 'think' the definition of IIO_DMA_MINALIGN long got picked up by stable.

Jonathan

> ---
>  include/linux/iio/imu/adis.h | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/include/linux/iio/imu/adis.h b/include/linux/iio/imu/adis.h
> index dc9ea299e088..8898966bc0f0 100644
> --- a/include/linux/iio/imu/adis.h
> +++ b/include/linux/iio/imu/adis.h
> @@ -11,6 +11,7 @@
>  
>  #include <linux/spi/spi.h>
>  #include <linux/interrupt.h>
> +#include <linux/iio/iio.h>
>  #include <linux/iio/types.h>
>  
>  #define ADIS_WRITE_REG(reg) ((0x80 | (reg)))
> @@ -131,7 +132,7 @@ struct adis {
>  	unsigned long		irq_flag;
>  	void			*buffer;
>  
> -	u8			tx[10] ____cacheline_aligned;
> +	u8			tx[10] __aligned(IIO_DMA_MINALIGN);
>  	u8			rx[4];
>  };
>  
> 





[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux