phy_write_barrier(9)
β¨ phy_write_barrier β bestie edition β¨
okay so real talk, this is phy_write_barrier(9) from the Kernel API Manual, and it's genuinely one of the shorter ones so we can absolutely get through it together π«Ά
πΈ NAME πΈ
phy_write_barrier β the girl whose whole job is making sure that last write actually landed on this PHY device π
no cap, that's it, that's the job.
π SYNOPSIS π
void phy_write_barrier (struct phy_device *phydev );
like, look at her. returns void, takes one thing, causes zero drama β¨
π ARGUMENTS π
phydevβ the targetphy_devicestruct. your main character. the PHY you're doing the barrier for π
π¦ DESCRIPTION π¦
okay so here's the tea β MDIO bus controllers are not required to wait for write transactions to complete before they return. like, they just fire it off and ghost you π
so you call this function, and it ensures that the previous write has completed. that's the whole vibe. it's a "hold up bestie, did that actually finish?" check, and honestly? iconic π
no cap, if you skip this and assume the write is done, that's on you, not on the MDIO bus controller π
π SEE ALSO π
the whole friend group π«Ά β also 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_error(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)
like I said. huge friend group. iykyk π
β sign-off β
this page lives in ./drivers/net/phy, dated October 2026, and it's giving very much "small function, big responsibility" energy. go forth and barrier your writes, bestie πβ¨π
π¦ 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