idpf_rx_update_bufq_desc(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’…βœ¨ NAME βœ¨πŸ’…

okay so bestie, gather round β€” this is idpf_rx_update_bufq_desc from the Kernel API Manual, and it's literally just "Update buffer queue descriptor" πŸŽ€. that's the whole vibe. it updates a buffer queue descriptor. iconic, minimal, no notes πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

int idpf_rx_update_bufq_desc (struct idpf_buf_queue *bufq , u32 buf_id ,
struct virtchnl2_splitq_rx_buf_desc *buf_desc );

like… she takes three things and gives you back an int. that's her whole personality and honestly? respect 🌸


πŸ’– ARGUMENTS πŸ’–

  • bufq β€” Pointer to the buffer queue 🫢 like, the queue itself, the main character, the one we're updating.
  • buf_id β€” buffer ID ✨ a u32 little number that says which buffer we're talking about. iykyk.
  • buf_desc β€” Buffer queue descriptor πŸ’… a struct virtchnl2_splitq_rx_buf_desc *, i.e. the descriptor struct we're pointing at. no cap, that's the target.

⭐ RETURN ⭐

0 on success and negative on failure. that's it. zero means slay, negative means something went off 😭 periodt.


🌈 SEE ALSO 🌈

first up, the literal source file herself πŸ‘‘:

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

and now the friend group β€” the TX/RX buffer-and-descriptor girlies, in order, all of them, nobody gets left out 🧚:

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_buf_alloc_singleq(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)

then the vport + queue-group squad, because organization is self-care πŸŽ€:

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)

then the fast path β€” cleaning, building, mapping, timestamping, all the busy-girl behaviour πŸ”₯:

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_clean_refillq(9), idpf_rx_clean_refillq_all(9)

and finally the interrupt / NAPI / DIM / RSS crew β€” the ones running the whole group chat behind the scenes πŸ‘‘:

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)

bestie that's the entire extended universe. if you were looking for a function in this driver, she's probably in that list πŸ’€βœ¨

okay that's the whole page, mwah 🫢 this came out of the Kernel API Manual, lives at ./drivers/net/ethernet/intel/idpf, and it's dated October 2026 β€” so go update that descriptor, ily, bye πŸ‘‘πŸ’–

πŸ“¦ where this page comes from