aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/wi
diff options
context:
space:
mode:
authorAndrew Thompson <thompsa@FreeBSD.org>2007-06-30 21:12:41 +0000
committerAndrew Thompson <thompsa@FreeBSD.org>2007-06-30 21:12:41 +0000
commitd35985e711c42df643ade7ffb2bf1b0d407eb3b1 (patch)
tree4f805b99b9cab8a58b8dee72115f6e11fec203e0 /sys/dev/wi
parentc78c2f1bd25621e1371dd5e4f5bdf7d8862b0923 (diff)
Notes
Diffstat (limited to 'sys/dev/wi')
-rw-r--r--sys/dev/wi/if_wi.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/dev/wi/if_wi.c b/sys/dev/wi/if_wi.c
index aeb8a4e4c0e2..16f2d9fc014c 100644
--- a/sys/dev/wi/if_wi.c
+++ b/sys/dev/wi/if_wi.c
@@ -2959,8 +2959,12 @@ wi_newstate(struct ieee80211com *ic, enum ieee80211_state nstate, int arg)
IEEE80211_ADDR_COPY(ni->ni_macaddr, ni->ni_bssid);
buflen = sizeof(val);
wi_read_rid(sc, WI_RID_CURRENT_CHAN, &val, &buflen);
+ ni->ni_chan = ieee80211_find_channel(ic,
+ ieee80211_ieee2mhz(val, IEEE80211_CHAN_B),
+ IEEE80211_CHAN_B);
+ if (ni->ni_chan == NULL)
+ ni->ni_chan = &ic->ic_channels[0];
/* XXX validate channel */
- ni->ni_chan = &ic->ic_channels[le16toh(val)];
ic->ic_curchan = ic->ic_bsschan = ni->ni_chan;
#if NBPFILTER > 0
sc->sc_tx_th.wt_chan_freq = sc->sc_rx_th.wr_chan_freq =