Message ID | 1539271111-24862-2-git-send-email-paolo.pisati@canonical.com |
---|---|
State | New |
Headers | show |
Series | Fix a regression in lan78xx driver | expand |
On 11/10/18 16:18, Paolo Pisati wrote: > From: Phil Elwell <phil@raspberrypi.org> > > BugLink: https://bugs.launchpad.net/bugs/1797406 > > Commit 92571a1aae40 ("lan78xx: Connect phy early") moves the PHY > initialisation into lan78xx_probe, but lan78xx_open subsequently calls > lan78xx_reset. As well as forcing a second round of link negotiation, > this reset frequently prevents the phy interrupt from being generated > (even though the link is up), rendering the interface unusable. > > Fix this issue by removing the lan78xx_reset call from lan78xx_open. > > Fixes: 92571a1aae40 ("lan78xx: Connect phy early") > Signed-off-by: Phil Elwell <phil@raspberrypi.org> > Signed-off-by: David S. Miller <davem@davemloft.net> > (cherry picked from commit 47b998653fea4ef69e3e89574956386f262bccca) > Signed-off-by: Paolo Pisati <paolo.pisati@canonical.com> > --- > drivers/net/usb/lan78xx.c | 4 ---- > 1 file changed, 4 deletions(-) > > diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c > index 88f2c7cde71d..77a186befd07 100644 > --- a/drivers/net/usb/lan78xx.c > +++ b/drivers/net/usb/lan78xx.c > @@ -2562,10 +2562,6 @@ static int lan78xx_open(struct net_device *net) > if (ret < 0) > goto out; > > - ret = lan78xx_reset(dev); > - if (ret < 0) > - goto done; > - > phy_start(net->phydev); > > netif_dbg(dev, ifup, dev->net, "phy initialised successfully"); > Clean upstream cherry pick. Seems sane to me. Acked-by: Colin Ian King <colin.king@canonical.com>
On 11.10.2018 17:18, Paolo Pisati wrote: > From: Phil Elwell <phil@raspberrypi.org> > > BugLink: https://bugs.launchpad.net/bugs/1797406 > > Commit 92571a1aae40 ("lan78xx: Connect phy early") moves the PHY > initialisation into lan78xx_probe, but lan78xx_open subsequently calls > lan78xx_reset. As well as forcing a second round of link negotiation, > this reset frequently prevents the phy interrupt from being generated > (even though the link is up), rendering the interface unusable. > > Fix this issue by removing the lan78xx_reset call from lan78xx_open. > > Fixes: 92571a1aae40 ("lan78xx: Connect phy early") > Signed-off-by: Phil Elwell <phil@raspberrypi.org> > Signed-off-by: David S. Miller <davem@davemloft.net> > (cherry picked from commit 47b998653fea4ef69e3e89574956386f262bccca) > Signed-off-by: Paolo Pisati <paolo.pisati@canonical.com> Acked-by: Stefan Bader <stefan.bader@canonical.com> > --- > drivers/net/usb/lan78xx.c | 4 ---- > 1 file changed, 4 deletions(-) > > diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c > index 88f2c7cde71d..77a186befd07 100644 > --- a/drivers/net/usb/lan78xx.c > +++ b/drivers/net/usb/lan78xx.c > @@ -2562,10 +2562,6 @@ static int lan78xx_open(struct net_device *net) > if (ret < 0) > goto out; > > - ret = lan78xx_reset(dev); > - if (ret < 0) > - goto done; > - > phy_start(net->phydev); > > netif_dbg(dev, ifup, dev->net, "phy initialised successfully"); >
diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c index 88f2c7cde71d..77a186befd07 100644 --- a/drivers/net/usb/lan78xx.c +++ b/drivers/net/usb/lan78xx.c @@ -2562,10 +2562,6 @@ static int lan78xx_open(struct net_device *net) if (ret < 0) goto out; - ret = lan78xx_reset(dev); - if (ret < 0) - goto done; - phy_start(net->phydev); netif_dbg(dev, ifup, dev->net, "phy initialised successfully");