linux/arch/sparc
Alexandre Ghiti 2b89c3f9d3 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>
History 2024-02-16 19:14:25 +01:00
..
boot kbuild: factor out the common installation code into scripts/install.sh 2022-05-11 21:45:53 +09:00
configs arch/*/configs/*defconfig: Replace AUTOFS4_FS by AUTOFS_FS 2023-07-29 14:08:22 -07:00
crypto crypto: sparc/crc32c - stop using the shash alignmask 2023-10-27 18:04:24 +08:00
include mm: Introduce flush_cache_vmap_early() 2024-02-16 19:14:25 +01:00
kernel arch: fix asm-offsets.c building with -Wmissing-prototypes 2024-02-05 20:16:47 +00:00
lib sparc32: fix a braino in fault handling in csum_and_copy_..._user() 2023-10-27 20:06:06 -04:00
math-emu treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
mm mm: hugetlb: add huge page size param to set_huge_pte_at() 2023-09-29 17:20:47 -07:00
net net: remove skb->vlan_present 2022-11-11 18:18:05 -08:00
power treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
prom sparc64: Replace all non-returning strlcpy with strscpy 2023-06-14 12:04:06 -07:00
vdso kbuild: unify vdso_install rules 2023-10-28 21:09:02 +09:00
video arch/sparc: Add module license and description for fbdev helpers 2023-06-29 13:30:02 +02:00
Kbuild kbuild: use more subdir- for visiting subdirectories while cleaning 2021-10-24 13:49:46 +09:00
Kconfig Merge branch 'expand-stack' 2023-06-28 20:35:21 -07:00
Kconfig.debug watchdog/sparc64: define HARDLOCKUP_DETECTOR_SPARC64 2023-06-19 16:25:29 -07:00
Makefile kbuild: unify vdso_install rules 2023-10-28 21:09:02 +09:00