[PATCH net v3 0/3] net: hsr: fix shared-skb mutations in the forwarding path
Xin Xie <[email protected]>
| Newsgroups | org.kernel.vger.linux-kselftest,org.kernel.vger.netdev |
|---|---|
| Message-ID | <[email protected]> |
Two existing HSR/PRP forwarding paths modify data shared by multiple skbs. One changes RedBox interlink source addresses, and the other updates per-egress HSR path or PRP LAN IDs. A later consumer can then observe another consumer's value. Patch 1 makes interlink address substitution private. Patch 2 uses one clone/COW helper for tagged HSR/PRP frames and both hardware tag-insertion branches. Patch 3 adds regressions for both corruptions. The series is independent of the posted GRO/GSO v5 series: https://lore.kernel.org/all/[email protected]/ Both orders apply to current net. On current net-next, patch 3 needs git am -3 because hsr_prp_redbox.sh is already in the same Makefile block; the merged list remains sorted and validates. Validation: - the targeted test fails both cases on the base and passes on the candidate - the affected HSR/PRP regression tests pass - base-versus-candidate W=1 allmodconfig and allyesconfig add no diagnostics - no TAG_INS hardware was available; those branches have source review only Changes since v2, including official Sashiko dispositions: - use a shared clone/COW helper and cover both TAG_INS branches - correct the helper comment and interlink eligibility wording - fix HSR LSDU encoding, capture draining, and result aggregation - defer the existing dev->stats races per Paolo - leave VLAN/non-linear receive parsing and receive-side tap aliases unchanged Previous postings: v2: https://lore.kernel.org/all/[email protected]/ v1: https://lore.kernel.org/all/[email protected]/ Xin Xie (3): net: hsr: privatize interlink-bound skbs before address mutation net: hsr: return private clones from the tagged-frame helpers selftests: net: hsr: add shared-mutation regression test net/hsr/hsr_forward.c | 65 ++++- tools/testing/selftests/net/hsr/Makefile | 1 + .../selftests/net/hsr/hsr_shared_mutation.sh | 242 ++++++++++++++++++ 3 files changed, 299 insertions(+), 9 deletions(-) create mode 100755 tools/testing/selftests/net/hsr/hsr_shared_mutation.sh base-commit: 594d905195024b228c962627ae5ae7c17bd582a4 -- 2.43.0