Defined in 2 files as a function:

Referenced in 14 files:

Smatch caller information:

mm/mmap.c __do_sys_brk() -> vma_iter_init()

Type Parameter Key Value
PARAM_VALUE 0 vmi 5394055068851789824
PARAM_VALUE 1 mm 4096-ptr_max
PARAM_VALUE 1 mm->mmap_lock.dep_map->name 0-255
PARAM_VALUE 1 mm->mmap_lock.first_waiter->list.next 2624917664208203776
PARAM_VALUE 1 mm->mmap_lock.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 1 mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 1 mm->mmap_lock.osq.tail.counter 0-s32max
PARAM_VALUE 2 addr 0,4096-u64max
BIT_INFO 2 addr 0x0,0xfffffffffffff000
BIT_INFO 2 addr 0x0,0xfffffffffffff000
NOCHECK_CALL
USER_DATA 2 addr 0,4096-u64max[c]
UNITS 1 mm unit_byte
LOCK2 1 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/mmap.c __do_sys_brk() -> vma_iter_init()

Type Parameter Key Value
PARAM_VALUE 0 vmi 5394055068851789824
PARAM_VALUE 1 mm 4096-ptr_max
PARAM_VALUE 1 mm->brk 0-18446744073709551614
PARAM_VALUE 1 mm->mmap_lock.dep_map->name 0-255
PARAM_VALUE 1 mm->mmap_lock.first_waiter->list.next 2624917664208203776
PARAM_VALUE 1 mm->mmap_lock.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 1 mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 1 mm->mmap_lock.osq.tail.counter 0-s32max
PARAM_VALUE 2 addr 0,4096-u64max
CAPPED_DATA 1 mm->brk 1
CAPPED_DATA 2 addr 1
CAPPED_DATA 2 addr 1
BIT_INFO 2 addr 0x0,0xfffffffffffff000
BIT_INFO 2 addr 0x0,0xfffffffffffff000
NOCHECK_CALL
UNITS 1 mm unit_byte
LOCK2 1 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/mmap.c __do_sys_brk() -> vma_iter_init()

Type Parameter Key Value
PARAM_VALUE 0 vmi 5394055068851789824
PARAM_VALUE 1 mm 4096-ptr_max
PARAM_VALUE 1 mm->mmap_lock.dep_map->name 0-255
PARAM_VALUE 1 mm->mmap_lock.first_waiter->list.next 2624917664208203776
PARAM_VALUE 1 mm->mmap_lock.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 1 mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 1 mm->mmap_lock.osq.tail.counter 0-s32max
PARAM_VALUE 2 addr 0,4096-u64max
BIT_INFO 2 addr 0x0,0xfffffffffffff000
BIT_INFO 2 addr 0x0,0xfffffffffffff000
NOCHECK_CALL
USER_DATA 2 addr 0,4096-u64max[c]
UNITS 1 mm unit_byte
LOCK2 1 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/mmap.c __do_sys_brk() -> vma_iter_init()

Type Parameter Key Value
PARAM_VALUE 0 vmi 5394055068851789824
PARAM_VALUE 1 mm 4096-ptr_max
PARAM_VALUE 1 mm->brk 0-18446744073709551614
PARAM_VALUE 1 mm->mmap_lock.dep_map->name 0-255
PARAM_VALUE 1 mm->mmap_lock.first_waiter->list.next 2624917664208203776
PARAM_VALUE 1 mm->mmap_lock.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 1 mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 1 mm->mmap_lock.osq.tail.counter 0-s32max
PARAM_VALUE 2 addr 0,4096-u64max
CAPPED_DATA 1 mm->brk 1
CAPPED_DATA 2 addr 1
CAPPED_DATA 2 addr 1
BIT_INFO 2 addr 0x0,0xfffffffffffff000
BIT_INFO 2 addr 0x0,0xfffffffffffff000
NOCHECK_CALL
UNITS 1 mm unit_byte
LOCK2 1 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/userfaultfd.c userfaultfd_register() -> vma_iter_init()

Type Parameter Key Value
PARAM_VALUE 0 vmi 7310982813862457344
PARAM_VALUE 1 mm 4096-ptr_max
PARAM_VALUE 1 mm->mm_users.counter 0-s32max
PARAM_VALUE 1 mm->mmap_lock.dep_map->name 0-255
PARAM_VALUE 1 mm->mmap_lock.first_waiter->list.next 2624917664208203776
PARAM_VALUE 1 mm->mmap_lock.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 1 mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 1 mm->mmap_lock.osq.tail.counter 0-s32max
PARAM_VALUE 1 mm->task_size 1-u64max
PARAM_VALUE 2 addr 0-18446744073709551614
CAPPED_DATA 1 mm->task_size 1
CAPPED_DATA 2 addr 1
CAPPED_DATA 2 addr 1
PARAM_COMPARE 1 mm->task_size > $2
PARAM_COMPARE 2 addr < $1->task_size
NOSPEC 2 addr
NOSPEC 2 addr
NOCHECK_CALL
USER_DATA 2 addr 0-18446744073709551614[c]
NO_OVERFLOW_SIMPLE 2 addr
UNITS 1 mm unit_byte
LOCK2 1 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/userfaultfd.c userfaultfd_unregister() -> vma_iter_init()

Type Parameter Key Value
PARAM_VALUE 0 vmi 1467127174713044992
PARAM_VALUE 1 mm 4096-ptr_max
PARAM_VALUE 1 mm->mm_users.counter 0-s32max
PARAM_VALUE 1 mm->mmap_lock.dep_map->name 0-255
PARAM_VALUE 1 mm->mmap_lock.first_waiter->list.next 2624917664208203776
PARAM_VALUE 1 mm->mmap_lock.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 1 mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 1 mm->mmap_lock.osq.tail.counter 0-s32max
PARAM_VALUE 1 mm->task_size 1-u64max
PARAM_VALUE 2 addr 0-18446744073709551614
CAPPED_DATA 1 mm->task_size 1
CAPPED_DATA 2 addr 1
CAPPED_DATA 2 addr 1
PARAM_COMPARE 1 mm->task_size > $2
PARAM_COMPARE 2 addr < $1->task_size
NOSPEC 2 addr
NOSPEC 2 addr
NOCHECK_CALL
USER_DATA 2 addr 0-18446744073709551614[c]
NO_OVERFLOW_SIMPLE 2 addr
UNITS 1 mm unit_byte
LOCK2 1 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

fs/proc/base.c proc_map_files_readdir() -> vma_iter_init()

Type Parameter Key Value
PARAM_VALUE 0 vmi 5497999249689317376
PARAM_VALUE 1 mm 4096-ptr_max
PARAM_VALUE 1 mm->mmap_lock.dep_map->name 0-255
PARAM_VALUE 1 mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 1 mm->mmap_lock.first_waiter->list.next 2212933610777083904
PARAM_VALUE 1 mm->mmap_lock.first_waiter->list.prev 2212933610777083904
PARAM_VALUE 1 mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 2 addr 0
CAPPED_DATA 1 mm 1
DATA_SOURCE 1 mm r mm_access
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 1 &mm->mmap_lock
HALF_LOCKED2 &dir_fp->readdir_lock
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct inode)->i_rwsem
TYPE_LOCK (struct mm_struct)->mmap_lock

fs/proc/task_mmu.c m_start() -> vma_iter_init()

Type Parameter Key Value
PARAM_VALUE 0 vmi 4096-ptr_max
PARAM_VALUE 1 mm 4096-ptr_max
PARAM_VALUE 1 mm->mm_users.counter 0-s32max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &m->lock
LOCK2 rcu_read
TYPE_LOCK (struct seq_file)->lock

fs/proc/task_mmu.c query_vma_find_by_addr() -> vma_iter_init()

Type Parameter Key Value
PARAM_VALUE 0 vmi 1453244595307524096
PARAM_VALUE 1 mm 4096-ptr_max
DATA_SOURCE 2 addr $1
NOCHECK_CALL
USER_DATA 2 addr 0-u64max
UNITS 2 addr unit_byte
LOCK2 rcu_read
HALF_LOCKED2 &lock_ctx->mm->mmap_lock

mm/mprotect.c do_mprotect_pkey() -> vma_iter_init()

Type Parameter Key Value
PARAM_VALUE 0 vmi 6391229382859632640
PARAM_VALUE 2 addr 0-18446744073709551614
CAPPED_DATA 2 addr 1
CAPPED_DATA 2 addr 1
DATA_SOURCE 2 addr r __untagged_addr
BIT_INFO 2 addr 0x0,0xfffffffffffff000
BIT_INFO 2 addr 0x0,0xfffffffffffff000
NOSPEC 2 addr
NOSPEC 2 addr
NOCHECK_CALL
USER_DATA 2 addr 0-18446744073709551614
UNITS 1 mm unit_byte

mm/ksm.c scan_get_next_rmap_item() -> vma_iter_init()

Type Parameter Key Value
PARAM_VALUE 0 vmi 2193323917388951552
PARAM_VALUE 1 mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 1 mm->mmap_lock.first_waiter->type 0-1
NOCHECK_CALL
UNITS 1 mm unit_byte
UNITS 2 addr unit_byte
LOCK2 global &ksm_thread_mutex

mm/vma.c mm_take_all_locks() -> vma_iter_init()

Type Parameter Key Value
PARAM_VALUE 0 vmi 4389191866332532736
PARAM_VALUE 0 vmi->mas.alloc 0
PARAM_VALUE 0 vmi->mas.mas_flags 0
PARAM_VALUE 0 vmi->mas.node_request 0
PARAM_VALUE 0 vmi->mas.sheaf 0
PARAM_VALUE 0 vmi->mas.status 0-1,3,5,8-u32max
PARAM_VALUE 0 vmi->mas.store_type 0
PARAM_VALUE 1 mm 4096-ptr_max
PARAM_VALUE 1 mm->mm_users.counter 1-s32max
PARAM_VALUE 1 mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 1 mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 2 addr 0
BUF_SIZE 1 mm (-1)-s32max
BUF_SIZE 1 mm (-1)-s32max
DATA_SOURCE 1 mm $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 1 mm unit_byte
LOCK2 global &mm_all_locks_mutex
HALF_LOCKED2 &cli->mutex
HALF_LOCKED2 1 &mm->mmap_lock

mm/vma.c mm_take_all_locks() -> vma_iter_init()

Type Parameter Key Value
PARAM_VALUE 0 vmi 4389191866332532736
PARAM_VALUE 0 vmi->mas.alloc 0
PARAM_VALUE 0 vmi->mas.mas_flags 0
PARAM_VALUE 0 vmi->mas.node_request 0
PARAM_VALUE 0 vmi->mas.sheaf 0
PARAM_VALUE 0 vmi->mas.status 0-1,3,5,8-u32max
PARAM_VALUE 0 vmi->mas.store_type 0
PARAM_VALUE 1 mm 4096-ptr_max
PARAM_VALUE 1 mm->mm_users.counter 1-s32max
PARAM_VALUE 1 mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 1 mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 2 addr 0
BUF_SIZE 1 mm (-1)-s32max
BUF_SIZE 1 mm (-1)-s32max
DATA_SOURCE 1 mm $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 1 mm unit_byte
LOCK2 global &mm_all_locks_mutex
HALF_LOCKED2 &cli->mutex
HALF_LOCKED2 1 &mm->mmap_lock

mm/vma.c mm_take_all_locks() -> vma_iter_init()

Type Parameter Key Value
PARAM_VALUE 0 vmi 4389191866332532736
PARAM_VALUE 0 vmi->mas.alloc 0
PARAM_VALUE 0 vmi->mas.mas_flags 0
PARAM_VALUE 0 vmi->mas.node_request 0
PARAM_VALUE 0 vmi->mas.sheaf 0
PARAM_VALUE 0 vmi->mas.status 0-1,3,5,8-u32max
PARAM_VALUE 0 vmi->mas.store_type 0
PARAM_VALUE 1 mm 4096-ptr_max
PARAM_VALUE 1 mm->mm_users.counter 1-s32max
PARAM_VALUE 1 mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 1 mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 2 addr 0
BUF_SIZE 1 mm (-1)-s32max
BUF_SIZE 1 mm (-1)-s32max
DATA_SOURCE 1 mm $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 1 mm unit_byte
LOCK2 global &mm_all_locks_mutex
HALF_LOCKED2 &cli->mutex
HALF_LOCKED2 1 &mm->mmap_lock

kernel/sched/fair.c task_numa_work() -> vma_iter_init()

Type Parameter Key Value
PARAM_VALUE 0 vmi 246989008896827392
PARAM_VALUE 1 mm 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 1 mm unit_byte
UNITS 2 addr unit_byte
LOCK2 1 &mm->mmap_lock
HALF_LOCKED2 bh
HALF_LOCKED2 rcu
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/mempolicy.c do_mbind() -> vma_iter_init()

Type Parameter Key Value
PARAM_VALUE 0 vmi 6390261669419782144
PARAM_VALUE 1 mm 4096-ptr_max
PARAM_VALUE 1 mm->mmap_lock.dep_map->name 0-255
PARAM_VALUE 1 mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 1 mm->mmap_lock.first_waiter->list.next 2624917664208203776
PARAM_VALUE 1 mm->mmap_lock.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 1 mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 1 mm->mmap_lock.osq.tail.counter 0-s32max
PARAM_VALUE 1 mm->page_table_lock.rlock.dep_map->name 0-255
CAPPED_DATA 2 addr 1
CAPPED_DATA 2 addr 1
DATA_SOURCE 2 addr $0
BIT_INFO 2 addr 0x0,0xfffffffffffff000
BIT_INFO 2 addr 0x0,0xfffffffffffff000
NOCHECK_CALL
USER_DATA 2 addr 0-u64max
NO_OVERFLOW_SIMPLE 2 addr
UNITS 1 mm unit_byte
HALF_LOCKED2 1 &mm->mmap_lock

mm/mempolicy.c do_mbind() -> vma_iter_init()

Type Parameter Key Value
PARAM_VALUE 0 vmi 6390261669419782144
PARAM_VALUE 0 vmi->mas.alloc 0
PARAM_VALUE 0 vmi->mas.mas_flags 0
PARAM_VALUE 0 vmi->mas.node_request 0
PARAM_VALUE 0 vmi->mas.sheaf 0
PARAM_VALUE 0 vmi->mas.status 0-1,3,5,8-u32max
PARAM_VALUE 0 vmi->mas.store_type 0
PARAM_VALUE 1 mm 4096-ptr_max
PARAM_VALUE 1 mm->mmap_lock.dep_map->name 0-255
PARAM_VALUE 1 mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 1 mm->mmap_lock.first_waiter->list.next 2624917664208203776
PARAM_VALUE 1 mm->mmap_lock.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 1 mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 1 mm->mmap_lock.osq.tail.counter 0-s32max
PARAM_VALUE 1 mm->page_table_lock.rlock.dep_map->name 0-255
CAPPED_DATA 2 addr 1
CAPPED_DATA 2 addr 1
DATA_SOURCE 2 addr $0
BIT_INFO 2 addr 0x0,0xfffffffffffff000
BIT_INFO 2 addr 0x0,0xfffffffffffff000
NOCHECK_CALL
USER_DATA 2 addr 0-u64max[c]
NO_OVERFLOW_SIMPLE 0 vmi->mas.last
NO_OVERFLOW_SIMPLE 2 addr
UNITS 1 mm unit_byte
HALF_LOCKED2 1 &mm->mmap_lock

kernel/bpf/task_iter.c bpf_iter_task_vma_find_next() -> vma_iter_init()

Type Parameter Key Value
PARAM_VALUE 0 vmi 7318298409367031808
NOCHECK_CALL
UNITS 1 mm unit_byte
UNITS 2 addr unit_byte
LOCK2 rcu_read

mm/khugepaged.c collapse_scan_mm_slot() -> vma_iter_init()

Type Parameter Key Value
PARAM_VALUE 0 vmi 8723560090998607872
PARAM_VALUE 1 mm 4096-ptr_max
PARAM_VALUE 1 mm->mm_users.counter s32min-(-1),1-s32max
PARAM_VALUE 2 addr 0
NOCHECK_CALL
UNITS 1 mm unit_byte
UNITS 2 addr unit_byte
LOCK2 1 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

fs/exec.c setup_arg_pages() -> vma_iter_init()

Type Parameter Key Value
PARAM_VALUE 0 vmi 5985223385738014720
PARAM_VALUE 1 mm 4096-ptr_max
PARAM_VALUE 1 mm->mmap_lock.dep_map->name 0-255
PARAM_VALUE 1 mm->mmap_lock.first_waiter->list.next 2624917664208203776
PARAM_VALUE 1 mm->mmap_lock.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 1 mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 1 mm->mmap_lock.osq.tail.counter 0-s32max
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 1 mm->arg_start
UNITS 1 mm unit_byte
UNITS 2 addr unit_byte
LOCK2 &tsk->signal->exec_update_lock
LOCK2 1 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock