From owner-freebsd-current@FreeBSD.ORG Tue Jan 27 01:59:05 2004 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B061B16A4CE; Tue, 27 Jan 2004 01:59:05 -0800 (PST) Received: from kazi.fit.vutbr.cz (kazi.fit.vutbr.cz [147.229.8.12]) by mx1.FreeBSD.org (Postfix) with ESMTP id 46A9243D1D; Tue, 27 Jan 2004 01:57:43 -0800 (PST) (envelope-from cejkar@fit.vutbr.cz) Received: from kazi.fit.vutbr.cz (localhost [127.0.0.1]) by kazi.fit.vutbr.cz (8.12.11/8.12.9) with ESMTP id i0R9vej5080973 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO); Tue, 27 Jan 2004 10:57:40 +0100 (CET) Received: (from cejkar@localhost) by kazi.fit.vutbr.cz (8.12.11/8.12.5/Submit) id i0R9veJd080972; Tue, 27 Jan 2004 10:57:40 +0100 (CET) X-Authentication-Warning: kazi.fit.vutbr.cz: cejkar set sender to cejkar@fit.vutbr.cz using -f Date: Tue, 27 Jan 2004 10:57:40 +0100 From: Rudolf Cejka To: Bill Paul Message-ID: <20040127095740.GA74677@fit.vutbr.cz> References: <20040126005327.7285816A4CF@hub.freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040126005327.7285816A4CF@hub.freebsd.org> User-Agent: Mutt/1.4.1i X-Scanned-By: MIMEDefang 2.16 (www . roaringpenguin . com / mimedefang) cc: freebsd-current@FreeBSD.ORG Subject: Re: Project Evil: The Evil Continues X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Jan 2004 09:59:05 -0000 Bill Paul wrote (2004/01/25): > Now, is anyone going to actually test Project Evil with their > cards like I asked, or is everyone just going to use this as an excuse > to ask me questions? Hello, I have tested six pccard/cardbus cards with following results. However, first I had to find, why kernel crashes, when some cards are inserted - the problem is that cbb0 process does not set p->p_fd->fd_rdir and p->p_fd->fd_cdir, but namei() called from vn_open() called from ndis_open_file() unconditionally references them. Following patch helped me - the idea is stolen from /sys/dev/raidframe/rf_freebsdkintf.c. Furthermore, some debug output with reporting missing files helped me too. /sys/compat/ndis/subr_ndis.c,v 1.38 2004/01/18 22:57:11 --- subr_ndis.c.orig Tue Jan 27 00:05:15 2004 +++ subr_ndis.c Tue Jan 27 09:07:43 2004 @@ -65,6 +65,7 @@ #include #include #include +#include #include #include #include @@ -2303,6 +2304,7 @@ { char *afilename = NULL; struct thread *td = curthread; + struct proc *p; struct nameidata nd; int flags, error; struct vattr vat; @@ -2323,6 +2325,16 @@ } mtx_lock(&Giant); + + /* Sanity check the p_fd fields. This is really just a hack */ + p = td->td_proc; + if (!p->p_fd->fd_rdir || !p->p_fd->fd_cdir) + printf("p_fd fields are not set\n"); + if (!td->td_proc->p_fd->fd_rdir) + p->p_fd->fd_rdir = rootvnode; + if (!p->p_fd->fd_cdir) + p->p_fd->fd_cdir = rootvnode; + NDINIT(&nd, LOOKUP, FOLLOW, UIO_SYSSPACE, path, td); flags = FREAD; @@ -2331,6 +2343,7 @@ mtx_unlock(&Giant); *status = NDIS_STATUS_FILE_NOT_FOUND; free(fh, M_TEMP); + printf("error opening file %s\n", path); return; } And here are the results: *) Buffalo AirStation WLI-CB-G54A (802.11b/g) cbg0: mem 0x88002000-0x88003fff irq 11 at device 0.0 on cardbus0 cbg0: NDIS API version: 5.0 cbg0: 802.11 address: 00:07:40:c1:b1:88 cbg0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps cbg0: 11g rates: 6Mbps 9Mbps 12Mbps 18Mbps 36Mbps 48Mbps 54Mbps ... Unstable, but works. If I download some files, use ssh or browse the web, everything seems to be good. However, when I try cd /usr/src ; make update # supfile is for src & ports my notebook after some time always crashes. Sometimes already in src tree, sometimes in the ports tree. Panic is reproducible and kernel stops on 0xc086b709 : andl $0x0,0x20(%edi) I have a crash dump, but do not know, what to do and debug here. Do you have any ideas? It would be really great to have this card stable, because this is my primary card. *) Belkin F5D7010 (802.11b/g) bel0: mem 0x88002000-0x88003fff irq 11 at device 0.0 on cardbus0 bel0: NDIS API version: 5.0 bel0: 802.11 address: 00:30:bd:9c:d5:fb bel0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps bel0: 11g rates: 6Mbps 9Mbps 12Mbps 18Mbps 36Mbps 48Mbps 54Mbps ... The same name of Windows driver as for Buffalo, the same problems as with Buffalo card. *) Cisco AIR-CB20A / AIR-CB20A-A-K9 (802.11a) cardbus0: Resource not specified in CIS: id=10, size=100 cardbus0: Resource not specified in CIS: id=14, size=4000 cardbus0: Resource not specified in CIS: id=18, size=40000 cba0: port 0x1000-0x10ff mem 0x88040000-0x8807ffff,0x88080000-0x88083fff irq 11 at device 0.0 on cardbus0 can't re-use a leaf (NodeName)! can't re-use a leaf (InfrastructureMode)! can't re-use a leaf (PowerSaveMode)! can't re-use a leaf (SupportedRates)! can't re-use a leaf (SSID1)! cba0: NDIS API version: 5.0 cba0: 802.11 address: 00:00:48:9a:1b:cd cba0: couldn't retrieve channel info: 19 cba0: 11b rates: ... Card is detected, but I could not establish any connection *) Cisco AIR-PCM350 / AIR-PCM352 (802.11b) pccard0: (manufacturer=0x015f, product=0x000a) at function 0 pccard0: CIS info: Cisco Systems, 350 Series Wireless LAN Adapter, (null) ... This card seems to be big killer for ndiscvt - I had to edit the inf file by hand, so it could be converted. Furhtermore, the card is not detected at all and I do not know, what to do more, because ndis_probe has sufficient items, but it is not called at all. And executing pccardd ends with pccardd[1323]: fatal error: no PC-CARD slots If you are interested, here is the patch, I had to do to the *.inf file. ISAPNP could be easy to filter, but IOConfig and LoadOrderGroup seem to be harded to recognize. --- netX500.inf.orig Tue Jan 13 22:07:02 2004 +++ netX500.inf Tue Jan 27 10:46:47 2004 @@ -52,32 +52,32 @@ ; --------------- -------------- --------------------------- %PC2500.DevDesc% = PC2500.ndi, PCMCIA\AIRONET-PC2500-5313 %PCI2500.DevDesc% = PCI2500.ndi, PCI\VEN_14B9&DEV_2500 -%ISA2500.DevDesc% = ISA2500.ndi, ISAPNP\AWL2500 +;%ISA2500.DevDesc% = ISA2500.ndi, ISAPNP\AWL2500 %PC3100.DevDesc% = PC3100.ndi, PCMCIA\AIRONET-PC3100-25CA %PCI3100.DevDesc% = PCI3100.ndi, PCI\VEN_14B9&DEV_3100 %PCI3100.DevDesc% = PCI3100.ndi, PCI\VEN_14B9&DEV_3101 -%ISA3100.DevDesc% = ISA3100.ndi, ISAPNP\AWL3100 -%ISA3100.DevDesc% = ISA3100.ndi, ISAPNP\AWL3101 +;%ISA3100.DevDesc% = ISA3100.ndi, ISAPNP\AWL3100 +;%ISA3100.DevDesc% = ISA3100.ndi, ISAPNP\AWL3101 %PC3500.DevDesc% = PC3500.ndi, PCMCIA\AIRONET-PC3500-D29B %PC3500.DevDesc% = PC3500.ndi, PCMCIA\AIRONET-PC3500-1492 %PCI3500.DevDesc% = PCI3500.ndi, PCI\VEN_14B9&DEV_3500 -%ISA3500.DevDesc% = ISA3500.ndi, ISAPNP\AWL3500 +;%ISA3500.DevDesc% = ISA3500.ndi, ISAPNP\AWL3500 %PC4500.DevDesc% = PC4500.ndi, PCMCIA\AIRONET-PC4500-13ED -%PC4500.DevDesc% = PC4500.ndi, PCMCIA\AIRONET-PC4500-D4C4 +;%PC4500.DevDesc% = PC4500.ndi, PCMCIA\AIRONET-PC4500-D4C4 %PCI4500.DevDesc% = PCI4500.ndi, PCI\VEN_14B9&DEV_4500 -%ISA4500.DevDesc% = ISA4500.ndi, ISAPNP\AWL4500 +;%ISA4500.DevDesc% = ISA4500.ndi, ISAPNP\AWL4500 %PC4800.DevDesc% = PC4800.ndi, PCMCIA\AIRONET-PC4800-D913 %PCI4800.DevDesc% = PCI4800.ndi, PCI\VEN_14B9&DEV_4800 -%ISA4800.DevDesc% = ISA4800.ndi, ISAPNP\AWL4800 +;%ISA4800.DevDesc% = ISA4800.ndi, ISAPNP\AWL4800 %PC340.DevDesc% = PC340.ndi, PCMCIA\CISCO_SYSTEMS-340_SERIES_WIRELESS_LAN_ADAPTER-5FE9 %PCI340.DevDesc% = PCI340.ndi, PCI\VEN_14B9&DEV_0340 -%PC350.DevDesc% = PC350.ndi, PCMCIA\CISCO_SYSTEMS-350_SERIES_WIRELESS_LAN_ADAPTER-512A +%PC350.DevDesc% = PC350.ndi, PCI\VEN_14B9&DEV_0350 %PCI350.DevDesc% = PCI350.ndi, PCI\VEN_14B9&DEV_0350 @@ -86,32 +86,32 @@ ; --------------- -------------- --------------------------- %PC2500.DevDesc% = PC2500.ndi.XP, PCMCIA\AIRONET-PC2500-5313 %PCI2500.DevDesc% = PCI2500.ndi.XP, PCI\VEN_14B9&DEV_2500 -%ISA2500.DevDesc% = ISA2500.ndi.XP, ISAPNP\AWL2500 +;%ISA2500.DevDesc% = ISA2500.ndi.XP, ISAPNP\AWL2500 %PC3100.DevDesc% = PC3100.ndi.XP, PCMCIA\AIRONET-PC3100-25CA %PCI3100.DevDesc% = PCI3100.ndi.XP, PCI\VEN_14B9&DEV_3100 %PCI3100.DevDesc% = PCI3100.ndi.XP, PCI\VEN_14B9&DEV_3101 -%ISA3100.DevDesc% = ISA3100.ndi.XP, ISAPNP\AWL3100 -%ISA3100.DevDesc% = ISA3100.ndi.XP, ISAPNP\AWL3101 +;%ISA3100.DevDesc% = ISA3100.ndi.XP, ISAPNP\AWL3100 +;%ISA3100.DevDesc% = ISA3100.ndi.XP, ISAPNP\AWL3101 %PC3500.DevDesc% = PC3500.ndi.XP, PCMCIA\AIRONET-PC3500-D29B %PC3500.DevDesc% = PC3500.ndi.XP, PCMCIA\AIRONET-PC3500-1492 %PCI3500.DevDesc% = PCI3500.ndi.XP, PCI\VEN_14B9&DEV_3500 -%ISA3500.DevDesc% = ISA3500.ndi.XP, ISAPNP\AWL3500 +;%ISA3500.DevDesc% = ISA3500.ndi.XP, ISAPNP\AWL3500 %PC4500.DevDesc% = PC4500.ndi.XP, PCMCIA\AIRONET-PC4500-13ED %PC4500.DevDesc% = PC4500.ndi.XP, PCMCIA\AIRONET-PC4500-D4C4 %PCI4500.DevDesc% = PCI4500.ndi.XP, PCI\VEN_14B9&DEV_4500 -%ISA4500.DevDesc% = ISA4500.ndi.XP, ISAPNP\AWL4500 +;%ISA4500.DevDesc% = ISA4500.ndi.XP, ISAPNP\AWL4500 %PC4800.DevDesc% = PC4800.ndi.XP, PCMCIA\AIRONET-PC4800-D913 %PCI4800.DevDesc% = PCI4800.ndi.XP, PCI\VEN_14B9&DEV_4800 -%ISA4800.DevDesc% = ISA4800.ndi.XP, ISAPNP\AWL4800 +;%ISA4800.DevDesc% = ISA4800.ndi.XP, ISAPNP\AWL4800 %PC340.DevDesc% = PC340.ndi.XP, PCMCIA\CISCO_SYSTEMS-340_SERIES_WIRELESS_LAN_ADAPTER-5FE9 %PCI340.DevDesc% = PCI340.ndi.XP, PCI\VEN_14B9&DEV_0340 -%PC350.DevDesc% = PC350.ndi.XP, PCMCIA\CISCO_SYSTEMS-350_SERIES_WIRELESS_LAN_ADAPTER-512A +%PC350.DevDesc% = PC350.ndi.XP, PCI\VEN_14B9&DEV_0350 %PCI350.DevDesc% = PCI350.ndi.XP, PCI\VEN_14B9&DEV_0350 ;***************************************************************** @@ -942,7 +942,7 @@ ;***************************************************************** [ISA.LogConfig] IRQConfig=3,4,5,6,7,8,9,10,11,12,13,14,15 -IOConfig=40@100-3FF(3FF::) +IOConfig="40@100-3FF(3FF::)" ConfigPriority=HARDRECONFIG [CoInstaller.NT.AddReg] @@ -1209,7 +1209,7 @@ StartType = 3 ;%SERVICE_DEMAND_START% ErrorControl = 0 ;%SERVICE_ERROR_IGNORE% ServiceBinary = %12%\pcx500mp.sys -LoadOrderGroup = extended base +LoadOrderGroup = "extended base" [PCX500.EventLog] AddReg = PCX500.EventLog.Add *) Proxim Orinoco 8471-WD (802.11a/b/g) ath0: mem 0x88010000-0x8801ffff irq 11 at device 0.0 on cardbus0 ath0: mac 5.6 phy 4.1 5ghz radio 1.7 2ghz radio 2.3 ath0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps ath0: 802.11 address: 00:20:a6:4e:d6:64 ... Standard kernel driver, just for reference - I have problem with setting for one access point without wep. The second with wep seems to be accessible and network does work over it. ori0: mem 0x88010000-0x8801ffff irq 11 at device 0.0 on cardbus0 can't re-use a leaf (sleepMode)! can't re-use a leaf (shortPreamble)! can't re-use a leaf (radioEnable)! can't re-use a leaf (BusType)! ori0: NDIS API version: 5.1 error opening file /compat/ndis/regAdd.txt ori0: 802.11 address: 00:20:a6:4e:d6:64 ori0: 11a rates: 6Mbps 12Mbps 24Mbps 36Mbps 36Mbps 48Mbps 54Mbps ori0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps ori0: 11g rates: 6Mbps 12Mbps 24Mbps 36Mbps 36Mbps 48Mbps 54Mbps ... I'm able to do ssh and other basic network connections, but cd /usr/src ; make update halts system very fastly without any message and without any panic *) SMC EZ Connect g SMC2835W (802.11b/g) smc0: mem 0x88002000-0x88003fff irq 11 at device 0.0 on cardbus0 can't re-use a leaf (SSID)! can't re-use a leaf (NetworkType)! can't re-use a leaf (DSChannel)! can't re-use a leaf (TxRate)! can't re-use a leaf (WepReq)! can't re-use a leaf (LongPreamble)! can't re-use a leaf (11dMode)! can't re-use a leaf (BusType)! smc0: NDIS API version: 5.0 smc0: Ethernet address: 80:8a:bf:c2:64:9c ... Card is detected, but I could not establish any connection -- Rudolf Cejka http://www.fit.vutbr.cz/~cejkar Brno University of Technology, Faculty of Information Technology Bozetechova 2, 612 66 Brno, Czech Republic