[PATCH 200/241] drivers/net/ethernet/nxp/lpc_eth.c: Call mdiobus_unregister before mdiobus_free

Herton Ronaldo Krzesinski herton.krzesinski at canonical.com
Thu Dec 13 13:59:25 UTC 2012 -stable review patch.  If anyone has any objections, please let me know.


From: Peter Senna Tschudin <peter.senna at gmail.com>

commit 57c10b61c84bfed68b1b317d6f507a392724b9c4 upstream.

Based on commit b27393aecf66199f5ddad37c302d3e0cfadbe6c0

Calling mdiobus_free without calling mdiobus_unregister causes
BUG_ON(). This patch fixes the issue.

The semantic patch that found this issue(http://coccinelle.lip6.fr/):
// <smpl>
expression E;
  ... when != mdiobus_unregister(E);

+ mdiobus_unregister(E);
// </smpl>

Signed-off-by: Peter Senna Tschudin <peter.senna at gmail.com>
Tested-by: Roland Stigge <stigge at antcom.de>
Tested-by: Alexandre Pereira da Silva <aletes.xgr at gmail.com>
Signed-off-by: David S. Miller <davem at davemloft.net>
Signed-off-by: Herton Ronaldo Krzesinski <herton.krzesinski at canonical.com>
 drivers/net/ethernet/nxp/lpc_eth.c |    1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/nxp/lpc_eth.c b/drivers/net/ethernet/nxp/lpc_eth.c
index 083d671..6793190 100644
--- a/drivers/net/ethernet/nxp/lpc_eth.c
+++ b/drivers/net/ethernet/nxp/lpc_eth.c
@@ -1543,6 +1543,7 @@ static int lpc_eth_drv_remove(struct platform_device *pdev)
 	free_irq(ndev->irq, ndev);
+	mdiobus_unregister(pldat->mii_bus);

More information about the kernel-team mailing list