From owner-freebsd-current@FreeBSD.ORG Sun Apr 27 04:00:29 2008 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 87D9A1065672 for ; Sun, 27 Apr 2008 04:00:29 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from pele.citylink.co.nz (pele.citylink.co.nz [202.8.44.226]) by mx1.freebsd.org (Postfix) with ESMTP id 1BCE38FC0C for ; Sun, 27 Apr 2008 04:00:28 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from localhost (localhost [127.0.0.1]) by pele.citylink.co.nz (Postfix) with ESMTP id 0DF992BD96; Sun, 27 Apr 2008 16:00:28 +1200 (NZST) X-Virus-Scanned: Debian amavisd-new at citylink.co.nz Received: from pele.citylink.co.nz ([127.0.0.1]) by localhost (pele.citylink.co.nz [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id V1BqI2i1Yorn; Sun, 27 Apr 2008 16:00:24 +1200 (NZST) Received: from citylink.fud.org.nz (unknown [202.8.44.45]) by pele.citylink.co.nz (Postfix) with ESMTP; Sun, 27 Apr 2008 16:00:24 +1200 (NZST) Received: by citylink.fud.org.nz (Postfix, from userid 1001) id CC6161142D; Sun, 27 Apr 2008 16:00:21 +1200 (NZST) Date: Sun, 27 Apr 2008 16:00:21 +1200 From: Andrew Thompson To: Ben Kaduk Message-ID: <20080427040021.GC98671@citylink.fud.org.nz> References: <480D6667.4020509@errno.com> <47d0403c0804261757w5eb90be4k1f4f06521fe01bd@mail.gmail.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="KsGdsel6WgEHnImy" Content-Disposition: inline In-Reply-To: <47d0403c0804261757w5eb90be4k1f4f06521fe01bd@mail.gmail.com> User-Agent: Mutt/1.5.17 (2007-11-01) Cc: FreeBSD Current Subject: Re: HEADSUP: 802.11 vap support merged X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 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: Sun, 27 Apr 2008 04:00:29 -0000 --KsGdsel6WgEHnImy Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Sat, Apr 26, 2008 at 08:57:27PM -0400, Ben Kaduk wrote: > Hi Sam, > > On 4/22/08, Sam Leffler wrote: > > From UPDATING: > > > > 20080420: > > The 802.11 wireless support was redone to enable multi-bss > > operation on devices that are capable. The underlying device > > is no longer used directly but instead wlanX devices are > > cloned with ifconfig. This requires changes to rc.conf files. > > > > Again, sorry for jumping in late. > > Do I interpret this correctly as that it is unsupported, now, to > do something like `ifconfig ndis0 up`? > In my present configuration, I can do: > ifconfig wlan0 create wlandev ndis0 > ifconfig ndis0 up > ... > and get a useable connection, but: > ifconfig ndis0 up > gives me a panic (hand transcribed) > Fatal trap 12: page fault while in kernel mode > ndis_setstate_80211 I can see why this would happen, can you try this patch. Andrew --KsGdsel6WgEHnImy Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="ndis_vap.diff" Index: if_ndis.c =================================================================== RCS file: /home/ncvs/src/sys/dev/if_ndis/if_ndis.c,v retrieving revision 1.134 diff -u -p -r1.134 if_ndis.c --- if_ndis.c 20 Apr 2008 20:35:36 -0000 1.134 +++ if_ndis.c 27 Apr 2008 03:58:23 -0000 @@ -1958,10 +1958,6 @@ ndis_init(xsc) /* Setup task offload. */ ndis_set_offload(sc); - - if (sc->ndis_80211) - ndis_setstate_80211(sc); - NDIS_LOCK(sc); sc->ndis_txidx = 0; @@ -3133,18 +3129,20 @@ ndis_scan(void *arg, int npending) return; } - if (ss->ss_nssid != 0) { + len = sizeof(ssid); + bzero((char *)&ssid, len); + if (ss->ss_nssid == 0) + ssid.ns_ssidlen = 1; + else { /* Perform a directed scan */ - len = sizeof(ssid); - bzero((char *)&ssid, len); ssid.ns_ssidlen = ss->ss_ssid[0].len; bcopy(ss->ss_ssid[0].ssid, ssid.ns_ssid, ssid.ns_ssidlen); - - error = ndis_set_info(sc, OID_802_11_SSID, &ssid, &len); - if (error) - DPRINTF(("%s: set ESSID failed\n", __func__)); } + error = ndis_set_info(sc, OID_802_11_SSID, &ssid, &len); + if (error) + DPRINTF(("%s: set ESSID failed\n", __func__)); + len = 0; error = ndis_set_info(sc, OID_802_11_BSSID_LIST_SCAN, NULL, &len); --KsGdsel6WgEHnImy--