Defined in 5 files as a macro:
- arch/arc/include/asm/pgtable-levels.h, line 107 (as a macro)
- arch/arm64/include/asm/pgtable.h, line 966 (as a macro)
- arch/powerpc/include/asm/nohash/64/pgtable-4k.h, line 56 (as a macro)
- arch/sparc/include/asm/pgtable_64.h, line 809 (as a macro)
- arch/um/include/asm/pgtable-4level.h, line 66 (as a macro)
Defined in 7 files as a function:
- arch/loongarch/include/asm/pgtable.h, line 157 (as a function)
- arch/mips/include/asm/pgtable-64.h, line 184 (as a function)
- arch/powerpc/include/asm/book3s/64/pgtable.h, line 946 (as a function)
- arch/riscv/include/asm/pgtable-64.h, line 284 (as a function)
- arch/s390/include/asm/pgtable.h, line 704 (as a function)
- arch/x86/include/asm/pgtable.h, line 1067 (as a function)
- include/asm-generic/pgtable-nopud.h, line 28 (as a function)
Referenced in 58 files:
- arch/arc/mm/fault.c, line 47
- arch/arm/lib/uaccess_with_memcpy.c, line 38
- arch/arm/mm/dump.c, line 390
- arch/arm/mm/fault.c
- arch/arm64/include/asm/pgtable.h, line 970
- arch/arm64/mm/fault.c, line 173
- arch/arm64/mm/fixmap.c
- arch/arm64/mm/kasan_init.c
- arch/arm64/mm/mmu.c
- arch/arm64/mm/pageattr.c, line 406
- arch/arm64/mm/trans_pgd.c
- arch/loongarch/kvm/mmu.c, line 706
- arch/loongarch/mm/init.c, line 167
- arch/loongarch/mm/pageattr.c, line 180
- arch/m68k/include/asm/mmu_context.h, line 129
- arch/m68k/mm/mcfmmu.c, line 101
- arch/parisc/kernel/cache.c, line 420
- arch/parisc/mm/hugetlbpage.c, line 67
- arch/powerpc/kvm/book3s_64_mmu_radix.c, line 654
- arch/powerpc/mm/book3s64/radix_pgtable.c
- arch/powerpc/mm/book3s64/subpage_prot.c, line 65
- arch/powerpc/mm/nohash/book3e_pgtable.c, line 98
- arch/powerpc/mm/pgtable.c
- arch/powerpc/mm/ptdump/hashpagetable.c, line 450
- arch/powerpc/xmon/xmon.c, line 3321
- arch/riscv/kernel/hibernate.c
- arch/riscv/kvm/mmu.c, line 477
- arch/riscv/mm/fault.c, line 53
- arch/riscv/mm/kasan_init.c
- arch/s390/boot/vmem.c, line 430
- arch/s390/mm/gmap_helpers.c, line 56
- arch/s390/mm/pageattr.c, line 295
- arch/s390/mm/vmem.c
- arch/sh/mm/fault.c, line 74
- arch/sparc/kernel/signal32.c, line 321
- arch/sparc/mm/fault_64.c, line 92
- arch/sparc/mm/hugetlbpage.c, line 225
- arch/sparc/mm/init_64.c
- arch/x86/boot/startup/sme.c, line 127
- arch/x86/kernel/ldt.c, line 224
- arch/x86/kvm/mmu/mmu.c, line 3336
- arch/x86/mm/init_64.c
- arch/x86/mm/kasan_init_64.c
- arch/x86/mm/pat/set_memory.c
- arch/x86/mm/pgtable_32.c, line 41
- arch/x86/mm/pti.c
- arch/x86/xen/mmu_pv.c
- include/linux/mm.h, line 3703
- include/linux/pgtable.h, line 1555
- mm/debug_vm_pgtable.c
- mm/gup.c, line 1049
- mm/kasan/init.c
- mm/kasan/shadow.c, line 197
- mm/memory.c
- mm/percpu.c, line 3166
- mm/pgalloc-track.h, line 26
- mm/sparse-vmemmap.c, line 224
- mm/vmalloc.c, line 846
Smatch caller information:
arch/x86/mm/init_64.c __init_extra_mapping() -> p4d_none()
| Type | Parameter | Key | Value |
|---|
arch/x86/mm/init_64.c fill_pud() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | irq |
arch/x86/mm/init_64.c phys_p4d_init() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | irq |
arch/x86/mm/init_64.c pud_alloc() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| LOCK2 | irq |
arch/x86/mm/init_64.c sync_global_pgds_l4() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | irq |
arch/x86/mm/init_64.c sync_global_pgds_l4() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | global &pgd_lock | ||
| LOCK2 | pgt_lock | ||
| HALF_LOCKED2 | irq |
arch/x86/mm/init_64.c sync_global_pgds_l4() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | global &pgd_lock | ||
| LOCK2 | pgt_lock | ||
| HALF_LOCKED2 | irq |
arch/x86/mm/init_64.c sync_global_pgds_l4() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | global &pgd_lock | ||
| LOCK2 | pgt_lock | ||
| HALF_LOCKED2 | irq |
arch/x86/kernel/tboot.c pud_alloc() -> p4d_none()
| Type | Parameter | Key | Value |
|---|
mm/pagewalk.c p4d_none_or_clear_bad() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/userfaultfd.c pud_alloc() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| HALF_LOCKED2 | &ctx->map_changing_lock | ||
| HALF_LOCKED2 | &state.ctx->map_changing_lock | ||
| TYPE_LOCK | (struct userfaultfd_ctx)->map_changing_lock |
mm/swapfile.c p4d_none_or_clear_bad() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| CAPABLE | 0 | 21 | |
| LOCK2 | &mm->mmap_lock | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/percpu.c pcpu_populate_pte() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| LOCK2 | irq |
mm/kasan/init.c kasan_free_p4d() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &dev->mutex |
mm/kasan/init.c pud_alloc() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | irq |
mm/kasan/init.c zero_p4d_populate() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | irq |
arch/x86/mm/pti.c pti_clone_pgtable() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| HALF_LOCKED2 | irq |
arch/x86/mm/pti.c pti_user_pagetable_walk_pmd() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| HALF_LOCKED2 | irq |
mm/mprotect.c p4d_none_or_clear_bad() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &dst_mm->mmap_lock | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | _T->lock |
mm/mprotect.c pud_alloc() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &dst_mm->mmap_lock | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | _T->lock |
mm/hugetlb.c pud_alloc() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| 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 p4d_none_or_clear_bad() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| LOCK2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &tsk->signal->exec_update_lock | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/mremap.c pud_alloc() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| LOCK2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &tsk->signal->exec_update_lock | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
arch/x86/kvm/mmu/mmu.c host_pfn_mapping_level() -> p4d_none()
| 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 |
arch/x86/mm/kasan_init_64.c kasan_early_p4d_populate() -> p4d_none()
| Type | Parameter | Key | Value |
|---|
arch/x86/mm/kasan_init_64.c kasan_early_p4d_populate() -> p4d_none()
| Type | Parameter | Key | Value |
|---|
arch/x86/mm/kasan_init_64.c kasan_populate_p4d() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| LOCK2 | irq |
arch/x86/mm/kasan_init_64.c kasan_shallow_populate_p4ds() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| LOCK2 | irq |
mm/migrate_device.c pud_alloc() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &drm->dmem->mutex |
mm/memory.c apply_to_p4d_range() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | flags |
mm/memory.c apply_to_p4d_range() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | flags |
mm/memory.c follow_pfnmap_start() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | p4d | r p4dp_get |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &iommu->lock | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/memory.c p4d_none_or_clear_bad() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &oldmm->mmap_lock |
mm/memory.c pud_alloc() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &oldmm->mmap_lock |
mm/memory.c pud_alloc_track() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | flags |
mm/gup.c get_gate_page() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock |
arch/x86/boot/startup/sme.c sme_prepare_pgd() -> p4d_none()
| Type | Parameter | Key | Value |
|---|
arch/x86/mm/pat/set_memory.c collapse_large_pages() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | global &cpa_lock | ||
| LOCK2 | global &pgd_lock | ||
| HALF_LOCKED2 | global &mem_enc_lock |
arch/x86/mm/pat/set_memory.c lookup_address_in_pgd_attr() -> p4d_none()
| 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_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | global &balloon_mutex | ||
| HALF_LOCKED2 | global &list_lock |
arch/x86/mm/pat/set_memory.c populate_pgd() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | global &cpa_lock | ||
| HALF_LOCKED2 | global &mem_enc_lock |
arch/x86/platform/efi/efi_64.c pud_alloc() -> p4d_none()
| Type | Parameter | Key | Value |
|---|
mm/vmalloc.c p4d_none_or_clear_bad() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | global &pcpu_alloc_mutex |
mm/vmalloc.c pud_alloc_track() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING |
mm/vmalloc.c vmalloc_to_page() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &bo->mutex | ||
| HALF_LOCKED2 | &cache->writeback_lock | ||
| HALF_LOCKED2 | &fbdefio_state->lock | ||
| HALF_LOCKED2 | &hw->hw_info.lock | ||
| HALF_LOCKED2 | &idev->info_lock | ||
| HALF_LOCKED2 | &pds_vfio->state_mutex | ||
| HALF_LOCKED2 | &pool->lock | ||
| HALF_LOCKED2 | &rproc->lock | ||
| HALF_LOCKED2 | &runtime->buffer_mutex | ||
| HALF_LOCKED2 | &service->bulk_mutex | ||
| HALF_LOCKED2 | _T->lock | ||
| HALF_LOCKED2 | flags | ||
| HALF_LOCKED2 | global &page_offline_rwsem | ||
| HALF_LOCKED2 | global &pcpu_alloc_mutex | ||
| HALF_LOCKED2 | global &report_lock | ||
| HALF_LOCKED2 | sk |
mm/debug_vm_pgtable.c p4d_clear_tests() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | p4d | r p4dp_get |
| PREEMPT_ADD | |||
| LOCK2 | &args.mm->page_table_lock | ||
| TYPE_LOCK | (struct mm_struct)->page_table_lock |
mm/debug_vm_pgtable.c p4d_clear_tests() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | p4d | r p4dp_get |
| PREEMPT_ADD | |||
| LOCK2 | &args.mm->page_table_lock | ||
| TYPE_LOCK | (struct mm_struct)->page_table_lock |
mm/debug_vm_pgtable.c pud_alloc() -> p4d_none()
| Type | Parameter | Key | Value |
|---|
mm/khugepaged.c pud_alloc() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/kasan/shadow.c shadow_mapped() -> p4d_none()
| Type | Parameter | Key | Value |
|---|
arch/x86/xen/mmu_pv.c xen_cleanmfnmap() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| LOCK2 | irq |
arch/x86/xen/mmu_pv.c xen_p4d_walk() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | irq | ||
| HALF_LOCKED2 | &mm->page_table_lock |
mm/sparse-vmemmap.c vmemmap_p4d_populate() -> p4d_none()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | irq |