aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
Diffstat (limited to 'net')
-rw-r--r--net/ipv6/ip6_output.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
index 7a98fc2a5d97..b7ca46161cb9 100644
--- a/net/ipv6/ip6_output.c
+++ b/net/ipv6/ip6_output.c
@@ -1414,8 +1414,9 @@ alloc_new_skb:
1414 */ 1414 */
1415 skb->ip_summed = csummode; 1415 skb->ip_summed = csummode;
1416 skb->csum = 0; 1416 skb->csum = 0;
1417 /* reserve for fragmentation */ 1417 /* reserve for fragmentation and ipsec header */
1418 skb_reserve(skb, hh_len+sizeof(struct frag_hdr)); 1418 skb_reserve(skb, hh_len + sizeof(struct frag_hdr) +
1419 dst_exthdrlen);
1419 1420
1420 if (sk->sk_type == SOCK_DGRAM) 1421 if (sk->sk_type == SOCK_DGRAM)
1421 skb_shinfo(skb)->tx_flags = tx_flags; 1422 skb_shinfo(skb)->tx_flags = tx_flags;
@@ -1423,9 +1424,9 @@ alloc_new_skb:
1423 /* 1424 /*
1424 * Find where to start putting bytes 1425 * Find where to start putting bytes
1425 */ 1426 */
1426 data = skb_put(skb, fraglen + dst_exthdrlen); 1427 data = skb_put(skb, fraglen);
1427 skb_set_network_header(skb, exthdrlen + dst_exthdrlen); 1428 skb_set_network_header(skb, exthdrlen);
1428 data += fragheaderlen + dst_exthdrlen; 1429 data += fragheaderlen;
1429 skb->transport_header = (skb->network_header + 1430 skb->transport_header = (skb->network_header +
1430 fragheaderlen); 1431 fragheaderlen);
1431 if (fraggap) { 1432 if (fraggap) {