efx_enqueue_skb_tso(9)
π NAME π
okay so bestie, this is efx_enqueue_skb_tso(9) from the Kernel API Manual β the page whose whole job is to segment and transmit a TSO socket buffer. It's giving "segment + transmit" main character energy β¨ and honestly the whole function is just doing TSO things with a socket buffer. No cap.
β¨ SYNOPSIS β¨
int efx_enqueue_skb_tso (struct efx_tx_queue *tx_queue , struct sk_buff
*skb , bool *data_mapped );
π«Ά ARGUMENTS π«Ά
tx_queueβ the Efx TX queue. That's the queue getting the goods πskbβ the Socket buffer. The buffer in question, periodt.data_mappedβ Did we map the data? On success, this function always sets it totrueβ
π CONTEXT π
bestie, vibe check: you must hold netif_tx_lock to call this function. Literally do not skip this lock, fr fr.
πΈ DESCRIPTION πΈ
Bestie, the move is: add socket buffer skb to tx_queue, doing TSO β or return != 0 if skb was not enqueued. That's the whole thing. Lowkey simple, highkey important.
And the ownership tea β: skb is consumed unless the return value is EINVAL. So EINVAL means not consumed; every other return value means it got consumed. Not me being dramatic, that's just the rule π
π¦ SEE ALSO π¦
- Kernel file
./drivers/net/ethernet/sfc/tx_tso.c struct tso_state(9)efx_tx_queue_insert(9)tso_fill_packet_with_fragment(9)tso_start_new_packet(9)
mwah π this cute lil page's source/version stamp is ./drivers/net/ethernet/sfc, and it's dated October 2026 β efx_enqueue_skb_tso(9) signing off π«Άβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms