phy_stop_machine(9)
π phy_stop_machine(9) π
okay so you're in the Kernel API Manual bestie, and we're about to talk about phy_stop_machine β say hi π
β¨ NAME β¨
phy_stop_machine β stop the PHY state machine tracking π
πΈ SYNOPSIS πΈ
void phy_stop_machine (struct phy_device *phydev );
like, that's the whole vibe. void return, one arg, no drama π
π ARGUMENTS π
phydevβ the targetstruct phy_devicestruct π«Ά that's the one you're aiming this at, bestie
π¦ DESCRIPTION π¦
So what does it actually do? It stops the state machine delayed workqueue. Yep β the workqueue gets shut down, that's the whole point of the function. π
Then it sets the state to UP β but only unless it wasn't up yet. Like, if it was already up, cool, nothing changes; if it wasn't, it becomes UP. Either way you end up at UP, iykyk π
β οΈ listen to me VERY carefully: this function must be called BEFORE phy_detach. Not after. Not "eh, close enough". BEFORE. no cap, this is the rule π₯
π SEE ALSO π
Kernel file ./drivers/net/phy/phy.c β and honestly the whole friend group showed up for this one, so here's the full squad π«Ά:
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_error(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)
and that's the page, bestie π§ source vibes come straight from ./drivers/net/phy, stamped October 2026, all for phy_stop_machine(9) β go forth and stop that machine at the RIGHT 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