Defined in 1 files as a prototype:
Defined in 2 files as a function:
- include/linux/mmap_lock.h, line 69 (as a function)
- tools/testing/vma/include/stubs.h, line 130 (as a function)
Referenced in 19 files:
- arch/riscv/include/asm/uaccess.h, line 38
- arch/s390/mm/gmap_helpers.c
- arch/x86/include/asm/uaccess_64.h, line 45
- drivers/gpu/drm/drm_gpusvm.c, line 788
- drivers/gpu/drm/drm_pagemap.c, line 641
- include/linux/mm.h
- include/linux/mmap_lock.h
- include/linux/uaccess.h, line 32
- kernel/trace/trace_events_user.c, line 562
- mm/gup.c
- mm/hmm.c, line 700
- mm/khugepaged.c
- mm/ksm.c, line 3472
- mm/mmap.c
- mm/nommu.c, line 631
- mm/pagewalk.c
- mm/rmap.c
- mm/userfaultfd.c
- tools/testing/vma/include/dup.h, line 1433
Smatch caller information:
mm/madvise.c __untagged_addr_remote() -> mmap_assert_locked()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | mm | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
kernel/trace/trace_events_user.c user_event_enabler_write() -> mmap_assert_locked()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| 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 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| LOCK2 | 0 | &mm->mmap_lock | |
| HALF_LOCKED2 | &group->reg_mutex | ||
| HALF_LOCKED2 | global &event_mutex | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/pagewalk.c folio_walk_start() -> mmap_assert_locked()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->type | 0-1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &split_debug_mutex | ||
| HALF_LOCKED2 | global &ksm_thread_mutex |
mm/pagewalk.c process_mm_walk_lock() -> mmap_assert_locked()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 1-u64max |
| BUF_SIZE | 0 | mm | s32min-(-1),1-s32max |
| BUF_SIZE | 0 | mm | s32min-(-1),1-s32max |
| DATA_SOURCE | 0 | mm | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &m->lock |
mm/pagewalk.c walk_kernel_page_table_range() -> mmap_assert_locked()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 7138969414219841536 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | global &init_mm.mmap_lock | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/mmap.c find_vma() -> mmap_assert_locked()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->type | 0-1 |
| BUF_SIZE | 0 | mm | s32min-(-1),1-s32max |
| BUF_SIZE | 0 | mm | s32min-(-1),1-s32max |
| DATA_SOURCE | 0 | mm | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &arena->zap_mutex | ||
| HALF_LOCKED2 | &dev->mutex | ||
| HALF_LOCKED2 | &encl->lock | ||
| HALF_LOCKED2 | &seq->lock | ||
| HALF_LOCKED2 | &uprobe->register_rwsem | ||
| HALF_LOCKED2 | global &ioreq_lock | ||
| HALF_LOCKED2 | 0 | &mm->mmap_lock |
mm/mmap.c find_vma_intersection() -> mmap_assert_locked()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->type | 0-1 |
| DATA_SOURCE | 0 | mm | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &vm->lock | ||
| HALF_LOCKED2 | 0 | &mm->mmap_lock |
mm/userfaultfd.c assert_fault_locked() -> mmap_assert_locked()
| Type | Parameter | Key | Value |
|---|---|---|---|
| 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->vma_writer_wait.task->sched_class->uclamp_enabled | 0-1 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
mm/userfaultfd.c find_vma_and_prepare_anon() -> mmap_assert_locked()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| 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 |
| CAPPED_DATA | 0 | mm | 1 |
| DATA_SOURCE | 0 | mm | $0 |
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| LOCK2 | 0 | &mm->mmap_lock | |
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/userfaultfd.c find_vmas_mm_locked() -> mmap_assert_locked()
| 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->task_size | 1-u64max |
| CAPPED_DATA | 0 | mm | 1 |
| DATA_SOURCE | 0 | mm | $0 |
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| LOCK2 | 0 | &mm->mmap_lock | |
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/userfaultfd.c vma_start_read_locked_nested() -> mmap_assert_locked()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm->vma_writer_wait.task->sched_class->uclamp_enabled | 0-1 |
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| LOCK2 | &mm->mmap_lock | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
kernel/bpf/stackmap.c vma_start_read_locked_nested() -> mmap_assert_locked()
| Type | Parameter | Key | Value |
|---|---|---|---|
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| LOCK2 | &mm->mmap_lock | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
fs/proc/task_mmu.c __untagged_addr_remote() -> mmap_assert_locked()
| 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->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 |
| BUF_SIZE | 0 | mm | s32min-(-2),1-s32max |
| BUF_SIZE | 0 | mm | s32min-(-2),1-s32max |
| DATA_SOURCE | 0 | mm | $0 |
| NOCHECK_CALL | |||
| LOCK2 | 0 | &mm->mmap_lock | |
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/rmap.c __anon_vma_prepare() -> mmap_assert_locked()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &mm->mmap_lock |
mm/rmap.c make_device_exclusive() -> mmap_assert_locked()
| 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,2624917664208203776 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->list.prev | 2212933610777083904,2624917664208203776 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->type | 0-1 |
| DATA_SOURCE | 0 | mm | $0 |
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| LOCK2 | 0 | &mm->mmap_lock | |
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/rmap.c unlink_anon_vmas() -> mmap_assert_locked()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->type | 0-1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &mm->mmap_lock |
drivers/gpu/drm/drm_gpusvm.c drm_gpusvm_check_pages() -> mmap_assert_locked()
| 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->invalidate_seq | 0-s64max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| LOCK2 | &mm->mmap_lock | ||
| LOCK2 | &vm->lock | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock | ||
| TYPE_LOCK | (struct xe_vm)->lock |
drivers/gpu/drm/drm_pagemap.c drm_pagemap_migrate_to_devmem() -> mmap_assert_locked()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| PARAM_VALUE | 0 | mm->exe_file->f_cred->process_keyring->user->qnbytes | s32min-s32max |
| PARAM_VALUE | 0 | mm->exe_file->f_cred->process_keyring->user->qnkeys | s32min-s32max |
| PARAM_VALUE | 0 | mm->exe_file->f_cred->request_key_auth->user->qnbytes | s32min-s32max |
| PARAM_VALUE | 0 | mm->exe_file->f_cred->request_key_auth->user->qnkeys | s32min-s32max |
| PARAM_VALUE | 0 | mm->exe_file->f_cred->session_keyring->user->qnbytes | s32min-s32max |
| PARAM_VALUE | 0 | mm->exe_file->f_cred->session_keyring->user->qnkeys | s32min-s32max |
| PARAM_VALUE | 0 | mm->exe_file->f_cred->thread_keyring->user->qnbytes | s32min-s32max |
| PARAM_VALUE | 0 | mm->exe_file->f_cred->thread_keyring->user->qnkeys | s32min-s32max |
| 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 |
| DATA_SOURCE | 0 | mm | $1 |
| NOCHECK_CALL | |||
| LOCK2 | &driver_migrate_lock | ||
| LOCK2 | &vm->lock | ||
| LOCK2 | global &drm_unplug_srcu | ||
| LOCK2 | 0 | &mm->mmap_lock | |
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock | ||
| TYPE_LOCK | (struct xe_vm)->lock |
mm/ksm.c ksm_process_mergeable() -> mmap_assert_locked()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| PARAM_VALUE | 0 | mm->mmap_lock.dep_map->name | 0-255 |
| 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 |
| DATA_SOURCE | 0 | mm | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &m->lock | ||
| LOCK2 | 0 | &mm->mmap_lock | |
| TYPE_LOCK | (struct mm_struct)->mmap_lock | ||
| TYPE_LOCK | (struct seq_file)->lock |
mm/memory.c __untagged_addr_remote() -> mmap_assert_locked()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| 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 |
| BUF_SIZE | 0 | mm | s32min-(-1),1-s32max |
| BUF_SIZE | 0 | mm | s32min-(-1),1-s32max |
| DATA_SOURCE | 0 | mm | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | 0 | &mm->mmap_lock | |
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
drivers/vfio/vfio_iommu_type1.c __untagged_addr_remote() -> mmap_assert_locked()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| 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 |
| DATA_SOURCE | 0 | mm | $0 |
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| LOCK2 | &iommu->lock | ||
| LOCK2 | 0 | &mm->mmap_lock | |
| HALF_LOCKED2 | &vgpu->cache_lock | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock | ||
| TYPE_LOCK | (struct vfio_iommu)->lock |
mm/gup.c __get_user_pages_locked() -> mmap_assert_locked()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm->binfmt->module | 0 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->type | 0-1 |
| BUF_SIZE | 0 | mm | s32min-(-1),1-s32max |
| BUF_SIZE | 0 | mm | s32min-(-1),1-s32max |
| DATA_SOURCE | 0 | mm | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | 0 | &mm->mmap_lock |
mm/gup.c __untagged_addr_remote() -> mmap_assert_locked()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->type | 0-1 |
| BUF_SIZE | 0 | mm | s32min-(-1),1-s32max |
| BUF_SIZE | 0 | mm | s32min-(-1),1-s32max |
| DATA_SOURCE | 0 | mm | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | 0 | &mm->mmap_lock |
mm/gup.c faultin_page_range() -> mmap_assert_locked()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->type | 0-1 |
| DATA_SOURCE | 0 | mm | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | 0 | &mm->mmap_lock |
mm/gup.c populate_vma_page_range() -> mmap_assert_locked()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &mm->mmap_lock |
mm/mmap_lock.c vma_start_read_locked_nested() -> mmap_assert_locked()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| LOCK2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &m->lock | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/migrate.c __untagged_addr_remote() -> mmap_assert_locked()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| 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 |
| DATA_SOURCE | 0 | mm | $0 |
| NOCHECK_CALL | |||
| LOCK2 | 0 | &mm->mmap_lock | |
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/hmm.c hmm_range_fault_locked() -> mmap_assert_locked()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| LOCK2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &vm->lock | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/khugepaged.c collapse_single_pmd() -> mmap_assert_locked()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &mm->mmap_lock |
mm/khugepaged.c madvise_collapse() -> mmap_assert_locked()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->type | 0-1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | 0 | &mm->mmap_lock |
mm/khugepaged.c set_huge_pmd() -> mmap_assert_locked()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm->context.asid_transition | 1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &mm->mmap_lock |
mm/khugepaged.c try_collapse_pte_mapped_thp() -> mmap_assert_locked()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->type | 0-1 |
| DATA_SOURCE | 0 | mm | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | 0 | &mm->mmap_lock |