android_kernel_xiaomi_sm7250/mm
Peter Zijlstra e86ff4eef6 BACKPORT: mm/mmu_gather: invalidate TLB correctly on batch allocation failure and flush
commit 0ed1325967ab5f7a4549a2641c6ebe115f76e228 upstream.

Architectures for which we have hardware walkers of Linux page table
should flush TLB on mmu gather batch allocation failures and batch flush.
Some architectures like POWER supports multiple translation modes (hash
and radix) and in the case of POWER only radix translation mode needs the
above TLBI.  This is because for hash translation mode kernel wants to
avoid this extra flush since there are no hardware walkers of linux page
table.  With radix translation, the hardware also walks linux page table
and with that, kernel needs to make sure to TLB invalidate page walk cache
before page table pages are freed.

More details in commit d86564a2f0 ("mm/tlb, x86/mm: Support invalidating
TLB caches for RCU_TABLE_FREE")

The changes to sparc are to make sure we keep the old behavior since we
are now removing HAVE_RCU_TABLE_NO_INVALIDATE.  The default value for
tlb_needs_table_invalidate is to always force an invalidate and sparc can
avoid the table invalidate.  Hence we define tlb_needs_table_invalidate to
false for sparc architecture.

Link: http://lkml.kernel.org/r/20200116064531.483522-3-aneesh.kumar@linux.ibm.com
Fixes: a46cc7a90f ("powerpc/mm/radix: Improve TLB/PWC flushes")
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Acked-by: Michael Ellerman <mpe@ellerman.id.au>	[powerpc]
Cc: <stable@vger.kernel.org>	[4.14+]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Signed-off-by: UtsavBalar1231 <utsavbalar1231@gmail.com>
Change-Id: Ic3ae446cacefcf4cdeefa549260a8317da76cdc6
2022-11-12 11:23:07 +00:00
..
damon FROMLIST: mm/damon/reclaim: Fix the timer always stays active 2022-11-12 11:23:02 +00:00
kasan mm: treewide: remove unused address argument from pte_alloc functions 2022-11-12 11:21:18 +00:00
backing-dev.c
balloon_compaction.c
bootmem.c
cleancache.c
cma_debug.c Revert "mm: cma: make writeable CMA debugfs optional" 2022-11-12 11:20:19 +00:00
cma.c Revert "mm: cma: Print region name on failure" 2022-11-12 11:20:20 +00:00
cma.h
compaction.c mm: compaction: expose proactive compaction counter 2022-11-12 11:22:28 +00:00
debug_page_ref.c
debug.c
dmapool.c
early_ioremap.c
fadvise.c
failslab.c
filemap.c mm: mm_event: add read io stat 2022-11-12 11:20:46 +00:00
frame_vector.c
frontswap.c
gup_benchmark.c
gup.c mm/vma: make vma_is_accessible() available for general use 2022-11-12 11:21:22 +00:00
highmem.c
hmm.c
huge_memory.c BACKPORT: asm-generic/tlb, arch: Provide CONFIG_HAVE_MMU_GATHER_PAGE_SIZE 2022-11-12 11:23:03 +00:00
hugetlb_cgroup.c
hugetlb.c BACKPORT: asm-generic/tlb, arch: Provide CONFIG_HAVE_MMU_GATHER_PAGE_SIZE 2022-11-12 11:23:03 +00:00
hwpoison-inject.c
init-mm.c Revert "mm: protect mm_rb tree with a rwlock" 2022-11-12 11:20:37 +00:00
internal.h BACKPORT: mm: proactive compaction 2022-11-12 11:22:23 +00:00
interval_tree.c
Kconfig UPSTREAM: mm/idle_page_tracking: make PG_idle reusable 2022-11-12 11:22:43 +00:00
Kconfig.debug Revert "mm: Kconfig: Add DEBUG_SLUB_PANIC_ON option" 2022-11-12 11:20:32 +00:00
khugepaged.c mm/vma: make is_vma_temporary_stack() available for general use 2022-11-12 11:21:22 +00:00
kmemleak-test.c
kmemleak.c Merge remote-tracking branch 'aosp/android-4.19-stable' into android12-base 2022-09-22 14:02:10 +05:30
ksm.c UPSTREAM: mm/ksm: Remove reuse_ksm_page() 2022-11-12 11:21:41 +00:00
list_lru.c BACKPORT: mm/list_lru: fix a data race in list_lru_count_one 2022-11-12 11:21:47 +00:00
maccess.c
madvise.c BACKPORT: asm-generic/tlb, arch: Provide CONFIG_HAVE_MMU_GATHER_PAGE_SIZE 2022-11-12 11:23:03 +00:00
Makefile BACKPORT: mm/memory: Move mmu_gather and TLB invalidation code into its own file 2022-11-12 11:23:02 +00:00
memblock.c Revert "mm: memblock: Add more debug logs" 2022-11-12 11:20:14 +00:00
memcontrol.c FROMLIST: mm: multi-gen LRU: support page table walks 2022-11-12 11:21:16 +00:00
memfd.c
memory_hotplug.c Revert "mm: Enhance per process reclaim to consider shared pages" 2022-11-12 11:20:33 +00:00
memory-failure.c Revert "mm: Enhance per process reclaim to consider shared pages" 2022-11-12 11:20:33 +00:00
memory.c BACKPORT: asm-generic/tlb: Remove tlb_flush_mmu_free() 2022-11-12 11:23:06 +00:00
mempolicy.c mm/vma: make vma_is_accessible() available for general use 2022-11-12 11:21:22 +00:00
mempool.c
memtest.c
migrate.c BACKPORT: mm, migrate: immediately fail migration of a page with no migration handler 2022-11-12 11:22:17 +00:00
mincore.c
mlock.c BACKPORT: mm/lru: introduce TestClearPageLRU() 2022-11-12 11:22:15 +00:00
mm_event.c mm: mm_event: show MM/FS/IO/UFS latencies in fault flow 2022-11-12 11:20:48 +00:00
mm_init.c FROMLIST: mm: multi-gen LRU: groundwork 2022-11-12 11:21:15 +00:00
mmap.c mm: mmap: fix fput in error path v2 2022-11-12 11:21:27 +00:00
mmu_context.c Revert "BACKPORT: FROMLIST: mm: multigenerational lru: mm_struct list" 2022-11-12 11:21:07 +00:00
mmu_gather.c BACKPORT: mm/mmu_gather: invalidate TLB correctly on batch allocation failure and flush 2022-11-12 11:23:07 +00:00
mmu_notifier.c Revert "CHROMIUM: mm: multigenerational lru: scan kvm mmu pages" 2022-11-12 11:21:06 +00:00
mmzone.c FROMLIST: mm: multi-gen LRU: groundwork 2022-11-12 11:21:15 +00:00
mprotect.c mm: Introduce arch_validate_flags() 2022-11-12 11:21:25 +00:00
mremap.c mm/mremap: fix BUILD_BUG_ON() error in get_extent 2022-11-12 11:21:28 +00:00
msync.c
nobootmem.c
nommu.c mm: remove unnecessary wrapper function do_mmap_pgoff() 2022-11-12 11:21:24 +00:00
oom_kill.c Revert "mm: oom_kill: reap memory of a task that receives SIGKILL" 2022-11-12 11:20:42 +00:00
OWNERS
page_alloc.c BACKPORT: mm, compaction: capture a page under direct compaction 2022-11-12 11:22:21 +00:00
page_counter.c
page_ext.c UPSTREAM: mm/idle_page_tracking: make PG_idle reusable 2022-11-12 11:22:43 +00:00
page_idle.c UPSTREAM: mm/idle_page_tracking: make PG_idle reusable 2022-11-12 11:22:43 +00:00
page_io.c Revert "mm: zram: fix swapcached issue on Zram Writeback" 2022-11-12 11:20:18 +00:00
page_isolation.c
page_owner.c Revert "mm, page_owner: record time and pid" 2022-11-12 11:20:20 +00:00
page_poison.c
page_vma_mapped.c
page-writeback.c
pagewalk.c FROMLIST: mm: multi-gen LRU: support page table walks 2022-11-12 11:21:16 +00:00
percpu-internal.h
percpu-km.c
percpu-stats.c
percpu-vm.c
percpu.c
pgtable-generic.c BACKPORT: x86/mm: Page size aware flush_tlb_mm_range() 2022-11-12 11:23:03 +00:00
process_vm_access.c
quicklist.c
readahead.c
rmap.c mm/vma: make is_vma_temporary_stack() available for general use 2022-11-12 11:21:22 +00:00
rodata_test.c
shmem.c mm: remove unnecessary wrapper function do_mmap_pgoff() 2022-11-12 11:21:24 +00:00
showmem.c
slab_common.c
slab.c
slab.h
slob.c
slub.c mm/slub.c: branch optimization in free slowpath 2022-11-12 11:21:29 +00:00
sparse-vmemmap.c
sparse.c
swap_cgroup.c
swap_ratio.c
swap_slots.c Revert "mm: swap: Add null pointer check" 2022-11-12 11:20:20 +00:00
swap_state.c FROMLIST: mm: multi-gen LRU: minimal implementation 2022-11-12 11:21:16 +00:00
swap.c mm/swap: Do not abuse the seqcount_t latching API 2022-11-12 11:21:27 +00:00
swapfile.c FROMLIST: mm: multi-gen LRU: groundwork 2022-11-12 11:21:15 +00:00
truncate.c
usercopy.c Merge remote-tracking branch 'aosp/android-4.19-stable' into android12-base 2022-04-20 19:50:03 +05:30
userfaultfd.c mm: treewide: remove unused address argument from pte_alloc functions 2022-11-12 11:21:18 +00:00
util.c mm: introduce vma_set_file function v5 2022-11-12 11:21:27 +00:00
vmacache.c
vmalloc.c BACKPORT: mm/vmalloc: Fix unlock order in s_stop() 2022-11-12 11:21:48 +00:00
vmpressure.c mm: vmpressure: make vmpressure window variable 2022-11-12 11:20:50 +00:00
vmscan.c mm: multi-gen LRU: set min_ttl to 5000ms by default 2022-11-12 11:22:40 +00:00
vmstat.c BACKPORT: mm: use unsigned types for fragmentation score 2022-11-12 11:22:24 +00:00
workingset.c FROMLIST: mm: multi-gen LRU: minimal implementation 2022-11-12 11:21:16 +00:00
z3fold.c
zbud.c mm: use false for bool variable 2022-11-12 11:21:23 +00:00
zpool.c
zsmalloc.c Merge ASB-2022-06-05_4.19-stable into android12-base 2022-06-07 16:10:29 +05:30
zswap.c