Subject: kern/30592: wi(4) doesn't work
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: None <yamt@mwd.biglobe.ne.jp>
List: netbsd-bugs
Date: 06/24/2005 17:31:00
>Number:         30592
>Category:       kern
>Synopsis:       wi(4) doesn't work
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Jun 24 17:31:00 +0000 2005
>Originator:     YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
>Release:        NetBSD 3.99.7
>Organization:

>Environment:
	
	
System: NetBSD kaeru 3.99.7 NetBSD 3.99.7 (build.kaeru.nodebug) #74: Sat Jun 25 02:11:12 JST 2005 takashi@kaeru:/home/takashi/work/kernel/build.kaeru.nodebug i386
Architecture: i386
Machine: i386
>Description:
	after updating kernel, wi(4) stops working for me.
	the same hardware used to work fine with a kernel around 20050614.
	i'm not using wep.

	all received packets will be dropped on "is_rx_unauth".
	to me, it seems that IEEE80211_NODE_AUTH is never set as
	wi_newstate doesn't call ieee80211_newstate.

	wi0 at pcmcia0 function 0: <ZyXEL, ZyAIR/100, >
	wi0: 802.11 address 00:a0:c5:15:14:05
	wi0: using RF:PRISM2 MAC:HFA3841 CARD:HWB3163 rev.A
	wi0: Intersil Firmware: Primary (0.3.0), Station (0.7.6)

>How-To-Repeat:
>Fix:
	the following patch works for me.
	i'm not sure if it's right, though.

Index: wi.c
===================================================================
--- wi.c	(revision 1222)
+++ wi.c	(working copy)
@@ -2953,9 +2953,8 @@ wi_newstate(struct ieee80211com *ic, enu
 		rt_ifmsg(ifp);
 		splx(s);
 	}
-	ic->ic_state = nstate;
-	/* skip standard ieee80211 handling */
-	return 0;
+
+	return (*sc->sc_newstate)(ic, nstate, arg);
 }
 
 STATIC void

>Unformatted: