Defined in 1 files as a prototype:

Defined in 2 files as a function:

Referenced in 5 files:

Smatch caller information:

security/device_cgroup.c task_css() -> rcu_read_lock_sched_held()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 global &kfd_processes_mutex

mm/memcontrol.c task_css() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 global &oom_lock

kernel/trace/trace_events_user.c update_enable_bit_for() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 _T->lock
HALF_LOCKED2 global &event_mutex

kernel/trace/trace_events_user.c user_events_write_core() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

kernel/trace/trace_events_user.c user_events_write_core() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

fs/pidfs.c task_css_set() -> rcu_read_lock_sched_held()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

kernel/cgroup/namespace.c task_css_set() -> rcu_read_lock_sched_held()

Type Parameter Key Value
NS_CAPABLE 0 21
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &css_set_lock
LOCK2 irq
HALF_LOCKED2 &tsk->signal->exec_update_lock

fs/file.c fd_install() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &ctx->uring_lock
HALF_LOCKED2 &dev_priv->cmdbuf_mutex
HALF_LOCKED2 &ne_pci_dev->enclaves_list_mutex
HALF_LOCKED2 &p->mutex
HALF_LOCKED2 &to_path.dentry->d_inode->i_rwsem
HALF_LOCKED2 &tsk->signal->exec_update_lock
HALF_LOCKED2 &u->iolock
HALF_LOCKED2 &vcpu->mutex
HALF_LOCKED2 &viommu->veventqs_rwsem
HALF_LOCKED2 _T->lock
HALF_LOCKED2 sk

mm/page-writeback.c task_css() -> rcu_read_lock_sched_held()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &inode->i_rwsem

kernel/cgroup/legacy_freezer.c task_css() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 global &freezer_mutex

kernel/cgroup/legacy_freezer.c task_css_is_root() -> rcu_read_lock_sched_held()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING

kernel/rcu/rcutorture.c torture_readlock_not_held() -> rcu_read_lock_sched_held()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING

kernel/trace/trace_events_hist.c trace_synth() -> rcu_read_lock_sched_held()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING

arch/x86/kvm/svm/sev.c task_css() -> rcu_read_lock_sched_held()

Type Parameter Key Value
LOCK2 rcu_read
HALF_LOCKED2 &kvm->lock
HALF_LOCKED2 &source_kvm->lock
HALF_LOCKED2 _T->lock

kernel/sched/build_policy.c __dl_update() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dl_b->lock
HALF_LOCKED2 _T->lock
HALF_LOCKED2 _T->rf.flags
HALF_LOCKED2 flags
HALF_LOCKED2 global &cpuset_mutex
HALF_LOCKED2 rcu_read

kernel/sched/build_policy.c cpufreq_update_util() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &rt_rq->rt_runtime_lock

kernel/sched/build_policy.c dl_bw_capacity() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dl_b->lock
HALF_LOCKED2 _T->lock
HALF_LOCKED2 flags
HALF_LOCKED2 rcu_read

kernel/sched/build_policy.c dl_bw_cpus() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dl_b->lock
HALF_LOCKED2 &mutex
HALF_LOCKED2 &rd->dl_bw.lock
HALF_LOCKED2 &src_dl_b->lock
HALF_LOCKED2 _T->lock
HALF_LOCKED2 flags
HALF_LOCKED2 global &cpuset_mutex
HALF_LOCKED2 global &sched_domains_mutex
HALF_LOCKED2 irq
HALF_LOCKED2 rcu_read
HALF_LOCKED2 rf.flags
HALF_LOCKED2 rq

kernel/sched/build_policy.c dl_bw_of() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &mutex
HALF_LOCKED2 _T->lock
HALF_LOCKED2 global &sched_domains_mutex
HALF_LOCKED2 rcu_read
HALF_LOCKED2 rf.flags
HALF_LOCKED2 rq

kernel/sched/build_policy.c task_css_set() -> rcu_read_lock_sched_held()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING

kernel/locking/lockdep_proc.c seq_stats() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &m->lock
LOCK2 rcu_read
TYPE_LOCK (struct seq_file)->lock

kernel/locking/lockdep_proc.c seq_stats() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &m->lock
LOCK2 rcu_read
TYPE_LOCK (struct seq_file)->lock

fs/fs-writeback.c task_css() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &inode->i_lock
LOCK2 rcu_read
HALF_LOCKED2 &inode->i_mapping->invalidate_lock
HALF_LOCKED2 &inode->i_rwsem
TYPE_LOCK (struct inode)->i_lock

kernel/cgroup/rdma.c task_css() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD
LOCK2 rcu_read
HALF_LOCKED2 &file->hw_destroy_rwsem
HALF_LOCKED2 &file->ucontext_lock
HALF_LOCKED2 &ufile->hw_destroy_rwsem
TYPE_LOCK (struct ib_uverbs_file)->hw_destroy_rwsem

kernel/cgroup/dmem.c task_css() -> rcu_read_lock_sched_held()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 bo->base.resv

kernel/cgroup/pids.c task_css() -> rcu_read_lock_sched_held()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING

kernel/cgroup/cpuset.c task_css() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &task->pi_lock
HALF_LOCKED2 &task->sighand->siglock
HALF_LOCKED2 &task->signal->exec_update_lock
HALF_LOCKED2 flags
HALF_LOCKED2 global &callback_lock
HALF_LOCKED2 global &cpuset_mutex
HALF_LOCKED2 rcu_read

kernel/sched/build_utility.c cpufreq_this_cpu_can_update() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING

kernel/sched/build_utility.c task_css() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING

kernel/sched/build_utility.c task_css_set() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &task->pi_lock
HALF_LOCKED2 &task->sighand->siglock
HALF_LOCKED2 &task->signal->exec_update_lock
HALF_LOCKED2 irq

mm/hugetlb_cgroup.c task_css() -> rcu_read_lock_sched_held()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &inode->i_rwsem

kernel/bpf/cgroup.c task_css_set() -> rcu_read_lock_sched_held()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 rcu_read

kernel/sched/fair.c cpufreq_update_util() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING

kernel/sched/fair.c on_null_domain() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 irq

kernel/sched/fair.c task_css_set() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING

kernel/cgroup/cgroup.c task_css_set() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 flags
HALF_LOCKED2 global &cgroup_mutex
HALF_LOCKED2 global &css_set_lock
HALF_LOCKED2 irq
HALF_LOCKED2 rcu_read

net/core/sock.c task_css() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

net/core/netclassid_cgroup.c task_cls_state() -> rcu_read_lock_sched_held()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING

kernel/events/core.c perf_cgroup_from_task() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &cpuctx->ctx.lock

kernel/events/core.c perf_prepare_sample() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

block/blk-cgroup.c task_css() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

kernel/cgroup/freezer.c task_css_set() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &css_set_lock
LOCK2 irq

kernel/cgroup/debug.c task_css_set() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &m->lock
HALF_LOCKED2 &seq->lock
HALF_LOCKED2 global &cgroup_mutex
HALF_LOCKED2 global &css_set_lock
HALF_LOCKED2 irq
HALF_LOCKED2 rcu_read
TYPE_LOCK (struct seq_file)->lock

arch/x86/kvm/vmx/tdx.c task_css() -> rcu_read_lock_sched_held()

Type Parameter Key Value
LOCK2 &kvm->lock
LOCK2 &kvm->slots_lock
LOCK2 rcu_read
TYPE_LOCK (struct kvm)->lock
TYPE_LOCK (struct kvm)->slots_lock

kernel/trace/ftrace.c fnpid_next() -> rcu_read_lock_sched_held()

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

kernel/trace/ftrace.c fnpid_start() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &m->lock
LOCK2 global &ftrace_lock
LOCK2 rcu_read
TYPE_LOCK (struct seq_file)->lock

kernel/trace/ftrace.c fpid_next() -> rcu_read_lock_sched_held()

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

kernel/trace/ftrace.c fpid_start() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &m->lock
LOCK2 global &ftrace_lock
LOCK2 rcu_read
TYPE_LOCK (struct seq_file)->lock

kernel/trace/ftrace.c ftrace_filter_pid_sched_switch_probe() -> rcu_read_lock_sched_held()

Type Parameter Key Value

kernel/trace/ftrace.c ftrace_filter_pid_sched_switch_probe() -> rcu_read_lock_sched_held()

Type Parameter Key Value

kernel/trace/ftrace.c ftrace_find_rec_direct() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &m->lock
HALF_LOCKED2 global &direct_mutex

kernel/trace/ftrace.c ftrace_pid_follow_sched_process_exit() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt

kernel/trace/ftrace.c ftrace_pid_follow_sched_process_exit() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt

kernel/trace/ftrace.c ftrace_pid_follow_sched_process_fork() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt

kernel/trace/ftrace.c ftrace_pid_follow_sched_process_fork() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt

kernel/trace/trace_events.c __next() -> rcu_read_lock_sched_held()

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

kernel/trace/trace_events.c __next() -> rcu_read_lock_sched_held()

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

kernel/trace/trace_events.c __start() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &m->lock
LOCK2 global &event_mutex
LOCK2 rcu_read
TYPE_LOCK (struct seq_file)->lock

kernel/trace/trace_events.c __start() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &m->lock
LOCK2 global &event_mutex
LOCK2 rcu_read
TYPE_LOCK (struct seq_file)->lock

kernel/trace/trace_events.c event_filter_pid_sched_process_fork() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt

kernel/trace/trace_events.c event_filter_pid_sched_process_fork() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt

kernel/trace/trace_events.c event_filter_pid_sched_switch_probe_post() -> rcu_read_lock_sched_held()

Type Parameter Key Value

kernel/trace/trace_events.c event_filter_pid_sched_switch_probe_post() -> rcu_read_lock_sched_held()

Type Parameter Key Value

kernel/trace/trace_events.c event_filter_pid_sched_switch_probe_pre() -> rcu_read_lock_sched_held()

Type Parameter Key Value

kernel/trace/trace_events.c event_filter_pid_sched_switch_probe_pre() -> rcu_read_lock_sched_held()

Type Parameter Key Value

kernel/trace/trace_events.c event_filter_pid_sched_wakeup_probe_post() -> rcu_read_lock_sched_held()

Type Parameter Key Value

kernel/trace/trace_events.c event_filter_pid_sched_wakeup_probe_post() -> rcu_read_lock_sched_held()

Type Parameter Key Value

kernel/trace/trace_events.c event_filter_pid_sched_wakeup_probe_pre() -> rcu_read_lock_sched_held()

Type Parameter Key Value

kernel/trace/trace_events.c event_filter_pid_sched_wakeup_probe_pre() -> rcu_read_lock_sched_held()

Type Parameter Key Value

kernel/workqueue.c workqueue_congested() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 bh
HALF_LOCKED2 rcu_read

kernel/cgroup/cpuset-v1.c task_css() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &m->lock
HALF_LOCKED2 global &css_set_lock
HALF_LOCKED2 irq

kernel/bpf/helpers.c task_css_set() -> rcu_read_lock_sched_held()

Type Parameter Key Value
HALF_LOCKED2 rcu_read

kernel/sched/core.c perf_cgroup_from_task() -> rcu_read_lock_sched_held()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 irq

kernel/sched/core.c sched_change_group() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING

kernel/trace/trace_events_trigger.c event_triggers_call() -> rcu_read_lock_sched_held()

Type Parameter Key Value
PREEMPT_ADD