Defined in 1 files as a macro:
Defined in 11 files as a function:
- arch/alpha/include/asm/pgtable.h, line 279 (as a function)
- arch/arm64/include/asm/pgtable.h, line 1827 (as a function)
- arch/microblaze/include/asm/pgtable.h, line 335 (as a function)
- arch/powerpc/include/asm/book3s/32/pgtable.h, line 312 (as a function)
- arch/powerpc/include/asm/book3s/64/pgtable.h, line 418 (as a function)
- arch/powerpc/include/asm/nohash/pgtable.h, line 124 (as a function)
- arch/riscv/include/asm/pgtable.h, line 668 (as a function)
- arch/s390/include/asm/pgtable.h, line 1218 (as a function)
- arch/x86/include/asm/pgtable.h, line 1239 (as a function)
- arch/xtensa/include/asm/pgtable.h, line 318 (as a function)
- include/linux/pgtable.h, line 645 (as a function)
Referenced in 14 files:
- arch/alpha/include/asm/pgtable.h, line 295
- arch/parisc/kernel/cache.c, line 808
- arch/powerpc/include/asm/book3s/64/pgtable.h, line 445
- arch/riscv/mm/hugetlbpage.c
- arch/x86/include/asm/pgtable.h, line 1261
- include/asm-generic/hugetlb.h, line 81
- include/linux/pgtable.h
- kernel/bpf/arena.c
- mm/debug_vm_pgtable.c, line 144
- mm/migrate_device.c, line 430
- mm/pgtable-generic.c, line 102
- mm/rmap.c, line 2640
- mm/userfaultfd.c
- mm/vmalloc.c, line 412
Smatch caller information:
mm/madvise.c clear_young_dirty_ptes() -> ptep_get_and_clear()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 2 | ptep | 4096-u64max |
| DATA_SOURCE | 1 | addr | $1 [m] |
| DATA_SOURCE | 2 | ptep | $2 [m] |
| NOSPEC | 1 | addr | |
| NOSPEC | 1 | addr | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 1 | addr | 1-u64max[c] |
| UNITS | 0 | mm | unit_byte |
| LOCK2 | ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/userfaultfd.c move_present_ptes() -> ptep_get_and_clear()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| PARAM_VALUE | 0 | mm->mm_users.counter | 0-s32max |
| PARAM_VALUE | 0 | mm->mmap_lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->list.next | 2212933610777083904 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->list.prev | 2212933610777083904 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->type | 0-1 |
| PARAM_VALUE | 0 | mm->notifier_subscriptions->has_itree | 0-1 |
| PARAM_VALUE | 0 | mm->page_table_lock.rlock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | mm->task_size | 1-u64max |
| PARAM_VALUE | 2 | ptep | 4096-u64max |
| CAPPED_DATA | 0 | mm | 1 |
| DATA_SOURCE | 0 | mm | $0 |
| DATA_SOURCE | 1 | addr | $4 [m] |
| DATA_SOURCE | 2 | ptep | $6 [m] |
| NOSPEC | 1 | addr | |
| NOSPEC | 1 | addr | |
| USER_DATA | 1 | addr | 0-2147487743[c] |
| NO_OVERFLOW_SIMPLE | 1 | addr | |
| UNITS | 0 | mm | unit_byte |
| UNITS | 1 | addr | unit_byte |
| LOCK2 | &ctx->map_changing_lock | ||
| LOCK2 | rcu_read | ||
| TYPE_LOCK | (struct userfaultfd_ctx)->map_changing_lock |
mm/userfaultfd.c move_swap_pte() -> ptep_get_and_clear()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| PARAM_VALUE | 0 | mm->mm_users.counter | 0-s32max |
| PARAM_VALUE | 0 | mm->mmap_lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->list.next | 2212933610777083904 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->list.prev | 2212933610777083904 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->type | 0-1 |
| PARAM_VALUE | 0 | mm->notifier_subscriptions->has_itree | 0-1 |
| PARAM_VALUE | 0 | mm->page_table_lock.rlock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | mm->task_size | 1-u64max |
| PARAM_VALUE | 1 | addr | 0-18446744073709551614 |
| PARAM_VALUE | 2 | ptep | 4096-ptr_max |
| CAPPED_DATA | 0 | mm | 1 |
| CAPPED_DATA | 1 | addr | 1 |
| CAPPED_DATA | 1 | addr | 1 |
| DATA_SOURCE | 0 | mm | $0 |
| DATA_SOURCE | 1 | addr | $3 |
| DATA_SOURCE | 2 | ptep | $5 |
| NOSPEC | 1 | addr | |
| NOSPEC | 1 | addr | |
| USER_DATA | 1 | addr | 0-s32max[c] |
| NO_OVERFLOW_SIMPLE | 1 | addr | |
| UNITS | 0 | mm | unit_byte |
| UNITS | 1 | addr | unit_byte |
| LOCK2 | &ctx->map_changing_lock | ||
| LOCK2 | rcu_read | ||
| TYPE_LOCK | (struct userfaultfd_ctx)->map_changing_lock |
fs/proc/task_mmu.c huge_ptep_get_and_clear() -> ptep_get_and_clear()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 2 | ptep | 4096-ptr_max |
| DATA_SOURCE | 0 | mm | $0 |
| DATA_SOURCE | 1 | addr | $1 |
| DATA_SOURCE | 2 | ptep | $2 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 1 | addr | 0-18446744073709551614[c] |
| UNITS | 0 | mm | unit_byte |
| LOCK2 | &vma->vm_file->f_mapping->i_mmap_rwsem | ||
| LOCK2 | ptl | ||
| TYPE_LOCK | (struct address_space)->i_mmap_rwsem |
mm/rmap.c ptep_get_and_clear_full() -> ptep_get_and_clear()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| PARAM_VALUE | 2 | ptep | 4096-u64max |
| DATA_SOURCE | 0 | mm | $0 |
| DATA_SOURCE | 1 | addr | $1 |
| DATA_SOURCE | 2 | ptep | $2 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NO_OVERFLOW_SIMPLE | 1 | addr | |
| UNITS | 0 | mm | unit_byte |
| UNITS | 1 | addr | unit_byte |
| HALF_LOCKED2 | &anon_vma->root->rwsem | ||
| HALF_LOCKED2 | &folio->private->lock |
mm/rmap.c try_to_migrate_one() -> ptep_get_and_clear()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| PARAM_VALUE | 2 | ptep | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| UNITS | 1 | addr | unit_byte |
| 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/hugetlb.c huge_ptep_get_and_clear() -> ptep_get_and_clear()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | addr | 0-18446744073709551614 |
| PARAM_VALUE | 2 | ptep | 4096-ptr_max |
| BUF_SIZE | 0 | mm | (-1),1-s32max |
| BUF_SIZE | 0 | mm | (-1),1-s32max |
| CAPPED_DATA | 1 | addr | 1 |
| CAPPED_DATA | 1 | addr | 1 |
| CAPPED_DATA | 2 | ptep | 1 |
| DATA_SOURCE | 0 | mm | $0 |
| DATA_SOURCE | 1 | addr | $1 |
| DATA_SOURCE | 2 | ptep | $2 |
| NOSPEC | 1 | addr | |
| NOSPEC | 1 | addr | |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 1 | addr | 0-18446744073709551614[c] |
| NO_OVERFLOW_SIMPLE | 1 | addr | |
| UNITS | 0 | mm | unit_byte |
| UNITS | 1 | addr | unit_byte |
| HALF_LOCKED2 | &mapping->i_mmap_rwsem | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &vma->vm_file->f_mapping->i_mmap_rwsem |
mm/mremap.c ptep_get_and_clear_full() -> ptep_get_and_clear()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| PARAM_VALUE | 2 | ptep | 4096-u64max |
| DATA_SOURCE | 0 | mm | $0 |
| DATA_SOURCE | 1 | addr | $1 |
| DATA_SOURCE | 2 | ptep | $2 |
| NOSPEC | 1 | addr | |
| NOSPEC | 1 | addr | |
| USER_DATA | 1 | addr | 0-2147491839[c] |
| UNITS | 0 | mm | unit_byte |
| UNITS | 1 | addr | unit_byte |
| 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/migrate_device.c migrate_vma_collect_pmd() -> ptep_get_and_clear()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 2 | ptep | 4097-ptr_max |
| NOSPEC | 1 | addr | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| UNITS | 1 | addr | unit_byte |
| LOCK2 | ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/memory.c ptep_get_and_clear_full() -> ptep_get_and_clear()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | mm | $0 |
| DATA_SOURCE | 1 | addr | $1 |
| DATA_SOURCE | 2 | ptep | $2 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 1 | addr | 0-u64max |
| UNITS | 0 | mm | unit_byte |
| UNITS | 1 | addr | unit_byte |
| LOCK2 | ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock |
kernel/bpf/arena.c apply_range_clear_cb() -> ptep_get_and_clear()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 7138969414219841536 |
| PARAM_VALUE | 2 | ptep | 4096-u64max |
| DATA_SOURCE | 1 | addr | $1 |
| DATA_SOURCE | 2 | ptep | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 1 | addr | 0-u64max[c] |
| UNITS | 1 | addr | unit_byte |
| HALF_LOCKED2 | flags | ||
| HALF_LOCKED2 | ptl |
kernel/bpf/arena.c apply_range_set_cb() -> ptep_get_and_clear()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 7138969414219841536 |
| PARAM_VALUE | 2 | ptep | 4096-ptr_max |
| DATA_SOURCE | 1 | addr | $1 |
| DATA_SOURCE | 2 | ptep | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| USER_DATA | 1 | addr | 0-u64max[c] |
| UNITS | 1 | addr | unit_byte |
| HALF_LOCKED2 | flags | ||
| HALF_LOCKED2 | ptl |
mm/pgtable-generic.c ptep_clear_flush() -> ptep_get_and_clear()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 2 | ptep | 4096-ptr_max |
| DATA_SOURCE | 1 | addr | $1 |
| DATA_SOURCE | 2 | ptep | $2 |
| NOSPEC | 1 | addr | |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 1 | addr | 0-u64max[c] |
| UNITS | 0 | mm | unit_byte |
| UNITS | 1 | addr | unit_byte |
| HALF_LOCKED2 | &ctx->map_changing_lock | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | global &ksm_thread_mutex | ||
| HALF_LOCKED2 | ptl | ||
| HALF_LOCKED2 | rcu_read | ||
| HALF_LOCKED2 | vmf->ptl |
mm/vmalloc.c huge_ptep_get_and_clear() -> ptep_get_and_clear()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 7138969414219841536 |
| DATA_SOURCE | 0 | mm | $0 |
| DATA_SOURCE | 1 | addr | $1 |
| DATA_SOURCE | 2 | ptep | $2 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 1 | addr | unit_byte |
| HALF_LOCKED2 | global &pcpu_alloc_mutex |
mm/vmalloc.c vunmap_pte_range() -> ptep_get_and_clear()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 7138969414219841536 |
| DATA_SOURCE | 1 | addr | $1 [m] |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 1 | addr | unit_byte |
mm/debug_vm_pgtable.c pte_advanced_tests() -> ptep_get_and_clear()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| PARAM_VALUE | 2 | ptep | 4096-ptr_max |
| NOCHECK_CALL | |||
| HALF_LOCKED2 | ptl |
mm/debug_vm_pgtable.c ptep_get_and_clear_full() -> ptep_get_and_clear()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| PARAM_VALUE | 2 | ptep | 4096-ptr_max |
| DATA_SOURCE | 0 | mm | $0 |
| DATA_SOURCE | 1 | addr | $1 |
| DATA_SOURCE | 2 | ptep | $2 |
| HALF_LOCKED2 | ptl |
mm/khugepaged.c ptep_get_and_clear_full() -> ptep_get_and_clear()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->type | 0-1 |
| PARAM_VALUE | 0 | mm->notifier_subscriptions->has_itree | 0-1 |
| PARAM_VALUE | 2 | ptep | 4096-u64max |
| DATA_SOURCE | 0 | mm | $0 |
| DATA_SOURCE | 1 | addr | $1 |
| DATA_SOURCE | 2 | ptep | $2 |
| NOSPEC | 1 | addr | |
| NOSPEC | 1 | addr | |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 1 | addr | 0-18446744073709551614[c] |
| USER_DATA | 2 | ptep | 4096-ptr_max[c] |
| UNITS | 0 | mm | unit_byte |
| UNITS | 1 | addr | unit_byte |
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | ptl | ||
| HALF_LOCKED2 | rcu_read | ||
| HALF_LOCKED2 | 0 | &mm->mmap_lock |