From: Eric Dumazet <edumazet@google.com>
To: "David S . Miller" <davem@davemloft.net>,
Jakub Kicinski <kuba@kernel.org>,
Paolo Abeni <pabeni@redhat.com>
Cc: Simon Horman <horms@kernel.org>,
Andrew Lunn <andrew+netdev@lunn.ch>,
netdev@vger.kernel.org, eric.dumazet@gmail.com,
Eric Dumazet <edumazet@google.com>
Subject: [PATCH net-next 00/10] net: remove skb mac_header assumptions in TX paths (I)
Date: Wed, 2 Sep 2026 00:33:34 +0000 [thread overview]
Message-ID: <20260902003344.1931843-1-edumazet@google.com> (raw)
In the transmit path, network drivers should not assume that
skb->mac_header has been set.
In the TX path, skb->data points to the start of the L2 header. Using
eth_hdr(skb) or vlan_eth_hdr(skb) when mac_header is unset reads from
skb->head + (u16)~0, leading to out-of-bounds reads (flagged by KASAN)
or triggering DEBUG_NET warnings.
Commit 96cc4b69581d ("macvlan: do not assume mac_header is set in
macvlan_broadcast()") introduced skb_eth_hdr() (and later commit
1f5020acb33f ("net: vlan: introduce skb_vlan_eth_hdr()")) to safely
access L2 headers in TX paths via skb->data without needing to call
skb_reset_mac_header().
This series converts the first batch of 10 network drivers and virtual
devices to use skb_eth_hdr(), skb_vlan_eth_hdr(), and
skb_checksum_start_offset() in their TX paths, and removes now redundant
skb_reset_mac_header() calls.
When all drivers are converted, we will remove skb_reset_mac_header()
from our TX fast paths.
Eric Dumazet (10):
bonding: do not assume mac header is set in ALB/TLB tx paths
atlantic: do not assume mac header is set in aq_ndev_start_xmit()
ibmveth: do not assume mac header is set in ibmveth_start_xmit()
net: mediatek: do not assume mac header is set in mtk_start_xmit()
netvsc: do not assume mac header is set in netvsc_start_xmit()
macsec: do not assume mac header is set in macsec_encrypt_finish()
macvlan: do not assume mac header is set in macvlan_broadcast()
vxlan: do not assume mac header is set in tx paths
cdc_mbim: do not assume mac header is set in cdc_mbim_tx_fixup()
ice: do not assume mac header is set in tx paths
drivers/net/bonding/bond_alb.c | 8 +++----
.../net/ethernet/aquantia/atlantic/aq_main.c | 2 +-
drivers/net/ethernet/ibm/ibmveth.c | 2 +-
drivers/net/ethernet/intel/ice/ice_eswitch.c | 2 +-
drivers/net/ethernet/intel/ice/ice_txrx.c | 4 ++--
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 2 +-
drivers/net/hyperv/netvsc_drv.c | 3 +--
drivers/net/macsec.c | 3 +--
drivers/net/macvlan.c | 5 ++--
drivers/net/usb/cdc_mbim.c | 5 ++--
drivers/net/vxlan/vxlan_core.c | 24 +++++++++----------
drivers/net/vxlan/vxlan_mdb.c | 4 ++--
12 files changed, 28 insertions(+), 36 deletions(-)
--
2.55.0.966.g6673acef38-goog
next reply other threads:[~2026-09-02 0:33 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-02 0:33 Eric Dumazet [this message]
2026-09-02 0:33 ` [PATCH net-next 01/10] bonding: do not assume mac header is set in ALB/TLB tx paths Eric Dumazet
2026-09-02 0:33 ` [PATCH net-next 02/10] atlantic: do not assume mac header is set in aq_ndev_start_xmit() Eric Dumazet
2026-09-02 0:33 ` [PATCH net-next 03/10] ibmveth: do not assume mac header is set in ibmveth_start_xmit() Eric Dumazet
2026-09-07 5:20 ` mingming cao
2026-09-07 6:41 ` Eric Dumazet
2026-09-02 0:33 ` [PATCH net-next 04/10] net: mediatek: do not assume mac header is set in mtk_start_xmit() Eric Dumazet
2026-09-02 0:33 ` [PATCH net-next 05/10] netvsc: do not assume mac header is set in netvsc_start_xmit() Eric Dumazet
2026-09-02 0:33 ` [PATCH net-next 06/10] macsec: do not assume mac header is set in macsec_encrypt_finish() Eric Dumazet
2026-09-02 0:33 ` [PATCH net-next 07/10] macvlan: do not assume mac header is set in macvlan_broadcast() Eric Dumazet
2026-09-02 0:33 ` [PATCH net-next 08/10] vxlan: do not assume mac header is set in tx paths Eric Dumazet
2026-09-02 0:33 ` [PATCH net-next 09/10] cdc_mbim: do not assume mac header is set in cdc_mbim_tx_fixup() Eric Dumazet
2026-09-02 0:33 ` [PATCH net-next 10/10] ice: do not assume mac header is set in tx paths Eric Dumazet
2026-09-02 11:22 ` [PATCH net-next 00/10] net: remove skb mac_header assumptions in TX paths (I) Eric Dumazet
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=20260902003344.1931843-1-edumazet@google.com \
--to=edumazet@google.com \
--cc=andrew+netdev@lunn.ch \
--cc=davem@davemloft.net \
--cc=eric.dumazet@gmail.com \
--cc=horms@kernel.org \
--cc=kuba@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
/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.