net: ethernet: ave: Fix error returns in ave_init
authorWang Hai <wanghai38@huawei.com>
Fri, 17 Jul 2020 02:50:49 +0000 (10:50 +0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 22 Jul 2020 01:31:46 +0000 (18:31 -0700)
When regmap_update_bits failed in ave_init(), calls of the functions
reset_control_assert() and clk_disable_unprepare() were missed.
Add goto out_reset_assert to do this.

Fixes: 57878f2f4697 ("net: ethernet: ave: add support for phy-mode setting of system controller")
Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Wang Hai <wanghai38@huawei.com>
Reviewed-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/socionext/sni_ave.c

index f2638446b62e69a9dcc8b5bd9b4e8f4cff6f0d6a..81b554dd7221bc3038393940b7e87385e0f8c4b9 100644 (file)
@@ -1191,7 +1191,7 @@ static int ave_init(struct net_device *ndev)
        ret = regmap_update_bits(priv->regmap, SG_ETPINMODE,
                                 priv->pinmode_mask, priv->pinmode_val);
        if (ret)
-               return ret;
+               goto out_reset_assert;
 
        ave_global_reset(ndev);