Commit ab1c637c authored by Andy Shevchenko's avatar Andy Shevchenko Committed by David S. Miller

stmmac: intel: Fix kernel crash due to wrong error path

Unfortunately sometimes ->probe() may fail. The commit b9663b7c
("net: stmmac: Enable SERDES power up/down sequence")
messed up with error handling and thus:

[   12.811311] ------------[ cut here ]------------
[   12.811993] kernel BUG at net/core/dev.c:9937!

Fix this by properly crafted error path.

Fixes: b9663b7c ("net: stmmac: Enable SERDES power up/down sequence")
Cc: Voon Weifeng <weifeng.voon@intel.com>
Cc: Ong Boon Leong <boon.leong.ong@intel.com>
Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 6ef4889f
...@@ -4991,7 +4991,7 @@ int stmmac_dvr_probe(struct device *device, ...@@ -4991,7 +4991,7 @@ int stmmac_dvr_probe(struct device *device,
priv->plat->bsp_priv); priv->plat->bsp_priv);
if (ret < 0) if (ret < 0)
return ret; goto error_serdes_powerup;
} }
#ifdef CONFIG_DEBUG_FS #ifdef CONFIG_DEBUG_FS
...@@ -5000,6 +5000,8 @@ int stmmac_dvr_probe(struct device *device, ...@@ -5000,6 +5000,8 @@ int stmmac_dvr_probe(struct device *device,
return ret; return ret;
error_serdes_powerup:
unregister_netdev(ndev);
error_netdev_register: error_netdev_register:
phylink_destroy(priv->phylink); phylink_destroy(priv->phylink);
error_phy_setup: error_phy_setup:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment