i40e_init_lan_hmc(9)
π i40e_init_lan_hmc(9)
okay so bestie, we're in the Kernel API Manual today and the main character is i40e_init_lan_hmc(9) β yes that's the whole page name, it's giving very "full government name" energy and honestly? respect. π«Ά
β¨ NAME β¨
i40e_init_lan_hmc β the one that initializes the i40e_hmc_info struct π
πΈ SYNOPSIS πΈ
int i40e_init_lan_hmc (struct i40e_hw *hw , u32 txq_num , u32 rxq_num ,
u32 fcoe_cntx_num , u32 fcoe_filt_num );
like look at her. five args. she's not complicated, she's just thorough. π
π ARGUMENTS π
hwβ pointer to the HW structure. your hardware bestie fr fr.txq_numβ number of Tx queues that need backing context. count 'em, don't guess. β¨rxq_numβ number of Rx queues that need backing context. same energy, other direction. π¦fcoe_cntx_numβ the amount of FCoE statefull contexts needing backing context. yes, "statefull" with two L's, that's exactly how it's written, no I will not be fixing it, it's iconic. πfcoe_filt_numβ number of FCoE filters needing backing context. π
π DESCRIPTION π
so here's the vibe: this function gets called once per physical function initialization. one time. one shot. main character entrance only. π
what she does is fill out the i40e_hmc_obj_info structure for LAN objects, and she does it based on two things:
- the input the driver gave her (that's your args up there β¬οΈ)
- the info from the HMC itself, loaded from NVRAM
that's it, that's the whole job, and she does it flawlessly. periodt. π
Assumptions:
- the HMC Resource Profile has been selected before you call this function. no cap, if you didn't do that first, that's a you problem. π
okay genuine heads-up bestie: that bullet isn't a suggestion, it's an assumption the function is literally built on. sort out the HMC Resource Profile first, then call her. π
π§ SEE ALSO π§
the kernel file where she lives:
./drivers/net/ethernet/intel/i40e/i40e_lan_hmc.c
and her whole friend group, all of them, in order, no one gets left out:
i40e_align_l2obj_base(9), i40e_calculate_l2fpm_size(9), i40e_remove_pd_page(9), i40e_remove_sd_bp(9), i40e_create_lan_hmc_object(9), i40e_configure_lan_hmc(9), i40e_delete_lan_hmc_object(9), i40e_shutdown_lan_hmc(9), i40e_write_byte(9), i40e_write_word(9), i40e_write_dword(9), i40e_write_qword(9), i40e_clear_hmc_context(9), i40e_set_hmc_context(9), i40e_hmc_get_object_va(9), i40e_clear_lan_tx_queue_context(9), i40e_set_lan_tx_queue_context(9), i40e_clear_lan_rx_queue_context(9), i40e_set_lan_rx_queue_context(9)
and yes i40e_init_lan_hmc itself is not in that list, don't come for me, that's just how the page is. π₯
starring: ./drivers/net/ethernet/intel/i40e π dated: October 2026 β that's the source/version + date, mwah, bye bestie, go init some HMC ππ
π¦ 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