path: root/net/ipv4/ip_tunnel_core.c
diff options
authorEric W. Biederman <ebiederm@xmission.com>2015-10-07 16:48:41 -0500
committerDavid S. Miller <davem@davemloft.net>2015-10-08 04:26:59 -0700
commitf859b0f662493e4f53d462f5759e3c4302933077 (patch)
tree6846a844be6dcfa407d4efcd5b3393d1f203c66a /net/ipv4/ip_tunnel_core.c
parentipv6: Merge ip6_local_out and ip6_local_out_sk (diff)
ipv4: Cache net in iptunnel_xmit
Store net in a variable in ip_tunnel_xmit so it does not need to be recomputed when it is used again. Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/ip_tunnel_core.c')
1 files changed, 2 insertions, 2 deletions
diff --git a/net/ipv4/ip_tunnel_core.c b/net/ipv4/ip_tunnel_core.c
index 8d85ecd1ced5..caef8e2c281d 100644
--- a/net/ipv4/ip_tunnel_core.c
+++ b/net/ipv4/ip_tunnel_core.c
@@ -53,6 +53,7 @@ int iptunnel_xmit(struct sock *sk, struct rtable *rt, struct sk_buff *skb,
__u8 tos, __u8 ttl, __be16 df, bool xnet)
int pkt_len = skb->len - skb_inner_network_offset(skb);
+ struct net *net = dev_net(rt->dst.dev);
struct iphdr *iph;
int err;
@@ -76,8 +77,7 @@ int iptunnel_xmit(struct sock *sk, struct rtable *rt, struct sk_buff *skb,
iph->daddr = dst;
iph->saddr = src;
iph->ttl = ttl;
- __ip_select_ident(dev_net(rt->dst.dev), iph,
- skb_shinfo(skb)->gso_segs ?: 1);
+ __ip_select_ident(net, iph, skb_shinfo(skb)->gso_segs ?: 1);
err = ip_local_out(sk, skb);
if (unlikely(net_xmit_eval(err)))