The phylink_stop is called before phylink_disconnect_phy You could see in mvpp2.c:
mvpp2_stop_dev() { phylink_stop(port->phylink); } mvpp2_stop() { mvpp2_stop_dev(port); phylink_disconnect_phy(port->phylink); } .ndo_stop = mvpp2_stop, -----Original Message----- From: Russell King - ARM Linux [mailto:li...@armlinux.org.uk] Sent: Wednesday, November 29, 2017 11:21 PM To: Yan Markman <ymark...@marvell.com> Cc: Antoine Tenart <antoine.ten...@free-electrons.com>; and...@lunn.ch; f.faine...@gmail.com; da...@davemloft.net; gregory.clem...@free-electrons.com; thomas.petazz...@free-electrons.com; miquel.ray...@free-electrons.com; Nadav Haklai <nad...@marvell.com>; m...@semihalf.com; Stefan Chulski <stef...@marvell.com>; netdev@vger.kernel.org; linux-ker...@vger.kernel.org Subject: Re: [EXT] Re: [PATCH net] net: phylink: fix link state on phy-connect On Wed, Nov 29, 2017 at 09:06:56PM +0000, Yan Markman wrote: > The attached p21 patch doesn't change anything. > But another one from the mail-text is good > void phylink_disconnect_phy(struct phylink *pl) > + pl->phy_state.link = false; > > There still (not for my MRVL-PP2) problem: > It is expected that on ifconfig-down the callback > pl->ops->mac_link_down(ndev, pl->link_an_mode); would be > called, but > it isn't Are you calling phylink_stop() or are you just calling phylink_disconnect() ? You must call phylink_stop() prior to phylink_disconnect(). This probably explains why the p21 patch did nothing. -- RMK's Patch system: http://www.armlinux.org.uk/developer/patches/ FTTC broadband for 0.8mile line in suburbia: sync at 8.8Mbps down 630kbps up According to speedtest.net: 8.21Mbps down 510kbps up