mirror of
https://github.com/opnsense/src.git
synced 2026-02-18 18:20:26 -05:00
LinuxKPI 802.11 / rtw88: make packets flow again
In 886653492945f we added checks for packets to only go out if the station is known to the firmware (amongst others) as there are implications in drivers. Unfortunately rtw88 does not support the mac80211 (*sta_state)() KPI but only the fallback (*sta_add/remove)() in which case the station is only added to firmware when going from AUTH to ASSOC. That means we had no chance to get authenticated anymore. PR: 283142, 274382 Fixes: 886653492945f (make sure we can send DISASSOC or DEAUTH frames) Tested by: imb protected-networks.net, oleg.nauman gmail.com Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D48161 (cherry picked from commit 2372f8cc640c2f4ab82831e6ac0e27ab6c18321a)
This commit is contained in:
parent
5572827428
commit
618afeb7f3
1 changed files with 18 additions and 0 deletions
|
|
@ -3705,7 +3705,16 @@ lkpi_ic_raw_xmit(struct ieee80211_node *ni, struct mbuf *m,
|
|||
|
||||
lsta = ni->ni_drv_data;
|
||||
LKPI_80211_LSTA_TXQ_LOCK(lsta);
|
||||
#if 0
|
||||
if (!lsta->added_to_drv || !lsta->txq_ready) {
|
||||
#else
|
||||
/*
|
||||
* Backout this part of 886653492945f which breaks rtw88 or
|
||||
* in general drivers without (*sta_state)() but only the
|
||||
* legacy fallback to (*sta_add)().
|
||||
*/
|
||||
if (!lsta->txq_ready) {
|
||||
#endif
|
||||
LKPI_80211_LSTA_TXQ_UNLOCK(lsta);
|
||||
/*
|
||||
* Free the mbuf (do NOT release ni ref for the m_pkthdr.rcvif!
|
||||
|
|
@ -3953,7 +3962,16 @@ lkpi_80211_txq_task(void *ctx, int pending)
|
|||
* We also use txq_ready as a semaphore and will drain the txq manually
|
||||
* if needed on our way towards SCAN/INIT in the state machine.
|
||||
*/
|
||||
#if 0
|
||||
shall_tx = lsta->added_to_drv && lsta->txq_ready;
|
||||
#else
|
||||
/*
|
||||
* Backout this part of 886653492945f which breaks rtw88 or
|
||||
* in general drivers without (*sta_state)() but only the
|
||||
* legacy fallback to (*sta_add)().
|
||||
*/
|
||||
shall_tx = lsta->txq_ready;
|
||||
#endif
|
||||
if (__predict_true(shall_tx))
|
||||
mbufq_concat(&mq, &lsta->txq);
|
||||
/*
|
||||
|
|
|
|||
Loading…
Reference in a new issue