Netdev List
 help / color / mirror / Atom feed
* [PATCH net 0/2 repost3] net/sched: sch_teql: fix header-cloned write and retry strip
@ 2026-10-27  7:56 Jamal Hadi Salim
  2026-10-27  7:56 ` [PATCH net 1/2 repost3] net/sched: sch_teql: unshare the header before writing and fix " Jamal Hadi Salim
  2026-10-27  8:01 ` [PATCH net 0/2 repost3] net/sched: sch_teql: fix header-cloned write and retry strip netdev-bot+sinfo
  0 siblings, 2 replies; 5+ messages in thread
From: Jamal Hadi Salim @ 2026-10-27  7:56 UTC (permalink / raw)
  To: netdev
  Cc: Jamal Hadi Salim, Victor Nogueira, Jiri Pirko, David S . Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Simon Horman, stable,
	sashiko-bot

Two pre-existing defects on the teql transmit path, both around
teql_master_xmit() -> teql_resolve().  The first makes the slave's
header write corrupt a header-cloned skb and strips a userspace-supplied
link header on retry; the second leaves skb->dev pointing at the teql
master while the skb is parked on a slave's neighbour arp_queue.

Patch 1 makes the header private before the write and pulls back only
the header the slave added.
Patch 2 moves skb->dev = slave ahead of teql_resolve() and restores
skb->dev at the arp-queue reinjection point, so a parked skb names the
device whose neighbour took it and is delivered with a link header.

Both are follow-ups to commit dc4b95b8fee9 ("net/sched: sch_teql: restore
skb->dev on the slave failure path").

The pre-existing teql issues reported alongside this series are fixed
separately, not here.  In particular, the lower-qdisc drop use-after-free
(`NETDEV_TX_OK` vs `dev_xmit_complete()`) is fixed by:
https://lore.kernel.org/netdev/QDISC-Y0BY.v2.r0.20261024060625-2@mojatatu.com/

This is repost3 of the same two patches; there is no code change.  The
only changes since repost2 are the commit messages: the patch 1/2
message now says "header-cloned" instead of "shared", and the patch 2/2
commit message now describes the reinjection behaviour change for
bpf_redirect_neigh() and nft fwd ... neigh instead of claiming the
restore is an identity for every parker.

Jamal Hadi Salim (2):
  net/sched: sch_teql: unshare the header before writing and fix retry
    strip
  net/sched: sch_teql: keep skb->dev consistent on the arp-queue path

 net/core/neighbour.c |  1 +
 net/sched/sch_teql.c | 34 ++++++++++++++++++++++++++++------
 2 files changed, 29 insertions(+), 6 deletions(-)

-- 
2.43.0

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-10-27  9:07 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-27  7:56 [PATCH net 0/2 repost3] net/sched: sch_teql: fix header-cloned write and retry strip Jamal Hadi Salim
2026-10-27  7:56 ` [PATCH net 1/2 repost3] net/sched: sch_teql: unshare the header before writing and fix " Jamal Hadi Salim
2026-10-27  7:56   ` [PATCH net 2/2 repost3] net/sched: sch_teql: keep skb->dev consistent on the arp-queue path Jamal Hadi Salim
2026-10-27  8:01 ` [PATCH net 0/2 repost3] net/sched: sch_teql: fix header-cloned write and retry strip netdev-bot+sinfo
2026-10-27  9:07   ` Jamal Hadi Salim

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox