linux-stable/arch/xtensa/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
..
asm-offsets.h
asm-prototypes.h xtensa: add asm-prototypes.h 2023-06-12 19:48:57 -07:00
asm-uaccess.h uaccess: remove CONFIG_SET_FS 2022-02-25 09:36:06 +01:00
asmmacro.h xtensa: add asm-prototypes.h 2023-06-12 19:48:57 -07:00
atomic.h locking/atomic: xtensa: add preprocessor symbols 2023-06-05 09:57:18 +02:00
barrier.h xtensa: enable KCSAN 2022-05-01 19:51:22 -07:00
bitops.h xtensa: enable KCSAN 2022-05-01 19:51:22 -07:00
bootparam.h treewide: Replace zero-length arrays with flexible-array members 2022-02-17 07:00:39 -06:00
cache.h
cacheasm.h
cacheflush.h mm: Introduce flush_cache_vmap_early() 2023-12-14 00:23:17 -08:00
checksum.h
cmpxchg.h locking/arch: Rename all internal __xchg() names to __arch_xchg() 2023-04-29 09:08:44 +02:00
coprocessor.h xtensa: support coprocessors on SMP 2022-05-01 19:51:23 -07:00
core.h xtensa: add default definition for XCHAL_HAVE_DIV32 2023-09-20 04:56:41 -07:00
current.h xtensa: Implement "current_stack_pointer" 2022-02-25 18:21:23 -08:00
delay.h
dma.h PCI: Move isa_dma_bridge_buggy out of asm/dma.h 2022-07-22 17:24:47 -05:00
elf.h xtensa: add FDPIC and static PIE support for noMMU 2022-09-13 18:28:00 -07:00
fixmap.h xtensa/mm/highmem: Make generic kmap_atomic() work correctly 2020-11-16 21:19:24 +01:00
flat.h
ftrace.h xtensa: drop ARCH_WANT_FRAME_POINTERS 2023-06-12 19:48:57 -07:00
futex.h futex: Fix additional regressions 2021-12-11 23:31:51 +01:00
highmem.h xtensa/mm/highmem: Make generic kmap_atomic() work correctly 2020-11-16 21:19:24 +01:00
hw_breakpoint.h xtensa: hw_breakpoint: include header for missing prototype 2023-09-20 05:03:21 -07:00
initialize_mmu.h docs: move xtensa documentation under Documentation/arch/ 2023-03-30 13:00:22 -06:00
io.h xtensa: mm: convert to GENERIC_IOREMAP 2023-08-18 10:12:35 -07:00
irq.h
irqflags.h
jump_label.h
kasan.h
Kbuild parport_pc: Also enable driver for PCI systems 2022-03-18 14:01:41 +01:00
kmem_layout.h xtensa: use CONFIG_USE_OF instead of CONFIG_OF 2021-09-27 06:08:58 -07:00
linkage.h
mmu.h
mmu_context.h
mtd-xip.h xtensa: add XIP-aware MTD support 2023-08-28 18:25:23 -07:00
mxregs.h
nommu_context.h
page.h mm, arch: add generic implementation of pfn_valid() for FLATMEM 2023-02-09 16:51:41 -08:00
pci-bridge.h xtensa: Remove unused early_read_config_byte() et al declarations 2022-03-06 20:17:09 -08:00
pci.h PCI: Remove pci_get_legacy_ide_irq() and asm-generic/pci.h 2022-07-22 17:23:45 -05:00
perf_event.h
pgalloc.h xtensa: drop definition of PGD_ORDER 2022-07-17 17:14:44 -07:00
pgtable.h Add x86 shadow stack support 2023-08-31 12:20:12 -07:00
platform.h xtensa: drop platform_halt and platform_power_off 2023-06-12 19:48:56 -07:00
processor.h xtensa: signal: include headers for function prototypes 2023-09-20 05:03:19 -07:00
ptrace.h xtensa: ptrace: add prototypes to <asm/ptrace.h> 2023-09-20 05:03:19 -07:00
regs.h
seccomp.h xtensa: Enable seccomp architecture tracking 2020-11-20 11:16:35 -08:00
sections.h xtensa: add XIP-aware MTD support 2023-08-28 18:25:23 -07:00
serial.h
shmparam.h
signal.h
smp.h xtensa: smp: add headers for missing function prototypes 2023-09-20 05:03:20 -07:00
spinlock.h locking/arch: Move qrwlock.h include after qspinlock.h 2021-02-11 07:59:54 -05:00
spinlock_types.h locking: Allow to include asm/spinlock_types.h from linux/spinlock_types_raw.h 2021-12-07 15:14:12 +01:00
stackprotector.h stackprotector: actually use get_random_canary() 2022-11-18 02:18:10 +01:00
stacktrace.h xtensa: Implement "current_stack_pointer" 2022-02-25 18:21:23 -08:00
string.h xtensa: drop bcopy implementation 2023-06-12 19:48:57 -07:00
switch_to.h
syscall.h arch: remove unused function syscall_set_arguments() 2021-09-14 16:06:20 +02:00
sysmem.h
thread_info.h xtensa: improve call0 ABI probing 2022-05-17 03:35:43 -07:00
timex.h xtensa: use fallback for random_get_entropy() instead of zero 2022-05-13 23:59:23 +02:00
tlb.h xtensa: tlb: include <asm/tlb.h> for missing prototype 2023-09-20 05:03:21 -07:00
tlbflush.h mm: update legacy flush_tlb_* to use vma 2021-06-29 10:53:52 -07:00
traps.h xtensa: add load/store exception handler 2023-06-13 21:56:27 -07:00
uaccess.h uaccess: remove CONFIG_SET_FS 2022-02-25 09:36:06 +01:00
ucontext.h
unistd.h
vectors.h
vermagic.h
vmalloc.h