Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 37ccd92f authored by John Bonesio's avatar John Bonesio Committed by David S. Miller
Browse files

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: default avatarJohn Bonesio <bones@secretlab.ca>
Signed-off-by: default avatarGrant Likely <grant.likely@secretlab.ca>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent e72701ac
Loading
Loading
Loading
Loading
+0 −6
Original line number Diff line number Diff line
@@ -759,12 +759,6 @@ static void mpc52xx_fec_reset(struct net_device *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_tx_reset(priv->tx_dmatsk);