Defined in 1 files as a prototype:

Defined in 10 files as a function:

Referenced in 3 files:

Smatch caller information:

mm/userfaultfd.c mfill_atomic_hugetlb() -> huge_pte_alloc()

Type Parameter Key Value
PARAM_VALUE 0 mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 1 vma 4096-ptr_max
PARAM_VALUE 1 vma->flags.__vma_flags 4096-ptr_max
PARAM_VALUE 1 vma->vm_file 4096-ptr_max
PARAM_VALUE 1 vma->vm_file->f_mapping->i_mmap_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 1 vma->vm_file->f_mapping->i_mmap_rwsem.first_waiter->type 0-1
PARAM_VALUE 1 vma->vm_mm->vma_writer_wait.task->sched_class->uclamp_enabled 0-1
PARAM_VALUE 1 vma->vm_ops 0,4096-ptr_max
PARAM_VALUE 1 vma->vm_refcnt.refs.counter (-1073741824),0-s32max
PARAM_VALUE 1 vma->vm_userfaultfd_ctx.ctx 1-u64max
CAPPED_DATA 1 vma 1
DATA_SOURCE 1 vma $1 [m]
DATA_SOURCE 3 sz r vma_kernel_pagesize
NOSPEC 2 addr
NOSPEC 2 addr
USER_DATA 1 vma->vm_policy->flags 0,24,8192-57368[c]
USER_DATA 1 vma->vm_policy->home_node 0-1023
USER_DATA 2 addr 0-18446744073709551614[c]
NO_OVERFLOW_SIMPLE 2 addr
UNITS 0 mm unit_byte
UNITS 2 addr unit_byte
LOCK2 &state.ctx->map_changing_lock
HALF_LOCKED2 &ctx->map_changing_lock
TYPE_LOCK (struct userfaultfd_ctx)->map_changing_lock

fs/proc/task_mmu.c pagemap_scan_hugetlb_hole_wp() -> huge_pte_alloc()

Type Parameter Key Value
PARAM_VALUE 1 vma 4096-ptr_max
PARAM_VALUE 1 vma->flags.__vma_flags 4096-ptr_max
PARAM_VALUE 1 vma->vm_file 4096-ptr_max
PARAM_VALUE 1 vma->vm_file->f_mapping->i_mmap_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 1 vma->vm_file->f_mapping->i_mmap_rwsem.first_waiter->type 0-1
PARAM_VALUE 2 addr 0-18446744073709551614
CAPPED_DATA 2 addr 1
CAPPED_DATA 2 addr 1
DATA_SOURCE 1 vma $0
DATA_SOURCE 2 addr $1 [m]
DATA_SOURCE 3 sz r huge_page_size
NOSPEC 2 addr
NOSPEC 2 addr
RX_PATH
TASK_NOT_RUNNING
USER_DATA 2 addr 0-18446744073709551614[c]
NO_OVERFLOW_SIMPLE 1 vma->vm_end
NO_OVERFLOW_SIMPLE 1 vma->vm_pgoff
NO_OVERFLOW_SIMPLE 1 vma->vm_start
UNITS 0 mm unit_byte

mm/hugetlb.c copy_hugetlb_page_range() -> huge_pte_alloc()

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

mm/hugetlb.c hugetlb_change_protection() -> huge_pte_alloc()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 1 vma 4096-ptr_max
PARAM_VALUE 1 vma->flags.__vma_flags 4096-ptr_max
PARAM_VALUE 1 vma->vm_file 4096-ptr_max
PARAM_VALUE 1 vma->vm_file->f_mapping 4096-ptr_max
PARAM_VALUE 1 vma->vm_file->f_mapping->i_mmap_rwsem.dep_map->name 0-255
PARAM_VALUE 1 vma->vm_file->f_mapping->i_mmap_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 1 vma->vm_file->f_mapping->i_mmap_rwsem.first_waiter->list.next 2212933610777083904,2624917664208203776
PARAM_VALUE 1 vma->vm_file->f_mapping->i_mmap_rwsem.first_waiter->list.prev 2212933610777083904,2624917664208203776
PARAM_VALUE 1 vma->vm_file->f_mapping->i_mmap_rwsem.first_waiter->type 0-1
PARAM_VALUE 1 vma->vm_mm 4096-ptr_max
PARAM_VALUE 1 vma->vm_private_data->rw_sema.dep_map->name 0-255
PARAM_VALUE 1 vma->vm_private_data->rw_sema.first_waiter->list.next 2624917664208203776
PARAM_VALUE 1 vma->vm_private_data->rw_sema.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 1 vma->vm_private_data->rw_sema.first_waiter->type 0-1
PARAM_VALUE 1 vma->vm_private_data->rw_sema.osq.tail.counter 0-s32max
PARAM_VALUE 2 addr 0-18446744073709551614
CAPPED_DATA 1 vma 1
CAPPED_DATA 2 addr 1
CAPPED_DATA 2 addr 1
DATA_SOURCE 1 vma $0
DATA_SOURCE 2 addr $1 [m]
DATA_SOURCE 3 sz r huge_page_size
NOSPEC 1 vma->vm_start
NOSPEC 2 addr
NOSPEC 2 addr
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 vma->vm_start 1-u64max[c]
USER_DATA 2 addr 0-18446744073709551614
NO_OVERFLOW_SIMPLE 1 vma->vm_end
NO_OVERFLOW_SIMPLE 1 vma->vm_file->f_mapping->host->i_bytes
NO_OVERFLOW_SIMPLE 1 vma->vm_start
UNITS 0 mm unit_byte
UNITS 2 addr unit_byte
LOCK2 1 &vma->vm_file->f_mapping->i_mmap_rwsem
HALF_LOCKED2 &dst_mm->mmap_lock
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 _T->lock
TYPE_LOCK (struct address_space)->i_mmap_rwsem

mm/hugetlb.c hugetlb_fault() -> huge_pte_alloc()

Type Parameter Key Value
PARAM_VALUE 0 mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 0 mm->vma_writer_wait.task->sched_class->uclamp_enabled 0-1
PARAM_VALUE 1 vma 4096-ptr_max
PARAM_VALUE 1 vma->flags.__vma_flags 4096-ptr_max
PARAM_VALUE 1 vma->vm_file 4096-ptr_max
PARAM_VALUE 1 vma->vm_file->f_inode->i_mapping->invalidate_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 1 vma->vm_file->f_inode->i_mapping->invalidate_lock.first_waiter->type 0-1
PARAM_VALUE 1 vma->vm_file->f_inode->i_sb->s_cop->inode_info_offs 1632,1640,1720,1808,1816,2632,2640,2648,2704,2712
PARAM_VALUE 1 vma->vm_file->f_mapping->i_mmap_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 1 vma->vm_file->f_mapping->i_mmap_rwsem.first_waiter->type 0-1
PARAM_VALUE 1 vma->vm_file->f_mapping->invalidate_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 1 vma->vm_file->f_mapping->invalidate_lock.first_waiter->type 0-1
PARAM_VALUE 1 vma->vm_mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 1 vma->vm_mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 1 vma->vm_mm->vma_writer_wait.task->sched_class->uclamp_enabled 0-1
PARAM_VALUE 1 vma->vm_private_data->rw_sema.dep_map->name 0-255
PARAM_VALUE 1 vma->vm_private_data->rw_sema.first_waiter->list.next 2212933610777083904
PARAM_VALUE 1 vma->vm_private_data->rw_sema.first_waiter->list.prev 2212933610777083904
PARAM_VALUE 1 vma->vm_private_data->rw_sema.first_waiter->type 0-1
BUF_SIZE 1 vma (-1),1-s32max
BUF_SIZE 1 vma (-1),1-s32max
BUF_SIZE 1 vma->vm_file (-1),4,24,64,168-s32max
BUF_SIZE 1 vma->vm_private_data (-1)-s32max
CAPPED_DATA 1 vma 1
CAPPED_DATA 2 addr 1
CAPPED_DATA 2 addr 1
DATA_SOURCE 0 mm $0
DATA_SOURCE 1 vma $1
NOSPEC 1 vma->vm_pgoff
NOSPEC 1 vma->vm_start
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 vma->vm_end 4096-u64max[c]
USER_DATA 1 vma->vm_pgoff 0-4503599627370495[c]
USER_DATA 1 vma->vm_start 0-18446744073709547520
USER_DATA 2 addr 0-u64max[c]
NO_OVERFLOW_SIMPLE 1 vma->vm_file->f_mapping->host->i_bytes
NO_OVERFLOW_SIMPLE 1 vma->vm_pgoff
NO_OVERFLOW_SIMPLE 1 vma->vm_policy->mode
UNITS 0 mm unit_byte
UNITS 2 addr unit_byte
HALF_LOCKED2 &mm->mmap_lock

mm/hugetlb.c move_hugetlb_page_tables() -> huge_pte_alloc()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 1 vma 1-u64max
PARAM_VALUE 1 vma->vm_file->f_mapping->i_mmap_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 1 vma->vm_file->f_mapping->i_mmap_rwsem.first_waiter->type 0-1
DATA_SOURCE 1 vma $1
DATA_SOURCE 2 addr $3 [m]
DATA_SOURCE 3 sz r huge_page_size
USER_DATA 2 addr 0-u64max
UNITS 0 mm unit_byte
UNITS 2 addr unit_byte
LOCK2 &mapping->i_mmap_rwsem
LOCK2 &mm->mmap_lock
HALF_LOCKED2 &tsk->signal->exec_update_lock
TYPE_LOCK (struct address_space)->i_mmap_rwsem
TYPE_LOCK (struct mm_struct)->mmap_lock