Defined in 2 files as a function:

Referenced in 6 files:

Smatch caller information:

mm/madvise.c is_vma_lock_sufficient() -> userfaultfd_armed()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
CAPPED_DATA 0 vma->vm_mm 1
CAPPED_DATA 0 vma->vm_start 1
DATA_SOURCE 0 vma $0
RX_PATH
TASK_NOT_RUNNING

mm/rmap.c try_to_migrate_one() -> userfaultfd_armed()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
DATA_SOURCE 0 vma $1
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 vma->vm_start
HALF_LOCKED2 &anon_vma->root->rwsem
HALF_LOCKED2 &folio->private->lock
HALF_LOCKED2 &resv_map->rw_sema
HALF_LOCKED2 0 &vma->vm_private_data->rw_sema

mm/rmap.c try_to_unmap_one() -> userfaultfd_armed()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
DATA_SOURCE 0 vma $1
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 vma->vm_start
HALF_LOCKED2 &anon_vma->root->rwsem
HALF_LOCKED2 &folio->private->lock

mm/shmem.c shmem_swap_alloc_folio() -> userfaultfd_armed()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 vma->vm_end
NO_OVERFLOW_SIMPLE 0 vma->vm_pgoff
NO_OVERFLOW_SIMPLE 0 vma->vm_start
HALF_LOCKED2 &inode->i_rwsem

mm/mremap.c vma_multi_allowed() -> userfaultfd_armed()

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

mm/memory.c alloc_anon_folio() -> userfaultfd_armed()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
BUF_SIZE 0 vma (-1),4,24,64,168-s32max
BUF_SIZE 0 vma (-1),4,24,64,168-s32max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 vma->vm_pgoff
HALF_LOCKED2 &mm->mmap_lock

mm/memory.c finish_fault() -> userfaultfd_armed()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
BUF_SIZE 0 vma (-1),4,24,64,168-s32max
BUF_SIZE 0 vma (-1),4,24,64,168-s32max
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 vma->vm_end
NO_OVERFLOW_SIMPLE 0 vma->vm_pgoff
NO_OVERFLOW_SIMPLE 0 vma->vm_start

mm/memory.c thp_swapin_suitable_orders() -> userfaultfd_armed()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
BUF_SIZE 0 vma (-1),1-s32max
BUF_SIZE 0 vma (-1),1-s32max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &mm->mmap_lock

mm/khugepaged.c collapse_max_ptes_none() -> userfaultfd_armed()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
DATA_SOURCE 0 vma $1
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 pte_ptl
HALF_LOCKED2 0 &vma->anon_vma->root->rwsem

mm/khugepaged.c try_collapse_pte_mapped_thp() -> userfaultfd_armed()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
DATA_SOURCE 0 vma r vma_lookup
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &mm->mmap_lock