AUTH -> AUTH state transitions happen if the access point uses band-steering. This was originally implemented to fix interop with some Aruba APs.
A recent commit I made to iwm/iwx drivers probably broke this. Here is a fix. ok? diff b1c80baf1b7d4bf6f528498fe67f3d1db4353371 /usr/src blob - 8bf1224f792b4b4f1e1214660de9a211e3788d74 file + sys/dev/pci/if_iwm.c --- sys/dev/pci/if_iwm.c +++ sys/dev/pci/if_iwm.c @@ -8945,9 +8945,11 @@ iwm_newstate(struct ieee80211com *ic, enum ieee80211_s /* * Prevent attemps to transition towards the same state, unless * we are scanning in which case a SCAN -> SCAN transition - * triggers another scan iteration. + * triggers another scan iteration. And AUTH -> AUTH is needed + * to support band-steering. */ - if (sc->ns_nstate == nstate && nstate != IEEE80211_S_SCAN) + if (sc->ns_nstate == nstate && nstate != IEEE80211_S_SCAN && + nstate != IEEE80211_S_AUTH) return 0; if (ic->ic_state == IEEE80211_S_RUN) { blob - 692f12524d78cde1117f4a660cc30cadf297e4af file + sys/dev/pci/if_iwx.c --- sys/dev/pci/if_iwx.c +++ sys/dev/pci/if_iwx.c @@ -7874,9 +7874,11 @@ iwx_newstate(struct ieee80211com *ic, enum ieee80211_s /* * Prevent attemps to transition towards the same state, unless * we are scanning in which case a SCAN -> SCAN transition - * triggers another scan iteration. + * triggers another scan iteration. And AUTH -> AUTH is needed + * to support band-steering. */ - if (sc->ns_nstate == nstate && nstate != IEEE80211_S_SCAN) + if (sc->ns_nstate == nstate && nstate != IEEE80211_S_SCAN && + nstate != IEEE80211_S_AUTH) return 0; if (ic->ic_state == IEEE80211_S_RUN) {