igb_probe_vfs(9)
π igb_probe_vfs β the Kernel API Manual, bestie edition π
okay so you're looking at igb_probe_vfs(9) from the igb crew β that's the Kernel API Manual section 9, which is literally the "kernel internals" shelf of the library. Come sit, I'll walk you through it π
β¨ NAME β¨
igb_probe_vfs β it initializes the vf data storage and adds VFs to pci config space, both, one function, iconic behaviour honestly π«Ά
πΈ SYNOPSIS πΈ
void igb_probe_vfs (struct igb_adapter *adapter );
no cap, that's the whole signature. void in, void out, one pointer. clean. minimal. she ate π
π¦ ARGUMENTS π¦
adapterβ the board private structure you're initializing, like the main character of this whole operation π
π§ DESCRIPTION π§
okay so here's what she does. igb_probe_vfs initializes the vf specific data storage first, and then she attempts to allocate the VFs. and the reason for that ordering? lowkey genius: it is much more expensive time wise to disable SR-IOV than it is to allocate and free the memory for the VFs. so like... you do the cheap thing first, obviously. the way that cost analysis just makes sense πβ¨
so the vibe check is: memory setup β then the pricey SR-IOV dance. periodt.
π₯ SEE ALSO π₯
the kernel file this lives in, bestie:
./drivers/net/ethernet/intel/igb/igb_main.c
and here is the entire friend group, no one gets left out π (fr fr, all of these are real and I'm not skipping a single one):
igb_get_i2c_data(9),igb_set_i2c_data(9),igb_set_i2c_clk(9),igb_get_i2c_clk(9),igb_get_hw_dev(9),igb_init_module(9),igb_exit_module(9),igb_cache_ring_register(9),igb_write_ivar(9),igb_configure_msix(9),igb_request_msix(9),igb_free_q_vector(9),igb_reset_q_vector(9),igb_free_q_vectors(9),igb_clear_interrupt_scheme(9),igb_set_interrupt_capability(9),igb_alloc_q_vector(9),igb_alloc_q_vectors(9),igb_init_interrupt_scheme(9),igb_request_irq(9),igb_irq_disable(9),igb_irq_enable(9),igb_release_hw_control(9),igb_get_hw_control(9),igb_config_tx_modes(9),igb_setup_tx_mode(9),igb_configure(9),igb_power_up_link(9),igb_power_down_link(9),igb_check_swap_media(9),igb_up(9),igb_set_i2c_bb(9),igb_set_fw_version(9),igb_init_mas(9),igb_init_i2c(9),igb_probe(9),igb_remove_i2c(9),igb_remove(9),igb_sw_init(9),__igb_open(9),__igb_close(9),igb_setup_tx_resources(9),igb_setup_all_tx_resources(9),igb_setup_tctl(9),igb_configure_tx_ring(9),igb_configure_tx(9),igb_setup_rx_resources(9),igb_setup_all_rx_resources(9),igb_setup_mrqc(9),igb_setup_rctl(9),igb_setup_srrctl(9),igb_configure_rx_ring(9),igb_configure_rx(9),igb_free_tx_resources(9),igb_free_all_tx_resources(9),igb_clean_tx_ring(9),igb_clean_all_tx_rings(9),igb_free_rx_resources(9),igb_free_all_rx_resources(9),igb_clean_rx_ring(9),igb_clean_all_rx_rings(9),igb_set_mac(9),igb_write_mc_addr_list(9),igb_set_rx_mode(9),igb_has_link(9),igb_check_lvmmc(9),igb_watchdog(9),igb_update_ring_itr(9),igb_update_itr(9),igb_tx_timeout(9),igb_get_stats64(9),igb_change_mtu(9),igb_update_stats(9),igb_set_uta(9),igb_intr_msi(9),igb_intr(9),igb_poll(9),igb_clean_tx_irq(9),igb_reuse_rx_page(9),igb_add_rx_frag(9),igb_is_non_eop(9),igb_cleanup_headers(9),igb_process_skb_fields(9),igb_alloc_rx_buffers(9),igb_mii_ioctl(9),igb_ioctl(9),igb_io_error_detected(9),igb_io_slot_reset(9),igb_io_resume(9),igb_rar_set_index(9),igb_read_i2c_byte(9),igb_write_i2c_byte(9)
that's the whole thing bestie, you're caught up π
and for the sign-off: this beauty lives under ./drivers/net/ethernet/intel/igb, dated October 2026, and the footer of the page just repeats igb_probe_vfs(9) back at you β which is honestly such a main character move, refusing to be anything other than herself πβ ngl, obsessed. iykyk π«Ά
π¦ 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