i40e_can_reuse_rx_page(9)
π i40e_can_reuse_rx_page π
okay so bestie, welcome to the i40e_can_reuse_rx_page page from the Kernel API Manual β yes we're in kernel land, yes it's giving drivers/net energy, and honestly? iconic. let's get into it π«Ά
πΈ NAME πΈ
i40e_can_reuse_rx_page β the little vibe check that tells you whether a page can be reused for another Rx π
β¨ SYNOPSIS β¨
bool i40e_can_reuse_rx_page (struct i40e_rx_buffer *rx_buffer , struct
i40e_rx_queue_stats *rx_stats );
like, that's the whole signature, no cap π
π¦ ARGUMENTS π¦
rx_bufferβ the buffer that's holding the page, main character of this whole function frrx_statsβ the rx stats structure for the rx ring, she's the receipts keeper π
π DESCRIPTION π
so here's the tea: if the page is reusable, we have a literal green light π’ to go call i40e_reuse_rx_page, which will assign the current buffer to the buffer that next_to_alloc is pointing to. slay.
but if it's NOT reusable? then nope, the DMA mapping needs to be destroyed and the page freed. no salvaging, we clean up properly π
also <pink>rx_stats</pink> gets updated to show whether the page was waived or busy if it couldn't be reused β so the stats always know what went down, periodt.
π₯ SEE ALSO π₯
Kernel file ./drivers/net/ethernet/intel/i40e/i40e_txrx.c
and now, the friend group of cross-references (this list is LONG bestie, hydrate before reading π):
i40e_fdir(9)i40e_program_fdir_filter(9)i40e_create_dummy_packet(9)i40e_create_dummy_udp_packet(9)i40e_create_dummy_tcp_packet(9)i40e_create_dummy_sctp_packet(9)i40e_prepare_fdir_filter(9)i40e_change_filter_num(9)i40e_add_del_fdir_udp(9)i40e_add_del_fdir_tcp(9)i40e_add_del_fdir_sctp(9)i40e_add_del_fdir_ip(9)i40e_add_del_fdir(9)i40e_fd_handle_status(9)i40e_unmap_and_free_tx_resource(9)i40e_clean_tx_ring(9)i40e_free_tx_resources(9)i40e_get_tx_pending(9)i40e_detect_recover_hung(9)i40e_clean_tx_irq(9)i40e_enable_wb_on_itr(9)i40e_force_wb(9)i40e_update_itr(9)i40e_reuse_rx_page(9)i40e_clean_programming_status(9)i40e_setup_tx_descriptors(9)i40e_clean_rx_ring(9)i40e_free_rx_resources(9)i40e_setup_rx_descriptors(9)i40e_release_rx_desc(9)i40e_alloc_mapped_page(9)i40e_alloc_rx_buffers(9)i40e_rx_checksum(9)i40e_rx_hash(9)i40e_process_skb_fields(9)i40e_cleanup_headers(9)i40e_rx_buffer_flip(9)i40e_get_rx_buffer(9)i40e_put_rx_buffer(9)i40e_process_rx_buffs(9)i40e_construct_skb(9)i40e_build_skb(9)i40e_is_non_eop(9)i40e_run_xdp(9)i40e_xdp_ring_update_tail(9)i40e_update_rx_stats(9)i40e_finalize_xdp_rx(9)i40e_inc_ntp(9)i40e_add_xdp_frag(9)i40e_consume_xdp_buff(9)i40e_clean_rx_irq(9)i40e_buildreg_itr(9)i40e_update_enable_itr(9)i40e_napi_poll(9)i40e_atr(9)i40e_tx_prepare_vlan_flags(9)i40e_tso(9)i40e_tsyn(9)i40e_tx_enable_csum(9)i40e_create_tx_ctx(9)__i40e_maybe_stop_tx(9)__i40e_chk_linearize(9)i40e_tx_map(9)i40e_xmit_xdp_ring(9)i40e_xmit_frame_ring(9)i40e_lan_xmit_frame(9)i40e_xdp_xmit(9)
like I said. LONG. but every single one is here because we do NOT gatekeep π
π§ sign-off π§
that's the page bestie!! brought to you by the source in ./drivers/net/ethernet/intel/i40e, dated October 2026, from the Kernel API Manual β go forth and reuse those pages responsibly πβ
i40e_can_reuse_rx_page(9) β periodt. π
π¦ 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