Documented in 1 files:

Defined in 1 files as a function:

Referenced in 22 files:

Smatch caller information:

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

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
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 md_account_bio() -> percpu_ref_get()

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

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

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &md->io_barrier

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

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &sh->stripe_lock
LOCK2 irq
HALF_LOCKED2 &bi->bi_bdev->bd_queue->queue_lock
TYPE_LOCK (struct stripe_head)->stripe_lock

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

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &bi->bi_bdev->bd_queue->queue_lock
HALF_LOCKED2 &md->io_barrier

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

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

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

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PARAM_VALUE 0 ref->data 4096-ptr_max
PARAM_VALUE 0 ref->data->confirm_switch 1-u64max
DATA_SOURCE 0 ref $0
BIT_INFO 0 ref->percpu_count_ptr 0x1,0xffffffffffffffff
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
HALF_LOCKED2 irq

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

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
DATA_SOURCE 0 ref $0
BIT_INFO 0 ref->percpu_count_ptr 0x0,0xfffffffffffffffd
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
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

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

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

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

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
NOCHECK_CALL

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

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
NOCHECK_CALL
LOCK2 &ctx->ring_lock
TYPE_LOCK (struct kioctx)->ring_lock

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

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
NOCHECK_CALL
LOCK2 &ctx->ring_lock
TYPE_LOCK (struct kioctx)->ring_lock

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

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

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

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

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

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 sk

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

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
LOCK2 &of->mutex
HALF_LOCKED2 &ipcp->lock
TYPE_LOCK (struct kernfs_open_file)->mutex

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

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

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

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 _T->lock
LOCK2 bh

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

Type Parameter Key Value
CAPABLE 0 12
PREEMPT_ADD <- disables preempt
NOCHECK_CALL
LOCK2 &ctx->uring_lock
LOCK2 _T->lock
LOCK2 bh
TYPE_LOCK (struct io_ring_ctx)->uring_lock

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

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

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

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
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 &wb->list_lock
HALF_LOCKED2 irq
HALF_LOCKED2 rcu_read

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

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &ctx->completion_lock
HALF_LOCKED2 &ctx->uring_lock
TYPE_LOCK (struct io_ring_ctx)->completion_lock

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

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 sk

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

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
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 cgroup_bpf_get() -> percpu_ref_get()

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
NOCHECK_CALL

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

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
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 cgroup_bpf_get() -> percpu_ref_get()

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

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

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &lo->lo_work_lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &resv->lock
HALF_LOCKED2 flags
HALF_LOCKED2 global &cgwb_lock
HALF_LOCKED2 global &css_set_lock
HALF_LOCKED2 global &oom_lock
HALF_LOCKED2 global &sched_domains_mutex
HALF_LOCKED2 irq
HALF_LOCKED2 rcu_read

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

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

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

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
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 smc_wr_reg_send() -> percpu_ref_get()

Type Parameter Key Value
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

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

Type Parameter Key Value
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 smc_wr_tx_link_hold() -> percpu_ref_get()

Type Parameter Key Value
NOCHECK_CALL
HALF_LOCKED2 &lgr->llc_conf_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct smc_link_group)->llc_conf_mutex

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

Type Parameter Key Value
PARAM_VALUE 0 ref 4096-ptr_max
NOCHECK_CALL

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

Type Parameter Key Value
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 blkg_get() -> percpu_ref_get()

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