Documented in 1 files:

Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 9 files:

Smatch caller information:

mm/pagewalk.c folio_walk_start() -> vm_normal_page()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
PARAM_VALUE 0 vma->vm_end 1-u64max
PARAM_VALUE 0 vma->vm_mm 4096-ptr_max
PARAM_VALUE 0 vma->vm_mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vma->vm_mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 1 addr 0,4096-18446744073709551614
CAPPED_DATA 0 vma->vm_end 1
CAPPED_DATA 0 vma->vm_start 1
CAPPED_DATA 1 addr 1
CAPPED_DATA 1 addr 1
DATA_SOURCE 0 vma $1
DATA_SOURCE 1 addr $2
DATA_SOURCE 2 pte r ptep_get
PARAM_COMPARE 0 vma->vm_end > $0->vm_start
PARAM_COMPARE 1 addr < $0->vm_end
PARAM_COMPARE 1 addr < $0->vm_end
PARAM_COMPARE 1 addr >= $0->vm_start
PARAM_COMPARE 1 addr >= $0->vm_start
BIT_INFO 1 addr 0x0,0xfffffffffffff000
BIT_INFO 1 addr 0x0,0xfffffffffffff000
NOSPEC 0 vma->vm_pgoff
NOSPEC 0 vma->vm_start
NOSPEC 1 addr
NOSPEC 1 addr
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 vma->shared.rb_subtree_last 0-u64max[u]
USER_DATA 0 vma->vm_pgoff 0-4503599627370495[c]
USER_DATA 0 vma->vm_start 0-s32max,9223372036854775807[c]
USER_DATA 1 addr 0[c]
NO_OVERFLOW_SIMPLE 0 vma->vm_end
NO_OVERFLOW_SIMPLE 0 vma->vm_pgoff
UNITS 1 addr unit_byte
LOCK2 ptl
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &split_debug_mutex
HALF_LOCKED2 global &ksm_thread_mutex

fs/proc/task_mmu.c can_gather_numa_stats() -> vm_normal_page()

Type Parameter Key Value
PARAM_VALUE 0 vma 0,4096-ptr_max
DATA_SOURCE 0 vma $1
DATA_SOURCE 1 addr $2
DATA_SOURCE 2 pte $0
NOSPEC 1 addr
NOSPEC 1 addr
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 addr 0-u64max[c]
NO_OVERFLOW_SIMPLE 0 vma->vm_end
NO_OVERFLOW_SIMPLE 0 vma->vm_start
LOCK2 ptl
HALF_LOCKED2 &mm->mmap_lock

fs/proc/task_mmu.c pagemap_page_category() -> vm_normal_page()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
PARAM_VALUE 1 addr 1-u64max
DATA_SOURCE 0 vma $1
DATA_SOURCE 1 addr $2
DATA_SOURCE 2 pte $3
NOSPEC 1 addr
NOSPEC 1 addr
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 addr 1-u64max[c]
NO_OVERFLOW_SIMPLE 0 vma->vm_end
NO_OVERFLOW_SIMPLE 0 vma->vm_start
UNITS 1 addr unit_byte
LOCK2 ptl
HALF_LOCKED2 &mm->mmap_lock

fs/proc/task_mmu.c pte_to_pagemap_entry() -> vm_normal_page()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
DATA_SOURCE 0 vma $1
DATA_SOURCE 1 addr $2
DATA_SOURCE 2 pte $3
NOSPEC 1 addr
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 vma->vm_end
NO_OVERFLOW_SIMPLE 0 vma->vm_start
LOCK2 ptl
HALF_LOCKED2 &mm->mmap_lock

fs/proc/task_mmu.c smaps_pte_entry() -> vm_normal_page()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
PARAM_VALUE 1 addr 1-u64max
DATA_SOURCE 1 addr $1
DATA_SOURCE 2 pte r ptep_get
NOSPEC 1 addr
NOSPEC 1 addr
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 addr 1-u64max[c]
NO_OVERFLOW_SIMPLE 0 vma->vm_end
NO_OVERFLOW_SIMPLE 0 vma->vm_start
LOCK2 ptl
HALF_LOCKED2 &mm->mmap_lock

mm/mprotect.c can_change_private_pte_writable() -> vm_normal_page()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
PARAM_VALUE 0 vma->flags.__vma_flags 4096-ptr_max
BUF_SIZE 0 vma (-1),4,24,64,168-s32max
BUF_SIZE 0 vma (-1),4,24,64,168-s32max
CAPPED_DATA 0 vma 1
DATA_SOURCE 0 vma $0
DATA_SOURCE 1 addr $1
DATA_SOURCE 2 pte $2
NOSPEC 1 addr
NOSPEC 1 addr
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 addr 0,4096-u64max
NO_OVERFLOW_SIMPLE 0 vma->vm_file->f_mapping->host->i_bytes
NO_OVERFLOW_SIMPLE 0 vma->vm_pgoff
UNITS 1 addr unit_byte
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 rcu_read
HALF_LOCKED2 vmf->ptl

mm/mprotect.c change_pte_range() -> vm_normal_page()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
PARAM_VALUE 0 vma->flags.__vma_flags 4096-ptr_max
PARAM_VALUE 0 vma->vm_file->f_mapping->i_mmap_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vma->vm_file->f_mapping->i_mmap_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 vma->vm_mm 4096-ptr_max
PARAM_VALUE 0 vma->vm_mm->iommu_mm->pasid 0-4294967295
PARAM_VALUE 0 vma->vm_mm->notifier_subscriptions->has_itree 0-1
PARAM_VALUE 0 vma->vm_mm->tlb_flush_batched.counter 0-s32max
DATA_SOURCE 0 vma $1
DATA_SOURCE 1 addr $3
DATA_SOURCE 2 pte r ptep_get
NOSPEC 0 vma->vm_start
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 vma->vm_start 1-u64max[c]
USER_DATA 1 addr 0-u64max[c]
NO_OVERFLOW_SIMPLE 0 vma->vm_end
NO_OVERFLOW_SIMPLE 0 vma->vm_file->f_mapping->host->i_size
NO_OVERFLOW_SIMPLE 0 vma->vm_start
UNITS 1 addr unit_byte
LOCK2 ptl
HALF_LOCKED2 &dst_mm->mmap_lock
HALF_LOCKED2 &mm->mmap_lock

mm/ksm.c ksm_next_page_pmd_entry() -> vm_normal_page()

Type Parameter Key Value
PARAM_VALUE 0 vma 0,4096-ptr_max
DATA_SOURCE 1 addr $1 [m]
DATA_SOURCE 2 pte r ptep_get
NOSPEC 1 addr
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 vma->vm_end
NO_OVERFLOW_SIMPLE 0 vma->vm_start
LOCK2 ptl
HALF_LOCKED2 &mm->mmap_lock

mm/migrate_device.c migrate_vma_collect_pmd() -> vm_normal_page()

Type Parameter Key Value
DATA_SOURCE 2 pte r ptep_get
NOSPEC 1 addr
RX_PATH
TASK_NOT_RUNNING
UNITS 1 addr unit_byte
LOCK2 ptl
HALF_LOCKED2 &mm->mmap_lock

mm/memory.c copy_present_ptes() -> vm_normal_page()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
PARAM_VALUE 0 vma->anon_name 0,4096-ptr_max
PARAM_VALUE 0 vma->flags.__vma_flags 4096-ptr_max
PARAM_VALUE 0 vma->pfnmap_track_ctx 0,4096-ptr_max
PARAM_VALUE 0 vma->vm_mm 4096-ptr_max
PARAM_VALUE 0 vma->vm_mm->iommu_mm->pasid 0-4294967295
PARAM_VALUE 0 vma->vm_mm->notifier_subscriptions->has_itree 0-1
PARAM_VALUE 0 vma->vm_ops->open 0,4096-ptr_max
CAPPED_DATA 0 vma->vm_policy 1
DATA_SOURCE 0 vma $1
DATA_SOURCE 1 addr $5
DATA_SOURCE 2 pte $4
RX_PATH
TASK_NOT_RUNNING
UNITS 1 addr unit_byte
LOCK2 &mm->mmap_lock
LOCK2 &oldmm->mmap_lock
LOCK2 dst_ptl
LOCK2 rcu_read
LOCK2 src_ptl
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/memory.c do_wp_page() -> vm_normal_page()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
PARAM_VALUE 1 addr 0,4096-u64max
BUF_SIZE 0 vma (-1),1-s32max
BUF_SIZE 0 vma (-1),1-s32max
NOSPEC 1 addr
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 addr 0,4096-u64max[c]
UNITS 1 addr unit_byte
LOCK2 vmf->ptl
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 rcu_read

mm/memory.c vm_normal_folio() -> vm_normal_page()

Type Parameter Key Value
PARAM_VALUE 0 vma 0,4096-ptr_max
PARAM_VALUE 0 vma->vm_file->f_mapping->i_mmap_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vma->vm_file->f_mapping->i_mmap_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 vma->vm_mm->vma_writer_wait.task->sched_class->uclamp_enabled 0-1
BUF_SIZE 0 vma (-1),1-s32max
BUF_SIZE 0 vma (-1),1-s32max
CAPPED_DATA 0 vma 1
DATA_SOURCE 0 vma $0
DATA_SOURCE 1 addr $1
DATA_SOURCE 2 pte $2
NOSPEC 1 addr
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 addr 0-u64max[c]
NO_OVERFLOW_SIMPLE 0 vma->vm_end
NO_OVERFLOW_SIMPLE 0 vma->vm_start
UNITS 1 addr unit_byte
HALF_LOCKED2 &ctx->map_changing_lock
HALF_LOCKED2 ptl
HALF_LOCKED2 rcu_read
HALF_LOCKED2 src_ptl
HALF_LOCKED2 vmf->ptl

mm/memory.c zap_present_ptes() -> vm_normal_page()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
PARAM_VALUE 0 vma->flags.__vma_flags 4096-ptr_max
PARAM_VALUE 0 vma->vm_file->f_cred->process_keyring->user->qnbytes s32min-s32max
PARAM_VALUE 0 vma->vm_file->f_cred->process_keyring->user->qnkeys s32min-s32max
PARAM_VALUE 0 vma->vm_file->f_cred->request_key_auth->user->qnbytes s32min-s32max
PARAM_VALUE 0 vma->vm_file->f_cred->request_key_auth->user->qnkeys s32min-s32max
PARAM_VALUE 0 vma->vm_file->f_cred->session_keyring->user->qnbytes s32min-s32max
PARAM_VALUE 0 vma->vm_file->f_cred->session_keyring->user->qnkeys s32min-s32max
PARAM_VALUE 0 vma->vm_file->f_cred->thread_keyring->user->qnbytes s32min-s32max
PARAM_VALUE 0 vma->vm_file->f_cred->thread_keyring->user->qnkeys s32min-s32max
PARAM_VALUE 0 vma->vm_file->f_inode->i_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vma->vm_file->f_inode->i_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 vma->vm_file->f_inode->i_wb->dwork.wq->dfl_pwq 0-s64max
PARAM_VALUE 0 vma->vm_file->f_inode->i_wb->dwork.wq->saved_max_active s32min-s32max
PARAM_VALUE 0 vma->vm_file->f_inode->i_wb->dwork.wq->saved_min_active s32min-s32max
PARAM_VALUE 0 vma->vm_file->f_mapping->i_mmap_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vma->vm_file->f_mapping->i_mmap_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 vma->vm_mm 4096-ptr_max
PARAM_VALUE 0 vma->vm_mm->iommu_mm->pasid 0-4294967295
PARAM_VALUE 0 vma->vm_mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vma->vm_mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 0 vma->vm_mm->notifier_subscriptions->active_invalidate_ranges 0-s64max
PARAM_VALUE 0 vma->vm_mm->notifier_subscriptions->has_itree 0-1
PARAM_VALUE 0 vma->vm_mm->notifier_subscriptions->invalidate_seq 0-s64max
PARAM_VALUE 0 vma->vm_mm->vma_writer_wait.task->sched_class->uclamp_enabled 0-1
PARAM_VALUE 0 vma->vm_ops->access 0,4096-ptr_max
PARAM_VALUE 0 vma->vm_ops->close 0,4096-ptr_max
PARAM_VALUE 0 vma->vm_ops->fault 0,4096-ptr_max
PARAM_VALUE 0 vma->vm_ops->find_normal_page 0,7701293790578647040
PARAM_VALUE 0 vma->vm_ops->get_policy 0,4616414333962629120,4828607683292463104,8976238440117981184
PARAM_VALUE 0 vma->vm_ops->huge_fault 0,4096-ptr_max
PARAM_VALUE 0 vma->vm_ops->map_pages 0,3176874211750576128,5698041470598119424
PARAM_VALUE 0 vma->vm_ops->mapped 0,2789832010611625984,3142991724353884160,4592370608720261120,7407017443569868800
PARAM_VALUE 0 vma->vm_ops->may_split 0,4096-ptr_max
PARAM_VALUE 0 vma->vm_ops->mprotect 0,1325936775103746048
PARAM_VALUE 0 vma->vm_ops->mremap 0,3413040981811294208,4989069621795885056,4994350079563595776,5833245582275645440,6365626294419795968
PARAM_VALUE 0 vma->vm_ops->name 0,4895095206942478336,8589198899344281600
PARAM_VALUE 0 vma->vm_ops->open 0,4096-ptr_max
PARAM_VALUE 0 vma->vm_ops->page_mkwrite 0,4096-ptr_max
PARAM_VALUE 0 vma->vm_ops->pagesize 0,1990568509668610048,3507690403222872064,7130740471179698176
PARAM_VALUE 0 vma->vm_ops->pfn_mkwrite 0,4096-ptr_max
PARAM_VALUE 0 vma->vm_ops->set_policy 0,1009606358897582080,5296408793753837568,9131342062321688576
PARAM_VALUE 0 vma->vm_ops->uffd_ops 0,2881150691235323904,7418773112577396736
PARAM_VALUE 0 vma->vm_userfaultfd_ctx.ctx->map_changing_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vma->vm_userfaultfd_ctx.ctx->map_changing_lock.first_waiter->type 0-1
BUF_SIZE 0 vma (-1),1-s32max
BUF_SIZE 0 vma (-1),1-s32max
BUF_SIZE 0 vma->vm_mm (-1),1-s32max
BUF_SIZE 0 vma->vm_ops (-1),144
BUF_SIZE 0 vma->vm_private_data s32min-(-1),1-s32max
DATA_SOURCE 0 vma $1
DATA_SOURCE 1 addr $5
DATA_SOURCE 2 pte $3
NOSPEC 0 vma->vm_end
NOSPEC 0 vma->vm_pgoff
NOSPEC 0 vma->vm_start
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 vma->pfnmap_track_ctx->pfn 0-9007201402224637[c]
USER_DATA 0 vma->pfnmap_track_ctx->size 0,4096-u64max[c]
USER_DATA 0 vma->shared.rb_subtree_last 0-u64max[u]
USER_DATA 0 vma->vm_end 0-u64max
USER_DATA 0 vma->vm_pgoff 0-9007201402224637[c]
USER_DATA 0 vma->vm_start 0-u64max
USER_DATA 1 addr 0-u64max
NO_OVERFLOW_SIMPLE 0 vma->vm_file->f_mapping->host->i_size
NO_OVERFLOW_SIMPLE 0 vma->vm_policy->mode
UNITS 0 vma unit_byte
UNITS 1 addr unit_byte
LOCK2 ptl
HALF_LOCKED2 &mm->mmap_lock

mm/gup.c follow_page_pte() -> vm_normal_page()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
PARAM_VALUE 0 vma->vm_file->f_inode->i_mapping->invalidate_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vma->vm_file->f_inode->i_mapping->invalidate_lock.first_waiter->type 0-1
PARAM_VALUE 0 vma->vm_file->f_mapping->host->i_sb->s_export_op->fh_to_dentry 0,8684,447817974243774464,687732489194512384,742201802719268864,868497899885588480,1471448175530500096,2021658383390310400,2445877819203563520,2512819722689847296,2649270699546726400,2761259683714371584,2893332316235677696-s64max
PARAM_VALUE 0 vma->vm_file->f_mapping->i_mmap_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vma->vm_file->f_mapping->i_mmap_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 vma->vm_file->f_mapping->invalidate_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vma->vm_file->f_mapping->invalidate_lock.first_waiter->type 0-1
PARAM_VALUE 0 vma->vm_mm 4096-ptr_max
PARAM_VALUE 0 vma->vm_mm->iommu_mm->pasid 0-4294967295
PARAM_VALUE 0 vma->vm_mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vma->vm_mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 0 vma->vm_mm->vma_writer_wait.task->delays->blkio_count 0-4294967295
PARAM_VALUE 0 vma->vm_mm->vma_writer_wait.task->sched_task_group->parent 0-s64max
PARAM_VALUE 0 vma->vm_private_data->rw_sema->wait_lock.owner (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 vma->vm_private_data->rw_sema.dep_map->name 0-255
PARAM_VALUE 0 vma->vm_private_data->rw_sema.first_waiter->handoff_set 1
PARAM_VALUE 0 vma->vm_private_data->rw_sema.first_waiter->list.next 2212933610777083904
PARAM_VALUE 0 vma->vm_private_data->rw_sema.first_waiter->list.prev 2212933610777083904
PARAM_VALUE 0 vma->vm_private_data->rw_sema.first_waiter->type 0-1
DATA_SOURCE 0 vma $0
DATA_SOURCE 1 addr $1
DATA_SOURCE 2 pte r ptep_get
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 addr 0-u64max[c]
NO_OVERFLOW_SIMPLE 0 vma->vm_file->f_mapping->host->i_size
UNITS 1 addr unit_byte
LOCK2 ptl
HALF_LOCKED2 &mm->mmap_lock

mm/gup.c get_gate_page() -> vm_normal_page()

Type Parameter Key Value
PARAM_VALUE 0 vma 0,7164240051227820032
PARAM_VALUE 1 addr 0,4096-18446744073709547520
BUF_SIZE 0 vma (-1),256
CAPPED_DATA 1 addr 1
CAPPED_DATA 1 addr 1
DATA_SOURCE 0 vma r get_gate_vma
DATA_SOURCE 1 addr $1
DATA_SOURCE 2 pte r ptep_get
BIT_INFO 1 addr 0x0,0xfffffffffffff000
BIT_INFO 1 addr 0x0,0xfffffffffffff000
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 addr 0,4096-18446744073709547520[c]
LOCK2 rcu_read
HALF_LOCKED2 &mm->mmap_lock

mm/hmm.c hmm_vma_handle_pte() -> vm_normal_page()

Type Parameter Key Value
PARAM_VALUE 0 vma 0,4096-ptr_max
PARAM_VALUE 0 vma->flags.__vma_flags 4096-ptr_max
PARAM_VALUE 0 vma->vm_file->f_mapping->i_mmap_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 vma->vm_file->f_mapping->i_mmap_rwsem.first_waiter->type 0-1
CAPPED_DATA 0 vma 1
DATA_SOURCE 1 addr $1
DATA_SOURCE 2 pte r ptep_get
NOSPEC 1 addr
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 vma->vm_end
NO_OVERFLOW_SIMPLE 0 vma->vm_start
UNITS 1 addr unit_byte
LOCK2 rcu_read
HALF_LOCKED2 &mm->mmap_lock

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

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
PARAM_VALUE 0 vma->vm_end 2097152-u64max
PARAM_VALUE 0 vma->vm_file 4096-ptr_max
PARAM_VALUE 0 vma->vm_start 0
PARAM_VALUE 1 addr 0,4096-u64max
DATA_SOURCE 0 vma r vma_lookup
DATA_SOURCE 1 addr $1 [m]
DATA_SOURCE 2 pte r ptep_get
PARAM_COMPARE 1 addr >= $0->vm_start
PARAM_COMPARE 1 addr >= $0->vm_start
NOSPEC 1 addr
NOSPEC 1 addr
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 addr 0,4096[c]
UNITS 1 addr unit_byte
LOCK2 ptl
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &mm->mmap_lock

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

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
PARAM_VALUE 0 vma->vm_end 2097152-u64max
PARAM_VALUE 0 vma->vm_file 4096-ptr_max
PARAM_VALUE 0 vma->vm_start 0
DATA_SOURCE 0 vma r vma_lookup
DATA_SOURCE 1 addr $1 [m]
DATA_SOURCE 2 pte r ptep_get
PARAM_COMPARE 1 addr == $0->vm_start
PARAM_COMPARE 1 addr == $0->vm_start
NOSPEC 1 addr
NOSPEC 1 addr
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 addr 0-8796093018112[c]
UNITS 1 addr unit_byte
LOCK2 rcu_read
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 ptl