linux/arch/riscv/include/asm
Alexandre Ghiti 7e3811521d
riscv: Implement flush_cache_vmap()
The RISC-V kernel needs a sfence.vma after a page table modification: we
used to rely on the vmalloc fault handling to emit an sfence.vma, but
commit 7d3332be01 ("riscv: mm: Pre-allocate PGD entries for
vmalloc/modules area") got rid of this path for 64-bit kernels, so now we
need to explicitly emit a sfence.vma in flush_cache_vmap().

Note that we don't need to implement flush_cache_vunmap() as the generic
code should emit a flush tlb after unmapping a vmalloc region.

Fixes: 7d3332be01 ("riscv: mm: Pre-allocate PGD entries for vmalloc/modules area")
Signed-off-by: Alexandre Ghiti <alexghiti@rivosinc.com>
Link: https://lore.kernel.org/r/20230725132246.817726-1-alexghiti@rivosinc.com
Cc: stable@vger.kernel.org
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
2023-08-10 08:54:29 -07:00
..
vdso RISC-V: Add hwprobe vDSO function and data 2023-04-18 15:48:18 -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: Fix acpi_os_ioremap to return iomem address 2023-08-02 13:49:43 -07:00
alternative-macros.h RISC-V: alternatives: Support patching multiple insns in assembly 2023-03-14 21:26:01 -07:00
alternative.h RISC-V: hwprobe: Remove __init on probe_vendor_features() 2023-04-25 21:58:42 -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: entry: Convert to generic entry 2023-03-23 08:47:00 -07:00
asm.h riscv: entry: Consolidate general regs saving/restoring 2023-03-23 08:47:03 -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 include: move find.h from asm_generic to linux 2022-01-15 08:47:31 -08:00
bug.h bug: Use normal relative pointers in 'struct bug_entry' 2022-05-19 23:46:10 +02:00
cache.h riscv: Add support for non-coherent devices using zicbom extension 2022-07-28 15:30:51 -07:00
cacheflush.h riscv: Implement flush_cache_vmap() 2023-08-10 08:54:29 -07:00
cacheinfo.h
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_ops_sbi.h riscv: ensure cpu_ops_sbi is declared 2022-08-11 13:46:51 -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.h RISC-V: Add support to build the ACPI core 2023-06-01 08:45:01 -07:00
cpufeature.h RISC-V: Track ISA extensions per hart 2023-06-19 09:51:22 -07:00
cpuidle.h RISC-V: Enable CPU_IDLE drivers 2022-03-10 09:29:21 -08:00
csr.h ARM64: 2023-07-03 15:32:22 -07:00
current.h riscv: Rename "sp_in_global" to "current_stack_pointer" 2022-03-30 15:15:27 -07:00
delay.h
efi.h efi: Discover BTI support in runtime services regions 2023-02-04 09:19:02 +01:00
elf.h riscv: hwcap: change ELF_HWCAP to a function 2023-06-08 07:16:52 -07:00
entry-common.h riscv: entry: Convert to generic entry 2023-03-23 08:47:00 -07:00
errata_list.h Merge patch series "Remove toolchain dependencies for Zicbom" 2023-02-14 21:33:27 -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: ftrace: Enable HAVE_FUNCTION_GRAPH_RETVAL 2023-06-22 10:39:56 -04:00
futex.h riscv: extable: add a dedicated uaccess handler 2022-01-05 17:53:29 -08:00
gdb_xml.h
gpr-num.h riscv: Add X register names to gpr-nums 2022-10-02 10:17:58 +05:30
hugetlb.h riscv: Implement missing huge_ptep_get 2023-06-01 18:15:37 -07:00
hwcap.h Merge patch series "ISA string parser cleanups" 2023-06-23 10:06:20 -07:00
hwprobe.h RISC-V: hwprobe: Support probing of misaligned access performance 2023-04-18 15:48:16 -07:00
image.h
insn-def.h RISC-V: Use Zicboz in clear_page when available 2023-03-14 21:26:06 -07:00
insn.h riscv: Allocate user's vector context in the first-use trap 2023-06-08 07:16:44 -07:00
io.h RISC-V: Fix MEMREMAP_WB for systems with Svpbmt 2022-12-08 15:43:58 -08:00
irq_stack.h riscv: stack: Support HAVE_IRQ_EXIT_ON_IRQ_STACK 2023-06-22 10:38:35 -07:00
irq_work.h riscv: Fix irq_work when SMP is disabled 2022-06-01 21:46:31 -07:00
irq.h init: consolidate prototypes in linux/init.h 2023-06-09 17:44:16 -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
Kbuild RISC-V: Move to queued RW locks 2022-05-11 11:50:10 -07: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: add riscv rethook implementation 2022-12-02 13:04:05 -08:00
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_aia.h RISC-V: KVM: Expose IMSIC registers as attributes of AIA irqchip 2023-06-19 22:27:58 +05:30
kvm_host.h ARM64: 2023-07-03 15:32:22 -07:00
kvm_types.h KVM: RISC-V: Use common KVM implementation of MMU memory caches 2022-01-06 14:38:50 +05:30
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 riscv: kvm: define vcpu_sbi_ext_pmu in header 2023-06-19 22:28:00 +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 riscv: KVM: Add vector lazy save/restore support 2023-06-08 07:16:51 -07:00
linkage.h
mmio.h riscv,mmio: Fix readX()-to-delay() ordering 2023-08-08 15:28:37 -07:00
mmiowb.h
mmu_context.h riscv: add ASID-based tlbflushing methods 2021-06-30 20:55:39 -07:00
mmu.h Revert "riscv: mm: notify remote harts about mmu cache updates" 2023-03-09 15:22:01 -08:00
mmzone.h riscv: Add numa support for riscv64 platform 2021-01-14 15:08:58 -08:00
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 riscv: Add numa support for riscv64 platform 2021-01-14 15:08:58 -08:00
page.h Merge patch series "riscv: Use PUD/P4D/PGD pages for the linear mapping" 2023-04-18 20:43:07 -07:00
patch.h RISC-V: Don't check text_mutex during stop_machine 2023-03-09 14:58:51 -08: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: Sync efi page table's kernel mappings before switching 2022-11-28 16:36:34 -08:00
pgtable-32.h riscv: add RISC-V Svpbmt extension support 2022-05-11 21:36:33 -07:00
pgtable-64.h riscv: mm: modify pte format for Svnapot 2023-03-07 19:39:15 -08:00
pgtable-bits.h riscv/mm: support __HAVE_ARCH_PTE_SWP_EXCLUSIVE 2023-02-02 22:33:09 -08:00
pgtable.h riscv: mm: fix 2 instances of -Wmissing-variable-declarations 2023-08-08 15:31:34 -07:00
probes.h riscv: Add kprobes supported 2021-01-14 15:09:06 -08:00
processor.h Merge patch series "ISA string parser cleanups" 2023-06-23 10:06:20 -07:00
ptdump.h
ptrace.h riscv: entry: Convert to generic entry 2023-03-23 08:47:00 -07:00
sbi.h RISC-V: Align SBI probe implementation with spec 2023-04-29 13:04:50 -07:00
seccomp.h
sections.h riscv: Map the kernel with correct permissions the first time 2021-06-30 21:18:58 -07:00
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
signal32.h riscv: compat: signal: Add rt_frame implementation 2022-05-17 16:37:21 -07:00
signal.h RISC-V: Fix do_notify_resume / do_work_pending prototype 2023-01-24 22:13:15 -08: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: Add task switch support for vector 2023-06-08 07:16:43 -07:00
syscall.h Merge patch series "RISC-V Hardware Probing User Interface" 2023-04-18 19:49:51 -07:00
thread_info.h riscv: stack: Add config of thread stack size 2023-06-22 10:38:37 -07:00
timex.h init: consolidate prototypes in linux/init.h 2023-06-09 17:44:16 -07:00
tlb.h
tlbflush.h riscv: mm: Fix incorrect ASID argument when flushing TLB 2023-03-21 15:55:19 -07: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: Add uprobes supported 2021-01-14 15:09:08 -08:00
vdso.h riscv: alternative: patch alternatives in the vDSO 2023-01-31 23:29:42 -08:00
vector.h riscv: Discard vector state on syscalls 2023-07-04 08:59:24 -07:00
vendorid_list.h riscv: add memory-type errata for T-Head 2022-05-11 21:36:33 -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