igb_free_q_vectors(9)
π igb_free_q_vectors(9) β from the Kernel API Manual, bestie
okay so first things first, the manual name is literally igb_free_q_vectors(9) and it lives in the Kernel API Manual, and today we're learning how to let go β¨ (thematically: freeing stuff).
β¨ NAME β¨
igb_free_q_vectors β free the memory that got allocated for interrupt vectors π§
π SYNOPSIS π
void igb_free_q_vectors (struct igb_adapter *adapter );
that's it. that's the whole vibe. void, no return value, we simply give it an adapter and it handles its business π
πΈ ARGUMENTS πΈ
adapterβ the board private structure to initialize, bestie π«Ά
π DESCRIPTION π
okay so here's the tea β β this function frees the memory that was allocated to the q_vectors. that's the whole main character move.
and in addition (the way that it does the most π), if NAPI is enabled, it will also delete any references to the NAPI struct prior to freeing the q_vector.
so the order is literally: clean up the NAPI references first, then free the q_vector. no dangling vibes, no leftover pointers, we do not leave mess behind in this house π β¨
π¦ SEE ALSO π¦
first up, the source of truth, the kernel file itself:
Kernel file ./drivers/net/ethernet/intel/igb/igb_main.c
and now the friend group π β every single one of these, no cap:
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_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_probe_vfs(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)
like, that's the whole roster π iykyk.
ngl this one's short and sweet β but do NOT skip the NAPI part, that's the whole plot twist π
and that's the page, bestie π it came from ./drivers/net/ethernet/intel/igb and it's dated October 2026, and the manual stamps its name igb_free_q_vectors(9) on the whole thing. slay, go free those vectors π
β¨π¦
π¦ 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