iavf_probe(9)
π iavf_probe(9) β like, the actual manual page, section 9 of the Kernel API Manual, bestie π
okay so real talk, this page is iavf_probe from the Kernel API Manual, section 9, and it's basically the origin story of your network adapter π it's short, it's sweet, and every single detail matters, so let's get into it.
β¨ NAME β¨
iavf_probe β Device Initialization Routine πΈ
like... the routine where the device gets born, iykyk.
π¦ SYNOPSIS π¦
int iavf_probe (struct pci_dev *pdev , const struct pci_device_id *ent
);
it hands back an int, bestie. that's the vibe check right there. π
π ARGUMENTS π
pdevβ the PCI device information struct π«Ά like, the little ID card for the piece of hardware we're about to wake up.entβ the entry iniavf_pci_tblβ¨ the matching-table moment. it's giving "yes, you, you're the one."
π₯ DESCRIPTION π₯
Returns 0 on success, negative on failure. no cap, that's the whole contract π zero means slay, anything negative means we're not okay.
iavf_probe initializes an adapter identified by a pci_dev structure. it literally finds the adapter, looks at it, and goes "you're coming with me." π
and then three big things happen, all of which are iconic in their own right:
- The OS initialization π
- Configuring of the adapter private structure π§
- A hardware reset π (yes, the dramatic part β it resets the hardware, that's not a metaphor)
so like, this one function does the OS handshake, sets up the adapter's private struct, and then hits the hardware with a reset. main character energy, honestly. π
β SEE ALSO β
okay, the cross-reference list on this page is long and every single one of these is real, so here we go, don't scroll past them, they're all important π
- the kernel file this lives in:
./drivers/net/ethernet/intel/iavf/iavf_main.cπ iavf_pdev_to_adapter(9),iavf_is_reset_in_progress(9),iavf_allocate_dma_mem_d(9),iavf_free_dma_mem(9),iavf_allocate_virt_mem(9),iavf_free_virt_mem(9)iavf_schedule_reset(9),iavf_schedule_aq_request(9),iavf_tx_timeout(9)iavf_misc_irq_disable(9),iavf_misc_irq_enable(9),iavf_irq_disable(9),iavf_irq_enable_queues(9),iavf_irq_enable(9)iavf_msix_aq(9),iavf_msix_clean_rings(9),iavf_map_vector_to_rxq(9),iavf_map_vector_to_txq(9),iavf_map_rings_to_vectors(9)iavf_request_traffic_irqs(9),iavf_request_misc_irq(9),iavf_free_traffic_irqs(9),iavf_free_misc_irq(9)iavf_configure_tx(9),iavf_select_rx_desc_format(9),iavf_configure_rx(9)iavf_find_vlan(9),iavf_add_vlan(9),iavf_del_vlan(9),iavf_get_num_vlans_added(9),iavf_get_max_vlans_allowed(9),iavf_max_vlans_added(9),iavf_vlan_rx_add_vid(9),iavf_vlan_rx_kill_vid(9)iavf_find_filter(9),iavf_add_filter(9),iavf_replace_primary_mac(9),iavf_is_mac_set_handled(9),iavf_mac_change_done(9),iavf_set_mac_sync(9),iavf_set_mac(9),iavf_addr_sync(9),iavf_addr_unsync(9),iavf_promiscuous_mode_changed(9),iavf_set_rx_mode(9)iavf_napi_enable_all(9),iavf_napi_disable_all(9),iavf_configure(9),iavf_up_complete(9)iavf_clear_mac_filters(9),iavf_clear_cloud_filters(9),iavf_clear_fdir_filters(9),iavf_clear_adv_rss_conf(9),iavf_down(9)iavf_acquire_msix_vectors(9),iavf_free_queues(9),iavf_set_queue_vlan_tag_loc(9),iavf_alloc_queues(9),iavf_set_interrupt_capability(9)iavf_config_rss_aq(9),iavf_config_rss_reg(9),iavf_config_rss(9),iavf_fill_rss_lut(9),iavf_init_rss(9)iavf_alloc_q_vectors(9),iavf_free_q_vectors(9),iavf_reset_interrupt_capability(9),iavf_init_interrupt_scheme(9),iavf_free_interrupt_scheme(9),iavf_free_rss(9),iavf_reinit_interrupt_scheme(9)iavf_finish_config(9),iavf_schedule_finish_config(9),iavf_process_aq_command(9),iavf_set_vlan_offload_features(9)iavf_startup(9),iavf_init_version_check(9),iavf_parse_vf_resource_msg(9),iavf_init_get_resources(9)iavf_init_send_offload_vlan_v2_caps(9),iavf_init_recv_offload_vlan_v2_caps(9),iavf_init_send_supported_rxdids(9),iavf_init_recv_supported_rxdids(9),iavf_init_send_ptp_caps(9),iavf_init_recv_ptp_caps(9),iavf_init_process_extended_caps(9)iavf_init_config_adapter(9),iavf_disable_vf(9),iavf_reconfig_qs_bw(9),iavf_reset_step(9),iavf_adminq_task(9)iavf_free_all_tx_resources(9),iavf_setup_all_tx_resources(9),iavf_setup_all_rx_resources(9),iavf_free_all_rx_resources(9)iavf_validate_tx_bandwidth(9),iavf_validate_ch_config(9),iavf_del_all_cloud_filters(9),iavf_is_tc_config_same(9),__iavf_setup_tc(9),iavf_parse_cls_flower(9),iavf_handle_tclass(9),iavf_find_cf(9),iavf_configure_clsflower(9),iavf_delete_clsflower(9),iavf_setup_tc_cls_flower(9),iavf_add_cls_u32(9),iavf_del_cls_u32(9),iavf_setup_tc_cls_u32(9),iavf_setup_tc_block_cb(9),iavf_setup_tc(9)iavf_restore_fdir_filters(9),iavf_open(9),iavf_close(9),iavf_change_mtu(9),iavf_disable_fdir(9),iavf_set_features(9),iavf_features_check(9),iavf_get_netdev_vlan_hw_features(9),iavf_get_netdev_vlan_features(9),iavf_fix_netdev_vlan_features(9),iavf_fix_strip_features(9),iavf_fix_features(9)iavf_check_reset_complete(9),iavf_process_config(9),iavf_suspend(9),iavf_resume(9),iavf_remove(9),iavf_shutdown(9),iavf_init_module(9),iavf_exit_module(9)
not me listing literally every single cross-reference π but like, they're all on the original page, so they're all staying. that's the rule. π
so yeah, that's iavf_probe π short page, big job, zero notes. go read the source file, bestie, it's right there in ./drivers/net/ethernet/intel/iavf/iavf_main.c. π«Ά
this icon of a manual page came from ./drivers/net/ethernet/intel/iavf (that's the source/version bit πΈ) and is dated October 2026 β yes, the future, she's early π β and the whole thing is iavf_probe(9), bye bestie πβ¨
π¦ 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