diff options
author | green <green@FreeBSD.org> | 2003-11-04 23:47:19 +0000 |
---|---|---|
committer | green <green@FreeBSD.org> | 2003-11-04 23:47:19 +0000 |
commit | 039b0cb0daac4bfacb0c1e95792c29e9df4300d6 (patch) | |
tree | 57476d586413bbed81e6cf004e638ab376452571 /sys/dev/wi | |
parent | 3d453603d4bea9e29c1063724d5e0058080e2b10 (diff) | |
download | FreeBSD-src-039b0cb0daac4bfacb0c1e95792c29e9df4300d6.zip FreeBSD-src-039b0cb0daac4bfacb0c1e95792c29e9df4300d6.tar.gz |
Truly fix the lockup mentioned in 1.153. The PRISM hardware is not
capable of functioning in HostAP mode with a zero-length SSID, so
use " " if one is not set.
Diffstat (limited to 'sys/dev/wi')
-rw-r--r-- | sys/dev/wi/if_wi.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/sys/dev/wi/if_wi.c b/sys/dev/wi/if_wi.c index e4076ff..8313a89 100644 --- a/sys/dev/wi/if_wi.c +++ b/sys/dev/wi/if_wi.c @@ -655,6 +655,15 @@ wi_init(void *arg) wi_write_val(sc, WI_RID_PORTTYPE, WI_PORTTYPE_ADHOC); break; case IEEE80211_M_HOSTAP: + /* + * For PRISM cards, override the empty SSID, because in + * HostAP mode the controller will lock up otherwise. + */ + if (sc->sc_firmware_type == WI_INTERSIL && + ic->ic_des_esslen == 0) { + ic->ic_des_essid[0] = ' '; + ic->ic_des_esslen = 1; + } wi_write_val(sc, WI_RID_PORTTYPE, WI_PORTTYPE_HOSTAP); break; case IEEE80211_M_MONITOR: |