phy_error(9)
π phy_error β like, the emergency panic button for your PHY, bestie
okay so this is a page straight out of the Kernel API Manual, and honestly? it's short, it's iconic, it's giving "one job and she does it." let's get into it π«Ά
β¨ NAME β¨
phy_error β enter ERROR state for this PHY device
no cap, that's literally the whole vibe. something went wrong, and this is the function that says so out loud. π
πΈ SYNOPSIS πΈ
void phy_error (struct phy_device *phydev );
she takes exactly one argument, returns nothing, and does not miss. periodt.
π ARGUMENTS π
phydevβ targetphy_devicestruct. this is the PHY we're putting in timeout. the main character, if you will π
π¦ DESCRIPTION π¦
okay so hear me out: phy_error moves the PHY to the ERROR state in response to a read or write error, and then it tells the controller the link is down. like, "bestie the link is done, pack it up." π
the one rule that is NOT optional: this must be called with phydev->lock held. not "should", not "ideally" β must. so hold that lock, or don't come crying to me. π₯
β SEE ALSO β
the whole friend group, in the order the page says it, because I would never leave anyone out π β all of these live in the Kernel file ./drivers/net/phy/phy.c:
phy_print_status(9)phy_get_rate_matching(9)phy_config_interrupt(9)phy_restart_aneg(9)phy_aneg_done(9)phy_supported_speeds(9)phy_check_valid(9)phy_sanitize_settings(9)phy_mii_ioctl(9)phy_do_ioctl(9)phy_do_ioctl_running(9)__phy_hwtstamp_get(9)__phy_hwtstamp_set(9)phy_queue_state_machine(9)phy_trigger_machine(9)phy_ethtool_get_strings(9)phy_ethtool_get_sset_count(9)phy_ethtool_get_stats(9)__phy_ethtool_get_phy_stats(9)__phy_ethtool_get_link_ext_stats(9)phy_ethtool_get_plca_cfg(9)plca_check_valid(9)phy_ethtool_set_plca_cfg(9)phy_ethtool_get_plca_status(9)phy_start_cable_test(9)phy_start_cable_test_tdr(9)phy_check_link_status(9)phy_inband_caps(9)phy_config_inband(9)_phy_start_aneg(9)phy_start_aneg(9)phy_speed_down(9)phy_speed_up(9)phy_start_machine(9)phy_stop_machine(9)phy_write_barrier(9)phy_disable_interrupts(9)phy_interrupt(9)phy_enable_interrupts(9)phy_update_stats(9)phy_request_interrupt(9)phy_free_interrupt(9)phy_get_next_update_time(9)phy_state_machine(9)phy_stop(9)phy_start(9)phy_mac_interrupt(9)phy_loopback(9)phy_eee_tx_clock_stop_capable(9)phy_eee_rx_clock_stop(9)phy_init_eee(9)phy_get_eee_err(9)phy_ethtool_get_eee(9)phy_ethtool_set_eee_noneg(9)phy_ethtool_set_eee(9)phy_ethtool_set_wol(9)phy_ethtool_get_wol(9)phy_ethtool_nway_reset(9)
β¨ that's the whole page, nothing skipped, nothing invented, absolutely zero notes left behind β¨
okay love u, bye β this one shipped from ./drivers/net/phy, dated October 2026, and yes she's still serving phy_error(9) realness πππ
π¦ 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