From owner-cvs-all@FreeBSD.ORG Mon Feb 2 23:39:24 2004 Return-Path: Delivered-To: cvs-all@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D255716A4CE; Mon, 2 Feb 2004 23:39:24 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id D3F0643D3F; Mon, 2 Feb 2004 23:39:23 -0800 (PST) (envelope-from wpaul@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.10/8.12.10) with ESMTP id i137dN0B021237; Mon, 2 Feb 2004 23:39:23 -0800 (PST) (envelope-from wpaul@repoman.freebsd.org) Received: (from wpaul@localhost) by repoman.freebsd.org (8.12.10/8.12.10/Submit) id i137dNCs021236; Mon, 2 Feb 2004 23:39:23 -0800 (PST) (envelope-from wpaul) Message-Id: <200402030739.i137dNCs021236@repoman.freebsd.org> From: Bill Paul Date: Mon, 2 Feb 2004 23:39:23 -0800 (PST) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/compat/ndis kern_ndis.c subr_ndis.c src/sys/dev/if_ndis if_ndis.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Feb 2004 07:39:25 -0000 wpaul 2004/02/02 23:39:23 PST FreeBSD src repository Modified files: sys/compat/ndis kern_ndis.c subr_ndis.c sys/dev/if_ndis if_ndis.c Log: Implement support for single packet sends. The Intel Centrino driver that Asus provides on its CDs has both a MiniportSend() routine and a MiniportSendPackets() function. The Microsoft NDIS docs say that if a driver has both, only the MiniportSendPackets() routine will be used. Although I think I implemented the support correctly, calling the MiniportSend() routine seems to result in no packets going out on the air, even though no error status is returned. The MiniportSendPackets() function does work though, so at least in this case it doesn't matter. In if_ndis.c:ndis_getstate_80211(), if ndis_get_assoc() returns an error, don't bother trying to obtain any other state since the calls may fail, or worse cause the underlying driver to crash. (The above two changes make the Asus-supplied Centrino work.) Also, when calling the OID_802_11_CONFIGURATION OID, remember to initialize the structure lengths correctly. In subr_ndis.c:ndis_open_file(), set the current working directory to rootvnode if we're in a thread that doesn't have a current working directory set. Revision Changes Path 1.35 +26 -0 src/sys/compat/ndis/kern_ndis.c 1.41 +10 -0 src/sys/compat/ndis/subr_ndis.c 1.40 +29 -7 src/sys/dev/if_ndis/if_ndis.c