Defined in 1 files as a function:

Referenced in 23 files:

Smatch caller information:

arch/x86/mm/init_64.c preallocate_vmalloc_pages() -> p4d_alloc()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 1 pgd 4096-ptr_max
PARAM_VALUE 2 address 0,549755813888-18446718784942112767
CAPPED_DATA 2 address 1
CAPPED_DATA 2 address 1
DATA_SOURCE 1 pgd r pgd_offset_pgd
LOCK2 irq

arch/x86/kernel/tboot.c map_tboot_page() -> p4d_alloc()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 1 pgd 4096-ptr_max
PARAM_VALUE 2 address 0,4096-u64max
DATA_SOURCE 1 pgd r pgd_offset_pgd
DATA_SOURCE 2 address $0
UNITS 2 address unit_byte

mm/userfaultfd.c mm_alloc_pmd() -> p4d_alloc()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 0 mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 1 pgd 4096-ptr_max
DATA_SOURCE 0 mm $0
DATA_SOURCE 1 pgd r pgd_offset_pgd
DATA_SOURCE 2 address $1
NOSPEC 2 address
NOSPEC 2 address
USER_DATA 2 address 0-18446744073709551614[c]
NO_OVERFLOW_SIMPLE 2 address
UNITS 0 mm unit_byte
UNITS 2 address unit_byte
HALF_LOCKED2 &ctx->map_changing_lock
HALF_LOCKED2 &state.ctx->map_changing_lock
TYPE_LOCK (struct userfaultfd_ctx)->map_changing_lock

mm/kasan/init.c kasan_populate_early_shadow() -> p4d_alloc()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 1 pgd 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 irq

arch/x86/kernel/espfix_64.c init_espfix_bsp() -> p4d_alloc()

Type Parameter Key Value
PARAM_VALUE 0 mm 7138969414219841536
PARAM_VALUE 1 pgd 4096-ptr_max
PARAM_VALUE 2 address 18446742974197923840
LOCK2 irq

mm/mprotect.c change_protection_range() -> p4d_alloc()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 1 pgd 4096-u64max
CAPPED_DATA 2 address 1
CAPPED_DATA 2 address 1
DATA_SOURCE 2 address $2 [m]
NOSPEC 2 address
NOSPEC 2 address
RX_PATH
TASK_NOT_RUNNING
USER_DATA 2 address 0-u64max[c]
UNITS 0 mm unit_byte
UNITS 2 address unit_byte
HALF_LOCKED2 &dst_mm->mmap_lock
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 _T->lock

mm/hugetlb.c huge_pte_alloc() -> p4d_alloc()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 0 mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 0 mm->vma_writer_wait.task->sched_class->uclamp_enabled 0-1
PARAM_VALUE 1 pgd 4096-ptr_max
DATA_SOURCE 0 mm $0
DATA_SOURCE 1 pgd r pgd_offset_pgd
DATA_SOURCE 2 address $2
NOSPEC 2 address
RX_PATH
TASK_NOT_RUNNING
USER_DATA 2 address 0-u64max
UNITS 0 mm unit_byte
UNITS 2 address unit_byte
HALF_LOCKED2 &mapping->i_mmap_rwsem
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &oldmm->mmap_lock
HALF_LOCKED2 &state.ctx->map_changing_lock
HALF_LOCKED2 &vma->vm_file->f_mapping->i_mmap_rwsem

mm/mremap.c alloc_new_pud() -> p4d_alloc()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 1 pgd 4096-ptr_max
DATA_SOURCE 0 mm $0
DATA_SOURCE 1 pgd r pgd_offset_pgd
DATA_SOURCE 2 address $1
USER_DATA 2 address 0-u64max
UNITS 0 mm unit_byte
UNITS 2 address unit_byte
LOCK2 &mm->mmap_lock
HALF_LOCKED2 &tsk->signal->exec_update_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/migrate_device.c migrate_vma_insert_page() -> p4d_alloc()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 1 pgd 4096-ptr_max
DATA_SOURCE 1 pgd r pgd_offset_pgd
DATA_SOURCE 2 address $1
RX_PATH
TASK_NOT_RUNNING
UNITS 0 mm unit_byte
UNITS 2 address unit_byte
HALF_LOCKED2 &drm->dmem->mutex

mm/memory.c __handle_mm_fault() -> p4d_alloc()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 1 pgd 4096-ptr_max
DATA_SOURCE 1 pgd r pgd_offset_pgd
DATA_SOURCE 2 address $1
NOSPEC 2 address
NOSPEC 2 address
RX_PATH
TASK_NOT_RUNNING
USER_DATA 2 address 0-u64max
UNITS 0 mm unit_byte
UNITS 2 address unit_byte
HALF_LOCKED2 &mm->mmap_lock

mm/memory.c copy_p4d_range() -> p4d_alloc()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 0 mm->context.execute_only_pkey (-1)
PARAM_VALUE 0 mm->context.ldt 0
PARAM_VALUE 0 mm->context.ldt_usr_sem.magic 4096-ptr_max
PARAM_VALUE 0 mm->context.lock.magic 4096-ptr_max
PARAM_VALUE 0 mm->context.pkey_allocation_map 1
PARAM_VALUE 0 mm->context.tlb_gen.counter 0
PARAM_VALUE 0 mm->context.untag_mask u64max
PARAM_VALUE 0 mm->def_flags 0,1073741824
PARAM_VALUE 0 mm->exe_file 0,4096-ptr_max
PARAM_VALUE 0 mm->hugetlb_usage.counter 0
PARAM_VALUE 0 mm->ioctx_table 0
PARAM_VALUE 0 mm->iommu_mm 0
PARAM_VALUE 0 mm->locked_vm 0
PARAM_VALUE 0 mm->lru_gen.bitmap 0
PARAM_VALUE 0 mm->lru_gen.memcg 0
PARAM_VALUE 0 mm->map_count 0-s32max
PARAM_VALUE 0 mm->mm_cid.lock.magic 3735899821
PARAM_VALUE 0 mm->mm_cid.lock.owner (-1)
PARAM_VALUE 0 mm->mm_cid.lock.owner_cpu u32max
PARAM_VALUE 0 mm->mm_cid.max_cids 0
PARAM_VALUE 0 mm->mm_cid.mode 0
PARAM_VALUE 0 mm->mm_cid.mutex.magic 4096-ptr_max
PARAM_VALUE 0 mm->mm_cid.pcpu 4096-ptr_max
PARAM_VALUE 0 mm->mm_cid.pcpu_thrs 0
PARAM_VALUE 0 mm->mm_cid.update_deferred 0
PARAM_VALUE 0 mm->mm_cid.users 0
PARAM_VALUE 0 mm->mm_count.counter 1
PARAM_VALUE 0 mm->mm_id 0-s32max
PARAM_VALUE 0 mm->mm_mt.ma_flags 771
PARAM_VALUE 0 mm->mm_mt.ma_root 0
PARAM_VALUE 0 mm->mm_users.counter 1
PARAM_VALUE 0 mm->mmap_lock.count.counter 0
PARAM_VALUE 0 mm->mmap_lock.first_waiter 0
PARAM_VALUE 0 mm->mmap_lock.magic 4096-ptr_max
PARAM_VALUE 0 mm->mmap_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 mm->mmap_lock.owner.counter 0
PARAM_VALUE 0 mm->notifier_subscriptions 0
PARAM_VALUE 0 mm->owner 4096-ptr_max
PARAM_VALUE 0 mm->pgd 18446612682070032384
PARAM_VALUE 0 mm->pinned_vm.counter 0
PARAM_VALUE 0 mm->sc_stat.cpu (-1)
PARAM_VALUE 0 mm->sc_stat.footprint 0
PARAM_VALUE 0 mm->sc_stat.lock.magic 3735899821
PARAM_VALUE 0 mm->sc_stat.lock.owner (-1)
PARAM_VALUE 0 mm->sc_stat.lock.owner_cpu u32max
PARAM_VALUE 0 mm->sc_stat.nr_running_avg 0
PARAM_VALUE 0 mm->sc_stat.pcpu_sched 4096-ptr_max
PARAM_VALUE 0 mm->uprobes_state.xol_area 0
PARAM_VALUE 0 mm->vma_writer_wait.task 0
CAPPED_DATA 0 mm->mm_id 1
DATA_SOURCE 1 pgd $2
DATA_SOURCE 2 address $4
TERMINATED 0 mm->mm_lock_seq.dep_map.name 1
RX_PATH
TASK_NOT_RUNNING
UNITS 0 mm unit_byte
UNITS 2 address unit_byte
LOCK2 &mm->mmap_lock
LOCK2 &oldmm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/memory.c remap_p4d_range() -> p4d_alloc()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 1 pgd 4096-u64max
PARAM_VALUE 2 address 0-18446744073709551614
CAPPED_DATA 2 address 1
CAPPED_DATA 2 address 1
DATA_SOURCE 0 mm $0
DATA_SOURCE 1 pgd $1
DATA_SOURCE 2 address $2
BIT_INFO 2 address 0x0,0xfffffffffffff000
BIT_INFO 2 address 0x0,0xfffffffffffff000
RX_PATH
TASK_NOT_RUNNING
USER_DATA 2 address 0-18446744073709551614[c]
UNITS 0 mm unit_byte
UNITS 2 address unit_byte

mm/memory.c walk_to_pmd() -> p4d_alloc()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 0 mm->context.ldt_usr_sem.first_waiter->type 0-1
PARAM_VALUE 0 mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 0 mm->vma_writer_wait.task->sched_class->uclamp_enabled 0-1
PARAM_VALUE 1 pgd 4096-ptr_max
BUF_SIZE 0 mm (-1)-s32max
BUF_SIZE 0 mm (-1)-s32max
DATA_SOURCE 0 mm $0
DATA_SOURCE 1 pgd r pgd_offset_pgd
DATA_SOURCE 2 address $1
NOSPEC 2 address
NOSPEC 2 address
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 mm->context.ldt->nr_entries 1-8192[c]
USER_DATA 2 address 0-u64max
UNITS 0 mm unit_byte
UNITS 2 address unit_byte
HALF_LOCKED2 0 &mm->context.ldt_usr_sem
HALF_LOCKED2 0 &mm->mmap_lock

arch/x86/platform/efi/efi_64.c efi_alloc_page_tables() -> p4d_alloc()

Type Parameter Key Value
PARAM_VALUE 0 mm 7138969414219841536
PARAM_VALUE 1 pgd 18379471554275708920,18446612682070036472
PARAM_VALUE 2 address 18446744000695107584

mm/debug_vm_pgtable.c init_args() -> p4d_alloc()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 1 pgd 4096-ptr_max
CAPPED_DATA 2 address 1
CAPPED_DATA 2 address 1
DATA_SOURCE 0 mm r mm_alloc
DATA_SOURCE 1 pgd r pgd_offset_pgd
DATA_SOURCE 2 address r get_random_vaddr

mm/khugepaged.c set_huge_pmd() -> p4d_alloc()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 0 mm->context.asid_transition 1
PARAM_VALUE 2 address 0
DATA_SOURCE 1 pgd r pgd_offset_pgd
DATA_SOURCE 2 address $1
NOSPEC 2 address
NOSPEC 2 address
RX_PATH
TASK_NOT_RUNNING
USER_DATA 2 address 0[c]
UNITS 0 mm unit_byte
HALF_LOCKED2 &mm->mmap_lock