Documented in 1 files:

Defined in 1 files as a prototype:

Defined in 2 files as a function:

Referenced in 2 files:

Smatch caller information:

mm/rmap.c anon_vma_fork() -> anon_vma_clone()

Type Parameter Key Value
PARAM_VALUE 0 dst 4096-ptr_max
PARAM_VALUE 0 dst->anon_name 0,4096-ptr_max
PARAM_VALUE 0 dst->anon_vma 0
PARAM_VALUE 0 dst->anon_vma_chain.next 4096-ptr_max
PARAM_VALUE 0 dst->anon_vma_chain.next->next 4096-ptr_max
PARAM_VALUE 0 dst->anon_vma_chain.prev 4096-ptr_max
PARAM_VALUE 0 dst->anon_vma_chain.prev->next 4096-ptr_max
PARAM_VALUE 0 dst->anon_vma_chain.prev->prev 4096-ptr_max
PARAM_VALUE 0 dst->flags.__vma_flags 4096-ptr_max
PARAM_VALUE 0 dst->numab_state 0
PARAM_VALUE 0 dst->pfnmap_track_ctx 0,4096-ptr_max
PARAM_VALUE 0 dst->vm_file->f_mapping->i_mmap_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 dst->vm_file->f_mapping->i_mmap_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 dst->vm_lock_seq u32max
PARAM_VALUE 0 dst->vm_mm 4096-ptr_max
PARAM_VALUE 0 dst->vm_mm->context.execute_only_pkey (-1)
PARAM_VALUE 0 dst->vm_mm->context.ldt 0
PARAM_VALUE 0 dst->vm_mm->context.ldt_usr_sem.magic 4096-ptr_max
PARAM_VALUE 0 dst->vm_mm->context.lock.first_waiter 0
PARAM_VALUE 0 dst->vm_mm->context.lock.magic 4096-ptr_max
PARAM_VALUE 0 dst->vm_mm->context.lock.owner.counter 0
PARAM_VALUE 0 dst->vm_mm->context.pkey_allocation_map 1
PARAM_VALUE 0 dst->vm_mm->context.tlb_gen.counter 0
PARAM_VALUE 0 dst->vm_mm->context.untag_mask u64max
PARAM_VALUE 0 dst->vm_mm->def_flags 0,1073741824
PARAM_VALUE 0 dst->vm_mm->exe_file 0,4096-ptr_max
PARAM_VALUE 0 dst->vm_mm->hugetlb_usage.counter 0
PARAM_VALUE 0 dst->vm_mm->ioctx_table 0
PARAM_VALUE 0 dst->vm_mm->iommu_mm 0
PARAM_VALUE 0 dst->vm_mm->locked_vm 0
PARAM_VALUE 0 dst->vm_mm->lru_gen.bitmap 0
PARAM_VALUE 0 dst->vm_mm->lru_gen.memcg 0
PARAM_VALUE 0 dst->vm_mm->map_count 0-s32max
PARAM_VALUE 0 dst->vm_mm->mm_cid.lock.magic 3735899821
PARAM_VALUE 0 dst->vm_mm->mm_cid.lock.owner (-1)
PARAM_VALUE 0 dst->vm_mm->mm_cid.lock.owner_cpu u32max
PARAM_VALUE 0 dst->vm_mm->mm_cid.max_cids 0
PARAM_VALUE 0 dst->vm_mm->mm_cid.mode 0
PARAM_VALUE 0 dst->vm_mm->mm_cid.mutex.first_waiter 0
PARAM_VALUE 0 dst->vm_mm->mm_cid.mutex.magic 4096-ptr_max
PARAM_VALUE 0 dst->vm_mm->mm_cid.mutex.owner.counter 0
PARAM_VALUE 0 dst->vm_mm->mm_cid.pcpu 4096-ptr_max
PARAM_VALUE 0 dst->vm_mm->mm_cid.pcpu_thrs 0
PARAM_VALUE 0 dst->vm_mm->mm_cid.update_deferred 0
PARAM_VALUE 0 dst->vm_mm->mm_cid.users 0
PARAM_VALUE 0 dst->vm_mm->mm_count.counter 1
PARAM_VALUE 0 dst->vm_mm->mm_id 0-s32max
PARAM_VALUE 0 dst->vm_mm->mm_mt.ma_flags 771
PARAM_VALUE 0 dst->vm_mm->mm_mt.ma_root 0
PARAM_VALUE 0 dst->vm_mm->mm_users.counter 1
PARAM_VALUE 0 dst->vm_mm->mmap_lock.count.counter 0
PARAM_VALUE 0 dst->vm_mm->mmap_lock.first_waiter 0
PARAM_VALUE 0 dst->vm_mm->mmap_lock.magic 4096-ptr_max
PARAM_VALUE 0 dst->vm_mm->mmap_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 dst->vm_mm->mmap_lock.owner.counter 0
PARAM_VALUE 0 dst->vm_mm->notifier_subscriptions 0
PARAM_VALUE 0 dst->vm_mm->owner 4096-ptr_max
PARAM_VALUE 0 dst->vm_mm->pgd 18446612682070032384
PARAM_VALUE 0 dst->vm_mm->pinned_vm.counter 0
PARAM_VALUE 0 dst->vm_mm->sc_stat.cpu (-1)
PARAM_VALUE 0 dst->vm_mm->sc_stat.footprint 0
PARAM_VALUE 0 dst->vm_mm->sc_stat.lock.magic 3735899821
PARAM_VALUE 0 dst->vm_mm->sc_stat.lock.owner (-1)
PARAM_VALUE 0 dst->vm_mm->sc_stat.lock.owner_cpu u32max
PARAM_VALUE 0 dst->vm_mm->sc_stat.nr_running_avg 0
PARAM_VALUE 0 dst->vm_mm->sc_stat.pcpu_sched 4096-ptr_max
PARAM_VALUE 0 dst->vm_mm->tlb_flush_pending.counter 0
PARAM_VALUE 0 dst->vm_mm->uprobes_state.xol_area 0
PARAM_VALUE 0 dst->vm_mm->vma_writer_wait.task 0
PARAM_VALUE 0 dst->vm_mm->write_protect_seq.sequence 0
PARAM_VALUE 0 dst->vm_policy 0,4096-ptr_max
PARAM_VALUE 0 dst->vm_policy->refcnt.counter 1
PARAM_VALUE 0 dst->vm_refcnt.refs.counter 0
PARAM_VALUE 0 dst->vm_userfaultfd_ctx.ctx->map_changing_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 dst->vm_userfaultfd_ctx.ctx->map_changing_lock.first_waiter->type 0-1
PARAM_VALUE 0 dst->vmlock_dep_map->name 0-255
PARAM_VALUE 0 dst->vmlock_dep_map.cpu 0
PARAM_VALUE 0 dst->vmlock_dep_map.lock_type 0
PARAM_VALUE 0 dst->vmlock_dep_map.wait_type_outer 0
PARAM_VALUE 1 src 4096-ptr_max
PARAM_VALUE 1 src->anon_name 0,4096-ptr_max
PARAM_VALUE 1 src->anon_vma 1-u64max
PARAM_VALUE 1 src->flags.__vma_flags 4096-ptr_max
PARAM_VALUE 1 src->pfnmap_track_ctx 0,4096-ptr_max
PARAM_VALUE 1 src->vm_mm 4096-ptr_max
PARAM_VALUE 1 src->vm_policy->refcnt.counter 1
PARAM_VALUE 2 operation 3
CAPPED_DATA 0 dst->vm_mm->mm_id 1
CAPPED_DATA 1 src->vm_policy 1
DATA_SOURCE 0 dst $0
DATA_SOURCE 1 src $1
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 dst->vm_start
UNITS 0 dst unit_byte
LOCK2 &mm->mmap_lock
LOCK2 &oldmm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/vma.c __split_vma() -> anon_vma_clone()

Type Parameter Key Value
PARAM_VALUE 0 dst 4096-ptr_max
PARAM_VALUE 0 dst->anon_name 0,4096-ptr_max
PARAM_VALUE 0 dst->anon_vma_chain.next 4096-ptr_max
PARAM_VALUE 0 dst->anon_vma_chain.next->next 4096-ptr_max
PARAM_VALUE 0 dst->anon_vma_chain.prev 4096-ptr_max
PARAM_VALUE 0 dst->anon_vma_chain.prev->next 4096-ptr_max
PARAM_VALUE 0 dst->anon_vma_chain.prev->prev 4096-ptr_max
PARAM_VALUE 0 dst->numab_state 0
PARAM_VALUE 0 dst->pfnmap_track_ctx 0,4096-ptr_max
PARAM_VALUE 0 dst->vm_lock_seq u32max
PARAM_VALUE 0 dst->vm_mm 4096-ptr_max
PARAM_VALUE 0 dst->vm_ops 0,4096-ptr_max
PARAM_VALUE 0 dst->vm_policy 0,4096-ptr_max
PARAM_VALUE 0 dst->vm_policy->refcnt.counter 1
PARAM_VALUE 0 dst->vm_refcnt.refs.counter 0
PARAM_VALUE 0 dst->vmlock_dep_map->name 0-255
PARAM_VALUE 0 dst->vmlock_dep_map.cpu 0
PARAM_VALUE 0 dst->vmlock_dep_map.lock_type 0
PARAM_VALUE 0 dst->vmlock_dep_map.wait_type_outer 0
PARAM_VALUE 1 src 4096-ptr_max
PARAM_VALUE 1 src->anon_name 0,4096-ptr_max
PARAM_VALUE 1 src->pfnmap_track_ctx 0,4096-ptr_max
PARAM_VALUE 1 src->vm_file->f_mapping->i_mmap_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 1 src->vm_file->f_mapping->i_mmap_rwsem.first_waiter->type 0-1
PARAM_VALUE 1 src->vm_mm 4096-ptr_max
PARAM_VALUE 1 src->vm_ops 0,4096-ptr_max
PARAM_VALUE 1 src->vm_policy->refcnt.counter 1
PARAM_VALUE 1 src->vm_userfaultfd_ctx.ctx->map_changing_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 1 src->vm_userfaultfd_ctx.ctx->map_changing_lock.first_waiter->type 0-1
PARAM_VALUE 2 operation 0
CAPPED_DATA 1 src->vm_policy 1
DATA_SOURCE 0 dst r vm_area_dup
DATA_SOURCE 1 src $1
NOSPEC 0 dst->vm_start
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 dst->__vm_anon_pgoff_hi 0-u32max[c]
USER_DATA 0 dst->__vm_anon_pgoff_lo 0-u32max[c]
USER_DATA 0 dst->vm_end 0-u64max[c]
USER_DATA 0 dst->vm_pgoff 0-u64max[c]
USER_DATA 0 dst->vm_start 0-u64max[c]
USER_DATA 1 src->vm_start 1-u64max[c]
NO_OVERFLOW_SIMPLE 0 dst->vm_start
HALF_LOCKED2 &mm->mmap_lock

mm/vma.c copy_vma() -> anon_vma_clone()

Type Parameter Key Value
PARAM_VALUE 0 dst 4096-ptr_max
PARAM_VALUE 0 dst->anon_name 0,4096-ptr_max
PARAM_VALUE 0 dst->anon_vma_chain.next 4096-ptr_max
PARAM_VALUE 0 dst->anon_vma_chain.next->next 4096-ptr_max
PARAM_VALUE 0 dst->anon_vma_chain.prev 4096-ptr_max
PARAM_VALUE 0 dst->anon_vma_chain.prev->next 4096-ptr_max
PARAM_VALUE 0 dst->anon_vma_chain.prev->prev 4096-ptr_max
PARAM_VALUE 0 dst->numab_state 0
PARAM_VALUE 0 dst->pfnmap_track_ctx 0,4096-ptr_max
PARAM_VALUE 0 dst->vm_lock_seq u32max
PARAM_VALUE 0 dst->vm_policy 0,4096-ptr_max
PARAM_VALUE 0 dst->vm_policy->refcnt.counter 1
PARAM_VALUE 0 dst->vm_refcnt.refs.counter 0
PARAM_VALUE 0 dst->vm_start 0-18446744073709547520
PARAM_VALUE 0 dst->vmlock_dep_map->name 0-255
PARAM_VALUE 0 dst->vmlock_dep_map.cpu 0
PARAM_VALUE 0 dst->vmlock_dep_map.lock_type 0
PARAM_VALUE 0 dst->vmlock_dep_map.wait_type_outer 0
PARAM_VALUE 1 src 4096-ptr_max
PARAM_VALUE 1 src->anon_name 0,4096-ptr_max
PARAM_VALUE 1 src->pfnmap_track_ctx 0,4096-ptr_max
PARAM_VALUE 1 src->vm_policy->refcnt.counter 1
PARAM_VALUE 2 operation 2
CAPPED_DATA 1 src->vm_policy 1
DATA_SOURCE 0 dst r vm_area_dup
NOSPEC 0 dst->vm_start
USER_DATA 0 dst->__vm_anon_pgoff_hi 0-u32max[c]
USER_DATA 0 dst->__vm_anon_pgoff_lo 0-u32max[c]
USER_DATA 0 dst->vm_pgoff 0-u64max[c]
USER_DATA 0 dst->vm_start 1-18446744073709547520
NO_OVERFLOW_SIMPLE 0 dst->vm_start
LOCK2 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/vma.c dup_anon_vma() -> anon_vma_clone()

Type Parameter Key Value
PARAM_VALUE 0 dst 4096-ptr_max
PARAM_VALUE 0 dst->anon_vma 1-u64max
PARAM_VALUE 0 dst->vm_mm 4096-ptr_max
PARAM_VALUE 1 src 4096-ptr_max
PARAM_VALUE 1 src->anon_vma 1-u64max
PARAM_VALUE 2 operation 1
CAPPED_DATA 0 dst 1
CAPPED_DATA 1 src 1
DATA_SOURCE 0 dst $0
DATA_SOURCE 1 src $1
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &mm->mmap_lock