diff options
Diffstat (limited to 'net/ipv6/reassembly.c')
-rw-r--r-- | net/ipv6/reassembly.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/ipv6/reassembly.c b/net/ipv6/reassembly.c index 2160d5d009cb..3815e8505ed2 100644 --- a/net/ipv6/reassembly.c +++ b/net/ipv6/reassembly.c | |||
@@ -456,7 +456,8 @@ static int ip6_frag_reasm(struct frag_queue *fq, struct sk_buff *prev, | |||
456 | skb_network_header(head)[nhoff] = skb_transport_header(head)[0]; | 456 | skb_network_header(head)[nhoff] = skb_transport_header(head)[0]; |
457 | memmove(head->head + sizeof(struct frag_hdr), head->head, | 457 | memmove(head->head + sizeof(struct frag_hdr), head->head, |
458 | (head->data - head->head) - sizeof(struct frag_hdr)); | 458 | (head->data - head->head) - sizeof(struct frag_hdr)); |
459 | head->mac_header += sizeof(struct frag_hdr); | 459 | if (skb_mac_header_was_set(head)) |
460 | head->mac_header += sizeof(struct frag_hdr); | ||
460 | head->network_header += sizeof(struct frag_hdr); | 461 | head->network_header += sizeof(struct frag_hdr); |
461 | 462 | ||
462 | skb_reset_transport_header(head); | 463 | skb_reset_transport_header(head); |