Subject: kern/15498: Intersil Prism2.5 Wireless Lan cannot use 104-bit WEP
To: None <gnats-bugs@gnats.netbsd.org>
From: None <ura@hiru.aoba.yokohama.jp>
List: netbsd-bugs
Date: 02/06/2002 02:53:53
>Number: 15498
>Category: kern
>Synopsis: Intersil Prism2.5 Wireless Lan cannot use 104-bit WEP
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Tue Feb 05 09:55:00 PST 2002
>Closed-Date:
>Last-Modified:
>Originator: URA Hiroshi
>Release: NetBSD 1.5ZA (kernel: 2002/02/01, userland: 2001/01/12)
>Organization:
>Environment:
System: NetBSD fumizuki.hiru.aoba.yokohama.jp 1.5ZA NetBSD 1.5ZA (FUMIZUKI) #64: Tue Feb 5 16:05:23 JST 2002 ura@fumizuki.hiru.aoba.yokohama.jp:/usr/src/sys/arch/i386/compile/FUMIZUKI i386
Architecture: i386
Machine: i386
>Description:
ThinkPad T23 have internal wireless lan using Intersil Prism2.5 chip.
The dmesg says:
wi0 at pci2 dev 2 function 0: Intersil Prism2.5 Wireless Lan
wi0: interrupting at irq 11
wi0: 802.11 address 00:20:e0:89:18:a4
wi0: using RF:PRISM2.5 MAC:ISL3874A(PCI), Firmware: 1.3 variant 3
The wi without WEP and wi with 40bit-WEP worked fine. But when I
I tried to use wi with 104-bit WEP in the 104bit-WEP environment,
I found that it could not join to the wireless network.
>How-To-Repeat:
On the PC that have the Intersil Prism2.5 Wireless Lan, enable
104-bit WEP and ping to another machine.
>Fix:
The following patch is workaround. I don't test to use wi
with 40bit-WEP.
Index: wi.c
===================================================================
RCS file: /cvsroot/netbsd/syssrc/sys/dev/ic/wi.c,v
retrieving revision 1.38
diff -u -u -r1.38 wi.c
--- wi.c 2002/02/01 13:35:41 1.38
+++ wi.c 2002/02/05 17:22:15
@@ -930,12 +930,15 @@
struct wi_ltv_keys *wk = (struct wi_ltv_keys *)ltv;
for (i = 0; i < 4; i++) {
memset(&ws, 0, sizeof(ws));
- if(wk->wi_keys[i].wi_keylen <= 5) {
+#if 0
+ if (wk->wi_keys[i].wi_keylen <= 5) {
/* 5 Octets WEP Keys */
ws.wi_len = 4;
memcpy(ws.wi_str, &wk->wi_keys[i].wi_keydat, 5);
ws.wi_str[5] = '\0';
- } else {
+ } else
+#endif
+ {
/* 13 Octets WEP Keys */
ws.wi_len = 8;
memcpy(ws.wi_str, &wk->wi_keys[i].wi_keydat, 13);
>Release-Note:
>Audit-Trail:
>Unformatted: