mirror of https://gitee.com/openkylin/linux.git
net/fec_mpc52xx: Fix kernel panic on FEC error
The MDIO bus cannot be accessed at interrupt context, but on an FEC error, the fec_mpc52xx driver reset function also tries to reset the PHY. Since the error is detected at IRQ context, and the PHY functions try to sleep, the kernel ends up panicking. Resetting the PHY on an FEC error isn't even necessary. This patch solves the problem by removing the PHY reset entirely. Signed-off-by: John Bonesio <bones@secretlab.ca> Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
e72701acbe
commit
37ccd92f55
|
@ -759,12 +759,6 @@ static void mpc52xx_fec_reset(struct net_device *dev)
|
||||||
|
|
||||||
mpc52xx_fec_hw_init(dev);
|
mpc52xx_fec_hw_init(dev);
|
||||||
|
|
||||||
if (priv->phydev) {
|
|
||||||
phy_stop(priv->phydev);
|
|
||||||
phy_write(priv->phydev, MII_BMCR, BMCR_RESET);
|
|
||||||
phy_start(priv->phydev);
|
|
||||||
}
|
|
||||||
|
|
||||||
bcom_fec_rx_reset(priv->rx_dmatsk);
|
bcom_fec_rx_reset(priv->rx_dmatsk);
|
||||||
bcom_fec_tx_reset(priv->tx_dmatsk);
|
bcom_fec_tx_reset(priv->tx_dmatsk);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue