diff options
| author | Daniil Baturin <daniil@vyos.io> | 2026-05-14 15:34:13 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-05-14 15:34:13 +0100 |
| commit | 2baeab7595ec0d2971dc3557fd3e7ffcf9cb4a32 (patch) | |
| tree | 572690f58ccc1dba61696b1f4cfbe1a2676ab210 | |
| parent | e7b5bc9d6194b203a2fbb03dad8b1e968e364132 (diff) | |
| parent | c57e68289fbdc1c2559b2e176fc43e070b2c2016 (diff) | |
| download | vyos-build-2baeab7595ec0d2971dc3557fd3e7ffcf9cb4a32.tar.gz vyos-build-2baeab7595ec0d2971dc3557fd3e7ffcf9cb4a32.zip | |
Merge branch 'current' into T8852-mergify-extends
| -rw-r--r-- | .github/mergify.yml | 17 | ||||
| -rw-r--r-- | scripts/package-build/linux-kernel/patches/kernel/0004-net-skbuff-preserve-shared-frag-marker-during-coales.patch | 53 |
2 files changed, 69 insertions, 1 deletions
diff --git a/.github/mergify.yml b/.github/mergify.yml index bde1b976..752b88fe 100644 --- a/.github/mergify.yml +++ b/.github/mergify.yml @@ -17,4 +17,19 @@ # and the Confluence spec at # https://vyos.atlassian.net/wiki/spaces/VYOS/pages/849477640. -extends: mergify +commands_restrictions: + backport: &allowed + conditions: + - or: + - sender=@vyos/maintainers + - sender=vyosbot + copy: *allowed + dequeue: *allowed + queue: *allowed + rebase: *allowed + refresh: *allowed + requeue: *allowed + squash: *allowed + update: *allowed +merge_protections_settings: + reporting_method: check-runs diff --git a/scripts/package-build/linux-kernel/patches/kernel/0004-net-skbuff-preserve-shared-frag-marker-during-coales.patch b/scripts/package-build/linux-kernel/patches/kernel/0004-net-skbuff-preserve-shared-frag-marker-during-coales.patch new file mode 100644 index 00000000..b2a4f9be --- /dev/null +++ b/scripts/package-build/linux-kernel/patches/kernel/0004-net-skbuff-preserve-shared-frag-marker-during-coales.patch @@ -0,0 +1,53 @@ +Message-ID: <20260513041635.1289541-1-vakzz@zellic.io> +Date: Wed, 13 May 2026 04:16:35 +0000 +From: William Bowling <vakzz@...lic.io> +To: netdev@...r.kernel.org +Cc: "David S . Miller" <davem@...emloft.net>, + Eric Dumazet <edumazet@...gle.com>, + Jakub Kicinski <kuba@...nel.org>, + Paolo Abeni <pabeni@...hat.com>, + Steffen Klassert <steffen.klassert@...unet.com>, + Herbert Xu <herbert@...dor.apana.org.au>, + David Ahern <dsahern@...nel.org>, + William Bowling <vakzz@...lic.io> +Subject: [PATCH] net: skbuff: preserve shared-frag marker during coalescing + +skb_try_coalesce() can attach paged frags from @from to @to. If @from +has SKBFL_SHARED_FRAG set, the resulting @to skb can contain the same +externally-owned or page-cache-backed frags, but the shared-frag marker +is currently lost. + +That breaks the invariant relied on by later in-place writers. In +particular, ESP input checks skb_has_shared_frag() before deciding +whether an uncloned nonlinear skb can skip skb_cow_data(). If TCP +receive coalescing has moved shared frags into an unmarked skb, ESP can +see skb_has_shared_frag() as false and decrypt in place over page-cache +backed frags. + +Propagate SKBFL_SHARED_FRAG when skb_try_coalesce() transfers paged +frags. The tailroom copy path does not need the marker because it copies +bytes into @to's linear data rather than transferring frag descriptors. + +Fixes: cef401de7be8 ("net: fix possible wrong checksum generation") +Fixes: f4c50a4034e6 ("xfrm: esp: avoid in-place decrypt on shared skb frags") +Signed-off-by: William Bowling <vakzz@...lic.io> +--- + net/core/skbuff.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/net/core/skbuff.c b/net/core/skbuff.c +index a4695882d1c4..3e8f0b8226ca 100644 +--- a/net/core/skbuff.c ++++ b/net/core/skbuff.c +@@ -6149,6 +6149,8 @@ bool skb_try_coalesce(struct sk_buff *to, struct sk_buff *from, + from_shinfo->frags, + from_shinfo->nr_frags * sizeof(skb_frag_t)); + to_shinfo->nr_frags += from_shinfo->nr_frags; ++ if (from_shinfo->nr_frags) ++ to_shinfo->flags |= from_shinfo->flags & SKBFL_SHARED_FRAG; + + if (!skb_cloned(from)) + from_shinfo->nr_frags = 0; +-- +2.39.5 + |
