i40e_check_fw_empr(9)
π NAME π
i40e_check_fw_empr β the lil function that checks whether the firmware pulled an unexpected EMP Reset on you π (this is page i40e_check_fw_empr(9) from the Kernel API Manual, section 9, bestie, keep up π
)
β¨ SYNOPSIS β¨
bool i40e_check_fw_empr (struct i40e_pf *pf );
π«Ά ARGUMENTS π«Ά
pfβ the board private structure. that's it. that's the whole argument list. she's low maintenance π
πΈ DESCRIPTION πΈ
okay so here's the tea π΅ β this function goes and peeks at the FW registers to figure out whether the FW issued an unexpected EMP Reset. nosy? maybe. necessary? absolutely.
and here's the part that matters, bestie: every single time an unexpected EMP Reset happens, the FW bumps a counter of unexpected EMP Resets. so it's literally keeping receipts π. and when that counter hits 10, the FW should dip into Recovery mode. ten strikes and you're in recovery, no cap. π
returns true if the FW issued an unexpected EMP Reset. that's the whole vibe check β¨
π¦ SEE ALSO π¦
first up, the source of truth, the main-character file itself β Kernel file ./drivers/net/ethernet/intel/i40e/i40e_main.c π
and ngl, the friend group here is huge, so buckle up π:
i40e_hw_to_dev(9), i40e_allocate_dma_mem(9), i40e_free_dma_mem(9), i40e_allocate_virt_mem(9), i40e_free_virt_mem(9), i40e_get_lump(9), i40e_put_lump(9), i40e_find_vsi_from_id(9), i40e_service_event_schedule(9), i40e_tx_timeout(9), i40e_get_vsi_stats_struct(9), i40e_get_netdev_stats_struct_tx(9), i40e_get_netdev_stats_struct(9), i40e_vsi_reset_stats(9), i40e_pf_reset_stats(9), i40e_compute_pci_to_hw_id(9), i40e_stat_update64(9), i40e_stat_update48(9), i40e_stat_update32(9), i40e_stat_update_and_clear32(9), i40e_stats_update_rx_discards(9), i40e_update_eth_stats(9), i40e_update_veb_stats(9), i40e_update_vsi_stats(9), i40e_update_pf_stats(9), i40e_update_stats(9)
the filter girlies π
: i40e_count_all_filters(9), i40e_count_active_filters(9), i40e_find_filter(9), i40e_find_mac(9), i40e_is_vsi_in_vlan(9), i40e_correct_mac_vlan_filters(9), i40e_get_vf_new_vlan(9), i40e_correct_vf_mac_vlan_filters(9), i40e_rm_default_mac_filter(9), i40e_add_filter(9), __i40e_del_filter(9), i40e_add_mac_filter(9), i40e_del_mac_filter(9), i40e_set_mac(9), i40e_config_rss_aq(9), i40e_vsi_config_rss(9), i40e_vsi_setup_queue_map_mqprio(9), i40e_vsi_setup_queue_map(9), i40e_addr_sync(9), i40e_addr_unsync(9), i40e_set_rx_mode(9), i40e_undo_del_filter_entries(9), i40e_undo_add_filter_entries(9), i40e_next_filter(9), i40e_update_filter_state(9), i40e_aqc_del_filters(9), i40e_aqc_add_filters(9), i40e_aqc_broadcast_filter(9), i40e_set_promiscuous(9), i40e_sync_vsi_filters(9), i40e_sync_filters_subtask(9), i40e_calculate_vsi_rx_buf_len(9), i40e_max_vsi_frame_size(9), i40e_change_mtu(9)
vlan era π: i40e_vlan_stripping_enable(9), i40e_vlan_stripping_disable(9), i40e_add_vlan_all_mac(9), i40e_vsi_add_vlan(9), i40e_rm_vlan_all_mac(9), i40e_vsi_kill_vlan(9), i40e_vlan_rx_add_vid(9), i40e_vlan_rx_add_vid_up(9), i40e_vlan_rx_kill_vid(9), i40e_restore_vlan(9), i40e_vsi_add_pvid(9), i40e_vsi_remove_pvid(9), i40e_vsi_setup_tx_resources(9), i40e_vsi_free_tx_resources(9), i40e_vsi_setup_rx_resources(9), i40e_vsi_free_rx_resources(9), i40e_config_xps_tx_ring(9), i40e_xsk_pool(9), i40e_configure_tx_ring(9), i40e_rx_offset(9), i40e_configure_rx_ring(9), i40e_vsi_configure_tx(9), i40e_vsi_configure_rx(9), i40e_vsi_config_dcb_rings(9), i40e_set_vsi_rx_mode(9), i40e_reset_fdir_filter_cnt(9), i40e_fdir_filter_restore(9), i40e_vsi_configure(9), i40e_vsi_configure_msix(9), i40e_enable_misc_int_causes(9), i40e_configure_msi_and_legacy(9)
irq/vector clan β‘: i40e_irq_dynamic_disable_icr0(9), i40e_irq_dynamic_enable_icr0(9), i40e_msix_clean_rings(9), i40e_irq_affinity_notify(9), i40e_irq_affinity_release(9), i40e_vsi_request_irq_msix(9), i40e_vsi_disable_irq(9), i40e_vsi_enable_irq(9), i40e_free_misc_vector(9), i40e_intr(9), i40e_clean_fdir_tx_irq(9), i40e_fdir_clean_ring(9), i40e_map_vector_to_qp(9), i40e_vsi_map_rings_to_vectors(9), i40e_vsi_request_irq(9), i40e_netpoll(9), i40e_pf_txq_wait(9), i40e_control_tx_q(9), i40e_control_wait_tx_q(9), i40e_vsi_enable_tx(9), i40e_pf_rxq_wait(9), i40e_control_rx_q(9), i40e_control_wait_rx_q(9), i40e_vsi_enable_rx(9), i40e_vsi_start_rings(9), i40e_vsi_stop_rings(9), i40e_vsi_stop_rings_no_wait(9), i40e_vsi_free_irq(9), i40e_free_q_vector(9), i40e_vsi_free_q_vectors(9), i40e_reset_interrupt_capability(9), i40e_clear_interrupt_scheme(9), i40e_napi_enable_all(9), i40e_napi_disable_all(9), i40e_vsi_close(9), i40e_quiesce_vsi(9), i40e_unquiesce_vsi(9), i40e_pf_quiesce_all_vsi(9), i40e_pf_unquiesce_all_vsi(9), i40e_vsi_wait_queues_disabled(9), i40e_pf_wait_queues_disabled(9)
dcb / tc / bandwidth squad π: i40e_get_iscsi_tc_map(9), i40e_dcb_get_num_tc(9), i40e_dcb_get_enabled_tc(9), i40e_mqprio_get_enabled_tc(9), i40e_pf_get_num_tc(9), i40e_pf_get_tc_map(9), i40e_vsi_get_bw_info(9), i40e_vsi_configure_bw_alloc(9), i40e_vsi_config_netdev_tc(9), i40e_vsi_update_queue_map(9), i40e_update_adq_vsi_queues(9), i40e_vsi_config_tc(9), i40e_vsi_reconfig_tc(9), i40e_get_link_speed(9), i40e_bw_bytes_to_mbits(9), i40e_set_bw_limit(9), i40e_remove_queue_channels(9), i40e_get_max_queues_for_channel(9), i40e_validate_num_queues(9), i40e_vsi_reconfig_rss(9), i40e_channel_setup_queue_map(9), i40e_add_channel(9), i40e_channel_config_tx_ring(9), i40e_setup_hw_channel(9), i40e_setup_channel(9), i40e_validate_and_set_switch_mode(9), i40e_create_queue_channel(9), i40e_configure_queue_channels(9), i40e_veb_config_tc(9), i40e_dcb_reconfigure(9), i40e_resume_port_tx(9), i40e_suspend_port_tx(9), i40e_hw_set_dcb_config(9), i40e_hw_dcb_config(9), i40e_dcb_sw_default_config(9), i40e_init_pf_dcb(9), i40e_print_link_message(9), i40e_up_complete(9), i40e_vsi_reinit_locked(9), i40e_force_link_state(9), i40e_up(9), i40e_down(9), i40e_validate_mqprio_qopt(9), i40e_vsi_set_default_tc_config(9)
macvlan, cloud filters & tc flower besties π¦: i40e_del_macvlan_filter(9), i40e_add_macvlan_filter(9), i40e_reset_ch_rings(9), i40e_free_macvlan_channels(9), i40e_fwd_ring_up(9), i40e_setup_macvlans(9), i40e_fwd_add(9), i40e_del_all_macvlans(9), i40e_fwd_del(9), i40e_setup_tc(9), i40e_set_cld_element(9), i40e_add_del_cloud_filter(9), i40e_add_del_cloud_filter_big_buf(9), i40e_parse_cls_flower(9), i40e_handle_tclass(9), i40e_configure_clsflower(9), i40e_find_cloud_filter(9), i40e_delete_clsflower(9), i40e_setup_tc_cls_flower(9), i40e_open(9), i40e_netif_set_realnum_tx_rx_queues(9), i40e_vsi_open(9), i40e_fdir_filter_exit(9), i40e_cloud_filter_exit(9), i40e_close(9), i40e_do_reset(9), i40e_dcb_need_reconfig(9), i40e_handle_lldp_event(9), i40e_do_reset_safe(9), i40e_handle_lan_overflow_event(9), i40e_get_current_fd_count(9), i40e_get_global_fd_count(9), i40e_reenable_fdir_sb(9), i40e_reenable_fdir_atr(9), i40e_delete_invalid_filter(9), i40e_fdir_check_and_reenable(9), i40e_fdir_flush_and_replay(9), i40e_get_current_atr_cnt(9), i40e_fdir_reinit_subtask(9), i40e_vsi_link_event(9), i40e_veb_link_event(9), i40e_link_event(9), i40e_watchdog_subtask(9), i40e_reset_subtask(9), i40e_handle_link_event(9), i40e_clean_adminq_subtask(9), i40e_verify_eeprom(9), i40e_enable_pf_switch_lb(9), i40e_disable_pf_switch_lb(9), i40e_config_bridge_mode(9), i40e_reconstitute_veb(9), i40e_get_capabilities(9), i40e_fdir_sb_setup(9), i40e_fdir_teardown(9), i40e_rebuild_cloud_filters(9), i40e_rebuild_channels(9), i40e_clean_xps_state(9), i40e_prep_for_reset(9), i40e_send_version(9), i40e_get_oem_version(9), i40e_reset(9), i40e_rebuild(9), i40e_reset_and_rebuild(9), i40e_handle_reset_warning(9), i40e_print_vf_mdd_event(9), i40e_print_vfs_mdd_events(9), i40e_handle_mdd_event(9), i40e_service_task(9), i40e_service_timer(9)
rings, vectors & rss crew π: i40e_set_num_rings_in_vsi(9), i40e_vsi_alloc_arrays(9), i40e_vsi_mem_alloc(9), i40e_vsi_free_arrays(9), i40e_clear_rss_config_user(9), i40e_vsi_clear(9), i40e_vsi_clear_rings(9), i40e_alloc_rings(9), i40e_reserve_msix_vectors(9), i40e_init_msix(9), i40e_vsi_alloc_q_vector(9), i40e_vsi_alloc_q_vectors(9), i40e_init_interrupt_scheme(9), i40e_restore_interrupt_scheme(9), i40e_setup_misc_vector_for_recovery_mode(9), i40e_setup_misc_vector(9), i40e_get_rss_aq(9), i40e_config_rss_reg(9), i40e_get_rss_reg(9), i40e_config_rss(9), i40e_get_rss(9), i40e_fill_rss_lut(9), i40e_pf_config_rss(9), i40e_reconfig_rss_queues(9), i40e_get_partition_bw_setting(9), i40e_set_partition_bw_setting(9), i40e_is_total_port_shutdown_enabled(9), i40e_sw_init(9), i40e_set_ntuple(9), i40e_clear_rss_lut(9), i40e_set_loopback(9), i40e_set_features(9), i40e_ndo_fdb_add(9), i40e_ndo_bridge_setlink(9), i40e_ndo_bridge_getlink(9), i40e_features_check(9), i40e_xdp_setup(9), i40e_enter_busy_conf(9), i40e_exit_busy_conf(9)
queue pairs, vsi & veb girlies π: i40e_queue_pair_reset_stats(9), i40e_queue_pair_clean_rings(9), i40e_queue_pair_toggle_napi(9), i40e_queue_pair_toggle_rings(9), i40e_queue_pair_enable_irq(9), i40e_queue_pair_disable_irq(9), i40e_queue_pair_disable(9), i40e_queue_pair_enable(9), i40e_xdp(9), i40e_config_netdev(9), i40e_vsi_delete(9), i40e_is_vsi_uplink_mode_veb(9), i40e_add_vsi(9), i40e_vsi_release(9), i40e_vsi_setup_vectors(9), i40e_vsi_reinit_setup(9), i40e_vsi_setup(9), i40e_veb_get_bw_info(9), i40e_veb_mem_alloc(9), i40e_switch_branch_release(9), i40e_veb_clear(9), i40e_veb_release(9), i40e_add_veb(9), i40e_veb_setup(9), i40e_setup_pf_switch_element(9), i40e_fetch_switch_configuration(9), i40e_setup_pf_switch(9), i40e_determine_queue_usage(9), i40e_setup_pf_filter_control(9), i40e_get_platform_mac_addr(9), i40e_set_fec_in_flags(9), i40e_check_recovery_mode(9), i40e_pf_loop_reset(9), i40e_handle_resets(9), i40e_init_recovery_mode(9), i40e_set_subsystem_device_id(9), i40e_probe(9), i40e_remove(9), i40e_enable_mc_magic_wake(9), i40e_io_suspend(9), i40e_io_resume(9), i40e_pci_error_detected(9), i40e_pci_error_slot_reset(9), i40e_pci_error_reset_prepare(9), i40e_pci_error_reset_done(9), i40e_pci_error_resume(9), i40e_shutdown(9), i40e_suspend(9), i40e_resume(9), i40e_init_module(9), i40e_exit_module(9)
okay that's literally everyone, go say hi πβ¨
ngl reading all of those is a whole cardio session, but that's the full guest list β nobody got left off the invite π
and that's the page, bestie!! π this lil gem lives in ./drivers/net/ethernet/intel/i40e, dated October 2026, and it's i40e_check_fw_empr(9) β go check that FW counter, slay, and remember: ten unexpected EMP Resets and it's recovery mode time π
π
π¦ 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