i40e_init_lan_hmc(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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:

  1. the input the driver gave her (that's your args up there ⬆️)
  2. 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