summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorstsp <stsp@openbsd.org>2017-07-16 22:03:11 +0000
committerstsp <stsp@openbsd.org>2017-07-16 22:03:11 +0000
commitec74d047b09c82cb136de1162506611e3a94c5ec (patch)
treee7382a4ad0f27f54c73674a386cd2dcb2e0f10c6
parentSome net80211 state changes are triggered by incoming frames, and it is (diff)
downloadwireguard-openbsd-ec74d047b09c82cb136de1162506611e3a94c5ec.tar.xz
wireguard-openbsd-ec74d047b09c82cb136de1162506611e3a94c5ec.zip
Remove the AP from iwm's firmware station table when moving out of AUTH state.
Fixes "could not remove MAC context" errors seen during AUTH->SCAN transitions.
-rw-r--r--sys/dev/pci/if_iwm.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/sys/dev/pci/if_iwm.c b/sys/dev/pci/if_iwm.c
index 49494a71405..907e36f99d7 100644
--- a/sys/dev/pci/if_iwm.c
+++ b/sys/dev/pci/if_iwm.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_iwm.c,v 1.200 2017/07/16 21:35:20 stsp Exp $ */
+/* $OpenBSD: if_iwm.c,v 1.201 2017/07/16 22:03:11 stsp Exp $ */
/*
* Copyright (c) 2014, 2016 genua gmbh <info@genua.de>
@@ -5435,6 +5435,16 @@ iwm_deauth(struct iwm_softc *sc)
splassert(IPL_NET);
+ if (sc->sc_flags & IWM_FLAG_STA_ACTIVE) {
+ err = iwm_rm_sta_cmd(sc, in);
+ if (err) {
+ printf("%s: could not remove STA (error %d)\n",
+ DEVNAME(sc), err);
+ return err;
+ }
+ sc->sc_flags &= ~IWM_FLAG_STA_ACTIVE;
+ }
+
tfd_msk = 0;
for (ac = 0; ac < EDCA_NUM_AC; ac++)
tfd_msk |= htole32(1 << iwm_ac_to_tx_fifo[ac]);