]> 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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 22 Nov 2024 14:37:35 +0000 (15:37 +0100)
commit00baca74fb5879e5f9034b6156671301f500f8ee
treee824bbcd30765f143aa474d726f6dc897fc882f7
parent777595da53aa11e7e2fa0332a2c4b0511086be39
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: Bin Lan <bin.lan.cn@windriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/parisc/Kconfig
arch/parisc/include/asm/cache.h