* [PATCH 0/4] IPv6 addrconf related fixes
@ 2010-04-12 15:41 Stephen Hemminger
2010-04-12 15:41 ` [PATCH 1/4] IPv6: keep route for tentative address Stephen Hemminger
` (4 more replies)
0 siblings, 5 replies; 14+ messages in thread
From: Stephen Hemminger @ 2010-04-12 15:41 UTC (permalink / raw)
To: davem; +Cc: netdev
These apply to net-next, the problems do not exist in earlier kernels.
The problems started when I added changes to retain IPv6 addresses
when link goes down.
--
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 1/4] IPv6: keep route for tentative address
2010-04-12 15:41 [PATCH 0/4] IPv6 addrconf related fixes Stephen Hemminger
@ 2010-04-12 15:41 ` Stephen Hemminger
2010-04-12 20:17 ` Tantilov, Emil S
2010-04-12 15:41 ` [PATCH 2/4] IPv6: keep tentative addresses in hash table Stephen Hemminger
` (3 subsequent siblings)
4 siblings, 1 reply; 14+ messages in thread
From: Stephen Hemminger @ 2010-04-12 15:41 UTC (permalink / raw)
To: David S. Miller, Tantilov, Emil S; +Cc: netdev
[-- Attachment #1: ipv6-addrconf1.patch --]
[-- Type: text/plain, Size: 689 bytes --]
Recent changes preserve IPv6 address when link goes down (good).
But would cause address to point to dead dst entry (bad).
The simplest fix is to just not delete route if address is
being held for later use.
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
--- a/net/ipv6/addrconf.c 2010-04-11 12:19:37.938082190 -0700
+++ b/net/ipv6/addrconf.c 2010-04-11 12:25:05.349309074 -0700
@@ -4046,7 +4046,8 @@ static void __ipv6_ifa_notify(int event,
addrconf_leave_anycast(ifp);
addrconf_leave_solict(ifp->idev, &ifp->addr);
dst_hold(&ifp->rt->u.dst);
- if (ip6_del_rt(ifp->rt))
+
+ if (ifp->dead && ip6_del_rt(ifp->rt))
dst_free(&ifp->rt->u.dst);
break;
}
--
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 2/4] IPv6: keep tentative addresses in hash table
2010-04-12 15:41 [PATCH 0/4] IPv6 addrconf related fixes Stephen Hemminger
2010-04-12 15:41 ` [PATCH 1/4] IPv6: keep route for tentative address Stephen Hemminger
@ 2010-04-12 15:41 ` Stephen Hemminger
2010-04-12 15:41 ` [PATCH 3/4] ipv6: additional ref count for hash list unnecessary Stephen Hemminger
` (2 subsequent siblings)
4 siblings, 0 replies; 14+ messages in thread
From: Stephen Hemminger @ 2010-04-12 15:41 UTC (permalink / raw)
To: davem; +Cc: netdev
[-- Attachment #1: ipv6-addrconf2.patch --]
[-- Type: text/plain, Size: 1105 bytes --]
When link goes down, want address to be preserved but in a tentative
state, therefore it has to stay in hash list.
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
--- a/net/ipv6/addrconf.c 2010-04-11 12:25:05.349309074 -0700
+++ b/net/ipv6/addrconf.c 2010-04-11 12:25:10.408996382 -0700
@@ -2703,17 +2703,18 @@ static int addrconf_ifdown(struct net_de
/* Flag it for later restoration when link comes up */
ifa->flags |= IFA_F_TENTATIVE;
in6_ifa_hold(ifa);
+ write_unlock_bh(&idev->lock);
} else {
list_del(&ifa->if_list);
ifa->dead = 1;
- }
- write_unlock_bh(&idev->lock);
+ write_unlock_bh(&idev->lock);
- /* clear hash table */
- spin_lock_bh(&addrconf_hash_lock);
- hlist_del_init_rcu(&ifa->addr_lst);
- __in6_ifa_put(ifa);
- spin_unlock_bh(&addrconf_hash_lock);
+ /* clear hash table */
+ spin_lock_bh(&addrconf_hash_lock);
+ hlist_del_init_rcu(&ifa->addr_lst);
+ __in6_ifa_put(ifa);
+ spin_unlock_bh(&addrconf_hash_lock);
+ }
__ipv6_ifa_notify(RTM_DELADDR, ifa);
atomic_notifier_call_chain(&inet6addr_chain, NETDEV_DOWN, ifa);
--
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 3/4] ipv6: additional ref count for hash list unnecessary
2010-04-12 15:41 [PATCH 0/4] IPv6 addrconf related fixes Stephen Hemminger
2010-04-12 15:41 ` [PATCH 1/4] IPv6: keep route for tentative address Stephen Hemminger
2010-04-12 15:41 ` [PATCH 2/4] IPv6: keep tentative addresses in hash table Stephen Hemminger
@ 2010-04-12 15:41 ` Stephen Hemminger
2010-04-12 15:41 ` [PATCH 4/4] IPv6: only notify protocols if address is compeletely gone Stephen Hemminger
2010-04-13 9:29 ` [PATCH 0/4] IPv6 addrconf related fixes David Miller
4 siblings, 0 replies; 14+ messages in thread
From: Stephen Hemminger @ 2010-04-12 15:41 UTC (permalink / raw)
To: davem; +Cc: netdev
[-- Attachment #1: ipv6-addrconf3.patch --]
[-- Type: text/plain, Size: 1002 bytes --]
Since an address in hash list has to already have a ref count,
no additional ref count is needed.
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
--- a/net/ipv6/addrconf.c 2010-04-11 12:25:32.609002374 -0700
+++ b/net/ipv6/addrconf.c 2010-04-11 12:26:52.715246164 -0700
@@ -675,7 +675,6 @@ ipv6_add_addr(struct inet6_dev *idev, co
hash = ipv6_addr_hash(addr);
hlist_add_head_rcu(&ifa->addr_lst, &inet6_addr_lst[hash]);
- in6_ifa_hold(ifa);
spin_unlock(&addrconf_hash_lock);
write_lock(&idev->lock);
@@ -723,7 +722,6 @@ static void ipv6_del_addr(struct inet6_i
spin_lock_bh(&addrconf_hash_lock);
hlist_del_init_rcu(&ifp->addr_lst);
- __in6_ifa_put(ifp);
spin_unlock_bh(&addrconf_hash_lock);
write_lock_bh(&idev->lock);
@@ -2712,7 +2710,6 @@ static int addrconf_ifdown(struct net_de
/* clear hash table */
spin_lock_bh(&addrconf_hash_lock);
hlist_del_init_rcu(&ifa->addr_lst);
- __in6_ifa_put(ifa);
spin_unlock_bh(&addrconf_hash_lock);
}
--
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 4/4] IPv6: only notify protocols if address is compeletely gone
2010-04-12 15:41 [PATCH 0/4] IPv6 addrconf related fixes Stephen Hemminger
` (2 preceding siblings ...)
2010-04-12 15:41 ` [PATCH 3/4] ipv6: additional ref count for hash list unnecessary Stephen Hemminger
@ 2010-04-12 15:41 ` Stephen Hemminger
2010-04-13 9:29 ` [PATCH 0/4] IPv6 addrconf related fixes David Miller
4 siblings, 0 replies; 14+ messages in thread
From: Stephen Hemminger @ 2010-04-12 15:41 UTC (permalink / raw)
To: davem; +Cc: netdev
[-- Attachment #1: ipv6-addrconf4.patch --]
[-- Type: text/plain, Size: 793 bytes --]
The notifier for address down should only be called if address is completely
gone, not just being marked as tentative on link transistion. The code
in net-next would case bonding/sctp/s390 to see address disappear on link
down, but they would never see it reappear on link up.
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
--- a/net/ipv6/addrconf.c 2010-04-11 14:34:36.919767724 -0700
+++ b/net/ipv6/addrconf.c 2010-04-11 14:35:00.533967946 -0700
@@ -2714,7 +2714,9 @@ static int addrconf_ifdown(struct net_de
}
__ipv6_ifa_notify(RTM_DELADDR, ifa);
- atomic_notifier_call_chain(&inet6addr_chain, NETDEV_DOWN, ifa);
+ if (ifa->dead)
+ atomic_notifier_call_chain(&inet6addr_chain,
+ NETDEV_DOWN, ifa);
in6_ifa_put(ifa);
write_lock_bh(&idev->lock);
--
^ permalink raw reply [flat|nested] 14+ messages in thread
* RE: [PATCH 1/4] IPv6: keep route for tentative address
2010-04-12 15:41 ` [PATCH 1/4] IPv6: keep route for tentative address Stephen Hemminger
@ 2010-04-12 20:17 ` Tantilov, Emil S
2010-05-21 22:21 ` Emil S Tantilov
0 siblings, 1 reply; 14+ messages in thread
From: Tantilov, Emil S @ 2010-04-12 20:17 UTC (permalink / raw)
To: Stephen Hemminger, David S. Miller; +Cc: netdev@vger.kernel.org
Stephen Hemminger wrote:
> Recent changes preserve IPv6 address when link goes down (good).
> But would cause address to point to dead dst entry (bad).
> The simplest fix is to just not delete route if address is
> being held for later use.
>
> Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
>
>
> --- a/net/ipv6/addrconf.c 2010-04-11 12:19:37.938082190 -0700
> +++ b/net/ipv6/addrconf.c 2010-04-11 12:25:05.349309074 -0700
> @@ -4046,7 +4046,8 @@ static void __ipv6_ifa_notify(int event,
> addrconf_leave_anycast(ifp);
> addrconf_leave_solict(ifp->idev, &ifp->addr);
> dst_hold(&ifp->rt->u.dst);
> - if (ip6_del_rt(ifp->rt))
> +
> + if (ifp->dead && ip6_del_rt(ifp->rt))
> dst_free(&ifp->rt->u.dst);
> break;
> }
Stephen,
With these series of patches (1-4) applied I am no longer seeing the
hangs and warnings associated with ipv6. I ran few rounds of
tests with resetting the interface and loading/unloading modules.
Thanks a lot for looking into this!
Emil
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 0/4] IPv6 addrconf related fixes
2010-04-12 15:41 [PATCH 0/4] IPv6 addrconf related fixes Stephen Hemminger
` (3 preceding siblings ...)
2010-04-12 15:41 ` [PATCH 4/4] IPv6: only notify protocols if address is compeletely gone Stephen Hemminger
@ 2010-04-13 9:29 ` David Miller
4 siblings, 0 replies; 14+ messages in thread
From: David Miller @ 2010-04-13 9:29 UTC (permalink / raw)
To: shemminger; +Cc: netdev
From: Stephen Hemminger <shemminger@vyatta.com>
Date: Mon, 12 Apr 2010 08:41:30 -0700
> These apply to net-next, the problems do not exist in earlier kernels.
> The problems started when I added changes to retain IPv6 addresses
> when link goes down.
All aplied, thanks for fixing these bugs Stephen.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 1/4] IPv6: keep route for tentative address
2010-04-12 20:17 ` Tantilov, Emil S
@ 2010-05-21 22:21 ` Emil S Tantilov
2010-05-24 18:31 ` [PATCH 1/2] " Stephen Hemminger
0 siblings, 1 reply; 14+ messages in thread
From: Emil S Tantilov @ 2010-05-21 22:21 UTC (permalink / raw)
To: Stephen Hemminger, David S. Miller, NetDev; +Cc: Tantilov, Emil S
On Mon, Apr 12, 2010 at 1:17 PM, Tantilov, Emil S
<emil.s.tantilov@intel.com> wrote:
> Stephen Hemminger wrote:
>> Recent changes preserve IPv6 address when link goes down (good).
>> But would cause address to point to dead dst entry (bad).
>> The simplest fix is to just not delete route if address is
>> being held for later use.
>>
>> Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
>>
>>
>> --- a/net/ipv6/addrconf.c 2010-04-11 12:19:37.938082190 -0700
>> +++ b/net/ipv6/addrconf.c 2010-04-11 12:25:05.349309074 -0700
>> @@ -4046,7 +4046,8 @@ static void __ipv6_ifa_notify(int event,
>> addrconf_leave_anycast(ifp);
>> addrconf_leave_solict(ifp->idev, &ifp->addr);
>> dst_hold(&ifp->rt->u.dst);
>> - if (ip6_del_rt(ifp->rt))
>> +
>> + if (ifp->dead && ip6_del_rt(ifp->rt))
>> dst_free(&ifp->rt->u.dst);
>> break;
>> }
>
> Stephen,
>
> With these series of patches (1-4) applied I am no longer seeing the
> hangs and warnings associated with ipv6. I ran few rounds of
> tests with resetting the interface and loading/unloading modules.
Looks like these patches did not make it into net-2.6 and the issue can be seen
in the latest stable 2.6.34.
Any chance that the patches can be pushed to 2.6.34-stable?
Thanks,
Emil
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 1/2] IPv6: keep route for tentative address
2010-05-21 22:21 ` Emil S Tantilov
@ 2010-05-24 18:31 ` Stephen Hemminger
2010-05-24 18:33 ` [PATCH 2/2] IPv6: only notify protocols if address is completely gone Stephen Hemminger
` (2 more replies)
0 siblings, 3 replies; 14+ messages in thread
From: Stephen Hemminger @ 2010-05-24 18:31 UTC (permalink / raw)
To: Emil S Tantilov
Cc: David S. Miller, NetDev, Tantilov, Emil S, Greg KH, stable
Recent changes preserve IPv6 address when link goes down (good).
But would cause address to point to dead dst entry (bad).
The simplest fix is to just not delete route if address is
being held for later use.
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 93fa159abe50d3c55c7f83622d3f5c09b6e06f4b)
---
Patch is for 2.6.34-stable (problem doesn't exist in earlier kernel)
net/ipv6/addrconf.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index 413054f..12e9558 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -4047,7 +4047,8 @@ static void __ipv6_ifa_notify(int event, struct inet6_ifaddr *ifp)
addrconf_leave_anycast(ifp);
addrconf_leave_solict(ifp->idev, &ifp->addr);
dst_hold(&ifp->rt->u.dst);
- if (ip6_del_rt(ifp->rt))
+
+ if (ifp->dead && ip6_del_rt(ifp->rt))
dst_free(&ifp->rt->u.dst);
break;
}
--
1.7.0.4
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 2/2] IPv6: only notify protocols if address is completely gone
2010-05-24 18:31 ` [PATCH 1/2] " Stephen Hemminger
@ 2010-05-24 18:33 ` Stephen Hemminger
2010-07-28 0:25 ` Patch "IPv6: only notify protocols if address is completely gone" has been added to the 2.6.34-stable tree gregkh
2010-05-24 18:47 ` [PATCH 1/2] IPv6: keep route for tentative address Greg KH
2010-07-28 0:24 ` Patch "IPv6: keep route for tentative address" has been added to the 2.6.34-stable tree gregkh
2 siblings, 1 reply; 14+ messages in thread
From: Stephen Hemminger @ 2010-05-24 18:33 UTC (permalink / raw)
To: Emil S Tantilov, David S. Miller, Greg KH
Cc: NetDev, Tantilov, Emil S, stable
The notifier for address down should only be called if address is completely
gone, not just being marked as tentative on link transition. The code
in net-next would case bonding/sctp/s390 to see address disappear on link
down, but they would never see it reappear on link up.
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 8595805aafc8b077e01804c9a3668e9aa3510e89)
---
Patch for 2.6.34-stable, not needed on earlier or later kernels
net/ipv6/addrconf.c | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index 12e9558..844ffc5 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -2729,7 +2729,9 @@ static int addrconf_ifdown(struct net_device *dev, int how)
write_unlock_bh(&idev->lock);
__ipv6_ifa_notify(RTM_DELADDR, ifa);
- atomic_notifier_call_chain(&inet6addr_chain, NETDEV_DOWN, ifa);
+ if (ifa->dead)
+ atomic_notifier_call_chain(&inet6addr_chain,
+ NETDEV_DOWN, ifa);
in6_ifa_put(ifa);
write_lock_bh(&idev->lock);
--
1.7.0.4
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 1/2] IPv6: keep route for tentative address
2010-05-24 18:31 ` [PATCH 1/2] " Stephen Hemminger
2010-05-24 18:33 ` [PATCH 2/2] IPv6: only notify protocols if address is completely gone Stephen Hemminger
@ 2010-05-24 18:47 ` Greg KH
2010-05-24 20:52 ` David Miller
2010-07-28 0:24 ` Patch "IPv6: keep route for tentative address" has been added to the 2.6.34-stable tree gregkh
2 siblings, 1 reply; 14+ messages in thread
From: Greg KH @ 2010-05-24 18:47 UTC (permalink / raw)
To: Stephen Hemminger
Cc: Emil S Tantilov, David S. Miller, NetDev, Tantilov, Emil S,
stable
On Mon, May 24, 2010 at 11:31:18AM -0700, Stephen Hemminger wrote:
> Recent changes preserve IPv6 address when link goes down (good).
> But would cause address to point to dead dst entry (bad).
> The simplest fix is to just not delete route if address is
> being held for later use.
>
> Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
> Signed-off-by: David S. Miller <davem@davemloft.net>
> (cherry picked from commit 93fa159abe50d3c55c7f83622d3f5c09b6e06f4b)
> ---
> Patch is for 2.6.34-stable (problem doesn't exist in earlier kernel)
Normally I wait for David to send networking patches for the stable
trees, so I would like to get David's ack on these two before I am
willing to apply them.
thanks,
greg k-h
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 1/2] IPv6: keep route for tentative address
2010-05-24 18:47 ` [PATCH 1/2] IPv6: keep route for tentative address Greg KH
@ 2010-05-24 20:52 ` David Miller
0 siblings, 0 replies; 14+ messages in thread
From: David Miller @ 2010-05-24 20:52 UTC (permalink / raw)
To: greg; +Cc: shemminger, emils.tantilov, netdev, emil.s.tantilov, stable
From: Greg KH <greg@kroah.com>
Date: Mon, 24 May 2010 11:47:13 -0700
> On Mon, May 24, 2010 at 11:31:18AM -0700, Stephen Hemminger wrote:
>> Recent changes preserve IPv6 address when link goes down (good).
>> But would cause address to point to dead dst entry (bad).
>> The simplest fix is to just not delete route if address is
>> being held for later use.
>>
>> Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
>> Signed-off-by: David S. Miller <davem@davemloft.net>
>> (cherry picked from commit 93fa159abe50d3c55c7f83622d3f5c09b6e06f4b)
>> ---
>> Patch is for 2.6.34-stable (problem doesn't exist in earlier kernel)
>
> Normally I wait for David to send networking patches for the stable
> trees, so I would like to get David's ack on these two before I am
> willing to apply them.
These two are fine to go to -stable, Greg please integrate.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Patch "IPv6: keep route for tentative address" has been added to the 2.6.34-stable tree
2010-05-24 18:31 ` [PATCH 1/2] " Stephen Hemminger
2010-05-24 18:33 ` [PATCH 2/2] IPv6: only notify protocols if address is completely gone Stephen Hemminger
2010-05-24 18:47 ` [PATCH 1/2] IPv6: keep route for tentative address Greg KH
@ 2010-07-28 0:24 ` gregkh
2 siblings, 0 replies; 14+ messages in thread
From: gregkh @ 2010-07-28 0:24 UTC (permalink / raw)
To: shemminger, davem, emils.tantilov, emil.s.tantilov, gregkh, greg,
netdev
Cc: stable, stable-commits
This is a note to let you know that I've just added the patch titled
IPv6: keep route for tentative address
to the 2.6.34-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
ipv6-keep-route-for-tentative-address.patch
and it can be found in the queue-2.6.34 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@kernel.org> know about it.
>From shemminger@vyatta.com Tue Jul 27 16:56:59 2010
From: Stephen Hemminger <shemminger@vyatta.com>
Date: Mon, 24 May 2010 11:31:18 -0700
Subject: IPv6: keep route for tentative address
To: Emil S Tantilov <emils.tantilov@gmail.com>
Cc: NetDev <netdev@vger.kernel.org>, stable@kernel.org, Greg KH <greg@kroah.com>, "David S. Miller" <davem@davemloft.net>, "Tantilov, Emil S" <emil.s.tantilov@intel.com>
Message-ID: <20100524113118.47cc9852@nehalam>
From: Stephen Hemminger <shemminger@vyatta.com>
(cherry picked from commit 93fa159abe50d3c55c7f83622d3f5c09b6e06f4b)
Recent changes preserve IPv6 address when link goes down (good).
But would cause address to point to dead dst entry (bad).
The simplest fix is to just not delete route if address is
being held for later use.
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
net/ipv6/addrconf.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -4047,7 +4047,8 @@ static void __ipv6_ifa_notify(int event,
addrconf_leave_anycast(ifp);
addrconf_leave_solict(ifp->idev, &ifp->addr);
dst_hold(&ifp->rt->u.dst);
- if (ip6_del_rt(ifp->rt))
+
+ if (ifp->dead && ip6_del_rt(ifp->rt))
dst_free(&ifp->rt->u.dst);
break;
}
Patches currently in stable-queue which might be from shemminger@vyatta.com are
queue-2.6.34/sky2-restore-multicast-after-restart.patch
queue-2.6.34/ipv6-keep-route-for-tentative-address.patch
queue-2.6.34/ipv6-only-notify-protocols-if-address-is-completely-gone.patch
queue-2.6.34/ipv6-fix-null-reference-in-proxy-neighbor-discovery.patch
queue-2.6.34/bridge-fdb-cleanup-runs-too-often.patch
^ permalink raw reply [flat|nested] 14+ messages in thread
* Patch "IPv6: only notify protocols if address is completely gone" has been added to the 2.6.34-stable tree
2010-05-24 18:33 ` [PATCH 2/2] IPv6: only notify protocols if address is completely gone Stephen Hemminger
@ 2010-07-28 0:25 ` gregkh
0 siblings, 0 replies; 14+ messages in thread
From: gregkh @ 2010-07-28 0:25 UTC (permalink / raw)
To: shemminger, davem, emils.tantilov, emil.s.tantilov, gregkh, greg,
netdev
Cc: stable, stable-commits
This is a note to let you know that I've just added the patch titled
IPv6: only notify protocols if address is completely gone
to the 2.6.34-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
ipv6-only-notify-protocols-if-address-is-completely-gone.patch
and it can be found in the queue-2.6.34 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@kernel.org> know about it.
>From shemminger@vyatta.com Tue Jul 27 16:57:29 2010
From: Stephen Hemminger <shemminger@vyatta.com>
Date: Mon, 24 May 2010 11:33:00 -0700
Subject: IPv6: only notify protocols if address is completely gone
To: Emil S Tantilov <emils.tantilov@gmail.com>, "David S. Miller" <davem@davemloft.net>, Greg KH <greg@kroah.com>
Cc: NetDev <netdev@vger.kernel.org>, "Tantilov, Emil S" <emil.s.tantilov@intel.com>, stable@kernel.org
Message-ID: <20100524113300.2ef38e12@nehalam>
From: Stephen Hemminger <shemminger@vyatta.com>
(cherry picked from commit 8595805aafc8b077e01804c9a3668e9aa3510e89)
The notifier for address down should only be called if address is completely
gone, not just being marked as tentative on link transition. The code
in net-next would case bonding/sctp/s390 to see address disappear on link
down, but they would never see it reappear on link up.
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
net/ipv6/addrconf.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -2729,7 +2729,9 @@ static int addrconf_ifdown(struct net_de
write_unlock_bh(&idev->lock);
__ipv6_ifa_notify(RTM_DELADDR, ifa);
- atomic_notifier_call_chain(&inet6addr_chain, NETDEV_DOWN, ifa);
+ if (ifa->dead)
+ atomic_notifier_call_chain(&inet6addr_chain,
+ NETDEV_DOWN, ifa);
in6_ifa_put(ifa);
write_lock_bh(&idev->lock);
Patches currently in stable-queue which might be from shemminger@vyatta.com are
queue-2.6.34/sky2-restore-multicast-after-restart.patch
queue-2.6.34/ipv6-keep-route-for-tentative-address.patch
queue-2.6.34/ipv6-only-notify-protocols-if-address-is-completely-gone.patch
queue-2.6.34/ipv6-fix-null-reference-in-proxy-neighbor-discovery.patch
queue-2.6.34/bridge-fdb-cleanup-runs-too-often.patch
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2010-07-28 0:33 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-04-12 15:41 [PATCH 0/4] IPv6 addrconf related fixes Stephen Hemminger
2010-04-12 15:41 ` [PATCH 1/4] IPv6: keep route for tentative address Stephen Hemminger
2010-04-12 20:17 ` Tantilov, Emil S
2010-05-21 22:21 ` Emil S Tantilov
2010-05-24 18:31 ` [PATCH 1/2] " Stephen Hemminger
2010-05-24 18:33 ` [PATCH 2/2] IPv6: only notify protocols if address is completely gone Stephen Hemminger
2010-07-28 0:25 ` Patch "IPv6: only notify protocols if address is completely gone" has been added to the 2.6.34-stable tree gregkh
2010-05-24 18:47 ` [PATCH 1/2] IPv6: keep route for tentative address Greg KH
2010-05-24 20:52 ` David Miller
2010-07-28 0:24 ` Patch "IPv6: keep route for tentative address" has been added to the 2.6.34-stable tree gregkh
2010-04-12 15:41 ` [PATCH 2/4] IPv6: keep tentative addresses in hash table Stephen Hemminger
2010-04-12 15:41 ` [PATCH 3/4] ipv6: additional ref count for hash list unnecessary Stephen Hemminger
2010-04-12 15:41 ` [PATCH 4/4] IPv6: only notify protocols if address is compeletely gone Stephen Hemminger
2010-04-13 9:29 ` [PATCH 0/4] IPv6 addrconf related fixes David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).