Documented in 1 files:

Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 10 files:

Smatch caller information:

mm/madvise.c madvise_cold_or_pageout_pte_range() -> vm_normal_folio()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
DATA_SOURCE 1 addr $1
DATA_SOURCE 2 pte r ptep_get
NOSPEC 1 addr
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 vma->vm_end
NO_OVERFLOW_SIMPLE 0 vma->vm_start
LOCK2 ptl
HALF_LOCKED2 &mm->mmap_lock

mm/madvise.c madvise_free_pte_range() -> vm_normal_folio()

Type Parameter Key Value
PARAM_VALUE 0 vma 0,4096-ptr_max
PARAM_VALUE 1 addr 1-u64max
DATA_SOURCE 1 addr $1
DATA_SOURCE 2 pte r ptep_get
NOSPEC 1 addr
NOSPEC 1 addr
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 addr 1-u64max[c]
NO_OVERFLOW_SIMPLE 0 vma->vm_end
NO_OVERFLOW_SIMPLE 0 vma->vm_start
LOCK2 ptl
HALF_LOCKED2 &mm->mmap_lock

mm/userfaultfd.c check_ptes_for_batched_move() -> vm_normal_folio()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
PARAM_VALUE 0 vma->vm_mm->vma_writer_wait.task->delays->blkio_count 0-4294967295
PARAM_VALUE 0 vma->vm_mm->vma_writer_wait.task->ptracer_cred->process_keyring->user->qnbytes s32min-s32max
PARAM_VALUE 0 vma->vm_mm->vma_writer_wait.task->ptracer_cred->process_keyring->user->qnkeys s32min-s32max
PARAM_VALUE 0 vma->vm_mm->vma_writer_wait.task->ptracer_cred->request_key_auth->user->qnbytes s32min-s32max
PARAM_VALUE 0 vma->vm_mm->vma_writer_wait.task->ptracer_cred->request_key_auth->user->qnkeys s32min-s32max
PARAM_VALUE 0 vma->vm_mm->vma_writer_wait.task->ptracer_cred->session_keyring->user->qnbytes s32min-s32max
PARAM_VALUE 0 vma->vm_mm->vma_writer_wait.task->ptracer_cred->session_keyring->user->qnkeys s32min-s32max
PARAM_VALUE 0 vma->vm_mm->vma_writer_wait.task->ptracer_cred->thread_keyring->user->qnbytes s32min-s32max
PARAM_VALUE 0 vma->vm_mm->vma_writer_wait.task->ptracer_cred->thread_keyring->user->qnkeys s32min-s32max
PARAM_VALUE 0 vma->vm_mm->vma_writer_wait.task->sched_class->uclamp_enabled 0-1
PARAM_VALUE 0 vma->vm_mm->vma_writer_wait.task->sched_task_group->idle s32min-s32max
PARAM_VALUE 0 vma->vm_ops 0
PARAM_VALUE 0 vma->vm_refcnt.refs.counter (-1073741824),0-s32max
PARAM_VALUE 1 addr 1-u64max
DATA_SOURCE 0 vma $0
DATA_SOURCE 1 addr $1
DATA_SOURCE 2 pte r ptep_get
BIT_INFO 0 vma->vm_flags 0x0,0xfffffffffffffff7
NOSPEC 1 addr
NOSPEC 1 addr
USER_DATA 1 addr 4096-2147491839[c]
NO_OVERFLOW_SIMPLE 1 addr
UNITS 1 addr unit_byte
LOCK2 &ctx->map_changing_lock
LOCK2 rcu_read
TYPE_LOCK (struct userfaultfd_ctx)->map_changing_lock

mm/userfaultfd.c move_pages_ptes() -> vm_normal_folio()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
PARAM_VALUE 0 vma->vm_mm->vma_writer_wait.task->sched_class->uclamp_enabled 0-1
PARAM_VALUE 0 vma->vm_ops 0
PARAM_VALUE 0 vma->vm_refcnt.refs.counter (-1073741824),0-s32max
PARAM_VALUE 1 addr 0-18446744073709551614
CAPPED_DATA 1 addr 1
CAPPED_DATA 1 addr 1
DATA_SOURCE 0 vma $4
DATA_SOURCE 1 addr $6
DATA_SOURCE 2 pte r ptep_get
BIT_INFO 0 vma->vm_flags 0x0,0xfffffffffffffff7
NOSPEC 1 addr
NOSPEC 1 addr
PREEMPT_ADD <- disables preempt
USER_DATA 1 addr 0-s32max[c]
NO_OVERFLOW_SIMPLE 1 addr
UNITS 1 addr unit_byte
LOCK2 &ctx->map_changing_lock
LOCK2 rcu_read
LOCK2 src_ptl
TYPE_LOCK (struct userfaultfd_ctx)->map_changing_lock

mm/damon/vaddr.c damon_young_pmd_entry() -> vm_normal_folio()

Type Parameter Key Value
PARAM_VALUE 0 vma 0,4096-ptr_max
PARAM_VALUE 0 vma->flags.__vma_flags 4096-ptr_max
PARAM_VALUE 0 vma->vm_file->f_mapping->i_mmap_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vma->vm_file->f_mapping->i_mmap_rwsem.first_waiter->type 0-1
CAPPED_DATA 0 vma 1
DATA_SOURCE 1 addr $1
DATA_SOURCE 2 pte r ptep_get
NOSPEC 1 addr
NOSPEC 1 addr
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 addr 0-u64max[c]
NO_OVERFLOW_SIMPLE 0 vma->vm_end
NO_OVERFLOW_SIMPLE 0 vma->vm_start
LOCK2 ptl
HALF_LOCKED2 &mm->mmap_lock

mm/damon/vaddr.c damos_va_migrate_pmd_entry() -> vm_normal_folio()

Type Parameter Key Value
PARAM_VALUE 0 vma 0,4096-ptr_max
PARAM_VALUE 0 vma->flags.__vma_flags 4096-ptr_max
PARAM_VALUE 0 vma->vm_file->f_mapping->i_mmap_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vma->vm_file->f_mapping->i_mmap_rwsem.first_waiter->type 0-1
CAPPED_DATA 0 vma 1
DATA_SOURCE 1 addr $1
DATA_SOURCE 2 pte r ptep_get
NOSPEC 1 addr
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 vma->vm_end
NO_OVERFLOW_SIMPLE 0 vma->vm_start
LOCK2 ptl
HALF_LOCKED2 &mm->mmap_lock

mm/damon/vaddr.c damos_va_stat_pmd_entry() -> vm_normal_folio()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
DATA_SOURCE 1 addr $1
DATA_SOURCE 2 pte r ptep_get
NOSPEC 1 addr
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 vma->vm_end
NO_OVERFLOW_SIMPLE 0 vma->vm_start
LOCK2 ptl
HALF_LOCKED2 &mm->mmap_lock

fs/proc/task_mmu.c clear_refs_pte_range() -> vm_normal_folio()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
PARAM_VALUE 1 addr 1-u64max
DATA_SOURCE 1 addr $1 [m]
DATA_SOURCE 2 pte r ptep_get
NOSPEC 1 addr
NOSPEC 1 addr
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 addr 1-u64max[c]
NO_OVERFLOW_SIMPLE 0 vma->vm_end
NO_OVERFLOW_SIMPLE 0 vma->vm_start
LOCK2 ptl
HALF_LOCKED2 &mm->mmap_lock

fs/proc/task_mmu.c pte_is_pinned() -> vm_normal_folio()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
PARAM_VALUE 0 vma->flags.__vma_flags 4096-ptr_max
PARAM_VALUE 0 vma->vm_mm 4096-ptr_max
PARAM_VALUE 1 addr 1-u64max
DATA_SOURCE 0 vma $0
DATA_SOURCE 1 addr $1
DATA_SOURCE 2 pte $2
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 addr 1-18446744073709551614[c]
NO_OVERFLOW_SIMPLE 0 vma->vm_end
LOCK2 ptl
HALF_LOCKED2 &mm->mmap_lock

mm/ksm.c break_ksm_pmd_entry() -> vm_normal_folio()

Type Parameter Key Value
PARAM_VALUE 0 vma 0,4096-ptr_max
PARAM_VALUE 0 vma->flags.__vma_flags 4096-ptr_max
PARAM_VALUE 0 vma->vm_file->f_mapping->i_mmap_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vma->vm_file->f_mapping->i_mmap_rwsem.first_waiter->type 0-1
CAPPED_DATA 0 vma 1
DATA_SOURCE 1 addr $1 [m]
DATA_SOURCE 2 pte r ptep_get
NOSPEC 1 addr
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 vma->vm_end
NO_OVERFLOW_SIMPLE 0 vma->vm_start
LOCK2 ptl
HALF_LOCKED2 &mm->mmap_lock

mm/memory.c do_numa_page() -> vm_normal_folio()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
PARAM_VALUE 0 vma->vm_flags 1-u64max
PARAM_VALUE 1 addr 0,4096-u64max
DATA_SOURCE 2 pte r pte_modify
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 addr 0,4096-u64max[c]
UNITS 1 addr unit_byte
LOCK2 rcu_read
LOCK2 vmf->ptl
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &pool->lock

mm/mempolicy.c queue_folios_pte_range() -> vm_normal_folio()

Type Parameter Key Value
PARAM_VALUE 0 vma 0,4096-ptr_max
PARAM_VALUE 1 addr 1-u64max
DATA_SOURCE 1 addr $1
DATA_SOURCE 2 pte r ptep_get
NOSPEC 1 addr
NOSPEC 1 addr
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 addr 1-u64max[c]
NO_OVERFLOW_SIMPLE 0 vma->vm_end
NO_OVERFLOW_SIMPLE 0 vma->vm_start
LOCK2 ptl
HALF_LOCKED2 &mm->mmap_lock

mm/mlock.c mlock_pte_range() -> vm_normal_folio()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
PARAM_VALUE 1 addr 1-u64max
DATA_SOURCE 1 addr $1 [m]
DATA_SOURCE 2 pte r ptep_get
NOSPEC 1 addr
NOSPEC 1 addr
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 addr 1-u64max[c]
NO_OVERFLOW_SIMPLE 0 vma->vm_end
NO_OVERFLOW_SIMPLE 0 vma->vm_start
UNITS 1 addr unit_byte
LOCK2 ptl
HALF_LOCKED2 &mm->mmap_lock

mm/khugepaged.c collapse_check_pte() -> vm_normal_folio()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
CAPPED_DATA 1 addr 1
CAPPED_DATA 1 addr 1
DATA_SOURCE 1 addr $1
DATA_SOURCE 2 pte $0
NOSPEC 1 addr
NOSPEC 1 addr
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 addr 0-2093056,2097152-18446744073709551614[c]
UNITS 1 addr unit_byte
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &vma->anon_vma->root->rwsem
HALF_LOCKED2 pte_ptl
HALF_LOCKED2 ptl