Defined in 1 files as a function:

Referenced in 13 files:

Smatch caller information:

mm/huge_memory.c PageAnonExclusive() -> PageAnon()

Type Parameter Key Value
DATA_SOURCE 0 page $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &ctx->map_changing_lock
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &oldmm->mmap_lock
HALF_LOCKED2 dst_ptl
HALF_LOCKED2 src_ptl
HALF_LOCKED2 vmf->ptl

mm/huge_memory.c __split_huge_pmd_locked() -> PageAnon()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
DATA_SOURCE 0 page r softleaf_to_page
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &vma->vm_private_data->rw_sema

mm/huge_memory.c can_change_pmd_writable() -> PageAnon()

Type Parameter Key Value
PARAM_VALUE 0 page 1-u64max
DATA_SOURCE 0 page r vm_normal_page_pmd
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &mm->mmap_lock

mm/userfaultfd.c PageAnonExclusive() -> PageAnon()

Type Parameter Key Value
DATA_SOURCE 0 page $0
PREEMPT_ADD
LOCK2 &ctx->map_changing_lock
HALF_LOCKED2 rcu_read
HALF_LOCKED2 src_ptl
TYPE_LOCK (struct userfaultfd_ctx)->map_changing_lock

fs/proc/task_mmu.c pagemap_hugetlb_category() -> PageAnon()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &m->lock
HALF_LOCKED2 &mapping->i_mmap_rwsem
HALF_LOCKED2 &vma->vm_file->f_mapping->i_mmap_rwsem

fs/proc/task_mmu.c pagemap_page_category() -> PageAnon()

Type Parameter Key Value
PARAM_VALUE 0 page 1-u64max
DATA_SOURCE 0 page r vm_normal_page
RX_PATH
TASK_NOT_RUNNING
LOCK2 ptl
HALF_LOCKED2 &mm->mmap_lock

fs/proc/task_mmu.c pagemap_thp_category() -> PageAnon()

Type Parameter Key Value
PARAM_VALUE 0 page 1-u64max
DATA_SOURCE 0 page r vm_normal_page_pmd
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &mm->mmap_lock

mm/page_table_check.c page_table_check_clear() -> PageAnon()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 ptl

mm/page_table_check.c page_table_check_set() -> PageAnon()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 ptl

mm/rmap.c PageAnonExclusive() -> PageAnon()

Type Parameter Key Value
BUF_SIZE 0 page (-1),64
BUF_SIZE 0 page (-1),64
DATA_SOURCE 0 page $0
RX_PATH
TASK_NOT_RUNNING
UNITS 0 page unit_page

mm/mprotect.c PageAnonExclusive() -> PageAnon()

Type Parameter Key Value
DATA_SOURCE 0 page $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 ptl

mm/mprotect.c can_change_private_pte_writable() -> PageAnon()

Type Parameter Key Value
PARAM_VALUE 0 page 1-u64max
DATA_SOURCE 0 page r vm_normal_page
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 rcu_read
HALF_LOCKED2 vmf->ptl

mm/hugetlb.c PageAnonExclusive() -> PageAnon()

Type Parameter Key Value
DATA_SOURCE 0 page $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &oldmm->mmap_lock
HALF_LOCKED2 src_ptl

mm/hugetlb.c __ClearPageAnonExclusive() -> PageAnon()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
DATA_SOURCE 0 page $0
RX_PATH
TASK_NOT_RUNNING

mm/ksm.c PageAnonExclusive() -> PageAnon()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
DATA_SOURCE 0 page $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 global &ksm_thread_mutex
HALF_LOCKED2 ptl

mm/migrate_device.c PageAnonExclusive() -> PageAnon()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
DATA_SOURCE 0 page $0
RX_PATH
TASK_NOT_RUNNING
LOCK2 ptl
HALF_LOCKED2 &mm->mmap_lock

mm/memory.c PageAnonExclusive() -> PageAnon()

Type Parameter Key Value
BUF_SIZE 0 page (-1),64
BUF_SIZE 0 page (-1),64
DATA_SOURCE 0 page $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 0 page unit_page
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &oldmm->mmap_lock
HALF_LOCKED2 dst_ptl
HALF_LOCKED2 rcu_read
HALF_LOCKED2 src_ptl
HALF_LOCKED2 vmf->ptl

mm/gup.c PageAnonExclusive() -> PageAnon()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
DATA_SOURCE 0 page $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 ptl

mm/gup.c can_follow_write_common() -> PageAnon()

Type Parameter Key Value
PARAM_VALUE 0 page 1-u64max
DATA_SOURCE 0 page $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 ptl
HALF_LOCKED2 &mm->mmap_lock

mm/gup.c follow_huge_pmd() -> PageAnon()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &mm->mmap_lock

mm/gup.c follow_page_pte() -> PageAnon()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 ptl
HALF_LOCKED2 &mm->mmap_lock

mm/gup.c gup_must_unshare() -> PageAnon()

Type Parameter Key Value
DATA_SOURCE 0 page $2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 flags
HALF_LOCKED2 ptl
HALF_LOCKED2 rcu_read

mm/memremap.c __ClearPageAnonExclusive() -> PageAnon()

Type Parameter Key Value
DATA_SOURCE 0 page $0
RX_PATH
TASK_NOT_RUNNING

kernel/events/uprobes.c PageAnonExclusive() -> PageAnon()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
DATA_SOURCE 0 page $0
RX_PATH
TASK_NOT_RUNNING
UNITS 0 page unit_page
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &uprobe->register_rwsem

mm/migrate.c try_to_map_unused_to_zeropage() -> PageAnon()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
UNITS 0 page unit_page
HALF_LOCKED2 &anon_vma->root->rwsem
HALF_LOCKED2 &folio->private->lock