From: Steffen Klassert <steffen.klassert@secunet.com>
To: Chen YanJun <635381823cyj@gmail.com>
Cc: <herbert@gondor.apana.org.au>, <davem@davemloft.net>,
<netdev@vger.kernel.org>, <moomichen@tencent.com>
Subject: Re: [PATCH v2] xfrm: iptfs: propagate SKBFL_SHARED_FRAG in iptfs_skb_add_frags()
Date: Tue, 7 Jul 2026 08:33:30 +0200 [thread overview]
Message-ID: <akyduulhu_rs_HXU@secunet.com> (raw)
In-Reply-To: <20260701033152.29222-1-635381823cyj@gmail.com>
On Wed, Jul 01, 2026 at 11:31:52AM +0800, Chen YanJun wrote:
> From: Chen YanJun <moomichen@tencent.com>
>
> When iptfs_skb_add_frags() copies frag references from the source
> frag walk into a new SKB, it increments the page reference count via
> __skb_frag_ref() but does not propagate SKBFL_SHARED_FRAG to the
> destination SKB's skb_shinfo->flags.
>
> If the source SKB carries shared frags (e.g. from a page-pool backed
> receive path), the new inner SKB will appear to ESP as having privately
> owned frags. A subsequent esp_input() call for a nested transport-mode
> SA then takes the no-COW fast path and decrypts in place, writing over
> pages that are still referenced by the outer IPTFS SKB. This causes
> kernel-visible memory corruption and can trigger a panic.
>
> All other frag-transfer helpers in the kernel (skb_try_coalesce,
> skb_gro_receive, __pskb_copy_fclone, skb_shift, skb_segment) correctly
> propagate SKBFL_SHARED_FRAG; align iptfs_skb_add_frags() with this
> convention by setting the flag inside the loop immediately after
> __skb_frag_ref() and nr_frags++, so every exit path that attaches a frag
> unconditionally propagates SKBFL_SHARED_FRAG.
>
> Fixes: 5f2b6a909574 ("xfrm: iptfs: add skb-fragment sharing code")
> Signed-off-by: Chen YanJun <moomichen@tencent.com>
Applied, thanks Chen!
prev parent reply other threads:[~2026-07-07 6:33 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-01 3:31 [PATCH v2] xfrm: iptfs: propagate SKBFL_SHARED_FRAG in iptfs_skb_add_frags() Chen YanJun
2026-07-07 6:33 ` Steffen Klassert [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=akyduulhu_rs_HXU@secunet.com \
--to=steffen.klassert@secunet.com \
--cc=635381823cyj@gmail.com \
--cc=davem@davemloft.net \
--cc=herbert@gondor.apana.org.au \
--cc=moomichen@tencent.com \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.