Documented in 1 files:
Defined in 1 files as a prototype:
Defined in 1 files as a function:
Referenced in 9 files:
- block/blk-mq.c
- block/blk-pm.c, line 89
- drivers/md/md-llbitmap.c, line 842
- drivers/md/md.c
- drivers/target/target_core_transport.c
- kernel/bpf/cgroup.c
- lib/percpu-refcount.c
- mm/swap.h
- mm/zswap.c, line 388
Smatch caller information:
mm/memcontrol.c __swap_cluster_lock() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING |
mm/memcontrol.c __swap_offset_to_cluster() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING |
mm/memcontrol.c __swap_type_to_info() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING |
drivers/md/md-llbitmap.c llbitmap_suspend_timeout() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| PARAM_VALUE | 0 | ref->data | 0,4096-ptr_max |
| HALF_LOCKED2 | &pool->lock |
drivers/md/md-llbitmap.c llbitmap_suspend_timeout() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| PARAM_VALUE | 0 | ref->data | 0,4096-ptr_max |
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &pool->lock |
drivers/md/md-llbitmap.c llbitmap_suspend_timeout() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| PARAM_VALUE | 0 | ref->data | 0,4096-ptr_max |
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &pool->lock |
mm/huge_memory.c __swap_cluster_lock() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | irq |
mm/huge_memory.c __swap_offset_to_cluster() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | irq |
mm/huge_memory.c __swap_type_to_info() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | irq |
drivers/md/md.c md_flush_request() -> percpu_ref_is_zero()
| 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 | &bio->bi_bdev->bd_queue->queue_lock | ||
| HALF_LOCKED2 | &md->io_barrier |
drivers/md/md.c mddev_suspend() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| PARAM_VALUE | 0 | ref->data | 0,4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &mddev->suspend_mutex | ||
| HALF_LOCKED2 | &of->mutex | ||
| TYPE_LOCK | (struct mddev)->suspend_mutex |
drivers/md/md.c mddev_suspend() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| PARAM_VALUE | 0 | ref->data | 0,4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &mddev->suspend_mutex | ||
| HALF_LOCKED2 | &of->mutex | ||
| TYPE_LOCK | (struct mddev)->suspend_mutex |
drivers/md/md.c mddev_suspend() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| PARAM_VALUE | 0 | ref->data | 0,4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &mddev->suspend_mutex | ||
| HALF_LOCKED2 | &of->mutex | ||
| TYPE_LOCK | (struct mddev)->suspend_mutex |
drivers/md/md.c mddev_suspend() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| PARAM_VALUE | 0 | ref->data | 0,4096-ptr_max |
| RX_PATH | |||
| LOCK2 | &mddev->suspend_mutex | ||
| TYPE_LOCK | (struct mddev)->suspend_mutex |
drivers/md/md.c mddev_suspend() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| PARAM_VALUE | 0 | ref->data | 0,4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &mddev->suspend_mutex | ||
| TYPE_LOCK | (struct mddev)->suspend_mutex |
drivers/md/md.c mddev_suspend() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| PARAM_VALUE | 0 | ref->data | 0,4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &mddev->suspend_mutex | ||
| TYPE_LOCK | (struct mddev)->suspend_mutex |
drivers/md/md.c set_in_sync() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| PARAM_VALUE | 0 | ref->data | 4096-ptr_max |
| CAPABLE | 0 | 21 | |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &mddev->lock | ||
| LOCK2 | &of->mutex | ||
| HALF_LOCKED2 | &mddev->reconfig_mutex | ||
| HALF_LOCKED2 | &of->prealloc_mutex | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct kernfs_open_file)->mutex | ||
| TYPE_LOCK | (struct mddev)->lock |
mm/page_io.c __swap_cluster_lock() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
mm/page_io.c __swap_offset_to_cluster() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING |
mm/page_io.c __swap_type_to_info() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING |
mm/swapfile.c __swap_cluster_lock() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &oldmm->mmap_lock | ||
| HALF_LOCKED2 | &si->global_cluster_lock | ||
| HALF_LOCKED2 | dst_ptl | ||
| HALF_LOCKED2 | global &device_hotplug_lock | ||
| HALF_LOCKED2 | global &system_transition_mutex | ||
| HALF_LOCKED2 | ptl | ||
| HALF_LOCKED2 | rcu_read | ||
| HALF_LOCKED2 | src_ptl |
mm/swapfile.c __swap_offset_to_cluster() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &oldmm->mmap_lock |
mm/swapfile.c __swap_type_to_info() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | global &system_transition_mutex |
lib/percpu-refcount.c percpu_ref_reinit() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| PARAM_VALUE | 0 | ref->data | 0,4096-ptr_max |
| DATA_SOURCE | 0 | ref | $0 |
| LOCK2 | &wq->wq_lock | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct idxd_wq)->wq_lock |
block/blk-mq.c blk_mq_freeze_queue_wait() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &ctrl->scan_lock | ||
| HALF_LOCKED2 | &ctrl->srcu | ||
| HALF_LOCKED2 | &subsys->lock |
block/blk-mq.c blk_mq_freeze_queue_wait() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &ctrl->scan_lock | ||
| HALF_LOCKED2 | &ctrl->srcu | ||
| HALF_LOCKED2 | &subsys->lock |
block/blk-mq.c blk_mq_freeze_queue_wait() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &ctrl->scan_lock | ||
| HALF_LOCKED2 | &ctrl->srcu | ||
| HALF_LOCKED2 | &subsys->lock |
block/blk-mq.c blk_mq_freeze_queue_wait_timeout() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &ctrl->srcu | ||
| HALF_LOCKED2 | &dev->shutdown_lock | ||
| TYPE_LOCK | (struct nvme_ctrl)->srcu |
block/blk-mq.c blk_mq_freeze_queue_wait_timeout() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &ctrl->srcu | ||
| HALF_LOCKED2 | &dev->shutdown_lock | ||
| TYPE_LOCK | (struct nvme_ctrl)->srcu |
block/blk-mq.c blk_mq_freeze_queue_wait_timeout() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &ctrl->srcu | ||
| HALF_LOCKED2 | &dev->shutdown_lock | ||
| TYPE_LOCK | (struct nvme_ctrl)->srcu |
mm/zswap.c __zswap_pool_release() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| HALF_LOCKED2 | &pool->lock |
mm/shmem.c __swap_cluster_lock() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING |
mm/shmem.c __swap_offset_to_cluster() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING |
mm/shmem.c __swap_type_to_info() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING |
mm/vmscan.c __swap_cluster_lock() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING |
mm/vmscan.c __swap_offset_to_cluster() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING |
mm/vmscan.c __swap_type_to_info() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING |
kernel/bpf/cgroup.c purge_effective_progs() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | global &cgroup_mutex |
kernel/bpf/cgroup.c replace_effective_prog() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| LOCK2 | global &cgroup_mutex |
kernel/bpf/cgroup.c update_effective_progs() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | global &cgroup_mutex |
kernel/bpf/cgroup.c update_effective_progs() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | global &cgroup_mutex |
drivers/target/target_core_transport.c target_do_delayed_work() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| LOCK2 | &dev->delayed_cmd_lock | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct se_device)->delayed_cmd_lock |
drivers/target/target_core_transport.c target_wait_for_cmds() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING |
drivers/target/target_core_transport.c target_wait_for_cmds() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING |
drivers/target/target_core_transport.c target_wait_for_cmds() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING |
mm/migrate.c __swap_cluster_lock() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING |
mm/migrate.c __swap_offset_to_cluster() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING |
mm/migrate.c __swap_type_to_info() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING |
block/blk-pm.c blk_pre_runtime_suspend() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| PARAM_VALUE | 0 | ref->data | 4096-ptr_max |
mm/swap_state.c __swap_cluster_lock() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | global &mf_mutex | ||
| HALF_LOCKED2 | vmf->ptl |
mm/swap_state.c __swap_offset_to_cluster() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING |
mm/swap_state.c __swap_type_to_info() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING |
mm/memcontrol-v1.c __swap_cluster_lock() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING |
mm/memcontrol-v1.c __swap_offset_to_cluster() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ref | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING |
mm/memcontrol-v1.c __swap_type_to_info() -> percpu_ref_is_zero()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING |