DORMANTno replies

[PATCH] (8/9) freenetdev - destructors

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

Drivers that use kfree in destructor are easily converted
to use free_netdev.

diff -Nru a/drivers/net/hamradio/bpqether.c b/drivers/net/hamradio/bpqether.c
--- a/drivers/net/hamradio/bpqether.c	Tue Aug 19 11:54:46 2003
+++ b/drivers/net/hamradio/bpqether.c	Tue Aug 19 11:54:46 2003
@@ -482,7 +482,7 @@
 	dev->set_mac_address = bpq_set_mac_address;
 	dev->get_stats	     = bpq_get_stats;
 	dev->do_ioctl	     = bpq_ioctl;
-	dev->destructor	     =  (void (*)(struct net_device *)) kfree;
+	dev->destructor	     = free_netdev;
 
 	memcpy(dev->broadcast, ax25_bcast, AX25_ADDR_LEN);
 	memcpy(dev->dev_addr,  ax25_defaddr, AX25_ADDR_LEN);
diff -Nru a/drivers/net/ppp_generic.c b/drivers/net/ppp_generic.c
--- a/drivers/net/ppp_generic.c	Tue Aug 19 11:54:46 2003
+++ b/drivers/net/ppp_generic.c	Tue Aug 19 11:54:46 2003
@@ -2256,11 +2256,6 @@
  * and for initialization.
  */
 
-static void ppp_device_destructor(struct net_device *dev)
-{
-	kfree(dev);
-}
-
 /*
  * Create a new ppp interface unit.  Fails if it can't allocate memory
  * or if there is already a unit with the requested number.
@@ -2309,7 +2304,7 @@
 	dev->init = ppp_net_init;
 	sprintf(dev->name, "ppp%d", unit);
 	dev->priv = ppp;
-	dev->destructor = ppp_device_destructor;
+	dev->destructor = free_netdev;
 
 	rtnl_lock();
 	ret = register_netdevice(dev);
diff -Nru a/drivers/net/shaper.c b/drivers/net/shaper.c
--- a/drivers/net/shaper.c	Tue Aug 19 11:54:46 2003
+++ b/drivers/net/shaper.c	Tue Aug 19 11:54:46 2003
@@ -642,7 +642,7 @@
 
 	dev->open		= shaper_open;
 	dev->stop		= shaper_close;
-	dev->destructor 	= (void (*)(struct net_device *))kfree;
+	dev->destructor 	= free_netdev;
 	dev->hard_start_xmit 	= shaper_start_xmit;
 	dev->get_stats 		= shaper_get_stats;
 	dev->set_multicast_list = NULL;
diff -Nru a/drivers/net/slip.c b/drivers/net/slip.c
--- a/drivers/net/slip.c	Tue Aug 19 11:54:46 2003
+++ b/drivers/net/slip.c	Tue Aug 19 11:54:46 2003
@@ -640,7 +640,7 @@
 	dev->init		= sl_init;
 	dev->uninit	  	= sl_uninit;
 	dev->open		= sl_open;
-	dev->destructor		= (void (*)(struct net_device *))kfree;
+	dev->destructor		= free_netdev;
 	dev->stop		= sl_close;
 	dev->get_stats	        = sl_get_stats;
 	dev->change_mtu		= sl_change_mtu;
diff -Nru a/drivers/net/tun.c b/drivers/net/tun.c
--- a/drivers/net/tun.c	Tue Aug 19 11:54:46 2003
+++ b/drivers/net/tun.c	Tue Aug 19 11:54:46 2003
@@ -358,7 +358,7 @@
 	dev->hard_start_xmit = tun_net_xmit;
 	dev->stop = tun_net_close;
 	dev->get_stats = tun_net_stats;
-	dev->destructor = (void (*)(struct net_device *))kfree;
+	dev->destructor = free_netdev;
 }
 
 static struct tun_struct *tun_get_by_name(const char *name)
diff -Nru a/drivers/net/wan/hdlc_fr.c b/drivers/net/wan/hdlc_fr.c
--- a/drivers/net/wan/hdlc_fr.c	Tue Aug 19 11:54:46 2003
+++ b/drivers/net/wan/hdlc_fr.c	Tue Aug 19 11:54:46 2003
@@ -1055,7 +1055,7 @@
 		return -EIO;
 	}
 
-	dev->destructor = (void (*)(struct net_device *)) kfree;
+	dev->destructor = free_netdev;
 	*get_dev_p(pvc, type) = dev;
 	if (!used) {
 		hdlc->state.fr.dce_changed = 1;
diff -Nru a/drivers/net/wan/lapbether.c b/drivers/net/wan/lapbether.c
--- a/drivers/net/wan/lapbether.c	Tue Aug 19 11:54:46 2003
+++ b/drivers/net/wan/lapbether.c	Tue Aug 19 11:54:46 2003
@@ -324,7 +324,7 @@
 	dev->hard_start_xmit = lapbeth_xmit;
 	dev->open	     = lapbeth_open;
 	dev->stop	     = lapbeth_close;
-	dev->destructor	     = (void (*)(struct net_device *))kfree;
+	dev->destructor	     = free_netdev;
 	dev->set_mac_address = lapbeth_set_mac_address;
 	dev->get_stats	     = lapbeth_get_stats;
 	dev->type            = ARPHRD_X25;
diff -Nru a/net/8021q/vlan.c b/net/8021q/vlan.c
--- a/net/8021q/vlan.c	Tue Aug 19 11:54:46 2003
+++ b/net/8021q/vlan.c	Tue Aug 19 11:54:46 2003
@@ -358,7 +358,7 @@
 	new_dev->stop = vlan_dev_stop;
 	new_dev->set_mac_address = vlan_dev_set_mac_address;
 	new_dev->set_multicast_list = vlan_dev_set_multicast_list;
-	new_dev->destructor = (void (*)(struct net_device *)) kfree;
+	new_dev->destructor = free_netdev;
 }
 
 /*  Attach a VLAN device to a mac address (ie Ethernet Card).
diff -Nru a/net/bridge/br_device.c b/net/bridge/br_device.c
--- a/net/bridge/br_device.c	Tue Aug 19 11:54:46 2003
+++ b/net/bridge/br_device.c	Tue Aug 19 11:54:46 2003
@@ -110,22 +110,6 @@
 	return -1;
 }
 
-/* convert later to direct kfree */
-static void br_dev_free(struct net_device *dev)
-{
-	struct net_bridge *br = dev->priv;
-
-	WARN_ON(!list_empty(&br->port_list));
-	WARN_ON(!list_empty(&br->age_list));
-
-	BUG_ON(timer_pending(&br->hello_timer));
-	BUG_ON(timer_pending(&br->tcn_timer));
-	BUG_ON(timer_pending(&br->topology_change_timer));
-	BUG_ON(timer_pending(&br->gc_timer));
-
-	kfree(dev);
-}
-
 void br_dev_setup(struct net_device *dev)
 {
 	memset(dev->dev_addr, 0, ETH_ALEN);
@@ -137,7 +121,7 @@
 	dev->hard_start_xmit = br_dev_xmit;
 	dev->open = br_dev_open;
 	dev->set_multicast_list = br_dev_set_multicast_list;
-	dev->destructor = br_dev_free;
+	dev->destructor = free_netdev;
 	SET_MODULE_OWNER(dev);
 	dev->stop = br_dev_stop;
 	dev->accept_fastpath = br_dev_accept_fastpath;
diff -Nru a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
--- a/net/ipv4/ip_gre.c	Tue Aug 19 11:54:46 2003
+++ b/net/ipv4/ip_gre.c	Tue Aug 19 11:54:46 2003
@@ -1128,7 +1128,7 @@
 {
 	SET_MODULE_OWNER(dev);
 	dev->uninit		= ipgre_tunnel_uninit;
-	dev->destructor 	= (void (*)(struct net_device *))kfree;
+	dev->destructor 	= free_netdev;
 	dev->hard_start_xmit	= ipgre_tunnel_xmit;
 	dev->get_stats		= ipgre_tunnel_get_stats;
 	dev->do_ioctl		= ipgre_tunnel_ioctl;
diff -Nru a/net/ipv4/ipip.c b/net/ipv4/ipip.c
--- a/net/ipv4/ipip.c	Tue Aug 19 11:54:46 2003
+++ b/net/ipv4/ipip.c	Tue Aug 19 11:54:46 2003
@@ -246,7 +246,7 @@
 	nt = dev->priv;
 	SET_MODULE_OWNER(dev);
 	dev->init = ipip_tunnel_init;
-	dev->destructor = (void (*)(struct net_device *))kfree;
+	dev->destructor = free_netdev;
 	nt->parms = *parms;
 
 	if (register_netdevice(dev) < 0) {
diff -Nru a/net/ipv4/ipmr.c b/net/ipv4/ipmr.c
--- a/net/ipv4/ipmr.c	Tue Aug 19 11:54:46 2003
+++ b/net/ipv4/ipmr.c	Tue Aug 19 11:54:46 2003
@@ -193,7 +193,7 @@
 	dev->flags		= IFF_NOARP;
 	dev->hard_start_xmit	= reg_vif_xmit;
 	dev->get_stats		= reg_vif_get_stats;
-	dev->destructor		= (void (*)(struct net_device *)) kfree;
+	dev->destructor		= free_netdev;
 }
 
 static struct net_device *ipmr_reg_vif(void)
diff -Nru a/net/ipv6/sit.c b/net/ipv6/sit.c
--- a/net/ipv6/sit.c	Tue Aug 19 11:54:46 2003
+++ b/net/ipv6/sit.c	Tue Aug 19 11:54:46 2003
@@ -722,7 +722,7 @@
 {
 	SET_MODULE_OWNER(dev);
 	dev->uninit		= ipip6_tunnel_uninit;
-	dev->destructor 	= (void (*)(struct net_device *))kfree;
+	dev->destructor 	= free_netdev;
 	dev->hard_start_xmit	= ipip6_tunnel_xmit;
 	dev->get_stats		= ipip6_tunnel_get_stats;
 	dev->do_ioctl		= ipip6_tunnel_ioctl;
diff -Nru a/net/irda/irda_device.c b/net/irda/irda_device.c
--- a/net/irda/irda_device.c	Tue Aug 19 11:54:46 2003
+++ b/net/irda/irda_device.c	Tue Aug 19 11:54:46 2003
@@ -372,11 +372,6 @@
 	irda_task_kick(task);
 }
 
-static void irda_device_destructor(struct net_device *dev)
-{
-	kfree(dev);
-}
-
 /*
  * Function irda_device_setup (dev)
  *
@@ -388,7 +383,7 @@
         dev->hard_header_len = 0;
         dev->addr_len        = 0;
 
-	dev->destructor      = irda_device_destructor;
+	dev->destructor      = free_netdev;
 
         dev->type            = ARPHRD_IRDA;
         dev->tx_queue_len    = 8; /* Window size + 1 s-frame */
diff -Nru a/net/netrom/nr_dev.c b/net/netrom/nr_dev.c
--- a/net/netrom/nr_dev.c	Tue Aug 19 11:54:46 2003
+++ b/net/netrom/nr_dev.c	Tue Aug 19 11:54:46 2003
@@ -204,7 +204,7 @@
 	dev->hard_start_xmit	= nr_xmit;
 	dev->open		= nr_open;
 	dev->stop		= nr_close;
-	dev->destructor		= (void (*)(struct net_device *))kfree;
+	dev->destructor		= free_netdev;
 
 	dev->hard_header	= nr_header;
 	dev->hard_header_len	= NR_NETWORK_LEN + NR_TRANSPORT_LEN;
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help