[PATCH 2/3] [bonding 2.4] Backport free_netdev()
From: Amir Noam <hidden>
Date: 2003-09-15 09:00:34
diff -Nuarp a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
--- a/drivers/net/bonding/bond_main.c 2003-09-15 11:39:39.000000000 +0300
+++ b/drivers/net/bonding/bond_main.c 2003-09-15 11:39:41.000000000 +0300@@ -3788,7 +3788,7 @@ static void bond_free_all(void) unregister_netdev(dev); bond_deinit(dev); - kfree(dev); + free_netdev(dev); } }
@@ -4194,7 +4194,7 @@ static int __init bonding_init(void) err = dev_alloc_name(dev, "bond%d"); if (err < 0) { - kfree(dev); + free_netdev(dev); goto out_err; }
@@ -4204,7 +4204,7 @@ static int __init bonding_init(void) */ err = bond_init(dev); if (err < 0) { - kfree(dev); + free_netdev(dev); goto out_err; }
@@ -4213,7 +4213,7 @@ static int __init bonding_init(void) err = register_netdevice(dev); if (err < 0) { bond_deinit(dev); - kfree(dev); + free_netdev(dev); goto out_err; } }
diff -Nuarp a/include/linux/netdevice.h b/include/linux/netdevice.h
--- a/include/linux/netdevice.h 2003-09-15 11:39:39.000000000 +0300
+++ b/include/linux/netdevice.h 2003-09-15 11:39:41.000000000 +0300@@ -49,6 +49,7 @@ struct ethtool_ops; #define HAVE_ALLOC_NETDEV /* feature macro: alloc_xxxdev functions are available. */ +#define HAVE_FREE_NETDEV #define NET_XMIT_SUCCESS 0 #define NET_XMIT_DROP 1 /* skb dropped */
@@ -871,6 +872,10 @@ extern int netdev_fastroute_obstacles; extern void dev_clear_fastroute(struct net_device *dev); #endif +static inline void free_netdev(struct net_device *dev) +{ + kfree(dev); +} #endif /* __KERNEL__ */