WSL2-Linux-Kernel/arch/x86/mm
Rick Edgecombe ab5130186d x86/mm/cpa: Flush direct map alias during cpa
As an optimization, cpa_flush() was changed to optionally only flush
the range in @cpa if it was small enough.  However, this range does
not include any direct map aliases changed in cpa_process_alias(). So
small set_memory_() calls that touch that alias don't get the direct
map changes flushed. This situation can happen when the virtual
address taking variants are passed an address in vmalloc or modules
space.

In these cases, force a full TLB flush.

Note this issue does not extend to cases where the set_memory_() calls are
passed a direct map address, or page array, etc, as the primary target. In
those cases the direct map would be flushed.

Fixes: 935f583982 ("x86/mm/cpa: Optimize cpa_flush_array() TLB invalidation")
Signed-off-by: Rick Edgecombe <rick.p.edgecombe@intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/20200424105343.GA20730@hirez.programming.kicks-ass.net
2020-04-30 20:14:30 +02:00
..
pat x86/mm/cpa: Flush direct map alias during cpa 2020-04-30 20:14:30 +02:00
Makefile x86: mm: convert dump_pagetables to use walk_page_range 2020-02-04 03:05:25 +00:00
amdtopology.c
cpu_entry_area.c x86/doublefault/32: Move #DF stack and TSS to cpu_entry_area 2019-11-26 21:53:34 +01:00
debug_pagetables.c x86: mm: avoid allocating struct mm_struct on the stack 2020-02-04 03:05:25 +00:00
dump_pagetables.c x86/mm: Fix dump_pagetables with Xen PV 2020-02-29 12:43:10 +01:00
extable.c kill uaccess_try() 2020-03-26 15:02:14 -04:00
fault.c mm/vma: make vma_is_accessible() available for general use 2020-04-07 10:43:37 -07:00
highmem_32.c
hugetlbpage.c x86/mpx: remove MPX from arch/x86 2020-01-23 10:41:20 -08:00
ident_map.c
init.c x86/mm: thread pgprot_t through init_memory_mapping() 2020-04-10 15:36:21 -07:00
init_32.c mm/memory_hotplug: add pgprot_t to mhp_params 2020-04-10 15:36:21 -07:00
init_64.c mm/memory_hotplug: add pgprot_t to mhp_params 2020-04-10 15:36:21 -07:00
iomap_32.c x86/mm/pat: Rename <asm/pat.h> => <asm/memtype.h> 2019-12-10 10:12:55 +01:00
ioremap.c x86/ioremap: Fix CONFIG_EFI=n build 2020-03-19 10:55:56 +01:00
kasan_init_64.c x86/kasan: Print original address on #GP 2019-12-31 13:15:38 +01:00
kaslr.c
kmmio.c x86/mm/kmmio: Use this_cpu_ptr() instead get_cpu_var() for kmmio_ctx 2020-03-12 16:41:40 +01:00
maccess.c uaccess: Add strict non-pagefault kernel-space read function 2019-11-02 12:39:12 -07:00
mem_encrypt.c dma-mapping: treat dev->bus_dma_mask as a DMA limit 2019-11-21 18:14:35 +01:00
mem_encrypt_boot.S x86/asm: Change all ENTRY+ENDPROC to SYM_FUNC_* 2019-10-18 11:58:33 +02:00
mem_encrypt_identity.c
mm_internal.h x86/mm: thread pgprot_t through init_memory_mapping() 2020-04-10 15:36:21 -07:00
mmap.c x86/mpx: remove MPX from arch/x86 2020-01-23 10:41:20 -08:00
mmio-mod.c x86/smp: Replace cpu_up/down() with add/remove_cpu() 2020-03-25 12:59:35 +01:00
numa.c x86/NUMA: Provide a range-to-target_node lookup facility 2020-02-18 10:28:05 -08:00
numa_32.c
numa_64.c
numa_emulation.c x86/mm: Mark setup_emu2phys_nid() static 2020-03-27 11:07:30 +01:00
numa_internal.h
pf_in.c
pf_in.h
pgtable.c
pgtable_32.c mm, x86/mm: Untangle address space layout definitions from basic pgtable type definitions 2019-12-10 10:12:55 +01:00
physaddr.c mm, x86/mm: Untangle address space layout definitions from basic pgtable type definitions 2019-12-10 10:12:55 +01:00
physaddr.h
pkeys.c mm/vma: introduce VM_ACCESS_FLAGS 2020-04-10 15:36:21 -07:00
pti.c x86/mm/set_memory: Fix -Wmissing-prototypes warnings 2020-03-27 11:26:06 +01:00
setup_nx.c
srat.c
testmmiotrace.c remove ioremap_nocache and devm_ioremap_nocache 2020-01-06 09:45:59 +01:00
tlb.c smp: Remove allocation mask from on_each_cpu_cond.*() 2020-01-24 20:40:09 +01:00