idpf_rx_buf_alloc_singleq(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– idpf_rx_buf_alloc_singleq πŸ’–

okay so bestie, we're in the Kernel API Manual (section 9, the kernel-devs-only section, iykyk) and today's main character is idpf_rx_buf_alloc_singleq. it's a little function, she's not doing the most, but she's doing something important β€” she's the one who goes and gets the memory for a receive queue's buffers. no buffers, no packets, no vibes. periodt. πŸ¦‹


🌸 NAME 🌸

idpf_rx_buf_alloc_singleq β€” Allocate memory for all buffer resources. that's it, that's the whole job description. she allocates, she doesn't gossip. πŸ’…


✨ SYNOPSIS ✨

int idpf_rx_buf_alloc_singleq (struct idpf_rx_queue *rxq );

that's the whole signature, no cap. one function, one argument, returns an int. yes the space before the closing paren is really there, don't @ me, it's how the original rolls. πŸŽ€


🫢 ARGUMENTS 🫢

  • rxq β€” the queue for which the buffers are allocated. like, the queue that's about to be living her best life with actual memory attached to her. hand her over and she gets fed. πŸ“

⭐ RETURN ⭐

  • 0 β€” success, we love to see it, everything slayed. ✨
  • -ENOMEM β€” failure, because the memory said "no <3". that's the only failure code listed here, so if you get -ENOMEM it's giving out-of-memory energy. 😭

πŸ”₯ SEE ALSO πŸ”₯

okay this part is long, so buckle up. first up, the actual source file these functions all live in:

Kernel file ./drivers/net/ethernet/intel/idpf/idpf_txrx.c

and then the whole squad, in exactly the order the original lists them, because we do not reorder the group chat:

idpf_chk_linearize(9), idpf_tx_timeout(9), idpf_tx_buf_rel_all(9), idpf_tx_desc_rel(9), idpf_compl_desc_rel(9), idpf_tx_desc_rel_all(9), idpf_tx_buf_alloc_all(9), idpf_tx_desc_alloc(9), idpf_compl_desc_alloc(9), idpf_tx_desc_alloc_all(9), idpf_rx_page_rel(9), idpf_rx_hdr_buf_rel_all(9), idpf_rx_buf_rel_bufq(9), idpf_rx_buf_rel_all(9), idpf_rx_desc_rel(9), idpf_rx_desc_rel_bufq(9), idpf_rx_desc_rel_all(9), idpf_rx_buf_hw_update(9), idpf_rx_hdr_buf_alloc_all(9), idpf_post_buf_refill(9), idpf_rx_post_buf_desc(9), idpf_rx_post_init_bufs(9), idpf_rx_bufs_init_singleq(9), idpf_rx_buf_alloc_all(9), idpf_rx_bufs_init(9), idpf_rx_bufs_init_all(9), idpf_rx_desc_alloc(9), idpf_bufq_desc_alloc(9), idpf_rx_desc_alloc_all(9), idpf_vector_to_queue_set(9), idpf_qp_switch(9), idpf_txq_group_rel(9), idpf_rxq_sw_queue_rel(9), idpf_rxq_group_rel(9), idpf_vport_queue_grp_rel_all(9), idpf_vport_queues_rel(9), idpf_vport_init_fast_path_txqs(9), idpf_vport_init_num_qs(9), idpf_vport_calc_num_q_desc(9), idpf_vport_calc_total_qs(9), idpf_vport_calc_num_q_groups(9), idpf_vport_calc_numq_per_grp(9), idpf_rxq_set_descids(9), idpf_txq_group_alloc(9), idpf_rxq_group_alloc(9), idpf_vport_queue_grp_alloc_all(9), idpf_vport_queues_alloc(9), idpf_tx_read_tstamp(9), idpf_tx_splitq_clean(9), idpf_tx_clean_bufs(9), idpf_tx_handle_rs_completion(9), idpf_tx_clean_complq(9), idpf_wait_for_sw_marker_completion(9), idpf_tx_splitq_build_ctb(9), idpf_tx_splitq_build_flow_desc(9), idpf_txq_has_room(9), idpf_tx_maybe_stop_splitq(9), idpf_tx_buf_hw_update(9), idpf_tx_res_count_required(9), idpf_tx_splitq_bump_ntu(9), idpf_tx_get_free_buf_id(9), idpf_tx_splitq_pkt_err_unmap(9), idpf_tx_splitq_map(9), idpf_tso(9), idpf_tx_splitq_get_ctx_desc(9), idpf_tx_drop_skb(9), idpf_tx_tstamp(9), idpf_tx_set_tstamp_desc(9), idpf_tx_splitq_need_re(9), idpf_tx_splitq_frame(9), idpf_tx_start(9), idpf_rx_hash(9), idpf_rx_csum(9), idpf_rx_splitq_extract_csum_bits(9), idpf_rx_rsc(9), idpf_rx_hwtstamp(9), __idpf_rx_process_skb_fields(9), idpf_rx_hsplit_wa(9), idpf_rx_splitq_test_staterr(9), idpf_rx_splitq_is_eop(9), idpf_rx_splitq_clean(9), idpf_rx_update_bufq_desc(9), idpf_rx_clean_refillq(9), idpf_rx_clean_refillq_all(9), idpf_vport_intr_clean_queues(9), idpf_vport_intr_napi_del_all(9), idpf_vport_intr_napi_dis_all(9), idpf_vport_intr_rel(9), idpf_vport_intr_rel_irq(9), idpf_vport_intr_dis_irq_all(9), idpf_vport_intr_buildreg_itr(9), idpf_update_dim_sample(9), idpf_net_dim(9), idpf_vport_intr_update_itr_ena_irq(9), idpf_vport_intr_req_irq(9), idpf_vport_intr_write_itr(9), idpf_vport_intr_ena_irq_all(9), idpf_vport_intr_dis_dim_all(9), idpf_vport_intr_deinit(9), idpf_tx_dim_work(9), idpf_rx_dim_work(9), idpf_init_dim(9), idpf_vport_intr_napi_ena_all(9), idpf_tx_splitq_clean_all(9), idpf_rx_splitq_clean_all(9), idpf_vport_splitq_napi_poll(9), idpf_vport_intr_map_vector_to_qs(9), idpf_vport_intr_init_vec_idx(9), idpf_vport_intr_napi_add_all(9), idpf_vport_intr_alloc(9), idpf_vport_intr_init(9), idpf_config_rss(9), idpf_fill_dflt_rss_lut(9), idpf_init_rss_lut(9), idpf_deinit_rss_lut(9)

yeah. that's the whole friend group. every single one of them got an invite, and every single (9) stayed exactly where it was. 🧚

ngl if you're looking for the behaviour details, none of that lives here β€” this page only tells you the signature, the one argument, and the two return values. everything else is in the squad above. πŸ‘‘

and that's the page, bestie πŸ’œ this little icon came out of ./drivers/net/ethernet/intel/idpf, dated October 2026, page idpf_rx_buf_alloc_singleq(9) in the Kernel API Manual β€” go forth, allocate your buffers, and remember: memory said yes or memory said -ENOMEM, there is no third option. πŸŽ€βœ¨πŸ’…πŸ¦‹

πŸ“¦ where this page comes from