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__ */
|