From 83dbc37c4f3fa2a13b7630fe756d993c246cb38d Mon Sep 17 00:00:00 2001 From: Mark Featherston Date: Fri, 31 Jul 2026 09:56:44 -0700 Subject: [PATCH] wifi: mac80211: align control-port TX skbs Control-port frames are allocated differently from ordinary netdev TX packets. Use netdev_alloc_skb_ip_align() so they receive the usual network-packet alignment. This path can expose driver assumptions when converting Ethernet control-port frames for transmission. ath10k's native-WiFi TX path, for example, removes the QoS Control field with skb_pull(2). This fixes WPA2 EAPOL transmission on QCA9377 ath10k_sdio devices when wpa_supplicant sends EAPOL through NL80211_CMD_CONTROL_PORT_FRAME. Assisted-by: codex:gpt-5.6-terra Signed-off-by: Mark Featherston --- net/mac80211/tx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index 695874db4fb2..6462b8f14394 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c @@ -5522,8 +5522,8 @@ int ieee80211_tx_control_port(struct wiphy *wiphy, struct net_device *dev, flags |= IEEE80211_TX_INTFL_NL80211_FRAME_TX | IEEE80211_TX_CTL_INJECTED; - skb = dev_alloc_skb(local->hw.extra_tx_headroom + - sizeof(struct ethhdr) + len); + skb = netdev_alloc_skb_ip_align(dev, local->hw.extra_tx_headroom + + sizeof(struct ethhdr) + len); if (!skb) return -ENOMEM;