Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Minor conflict in mlx5 because changes happened to code that has moved meanwhile. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -79,6 +79,8 @@ static struct sk_buff *esp6_gro_receive(struct list_head *head,
|
||||
if (!x)
|
||||
goto out_reset;
|
||||
|
||||
skb->mark = xfrm_smark_get(skb->mark, x);
|
||||
|
||||
sp->xvec[sp->len++] = x;
|
||||
sp->olen++;
|
||||
|
||||
|
@@ -2571,14 +2571,13 @@ static void *ipv6_route_seq_next(struct seq_file *seq, void *v, loff_t *pos)
|
||||
struct net *net = seq_file_net(seq);
|
||||
struct ipv6_route_iter *iter = seq->private;
|
||||
|
||||
++(*pos);
|
||||
if (!v)
|
||||
goto iter_table;
|
||||
|
||||
n = rcu_dereference_bh(((struct fib6_info *)v)->fib6_next);
|
||||
if (n) {
|
||||
++*pos;
|
||||
if (n)
|
||||
return n;
|
||||
}
|
||||
|
||||
iter_table:
|
||||
ipv6_route_check_sernum(iter);
|
||||
@@ -2586,8 +2585,6 @@ iter_table:
|
||||
r = fib6_walk_continue(&iter->w);
|
||||
spin_unlock_bh(&iter->tbl->tb6_lock);
|
||||
if (r > 0) {
|
||||
if (v)
|
||||
++*pos;
|
||||
return iter->w.leaf;
|
||||
} else if (r < 0) {
|
||||
fib6_walker_unlink(net, &iter->w);
|
||||
|
@@ -1466,7 +1466,6 @@ static int ip6gre_tunnel_init_common(struct net_device *dev)
|
||||
dev->mtu -= 8;
|
||||
|
||||
if (tunnel->parms.collect_md) {
|
||||
dev->features |= NETIF_F_NETNS_LOCAL;
|
||||
netif_keep_dst(dev);
|
||||
}
|
||||
ip6gre_tnl_init_features(dev);
|
||||
@@ -1894,7 +1893,6 @@ static void ip6gre_tap_setup(struct net_device *dev)
|
||||
dev->needs_free_netdev = true;
|
||||
dev->priv_destructor = ip6gre_dev_free;
|
||||
|
||||
dev->features |= NETIF_F_NETNS_LOCAL;
|
||||
dev->priv_flags &= ~IFF_TX_SKB_SHARING;
|
||||
dev->priv_flags |= IFF_LIVE_ADDR_CHANGE;
|
||||
netif_keep_dst(dev);
|
||||
@@ -2197,7 +2195,6 @@ static void ip6erspan_tap_setup(struct net_device *dev)
|
||||
dev->needs_free_netdev = true;
|
||||
dev->priv_destructor = ip6gre_dev_free;
|
||||
|
||||
dev->features |= NETIF_F_NETNS_LOCAL;
|
||||
dev->priv_flags &= ~IFF_TX_SKB_SHARING;
|
||||
dev->priv_flags |= IFF_LIVE_ADDR_CHANGE;
|
||||
netif_keep_dst(dev);
|
||||
|
@@ -1877,10 +1877,8 @@ static int ip6_tnl_dev_init(struct net_device *dev)
|
||||
if (err)
|
||||
return err;
|
||||
ip6_tnl_link_config(t);
|
||||
if (t->parms.collect_md) {
|
||||
dev->features |= NETIF_F_NETNS_LOCAL;
|
||||
if (t->parms.collect_md)
|
||||
netif_keep_dst(dev);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@@ -449,8 +449,17 @@ vti6_xmit(struct sk_buff *skb, struct net_device *dev, struct flowi *fl)
|
||||
int err = -1;
|
||||
int mtu;
|
||||
|
||||
if (!dst)
|
||||
goto tx_err_link_failure;
|
||||
if (!dst) {
|
||||
fl->u.ip6.flowi6_oif = dev->ifindex;
|
||||
fl->u.ip6.flowi6_flags |= FLOWI_FLAG_ANYSRC;
|
||||
dst = ip6_route_output(dev_net(dev), NULL, &fl->u.ip6);
|
||||
if (dst->error) {
|
||||
dst_release(dst);
|
||||
dst = NULL;
|
||||
goto tx_err_link_failure;
|
||||
}
|
||||
skb_dst_set(skb, dst);
|
||||
}
|
||||
|
||||
dst_hold(dst);
|
||||
dst = xfrm_lookup(t->net, dst, fl, NULL, 0);
|
||||
|
@@ -23,6 +23,7 @@
|
||||
#include <net/addrconf.h>
|
||||
#include <net/ip6_route.h>
|
||||
#include <net/dst_cache.h>
|
||||
#include <net/ip_tunnels.h>
|
||||
#ifdef CONFIG_IPV6_SEG6_HMAC
|
||||
#include <net/seg6_hmac.h>
|
||||
#endif
|
||||
@@ -135,7 +136,8 @@ static bool decap_and_validate(struct sk_buff *skb, int proto)
|
||||
|
||||
skb_reset_network_header(skb);
|
||||
skb_reset_transport_header(skb);
|
||||
skb->encapsulation = 0;
|
||||
if (iptunnel_pull_offloads(skb))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
Reference in New Issue
Block a user