Defined in 1 files as a macro:

Defined in 4 files as a function:

Referenced in 13 files:

Smatch caller information:

arch/x86/mm/init_64.c fill_p4d() -> pgd_populate()

Type Parameter Key Value
PARAM_VALUE 0 mm 7138969414219841536
PARAM_VALUE 1 pgd 4096-ptr_max
PARAM_VALUE 2 p4d 1-u64max
DATA_SOURCE 1 pgd $0
DATA_SOURCE 2 p4d r spp_getpage
NOCHECK_CALL
LOCK2 irq

arch/x86/mm/init_64.c pgd_populate_init() -> pgd_populate()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 1 pgd 4096-ptr_max
PARAM_VALUE 2 p4d 0,18379471554275704832,18379471554275708928-18379471554275729408,18446612682070032384,18446612682070036480-18446612682070056960
DATA_SOURCE 0 mm $0
DATA_SOURCE 1 pgd $1
DATA_SOURCE 2 p4d $2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &init_mm.page_table_lock
HALF_LOCKED2 irq
TYPE_LOCK (struct mm_struct)->page_table_lock

mm/percpu.c pcpu_populate_pte() -> pgd_populate()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 1 pgd 4096-ptr_max
PARAM_VALUE 2 p4d 1-u64max
DATA_SOURCE 1 pgd r pgd_offset_pgd
DATA_SOURCE 2 p4d r __memblock_alloc_or_panic
NOCHECK_CALL
LOCK2 irq

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

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

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

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

arch/x86/mm/kasan_init_64.c kasan_populate_pgd() -> pgd_populate()

Type Parameter Key Value
PARAM_VALUE 0 mm 7138969414219841536
PARAM_VALUE 1 pgd 4096-ptr_max
PARAM_VALUE 2 p4d 1-u64max
DATA_SOURCE 1 pgd $0
DATA_SOURCE 2 p4d r early_alloc
NOCHECK_CALL
LOCK2 irq

arch/x86/mm/kasan_init_64.c kasan_shallow_populate_pgds() -> pgd_populate()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 1 pgd 4096-ptr_max
PARAM_VALUE 2 p4d 1-u64max
DATA_SOURCE 2 p4d r early_alloc
NOCHECK_CALL
LOCK2 irq

mm/memory.c __p4d_alloc() -> pgd_populate()

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->page_table_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 mm->vma_writer_wait.task->sched_class->uclamp_enabled 0-1
PARAM_VALUE 1 pgd 4096-ptr_max
PARAM_VALUE 2 p4d 18379471554275704832,18446612682070032384
BUF_SIZE 0 mm s32min-s32max
DATA_SOURCE 0 mm $0
DATA_SOURCE 1 pgd $1
DATA_SOURCE 2 p4d r p4d_alloc_one_noprof
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 0 mm->context.ldt->nr_entries 1-8192[c]
UNITS 0 mm unit_byte
LOCK2 0 &mm->page_table_lock
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 irq
HALF_LOCKED2 0 &mm->context.ldt_usr_sem
HALF_LOCKED2 0 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->page_table_lock

mm/debug_vm_pgtable.c pgd_populate_tests() -> pgd_populate()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 1 pgd 4096-ptr_max
PREEMPT_ADD
NOCHECK_CALL
LOCK2 &args.mm->page_table_lock
TYPE_LOCK (struct mm_struct)->page_table_lock

mm/sparse-vmemmap.c vmemmap_pgd_populate() -> pgd_populate()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 1 pgd 4096-ptr_max
PARAM_VALUE 2 p4d 1-u64max
DATA_SOURCE 1 pgd r pgd_offset_pgd
DATA_SOURCE 2 p4d r vmemmap_alloc_block_zero
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 irq