Defined in 2 files as a function:

Referenced in 18 files:

Smatch caller information:

kernel/fork.c khugepaged_exit() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 17
PARAM_VALUE 1 mm 4096-ptr_max
CAPPED_DATA 1 mm 1
CAPPED_DATA 1 mm->uprobes_state.xol_area 1
DATA_SOURCE 1 mm $0
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 1 &mm->mmap_lock

kernel/fork.c ksm_exit() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 16
PARAM_VALUE 1 mm 4096-ptr_max
CAPPED_DATA 1 mm 1
CAPPED_DATA 1 mm->uprobes_state.xol_area 1
DATA_SOURCE 1 mm $0
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 1 &mm->mmap_lock

mm/memcontrol.c try_charge_memcg() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 21
RX_PATH
TASK_NOT_RUNNING

mm/huge_memory.c __thp_get_unmapped_area() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 31
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte

mm/huge_memory.c check_stable_address_space() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 22
DATA_SOURCE 1 mm $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &pool->lock

mm/huge_memory.c folio_needs_cow_for_dma() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 27
PARAM_VALUE 1 mm 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte
LOCK2 &mm->mmap_lock
LOCK2 &oldmm->mmap_lock
LOCK2 dst_ptl
LOCK2 src_ptl
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/huge_memory.c vma_thp_disabled() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 24
PARAM_VALUE 1 mm 1-u64max
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte
HALF_LOCKED2 &m->lock

mm/huge_memory.c vma_thp_disabled() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 23
PARAM_VALUE 1 mm 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte
HALF_LOCKED2 &m->lock

mm/oom_kill.c __do_sys_process_mrelease() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 21
PARAM_VALUE 1 mm 4096-ptr_max
UNITS 1 mm unit_byte

mm/oom_kill.c __do_sys_process_mrelease() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 21
PARAM_VALUE 1 mm 4096-ptr_max
UNITS 1 mm unit_byte
LOCK2 1 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/oom_kill.c __do_sys_process_mrelease() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 21
PARAM_VALUE 1 mm 4096-ptr_max
UNITS 1 mm unit_byte

mm/oom_kill.c __do_sys_process_mrelease() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 21
PARAM_VALUE 1 mm 4096-ptr_max
UNITS 1 mm unit_byte
LOCK2 1 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/oom_kill.c oom_badness() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 21
PARAM_VALUE 1 mm 1-u64max
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte
HALF_LOCKED2 &m->lock
HALF_LOCKED2 global &oom_lock

mm/oom_kill.c oom_evaluate_task() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 21
PARAM_VALUE 1 mm 1
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &oom_lock
HALF_LOCKED2 rcu_read

mm/oom_kill.c oom_reap_task() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 21

mm/oom_kill.c oom_reap_task_mm() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 21
PARAM_VALUE 1 mm 4096-ptr_max
DATA_SOURCE 1 mm $1
LOCK2 1 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/oom_kill.c task_will_free_mem() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 21
PARAM_VALUE 1 mm 1-u64max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte
HALF_LOCKED2 &task->alloc_lock
HALF_LOCKED2 global &oom_lock

mm/oom_kill.c wake_oom_reaper() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 21
RX_PATH
TASK_NOT_RUNNING

mm/mmap.c khugepaged_fork() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 17
PARAM_VALUE 1 mm 4096-ptr_max
DATA_SOURCE 1 mm $1
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte
LOCK2 &mm->mmap_lock
LOCK2 1 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/mmap.c ksm_fork() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 16
PARAM_VALUE 1 mm 4096-ptr_max
DATA_SOURCE 1 mm $1
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte
LOCK2 &mm->mmap_lock
LOCK2 1 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/mmap.c mm_get_unmapped_area_vmaflags() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 31
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte

mm/swapfile.c check_stable_address_space() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 22
PARAM_VALUE 1 mm 4096-ptr_max
DATA_SOURCE 1 mm $0
CAPABLE 0 21
LOCK2 1 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

fs/proc/base.c __set_oom_adj() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 26
PARAM_VALUE 1 mm 1-u64max
UNITS 1 mm unit_byte
LOCK2 global &oom_adj_mutex

fs/proc/base.c proc_pid_ksm_stat() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 30
PARAM_VALUE 1 mm 4096-ptr_max
DATA_SOURCE 1 mm r get_task_mm
RX_PATH
TASK_NOT_RUNNING
LOCK2 &m->lock
TYPE_LOCK (struct seq_file)->lock

fs/proc/task_mmu.c pte_is_pinned() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 27
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte
LOCK2 ptl
HALF_LOCKED2 &mm->mmap_lock

mm/rmap.c check_stable_address_space() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 22
PARAM_VALUE 1 mm 4096-ptr_max
DATA_SOURCE 1 mm $0
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte
HALF_LOCKED2 &anon_vma->root->rwsem
HALF_LOCKED2 &folio->private->lock

mm/mprotect.c map_deny_write_exec() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 28
UNITS 1 mm unit_byte

mm/shmem.c vma_thp_disabled() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 24
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte

mm/shmem.c vma_thp_disabled() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 23
PARAM_VALUE 1 mm 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte

mm/vma_exec.c ksm_execve() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 30
PARAM_VALUE 1 mm 4096-ptr_max
DATA_SOURCE 1 mm $0
LOCK2 1 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/vma_exec.c ksm_exit() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 16
PARAM_VALUE 1 mm 4096-ptr_max
DATA_SOURCE 1 mm $0
LOCK2 1 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/hugetlb.c folio_needs_cow_for_dma() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 27
PARAM_VALUE 1 mm 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte
LOCK2 &mm->mmap_lock
LOCK2 &oldmm->mmap_lock
LOCK2 src_ptl
TYPE_LOCK (struct mm_struct)->mmap_lock

fs/proc/array.c task_thp_status() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 24
PARAM_VALUE 1 mm 4096-ptr_max
CAPPED_DATA 1 mm->hiwater_rss 1
CAPPED_DATA 1 mm->hiwater_vm 1
DATA_SOURCE 1 mm $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 &m->lock
TYPE_LOCK (struct seq_file)->lock

mm/ksm.c ksm_disable() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 16
DATA_SOURCE 1 mm $0

mm/ksm.c ksm_disable() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 30
PARAM_VALUE 1 mm 4096-ptr_max
DATA_SOURCE 1 mm $0

mm/ksm.c ksm_disable_merge_any() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 30
PARAM_VALUE 1 mm 4096-ptr_max
DATA_SOURCE 1 mm $0
UNITS 1 mm unit_byte
HALF_LOCKED2 1 &mm->mmap_lock

mm/ksm.c ksm_enable_merge_any() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 30
PARAM_VALUE 1 mm 4096-ptr_max
DATA_SOURCE 1 mm $0
UNITS 1 mm unit_byte
LOCK2 1 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/ksm.c ksm_enable_merge_any() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 16
PARAM_VALUE 1 mm 4096-ptr_max
DATA_SOURCE 1 mm $0
UNITS 1 mm unit_byte
LOCK2 1 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/ksm.c ksm_madvise() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 16
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte

mm/ksm.c ksm_vma_flags() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 30
DATA_SOURCE 1 mm $0
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte
HALF_LOCKED2 &mm->mmap_lock

mm/ksm.c ksm_vma_flags() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 16
PARAM_VALUE 1 mm 4096-ptr_max
DATA_SOURCE 1 mm $0
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte
HALF_LOCKED2 &mm->mmap_lock

mm/vma.c map_deny_write_exec() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 28
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte
HALF_LOCKED2 &ctx->ring_lock
HALF_LOCKED2 &mm->mmap_lock

mm/migrate_device.c check_stable_address_space() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 22
DATA_SOURCE 1 mm $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte
HALF_LOCKED2 &drm->dmem->mutex
HALF_LOCKED2 ptl

mm/memory.c check_stable_address_space() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 22
DATA_SOURCE 1 mm $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte
HALF_LOCKED2 vmf->ptl

mm/memory.c folio_needs_cow_for_dma() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 27
PARAM_VALUE 1 mm 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte
LOCK2 &mm->mmap_lock
LOCK2 &oldmm->mmap_lock
LOCK2 dst_ptl
LOCK2 rcu_read
LOCK2 src_ptl
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/memory.c vma_thp_disabled() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 24
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte
HALF_LOCKED2 rcu_read

mm/memory.c vma_thp_disabled() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 23
PARAM_VALUE 1 mm 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte
HALF_LOCKED2 rcu_read

mm/gup.c mm_set_has_pinned_flag() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 27
BUF_SIZE 1 mm s32min-(-1),1-s32max
BUF_SIZE 1 mm s32min-(-1),1-s32max
DATA_SOURCE 1 mm $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte
HALF_LOCKED2 1 &mm->mmap_lock

kernel/sys.c __do_sys_prctl() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 30
UNITS 1 mm unit_byte

kernel/sys.c __do_sys_prctl() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 30
UNITS 1 mm unit_byte

kernel/sys.c get_current_mdwe() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 28
UNITS 1 mm unit_byte

kernel/sys.c get_current_mdwe() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 29
UNITS 1 mm unit_byte

kernel/sys.c prctl_get_thp_disable() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 24
UNITS 1 mm unit_byte

kernel/sys.c prctl_get_thp_disable() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 23
PARAM_VALUE 1 mm 4096-ptr_max
UNITS 1 mm unit_byte

kernel/events/uprobes.c check_stable_address_space() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 22
PARAM_VALUE 1 mm 4096-ptr_max
DATA_SOURCE 1 mm $0
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte
LOCK2 &uprobe->register_rwsem
LOCK2 1 &mm->mmap_lock
HALF_LOCKED2 global &event_mutex
TYPE_LOCK (struct mm_struct)->mmap_lock
TYPE_LOCK (struct uprobe)->register_rwsem

kernel/events/uprobes.c install_breakpoint() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 19
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &uprobe->register_rwsem

kernel/events/uprobes.c register_for_each_vma() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 19
PARAM_VALUE 1 mm 4096-ptr_max
CAPPED_DATA 1 mm->mm_mt.ma_root 1
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte
LOCK2 &uprobe->register_rwsem
LOCK2 1 &mm->mmap_lock
HALF_LOCKED2 global &event_mutex
TYPE_LOCK (struct mm_struct)->mmap_lock
TYPE_LOCK (struct uprobe)->register_rwsem

kernel/events/uprobes.c uprobe_dup_mmap() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 19
PARAM_VALUE 1 mm 4096-ptr_max
DATA_SOURCE 1 mm $0
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte
LOCK2 1 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

kernel/events/uprobes.c uprobe_mmap() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 19
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte

kernel/events/uprobes.c uprobe_munmap() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 19
PARAM_VALUE 1 mm 4096-ptr_max
BUF_SIZE 1 mm (-1),1-s32max
BUF_SIZE 1 mm (-1),1-s32max
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte

kernel/events/uprobes.c uprobe_munmap() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 20
PARAM_VALUE 1 mm 4096-ptr_max
BUF_SIZE 1 mm (-1),1-s32max
BUF_SIZE 1 mm (-1),1-s32max
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte

kernel/events/uprobes.c uprobe_pre_sstep_notifier() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 19
UNITS 1 mm unit_byte

mm/hmm.c check_stable_address_space() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 22
PARAM_VALUE 1 mm 4096-ptr_max
DATA_SOURCE 1 mm $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte
LOCK2 1 &mm->mmap_lock
HALF_LOCKED2 &client->hwctx_srcu
HALF_LOCKED2 &hwctx->priv->job_sem
HALF_LOCKED2 &vm->lock
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/khugepaged.c collapse_test_exit_or_disable() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 24
PARAM_VALUE 1 mm 4096-ptr_max
DATA_SOURCE 1 mm $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte
HALF_LOCKED2 global &khugepaged_mm_lock
HALF_LOCKED2 1 &mm->mmap_lock

mm/khugepaged.c khugepaged_enter_vma() -> mm_flags_test()

Type Parameter Key Value
PARAM_VALUE 0 flag 17
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte