Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 8 files:

Smatch caller information:

mm/userfaultfd.c move_pages_ptes() -> pte_offset_map_rw_nolock()

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->page_table_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 mm->task_size 1-u64max
PARAM_VALUE 1 pmd 4096-ptr_max
PARAM_VALUE 3 pmdvalp 7700357349267267584
PARAM_VALUE 4 ptlp 5849962523399262208
CAPPED_DATA 0 mm 1
DATA_SOURCE 0 mm $0
DATA_SOURCE 1 pmd $1
DATA_SOURCE 2 addr $5
NOSPEC 2 addr
NOSPEC 2 addr
USER_DATA 2 addr 0-18446744073709551614[c]
NO_OVERFLOW_SIMPLE 2 addr
UNITS 0 mm unit_byte
UNITS 2 addr unit_byte
LOCK2 &ctx->map_changing_lock
TYPE_LOCK (struct userfaultfd_ctx)->map_changing_lock

mm/userfaultfd.c move_pages_ptes() -> pte_offset_map_rw_nolock()

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->page_table_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 mm->task_size 1-u64max
PARAM_VALUE 1 pmd 4096-ptr_max
PARAM_VALUE 2 addr 0-18446744073709551614
PARAM_VALUE 3 pmdvalp 981561455035854848
PARAM_VALUE 4 ptlp 5811571457891348480
CAPPED_DATA 0 mm 1
CAPPED_DATA 2 addr 1
CAPPED_DATA 2 addr 1
DATA_SOURCE 0 mm $0
DATA_SOURCE 1 pmd $2
DATA_SOURCE 2 addr $6
NOSPEC 2 addr
NOSPEC 2 addr
USER_DATA 2 addr 0-s32max[c]
NO_OVERFLOW_SIMPLE 2 addr
UNITS 0 mm unit_byte
UNITS 2 addr unit_byte
LOCK2 &ctx->map_changing_lock
LOCK2 rcu_read
TYPE_LOCK (struct userfaultfd_ctx)->map_changing_lock

mm/page_vma_mapped.c map_pte() -> pte_offset_map_rw_nolock()

Type Parameter Key Value
PARAM_VALUE 1 pmd 4096-ptr_max
PARAM_VALUE 3 pmdvalp 7877980675731808256
PARAM_VALUE 4 ptlp 5873571858152689664
DATA_SOURCE 3 pmdvalp $1
DATA_SOURCE 4 ptlp $2
RX_PATH
TASK_NOT_RUNNING
USER_DATA 2 addr 0-2147500031[c]
NO_OVERFLOW_SIMPLE 2 addr
UNITS 0 mm unit_byte
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 global &ksm_thread_mutex
HALF_LOCKED2 global &mf_mutex

mm/mremap.c move_ptes() -> pte_offset_map_rw_nolock()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 1 pmd 4096-ptr_max
PARAM_VALUE 3 pmdvalp 1644793104025690112
PARAM_VALUE 4 ptlp 6129150515129921536
DATA_SOURCE 1 pmd $3
USER_DATA 2 addr 0-u64max
UNITS 0 mm unit_byte
UNITS 2 addr unit_byte
LOCK2 &mm->mmap_lock
LOCK2 old_ptl
HALF_LOCKED2 &tsk->signal->exec_update_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/vmscan.c walk_pte_range() -> pte_offset_map_rw_nolock()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 1 pmd 8733173040072495104
PARAM_VALUE 2 addr 0,2097152-u64max
PARAM_VALUE 3 pmdvalp 2883594374087962624
PARAM_VALUE 4 ptlp 3901666710219608064
BUF_SIZE 0 mm s32min-(-1),1-s32max
BUF_SIZE 0 mm s32min-(-1),1-s32max
DATA_SOURCE 1 pmd $0
BIT_INFO 2 addr 0x0,0xffffffffffe00000
RX_PATH
TASK_NOT_RUNNING
USER_DATA 2 addr 0,2097152-u64max[c]
UNITS 0 mm unit_byte
HALF_LOCKED2 &mm->mmap_lock

mm/memory.c copy_pte_range() -> pte_offset_map_rw_nolock()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 1 pmd 4096-ptr_max
PARAM_VALUE 3 pmdvalp 7619673093291855872
PARAM_VALUE 4 ptlp 1812571279629410304
DATA_SOURCE 1 pmd $3
DATA_SOURCE 2 addr $4
RX_PATH
TASK_NOT_RUNNING
UNITS 0 mm unit_byte
UNITS 2 addr unit_byte
LOCK2 &mm->mmap_lock
LOCK2 &oldmm->mmap_lock
LOCK2 dst_ptl
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/memory.c handle_pte_fault() -> pte_offset_map_rw_nolock()

Type Parameter Key Value
PARAM_VALUE 1 pmd 4096-ptr_max
PARAM_VALUE 2 addr 0,4096-u64max
PARAM_VALUE 3 pmdvalp 1016101700811763712
PARAM_VALUE 4 ptlp 2900308121553498208
RX_PATH
TASK_NOT_RUNNING
USER_DATA 2 addr 0,4096-u64max[c]
UNITS 0 mm unit_byte
UNITS 2 addr unit_byte
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &pool->lock

mm/memory.c zap_pte_table_if_empty() -> pte_offset_map_rw_nolock()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 1 pmd 4096-ptr_max
PARAM_VALUE 3 pmdvalp 8375022766316937216
PARAM_VALUE 4 ptlp 314690944732213248
PARAM_VALUE 4 *ptlp 0
DATA_SOURCE 0 mm $0
DATA_SOURCE 1 pmd $1
DATA_SOURCE 2 addr $2
DATA_SOURCE 3 pmdvalp $3
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
USER_DATA 2 addr 0-u64max
UNITS 0 mm unit_byte
UNITS 2 addr unit_byte
HALF_LOCKED2 &mm->mmap_lock

mm/khugepaged.c try_collapse_pte_mapped_thp() -> pte_offset_map_rw_nolock()

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 1 pmd 4096-ptr_max
PARAM_VALUE 2 addr 0
PARAM_VALUE 3 pmdvalp 5735700619292831744
PARAM_VALUE 4 ptlp 5650294855057895424
PARAM_VALUE 4 *ptlp 4096-ptr_max
DATA_SOURCE 0 mm $0
NOSPEC 2 addr
NOSPEC 2 addr
RX_PATH
TASK_NOT_RUNNING
USER_DATA 2 addr 0[c]
UNITS 0 mm unit_byte
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 0 &mm->mmap_lock