Documented in 1 files:

Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 7 files:

Smatch caller information:

mm/memcontrol.c percpu_ref_kill() -> percpu_ref_kill_and_confirm()

Type Parameter Key Value
PARAM_VALUE 1 confirm_kill 0
DATA_SOURCE 0 ref $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 global &cgroup_mutex

drivers/md/md-llbitmap.c percpu_ref_kill() -> percpu_ref_kill_and_confirm()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 1 confirm_kill 0
DATA_SOURCE 0 ref $0
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

net/core/devmem.c percpu_ref_kill() -> percpu_ref_kill_and_confirm()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 1 confirm_kill 0
DATA_SOURCE 0 ref $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &priv->lock
HALF_LOCKED2 &dev->lock
HALF_LOCKED2 global &cb_lock
TYPE_LOCK (struct netdev_nl_sock)->lock

drivers/md/md.c percpu_ref_kill() -> percpu_ref_kill_and_confirm()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 1 confirm_kill 0
DATA_SOURCE 0 ref $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &mddev->suspend_mutex
HALF_LOCKED2 &md->suspend_lock
HALF_LOCKED2 &of->mutex
TYPE_LOCK (struct mddev)->suspend_mutex

mm/swapfile.c percpu_ref_kill() -> percpu_ref_kill_and_confirm()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 1 confirm_kill 0
DATA_SOURCE 0 ref $0
CAPABLE 0 21
NOCHECK_CALL

drivers/dma/idxd/irq.c percpu_ref_kill() -> percpu_ref_kill_and_confirm()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 1 confirm_kill 0
DATA_SOURCE 0 ref $0
NOCHECK_CALL
LOCK2 &wq->wq_lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct idxd_wq)->wq_lock

block/blk-mq.c percpu_ref_kill() -> percpu_ref_kill_and_confirm()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 1 confirm_kill 0
DATA_SOURCE 0 ref $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 ref->percpu_count_ptr
LOCK2 &q->mq_freeze_lock
HALF_LOCKED2 &ctrl->srcu
TYPE_LOCK (struct request_queue)->mq_freeze_lock

mm/backing-dev.c percpu_ref_kill() -> percpu_ref_kill_and_confirm()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 1 confirm_kill 0
DATA_SOURCE 0 ref $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &cgwb_lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 flags
HALF_LOCKED2 global &cgroup_mutex
HALF_LOCKED2 irq

fs/aio.c percpu_ref_kill() -> percpu_ref_kill_and_confirm()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 1 confirm_kill 0
DATA_SOURCE 0 ref $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 rcu_read

mm/zswap.c percpu_ref_kill() -> percpu_ref_kill_and_confirm()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 0 ref->data 0,4096-ptr_max
PARAM_VALUE 1 confirm_kill 0
DATA_SOURCE 0 ref $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &of->mutex

fs/nfsd/nfssvc.c nfsd_shutdown_net() -> percpu_ref_kill_and_confirm()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &nfsd_mutex

drivers/infiniband/sw/rdmavt/mr.c percpu_ref_kill() -> percpu_ref_kill_and_confirm()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 1 confirm_kill 0
DATA_SOURCE 0 ref $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/dma/idxd/device.c percpu_ref_kill() -> percpu_ref_kill_and_confirm()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 1 confirm_kill 0
DATA_SOURCE 0 ref $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &wq->wq_lock
TYPE_LOCK (struct idxd_wq)->wq_lock

drivers/nvme/target/core.c nvmet_sq_destroy() -> percpu_ref_kill_and_confirm()

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

drivers/nvme/target/core.c percpu_ref_kill() -> percpu_ref_kill_and_confirm()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 1 confirm_kill 0
DATA_SOURCE 0 ref $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &buffer->mutex
HALF_LOCKED2 &frag->frag_sem
HALF_LOCKED2 global &nvmet_config_sem

drivers/nvdimm/../../tools/testing/nvdimm/test/iomap.c percpu_ref_kill() -> percpu_ref_kill_and_confirm()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 1 confirm_kill 0
DATA_SOURCE 0 ref $0
NOCHECK_CALL

io_uring/io_uring.c percpu_ref_kill() -> percpu_ref_kill_and_confirm()

Type Parameter Key Value
PARAM_VALUE 1 confirm_kill 0
DATA_SOURCE 0 ref $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &ctx->uring_lock
TYPE_LOCK (struct io_ring_ctx)->uring_lock

drivers/nvme/target/pr.c nvmet_pr_set_ctrl_to_abort() -> percpu_ref_kill_and_confirm()

Type Parameter Key Value
PARAM_VALUE 0 ref 0-1025,1027-1029,1031-u64max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &pr->pr_sem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct nvmet_pr)->pr_sem

kernel/bpf/cgroup.c percpu_ref_kill() -> percpu_ref_kill_and_confirm()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 1 confirm_kill 0
DATA_SOURCE 0 ref $0
NOCHECK_CALL

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

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
NOCHECK_CALL
HALF_LOCKED2 global &cgroup_mutex

kernel/cgroup/cgroup.c percpu_ref_kill() -> percpu_ref_kill_and_confirm()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 1 confirm_kill 0
DATA_SOURCE 0 ref $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 global &cgroup_mutex

drivers/infiniband/ulp/rtrs/rtrs-srv.c percpu_ref_kill() -> percpu_ref_kill_and_confirm()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 1 confirm_kill 0
DATA_SOURCE 0 ref $0
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

block/blk-cgroup.c percpu_ref_kill() -> percpu_ref_kill_and_confirm()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 1 confirm_kill 0
DATA_SOURCE 0 ref $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &q->queue_lock
LOCK2 irq
HALF_LOCKED2 &blkcg->lock
HALF_LOCKED2 &q->blkcg_mutex
TYPE_LOCK (struct request_queue)->queue_lock

drivers/target/target_core_transport.c percpu_ref_kill() -> percpu_ref_kill_and_confirm()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 1 confirm_kill 0
DATA_SOURCE 0 ref $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dev->delayed_cmd_lock
HALF_LOCKED2 flags

drivers/target/target_core_transport.c target_stop_cmd_counter() -> percpu_ref_kill_and_confirm()

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

net/smc/smc_wr.c percpu_ref_kill() -> percpu_ref_kill_and_confirm()

Type Parameter Key Value
PARAM_VALUE 1 confirm_kill 0
DATA_SOURCE 0 ref $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &lgr->llc_conf_mutex
HALF_LOCKED2 &pool->lock

mm/memremap.c percpu_ref_kill() -> percpu_ref_kill_and_confirm()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 1 confirm_kill 0
DATA_SOURCE 0 ref $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &drm->dmem->mutex
HALF_LOCKED2 &mdevice->devmem_lock

kernel/bpf/trampoline.c percpu_ref_kill() -> percpu_ref_kill_and_confirm()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 1 confirm_kill 0
DATA_SOURCE 0 ref $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 bh
HALF_LOCKED2 rcu