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

Jacob Keller jacob.e.keller at intel.com
Thu Apr 13 10:31:25 PDT 2023



On 4/13/2023 10:15 AM, Florian Fainelli wrote:
> On 4/13/23 10:07, Jacob Keller wrote:
>>
>>
>> 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 at outlook.com>
>>
>> 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@KL1PR01MB5448.apcprd01.prod.exchangelabs.com/
> 
> Unfortunately both still lack a proper Fixes: tag, and this is bug fix.

Good point. Yan, please identify the appropriate fixes tag and send a v2
of the net fix.

Thanks,
Jake



More information about the linux-arm-kernel mailing list