phylink_stop(9)
πΈ phylink_stop (9) β the kernel API manual, but make it make sense π
okay so bestie, you know phylink_create? Yeah? Great. This is the other end of that relationship. The breakup. The "we're done here" text. Let's get into it π«Ά
β¨ NAME β¨
phylink_stop β stop a phylink instance. That's it. That's the whole vibe. We're shutting it down, not destroying it, bestie, don't panic π
π¦ SYNOPSIS π¦
void phylink_stop (struct phylink *pl );
returns nothing, takes one pointer, no drama. periodt.
π ARGUMENTS π
plβ a pointer to astruct phylinkreturned fromphylink_create. like, the sameplyou got handed back when you created it. not a random one. please. π
π DESCRIPTION π
Stop the phylink instance specified by pl. slay.
This is the one you call from your network device driver's struct net_device_ops ndo_stop method. That's literally its whole job description β it lives in ndo_stop, it eats in ndo_stop, it breathes in ndo_stop. β¨
π¨ important caveat, no cap: the network device's carrier state should not be changed prior to calling this function. Leave the carrier alone before you call it. Hands off. Don't touch. π
This will synchronously bring down the link if the link is not already down. Read that again β synchronously, meaning it happens right then, not "eventually, whenever the scheduler feels like it," not "in a callback later," now.
In other words (iykyk): it will trigger a mac_link_down method call. That's the whole mechanism. That's the tea. π
π SEE ALSO π
Kernel file ./drivers/net/phy/phylink.c β and honestly, the entire phylink cinematic universe, which is extensive:
struct phylink(9)phylink_set_port_modes(9)phylink_interface_max_speed(9)phylink_caps_to_link_caps(9)phylink_caps_to_linkmodes(9)phylink_limit_mac_speed(9)phylink_cap_from_speed_duplex(9)phylink_get_capabilities(9)phylink_validate_mask_caps(9)phylink_pcs_neg_mode(9)phylink_set_fixed_link(9)phylink_create(9)phylink_destroy(9)phylink_expects_phy(9)phylink_connect_phy(9)phylink_of_phy_connect(9)phylink_fwnode_phy_connect(9)phylink_disconnect_phy(9)phylink_mac_change(9)phylink_pcs_change(9)phylink_start(9)phylink_rx_clk_stop_block(9)phylink_rx_clk_stop_unblock(9)phylink_suspend(9)phylink_prepare_resume(9)phylink_resume(9)phylink_ethtool_get_wol(9)phylink_ethtool_set_wol(9)phylink_ethtool_ksettings_get(9)phylink_ethtool_ksettings_set(9)phylink_ethtool_nway_reset(9)phylink_ethtool_get_pauseparam(9)phylink_ethtool_set_pauseparam(9)phylink_get_eee_err(9)phylink_ethtool_get_eee(9)phylink_ethtool_set_eee(9)phylink_mii_ioctl(9)phylink_speed_down(9)phylink_speed_up(9)phylink_decode_usxgmii_word(9)phylink_decode_usgmii_word(9)phylink_mii_c22_pcs_decode_state(9)phylink_mii_c22_pcs_get_state(9)phylink_mii_c22_pcs_encode_advertisement(9)phylink_mii_c22_pcs_config(9)phylink_mii_c22_pcs_an_restart(9)phylink_replay_link_begin(9)phylink_replay_link_end(9)
(yes, that's all of them. I counted. twice. you're welcome π)
that's the whole page bestie β go forth and stop some links responsibly π
signed off with love from ./drivers/net/phy, dated October 2026 β this manual page ate and left no crumbs β¨π
π¦ 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