Documented in 1 files:

Defined in 1 files as a function:

Referenced in 14 files:

Smatch caller information:

drivers/md/md-llbitmap.c llbitmap_raise_barrier() -> percpu_ref_is_dying()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 0 ref->percpu_count_ptr 1-u64max
RX_PATH
TASK_NOT_RUNNING

drivers/md/md-llbitmap.c llbitmap_raise_barrier() -> percpu_ref_is_dying()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 0 ref->percpu_count_ptr 2-u64max
RX_PATH
TASK_NOT_RUNNING

drivers/md/md-llbitmap.c llbitmap_raise_barrier() -> percpu_ref_is_dying()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 0 ref->percpu_count_ptr 2-u64max
RX_PATH
TASK_NOT_RUNNING

drivers/md/md.c is_md_suspended() -> percpu_ref_is_dying()

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

kernel/bpf/bpf_cgrp_storage.c ____bpf_cgrp_storage_get() -> percpu_ref_is_dying()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max

lib/percpu-refcount.c __percpu_ref_switch_mode() -> percpu_ref_is_dying()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
DATA_SOURCE 0 ref $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 ref->percpu_count_ptr
LOCK2 global &percpu_ref_switch_lock
HALF_LOCKED2 flags
HALF_LOCKED2 irq

lib/percpu-refcount.c percpu_ref_kill_and_confirm() -> percpu_ref_is_dying()

Type Parameter Key Value
DATA_SOURCE 0 ref $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 ref->percpu_count_ptr
LOCK2 flags
LOCK2 global &percpu_ref_switch_lock
HALF_LOCKED2 &ctx->uring_lock
HALF_LOCKED2 &mddev->suspend_mutex
HALF_LOCKED2 &pr->pr_sem
HALF_LOCKED2 &priv->lock
HALF_LOCKED2 &q->mq_freeze_lock
HALF_LOCKED2 &q->queue_lock
HALF_LOCKED2 &wq->wq_lock
HALF_LOCKED2 global &cgwb_lock
HALF_LOCKED2 global &nfsd_mutex
HALF_LOCKED2 irq

lib/percpu-refcount.c percpu_ref_resurrect() -> percpu_ref_is_dying()

Type Parameter Key Value
PARAM_VALUE 0 ref 0-1025,1027-1029,1031-u64max
DATA_SOURCE 0 ref $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 flags
LOCK2 global &percpu_ref_switch_lock
HALF_LOCKED2 &dev->delayed_cmd_lock
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &mddev->suspend_mutex
HALF_LOCKED2 &q->mq_freeze_lock
HALF_LOCKED2 &wq->wq_lock
HALF_LOCKED2 flags
HALF_LOCKED2 global &swapon_mutex

io_uring/sqpoll.c __io_sq_thread() -> percpu_ref_is_dying()

Type Parameter Key Value
LOCK2 &ctx->uring_lock
LOCK2 &sqd->lock
TYPE_LOCK (struct io_ring_ctx)->uring_lock
TYPE_LOCK (struct io_sq_data)->lock

io_uring/zcrx.c io_lockdep_assert_cq_locked() -> percpu_ref_is_dying()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING

fs/fs-writeback.c wb_dying() -> percpu_ref_is_dying()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 0 ref->percpu_count_ptr 1-u64max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &pool->lock

io_uring/io_uring.c io_lockdep_assert_cq_locked() -> percpu_ref_is_dying()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &ctx->completion_lock
HALF_LOCKED2 &ctx->uring_lock

drivers/nvme/target/pr.c nvmet_pr_do_abort() -> percpu_ref_is_dying()

Type Parameter Key Value
PARAM_VALUE 0 ref 0-1025,1027-1029,1031-u64max
HALF_LOCKED2 &pool->lock

kernel/cgroup/cgroup.c cgroup_apply_control_disable() -> percpu_ref_is_dying()

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

kernel/cgroup/cgroup.c cgroup_apply_control_enable() -> percpu_ref_is_dying()

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

kernel/cgroup/cgroup.c cgroup_kill_sb() -> percpu_ref_is_dying()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &s->s_umount
HALF_LOCKED2 &sb->s_umount
HALF_LOCKED2 global &cifs_mount_mutex

kernel/cgroup/cgroup.c kill_css_finish() -> percpu_ref_is_dying()

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

kernel/cgroup/cgroup-v1.c cgroup1_get_tree() -> percpu_ref_is_dying()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 0 ref->percpu_count_ptr 1-u64max
NS_CAPABLE 0 21
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &fc->uapi_mutex

drivers/target/target_core_transport.c target_handle_task_attr() -> percpu_ref_is_dying()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 0 ref->percpu_count_ptr 1-u64max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &dev->delayed_cmd_lock
LOCK2 flags
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &sess->cmdsn_mutex
TYPE_LOCK (struct se_device)->delayed_cmd_lock

drivers/target/target_core_transport.c target_handle_task_attr() -> percpu_ref_is_dying()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 0 ref->percpu_count_ptr 1-u64max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &dev->delayed_cmd_lock
LOCK2 flags
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &sess->cmdsn_mutex
TYPE_LOCK (struct se_device)->delayed_cmd_lock

io_uring/tw.c io_should_terminate_tw() -> percpu_ref_is_dying()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 &ctx->uring_lock
TYPE_LOCK (struct io_ring_ctx)->uring_lock

io_uring/rw.c io_rw_should_reissue() -> percpu_ref_is_dying()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &epdata->dev->lock

io_uring/register.c __io_uring_register() -> percpu_ref_is_dying()

Type Parameter Key Value
LOCK2 &ctx->uring_lock
TYPE_LOCK (struct io_ring_ctx)->uring_lock