Defined in 5 files as a macro:
- arch/arc/include/asm/pgtable-levels.h, line 109 (as a macro)
- arch/arm64/include/asm/pgtable.h, line 970 (as a macro)
- arch/powerpc/include/asm/nohash/64/pgtable-4k.h, line 58 (as a macro)
- arch/sparc/include/asm/pgtable_64.h, line 860 (as a macro)
- arch/um/include/asm/pgtable-4level.h, line 68 (as a macro)
Defined in 7 files as a function:
- arch/loongarch/include/asm/pgtable.h, line 167 (as a function)
- arch/mips/include/asm/pgtable-64.h, line 197 (as a function)
- arch/powerpc/include/asm/book3s/64/pgtable.h, line 951 (as a function)
- arch/riscv/include/asm/pgtable-64.h, line 292 (as a function)
- arch/s390/include/asm/pgtable.h, line 697 (as a function)
- arch/x86/include/asm/pgtable.h, line 1072 (as a function)
- include/asm-generic/pgtable-nopud.h, line 30 (as a function)
Referenced in 46 files:
- arch/arc/mm/fault.c, line 49
- arch/arm/mm/fault.c, line 268
- arch/arm64/mm/hugetlbpage.c, line 291
- arch/arm64/mm/mmu.c
- arch/loongarch/kvm/mmu.c, line 706
- arch/loongarch/mm/fault.c, line 50
- arch/loongarch/mm/hugetlbpage.c, line 44
- arch/m68k/kernel/sys_m68k.c, line 482
- arch/mips/mm/fault.c, line 301
- arch/mips/mm/hugetlbpage.c, line 52
- arch/nios2/mm/fault.c, line 245
- arch/openrisc/mm/fault.c, line 325
- arch/powerpc/kvm/book3s_64_mmu_radix.c
- arch/powerpc/mm/book3s64/radix_pgtable.c, line 910
- arch/riscv/include/asm/pgtable-64.h, line 303
- arch/riscv/include/asm/pgtable.h, line 1301
- arch/riscv/kvm/mmu.c, line 477
- arch/riscv/mm/fault.c, line 202
- arch/riscv/mm/hugetlbpage.c, line 100
- arch/riscv/mm/init.c, line 1662
- arch/riscv/mm/pageattr.c, line 451
- arch/s390/mm/gmap_helpers.c, line 56
- arch/s390/mm/hugetlbpage.c, line 216
- arch/sh/kernel/io_trapped.c, line 148
- arch/sh/mm/fault.c, line 136
- arch/um/kernel/skas/uaccess.c, line 32
- arch/um/kernel/tlb.c, line 148
- arch/x86/include/asm/pgtable.h, line 1735
- arch/x86/kernel/machine_kexec_64.c, line 190
- arch/x86/kvm/mmu/mmu.c, line 3336
- arch/x86/mm/fault.c
- arch/x86/mm/ident_map.c
- arch/x86/mm/init_64.c, line 1213
- arch/x86/mm/pat/set_memory.c
- arch/xtensa/mm/fault.c
- include/linux/pgtable.h, line 1358
- kernel/events/core.c, line 8532
- mm/gup.c
- mm/hugetlb.c, line 7180
- mm/kasan/init.c, line 429
- mm/memory-failure.c, line 353
- mm/memory.c
- mm/page_vma_mapped.c, line 234
- mm/rmap.c, line 896
- mm/userfaultfd.c, line 2734
- mm/vmalloc.c, line 283
Smatch caller information:
arch/x86/mm/init_64.c free_p4d() -> p4d_present()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING |
arch/x86/mm/init_64.c ident_p4d_init() -> p4d_present()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | global &device_hotplug_lock | ||
| HALF_LOCKED2 | global &system_transition_mutex | ||
| HALF_LOCKED2 | irq |
arch/x86/mm/init_64.c p4d_populate_safe() -> p4d_present()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | global &init_mm.page_table_lock | ||
| HALF_LOCKED2 | irq | ||
| TYPE_LOCK | (struct mm_struct)->page_table_lock |
arch/x86/mm/init_64.c remove_p4d_table() -> p4d_present()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING |
arch/x86/mm/init_64.c set_p4d_init() -> p4d_present()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | irq |
mm/userfaultfd.c userfaultfd_must_wait() -> p4d_present()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING |
arch/x86/kernel/machine_kexec_64.c init_transition_pgtable() -> p4d_present()
| Type | Parameter | Key | Value |
|---|
arch/x86/mm/fault.c dump_pagetable() -> p4d_present()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | flags |
arch/x86/mm/fault.c spurious_kernel_fault() -> p4d_present()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD |
mm/kasan/init.c kasan_remove_p4d_table() -> p4d_present()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &dev->mutex |
mm/rmap.c mm_find_pmd() -> p4d_present()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &ctx->map_changing_lock | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | global &ksm_thread_mutex |
mm/page_vma_mapped.c page_vma_mapped_walk() -> p4d_present()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | global &ksm_thread_mutex | ||
| HALF_LOCKED2 | global &mf_mutex | ||
| HALF_LOCKED2 | rcu_read |
mm/hugetlb.c huge_pte_offset() -> p4d_present()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mapping->i_mmap_rwsem |
arch/x86/kvm/mmu/mmu.c host_pfn_mapping_level() -> p4d_present()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | flags | ||
| HALF_LOCKED2 | &kvm->arch.apic_map_lock | ||
| HALF_LOCKED2 | &kvm->arch.apicv_update_lock | ||
| HALF_LOCKED2 | &kvm->lock | ||
| HALF_LOCKED2 | &kvm->mmu_lock | ||
| HALF_LOCKED2 | &kvm->slots_lock | ||
| HALF_LOCKED2 | &kvm->srcu | ||
| HALF_LOCKED2 | rcu_read |
mm/memory.c __print_bad_page_map_pgtable() -> p4d_present()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | p4d | r p4dp_get |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | ptl |
mm/memory.c __pud_alloc() -> p4d_present()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &mm->page_table_lock | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | irq | ||
| TYPE_LOCK | (struct mm_struct)->page_table_lock |
kernel/events/core.c perf_get_pgtable_size() -> p4d_present()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | p4d | r p4dp_get |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | flags | ||
| LOCK2 | rcu_read |
mm/memory-failure.c dev_pagemap_mapping_shift() -> p4d_present()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &av->root->rwsem | ||
| HALF_LOCKED2 | &mapping->i_mmap_rwsem | ||
| HALF_LOCKED2 | global &mf_mutex |
mm/gup.c follow_p4d_mask() -> p4d_present()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | p4d | r p4dp_get |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/gup.c gup_fast_p4d_range() -> p4d_present()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | p4d | r p4dp_get |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | flags |
arch/x86/mm/pat/set_memory.c lookup_address_in_pgd_attr() -> p4d_present()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | flags |
arch/x86/mm/pat/set_memory.c lookup_pmd_address() -> p4d_present()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | global &balloon_mutex | ||
| HALF_LOCKED2 | global &list_lock |