aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6/route.c
diff options
context:
space:
mode:
authorJP Abgrall <jpa@google.com>2013-03-05 19:47:25 -0800
committerJP Abgrall <jpa@google.com>2013-03-05 19:47:25 -0800
commit4aad13d07babf68c1d0d37ff1e5f797573c4fd2a (patch)
tree14548d72d78d6c12e572a78f03a6cce9732bbe56 /net/ipv6/route.c
parent9c1eb87855672aa078e4282c6c1944fc71259088 (diff)
parenta276def548828763cf5ac228adf8c1ca73f8d4d3 (diff)
downloadkernel_samsung_tuna-4aad13d07babf68c1d0d37ff1e5f797573c4fd2a.zip
kernel_samsung_tuna-4aad13d07babf68c1d0d37ff1e5f797573c4fd2a.tar.gz
kernel_samsung_tuna-4aad13d07babf68c1d0d37ff1e5f797573c4fd2a.tar.bz2
Merge remote-tracking branch 'common/android-3.0' into android-omap-3.0
* common/android-3.0: net: ipv6: Don't purge default router if accept_ra=2 net: wireless: bcmdhd: Enable SUPPORT_PM2_ONLY mode net: wireless: bcmdhd: Add SUPPORT_PM2_ONLY option
Diffstat (limited to 'net/ipv6/route.c')
-rw-r--r--net/ipv6/route.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index bbca50a..57ac863 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -1886,7 +1886,8 @@ void rt6_purge_dflt_routers(struct net *net)
restart:
read_lock_bh(&table->tb6_lock);
for (rt = table->tb6_root.leaf; rt; rt = rt->dst.rt6_next) {
- if (rt->rt6i_flags & (RTF_DEFAULT | RTF_ADDRCONF)) {
+ if (rt->rt6i_flags & (RTF_DEFAULT | RTF_ADDRCONF) &&
+ (!rt->rt6i_idev || rt->rt6i_idev->cnf.accept_ra != 2)) {
dst_hold(&rt->dst);
read_unlock_bh(&table->tb6_lock);
ip6_del_rt(rt);