2022-10-21 18:19:57

by Kunihiko Hayashi

[permalink] [raw]
Subject: [PATCH net] net: ethernet: ave: Remove duplicate suspend/resume calls for phy

Since AVE has its own suspend/resume functions, there is no need to call
mdio_bus suspend/resume functions. Set phydev->mac_managed_pm to true
to avoid the calls.

In addition, ave_open() executes __phy_resume() via phy_start() in
ave_resume(), so no need to call phy_resume() explicitly. Remove it.

Suggested-by: Heiner Kallweit <[email protected]>
Fixes: 0ba78b4a4989 ("net: ethernet: ave: Add suspend/resume support")
Signed-off-by: Kunihiko Hayashi <[email protected]>
---
drivers/net/ethernet/socionext/sni_ave.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/drivers/net/ethernet/socionext/sni_ave.c b/drivers/net/ethernet/socionext/sni_ave.c
index 14cdd2e8373c..b4e0c57af7c3 100644
--- a/drivers/net/ethernet/socionext/sni_ave.c
+++ b/drivers/net/ethernet/socionext/sni_ave.c
@@ -1271,6 +1271,8 @@ static int ave_init(struct net_device *ndev)

phy_support_asym_pause(phydev);

+ phydev->mac_managed_pm = true;
+
phy_attached_info(phydev);

return 0;
@@ -1806,12 +1808,6 @@ static int ave_resume(struct device *dev)
wol.wolopts = priv->wolopts;
__ave_ethtool_set_wol(ndev, &wol);

- if (ndev->phydev) {
- ret = phy_resume(ndev->phydev);
- if (ret)
- return ret;
- }
-
if (netif_running(ndev)) {
ret = ave_open(ndev);
netif_device_attach(ndev);
--
2.25.1


2022-10-21 21:31:05

by Heiner Kallweit

[permalink] [raw]
Subject: Re: [PATCH net] net: ethernet: ave: Remove duplicate suspend/resume calls for phy

On 21.10.2022 19:45, Kunihiko Hayashi wrote:
> Since AVE has its own suspend/resume functions, there is no need to call
> mdio_bus suspend/resume functions. Set phydev->mac_managed_pm to true
> to avoid the calls.
>
The commit description doesn't make clear (any longer) what the issue
is that you're fixing. You should mention the WARN_ON() dump here
like in your first attempt.

> In addition, ave_open() executes __phy_resume() via phy_start() in
> ave_resume(), so no need to call phy_resume() explicitly. Remove it.
>
This sounds like an improvement, being independent of the actual fix.
The preferred approach would be:
- submit the fix to net
- submit the improvement in a separate patch to net-next

> Suggested-by: Heiner Kallweit <[email protected]>
> Fixes: 0ba78b4a4989 ("net: ethernet: ave: Add suspend/resume support")
> Signed-off-by: Kunihiko Hayashi <[email protected]>
> ---
> drivers/net/ethernet/socionext/sni_ave.c | 8 ++------
> 1 file changed, 2 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/net/ethernet/socionext/sni_ave.c b/drivers/net/ethernet/socionext/sni_ave.c
> index 14cdd2e8373c..b4e0c57af7c3 100644
> --- a/drivers/net/ethernet/socionext/sni_ave.c
> +++ b/drivers/net/ethernet/socionext/sni_ave.c
> @@ -1271,6 +1271,8 @@ static int ave_init(struct net_device *ndev)
>
> phy_support_asym_pause(phydev);
>
> + phydev->mac_managed_pm = true;
> +
> phy_attached_info(phydev);
>
> return 0;
> @@ -1806,12 +1808,6 @@ static int ave_resume(struct device *dev)
> wol.wolopts = priv->wolopts;
> __ave_ethtool_set_wol(ndev, &wol);
>
> - if (ndev->phydev) {
> - ret = phy_resume(ndev->phydev);
> - if (ret)
> - return ret;
> - }
> -
> if (netif_running(ndev)) {
> ret = ave_open(ndev);
> netif_device_attach(ndev);

2022-10-22 17:46:33

by Kunihiko Hayashi

[permalink] [raw]
Subject: Re: [PATCH net] net: ethernet: ave: Remove duplicate suspend/resume calls for phy

Hi,

On 2022/10/22 5:55, Heiner Kallweit wrote:
> On 21.10.2022 19:45, Kunihiko Hayashi wrote:
>> Since AVE has its own suspend/resume functions, there is no need to call
>> mdio_bus suspend/resume functions. Set phydev->mac_managed_pm to true
>> to avoid the calls.
>>
> The commit description doesn't make clear (any longer) what the issue
> is that you're fixing. You should mention the WARN_ON() dump here
> like in your first attempt.

Indeed, I forgot to mention the WARN_ON() dump issue.

>> In addition, ave_open() executes __phy_resume() via phy_start() in
>> ave_resume(), so no need to call phy_resume() explicitly. Remove it.
>>
> This sounds like an improvement, being independent of the actual fix.
> The preferred approach would be:
> - submit the fix to net
> - submit the improvement in a separate patch to net-next

Ah, I see.
The one is for fixing WARN_ON() dump, and the other isn't affected
by the behavior, but it should be duplicate removal.

I'll separate it into two patches.

Thank you,

---
Best Regards
Kunihiko Hayashi