iavf_poll_virtchnl_response(9)
π iavf_poll_virtchnl_response(9) β the Kernel API Manual glow-up β¨
okay so bestie, we're in the iavf kernel API manual and this page is all about iavf_poll_virtchnl_response β the function that literally sits there polling the admin queue for a virtchnl response like it's refreshing its DMs waiting for that one reply. π«Ά
πΈ NAME πΈ
iavf_poll_virtchnl_response β poll the admin queue for a virtchnl response, no cap π
β¨ SYNOPSIS β¨
int iavf_poll_virtchnl_response (struct iavf_adapter *adapter , struct
iavf_arq_event_info *event , bool (*condition)(struct iavf_adapter
*adapter, const void *data, enum virtchnl_ops v_op) , const void
*cond_data , unsigned int timeout_ms );
π ARGUMENTS π
adapterβ the adapter structure, main character energy obviously πeventβ a pre-allocated event buffer you're gonna use for the pollingconditionβ a callback that checks whether the response you want has actually arrivedcond_dataβ context data, and yes it gets passed straight into theconditioncallbacktimeout_msβ the max time to wait, measured in milliseconds β³
π¦ DESCRIPTION π¦
so what this does is poll the admin queue and process all the incoming virtchnl messages. literally all of them. after it processes each valid message, it calls the condition callback to check if the expected response has been received. the callback receives the opcode of the processed message so it can figure out which response just came in. polling keeps going until the callback returns true or the timeout expires β whichever hits first π
bestie, important: the caller must allocate the event buffer before sending any messages to the PF. why? because if the allocation fails after the message is already sent, you get a state mismatch. and we do not want that π
also important: the caller must holdnetdev_lock. and heads up β this thing can sleep for up totimeout_mswhile it's polling the hardware. so like, plan accordingly π
π₯ RETURN π₯
0on success β meaning the condition was met, slay β¨-EAGAINon timeout β the vibe check failed π°οΈ- or an error code
π SEE ALSO π
okay this list is long long, but every single one belongs here, so buckle up buttercup π
Kernel file ./drivers/net/ethernet/intel/iavf/iavf_virtchnl.c
iavf_send_pf_msg(9),iavf_send_api_ver(9),iavf_poll_virtchnl_msg(9),iavf_verify_api_ver(9),iavf_send_vf_config_msg(9),iavf_send_vf_ptp_caps_msg(9),iavf_validate_num_queues(9),iavf_get_vf_config(9),iavf_configure_queues(9),iavf_enable_queues(9),iavf_disable_queues(9),iavf_map_queues(9),iavf_set_mac_addr_type(9),iavf_add_ether_addrs(9),iavf_del_ether_addrs(9),iavf_mac_add_ok(9),iavf_mac_add_reject(9),iavf_vlan_add_reject(9),iavf_add_vlans(9),iavf_del_vlans(9),iavf_set_promiscuous(9),iavf_request_stats(9),iavf_get_rss_hashcfg(9),iavf_set_rss_hashcfg(9),iavf_set_rss_key(9),iavf_set_rss_lut(9),iavf_set_rss_hfunc(9),iavf_enable_vlan_stripping(9),iavf_disable_vlan_stripping(9),iavf_tpid_to_vc_ethertype(9),iavf_set_vc_offload_ethertype(9),iavf_clear_offload_v2_aq_required(9),iavf_send_vlan_offload_v2(9),iavf_enable_vlan_stripping_v2(9),iavf_disable_vlan_stripping_v2(9),iavf_enable_vlan_insertion_v2(9),iavf_disable_vlan_insertion_v2(9),iavf_virtchnl_send_ptp_cmd(9),iavf_print_link_message(9),iavf_get_vpe_link_status(9),iavf_set_adapter_link_speed_from_vpe(9),iavf_get_qos_caps(9),iavf_set_quanta_size(9),iavf_cfg_queues_quanta_size(9),iavf_cfg_queues_bw(9),iavf_enable_channels(9),iavf_disable_channels(9),iavf_print_cloud_filter(9),iavf_add_cloud_filter(9),iavf_del_cloud_filter(9),iavf_add_fdir_filter(9),iavf_del_fdir_filter(9),iavf_add_adv_rss_cfg(9),iavf_del_adv_rss_cfg(9),iavf_request_reset(9),iavf_netdev_features_vlan_strip_set(9),iavf_activate_fdir_filters(9),iavf_virtchnl_ptp_get_time(9),iavf_virtchnl_completion(9)
and that's the whole page, bestie π this lil gem lives over in ./drivers/net/ethernet/intel/iavf, stamped October 2026, and it's still serving iavf_poll_virtchnl_response(9) realness to this very day. go forth and poll responsibly π
π¦ 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