From owner-cvs-src@FreeBSD.ORG Sat Sep 17 16:56:39 2005 Return-Path: X-Original-To: cvs-src@FreeBSD.org Delivered-To: cvs-src@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id DC88016A41F; Sat, 17 Sep 2005 16:56:39 +0000 (GMT) (envelope-from sam@errno.com) Received: from ebb.errno.com (ebb.errno.com [66.127.85.87]) by mx1.FreeBSD.org (Postfix) with ESMTP id 86D9C43D45; Sat, 17 Sep 2005 16:56:39 +0000 (GMT) (envelope-from sam@errno.com) Received: from [10.0.0.200] ([10.0.0.200]) (authenticated bits=0) by ebb.errno.com (8.12.9/8.12.6) with ESMTP id j8HGub6j068208 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 17 Sep 2005 09:56:38 -0700 (PDT) (envelope-from sam@errno.com) Message-ID: <432C4C6F.80906@errno.com> Date: Sat, 17 Sep 2005 10:03:43 -0700 From: Sam Leffler User-Agent: Mozilla Thunderbird 1.0.2 (X11/20050327) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Damien Bergamini References: <200509171241.j8HCf5ov019561@repoman.freebsd.org> In-Reply-To: <200509171241.j8HCf5ov019561@repoman.freebsd.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/dev/iwi if_iwi.c if_iwireg.h if_iwivar.h X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Sep 2005 16:56:40 -0000 Damien Bergamini wrote: > damien 2005-09-17 12:41:05 UTC > > FreeBSD src repository > > Modified files: > sys/dev/iwi if_iwi.c if_iwireg.h if_iwivar.h > Log: > o Add initial bits for IBSS support. You appear to have added a private sta table so that you could have an index for each node table entry. However I don't see any place where you index into the table; only that you need the index to pass to the firmware. This seems to say you only need a per-node index and that can be done differently (see below). FWIW, the intended way to maange per-node driver-private data like this is for the driver to extend the node data structure with a private definition (override the class decl in c++ parlance) and store the index in the private data area. This could eliminate the table and avoid the problems you've introduced by holding uncounted references to node data structures. It also avoids likely race conditions that'll result from having an unlocked data structure that overlaps scope with the net80211 node table (I did something similar in the ath driver only to find out the hard way it was a mistake). > o Allow association with APs that do not broadcast SSID (with hints from > Nick Hudson and Hajimu Umemoto). > o IFQ_DRV_PREPEND mbuf when h/w ring is full so it can be sent later. > o Increment if_oerrors when appropriate. > o Did some cleanup while I'm here. > > MFC after: 1 day This commit msg didn't indicate that you also made changes for WME support. You appear to disallow QoS encapsulation of EAPOL frames but this is already done in ieee80211_encap. ieee80211_classify should assign an AC for all frames so use M_WME_GETAC(m) and don't make driver-local decisions unless they are required by the h/w (hard to tell from just looking at a diff). I suggest that MFC'ing some of these changes so quickly are a bad idea. Sam