|
| 1 | +diff --git a/Makefile b/Makefile |
| 2 | +index 11d81cfd9dccbe..7878fd783212d0 100644 |
| 3 | +--- a/Makefile |
| 4 | ++++ b/Makefile |
| 5 | +@@ -1,7 +1,7 @@ |
| 6 | + # SPDX-License-Identifier: GPL-2.0 |
| 7 | + VERSION = 6 |
| 8 | + PATCHLEVEL = 6 |
| 9 | +-SUBLEVEL = 137 |
| 10 | ++SUBLEVEL = 138 |
| 11 | + EXTRAVERSION = |
| 12 | + NAME = Pinguïn Aangedreven |
| 13 | + |
| 14 | +diff --git a/net/ipv4/esp4.c b/net/ipv4/esp4.c |
| 15 | +index 4256c7ee59397f..d307e487b3a4d2 100644 |
| 16 | +--- a/net/ipv4/esp4.c |
| 17 | ++++ b/net/ipv4/esp4.c |
| 18 | +@@ -873,7 +873,8 @@ static int esp_input(struct xfrm_state *x, struct sk_buff *skb) |
| 19 | + nfrags = 1; |
| 20 | + |
| 21 | + goto skip_cow; |
| 22 | +- } else if (!skb_has_frag_list(skb)) { |
| 23 | ++ } else if (!skb_has_frag_list(skb) && |
| 24 | ++ !skb_has_shared_frag(skb)) { |
| 25 | + nfrags = skb_shinfo(skb)->nr_frags; |
| 26 | + nfrags++; |
| 27 | + |
| 28 | +diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c |
| 29 | +index ff8040101193ab..305d0e2786a2a8 100644 |
| 30 | +--- a/net/ipv4/ip_output.c |
| 31 | ++++ b/net/ipv4/ip_output.c |
| 32 | +@@ -1230,6 +1230,8 @@ alloc_new_skb: |
| 33 | + if (err < 0) |
| 34 | + goto error; |
| 35 | + copy = err; |
| 36 | ++ if (!(flags & MSG_NO_SHARED_FRAGS)) |
| 37 | ++ skb_shinfo(skb)->flags |= SKBFL_SHARED_FRAG; |
| 38 | + wmem_alloc_delta += copy; |
| 39 | + } else if (!zc) { |
| 40 | + int i = skb_shinfo(skb)->nr_frags; |
| 41 | +diff --git a/net/ipv6/esp6.c b/net/ipv6/esp6.c |
| 42 | +index f3305154745ece..3a5fd0da870265 100644 |
| 43 | +--- a/net/ipv6/esp6.c |
| 44 | ++++ b/net/ipv6/esp6.c |
| 45 | +@@ -921,7 +921,8 @@ static int esp6_input(struct xfrm_state *x, struct sk_buff *skb) |
| 46 | + nfrags = 1; |
| 47 | + |
| 48 | + goto skip_cow; |
| 49 | +- } else if (!skb_has_frag_list(skb)) { |
| 50 | ++ } else if (!skb_has_frag_list(skb) && |
| 51 | ++ !skb_has_shared_frag(skb)) { |
| 52 | + nfrags = skb_shinfo(skb)->nr_frags; |
| 53 | + nfrags++; |
| 54 | + |
| 55 | +diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c |
| 56 | +index 74145d05ddd220..a824c707dffff4 100644 |
| 57 | +--- a/net/ipv6/ip6_output.c |
| 58 | ++++ b/net/ipv6/ip6_output.c |
| 59 | +@@ -1829,6 +1829,8 @@ alloc_new_skb: |
| 60 | + if (err < 0) |
| 61 | + goto error; |
| 62 | + copy = err; |
| 63 | ++ if (!(flags & MSG_NO_SHARED_FRAGS)) |
| 64 | ++ skb_shinfo(skb)->flags |= SKBFL_SHARED_FRAG; |
| 65 | + wmem_alloc_delta += copy; |
| 66 | + } else if (!zc) { |
| 67 | + int i = skb_shinfo(skb)->nr_frags; |
0 commit comments