Defined in 2 files as a macro:
- arch/loongarch/include/asm/pgtable.h, line 129 (as a macro)
- arch/s390/include/asm/pgtable.h, line 994 (as a macro)
Defined in 2 files as a function:
- arch/s390/include/asm/pgtable.h, line 995 (as a function)
- include/linux/pgtable.h, line 500 (as a function)
Referenced in 33 files:
- arch/arm64/mm/mmu.c
- arch/arm64/mm/pageattr.c, line 58
- arch/loongarch/include/asm/pgtable.h, line 617
- arch/loongarch/kvm/mmu.c, line 713
- arch/loongarch/mm/fault.c
- arch/loongarch/mm/hugetlbpage.c, line 51
- arch/loongarch/mm/init.c, line 185
- arch/loongarch/mm/kasan_init.c
- arch/loongarch/mm/pageattr.c
- arch/riscv/kvm/mmu.c, line 489
- arch/riscv/mm/fault.c
- arch/riscv/mm/hugetlbpage.c, line 116
- arch/riscv/mm/init.c, line 1603
- arch/riscv/mm/kasan_init.c
- arch/riscv/mm/pageattr.c
- arch/riscv/mm/pgtable.c
- arch/s390/boot/vmem.c, line 364
- arch/s390/mm/pageattr.c
- arch/s390/mm/vmem.c
- include/linux/pgtable.h
- mm/damon/ops-common.c
- mm/damon/vaddr.c
- mm/debug_vm_pgtable.c
- mm/huge_memory.c
- mm/ksm.c, line 2550
- mm/madvise.c
- mm/memory.c
- mm/mempolicy.c, line 657
- mm/page_idle.c, line 74
- mm/pagewalk.c, line 969
- mm/ptdump.c, line 103
- mm/rmap.c
- mm/sparse-vmemmap.c
Smatch caller information:
mm/madvise.c guard_install_pmd_entry() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| DATA_SOURCE | 0 | pmdp | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/madvise.c guard_remove_pmd_entry() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| DATA_SOURCE | 0 | pmdp | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/huge_memory.c do_huge_pmd_numa_page() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &pool->lock |
mm/huge_memory.c do_huge_pmd_numa_page() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &pool->lock |
mm/huge_memory.c do_huge_pmd_numa_page() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &pool->lock |
mm/huge_memory.c do_huge_pmd_uffd_rwp() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &pool->lock |
mm/huge_memory.c do_huge_zero_wp_pmd() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &pool->lock |
mm/huge_memory.c pmdp_get_lockless() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| DATA_SOURCE | 0 | pmdp | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &mm->mmap_lock | ||
| LOCK2 | &oldmm->mmap_lock | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/pagewalk.c folio_walk_start() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| DATA_SOURCE | 0 | pmdp | r pmd_offset |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &split_debug_mutex | ||
| HALF_LOCKED2 | global &ksm_thread_mutex |
mm/pagewalk.c pmdp_get_lockless() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| DATA_SOURCE | 0 | pmdp | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &split_debug_mutex | ||
| HALF_LOCKED2 | global &ksm_thread_mutex |
mm/userfaultfd.c pmdp_get_lockless() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| DATA_SOURCE | 0 | pmdp | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &ctx->map_changing_lock | ||
| HALF_LOCKED2 | &state.ctx->map_changing_lock | ||
| HALF_LOCKED2 | rcu_read |
mm/damon/vaddr.c damon_mkold_pmd_entry() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| DATA_SOURCE | 0 | pmdp | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/damon/vaddr.c damon_young_pmd_entry() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| DATA_SOURCE | 0 | pmdp | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/damon/vaddr.c damos_va_filter_young_match() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| DATA_SOURCE | 0 | pmdp | $5 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | ptl |
mm/damon/vaddr.c damos_va_migrate_pmd_entry() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| DATA_SOURCE | 0 | pmdp | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/damon/vaddr.c damos_va_stat_pmd_entry() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| DATA_SOURCE | 0 | pmdp | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/ptdump.c ptdump_pmd_entry() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| DATA_SOURCE | 0 | pmdp | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/rmap.c page_vma_mkclean_one() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &((&xas)->xa)->xa_lock | ||
| HALF_LOCKED2 | &mapping->i_mmap_rwsem |
mm/rmap.c try_to_migrate_one() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &anon_vma->root->rwsem | ||
| HALF_LOCKED2 | &folio->private->lock | ||
| HALF_LOCKED2 | &resv_map->rw_sema | ||
| HALF_LOCKED2 | &vma->vm_private_data->rw_sema |
mm/page_vma_mapped.c pmdp_get_lockless() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pmdp | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | *ptlp | ||
| HALF_LOCKED2 | global &ksm_thread_mutex | ||
| HALF_LOCKED2 | global &mf_mutex | ||
| HALF_LOCKED2 | ptl | ||
| HALF_LOCKED2 | rcu_read |
mm/mprotect.c pmdp_get_lockless() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| DATA_SOURCE | 0 | pmdp | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &dst_mm->mmap_lock | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/ksm.c ksm_next_page_pmd_entry() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| DATA_SOURCE | 0 | pmdp | $0 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/ksm.c pmdp_get_lockless() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| DATA_SOURCE | 0 | pmdp | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | global &ksm_thread_mutex |
mm/migrate_device.c pmdp_get_lockless() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| DATA_SOURCE | 0 | pmdp | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/vmscan.c pmdp_get_lockless() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| DATA_SOURCE | 0 | pmdp | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | ptl | ||
| HALF_LOCKED2 | rcu_read |
mm/memory.c __print_bad_page_map_pgtable() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| DATA_SOURCE | 0 | pmdp | r pmd_offset |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | ptl |
mm/memory.c follow_pfnmap_start() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| DATA_SOURCE | 0 | pmdp | r pmd_offset |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &iommu->lock | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/memory.c pmdp_get_lockless() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| DATA_SOURCE | 0 | pmdp | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/memory.c zap_empty_pte_table() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| DATA_SOURCE | 0 | pmdp | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | pml |
kernel/events/core.c pmdp_get_lockless() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| DATA_SOURCE | 0 | pmdp | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | flags | ||
| LOCK2 | rcu_read |
mm/gup.c pmdp_get_lockless() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-u64max |
| DATA_SOURCE | 0 | pmdp | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | flags | ||
| HALF_LOCKED2 | rcu_read |
mm/damon/ops-common.c damon_folio_young_one() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &anon_vma->root->rwsem | ||
| HALF_LOCKED2 | &folio->private->lock |
mm/damon/ops-common.c damon_pmdp_mkold() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| DATA_SOURCE | 0 | pmdp | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | ptl |
mm/pgtable-generic.c pmdp_get_lockless() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pmdp | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | ptl |
mm/mempolicy.c queue_folios_pmd() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| DATA_SOURCE | 0 | pmdp | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/debug_vm_pgtable.c init_args() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| DATA_SOURCE | 0 | pmdp | r pmd_alloc |
mm/debug_vm_pgtable.c pmd_advanced_tests() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| PREEMPT_ADD |
mm/debug_vm_pgtable.c pmd_advanced_tests() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| PREEMPT_ADD |
mm/debug_vm_pgtable.c pmd_advanced_tests() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| PREEMPT_ADD |
mm/debug_vm_pgtable.c pmd_advanced_tests() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| PREEMPT_ADD |
mm/debug_vm_pgtable.c pmd_advanced_tests() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| PREEMPT_ADD |
mm/debug_vm_pgtable.c pmd_clear_tests() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| PREEMPT_ADD |
mm/debug_vm_pgtable.c pmd_clear_tests() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| PREEMPT_ADD |
mm/debug_vm_pgtable.c pmd_huge_tests() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| PREEMPT_ADD |
mm/debug_vm_pgtable.c pmd_populate_tests() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| PREEMPT_ADD |
mm/mapping_dirty_helpers.c pmdp_get_lockless() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| DATA_SOURCE | 0 | pmdp | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/hmm.c pmdp_get_lockless() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| DATA_SOURCE | 0 | pmdp | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/khugepaged.c pmdp_get_lockless() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| DATA_SOURCE | 0 | pmdp | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | ptl | ||
| HALF_LOCKED2 | rcu_read |
mm/page_idle.c page_idle_clear_pte_refs_one() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &anon_vma->root->rwsem | ||
| HALF_LOCKED2 | &folio->private->lock |
mm/sparse-vmemmap.c vmemmap_check_pmd() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pmdp | 4096-ptr_max |
| DATA_SOURCE | 0 | pmdp | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | irq |
mm/sparse-vmemmap.c vmemmap_populate_hugepages() -> pmdp_get()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pmdp | r pmd_offset |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | irq |