]> git.hungrycats.org Git - linux/commit
parisc: fix a possible DMA corruption
authorMikulas Patocka <mpatocka@redhat.com>
Sat, 27 Jul 2024 18:22:52 +0000 (20:22 +0200)
committerHelge Deller <deller@gmx.de>
Mon, 29 Jul 2024 14:19:07 +0000 (16:19 +0200)
commit7ae04ba36b381bffe2471eff3a93edced843240f
tree21ffe22db1baa2cfa54ac2feffca011bffc94c9f
parent1fd2c10acb7b35d72101a4619ee5b2cddb9efd3a
parisc: fix a possible DMA corruption

ARCH_DMA_MINALIGN was defined as 16 - this is too small - it may be
possible that two unrelated 16-byte allocations share a cache line. If
one of these allocations is written using DMA and the other is written
using cached write, the value that was written with DMA may be
corrupted.

This commit changes ARCH_DMA_MINALIGN to be 128 on PA20 and 32 on PA1.1 -
that's the largest possible cache line size.

As different parisc microarchitectures have different cache line size, we
define arch_slab_minalign(), cache_line_size() and
dma_get_cache_alignment() so that the kernel may tune slab cache
parameters dynamically, based on the detected cache line size.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Cc: stable@vger.kernel.org
Signed-off-by: Helge Deller <deller@gmx.de>
arch/parisc/Kconfig
arch/parisc/include/asm/cache.h