Defined in 2 files as a function:
- include/linux/page_table_check.h, line 49 (as a function)
- include/linux/page_table_check.h, line 124 (as a function)
Referenced in 9 files:
- arch/alpha/include/asm/pgtable.h, line 297
- arch/arm64/include/asm/pgtable.h, line 1362
- arch/powerpc/include/asm/book3s/32/pgtable.h, line 317
- arch/powerpc/include/asm/book3s/64/pgtable.h
- arch/powerpc/include/asm/nohash/pgtable.h, line 129
- arch/riscv/include/asm/pgtable.h, line 679
- arch/s390/include/asm/pgtable.h
- arch/x86/include/asm/pgtable.h
- include/linux/pgtable.h
Smatch caller information:
mm/madvise.c ptep_get_and_clear() -> page_table_check_pte_clear()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | mm | $0 |
| DATA_SOURCE | 1 | addr | $1 |
| DATA_SOURCE | 2 | pte | r native_ptep_get_and_clear |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| USER_DATA | 1 | addr | 1-18446744073709551614[c] |
| UNITS | 0 | mm | unit_byte |
| LOCK2 | ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/userfaultfd.c ptep_get_and_clear() -> page_table_check_pte_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 |
| DATA_SOURCE | 0 | mm | $0 |
| DATA_SOURCE | 1 | addr | $1 |
| DATA_SOURCE | 2 | pte | r native_ptep_get_and_clear |
| NOSPEC | 1 | addr | |
| NOSPEC | 1 | addr | |
| NOCHECK_CALL | |||
| 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 |
fs/proc/task_mmu.c ptep_get_and_clear() -> page_table_check_pte_clear()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | mm | $0 |
| DATA_SOURCE | 1 | addr | $1 |
| DATA_SOURCE | 2 | pte | r native_ptep_get_and_clear |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| 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() -> page_table_check_pte_clear()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| DATA_SOURCE | 0 | mm | $0 |
| DATA_SOURCE | 1 | addr | $1 |
| DATA_SOURCE | 2 | pte | r native_ptep_get_and_clear |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| 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 ptep_get_and_clear_full() -> page_table_check_pte_clear()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| DATA_SOURCE | 0 | mm | $0 |
| DATA_SOURCE | 1 | addr | $1 |
| DATA_SOURCE | 2 | pte | r native_local_ptep_get_and_clear |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| 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/hugetlb.c ptep_get_and_clear() -> page_table_check_pte_clear()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | addr | 0-18446744073709551614 |
| BUF_SIZE | 0 | mm | (-1),1-s32max |
| BUF_SIZE | 0 | mm | (-1),1-s32max |
| CAPPED_DATA | 1 | addr | 1 |
| CAPPED_DATA | 1 | addr | 1 |
| DATA_SOURCE | 0 | mm | $0 |
| DATA_SOURCE | 1 | addr | $1 |
| DATA_SOURCE | 2 | pte | r native_ptep_get_and_clear |
| NOSPEC | 1 | addr | |
| NOSPEC | 1 | addr | |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| USER_DATA | 1 | addr | 0-18446744073709551614[c] |
| 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 | ||
| HALF_LOCKED2 | ptl |
mm/mremap.c ptep_get_and_clear() -> page_table_check_pte_clear()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| DATA_SOURCE | 0 | mm | $0 |
| DATA_SOURCE | 1 | addr | $1 |
| DATA_SOURCE | 2 | pte | r native_ptep_get_and_clear |
| NOSPEC | 1 | addr | |
| NOSPEC | 1 | addr | |
| NOCHECK_CALL | |||
| 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/mremap.c ptep_get_and_clear_full() -> page_table_check_pte_clear()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| DATA_SOURCE | 0 | mm | $0 |
| DATA_SOURCE | 1 | addr | $1 |
| DATA_SOURCE | 2 | pte | r native_local_ptep_get_and_clear |
| NOSPEC | 1 | addr | |
| NOSPEC | 1 | addr | |
| NOCHECK_CALL | |||
| 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 ptep_get_and_clear() -> page_table_check_pte_clear()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | mm | $0 |
| DATA_SOURCE | 1 | addr | $1 |
| DATA_SOURCE | 2 | pte | r native_ptep_get_and_clear |
| NOSPEC | 1 | addr | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| LOCK2 | ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/memory.c ptep_get_and_clear() -> page_table_check_pte_clear()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | mm | $0 |
| DATA_SOURCE | 1 | addr | $1 |
| DATA_SOURCE | 2 | pte | r native_ptep_get_and_clear |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| USER_DATA | 1 | addr | 0-u64max |
| 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() -> page_table_check_pte_clear()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | mm | $0 |
| DATA_SOURCE | 1 | addr | $1 |
| DATA_SOURCE | 2 | pte | r native_local_ptep_get_and_clear |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| 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 ptep_get_and_clear() -> page_table_check_pte_clear()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 7138969414219841536 |
| DATA_SOURCE | 0 | mm | $0 |
| DATA_SOURCE | 1 | addr | $1 |
| DATA_SOURCE | 2 | pte | r native_ptep_get_and_clear |
| NOSPEC | 1 | addr | |
| NOSPEC | 1 | addr | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| USER_DATA | 1 | addr | 0-18446744073709551614[c] |
| UNITS | 1 | addr | unit_byte |
| HALF_LOCKED2 | flags | ||
| HALF_LOCKED2 | ptl |
mm/pgtable-generic.c ptep_get_and_clear() -> page_table_check_pte_clear()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | mm | $0 |
| DATA_SOURCE | 1 | addr | $1 |
| DATA_SOURCE | 2 | pte | r native_ptep_get_and_clear |
| NOSPEC | 1 | addr | |
| NOSPEC | 1 | addr | |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| 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 ptep_get_and_clear() -> page_table_check_pte_clear()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 7138969414219841536 |
| DATA_SOURCE | 0 | mm | $0 |
| DATA_SOURCE | 1 | addr | $1 |
| DATA_SOURCE | 2 | pte | r native_ptep_get_and_clear |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 1 | addr | unit_byte |
| HALF_LOCKED2 | global &pcpu_alloc_mutex |
mm/debug_vm_pgtable.c ptep_clear() -> page_table_check_pte_clear()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| DATA_SOURCE | 0 | mm | $0 |
| DATA_SOURCE | 1 | addr | $1 |
| DATA_SOURCE | 2 | pte | r ptep_get |
| NOCHECK_CALL | |||
| HALF_LOCKED2 | ptl |
mm/debug_vm_pgtable.c ptep_get_and_clear() -> page_table_check_pte_clear()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| CAPPED_DATA | 0 | mm | 1 |
| DATA_SOURCE | 0 | mm | $0 |
| DATA_SOURCE | 1 | addr | $1 |
| DATA_SOURCE | 2 | pte | r native_ptep_get_and_clear |
| NOCHECK_CALL | |||
| HALF_LOCKED2 | ptl |
mm/debug_vm_pgtable.c ptep_get_and_clear_full() -> page_table_check_pte_clear()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| DATA_SOURCE | 0 | mm | $0 |
| DATA_SOURCE | 1 | addr | $1 |
| DATA_SOURCE | 2 | pte | r native_local_ptep_get_and_clear |
| NOCHECK_CALL | |||
| HALF_LOCKED2 | ptl |
mm/khugepaged.c ptep_clear() -> page_table_check_pte_clear()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| PARAM_VALUE | 0 | mm->notifier_subscriptions->has_itree | 0-1 |
| PARAM_VALUE | 0 | mm->vma_writer_wait.task->kcov->mode | 0-4294967295 |
| PARAM_VALUE | 0 | mm->vma_writer_wait.task->kcov->remote | 0-1 |
| PARAM_VALUE | 0 | mm->vma_writer_wait.task->kcov->remote_size | 0-4294967295 |
| PARAM_VALUE | 0 | mm->vma_writer_wait.task->kcov_remote->mode | 0-4294967295 |
| PARAM_VALUE | 0 | mm->vma_writer_wait.task->kcov_remote->remote | 0-1 |
| PARAM_VALUE | 0 | mm->vma_writer_wait.task->kcov_remote->remote_size | 0-4294967295 |
| PARAM_VALUE | 0 | mm->vma_writer_wait.task->ptracer_cred->thread_keyring->user->qnkeys | s32min-s32max |
| PARAM_VALUE | 0 | mm->vma_writer_wait.task->thread_pid->attr->exit_code | s32min-s32max |
| DATA_SOURCE | 0 | mm | $0 |
| DATA_SOURCE | 1 | addr | $1 |
| DATA_SOURCE | 2 | pte | r ptep_get |
| NOSPEC | 1 | addr | |
| NOSPEC | 1 | addr | |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| USER_DATA | 1 | addr | 0-18446744073709551614[c] |
| NO_OVERFLOW_SIMPLE | 1 | addr | |
| UNITS | 0 | mm | unit_byte |
| UNITS | 1 | addr | unit_byte |
| LOCK2 | ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &vma->anon_vma->root->rwsem | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/khugepaged.c ptep_get_and_clear() -> page_table_check_pte_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 |
| DATA_SOURCE | 0 | mm | $0 |
| DATA_SOURCE | 1 | addr | $1 |
| DATA_SOURCE | 2 | pte | r native_ptep_get_and_clear |
| NOSPEC | 1 | addr | |
| NOSPEC | 1 | addr | |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| USER_DATA | 1 | addr | 0-18446744073709551614[c] |
| UNITS | 0 | mm | unit_byte |
| UNITS | 1 | addr | unit_byte |
| HALF_LOCKED2 | ptl | ||
| HALF_LOCKED2 | rcu_read | ||
| HALF_LOCKED2 | 0 | &mm->mmap_lock |
mm/khugepaged.c ptep_get_and_clear_full() -> page_table_check_pte_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 |
| DATA_SOURCE | 0 | mm | $0 |
| DATA_SOURCE | 1 | addr | $1 |
| DATA_SOURCE | 2 | pte | r native_local_ptep_get_and_clear |
| NOSPEC | 1 | addr | |
| NOSPEC | 1 | addr | |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| USER_DATA | 1 | addr | 0-18446744073709551614[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 |