ice_handle_mdd_event(9)
π ice_handle_mdd_event β the Kernel API Manual, but make it make sense
okay so bestie, welcome to the ice show π§β¨ this one is a kernel API manual page for ice_handle_mdd_event(9), and honestly? it's giving "small function, big responsibilities." let's get into it π«Ά
β¨ NAME β¨
ice_handle_mdd_event β handle malicious driver detect event ππ₯
like... somebody's driver is being shady and this is the function that deals with it. no cap.
πΈ SYNOPSIS πΈ
void ice_handle_mdd_event (struct ice_pf *pf );
that's it. that's the whole signature. short king π keep it exactly like that, character for character, okay?
π ARGUMENTS π
pfβ pointer to the PF structure. that's the physical function, the main character of this whole file fr fr π
π¦ DESCRIPTION π¦
so here's the vibe π« this gets called from the service task. the OICR interrupt handler is the one that indicates an MDD event β that's your signal that something went down π
the VF MDD logging is guarded by net_ratelimit, so it won't just spam your logs into oblivion, we love a rate limit πβ
the additional PF and VF log messages are wrapped by netif_msg_[rx|tx]_err β yes, both, rx and tx, that's what the brackets mean, iykyk π
and here's the important bit, bestie, pay attention: since VF Rx MDD events disable the queue (yes, actually disable it, not cute at all π), the PF can be configured to reset the VF using the ethtool private flag mdd-auto-reset-vf. so if you want auto-reset behavior, that's your knob ποΈβ¨
π₯ SEE ALSO π₯
okay this list is long β like, scroll-for-a-while long β but every single one of these is legit and I'm not skipping a single one, periodt π
the kernel file itself lives at ./drivers/net/ethernet/intel/ice/ice_main.c:
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_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_lb_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 I said. long list. but we don't gatekeep cross-references in this house π literally every one of them is above, no skips, no "etc." π―
and that's the whole page bestie!! π nothing dangerous here, no deprecated drama, just a little MDD handling and a whole lot of SEE ALSO. go read the source at ./drivers/net/ethernet/intel/ice if you wanna see it for real π
mwah π β this lil rewrite is dated October 2026, straight from the kernel API manual, ice_handle_mdd_event(9), and I'd say we ate πβ¨
π¦ 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