Documented in 1 files:

Defined in 1 files as a function:

Referenced in 6 files:

Smatch caller information:

mm/memcontrol.c obj_cgroup_get_many() -> percpu_ref_get_many()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
DATA_SOURCE 1 nr $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 irq

block/blk-throttle.c percpu_ref_get() -> percpu_ref_get_many()

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

drivers/md/md.c percpu_ref_get() -> percpu_ref_get_many()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 1 nr 1
DATA_SOURCE 0 ref $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &sh->stripe_lock
HALF_LOCKED2 irq
HALF_LOCKED2 rcu_read

mm/percpu.c obj_cgroup_get_many() -> percpu_ref_get_many()

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

io_uring/msg_ring.c percpu_ref_get() -> percpu_ref_get_many()

Type Parameter Key Value
PARAM_VALUE 1 nr 1
DATA_SOURCE 0 ref $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

lib/percpu-refcount.c percpu_ref_get() -> percpu_ref_get_many()

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

block/blk-mq.c __blk_mq_alloc_requests_batch() -> percpu_ref_get_many()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 1 nr 0-s32max,18446744071562067968-u64max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

block/blk-mq.c percpu_ref_get() -> percpu_ref_get_many()

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

fs/aio.c percpu_ref_get() -> percpu_ref_get_many()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 1 nr 1
DATA_SOURCE 0 ref $0
NOCHECK_CALL
HALF_LOCKED2 &ctx->ring_lock

drivers/scsi/scsi_lib.c percpu_ref_get() -> percpu_ref_get_many()

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

kernel/bpf/syscall.c obj_cgroup_get_many() -> percpu_ref_get_many()

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

mm/zswap.c obj_cgroup_get_many() -> percpu_ref_get_many()

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

mm/zswap.c percpu_ref_get() -> percpu_ref_get_many()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 0 ref->percpu_count_ptr 1-u64max
PARAM_VALUE 1 nr 1
DATA_SOURCE 0 ref $0
NOCHECK_CALL

net/smc/smc_tx.c percpu_ref_get() -> percpu_ref_get_many()

Type Parameter Key Value
PARAM_VALUE 1 nr 1
DATA_SOURCE 0 ref $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 sk

drivers/pci/p2pdma.c percpu_ref_get() -> percpu_ref_get_many()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 0 ref->percpu_count_ptr 1-u64max
PARAM_VALUE 1 nr 1
DATA_SOURCE 0 ref $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &of->mutex
HALF_LOCKED2 &ipcp->lock
TYPE_LOCK (struct kernfs_open_file)->mutex

drivers/infiniband/sw/rdmavt/mr.c percpu_ref_get() -> percpu_ref_get_many()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 1 nr 1
DATA_SOURCE 0 ref $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &rkt->lock
HALF_LOCKED2 flags
HALF_LOCKED2 rcu_read

io_uring/zcrx.c percpu_ref_get() -> percpu_ref_get_many()

Type Parameter Key Value
PARAM_VALUE 1 nr 1
DATA_SOURCE 0 ref $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 _T->lock
LOCK2 bh
HALF_LOCKED2 &ctx->uring_lock

drivers/nvme/target/core.c percpu_ref_get() -> percpu_ref_get_many()

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

fs/fs-writeback.c percpu_ref_get() -> percpu_ref_get_many()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 1 nr 1
DATA_SOURCE 0 ref $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &(&mapping->i_pages)->xa_lock
HALF_LOCKED2 &bdi->wb_switch_rwsem
HALF_LOCKED2 &inode->i_lock
HALF_LOCKED2 &old_wb->list_lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &wb->list_lock
HALF_LOCKED2 irq
HALF_LOCKED2 rcu_read

io_uring/io_uring.c __io_alloc_req_refill() -> percpu_ref_get_many()

Type Parameter Key Value
PARAM_VALUE 1 nr 1,8
CAPPED_DATA 1 nr 1
BIT_INFO 1 nr 0x0,0x9
NOCHECK_CALL
UNITS 1 nr unit_array_size
HALF_LOCKED2 &ctx->uring_lock
HALF_LOCKED2 &ctx->uring_lock
HALF_LOCKED2 &sqd->lock
TYPE_LOCK (struct io_ring_ctx)->uring_lock

io_uring/io_uring.c percpu_ref_get() -> percpu_ref_get_many()

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

kernel/bpf/memalloc.c obj_cgroup_get_many() -> percpu_ref_get_many()

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

net/smc/smc_cdc.c percpu_ref_get() -> percpu_ref_get_many()

Type Parameter Key Value
PARAM_VALUE 1 nr 1
DATA_SOURCE 0 ref $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 sk

drivers/infiniband/hw/hfi1/rc.c percpu_ref_get() -> percpu_ref_get_many()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 1 nr 1
DATA_SOURCE 0 ref $0
PREEMPT_ADD
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &qp->s_lock
LOCK2 ps.flags
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct rvt_qp)->s_lock

kernel/bpf/cgroup.c percpu_ref_get() -> percpu_ref_get_many()

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

block/blk-zoned.c percpu_ref_get() -> percpu_ref_get_many()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 1 nr 1
DATA_SOURCE 0 ref $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &zwplug->lock
LOCK2 flags
HALF_LOCKED2 &bio->bi_bdev->bd_queue->queue_lock
HALF_LOCKED2 &md->io_barrier
TYPE_LOCK (struct blk_zone_wplug)->lock

kernel/cgroup/cgroup.c css_get_many() -> percpu_ref_get_many()

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

kernel/cgroup/cgroup.c percpu_ref_get() -> percpu_ref_get_many()

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

drivers/infiniband/ulp/rtrs/rtrs-srv.c percpu_ref_get() -> percpu_ref_get_many()

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

block/blk-cgroup.c percpu_ref_get() -> percpu_ref_get_many()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 1 nr 1
DATA_SOURCE 0 ref $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &blkcg->lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &q->blkcg_mutex
HALF_LOCKED2 &q->queue_lock
HALF_LOCKED2 irq

net/smc/smc_wr.c percpu_ref_get() -> percpu_ref_get_many()

Type Parameter Key Value
PARAM_VALUE 1 nr 1
DATA_SOURCE 0 ref $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &lgr->llc_conf_mutex
HALF_LOCKED2 &lgr->rmbs_lock
HALF_LOCKED2 &lgr->sndbufs_lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &smc->sk
HALF_LOCKED2 global &smc_client_lgr_pending
HALF_LOCKED2 global &smc_server_lgr_pending

mm/memremap.c pagemap_range() -> percpu_ref_get_many()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 0 ref->data 4096-ptr_max
PARAM_VALUE 0 ref->percpu_count_ptr 4096-18446744073709547523
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &mdevice->devmem_lock
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 global &list_lock

net/smc/smc_llc.c percpu_ref_get() -> percpu_ref_get_many()

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

net/smc/smc_core.c percpu_ref_get() -> percpu_ref_get_many()

Type Parameter Key Value
PARAM_VALUE 1 nr 1
DATA_SOURCE 0 ref $0
NOCHECK_CALL
LOCK2 &pool->lock
HALF_LOCKED2 &lgr->llc_conf_mutex
TYPE_LOCK (struct smc_link_group)->llc_conf_mutex

kernel/bpf/trampoline.c percpu_ref_get() -> percpu_ref_get_many()

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

io_uring/tw.c percpu_ref_get() -> percpu_ref_get_many()

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

block/bfq-cgroup.c percpu_ref_get() -> percpu_ref_get_many()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 1 nr 1
DATA_SOURCE 0 ref $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &bfqd->lock
HALF_LOCKED2 irq