aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6/route.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2011-06-24 18:23:34 -0400
committerDavid S. Miller <davem@davemloft.net>2011-07-01 20:30:43 -0400
commit11d53b4990226247a950e2b1ccfa4cf93bfbc822 (patch)
tree1d753762b2e7142e84526a146008e7bd029a6635 /net/ipv6/route.c
parent6e4e2f811bade330126d4029c88c831784a7efd9 (diff)
ipv6: Don't change dst->flags using assignments.
This blows away any flags already set in the entry. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/route.c')
-rw-r--r--net/ipv6/route.c12
1 files changed, 2 insertions, 10 deletions
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index de2b1decd786..c2af4da074b0 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -1062,14 +1062,6 @@ struct dst_entry *icmp6_dst_alloc(struct net_device *dev,
1062 dst_metric_set(&rt->dst, RTAX_HOPLIMIT, 255); 1062 dst_metric_set(&rt->dst, RTAX_HOPLIMIT, 255);
1063 rt->dst.output = ip6_output; 1063 rt->dst.output = ip6_output;
1064 1064
1065#if 0 /* there's no chance to use these for ndisc */
1066 rt->dst.flags = ipv6_addr_type(addr) & IPV6_ADDR_UNICAST
1067 ? DST_HOST
1068 : 0;
1069 ipv6_addr_copy(&rt->rt6i_dst.addr, addr);
1070 rt->rt6i_dst.plen = 128;
1071#endif
1072
1073 spin_lock_bh(&icmp6_dst_lock); 1065 spin_lock_bh(&icmp6_dst_lock);
1074 rt->dst.next = icmp6_dst_gc_list; 1066 rt->dst.next = icmp6_dst_gc_list;
1075 icmp6_dst_gc_list = &rt->dst; 1067 icmp6_dst_gc_list = &rt->dst;
@@ -1244,7 +1236,7 @@ int ip6_route_add(struct fib6_config *cfg)
1244 ipv6_addr_prefix(&rt->rt6i_dst.addr, &cfg->fc_dst, cfg->fc_dst_len); 1236 ipv6_addr_prefix(&rt->rt6i_dst.addr, &cfg->fc_dst, cfg->fc_dst_len);
1245 rt->rt6i_dst.plen = cfg->fc_dst_len; 1237 rt->rt6i_dst.plen = cfg->fc_dst_len;
1246 if (rt->rt6i_dst.plen == 128) 1238 if (rt->rt6i_dst.plen == 128)
1247 rt->dst.flags = DST_HOST; 1239 rt->dst.flags |= DST_HOST;
1248 1240
1249#ifdef CONFIG_IPV6_SUBTREES 1241#ifdef CONFIG_IPV6_SUBTREES
1250 ipv6_addr_prefix(&rt->rt6i_src.addr, &cfg->fc_src, cfg->fc_src_len); 1242 ipv6_addr_prefix(&rt->rt6i_src.addr, &cfg->fc_src, cfg->fc_src_len);
@@ -2025,7 +2017,7 @@ struct rt6_info *addrconf_dst_alloc(struct inet6_dev *idev,
2025 2017
2026 in6_dev_hold(idev); 2018 in6_dev_hold(idev);
2027 2019
2028 rt->dst.flags = DST_HOST; 2020 rt->dst.flags |= DST_HOST;
2029 rt->dst.input = ip6_input; 2021 rt->dst.input = ip6_input;
2030 rt->dst.output = ip6_output; 2022 rt->dst.output = ip6_output;
2031 rt->rt6i_idev = idev; 2023 rt->rt6i_idev = idev;