linux-stable/arch/nios2/include/asm
Alexandre Ghiti 7a92fc8b4d mm: Introduce flush_cache_vmap_early()
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>
2023-12-14 00:23:17 -08:00
..
Kbuild asm-generic: make more kernel-space headers mandatory 2020-04-02 09:35:25 -07:00
asm-macros.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 12 2019-05-21 11:28:45 +02:00
asm-offsets.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13 2019-05-21 11:28:45 +02:00
cache.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 12 2019-05-21 11:28:45 +02:00
cacheflush.h mm: Introduce flush_cache_vmap_early() 2023-12-14 00:23:17 -08:00
checksum.h unify generic instances of csum_partial_copy_nocheck() 2020-08-20 15:45:14 -04:00
cpuinfo.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13 2019-05-21 11:28:45 +02:00
delay.h
elf.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13 2019-05-21 11:28:45 +02:00
entry.h nios2: page fault et.al. are *not* restartable syscalls... 2022-08-15 11:25:31 -05:00
io.h nios2: remove __iounmap 2019-11-11 21:18:19 +01:00
irq.h nios2: Do not include linux/irqdomain.h from asm/irq.h 2021-06-10 13:09:15 +01:00
irqflags.h NIOS2: irqflags: rename a redefined register name 2021-10-18 11:22:59 -05:00
kgdb.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13 2019-05-21 11:28:45 +02:00
linkage.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 12 2019-05-21 11:28:45 +02:00
mmu.h
mmu_context.h nios2: use asm-generic/mmu_context.h for no-op implementations 2020-10-27 16:02:36 +01:00
page.h mm, arch: add generic implementation of pfn_valid() for FLATMEM 2023-02-09 16:51:41 -08:00
pgalloc.h nios2: convert __pte_free_tlb() to use ptdescs 2023-08-21 13:37:57 -07:00
pgtable-bits.h nios2/mm: support __HAVE_ARCH_PTE_SWP_EXCLUSIVE 2023-02-02 22:33:08 -08:00
pgtable.h Add x86 shadow stack support 2023-08-31 12:20:12 -07:00
processor.h nios2: remove unused INIT_MMAP 2022-11-08 17:37:19 -08:00
ptrace.h nios2: add force_successful_syscall_return() 2022-08-15 11:25:32 -05:00
registers.h NIOS2: irqflags: rename a redefined register name 2021-10-18 11:22:59 -05:00
setup.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13 2019-05-21 11:28:45 +02:00
shmparam.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
string.h
switch_to.h
syscall.h arch: remove unused function syscall_set_arguments() 2021-09-14 16:06:20 +02:00
syscalls.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
thread_info.h nios2: _TIF_ALLWORK_MASK is unused 2023-03-05 20:21:04 -05:00
timex.h nios2: use fallback for random_get_entropy() instead of zero 2022-05-13 23:59:23 +02:00
tlb.h arch/tlb: Clean up simple architectures 2019-04-03 10:32:54 +02:00
tlbflush.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13 2019-05-21 11:28:45 +02:00
traps.h
uaccess.h uaccess: remove CONFIG_SET_FS 2022-02-25 09:36:06 +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