On Sun, 27 Nov 2022 14:41:13 +0000 Jonathan Cameron <jic23@xxxxxxxxxx> wrote: > From: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> > > On some architectures (e.g. arm64), ____cachline_aligned only aligns > to the cacheline size of the L1 cache size. L1_CACHE_BYTES in > arch64/include/asm/cache.h Unfortunately DMA safety on these > architectures requires the buffer no share a last level cache cacheline > given by ARCH_DMA_MINALIGN which has a greater granularity. > ARCH_DMA_MINALIGN is not defined for all architectures, but when it is > defined it is used to set the size of ARCH_KMALLOC_MINALIGN > to allow DMA safe buffer allocations. > > As such the correct alignment requirement is > __aligned(ARCH_KMALLOC_MINALIGN). > This has recently been fixed in other subsystems such as IIO. > > Presumably this part is little used on boards where this could actually > matter so this is mostly about removing code that might be coppied > elsewhere. > > Fixes: 4feacbc24eea ("Input: add new driver for the Surface 3") > Signed-off-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> > Cc: Benjamin Tissoires <benjamin.tissoires@xxxxxxxxxx> Sigh. Sunday afternoon incompetence on my part... Dmitry, if everything else is fine with this series I can resend this or if you are feeling generous feel free to fix it up whilst applying ;) Jonathan > --- > drivers/input/touchscreen/surface3_spi.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/input/touchscreen/surface3_spi.c b/drivers/input/touchscreen/surface3_spi.c > index 1da23e5585a0..6c884fc2b332 100644 > --- a/drivers/input/touchscreen/surface3_spi.c > +++ b/drivers/input/touchscreen/surface3_spi.c > @@ -32,7 +32,7 @@ struct surface3_ts_data { > struct input_dev *pen_input_dev; > int pen_tool; > > - u8 rd_buf[SURFACE3_PACKET_SIZE] ____cacheline_aligned; > + u8 rd_buf[SURFACE3_PACKET_SIZE] __aligned(ARCH_KMALLOC_MINALIGN; Missing bracket. > }; > > struct surface3_ts_data_finger {