In atw_init(), always call atw_write_wep() to write the WEP state

to the h/w.  This prevents a spurious call to atw_write_wep() later,
in IEEE80211_S_RUN state, when net80211 times-out ieee80211_nodes.
It is important to avoid a spurious atw_write_wep() call because
in IBSS mode, at least, WEP re-initialization reliably locks up
the transmitter.

XXX There must be a bug in atw_write_wep() that causes it to lock
XXX up the transmitter.  I will revisit it later.
This commit is contained in:
dyoung 2005-12-29 21:32:06 +00:00
parent 13283d6e4f
commit 2e64aa7e41
1 changed files with 3 additions and 4 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: atw.c,v 1.93 2005/12/29 21:08:26 dyoung Exp $ */
/* $NetBSD: atw.c,v 1.94 2005/12/29 21:32:06 dyoung Exp $ */
/*-
* Copyright (c) 1998, 1999, 2000, 2002, 2003, 2004 The NetBSD Foundation, Inc.
@ -41,7 +41,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: atw.c,v 1.93 2005/12/29 21:08:26 dyoung Exp $");
__KERNEL_RCSID(0, "$NetBSD: atw.c,v 1.94 2005/12/29 21:32:06 dyoung Exp $");
#include "bpfilter.h"
@ -1423,8 +1423,7 @@ atw_init(struct ifnet *ifp)
atw_write_ssid(sc);
atw_write_sup_rates(sc);
if (ic->ic_caps & IEEE80211_C_WEP)
atw_write_wep(sc);
atw_write_wep(sc);
ic->ic_state = IEEE80211_S_INIT;