Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

net/sched/sch_generic.c sch_direct_xmit() -> __netif_tx_release()

Type Parameter Key Value
PARAM_VALUE 0 txq 4096-ptr_max
DATA_SOURCE 0 txq $3
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &q->seqlock
HALF_LOCKED2 rcu_read

net/core/pktgen.c pktgen_xmit() -> __netif_tx_release()

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

drivers/net/ethernet/sfc/siena/tx.c efx_siena_xdp_tx_buffers() -> __netif_tx_release()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/net/ethernet/sfc/tx.c efx_xdp_tx_buffers() -> __netif_tx_release()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

net/xfrm/xfrm_device.c xfrm_dev_resume() -> __netif_tx_release()

Type Parameter Key Value
PARAM_VALUE 0 txq 4096-ptr_max
DATA_SOURCE 0 txq r netdev_core_pick_tx
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read

drivers/net/virtio_net.c virtnet_poll() -> __netif_tx_release()

Type Parameter Key Value
PARAM_VALUE 0 txq 4096-ptr_max
DATA_SOURCE 0 txq r netdev_get_tx_queue
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 bh
HALF_LOCKED2 rcu_read

drivers/net/virtio_net.c virtnet_xdp_xmit() -> __netif_tx_release()

Type Parameter Key Value
PARAM_VALUE 0 txq 4096-ptr_max
DATA_SOURCE 0 txq r netdev_get_tx_queue
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 rcu_read

net/core/dev.c __dev_direct_xmit() -> __netif_tx_release()

Type Parameter Key Value
PARAM_VALUE 0 txq 4096-ptr_max
DATA_SOURCE 0 txq r skb_get_tx_queue
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 bh
HALF_LOCKED2 &xs->mutex

net/core/dev.c generic_xdp_tx() -> __netif_tx_release()

Type Parameter Key Value
PARAM_VALUE 0 txq 4096-ptr_max
DATA_SOURCE 0 txq r netdev_core_pick_tx
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 bh
HALF_LOCKED2 rcu_read

drivers/net/ethernet/pensando/ionic/ionic_txrx.c ionic_txq_poke_doorbell() -> __netif_tx_release()

Type Parameter Key Value
PARAM_VALUE 0 txq 4096-ptr_max
DATA_SOURCE 0 txq r netdev_get_tx_queue
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 bh
HALF_LOCKED2 rcu_read

drivers/net/ethernet/pensando/ionic/ionic_txrx.c ionic_txq_poke_doorbell() -> __netif_tx_release()

Type Parameter Key Value
PARAM_VALUE 0 txq 4096-ptr_max
DATA_SOURCE 0 txq r netdev_get_tx_queue
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 bh
HALF_LOCKED2 rcu_read

net/core/netpoll.c __netpoll_send_skb() -> __netif_tx_release()

Type Parameter Key Value
PARAM_VALUE 0 txq 4096-ptr_max
DATA_SOURCE 0 txq r netdev_core_pick_tx
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 flags
LOCK2 rcu_read

net/core/netpoll.c queue_process() -> __netif_tx_release()

Type Parameter Key Value
PARAM_VALUE 0 txq 4096-ptr_max
DATA_SOURCE 0 txq r netdev_get_tx_queue
NOCHECK_CALL
LOCK2 flags
HALF_LOCKED2 &pool->lock

net/core/netpoll.c queue_process() -> __netif_tx_release()

Type Parameter Key Value
PARAM_VALUE 0 txq 4096-ptr_max
DATA_SOURCE 0 txq r netdev_get_tx_queue
NOCHECK_CALL
LOCK2 flags
HALF_LOCKED2 &pool->lock