On Tue, Dec 12, 2023 at 10:36 PM Alexandre Ghiti <alexghiti@xxxxxxxxxxxx> wrote: > 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@xxxxxxxxxxxx> > arch/m68k/include/asm/cacheflush_mm.h | 1 + Acked-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds