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

From: Andrew Halaney
Date: Thu Jun 22 2023 - 14:55:23 EST


On Wed, Jun 21, 2023 at 03:55:37PM +0200, Bartosz Golaszewski wrote:
> From: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx>
>
> 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@xxxxxxxxxx>

Reviewed-by: Andrew Halaney <ahalaney@xxxxxxxxxx>
Tested-by: Andrew Halaney <ahalaney@xxxxxxxxxx>

> ---
> 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
>