linux/arch/parisc/include/asm
Mikulas Patocka 00baca74fb parisc: fix a possible DMA corruption
commit 7ae04ba36b 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>
History 2024-11-22 15:37:35 +01:00
..
agp.h agp: define proper stubs for empty helpers 2022-01-29 22:24:25 +01:00
alternative.h parisc: Mark altinstructions read-only and 32-bit aligned 2023-12-08 08:51:16 +01:00
asm-offsets.h kbuild: move asm-offsets.h to include/generated 2009-12-12 13:08:14 +01:00
asmregs.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 153 2019-05-30 11:26:32 -07:00
assembly.h parisc: Avoid clobbering the C/B bits in the PSW with tophys and tovirt macros 2024-04-03 15:19:28 +02:00
atomic.h locking/atomic: parisc: move to ARCH_ATOMIC 2021-05-26 13:20:51 +02:00
barrier.h parisc: Add alternative patching to synchronize_caches define 2020-10-15 08:10:38 +02:00
bitops.h Revert "parisc: Show error if wrong 32/64-bit compiler is being used" 2022-08-22 11:09:17 +02:00
bug.h parisc: Fix asm operand number out of range build error in bug table 2023-12-13 18:39:24 +01:00
cache.h parisc: fix a possible DMA corruption 2024-11-22 15:37:35 +01:00
cacheflush.h parisc: Fix flush_dcache_page() for usage from irq context 2023-05-30 14:03:18 +01:00
checksum.h parisc: Strip upper 32 bit of sum in csum_ipv6_magic for 64-bit builds 2024-04-03 15:19:28 +02:00
cmpxchg.h locking/atomic: parisc: move to ARCH_ATOMIC 2021-05-26 13:20:51 +02:00
compat.h asm-generic: compat: Cleanup duplicate definitions 2022-04-26 13:35:54 -07:00
compat_ucontext.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
current.h parisc: Reduce code size by optimizing get_current() function calls 2022-03-11 19:49:31 +01:00
delay.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
dma-mapping.h parisc: move internal implementation details out of <asm/dma-mapping.h> 2019-02-21 20:37:11 +01:00
dma.h PCI: Move isa_dma_bridge_buggy out of asm/dma.h 2022-07-22 17:24:47 -05:00
dwarf.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
eisa_bus.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
eisa_eeprom.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
elf.h parisc: Add vDSO support 2022-03-11 19:49:30 +01:00
extable.h parisc: Fix random data corruption from exception handler 2024-02-23 09:12:50 +01:00
fb.h parisc/stifb: Fix fb_is_primary_device() only available with CONFIG_FB_STI 2022-06-07 13:01:17 +02:00
fixmap.h parisc: Don't hardcode assembler bit definitions in tmpalias code 2022-05-23 13:44:24 +02:00
floppy.h arch/*/: remove CONFIG_VIRT_TO_BUS 2022-06-28 13:20:21 +02:00
ftrace.h parisc/ftrace: Add ARCH_SUPPORTS_FTRACE_OPS support 2019-08-03 08:56:57 +02:00
futex.h uaccess: remove CONFIG_SET_FS 2022-02-25 09:36:06 +01:00
grfioctl.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
hardirq.h softirq: Move __ARCH_HAS_DO_SOFTIRQ to Kconfig 2021-02-10 23:34:16 +01:00
hardware.h parisc: Avoid printing the hardware path twice 2022-10-31 15:37:14 +01:00
hash.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hugetlb.h mm: change huge_ptep_clear_flush() to return the original pte 2022-05-13 16:48:55 -07:00
ide.h parisc: Drop ifdef __KERNEL__ from non-uapi kernel headers 2021-11-01 07:36:00 +01:00
io.h parisc: hide ioread64 declaration on 32-bit 2022-09-12 21:27:19 +02:00
irq.h parisc: Remove leftover reference to the power_tasklet 2021-01-26 19:57:26 +01:00
irqflags.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
jump_label.h work around gcc bugs with 'asm goto' with outputs 2024-02-23 09:12:28 +01:00
kbdleds.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
Kbuild parisc: syscalls: switch to generic syscalltbl.sh 2021-04-27 09:43:56 +02:00
kexec.h parisc: fix compilation when KEXEC=n and KEXEC_FILE=y 2019-12-15 21:05:38 +01:00
kfence.h parisc: Add KFENCE support 2021-10-30 23:11:00 +02:00
kgdb.h parisc: add KGDB support 2019-05-03 23:47:38 +02:00
kprobes.h parisc: Avoid using hardware single-step in kprobes 2022-03-18 09:10:14 +01:00
ldcw.h parisc: Mark lock_aligned variables 16-byte aligned on SMP 2023-12-08 08:51:15 +01:00
led.h parisc: led: Fix LAN receive and transmit LEDs 2023-09-19 12:27:57 +02:00
linkage.h parisc: Fix boot failure of 64-bit kernel 2018-08-21 14:32:44 +02:00
machdep.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mckinley.h parisc: Drop ifdef __KERNEL__ from non-uapi kernel headers 2021-11-01 07:36:00 +01:00
mmu.h parisc: Add vDSO support 2022-03-11 19:49:30 +01:00
mmu_context.h parisc: Use constants to encode the space registers like SR_KERNEL 2022-03-11 19:49:31 +01:00
mmzone.h parisc: Switch from DISCONTIGMEM to SPARSEMEM 2019-05-03 23:47:40 +02:00
module.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
page.h parisc: Define HAVE_ARCH_HUGETLB_UNMAPPED_AREA 2024-06-16 13:41:40 +02:00
parisc-device.h parisc: Make struct parisc_driver::remove() return void 2021-08-30 10:18:25 +02:00
parport.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
patch.h parisc: add support for patching multiple words 2019-06-08 12:56:25 +02:00
pci.h PCI: Remove pci_get_legacy_ide_irq() and asm-generic/pci.h 2022-07-22 17:23:45 -05:00
pdc.h parisc: Replace regular spinlock with spin_trylock on panic path 2023-05-24 17:32:42 +01:00
pdc_chassis.h treewide: remove editor modelines and cruft 2021-05-07 00:26:34 -07:00
pdcpat.h parisc: Add PDC locking functions for rendezvous code 2022-03-29 21:37:12 +02:00
perf.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
perf_event.h irq_work: Add generic hardirq context callbacks 2010-10-18 19:58:50 +02:00
pgalloc.h parisc: rename PGD_ORDER to PGD_TABLE_ORDER 2022-07-17 17:14:43 -07:00
pgtable.h mm: remove kern_addr_valid() completely 2024-11-08 16:26:39 +01:00
prefetch.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
processor.h kernel: exit: cleanup release_thread() 2022-09-11 21:55:07 -07:00
psw.h parisc: asm: psw.h: missing header guard 2019-06-25 14:52:26 +02:00
ptrace.h parisc: Use PRIV_USER and PRIV_KERNEL in ptrace.h 2021-11-01 07:36:00 +01:00
ropes.h parisc: sba: Fix compile warning wrt list of SBA devices 2023-10-06 14:56:51 +02:00
rt_sigframe.h parisc: Add vDSO support 2022-03-11 19:49:30 +01:00
runway.h parisc: Drop ifdef __KERNEL__ from non-uapi kernel headers 2021-11-01 07:36:00 +01:00
seccomp.h parisc: Enable seccomp architecture tracking 2020-11-20 11:16:34 -08:00
sections.h asm-generic: Refactor dereference_[kernel]_function_descriptor() 2022-02-16 23:25:11 +11:00
serial.h parisc: remove empty SERIAL_PORT_DFNS in serial.h 2013-11-30 21:02:18 +01:00
shmparam.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
signal.h parisc: Define sigset_t in parisc uapi header 2024-06-16 13:41:41 +02:00
smp.h parisc: Implement __cpu_die() and __cpu_disable() for CPU hotplugging 2022-03-29 21:37:12 +02:00
socket.h parisc: Define O_NONBLOCK to become 000200000 2020-10-15 08:10:38 +02:00
sparsemem.h parisc: Switch from DISCONTIGMEM to SPARSEMEM 2019-05-03 23:47:40 +02:00
special_insns.h parisc: Fix random data corruption from exception handler 2024-02-23 09:12:50 +01:00
spinlock.h locking: Remove spin_lock_flags() etc 2021-10-30 16:37:28 +02:00
spinlock_types.h parisc: Restore __ldcw_align for PA-RISC 2.0 processors 2023-10-10 22:00:45 +02:00
string.h Revert "parisc: Add assembly implementations for memset, strlen, strcpy, strncpy and strcat" 2021-08-29 10:13:32 -07:00
superio.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
switch_to.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
syscall.h parisc: define syscall_get_error() 2019-07-16 19:23:24 -07:00
thread_info.h parisc: move CPU field back into thread_info 2021-11-04 11:21:47 +01:00
timex.h parisc: define get_cycles macro for arch-override 2022-05-13 23:59:23 +02:00
tlb.h parisc: use pgtable-nopXd instead of 4level-fixup 2019-12-04 19:44:15 -08:00
tlbflush.h parisc: Add vDSO support 2022-03-11 19:49:30 +01:00
topology.h parisc: Switch from GENERIC_CPU_DEVICES to GENERIC_ARCH_TOPOLOGY 2022-03-29 21:37:12 +02:00
traps.h parisc: Fix handling off probe non-access faults 2022-03-11 19:49:30 +01:00
uaccess.h parisc: Fix random data corruption from exception handler 2024-02-23 09:12:50 +01:00
ucontext.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
unaligned.h parisc: Drop ifdef __KERNEL__ from non-uapi kernel headers 2021-11-01 07:36:00 +01:00
unistd.h RISC-V Patches for the 5.19 Merge Window, Part 1 2022-05-31 14:10:54 -07:00
unwind.h parisc: Consolidate unwind initialization calls 2018-08-17 17:00:08 +02:00
vdso.h parisc: Add vDSO support 2022-03-11 19:49:30 +01:00
vmalloc.h mm/vmalloc: Add empty <asm/vmalloc.h> headers and use them from <linux/vmalloc.h> 2019-12-10 10:12:55 +01:00