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

From: Sergey Shtylyov
Date: Tue Sep 20 2022 - 08:43:53 EST


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 <geert+renesas@xxxxxxxxx>
>>
>> Reviewed-by: Sergey Shtylyov <s.shtylyov@xxxxxx>
>
> 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