Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
An ipvlan bug fix in 'net' conflicted with the abstraction away of the IPV6 specific support in 'net-next'. Similarly, a bug fix for mlx5 in 'net' conflicted with the flow action conversion in 'net-next'. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -2098,12 +2098,17 @@ static int ip6gre_fill_info(struct sk_buff *skb, const struct net_device *dev)
|
||||
{
|
||||
struct ip6_tnl *t = netdev_priv(dev);
|
||||
struct __ip6_tnl_parm *p = &t->parms;
|
||||
__be16 o_flags = p->o_flags;
|
||||
|
||||
if ((p->erspan_ver == 1 || p->erspan_ver == 2) &&
|
||||
!p->collect_md)
|
||||
o_flags |= TUNNEL_KEY;
|
||||
|
||||
if (nla_put_u32(skb, IFLA_GRE_LINK, p->link) ||
|
||||
nla_put_be16(skb, IFLA_GRE_IFLAGS,
|
||||
gre_tnl_flags_to_gre_flags(p->i_flags)) ||
|
||||
nla_put_be16(skb, IFLA_GRE_OFLAGS,
|
||||
gre_tnl_flags_to_gre_flags(p->o_flags)) ||
|
||||
gre_tnl_flags_to_gre_flags(o_flags)) ||
|
||||
nla_put_be32(skb, IFLA_GRE_IKEY, p->i_key) ||
|
||||
nla_put_be32(skb, IFLA_GRE_OKEY, p->o_key) ||
|
||||
nla_put_in6_addr(skb, IFLA_GRE_LOCAL, &p->laddr) ||
|
||||
|
@@ -23,9 +23,11 @@ int ip6_route_me_harder(struct net *net, struct sk_buff *skb)
|
||||
struct sock *sk = sk_to_full_sk(skb->sk);
|
||||
unsigned int hh_len;
|
||||
struct dst_entry *dst;
|
||||
int strict = (ipv6_addr_type(&iph->daddr) &
|
||||
(IPV6_ADDR_MULTICAST | IPV6_ADDR_LINKLOCAL));
|
||||
struct flowi6 fl6 = {
|
||||
.flowi6_oif = sk && sk->sk_bound_dev_if ? sk->sk_bound_dev_if :
|
||||
rt6_need_strict(&iph->daddr) ? skb_dst(skb)->dev->ifindex : 0,
|
||||
strict ? skb_dst(skb)->dev->ifindex : 0,
|
||||
.flowi6_mark = skb->mark,
|
||||
.flowi6_uid = sock_net_uid(net, sk),
|
||||
.daddr = iph->daddr,
|
||||
|
@@ -146,6 +146,8 @@ int seg6_do_srh_encap(struct sk_buff *skb, struct ipv6_sr_hdr *osrh, int proto)
|
||||
} else {
|
||||
ip6_flow_hdr(hdr, 0, flowlabel);
|
||||
hdr->hop_limit = ip6_dst_hoplimit(skb_dst(skb));
|
||||
|
||||
memset(IP6CB(skb), 0, sizeof(*IP6CB(skb)));
|
||||
}
|
||||
|
||||
hdr->nexthdr = NEXTHDR_ROUTING;
|
||||
|
@@ -546,7 +546,8 @@ static int ipip6_err(struct sk_buff *skb, u32 info)
|
||||
}
|
||||
|
||||
err = 0;
|
||||
if (!ip6_err_gen_icmpv6_unreach(skb, iph->ihl * 4, type, data_len))
|
||||
if (__in6_dev_get(skb->dev) &&
|
||||
!ip6_err_gen_icmpv6_unreach(skb, iph->ihl * 4, type, data_len))
|
||||
goto out;
|
||||
|
||||
if (t->parms.iph.daddr == 0)
|
||||
|
Reference in New Issue
Block a user