]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
parisc: fix a possible DMA corruption
authorMikulas Patocka <mpatocka@redhat.com>
Sat, 27 Jul 2024 18:22:52 +0000 (20:22 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 14 Dec 2024 18:51:11 +0000 (19:51 +0100)
commitdadac97f066a67334268132c1e2d0fd599fbcbec
treeaba2255870791089fb384db0e29cfa8c0b11e02c
parent487b128f07b82294bd0847c2c462dfcf1de9660a
parisc: fix a possible DMA corruption

commit 7ae04ba36b381bffe2471eff3a93edced843240f upstream.

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>
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/parisc/Kconfig
arch/parisc/include/asm/cache.h