Defined in 1 files as a macro:

Defined in 1 files as a function:

Referenced in 7 files:

Smatch caller information:

mm/huge_memory.c __split_huge_zero_page_pmd() -> zero_pfn()

Type Parameter Key Value
NOSPEC 0 addr
NOSPEC 0 addr
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 addr 0,4096,2097152-u64max[c]
NO_OVERFLOW_SIMPLE 0 addr
UNITS 0 addr unit_byte
LOCK2 rcu_read
HALF_LOCKED2 &vma->vm_private_data->rw_sema
HALF_LOCKED2 ptl

fs/dax.c dax_load_hole() -> zero_pfn()

Type Parameter Key Value
NOSPEC 0 addr
NOSPEC 0 addr
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 addr 0-u64max[c]
UNITS 0 addr unit_byte
HALF_LOCKED2 &inode->i_mapping->invalidate_lock
HALF_LOCKED2 &mapping->invalidate_lock

mm/userfaultfd.c mfill_atomic_pte_zeropage() -> zero_pfn()

Type Parameter Key Value
UNITS 0 addr unit_byte
LOCK2 &state.ctx->map_changing_lock
TYPE_LOCK (struct userfaultfd_ctx)->map_changing_lock

mm/userfaultfd.c move_zeropage_pte() -> zero_pfn()

Type Parameter Key Value
DATA_SOURCE 0 addr $3
NOSPEC 0 addr
NOSPEC 0 addr
USER_DATA 0 addr 0-18446744073709551614[c]
NO_OVERFLOW_SIMPLE 0 addr
UNITS 0 addr unit_byte
LOCK2 &ctx->map_changing_lock
LOCK2 rcu_read
TYPE_LOCK (struct userfaultfd_ctx)->map_changing_lock

arch/x86/kvm/mmu/mmu.c kvm_mmu_get_dummy_root() -> zero_pfn()

Type Parameter Key Value
PARAM_VALUE 0 addr 0
HALF_LOCKED2 &vcpu->kvm->srcu
HALF_LOCKED2 &vcpu->mutex

fs/proc/vmcore.c remap_oldmem_pfn_checked() -> zero_pfn()

Type Parameter Key Value
PARAM_VALUE 0 addr 0
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &vmcore_cb_srcu
HALF_LOCKED2 &ipcp->lock

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

Type Parameter Key Value
PARAM_VALUE 0 addr 0,4096-u64max
CAPPED_DATA 0 addr 1
CAPPED_DATA 0 addr 1
NOSPEC 0 addr
NOSPEC 0 addr
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 addr 0,4096-u64max[c]
UNITS 0 addr unit_byte
HALF_LOCKED2 &mm->mmap_lock

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

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &anon_vma->root->rwsem
HALF_LOCKED2 &folio->private->lock