Documented in 1 files:

Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 4 files:

Smatch caller information:

mm/huge_memory.c do_huge_pmd_wp_page() -> folio_move_anon_rmap()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
PARAM_VALUE 1 vma 4096-ptr_max
PARAM_VALUE 1 vma->anon_vma 1-u64max
PARAM_VALUE 1 vma->vm_ops 0
DATA_SOURCE 0 folio r _compound_head
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 vmf->ptl
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &pool->lock

mm/huge_memory.c move_pages_huge_pmd() -> folio_move_anon_rmap()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
PARAM_VALUE 0 folio->mapping 1-u64max
PARAM_VALUE 1 vma 4096-ptr_max
PARAM_VALUE 1 vma->vm_ops 0
PARAM_VALUE 1 vma->vm_refcnt.refs.counter (-1073741824),0-s32max
CAPPED_DATA 1 vma->vm_userfaultfd_ctx.ctx 1
DATA_SOURCE 0 folio r _compound_head
DATA_SOURCE 1 vma $4
BIT_INFO 1 vma->vm_flags 0x0,0xfffffffffffffff7
NOCHECK_CALL
LOCK2 &ctx->map_changing_lock
TYPE_LOCK (struct userfaultfd_ctx)->map_changing_lock

mm/userfaultfd.c move_present_ptes() -> folio_move_anon_rmap()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
PARAM_VALUE 1 vma 4096-ptr_max
PARAM_VALUE 1 vma->vm_mm->vma_writer_wait.task->delays->blkio_count 0-4294967295
PARAM_VALUE 1 vma->vm_mm->vma_writer_wait.task->delays->blkio_delay_max 0-s64max
PARAM_VALUE 1 vma->vm_mm->vma_writer_wait.task->delays->blkio_delay_min 0-s64max
PARAM_VALUE 1 vma->vm_ops 0
PARAM_VALUE 1 vma->vm_refcnt.refs.counter (-1073741824),0-s32max
CAPPED_DATA 1 vma->vm_userfaultfd_ctx.ctx 1
DATA_SOURCE 1 vma $1
BIT_INFO 1 vma->vm_flags 0x0,0xfffffffffffffff7
NOCHECK_CALL
LOCK2 &ctx->map_changing_lock
LOCK2 rcu_read
TYPE_LOCK (struct userfaultfd_ctx)->map_changing_lock

mm/userfaultfd.c move_swap_pte() -> folio_move_anon_rmap()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
PARAM_VALUE 1 vma 4096-ptr_max
PARAM_VALUE 1 vma->vm_mm->vma_writer_wait.task->delays->blkio_count 0-4294967295
PARAM_VALUE 1 vma->vm_mm->vma_writer_wait.task->delays->blkio_delay_max 0-s64max
PARAM_VALUE 1 vma->vm_mm->vma_writer_wait.task->delays->blkio_delay_min 0-s64max
PARAM_VALUE 1 vma->vm_ops 0
PARAM_VALUE 1 vma->vm_refcnt.refs.counter (-1073741824),0-s32max
CAPPED_DATA 0 folio->swap.val 1
CAPPED_DATA 1 vma->vm_userfaultfd_ctx.ctx 1
DATA_SOURCE 0 folio $12
DATA_SOURCE 1 vma $1
BIT_INFO 1 vma->vm_flags 0x0,0xfffffffffffffff7
NOCHECK_CALL
LOCK2 &ctx->map_changing_lock
LOCK2 rcu_read
TYPE_LOCK (struct userfaultfd_ctx)->map_changing_lock

mm/hugetlb.c hugetlb_wp() -> folio_move_anon_rmap()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
PARAM_VALUE 0 folio->mapping 1-u64max
PARAM_VALUE 1 vma 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
DATA_SOURCE 0 folio r _compound_head
BIT_INFO 1 vma->vm_flags 0x0,0xffffffffffffff7f
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 1 vma->vm_policy->flags 0,24,8192-57368[c]
USER_DATA 1 vma->vm_policy->home_node 0-1023
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 vmf->ptl

mm/memory.c wp_can_reuse_anon_folio() -> folio_move_anon_rmap()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
PARAM_VALUE 0 folio->mapping 1-u64max
PARAM_VALUE 1 vma 4096-ptr_max
BUF_SIZE 1 vma (-1),1-s32max
BUF_SIZE 1 vma (-1),1-s32max
DATA_SOURCE 0 folio $0
DATA_SOURCE 1 vma $1
BIT_INFO 1 vma->vm_flags 0x0,0xffffffffffffff77
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 1 vma->swap_readahead_info.counter 0-s64max[c]
NO_OVERFLOW_SIMPLE 1 vma->vm_pgoff
UNITS 0 folio unit_page
LOCK2 vmf->ptl
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 rcu_read