Defined in 1 files as a prototype:
Defined in 28 files as a function:
- arch/alpha/include/asm/pgtable.h, line 182 (as a function)
- arch/arc/include/asm/pgtable-bits-arcv2.h, line 98 (as a function)
- arch/arm/include/asm/pgtable.h, line 259 (as a function)
- arch/arm64/include/asm/pgtable.h, line 1226 (as a function)
- arch/csky/include/asm/pgtable.h, line 249 (as a function)
- arch/hexagon/include/asm/pgtable.h, line 282 (as a function)
- arch/loongarch/include/asm/pgtable.h, line 464 (as a function)
- arch/m68k/include/asm/mcf_pgtable.h, line 99 (as a function)
- arch/m68k/include/asm/motorola_pgtable.h, line 84 (as a function)
- arch/m68k/include/asm/sun3_pgtable.h, line 79 (as a function)
- arch/microblaze/include/asm/pgtable.h, line 277 (as a function)
- arch/mips/include/asm/pgtable.h, line 508 (as a function)
- arch/mips/include/asm/pgtable.h, line 517 (as a function)
- arch/mips/include/asm/pgtable.h, line 526 (as a function)
- arch/nios2/include/asm/pgtable.h, line 146 (as a function)
- arch/openrisc/include/asm/pgtable.h, line 289 (as a function)
- arch/parisc/include/asm/pgtable.h, line 346 (as a function)
- arch/powerpc/include/asm/book3s/32/pgtable.h, line 517 (as a function)
- arch/powerpc/include/asm/book3s/64/pgtable.h, line 626 (as a function)
- arch/powerpc/include/asm/nohash/pgtable.h, line 295 (as a function)
- arch/riscv/include/asm/pgtable.h, line 550 (as a function)
- arch/s390/include/asm/pgtable.h, line 1050 (as a function)
- arch/sh/include/asm/pgtable_32.h, line 383 (as a function)
- arch/sparc/include/asm/pgtable_32.h, line 289 (as a function)
- arch/sparc/include/asm/pgtable_64.h, line 257 (as a function)
- arch/um/include/asm/pgtable.h, line 269 (as a function)
- arch/x86/include/asm/pgtable.h, line 771 (as a function)
- arch/xtensa/include/asm/pgtable.h, line 273 (as a function)
Referenced in 11 files:
- arch/arm64/include/asm/pgtable.h, line 1252
- arch/riscv/include/asm/pgtable.h
- arch/sparc/include/asm/pgtable_64.h, line 320
- include/asm-generic/hugetlb.h, line 37
- mm/huge_memory.c
- mm/memory.c
- mm/migrate.c
- mm/mprotect.c
- mm/mremap.c, line 307
- mm/swapfile.c, line 2510
- mm/userfaultfd.c
Smatch caller information:
mm/huge_memory.c __split_huge_pmd_locked() -> pte_modify()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r pte_mkuffd |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &vma->vm_private_data->rw_sema |
mm/huge_memory.c __split_huge_zero_page_pmd() -> pte_modify()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &vma->vm_private_data->rw_sema | ||
| HALF_LOCKED2 | ptl |
mm/userfaultfd.c move_present_ptes() -> pte_modify()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r pte_mkwrite |
| LOCK2 | &ctx->map_changing_lock | ||
| LOCK2 | rcu_read | ||
| TYPE_LOCK | (struct userfaultfd_ctx)->map_changing_lock |
mm/userfaultfd.c move_zeropage_pte() -> pte_modify()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r pte_mkspecial |
| LOCK2 | &ctx->map_changing_lock | ||
| LOCK2 | rcu_read | ||
| TYPE_LOCK | (struct userfaultfd_ctx)->map_changing_lock |
mm/swapfile.c unuse_pte() -> pte_modify()
| Type | Parameter | Key | Value |
|---|---|---|---|
| CAPABLE | 0 | 21 | |
| LOCK2 | &mm->mmap_lock | ||
| LOCK2 | ptl | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/mprotect.c change_present_ptes() -> pte_modify()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r modify_prot_start_ptes |
| DATA_SOURCE | 1 | newprot | $6 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/mprotect.c change_present_ptes() -> pte_modify()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/hugetlb.c huge_pte_modify() -> pte_modify()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | $0 |
| DATA_SOURCE | 1 | newprot | $1 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mapping->i_mmap_rwsem | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &oldmm->mmap_lock | ||
| HALF_LOCKED2 | &vma->vm_file->f_mapping->i_mmap_rwsem | ||
| HALF_LOCKED2 | src_ptl |
mm/mremap.c move_ptes() -> pte_modify()
| Type | Parameter | Key | Value |
|---|---|---|---|
| LOCK2 | &mm->mmap_lock | ||
| LOCK2 | old_ptl | ||
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &tsk->signal->exec_update_lock | ||
| HALF_LOCKED2 | new_ptl | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/memory.c __copy_present_ptes() -> pte_modify()
| 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 copy_present_page() -> pte_modify()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r pte_mkuffd |
| 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_modify()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r ptep_get |
| 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_modify()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | vmf->ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/memory.c do_uffd_rwp() -> pte_modify()
| Type | Parameter | Key | Value |
|---|---|---|---|
| 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_modify()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r ptep_get |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | vmf->ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &pool->lock | ||
| HALF_LOCKED2 | rcu_read |
mm/memory.c numa_rebuild_single_mapping() -> pte_modify()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r ptep_modify_prot_start |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | vmf->ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &pool->lock | ||
| HALF_LOCKED2 | rcu_read |
mm/memory.c restore_exclusive_pte() -> pte_modify()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &oldmm->mmap_lock | ||
| HALF_LOCKED2 | dst_ptl | ||
| HALF_LOCKED2 | rcu_read | ||
| HALF_LOCKED2 | src_ptl | ||
| HALF_LOCKED2 | vmf->ptl |
mm/migrate.c remove_migration_pte() -> pte_modify()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &anon_vma->root->rwsem | ||
| HALF_LOCKED2 | &folio->private->lock |
mm/migrate.c try_to_map_unused_to_zeropage() -> pte_modify()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &anon_vma->root->rwsem | ||
| HALF_LOCKED2 | &folio->private->lock |