ice_lb_vsi_setup(9)
β¨ ice_lb_vsi_setup β the loopback VSI glow-up β¨
okay so bestie, we're in the Kernel API Manual, section 9 today, and this function is named ice_lb_vsi_setup(9) β say that three times fast, iykyk. It's the Intel ice driver's little corner of the kernel, and honestly it's giving "small function, big friend group" energy. Let's go π
πΈ SYNOPSIS πΈ
struct ice_vsi * ice_lb_vsi_setup (struct ice_pf *pf , struct
ice_port_info *pi );
like, look at that return type β a struct ice_vsi *, a whole pointer, living its best life. periodt.
π ARGUMENTS π
pfβ the board private structure. your classic "everything about this board lives here" situation, no cap.piβ a pointer to theport_infoinstance. the port's own little info drop, fr fr.
π¦ DESCRIPTION π¦
So what does it actually do? It sets you up a loopback VSI β and on success it hands back a pointer to the successfully allocated VSI software struct like it's passing you a folded note in class π«Ά.
On failure? It returns NULL. literally nothing. the void. the group chat left you on read π. So like, always vibe check your return value before you dereference it, bestie β that's not me being dramatic, that's just the description.
π SEE ALSO π
first up, the source of truth, the origin story, the main character itself:
Kernel file ./drivers/net/ethernet/intel/ice/ice_main.c
and nowβ¦ the entire extended friend group π this is the whole ice squad, and I'm listing every single one of them because nobody gets left out:
ice_hw_to_dev(9),ice_get_tx_pending(9),ice_check_for_hang_subtask(9)ice_init_mac_fltr(9),ice_add_mac_to_sync_list(9),ice_add_mac_to_unsync_list(9),ice_vsi_fltr_changed(9)ice_set_promisc(9),ice_clear_promisc(9),ice_vsi_sync_fltr(9),ice_sync_fltr_subtask(9)ice_pf_dis_all_vsi(9),ice_prepare_for_reset(9),ice_do_reset(9),ice_reset_subtask(9)ice_print_topo_conflict(9),ice_print_link_msg(9),ice_vsi_link_event(9),ice_set_dflt_mib(9)ice_check_phy_fw_load(9),ice_check_module_power(9),ice_check_link_cfg_err(9),ice_link_event(9)ice_watchdog_subtask(9),ice_init_link_events(9),ice_handle_link_event(9)ice_aq_prep_for_event(9),ice_aq_wait_for_event(9),ice_aq_check_events(9),ice_aq_cancel_waiting_tasks(9)__ice_clean_ctrlq(9),ice_ctrlq_pending(9),ice_clean_adminq_subtask(9),ice_clean_mailboxq_subtask(9),ice_clean_sbq_subtask(9)ice_service_task_schedule(9),ice_service_task_complete(9),ice_service_task_stop(9),ice_service_task_restart(9),ice_service_timer(9)ice_mdd_maybe_reset_vf(9),ice_handle_mdd_event(9)ice_init_nvm_phy_type(9),ice_init_link_dflt_override(9),ice_init_phy_cfg_dflt_override(9),ice_init_phy_user_cfg(9),ice_phy_cfg(9),ice_check_media_subtask(9)ice_service_task(9),ice_set_ctrlq_len(9),ice_schedule_reset(9)ice_vsi_ena_irq(9),ice_vsi_req_irq_msix(9)ice_xdp_alloc_setup_rings(9),ice_vsi_assign_bpf_prog(9),ice_map_xdp_rings(9),ice_unmap_xdp_rings(9),ice_prepare_xdp_rings(9),ice_destroy_xdp_rings(9)ice_vsi_rx_napi_schedule(9),ice_vsi_determine_xdp_res(9),ice_max_xdp_frame_size(9),ice_xdp_setup_prog(9),ice_xdp_safe_mode(9),ice_xdp(9)ice_ena_misc_vector(9),ice_ll_ts_intr(9),ice_misc_intr(9),ice_misc_intr_thread_fn(9)ice_dis_ctrlq_interrupts(9),ice_free_irq_msix_ll_ts(9),ice_free_irq_msix_misc(9),ice_ena_ctrlq_interrupts(9),ice_req_irq_msix_misc(9)ice_set_ops(9),ice_set_netdev_features(9),ice_fill_rss_lut(9),ice_pf_vsi_setup(9),ice_ctrl_vsi_setup(9)ice_vlan_rx_add_vid(9),ice_vlan_rx_kill_vid(9)ice_rep_indr_tc_block_unbind(9),ice_tc_indir_block_unregister(9),ice_tc_indir_block_register(9)ice_get_avail_q_count(9),ice_get_avail_txq_count(9),ice_get_avail_rxq_count(9)ice_deinit_pf(9),ice_set_pf_caps(9),ice_init_pf(9)ice_is_wol_supported(9),ice_vsi_recfg_qs(9),ice_set_safe_mode_vlan_cfg(9)ice_log_pkg_init(9),ice_load_pkg(9),ice_verify_cacheline_size(9),ice_send_version(9)ice_init_fdir(9),ice_get_opt_fw_name(9),ice_request_fw(9)ice_init_tx_topology(9),ice_init_supported_rxdids(9),ice_init_ddp_config(9)ice_print_wake_reason(9),ice_register_netdev(9),ice_cfg_netdev(9)ice_load(9),ice_unload(9),ice_probe(9)ice_set_wake(9),ice_setup_mc_magic_wake(9)ice_remove(9),ice_shutdown(9),ice_prepare_for_shutdown(9)ice_reinit_interrupt_scheme(9),ice_suspend(9),ice_resume(9)ice_pci_err_detected(9),ice_pci_err_slot_reset(9),ice_pci_err_resume(9)ice_pci_err_reset_prepare(9),ice_pci_err_reset_done(9)ice_module_init(9),ice_module_exit(9)ice_set_mac_address(9),ice_set_rx_mode(9),ice_set_tx_maxrate(9)ice_fdb_add(9),ice_fdb_del(9),ice_fix_features(9)ice_set_rx_rings_vlan_proto(9),ice_set_vlan_offload_features(9),ice_set_vlan_filtering_features(9),ice_set_vlan_features(9)ice_set_loopback(9),ice_set_features(9),ice_vsi_vlan_setup(9),ice_vsi_cfg_lan(9)ice_init_moderation(9),ice_napi_enable_all(9),ice_up_complete(9),ice_up(9)ice_fetch_u64_tx_stats(9),ice_fetch_u64_rx_stats(9),ice_update_vsi_tx_ring_stats(9),ice_update_vsi_rx_ring_stats(9)ice_update_vsi_ring_stats(9),ice_update_vsi_stats(9),ice_update_pf_stats(9),ice_get_stats64(9)ice_napi_disable_all(9),ice_vsi_dis_irq(9),ice_down(9),ice_down_up(9)ice_vsi_setup_tx_rings(9),ice_vsi_setup_rx_rings(9),ice_vsi_open_ctrl(9),ice_vsi_open(9),ice_vsi_release_all(9)ice_vsi_rebuild_by_type(9),ice_update_pf_netdev_link(9),ice_rebuild(9),ice_change_mtu(9)ice_set_rss_lut(9),ice_set_rss_key(9),ice_get_rss_lut(9),ice_get_rss_key(9),ice_get_rss(9),ice_set_rss_hfunc(9)ice_bridge_getlink(9),ice_vsi_update_bridge_mode(9),ice_bridge_setlink(9),ice_tx_timeout(9)ice_setup_tc_cls_flower(9),ice_setup_tc_block_cb_ingress(9),ice_setup_tc_block_cb_egress(9),ice_validate_mqprio_qopt(9)ice_add_vsi_to_fdir(9),ice_add_channel(9),ice_chnl_cfg_res(9),ice_cfg_chnl_all_res(9),ice_setup_hw_channel(9),ice_setup_channel(9)ice_set_bw_limit(9),ice_create_q_channel(9),ice_rem_all_chnl_fltrs(9),ice_remove_q_channels(9)ice_rebuild_channels(9),ice_create_q_channels(9),ice_setup_tc_mqprio_qdisc(9)ice_cfg_txtime(9),ice_offload_txtime(9),ice_open(9),ice_open_internal(9),ice_stop(9),ice_features_check(9)
likeβ¦ that's the whole roster π every single one accounted for, nobody's getting iced out (pun fully intended π§).
And that's the page, bestie π no warnings, no exit statuses, no env vars β this one's a clean little read. don't overthink it, just check your return pointer.
kisses and closing notes π β this gem lives in ./drivers/net/ethernet/intel/ice, it was dated October 2026, and the page you just read is ice_lb_vsi_setup(9). slay, go read the next one ππ¦
π¦ 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