Hello Andrew,

On Thu, 7 Nov 2024 18:49:00 +0100
Andrew Lunn <and...@lunn.ch> wrote:

> > +   if (phydev)
> > +           phy_ethtool_get_wol(phydev, wol);
> > +
> >     if (qe_alive_during_sleep())
> >             wol->supported |= WAKE_MAGIC;  
> 
> So get WoL will return whatever methods the PHY supports, plus
> WAKE_MAGIC is added because i assume the MAC can do that. So depending
> on the PHY, it could be the full list:

> > +   if (wol->wolopts & WAKE_PHY)
> > +           ret = phy_ethtool_set_wol(phydev, wol);  
> 
> Here, the code only calls into the PHY for WAKE_PHY, when in fact the
> PHY could be handling WAKE_UCAST, WAKE_MCAST, WAKE_ARP etc.
> 
> So these conditions are wrong. It could we be that X years ago when
> this code was added only WAKE_PHY and WAKE_MAGIC existed?

Ah that's right indeed. So yeah my changes aren't enough, I'll go over
that patch again.

Thanks for spotting this,

Maxime

Reply via email to