aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/ipw
diff options
context:
space:
mode:
authorBernhard Schmidt <bschmidt@FreeBSD.org>2010-04-17 18:16:14 +0000
committerBernhard Schmidt <bschmidt@FreeBSD.org>2010-04-17 18:16:14 +0000
commit557c25b48fe48116f27951dc263cd4fbf133b388 (patch)
tree8c80fe216011a560f331c7efa8543b602ea83df5 /sys/dev/ipw
parent892d2e9d9bb81d56487590e7780a4229df8bbaef (diff)
Notes
Diffstat (limited to 'sys/dev/ipw')
-rw-r--r--sys/dev/ipw/if_ipw.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/dev/ipw/if_ipw.c b/sys/dev/ipw/if_ipw.c
index 3a8d85d7ca6d..2e62949a4bb1 100644
--- a/sys/dev/ipw/if_ipw.c
+++ b/sys/dev/ipw/if_ipw.c
@@ -904,6 +904,13 @@ ipw_newstate(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg)
break;
case IEEE80211_S_AUTH:
+ /*
+ * Move to ASSOC state after the ipw_assoc() call. Firmware
+ * takes care of authentication, after the call we'll receive
+ * only an assoc response which would otherwise be discared
+ * if we are still in AUTH state.
+ */
+ nstate = IEEE80211_S_ASSOC;
ipw_assoc(ic, vap);
break;
@@ -1021,7 +1028,6 @@ ipw_rx_newstate_intr(struct ipw_softc *sc, struct ipw_soft_buf *sbuf)
}
sc->flags &= ~IPW_FLAG_ASSOCIATING;
sc->flags |= IPW_FLAG_ASSOCIATED;
- ieee80211_new_state(vap, IEEE80211_S_RUN, -1);
break;
case IPW_STATE_SCANNING: