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

From: Jacob Keller
Date: Thu Apr 13 2023 - 13:07:44 EST




On 4/13/2023 8:06 AM, 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.
>
> Signed-off-by: Yan Wang <rk.code@xxxxxxxxxxx>

This looks identical to the net fix you posted at [1]. I don't think we
need both?

[1]:
https://lore.kernel.org/netdev/KL1PR01MB5448020DE191340AE64530B0E6989@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/