unmap_rx_buf(9)
π unmap_rx_buf π
okay so bestie, welcome to the Kernel API Manual β¨ β today's main character is unmap_rx_buf(9), and honestly? she's a lil function with a big job. let's get into it π«Ά
πΈ NAME πΈ
unmap_rx_buf β unmap the current RX buffer on an SGE Free List π
β¨ SYNOPSIS β¨
void unmap_rx_buf (struct adapter *adapter , struct sge_fl *fl );
like, that's the whole signature. no cap. π
π¦ ARGUMENTS π¦
adapterβ the adapter π (yes that's literally it, she's the whole adapter)flβ the SGE Free List π
π DESCRIPTION π
okay so here's the tea π: unmap_rx_buf unmaps the current buffer on an SGE Free List RX queue.
β οΈ important warning bestie, do not skip this one: the buffer must be made inaccessible to HW before calling this function. like, that's non-negotiable. hardware is not invited to this party anymore. π
ngl this one is similar to free_rx_bufs (mentioned above) β but plot twist: it does not free the buffer. do note, though, that the FL still loses any further access to the buffer. so the FL is officially ghosted π», no more access, periodt.
so what's it actually for? it's used predominantly to "transfer ownership" of an FL buffer to another entity β typically an skb's fragment list. it's giving handing over the aux cord π§. the buffer moves on to its next era, main character energy, and this function is just the one who set it free. iconic. π₯
π SEE ALSO π
Kernel file ./drivers/net/ethernet/chelsio/cxgb4vf/sge.c β yes, that's the source file, go look at her π§
and now the whole friend group, in order, no one left behind π:
get_buf_addr(9)is_buf_mapped(9)need_skb_unmap(9)txq_avail(9)fl_cap(9)fl_starving(9)map_skb(9)free_tx_desc(9)reclaim_completed_tx(9)get_buf_size(9)free_rx_bufs(9)ring_fl_db(9)set_rx_sw_desc(9)refill_fl(9)alloc_ring(9)sgl_len(9)flits_to_desc(9)is_eth_imm(9)calc_tx_flits(9)write_sgl(9)ring_tx_db(9)inline_tx_skb(9)t4vf_eth_xmit(9)copy_frags(9)t4vf_pktgl_to_skb(9)t4vf_pktgl_free(9)do_gro(9)t4vf_ethrx_handler(9)is_new_response(9)restore_rx_bufs(9)rspq_next(9)process_responses(9)napi_rx_handler(9)t4vf_intr_handler(9)sge_rx_timer_cb(9)sge_tx_timer_cb(9)bar2_address(9)t4vf_sge_alloc_rxq(9)t4vf_sge_alloc_eth_txq(9)t4vf_free_sge_resources(9)t4vf_sge_start(9)t4vf_sge_stop(9)t4vf_sge_init(9)
β¨ and that's the whole page, bestie β¨ this lil doc came from source ./drivers/net/ethernet/chelsio... and it's dated October 2026 β so mark your calendar π and remember, she's still unmap_rx_buf(9) at the end of the day. mwah π πΈ
π¦ 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