aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjoern A. Zeeb <bz@FreeBSD.org>2025-12-28 17:15:23 +0000
committerBjoern A. Zeeb <bz@FreeBSD.org>2025-12-29 02:54:03 +0000
commitf0395993e1ea83705e0da6623843e7d5d03f7269 (patch)
treeef8a9586d76d7452e5258d1e11b0fbded95d801b
parent9cf85457b13bc7aa125388d63c82acf2b21e9e9e (diff)
LinuxKPI: 802.11: reset hdr after crypto in lkpi_80211_txq_tx_one()
When lkpi_80211_txq_tx_one() calls into the crypto offloading parts to possibly make space in the headroom, the beginning of our frame moves. We have to reset hdr after that call as otherwise later classifications based on the hdr->frame_control will fail or cause wrong classificaiton of packets. This makes sure frames will either be directly sent using (*mo_tx)() or use the correct tid for the correct queue. This helps to get rtwx8 packets flowing after BA was negotiated. Sponsored by: The FreeBSD Foundation MFC after: 3 days Fixes: 11db70b6057e4
-rw-r--r--sys/compat/linuxkpi/common/src/linux_80211.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c
index 45c46a4d34f7..f4b534122b87 100644
--- a/sys/compat/linuxkpi/common/src/linux_80211.c
+++ b/sys/compat/linuxkpi/common/src/linux_80211.c
@@ -5729,6 +5729,8 @@ lkpi_80211_txq_tx_one(struct lkpi_sta *lsta, struct mbuf *m)
dev_kfree_skb(skb);
return;
}
+ /* Reset header as data might have moved. */
+ hdr = (void *)skb->data;
}
#endif