Defined in 1 files as a prototype:
Defined in 4 files as a macro:
- arch/arm/include/asm/pgtable-3level.h, line 166 (as a macro)
- arch/parisc/include/asm/pgtable.h, line 463 (as a macro)
- arch/powerpc/include/asm/book3s/32/pgtable.h, line 343 (as a macro)
- arch/xtensa/include/asm/pgtable.h, line 269 (as a macro)
Defined in 7 files as a function:
- arch/mips/include/asm/pgtable.h, line 488 (as a function)
- arch/powerpc/include/asm/book3s/64/pgtable.h, line 733 (as a function)
- arch/riscv/include/asm/pgtable.h, line 612 (as a function)
- arch/s390/include/asm/pgtable.h, line 840 (as a function)
- arch/um/include/asm/pgtable.h, line 252 (as a function)
- arch/x86/include/asm/pgtable.h, line 946 (as a function)
- include/linux/pgtable.h, line 1322 (as a function)
Referenced in 25 files:
- arch/arm64/mm/contpte.c, line 282
- arch/arm64/mm/fault.c, line 218
- arch/loongarch/include/asm/hugetlb.h, line 61
- arch/mips/include/asm/hugetlb.h, line 57
- arch/mips/include/asm/pgtable.h, line 498
- arch/nios2/include/asm/pgtable.h, line 288
- arch/parisc/mm/hugetlbpage.c, line 156
- arch/powerpc/mm/pgtable.c
- arch/riscv/mm/pgtable.c
- arch/s390/include/asm/hugetlb.h, line 62
- arch/s390/include/asm/pgtable.h, line 1343
- arch/sparc/include/asm/hugetlb.h, line 45
- arch/sparc/include/asm/pgtable_32.h, line 406
- arch/x86/include/asm/pgtable.h, line 1717
- arch/x86/mm/pgtable.c, line 384
- mm/debug_vm_pgtable.c, line 97
- mm/gup.c, line 774
- mm/hugetlb.c
- mm/internal.h
- mm/ksm.c, line 1431
- mm/memory.c
- mm/mprotect.c, line 274
- mm/pgtable-generic.c, line 74
- mm/swapfile.c, line 2404
- mm/userfaultfd.c
Smatch caller information:
mm/madvise.c folio_pte_batch_flags() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/madvise.c swap_pte_batch() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | a | r ptep_get |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock |
arch/x86/mm/init_64.c set_pte_init() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 1 | b | $1 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | global &init_mm.page_table_lock | ||
| HALF_LOCKED2 | irq |
mm/userfaultfd.c is_pte_pages_stable() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 1 | b | $3 |
| LOCK2 | &ctx->map_changing_lock | ||
| LOCK2 | rcu_read | ||
| TYPE_LOCK | (struct userfaultfd_ctx)->map_changing_lock |
mm/userfaultfd.c is_pte_pages_stable() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 1 | b | $2 |
| LOCK2 | &ctx->map_changing_lock | ||
| LOCK2 | rcu_read | ||
| TYPE_LOCK | (struct userfaultfd_ctx)->map_changing_lock |
mm/userfaultfd.c move_pages_ptes() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 1 | b | r ptep_get |
| BIT_INFO | 0 | a | 0x0,0x7fffffffffffffff |
| BIT_INFO | 0 | a | 0x0,0x7fffffffffffffff |
| LOCK2 | &ctx->map_changing_lock | ||
| LOCK2 | rcu_read | ||
| TYPE_LOCK | (struct userfaultfd_ctx)->map_changing_lock |
mm/userfaultfd.c move_pages_ptes() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | a | r ptep_get |
| PREEMPT_ADD | <- disables preempt | ||
| LOCK2 | &ctx->map_changing_lock | ||
| LOCK2 | rcu_read | ||
| LOCK2 | src_ptl | ||
| TYPE_LOCK | (struct userfaultfd_ctx)->map_changing_lock |
mm/swapfile.c pte_same_as_swp() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 1 | b | $1 |
| CAPABLE | 0 | 21 | |
| BIT_INFO | 1 | b | 0x0,0x7fffffffffffffff |
| BIT_INFO | 1 | b | 0x0,0x7fffffffffffffff |
| LOCK2 | &mm->mmap_lock | ||
| LOCK2 | ptl | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/rmap.c folio_pte_batch_flags() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &anon_vma->root->rwsem | ||
| HALF_LOCKED2 | &folio->private->lock |
mm/util.c folio_pte_batch_flags() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &folio->private->lock | ||
| HALF_LOCKED2 | ptl | ||
| HALF_LOCKED2 | rcu_read |
mm/mprotect.c change_softleaf_pte() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | a | $3 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/mprotect.c folio_pte_batch_flags() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/hugetlb.c copy_hugetlb_page_range() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 1 | b | r huge_ptep_get |
| BIT_INFO | 0 | a | 0x0,0x7fffffffffffffff |
| BIT_INFO | 0 | a | 0x0,0x7fffffffffffffff |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &mm->mmap_lock | ||
| LOCK2 | &oldmm->mmap_lock | ||
| LOCK2 | src_ptl | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/hugetlb.c hugetlb_change_protection() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | a | r huge_ptep_get |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &vma->vm_file->f_mapping->i_mmap_rwsem | ||
| HALF_LOCKED2 | &dst_mm->mmap_lock | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | _T->lock | ||
| TYPE_LOCK | (struct address_space)->i_mmap_rwsem |
mm/hugetlb.c hugetlb_fault() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | a | r huge_ptep_get |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/hugetlb.c hugetlb_no_page() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &pool->lock |
mm/hugetlb.c hugetlb_pte_stable() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 1 | b | $4 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &pool->lock |
mm/hugetlb.c hugetlb_wp() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 1 | b | r huge_ptep_get |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | vmf->ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &pool->lock |
mm/hugetlb.c hugetlb_wp() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 1 | b | r huge_ptep_get |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | vmf->ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &pool->lock |
mm/mremap.c folio_pte_batch_flags() -> pte_same()
| Type | Parameter | Key | Value |
|---|
mm/ksm.c replace_page() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 1 | b | $3 |
| LOCK2 | &mm->mmap_lock | ||
| LOCK2 | global &ksm_thread_mutex | ||
| LOCK2 | ptl | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/vmscan.c folio_pte_batch_flags() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | ptl | ||
| HALF_LOCKED2 | rcu_read |
mm/memory.c __wp_page_copy_user() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | vmf->ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/memory.c can_swapin_thp() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | a | r ptep_get |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/memory.c do_numa_page() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | a | 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_numa_page() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | vmf->ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &pool->lock |
mm/memory.c do_swap_page() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | vmf->ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/memory.c do_swap_page() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | vmf->ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/memory.c do_swap_page() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | vmf->ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/memory.c do_swap_page() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | a | r ptep_get |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | vmf->ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/memory.c do_uffd_rwp() -> pte_same()
| 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 finish_mkwrite_fault() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | vmf->ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/memory.c folio_pte_batch_flags() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| 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 handle_pte_fault() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| BIT_INFO | 1 | b | 0x0,0x7fffffffffffffff |
| BIT_INFO | 1 | b | 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 pte_marker_clear() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | vmf->ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/memory.c remove_device_exclusive_entry() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | vmf->ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/memory.c swap_pte_batch() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | a | r ptep_get |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | ptl | ||
| HALF_LOCKED2 | vmf->ptl |
mm/memory.c vmf_pte_changed() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | vmf->ptl |
mm/memory.c wp_page_copy() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | vmf->ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/gup.c follow_pfn_pte() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | a | r ptep_get |
| DATA_SOURCE | 1 | b | r pte_mkyoung |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/debug_vm_pgtable.c pte_basic_tests() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | a | r pfn_pte |
| DATA_SOURCE | 1 | b | r pfn_pte |
arch/x86/mm/pgtable.c ptep_set_access_flags() -> pte_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 1 | b | $3 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | rcu_read | ||
| HALF_LOCKED2 | vmf->ptl |