]>
Commit | Line | Data |
---|---|---|
304f9e8e JK |
1 | |
2 | This patch fixes problem with disapearing all-nodes (ff02::1) multicast | |
3 | address after setting interface down and up. When all-nodes address is not | |
4 | present IPv6 address autoconfiguration doesn't work. | |
5 | ||
6 | Jacek Konieczny <jajcus@pld.org.pl> | |
7 | ||
8 | diff -durN linux-2.2.16.orig/net/ipv6/addrconf.c linux/net/ipv6/addrconf.c | |
9 | --- linux-2.2.16.orig/net/ipv6/addrconf.c Tue Jan 4 19:12:27 2000 | |
10 | +++ linux/net/ipv6/addrconf.c Fri Jun 9 20:37:48 2000 | |
11 | @@ -255,8 +255,6 @@ | |
12 | idev = ipv6_add_dev(dev); | |
13 | if (idev == NULL) | |
14 | return NULL; | |
15 | - if (dev->flags&IFF_UP) | |
16 | - ipv6_mc_up(idev); | |
17 | } | |
18 | return idev; | |
19 | } | |
20 | @@ -1045,6 +1043,8 @@ | |
21 | return; | |
22 | } | |
23 | ||
24 | + ipv6_mc_up(idev); | |
25 | + | |
26 | addrconf_lock(); | |
27 | ifp = ipv6_add_addr(idev, &addr, IFA_HOST); | |
28 | ||
29 | @@ -1084,6 +1084,8 @@ | |
30 | if (idev == NULL) | |
31 | return; | |
32 | ||
33 | + ipv6_mc_up(idev); | |
34 | + | |
35 | #ifdef CONFIG_IPV6_EUI64 | |
36 | memset(&addr, 0, sizeof(struct in6_addr)); | |
37 | ||
38 | @@ -1120,6 +1122,8 @@ | |
39 | printk(KERN_DEBUG "init sit: add_dev failed\n"); | |
40 | return; | |
41 | } | |
42 | + | |
43 | + ipv6_mc_up(idev); | |
44 | ||
45 | sit_add_v4_addrs(idev); | |
46 |