Defined in 1 files as a function:

Referenced in 35 files:

Smatch caller information:

kernel/fork.c replace_mm_exe_file() -> mmap_write_lock()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 0 mm->exe_file 0,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->exe_file->f_security 0
PARAM_VALUE 0 mm->exe_file->f_task_work.func 5179756662909861888
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
NOCHECK_CALL
UNITS 0 mm unit_byte

kernel/trace/trace_events_user.c user_event_mm_remove() -> mmap_write_lock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 mm unit_byte

arch/x86/entry/vdso/vma.c map_vdso_once() -> mmap_write_lock()

Type Parameter Key Value
RX_PATH
NOCHECK_CALL
UNITS 0 mm unit_byte

mm/mmap.c exit_mmap() -> mmap_write_lock()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 0 mm->binfmt->module 0
PARAM_VALUE 0 mm->context.ldt 0
PARAM_VALUE 0 mm->ioctx_table 0
PARAM_VALUE 0 mm->mm_cid.pcpu 0
PARAM_VALUE 0 mm->mm_id 0
PARAM_VALUE 0 mm->mm_users.counter 0
PARAM_VALUE 0 mm->mmap_lock.dep_map->name 0-255
PARAM_VALUE 0 mm->mmap_lock.first_waiter->handoff_set 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
PARAM_VALUE 0 mm->mmap_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 mm->notifier_subscriptions 0
PARAM_VALUE 0 mm->sc_stat.pcpu_sched 0
CAPPED_DATA 0 mm 1
CAPPED_DATA 0 mm->uprobes_state.xol_area 1
DATA_SOURCE 0 mm $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 mm unit_byte
HALF_LOCKED2 &pool->lock

mm/mmap.c exit_mmap() -> mmap_write_lock()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 0 mm->binfmt->module 0
PARAM_VALUE 0 mm->context.ldt 0
PARAM_VALUE 0 mm->ioctx_table 0
PARAM_VALUE 0 mm->mm_cid.pcpu 0
PARAM_VALUE 0 mm->mm_id 0
PARAM_VALUE 0 mm->mm_users.counter 0
PARAM_VALUE 0 mm->mmap_lock.dep_map->name 0-255
PARAM_VALUE 0 mm->mmap_lock.first_waiter->handoff_set 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
PARAM_VALUE 0 mm->mmap_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 mm->notifier_subscriptions 0
PARAM_VALUE 0 mm->sc_stat.pcpu_sched 0
CAPPED_DATA 0 mm 1
CAPPED_DATA 0 mm->uprobes_state.xol_area 1
DATA_SOURCE 0 mm $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 mm unit_byte
HALF_LOCKED2 &pool->lock

mm/mmap.c mmap_read_lock_maybe_expand() -> mmap_write_lock()

Type Parameter Key Value
PARAM_VALUE 0 mm->map_count (-1)-s32max
PARAM_VALUE 0 mm->mmap_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 mm->stack_vm 1
PARAM_VALUE 0 mm->total_vm 1
DATA_SOURCE 0 mm $0
NOCHECK_CALL

mm/userfaultfd.c userfaultfd_register() -> mmap_write_lock()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 0 mm->mm_users.counter 0-s32max
PARAM_VALUE 0 mm->task_size 1-u64max
CAPPED_DATA 0 mm->task_size 1
NOCHECK_CALL
UNITS 0 mm unit_byte

mm/userfaultfd.c userfaultfd_release_all() -> mmap_write_lock()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 0 mm->mm_users.counter 0-s32max
DATA_SOURCE 0 mm $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 mm unit_byte

mm/userfaultfd.c userfaultfd_release_new() -> mmap_write_lock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 mm unit_byte

mm/userfaultfd.c userfaultfd_set_mode() -> mmap_write_lock()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 0 mm->mm_users.counter 0-s32max
NOCHECK_CALL
UNITS 0 mm unit_byte

mm/userfaultfd.c userfaultfd_unregister() -> mmap_write_lock()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 0 mm->mm_users.counter 0-s32max
PARAM_VALUE 0 mm->task_size 1-u64max
CAPPED_DATA 0 mm->task_size 1
NOCHECK_CALL
UNITS 0 mm unit_byte

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_process.c mmu_notifier_get() -> mmap_write_lock()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
DATA_SOURCE 0 mm $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 mm unit_byte
LOCK2 global &kfd_processes_mutex

mm/ptdump.c ptdump_walk_pgd() -> mmap_write_lock()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
DATA_SOURCE 0 mm $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 mm unit_byte
HALF_LOCKED2 &m->lock

drivers/iommu/iommufd/pages.c update_mm_locked_vm() -> mmap_write_lock()

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
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 mm unit_byte
HALF_LOCKED2 &ictx->ioas_creation_lock
HALF_LOCKED2 &pages->mutex

mm/util.c account_locked_vm() -> mmap_write_lock()

Type Parameter Key Value
PARAM_VALUE 0 mm 1-u64max
DATA_SOURCE 0 mm $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 mm unit_byte

mm/util.c vm_mmap_shadow_stack() -> mmap_write_lock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 mm unit_byte

mm/mprotect.c __do_sys_pkey_alloc() -> mmap_write_lock()

Type Parameter Key Value
NOCHECK_CALL
UNITS 0 mm unit_byte

mm/mprotect.c __do_sys_pkey_alloc() -> mmap_write_lock()

Type Parameter Key Value
NOCHECK_CALL
UNITS 0 mm unit_byte

mm/mprotect.c __do_sys_pkey_free() -> mmap_write_lock()

Type Parameter Key Value
NOCHECK_CALL
UNITS 0 mm unit_byte

mm/mprotect.c __do_sys_pkey_free() -> mmap_write_lock()

Type Parameter Key Value
NOCHECK_CALL
UNITS 0 mm unit_byte

mm/ksm.c __ksm_exit() -> mmap_write_lock()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
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
CAPPED_DATA 0 mm 1
DATA_SOURCE 0 mm $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 mm unit_byte
HALF_LOCKED2 0 &mm->mmap_lock

arch/x86/kernel/uprobes.c arch_uprobe_optimize() -> mmap_write_lock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 mm unit_byte

lib/test_lockup.c test_lock() -> mmap_write_lock()

Type Parameter Key Value
NOCHECK_CALL
UNITS 0 mm unit_byte
HALF_LOCKED2 global lock_mutex_ptr
HALF_LOCKED2 global lock_rwsem_ptr

drivers/xen/privcmd.c alloc_ioreq() -> mmap_write_lock()

Type Parameter Key Value
NOCHECK_CALL
UNITS 0 mm unit_byte
LOCK2 global &ioreq_lock

drivers/xen/privcmd.c privcmd_ioctl_mmap() -> mmap_write_lock()

Type Parameter Key Value
NOCHECK_CALL
UNITS 0 mm unit_byte

drivers/xen/privcmd.c privcmd_ioctl_mmap_batch() -> mmap_write_lock()

Type Parameter Key Value
NOCHECK_CALL
UNITS 0 mm unit_byte

drivers/xen/privcmd.c privcmd_ioctl_mmap_resource() -> mmap_write_lock()

Type Parameter Key Value
NOCHECK_CALL
UNITS 0 mm unit_byte

mm/mmu_notifier.c mmu_notifier_register() -> mmap_write_lock()

Type Parameter Key Value
DATA_SOURCE 0 mm $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 mm unit_byte
HALF_LOCKED2 global &iommu_sva_lock

drivers/gpu/drm/nouveau/nouveau_svm.c nouveau_svmm_init() -> mmap_write_lock()

Type Parameter Key Value
NOCHECK_CALL
UNITS 0 mm unit_byte
LOCK2 &cli->mutex
TYPE_LOCK (struct nouveau_cli)->mutex

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c svm_range_deferred_list_work() -> mmap_write_lock()

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
NOCHECK_CALL
UNITS 0 mm unit_byte
HALF_LOCKED2 &pool->lock

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c svm_range_list_lock_and_flush_work() -> mmap_write_lock()

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 $1
NOCHECK_CALL
UNITS 0 mm unit_byte
HALF_LOCKED2 &process_info->lock

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c svm_range_restore_pages() -> mmap_write_lock()

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 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 r get_task_mm
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

mm/mempolicy.c __do_sys_set_mempolicy_home_node() -> mmap_write_lock()

Type Parameter Key Value
NOCHECK_CALL
UNITS 0 mm unit_byte

mm/mempolicy.c __do_sys_set_mempolicy_home_node() -> mmap_write_lock()

Type Parameter Key Value
NOCHECK_CALL
UNITS 0 mm unit_byte

mm/mempolicy.c do_mbind() -> mmap_write_lock()

Type Parameter Key Value
NOCHECK_CALL
UNITS 0 mm unit_byte

mm/mempolicy.c mpol_rebind_mm() -> mmap_write_lock()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
DATA_SOURCE 0 mm $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &cpuset_mutex

kernel/events/uprobes.c register_for_each_vma() -> mmap_write_lock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 mm unit_byte
LOCK2 &uprobe->register_rwsem
HALF_LOCKED2 global &event_mutex
TYPE_LOCK (struct uprobe)->register_rwsem

kernel/events/uprobes.c unapply_uprobe() -> mmap_write_lock()

Type Parameter Key Value
DATA_SOURCE 0 mm $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 mm unit_byte
LOCK2 &uprobe->register_rwsem
TYPE_LOCK (struct uprobe)->register_rwsem

arch/x86/mm/pat/set_memory.c class_mmap_write_lock_constructor() -> mmap_write_lock()

Type Parameter Key Value
PARAM_VALUE 0 mm 7138969414219841536
DATA_SOURCE 0 mm $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 global &mem_enc_lock

mm/khugepaged.c __khugepaged_exit() -> mmap_write_lock()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 0 mm->binfmt->module 0
PARAM_VALUE 0 mm->context.global_asid 0
PARAM_VALUE 0 mm->context.ldt 0
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->ioctx_table 0
PARAM_VALUE 0 mm->mm_cid.pcpu 0
PARAM_VALUE 0 mm->mm_id 0
PARAM_VALUE 0 mm->mm_users.counter 0
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 2624917664208203776
PARAM_VALUE 0 mm->mmap_lock.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 0 mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 0 mm->mmap_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 mm->notifier_subscriptions 0
PARAM_VALUE 0 mm->sc_stat.pcpu_sched 0
CAPPED_DATA 0 mm 1
CAPPED_DATA 0 mm->uprobes_state.xol_area 1
DATA_SOURCE 0 mm $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 mm unit_byte
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 0 &mm->mmap_lock

mm/khugepaged.c collapse_huge_page() -> mmap_write_lock()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 0 mm->mm_mt.ma_root 1-u64max
PARAM_VALUE 0 mm->mm_users.counter s32min-(-1),1-s32max
PARAM_VALUE 0 mm->mmap_lock.dep_map->name 0-255
PARAM_VALUE 0 mm->mmap_lock.first_waiter->handoff_set 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
CAPPED_DATA 0 mm->mm_mt.ma_root 1
DATA_SOURCE 0 mm $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 mm unit_byte
HALF_LOCKED2 &mm->mmap_lock