From 3bb23661beff9719ee3f0ae08df6b9c72686ba26 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Fri, 2 Aug 2019 13:30:54 +0200 Subject: [PATCH] 4.19-stable patches added patches: ip_tunnel-allow-not-to-count-pkts-on-tstats-by-setting-skb-s-dev-to-null.patch --- ...-tstats-by-setting-skb-s-dev-to-null.patch | 43 +++++++++++++++++++ queue-4.19/series | 1 + 2 files changed, 44 insertions(+) create mode 100644 queue-4.19/ip_tunnel-allow-not-to-count-pkts-on-tstats-by-setting-skb-s-dev-to-null.patch diff --git a/queue-4.19/ip_tunnel-allow-not-to-count-pkts-on-tstats-by-setting-skb-s-dev-to-null.patch b/queue-4.19/ip_tunnel-allow-not-to-count-pkts-on-tstats-by-setting-skb-s-dev-to-null.patch new file mode 100644 index 00000000000..0c7574e652e --- /dev/null +++ b/queue-4.19/ip_tunnel-allow-not-to-count-pkts-on-tstats-by-setting-skb-s-dev-to-null.patch @@ -0,0 +1,43 @@ +From 5684abf7020dfc5f0b6ba1d68eda3663871fce52 Mon Sep 17 00:00:00 2001 +From: Xin Long +Date: Mon, 17 Jun 2019 21:34:13 +0800 +Subject: ip_tunnel: allow not to count pkts on tstats by setting skb's dev to NULL + +From: Xin Long + +commit 5684abf7020dfc5f0b6ba1d68eda3663871fce52 upstream. + +iptunnel_xmit() works as a common function, also used by a udp tunnel +which doesn't have to have a tunnel device, like how TIPC works with +udp media. + +In these cases, we should allow not to count pkts on dev's tstats, so +that udp tunnel can work with no tunnel device safely. + +Signed-off-by: Xin Long +Signed-off-by: David S. Miller +Cc: Tommi Rantala +Signed-off-by: Greg Kroah-Hartman + +--- + net/ipv4/ip_tunnel_core.c | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +--- a/net/ipv4/ip_tunnel_core.c ++++ b/net/ipv4/ip_tunnel_core.c +@@ -89,9 +89,12 @@ void iptunnel_xmit(struct sock *sk, stru + __ip_select_ident(net, iph, skb_shinfo(skb)->gso_segs ?: 1); + + err = ip_local_out(net, sk, skb); +- if (unlikely(net_xmit_eval(err))) +- pkt_len = 0; +- iptunnel_xmit_stats(dev, pkt_len); ++ ++ if (dev) { ++ if (unlikely(net_xmit_eval(err))) ++ pkt_len = 0; ++ iptunnel_xmit_stats(dev, pkt_len); ++ } + } + EXPORT_SYMBOL_GPL(iptunnel_xmit); + diff --git a/queue-4.19/series b/queue-4.19/series index b8450eae0e9..77ebf822684 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -30,3 +30,4 @@ fix-allyesconfig-output.patch ceph-hold-i_ceph_lock-when-removing-caps-for-freeing-inode.patch block-scsi-change-the-preempt-only-flag-into-a-counter.patch scsi-core-avoid-that-a-kernel-warning-appears-during-system-resume.patch +ip_tunnel-allow-not-to-count-pkts-on-tstats-by-setting-skb-s-dev-to-null.patch -- 2.47.2