Re: IPV6, PPP and aiieeh killing interrupt

Pedro Roque (roque@di.fc.ul.pt)
Wed, 13 Nov 1996 21:43:44 GMT


Could the folks with problems with ppp and ipv6 try the following patch,
please. should cure the "interrupt" problems.

thanks,
Pedro.

Index: net/ipv6/addrconf.c
===================================================================
RCS file: /public/cvsroot/linux/net/ipv6/addrconf.c,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- addrconf.c 1996/11/06 16:28:42 1.26
+++ addrconf.c 1996/11/13 21:42:26 1.27
@@ -774,7 +774,7 @@

}

-static void addrconf_ifdown(struct device *dev)
+static int addrconf_ifdown(struct device *dev)
{
struct inet6_dev *idev, **bidev;
struct inet6_ifaddr *ifa, **bifa;
@@ -796,8 +796,9 @@

if (idev == NULL)
{
- printk(KERN_DEBUG "addrconf_ifdown: device not found\n");
- return;
+ printk(KERN_DEBUG "addrconf_ifdown: device not found\n");
+ end_bh_atomic();
+ return -ENODEV;
}

/*
@@ -828,6 +829,7 @@

kfree(idev);
end_bh_atomic();
+ return 0;
}

/*
@@ -1024,9 +1026,12 @@
* Remove all addresses from this interface
* and take the interface out of the list.
*/
- addrconf_ifdown(dev);
- rt6_ifdown(dev);
- rt6_sndmsg(RTMSG_NEWDEVICE, NULL, NULL, 0, 0, dev->name, 0);
+ if (addrconf_ifdown(dev) == 0)
+ {
+ rt6_ifdown(dev);
+ rt6_sndmsg(RTMSG_NEWDEVICE, NULL, NULL, 0, 0,
+ dev->name, 0);
+ }

break;
}