From owner-cvs-src-old@FreeBSD.ORG Mon Dec 29 12:59:15 2008 Return-Path: Delivered-To: cvs-src-old@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C9B7A10656D4 for ; Mon, 29 Dec 2008 12:59:15 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id ACB308FC1C for ; Mon, 29 Dec 2008 12:59:15 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id mBTCxFxH070393 for ; Mon, 29 Dec 2008 12:59:15 GMT (envelope-from ed@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id mBTCxFw7070392 for cvs-src-old@freebsd.org; Mon, 29 Dec 2008 12:59:15 GMT (envelope-from ed@repoman.freebsd.org) Message-Id: <200812291259.mBTCxFw7070392@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to ed@repoman.freebsd.org using -f From: Ed Schouten Date: Mon, 29 Dec 2008 12:58:45 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/compat/freebsd32 freebsd32_misc.c src/sys/compat/linux linux_misc.c src/sys/i386/ibcs2 ibcs2_sysi86.c src/sys/kern kern_sysctl.c kern_xxx.c X-BeenThere: cvs-src-old@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: **OBSOLETE** CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2008 12:59:15 -0000 ed 2008-12-29 12:58:45 UTC FreeBSD src repository Modified files: sys/compat/freebsd32 freebsd32_misc.c sys/compat/linux linux_misc.c sys/i386/ibcs2 ibcs2_sysi86.c sys/kern kern_sysctl.c kern_xxx.c Log: SVN rev 186564 on 2008-12-29 12:58:45Z by ed Push down Giant inside sysctl. Also add some more assertions to the code. In the existing code we didn't really enforce that callers hold Giant before calling userland_sysctl(), even though there is no guarantee it is safe. Fix this by just placing Giant locks around the call to the oid handler. This also means we only pick up Giant for a very short period of time. Maybe we should add MPSAFE flags to sysctl or phase it out all together. I've also added SYSCTL_LOCK_ASSERT(). We have to make sure sysctl_root() and name2oid() are called with the sysctl lock held. Reviewed by: Jille Timmermans Revision Changes Path 1.86 +2 -5 src/sys/compat/freebsd32/freebsd32_misc.c 1.231 +4 -12 src/sys/compat/linux/linux_misc.c 1.24 +2 -6 src/sys/i386/ibcs2/ibcs2_sysi86.c 1.183 +23 -19 src/sys/kern/kern_sysctl.c 1.55 +16 -34 src/sys/kern/kern_xxx.c