[SRU][G/raspi][F/raspi][PATCH] net: lan78xx: Ack pending PHY ints when resetting

Juerg Haefliger juerg.haefliger at canonical.com
Thu Dec 17 07:41:59 UTC 2020


On Wed, 16 Dec 2020 12:41:51 +0000
Colin Ian King <colin.king at canonical.com> wrote:

> On 16/12/2020 12:26, Juerg Haefliger wrote:
> > From: Phil Elwell <phil at raspberrypi.com>
> > 
> > BugLink: https://bugs.launchpad.net/bugs/1890487
> > 
> > lan78xx_link_reset explicitly clears the MAC's view of the PHY's IRQ
> > status. In doing so it potentially leaves the PHY with a pending
> > interrupt that will never be acknowledged, at which point no further
> > interrupts will be generated.
> > 
> > Avoid the problem by acknowledging any pending PHY interrupt after
> > clearing the MAC's status bit.
> > 
> > See: https://github.com/raspberrypi/linux/issues/2937
> > 
> > Signed-off-by: Phil Elwell <phil at raspberrypi.com>
> > 
> > (cherry picked from commit 44c11fa2063f00994cbce6708097f521f0b2c493 rpi-5.4.y)
> > Signed-off-by: Juerg Haefliger <juergh at canonical.com>
> > ---
> >  drivers/net/usb/lan78xx.c | 3 +++
> >  1 file changed, 3 insertions(+)
> > 
> > diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
> > index ad93e7f28dde..dcd68781e730 100644
> > --- a/drivers/net/usb/lan78xx.c
> > +++ b/drivers/net/usb/lan78xx.c
> > @@ -1181,6 +1181,9 @@ static int lan78xx_link_reset(struct lan78xx_net *dev)
> >  	if (unlikely(ret < 0))
> >  		return -EIO;
> >  
> > +	/* Acknowledge any pending PHY interrupt, lest it be the last */
> > +	phy_read(phydev, LAN88XX_INT_STS);
> > +
> >  	phy_read_status(phydev);
> >  
> >  	if (!phydev->link && dev->link_on) {
> >   
> 
> I don't see a SRU template for this in the bug. Once that's been added
> I'll re-review.

Done. Thanks for pointing that out.

...Juerg

 
> Colin

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20201217/81fbc6ed/attachment.sig>


More information about the kernel-team mailing list