Defined in 1 files as a prototype:

Defined in 2 files as a function:

Referenced in 4 files:

Smatch caller information:

mm/huge_memory.c __do_huge_pmd_anonymous_page() -> handle_userfault()

Type Parameter Key Value
PARAM_VALUE 0 vmf 2900308121553498112
PARAM_VALUE 0 vmf->address 0,4096-u64max
PARAM_VALUE 0 vmf->cow_page 0
PARAM_VALUE 0 vmf->flags 0-4950
PARAM_VALUE 0 vmf->gfp_mask 0,64-u32max
PARAM_VALUE 0 vmf->page 0
PARAM_VALUE 0 vmf->pmd 4096-ptr_max
PARAM_VALUE 0 vmf->pte 0
PARAM_VALUE 0 vmf->ptl 4096-ptr_max
PARAM_VALUE 0 vmf->ptl->rlock.dep_map->name 0-255
PARAM_VALUE 0 vmf->pud 4096-ptr_max
PARAM_VALUE 0 vmf->vma 4096-ptr_max
PARAM_VALUE 0 vmf->vma->anon_vma_chain.next 4096-ptr_max
PARAM_VALUE 0 vmf->vma->anon_vma_chain.next->next 4096-ptr_max
PARAM_VALUE 0 vmf->vma->anon_vma_chain.next->prev 4096-ptr_max
PARAM_VALUE 0 vmf->vma->vm_mm 4096-ptr_max
PARAM_VALUE 0 vmf->vma->vm_mm->mmap_lock.dep_map->name 0-255
PARAM_VALUE 0 vmf->vma->vm_mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vmf->vma->vm_mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 0 vmf->vma->vm_mm->page_table_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 vmf->vma->vm_ops 0
PARAM_VALUE 0 vmf->vma->vm_start 0
PARAM_VALUE 1 reason 512
BUF_SIZE 0 vmf->vma (-1),1-s32max
CAPPED_DATA 0 vmf->vma 1
DATA_SOURCE 0 vmf $0
BIT_INFO 0 vmf->address 0x0,0xfffffffffffff000
BIT_INFO 0 vmf->gfp_mask 0xc0,0xffffffffffffffff
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 vmf->address 0,4096-u64max[c]
USER_DATA 0 vmf->pgoff 0-13510801029595132[c]
USER_DATA 0 vmf->real_address 0-u64max[c]
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &pool->lock

mm/huge_memory.c do_huge_pmd_anonymous_page() -> handle_userfault()

Type Parameter Key Value
PARAM_VALUE 0 vmf 2900308121553498112
PARAM_VALUE 0 vmf->address 0,4096-u64max
PARAM_VALUE 0 vmf->cow_page 0
PARAM_VALUE 0 vmf->flags 0-4950
PARAM_VALUE 0 vmf->gfp_mask 0,64-u32max
PARAM_VALUE 0 vmf->page 0
PARAM_VALUE 0 vmf->pmd 4096-ptr_max
PARAM_VALUE 0 vmf->pte 0
PARAM_VALUE 0 vmf->ptl 4096-ptr_max
PARAM_VALUE 0 vmf->ptl->rlock.dep_map->name 0-255
PARAM_VALUE 0 vmf->pud 4096-ptr_max
PARAM_VALUE 0 vmf->vma 4096-ptr_max
PARAM_VALUE 0 vmf->vma->anon_vma_chain.next 4096-ptr_max
PARAM_VALUE 0 vmf->vma->anon_vma_chain.next->next 4096-ptr_max
PARAM_VALUE 0 vmf->vma->anon_vma_chain.next->prev 4096-ptr_max
PARAM_VALUE 0 vmf->vma->vm_mm 4096-ptr_max
PARAM_VALUE 0 vmf->vma->vm_mm->mmap_lock.dep_map->name 0-255
PARAM_VALUE 0 vmf->vma->vm_mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vmf->vma->vm_mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 0 vmf->vma->vm_mm->page_table_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 vmf->vma->vm_ops 0
PARAM_VALUE 0 vmf->vma->vm_start 0
PARAM_VALUE 1 reason 512
CAPPED_DATA 0 vmf->vma 1
DATA_SOURCE 0 vmf $0
BIT_INFO 0 vmf->flags 0x0,0x1ffe
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 vmf->address 0,4096-u64max[c]
USER_DATA 0 vmf->pgoff 0-9007199254740990[c]
USER_DATA 0 vmf->real_address 0-u64max
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &pool->lock

mm/huge_memory.c do_huge_pmd_uffd_rwp() -> handle_userfault()

Type Parameter Key Value
PARAM_VALUE 0 vmf 2900308121553498112
PARAM_VALUE 0 vmf->address 0,4096-u64max
PARAM_VALUE 0 vmf->cow_page 0
PARAM_VALUE 0 vmf->flags 0-4950
PARAM_VALUE 0 vmf->gfp_mask 0,64-u32max
PARAM_VALUE 0 vmf->page 0
PARAM_VALUE 0 vmf->pmd 4096-ptr_max
PARAM_VALUE 0 vmf->pte 0
PARAM_VALUE 0 vmf->ptl 0
PARAM_VALUE 0 vmf->pud 4096-ptr_max
PARAM_VALUE 0 vmf->vma 4096-ptr_max
PARAM_VALUE 1 reason 8796093022208
DATA_SOURCE 0 vmf $0
NOSPEC 0 vmf->real_address
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 vmf->address 0,4096-u64max[c]
USER_DATA 0 vmf->pgoff 0-13510801029595132[c]
USER_DATA 0 vmf->real_address 0-u64max[c]
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &pool->lock

mm/shmem.c shmem_get_folio_gfp() -> handle_userfault()

Type Parameter Key Value
PARAM_VALUE 0 vmf 4096-ptr_max
PARAM_VALUE 0 vmf->gfp_mask 0,64-u32max
PARAM_VALUE 0 vmf->vma 4096-ptr_max
PARAM_VALUE 0 vmf->vma->vm_file 4096-ptr_max
PARAM_VALUE 0 vmf->vma->vm_file->f_inode->i_mapping 4096-ptr_max
PARAM_VALUE 0 vmf->vma->vm_mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vmf->vma->vm_mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 0 vmf->vma->vm_mm->vma_writer_wait.task->sched_class->uclamp_enabled 0-1
PARAM_VALUE 1 reason 2199023255552
BUF_SIZE 0 vmf->cow_page (-1),64
CAPPED_DATA 0 vmf->vma 1
DATA_SOURCE 0 vmf $6
NOSPEC 0 vmf->address
NOSPEC 0 vmf->pgoff
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 vmf->address 0-u64max[c]
USER_DATA 0 vmf->pgoff 0-4503599627370495
USER_DATA 0 vmf->pte 4096-ptr_max[u]
USER_DATA 0 vmf->real_address 0-u64max[c]
NO_OVERFLOW_SIMPLE 0 vmf->vma->vm_end
NO_OVERFLOW_SIMPLE 0 vmf->vma->vm_pgoff
NO_OVERFLOW_SIMPLE 0 vmf->vma->vm_start

mm/shmem.c shmem_get_folio_gfp() -> handle_userfault()

Type Parameter Key Value
PARAM_VALUE 0 vmf 4096-ptr_max
PARAM_VALUE 0 vmf->gfp_mask 0,64-u32max
PARAM_VALUE 0 vmf->vma 4096-ptr_max
PARAM_VALUE 0 vmf->vma->vm_file 4096-ptr_max
PARAM_VALUE 0 vmf->vma->vm_file->f_inode->i_mapping 4096-ptr_max
PARAM_VALUE 0 vmf->vma->vm_mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vmf->vma->vm_mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 0 vmf->vma->vm_mm->vma_writer_wait.task->sched_class->uclamp_enabled 0-1
PARAM_VALUE 1 reason 512
BUF_SIZE 0 vmf->cow_page (-1),64
CAPPED_DATA 0 vmf->vma 1
DATA_SOURCE 0 vmf $6
NOSPEC 0 vmf->address
NOSPEC 0 vmf->pgoff
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 vmf->address 0-u64max[c]
USER_DATA 0 vmf->pgoff 0-4503599627370495
USER_DATA 0 vmf->pte 4096-ptr_max[u]
USER_DATA 0 vmf->real_address 0-u64max[c]
NO_OVERFLOW_SIMPLE 0 vmf->vma->vm_end
NO_OVERFLOW_SIMPLE 0 vmf->vma->vm_pgoff
NO_OVERFLOW_SIMPLE 0 vmf->vma->vm_start

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

Type Parameter Key Value
PARAM_VALUE 0 vmf 8740012632822697984
PARAM_VALUE 0 vmf->cow_page 0
PARAM_VALUE 0 vmf->flags 1-4950
PARAM_VALUE 0 vmf->gfp_mask 0
PARAM_VALUE 0 vmf->page 0
PARAM_VALUE 0 vmf->pgoff 0-36028797018963967
PARAM_VALUE 0 vmf->pmd 0
PARAM_VALUE 0 vmf->pte 4096-ptr_max
PARAM_VALUE 0 vmf->ptl 4096-ptr_max
PARAM_VALUE 0 vmf->pud 0
PARAM_VALUE 0 vmf->vma 4096-ptr_max
PARAM_VALUE 1 reason 4096
NOSPEC 0 vmf->real_address
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 vmf->address 0-u64max[c]
USER_DATA 0 vmf->pgoff 0-36028797018963967[c]
USER_DATA 0 vmf->real_address 0-u64max
HALF_LOCKED2 &mm->mmap_lock

mm/hugetlb.c hugetlb_handle_userfault() -> handle_userfault()

Type Parameter Key Value
PARAM_VALUE 0 vmf 8740012632822697984
PARAM_VALUE 0 vmf->cow_page 0
PARAM_VALUE 0 vmf->flags 0-4950
PARAM_VALUE 0 vmf->gfp_mask 0
PARAM_VALUE 0 vmf->page 0
PARAM_VALUE 0 vmf->pgoff 0-36028797018963967
PARAM_VALUE 0 vmf->pmd 0
PARAM_VALUE 0 vmf->pte 4096-ptr_max
PARAM_VALUE 0 vmf->ptl 0
PARAM_VALUE 0 vmf->pud 0
PARAM_VALUE 0 vmf->vma 4096-ptr_max
PARAM_VALUE 0 vmf->vma->vm_private_data->rw_sema.dep_map->name 0-255
PARAM_VALUE 0 vmf->vma->vm_private_data->rw_sema.first_waiter->handoff_set 1
PARAM_VALUE 0 vmf->vma->vm_private_data->rw_sema.first_waiter->type 0-1
PARAM_VALUE 1 reason 512,2199023255552,8796093022208
CAPPED_DATA 0 vmf->pgoff 1
CAPPED_DATA 0 vmf->pte 1
DATA_SOURCE 0 vmf $0
DATA_SOURCE 1 reason $2
NOSPEC 0 vmf->pgoff
NOSPEC 0 vmf->real_address
HARD_MAX 1 reason 8796093022208
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 vmf->address 0-u64max[c]
USER_DATA 0 vmf->pgoff 0-36028797018963967[c]
USER_DATA 0 vmf->real_address 0-u64max
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &pool->lock

mm/memory.c do_anonymous_page() -> handle_userfault()

Type Parameter Key Value
PARAM_VALUE 0 vmf 2508977417524461568,2900308121553498112
PARAM_VALUE 0 vmf->address 0,4096-u64max
PARAM_VALUE 0 vmf->cow_page 0
PARAM_VALUE 0 vmf->flags 0-6998
PARAM_VALUE 0 vmf->gfp_mask 0,64-u32max
PARAM_VALUE 0 vmf->page 0
PARAM_VALUE 0 vmf->pmd 4096-ptr_max
PARAM_VALUE 0 vmf->prealloc_pte 0
PARAM_VALUE 0 vmf->pte 4096-ptr_max
PARAM_VALUE 0 vmf->ptl 4096-ptr_max
PARAM_VALUE 0 vmf->ptl->rlock.dep_map->name 0-255
PARAM_VALUE 0 vmf->pud 0,4096-ptr_max
PARAM_VALUE 0 vmf->vma 4096-ptr_max
PARAM_VALUE 0 vmf->vma->vm_mm 4096-ptr_max
PARAM_VALUE 0 vmf->vma->vm_ops 0
PARAM_VALUE 1 reason 512
BUF_SIZE 0 vmf->vma (-1),1-s32max
CAPPED_DATA 0 vmf->address 1
CAPPED_DATA 0 vmf->vma 1
DATA_SOURCE 0 vmf $0
BIT_INFO 0 vmf->flags 0x0,0x1ffe
NOSPEC 0 vmf->address
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 vmf->address 0,4096-u64max[c]
USER_DATA 0 vmf->pgoff 0-13510801029595132[c]
USER_DATA 0 vmf->real_address 0-u64max[c]
NO_OVERFLOW_SIMPLE 0 vmf->vma->vm_pgoff
HALF_LOCKED2 &mm->mmap_lock

mm/memory.c do_anonymous_page() -> handle_userfault()

Type Parameter Key Value
PARAM_VALUE 0 vmf 2508977417524461568,2900308121553498112
PARAM_VALUE 0 vmf->address 0,4096-u64max
PARAM_VALUE 0 vmf->cow_page 0
PARAM_VALUE 0 vmf->flags 0-6998
PARAM_VALUE 0 vmf->gfp_mask 0,64-u32max
PARAM_VALUE 0 vmf->page 0
PARAM_VALUE 0 vmf->pmd 4096-ptr_max
PARAM_VALUE 0 vmf->prealloc_pte 0
PARAM_VALUE 0 vmf->pte 4096-ptr_max
PARAM_VALUE 0 vmf->ptl 4096-ptr_max
PARAM_VALUE 0 vmf->ptl->rlock.dep_map->name 0-255
PARAM_VALUE 0 vmf->pud 0,4096-ptr_max
PARAM_VALUE 0 vmf->vma 4096-ptr_max
PARAM_VALUE 0 vmf->vma->anon_vma_chain.next 4096-ptr_max
PARAM_VALUE 0 vmf->vma->anon_vma_chain.next->next 4096-ptr_max
PARAM_VALUE 0 vmf->vma->anon_vma_chain.next->prev 4096-ptr_max
PARAM_VALUE 0 vmf->vma->vm_mm 4096-ptr_max
PARAM_VALUE 0 vmf->vma->vm_mm->mmap_lock.dep_map->name 0-255
PARAM_VALUE 0 vmf->vma->vm_mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vmf->vma->vm_mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 0 vmf->vma->vm_mm->page_table_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 vmf->vma->vm_ops 0
PARAM_VALUE 1 reason 512
BUF_SIZE 0 vmf->vma (-1),1-s32max
CAPPED_DATA 0 vmf->address 1
CAPPED_DATA 0 vmf->vma 1
DATA_SOURCE 0 vmf $0
NOSPEC 0 vmf->address
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 vmf->address 0,4096-u64max[c]
USER_DATA 0 vmf->pgoff 0-13510801029595132[c]
USER_DATA 0 vmf->real_address 0-u64max[c]
USER_DATA 0 vmf->vma->vm_policy->flags 0,24,8192-57368[c]
USER_DATA 0 vmf->vma->vm_policy->home_node 0-1023
USER_DATA 0 vmf->vma->vm_policy->mode 2-3,5-u16max
NO_OVERFLOW_SIMPLE 0 vmf->vma->vm_pgoff
HALF_LOCKED2 &mm->mmap_lock

mm/memory.c do_uffd_rwp() -> handle_userfault()

Type Parameter Key Value
PARAM_VALUE 0 vmf 2900308121553498112
PARAM_VALUE 0 vmf->address 0,4096-u64max
PARAM_VALUE 0 vmf->cow_page 0
PARAM_VALUE 0 vmf->flags 2048-6998
PARAM_VALUE 0 vmf->gfp_mask 0,64-u32max
PARAM_VALUE 0 vmf->page 0
PARAM_VALUE 0 vmf->pmd 4096-ptr_max
PARAM_VALUE 0 vmf->prealloc_pte 0
PARAM_VALUE 0 vmf->pte 4096-ptr_max
PARAM_VALUE 0 vmf->pud 4096-ptr_max
PARAM_VALUE 0 vmf->vma 4096-ptr_max
PARAM_VALUE 0 vmf->vma->vm_flags 1-u64max
PARAM_VALUE 1 reason 8796093022208
DATA_SOURCE 0 vmf $0
BIT_INFO 0 vmf->flags 0x800,0x1fff
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 vmf->address 0,4096-u64max[c]
USER_DATA 0 vmf->pgoff 0-9007199254740990[c]
USER_DATA 0 vmf->real_address 0-u64max
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &pool->lock

mm/memory.c do_wp_page() -> handle_userfault()

Type Parameter Key Value
PARAM_VALUE 0 vmf 2508977417524461568,2900308121553498112
PARAM_VALUE 0 vmf->address 0,4096-u64max
PARAM_VALUE 0 vmf->cow_page 0
PARAM_VALUE 0 vmf->flags 4,2048-6998
PARAM_VALUE 0 vmf->gfp_mask 0,64-u32max
PARAM_VALUE 0 vmf->page 0
PARAM_VALUE 0 vmf->pmd 4096-ptr_max
PARAM_VALUE 0 vmf->prealloc_pte 0
PARAM_VALUE 0 vmf->pte 4096-ptr_max
PARAM_VALUE 0 vmf->ptl 4096-ptr_max
PARAM_VALUE 0 vmf->ptl->rlock.dep_map->name 0-255
PARAM_VALUE 0 vmf->pud 0,4096-ptr_max
PARAM_VALUE 0 vmf->vma 4096-ptr_max
PARAM_VALUE 0 vmf->vma->vm_file->f_mapping->host->i_sb->s_export_op->fh_to_dentry 0,8684,447817974243774464,687732489194512384,742201802719268864,868497899885588480,1471448175530500096,2021658383390310400,2445877819203563520,2512819722689847296,2649270699546726400,2761259683714371584,2893332316235677696-s64max
PARAM_VALUE 0 vmf->vma->vm_mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vmf->vma->vm_mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 1 reason 4096
BUF_SIZE 0 vmf->vma (-1),1-s32max
CAPPED_DATA 0 vmf->vma 1
DATA_SOURCE 0 vmf $0
NOSPEC 0 vmf->address
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 vmf->address 0,4096-u64max[c]
USER_DATA 0 vmf->pgoff 0-13510801029595132[c]
USER_DATA 0 vmf->real_address 0-u64max
HALF_LOCKED2 &mm->mmap_lock

mm/memory.c wp_huge_pmd() -> handle_userfault()

Type Parameter Key Value
PARAM_VALUE 0 vmf 2900308121553498112
PARAM_VALUE 0 vmf->address 0,4096-u64max
PARAM_VALUE 0 vmf->cow_page 0
PARAM_VALUE 0 vmf->flags 0-4950
PARAM_VALUE 0 vmf->gfp_mask 0,64-u32max
PARAM_VALUE 0 vmf->page 0
PARAM_VALUE 0 vmf->pmd 4096-ptr_max
PARAM_VALUE 0 vmf->pte 0
PARAM_VALUE 0 vmf->ptl 0
PARAM_VALUE 0 vmf->pud 4096-ptr_max
PARAM_VALUE 0 vmf->vma 4096-ptr_max
PARAM_VALUE 0 vmf->vma->vm_ops 0
PARAM_VALUE 1 reason 4096
DATA_SOURCE 0 vmf $0
NOSPEC 0 vmf->real_address
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 vmf->address 0,4096-u64max[c]
USER_DATA 0 vmf->pgoff 0-13510801029595132[c]
USER_DATA 0 vmf->real_address 0-u64max[c]
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &pool->lock