DORMANTno replies

[PATCH] (9/9) freenetdev - fix leaky drivers

From: Stephen Hemminger <hidden>
Date: 2003-08-19 19:36:54

When doing the audit for this change, it was obvious that several drivers
allocate but never free the net_device.

This fixes these drivers.  This patch is riskier than the earlier
ones, because it isn't just a simple substitution and maybe there
is a reason they never free.

diff -Nru a/drivers/message/fusion/mptlan.c b/drivers/message/fusion/mptlan.c
--- a/drivers/message/fusion/mptlan.c	Tue Aug 19 09:05:35 2003
+++ b/drivers/message/fusion/mptlan.c	Tue Aug 19 09:05:35 2003
@@ -1534,7 +1534,7 @@
 		printk (KERN_INFO ": %s/%s: Fusion MPT LAN device unregistered\n",
 			       IOC_AND_NETDEV_NAMES_s_s(dev));
 		unregister_netdev(dev);
-		//mpt_landev[i] = (struct net_device *) 0xdeadbeef; /* Debug */
+		free_netdev(dev);
 		mpt_landev[i] = NULL;
 	}
 
diff -Nru a/drivers/net/lasi_82596.c b/drivers/net/lasi_82596.c
--- a/drivers/net/lasi_82596.c	Tue Aug 19 09:05:35 2003
+++ b/drivers/net/lasi_82596.c	Tue Aug 19 09:05:35 2003
@@ -1596,7 +1596,7 @@
 		lp = (struct i596_private *) netdevice->priv;
 		dma_free_noncoherent(lp->dev, sizeof(struct i596_private), 
 				       (void *)netdevice->mem_start, lp->dma_addr);
-		netdevice->priv = NULL;
+		free_netdev(netdevice);
 	}
 
 	unregister_parisc_driver(&lan_driver);
diff -Nru a/drivers/net/wan/cosa.c b/drivers/net/wan/cosa.c
--- a/drivers/net/wan/cosa.c	Tue Aug 19 09:05:35 2003
+++ b/drivers/net/wan/cosa.c	Tue Aug 19 09:05:35 2003
@@ -632,6 +632,7 @@
 {
 	sppp_detach(chan->pppdev.dev);
 	unregister_netdev(chan->pppdev.dev);
+	free_netdev(chan->ppp.dev);
 }
 
 static int cosa_sppp_open(struct net_device *d)
diff -Nru a/drivers/usb/gadget/ether.c b/drivers/usb/gadget/ether.c
--- a/drivers/usb/gadget/ether.c	Tue Aug 19 09:05:35 2003
+++ b/drivers/usb/gadget/ether.c	Tue Aug 19 09:05:35 2003
@@ -1635,6 +1635,7 @@
 	}
 
 	unregister_netdev (dev->net);
+	free_netdev(dev->net);
 
 	/* assuming we used keventd, it must quiesce too */
 	flush_scheduled_work ();
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help