stmmac_rx_refill(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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 everything
  • queue β€” 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