Defined in 1 files as a function:

Referenced in 8 files:

Smatch caller information:

net/sched/sch_generic.c __skb_array_empty() -> __ptr_ring_empty()

Type Parameter Key Value
PARAM_VALUE 0 r 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 bh
HALF_LOCKED2 rcu_read

net/core/page_pool.c page_pool_refill_alloc_cache() -> __ptr_ring_empty()

Type Parameter Key Value
PARAM_VALUE 0 r 4096-ptr_max
BUF_SIZE 0 r 320
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 rcu_read

drivers/net/wireguard/queueing.c wg_packet_queue_free() -> __ptr_ring_empty()

Type Parameter Key Value
PARAM_VALUE 0 r 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 r->size
HALF_LOCKED2 &wg->device_update_lock
HALF_LOCKED2 global &rtnl_mutex

kernel/bpf/cpumap.c cpu_map_kthread_run() -> __ptr_ring_empty()

Type Parameter Key Value

kernel/bpf/cpumap.c cpu_map_kthread_run() -> __ptr_ring_empty()

Type Parameter Key Value

kernel/bpf/cpumap.c cpu_map_kthread_run() -> __ptr_ring_empty()

Type Parameter Key Value
PARAM_VALUE 0 r 4096-ptr_max

kernel/bpf/cpumap.c cpu_map_kthread_run() -> __ptr_ring_empty()

Type Parameter Key Value
PARAM_VALUE 0 r 4096-ptr_max
PREEMPT_ADD <- disables preempt
LOCK2 bh

kernel/bpf/cpumap.c cpu_map_kthread_run() -> __ptr_ring_empty()

Type Parameter Key Value
PARAM_VALUE 0 r 4096-ptr_max

drivers/net/veth.c veth_poll() -> __ptr_ring_empty()

Type Parameter Key Value
PARAM_VALUE 0 r 4096-ptr_max
PARAM_VALUE 0 r->consumer_head s32min-2147483646
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 bh
HALF_LOCKED2 rcu_read

drivers/net/tap.c ptr_ring_empty() -> __ptr_ring_empty()

Type Parameter Key Value
PARAM_VALUE 0 r 4096-ptr_max
DATA_SOURCE 0 r $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 0 &r->consumer_lock
HALF_LOCKED2 &kvm->irq_srcu
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &vm->irqfds_lock
HALF_LOCKED2 global &irqfds_srcu
TYPE_LOCK (struct ptr_ring)->consumer_lock

drivers/net/tun.c __tun_detach() -> __ptr_ring_empty()

Type Parameter Key Value
PARAM_VALUE 0 r 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &ntfile->tx_ring.consumer_lock
LOCK2 &ntfile->tx_ring.producer_lock
LOCK2 bh
LOCK2 global &rtnl_mutex
TYPE_LOCK (struct ptr_ring)->consumer_lock
TYPE_LOCK (struct ptr_ring)->producer_lock

drivers/net/tun.c __tun_wake_queue() -> __ptr_ring_empty()

Type Parameter Key Value
PARAM_VALUE 0 r 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &nvq->rx_ring->consumer_lock
HALF_LOCKED2 &tfile->tx_ring.consumer_lock
HALF_LOCKED2 &vq->mutex
HALF_LOCKED2 rcu_read
TYPE_LOCK (struct ptr_ring)->consumer_lock

drivers/net/tun.c ptr_ring_empty() -> __ptr_ring_empty()

Type Parameter Key Value
PARAM_VALUE 0 r 4096-ptr_max
DATA_SOURCE 0 r $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 0 &r->consumer_lock
HALF_LOCKED2 &kvm->irq_srcu
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &vm->irqfds_lock
HALF_LOCKED2 global &irqfds_srcu
TYPE_LOCK (struct ptr_ring)->consumer_lock

drivers/gpu/drm/xe/xe_gt_sriov_pf_migration.c ptr_ring_empty() -> __ptr_ring_empty()

Type Parameter Key Value
PARAM_VALUE 0 r 4096-ptr_max
DATA_SOURCE 0 r $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 0 &r->consumer_lock
TYPE_LOCK (struct ptr_ring)->consumer_lock