Defined in 6 files as a macro:
- arch/arc/include/asm/pgtable-bits-arcv2.h, line 80 (as a macro)
- arch/arm/include/asm/pgtable.h, line 173 (as a macro)
- arch/arm64/include/asm/pgtable.h, line 156 (as a macro)
- arch/powerpc/include/asm/nohash/32/pte-8xx.h, line 106 (as a macro)
- arch/sh/include/asm/pgtable_32.h, line 345 (as a macro)
- arch/sh/include/asm/pgtable_32.h, line 348 (as a macro)
Defined in 24 files as a function:
- arch/alpha/include/asm/pgtable.h, line 231 (as a function)
- arch/csky/include/asm/pgtable.h, line 143 (as a function)
- arch/hexagon/include/asm/pgtable.h, line 317 (as a function)
- arch/loongarch/include/asm/pgtable.h, line 392 (as a function)
- arch/m68k/include/asm/mcf_pgtable.h, line 157 (as a function)
- arch/m68k/include/asm/motorola_pgtable.h, line 146 (as a function)
- arch/m68k/include/asm/sun3_pgtable.h, line 134 (as a function)
- arch/microblaze/include/asm/pgtable.h, line 235 (as a function)
- arch/mips/include/asm/pgtable.h, line 291 (as a function)
- arch/mips/include/asm/pgtable.h, line 355 (as a function)
- arch/nios2/include/asm/pgtable.h, line 80 (as a function)
- arch/openrisc/include/asm/pgtable.h, line 197 (as a function)
- arch/parisc/include/asm/pgtable.h, line 306 (as a function)
- arch/powerpc/include/asm/book3s/32/pgtable.h, line 390 (as a function)
- arch/powerpc/include/asm/book3s/64/pgtable.h, line 391 (as a function)
- arch/powerpc/include/asm/nohash/32/pte-8xx.h, line 101 (as a function)
- arch/powerpc/include/asm/nohash/pgtable.h, line 193 (as a function)
- arch/riscv/include/asm/pgtable.h, line 370 (as a function)
- arch/s390/include/asm/pgtable.h, line 916 (as a function)
- arch/sparc/include/asm/pgtable_32.h, line 204 (as a function)
- arch/sparc/include/asm/pgtable_64.h, line 374 (as a function)
- arch/um/include/asm/pgtable.h, line 123 (as a function)
- arch/x86/include/asm/pgtable.h, line 205 (as a function)
- arch/xtensa/include/asm/pgtable.h, line 246 (as a function)
Referenced in 43 files:
- arch/arc/include/asm/hugepage.h, line 39
- arch/arm/lib/uaccess_with_memcpy.c, line 81
- arch/arm64/include/asm/pgtable.h
- arch/arm64/mm/contpte.c
- arch/arm64/mm/hugetlbpage.c
- arch/loongarch/mm/fault.c, line 68
- arch/m68k/kernel/sys_m68k.c, line 494
- arch/m68k/mm/mcfmmu.c, line 118
- arch/mips/kvm/mmu.c, line 503
- arch/powerpc/include/asm/book3s/32/pgtable.h, line 435
- arch/powerpc/include/asm/book3s/64/pgtable.h
- arch/powerpc/include/asm/kvm_book3s_64.h, line 443
- arch/powerpc/include/asm/nohash/64/pgtable.h
- arch/powerpc/include/asm/nohash/pgtable.h
- arch/powerpc/kvm/book3s_64_mmu_radix.c, line 814
- arch/powerpc/kvm/book3s_hv_rm_mmu.c, line 268
- arch/powerpc/mm/ioremap.c, line 43
- arch/powerpc/mm/ptdump/ptdump.c, line 191
- arch/powerpc/xmon/xmon.c, line 3280
- arch/riscv/include/asm/pgtable.h
- arch/s390/include/asm/pgtable.h
- arch/sh/mm/tlbex_32.c, line 60
- arch/sparc/include/asm/pgtable_64.h
- arch/um/kernel/skas/uaccess.c, line 52
- arch/um/kernel/tlb.c, line 69
- arch/x86/mm/fault.c, line 958
- fs/proc/task_mmu.c, line 1694
- include/asm-generic/hugetlb.h, line 10
- include/linux/pgtable.h, line 1343
- kernel/events/uprobes.c, line 421
- mm/debug_vm_pgtable.c
- mm/gup.c
- mm/hmm.c, line 239
- mm/internal.h, line 448
- mm/ksm.c
- mm/mapping_dirty_helpers.c, line 40
- mm/memory.c
- mm/migrate.c, line 413
- mm/migrate_device.c, line 378
- mm/mprotect.c, line 323
- mm/page_table_check.c
- mm/rmap.c
- mm/userfaultfd.c, line 2794
Smatch caller information:
mm/madvise.c folio_pte_batch_flags() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r ptep_get |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/userfaultfd.c huge_pte_write() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING |
mm/userfaultfd.c userfaultfd_must_wait() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r ptep_get |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | rcu_read |
arch/x86/mm/fault.c spurious_kernel_fault_check() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH |
fs/proc/task_mmu.c pte_is_pinned() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | $2 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/page_table_check.c __page_table_check_ptes_set() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | $3 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | flags | ||
| HALF_LOCKED2 | global &ksm_thread_mutex | ||
| HALF_LOCKED2 | old_ptl | ||
| HALF_LOCKED2 | ptl | ||
| HALF_LOCKED2 | rcu_read |
mm/page_table_check.c page_table_check_pte_flags() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | flags | ||
| HALF_LOCKED2 | global &ksm_thread_mutex | ||
| HALF_LOCKED2 | old_ptl | ||
| HALF_LOCKED2 | ptl | ||
| HALF_LOCKED2 | rcu_read |
mm/rmap.c folio_pte_batch_flags() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r ptep_get |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &anon_vma->root->rwsem | ||
| HALF_LOCKED2 | &folio->private->lock |
mm/rmap.c make_device_exclusive() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| LOCK2 | &mm->mmap_lock | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/rmap.c page_vma_mkclean_one() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r ptep_get |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &((&xas)->xa)->xa_lock | ||
| HALF_LOCKED2 | &mapping->i_mmap_rwsem |
mm/rmap.c try_to_migrate_one() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r huge_ptep_clear_flush |
| 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/rmap.c try_to_migrate_one() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| 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/util.c folio_pte_batch_flags() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r ptep_get |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &folio->private->lock | ||
| HALF_LOCKED2 | ptl | ||
| HALF_LOCKED2 | rcu_read |
mm/mprotect.c change_present_ptes() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/mprotect.c folio_pte_batch_flags() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r ptep_get |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/hugetlb.c huge_pte_write() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &pool->lock |
mm/mremap.c folio_pte_batch_flags() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r ptep_get |
mm/ksm.c write_protect_page() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r ptep_get |
| LOCK2 | &mm->mmap_lock | ||
| LOCK2 | global &ksm_thread_mutex | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/ksm.c write_protect_page() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r pte_mkclean |
| LOCK2 | &mm->mmap_lock | ||
| LOCK2 | global &ksm_thread_mutex | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/migrate_device.c migrate_vma_collect_pmd() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r ptep_get |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/vmscan.c folio_pte_batch_flags() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r ptep_get |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | ptl | ||
| HALF_LOCKED2 | rcu_read |
mm/memory.c __copy_present_ptes() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | $4 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &mm->mmap_lock | ||
| LOCK2 | &oldmm->mmap_lock | ||
| LOCK2 | dst_ptl | ||
| LOCK2 | rcu_read | ||
| LOCK2 | src_ptl | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/memory.c do_numa_page() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r pte_modify |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | rcu_read | ||
| LOCK2 | vmf->ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &pool->lock |
mm/memory.c do_swap_page() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | vmf->ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/memory.c do_swap_page() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | vmf->ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/memory.c do_uffd_rwp() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r pte_mkyoung |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | rcu_read | ||
| LOCK2 | vmf->ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &pool->lock |
mm/memory.c folio_pte_batch_flags() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r ptep_get |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &mm->mmap_lock | ||
| LOCK2 | &oldmm->mmap_lock | ||
| LOCK2 | dst_ptl | ||
| LOCK2 | rcu_read | ||
| LOCK2 | src_ptl | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/memory.c follow_pfnmap_start() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r ptep_get |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | lock | ||
| HALF_LOCKED2 | &iommu->lock | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/memory.c handle_pte_fault() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| BIT_INFO | 0 | pte | 0x0,0x7fffffffffffffff |
| BIT_INFO | 0 | pte | 0x0,0x7fffffffffffffff |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | rcu_read | ||
| LOCK2 | vmf->ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &pool->lock |
mm/memory.c numa_rebuild_large_mapping() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r pte_modify |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | vmf->ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &pool->lock | ||
| HALF_LOCKED2 | rcu_read |
mm/memory.c set_pte_range() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_COMPARE | 0 | pte | == $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | vmf->ptl | ||
| HALF_LOCKED2 | rcu_read |
mm/memory.c wp_page_copy() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | vmf->ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/gup.c can_follow_write_pte() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/gup.c follow_page_pte() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r ptep_get |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/gup.c gup_fast_pte_range() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r ptep_get_lockless |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | flags | ||
| LOCK2 | rcu_read |
kernel/events/uprobes.c __uprobe_write() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &uprobe->register_rwsem |
mm/debug_vm_pgtable.c huge_pte_write() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | $0 |
mm/debug_vm_pgtable.c pte_advanced_tests() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r ptep_get |
| HALF_LOCKED2 | ptl |
mm/debug_vm_pgtable.c pte_advanced_tests() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r ptep_get |
| HALF_LOCKED2 | ptl |
mm/debug_vm_pgtable.c pte_basic_tests() -> pte_write()
| Type | Parameter | Key | Value |
|---|
mm/debug_vm_pgtable.c pte_basic_tests() -> pte_write()
| Type | Parameter | Key | Value |
|---|
mm/debug_vm_pgtable.c pte_basic_tests() -> pte_write()
| Type | Parameter | Key | Value |
|---|
mm/debug_vm_pgtable.c pte_basic_tests() -> pte_write()
| Type | Parameter | Key | Value |
|---|
mm/debug_vm_pgtable.c pte_basic_tests() -> pte_write()
| Type | Parameter | Key | Value |
|---|
mm/migrate.c remove_migration_pte() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &anon_vma->root->rwsem | ||
| HALF_LOCKED2 | &folio->private->lock |
mm/mapping_dirty_helpers.c wp_pte() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r ptep_get |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | ptl |
mm/hmm.c pte_to_hmm_pfn_flags() -> pte_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | $1 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | rcu_read |