2022-09-19 15:13:10

by Geert Uytterhoeven

[permalink] [raw]
Subject: [PATCH] net: ravb: Fix PHY state warning splat during system resume

Since commit 744d23c71af39c7d ("net: phy: Warn about incorrect
mdio_bus_phy_resume() state"), a warning splat is printed during system
resume with Wake-on-LAN disabled:

WARNING: CPU: 0 PID: 1197 at drivers/net/phy/phy_device.c:323 mdio_bus_phy_resume+0xbc/0xc8

As the Renesas Ethernet AVB driver already calls phy_{stop,start}() in
its suspend/resume callbacks, it is sufficient to just mark the MAC
responsible for managing the power state of the PHY.

Fixes: fba863b816049b03 ("net: phy: make PHY PM ops a no-op if MAC driver manages PHY PM")
Signed-off-by: Geert Uytterhoeven <[email protected]>
---
drivers/net/ethernet/renesas/ravb_main.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c
index d013cc1c8a0ad007..abe6f570fe102636 100644
--- a/drivers/net/ethernet/renesas/ravb_main.c
+++ b/drivers/net/ethernet/renesas/ravb_main.c
@@ -1449,6 +1449,8 @@ static int ravb_phy_init(struct net_device *ndev)
phy_remove_link_mode(phydev, ETHTOOL_LINK_MODE_100baseT_Half_BIT);
}

+ /* Indicate that the MAC is responsible for managing PHY PM */
+ phydev->mac_managed_pm = true;
phy_attached_info(phydev);

return 0;
--
2.25.1


2022-09-19 18:07:46

by Florian Fainelli

[permalink] [raw]
Subject: Re: [PATCH] net: ravb: Fix PHY state warning splat during system resume

On 9/19/22 07:48, Geert Uytterhoeven wrote:
> Since commit 744d23c71af39c7d ("net: phy: Warn about incorrect
> mdio_bus_phy_resume() state"), a warning splat is printed during system
> resume with Wake-on-LAN disabled:
>
> WARNING: CPU: 0 PID: 1197 at drivers/net/phy/phy_device.c:323 mdio_bus_phy_resume+0xbc/0xc8
>
> As the Renesas Ethernet AVB driver already calls phy_{stop,start}() in
> its suspend/resume callbacks, it is sufficient to just mark the MAC
> responsible for managing the power state of the PHY.
>
> Fixes: fba863b816049b03 ("net: phy: make PHY PM ops a no-op if MAC driver manages PHY PM")
> Signed-off-by: Geert Uytterhoeven <[email protected]>

Reviewed-by: Florian Fainelli <[email protected]>
--
Florian

2022-09-19 18:44:22

by Sergey Shtylyov

[permalink] [raw]
Subject: Re: [PATCH] net: ravb: Fix PHY state warning splat during system resume

On 9/19/22 5:48 PM, Geert Uytterhoeven wrote:

> Since commit 744d23c71af39c7d ("net: phy: Warn about incorrect
> mdio_bus_phy_resume() state"), a warning splat is printed during system
> resume with Wake-on-LAN disabled:
>
> WARNING: CPU: 0 PID: 1197 at drivers/net/phy/phy_device.c:323 mdio_bus_phy_resume+0xbc/0xc8
>
> As the Renesas Ethernet AVB driver already calls phy_{stop,start}() in
> its suspend/resume callbacks, it is sufficient to just mark the MAC
> responsible for managing the power state of the PHY.
>
> Fixes: fba863b816049b03 ("net: phy: make PHY PM ops a no-op if MAC driver manages PHY PM")
> Signed-off-by: Geert Uytterhoeven <[email protected]>

Reviewed-by: Sergey Shtylyov <[email protected]>

[...]

> diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c
> index d013cc1c8a0ad007..abe6f570fe102636 100644
> --- a/drivers/net/ethernet/renesas/ravb_main.c
> +++ b/drivers/net/ethernet/renesas/ravb_main.c
> @@ -1449,6 +1449,8 @@ static int ravb_phy_init(struct net_device *ndev)
> phy_remove_link_mode(phydev, ETHTOOL_LINK_MODE_100baseT_Half_BIT);
> }
>
> + /* Indicate that the MAC is responsible for managing PHY PM */
> + phydev->mac_managed_pm = true;

Hm, this field is declared as *unsigned*...

> phy_attached_info(phydev);
[...]

MBR, Sergey

2022-09-19 19:07:04

by Sergey Shtylyov

[permalink] [raw]
Subject: Re: [PATCH] net: ravb: Fix PHY state warning splat during system resume

On 9/19/22 5:48 PM, Geert Uytterhoeven wrote:

> Since commit 744d23c71af39c7d ("net: phy: Warn about incorrect
> mdio_bus_phy_resume() state"), a warning splat is printed during system
> resume with Wake-on-LAN disabled:
>
> WARNING: CPU: 0 PID: 1197 at drivers/net/phy/phy_device.c:323 mdio_bus_phy_resume+0xbc/0xc8
>
> As the Renesas Ethernet AVB driver already calls phy_{stop,start}() in
> its suspend/resume callbacks, it is sufficient to just mark the MAC
> responsible for managing the power state of the PHY.
>
> Fixes: fba863b816049b03 ("net: phy: make PHY PM ops a no-op if MAC driver manages PHY PM")
> Signed-off-by: Geert Uytterhoeven <[email protected]>

Reviewed-by: Sergey Shtylyov <[email protected]>

[...]

> diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c
> index d013cc1c8a0ad007..abe6f570fe102636 100644
> --- a/drivers/net/ethernet/renesas/ravb_main.c
> +++ b/drivers/net/ethernet/renesas/ravb_main.c
> @@ -1449,6 +1449,8 @@ static int ravb_phy_init(struct net_device *ndev)
> phy_remove_link_mode(phydev, ETHTOOL_LINK_MODE_100baseT_Half_BIT);
> }
>
> + /* Indicate that the MAC is responsible for managing PHY PM */
> + phydev->mac_managed_pm = true;

Hm, this field is declared as *unsigned*...

> phy_attached_info(phydev);
[...]

MBR, Sergey

2022-09-20 07:20:02

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: [PATCH] net: ravb: Fix PHY state warning splat during system resume

Hi Sergey,

On Mon, Sep 19, 2022 at 8:40 PM Sergey Shtylyov <[email protected]> wrote:
> On 9/19/22 5:48 PM, Geert Uytterhoeven wrote:
> > Since commit 744d23c71af39c7d ("net: phy: Warn about incorrect
> > mdio_bus_phy_resume() state"), a warning splat is printed during system
> > resume with Wake-on-LAN disabled:
> >
> > WARNING: CPU: 0 PID: 1197 at drivers/net/phy/phy_device.c:323 mdio_bus_phy_resume+0xbc/0xc8
> >
> > As the Renesas Ethernet AVB driver already calls phy_{stop,start}() in
> > its suspend/resume callbacks, it is sufficient to just mark the MAC
> > responsible for managing the power state of the PHY.
> >
> > Fixes: fba863b816049b03 ("net: phy: make PHY PM ops a no-op if MAC driver manages PHY PM")
> > Signed-off-by: Geert Uytterhoeven <[email protected]>
>
> Reviewed-by: Sergey Shtylyov <[email protected]>

Thanks for your review!

> > --- a/drivers/net/ethernet/renesas/ravb_main.c
> > +++ b/drivers/net/ethernet/renesas/ravb_main.c
> > @@ -1449,6 +1449,8 @@ static int ravb_phy_init(struct net_device *ndev)
> > phy_remove_link_mode(phydev, ETHTOOL_LINK_MODE_100baseT_Half_BIT);
> > }
> >
> > + /* Indicate that the MAC is responsible for managing PHY PM */
> > + phydev->mac_managed_pm = true;
>
> Hm, this field is declared as *unsigned*...

True, I copied this from drivers/net/ethernet/broadcom/genet/bcmmii.c.
But true/false are fully compatible with single-bit values.

The linuxdoc suggests to use true, like for all other single-bit fields used
as booleans:

include/linux/phy.h: * @mac_managed_pm: Set true if MAC driver takes
of suspending/resuming PHY

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

2022-09-20 13:42:00

by Sergey Shtylyov

[permalink] [raw]
Subject: Re: [PATCH] net: ravb: Fix PHY state warning splat during system resume

On 9/20/22 10:07 AM, Geert Uytterhoeven wrote:

[...]
>>> Since commit 744d23c71af39c7d ("net: phy: Warn about incorrect
>>> mdio_bus_phy_resume() state"), a warning splat is printed during system
>>> resume with Wake-on-LAN disabled:
>>>
>>> WARNING: CPU: 0 PID: 1197 at drivers/net/phy/phy_device.c:323 mdio_bus_phy_resume+0xbc/0xc8
>>>
>>> As the Renesas Ethernet AVB driver already calls phy_{stop,start}() in
>>> its suspend/resume callbacks, it is sufficient to just mark the MAC
>>> responsible for managing the power state of the PHY.
>>>
>>> Fixes: fba863b816049b03 ("net: phy: make PHY PM ops a no-op if MAC driver manages PHY PM")
>>> Signed-off-by: Geert Uytterhoeven <[email protected]>
>>
>> Reviewed-by: Sergey Shtylyov <[email protected]>
>
> Thanks for your review!

My duty! :-)

>>> --- a/drivers/net/ethernet/renesas/ravb_main.c
>>> +++ b/drivers/net/ethernet/renesas/ravb_main.c
>>> @@ -1449,6 +1449,8 @@ static int ravb_phy_init(struct net_device *ndev)
>>> phy_remove_link_mode(phydev, ETHTOOL_LINK_MODE_100baseT_Half_BIT);
>>> }
>>>
>>> + /* Indicate that the MAC is responsible for managing PHY PM */
>>> + phydev->mac_managed_pm = true;
>>
>> Hm, this field is declared as *unsigned*...
>
> True, I copied this from drivers/net/ethernet/broadcom/genet/bcmmii.c.
> But true/false are fully compatible with single-bit values.

Yes, however these 2 drivers do use 1 for setting the single bit fields...

> The linuxdoc suggests to use true, like for all other single-bit fields used
> as booleans:
>
> include/linux/phy.h: * @mac_managed_pm: Set true if MAC driver takes

Hah, here's the error I noticed: missing "care " here! :-)

> of suspending/resuming PHY
>
> Gr{oetje,eeting}s,
>
> Geert
[...]

MBR, Sergey

2022-09-21 00:46:44

by patchwork-bot+netdevbpf

[permalink] [raw]
Subject: Re: [PATCH] net: ravb: Fix PHY state warning splat during system resume

Hello:

This patch was applied to netdev/net.git (master)
by Jakub Kicinski <[email protected]>:

On Mon, 19 Sep 2022 16:48:00 +0200 you wrote:
> Since commit 744d23c71af39c7d ("net: phy: Warn about incorrect
> mdio_bus_phy_resume() state"), a warning splat is printed during system
> resume with Wake-on-LAN disabled:
>
> WARNING: CPU: 0 PID: 1197 at drivers/net/phy/phy_device.c:323 mdio_bus_phy_resume+0xbc/0xc8
>
> As the Renesas Ethernet AVB driver already calls phy_{stop,start}() in
> its suspend/resume callbacks, it is sufficient to just mark the MAC
> responsible for managing the power state of the PHY.
>
> [...]

Here is the summary with links:
- net: ravb: Fix PHY state warning splat during system resume
https://git.kernel.org/netdev/net/c/4924c0cdce75

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html