From owner-cvs-src@FreeBSD.ORG Sun Dec 5 22:29:09 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 CDEFA16A4F3; Sun, 5 Dec 2004 22:29:09 +0000 (GMT) Received: from harmony.village.org (rover.village.org [168.103.84.182]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2150343D5D; Sun, 5 Dec 2004 22:29:09 +0000 (GMT) (envelope-from imp@harmony.village.org) Received: from localhost (localhost [IPv6:::1]) by harmony.village.org (8.13.1/8.13.1) with ESMTP id iB5MQuD8041096; Sun, 5 Dec 2004 15:26:56 -0700 (MST) (envelope-from imp@harmony.village.org) Date: Sun, 05 Dec 2004 15:26:56 -0700 (MST) Message-Id: <20041205.152656.74710024.imp@harmony.village.org> To: nate@root.org From: Warner Losh In-Reply-To: <41B388C6.5090409@root.org> References: <200412050135.iB51ZJJl040909@repoman.freebsd.org> <20041204.221541.115654786.imp@bsdimp.com> <41B388C6.5090409@root.org> X-Mailer: Mew version 3.3 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit cc: cvs-src@FreeBSD.ORG cc: src-committers@FreeBSD.ORG cc: cvs-all@FreeBSD.ORG cc: imp@bsdimp.com Subject: Re: cvs commit: src/sys/dev/acpica acpi.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: Sun, 05 Dec 2004 22:29:10 -0000 From: Nate Lawson Subject: Re: cvs commit: src/sys/dev/acpica acpi.c Date: Sun, 05 Dec 2004 14:16:38 -0800 > M. Warner Losh wrote: > > In message: <200412050135.iB51ZJJl040909@repoman.freebsd.org> > > Nate Lawson writes: > > : If we are resuming non-MPSAFE drivers, they need Giant held for them. > > > > Generally, when walking the device tree, one must have Giant. I've > > been meaning to add asserts for this in the tree... I think that we > > have enough things giant is pushed out of that it is time... > > I'd like that. I think the GIANT_REQUIRED asserts should go in the > root_bus suspend/resume/shutdown methods, not in acpi. This will cover > everyone unless a driver drops Giant and doesn't reacquire it (unlikely). Agreed. I'm moving stuff in as soon as I verify that it works, or has a high likelood of succeeding. There's a few other places I want to add them as well, and will do so over the coming weeks. Drivers aren't allowed to drop Giant in these calls. Giant is used to control the layout of the device tree at the moment, and if you drop Giant, then you can get back into the code that changes the layout of the tree. I plan on fixing this in the future, but at the moment, you must not drop Giant. And you also should have Giant on any calls to device_get_children and hold it until just before the free of the child list. Once I have all the Giant asserts in place, I plan on moving forward with removing the need for Giant, but right now the restrictions are what they are... Warner