linux_80211: Don't dequeue lsta if not queued

This fixes an instapanic when restarting wpa_supplicant on my laptop's
iwlwifi device.  After this change, iwlwifi enters a nonfunctional
state if wpa_supplicant is restarted, but "service netif restart wlan0"
is enough to get it working again.

releng/13.2 candidate.

Reviewed by:	bz
MFC after:	3 days
This commit is contained in:
Colin Percival 2023-03-05 12:10:57 -08:00
parent c237c10a23
commit 3689f8aeab

View File

@ -174,10 +174,13 @@ lkpi_lsta_remove(struct lkpi_sta *lsta, struct lkpi_vif *lvif)
{
struct ieee80211_node *ni;
IMPROVE("XXX-BZ remove tqe_prev check once ni-sta-state-sync is fixed");
ni = lsta->ni;
LKPI_80211_LVIF_LOCK(lvif);
TAILQ_REMOVE(&lvif->lsta_head, lsta, lsta_entry);
if (lsta->lsta_entry.tqe_prev != NULL)
TAILQ_REMOVE(&lvif->lsta_head, lsta, lsta_entry);
LKPI_80211_LVIF_UNLOCK(lvif);
lsta->ni = NULL;