Re: [PATCH net] net: mvpp2: let phylink manage the carrier state

From: David Miller
Date: Mon Sep 17 2018 - 10:57:45 EST


From: Antoine Tenart <antoine.tenart@xxxxxxxxxxx>
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 <linux@xxxxxxxxxxxxxxx>
> Signed-off-by: Antoine Tenart <antoine.tenart@xxxxxxxxxxx>

Applied.