LinuxKPI: 802.11: remove an early bandaid to make sure queues are allocated

iwlwifi allocates queues on first wakeup.  This takes a lot longer on
FreeBSD's work implementation that it seems to on Linux based on some
discussion.  That meant that we couldn't get non-data frames out quickly
enough initially and failed to associate.
d0d2911035 should have solved most of this
for us with iwlwifi.  None of the other drivers ported to LinuxKPI/802.11
up to today will call a dequeue so we get notified when the queus are
allocated or even need to do so.
Remove the bandaid initilly put in for iwlwifi now and speed up the
overall process of getting us associated.

MFC after:	3 days
This commit is contained in:
Bjoern A. Zeeb 2022-06-26 19:17:04 +00:00
parent e24e8103e0
commit 841719c08f

View File

@ -1036,47 +1036,6 @@ lkpi_sta_scan_to_auth(struct ieee80211vap *vap, enum ieee80211_state nstate, int
*/
lkpi_wake_tx_queues(hw, sta, false, false);
{
int i, count;
for (i = 3 * (hw->queues + 1); i > 0; i--) {
struct lkpi_txq *ltxq;
int tid;
count = 0;
/* Wake up all queues to know they are allocated in the driver. */
for (tid = 0; tid < nitems(sta->txq); tid++) {
if (tid == IEEE80211_NUM_TIDS) {
IMPROVE("station specific?");
if (!ieee80211_hw_check(hw, STA_MMPDU_TXQ))
continue;
} else if (tid >= hw->queues)
continue;
if (sta->txq[tid] == NULL)
continue;
ltxq = TXQ_TO_LTXQ(sta->txq[tid]);
if (!ltxq->seen_dequeue)
count++;
}
if (count == 0)
break;
#ifdef LINUXKPI_DEBUG_80211
if (count > 0)
ic_printf(vap->iv_ic, "%s: waiting for %d queues "
"to be allocated by driver\n", __func__, count);
#endif
pause("lkpi80211txq", hz/10);
}
#ifdef LINUXKPI_DEBUG_80211
if (count > 0)
ic_printf(vap->iv_ic, "%s: %d queues still not "
"allocated by driver\n", __func__, count);
#endif
}
/* Start mgd_prepare_tx. */
memset(&prep_tx_info, 0, sizeof(prep_tx_info));
prep_tx_info.duration = PREP_TX_INFO_DURATION;