Defined in 2 files as a function:
- arch/powerpc/include/asm/book3s/64/pgtable.h, line 1235 (as a function)
- include/linux/pgtable.h, line 1367 (as a function)
Referenced in 12 files:
- arch/arm/mm/fault-armv.c, line 108
- arch/powerpc/mm/book3s64/pgtable.c, line 67
- arch/s390/mm/gmap_helpers.c, line 71
- arch/x86/include/asm/pgtable.h, line 1723
- arch/x86/mm/pgtable.c, line 397
- mm/debug_vm_pgtable.c, line 196
- mm/huge_memory.c
- mm/khugepaged.c
- mm/page_vma_mapped.c
- mm/pgtable-generic.c
- mm/userfaultfd.c, line 1270
- mm/vmscan.c, line 3565
Smatch caller information:
mm/huge_memory.c change_non_present_huge_pmd() -> pmd_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/huge_memory.c do_huge_pmd_device_private() -> pmd_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &pool->lock |
mm/huge_memory.c do_huge_pmd_numa_page() -> pmd_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pmd_a | r pmdp_get |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &pool->lock |
mm/huge_memory.c do_huge_pmd_numa_page() -> pmd_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &pool->lock |
mm/huge_memory.c do_huge_pmd_uffd_rwp() -> pmd_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &pool->lock |
mm/huge_memory.c do_huge_pmd_wp_page() -> pmd_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | vmf->ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &pool->lock |
mm/huge_memory.c do_huge_pmd_wp_page() -> pmd_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | vmf->ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &pool->lock |
mm/huge_memory.c do_huge_zero_wp_pmd() -> pmd_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &pool->lock |
mm/huge_memory.c huge_pmd_set_accessed() -> pmd_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &pool->lock |
mm/huge_memory.c move_pages_huge_pmd() -> pmd_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| LOCK2 | &ctx->map_changing_lock | ||
| TYPE_LOCK | (struct userfaultfd_ctx)->map_changing_lock |
mm/huge_memory.c move_pages_huge_pmd() -> pmd_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 1 | pmd_b | $3 |
| LOCK2 | &ctx->map_changing_lock | ||
| TYPE_LOCK | (struct userfaultfd_ctx)->map_changing_lock |
arch/x86/mm/init_64.c pmd_populate_kernel_safe() -> pmd_same()
| 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 set_pmd_init() -> pmd_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 1 | pmd_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() -> pmd_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pmd_a | $5 |
| LOCK2 | &ctx->map_changing_lock | ||
| LOCK2 | rcu_read | ||
| TYPE_LOCK | (struct userfaultfd_ctx)->map_changing_lock |
mm/page_vma_mapped.c map_pte() -> pmd_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | *ptlp | ||
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | global &ksm_thread_mutex | ||
| HALF_LOCKED2 | global &mf_mutex |
mm/page_vma_mapped.c page_vma_mapped_walk() -> pmd_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | global &ksm_thread_mutex | ||
| HALF_LOCKED2 | global &mf_mutex | ||
| HALF_LOCKED2 | rcu_read |
mm/vmscan.c walk_pte_range() -> pmd_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | ptl | ||
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/pgtable-generic.c pte_offset_map_lock() -> pmd_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | ptl | ||
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &oldmm->mmap_lock | ||
| HALF_LOCKED2 | &state.ctx->map_changing_lock | ||
| HALF_LOCKED2 | &vma->anon_vma->root->rwsem | ||
| HALF_LOCKED2 | global &ksm_thread_mutex |
mm/debug_vm_pgtable.c pmd_basic_tests() -> pmd_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pmd_a | r pfn_pmd |
| DATA_SOURCE | 1 | pmd_b | r pfn_pmd |
mm/khugepaged.c try_collapse_pte_mapped_thp() -> pmd_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | ptl |
mm/khugepaged.c try_collapse_pte_mapped_thp() -> pmd_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | ptl | ||
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &mm->mmap_lock |
arch/x86/mm/pgtable.c pmdp_set_access_flags() -> pmd_same()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 1 | pmd_b | $3 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | vmf->ptl |