Message ID | 20240226080934.46003-3-Raju.Lakkaraju@microchip.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: lan743x: Fixes for multiple WOL related issues | expand |
The 02/26/2024 13:39, Raju Lakkaraju wrote: > Allow WOL support if MAC supports it, even if the PHY does not support it > > Fixes: e9e13b6adc338 ("lan743x: fix for potential NULL pointer dereference > with bare card") > Please no spaces between the tags. And you should not split on multiple line Fixes tag. > Signed-off-by: Raju Lakkaraju <Raju.Lakkaraju@microchip.com> > --- > drivers/net/ethernet/microchip/lan743x_ethtool.c | 14 ++++++++++++-- > 1 file changed, 12 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/ethernet/microchip/lan743x_ethtool.c b/drivers/net/ethernet/microchip/lan743x_ethtool.c > index a2b3f4433ca8..4899582b3d1d 100644 > --- a/drivers/net/ethernet/microchip/lan743x_ethtool.c > +++ b/drivers/net/ethernet/microchip/lan743x_ethtool.c > @@ -1163,6 +1163,17 @@ static int lan743x_ethtool_set_wol(struct net_device *netdev, > struct ethtool_wolinfo *wol) > { > struct lan743x_adapter *adapter = netdev_priv(netdev); > + int ret; > + > + if (netdev->phydev) { > + ret = phy_ethtool_set_wol(netdev->phydev, wol); > + if (ret != -EOPNOTSUPP && ret != 0) > + return ret; > + > + if (ret == -EOPNOTSUPP) > + netif_info(adapter, drv, adapter->netdev, > + "phy does not support WOL\n"); > + } > > adapter->wolopts = 0; > if (wol->wolopts & WAKE_UCAST) > @@ -1187,8 +1198,7 @@ static int lan743x_ethtool_set_wol(struct net_device *netdev, > > device_set_wakeup_enable(&adapter->pdev->dev, (bool)wol->wolopts); > > - return netdev->phydev ? phy_ethtool_set_wol(netdev->phydev, wol) > - : -ENETDOWN; > + return 0; > } > #endif /* CONFIG_PM */ > > -- > 2.34.1 >
> > + if (ret == -EOPNOTSUPP) > > + netif_info(adapter, drv, adapter->netdev, > > + "phy does not support WOL\n"); netdev_dbg(). We don't really care who is doing WoL, if its the MAC, the PHY, or a bit of both. So there is no need to spam the log with this.
Hi Horatiu, > -----Original Message----- > From: Horatiu Vultur - M31836 <Horatiu.Vultur@microchip.com> > Sent: Monday, February 26, 2024 1:59 PM > To: Raju Lakkaraju - I30499 <Raju.Lakkaraju@microchip.com> > Cc: netdev@vger.kernel.org; davem@davemloft.net; kuba@kernel.org; linux- > kernel@vger.kernel.org; Bryan Whitehead - C21958 > <Bryan.Whitehead@microchip.com>; richardcochran@gmail.com; > UNGLinuxDriver <UNGLinuxDriver@microchip.com> > Subject: Re: [PATCH net 2/3] net: lan743x: support WOL in MAC even when > PHY does not > > The 02/26/2024 13:39, Raju Lakkaraju wrote: > > Allow WOL support if MAC supports it, even if the PHY does not support > > it > > > > Fixes: e9e13b6adc338 ("lan743x: fix for potential NULL pointer > > dereference with bare card") > > > Please no spaces between the tags. And you should not split on multiple line > Fixes tag. > I will fix this issue. > > Signed-off-by: Raju Lakkaraju <Raju.Lakkaraju@microchip.com> > > --- > > drivers/net/ethernet/microchip/lan743x_ethtool.c | 14 ++++++++++++-- > > 1 file changed, 12 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/net/ethernet/microchip/lan743x_ethtool.c > > b/drivers/net/ethernet/microchip/lan743x_ethtool.c > > index a2b3f4433ca8..4899582b3d1d 100644 > > --- a/drivers/net/ethernet/microchip/lan743x_ethtool.c > > +++ b/drivers/net/ethernet/microchip/lan743x_ethtool.c > > @@ -1163,6 +1163,17 @@ static int lan743x_ethtool_set_wol(struct > net_device *netdev, > > struct ethtool_wolinfo *wol) > > { > > struct lan743x_adapter *adapter = netdev_priv(netdev); > > + int ret; > > + > > + if (netdev->phydev) { > > + ret = phy_ethtool_set_wol(netdev->phydev, wol); > > + if (ret != -EOPNOTSUPP && ret != 0) > > + return ret; > > + > > + if (ret == -EOPNOTSUPP) > > + netif_info(adapter, drv, adapter->netdev, > > + "phy does not support WOL\n"); > > + } > > > > adapter->wolopts = 0; > > if (wol->wolopts & WAKE_UCAST) > > @@ -1187,8 +1198,7 @@ static int lan743x_ethtool_set_wol(struct > > net_device *netdev, > > > > device_set_wakeup_enable(&adapter->pdev->dev, (bool)wol- > >wolopts); > > > > - return netdev->phydev ? phy_ethtool_set_wol(netdev->phydev, wol) > > - : -ENETDOWN; > > + return 0; > > } > > #endif /* CONFIG_PM */ > > > > -- > > 2.34.1 > > > > -- > /Horatiu Thanks, Raju
diff --git a/drivers/net/ethernet/microchip/lan743x_ethtool.c b/drivers/net/ethernet/microchip/lan743x_ethtool.c index a2b3f4433ca8..4899582b3d1d 100644 --- a/drivers/net/ethernet/microchip/lan743x_ethtool.c +++ b/drivers/net/ethernet/microchip/lan743x_ethtool.c @@ -1163,6 +1163,17 @@ static int lan743x_ethtool_set_wol(struct net_device *netdev, struct ethtool_wolinfo *wol) { struct lan743x_adapter *adapter = netdev_priv(netdev); + int ret; + + if (netdev->phydev) { + ret = phy_ethtool_set_wol(netdev->phydev, wol); + if (ret != -EOPNOTSUPP && ret != 0) + return ret; + + if (ret == -EOPNOTSUPP) + netif_info(adapter, drv, adapter->netdev, + "phy does not support WOL\n"); + } adapter->wolopts = 0; if (wol->wolopts & WAKE_UCAST) @@ -1187,8 +1198,7 @@ static int lan743x_ethtool_set_wol(struct net_device *netdev, device_set_wakeup_enable(&adapter->pdev->dev, (bool)wol->wolopts); - return netdev->phydev ? phy_ethtool_set_wol(netdev->phydev, wol) - : -ENETDOWN; + return 0; } #endif /* CONFIG_PM */
Allow WOL support if MAC supports it, even if the PHY does not support it Fixes: e9e13b6adc338 ("lan743x: fix for potential NULL pointer dereference with bare card") Signed-off-by: Raju Lakkaraju <Raju.Lakkaraju@microchip.com> --- drivers/net/ethernet/microchip/lan743x_ethtool.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-)