[PATCH net] net: stmmac: fix double serdes powerdown

Chang, Junxiao junxiao.chang at intel.com
Thu Jun 22 17:05:32 PDT 2023


Acked-by: Junxiao Chang <junxiao.chang at intel.com>

-----Original Message-----
From: Andrew Halaney <ahalaney at redhat.com> 
Sent: Friday, June 23, 2023 2:54 AM
To: Bartosz Golaszewski <brgl at bgdev.pl>
Cc: Giuseppe Cavallaro <peppe.cavallaro at st.com>; Alexandre Torgue <alexandre.torgue at foss.st.com>; Jose Abreu <joabreu at synopsys.com>; David S . Miller <davem at davemloft.net>; Eric Dumazet <edumazet at google.com>; Jakub Kicinski <kuba at kernel.org>; Paolo Abeni <pabeni at redhat.com>; Maxime Coquelin <mcoquelin.stm32 at gmail.com>; Chang, Junxiao <junxiao.chang at intel.com>; netdev at vger.kernel.org; linux-stm32 at st-md-mailman.stormreply.com; linux-arm-kernel at lists.infradead.org; linux-kernel at vger.kernel.org; Bartosz Golaszewski <bartosz.golaszewski at linaro.org>
Subject: Re: [PATCH net] net: stmmac: fix double serdes powerdown

On Wed, Jun 21, 2023 at 03:55:37PM +0200, Bartosz Golaszewski wrote:
> From: Bartosz Golaszewski <bartosz.golaszewski at linaro.org>
> 
> Commit 49725ffc15fc ("net: stmmac: power up/down serdes in
> stmmac_open/release") correctly added a call to the serdes_powerdown() 
> callback to stmmac_release() but did not remove the one from
> stmmac_remove() which leads to a doubled call to serdes_powerdown().
> 
> This can lead to all kinds of problems: in the case of the qcom ethqos 
> driver, it caused an unbalanced regulator disable splat.
> 
> Fixes: 49725ffc15fc ("net: stmmac: power up/down serdes in 
> stmmac_open/release")
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski at linaro.org>

Reviewed-by: Andrew Halaney <ahalaney at redhat.com>
Tested-by: Andrew Halaney <ahalaney at redhat.com>

> ---
>  drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 6 ------
>  1 file changed, 6 deletions(-)
> 
> diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c 
> b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> index 10e8a5606ba6..4727f7be4f86 100644
> --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> @@ -7461,12 +7461,6 @@ void stmmac_dvr_remove(struct device *dev)
>  	netif_carrier_off(ndev);
>  	unregister_netdev(ndev);
>  
> -	/* Serdes power down needs to happen after VLAN filter
> -	 * is deleted that is triggered by unregister_netdev().
> -	 */
> -	if (priv->plat->serdes_powerdown)
> -		priv->plat->serdes_powerdown(ndev, priv->plat->bsp_priv);
> -
>  #ifdef CONFIG_DEBUG_FS
>  	stmmac_exit_fs(ndev);
>  #endif
> --
> 2.39.2
> 




More information about the linux-arm-kernel mailing list