aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/ipv4/af_inet.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
index 09d78d4a3cff..68af9aac91d0 100644
--- a/net/ipv4/af_inet.c
+++ b/net/ipv4/af_inet.c
@@ -1299,6 +1299,9 @@ static struct sk_buff *inet_gso_segment(struct sk_buff *skb,
1299 1299
1300 segs = ERR_PTR(-EPROTONOSUPPORT); 1300 segs = ERR_PTR(-EPROTONOSUPPORT);
1301 1301
1302 /* Note : following gso_segment() might change skb->encapsulation */
1303 udpfrag = !skb->encapsulation && proto == IPPROTO_UDP;
1304
1302 ops = rcu_dereference(inet_offloads[proto]); 1305 ops = rcu_dereference(inet_offloads[proto]);
1303 if (likely(ops && ops->callbacks.gso_segment)) 1306 if (likely(ops && ops->callbacks.gso_segment))
1304 segs = ops->callbacks.gso_segment(skb, features); 1307 segs = ops->callbacks.gso_segment(skb, features);
@@ -1306,7 +1309,6 @@ static struct sk_buff *inet_gso_segment(struct sk_buff *skb,
1306 if (IS_ERR_OR_NULL(segs)) 1309 if (IS_ERR_OR_NULL(segs))
1307 goto out; 1310 goto out;
1308 1311
1309 udpfrag = !!skb->encapsulation && proto == IPPROTO_UDP;
1310 skb = segs; 1312 skb = segs;
1311 do { 1313 do {
1312 iph = (struct iphdr *)(skb_mac_header(skb) + nhoff); 1314 iph = (struct iphdr *)(skb_mac_header(skb) + nhoff);