linux-stable/arch/m68k/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 m68k: Remove <asm/export.h> 2023-08-21 13:27:43 +02:00
MC68EZ328.h
MC68VZ328.h
MC68328.h
adb_iop.h
amigahw.h
amigaints.h
amigayle.h
amipcmcia.h
apollohw.h
asm-offsets.h
asm-prototypes.h
atari_joystick.h
atari_stdma.h
atari_stram.h
atarihw.h
atariints.h
atarikb.h
atomic.h locking/atomic: m68k: add preprocessor symbols 2023-06-05 09:57:16 +02:00
bitops.h mm: delete checks for xor_unlock_is_negative_byte() 2023-10-18 14:34:17 -07:00
blinken.h
bootinfo.h
bootstd.h
bug.h
bvme6000hw.h
cache.h
cacheflush.h
cacheflush_mm.h mm: Introduce flush_cache_vmap_early() 2023-12-14 00:23:17 -08:00
cacheflush_no.h
checksum.h saner calling conventions for csum_and_copy_..._user() 2020-08-20 15:45:15 -04:00
cmpxchg.h locking/arch: Rename all internal __xchg() names to __arch_xchg() 2023-04-29 09:08:44 +02:00
coldfire.h
config.h m68k: Introduce a virtual m68k machine 2022-04-11 11:48:01 +02:00
contregs.h
current.h m68k: Implement "current_stack_pointer" 2022-02-26 20:32:03 -08:00
delay.h
div64.h m68k: Define __div64_32() to avoid a warning 2023-08-21 13:27:43 +02:00
dma.h PCI: Move isa_dma_bridge_buggy out of asm/dma.h 2022-07-22 17:24:47 -05:00
dsp56k.h
dvma.h m68k: sun3: Improve Sun3/3x DVMA abstraction in <asm/dvma.h> 2023-10-06 10:03:03 +02:00
elf.h m68knommu: add definitions to support elf_fdpic program loader 2022-05-16 13:18:30 +10:00
entry.h
fb.h fbdev: Replace fb_pgprotect() with pgprot_framebuffer() 2023-10-12 09:20:46 +02:00
fbio.h
flat.h
floppy.h
fpu.h
ftrace.h
hash.h
hp300hw.h
hwtest.h
idprom.h
intersil.h
io.h m68k: Introduce a virtual m68k machine 2022-04-11 11:48:01 +02:00
io_mm.h m68k: Fix indentation by 7 spaces in <asm/io_mm.h> 2023-10-16 14:30:39 +02:00
io_no.h
irq.h m68k: Add missing types to asm/irq.h 2023-10-06 10:03:04 +02:00
irqflags.h
kexec.h
kmap.h asm-generic/iomap.h: remove ARCH_HAS_IOREMAP_xx macros 2023-08-18 10:12:32 -07:00
linkage.h
m52xxacr.h
m53xxacr.h
m53xxsim.h
m54xxacr.h
m54xxgpt.h
m54xxpci.h
m54xxsim.h
m520xsim.h
m523xsim.h
m525xsim.h
m527xsim.h
m528xsim.h
m5206sim.h
m5272sim.h
m5307sim.h
m5407sim.h
m5441xsim.h m68k: m5441x: add flexcan support 2021-08-23 08:40:04 +10:00
mac_asc.h
mac_baboon.h
mac_iop.h
mac_oss.h
mac_psc.h
mac_via.h m68k: mac: Remove unused rbv_set_video_bpp() 2022-11-01 12:17:55 +01:00
machdep.h More power management updates for 5.19-rc1 2022-05-30 11:37:26 -07:00
machines.h
machw.h
macintosh.h
macints.h
math-emu.h
mc146818rtc.h
mcf8390.h
mcf_pgalloc.h m68k: convert various functions to use ptdescs 2023-08-21 13:37:56 -07:00
mcf_pgtable.h Add x86 shadow stack support 2023-08-31 12:20:12 -07:00
mcfclk.h m68k: coldfire: remove private clk_get/clk_put 2021-06-08 17:00:09 +02:00
mcfdma.h
mcfgpio.h m68k: coldfire: ensure gpio prototypes visible 2023-10-23 08:22:22 +10:00
mcfintc.h
mcfmmu.h
mcfpit.h
mcfqspi.h
mcfsim.h
mcfslt.h
mcftimer.h
mcfuart.h
mcfwdebug.h
mmu.h m68knommu: use asm-generic/mmu.h for nommu setups 2022-05-16 13:18:30 +10:00
mmu_context.h m68k: allow pte_offset_map[_lock]() to fail 2023-06-19 16:19:06 -07:00
module.h
module.lds.h kbuild: preprocess module linker script 2020-09-25 00:36:41 +09:00
motorola_pgalloc.h mm/thp: define default pmd_pgtable() 2021-07-01 11:06:03 -07:00
motorola_pgtable.h Add x86 shadow stack support 2023-08-31 12:20:12 -07:00
movs.h
mvme16xhw.h
mvme147hw.h m68k: mvme147,mvme16x: Don't wipe PCC timer config bits 2021-04-06 09:33:20 +02:00
natfeat.h
nettel.h m68knommu: fix compilation for ColdFire/Cleopatra boards 2023-10-23 08:22:22 +10:00
nubus.h
openprom.h
oplib.h m68k: sun3: Annotate prom_printf() with __printf() 2023-10-06 10:03:04 +02:00
page.h m68k: use asm-generic/memory_model.h for both MMU and !MMU 2023-02-09 16:51:40 -08:00
page_mm.h m68k: Fix indentation by 2 or 5 spaces in <asm/page_mm.h> 2023-10-16 14:30:39 +02:00
page_no.h m68k/mm: Make pfn accessors static inlines 2023-05-29 11:27:08 +02:00
page_offset.h
parport.h
pci.h PCI: Remove pci_get_legacy_ide_irq() and asm-generic/pci.h 2022-07-22 17:23:45 -05:00
pgalloc.h
pgtable.h m68k: mm: Move paging_init() to common <asm/pgtable.h> 2023-10-06 10:03:02 +02:00
pgtable_mm.h m68k: implement the new page table range API 2023-08-24 16:20:21 -07:00
pgtable_no.h m68k: mm: Move paging_init() to common <asm/pgtable.h> 2023-10-06 10:03:02 +02:00
processor.h kernel: exit: cleanup release_thread() 2022-09-11 21:55:07 -07:00
ptrace.h
q40_master.h
q40ints.h
quicc_simple.h
raw_io.h m68k: io: Mark mmio read addresses as const 2023-10-06 10:03:04 +02:00
seccomp.h m68k: Add kernel seccomp support 2023-01-30 16:40:15 +01:00
serial.h
setup.h m68k: Introduce a virtual m68k machine 2022-04-11 11:48:01 +02:00
signal.h
smp.h
string.h m68k: Add memcmp() declaration 2023-08-21 13:27:44 +02:00
sun3-head.h
sun3_pgalloc.h m68k: sun3: Fix indentation by 5 or 7 spaces 2023-10-16 14:30:39 +02:00
sun3_pgtable.h Add x86 shadow stack support 2023-08-31 12:20:12 -07:00
sun3ints.h
sun3mmu.h
sun3x.h
sun3xflop.h m68k: sun3x: Remove unneeded semicolon 2021-04-19 12:11:55 +02:00
sun3xprom.h
switch_to.h
syscall.h m68k: Add kernel seccomp support 2023-01-30 16:40:15 +01:00
syscalls.h m68k: kernel: Add and use <asm/syscalls.h> 2023-10-06 10:03:01 +02:00
thread_info.h m68k: Add kernel seccomp support 2023-01-30 16:40:15 +01:00
timex.h m68k: use fallback for random_get_entropy() instead of zero 2022-05-13 23:59:23 +02:00
tlb.h
tlbflush.h m68k: sun3: Fix indentation by 5 or 7 spaces 2023-10-16 14:30:39 +02:00
traps.h m68k: Leave stack mangling to asm wrapper of sigreturn() 2021-09-24 13:35:03 +02:00
uaccess.h uaccess: generalize access_ok() 2022-02-25 09:36:05 +01:00
ucontext.h
unistd.h
user.h asm/user.h: killed unused macros 2022-01-30 21:17:00 -05:00
vga.h
virt.h m68k: Introduce a virtual m68k machine 2022-04-11 11:48:01 +02:00
virtconvert.h arch/*/: remove CONFIG_VIRT_TO_BUS 2022-06-28 13:20:21 +02:00
vmalloc.h
zorro.h