Defined in 1 files as a prototype:
Defined in 1 files as a function:
Referenced in 8 files:
- arch/arm/mm/fault-armv.c, line 98
- arch/s390/mm/gmap_helpers.c, line 66
- mm/khugepaged.c, line 1997
- mm/memory.c
- mm/mremap.c, line 253
- mm/page_vma_mapped.c, line 39
- mm/userfaultfd.c
- mm/vmscan.c, line 3556
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 |