Defined in 2 files as a function:

Referenced in 8 files:

Smatch caller information:

kernel/sched/build_policy.c cgroup_account_cputime_field() -> cgroup_parent()

Type Parameter Key Value
DATA_SOURCE 0 cgrp r task_dfl_cgroup
RX_PATH
TASK_NOT_RUNNING

kernel/sched/build_utility.c psi_cgroup_alloc() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
PARAM_VALUE 0 cgrp->self.parent 4096-ptr_max
BUF_SIZE 0 cgrp->psi 1232
BUF_SIZE 0 cgrp->psi->pcpu 128
BUF_SIZE 0 cgrp->self.parent 392
DATA_SOURCE 0 cgrp $0
MEM_ZERO 0 cgrp->psi->avg_nr_triggers
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &cgroup_mutex
HALF_LOCKED2 &dentry->d_lockref.lock

kernel/bpf/cgroup.c cgroup_bpf_inherit() -> cgroup_parent()

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

kernel/bpf/cgroup.c cgroup_bpf_inherit() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max

kernel/bpf/cgroup.c cgroup_bpf_inherit() -> cgroup_parent()

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

kernel/bpf/cgroup.c cgroup_bpf_inherit() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max

kernel/bpf/cgroup.c cgroup_bpf_release() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
HALF_LOCKED2 &pool->lock

kernel/bpf/cgroup.c cgroup_bpf_release() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
HALF_LOCKED2 &pool->lock

kernel/bpf/cgroup.c compute_effective_progs() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 global &cgroup_mutex

kernel/bpf/cgroup.c compute_effective_progs() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 global &cgroup_mutex

kernel/bpf/cgroup.c effective_prog_pos() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &cgroup_mutex

kernel/bpf/cgroup.c effective_prog_pos() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &cgroup_mutex

kernel/bpf/cgroup.c hierarchy_allows_attach() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
DATA_SOURCE 0 cgrp $0
LOCK2 global &cgroup_mutex

kernel/bpf/cgroup.c hierarchy_allows_attach() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
LOCK2 global &cgroup_mutex

kernel/sched/fair.c cgroup_account_cputime() -> cgroup_parent()

Type Parameter Key Value
DATA_SOURCE 0 cgrp r task_dfl_cgroup
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING

kernel/cgroup/cgroup.c cgroup_addrm_files() -> cgroup_parent()

Type Parameter Key Value
DATA_SOURCE 0 cgrp $1
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 global &cgroup_mutex

kernel/cgroup/cgroup.c cgroup_addrm_files() -> cgroup_parent()

Type Parameter Key Value
DATA_SOURCE 0 cgrp $1
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 global &cgroup_mutex

kernel/cgroup/cgroup.c cgroup_check_hierarchy_limits() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
BUF_SIZE 0 cgrp (-1),40,136,480,696,928,1128,1160,1392,1624,1848,8192
BUF_SIZE 0 cgrp (-1),40,136,480,696,928,1128,1160,1392,1624,1848,8192
CAPPED_DATA 0 cgrp->nr_descendants 1
PARAM_COMPARE 0 cgrp->max_descendants > $0->nr_descendants
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &cgroup_mutex
HALF_LOCKED2 &dentry->d_lockref.lock

kernel/cgroup/cgroup.c cgroup_control() -> cgroup_parent()

Type Parameter Key Value
BUF_SIZE 0 cgrp (-1),40,136,480,696,928,1128,1160,1392,1624,1848,8192
BUF_SIZE 0 cgrp (-1),40,136,480,696,928,1128,1160,1392,1624,1848,8192
BUF_SIZE 0 cgrp->self.parent (-1),392
DATA_SOURCE 0 cgrp $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &seq->lock
HALF_LOCKED2 global &cgroup_mutex

kernel/cgroup/cgroup.c cgroup_create() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
PARAM_VALUE 0 cgrp->self.parent 4096-ptr_max
BUF_SIZE 0 cgrp 8192-u64max
BUF_SIZE 0 cgrp 8192-u64max
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &cgroup_mutex
HALF_LOCKED2 &dentry->d_lockref.lock

kernel/cgroup/cgroup.c cgroup_create() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
PARAM_VALUE 0 cgrp->self.parent 4096-ptr_max
BUF_SIZE 0 cgrp 8192-u64max
BUF_SIZE 0 cgrp 8192-u64max
BUF_SIZE 0 cgrp->self.parent 392
CAPPED_DATA 0 &cgrp->self 1
DATA_SOURCE 0 cgrp r _kzalloc_noprof
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &cgroup_mutex
HALF_LOCKED2 &dentry->d_lockref.lock

kernel/cgroup/cgroup.c cgroup_destroy_locked() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
BUF_SIZE 0 cgrp (-1),40,136,480,696,928,1128,1160,1392,1624,1848,8192
BUF_SIZE 0 cgrp (-1),40,136,480,696,928,1128,1160,1392,1624,1848,8192
CAPPED_DATA 0 cgrp 1
DATA_SOURCE 0 cgrp $0
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &cgroup_mutex
HALF_LOCKED2 &dentry->d_lockref.lock

kernel/cgroup/cgroup.c cgroup_destroy_locked() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &cgroup_mutex
LOCK2 global &css_set_lock
LOCK2 irq
HALF_LOCKED2 &dentry->d_lockref.lock

kernel/cgroup/cgroup.c cgroup_e_css() -> cgroup_parent()

Type Parameter Key Value
DATA_SOURCE 0 cgrp $0 [m]
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

kernel/cgroup/cgroup.c cgroup_e_css_by_mask() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
DATA_SOURCE 0 cgrp $0 [m]
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &css_set_lock
LOCK2 irq
HALF_LOCKED2 global &cgroup_mutex

kernel/cgroup/cgroup.c cgroup_enable_threaded() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
BUF_SIZE 0 cgrp 40,136,480,696,928,1128,1160,1392,1624,1848,8192
BUF_SIZE 0 cgrp 40,136,480,696,928,1128,1160,1392,1624,1848,8192
DATA_SOURCE 0 cgrp $0
RX_PATH
TASK_NOT_RUNNING
LOCK2 &of->mutex
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct kernfs_open_file)->mutex

kernel/cgroup/cgroup.c cgroup_get_e_css() -> cgroup_parent()

Type Parameter Key Value
BUF_SIZE 0 cgrp (-1),40,136,480,696,928,1128,1160,1392,1624,1848,8192
BUF_SIZE 0 cgrp (-1),40,136,480,696,928,1128,1160,1392,1624,1848,8192
DATA_SOURCE 0 cgrp $0 [m]
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &of->mutex

kernel/cgroup/cgroup.c cgroup_is_mixable() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
BUF_SIZE 0 cgrp (-1),1-s32max
BUF_SIZE 0 cgrp (-1),1-s32max
DATA_SOURCE 0 cgrp $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &of->mutex

kernel/cgroup/cgroup.c cgroup_is_valid_domain() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
CAPPED_DATA 0 cgrp 1
CAPPED_DATA 0 cgrp->dom_cgrp 1
DATA_SOURCE 0 cgrp $0 [m]
PARAM_COMPARE 0 cgrp == $0->dom_cgrp
PARAM_COMPARE 0 cgrp == $0->dom_cgrp
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &seq->lock

kernel/cgroup/cgroup.c cgroup_is_valid_domain() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
PARAM_VALUE 0 cgrp->self.parent 1-u64max
CAPPED_DATA 0 cgrp 1
CAPPED_DATA 0 cgrp->dom_cgrp 1
DATA_SOURCE 0 cgrp r cgroup_parent
PARAM_COMPARE 0 cgrp == $0->dom_cgrp
PARAM_COMPARE 0 cgrp == $0->dom_cgrp
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &seq->lock

kernel/cgroup/cgroup.c cgroup_procs_write_permission() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
BUF_SIZE 0 cgrp (-1)-0,8192
BUF_SIZE 0 cgrp (-1)-0,8192
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &cgroup_mutex
HALF_LOCKED2 &of->mutex

kernel/cgroup/cgroup.c cgroup_ss_mask() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
DATA_SOURCE 0 cgrp $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 global &css_set_lock
HALF_LOCKED2 irq

kernel/cgroup/cgroup.c css_create() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
DATA_SOURCE 0 cgrp $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 global &cgroup_mutex

kernel/cgroup/cgroup.c css_free_rwork_fn() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
CAPPED_DATA 0 cgrp->bpf_cgrp_storage 1
CAPPED_DATA 0 &cgrp->release_agent_work 1
HALF_LOCKED2 &pool->lock

kernel/cgroup/cgroup.c css_free_rwork_fn() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
PARAM_VALUE 0 cgrp->self.parent 1-u64max
CAPPED_DATA 0 cgrp->bpf_cgrp_storage 1
CAPPED_DATA 0 &cgrp->release_agent_work 1
HALF_LOCKED2 &pool->lock

kernel/cgroup/cgroup.c css_release_work_fn() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
LOCK2 global &cgroup_mutex
HALF_LOCKED2 &pool->lock

kernel/cgroup/cgroup.c css_release_work_fn() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
LOCK2 global &cgroup_mutex
HALF_LOCKED2 &pool->lock

kernel/cgroup/cgroup.c css_release_work_fn() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
CAPPED_DATA 0 &cgrp->self 1
PREEMPT_ADD <- disables preempt
LOCK2 global &cgroup_mutex
LOCK2 global &css_set_lock
LOCK2 irq
HALF_LOCKED2 &pool->lock

kernel/cgroup/cgroup.c css_release_work_fn() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
PREEMPT_ADD <- disables preempt
LOCK2 global &cgroup_mutex
LOCK2 global &css_set_lock
LOCK2 irq
HALF_LOCKED2 &pool->lock

kernel/cgroup/cgroup.c init_and_link_css() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
DATA_SOURCE 0 cgrp $2
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 global &cgroup_mutex

kernel/cgroup/cgroup.c init_and_link_css() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
PARAM_VALUE 0 cgrp->self.parent 1-u64max
DATA_SOURCE 0 cgrp $2
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 global &cgroup_mutex

kernel/cgroup/cgroup.c link_css_set() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
BUF_SIZE 0 cgrp (-1),8192
BUF_SIZE 0 cgrp (-1),8192
DATA_SOURCE 0 cgrp $2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &css_set_lock
LOCK2 irq
HALF_LOCKED2 global &cgroup_mutex

kernel/cgroup/cgroup.c put_css_set_locked() -> cgroup_parent()

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

block/blk-cgroup.c blk_cgroup_bio_start() -> cgroup_parent()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &bio->bi_bdev->bd_queue->queue_lock

block/blk-cgroup.c blkcg_rstat_flush() -> cgroup_parent()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 irq
LOCK2 lock
HALF_LOCKED2 &seq->lock
HALF_LOCKED2 &sf->lock
HALF_LOCKED2 global &cgroup_mutex

kernel/cgroup/freezer.c cgroup_freeze() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 &of->mutex
LOCK2 global &cgroup_mutex
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct kernfs_open_file)->mutex

kernel/cgroup/freezer.c cgroup_propagate_frozen() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
DATA_SOURCE 0 cgrp $0 [m]
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &css_set_lock
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 flags
HALF_LOCKED2 global &cgroup_mutex
HALF_LOCKED2 irq

kernel/cgroup/freezer.c cgroup_propagate_frozen() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
PARAM_VALUE 0 cgrp->self.parent 1-u64max
DATA_SOURCE 0 cgrp r cgroup_parent
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &css_set_lock
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 flags
HALF_LOCKED2 global &cgroup_mutex
HALF_LOCKED2 irq

kernel/cgroup/rstat.c cgroup_base_stat_cputime_show() -> cgroup_parent()

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

kernel/cgroup/rstat.c cgroup_base_stat_flush() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
DATA_SOURCE 0 cgrp $0
RX_PATH
TASK_NOT_RUNNING
LOCK2 irq
LOCK2 lock
HALF_LOCKED2 &seq->lock
HALF_LOCKED2 &sf->lock
HALF_LOCKED2 global &cgroup_mutex

kernel/cgroup/rstat.c cgroup_base_stat_flush() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
DATA_SOURCE 0 cgrp r cgroup_parent
RX_PATH
TASK_NOT_RUNNING
LOCK2 irq
LOCK2 lock
HALF_LOCKED2 &seq->lock
HALF_LOCKED2 &sf->lock
HALF_LOCKED2 global &cgroup_mutex

kernel/cgroup/rstat.c css_rstat_flush() -> cgroup_parent()

Type Parameter Key Value
PARAM_VALUE 0 cgrp 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 irq
LOCK2 lock
HALF_LOCKED2 &seq->lock
HALF_LOCKED2 &sf->lock
HALF_LOCKED2 global &cgroup_mutex