Re: [PATCH net-next v3] net: stmmac:fix system hang when setting up tag_8021q VLAN for DSA ports

From: Jakub Kicinski
Date: Fri Apr 14 2023 - 01:00:53 EST


On Fri, 14 Apr 2023 11:07:10 +0800 Yan Wang wrote:
> The system hang because of dsa_tag_8021q_port_setup()->
> stmmac_vlan_rx_add_vid().
>
> I found in stmmac_drv_probe() that cailing pm_runtime_put()
> disabled the clock.
>
> First, when the kernel is compiled with CONFIG_PM=y,The stmmac's
> resume/suspend is active.
>
> Secondly,stmmac as DSA master,the dsa_tag_8021q_port_setup() function
> will callback stmmac_vlan_rx_add_vid when DSA dirver starts. However,
> The system is hanged for the stmmac_vlan_rx_add_vid() accesses its
> registers after stmmac's clock is closed.
>
> I would suggest adding the pm_runtime_resume_and_get() to the
> stmmac_vlan_rx_add_vid().This guarantees that resuming clock output
> while in use.
>
> Fixes: b3dcb3127786 ("net: stmmac: correct clocks enabled in stmmac_vlan_rx_kill_vid()")
> Signed-off-by: Yan Wang <rk.code@xxxxxxxxxxx>

Happy to see you managed to work around the email server problems!

Please make sure to read this doc before posting the next version:
https://www.kernel.org/doc/html/next/process/maintainer-netdev.html