On 14/08/2026 03:27, Jakub Kicinski wrote:
> [Severity: Medium]
> Is the enumeration in this comment complete? The unconditional interlink
> source-address rewrite is pre-existing and was not introduced by this
> patch, but the new guard and the commit message claim ("Other interlink
> traffic keeps its zero-copy behavior") assert that the uncovered cases are
> safe, and there looks to be one that isn't.
> ...
> Since skb_cow(skb, 0) is a no-op for a non-cloned skb (__skb_cow() only
> calls pskb_expand_head() when skb_cloned() or extra headroom is needed),
> could the call be keyed on the actual sharing state, or simply made
> unconditional for HSR_PT_INTERLINK, instead of on the topology predicate?
Correct, the enumeration is incomplete. For TAG_RM ingress retained
in frame->skb_std, a queued packet-socket clone can still share its data
even when the frame is not locally destined. The interlink source rewrite
can then change that clone.
I'll remove the topology-based assumption when revising the COW handling
for v4.
--
Xin