summaryrefslogtreecommitdiffstats
path: root/net/ipv6/addrconf.c
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1998-03-03 01:22:27 +0000
committerRalf Baechle <ralf@linux-mips.org>1998-03-03 01:22:27 +0000
commitf9bbe9da79dbc8557c74efeb158b431cd67ace52 (patch)
tree3220d014a35f9d88a48668a1468524e988daebff /net/ipv6/addrconf.c
parent3d697109c1ff85ef563aec3d5e113ef225ed2792 (diff)
Upgrade to 2.1.73.
Diffstat (limited to 'net/ipv6/addrconf.c')
-rw-r--r--net/ipv6/addrconf.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index 6e69b8813..c66902f13 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -5,7 +5,7 @@
* Authors:
* Pedro Roque <roque@di.fc.ul.pt>
*
- * $Id: addrconf.c,v 1.28 1997/11/05 20:20:43 kuznet Exp $
+ * $Id: addrconf.c,v 1.30 1997/12/09 17:12:47 freitag Exp $
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -18,6 +18,8 @@
*
* Janos Farkas : delete timer on ifdown
* <chexum@bankinf.banki.hu>
+ * Andi Kleen : kill doube kfree on module
+ * unload.
*/
#include <linux/config.h>
@@ -1045,7 +1047,6 @@ int addrconf_notify(struct notifier_block *this, unsigned long event,
return NOTIFY_OK;
}
-
static int addrconf_ifdown(struct device *dev)
{
struct inet6_dev *idev, **bidev;
@@ -1067,6 +1068,8 @@ static int addrconf_ifdown(struct device *dev)
if (idev == NULL) {
end_bh_atomic();
+
+ printk(KERN_DEBUG "addrconf_ifdown: invalid device %p\n",dev);
return -ENODEV;
}
@@ -1403,13 +1406,10 @@ void addrconf_cleanup(void)
*/
for (i=0; i < IN6_ADDR_HSIZE; i++) {
- for (idev = inet6_dev_lst[i]; idev; ) {
- struct inet6_dev *back;
-
+ struct inet6_dev *next;
+ for (idev = inet6_dev_lst[i]; idev; idev = next) {
+ next = idev->next;
addrconf_ifdown(idev->dev);
- back = idev;
- idev = idev->next;
- kfree(back);
}
}