On 08/25/2017 07:48 AM, Antoine Tenart wrote: > This patch adds an extra check when the link_event function is called, > so that it won't do anything when the netif isn't running.
Why is this needed? Are you possibly starting the PHY state machine earlier than your ndo_open() call? Looking quickly through the driver does not suggest this is going on since you properly connect to the PHY in mvpp2_open() and start the PHY there. > > Signed-off-by: Antoine Tenart <antoine.ten...@free-electrons.com> > --- > drivers/net/ethernet/marvell/mvpp2.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/net/ethernet/marvell/mvpp2.c > b/drivers/net/ethernet/marvell/mvpp2.c > index 1b26f5ed994f..49a6789a4142 100644 > --- a/drivers/net/ethernet/marvell/mvpp2.c > +++ b/drivers/net/ethernet/marvell/mvpp2.c > @@ -5741,6 +5741,9 @@ static void mvpp2_link_event(struct net_device *dev) > struct mvpp2_port *port = netdev_priv(dev); > struct phy_device *phydev = dev->phydev; > > + if (!netif_running(dev)) > + return; > + > if (phydev->link) { > if ((port->speed != phydev->speed) || > (port->duplex != phydev->duplex)) { > -- Florian