OpenCloudOS-Kernel/arch/sh
Alexandre Ghiti c4a05cf0ed mm: Introduce flush_cache_vmap_early()
[ Upstream commit 7a92fc8b4d20680e4c20289a670d8fca2d1f2c1b ]

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: d9807d60c145 ("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
..
boards sh: ecovec24: Rename missed backlight field from fbdev to dev 2024-01-31 16:18:48 -08:00
boot sh: Use generic GCC library routines 2023-04-25 09:16:47 +02:00
cchips sh: hd64461: Handle virq offset for offchip IRQ base and HD64461 IRQ 2023-07-13 08:37:53 +02:00
configs treewide: drop CONFIG_EMBEDDED 2023-08-21 13:46:25 -07:00
drivers sh: push-switch: Reorder cleanup operations to avoid use-after-free bug 2023-09-09 21:54:20 +02:00
include mm: Introduce flush_cache_vmap_early() 2024-02-16 19:10:52 +01:00
kernel arch: Register fchmodat2, usually as syscall 452 2023-07-27 12:25:35 +02:00
lib sh: Use generic GCC library routines 2023-04-25 09:16:47 +02:00
math-emu sh: math-emu: fix macro redefined warning 2023-03-23 10:00:03 +01:00
mm sh: mm: re-add lost __ref to ioremap_prot() to fix modpost warning 2023-09-19 13:21:32 -07:00
tools sh: Remove SH5-based Cayman platform 2020-08-14 22:05:06 -04:00
Kbuild sh: Move build rule for cchips/hd6446x/ to arch/sh/Kbuild 2023-07-05 18:55:18 +02:00
Kconfig - An extensive rework of kexec and crash Kconfig from Eric DeVolder 2023-08-29 14:53:51 -07:00
Kconfig.cpu docs: move superh documentation under Documentation/arch/ 2023-03-30 13:00:35 -06:00
Kconfig.debug sh: bios: Revive earlyprintk support 2023-11-20 11:59:22 +01:00
Makefile sh: Remove compiler flag duplication 2023-07-05 18:55:25 +02:00