Defined in 1 files as a function:
Referenced in 8 files:
- drivers/net/tun.c
- drivers/net/veth.c, line 538
- drivers/net/wireguard/receive.c, line 556
- include/linux/ptr_ring.h
- kernel/bpf/cpumap.c, line 743
- net/core/page_pool.c
- tools/testing/selftests/mm/page_frag/page_frag_test.c, line 103
- tools/virtio/ringtest/ptr_ring.c, line 132
Smatch caller information:
net/sched/sch_generic.c ptr_ring_produce() -> __ptr_ring_produce()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | r | 4096-ptr_max |
| PARAM_VALUE | 1 | ptr | 4096-ptr_max |
| BUF_SIZE | 1 | ptr | (-1)-s32max |
| BUF_SIZE | 1 | ptr | (-1)-s32max |
| DATA_SOURCE | 0 | r | $0 |
| DATA_SOURCE | 1 | ptr | $1 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | 0 | &r->producer_lock | |
| HALF_LOCKED2 | rcu_read | ||
| TYPE_LOCK | (struct ptr_ring)->producer_lock |
net/core/page_pool.c page_pool_recycle_in_ring() -> __ptr_ring_produce()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | r | 4096-ptr_max |
| PARAM_VALUE | 1 | ptr | 1-u64max |
| DATA_SOURCE | 1 | ptr | $1 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 1 | ptr | unit_byte |
| LOCK2 | &pool->ring.producer_lock | ||
| HALF_LOCKED2 | &q->lock | ||
| HALF_LOCKED2 | bh | ||
| HALF_LOCKED2 | rcu_read | ||
| TYPE_LOCK | (struct ptr_ring)->producer_lock |
net/core/page_pool.c page_pool_recycle_ring_bulk() -> __ptr_ring_produce()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | r | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &pool->ring.producer_lock | ||
| HALF_LOCKED2 | &dring->lock | ||
| HALF_LOCKED2 | &lan966x->tx_lock | ||
| HALF_LOCKED2 | bh | ||
| HALF_LOCKED2 | flags | ||
| HALF_LOCKED2 | rcu_read | ||
| TYPE_LOCK | (struct ptr_ring)->producer_lock |
kernel/bpf/cpumap.c bq_flush_to_queue() -> __ptr_ring_produce()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | r | 4096-ptr_max |
| BUF_SIZE | 1 | ptr | 1-s32max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | 0 | &r->producer_lock | |
| HALF_LOCKED2 | bh | ||
| TYPE_LOCK | (struct ptr_ring)->producer_lock |
kernel/bpf/cpumap.c ptr_ring_produce() -> __ptr_ring_produce()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | r | 4096-ptr_max |
| PARAM_VALUE | 1 | ptr | 4096-ptr_max |
| DATA_SOURCE | 0 | r | $0 |
| DATA_SOURCE | 1 | ptr | $1 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | 0 | &r->producer_lock | |
| HALF_LOCKED2 | bh | ||
| HALF_LOCKED2 | rcu_read | ||
| TYPE_LOCK | (struct ptr_ring)->producer_lock |
drivers/net/wireguard/send.c ptr_ring_produce_bh() -> __ptr_ring_produce()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | r | 4096-ptr_max |
| PARAM_VALUE | 1 | ptr | 4096-8628176513917739007,8628176513917739009-ptr_max |
| DATA_SOURCE | 0 | r | $0 |
| DATA_SOURCE | 1 | ptr | $1 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 1 | ptr | unit_byte |
| LOCK2 | bh | ||
| LOCK2 | rcu_read | ||
| LOCK2 | 0 | &r->producer_lock | |
| HALF_LOCKED2 | &wg->device_update_lock | ||
| HALF_LOCKED2 | &wg->static_identity.lock | ||
| HALF_LOCKED2 | global &rtnl_mutex | ||
| TYPE_LOCK | (struct ptr_ring)->producer_lock |
drivers/net/wireguard/receive.c ptr_ring_produce_bh() -> __ptr_ring_produce()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | r | 4096-ptr_max |
| PARAM_VALUE | 1 | ptr | 4096-ptr_max |
| BUF_SIZE | 1 | ptr | (-1)-s32max |
| BUF_SIZE | 1 | ptr | (-1)-s32max |
| DATA_SOURCE | 0 | r | $0 |
| DATA_SOURCE | 1 | ptr | $1 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 1 | ptr | unit_byte |
| LOCK2 | bh | ||
| LOCK2 | 0 | &r->producer_lock | |
| HALF_LOCKED2 | rcu_read | ||
| TYPE_LOCK | (struct ptr_ring)->producer_lock |
drivers/net/wireguard/receive.c wg_packet_receive() -> __ptr_ring_produce()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | r | 4096-ptr_max |
| PARAM_VALUE | 1 | ptr | 4096-ptr_max |
| BUF_SIZE | 1 | ptr | (-1)-s32max |
| DATA_SOURCE | 1 | ptr | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 1 | ptr | unit_byte |
| LOCK2 | &wg->handshake_queue.ring.producer_lock | ||
| LOCK2 | bh | ||
| TYPE_LOCK | (struct ptr_ring)->producer_lock |
drivers/net/veth.c ptr_ring_produce() -> __ptr_ring_produce()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | r | 4096-ptr_max |
| DATA_SOURCE | 0 | r | $0 |
| DATA_SOURCE | 1 | ptr | $1 |
| PREEMPT_ADD | <- disables preempt | ||
| LOCK2 | 0 | &r->producer_lock | |
| TYPE_LOCK | (struct ptr_ring)->producer_lock |
drivers/net/veth.c veth_xdp_xmit() -> __ptr_ring_produce()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | r | 4096-ptr_max |
| DATA_SOURCE | 1 | ptr | r veth_xdp_to_ptr |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &rq->xdp_ring.producer_lock | ||
| LOCK2 | rcu_read | ||
| TYPE_LOCK | (struct ptr_ring)->producer_lock |
drivers/net/tap.c ptr_ring_produce() -> __ptr_ring_produce()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | r | 4096-ptr_max |
| PARAM_VALUE | 1 | ptr | 4096-ptr_max |
| DATA_SOURCE | 0 | r | $0 |
| DATA_SOURCE | 1 | ptr | $1 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 1 | ptr | unit_byte |
| LOCK2 | rcu_read | ||
| LOCK2 | 0 | &r->producer_lock | |
| HALF_LOCKED2 | bh | ||
| TYPE_LOCK | (struct ptr_ring)->producer_lock |
drivers/net/tun.c tun_net_xmit() -> __ptr_ring_produce()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | r | 4096-ptr_max |
| PARAM_VALUE | 1 | ptr | 4096-ptr_max |
| BUF_SIZE | 1 | ptr | (-1)-s32max |
| DATA_SOURCE | 1 | ptr | $0 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &tfile->tx_ring.producer_lock | ||
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &dev->tx_global_lock | ||
| HALF_LOCKED2 | &txq->_xmit_lock | ||
| HALF_LOCKED2 | bh | ||
| HALF_LOCKED2 | flags | ||
| TYPE_LOCK | (struct ptr_ring)->producer_lock |
drivers/net/tun.c tun_xdp_xmit() -> __ptr_ring_produce()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | r | 4096-ptr_max |
| DATA_SOURCE | 1 | ptr | r tun_xdp_to_ptr |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &tfile->tx_ring.producer_lock | ||
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | bh | ||
| TYPE_LOCK | (struct ptr_ring)->producer_lock |
drivers/gpu/drm/xe/xe_gt_sriov_pf_migration.c ptr_ring_produce() -> __ptr_ring_produce()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | r | 4096-ptr_max |
| PARAM_VALUE | 1 | ptr | 4096-ptr_max |
| BUF_SIZE | 1 | ptr | (-1),64 |
| BUF_SIZE | 1 | ptr | (-1),64 |
| DATA_SOURCE | 0 | r | $0 |
| DATA_SOURCE | 1 | ptr | $1 |
| PREEMPT_ADD | <- disables preempt | ||
| LOCK2 | 0 | &r->producer_lock | |
| TYPE_LOCK | (struct ptr_ring)->producer_lock |