Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 21 files:

Smatch caller information:

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

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING

kernel/fork.c mm_access() -> down_read_killable()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING

net/core/net_namespace.c copy_net_ns() -> down_read_killable()

Type Parameter Key Value
PARAM_VALUE 0 sem 8367575239496048640
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &tsk->signal->exec_update_lock

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

Type Parameter Key Value

fs/pidfs.c pidfd_ioctl() -> down_read_killable()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max

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

Type Parameter Key Value

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

Type Parameter Key Value

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

Type Parameter Key Value
HALF_LOCKED2 &data->longterm_mutex

fs/proc/base.c call_proc_get_link() -> down_read_killable()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING

fs/proc/base.c do_io_accounting() -> down_read_killable()

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

fs/proc/base.c lock_trace() -> down_read_killable()

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

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

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &m->lock
HALF_LOCKED2 &task->signal->exec_update_lock

fs/proc/base.c proc_pid_wchan() -> down_read_killable()

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

fs/proc/namespaces.c proc_ns_get_link() -> down_read_killable()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING

fs/proc/namespaces.c proc_ns_readlink() -> down_read_killable()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max

drivers/platform/surface/surface_aggregator_cdev.c ssam_cdev_device_ioctl() -> down_read_killable()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max

drivers/platform/surface/surface_aggregator_cdev.c ssam_cdev_read() -> down_read_killable()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max

drivers/platform/surface/surface_aggregator_cdev.c ssam_cdev_read() -> down_read_killable()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 0 sem->wait_lock.owner (-1)
PARAM_VALUE 0 sem->wait_lock.owner_cpu u32max

fs/namei.c inode_lock_shared_killable() -> down_read_killable()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dentry->d_lockref.lock
HALF_LOCKED2 &inode->i_rwsem

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

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &m->lock

fs/ceph/io.c ceph_start_io_direct() -> down_read_killable()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &pool->lock

fs/ceph/io.c ceph_start_io_read() -> down_read_killable()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING

fs/proc/array.c do_task_stat() -> down_read_killable()

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

kernel/pid.c __pidfd_fget() -> down_read_killable()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max

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

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING

fs/readdir.c iterate_dir() -> down_read_killable()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dir_fp->readdir_lock
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &pool->lock

net/netfilter/ipvs/ip_vs_ctl.c do_ip_vs_get_ctl() -> down_read_killable()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
NS_CAPABLE 0 12
RX_PATH

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

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &mm->mmap_lock

kernel/futex/syscalls.c futex_get_robust_list_common() -> down_read_killable()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max

fs/nfs/io.c nfs_start_io_direct() -> down_read_killable()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &pool->lock

fs/nfs/io.c nfs_start_io_read() -> down_read_killable()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING

drivers/platform/surface/surface_dtx.c surface_dtx_ioctl() -> down_read_killable()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max

drivers/platform/surface/surface_dtx.c surface_dtx_read() -> down_read_killable()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max

drivers/platform/surface/surface_dtx.c surface_dtx_read() -> down_read_killable()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 0 sem->wait_lock.owner (-1)
PARAM_VALUE 0 sem->wait_lock.owner_cpu u32max

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

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 &seq->lock
TYPE_LOCK (struct seq_file)->lock

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

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING

drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c amdgpu_debugfs_ib_preempt() -> down_read_killable()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
LOCK2 &attr->mutex
TYPE_LOCK (struct simple_attr)->mutex

mm/migrate.c find_mm_struct() -> down_read_killable()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max

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

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &client->hwctx_srcu
HALF_LOCKED2 &hwctx->priv->job_sem
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &vm->lock

kernel/kcmp.c kcmp_lock() -> down_read_killable()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
DATA_SOURCE 0 sem $0 [m]

fs/afs/dir.c afs_read_dir() -> down_read_killable()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dvnode->validate_lock

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

Type Parameter Key Value
LOCK2 &tsk->signal->exec_update_lock
TYPE_LOCK (struct signal_struct)->exec_update_lock