diff options
Diffstat (limited to 'net/ipv4')
-rw-r--r-- | net/ipv4/ip_output.c | 4 | ||||
-rw-r--r-- | net/ipv4/tcp_input.c | 3 |
2 files changed, 4 insertions, 3 deletions
diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c index eae228469627..15de9d43950e 100644 --- a/net/ipv4/ip_output.c +++ b/net/ipv4/ip_output.c | |||
@@ -928,9 +928,9 @@ alloc_new_skb: | |||
928 | * Find where to start putting bytes. | 928 | * Find where to start putting bytes. |
929 | */ | 929 | */ |
930 | data = skb_put(skb, fraglen); | 930 | data = skb_put(skb, fraglen); |
931 | skb->nh.raw = data + exthdrlen; | 931 | skb_set_network_header(skb, exthdrlen); |
932 | skb->h.raw = skb->nh.raw + fragheaderlen; | ||
932 | data += fragheaderlen; | 933 | data += fragheaderlen; |
933 | skb->h.raw = data + exthdrlen; | ||
934 | 934 | ||
935 | if (fraggap) { | 935 | if (fraggap) { |
936 | skb->csum = skb_copy_and_csum_bits( | 936 | skb->csum = skb_copy_and_csum_bits( |
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index 00190835cea1..5da823a32250 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c | |||
@@ -3634,7 +3634,8 @@ tcp_collapse(struct sock *sk, struct sk_buff_head *list, | |||
3634 | return; | 3634 | return; |
3635 | 3635 | ||
3636 | skb_set_mac_header(nskb, skb_mac_header(skb) - skb->head); | 3636 | skb_set_mac_header(nskb, skb_mac_header(skb) - skb->head); |
3637 | nskb->nh.raw = nskb->data + (skb_network_header(skb) - skb->head); | 3637 | skb_set_network_header(nskb, |
3638 | skb_network_header(skb) - skb->head); | ||
3638 | nskb->h.raw = nskb->data + (skb->h.raw - skb->head); | 3639 | nskb->h.raw = nskb->data + (skb->h.raw - skb->head); |
3639 | 3640 | ||
3640 | skb_reserve(nskb, header); | 3641 | skb_reserve(nskb, header); |