stmmac_rx_refill(9)
π stmmac_rx_refill β a Kernel API Manual moment β¨
okay so bestie, we're in the <pink>Kernel API Manual</pink> today and the function we're stanning is stmmac_rx_refill(9) π literally the glow-up artist for your receive path, no cap.
πΈ NAME πΈ
stmmac_rx_refill β refill used skb preallocated buffers π
likeβ¦ she restocks the shelves. that's the whole vibe. πβ¨
β¨ SYNOPSIS β¨
void stmmac_rx_refill (struct stmmac_priv *priv , u32 queue );
that's it, that's the signature, and yes the spacing is exactly like that, don't @ me π
π«Ά ARGUMENTS π«Ά
privβ the driver private structure π your whole personality-passport for this driver, she carries everythingqueueβ the RX queue index π₯ which receive queue we're talking about, bestie, they're numbered
π¦ DESCRIPTION π¦
so what she does: this is to reallocate the skb for the reception process that is based on <hotpink>zero-copy</hotpink>. π§β¨
like β the receive path is running zero-copy, buffers get used up, and somebody's gotta put fresh skbs back in place so the party keeps going. that somebody is her. main character energy fr fr π
ngl it's giving "restock the snack table before the group chat notices" and honestly? iconic. π
π SEE ALSO π
okay this is the big one, she has a lot of friends and we are listing every single one of them because nobody gets left out at this sleepover π«Άπ
the kernel file to peek at: ./drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
and now, the whole squad, in order, no skips:
stmmac_set_clk_tx_rate(9), stmmac_axi_blen_to_mask(9), stmmac_verify_args(9), stmmac_disable_all_queues(9), stmmac_enable_all_queues(9), stmmac_rx_dirty(9), stmmac_try_to_start_sw_lpi(9), stmmac_stop_sw_lpi(9), stmmac_eee_ctrl_timer(9), stmmac_hwtstamp_set(9), stmmac_hwtstamp_get(9), stmmac_init_tstamp_counter(9), stmmac_init_timestamping(9), stmmac_mac_flow_ctrl(9), stmmac_check_pcs_mode(9), stmmac_init_phy(9), stmmac_clear_rx_descriptors(9), stmmac_clear_tx_descriptors(9), stmmac_clear_descriptors(9), stmmac_init_rx_buffers(9), stmmac_free_rx_buffer(9), stmmac_free_tx_buffer(9), dma_free_rx_skbufs(9), dma_free_rx_xskbufs(9), __init_dma_rx_desc_rings(9), __init_dma_tx_desc_rings(9), init_dma_desc_rings(9), dma_free_tx_skbufs(9), stmmac_free_tx_skbufs(9), __free_dma_rx_desc_resources(9), __free_dma_tx_desc_resources(9), __alloc_dma_rx_desc_resources(9), __alloc_dma_tx_desc_resources(9), alloc_dma_desc_resources(9), free_dma_desc_resources(9), stmmac_mac_enable_rx_queues(9), stmmac_start_rx_dma(9), stmmac_start_tx_dma(9), stmmac_stop_rx_dma(9), stmmac_stop_tx_dma(9), stmmac_start_all_dma(9), stmmac_stop_all_dma(9), stmmac_dma_operation_mode(9), stmmac_tx_clean(9), stmmac_tx_err(9), stmmac_set_dma_operation_mode(9), stmmac_dma_interrupt(9), stmmac_mmc_setup(9), stmmac_get_hw_features(9), stmmac_check_ether_addr(9), stmmac_init_dma_engine(9), stmmac_tx_timer(9), stmmac_init_coalesce(9), stmmac_set_tx_queue_weight(9), stmmac_configure_cbs(9), stmmac_rx_queue_dma_chan_map(9), stmmac_mac_config_rx_queues_prio(9), stmmac_mac_config_tx_queues_prio(9), stmmac_mac_config_rx_queues_routing(9), stmmac_mtl_configuration(9), stmmac_hw_setup(9), stmmac_setup_dma_desc(9), __stmmac_open(9), stmmac_release(9), stmmac_tso_allocator(9), stmmac_tso_xmit(9), stmmac_has_ip_ethertype(9), stmmac_xmit(9), stmmac_rx(9), stmmac_tx_timeout(9), stmmac_set_rx_mode(9), stmmac_change_mtu(9), stmmac_interrupt(9), stmmac_ioctl(9), stmmac_hw_init(9), stmmac_dvr_probe(9), stmmac_dvr_remove(9), stmmac_suspend(9), stmmac_reset_queues_param(9), stmmac_resume(9)
eighty of them. eighty!! and we got through all of them together π«Άπ₯ iykyk
β¨ little reminder bestie: the source lives at ./drivers/net/ethernet/stmicro/... and this page is dated October 2026 β so yeah, go read it, she's got receipts π
π
mwah, that's the whole page, go refill those buffers π¦π
π¦ 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