From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Miller Subject: Re: [PATCH net] net: mvpp2: let phylink manage the carrier state Date: Mon, 17 Sep 2018 07:57:40 -0700 (PDT) Message-ID: <20180917.075740.785419710659934511.davem@davemloft.net> References: <20180914145635.21813-1-antoine.tenart@bootlin.com> Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: linux@armlinux.org.uk, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, thomas.petazzoni@bootlin.com, maxime.chevallier@bootlin.com, gregory.clement@bootlin.com, miquel.raynal@bootlin.com, nadavh@marvell.com, stefanc@marvell.com, ymarkman@marvell.com, mw@semihalf.com To: antoine.tenart@bootlin.com Return-path: In-Reply-To: <20180914145635.21813-1-antoine.tenart@bootlin.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: netdev.vger.kernel.org From: Antoine Tenart Date: Fri, 14 Sep 2018 16:56:35 +0200 > Net drivers using phylink shouldn't mess with the link carrier > themselves and should let phylink manage it. The mvpp2 driver wasn't > following this best practice as the mac_config() function made calls to > change the link carrier state. This led to wrongly reported carrier link > state which then triggered other issues. This patch fixes this > behaviour. > > But the PPv2 driver relied on this misbehaviour in two cases: for fixed > links and when not using phylink (ACPI mode). The later was fixed by > adding an explicit call to link_up(), which when the ACPI mode will use > phylink should be removed. > > The fixed link case was relying on the mac_config() function to set the > link up, as we found an issue in phylink_start() which assumes the > carrier is off. If not, the link_up() function is never called. To fix > this, a call to netif_carrier_off() is added just before phylink_start() > so that we do not introduce a regression in the driver. > > Fixes: 4bb043262878 ("net: mvpp2: phylink support") > Reported-by: Russell King > Signed-off-by: Antoine Tenart Applied.