Defined in 1 files as a function:

Referenced in 4 files:

Smatch caller information:

net/core/datagram.c zerocopy_fill_skb_from_devmem() -> net_iov_to_netmem()

Type Parameter Key Value
PARAM_VALUE 0 niov 1-u64max
DATA_SOURCE 0 niov r net_devmem_get_niov_at
RX_PATH

net/core/datagram.c zerocopy_fill_skb_from_devmem() -> net_iov_to_netmem()

Type Parameter Key Value
PARAM_VALUE 0 niov 1-u64max
DATA_SOURCE 0 niov r net_devmem_get_niov_at
RX_PATH

net/core/devmem.c mp_dmabuf_devmem_alloc_netmems() -> net_iov_to_netmem()

Type Parameter Key Value
PARAM_VALUE 0 niov 4096-ptr_max
DATA_SOURCE 0 niov r net_devmem_alloc_dmabuf
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 rcu_read

net/core/devmem.c net_devmem_bind_dmabuf() -> net_iov_to_netmem()

Type Parameter Key Value
PARAM_VALUE 0 niov 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 niov->owner->num_niovs
LOCK2 &dev->lock
LOCK2 &priv->lock
HALF_LOCKED2 &devlink->lock
HALF_LOCKED2 &net->xfrm.xfrm_cfg_mutex
HALF_LOCKED2 global &audit_cmd_mutex.lock
HALF_LOCKED2 global &cb_lock
HALF_LOCKED2 global &crypto_cfg_mutex
HALF_LOCKED2 global &dpll_lock
HALF_LOCKED2 global &hwsim_phys_lock
HALF_LOCKED2 global &net_dm_mutex
HALF_LOCKED2 global &rtnl_mutex
HALF_LOCKED2 global &rx_queue_mutex
HALF_LOCKED2 rcu_read
TYPE_LOCK (struct netdev_nl_sock)->lock

net/core/page_pool.c net_mp_niov_clear_page_pool() -> net_iov_to_netmem()

Type Parameter Key Value
PARAM_VALUE 0 niov 0,2-u64max
DATA_SOURCE 0 niov $0
RX_PATH
TASK_NOT_RUNNING

net/core/page_pool.c net_mp_niov_set_dma_addr() -> net_iov_to_netmem()

Type Parameter Key Value
PARAM_VALUE 0 niov 4096-ptr_max
DATA_SOURCE 0 niov $0
RX_PATH
TASK_NOT_RUNNING
LOCK2 _T->lock
HALF_LOCKED2 &ctx->uring_lock

net/core/page_pool.c net_mp_niov_set_page_pool() -> net_iov_to_netmem()

Type Parameter Key Value
PARAM_VALUE 0 niov 4096-ptr_max
DATA_SOURCE 0 niov $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 _T->lock
LOCK2 bh
HALF_LOCKED2 rcu_read

io_uring/zcrx.c io_alloc_fallback_niov() -> net_iov_to_netmem()

Type Parameter Key Value
PARAM_VALUE 0 niov 4096-ptr_max
DATA_SOURCE 0 niov r zcrx_get_free_niov
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 _T->lock

io_uring/zcrx.c io_zcrx_recv_frag() -> net_iov_to_netmem()

Type Parameter Key Value
PARAM_VALUE 0 niov 4096-ptr_max
DATA_SOURCE 0 niov r netmem_to_net_iov
RX_PATH
TASK_NOT_RUNNING

io_uring/zcrx.c io_zcrx_refill_slow() -> net_iov_to_netmem()

Type Parameter Key Value
PARAM_VALUE 0 niov 4096-ptr_max
DATA_SOURCE 0 niov r zcrx_get_free_niov
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 _T->lock
LOCK2 bh
HALF_LOCKED2 rcu_read

io_uring/zcrx.c io_zcrx_return_niov() -> net_iov_to_netmem()

Type Parameter Key Value
PARAM_VALUE 0 niov 4096-ptr_max
DATA_SOURCE 0 niov $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &ctx->uring_lock
HALF_LOCKED2 _T->lock
HALF_LOCKED2 bh

io_uring/zcrx.c io_zcrx_ring_refill() -> net_iov_to_netmem()

Type Parameter Key Value
PARAM_VALUE 0 niov 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 _T->lock
LOCK2 bh
HALF_LOCKED2 rcu_read

io_uring/zcrx.c io_zcrx_scrub() -> net_iov_to_netmem()

Type Parameter Key Value
PARAM_VALUE 0 niov 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 _T->lock
HALF_LOCKED2 &ctx->uring_lock

io_uring/zcrx.c zcrx_parse_rq() -> net_iov_to_netmem()

Type Parameter Key Value
PARAM_VALUE 0 niov 4096-ptr_max
PREEMPT_ADD
LOCK2 &ctx->uring_lock
LOCK2 _T->lock
LOCK2 bh
TYPE_LOCK (struct io_ring_ctx)->uring_lock