From owner-cvs-src@FreeBSD.ORG Sun Feb 15 18:50:04 2004 Return-Path: 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 67F2616A4CE; Sun, 15 Feb 2004 18:50:04 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6346A43D1F; Sun, 15 Feb 2004 18:50:04 -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 i1G2o4Ge066105; Sun, 15 Feb 2004 18:50:04 -0800 (PST) (envelope-from wpaul@repoman.freebsd.org) Received: (from wpaul@localhost) by repoman.freebsd.org (8.12.10/8.12.10/Submit) id i1G2o4Q9066104; Sun, 15 Feb 2004 18:50:04 -0800 (PST) (envelope-from wpaul) Message-Id: <200402160250.i1G2o4Q9066104@repoman.freebsd.org> From: Bill Paul Date: Sun, 15 Feb 2004 18:50:04 -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 ntoskrnl_var.h subr_ndis.c subr_ntoskrnl.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 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: Mon, 16 Feb 2004 02:50:04 -0000 wpaul 2004/02/15 18:50:04 PST FreeBSD src repository Modified files: sys/compat/ndis ntoskrnl_var.h subr_ndis.c subr_ntoskrnl.c Log: More cleanups/fixes for the AMD Am1771 driver: - When adding new waiting threads to the waitlist for an object, use INSERT_LIST_TAIL() instead of INSERT_LIST_HEAD() so that new waiters go at the end of the list instead of the beginning. When we wake up a synchronization object, only the first waiter is awakened, and this needs to be the first thread that actually waited on the object. - Correct missing semicolon in INSERT_LIST_TAIL() macro. - Implement lookaside lists correctly. Note that the Am1771 driver uses lookaside lists to manage shared memory (i.e. DMAable) buffers by specifying its own alloc and free routines. The Microsoft documentation says you should avoid doing this, but apparently this did not deter the developers at AMD from doing it anyway. With these changes (which are the result of two straight days of almost non-stop debugging), I think I finally have the object/thread handling semantics implemented correctly. The Am1771 driver no longer crashes unexpectedly during association or bringing the interface up. Revision Changes Path 1.8 +3 -1 src/sys/compat/ndis/ntoskrnl_var.h 1.48 +1 -1 src/sys/compat/ndis/subr_ndis.c 1.22 +76 -20 src/sys/compat/ndis/subr_ntoskrnl.c