Defined in 1 files as a function:

Referenced in 18 files:

Smatch caller information:

fs/coredump.c dump_user_range() -> mmap_read_lock_killable()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 mm unit_byte

arch/x86/kernel/shstk.c shstk_pop_sigframe() -> mmap_read_lock_killable()

Type Parameter Key Value
UNITS 0 mm unit_byte

mm/oom_kill.c __do_sys_process_mrelease() -> mmap_read_lock_killable()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
UNITS 0 mm unit_byte

mm/oom_kill.c __do_sys_process_mrelease() -> mmap_read_lock_killable()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
UNITS 0 mm unit_byte

mm/mmap.c __do_sys_remap_file_pages() -> mmap_read_lock_killable()

Type Parameter Key Value
UNITS 0 mm unit_byte

mm/mmap.c __do_sys_remap_file_pages() -> mmap_read_lock_killable()

Type Parameter Key Value
UNITS 0 mm unit_byte

mm/gup_test.c __gup_test_ioctl() -> mmap_read_lock_killable()

Type Parameter Key Value
UNITS 0 mm unit_byte

mm/gup_test.c pin_longterm_test_start() -> mmap_read_lock_killable()

Type Parameter Key Value
UNITS 0 mm unit_byte
LOCK2 &data->longterm_mutex
TYPE_LOCK (struct gup_test_data)->longterm_mutex

fs/proc/base.c map_files_d_revalidate() -> mmap_read_lock_killable()

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
CAPPED_DATA 0 mm 1
DATA_SOURCE 0 mm r mm_access
RX_PATH
TASK_NOT_RUNNING

fs/proc/base.c map_files_get_link() -> mmap_read_lock_killable()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
DATA_SOURCE 0 mm r get_task_mm
RX_PATH
TASK_NOT_RUNNING
LOCK2 &task->signal->exec_update_lock
TYPE_LOCK (struct signal_struct)->exec_update_lock

fs/proc/base.c proc_map_files_lookup() -> mmap_read_lock_killable()

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
CAPPED_DATA 0 mm 1
DATA_SOURCE 0 mm r mm_access
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dir->i_rwsem

fs/proc/base.c proc_map_files_readdir() -> mmap_read_lock_killable()

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
CAPPED_DATA 0 mm 1
DATA_SOURCE 0 mm r mm_access
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dir_fp->readdir_lock
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct inode)->i_rwsem

fs/proc/base.c proc_pid_ksm_stat() -> mmap_read_lock_killable()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
DATA_SOURCE 0 mm r get_task_mm
RX_PATH
TASK_NOT_RUNNING
LOCK2 &m->lock
TYPE_LOCK (struct seq_file)->lock

fs/proc/task_mmu.c do_pagemap_scan() -> mmap_read_lock_killable()

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-(-2),1-s32max
BUF_SIZE 0 mm s32min-(-2),1-s32max
DATA_SOURCE 0 mm $0

fs/proc/task_mmu.c lock_ctx_mm() -> mmap_read_lock_killable()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 &m->lock
TYPE_LOCK (struct seq_file)->lock

fs/proc/task_mmu.c pagemap_read() -> mmap_read_lock_killable()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 0 mm->mm_users.counter 0-s32max
BUF_SIZE 0 mm s32min-(-2),1-s32max
BUF_SIZE 0 mm s32min-(-2),1-s32max

fs/proc/task_mmu.c pagemap_read() -> mmap_read_lock_killable()

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 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-(-2),1-s32max
BUF_SIZE 0 mm s32min-(-2),1-s32max

mm/memory.c __access_remote_vm() -> mmap_read_lock_killable()

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
BUF_SIZE 0 mm s32min-(-1),1-s32max
BUF_SIZE 0 mm s32min-(-1),1-s32max
CAPPED_DATA 0 mm 1
DATA_SOURCE 0 mm $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING

mm/memory.c __copy_remote_vm_str() -> mmap_read_lock_killable()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
DATA_SOURCE 0 mm $0

mm/gup.c __get_user_pages_locked() -> mmap_read_lock_killable()

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
DATA_SOURCE 0 mm $0
RX_PATH
TASK_NOT_RUNNING
UNITS 0 mm unit_byte
HALF_LOCKED2 0 &mm->mmap_lock

mm/gup.c __get_user_pages_locked() -> mmap_read_lock_killable()

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
RX_PATH
TASK_NOT_RUNNING
UNITS 0 mm unit_byte
HALF_LOCKED2 0 &mm->mmap_lock

kernel/bpf/task_iter.c task_vma_seq_get_next() -> mmap_read_lock_killable()

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 1-u64max
PARAM_VALUE 0 mm->mmap_lock.first_waiter->handoff_set 1
PARAM_VALUE 0 mm->mmap_lock.first_waiter->type 0-1
RX_PATH
TASK_NOT_RUNNING
LOCK2 &seq->lock
TYPE_LOCK (struct seq_file)->lock

kernel/bpf/task_iter.c task_vma_seq_get_next() -> mmap_read_lock_killable()

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
DATA_SOURCE 0 mm r get_task_mm
RX_PATH
TASK_NOT_RUNNING
LOCK2 &seq->lock
TYPE_LOCK (struct seq_file)->lock

mm/mmap_lock.c get_mmap_lock_carefully() -> mmap_read_lock_killable()

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
CAPPED_DATA 0 mm 1
DATA_SOURCE 0 mm $0
RX_PATH
UNITS 0 mm unit_byte

mm/mmap_lock.c lock_next_vma_under_mmap_lock() -> mmap_read_lock_killable()

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

mm/hmm.c hmm_range_fault_unlocked_timeout() -> mmap_read_lock_killable()

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
UNITS 0 mm unit_byte
HALF_LOCKED2 &client->hwctx_srcu
HALF_LOCKED2 &hwctx->priv->job_sem
HALF_LOCKED2 &vm->lock
HALF_LOCKED2 0 &mm->mmap_lock

fs/exec.c exec_mmap() -> mmap_read_lock_killable()

Type Parameter Key Value
PARAM_VALUE 0 mm 1-u64max
UNITS 0 mm unit_byte
LOCK2 &tsk->signal->exec_update_lock
TYPE_LOCK (struct signal_struct)->exec_update_lock