linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] net: stmmac: fix 'ethtool -P' return -EBUSY
@ 2021-07-19  7:44 Hao Chen
  2021-07-19  8:52 ` Joakim Zhang
  0 siblings, 1 reply; 2+ messages in thread
From: Hao Chen @ 2021-07-19  7:44 UTC (permalink / raw)
  To: peppe.cavallaro
  Cc: alexandre.torgue, joabreu, davem, kuba, mcoquelin.stm32, linux,
	netdev, linux-stm32, linux-kernel, Hao Chen

The permanent mac address should be available for query when the device
is not up.
NetworkManager, the system network daemon, uses 'ethtool -P' to obtain
the permanent address after the kernel start. When the network device
is not up, it will return the device busy error with 'ethtool -P'. At
that time, it is unable to access the Internet through the permanent
address by NetworkManager.
I think that the '.begin' is not used to check if the device is up.

Signed-off-by: Hao Chen <chenhaoa@uniontech.com>
---
 drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c
index d0ce608b81c3..7ccb0d738a1c 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c
@@ -412,8 +412,10 @@ static void stmmac_ethtool_setmsglevel(struct net_device *dev, u32 level)
 
 static int stmmac_check_if_running(struct net_device *dev)
 {
-	if (!netif_running(dev))
-		return -EBUSY;
+	struct stmmac_priv *priv = netdev_priv(dev);
+
+	pm_runtime_get_sync(priv->device);
+
 	return 0;
 }
 
-- 
2.20.1




^ permalink raw reply related	[flat|nested] 2+ messages in thread

* RE: [PATCH v2] net: stmmac: fix 'ethtool -P' return -EBUSY
  2021-07-19  7:44 [PATCH v2] net: stmmac: fix 'ethtool -P' return -EBUSY Hao Chen
@ 2021-07-19  8:52 ` Joakim Zhang
  0 siblings, 0 replies; 2+ messages in thread
From: Joakim Zhang @ 2021-07-19  8:52 UTC (permalink / raw)
  To: Hao Chen, peppe.cavallaro
  Cc: alexandre.torgue, joabreu, davem, kuba, mcoquelin.stm32, linux,
	netdev, linux-stm32, linux-kernel


> -----Original Message-----
> From: Hao Chen <chenhaoa@uniontech.com>
> Sent: 2021年7月19日 15:44
> To: peppe.cavallaro@st.com
> Cc: alexandre.torgue@foss.st.com; joabreu@synopsys.com;
> davem@davemloft.net; kuba@kernel.org; mcoquelin.stm32@gmail.com;
> linux@armlinux.org.uk; netdev@vger.kernel.org;
> linux-stm32@st-md-mailman.stormreply.com; linux-kernel@vger.kernel.org;
> Hao Chen <chenhaoa@uniontech.com>
> Subject: [PATCH v2] net: stmmac: fix 'ethtool -P' return -EBUSY
> 
> The permanent mac address should be available for query when the device is
> not up.
> NetworkManager, the system network daemon, uses 'ethtool -P' to obtain the
> permanent address after the kernel start. When the network device is not up,
> it will return the device busy error with 'ethtool -P'. At that time, it is unable to
> access the Internet through the permanent address by NetworkManager.
> I think that the '.begin' is not used to check if the device is up.
> 
> Signed-off-by: Hao Chen <chenhaoa@uniontech.com>
> ---
>  drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c
> b/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c
> index d0ce608b81c3..7ccb0d738a1c 100644
> --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c
> +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c
> @@ -412,8 +412,10 @@ static void stmmac_ethtool_setmsglevel(struct
> net_device *dev, u32 level)
> 
>  static int stmmac_check_if_running(struct net_device *dev)  {
> -	if (!netif_running(dev))
> -		return -EBUSY;
> +	struct stmmac_priv *priv = netdev_priv(dev);
> +
> +	pm_runtime_get_sync(priv->device);
> +
>  	return 0;
>  }

After this code change, clocks always enabled even the NIC is not up, it's not good.
Should implement .complete() to disable clocks after the info you got?

Best Regards,
Joakim Zhang
> 
> --
> 2.20.1
> 
> 


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-07-19  8:58 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-19  7:44 [PATCH v2] net: stmmac: fix 'ethtool -P' return -EBUSY Hao Chen
2021-07-19  8:52 ` Joakim Zhang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).