diff options
| -rw-r--r-- | net/ipv6/seg6_iptunnel.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/ipv6/seg6_iptunnel.c b/net/ipv6/seg6_iptunnel.c index 5fe139484919..bf4763fd68c2 100644 --- a/net/ipv6/seg6_iptunnel.c +++ b/net/ipv6/seg6_iptunnel.c | |||
| @@ -103,7 +103,7 @@ int seg6_do_srh_encap(struct sk_buff *skb, struct ipv6_sr_hdr *osrh, int proto) | |||
| 103 | hdrlen = (osrh->hdrlen + 1) << 3; | 103 | hdrlen = (osrh->hdrlen + 1) << 3; |
| 104 | tot_len = hdrlen + sizeof(*hdr); | 104 | tot_len = hdrlen + sizeof(*hdr); |
| 105 | 105 | ||
| 106 | err = skb_cow_head(skb, tot_len); | 106 | err = skb_cow_head(skb, tot_len + skb->mac_len); |
| 107 | if (unlikely(err)) | 107 | if (unlikely(err)) |
| 108 | return err; | 108 | return err; |
| 109 | 109 | ||
| @@ -161,7 +161,7 @@ int seg6_do_srh_inline(struct sk_buff *skb, struct ipv6_sr_hdr *osrh) | |||
| 161 | 161 | ||
| 162 | hdrlen = (osrh->hdrlen + 1) << 3; | 162 | hdrlen = (osrh->hdrlen + 1) << 3; |
| 163 | 163 | ||
| 164 | err = skb_cow_head(skb, hdrlen); | 164 | err = skb_cow_head(skb, hdrlen + skb->mac_len); |
| 165 | if (unlikely(err)) | 165 | if (unlikely(err)) |
| 166 | return err; | 166 | return err; |
| 167 | 167 | ||
