android_kernel_motorola_sm6375/mm
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Marco Elver c28a209911
FROMGIT: kfence: avoid stalling work queue task without allocations
To toggle the allocation gates, we set up a delayed work that calls
toggle_allocation_gate().  Here we use wait_event() to await an allocation
and subsequently disable the static branch again.  However, if the kernel
has stopped doing allocations entirely, we'd wait indefinitely, and stall
the worker task.  This may also result in the appropriate warnings if
CONFIG_DETECT_HUNG_TASK=y.

Therefore, introduce a 1 second timeout and use wait_event_timeout().  If
the timeout is reached, the static branch is disabled and a new delayed
work is scheduled to try setting up an allocation at a later time.

Note that, this scenario is very unlikely during normal workloads once the
kernel has booted and user space tasks are running.  It can, however,
happen during early boot after KFENCE has been enabled, when e.g.  running
tests that do not result in any allocations.

Link: https://lkml.kernel.org/r/CADYN=9J0DQhizAGB0-jz4HOBBh+05kMBXb4c0cXMS7Qi5NAJiw@mail.gmail.com
Link: https://lkml.kernel.org/r/20201110135320.3309507-1-elver@google.com
Signed-off-by: Marco Elver <elver@google.com>
Reported-by: Anders Roxell <anders.roxell@linaro.org>
Cc: Alexander Potapenko <glider@google.com>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: SeongJae Park <sjpark@amazon.de>
Cc: Jann Horn <jannh@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

Bug: 177201466
(cherry picked from commit 80d4693491f6f20de01437319b081fdda2079e67
    https://github.com/hnaz/linux-mm v5.11-rc4-mmots-2021-01-21-20-10)
Test: CONFIG_KFENCE_KUNIT_TEST=y passes on Cuttlefish
Signed-off-by: Alexander Potapenko <glider@google.com>
Change-Id: I2332ff8144b8bce5c4574b01ea2863e0e71e6124
2026-05-07 17:24:02 +03:00
..
kasan Merge android11-5.4.233+ (4716ccc) into msm-5.4 2023-05-30 11:16:10 +05:30
kfence FROMGIT: kfence: avoid stalling work queue task without allocations 2026-05-07 17:24:02 +03:00
backing-dev.c mm: bdi: initialize bdi_min_ratio when bdi is unregistered 2021-12-14 14:49:00 +01:00
balloon_compaction.c
cleancache.c
cma.c Merge android11-5.4.265+ (a34cc1d) into msm-5.4 2024-02-29 15:10:56 +05:30
cma.h
cma_debug.c
compaction.c BACKPORT: sysctl: pass kernel pointers to ->proc_handler 2025-12-23 13:36:15 -08:00
debug.c
debug_page_ref.c
dmapool.c
early_ioremap.c
fadvise.c
failslab.c
filemap.c Merge tag 'ASB-2025-10-06_11-5.4' of https://android.googlesource.com/kernel/common into android13-5.4-lahaina 2025-10-08 15:17:54 +03:00
frame_vector.c v4l2: don't fall back to follow_pfn() if pin_user_pages_fast() fails 2022-12-08 11:23:06 +01:00
frontswap.c treewide: Remove uninitialized_var() usage 2023-06-09 10:29:01 +02:00
gup.c BACKPORT: mm/gup: Remove enfornced COW mechanism 2025-05-18 08:08:42 +00:00
gup_benchmark.c
highmem.c
hmm.c mm/hmm: move pmd_to_hmm_pfn_flags() to the respective #ifdeffery 2025-08-28 16:21:34 +02:00
huge_memory.c Merge tag 'ASB-2025-08-05_11-5.4' of https://android.googlesource.com/kernel/common into android13-5.4-lahaina 2025-09-01 13:17:46 +03:00
hugetlb.c BACKPORT: sysctl: pass kernel pointers to ->proc_handler 2025-12-23 13:36:15 -08:00
hugetlb_cgroup.c
hwpoison-inject.c
init-mm.c Revert "mm: protect mm_rb tree with a rwlock" 2025-05-24 05:44:05 +00:00
internal.h Revert "mm: protect mm_rb tree with a rwlock" 2025-05-24 05:44:05 +00:00
interval_tree.c
Kconfig Revert "mm: introduce CONFIG_SPECULATIVE_PAGE_FAULT" 2025-05-24 05:44:57 +00:00
Kconfig.debug
khugepaged.c mm/khugepaged: fix the address passed to notifier on testing young 2025-10-02 13:34:28 +02:00
kmemleak-test.c
kmemleak.c mm/kmemleak: avoid deadlock by moving pr_warn() outside kmemleak_lock 2025-08-28 16:21:34 +02:00
ksm.c Merge android11-5.4.249+ (d57e792) into msm-5.4 2023-09-28 16:45:28 +05:30
list_lru.c
maccess.c BACKPORT: maccess: rename probe_user_{read,write} to copy_{from,to}_user_nofault 2026-01-14 18:13:22 -08:00
madvise.c Merge tag 'ASB-2025-10-06_11-5.4' of https://android.googlesource.com/kernel/common into android13-5.4-lahaina 2025-10-08 15:17:54 +03:00
Makefile BACKPORT: mm: add Kernel Electric-Fence infrastructure 2026-05-07 17:24:01 +03:00
memblock.c This is the 5.4.232 stable release 2023-02-22 12:30:48 +00:00
memcontrol.c UPSTREAM: mm: memcontrol: recursive memory.low protection 2026-01-14 18:13:12 -08:00
memfd.c memfd: fix F_SEAL_WRITE after shmem huge page allocated 2022-03-08 19:07:49 +01:00
memory-failure.c Merge branch 'android11-5.4-lts' of https://android.googlesource.com/kernel/common into android13-5.4-lahaina 2025-10-08 15:23:13 +03:00
memory.c BACKPORT: mm/memory.c: Add memory read privilege on page fault handling 2026-01-14 18:13:19 -08:00
memory_hotplug.c Merge android11-5.4.161+ (b9d179c) into msm-5.4 2022-02-07 22:29:21 +05:30
mempolicy.c Revert "mm: protect VMA modifications using VMA sequence count" 2025-05-24 05:44:09 +00:00
mempool.c
memremap.c
memtest.c memtest: use {READ,WRITE}_ONCE in memory scanning 2024-04-13 12:51:27 +02:00
migrate.c Merge branch 'android11-5.4-lts' of https://android.googlesource.com/kernel/common into android13-5.4-lahaina 2025-10-08 15:23:13 +03:00
mincore.c
mlock.c Revert "mm: protect VMA modifications using VMA sequence count" 2025-05-24 05:44:09 +00:00
mm_init.c
mmap.c This is the 5.4.297 stable release 2025-09-02 10:52:40 +00:00
mmu_context.c
mmu_gather.c mm/khugepaged: fix GUP-fast interaction by sending IPI 2022-12-14 11:30:42 +01:00
mmu_notifier.c
mmzone.c arm: remove CONFIG_ARCH_HAS_HOLES_MEMORYMODEL 2022-05-15 19:54:46 +02:00
mprotect.c Revert "mm: protect VMA modifications using VMA sequence count" 2025-05-24 05:44:09 +00:00
mremap.c Revert "mm: protect mremap() against SPF hanlder" 2025-05-24 05:44:08 +00:00
msync.c
nommu.c BACKPORT: mm: remove the pgprot argument to __vmalloc 2026-01-14 17:48:09 -08:00
oom_kill.c Merge tag 'ASB-2025-05-05_11-5.4' of https://android.googlesource.com/kernel/common into android13-5.4-lahaina 2025-05-18 08:00:20 +00:00
OWNERS
page-writeback.c BACKPORT: sysctl: pass kernel pointers to ->proc_handler 2025-12-23 13:36:15 -08:00
page_alloc.c BACKPORT: mm: remove the pgprot argument to __vmalloc 2026-01-14 17:48:09 -08:00
page_counter.c
page_ext.c
page_idle.c BACKPORT: mm: don't be stuck to rmap lock on reclaim path 2023-01-13 08:56:32 +00:00
page_io.c Merge android11-5.4.197+ (3970bc6) into msm-5.4 2022-08-16 16:52:01 +05:30
page_isolation.c
page_owner.c mm: page_owner: Fix -Wstrlcpy-strlcat-size 2025-04-26 21:17:21 +03:00
page_poison.c
page_vma_mapped.c mm/thp: another PVMW_SYNC fix in page_vma_mapped_walk() 2021-06-30 08:47:55 -04:00
pagewalk.c mm: pagewalk: Fix race between unmap and page walker 2022-10-15 07:54:36 +02:00
percpu-internal.h
percpu-km.c
percpu-stats.c
percpu-vm.c
percpu.c BACKPORT: mm: remove the pgprot argument to __vmalloc 2026-01-14 17:48:09 -08:00
pgsize_migration.c ANDROID: 16K: Allocate pad vma on the stack 2025-08-22 07:07:13 -07:00
pgtable-generic.c mm/thp: fix __split_huge_pmd_locked() on shmem migration entry 2021-06-30 08:47:52 -04:00
process_vm_access.c
readahead.c vfs: fix readahead(2) on block devices 2023-11-20 10:30:08 +01:00
rmap.c Revert "mm: introduce __page_add_new_anon_rmap()" 2025-05-24 05:44:06 +00:00
rodata_test.c BACKPORT: maccess: rename probe_kernel_{read,write} to copy_{from,to}_kernel_nofault 2026-01-14 18:13:21 -08:00
shmem.c UPSTREAM: kernfs: Add removed_size out param for simple_xattr_set 2026-01-14 18:13:12 -08:00
showmem.c
shuffle.c
shuffle.h
slab.c
slab.h mm: kmemleak: slob: respect SLAB_NOLEAKTRACE flag 2021-11-26 10:47:21 +01:00
slab_common.c Merge tag 'ASB-2024-12-05_11-5.4' of https://android.googlesource.com/kernel/common into android13-5.4-lahaina 2024-12-17 03:24:53 +02:00
slob.c
slub.c BACKPORT: maccess: rename probe_kernel_{read,write} to copy_{from,to}_kernel_nofault 2026-01-14 18:13:21 -08:00
sparse-vmemmap.c
sparse.c
swap.c Revert "mm: introduce __lru_cache_add_active_or_unevictable" 2025-05-24 05:44:06 +00:00
swap_cgroup.c
swap_slots.c
swap_state.c Revert "mm: protect VMA modifications using VMA sequence count" 2025-05-24 05:44:09 +00:00
swapfile.c This is the 5.4.285 stable release 2024-11-09 11:29:17 +00:00
truncate.c mm/thp: unmap_mapping_page() to fix THP truncate_cleanup_page() 2021-06-30 08:47:53 -04:00
usercopy.c Merge android11-5.4.191+ (375c2e2) into msm-5.4 2022-06-09 11:43:23 +05:30
userfaultfd.c UPSTREAM: mm/shmem: use page_mapping() to detect page cache for uffd continue 2025-05-18 08:08:42 +00:00
util.c BACKPORT: sysctl: pass kernel pointers to ->proc_handler 2025-12-23 13:36:15 -08:00
vmacache.c
vmalloc.c BACKPORT: mm: remove the pgprot argument to __vmalloc 2026-01-14 17:48:09 -08:00
vmpressure.c
vmscan.c Merge tag 'ASB-2025-06-05_11-5.4' of https://android.googlesource.com/kernel/common into android13-5.4-lahaina 2025-06-30 10:49:17 +03:00
vmstat.c BACKPORT: sysctl: pass kernel pointers to ->proc_handler 2025-12-23 13:36:15 -08:00
workingset.c
z3fold.c mm/z3fold: fix potential memory leak in z3fold_destroy_pool() 2021-07-14 16:53:47 +02:00
zbud.c
zpool.c
zsmalloc.c Merge tag 'ASB-2025-10-06_11-5.4' of https://android.googlesource.com/kernel/common into android13-5.4-lahaina 2025-10-08 15:17:54 +03:00
zswap.c