Defined in 2 files as a function:

Referenced in 3 files:

Smatch caller information:

mm/userfaultfd.c handle_userfault() -> release_fault_lock()

Type Parameter Key Value
PARAM_VALUE 0 vmf 4096-ptr_max
PARAM_VALUE 0 vmf->flags 4-u32max
PARAM_VALUE 0 vmf->gfp_mask 0,64-u32max
PARAM_VALUE 0 vmf->vma 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
BUF_SIZE 0 vmf->cow_page (-1),64
BUF_SIZE 0 vmf->vma (-1),1-s32max
CAPPED_DATA 0 vmf->vma 1
DATA_SOURCE 0 vmf $0
BIT_INFO 0 vmf->flags 0x4,0xfffffff7
NOSPEC 0 vmf->address
NOSPEC 0 vmf->pgoff
NOSPEC 0 vmf->real_address
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 0 vmf->address 0-u64max[c]
USER_DATA 0 vmf->pgoff 0-36028797018963967
USER_DATA 0 vmf->pte 4096-ptr_max[u]
USER_DATA 0 vmf->real_address 0-u64max
USER_DATA 0 vmf->vma->swap_readahead_info.counter 0-s64max[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_end
NO_OVERFLOW_SIMPLE 0 vmf->vma->vm_pgoff
NO_OVERFLOW_SIMPLE 0 vmf->vma->vm_start

mm/userfaultfd.c handle_userfault() -> release_fault_lock()

Type Parameter Key Value
PARAM_VALUE 0 vmf 4096-ptr_max
PARAM_VALUE 0 vmf->flags 4-u32max
PARAM_VALUE 0 vmf->gfp_mask 0,64-u32max
PARAM_VALUE 0 vmf->vma 4096-ptr_max
PARAM_VALUE 0 vmf->vma->flags.__vma_flags 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 0 vmf->vma->vm_userfaultfd_ctx.ctx->fault_pending_wqh.lock.rlock.dep_map->name 0-255
BUF_SIZE 0 vmf->cow_page (-1),64
BUF_SIZE 0 vmf->vma (-1),1-s32max
CAPPED_DATA 0 vmf->vma 1
DATA_SOURCE 0 vmf $0
BIT_INFO 0 vmf->flags 0x4,0xffffffffffffffff
NOSPEC 0 vmf->address
NOSPEC 0 vmf->pgoff
NOSPEC 0 vmf->real_address
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 0 vmf->address 0-u64max[c]
USER_DATA 0 vmf->pgoff 0-36028797018963967
USER_DATA 0 vmf->pte 4096-ptr_max[u]
USER_DATA 0 vmf->real_address 0-u64max
USER_DATA 0 vmf->vma->swap_readahead_info.counter 0-s64max[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_end
NO_OVERFLOW_SIMPLE 0 vmf->vma->vm_pgoff
NO_OVERFLOW_SIMPLE 0 vmf->vma->vm_start

mm/shmem.c maybe_unlock_mmap_for_io() -> release_fault_lock()

Type Parameter Key Value
PARAM_VALUE 0 vmf 4096-ptr_max
PARAM_VALUE 0 vmf->flags 4-u32max
PARAM_VALUE 0 vmf->gfp_mask 0,64-u32max
PARAM_VALUE 0 vmf->pgoff 0-18446744073709551614
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_file->f_inode->i_private 1-u64max
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->kcov->mode 0-4294967295
PARAM_VALUE 0 vmf->vma->vm_mm->vma_writer_wait.task->kcov->remote 0-1
PARAM_VALUE 0 vmf->vma->vm_mm->vma_writer_wait.task->kcov->remote_size 0-4294967295
PARAM_VALUE 0 vmf->vma->vm_mm->vma_writer_wait.task->kcov_remote->mode 0-4294967295
PARAM_VALUE 0 vmf->vma->vm_mm->vma_writer_wait.task->kcov_remote->remote 0-1
PARAM_VALUE 0 vmf->vma->vm_mm->vma_writer_wait.task->kcov_remote->remote_size 0-4294967295
PARAM_VALUE 0 vmf->vma->vm_mm->vma_writer_wait.task->ptracer_cred->thread_keyring->user->qnkeys s32min-s32max
PARAM_VALUE 0 vmf->vma->vm_mm->vma_writer_wait.task->sched_class->uclamp_enabled 0-1
PARAM_VALUE 0 vmf->vma->vm_mm->vma_writer_wait.task->sched_task_group->idle s32min-s32max
PARAM_VALUE 0 vmf->vma->vm_mm->vma_writer_wait.task->thread_pid->attr->exit_code s32min-s32max
BUF_SIZE 0 vmf->cow_page (-1),64
CAPPED_DATA 0 vmf->pgoff 1
CAPPED_DATA 0 vmf->vma 1
DATA_SOURCE 0 vmf $0
NOSPEC 0 vmf->address
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 0 vmf->address 0-u64max[c]
USER_DATA 0 vmf->pgoff 0-s32max[c]
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
LOCK2 &inode->i_lock
TYPE_LOCK (struct inode)->i_lock

mm/filemap.c __folio_lock_or_retry() -> release_fault_lock()

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,4096-ptr_max
PARAM_VALUE 0 vmf->pmd 4096-ptr_max
PARAM_VALUE 0 vmf->prealloc_pte 0
PARAM_VALUE 0 vmf->pte 0
PARAM_VALUE 0 vmf->pud 0,4096-ptr_max
PARAM_VALUE 0 vmf->vma 4096-ptr_max
BUF_SIZE 0 vmf->vma (-1),4,24,64,168-s32max
CAPPED_DATA 0 vmf->address 1
CAPPED_DATA 0 vmf->vma 1
DATA_SOURCE 0 vmf $1
NOSPEC 0 vmf->address
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 0 vmf->address 0,4096-u64max[c]
USER_DATA 0 vmf->pgoff 0-4503599627370495[c]
USER_DATA 0 vmf->real_address 0-u64max[c]
USER_DATA 0 vmf->vma->swap_readahead_info.counter 0-s64max[c]
NO_OVERFLOW_SIMPLE 0 vmf->vma->vm_pgoff
HALF_LOCKED2 &mm->mmap_lock

mm/filemap.c __folio_lock_or_retry() -> release_fault_lock()

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 2048-6998
PARAM_VALUE 0 vmf->gfp_mask 0,64-u32max
PARAM_VALUE 0 vmf->page 0,4096-ptr_max
PARAM_VALUE 0 vmf->pmd 4096-ptr_max
PARAM_VALUE 0 vmf->prealloc_pte 0
PARAM_VALUE 0 vmf->pte 0
PARAM_VALUE 0 vmf->pud 0,4096-ptr_max
PARAM_VALUE 0 vmf->vma 4096-ptr_max
BUF_SIZE 0 vmf->vma (-1),4,24,64,168-s32max
CAPPED_DATA 0 vmf->address 1
CAPPED_DATA 0 vmf->vma 1
DATA_SOURCE 0 vmf $1
NOSPEC 0 vmf->address
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 0 vmf->address 0,4096-u64max[c]
USER_DATA 0 vmf->pgoff 0-4503599627370495[c]
USER_DATA 0 vmf->real_address 0-u64max[c]
USER_DATA 0 vmf->vma->swap_readahead_info.counter 0-s64max[c]
NO_OVERFLOW_SIMPLE 0 vmf->vma->vm_pgoff
HALF_LOCKED2 &mm->mmap_lock

mm/filemap.c lock_folio_maybe_drop_mmap() -> release_fault_lock()

Type Parameter Key Value
PARAM_VALUE 0 vmf 4096-ptr_max
PARAM_VALUE 0 vmf->flags 16-u32max
PARAM_VALUE 0 vmf->gfp_mask 0,64-u32max
PARAM_VALUE 0 vmf->pgoff 0-18446744073709551614
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_mapping 4096-ptr_max
PARAM_VALUE 0 vmf->vma->vm_file->f_mapping->host->i_op->readlink 0,1728600404483375104,2832489546165891072,2874824064778891264,3069732422725099520,4516337085607264256
PARAM_VALUE 0 vmf->vma->vm_file->f_mapping->host->i_sb->s_cop->inode_info_offs 1632,1720,1808,2632,2648,2712
PARAM_VALUE 0 vmf->vma->vm_file->f_mapping->host->i_sb->s_export_op->encode_fh 0,2,1398972869330624512,1616549510479982592,2037984473558433792,2776440803454029824,3228746867770966016,3502492669594062848,3526768263295340544,3559173554394271744,5000850239487131648,5583386343686406144,5817357685191483392-s64max
PARAM_VALUE 0 vmf->vma->vm_file->f_mapping->host->i_sb->s_export_op->fh_to_parent 0,4672,148606482432692224,436469935444291584,457356038048772096,467281172929331200,529780027764285440,1092893949038768128,1556959531105513472,1608953577475584000,1649536479961075712,2404761408063094784,2970908329832960000-s64max
PARAM_VALUE 0 vmf->vma->vm_file->f_mapping->host->i_sb->s_export_op->get_parent 0,8931,264940071972966400,291591359766798336,565128213429456896,893189740598853632,1241177127089143808,1474696885321834496,1812477326828269568,1893665921928286208,2210088671756947456,2437012291923775488,2483979068402987008-s64max
PARAM_VALUE 0 vmf->vma->vm_file->f_mapping->host->i_sb->s_umount.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vmf->vma->vm_file->f_mapping->host->i_sb->s_umount.first_waiter->type 0-1
PARAM_VALUE 0 vmf->vma->vm_file->f_mapping->invalidate_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vmf->vma->vm_file->f_mapping->invalidate_lock.first_waiter->type 0-1
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
BUF_SIZE 0 vmf->cow_page (-1),64
CAPPED_DATA 0 vmf->vma 1
DATA_SOURCE 0 vmf $0
BIT_INFO 0 vmf->flags 0x10,0xfffffff7
NOSPEC 0 vmf->address
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
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]
USER_DATA 0 vmf->vma->vm_file->f_ra.order 1-31[c]
USER_DATA 0 vmf->vma->vm_file->f_ra.size 0-u32max
USER_DATA 0 vmf->vma->vm_file->f_ra.start 0-4503599627370495[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
HALF_LOCKED2 &mapping->invalidate_lock

mm/filemap.c maybe_unlock_mmap_for_io() -> release_fault_lock()

Type Parameter Key Value
PARAM_VALUE 0 vmf 4096-ptr_max
PARAM_VALUE 0 vmf->flags 4-u32max
PARAM_VALUE 0 vmf->gfp_mask 0,64-u32max
PARAM_VALUE 0 vmf->pgoff 0-18446744073709551614
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_mapping 4096-ptr_max
PARAM_VALUE 0 vmf->vma->vm_file->f_mapping->host->i_mapping->i_mmap_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 vmf->vma->vm_file->f_mapping->host->i_op->readlink 0,1728600404483375104,2832489546165891072,2874824064778891264,3069732422725099520,4516337085607264256
PARAM_VALUE 0 vmf->vma->vm_file->f_mapping->host->i_sb->s_cop->inode_info_offs 1632,1720,1808,2632,2648,2712
PARAM_VALUE 0 vmf->vma->vm_file->f_mapping->host->i_sb->s_export_op->encode_fh 0,2,1398972869330624512,1616549510479982592,2037984473558433792,2776440803454029824,3228746867770966016,3502492669594062848,3526768263295340544,3559173554394271744,5000850239487131648,5583386343686406144,5817357685191483392-s64max
PARAM_VALUE 0 vmf->vma->vm_file->f_mapping->host->i_sb->s_export_op->fh_to_parent 0,4672,148606482432692224,436469935444291584,457356038048772096,467281172929331200,529780027764285440,1092893949038768128,1556959531105513472,1608953577475584000,1649536479961075712,2404761408063094784,2970908329832960000-s64max
PARAM_VALUE 0 vmf->vma->vm_file->f_mapping->host->i_sb->s_export_op->get_parent 0,8931,264940071972966400,291591359766798336,565128213429456896,893189740598853632,1241177127089143808,1474696885321834496,1812477326828269568,1893665921928286208,2210088671756947456,2437012291923775488,2483979068402987008-s64max
PARAM_VALUE 0 vmf->vma->vm_file->f_mapping->host->i_sb->s_umount.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vmf->vma->vm_file->f_mapping->host->i_sb->s_umount.first_waiter->type 0-1
PARAM_VALUE 0 vmf->vma->vm_file->f_mapping->invalidate_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vmf->vma->vm_file->f_mapping->invalidate_lock.first_waiter->type 0-1
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
BUF_SIZE 0 vmf->cow_page (-1),64
CAPPED_DATA 0 vmf->vma 1
DATA_SOURCE 0 vmf $0
NOSPEC 0 vmf->address
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
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]
USER_DATA 0 vmf->vma->vm_file->f_ra.order 1-31[c]
USER_DATA 0 vmf->vma->vm_file->f_ra.size 0-u32max
USER_DATA 0 vmf->vma->vm_file->f_ra.start 0-4503599627370495[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/memory.c maybe_unlock_mmap_for_io() -> release_fault_lock()

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-6998
PARAM_VALUE 0 vmf->gfp_mask 0,64-u32max
PARAM_VALUE 0 vmf->page 4096-ptr_max
PARAM_VALUE 0 vmf->pmd 4096-ptr_max
PARAM_VALUE 0 vmf->pte 0,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 4096-ptr_max
PARAM_VALUE 0 vmf->vma->vm_file->f_inode->i_sb->s_cop->inode_info_offs 1632,1720,1808,2632,2648
PARAM_VALUE 0 vmf->vma->vm_file->f_inode->i_sb->s_export_op->fh_to_parent 0,148606482432692224,436469935444291584,467281172929331200,529780027764285440,1092893949038768128,1556959531105513472,1608953577475584000,1649536479961075712,2404761408063094784,2970908329832960000,3511613614414655488-s64max
PARAM_VALUE 0 vmf->vma->vm_file->f_inode->i_sb->s_export_op->get_parent 0,8931,264940071972966400,291591359766798336,565128213429456896,893189740598853632,1241177127089143808,1474696885321834496,1812477326828269568,1893665921928286208,2210088671756947456,2437012291923775488,2483979068402987008-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 0 vmf->vma->vm_ops 0,4096-ptr_max
BUF_SIZE 0 vmf->vma (-1),4,24,64,168-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
NOCHECK_CALL
USER_DATA 0 vmf->address 0,4096-u64max[c]
USER_DATA 0 vmf->pgoff 0-4503599627370495[c]
USER_DATA 0 vmf->real_address 0-u64max[c]
NO_OVERFLOW_SIMPLE 0 vmf->vma->vm_pgoff
HALF_LOCKED2 &mm->mmap_lock