Defined in 1 files as a function:
Referenced in 7 files:
- drivers/net/tun.c, line 2237
- drivers/net/veth.c, line 916
- include/linux/ptr_ring.h
- include/linux/skb_array.h, line 98
- net/core/page_pool.c, line 405
- tools/testing/selftests/mm/page_frag/page_frag_test.c, line 55
- tools/virtio/ringtest/ptr_ring.c, line 201
Smatch caller information:
net/sched/sch_generic.c __ptr_ring_swap_queue() -> __ptr_ring_consume()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | r | $0 |
| TASK_NOT_RUNNING | |||
| LOCK2 | bh | ||
| LOCK2 | global &rtnl_mutex |
net/sched/sch_generic.c __ptr_ring_swap_queue() -> __ptr_ring_consume()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | r | 4096-ptr_max |
| PARAM_VALUE | 0 | r->consumer_head | s32min-2147483646 |
| PARAM_VALUE | 0 | r->size | s32min-(-1),1-s32max |
| PARAM_VALUE | 0 | *r->queue | 0 |
| CAPPED_DATA | 0 | r->batch | 1 |
| CAPPED_DATA | 0 | r->size | 1 |
| DATA_SOURCE | 0 | r | $0 |
| TASK_NOT_RUNNING | |||
| LOCK2 | bh | ||
| LOCK2 | global &rtnl_mutex |
net/sched/sch_generic.c __skb_array_consume() -> __ptr_ring_consume()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | r | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | bh |
net/sched/sch_generic.c ptr_ring_consume() -> __ptr_ring_consume()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | r | 4096-ptr_max |
| PARAM_VALUE | 0 | r->queue | 1-u64max |
| DATA_SOURCE | 0 | r | $0 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | 0 | &r->consumer_lock | |
| HALF_LOCKED2 | global &rtnl_mutex | ||
| TYPE_LOCK | (struct ptr_ring)->consumer_lock |
net/core/page_pool.c page_pool_refill_alloc_cache() -> __ptr_ring_consume()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | r | 4096-ptr_max |
| PARAM_VALUE | 0 | r->size | s32min-(-1),1-s32max |
| BUF_SIZE | 0 | r | 320 |
| CAPPED_DATA | 0 | r->size | 1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | rcu_read |
net/core/page_pool.c ptr_ring_consume() -> __ptr_ring_consume()
| 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 | |||
| NO_OVERFLOW_SIMPLE | 0 | r->size | |
| LOCK2 | 0 | &r->consumer_lock | |
| TYPE_LOCK | (struct ptr_ring)->consumer_lock |
net/core/page_pool.c ptr_ring_consume_bh() -> __ptr_ring_consume()
| 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 | |||
| NO_OVERFLOW_SIMPLE | 0 | r->size | |
| LOCK2 | bh | ||
| LOCK2 | 0 | &r->consumer_lock | |
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct ptr_ring)->consumer_lock |
drivers/net/wireguard/queueing.c ptr_ring_consume() -> __ptr_ring_consume()
| 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 | |||
| NO_OVERFLOW_SIMPLE | 0 | r->size | |
| LOCK2 | 0 | &r->consumer_lock | |
| HALF_LOCKED2 | &wg->device_update_lock | ||
| HALF_LOCKED2 | global &rtnl_mutex | ||
| TYPE_LOCK | (struct ptr_ring)->consumer_lock |
kernel/bpf/cpumap.c __ptr_ring_consume_batched() -> __ptr_ring_consume()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | r | 4096-ptr_max |
| DATA_SOURCE | 0 | r | $0 |
kernel/bpf/cpumap.c ptr_ring_consume() -> __ptr_ring_consume()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | r | 4096-ptr_max |
| DATA_SOURCE | 0 | r | $0 |
| PREEMPT_ADD | <- disables preempt | ||
| NO_OVERFLOW_SIMPLE | 0 | r->size | |
| LOCK2 | 0 | &r->consumer_lock | |
| TYPE_LOCK | (struct ptr_ring)->consumer_lock |
drivers/net/wireguard/send.c ptr_ring_consume_bh() -> __ptr_ring_consume()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | r | 4096-ptr_max |
| DATA_SOURCE | 0 | r | $0 |
| PREEMPT_ADD | <- disables preempt | ||
| LOCK2 | bh | ||
| LOCK2 | 0 | &r->consumer_lock | |
| TYPE_LOCK | (struct ptr_ring)->consumer_lock |
drivers/vhost/net.c __ptr_ring_consume_batched() -> __ptr_ring_consume()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | r | 4096-ptr_max |
| DATA_SOURCE | 0 | r | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &vq->mutex | ||
| LOCK2 | 0 | &r->consumer_lock | |
| TYPE_LOCK | (struct ptr_ring)->consumer_lock | ||
| TYPE_LOCK | (struct vhost_virtqueue)->mutex |
drivers/net/wireguard/receive.c ptr_ring_consume_bh() -> __ptr_ring_consume()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | r | 4096-ptr_max |
| DATA_SOURCE | 0 | r | $0 |
| PREEMPT_ADD | <- disables preempt | ||
| LOCK2 | bh | ||
| LOCK2 | 0 | &r->consumer_lock | |
| TYPE_LOCK | (struct ptr_ring)->consumer_lock |
drivers/net/veth.c ptr_ring_consume() -> __ptr_ring_consume()
| 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 |
drivers/net/veth.c veth_xdp_rcv() -> __ptr_ring_consume()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | r | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &ni->dev_lock | ||
| HALF_LOCKED2 | bh | ||
| HALF_LOCKED2 | rcu_read |
drivers/net/tap.c __ptr_ring_swap_queue() -> __ptr_ring_consume()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | r | $0 |
| LOCK2 | bh |
drivers/net/tap.c __ptr_ring_swap_queue() -> __ptr_ring_consume()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | r | 4096-ptr_max |
| PARAM_VALUE | 0 | r->consumer_head | s32min-2147483646 |
| PARAM_VALUE | 0 | r->size | s32min-(-1),1-s32max |
| PARAM_VALUE | 0 | *r->queue | 0 |
| CAPPED_DATA | 0 | r->batch | 1 |
| CAPPED_DATA | 0 | r->size | 1 |
| DATA_SOURCE | 0 | r | $0 |
| LOCK2 | bh |
drivers/net/tap.c ptr_ring_consume() -> __ptr_ring_consume()
| 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 |
drivers/net/wireguard/device.c ptr_ring_consume() -> __ptr_ring_consume()
| 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 | &dev->lock | ||
| HALF_LOCKED2 | &rdev->wiphy.mtx | ||
| HALF_LOCKED2 | global &rtnl_mutex | ||
| TYPE_LOCK | (struct ptr_ring)->consumer_lock |
drivers/net/tun.c __ptr_ring_swap_queue() -> __ptr_ring_consume()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | r | $0 |
| HALF_LOCKED2 | bh | ||
| HALF_LOCKED2 | flags | ||
| HALF_LOCKED2 | 0 | &r->consumer_lock | |
| HALF_LOCKED2 | 0 | &r->producer_lock |
drivers/net/tun.c __ptr_ring_swap_queue() -> __ptr_ring_consume()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | r | 4096-ptr_max |
| PARAM_VALUE | 0 | r->consumer_head | s32min-2147483646 |
| PARAM_VALUE | 0 | r->size | s32min-(-1),1-s32max |
| PARAM_VALUE | 0 | *r->queue | 0 |
| CAPPED_DATA | 0 | r->batch | 1 |
| CAPPED_DATA | 0 | r->size | 1 |
| DATA_SOURCE | 0 | r | $0 |
| HALF_LOCKED2 | bh | ||
| HALF_LOCKED2 | flags | ||
| HALF_LOCKED2 | 0 | &r->consumer_lock | |
| HALF_LOCKED2 | 0 | &r->producer_lock |
drivers/net/tun.c ptr_ring_consume() -> __ptr_ring_consume()
| 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 | global &rtnl_mutex | ||
| TYPE_LOCK | (struct ptr_ring)->consumer_lock |
drivers/net/tun.c tun_ring_consume() -> __ptr_ring_consume()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | r | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &tfile->tx_ring.consumer_lock | ||
| TYPE_LOCK | (struct ptr_ring)->consumer_lock |
drivers/gpu/drm/xe/xe_gt_sriov_pf_migration.c ptr_ring_consume() -> __ptr_ring_consume()
| 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 | &pool->lock | ||
| TYPE_LOCK | (struct ptr_ring)->consumer_lock |