linux/mm
Peter Collingbourne 0c24ee770c BACKPORT: FROMGIT: kasan: disable freed user page poisoning with HW tags
Poisoning freed pages protects against kernel use-after-free. The
likelihood of such a bug involving kernel pages is significantly higher
than that for user pages. At the same time, poisoning freed pages can
impose a significant performance cost, which cannot always be justified
for user pages given the lower probability of finding a bug. Therefore,
disable freed user page poisoning when using HW tags. We identify
"user" pages via the flag set GFP_HIGHUSER_MOVABLE, which indicates
a strong likelihood of not being directly accessible to the kernel.

Signed-off-by: Peter Collingbourne <pcc@google.com>
Reviewed-by: Andrey Konovalov <andreyknvl@gmail.com>
Link: https://linux-review.googlesource.com/id/I716846e2de8ef179f44e835770df7e6307be96c9
Link: https://lore.kernel.org/r/20210602235230.3928842-5-pcc@google.com
Signed-off-by: Will Deacon <will@kernel.org>
(cherry picked from commit c275c5c6d5
 https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-next/mte)
[pcc: adjust definition of new GFP flag for compatibility with GFP_CMA]
Change-Id: I716846e2de8ef179f44e835770df7e6307be96c9
Bug: 186816853
2021-06-17 14:39:37 -07:00
..
kasan BACKPORT: FROMGIT: kasan: disable freed user page poisoning with HW tags 2021-06-17 14:39:37 -07:00
kfence FROMGIT: kfence: unconditionally use unbound work queue 2021-06-03 20:52:39 +00:00
backing-dev.c
balloon_compaction.c
cleancache.c
cma_debug.c
cma_sysfs.c
cma.c FROMGIT: mm: cma: add the CMA instance name to cma trace events 2021-04-23 22:41:43 +00:00
cma.h ANDROID: GKI: add OEM data in cma struct 2021-06-04 11:15:16 -07:00
compaction.c FROMLIST: mm: compaction: fix wakeup logic of proactive compaction 2021-06-17 14:16:29 -07:00
debug_page_ref.c
debug_vm_pgtable.c mm/debug_vm_pgtable: fix alignment for pmd/pud_advanced_tests() 2021-06-10 13:39:26 +02:00
debug.c ANDROID: mm: introduce page_pinner 2021-04-30 09:13:34 -07:00
dmapool.c
early_ioremap.c
fadvise.c
failslab.c
filemap.c ANDROID: mm: Add hooks to filemap_fault for oem's optimization 2021-06-17 14:16:47 -07:00
frame_vector.c
frontswap.c
gup_benchmark.c
gup.c Merge 5.10.38 into android12-5.10 2021-05-20 15:35:25 +02:00
highmem.c
hmm.c
huge_memory.c Merge 5.10.27 into android12-5.10 2021-04-02 15:25:50 +02:00
hugetlb_cgroup.c
hugetlb.c Merge 5.10.43 into android12-5.10 2021-06-12 14:48:14 +02:00
hwpoison-inject.c
init-mm.c
internal.h
interval_tree.c
ioremap.c
Kconfig
Kconfig.debug ANDROID: mm: introduce page_pinner 2021-04-30 09:13:34 -07:00
khugepaged.c Merge 5.10.38 into android12-5.10 2021-05-20 15:35:25 +02:00
kmemleak.c UPSTREAM: kfence: make compatible with kmemleak 2021-04-29 08:13:57 +02:00
ksm.c Merge 5.10.38 into android12-5.10 2021-05-20 15:35:25 +02:00
list_lru.c
maccess.c
madvise.c
Makefile ANDROID: mm: introduce page_pinner 2021-04-30 09:13:34 -07:00
mapping_dirty_helpers.c
memblock.c UPSTREAM: mm: memblock: add more debug logs 2021-05-21 09:08:08 +05:30
memcontrol.c mm: memcontrol: slab: fix obtain a reference to a freeing memcg 2021-05-14 09:50:45 +02:00
memfd.c
memory_hotplug.c ANDROID: mm/memory_hotplug: Relax remove_memory_subsection error checking 2021-06-08 18:54:33 +00:00
memory-failure.c mm/memory-failure: unnecessary amount of unmapping 2021-05-14 09:50:45 +02:00
memory.c BACKPORT: FROMGIT: userfaultfd/shmem: support minor fault registration for shmem 2021-06-04 19:12:49 +00:00
mempolicy.c
mempool.c FROMGIT: kasan: use separate (un)poison implementation for integrated init 2021-06-17 14:39:37 -07:00
memremap.c
memtest.c
migrate.c Merge 5.10.38 into android12-5.10 2021-05-20 15:35:25 +02:00
mincore.c
mlock.c ANDROID: mm: page_pinner: unattribute follow_page in munlock_vma_pages_range 2021-04-30 09:13:35 -07:00
mm_init.c
mmap.c ANDROID: Fix access invalid addr because it is not initialized 2021-05-26 18:00:01 +00:00
mmu_gather.c
mmu_notifier.c
mmzone.c
mprotect.c FROMGIT: mm: improve mprotect(R|W) efficiency on pages referenced once 2021-06-15 19:33:15 +00:00
mremap.c
msync.c
nommu.c ANDROID: mm: allow vmas with vm_ops to be speculatively handled 2021-04-23 18:42:39 -07:00
oom_kill.c ANDROID: signal: Add vendor hook for memory reaping 2021-06-03 20:59:15 +00:00
OWNERS ANDROID: Add OWNERS files referring to the respective android-mainline OWNERS 2021-04-03 14:11:30 +00:00
page_alloc.c BACKPORT: FROMGIT: kasan: disable freed user page poisoning with HW tags 2021-06-17 14:39:37 -07:00
page_counter.c
page_ext.c ANDROID: mm: introduce page_pinner 2021-04-30 09:13:34 -07:00
page_idle.c
page_io.c UPSTREAM: mm/page_io: use pr_alert_ratelimited for swap read/write errors 2021-03-30 18:44:11 +00:00
page_isolation.c
page_owner.c ANDROID: mm: Make page_owner_enabled global 2021-04-01 00:09:00 +00:00
page_pinner.c ANDROID: mm: page_pinner: skip marking failure on freeable pages 2021-05-24 23:45:11 +00:00
page_poison.c
page_reporting.c
page_reporting.h
page_vma_mapped.c
page-writeback.c ANDROID: vendor_hooks: add hook to balance_dirty_pages() 2021-05-20 19:38:42 +00:00
pagewalk.c
percpu-internal.h percpu: make pcpu_nr_empty_pop_pages per chunk type 2021-04-14 08:42:03 +02:00
percpu-km.c
percpu-stats.c percpu: make pcpu_nr_empty_pop_pages per chunk type 2021-04-14 08:42:03 +02:00
percpu-vm.c
percpu.c Merge 5.10.30 into android12-5.10 2021-04-15 14:23:41 +02:00
pgalloc-track.h
pgtable-generic.c
process_vm_access.c
ptdump.c This is the 5.10.32 stable release 2021-04-22 11:12:08 +02:00
readahead.c
rmap.c
rodata_test.c
shmem.c ANDROID: mm: allow fast reclaim of shmem pages 2021-06-09 15:33:55 -07:00
shuffle.c
shuffle.h
slab_common.c FROMGIT: mm: slub: move sysfs slab alloc/free interfaces to debugfs 2021-06-15 18:11:57 +00:00
slab.c Merge 5.10.37 into android12-5.10 2021-05-15 09:28:55 +02:00
slab.h FROMGIT: mm: slub: move sysfs slab alloc/free interfaces to debugfs 2021-06-15 18:11:57 +00:00
slob.c
slub.c FROMGIT: mm: slub: move sysfs slab alloc/free interfaces to debugfs 2021-06-15 18:11:57 +00:00
sparse-vmemmap.c
sparse.c mm/sparse: add the missing sparse_buffer_fini() in error branch 2021-05-14 09:50:45 +02:00
swap_cgroup.c
swap_slots.c
swap_state.c
swap.c ANDROID: mm: allow fast reclaim of shmem pages 2021-06-09 15:33:55 -07:00
swapfile.c
truncate.c
usercopy.c
userfaultfd.c FROMGIT: userfaultfd/shmem: modify shmem_mfill_atomic_pte to use install_pte() 2021-06-04 19:13:10 +00:00
util.c
vmacache.c
vmalloc.c ANDROID: vendor_hooks: add hooks for slab memory leak debugging 2021-05-21 13:17:08 -07:00
vmpressure.c
vmscan.c ANDROID: mm: vmscan: support equal reclaim for anon and file pages 2021-06-09 02:02:44 +00:00
vmstat.c ANDROID: mm: allow vmas with vm_ops to be speculatively handled 2021-04-23 18:42:39 -07:00
workingset.c
z3fold.c
zbud.c
zpool.c
zsmalloc.c
zswap.c