linux-stable/arch/riscv/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
..
vdso riscv: Using TOOLCHAIN_HAS_ZIHINTPAUSE marco replace zihintpause 2023-10-31 19:15:54 -07:00
Kbuild RISC-V: Move to queued RW locks 2022-05-11 11:50:10 -07:00
acenv.h RISC-V: Add support to build the ACPI core 2023-06-01 08:45:01 -07:00
acpi.h RISC-V: ACPI: RHCT: Add function to get CBO block sizes 2023-10-26 09:40:33 -07:00
alternative-macros.h riscv: alternatives: fix a typo in comment 2023-08-02 13:49:07 -07:00
alternative.h Merge patch series "Add non-coherent DMA support for AX45MP" 2023-09-08 11:24:34 -07:00
asm-extable.h riscv: mm: stub extable related functions/macros for !MMU 2023-06-14 07:17:45 -07:00
asm-offsets.h
asm-prototypes.h riscv: VMAP_STACK overflow detection thread-safe 2023-10-27 14:43:05 -07:00
asm.h riscv: Implement Shadow Call Stack 2023-10-27 14:43:08 -07:00
assembler.h RISC-V: Add arch functions to support hibernation/suspend-to-disk 2023-04-29 11:25:13 -07:00
atomic.h locking/atomic: make atomic*_{cmp,}xchg optional 2023-06-05 09:57:14 +02:00
barrier.h riscv: introduce nops and __nops macros for NOP sequences 2022-07-21 17:17:29 -07:00
bitops.h RISC-V Patches for the 6.7 Merge Window, Part 2 2023-11-10 09:23:17 -08:00
bug.h bug: Use normal relative pointers in 'struct bug_entry' 2022-05-19 23:46:10 +02:00
cache.h riscv: allow kmalloc() caches aligned to the smallest value 2023-08-23 14:22:00 -07:00
cacheflush.h mm: Introduce flush_cache_vmap_early() 2023-12-14 00:23:17 -08:00
cacheinfo.h
cfi.h riscv: Add CFI error handling 2023-08-23 14:16:39 -07:00
clint.h
clocksource.h
cmpxchg.h locking/arch: Rename all internal __xchg() names to __arch_xchg() 2023-04-29 09:08:44 +02:00
compat.h riscv: compat: Add basic compat data type implementation 2022-04-26 13:36:12 -07:00
cpu.h RISC-V: Add support to build the ACPI core 2023-06-01 08:45:01 -07:00
cpu_ops.h RISC-V: Declare cpu_ops_spinwait in <asm/cpu_ops.h> 2022-08-11 13:06:47 -07:00
cpu_ops_sbi.h riscv: ensure cpu_ops_sbi is declared 2022-08-11 13:46:51 -07:00
cpufeature.h riscv: Rearrange hwcap.h and cpufeature.h 2023-11-09 10:15:51 -08:00
cpuidle.h RISC-V: Enable CPU_IDLE drivers 2022-03-10 09:29:21 -08:00
crash_core.h riscv: kdump: use generic interface to simplify crashkernel reservation 2023-10-04 10:41:58 -07:00
csr.h RISCV: KVM: Add sstateen0 context save/restore 2023-10-12 18:44:11 +05:30
current.h riscv: Rename "sp_in_global" to "current_stack_pointer" 2022-03-30 15:15:27 -07:00
delay.h
dma-noncoherent.h riscv: mm: dma-noncoherent: nonstandard cache operations support 2023-09-01 09:08:57 -07:00
efi.h Merge patch series "riscv: Introduce KASLR" 2023-09-08 11:25:13 -07:00
elf.h riscv: Rearrange hwcap.h and cpufeature.h 2023-11-09 10:15:51 -08:00
entry-common.h riscv: add support for misaligned trap handling in S-mode 2023-11-01 08:34:53 -07:00
errata_list.h RISC-V: capitalise CMO op macros 2023-11-05 09:11:23 -08:00
extable.h riscv: mm: stub extable related functions/macros for !MMU 2023-06-14 07:17:45 -07:00
fence.h
fixmap.h riscv: Move early dtb mapping into the fixmap region 2023-04-13 18:14:26 -07:00
ftrace.h riscv: Fix ftrace syscall handling which are now prefixed with __riscv_ 2023-10-12 11:35:48 -07:00
futex.h
gdb_xml.h
gpr-num.h riscv: Add X register names to gpr-nums 2022-10-02 10:17:58 +05:30
hugetlb.h mm: hugetlb: add huge page size param to set_huge_pte_at() 2023-09-29 17:20:47 -07:00
hwcap.h RISC-V Patches for the 6.7 Merge Window, Part 2 2023-11-10 09:23:17 -08:00
hwprobe.h RISC-V: hwprobe: Fix vDSO SIGSEGV 2023-11-02 14:05:30 -07:00
image.h
insn-def.h RISC-V: capitalise CMO op macros 2023-11-05 09:11:23 -08:00
insn.h RISC-V Patches for the 6.6 Merge Window, Part 1 2023-09-01 08:09:48 -07:00
io.h RISC-V: Fix MEMREMAP_WB for systems with Svpbmt 2022-12-08 15:43:58 -08:00
irq.h init: consolidate prototypes in linux/init.h 2023-06-09 17:44:16 -07:00
irq_stack.h riscv: Deduplicate IRQ stack switching 2023-10-27 14:43:06 -07:00
irq_work.h riscv: Fix irq_work when SMP is disabled 2022-06-01 21:46:31 -07:00
irqflags.h
jump_label.h riscv: jump_label: Fixup unaligned arch_static_branch function 2023-02-21 17:21:16 -08:00
kasan.h riscv: Implement sv48 support 2022-01-19 17:54:09 -08:00
kdebug.h
kexec.h RISC-V: kexec: Fix memory leak of fdt buffer 2022-12-05 10:59:51 -08:00
kfence.h riscv: Fix kfence now that the linear mapping can be backed by PUD/P4D/PGD 2023-06-07 07:13:53 -07:00
kgdb.h
kprobes.h riscv: Only consider swbp/ss handlers for correct privileged mode 2023-09-20 06:45:27 -07:00
kvm_aia.h RISC-V: KVM: Expose IMSIC registers as attributes of AIA irqchip 2023-06-19 22:27:58 +05:30
kvm_aia_aplic.h RISC-V: KVM: Add APLIC related defines 2023-06-18 21:24:36 +05:30
kvm_aia_imsic.h RISC-V: KVM: Add IMSIC related defines 2023-06-18 21:24:34 +05:30
kvm_host.h RISCV: KVM: Add sstateen0 context save/restore 2023-10-12 18:44:11 +05:30
kvm_types.h
kvm_vcpu_fp.h RISC-V: KVM: Improve ISA extension by using a bitmap 2022-07-29 17:14:11 +05:30
kvm_vcpu_insn.h RISC-V: KVM: Add extensible CSR emulation framework 2022-07-29 17:14:53 +05:30
kvm_vcpu_pmu.h RISC-V: KVM: Support firmware events 2023-02-07 20:36:06 +05:30
kvm_vcpu_sbi.h RISC-V: KVM: Forward SBI DBCN extension to user-space 2023-10-20 16:50:36 +05:30
kvm_vcpu_timer.h RISC-V: KVM: Fix kvm_riscv_vcpu_timer_pending() for Sstc 2022-10-21 11:52:45 +05:30
kvm_vcpu_vector.h RISC-V: KVM: Improve vector save/restore functions 2023-08-08 17:26:05 +05:30
linkage.h
mmio.h riscv,mmio: Fix readX()-to-delay() ordering 2023-08-08 15:28:37 -07:00
mmiowb.h
mmu.h riscv: support the elf-fdpic binfmt loader 2023-08-23 14:17:43 -07:00
mmu_context.h
mmzone.h
module.h riscv: module: move find_section to module.h 2023-01-31 23:29:39 -08:00
module.lds.h riscv module: remove (NOLOAD) 2022-03-29 14:31:07 -07:00
numa.h
page.h riscv: mm: Update the comment of CONFIG_PAGE_OFFSET 2023-10-31 19:15:55 -07:00
patch.h riscv: implement a memset like function for text 2023-09-06 06:26:06 -07:00
pci.h RISC-V Patches for the 5.20 Merge Window, Part 1 2022-08-06 15:04:48 -07:00
perf_event.h riscv: perf: Fix callchain parse error with kernel tracepoint events 2023-06-01 10:09:22 -07:00
pgalloc.h riscv: convert alloc_{pmd, pte}_late() to use ptdescs 2023-08-21 13:37:57 -07:00
pgtable-32.h RISC-V: Provide pgtable_l5_enabled on rv32 2023-10-31 19:15:50 -07:00
pgtable-64.h riscv: mm: update T-Head memory type definitions 2023-11-05 14:17:32 -08:00
pgtable-bits.h riscv: Improve PTDUMP to show RSW with non-zero value 2023-11-05 09:41:53 -08:00
pgtable.h riscv: Rearrange hwcap.h and cpufeature.h 2023-11-09 10:15:51 -08:00
probes.h
processor.h RISC-V Patches for the 6.7 Merge Window, Part 2 2023-11-10 09:23:17 -08:00
ptdump.h
ptrace.h riscv: entry: Convert to generic entry 2023-03-23 08:47:00 -07:00
sbi.h RISC-V Patches for the 6.7 Merge Window, Part 2 2023-11-10 09:23:17 -08:00
scs.h riscv: Use separate IRQ shadow call stacks 2023-10-27 14:43:09 -07:00
seccomp.h
sections.h
semihost.h riscv: Implement semihost.h for earlycon semihost driver 2023-01-19 14:58:19 +01:00
set_memory.h riscv: Prepare EFI header for relocatable kernels 2023-04-19 07:46:28 -07:00
signal.h RISC-V: Fix do_notify_resume / do_work_pending prototype 2023-01-24 22:13:15 -08:00
signal32.h riscv: compat: signal: Add rt_frame implementation 2022-05-17 16:37:21 -07:00
smp.h riscv: Switch to hotplug core state synchronization 2023-05-15 13:44:59 +02:00
soc.h
sparsemem.h riscv: Allow to dynamically define VA_BITS 2022-01-19 17:54:07 -08:00
stackprotector.h stackprotector: actually use get_random_canary() 2022-11-18 02:18:10 +01:00
stacktrace.h riscv: entry: Convert to generic entry 2023-03-23 08:47:00 -07:00
string.h RISC-V: add infrastructure to allow different str* implementations 2023-01-31 11:43:23 -08:00
suspend.h RISC-V: Add arch functions to support hibernation/suspend-to-disk 2023-04-29 11:25:13 -07:00
switch_to.h riscv: Rearrange hwcap.h and cpufeature.h 2023-11-09 10:15:51 -08:00
syscall.h riscv: Implement syscall wrappers 2023-08-23 14:16:36 -07:00
syscall_wrapper.h riscv: Implement syscall wrappers 2023-08-23 14:16:36 -07:00
thread_info.h riscv: Implement Shadow Call Stack 2023-10-27 14:43:08 -07:00
timex.h init: consolidate prototypes in linux/init.h 2023-06-09 17:44:16 -07:00
tlb.h riscv: Improve tlb_flush() 2023-11-06 07:20:49 -08:00
tlbflush.h mm: Introduce flush_cache_vmap_early() 2023-12-14 00:23:17 -08:00
topology.h Merge patch series "Introduce 64b relocatable kernel" 2023-04-19 07:47:45 -07:00
uaccess.h riscv: uaccess: fix type of 0 variable on error in get_user() 2023-01-05 12:30:41 -08:00
unistd.h riscv: Wire up memfd_secret in UAPI header 2022-06-01 21:46:36 -07:00
uprobes.h riscv: Only consider swbp/ss handlers for correct privileged mode 2023-09-20 06:45:27 -07:00
vdso.h riscv: alternative: patch alternatives in the vDSO 2023-01-31 23:29:42 -08:00
vector.h riscv: Rearrange hwcap.h and cpufeature.h 2023-11-09 10:15:51 -08:00
vendorid_list.h riscv: asm: vendorid_list: Add Andes Technology to the vendors list 2023-09-01 09:08:55 -07:00
vermagic.h
vmalloc.h riscv: Do not allow vmap pud mappings for 3-level page table 2023-08-10 08:53:17 -07:00
word-at-a-time.h
xip_fixup.h RISC-V: Split out the XIP fixups into their own file 2022-05-25 14:43:33 -07:00