diff options
author | David S. Miller <davem@davemloft.net> | 2015-10-24 09:54:12 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-10-24 09:54:12 -0400 |
commit | ba3e2084f268bdfed7627046e58a2218037e15af (patch) | |
tree | 36b99da43ee72f81b31f0627dbfc69f50c97378f /net/ipv6/route.c | |
parent | a72c9512bf2bef12c5e66a4d910c4b348fe31d61 (diff) | |
parent | ce9d9b8e5c2b7486edf76958bcdb5e6534a915b0 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts:
net/ipv6/xfrm6_output.c
net/openvswitch/flow_netlink.c
net/openvswitch/vport-gre.c
net/openvswitch/vport-vxlan.c
net/openvswitch/vport.c
net/openvswitch/vport.h
The openvswitch conflicts were overlapping changes. One was
the egress tunnel info fix in 'net' and the other was the
vport ->send() op simplification in 'net-next'.
The xfrm6_output.c conflicts was also a simplification
overlapping a bug fix.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/route.c')
-rw-r--r-- | net/ipv6/route.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/net/ipv6/route.c b/net/ipv6/route.c index d0619632723a..2701cb3d88e9 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c | |||
@@ -1171,6 +1171,7 @@ struct dst_entry *ip6_route_output(struct net *net, const struct sock *sk, | |||
1171 | { | 1171 | { |
1172 | struct dst_entry *dst; | 1172 | struct dst_entry *dst; |
1173 | int flags = 0; | 1173 | int flags = 0; |
1174 | bool any_src; | ||
1174 | 1175 | ||
1175 | dst = l3mdev_rt6_dst_by_oif(net, fl6); | 1176 | dst = l3mdev_rt6_dst_by_oif(net, fl6); |
1176 | if (dst) | 1177 | if (dst) |
@@ -1178,11 +1179,12 @@ struct dst_entry *ip6_route_output(struct net *net, const struct sock *sk, | |||
1178 | 1179 | ||
1179 | fl6->flowi6_iif = LOOPBACK_IFINDEX; | 1180 | fl6->flowi6_iif = LOOPBACK_IFINDEX; |
1180 | 1181 | ||
1182 | any_src = ipv6_addr_any(&fl6->saddr); | ||
1181 | if ((sk && sk->sk_bound_dev_if) || rt6_need_strict(&fl6->daddr) || | 1183 | if ((sk && sk->sk_bound_dev_if) || rt6_need_strict(&fl6->daddr) || |
1182 | fl6->flowi6_oif) | 1184 | (fl6->flowi6_oif && any_src)) |
1183 | flags |= RT6_LOOKUP_F_IFACE; | 1185 | flags |= RT6_LOOKUP_F_IFACE; |
1184 | 1186 | ||
1185 | if (!ipv6_addr_any(&fl6->saddr)) | 1187 | if (!any_src) |
1186 | flags |= RT6_LOOKUP_F_HAS_SADDR; | 1188 | flags |= RT6_LOOKUP_F_HAS_SADDR; |
1187 | else if (sk) | 1189 | else if (sk) |
1188 | flags |= rt6_srcprefs2flags(inet6_sk(sk)->srcprefs); | 1190 | flags |= rt6_srcprefs2flags(inet6_sk(sk)->srcprefs); |