linux-stable/arch/m68k
Alexandre Ghiti c4a05cf0ed mm: Introduce flush_cache_vmap_early()
[ Upstream commit 7a92fc8b4d ]

The pcpu setup when using the page allocator sets up a new vmalloc
mapping very early in the boot process, so early that it cannot use the
flush_cache_vmap() function which may depend on structures not yet
initialized (for example in riscv, we currently send an IPI to flush
other cpus TLB).

But on some architectures, we must call flush_cache_vmap(): for example,
in riscv, some uarchs can cache invalid TLB entries so we need to flush
the new established mapping to avoid taking an exception.

So fix this by introducing a new function flush_cache_vmap_early() which
is called right after setting the new page table entry and before
accessing this new mapping. This new function implements a local flush
tlb on riscv and is no-op for other architectures (same as today).

Signed-off-by: Alexandre Ghiti <alexghiti@rivosinc.com>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Dennis Zhou <dennis@kernel.org>
Stable-dep-of: d9807d60c1 ("riscv: mm: execute local TLB flush after populating vmemmap")
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-02-16 19:10:52 +01:00
..
68000
amiga
apollo
atari
bvme6000
coldfire
configs - An extensive rework of kexec and crash Kconfig from Eric DeVolder 2023-08-29 14:53:51 -07:00
emu
fpsp040
hp300
ifpsp060
include mm: Introduce flush_cache_vmap_early() 2024-02-16 19:10:52 +01:00
kernel m68knommu: updates and fixes for v6.6 2023-09-04 11:34:33 -07:00
lib
mac
math-emu
mm
mvme16x
mvme147
q40
sun3
sun3x
tools/amiga
virt
Kbuild
Kconfig
Kconfig.bus
Kconfig.cpu
Kconfig.debug
Kconfig.devices
Kconfig.machine
Makefile
install.sh