From owner-p4-projects@FreeBSD.ORG Sun Mar 26 12:23:43 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B666B16A41F; Sun, 26 Mar 2006 12:23:43 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 58F3F16A400 for ; Sun, 26 Mar 2006 12:23:43 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 01ACB43D53 for ; Sun, 26 Mar 2006 12:23:43 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2QCNgMc094996 for ; Sun, 26 Mar 2006 12:23:42 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2QCNgae094993 for perforce@freebsd.org; Sun, 26 Mar 2006 12:23:42 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 26 Mar 2006 12:23:42 GMT Message-Id: <200603261223.k2QCNgae094993@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 94040 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Mar 2006 12:23:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=94040 Change 94040 by rwatson@rwatson_peppercorn on 2006/03/26 12:22:42 Break capabilities out into their own page, discuss what's up with the implementation, where to find it, and the fact that portions of it are present in the SEBSD branch. Affected files ... .. //depot/projects/trustedbsd/www/Makefile#4 edit .. //depot/projects/trustedbsd/www/components.page#5 edit .. //depot/projects/trustedbsd/www/sidebar.xml#5 edit Differences ... ==== //depot/projects/trustedbsd/www/Makefile#4 (text+ko) ==== @@ -28,7 +28,7 @@ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# $P4: //depot/projects/trustedbsd/www/Makefile#3 $ +# $P4: //depot/projects/trustedbsd/www/Makefile#4 $ STYLESHEET= page.xsl @@ -45,6 +45,7 @@ SRCS+= sebsd.page SRCS+= sedarwin.page SRCS+= audit.page +SRCS+= cap.page IMGS= components.gif componentsgray.gif IMGS+= developers.gif developersgray.gif docs.gif ==== //depot/projects/trustedbsd/www/components.page#5 (text+ko) ==== @@ -37,7 +37,7 @@ - $P4: //depot/projects/trustedbsd/www/components.page#4 $ + $P4: //depot/projects/trustedbsd/www/components.page#5 $ @@ -153,8 +153,10 @@ compromise. The capabilities development branch is largely complete, but is based on an older FreeBSD 5.0-CURRENT snapshot. Elements of this implementation - are being updated for FreeBSD 5.2 and will be available - in 2003Q3 as part of the MAC Framework.

+ are being updated for FreeBSD 5.2 and are available as + part of the SEBSD version of the TrustedBSD MAC Framework. + For more information, see the Capability + Page.

==== //depot/projects/trustedbsd/www/sidebar.xml#5 (text+ko) ==== @@ -6,7 +6,7 @@
  • ACLs
  • Audit
  • Extended Attributes
  • -
  • Capabilities
  • +
  • Capabilities
  • GEOM
  • MAC
  • OpenBSM
  • @@ -23,7 +23,7 @@
  • ACLs
  • Audit
  • Extended Attributes
  • -
  • Capabilities
  • +
  • Capabilities
  • GEOM
  • MAC
  • OpenBSM
  • From owner-p4-projects@FreeBSD.ORG Sun Mar 26 12:35:02 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3B93D16A425; Sun, 26 Mar 2006 12:35:02 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id F196716A423 for ; Sun, 26 Mar 2006 12:35:01 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3A8B643D58 for ; Sun, 26 Mar 2006 12:35:01 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2QCZ1ef095809 for ; Sun, 26 Mar 2006 12:35:01 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2QCZ0Cf095806 for perforce@freebsd.org; Sun, 26 Mar 2006 12:35:00 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 26 Mar 2006 12:35:00 GMT Message-Id: <200603261235.k2QCZ0Cf095806@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 94045 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Mar 2006 12:35:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=94045 Change 94045 by rwatson@rwatson_peppercorn on 2006/03/26 12:34:52 Add capability page missed in previous submit. Affected files ... .. //depot/projects/trustedbsd/www/cap.page#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Sun Mar 26 12:38:07 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7A87416A42A; Sun, 26 Mar 2006 12:38:07 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3408116A426 for ; Sun, 26 Mar 2006 12:38:07 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A4FC143D5D for ; Sun, 26 Mar 2006 12:38:05 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2QCc5EY095973 for ; Sun, 26 Mar 2006 12:38:05 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2QCc53o095970 for perforce@freebsd.org; Sun, 26 Mar 2006 12:38:05 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 26 Mar 2006 12:38:05 GMT Message-Id: <200603261238.k2QCc53o095970@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 94046 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Mar 2006 12:38:07 -0000 http://perforce.freebsd.org/chv.cgi?CH=94046 Change 94046 by rwatson@rwatson_peppercorn on 2006/03/26 12:37:22 More information on what POSIX.1e privileges do. Affected files ... .. //depot/projects/trustedbsd/www/cap.page#2 edit Differences ... ==== //depot/projects/trustedbsd/www/cap.page#2 (text+ko) ==== @@ -29,7 +29,7 @@ - $P4: //depot/projects/trustedbsd/www/cap.page#1 $ + $P4: //depot/projects/trustedbsd/www/cap.page#2 $ @@ -44,10 +44,14 @@ p4-cvs-trustedbsd-cap

    -

    POSIX.1e breaks down root privilege into a set of capabilities, or - more strictly, privileges, which allow the meeting of specific +

    POSIX.1e breaks root privilege into a set of capabilities, or + more strictly, privileges, which allow the granting of specific privilege requirements for POSIX calls, such as setuid(). - The TrustedBSD capability project is currently inactive, but an + POSIX.1e defines extension to process and file state to allow + privileges to be granted to processes, either by inheritence or + a file privilege model similar to setuid/setgid.

    + +

    The TrustedBSD capability project is currently inactive, but an implementation of POSIX.1e capabilities for an older FreeBSD release is available and functional, and may be found in Perforce/cvsup. Certain key files are provided in a tarball for download on this From owner-p4-projects@FreeBSD.ORG Sun Mar 26 13:28:29 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B7FCA16A423; Sun, 26 Mar 2006 13:28:29 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7E88116A422 for ; Sun, 26 Mar 2006 13:28:29 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 668E543D5D for ; Sun, 26 Mar 2006 13:28:28 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2QDSSdL005667 for ; Sun, 26 Mar 2006 13:28:28 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2QDSS3p005664 for perforce@freebsd.org; Sun, 26 Mar 2006 13:28:28 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 26 Mar 2006 13:28:28 GMT Message-Id: <200603261328.k2QDSS3p005664@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 94049 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Mar 2006 13:28:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=94049 Change 94049 by rwatson@rwatson_peppercorn on 2006/03/26 13:28:04 Add simple tar script to tar up some pertinent capability files for people who are interested. Affected files ... .. //depot/projects/trustedbsd/cap/tar.sh#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Sun Mar 26 13:30:34 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0815216A430; Sun, 26 Mar 2006 13:30:34 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C298D16A42D for ; Sun, 26 Mar 2006 13:30:33 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6131343D60 for ; Sun, 26 Mar 2006 13:30:31 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2QDUVt1005826 for ; Sun, 26 Mar 2006 13:30:31 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2QDUVCp005823 for perforce@freebsd.org; Sun, 26 Mar 2006 13:30:31 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 26 Mar 2006 13:30:31 GMT Message-Id: <200603261330.k2QDUVCp005823@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 94050 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Mar 2006 13:30:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=94050 Change 94050 by rwatson@rwatson_peppercorn on 2006/03/26 13:29:44 Fix sh script. Affected files ... .. //depot/projects/trustedbsd/cap/tar.sh#2 edit Differences ... ==== //depot/projects/trustedbsd/cap/tar.sh#2 (text+ko) ==== @@ -1,10 +1,3 @@ -FILES= sys/sys/capability.h \ - sys/kern/kern_prot.c \ - sys/kern/kern_cap.c \ - lib/libc/posix1e \ - etc/capability - usr.sbin/getpcap \ - usr.sbin/getfcap \ - usr.sbin/setfcap +FILES="sys/sys/capability.h sys/kern/kern_prot.c sys/kern/kern_cap.c lib/libc/posix1e etc/capability usr.sbin/getpcap usr.sbin/getfcap usr.sbin/setfcap" tar -czf 20060326-cap.tgz ${FILES} From owner-p4-projects@FreeBSD.ORG Sun Mar 26 13:32:34 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B54E416A41F; Sun, 26 Mar 2006 13:32:34 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7C3DF16A400 for ; Sun, 26 Mar 2006 13:32:34 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 442D243D45 for ; Sun, 26 Mar 2006 13:32:34 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2QDWYDR005927 for ; Sun, 26 Mar 2006 13:32:34 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2QDWXUC005924 for perforce@freebsd.org; Sun, 26 Mar 2006 13:32:33 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 26 Mar 2006 13:32:33 GMT Message-Id: <200603261332.k2QDWXUC005924@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 94051 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Mar 2006 13:32:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=94051 Change 94051 by rwatson@rwatson_peppercorn on 2006/03/26 13:32:04 Add more things to tarball. Affected files ... .. //depot/projects/trustedbsd/cap/tar.sh#3 edit Differences ... ==== //depot/projects/trustedbsd/cap/tar.sh#3 (text+ko) ==== @@ -1,3 +1,3 @@ -FILES="sys/sys/capability.h sys/kern/kern_prot.c sys/kern/kern_cap.c lib/libc/posix1e etc/capability usr.sbin/getpcap usr.sbin/getfcap usr.sbin/setfcap" +FILES="sys/sys/capability.h sys/kern/kern_prot.c sys/kern/kern_cap.c lib/libc/posix1e etc/capability usr.sbin/getpcap usr.sbin/getfcap usr.sbin/setfcap bin/sh/cap.c share/man/man5/capability.5 lib/libc_r/uthread/*cap*" tar -czf 20060326-cap.tgz ${FILES} From owner-p4-projects@FreeBSD.ORG Sun Mar 26 13:34:42 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0839216A45D; Sun, 26 Mar 2006 13:34:42 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D9C7716A45A for ; Sun, 26 Mar 2006 13:34:41 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9792643D75 for ; Sun, 26 Mar 2006 13:34:37 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2QDYbYo005995 for ; Sun, 26 Mar 2006 13:34:37 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2QDYbeP005992 for perforce@freebsd.org; Sun, 26 Mar 2006 13:34:37 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 26 Mar 2006 13:34:37 GMT Message-Id: <200603261334.k2QDYbeP005992@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 94053 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Mar 2006 13:34:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=94053 Change 94053 by rwatson@rwatson_fledge on 2006/03/26 13:34:25 Add 20060326 cap tarball download for people looking for BSD-licensed POSIX.1e files. These are from a very early 6.0 POSIX.1e capability snapshot found in the trustedbsd_cap branch. Affected files ... .. //depot/projects/trustedbsd/www/cap.page#3 edit Differences ... ==== //depot/projects/trustedbsd/www/cap.page#3 (text+ko) ==== @@ -6,10 +6,10 @@ modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE @@ -29,7 +29,7 @@ - $P4: //depot/projects/trustedbsd/www/cap.page#2 $ + $P4: //depot/projects/trustedbsd/www/cap.page#3 $ @@ -74,6 +74,9 @@ MAC modules to deny privilege based on the POSIX.1e privilege categories.

    +

    2006-03-26 FreeBSD 5.0 POSIX.1e capability reference files + snapshot Download.

    + From owner-p4-projects@FreeBSD.ORG Sun Mar 26 13:36:41 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2C4E516A429; Sun, 26 Mar 2006 13:36:41 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E5F1916A41F for ; Sun, 26 Mar 2006 13:36:40 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8AB0F43D46 for ; Sun, 26 Mar 2006 13:36:40 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2QDaegc006164 for ; Sun, 26 Mar 2006 13:36:40 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2QDaeSu006161 for perforce@freebsd.org; Sun, 26 Mar 2006 13:36:40 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 26 Mar 2006 13:36:40 GMT Message-Id: <200603261336.k2QDaeSu006161@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 94054 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Mar 2006 13:36:41 -0000 http://perforce.freebsd.org/chv.cgi?CH=94054 Change 94054 by rwatson@rwatson_fledge on 2006/03/26 13:36:07 Better description of 20060326 cap snapshot tarball. Affected files ... .. //depot/projects/trustedbsd/www/cap.page#4 edit Differences ... ==== //depot/projects/trustedbsd/www/cap.page#4 (text+ko) ==== @@ -29,7 +29,7 @@ - $P4: //depot/projects/trustedbsd/www/cap.page#3 $ + $P4: //depot/projects/trustedbsd/www/cap.page#4 $ @@ -75,7 +75,10 @@ categories.

    2006-03-26 FreeBSD 5.0 POSIX.1e capability reference files - snapshot Download.

    + snapshot. These are reference BSD-licensed POSIX.1e privilege + files derived from an early TrustedBSD implementation, and do + not represent a complete or supported implementation. + Download.

    From owner-p4-projects@FreeBSD.ORG Sun Mar 26 19:17:43 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CD4D416A422; Sun, 26 Mar 2006 19:17:43 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8F01816A420 for ; Sun, 26 Mar 2006 19:17:43 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 55C3E43D45 for ; Sun, 26 Mar 2006 19:17:43 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2QJHhXu028689 for ; Sun, 26 Mar 2006 19:17:43 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2QJHhLc028686 for perforce@freebsd.org; Sun, 26 Mar 2006 19:17:43 GMT (envelope-from jhb@freebsd.org) Date: Sun, 26 Mar 2006 19:17:43 GMT Message-Id: <200603261917.k2QJHhLc028686@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 94079 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Mar 2006 19:17:44 -0000 http://perforce.freebsd.org/chv.cgi?CH=94079 Change 94079 by jhb@jhb_zion on 2006/03/26 19:17:37 Simple Giant pushdown. Affected files ... .. //depot/projects/smpng/sys/kern/kern_linker.c#42 edit Differences ... ==== //depot/projects/smpng/sys/kern/kern_linker.c#42 (text+ko) ==== @@ -758,13 +758,11 @@ td->td_retval[0] = -1; - mtx_lock(&Giant); - if ((error = securelevel_gt(td->td_ucred, 0)) != 0) - goto out; + return (error); if ((error = suser(td)) != 0) - goto out; + return (error); pathname = malloc(MAXPATHLEN, M_TEMP, M_WAITOK); if ((error = copyinstr(uap->file, pathname, MAXPATHLEN, NULL)) != 0) @@ -782,16 +780,16 @@ kldname = NULL; modname = pathname; } + + mtx_lock(&Giant); error = linker_load_module(kldname, modname, NULL, NULL, &lf); - if (error) - goto out; - - lf->userrefs++; - td->td_retval[0] = lf->id; + if (error == 0) { + lf->userrefs++; + td->td_retval[0] = lf->id; + } + mtx_unlock(&Giant); out: - if (pathname) - free(pathname, M_TEMP); - mtx_unlock(&Giant); + free(pathname, M_TEMP); return (error); } @@ -804,14 +802,13 @@ linker_file_t lf; int error = 0; - mtx_lock(&Giant); - if ((error = securelevel_gt(td->td_ucred, 0)) != 0) - goto out; + return (error); if ((error = suser(td)) != 0) - goto out; + return (error); + mtx_lock(&Giant); lf = linker_find_file_by_id(fileid); if (lf) { KLD_DPF(FILE, ("kldunload: lf->userrefs=%d\n", lf->userrefs)); @@ -822,15 +819,14 @@ printf("kldunload: attempt to unload file that was" " loaded by the kernel\n"); error = EBUSY; - goto out; + } else { + lf->userrefs--; + error = linker_file_unload(lf, flags); + if (error) + lf->userrefs++; } - lf->userrefs--; - error = linker_file_unload(lf, flags); - if (error) - lf->userrefs++; } else error = ENOENT; -out: mtx_unlock(&Giant); return (error); } @@ -875,7 +871,6 @@ return (error); #endif - mtx_lock(&Giant); td->td_retval[0] = -1; pathname = malloc(MAXPATHLEN, M_TEMP, M_WAITOK); @@ -883,15 +878,15 @@ goto out; filename = linker_basename(pathname); + mtx_lock(&Giant); lf = linker_find_file_by_name(filename); + mtx_unlock(&Giant); if (lf) td->td_retval[0] = lf->id; else error = ENOENT; out: - if (pathname) - free(pathname, M_TEMP); - mtx_unlock(&Giant); + free(pathname, M_TEMP); return (error); } @@ -1041,22 +1036,20 @@ return (error); #endif - mtx_lock(&Giant); - if ((error = copyin(uap->data, &lookup, sizeof(lookup))) != 0) - goto out; + return (error); if (lookup.version != sizeof(lookup) || - uap->cmd != KLDSYM_LOOKUP) { - error = EINVAL; - goto out; - } + uap->cmd != KLDSYM_LOOKUP) + return (EINVAL); symstr = malloc(MAXPATHLEN, M_TEMP, M_WAITOK); if ((error = copyinstr(lookup.symname, symstr, MAXPATHLEN, NULL)) != 0) goto out; + mtx_lock(&Giant); if (uap->fileid != 0) { lf = linker_find_file_by_id(uap->fileid); if (lf == NULL) { error = ENOENT; + mtx_unlock(&Giant); goto out; } if (LINKER_LOOKUP_SYMBOL(lf, symstr, &sym) == 0 && @@ -1082,10 +1075,9 @@ if (lf == NULL) error = ENOENT; } + mtx_unlock(&Giant); out: - if (symstr) - free(symstr, M_TEMP); - mtx_unlock(&Giant); + free(symstr, M_TEMP); return (error); } From owner-p4-projects@FreeBSD.ORG Sun Mar 26 21:52:59 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4495016A422; Sun, 26 Mar 2006 21:52:59 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E103416A401 for ; Sun, 26 Mar 2006 21:52:58 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E523F43D5E for ; Sun, 26 Mar 2006 21:52:53 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2QLqr8c046016 for ; Sun, 26 Mar 2006 21:52:53 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2QLqqFT046013 for perforce@freebsd.org; Sun, 26 Mar 2006 21:52:52 GMT (envelope-from marcel@freebsd.org) Date: Sun, 26 Mar 2006 21:52:52 GMT Message-Id: <200603262152.k2QLqqFT046013@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Cc: Subject: PERFORCE change 94086 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Mar 2006 21:52:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=94086 Change 94086 by marcel@marcel_nfs on 2006/03/26 21:52:08 IFC @94084 Affected files ... .. //depot/projects/uart/Makefile#5 integrate .. //depot/projects/uart/alpha/linux/linux_dummy.c#4 integrate .. //depot/projects/uart/alpha/linux/linux_proto.h#7 integrate .. //depot/projects/uart/alpha/linux/linux_syscall.h#7 integrate .. //depot/projects/uart/alpha/linux/linux_sysent.c#7 integrate .. //depot/projects/uart/alpha/linux/linux_sysvec.c#9 integrate .. //depot/projects/uart/alpha/linux/syscalls.master#7 integrate .. //depot/projects/uart/amd64/amd64/apic_vector.S#6 integrate .. //depot/projects/uart/amd64/amd64/db_trace.c#10 integrate .. //depot/projects/uart/amd64/amd64/io_apic.c#7 integrate .. //depot/projects/uart/amd64/amd64/local_apic.c#9 integrate .. //depot/projects/uart/amd64/amd64/machdep.c#18 integrate .. //depot/projects/uart/amd64/amd64/mp_machdep.c#12 integrate .. //depot/projects/uart/amd64/amd64/pmap.c#27 integrate .. //depot/projects/uart/amd64/amd64/trap.c#11 integrate .. //depot/projects/uart/amd64/include/asmacros.h#4 integrate .. //depot/projects/uart/amd64/include/bus.h#3 integrate .. //depot/projects/uart/amd64/include/pmap.h#9 integrate .. //depot/projects/uart/amd64/include/trap.h#3 integrate .. //depot/projects/uart/amd64/linux32/linux.h#2 integrate .. //depot/projects/uart/amd64/linux32/linux32_proto.h#5 integrate .. //depot/projects/uart/amd64/linux32/linux32_syscall.h#5 integrate .. //depot/projects/uart/amd64/linux32/linux32_sysent.c#5 integrate .. //depot/projects/uart/amd64/linux32/linux32_sysvec.c#9 integrate .. //depot/projects/uart/amd64/linux32/syscalls.master#5 integrate .. //depot/projects/uart/amd64/pci/pci_bus.c#11 integrate .. //depot/projects/uart/arm/arm/pmap.c#11 integrate .. //depot/projects/uart/arm/at91/at91.c#2 integrate .. //depot/projects/uart/arm/at91/at91_pio.c#1 branch .. //depot/projects/uart/arm/at91/at91_pioreg.h#1 branch .. //depot/projects/uart/arm/at91/at91_pmc.c#1 branch .. //depot/projects/uart/arm/at91/at91_pmcreg.h#1 branch .. //depot/projects/uart/arm/at91/at91_pmcvar.h#1 branch .. //depot/projects/uart/arm/at91/at91_rtc.c#1 branch .. //depot/projects/uart/arm/at91/at91_rtcreg.h#1 branch .. //depot/projects/uart/arm/at91/at91_ssc.c#1 branch .. //depot/projects/uart/arm/at91/at91_sscreg.h#1 branch .. //depot/projects/uart/arm/at91/at91_st.c#2 integrate .. //depot/projects/uart/arm/at91/at91rm92reg.h#2 integrate .. //depot/projects/uart/arm/at91/files.at91#2 integrate .. //depot/projects/uart/arm/at91/if_ate.c#2 integrate .. //depot/projects/uart/arm/at91/kb920x_machdep.c#2 integrate .. //depot/projects/uart/arm/at91/ohci_atmelarm.c#1 branch .. //depot/projects/uart/arm/at91/uart_dev_at91usart.c#3 integrate .. //depot/projects/uart/boot/Makefile#6 integrate .. //depot/projects/uart/boot/alpha/common/Makefile.common#4 integrate .. //depot/projects/uart/boot/i386/libi386/Makefile#7 integrate .. //depot/projects/uart/boot/i386/libi386/smbios.c#4 integrate .. //depot/projects/uart/boot/i386/loader/Makefile#6 integrate .. //depot/projects/uart/boot/ia64/efi/Makefile#3 integrate .. //depot/projects/uart/boot/ia64/ski/Makefile#3 integrate .. //depot/projects/uart/boot/pc98/loader/Makefile#6 integrate .. //depot/projects/uart/boot/powerpc/loader/Makefile#5 integrate .. //depot/projects/uart/boot/sparc64/loader/Makefile#4 integrate .. //depot/projects/uart/cam/scsi/scsi_da.c#17 integrate .. //depot/projects/uart/compat/linux/linux_file.c#6 integrate .. //depot/projects/uart/compat/linux/linux_getcwd.c#8 integrate .. //depot/projects/uart/compat/linux/linux_ioctl.c#9 integrate .. //depot/projects/uart/compat/linux/linux_ipc.c#6 integrate .. //depot/projects/uart/compat/linux/linux_mib.c#5 integrate .. //depot/projects/uart/compat/linux/linux_misc.c#13 integrate .. //depot/projects/uart/compat/linux/linux_signal.c#6 integrate .. //depot/projects/uart/compat/linux/linux_socket.c#10 integrate .. //depot/projects/uart/compat/linux/linux_stats.c#9 integrate .. //depot/projects/uart/compat/linux/linux_sysctl.c#4 integrate .. //depot/projects/uart/compat/linux/linux_uid16.c#4 integrate .. //depot/projects/uart/conf/files#52 integrate .. //depot/projects/uart/conf/files.alpha#14 integrate .. //depot/projects/uart/conf/files.sparc64#15 integrate .. //depot/projects/uart/contrib/pf/net/pf_norm.c#6 integrate .. //depot/projects/uart/dev/aha/aha_isa.c#9 integrate .. //depot/projects/uart/dev/aha/aha_mca.c#6 integrate .. //depot/projects/uart/dev/ata/ata-chipset.c#18 integrate .. //depot/projects/uart/dev/ata/ata-pci.h#14 integrate .. //depot/projects/uart/dev/ata/ata-usb.c#2 integrate .. //depot/projects/uart/dev/ata/atapi-fd.c#10 integrate .. //depot/projects/uart/dev/atkbdc/psm.c#4 integrate .. //depot/projects/uart/dev/bge/if_bge.c#23 integrate .. //depot/projects/uart/dev/dc/if_dc.c#4 integrate .. //depot/projects/uart/dev/dc/if_dcreg.h#2 integrate .. //depot/projects/uart/dev/en/midway.c#10 integrate .. //depot/projects/uart/dev/fatm/if_fatm.c#14 integrate .. //depot/projects/uart/dev/hme/if_hme.c#13 integrate .. //depot/projects/uart/dev/hwpmc/hwpmc_logging.c#4 integrate .. //depot/projects/uart/dev/hwpmc/hwpmc_mod.c#6 integrate .. //depot/projects/uart/dev/ipw/if_ipw.c#4 integrate .. //depot/projects/uart/dev/ipw/if_ipwreg.h#2 integrate .. //depot/projects/uart/dev/ipw/if_ipwvar.h#3 integrate .. //depot/projects/uart/dev/iwi/if_iwi.c#7 integrate .. //depot/projects/uart/dev/iwi/if_iwivar.h#5 integrate .. //depot/projects/uart/dev/mfi/mfi.c#1 branch .. //depot/projects/uart/dev/mfi/mfi_disk.c#1 branch .. //depot/projects/uart/dev/mfi/mfi_ioctl.h#1 branch .. //depot/projects/uart/dev/mfi/mfi_pci.c#1 branch .. //depot/projects/uart/dev/mfi/mfireg.h#1 branch .. //depot/projects/uart/dev/mfi/mfivar.h#1 branch .. //depot/projects/uart/dev/mii/brgphy.c#12 integrate .. //depot/projects/uart/dev/mii/miidevs#7 integrate .. //depot/projects/uart/dev/mpt/mpt.c#11 integrate .. //depot/projects/uart/dev/mpt/mpt.h#8 integrate .. //depot/projects/uart/dev/mpt/mpt_cam.c#8 integrate .. //depot/projects/uart/dev/mpt/mpt_debug.c#10 integrate .. //depot/projects/uart/dev/mpt/mpt_pci.c#14 integrate .. //depot/projects/uart/dev/mpt/mpt_raid.c#3 integrate .. //depot/projects/uart/dev/mpt/mpt_reg.h#3 integrate .. //depot/projects/uart/dev/patm/if_patm_attach.c#10 integrate .. //depot/projects/uart/dev/pccbb/pccbb.c#15 integrate .. //depot/projects/uart/dev/ral/rt2560.c#2 integrate .. //depot/projects/uart/dev/ral/rt2661.c#3 integrate .. //depot/projects/uart/dev/re/if_re.c#17 integrate .. //depot/projects/uart/dev/sound/isa/ad1816.c#8 integrate .. //depot/projects/uart/dev/sound/pci/atiixp.c#5 integrate .. //depot/projects/uart/dev/sound/pci/ich.c#19 integrate .. //depot/projects/uart/dev/sound/pcm/channel.c#9 integrate .. //depot/projects/uart/dev/sound/pcm/dsp.c#12 integrate .. //depot/projects/uart/dev/sound/pcm/mixer.c#9 integrate .. //depot/projects/uart/dev/sound/pcm/sound.c#9 integrate .. //depot/projects/uart/dev/sound/pcm/sound.h#9 integrate .. //depot/projects/uart/dev/sound/pcm/vchan.c#8 integrate .. //depot/projects/uart/dev/usb/ehci.c#15 integrate .. //depot/projects/uart/dev/usb/hid.c#6 integrate .. //depot/projects/uart/dev/usb/if_ural.c#6 integrate .. //depot/projects/uart/dev/usb/umass.c#18 integrate .. //depot/projects/uart/fs/fdescfs/fdesc_vnops.c#10 integrate .. //depot/projects/uart/fs/fifofs/fifo_vnops.c#10 integrate .. //depot/projects/uart/gdb/gdb_cons.c#1 branch .. //depot/projects/uart/gdb/gdb_int.h#3 integrate .. //depot/projects/uart/gdb/gdb_main.c#4 integrate .. //depot/projects/uart/geom/geom_io.c#10 integrate .. //depot/projects/uart/geom/mirror/g_mirror.c#12 integrate .. //depot/projects/uart/geom/mirror/g_mirror.h#7 integrate .. //depot/projects/uart/geom/mirror/g_mirror_ctl.c#7 integrate .. //depot/projects/uart/geom/raid3/g_raid3.c#13 integrate .. //depot/projects/uart/geom/raid3/g_raid3.h#7 integrate .. //depot/projects/uart/geom/raid3/g_raid3_ctl.c#7 integrate .. //depot/projects/uart/geom/vinum/geom_vinum.c#6 integrate .. //depot/projects/uart/geom/vinum/geom_vinum.h#5 integrate .. //depot/projects/uart/geom/vinum/geom_vinum_rm.c#5 integrate .. //depot/projects/uart/i386/i386/io_apic.c#8 integrate .. //depot/projects/uart/i386/i386/local_apic.c#10 integrate .. //depot/projects/uart/i386/i386/machdep.c#20 integrate .. //depot/projects/uart/i386/i386/pmap.c#30 integrate .. //depot/projects/uart/i386/linux/linux.h#4 integrate .. //depot/projects/uart/i386/linux/linux_dummy.c#3 integrate .. //depot/projects/uart/i386/linux/linux_proto.h#7 integrate .. //depot/projects/uart/i386/linux/linux_syscall.h#7 integrate .. //depot/projects/uart/i386/linux/linux_sysent.c#7 integrate .. //depot/projects/uart/i386/linux/linux_sysvec.c#11 integrate .. //depot/projects/uart/i386/linux/syscalls.master#7 integrate .. //depot/projects/uart/isofs/cd9660/cd9660_rrip.c#4 integrate .. //depot/projects/uart/kern/imgact_aout.c#9 integrate .. //depot/projects/uart/kern/init_sysent.c#16 integrate .. //depot/projects/uart/kern/kern_descrip.c#21 integrate .. //depot/projects/uart/kern/kern_environment.c#9 integrate .. //depot/projects/uart/kern/kern_exit.c#13 integrate .. //depot/projects/uart/kern/kern_fork.c#15 integrate .. //depot/projects/uart/kern/kern_linker.c#7 integrate .. //depot/projects/uart/kern/kern_mac.c#12 integrate .. //depot/projects/uart/kern/kern_tc.c#14 integrate .. //depot/projects/uart/kern/kern_thread.c#21 integrate .. //depot/projects/uart/kern/syscalls.c#16 integrate .. //depot/projects/uart/kern/syscalls.master#16 integrate .. //depot/projects/uart/kern/uipc_mbuf.c#12 integrate .. //depot/projects/uart/kern/uipc_socket.c#16 integrate .. //depot/projects/uart/kern/uipc_socket2.c#9 integrate .. //depot/projects/uart/kern/uipc_usrreq.c#10 integrate .. //depot/projects/uart/kern/vfs_aio.c#14 integrate .. //depot/projects/uart/kern/vfs_bio.c#21 integrate .. //depot/projects/uart/kern/vfs_cluster.c#15 integrate .. //depot/projects/uart/kern/vfs_mount.c#20 integrate .. //depot/projects/uart/kern/vfs_subr.c#24 integrate .. //depot/projects/uart/kern/vfs_syscalls.c#22 integrate .. //depot/projects/uart/kern/vfs_vnops.c#15 integrate .. //depot/projects/uart/modules/Makefile#28 integrate .. //depot/projects/uart/modules/acpi/acpi_video/Makefile#3 integrate .. //depot/projects/uart/modules/ce/Makefile#3 integrate .. //depot/projects/uart/modules/cp/Makefile#4 integrate .. //depot/projects/uart/modules/dummynet/Makefile#4 integrate .. //depot/projects/uart/modules/if_bridge/Makefile#3 integrate .. //depot/projects/uart/modules/if_gif/Makefile#4 integrate .. //depot/projects/uart/modules/ipfilter/Makefile#7 integrate .. //depot/projects/uart/modules/ipfw/Makefile#4 integrate .. //depot/projects/uart/modules/iwi/Makefile#3 integrate .. //depot/projects/uart/modules/linux/Makefile#6 integrate .. //depot/projects/uart/modules/mfi/Makefile#1 branch .. //depot/projects/uart/modules/netgraph/Makefile#8 integrate .. //depot/projects/uart/modules/pf/Makefile#7 integrate .. //depot/projects/uart/modules/pflog/Makefile#3 integrate .. //depot/projects/uart/net/if.c#17 integrate .. //depot/projects/uart/net/if_bridge.c#7 integrate .. //depot/projects/uart/net/if_media.h#8 integrate .. //depot/projects/uart/net/if_tap.c#8 integrate .. //depot/projects/uart/net/route.h#7 integrate .. //depot/projects/uart/net/rtsock.c#10 integrate .. //depot/projects/uart/net80211/ieee80211_output.c#17 integrate .. //depot/projects/uart/netatalk/ddp_pcb.c#3 integrate .. //depot/projects/uart/netatalk/ddp_usrreq.c#6 integrate .. //depot/projects/uart/netgraph/ng_tcpmss.c#2 integrate .. //depot/projects/uart/netinet/in_pcb.h#7 integrate .. //depot/projects/uart/netinet/ip_carp.c#5 integrate .. //depot/projects/uart/netinet/ip_carp.h#2 integrate .. //depot/projects/uart/netinet/ip_icmp.c#10 integrate .. //depot/projects/uart/netinet/tcp_input.c#18 integrate .. //depot/projects/uart/netinet/tcp_syncache.c#15 integrate .. //depot/projects/uart/netinet/tcp_timer.c#10 integrate .. //depot/projects/uart/netinet6/in6.h#7 integrate .. //depot/projects/uart/netinet6/in6_pcb.c#9 integrate .. //depot/projects/uart/netinet6/nd6.c#12 integrate .. //depot/projects/uart/netinet6/nd6_rtr.c#9 integrate .. //depot/projects/uart/netipsec/ipsec.c#9 integrate .. //depot/projects/uart/netipsec/ipsec.h#6 integrate .. //depot/projects/uart/netipsec/ipsec_mbuf.c#5 integrate .. //depot/projects/uart/netipsec/key.c#7 integrate .. //depot/projects/uart/netipsec/key_var.h#3 integrate .. //depot/projects/uart/netipsec/keydb.h#6 integrate .. //depot/projects/uart/netipsec/xform_ah.c#6 integrate .. //depot/projects/uart/netipsec/xform_esp.c#7 integrate .. //depot/projects/uart/netipsec/xform_ipcomp.c#7 integrate .. //depot/projects/uart/netipsec/xform_tcp.c#3 integrate .. //depot/projects/uart/netipx/README#5 integrate .. //depot/projects/uart/netipx/ipx_input.c#8 integrate .. //depot/projects/uart/netipx/ipx_ip.c#6 integrate .. //depot/projects/uart/netipx/ipx_pcb.c#5 integrate .. //depot/projects/uart/netipx/ipx_pcb.h#4 integrate .. //depot/projects/uart/netipx/ipx_usrreq.c#6 integrate .. //depot/projects/uart/netipx/spx_usrreq.c#10 integrate .. //depot/projects/uart/netnatm/natm.c#8 integrate .. //depot/projects/uart/nfsclient/nfs_diskless.c#7 integrate .. //depot/projects/uart/nfsclient/nfs_socket.c#10 integrate .. //depot/projects/uart/pc98/pc98/machdep.c#6 integrate .. //depot/projects/uart/pci/if_rlreg.h#15 integrate .. //depot/projects/uart/security/audit/audit.c#4 integrate .. //depot/projects/uart/security/audit/audit.h#2 integrate .. //depot/projects/uart/security/audit/audit_arg.c#2 integrate .. //depot/projects/uart/security/audit/audit_bsm.c#3 integrate .. //depot/projects/uart/security/audit/audit_bsm_klib.c#2 integrate .. //depot/projects/uart/security/audit/audit_ioctl.h#1 branch .. //depot/projects/uart/security/audit/audit_pipe.c#3 integrate .. //depot/projects/uart/security/audit/audit_private.h#3 integrate .. //depot/projects/uart/security/audit/audit_syscalls.c#2 integrate .. //depot/projects/uart/security/audit/audit_trigger.c#2 integrate .. //depot/projects/uart/security/audit/audit_worker.c#1 branch .. //depot/projects/uart/sys/aio.h#4 integrate .. //depot/projects/uart/sys/cdefs.h#12 integrate .. //depot/projects/uart/sys/clock.h#2 integrate .. //depot/projects/uart/sys/event.h#7 integrate .. //depot/projects/uart/sys/hash.h#1 branch .. //depot/projects/uart/sys/linker.h#4 integrate .. //depot/projects/uart/sys/mbuf.h#12 integrate .. //depot/projects/uart/sys/md5.h#5 integrate .. //depot/projects/uart/sys/param.h#23 integrate .. //depot/projects/uart/sys/pmc.h#4 integrate .. //depot/projects/uart/sys/pmckern.h#3 integrate .. //depot/projects/uart/sys/pmclog.h#2 integrate .. //depot/projects/uart/sys/proc.h#22 integrate .. //depot/projects/uart/sys/protosw.h#7 integrate .. //depot/projects/uart/sys/socketvar.h#10 integrate .. //depot/projects/uart/sys/syscall.h#15 integrate .. //depot/projects/uart/sys/syscall.mk#15 integrate .. //depot/projects/uart/sys/sysproto.h#15 integrate .. //depot/projects/uart/ufs/ffs/ffs_snapshot.c#13 integrate .. //depot/projects/uart/ufs/ffs/ffs_vfsops.c#18 integrate .. //depot/projects/uart/ufs/ufs/ufs_vnops.c#15 integrate .. //depot/projects/uart/vm/vm_mmap.c#13 integrate Differences ... ==== //depot/projects/uart/Makefile#5 (text+ko) ==== @@ -1,7 +1,9 @@ -# $FreeBSD: src/sys/Makefile,v 1.34 2006/01/10 20:58:27 rees Exp $ +# $FreeBSD: src/sys/Makefile,v 1.35 2006/03/17 18:54:34 ru Exp $ + +.include # The boot loader -.if !defined(NO_BOOT) +.if ${MK_BOOT} != "no" .if ${MACHINE_ARCH} != "arm" SUBDIR= boot .endif ==== //depot/projects/uart/alpha/linux/linux_dummy.c#4 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/linux/linux_dummy.c,v 1.38 2004/03/29 02:19:43 bms Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/linux/linux_dummy.c,v 1.39 2006/03/21 21:08:02 netchild Exp $"); #include #include @@ -72,11 +72,8 @@ DUMMY(pciconfig_read); DUMMY(pciconfig_write); DUMMY(pivot_root); -DUMMY(recvmsg); -DUMMY(sendmsg); DUMMY(sethae); DUMMY(sigaltstack); DUMMY(sigpending); -DUMMY(socketpair); DUMMY(utimes); ==== //depot/projects/uart/alpha/linux/linux_proto.h#7 (text+ko) ==== @@ -2,8 +2,8 @@ * System call prototypes. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/alpha/linux/linux_proto.h,v 1.24 2006/02/06 01:16:00 rwatson Exp $ - * created from FreeBSD: src/sys/alpha/linux/syscalls.master,v 1.66 2006/02/06 01:13:47 rwatson Exp + * $FreeBSD: src/sys/alpha/linux/linux_proto.h,v 1.27 2006/03/20 19:48:02 netchild Exp $ + * created from FreeBSD: src/sys/alpha/linux/syscalls.master,v 1.69 2006/03/20 19:46:56 netchild Exp */ #ifndef _LINUX_SYSPROTO_H_ @@ -170,6 +170,10 @@ struct linux_gethostname_args { register_t dummy; }; +struct linux_sethostname_args { + char hostname_l_[PADL_(char *)]; char * hostname; char hostname_r_[PADR_(char *)]; + char len_l_[PADL_(u_int)]; u_int len; char len_r_[PADR_(u_int)]; +}; struct linux_getdtablesize_args { register_t dummy; }; @@ -199,10 +203,22 @@ char name_l_[PADL_(struct l_sockaddr *)]; struct l_sockaddr * name; char name_r_[PADR_(struct l_sockaddr *)]; char namelen_l_[PADL_(l_int)]; l_int namelen; char namelen_r_[PADR_(l_int)]; }; +struct linux_accept_args { + char s_l_[PADL_(l_int)]; l_int s; char s_r_[PADR_(l_int)]; + char args_l_[PADL_(struct linux_accept_args *)]; struct linux_accept_args * args; char args_r_[PADR_(struct linux_accept_args *)]; +}; struct linux_getpriority_args { char which_l_[PADL_(int)]; int which; char which_r_[PADR_(int)]; char who_l_[PADL_(int)]; int who; char who_r_[PADR_(int)]; }; +struct linux_send_args { + char s_l_[PADL_(l_int)]; l_int s; char s_r_[PADR_(l_int)]; + char args_l_[PADL_(struct linux_send_args *)]; struct linux_send_args * args; char args_r_[PADR_(struct linux_send_args *)]; +}; +struct linux_recv_args { + char s_l_[PADL_(l_int)]; l_int s; char s_r_[PADR_(l_int)]; + char args_l_[PADL_(struct linux_recv_args *)]; struct linux_recv_args * args; char args_r_[PADR_(struct linux_recv_args *)]; +}; struct osf1_sigreturn_args { char sigcntxp_l_[PADL_(struct osigcontext *)]; struct osigcontext * sigcntxp; char sigcntxp_r_[PADR_(struct osigcontext *)]; }; @@ -223,6 +239,10 @@ char who_l_[PADL_(long)]; long who; char who_r_[PADR_(long)]; char rusage_l_[PADL_(void *)]; void * rusage; char rusage_r_[PADR_(void *)]; }; +struct linux_recvfrom_args { + char s_l_[PADL_(l_int)]; l_int s; char s_r_[PADR_(l_int)]; + char args_l_[PADL_(struct linux_recvfrom_args *)]; struct linux_recvfrom_args * args; char args_r_[PADR_(struct linux_recvfrom_args *)]; +}; struct linux_rename_args { char from_l_[PADL_(char *)]; char * from; char from_r_[PADR_(char *)]; char to_l_[PADL_(char *)]; char * to; char to_r_[PADR_(char *)]; @@ -231,6 +251,10 @@ char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)]; char length_l_[PADL_(l_ulong)]; l_ulong length; char length_r_[PADR_(l_ulong)]; }; +struct linux_ftruncate_args { + char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; + char length_l_[PADL_(long)]; long length; char length_r_[PADR_(long)]; +}; struct osf1_sendto_args { char s_l_[PADL_(int)]; int s; char s_r_[PADR_(int)]; char buf_l_[PADL_(caddr_t)]; caddr_t buf; char buf_r_[PADR_(caddr_t)]; @@ -249,6 +273,10 @@ struct linux_rmdir_args { char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)]; }; +struct linux_getpeername_args { + char s_l_[PADL_(l_int)]; l_int s; char s_r_[PADR_(l_int)]; + char args_l_[PADL_(struct linux_getpeername_args *)]; struct linux_getpeername_args * args; char args_r_[PADR_(struct linux_getpeername_args *)]; +}; struct linux_getrlimit_args { char resource_l_[PADL_(l_uint)]; l_uint resource; char resource_r_[PADR_(l_uint)]; char rlim_l_[PADL_(struct l_rlimit *)]; struct l_rlimit * rlim; char rlim_r_[PADR_(struct l_rlimit *)]; @@ -260,6 +288,10 @@ struct linux_quotactl_args { register_t dummy; }; +struct linux_getsockname_args { + char s_l_[PADL_(l_int)]; l_int s; char s_r_[PADR_(l_int)]; + char args_l_[PADL_(struct linux_getsockname_args *)]; struct linux_getsockname_args * args; char args_r_[PADR_(struct linux_getsockname_args *)]; +}; struct osf1_sigaction_args { char sig_l_[PADL_(int)]; int sig; char sig_r_[PADR_(int)]; char nsa_l_[PADL_(struct osf1_sigaction *)]; struct osf1_sigaction * nsa; char nsa_r_[PADR_(struct osf1_sigaction *)]; @@ -620,28 +652,36 @@ int linux_getgroups(struct thread *, struct linux_getgroups_args *); int osf1_setitimer(struct thread *, struct osf1_setitimer_args *); int linux_gethostname(struct thread *, struct linux_gethostname_args *); +int linux_sethostname(struct thread *, struct linux_sethostname_args *); int linux_getdtablesize(struct thread *, struct linux_getdtablesize_args *); int linux_newfstat(struct thread *, struct linux_newfstat_args *); int linux_fcntl(struct thread *, struct linux_fcntl_args *); int osf1_select(struct thread *, struct osf1_select_args *); int osf1_socket(struct thread *, struct osf1_socket_args *); int linux_connect(struct thread *, struct linux_connect_args *); +int linux_accept(struct thread *, struct linux_accept_args *); int linux_getpriority(struct thread *, struct linux_getpriority_args *); +int linux_send(struct thread *, struct linux_send_args *); +int linux_recv(struct thread *, struct linux_recv_args *); int osf1_sigreturn(struct thread *, struct osf1_sigreturn_args *); int osf1_sigsuspend(struct thread *, struct osf1_sigsuspend_args *); int linux_recvmsg(struct thread *, struct linux_recvmsg_args *); int linux_sendmsg(struct thread *, struct linux_sendmsg_args *); int osf1_gettimeofday(struct thread *, struct osf1_gettimeofday_args *); int osf1_getrusage(struct thread *, struct osf1_getrusage_args *); +int linux_recvfrom(struct thread *, struct linux_recvfrom_args *); int linux_rename(struct thread *, struct linux_rename_args *); int linux_truncate(struct thread *, struct linux_truncate_args *); +int linux_ftruncate(struct thread *, struct linux_ftruncate_args *); int osf1_sendto(struct thread *, struct osf1_sendto_args *); int linux_socketpair(struct thread *, struct linux_socketpair_args *); int linux_mkdir(struct thread *, struct linux_mkdir_args *); int linux_rmdir(struct thread *, struct linux_rmdir_args *); +int linux_getpeername(struct thread *, struct linux_getpeername_args *); int linux_getrlimit(struct thread *, struct linux_getrlimit_args *); int linux_setrlimit(struct thread *, struct linux_setrlimit_args *); int linux_quotactl(struct thread *, struct linux_quotactl_args *); +int linux_getsockname(struct thread *, struct linux_getsockname_args *); int osf1_sigaction(struct thread *, struct osf1_sigaction_args *); int linux_msgctl(struct thread *, struct linux_msgctl_args *); int linux_msgget(struct thread *, struct linux_msgget_args *); ==== //depot/projects/uart/alpha/linux/linux_syscall.h#7 (text+ko) ==== @@ -2,8 +2,8 @@ * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/alpha/linux/linux_syscall.h,v 1.22 2006/02/06 01:16:00 rwatson Exp $ - * created from FreeBSD: src/sys/alpha/linux/syscalls.master,v 1.66 2006/02/06 01:13:47 rwatson Exp + * $FreeBSD: src/sys/alpha/linux/linux_syscall.h,v 1.25 2006/03/20 19:48:02 netchild Exp $ + * created from FreeBSD: src/sys/alpha/linux/syscalls.master,v 1.69 2006/03/20 19:46:56 netchild Exp */ #define LINUX_SYS_exit 1 @@ -57,7 +57,7 @@ #define LINUX_SYS_linux_getgroups 80 #define LINUX_SYS_osf1_setitimer 83 #define LINUX_SYS_linux_gethostname 87 -#define LINUX_SYS_osethostname 88 +#define LINUX_SYS_linux_sethostname 88 #define LINUX_SYS_linux_getdtablesize 89 #define LINUX_SYS_dup2 90 #define LINUX_SYS_linux_newfstat 91 @@ -68,10 +68,10 @@ #define LINUX_SYS_setpriority 96 #define LINUX_SYS_osf1_socket 97 #define LINUX_SYS_linux_connect 98 -#define LINUX_SYS_accept 99 +#define LINUX_SYS_linux_accept 99 #define LINUX_SYS_linux_getpriority 100 -#define LINUX_SYS_osend 101 -#define LINUX_SYS_orecv 102 +#define LINUX_SYS_linux_send 101 +#define LINUX_SYS_linux_recv 102 #define LINUX_SYS_osf1_sigreturn 103 #define LINUX_SYS_bind 104 #define LINUX_SYS_setsockopt 105 @@ -86,12 +86,12 @@ #define LINUX_SYS_writev 121 #define LINUX_SYS_fchown 123 #define LINUX_SYS_fchmod 124 -#define LINUX_SYS_recvfrom 125 +#define LINUX_SYS_linux_recvfrom 125 #define LINUX_SYS_setreuid 126 #define LINUX_SYS_setregid 127 #define LINUX_SYS_linux_rename 128 #define LINUX_SYS_linux_truncate 129 -#define LINUX_SYS_oftruncate 130 +#define LINUX_SYS_linux_ftruncate 130 #define LINUX_SYS_flock 131 #define LINUX_SYS_setgid 132 #define LINUX_SYS_osf1_sendto 133 @@ -100,12 +100,12 @@ #define LINUX_SYS_linux_mkdir 136 #define LINUX_SYS_linux_rmdir 137 #define LINUX_SYS_utimes 138 -#define LINUX_SYS_ogetpeername 141 +#define LINUX_SYS_linux_getpeername 141 #define LINUX_SYS_linux_getrlimit 144 #define LINUX_SYS_linux_setrlimit 145 #define LINUX_SYS_setsid 147 #define LINUX_SYS_linux_quotactl 148 -#define LINUX_SYS_getsockname 150 +#define LINUX_SYS_linux_getsockname 150 #define LINUX_SYS_osf1_sigaction 156 #define LINUX_SYS_setdomainname 166 #define LINUX_SYS_linux_msgctl 200 ==== //depot/projects/uart/alpha/linux/linux_sysent.c#7 (text+ko) ==== @@ -2,12 +2,11 @@ * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/alpha/linux/linux_sysent.c,v 1.22 2006/02/06 01:16:00 rwatson Exp $ - * created from FreeBSD: src/sys/alpha/linux/syscalls.master,v 1.66 2006/02/06 01:13:47 rwatson Exp + * $FreeBSD: src/sys/alpha/linux/linux_sysent.c,v 1.25 2006/03/20 19:48:02 netchild Exp $ + * created from FreeBSD: src/sys/alpha/linux/syscalls.master,v 1.69 2006/03/20 19:46:56 netchild Exp */ #include -#include "opt_compat.h" #include #include #include @@ -108,7 +107,7 @@ { 0, (sy_call_t *)nosys, AUE_NULL }, /* 85 = */ { 0, (sy_call_t *)nosys, AUE_NULL }, /* 86 = osf_getitimer */ { SYF_MPSAFE | 0, (sy_call_t *)linux_gethostname, AUE_SYSCTL }, /* 87 = linux_gethostname */ - { SYF_MPSAFE | AS(sethostname_args), (sy_call_t *)osethostname, AUE_SYSCTL }, /* 88 = osethostname */ + { SYF_MPSAFE | AS(linux_sethostname_args), (sy_call_t *)linux_sethostname, AUE_SYSCTL }, /* 88 = linux_sethostname */ { SYF_MPSAFE | 0, (sy_call_t *)linux_getdtablesize, AUE_GETDTABLESIZE }, /* 89 = linux_getdtablesize */ { SYF_MPSAFE | AS(dup2_args), (sy_call_t *)dup2, AUE_DUP2 }, /* 90 = dup2 */ { SYF_MPSAFE | AS(linux_newfstat_args), (sy_call_t *)linux_newfstat, AUE_FSTAT }, /* 91 = linux_newfstat */ @@ -119,10 +118,10 @@ { SYF_MPSAFE | AS(setpriority_args), (sy_call_t *)setpriority, AUE_SETPRIORITY }, /* 96 = setpriority */ { SYF_MPSAFE | AS(osf1_socket_args), (sy_call_t *)osf1_socket, AUE_SOCKET }, /* 97 = osf1_socket */ { SYF_MPSAFE | AS(linux_connect_args), (sy_call_t *)linux_connect, AUE_CONNECT }, /* 98 = linux_connect */ - { SYF_MPSAFE | AS(accept_args), (sy_call_t *)oaccept, AUE_ACCEPT }, /* 99 = accept */ + { SYF_MPSAFE | AS(linux_accept_args), (sy_call_t *)linux_accept, AUE_ACCEPT }, /* 99 = linux_accept */ { SYF_MPSAFE | AS(linux_getpriority_args), (sy_call_t *)linux_getpriority, AUE_GETPRIORITY }, /* 100 = linux_getpriority */ - { SYF_MPSAFE | AS(osend_args), (sy_call_t *)osend, AUE_SEND }, /* 101 = osend */ - { SYF_MPSAFE | AS(orecv_args), (sy_call_t *)orecv, AUE_RECV }, /* 102 = orecv */ + { SYF_MPSAFE | AS(linux_send_args), (sy_call_t *)linux_send, AUE_SEND }, /* 101 = linux_send */ + { SYF_MPSAFE | AS(linux_recv_args), (sy_call_t *)linux_recv, AUE_RECV }, /* 102 = linux_recv */ { SYF_MPSAFE | AS(osf1_sigreturn_args), (sy_call_t *)osf1_sigreturn, AUE_NULL }, /* 103 = osf1_sigreturn */ { SYF_MPSAFE | AS(bind_args), (sy_call_t *)bind, AUE_BIND }, /* 104 = bind */ { SYF_MPSAFE | AS(setsockopt_args), (sy_call_t *)setsockopt, AUE_SETSOCKOPT }, /* 105 = setsockopt */ @@ -145,12 +144,12 @@ { 0, (sy_call_t *)nosys, AUE_NULL }, /* 122 = osf_settimeofday */ { AS(fchown_args), (sy_call_t *)fchown, AUE_FCHOWN }, /* 123 = fchown */ { AS(fchmod_args), (sy_call_t *)fchmod, AUE_FCHMOD }, /* 124 = fchmod */ - { AS(recvfrom_args), (sy_call_t *)orecvfrom, AUE_RECVFROM }, /* 125 = recvfrom */ + { SYF_MPSAFE | AS(linux_recvfrom_args), (sy_call_t *)linux_recvfrom, AUE_RECVFROM }, /* 125 = linux_recvfrom */ { SYF_MPSAFE | AS(setreuid_args), (sy_call_t *)setreuid, AUE_SETREUID }, /* 126 = setreuid */ { SYF_MPSAFE | AS(setregid_args), (sy_call_t *)setregid, AUE_SETREGID }, /* 127 = setregid */ { SYF_MPSAFE | AS(linux_rename_args), (sy_call_t *)linux_rename, AUE_RENAME }, /* 128 = linux_rename */ { SYF_MPSAFE | AS(linux_truncate_args), (sy_call_t *)linux_truncate, AUE_TRUNCATE }, /* 129 = linux_truncate */ - { SYF_MPSAFE | AS(oftruncate_args), (sy_call_t *)oftruncate, AUE_FTRUNCATE }, /* 130 = oftruncate */ + { SYF_MPSAFE | AS(linux_ftruncate_args), (sy_call_t *)linux_ftruncate, AUE_FTRUNCATE }, /* 130 = linux_ftruncate */ { SYF_MPSAFE | AS(flock_args), (sy_call_t *)flock, AUE_FLOCK }, /* 131 = flock */ { SYF_MPSAFE | AS(setgid_args), (sy_call_t *)setgid, AUE_SETGID }, /* 132 = setgid */ { SYF_MPSAFE | AS(osf1_sendto_args), (sy_call_t *)osf1_sendto, AUE_SENDTO }, /* 133 = osf1_sendto */ @@ -161,7 +160,7 @@ { SYF_MPSAFE | AS(utimes_args), (sy_call_t *)utimes, AUE_UTIMES }, /* 138 = utimes */ { 0, (sy_call_t *)nosys, AUE_NULL }, /* 139 = */ { 0, (sy_call_t *)nosys, AUE_NULL }, /* 140 = */ - { SYF_MPSAFE | AS(ogetpeername_args), (sy_call_t *)ogetpeername, AUE_GETPEERNAME }, /* 141 = ogetpeername */ + { SYF_MPSAFE | AS(linux_getpeername_args), (sy_call_t *)linux_getpeername, AUE_GETPEERNAME }, /* 141 = linux_getpeername */ { 0, (sy_call_t *)nosys, AUE_NULL }, /* 142 = */ { 0, (sy_call_t *)nosys, AUE_NULL }, /* 143 = */ { SYF_MPSAFE | AS(linux_getrlimit_args), (sy_call_t *)linux_getrlimit, AUE_GETRLIMIT }, /* 144 = linux_getrlimit */ @@ -170,7 +169,7 @@ { SYF_MPSAFE | 0, (sy_call_t *)setsid, AUE_SETSID }, /* 147 = setsid */ { SYF_MPSAFE | 0, (sy_call_t *)linux_quotactl, AUE_QUOTACTL }, /* 148 = linux_quotactl */ { 0, (sy_call_t *)nosys, AUE_NULL }, /* 149 = */ - { SYF_MPSAFE | AS(getsockname_args), (sy_call_t *)ogetsockname, AUE_GETSOCKNAME }, /* 150 = getsockname */ + { SYF_MPSAFE | AS(linux_getsockname_args), (sy_call_t *)linux_getsockname, AUE_GETSOCKNAME }, /* 150 = linux_getsockname */ { 0, (sy_call_t *)nosys, AUE_NULL }, /* 151 = */ { 0, (sy_call_t *)nosys, AUE_NULL }, /* 152 = */ { 0, (sy_call_t *)nosys, AUE_NULL }, /* 153 = */ ==== //depot/projects/uart/alpha/linux/linux_sysvec.c#9 (text+ko) ==== @@ -27,14 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/linux/linux_sysvec.c,v 1.98 2005/12/26 21:23:56 sobomax Exp $"); - -/* XXX we use functions that might not exist. */ -#include "opt_compat.h" - -#ifndef COMPAT_43 -#error "Unable to compile Linux-emulator due to missing COMPAT_43 option!" -#endif +__FBSDID("$FreeBSD: src/sys/alpha/linux/linux_sysvec.c,v 1.99 2006/03/18 18:24:38 netchild Exp $"); #include #include ==== //depot/projects/uart/alpha/linux/syscalls.master#7 (text+ko) ==== @@ -1,4 +1,4 @@ - $FreeBSD: src/sys/alpha/linux/syscalls.master,v 1.66 2006/02/06 01:13:47 rwatson Exp $ + $FreeBSD: src/sys/alpha/linux/syscalls.master,v 1.69 2006/03/20 19:46:56 netchild Exp $ ; @(#)syscalls.master 8.1 (Berkeley) 7/19/93 ; System call name/number master file (or rather, slave, from LINUX). @@ -11,8 +11,7 @@ ; there is no audit event for the call at this time. For the ; case where the event exists, but we don't want auditing, the ; event should be #defined to AUE_NULL in audit_kevents.h. -; type one of STD, OBSOL, UNIMPL, COMPAT, CPT_NOA, LIBCOMPAT, -; NODEF, NOARGS, NOPROTO +; type one of STD, OBSOL, UNIMPL, NODEF, NOARGS, NOPROTO ; name psuedo-prototype of syscall routine ; If one of the following alts is different, then all appear: ; altname name of system call if different @@ -22,9 +21,6 @@ ; types: ; STD always included -; COMPAT included on COMPAT #ifdef -; CPT_NOA combines COMPAT with NOARGS -; LIBCOMPAT included on COMPAT #ifdef, and placed in syscall.h ; NOARGS same as STD except do not create structure in sys/sysproto.h ; NODEF ?? ; NOPROTO same as STD except do not create structure or function in @@ -32,7 +28,6 @@ ; OBSOL obsolete, not included in system, only specifies name ; UNIMPL not implemented, placeholder only -#include "opt_compat.h" #include #include #include @@ -158,9 +153,7 @@ 85 AUE_NULL UNIMPL 86 AUE_GETITIMER UNIMPL osf_getitimer 87 AUE_SYSCTL MSTD { int linux_gethostname(void); } -88 AUE_SYSCTL MNOPROTO { int osethostname(char *hostname, \ - u_int len); } osethostname \ - sethostname_args int +88 AUE_SYSCTL MSTD { int linux_sethostname(char *hostname, u_int len); } 89 AUE_GETDTABLESIZE MSTD { int linux_getdtablesize(void); } 90 AUE_DUP2 MNOPROTO { int dup2(u_int from, u_int to); } 91 AUE_FSTAT MSTD { int linux_newfstat(l_uint fd, \ @@ -179,13 +172,13 @@ int protocol); } 98 AUE_CONNECT MSTD { int linux_connect(l_int s, \ struct l_sockaddr *name, l_int namelen); } -99 AUE_ACCEPT MNOPROTO { int oaccept(int s, caddr_t name, \ - int *anamelen); } accept accept_args int +99 AUE_ACCEPT MSTD { int linux_accept(l_int s, \ + struct linux_accept_args *args); } 100 AUE_GETPRIORITY MSTD { int linux_getpriority(int which, int who); } -101 AUE_SEND MNOPROTO { int osend(int s, caddr_t buf, int len, \ - int flags); } -102 AUE_RECV MNOPROTO { int orecv(int s, caddr_t buf, int len, \ - int flags); } +101 AUE_SEND MSTD { int linux_send(l_int s, \ + struct linux_send_args *args); } +102 AUE_RECV MSTD { int linux_recv(l_int s, \ + struct linux_recv_args *args); } 103 AUE_NULL MSTD { int osf1_sigreturn( \ struct osigcontext *sigcntxp); } 104 AUE_BIND MNOPROTO { int bind(int s, caddr_t name, \ @@ -217,16 +210,14 @@ 122 AUE_SETTIMEOFDAY UNIMPL osf_settimeofday 123 AUE_FCHOWN NOPROTO { int fchown(int fd, int uid, int gid); } 124 AUE_FCHMOD NOPROTO { int fchmod(int fd, int mode); } -125 AUE_RECVFROM NOPROTO { int orecvfrom(int s, caddr_t buf, \ - size_t len, int flags, caddr_t from, \ - int *fromlenaddr); } recvfrom \ - recvfrom_args int +125 AUE_RECVFROM MSTD { int linux_recvfrom(l_int s, \ + struct linux_recvfrom_args *args); } 126 AUE_SETREUID MNOPROTO { int setreuid(int ruid, int euid); } 127 AUE_SETREGID MNOPROTO { int setregid(int rgid, int egid); } 128 AUE_RENAME MSTD { int linux_rename(char *from, char *to); } 129 AUE_TRUNCATE MSTD { int linux_truncate(char *path, \ l_ulong length); } -130 AUE_FTRUNCATE MNOPROTO { int oftruncate(int fd, long length); } +130 AUE_FTRUNCATE MSTD { int linux_ftruncate(int fd, long length); } 131 AUE_FLOCK MNOPROTO { int flock(int fd, int how); } 132 AUE_SETGID MNOPROTO { int setgid(gid_t gid); } 133 AUE_SENDTO MSTD { int osf1_sendto(int s, caddr_t buf, \ @@ -240,8 +231,8 @@ struct timeval *tptr); } 139 AUE_NULL UNIMPL 140 AUE_NULL UNIMPL -141 AUE_GETPEERNAME MNOPROTO { int ogetpeername(int fdes, caddr_t asa, \ - int *alen); } +141 AUE_GETPEERNAME MSTD { int linux_getpeername(l_int s, \ + struct linux_getpeername_args *args); } 142 AUE_NULL UNIMPL 143 AUE_NULL UNIMPL 144 AUE_GETRLIMIT MSTD { int linux_getrlimit(l_uint resource, \ @@ -252,9 +243,8 @@ 147 AUE_SETSID MNOPROTO { int setsid(void); } 148 AUE_QUOTACTL MSTD { int linux_quotactl(void); } 149 AUE_NULL UNIMPL -150 AUE_GETSOCKNAME MNOPROTO { int ogetsockname(int fdec, caddr_t asa, \ - int *alen);} getsockname \ - getsockname_args int +150 AUE_GETSOCKNAME MSTD { int linux_getsockname(l_int s, \ + struct linux_getsockname_args *args);} 151 AUE_NULL UNIMPL 152 AUE_NULL UNIMPL 153 AUE_NULL UNIMPL ==== //depot/projects/uart/amd64/amd64/apic_vector.S#6 (text+ko) ==== @@ -28,7 +28,7 @@ * SUCH DAMAGE. * * from: vector.s, 386BSD 0.1 unknown origin - * $FreeBSD: src/sys/amd64/amd64/apic_vector.S,v 1.107 2005/12/14 21:47:01 jhb Exp $ + * $FreeBSD: src/sys/amd64/amd64/apic_vector.S,v 1.108 2006/03/13 23:55:31 peter Exp $ */ /* @@ -188,11 +188,7 @@ jmp doreti /* - * Executed by a CPU when it receives an Xcpustop IPI from another CPU, - * - * - Signals its receipt. - * - Waits for permission to restart. - * - Signals its restart. + * Executed by a CPU when it receives an IPI_STOP from another CPU. */ .text SUPERALIGN_TEXT ==== //depot/projects/uart/amd64/amd64/db_trace.c#10 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/db_trace.c,v 1.73 2005/12/27 23:23:47 pjd Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/db_trace.c,v 1.74 2006/03/13 23:56:44 peter Exp $"); #include #include @@ -192,6 +192,7 @@ #define TRAP 1 #define INTERRUPT 2 #define SYSCALL 3 +#define TRAP_INTERRUPT 5 static void db_nextframe(struct amd64_frame **, db_addr_t *, struct thread *); static int db_numargs(struct amd64_frame *); @@ -326,6 +327,12 @@ frame_type = INTERRUPT; else if (strcmp(name, "Xfast_syscall") == 0) frame_type = SYSCALL; + /* XXX: These are interrupts with trap frames. */ + else if (strcmp(name, "Xtimerint") == 0 || + strcmp(name, "Xcpustop") == 0 || + strcmp(name, "Xrendezvous") == 0 || + strcmp(name, "Xipi_intr_bitmap_handler") == 0) + frame_type = TRAP_INTERRUPT; } /* @@ -357,6 +364,7 @@ db_printf("--- syscall"); decode_syscall(tf->tf_rax, td); break; + case TRAP_INTERRUPT: case INTERRUPT: db_printf("--- interrupt"); break; ==== //depot/projects/uart/amd64/amd64/io_apic.c#7 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.21 2006/02/28 22:24:54 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.23 2006/03/20 19:39:07 jhb Exp $"); #include "opt_atpic.h" #include "opt_isa.h" @@ -73,6 +73,10 @@ * IRQs behave as PCI IRQs by default. We also assume that the pin for * IRQ 0 is actually an ExtINT pin. The apic enumerators override the * configuration of individual pins as indicated by their tables. + * + * Documentation for the I/O APIC: "82093AA I/O Advanced Programmable + * Interrupt Controller (IOAPIC)", May 1996, Intel Corp. + * ftp://download.intel.com/design/chipsets/datashts/29056601.pdf */ struct ioapic_intsrc { @@ -443,7 +447,7 @@ uint32_t value; /* Map the register window so we can access the device. */ - apic = (ioapic_t *)pmap_mapdev(addr, IOAPIC_MEM_REGION); + apic = pmap_mapdev(addr, IOAPIC_MEM_REGION); mtx_lock_spin(&icu_lock); value = ioapic_read(apic, IOAPIC_VER); mtx_unlock_spin(&icu_lock); ==== //depot/projects/uart/amd64/amd64/local_apic.c#9 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.24 2006/02/28 22:24:54 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.25 2006/03/20 19:39:07 jhb Exp $"); #include "opt_hwpmc_hooks.h" @@ -208,7 +208,7 @@ /* Map the local APIC and setup the spurious interrupt handler. */ KASSERT(trunc_page(addr) == addr, ("local APIC not aligned on a page boundary")); - lapic = (lapic_t *)pmap_mapdev(addr, sizeof(lapic_t)); + lapic = pmap_mapdev(addr, sizeof(lapic_t)); setidt(APIC_SPURIOUS_INT, IDTVEC(spuriousint), SDT_SYSIGT, SEL_KPL, 0); /* Perform basic initialization of the BSP's local APIC. */ ==== //depot/projects/uart/amd64/amd64/machdep.c#18 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.646 2006/02/03 02:49:14 davidxu Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.648 2006/03/14 16:13:54 jhb Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -247,8 +247,8 @@ struct sigacts *psp; char *sp; struct trapframe *regs; + int sig; int oonstack; - int sig; td = curthread; p = td->td_proc; @@ -1749,8 +1749,7 @@ * could halt the system by setting a breakpoint in the kernel * (if ddb was enabled). Thus, we need to check to make sure * that no breakpoints are being enabled for addresses outside - * process's address space, unless, perhaps, we were called by - * uid 0. + * process's address space. * * XXX - what about when the watched area of the user's * address space is written into from within the kernel @@ -1758,27 +1757,25 @@ * from within kernel mode? */ - if (suser(td) != 0) { - if (dbregs->dr[7] & 0x3) { - /* dr0 is enabled */ - if (dbregs->dr[0] >= VM_MAXUSER_ADDRESS) - return (EINVAL); - } - if (dbregs->dr[7] & 0x3<<2) { - /* dr1 is enabled */ - if (dbregs->dr[1] >= VM_MAXUSER_ADDRESS) - return (EINVAL); - } - if (dbregs->dr[7] & 0x3<<4) { - /* dr2 is enabled */ - if (dbregs->dr[2] >= VM_MAXUSER_ADDRESS) - return (EINVAL); - } - if (dbregs->dr[7] & 0x3<<6) { - /* dr3 is enabled */ - if (dbregs->dr[3] >= VM_MAXUSER_ADDRESS) - return (EINVAL); - } + if (dbregs->dr[7] & 0x3) { + /* dr0 is enabled */ + if (dbregs->dr[0] >= VM_MAXUSER_ADDRESS) + return (EINVAL); + } + if (dbregs->dr[7] & 0x3<<2) { + /* dr1 is enabled */ + if (dbregs->dr[1] >= VM_MAXUSER_ADDRESS) + return (EINVAL); + } + if (dbregs->dr[7] & 0x3<<4) { + /* dr2 is enabled */ + if (dbregs->dr[2] >= VM_MAXUSER_ADDRESS) + return (EINVAL); + } + if (dbregs->dr[7] & 0x3<<6) { + /* dr3 is enabled */ + if (dbregs->dr[3] >= VM_MAXUSER_ADDRESS) + return (EINVAL); } pcb->pcb_dr0 = dbregs->dr[0]; ==== //depot/projects/uart/amd64/amd64/mp_machdep.c#12 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.270 2006/03/09 16:38:52 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.271 2006/03/18 19:32:46 ups Exp $"); #include "opt_cpu.h" #include "opt_kstack_pages.h" @@ -561,6 +561,13 @@ smp_active = 1; /* historic */ } + /* + * Enable global pages TLB extension + * This also implicitly flushes the TLB + */ + + load_cr4(rcr4() | CR4_PGE); + mtx_unlock_spin(&ap_boot_mtx); /* wait until all the AP's are up */ ==== //depot/projects/uart/amd64/amd64/pmap.c#27 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.536 2006/02/03 00:16:36 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.539 2006/03/21 18:07:41 alc Exp $"); /* * Manages physical address maps. @@ -1360,7 +1360,7 @@ return sysctl_handle_long(oidp, &ksize, 0, req); } SYSCTL_PROC(_vm, OID_AUTO, kvm_size, CTLTYPE_LONG|CTLFLAG_RD, - 0, 0, kvm_size, "IU", "Size of KVM"); + 0, 0, kvm_size, "LU", "Size of KVM"); static int kvm_free(SYSCTL_HANDLER_ARGS) @@ -1370,7 +1370,7 @@ return sysctl_handle_long(oidp, &kfree, 0, req); } SYSCTL_PROC(_vm, OID_AUTO, kvm_free, CTLTYPE_LONG|CTLFLAG_RD, - 0, 0, kvm_free, "IU", "Amount of KVM free"); + 0, 0, kvm_free, "LU", "Amount of KVM free"); /* * grow the number of kernel page table entries, if needed @@ -1731,7 +1731,13 @@ sva += PAGE_SIZE) { if (*pte == 0) continue; - anyvalid = 1; + + /* + * The TLB entry for a PG_G mapping is invalidated + * by pmap_remove_pte(). + */ + if ((*pte & PG_G) == 0) + anyvalid = 1; if (pmap_remove_pte(pmap, pte, sva, ptpaddr)) break; } @@ -2988,7 +2994,6 @@ void pmap_activate(struct thread *td) { - struct proc *p = td->td_proc; pmap_t pmap, oldpmap; u_int64_t cr3; @@ -3005,18 +3010,7 @@ pmap->pm_active |= PCPU_GET(cpumask); #endif cr3 = vtophys(pmap->pm_pml4); - /* XXXKSE this is wrong. - * pmap_activate is for the current thread on the current cpu - */ - if (p->p_flag & P_SA) { - /* Make sure all other cr3 entries are updated. */ - /* what if they are running? XXXKSE (maybe abort them) */ - FOREACH_THREAD_IN_PROC(p, td) { - td->td_pcb->pcb_cr3 = cr3; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Mar 26 22:21:30 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F2E0B16A422; Sun, 26 Mar 2006 22:21:29 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id CF69E16A400 for ; Sun, 26 Mar 2006 22:21:29 +0000 (UTC) (envelope-from cognet@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9D2EC43D46 for ; Sun, 26 Mar 2006 22:21:29 +0000 (GMT) (envelope-from cognet@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2QMLTdD047270 for ; Sun, 26 Mar 2006 22:21:29 GMT (envelope-from cognet@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2QMLTmH047267 for perforce@freebsd.org; Sun, 26 Mar 2006 22:21:29 GMT (envelope-from cognet@freebsd.org) Date: Sun, 26 Mar 2006 22:21:29 GMT Message-Id: <200603262221.k2QMLTmH047267@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to cognet@freebsd.org using -f From: Olivier Houchard To: Perforce Change Reviews Cc: Subject: PERFORCE change 94088 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Mar 2006 22:21:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=94088 Change 94088 by cognet@cognet on 2006/03/26 22:21:19 Try to workaround the panic in pmap_remove_pages() by not attempting to do anything if the pt has already been cleared. This should not happen, so this is by no mean a fix, just a temporary bandaid until I figure out how it happens. Affected files ... .. //depot/projects/arm/src/sys/arm/arm/pmap.c#13 edit Differences ... ==== //depot/projects/arm/src/sys/arm/arm/pmap.c#13 (text+ko) ==== @@ -2833,6 +2833,12 @@ l2b = pmap_get_l2_bucket(pmap, pv->pv_va); KASSERT(l2b != NULL, ("No L2 bucket in pmap_remove_pages")); pt = &l2b->l2b_kva[l2pte_index(pv->pv_va)]; + if ((*pt & L2_ADDR_MASK) == 0) { + npv = TAILQ_NEXT(pv, pv_plist); + TAILQ_REMOVE(&pmap->pm_pvlist, pv, pv_plist); + pmap_free_pv_entry(pv); + continue; + } m = PHYS_TO_VM_PAGE(*pt & L2_ADDR_MASK); *pt = 0; PTE_SYNC(pt); From owner-p4-projects@FreeBSD.ORG Mon Mar 27 13:34:52 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EF24116A426; Mon, 27 Mar 2006 13:34:51 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9804716A401 for ; Mon, 27 Mar 2006 13:34:51 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6C14C43D5F for ; Mon, 27 Mar 2006 13:34:48 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2RDYmFx016566 for ; Mon, 27 Mar 2006 13:34:48 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2RDYmx6016563 for perforce@freebsd.org; Mon, 27 Mar 2006 13:34:48 GMT (envelope-from jhb@freebsd.org) Date: Mon, 27 Mar 2006 13:34:48 GMT Message-Id: <200603271334.k2RDYmx6016563@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 94108 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Mar 2006 13:34:52 -0000 http://perforce.freebsd.org/chv.cgi?CH=94108 Change 94108 by jhb@jhb_tibook on 2006/03/27 13:34:15 Rework linking for the kernel linker. I started by expanding the existing kld_mtx to cover the members of the linker_file objects as well as the list and ended up making it an sx lock that single threads the entire linker. Given that the linker is not used in any critical paths and not used all that often, this is probably sufficent and it's probably not worth it to persue more finely grained locking for the linker. Affected files ... .. //depot/projects/smpng/sys/kern/kern_linker.c#43 edit .. //depot/projects/smpng/sys/kern/link_elf.c#32 edit .. //depot/projects/smpng/sys/kern/link_elf_obj.c#8 edit .. //depot/projects/smpng/sys/notes#68 edit .. //depot/projects/smpng/sys/sys/linker.h#16 edit Differences ... ==== //depot/projects/smpng/sys/kern/kern_linker.c#43 (text+ko) ==== @@ -55,6 +55,10 @@ int kld_debug = 0; #endif +#define KLD_LOCK() do { sx_xlock(&kld_sx); mtx_lock(&Giant); } while (0) +#define KLD_UNLOCK() do { mtx_unlock(&Giant); sx_xunlock(&kld_sx); } while (0) +#define KLD_LOCK_ASSERT() sx_assert(&kld_sx, SX_XLOCKED) + /* * static char *linker_search_path(const char *name, struct mod_depend * *verinfo); @@ -68,7 +72,7 @@ linker_file_t linker_kernel_file; -static struct mtx kld_mtx; /* kernel linker mutex */ +static struct sx kld_sx; /* kernel linker lock */ static linker_class_list_t classes; static linker_file_list_t linker_files; @@ -78,17 +82,15 @@ #define LINKER_GET_NEXT_FILE_ID(a) do { \ linker_file_t lftmp; \ \ + KLD_LOCK_ASSERT(); \ retry: \ - mtx_lock(&kld_mtx); \ TAILQ_FOREACH(lftmp, &linker_files, link) { \ if (next_file_id == lftmp->id) { \ next_file_id++; \ - mtx_unlock(&kld_mtx); \ goto retry; \ } \ } \ (a) = next_file_id; \ - mtx_unlock(&kld_mtx); /* Hold for safe read of id variable */ \ } while(0) @@ -103,8 +105,12 @@ typedef struct modlist *modlist_t; static modlisthead_t found_modules; -static modlist_t modlist_lookup2(const char *name, - struct mod_depend *verinfo); +static int linker_file_add_dependency(linker_file_t file, + linker_file_t dep); +static int linker_load_module_internal(const char *kldname, + const char *modname, struct linker_file *parent, + struct mod_depend *verinfo, struct linker_file **lfpp); +static modlist_t modlist_lookup2(const char *name, struct mod_depend *verinfo); static char * linker_strdup(const char *str) @@ -120,7 +126,7 @@ linker_init(void *arg) { - mtx_init(&kld_mtx, "kernel linker", NULL, MTX_DEF); + sx_init(&kld_sx, "kernel linker"); TAILQ_INIT(&classes); TAILQ_INIT(&linker_files); } @@ -161,7 +167,7 @@ KLD_DPF(FILE, ("linker_file_sysinit: calling SYSINITs for %s\n", lf->filename)); - if (linker_file_lookup_set(lf, "sysinit_set", &start, &stop, NULL) != 0) + if (LINKER_LOOKUP_SET(lf, "sysinit_set", &start, &stop, NULL) != 0) return; /* * Perform a bubble sort of the system initialization objects by @@ -203,8 +209,7 @@ KLD_DPF(FILE, ("linker_file_sysuninit: calling SYSUNINITs for %s\n", lf->filename)); - if (linker_file_lookup_set(lf, "sysuninit_set", &start, &stop, - NULL) != 0) + if (LINKER_LOOKUP_SET(lf, "sysuninit_set", &start, &stop, NULL) != 0) return; /* @@ -248,7 +253,7 @@ ("linker_file_register_sysctls: registering SYSCTLs for %s\n", lf->filename)); - if (linker_file_lookup_set(lf, "sysctl_set", &start, &stop, NULL) != 0) + if (LINKER_LOOKUP_SET(lf, "sysctl_set", &start, &stop, NULL) != 0) return; for (oidp = start; oidp < stop; oidp++) @@ -263,7 +268,7 @@ KLD_DPF(FILE, ("linker_file_unregister_sysctls: registering SYSCTLs" " for %s\n", lf->filename)); - if (linker_file_lookup_set(lf, "sysctl_set", &start, &stop, NULL) != 0) + if (LINKER_LOOKUP_SET(lf, "sysctl_set", &start, &stop, NULL) != 0) return; for (oidp = start; oidp < stop; oidp++) @@ -280,8 +285,8 @@ KLD_DPF(FILE, ("linker_file_register_modules: registering modules" " in %s\n", lf->filename)); - if (linker_file_lookup_set(lf, "modmetadata_set", &start, - &stop, 0) != 0) { + if (LINKER_LOOKUP_SET(lf, "modmetadata_set", &start, &stop, + NULL) != 0) { /* * This fallback should be unnecessary, but if we get booted * from boot2 instead of loader and we are missing our @@ -325,21 +330,21 @@ { linker_class_t lc; linker_file_t lf; - int foundfile, error = 0; + int foundfile, error; /* Refuse to load modules if securelevel raised */ if (securelevel > 0) return (EPERM); + KLD_LOCK_ASSERT(); lf = linker_find_file_by_name(filename); if (lf) { KLD_DPF(FILE, ("linker_load_file: file %s is already loaded," " incrementing refs\n", filename)); *result = lf; lf->refs++; - goto out; + return (0); } - lf = NULL; foundfile = 0; /* @@ -360,15 +365,15 @@ if (lf) { error = linker_file_register_modules(lf); if (error == EEXIST) { - linker_file_unload(lf, LINKER_UNLOAD_FORCE); - goto out; + linker_file_unload_internal(lf, + LINKER_UNLOAD_FORCE); + return (error); } linker_file_register_sysctls(lf); linker_file_sysinit(lf); lf->flags |= LINKER_FILE_LINKED; *result = lf; - error = 0; - goto out; + return (0); } } /* @@ -397,51 +402,51 @@ linker_file_t *result) { modlist_t mod; + int error; + KLD_LOCK(); if ((mod = modlist_lookup2(modname, verinfo)) != NULL) { *result = mod->container; (*result)->refs++; + KLD_UNLOCK(); return (0); } - return (linker_load_module(NULL, modname, NULL, verinfo, result)); + error = linker_load_module_internal(NULL, modname, NULL, verinfo, + result); + KLD_UNLOCK(); + return (error); } linker_file_t linker_find_file_by_name(const char *filename) { - linker_file_t lf = 0; + linker_file_t lf; char *koname; koname = malloc(strlen(filename) + 4, M_LINKER, M_WAITOK); - if (koname == NULL) - goto out; sprintf(koname, "%s.ko", filename); - mtx_lock(&kld_mtx); + KLD_LOCK_ASSERT(); TAILQ_FOREACH(lf, &linker_files, link) { if (strcmp(lf->filename, koname) == 0) break; if (strcmp(lf->filename, filename) == 0) break; } - mtx_unlock(&kld_mtx); -out: - if (koname) - free(koname, M_LINKER); + free(koname, M_LINKER); return (lf); } linker_file_t linker_find_file_by_id(int fileid) { - linker_file_t lf = 0; - - mtx_lock(&kld_mtx); + linker_file_t lf; + + KLD_LOCK_ASSERT(); TAILQ_FOREACH(lf, &linker_files, link) if (lf->id == fileid) break; - mtx_unlock(&kld_mtx); return (lf); } @@ -451,39 +456,47 @@ linker_file_t lf; const char *filename; + KLD_LOCK_ASSERT(); lf = NULL; filename = linker_basename(pathname); KLD_DPF(FILE, ("linker_make_file: new file, filename=%s\n", filename)); lf = (linker_file_t)kobj_create((kobj_class_t)lc, M_LINKER, M_WAITOK); if (lf == NULL) - goto out; + return (NULL); lf->refs = 1; lf->userrefs = 0; lf->flags = 0; lf->filename = linker_strdup(filename); - LINKER_GET_NEXT_FILE_ID(lf->id); lf->ndeps = 0; lf->deps = NULL; STAILQ_INIT(&lf->common); TAILQ_INIT(&lf->modules); - mtx_lock(&kld_mtx); + LINKER_GET_NEXT_FILE_ID(lf->id); TAILQ_INSERT_TAIL(&linker_files, lf, link); - mtx_unlock(&kld_mtx); -out: return (lf); } int linker_file_unload(linker_file_t file, int flags) { + int error; + + KLD_LOCK(); + error = linker_file_unload_internal(file, flags); + KLD_UNLOCK(); + return (error); +} + +/* Not static as it is shared with the linker backends. */ +int +linker_file_unload_internal(linker_file_t file, int flags) +{ module_t mod, next; modlist_t ml, nextml; struct common_symbol *cp; int error, i; - error = 0; - /* Refuse to unload modules if securelevel raised. */ if (securelevel > 0) return (EPERM); @@ -493,6 +506,7 @@ return (error); #endif + KLD_LOCK_ASSERT(); KLD_DPF(FILE, ("linker_file_unload: lf->refs=%d\n", file->refs)); if (file->refs == 1) { KLD_DPF(FILE, ("linker_file_unload: file is unloading," @@ -512,7 +526,7 @@ if ((error = module_unload(mod, flags)) != 0) { KLD_DPF(FILE, ("linker_file_unload: module %p" " vetoes unload\n", mod)); - goto out; + return (error); } else MOD_XLOCK; module_release(mod); @@ -520,9 +534,8 @@ MOD_XUNLOCK; } file->refs--; - if (file->refs > 0) { - goto out; - } + if (file->refs > 0) + return (0); for (ml = TAILQ_FIRST(&found_modules); ml; ml = nextml) { nextml = TAILQ_NEXT(ml, link); if (ml->container == file) { @@ -539,13 +552,11 @@ linker_file_sysuninit(file); linker_file_unregister_sysctls(file); } - mtx_lock(&kld_mtx); TAILQ_REMOVE(&linker_files, file, link); - mtx_unlock(&kld_mtx); if (file->deps) { for (i = 0; i < file->ndeps; i++) - linker_file_unload(file->deps[i], flags); + linker_file_unload_internal(file->deps[i], flags); free(file->deps, M_LINKER); file->deps = NULL; } @@ -561,15 +572,15 @@ file->filename = NULL; } kobj_delete((kobj_t) file, M_LINKER); -out: - return (error); + return (0); } -int +static int linker_file_add_dependency(linker_file_t file, linker_file_t dep) { linker_file_t *newdeps; + KLD_LOCK_ASSERT(); newdeps = malloc((file->ndeps + 1) * sizeof(linker_file_t *), M_LINKER, M_WAITOK | M_ZERO); if (newdeps == NULL) @@ -594,8 +605,12 @@ linker_file_lookup_set(linker_file_t file, const char *name, void *firstp, void *lastp, int *countp) { + int error; - return (LINKER_LOOKUP_SET(file, name, firstp, lastp, countp)); + KLD_LOCK(); + error = LINKER_LOOKUP_SET(file, name, firstp, lastp, countp); + KLD_UNLOCK(); + return (error); } caddr_t @@ -607,6 +622,7 @@ size_t common_size = 0; int i; + KLD_LOCK(); KLD_DPF(SYM, ("linker_file_lookup_symbol: file=%p, name=%s, deps=%d\n", file, name, deps)); @@ -622,6 +638,7 @@ else { KLD_DPF(SYM, ("linker_file_lookup_symbol: symbol" ".value=%p\n", symval.value)); + KLD_UNLOCK(); return (symval.value); } } @@ -632,6 +649,7 @@ if (address) { KLD_DPF(SYM, ("linker_file_lookup_symbol:" " deps value=%p\n", address)); + KLD_UNLOCK(); return (address); } } @@ -648,6 +666,7 @@ if (strcmp(cp->name, name) == 0) { KLD_DPF(SYM, ("linker_file_lookup_symbol:" " old common value=%p\n", cp->address)); + KLD_UNLOCK(); return (cp->address); } } @@ -658,10 +677,6 @@ cp = malloc(sizeof(struct common_symbol) + common_size + strlen(name) + 1, M_LINKER, M_WAITOK | M_ZERO); - if (cp == NULL) { - KLD_DPF(SYM, ("linker_file_lookup_symbol: nomem\n")); - return (0); - } cp->address = (caddr_t)(cp + 1); cp->name = cp->address + common_size; strcpy(cp->name, name); @@ -670,8 +685,10 @@ KLD_DPF(SYM, ("linker_file_lookup_symbol: new common" " value=%p\n", cp->address)); + KLD_UNLOCK(); return (cp->address); } + KLD_UNLOCK(); KLD_DPF(SYM, ("linker_file_lookup_symbol: fail\n")); return (0); } @@ -683,7 +700,7 @@ * * Note that we do not obey list locking protocols here. We really don't need * DDB to hang because somebody's got the lock held. We'll take the chance - * that the files list is inconsistant instead. + * that the files list is inconsistent instead. */ int @@ -781,13 +798,13 @@ modname = pathname; } - mtx_lock(&Giant); - error = linker_load_module(kldname, modname, NULL, NULL, &lf); + KLD_LOCK(); + error = linker_load_module_internal(kldname, modname, NULL, NULL, &lf); if (error == 0) { lf->userrefs++; td->td_retval[0] = lf->id; } - mtx_unlock(&Giant); + KLD_UNLOCK(); out: free(pathname, M_TEMP); return (error); @@ -808,7 +825,7 @@ if ((error = suser(td)) != 0) return (error); - mtx_lock(&Giant); + KLD_LOCK(); lf = linker_find_file_by_id(fileid); if (lf) { KLD_DPF(FILE, ("kldunload: lf->userrefs=%d\n", lf->userrefs)); @@ -821,13 +838,13 @@ error = EBUSY; } else { lf->userrefs--; - error = linker_file_unload(lf, flags); + error = linker_file_unload_internal(lf, flags); if (error) lf->userrefs++; } } else error = ENOENT; - mtx_unlock(&Giant); + KLD_UNLOCK(); return (error); } @@ -878,13 +895,13 @@ goto out; filename = linker_basename(pathname); - mtx_lock(&Giant); + KLD_LOCK(); lf = linker_find_file_by_name(filename); - mtx_unlock(&Giant); - if (lf) + if (lf) { td->td_retval[0] = lf->id; - else + } else error = ENOENT; + KLD_UNLOCK(); out: free(pathname, M_TEMP); return (error); @@ -905,15 +922,12 @@ return (error); #endif - mtx_lock(&Giant); - + KLD_LOCK(); if (uap->fileid == 0) { - mtx_lock(&kld_mtx); if (TAILQ_FIRST(&linker_files)) td->td_retval[0] = TAILQ_FIRST(&linker_files)->id; else td->td_retval[0] = 0; - mtx_unlock(&kld_mtx); goto out; } lf = linker_find_file_by_id(uap->fileid); @@ -925,7 +939,7 @@ } else error = ENOENT; out: - mtx_unlock(&Giant); + KLD_UNLOCK(); return (error); } @@ -935,10 +949,18 @@ int kldstat(struct thread *td, struct kldstat_args *uap) { + struct kld_file_stat stat; linker_file_t lf; - int error = 0; - int namelen, version; - struct kld_file_stat *stat; + int error, namelen; + + /* + * Check the version of the user's structure. + */ + error = copyin(uap->stat, &stat, sizeof(struct kld_file_stat)); + if (error) + return (error); + if (stat.version != sizeof(struct kld_file_stat)) + return (EINVAL); #ifdef MAC error = mac_check_kld_stat(td->td_ucred); @@ -946,43 +968,26 @@ return (error); #endif - mtx_lock(&Giant); - + KLD_LOCK(); lf = linker_find_file_by_id(uap->fileid); if (lf == NULL) { - error = ENOENT; - goto out; + KLD_UNLOCK(); + return (ENOENT); } - stat = uap->stat; - /* - * Check the version of the user's structure. - */ - if ((error = copyin(&stat->version, &version, sizeof(version))) != 0) - goto out; - if (version != sizeof(struct kld_file_stat)) { - error = EINVAL; - goto out; - } namelen = strlen(lf->filename) + 1; if (namelen > MAXPATHLEN) namelen = MAXPATHLEN; - if ((error = copyout(lf->filename, &stat->name[0], namelen)) != 0) - goto out; - if ((error = copyout(&lf->refs, &stat->refs, sizeof(int))) != 0) - goto out; - if ((error = copyout(&lf->id, &stat->id, sizeof(int))) != 0) - goto out; - if ((error = copyout(&lf->address, &stat->address, - sizeof(caddr_t))) != 0) - goto out; - if ((error = copyout(&lf->size, &stat->size, sizeof(size_t))) != 0) - goto out; + bcopy(lf->filename, &stat.name[0], namelen); + stat.refs = lf.refs; + stat.id = lf.id; + stat.address = lf.address; + stat.size = lf.size; + KLD_UNLOCK(); td->td_retval[0] = 0; -out: - mtx_unlock(&Giant); - return (error); + + return (copyout(&stat, uap->stat, sizeof(struct kld_file_stat))); } /* @@ -1001,7 +1006,7 @@ return (error); #endif - mtx_lock(&Giant); + KLD_LOCK(); lf = linker_find_file_by_id(uap->fileid); if (lf) { MOD_SLOCK; @@ -1013,7 +1018,7 @@ MOD_SUNLOCK; } else error = ENOENT; - mtx_unlock(&Giant); + KLD_UNLOCK(); return (error); } @@ -1044,12 +1049,12 @@ symstr = malloc(MAXPATHLEN, M_TEMP, M_WAITOK); if ((error = copyinstr(lookup.symname, symstr, MAXPATHLEN, NULL)) != 0) goto out; - mtx_lock(&Giant); + KLD_LOCK(); if (uap->fileid != 0) { lf = linker_find_file_by_id(uap->fileid); if (lf == NULL) { error = ENOENT; - mtx_unlock(&Giant); + KLD_UNLOCK(); goto out; } if (LINKER_LOOKUP_SYMBOL(lf, symstr, &sym) == 0 && @@ -1060,7 +1065,6 @@ } else error = ENOENT; } else { - mtx_lock(&kld_mtx); TAILQ_FOREACH(lf, &linker_files, link) { if (LINKER_LOOKUP_SYMBOL(lf, symstr, &sym) == 0 && LINKER_SYMBOL_VALUES(lf, sym, &symval) == 0) { @@ -1071,11 +1075,10 @@ break; } } - mtx_unlock(&kld_mtx); if (lf == NULL) error = ENOENT; } - mtx_unlock(&Giant); + KLD_UNLOCK(); out: free(symstr, M_TEMP); return (error); @@ -1179,6 +1182,7 @@ modlist_t mod; struct sysinit **si_start, **si_stop; + KLD_LOCK(); TAILQ_INIT(&loaded_files); TAILQ_INIT(&depended_files); TAILQ_INIT(&found_modules); @@ -1215,7 +1219,7 @@ /* * First get a list of stuff in the kernel. */ - if (linker_file_lookup_set(linker_kernel_file, MDT_SETNAME, &start, + if (LINKER_LOOKUP_SET(linker_kernel_file, MDT_SETNAME, &start, &stop, NULL) == 0) linker_addmodules(linker_kernel_file, start, stop, 1); @@ -1225,8 +1229,7 @@ */ restart: TAILQ_FOREACH(lf, &loaded_files, loaded) { - error = linker_file_lookup_set(lf, MDT_SETNAME, &start, - &stop, NULL); + error = LINKER_LOOKUP_SET(lf, MDT_SETNAME, &start, &stop, NULL); /* * First, look to see if we would successfully link with this * stuff. @@ -1276,7 +1279,7 @@ nver) != NULL) { printf("module %s already" " present!\n", modname); - linker_file_unload(lf, + linker_file_unload_internal(lf, LINKER_UNLOAD_FORCE); TAILQ_REMOVE(&loaded_files, lf, loaded); @@ -1303,7 +1306,7 @@ */ TAILQ_FOREACH(lf, &loaded_files, loaded) { printf("KLD file %s is missing dependencies\n", lf->filename); - linker_file_unload(lf, LINKER_UNLOAD_FORCE); + linker_file_unload_internal(lf, LINKER_UNLOAD_FORCE); TAILQ_REMOVE(&loaded_files, lf, loaded); } @@ -1319,8 +1322,7 @@ panic("cannot add dependency"); } lf->userrefs++; /* so we can (try to) kldunload it */ - error = linker_file_lookup_set(lf, MDT_SETNAME, &start, - &stop, NULL); + error = LINKER_LOOKUP_SET(lf, MDT_SETNAME, &start, &stop, NULL); if (!error) { for (mdp = start; mdp < stop; mdp++) { mp = *mdp; @@ -1347,16 +1349,17 @@ if (error) { printf("KLD file %s - could not finalize loading\n", lf->filename); - linker_file_unload(lf, LINKER_UNLOAD_FORCE); + linker_file_unload_internal(lf, LINKER_UNLOAD_FORCE); continue; } linker_file_register_modules(lf); - if (linker_file_lookup_set(lf, "sysinit_set", &si_start, + if (LINKER_LOOKUP_SET(lf, "sysinit_set", &si_start, &si_stop, NULL) == 0) sysinit_add(si_start, si_stop); linker_file_register_sysctls(lf); lf->flags |= LINKER_FILE_LINKED; } + KLD_UNLOCK(); /* woohoo! we made it! */ } @@ -1660,11 +1663,26 @@ struct linker_file *parent, struct mod_depend *verinfo, struct linker_file **lfpp) { + int error; + + KLD_LOCK(); + error = linker_load_module_internal(kldname, modname, parent, + verinfo, lfpp); + KLD_UNLOCK(); + return (error); +} + +static int +linker_load_module_internal(const char *kldname, const char *modname, + struct linker_file *parent, struct mod_depend *verinfo, + struct linker_file **lfpp) +{ linker_file_t lfdep; const char *filename; char *pathname; int error; + KLD_LOCK_ASSERT(); if (modname == NULL) { /* * We have to load KLD @@ -1696,17 +1714,15 @@ * provide different versions of the same modules. */ filename = linker_basename(pathname); - if (linker_find_file_by_name(filename)) { + if (linker_find_file_by_name(filename)) error = EEXIST; - goto out; - } - do { + else do { error = linker_load_file(pathname, &lfdep); if (error) break; if (modname && verinfo && modlist_lookup2(modname, verinfo) == NULL) { - linker_file_unload(lfdep, LINKER_UNLOAD_FORCE); + linker_file_unload_internal(lfdep, LINKER_UNLOAD_FORCE); error = ENOENT; break; } @@ -1718,9 +1734,7 @@ if (lfpp) *lfpp = lfdep; } while (0); -out: - if (pathname) - free(pathname, M_LINKER); + free(pathname, M_LINKER); return (error); } @@ -1740,16 +1754,16 @@ int ver, error = 0, count; /* - * All files are dependant on /kernel. + * All files are dependent on /kernel. */ + KLD_LOCK_ASSERT(); if (linker_kernel_file) { linker_kernel_file->refs++; error = linker_file_add_dependency(lf, linker_kernel_file); if (error) return (error); } - if (linker_file_lookup_set(lf, MDT_SETNAME, &start, &stop, - &count) != 0) + if (LINKER_LOOKUP_SET(lf, MDT_SETNAME, &start, &stop, &count) != 0) return (0); for (mdp = start; mdp < stop; mdp++) { mp = *mdp; @@ -1792,7 +1806,8 @@ break; continue; } - error = linker_load_module(NULL, modname, lf, verinfo, NULL); + error = linker_load_module_internal(NULL, modname, lf, verinfo, + NULL); if (error) { printf("KLD %s: depends on %s - not available\n", lf->filename, modname); @@ -1833,16 +1848,16 @@ error = sysctl_wire_old_buffer(req, 0); if (error != 0) return (error); - mtx_lock(&kld_mtx); + KLD_LOCK(); TAILQ_FOREACH(lf, &linker_files, link) { error = LINKER_EACH_FUNCTION_NAME(lf, sysctl_kern_function_list_iterate, req); if (error) { - mtx_unlock(&kld_mtx); + KLD_UNLOCK(); return (error); } } - mtx_unlock(&kld_mtx); + KLD_UNLOCK(); return (SYSCTL_OUT(req, "", 1)); } ==== //depot/projects/smpng/sys/kern/link_elf.c#32 (text+ko) ==== @@ -494,7 +494,7 @@ error = parse_dynamic(ef); if (error) { - linker_file_unload(lf, LINKER_UNLOAD_FORCE); + linker_file_unload_internal(lf, LINKER_UNLOAD_FORCE); return error; } link_elf_reloc_local(lf); @@ -852,7 +852,7 @@ out: if (error && lf) - linker_file_unload(lf, LINKER_UNLOAD_FORCE); + linker_file_unload_internal(lf, LINKER_UNLOAD_FORCE); if (shdr) free(shdr, M_LINKER); if (firstpage) ==== //depot/projects/smpng/sys/kern/link_elf_obj.c#8 (text+ko) ==== @@ -348,7 +348,7 @@ out: /* preload not done this way */ - linker_file_unload(lf, LINKER_UNLOAD_FORCE); + linker_file_unload_internal(lf, LINKER_UNLOAD_FORCE); return (error); } @@ -783,7 +783,7 @@ out: if (error && lf) - linker_file_unload(lf, LINKER_UNLOAD_FORCE); + linker_file_unload_internal(lf, LINKER_UNLOAD_FORCE); if (hdr) free(hdr, M_LINKER); VOP_UNLOCK(nd.ni_vp, 0, td); ==== //depot/projects/smpng/sys/notes#68 (text+ko) ==== @@ -79,6 +79,31 @@ recursion) and panic if we try to sleep with any held to provide a cheaper version of the current WITNESS check that doesn't bog the system down quite as bad. +- Fix kernel linker locking + + Convert mutex over to sx lock, needs to be held when calling the following + functions + - private: + + linker_file_sys[un]init? + + linker_file_[un]register_sysctls? + + linker_file_register_modules? + + linker_load_file? + + linker_load_module_internal + + linker_file_add_dependency (make private) + - public: + - linker_find_file_by_name? (make private?) + - linker_find_file_by_id? (XXX: ndis) + + linker_make_file + + linker_file_unload_internal + + linker_load_dependencies + - ndis XXX + - functions that grab the lock + - private: + - public: + + linker_reference_module + + linker_file_lookup_symbol + + linker_load_module + + linker_file_lookup_set + + linker_file_unload Active child branches: - jhb_intr - fast ithreads and MSI? (perhaps do MSI in jhb_acpipci) ==== //depot/projects/smpng/sys/sys/linker.h#16 (text+ko) ==== @@ -100,11 +100,6 @@ extern linker_file_t linker_kernel_file; /* - * Add a new file class to the linker. - */ -int linker_add_class(linker_class_t _cls); - -/* * Load a kernel module. */ int linker_load_module(const char *_kldname, const char *_modname, @@ -128,21 +123,11 @@ linker_file_t linker_find_file_by_id(int _fileid); /* - * Called from a class handler when a file is laoded. - */ -linker_file_t linker_make_file(const char* _filename, linker_class_t _cls); - -/* * Unload a file, freeing up memory. */ int linker_file_unload(linker_file_t _file, int flags); /* - * Add a dependency to a file. - */ -int linker_file_add_dependency(linker_file_t _file, linker_file_t _dep); - -/* * Lookup a symbol in a file. If deps is TRUE, look in dependencies * if not found in file. */ @@ -158,10 +143,12 @@ void *_start, void *_stop, int *_count); /* - * This routine is responsible for finding dependencies of userland - * initiated kldload(2)'s of files. + * Functions soley for use by the linker class handlers. */ +int linker_add_class(linker_class_t _cls); +int linker_file_unload_internal(linker_file_t _file, int flags); int linker_load_dependencies(linker_file_t _lf); +linker_file_t linker_make_file(const char* _filename, linker_class_t _cls); /* * DDB Helpers, tuned specifically for ddb/db_kld.c From owner-p4-projects@FreeBSD.ORG Mon Mar 27 13:43:00 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E882C16A420; Mon, 27 Mar 2006 13:42:59 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id AB55516A401 for ; Mon, 27 Mar 2006 13:42:59 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4E95E43D5C for ; Mon, 27 Mar 2006 13:42:59 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2RDgxLw016860 for ; Mon, 27 Mar 2006 13:42:59 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2RDgxRR016857 for perforce@freebsd.org; Mon, 27 Mar 2006 13:42:59 GMT (envelope-from jhb@freebsd.org) Date: Mon, 27 Mar 2006 13:42:59 GMT Message-Id: <200603271342.k2RDgxRR016857@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 94109 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Mar 2006 13:43:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=94109 Change 94109 by jhb@jhb_tibook on 2006/03/27 13:42:14 Use MPSAFE vn_open() to conditionally grab Giant around VFS operations in the kernel linker. Affected files ... .. //depot/projects/smpng/sys/kern/kern_linker.c#44 edit .. //depot/projects/smpng/sys/kern/link_elf.c#33 edit .. //depot/projects/smpng/sys/kern/link_elf_obj.c#9 edit .. //depot/projects/smpng/sys/notes#69 edit Differences ... ==== //depot/projects/smpng/sys/kern/kern_linker.c#44 (text+ko) ==== @@ -1406,7 +1406,7 @@ struct nameidata nd; struct thread *td = curthread; /* XXX */ char *result, **cpp, *sep; - int error, len, extlen, reclen, flags; + int error, len, extlen, reclen, flags, vfslocked; enum vtype type; extlen = 0; @@ -1427,16 +1427,18 @@ * Attempt to open the file, and return the path if * we succeed and it's a regular file. */ - NDINIT(&nd, LOOKUP, FOLLOW, UIO_SYSSPACE, result, td); + NDINIT(&nd, LOOKUP, FOLLOW | MPSAFE, UIO_SYSSPACE, result, td); flags = FREAD; error = vn_open(&nd, &flags, 0, -1); if (error == 0) { + vfslocked = NDHASGIANT(&nd); NDFREE(&nd, NDF_ONLY_PNBUF); type = nd.ni_vp->v_type; if (vap) VOP_GETATTR(nd.ni_vp, vap, td->td_ucred, td); VOP_UNLOCK(nd.ni_vp, 0, td); vn_close(nd.ni_vp, FREAD, td->td_ucred, td); + VFS_UNLOCK_GIANT(vfslocked); if (type == VREG) return (result); } @@ -1464,6 +1466,7 @@ u_char *hints = NULL; u_char *cp, *recptr, *bufend, *result, *best, *pathbuf, *sep; int error, ival, bestver, *intp, reclen, found, flags, clen, blen; + int vfslocked = 0; result = NULL; bestver = found = 0; @@ -1475,13 +1478,14 @@ snprintf(pathbuf, reclen, "%.*s%s%s", pathlen, path, sep, linker_hintfile); - NDINIT(&nd, LOOKUP, NOFOLLOW, UIO_SYSSPACE, pathbuf, td); + NDINIT(&nd, LOOKUP, NOFOLLOW | MPSAFE, UIO_SYSSPACE, pathbuf, td); flags = FREAD; error = vn_open(&nd, &flags, 0, -1); if (error) goto bad; + vfslocked = NDHASGIANT(&nd); NDFREE(&nd, NDF_ONLY_PNBUF); - if (nd.ni_vp->v_type != VREG) + if (nd.ni_vp->v_type != VREG) { goto bad; best = cp = NULL; error = VOP_GETATTR(nd.ni_vp, &vattr, cred, td); @@ -1503,6 +1507,7 @@ goto bad; VOP_UNLOCK(nd.ni_vp, 0, td); vn_close(nd.ni_vp, FREAD, cred, td); + VFS_UNLOCK_GIANT(vfslocked); nd.ni_vp = NULL; if (reclen != 0) { printf("can't read %d\n", reclen); @@ -1571,6 +1576,7 @@ if (nd.ni_vp != NULL) { VOP_UNLOCK(nd.ni_vp, 0, td); vn_close(nd.ni_vp, FREAD, cred, td); + VFS_UNLOCK_GIANT(vfslocked); } /* * If nothing found or hints is absent - fallback to the old ==== //depot/projects/smpng/sys/kern/link_elf.c#33 (text+ko) ==== @@ -556,17 +556,17 @@ int symstrindex; int symcnt; int strcnt; - - GIANT_REQUIRED; + int vfslocked; shdr = NULL; lf = NULL; - NDINIT(&nd, LOOKUP, FOLLOW, UIO_SYSSPACE, filename, td); + NDINIT(&nd, LOOKUP, FOLLOW | MPSAFE, UIO_SYSSPACE, filename, td); flags = FREAD; error = vn_open(&nd, &flags, 0, -1); if (error) return error; + vfslocked = NDHASGIANT(&nd); NDFREE(&nd, NDF_ONLY_PNBUF); #ifdef MAC error = mac_check_kld_load(curthread->td_ucred, nd.ni_vp); @@ -859,6 +859,7 @@ free(firstpage, M_LINKER); VOP_UNLOCK(nd.ni_vp, 0, td); vn_close(nd.ni_vp, FREAD, td->td_ucred, td); + VFS_UNLOCK_GIANT(vfslocked); return error; } ==== //depot/projects/smpng/sys/kern/link_elf_obj.c#9 (text+ko) ==== @@ -393,19 +393,19 @@ int nsym; int pb, rl, ra; int alignmask; - - GIANT_REQUIRED; + int vfslocked; shdr = NULL; lf = NULL; mapsize = 0; hdr = NULL; - NDINIT(&nd, LOOKUP, FOLLOW, UIO_SYSSPACE, filename, td); + NDINIT(&nd, LOOKUP, FOLLOW | MPSAFE, UIO_SYSSPACE, filename, td); flags = FREAD; error = vn_open(&nd, &flags, 0, -1); if (error) return error; + vfslocked = NDHASGIANT(&nd); NDFREE(&nd, NDF_ONLY_PNBUF); #ifdef MAC error = mac_check_kld_load(td->td_ucred, nd.ni_vp); @@ -788,6 +788,7 @@ free(hdr, M_LINKER); VOP_UNLOCK(nd.ni_vp, 0, td); vn_close(nd.ni_vp, FREAD, td->td_ucred, td); + VFS_UNLOCK_GIANT(vfslocked); return error; } ==== //depot/projects/smpng/sys/notes#69 (text+ko) ==== @@ -104,6 +104,7 @@ + linker_load_module + linker_file_lookup_set + linker_file_unload + - really remove Giant Active child branches: - jhb_intr - fast ithreads and MSI? (perhaps do MSI in jhb_acpipci) From owner-p4-projects@FreeBSD.ORG Mon Mar 27 15:44:26 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C1F0616A422; Mon, 27 Mar 2006 15:44:26 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9B5C916A401 for ; Mon, 27 Mar 2006 15:44:26 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 63D8143D46 for ; Mon, 27 Mar 2006 15:44:26 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2RFiQeB022580 for ; Mon, 27 Mar 2006 15:44:26 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2RFiQTK022577 for perforce@freebsd.org; Mon, 27 Mar 2006 15:44:26 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 27 Mar 2006 15:44:26 GMT Message-Id: <200603271544.k2RFiQTK022577@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 94112 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Mar 2006 15:44:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=94112 Change 94112 by rwatson@rwatson_zoo on 2006/03/27 15:43:34 Add missing err.h include, sort includes. Affected files ... .. //depot/projects/trustedbsd/openbsm/bin/auditreduce/auditreduce.c#14 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/bin/auditreduce/auditreduce.c#14 (text+ko) ==== @@ -26,7 +26,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/openbsm/bin/auditreduce/auditreduce.c#13 $ + * $P4: //depot/projects/trustedbsd/openbsm/bin/auditreduce/auditreduce.c#14 $ */ /* @@ -42,11 +42,12 @@ #include +#include +#include +#include #include #include #include -#include -#include #include #include #include From owner-p4-projects@FreeBSD.ORG Mon Mar 27 16:36:33 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 97A6016A41F; Mon, 27 Mar 2006 16:36:33 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 733ED16A422 for ; Mon, 27 Mar 2006 16:36:33 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id BAC6943D73 for ; Mon, 27 Mar 2006 16:36:29 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2RGaTQV024547 for ; Mon, 27 Mar 2006 16:36:29 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2RGaTsi024544 for perforce@freebsd.org; Mon, 27 Mar 2006 16:36:29 GMT (envelope-from jhb@freebsd.org) Date: Mon, 27 Mar 2006 16:36:29 GMT Message-Id: <200603271636.k2RGaTsi024544@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 94114 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Mar 2006 16:36:33 -0000 http://perforce.freebsd.org/chv.cgi?CH=94114 Change 94114 by jhb@jhb_slimer on 2006/03/27 16:36:13 Compile. Affected files ... .. //depot/projects/smpng/sys/kern/kern_linker.c#45 edit .. //depot/projects/smpng/sys/kern/link_elf.c#34 edit .. //depot/projects/smpng/sys/kern/link_elf_obj.c#10 edit Differences ... ==== //depot/projects/smpng/sys/kern/kern_linker.c#45 (text+ko) ==== @@ -42,6 +42,7 @@ #include #include #include +#include #include #include #include @@ -110,6 +111,8 @@ static int linker_load_module_internal(const char *kldname, const char *modname, struct linker_file *parent, struct mod_depend *verinfo, struct linker_file **lfpp); +static int linker_lookup_set(linker_file_t file, const char *name, + void *firstp, void *lastp, int *countp); static modlist_t modlist_lookup2(const char *name, struct mod_depend *verinfo); static char * @@ -167,7 +170,7 @@ KLD_DPF(FILE, ("linker_file_sysinit: calling SYSINITs for %s\n", lf->filename)); - if (LINKER_LOOKUP_SET(lf, "sysinit_set", &start, &stop, NULL) != 0) + if (linker_lookup_set(lf, "sysinit_set", &start, &stop, NULL) != 0) return; /* * Perform a bubble sort of the system initialization objects by @@ -209,7 +212,7 @@ KLD_DPF(FILE, ("linker_file_sysuninit: calling SYSUNINITs for %s\n", lf->filename)); - if (LINKER_LOOKUP_SET(lf, "sysuninit_set", &start, &stop, NULL) != 0) + if (linker_lookup_set(lf, "sysuninit_set", &start, &stop, NULL) != 0) return; /* @@ -253,7 +256,7 @@ ("linker_file_register_sysctls: registering SYSCTLs for %s\n", lf->filename)); - if (LINKER_LOOKUP_SET(lf, "sysctl_set", &start, &stop, NULL) != 0) + if (linker_lookup_set(lf, "sysctl_set", &start, &stop, NULL) != 0) return; for (oidp = start; oidp < stop; oidp++) @@ -268,7 +271,7 @@ KLD_DPF(FILE, ("linker_file_unregister_sysctls: registering SYSCTLs" " for %s\n", lf->filename)); - if (LINKER_LOOKUP_SET(lf, "sysctl_set", &start, &stop, NULL) != 0) + if (linker_lookup_set(lf, "sysctl_set", &start, &stop, NULL) != 0) return; for (oidp = start; oidp < stop; oidp++) @@ -285,7 +288,7 @@ KLD_DPF(FILE, ("linker_file_register_modules: registering modules" " in %s\n", lf->filename)); - if (LINKER_LOOKUP_SET(lf, "modmetadata_set", &start, &stop, + if (linker_lookup_set(lf, "modmetadata_set", &start, &stop, NULL) != 0) { /* * This fallback should be unnecessary, but if we get booted @@ -346,6 +349,7 @@ return (0); } foundfile = 0; + error = ENOENT; /* * We do not need to protect (lock) classes here because there is @@ -393,7 +397,6 @@ error = ENOEXEC; } else error = ENOENT; /* Nothing found */ -out: return (error); } @@ -599,8 +602,19 @@ /* * Locate a linker set and its contents. This is a helper function to avoid - * linker_if.h exposure elsewhere. Note: firstp and lastp are really void *** + * linker_if.h exposure elsewhere. Note: firstp and lastp are really void **. + * The first function is an internal wrapper so we can avoid having lots of + * (void **) casts. */ +static int +linker_lookup_set(linker_file_t file, const char *name, + void *firstp, void *lastp, int *countp) +{ + + KLD_LOCK_ASSERT(); + return (LINKER_LOOKUP_SET(file, name, firstp, lastp, countp)); +} + int linker_file_lookup_set(linker_file_t file, const char *name, void *firstp, void *lastp, int *countp) @@ -608,7 +622,7 @@ int error; KLD_LOCK(); - error = LINKER_LOOKUP_SET(file, name, firstp, lastp, countp); + error = linker_lookup_set(file, name, firstp, lastp, countp); KLD_UNLOCK(); return (error); } @@ -979,10 +993,10 @@ if (namelen > MAXPATHLEN) namelen = MAXPATHLEN; bcopy(lf->filename, &stat.name[0], namelen); - stat.refs = lf.refs; - stat.id = lf.id; - stat.address = lf.address; - stat.size = lf.size; + stat.refs = lf->refs; + stat.id = lf->id; + stat.address = lf->address; + stat.size = lf->size; KLD_UNLOCK(); td->td_retval[0] = 0; @@ -1219,7 +1233,7 @@ /* * First get a list of stuff in the kernel. */ - if (LINKER_LOOKUP_SET(linker_kernel_file, MDT_SETNAME, &start, + if (linker_lookup_set(linker_kernel_file, MDT_SETNAME, &start, &stop, NULL) == 0) linker_addmodules(linker_kernel_file, start, stop, 1); @@ -1229,7 +1243,7 @@ */ restart: TAILQ_FOREACH(lf, &loaded_files, loaded) { - error = LINKER_LOOKUP_SET(lf, MDT_SETNAME, &start, &stop, NULL); + error = linker_lookup_set(lf, MDT_SETNAME, &start, &stop, NULL); /* * First, look to see if we would successfully link with this * stuff. @@ -1322,7 +1336,7 @@ panic("cannot add dependency"); } lf->userrefs++; /* so we can (try to) kldunload it */ - error = LINKER_LOOKUP_SET(lf, MDT_SETNAME, &start, &stop, NULL); + error = linker_lookup_set(lf, MDT_SETNAME, &start, &stop, NULL); if (!error) { for (mdp = start; mdp < stop; mdp++) { mp = *mdp; @@ -1353,7 +1367,7 @@ continue; } linker_file_register_modules(lf); - if (LINKER_LOOKUP_SET(lf, "sysinit_set", &si_start, + if (linker_lookup_set(lf, "sysinit_set", &si_start, &si_stop, NULL) == 0) sysinit_add(si_start, si_stop); linker_file_register_sysctls(lf); @@ -1485,7 +1499,7 @@ goto bad; vfslocked = NDHASGIANT(&nd); NDFREE(&nd, NDF_ONLY_PNBUF); - if (nd.ni_vp->v_type != VREG) { + if (nd.ni_vp->v_type != VREG) goto bad; best = cp = NULL; error = VOP_GETATTR(nd.ni_vp, &vattr, cred, td); @@ -1769,7 +1783,7 @@ if (error) return (error); } - if (LINKER_LOOKUP_SET(lf, MDT_SETNAME, &start, &stop, &count) != 0) + if (linker_lookup_set(lf, MDT_SETNAME, &start, &stop, &count) != 0) return (0); for (mdp = start; mdp < stop; mdp++) { mp = *mdp; ==== //depot/projects/smpng/sys/kern/link_elf.c#34 (text+ko) ==== @@ -40,6 +40,7 @@ #include #include #include +#include #include #include #include ==== //depot/projects/smpng/sys/kern/link_elf_obj.c#10 (text+ko) ==== @@ -38,6 +38,7 @@ #include #include #include +#include #include #include #include From owner-p4-projects@FreeBSD.ORG Mon Mar 27 16:54:53 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E1D8A16A420; Mon, 27 Mar 2006 16:54:52 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B34C416A401 for ; Mon, 27 Mar 2006 16:54:52 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4CCB943D4C for ; Mon, 27 Mar 2006 16:54:52 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2RGsqQo032781 for ; Mon, 27 Mar 2006 16:54:52 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2RGsqiW032778 for perforce@freebsd.org; Mon, 27 Mar 2006 16:54:52 GMT (envelope-from peter@freebsd.org) Date: Mon, 27 Mar 2006 16:54:52 GMT Message-Id: <200603271654.k2RGsqiW032778@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 94115 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Mar 2006 16:54:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=94115 Change 94115 by peter@peter_daintree on 2006/03/27 16:54:45 oops. Since we have to skip PG_W pages, we can't depend on pc_map[] getting cleaned out as we go. Removal of the sva/eva bounding turned out to be irrelevant. Affected files ... .. //depot/projects/hammer/sys/amd64/amd64/pmap.c#145 edit Differences ... ==== //depot/projects/hammer/sys/amd64/amd64/pmap.c#145 (text+ko) ==== @@ -2709,16 +2709,17 @@ PMAP_LOCK(pmap); TAILQ_FOREACH_SAFE(pc, &pmap->pm_pvchunk, pc_list, npc) { /* - * XXX optimize more after removal of sva/eva! - * We can use bsfq to find the next inuse pv instead of - * the for loop. Since we free as we go, we won't have - * to skip unfreeable ones that sva/eva might have allowed. + * XXX removal of the sva/eva bounding wasn't necessary + * after all because we still have to work around the + * skipping of a PG_W page. oops. */ for (field = 0; field < _NPCM; field++) { - while ((inuse = (~(pc->pc_map[field])) & pc_freemask[field]) != 0) { + inuse = (~(pc->pc_map[field])) & pc_freemask[field]; + while (inuse != 0) { bit = bsfq(inuse); idx = field * 64 + bit; pv = &pc->pc_pventry[idx]; + inuse &= ~(1UL << bit); pte = vtopte(pv->pv_va); tpte = *pte; From owner-p4-projects@FreeBSD.ORG Mon Mar 27 18:59:29 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 65EF416A4F2; Mon, 27 Mar 2006 18:59:29 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0F82616A4E7 for ; Mon, 27 Mar 2006 18:59:29 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id CE1DA43D68 for ; Mon, 27 Mar 2006 18:59:25 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2RIxPr5038545 for ; Mon, 27 Mar 2006 18:59:25 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2RIxOqC038540 for perforce@freebsd.org; Mon, 27 Mar 2006 18:59:24 GMT (envelope-from jhb@freebsd.org) Date: Mon, 27 Mar 2006 18:59:24 GMT Message-Id: <200603271859.k2RIxOqC038540@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 94120 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Mar 2006 18:59:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=94120 Change 94120 by jhb@jhb_slimer on 2006/03/27 18:58:44 IFC @94119. Affected files ... .. //depot/projects/smpng/sys/Makefile#10 integrate .. //depot/projects/smpng/sys/alpha/linux/linux_dummy.c#9 integrate .. //depot/projects/smpng/sys/alpha/linux/linux_proto.h#19 integrate .. //depot/projects/smpng/sys/alpha/linux/linux_syscall.h#17 integrate .. //depot/projects/smpng/sys/alpha/linux/linux_sysent.c#17 integrate .. //depot/projects/smpng/sys/alpha/linux/linux_sysvec.c#25 integrate .. //depot/projects/smpng/sys/alpha/linux/syscalls.master#19 integrate .. //depot/projects/smpng/sys/amd64/acpica/madt.c#10 integrate .. //depot/projects/smpng/sys/amd64/amd64/io_apic.c#15 integrate .. //depot/projects/smpng/sys/amd64/amd64/local_apic.c#21 integrate .. //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#35 integrate .. //depot/projects/smpng/sys/amd64/amd64/pmap.c#53 integrate .. //depot/projects/smpng/sys/amd64/linux32/linux.h#2 integrate .. //depot/projects/smpng/sys/amd64/linux32/linux32_proto.h#5 integrate .. //depot/projects/smpng/sys/amd64/linux32/linux32_syscall.h#5 integrate .. //depot/projects/smpng/sys/amd64/linux32/linux32_sysent.c#5 integrate .. //depot/projects/smpng/sys/amd64/linux32/linux32_sysvec.c#15 integrate .. //depot/projects/smpng/sys/amd64/linux32/syscalls.master#5 integrate .. //depot/projects/smpng/sys/arm/arm/pmap.c#25 integrate .. //depot/projects/smpng/sys/arm/at91/at91.c#2 integrate .. //depot/projects/smpng/sys/arm/at91/at91_pio.c#1 branch .. //depot/projects/smpng/sys/arm/at91/at91_pioreg.h#1 branch .. //depot/projects/smpng/sys/arm/at91/at91_pmc.c#1 branch .. //depot/projects/smpng/sys/arm/at91/at91_pmcreg.h#1 branch .. //depot/projects/smpng/sys/arm/at91/at91_pmcvar.h#1 branch .. //depot/projects/smpng/sys/arm/at91/at91_rtc.c#1 branch .. //depot/projects/smpng/sys/arm/at91/at91_rtcreg.h#1 branch .. //depot/projects/smpng/sys/arm/at91/at91_ssc.c#1 branch .. //depot/projects/smpng/sys/arm/at91/at91_sscreg.h#1 branch .. //depot/projects/smpng/sys/arm/at91/at91_st.c#2 integrate .. //depot/projects/smpng/sys/arm/at91/at91rm92reg.h#2 integrate .. //depot/projects/smpng/sys/arm/at91/files.at91#2 integrate .. //depot/projects/smpng/sys/arm/at91/if_ate.c#2 integrate .. //depot/projects/smpng/sys/arm/at91/kb920x_machdep.c#2 integrate .. //depot/projects/smpng/sys/arm/at91/ohci_atmelarm.c#1 branch .. //depot/projects/smpng/sys/arm/at91/uart_dev_at91usart.c#3 integrate .. //depot/projects/smpng/sys/boot/Makefile#19 integrate .. //depot/projects/smpng/sys/boot/alpha/common/Makefile.common#7 integrate .. //depot/projects/smpng/sys/boot/i386/loader/Makefile#21 integrate .. //depot/projects/smpng/sys/boot/ia64/efi/Makefile#4 integrate .. //depot/projects/smpng/sys/boot/ia64/ski/Makefile#3 integrate .. //depot/projects/smpng/sys/boot/pc98/loader/Makefile#17 integrate .. //depot/projects/smpng/sys/boot/powerpc/loader/Makefile#14 integrate .. //depot/projects/smpng/sys/boot/sparc64/loader/Makefile#17 integrate .. //depot/projects/smpng/sys/cam/scsi/scsi_da.c#66 integrate .. //depot/projects/smpng/sys/compat/linux/linux_file.c#27 integrate .. //depot/projects/smpng/sys/compat/linux/linux_getcwd.c#21 integrate .. //depot/projects/smpng/sys/compat/linux/linux_ioctl.c#44 integrate .. //depot/projects/smpng/sys/compat/linux/linux_ipc.c#23 integrate .. //depot/projects/smpng/sys/compat/linux/linux_mib.c#14 integrate .. //depot/projects/smpng/sys/compat/linux/linux_misc.c#62 integrate .. //depot/projects/smpng/sys/compat/linux/linux_signal.c#19 integrate .. //depot/projects/smpng/sys/compat/linux/linux_socket.c#28 integrate .. //depot/projects/smpng/sys/compat/linux/linux_stats.c#31 integrate .. //depot/projects/smpng/sys/compat/linux/linux_sysctl.c#12 integrate .. //depot/projects/smpng/sys/compat/linux/linux_uid16.c#21 integrate .. //depot/projects/smpng/sys/conf/Makefile.arm#19 integrate .. //depot/projects/smpng/sys/conf/files#170 integrate .. //depot/projects/smpng/sys/conf/files.alpha#38 integrate .. //depot/projects/smpng/sys/conf/files.sparc64#56 integrate .. //depot/projects/smpng/sys/contrib/pf/net/pf_norm.c#14 integrate .. //depot/projects/smpng/sys/dev/aha/aha_isa.c#15 integrate .. //depot/projects/smpng/sys/dev/aha/aha_mca.c#10 integrate .. //depot/projects/smpng/sys/dev/ata/ata-usb.c#2 integrate .. //depot/projects/smpng/sys/dev/ata/atapi-fd.c#33 integrate .. //depot/projects/smpng/sys/dev/atkbdc/psm.c#4 integrate .. //depot/projects/smpng/sys/dev/bge/if_bge.c#72 integrate .. //depot/projects/smpng/sys/dev/dc/if_dc.c#7 integrate .. //depot/projects/smpng/sys/dev/dc/if_dcreg.h#3 integrate .. //depot/projects/smpng/sys/dev/en/midway.c#29 integrate .. //depot/projects/smpng/sys/dev/fatm/if_fatm.c#17 integrate .. //depot/projects/smpng/sys/dev/hme/if_hme.c#30 integrate .. //depot/projects/smpng/sys/dev/hwpmc/hwpmc_logging.c#6 integrate .. //depot/projects/smpng/sys/dev/hwpmc/hwpmc_mod.c#14 integrate .. //depot/projects/smpng/sys/dev/md/md.c#74 integrate .. //depot/projects/smpng/sys/dev/mfi/mfi.c#1 branch .. //depot/projects/smpng/sys/dev/mfi/mfi_disk.c#1 branch .. //depot/projects/smpng/sys/dev/mfi/mfi_ioctl.h#1 branch .. //depot/projects/smpng/sys/dev/mfi/mfi_pci.c#1 branch .. //depot/projects/smpng/sys/dev/mfi/mfireg.h#1 branch .. //depot/projects/smpng/sys/dev/mfi/mfivar.h#1 branch .. //depot/projects/smpng/sys/dev/mii/brgphy.c#29 integrate .. //depot/projects/smpng/sys/dev/mii/miidevs#16 integrate .. //depot/projects/smpng/sys/dev/mpt/mpt.c#13 integrate .. //depot/projects/smpng/sys/dev/mpt/mpt.h#11 integrate .. //depot/projects/smpng/sys/dev/mpt/mpt_cam.c#6 integrate .. //depot/projects/smpng/sys/dev/mpt/mpt_debug.c#11 integrate .. //depot/projects/smpng/sys/dev/mpt/mpt_pci.c#18 integrate .. //depot/projects/smpng/sys/dev/mpt/mpt_raid.c#5 integrate .. //depot/projects/smpng/sys/dev/mpt/mpt_reg.h#3 integrate .. //depot/projects/smpng/sys/dev/patm/if_patm_attach.c#11 integrate .. //depot/projects/smpng/sys/dev/pccbb/pccbb.c#56 integrate .. //depot/projects/smpng/sys/dev/ral/rt2560.c#2 integrate .. //depot/projects/smpng/sys/dev/ral/rt2661.c#2 integrate .. //depot/projects/smpng/sys/dev/re/if_re.c#38 integrate .. //depot/projects/smpng/sys/dev/sound/isa/ad1816.c#21 integrate .. //depot/projects/smpng/sys/dev/sound/pci/atiixp.c#6 integrate .. //depot/projects/smpng/sys/dev/sound/pci/ich.c#41 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/channel.c#36 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/dsp.c#36 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/mixer.c#24 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/sound.c#30 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/sound.h#24 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/vchan.c#15 integrate .. //depot/projects/smpng/sys/dev/usb/ehci.c#24 integrate .. //depot/projects/smpng/sys/dev/usb/hid.c#10 integrate .. //depot/projects/smpng/sys/dev/usb/if_ural.c#14 integrate .. //depot/projects/smpng/sys/dev/usb/umass.c#56 integrate .. //depot/projects/smpng/sys/fs/fdescfs/fdesc_vnops.c#24 integrate .. //depot/projects/smpng/sys/fs/fifofs/fifo_vnops.c#40 integrate .. //depot/projects/smpng/sys/gdb/gdb_cons.c#1 branch .. //depot/projects/smpng/sys/gdb/gdb_int.h#3 integrate .. //depot/projects/smpng/sys/gdb/gdb_main.c#6 integrate .. //depot/projects/smpng/sys/geom/mirror/g_mirror.c#27 integrate .. //depot/projects/smpng/sys/geom/mirror/g_mirror.h#12 integrate .. //depot/projects/smpng/sys/geom/mirror/g_mirror_ctl.c#10 integrate .. //depot/projects/smpng/sys/geom/raid3/g_raid3.c#24 integrate .. //depot/projects/smpng/sys/geom/raid3/g_raid3.h#12 integrate .. //depot/projects/smpng/sys/geom/raid3/g_raid3_ctl.c#11 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum.c#15 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum.h#9 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum_rm.c#9 integrate .. //depot/projects/smpng/sys/i386/acpica/madt.c#16 integrate .. //depot/projects/smpng/sys/i386/i386/io_apic.c#17 integrate .. //depot/projects/smpng/sys/i386/i386/local_apic.c#41 integrate .. //depot/projects/smpng/sys/i386/i386/pmap.c#93 integrate .. //depot/projects/smpng/sys/i386/linux/linux.h#10 integrate .. //depot/projects/smpng/sys/i386/linux/linux_dummy.c#12 integrate .. //depot/projects/smpng/sys/i386/linux/linux_proto.h#23 integrate .. //depot/projects/smpng/sys/i386/linux/linux_syscall.h#22 integrate .. //depot/projects/smpng/sys/i386/linux/linux_sysent.c#23 integrate .. //depot/projects/smpng/sys/i386/linux/linux_sysvec.c#50 integrate .. //depot/projects/smpng/sys/i386/linux/syscalls.master#23 integrate .. //depot/projects/smpng/sys/kern/imgact_aout.c#29 integrate .. //depot/projects/smpng/sys/kern/init_sysent.c#68 integrate .. //depot/projects/smpng/sys/kern/kern_descrip.c#90 integrate .. //depot/projects/smpng/sys/kern/kern_environment.c#21 integrate .. //depot/projects/smpng/sys/kern/kern_fork.c#98 integrate .. //depot/projects/smpng/sys/kern/kern_linker.c#46 integrate .. //depot/projects/smpng/sys/kern/kern_mac.c#43 integrate .. //depot/projects/smpng/sys/kern/kern_tc.c#40 integrate .. //depot/projects/smpng/sys/kern/kern_thread.c#90 integrate .. //depot/projects/smpng/sys/kern/syscalls.c#68 integrate .. //depot/projects/smpng/sys/kern/syscalls.master#70 integrate .. //depot/projects/smpng/sys/kern/uipc_mbuf.c#46 integrate .. //depot/projects/smpng/sys/kern/uipc_socket.c#81 integrate .. //depot/projects/smpng/sys/kern/uipc_socket2.c#49 integrate .. //depot/projects/smpng/sys/kern/uipc_syscalls.c#73 integrate .. //depot/projects/smpng/sys/kern/uipc_usrreq.c#55 integrate .. //depot/projects/smpng/sys/kern/vfs_aio.c#71 integrate .. //depot/projects/smpng/sys/kern/vfs_bio.c#91 integrate .. //depot/projects/smpng/sys/kern/vfs_cluster.c#44 integrate .. //depot/projects/smpng/sys/kern/vfs_subr.c#125 integrate .. //depot/projects/smpng/sys/kern/vfs_syscalls.c#102 integrate .. //depot/projects/smpng/sys/kern/vfs_vnops.c#69 integrate .. //depot/projects/smpng/sys/modules/Makefile#119 integrate .. //depot/projects/smpng/sys/modules/acpi/acpi_video/Makefile#5 integrate .. //depot/projects/smpng/sys/modules/ce/Makefile#3 integrate .. //depot/projects/smpng/sys/modules/cp/Makefile#5 integrate .. //depot/projects/smpng/sys/modules/dummynet/Makefile#6 integrate .. //depot/projects/smpng/sys/modules/if_bridge/Makefile#3 integrate .. //depot/projects/smpng/sys/modules/if_gif/Makefile#9 integrate .. //depot/projects/smpng/sys/modules/ipfilter/Makefile#11 integrate .. //depot/projects/smpng/sys/modules/ipfw/Makefile#9 integrate .. //depot/projects/smpng/sys/modules/linux/Makefile#15 integrate .. //depot/projects/smpng/sys/modules/mfi/Makefile#1 branch .. //depot/projects/smpng/sys/modules/netgraph/Makefile#23 integrate .. //depot/projects/smpng/sys/modules/pf/Makefile#11 integrate .. //depot/projects/smpng/sys/modules/pflog/Makefile#6 integrate .. //depot/projects/smpng/sys/net/if.c#80 integrate .. //depot/projects/smpng/sys/net/if_bridge.c#26 integrate .. //depot/projects/smpng/sys/net/if_media.h#17 integrate .. //depot/projects/smpng/sys/net/if_tap.c#39 integrate .. //depot/projects/smpng/sys/net/route.h#23 integrate .. //depot/projects/smpng/sys/net/rtsock.c#52 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_ioctl.c#25 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_output.c#24 integrate .. //depot/projects/smpng/sys/netatalk/ddp_pcb.c#7 integrate .. //depot/projects/smpng/sys/netatalk/ddp_usrreq.c#24 integrate .. //depot/projects/smpng/sys/netgraph/ng_tcpmss.c#2 integrate .. //depot/projects/smpng/sys/netinet/in_pcb.h#39 integrate .. //depot/projects/smpng/sys/netinet/ip_carp.c#16 integrate .. //depot/projects/smpng/sys/netinet/ip_carp.h#2 integrate .. //depot/projects/smpng/sys/netinet/ip_icmp.c#39 integrate .. //depot/projects/smpng/sys/netinet/tcp_input.c#83 integrate .. //depot/projects/smpng/sys/netinet/tcp_syncache.c#48 integrate .. //depot/projects/smpng/sys/netinet/tcp_timer.c#27 integrate .. //depot/projects/smpng/sys/netinet6/in6.h#19 integrate .. //depot/projects/smpng/sys/netinet6/in6_pcb.c#39 integrate .. //depot/projects/smpng/sys/netinet6/nd6.c#32 integrate .. //depot/projects/smpng/sys/netinet6/nd6_rtr.c#16 integrate .. //depot/projects/smpng/sys/netipsec/ipsec.c#13 integrate .. //depot/projects/smpng/sys/netipsec/ipsec.h#8 integrate .. //depot/projects/smpng/sys/netipsec/ipsec_mbuf.c#10 integrate .. //depot/projects/smpng/sys/netipsec/key.c#16 integrate .. //depot/projects/smpng/sys/netipsec/key_var.h#3 integrate .. //depot/projects/smpng/sys/netipsec/keydb.h#6 integrate .. //depot/projects/smpng/sys/netipsec/xform_ah.c#7 integrate .. //depot/projects/smpng/sys/netipsec/xform_esp.c#8 integrate .. //depot/projects/smpng/sys/netipsec/xform_ipcomp.c#8 integrate .. //depot/projects/smpng/sys/netipsec/xform_tcp.c#4 integrate .. //depot/projects/smpng/sys/netipx/README#6 integrate .. //depot/projects/smpng/sys/netipx/ipx_input.c#17 integrate .. //depot/projects/smpng/sys/netipx/ipx_ip.c#15 integrate .. //depot/projects/smpng/sys/netipx/ipx_pcb.c#18 integrate .. //depot/projects/smpng/sys/netipx/ipx_pcb.h#9 integrate .. //depot/projects/smpng/sys/netipx/ipx_usrreq.c#22 integrate .. //depot/projects/smpng/sys/netipx/spx_usrreq.c#25 integrate .. //depot/projects/smpng/sys/netnatm/natm.c#25 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_diskless.c#13 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_socket.c#42 integrate .. //depot/projects/smpng/sys/pci/if_rlreg.h#28 integrate .. //depot/projects/smpng/sys/security/audit/audit.c#3 integrate .. //depot/projects/smpng/sys/security/audit/audit.h#2 integrate .. //depot/projects/smpng/sys/security/audit/audit_arg.c#2 integrate .. //depot/projects/smpng/sys/security/audit/audit_bsm.c#2 integrate .. //depot/projects/smpng/sys/security/audit/audit_bsm_klib.c#2 integrate .. //depot/projects/smpng/sys/security/audit/audit_ioctl.h#1 branch .. //depot/projects/smpng/sys/security/audit/audit_pipe.c#3 integrate .. //depot/projects/smpng/sys/security/audit/audit_private.h#3 integrate .. //depot/projects/smpng/sys/security/audit/audit_syscalls.c#2 integrate .. //depot/projects/smpng/sys/security/audit/audit_trigger.c#2 integrate .. //depot/projects/smpng/sys/security/audit/audit_worker.c#1 branch .. //depot/projects/smpng/sys/sys/aio.h#7 integrate .. //depot/projects/smpng/sys/sys/clock.h#2 integrate .. //depot/projects/smpng/sys/sys/event.h#21 integrate .. //depot/projects/smpng/sys/sys/linker.h#17 integrate .. //depot/projects/smpng/sys/sys/mbuf.h#61 integrate .. //depot/projects/smpng/sys/sys/md5.h#7 integrate .. //depot/projects/smpng/sys/sys/param.h#98 integrate .. //depot/projects/smpng/sys/sys/pmc.h#6 integrate .. //depot/projects/smpng/sys/sys/pmckern.h#5 integrate .. //depot/projects/smpng/sys/sys/pmclog.h#3 integrate .. //depot/projects/smpng/sys/sys/protosw.h#16 integrate .. //depot/projects/smpng/sys/sys/socketvar.h#49 integrate .. //depot/projects/smpng/sys/sys/syscall.h#67 integrate .. //depot/projects/smpng/sys/sys/syscall.mk#67 integrate .. //depot/projects/smpng/sys/sys/sysctl.h#38 integrate .. //depot/projects/smpng/sys/sys/sysproto.h#69 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_snapshot.c#57 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_vfsops.c#82 integrate .. //depot/projects/smpng/sys/ufs/ufs/ufs_vnops.c#55 integrate .. //depot/projects/smpng/sys/vm/vm_mmap.c#57 integrate Differences ... ==== //depot/projects/smpng/sys/Makefile#10 (text+ko) ==== @@ -1,7 +1,9 @@ -# $FreeBSD: src/sys/Makefile,v 1.34 2006/01/10 20:58:27 rees Exp $ +# $FreeBSD: src/sys/Makefile,v 1.35 2006/03/17 18:54:34 ru Exp $ + +.include # The boot loader -.if !defined(NO_BOOT) +.if ${MK_BOOT} != "no" .if ${MACHINE_ARCH} != "arm" SUBDIR= boot .endif ==== //depot/projects/smpng/sys/alpha/linux/linux_dummy.c#9 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/linux/linux_dummy.c,v 1.38 2004/03/29 02:19:43 bms Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/linux/linux_dummy.c,v 1.39 2006/03/21 21:08:02 netchild Exp $"); #include #include @@ -72,11 +72,8 @@ DUMMY(pciconfig_read); DUMMY(pciconfig_write); DUMMY(pivot_root); -DUMMY(recvmsg); -DUMMY(sendmsg); DUMMY(sethae); DUMMY(sigaltstack); DUMMY(sigpending); -DUMMY(socketpair); DUMMY(utimes); ==== //depot/projects/smpng/sys/alpha/linux/linux_proto.h#19 (text+ko) ==== @@ -2,8 +2,8 @@ * System call prototypes. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/alpha/linux/linux_proto.h,v 1.24 2006/02/06 01:16:00 rwatson Exp $ - * created from FreeBSD: src/sys/alpha/linux/syscalls.master,v 1.66 2006/02/06 01:13:47 rwatson Exp + * $FreeBSD: src/sys/alpha/linux/linux_proto.h,v 1.27 2006/03/20 19:48:02 netchild Exp $ + * created from FreeBSD: src/sys/alpha/linux/syscalls.master,v 1.69 2006/03/20 19:46:56 netchild Exp */ #ifndef _LINUX_SYSPROTO_H_ @@ -170,6 +170,10 @@ struct linux_gethostname_args { register_t dummy; }; +struct linux_sethostname_args { + char hostname_l_[PADL_(char *)]; char * hostname; char hostname_r_[PADR_(char *)]; + char len_l_[PADL_(u_int)]; u_int len; char len_r_[PADR_(u_int)]; +}; struct linux_getdtablesize_args { register_t dummy; }; @@ -199,10 +203,22 @@ char name_l_[PADL_(struct l_sockaddr *)]; struct l_sockaddr * name; char name_r_[PADR_(struct l_sockaddr *)]; char namelen_l_[PADL_(l_int)]; l_int namelen; char namelen_r_[PADR_(l_int)]; }; +struct linux_accept_args { + char s_l_[PADL_(l_int)]; l_int s; char s_r_[PADR_(l_int)]; + char args_l_[PADL_(struct linux_accept_args *)]; struct linux_accept_args * args; char args_r_[PADR_(struct linux_accept_args *)]; +}; struct linux_getpriority_args { char which_l_[PADL_(int)]; int which; char which_r_[PADR_(int)]; char who_l_[PADL_(int)]; int who; char who_r_[PADR_(int)]; }; +struct linux_send_args { + char s_l_[PADL_(l_int)]; l_int s; char s_r_[PADR_(l_int)]; + char args_l_[PADL_(struct linux_send_args *)]; struct linux_send_args * args; char args_r_[PADR_(struct linux_send_args *)]; +}; +struct linux_recv_args { + char s_l_[PADL_(l_int)]; l_int s; char s_r_[PADR_(l_int)]; + char args_l_[PADL_(struct linux_recv_args *)]; struct linux_recv_args * args; char args_r_[PADR_(struct linux_recv_args *)]; +}; struct osf1_sigreturn_args { char sigcntxp_l_[PADL_(struct osigcontext *)]; struct osigcontext * sigcntxp; char sigcntxp_r_[PADR_(struct osigcontext *)]; }; @@ -223,6 +239,10 @@ char who_l_[PADL_(long)]; long who; char who_r_[PADR_(long)]; char rusage_l_[PADL_(void *)]; void * rusage; char rusage_r_[PADR_(void *)]; }; +struct linux_recvfrom_args { + char s_l_[PADL_(l_int)]; l_int s; char s_r_[PADR_(l_int)]; + char args_l_[PADL_(struct linux_recvfrom_args *)]; struct linux_recvfrom_args * args; char args_r_[PADR_(struct linux_recvfrom_args *)]; +}; struct linux_rename_args { char from_l_[PADL_(char *)]; char * from; char from_r_[PADR_(char *)]; char to_l_[PADL_(char *)]; char * to; char to_r_[PADR_(char *)]; @@ -231,6 +251,10 @@ char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)]; char length_l_[PADL_(l_ulong)]; l_ulong length; char length_r_[PADR_(l_ulong)]; }; +struct linux_ftruncate_args { + char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; + char length_l_[PADL_(long)]; long length; char length_r_[PADR_(long)]; +}; struct osf1_sendto_args { char s_l_[PADL_(int)]; int s; char s_r_[PADR_(int)]; char buf_l_[PADL_(caddr_t)]; caddr_t buf; char buf_r_[PADR_(caddr_t)]; @@ -249,6 +273,10 @@ struct linux_rmdir_args { char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)]; }; +struct linux_getpeername_args { + char s_l_[PADL_(l_int)]; l_int s; char s_r_[PADR_(l_int)]; + char args_l_[PADL_(struct linux_getpeername_args *)]; struct linux_getpeername_args * args; char args_r_[PADR_(struct linux_getpeername_args *)]; +}; struct linux_getrlimit_args { char resource_l_[PADL_(l_uint)]; l_uint resource; char resource_r_[PADR_(l_uint)]; char rlim_l_[PADL_(struct l_rlimit *)]; struct l_rlimit * rlim; char rlim_r_[PADR_(struct l_rlimit *)]; @@ -260,6 +288,10 @@ struct linux_quotactl_args { register_t dummy; }; +struct linux_getsockname_args { + char s_l_[PADL_(l_int)]; l_int s; char s_r_[PADR_(l_int)]; + char args_l_[PADL_(struct linux_getsockname_args *)]; struct linux_getsockname_args * args; char args_r_[PADR_(struct linux_getsockname_args *)]; +}; struct osf1_sigaction_args { char sig_l_[PADL_(int)]; int sig; char sig_r_[PADR_(int)]; char nsa_l_[PADL_(struct osf1_sigaction *)]; struct osf1_sigaction * nsa; char nsa_r_[PADR_(struct osf1_sigaction *)]; @@ -620,28 +652,36 @@ int linux_getgroups(struct thread *, struct linux_getgroups_args *); int osf1_setitimer(struct thread *, struct osf1_setitimer_args *); int linux_gethostname(struct thread *, struct linux_gethostname_args *); +int linux_sethostname(struct thread *, struct linux_sethostname_args *); int linux_getdtablesize(struct thread *, struct linux_getdtablesize_args *); int linux_newfstat(struct thread *, struct linux_newfstat_args *); int linux_fcntl(struct thread *, struct linux_fcntl_args *); int osf1_select(struct thread *, struct osf1_select_args *); int osf1_socket(struct thread *, struct osf1_socket_args *); int linux_connect(struct thread *, struct linux_connect_args *); +int linux_accept(struct thread *, struct linux_accept_args *); int linux_getpriority(struct thread *, struct linux_getpriority_args *); +int linux_send(struct thread *, struct linux_send_args *); +int linux_recv(struct thread *, struct linux_recv_args *); int osf1_sigreturn(struct thread *, struct osf1_sigreturn_args *); int osf1_sigsuspend(struct thread *, struct osf1_sigsuspend_args *); int linux_recvmsg(struct thread *, struct linux_recvmsg_args *); int linux_sendmsg(struct thread *, struct linux_sendmsg_args *); int osf1_gettimeofday(struct thread *, struct osf1_gettimeofday_args *); int osf1_getrusage(struct thread *, struct osf1_getrusage_args *); +int linux_recvfrom(struct thread *, struct linux_recvfrom_args *); int linux_rename(struct thread *, struct linux_rename_args *); int linux_truncate(struct thread *, struct linux_truncate_args *); +int linux_ftruncate(struct thread *, struct linux_ftruncate_args *); int osf1_sendto(struct thread *, struct osf1_sendto_args *); int linux_socketpair(struct thread *, struct linux_socketpair_args *); int linux_mkdir(struct thread *, struct linux_mkdir_args *); int linux_rmdir(struct thread *, struct linux_rmdir_args *); +int linux_getpeername(struct thread *, struct linux_getpeername_args *); int linux_getrlimit(struct thread *, struct linux_getrlimit_args *); int linux_setrlimit(struct thread *, struct linux_setrlimit_args *); int linux_quotactl(struct thread *, struct linux_quotactl_args *); +int linux_getsockname(struct thread *, struct linux_getsockname_args *); int osf1_sigaction(struct thread *, struct osf1_sigaction_args *); int linux_msgctl(struct thread *, struct linux_msgctl_args *); int linux_msgget(struct thread *, struct linux_msgget_args *); ==== //depot/projects/smpng/sys/alpha/linux/linux_syscall.h#17 (text+ko) ==== @@ -2,8 +2,8 @@ * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/alpha/linux/linux_syscall.h,v 1.22 2006/02/06 01:16:00 rwatson Exp $ - * created from FreeBSD: src/sys/alpha/linux/syscalls.master,v 1.66 2006/02/06 01:13:47 rwatson Exp + * $FreeBSD: src/sys/alpha/linux/linux_syscall.h,v 1.25 2006/03/20 19:48:02 netchild Exp $ + * created from FreeBSD: src/sys/alpha/linux/syscalls.master,v 1.69 2006/03/20 19:46:56 netchild Exp */ #define LINUX_SYS_exit 1 @@ -57,7 +57,7 @@ #define LINUX_SYS_linux_getgroups 80 #define LINUX_SYS_osf1_setitimer 83 #define LINUX_SYS_linux_gethostname 87 -#define LINUX_SYS_osethostname 88 +#define LINUX_SYS_linux_sethostname 88 #define LINUX_SYS_linux_getdtablesize 89 #define LINUX_SYS_dup2 90 #define LINUX_SYS_linux_newfstat 91 @@ -68,10 +68,10 @@ #define LINUX_SYS_setpriority 96 #define LINUX_SYS_osf1_socket 97 #define LINUX_SYS_linux_connect 98 -#define LINUX_SYS_accept 99 +#define LINUX_SYS_linux_accept 99 #define LINUX_SYS_linux_getpriority 100 -#define LINUX_SYS_osend 101 -#define LINUX_SYS_orecv 102 +#define LINUX_SYS_linux_send 101 +#define LINUX_SYS_linux_recv 102 #define LINUX_SYS_osf1_sigreturn 103 #define LINUX_SYS_bind 104 #define LINUX_SYS_setsockopt 105 @@ -86,12 +86,12 @@ #define LINUX_SYS_writev 121 #define LINUX_SYS_fchown 123 #define LINUX_SYS_fchmod 124 -#define LINUX_SYS_recvfrom 125 +#define LINUX_SYS_linux_recvfrom 125 #define LINUX_SYS_setreuid 126 #define LINUX_SYS_setregid 127 #define LINUX_SYS_linux_rename 128 #define LINUX_SYS_linux_truncate 129 -#define LINUX_SYS_oftruncate 130 +#define LINUX_SYS_linux_ftruncate 130 #define LINUX_SYS_flock 131 #define LINUX_SYS_setgid 132 #define LINUX_SYS_osf1_sendto 133 @@ -100,12 +100,12 @@ #define LINUX_SYS_linux_mkdir 136 #define LINUX_SYS_linux_rmdir 137 #define LINUX_SYS_utimes 138 -#define LINUX_SYS_ogetpeername 141 +#define LINUX_SYS_linux_getpeername 141 #define LINUX_SYS_linux_getrlimit 144 #define LINUX_SYS_linux_setrlimit 145 #define LINUX_SYS_setsid 147 #define LINUX_SYS_linux_quotactl 148 -#define LINUX_SYS_getsockname 150 +#define LINUX_SYS_linux_getsockname 150 #define LINUX_SYS_osf1_sigaction 156 #define LINUX_SYS_setdomainname 166 #define LINUX_SYS_linux_msgctl 200 ==== //depot/projects/smpng/sys/alpha/linux/linux_sysent.c#17 (text+ko) ==== @@ -2,12 +2,11 @@ * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/alpha/linux/linux_sysent.c,v 1.22 2006/02/06 01:16:00 rwatson Exp $ - * created from FreeBSD: src/sys/alpha/linux/syscalls.master,v 1.66 2006/02/06 01:13:47 rwatson Exp + * $FreeBSD: src/sys/alpha/linux/linux_sysent.c,v 1.25 2006/03/20 19:48:02 netchild Exp $ + * created from FreeBSD: src/sys/alpha/linux/syscalls.master,v 1.69 2006/03/20 19:46:56 netchild Exp */ #include -#include "opt_compat.h" #include #include #include @@ -108,7 +107,7 @@ { 0, (sy_call_t *)nosys, AUE_NULL }, /* 85 = */ { 0, (sy_call_t *)nosys, AUE_NULL }, /* 86 = osf_getitimer */ { SYF_MPSAFE | 0, (sy_call_t *)linux_gethostname, AUE_SYSCTL }, /* 87 = linux_gethostname */ - { SYF_MPSAFE | AS(sethostname_args), (sy_call_t *)osethostname, AUE_SYSCTL }, /* 88 = osethostname */ + { SYF_MPSAFE | AS(linux_sethostname_args), (sy_call_t *)linux_sethostname, AUE_SYSCTL }, /* 88 = linux_sethostname */ { SYF_MPSAFE | 0, (sy_call_t *)linux_getdtablesize, AUE_GETDTABLESIZE }, /* 89 = linux_getdtablesize */ { SYF_MPSAFE | AS(dup2_args), (sy_call_t *)dup2, AUE_DUP2 }, /* 90 = dup2 */ { SYF_MPSAFE | AS(linux_newfstat_args), (sy_call_t *)linux_newfstat, AUE_FSTAT }, /* 91 = linux_newfstat */ @@ -119,10 +118,10 @@ { SYF_MPSAFE | AS(setpriority_args), (sy_call_t *)setpriority, AUE_SETPRIORITY }, /* 96 = setpriority */ { SYF_MPSAFE | AS(osf1_socket_args), (sy_call_t *)osf1_socket, AUE_SOCKET }, /* 97 = osf1_socket */ { SYF_MPSAFE | AS(linux_connect_args), (sy_call_t *)linux_connect, AUE_CONNECT }, /* 98 = linux_connect */ - { SYF_MPSAFE | AS(accept_args), (sy_call_t *)oaccept, AUE_ACCEPT }, /* 99 = accept */ + { SYF_MPSAFE | AS(linux_accept_args), (sy_call_t *)linux_accept, AUE_ACCEPT }, /* 99 = linux_accept */ { SYF_MPSAFE | AS(linux_getpriority_args), (sy_call_t *)linux_getpriority, AUE_GETPRIORITY }, /* 100 = linux_getpriority */ - { SYF_MPSAFE | AS(osend_args), (sy_call_t *)osend, AUE_SEND }, /* 101 = osend */ - { SYF_MPSAFE | AS(orecv_args), (sy_call_t *)orecv, AUE_RECV }, /* 102 = orecv */ + { SYF_MPSAFE | AS(linux_send_args), (sy_call_t *)linux_send, AUE_SEND }, /* 101 = linux_send */ + { SYF_MPSAFE | AS(linux_recv_args), (sy_call_t *)linux_recv, AUE_RECV }, /* 102 = linux_recv */ { SYF_MPSAFE | AS(osf1_sigreturn_args), (sy_call_t *)osf1_sigreturn, AUE_NULL }, /* 103 = osf1_sigreturn */ { SYF_MPSAFE | AS(bind_args), (sy_call_t *)bind, AUE_BIND }, /* 104 = bind */ { SYF_MPSAFE | AS(setsockopt_args), (sy_call_t *)setsockopt, AUE_SETSOCKOPT }, /* 105 = setsockopt */ @@ -145,12 +144,12 @@ { 0, (sy_call_t *)nosys, AUE_NULL }, /* 122 = osf_settimeofday */ { AS(fchown_args), (sy_call_t *)fchown, AUE_FCHOWN }, /* 123 = fchown */ { AS(fchmod_args), (sy_call_t *)fchmod, AUE_FCHMOD }, /* 124 = fchmod */ - { AS(recvfrom_args), (sy_call_t *)orecvfrom, AUE_RECVFROM }, /* 125 = recvfrom */ + { SYF_MPSAFE | AS(linux_recvfrom_args), (sy_call_t *)linux_recvfrom, AUE_RECVFROM }, /* 125 = linux_recvfrom */ { SYF_MPSAFE | AS(setreuid_args), (sy_call_t *)setreuid, AUE_SETREUID }, /* 126 = setreuid */ { SYF_MPSAFE | AS(setregid_args), (sy_call_t *)setregid, AUE_SETREGID }, /* 127 = setregid */ { SYF_MPSAFE | AS(linux_rename_args), (sy_call_t *)linux_rename, AUE_RENAME }, /* 128 = linux_rename */ { SYF_MPSAFE | AS(linux_truncate_args), (sy_call_t *)linux_truncate, AUE_TRUNCATE }, /* 129 = linux_truncate */ - { SYF_MPSAFE | AS(oftruncate_args), (sy_call_t *)oftruncate, AUE_FTRUNCATE }, /* 130 = oftruncate */ + { SYF_MPSAFE | AS(linux_ftruncate_args), (sy_call_t *)linux_ftruncate, AUE_FTRUNCATE }, /* 130 = linux_ftruncate */ { SYF_MPSAFE | AS(flock_args), (sy_call_t *)flock, AUE_FLOCK }, /* 131 = flock */ { SYF_MPSAFE | AS(setgid_args), (sy_call_t *)setgid, AUE_SETGID }, /* 132 = setgid */ { SYF_MPSAFE | AS(osf1_sendto_args), (sy_call_t *)osf1_sendto, AUE_SENDTO }, /* 133 = osf1_sendto */ @@ -161,7 +160,7 @@ { SYF_MPSAFE | AS(utimes_args), (sy_call_t *)utimes, AUE_UTIMES }, /* 138 = utimes */ { 0, (sy_call_t *)nosys, AUE_NULL }, /* 139 = */ { 0, (sy_call_t *)nosys, AUE_NULL }, /* 140 = */ - { SYF_MPSAFE | AS(ogetpeername_args), (sy_call_t *)ogetpeername, AUE_GETPEERNAME }, /* 141 = ogetpeername */ + { SYF_MPSAFE | AS(linux_getpeername_args), (sy_call_t *)linux_getpeername, AUE_GETPEERNAME }, /* 141 = linux_getpeername */ { 0, (sy_call_t *)nosys, AUE_NULL }, /* 142 = */ { 0, (sy_call_t *)nosys, AUE_NULL }, /* 143 = */ { SYF_MPSAFE | AS(linux_getrlimit_args), (sy_call_t *)linux_getrlimit, AUE_GETRLIMIT }, /* 144 = linux_getrlimit */ @@ -170,7 +169,7 @@ { SYF_MPSAFE | 0, (sy_call_t *)setsid, AUE_SETSID }, /* 147 = setsid */ { SYF_MPSAFE | 0, (sy_call_t *)linux_quotactl, AUE_QUOTACTL }, /* 148 = linux_quotactl */ { 0, (sy_call_t *)nosys, AUE_NULL }, /* 149 = */ - { SYF_MPSAFE | AS(getsockname_args), (sy_call_t *)ogetsockname, AUE_GETSOCKNAME }, /* 150 = getsockname */ + { SYF_MPSAFE | AS(linux_getsockname_args), (sy_call_t *)linux_getsockname, AUE_GETSOCKNAME }, /* 150 = linux_getsockname */ { 0, (sy_call_t *)nosys, AUE_NULL }, /* 151 = */ { 0, (sy_call_t *)nosys, AUE_NULL }, /* 152 = */ { 0, (sy_call_t *)nosys, AUE_NULL }, /* 153 = */ ==== //depot/projects/smpng/sys/alpha/linux/linux_sysvec.c#25 (text+ko) ==== @@ -27,14 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/linux/linux_sysvec.c,v 1.98 2005/12/26 21:23:56 sobomax Exp $"); - -/* XXX we use functions that might not exist. */ -#include "opt_compat.h" - -#ifndef COMPAT_43 -#error "Unable to compile Linux-emulator due to missing COMPAT_43 option!" -#endif +__FBSDID("$FreeBSD: src/sys/alpha/linux/linux_sysvec.c,v 1.99 2006/03/18 18:24:38 netchild Exp $"); #include #include ==== //depot/projects/smpng/sys/alpha/linux/syscalls.master#19 (text+ko) ==== @@ -1,4 +1,4 @@ - $FreeBSD: src/sys/alpha/linux/syscalls.master,v 1.66 2006/02/06 01:13:47 rwatson Exp $ + $FreeBSD: src/sys/alpha/linux/syscalls.master,v 1.69 2006/03/20 19:46:56 netchild Exp $ ; @(#)syscalls.master 8.1 (Berkeley) 7/19/93 ; System call name/number master file (or rather, slave, from LINUX). @@ -11,8 +11,7 @@ ; there is no audit event for the call at this time. For the ; case where the event exists, but we don't want auditing, the ; event should be #defined to AUE_NULL in audit_kevents.h. -; type one of STD, OBSOL, UNIMPL, COMPAT, CPT_NOA, LIBCOMPAT, -; NODEF, NOARGS, NOPROTO +; type one of STD, OBSOL, UNIMPL, NODEF, NOARGS, NOPROTO ; name psuedo-prototype of syscall routine ; If one of the following alts is different, then all appear: ; altname name of system call if different @@ -22,9 +21,6 @@ ; types: ; STD always included -; COMPAT included on COMPAT #ifdef -; CPT_NOA combines COMPAT with NOARGS -; LIBCOMPAT included on COMPAT #ifdef, and placed in syscall.h ; NOARGS same as STD except do not create structure in sys/sysproto.h ; NODEF ?? ; NOPROTO same as STD except do not create structure or function in @@ -32,7 +28,6 @@ ; OBSOL obsolete, not included in system, only specifies name ; UNIMPL not implemented, placeholder only -#include "opt_compat.h" #include #include #include @@ -158,9 +153,7 @@ 85 AUE_NULL UNIMPL 86 AUE_GETITIMER UNIMPL osf_getitimer 87 AUE_SYSCTL MSTD { int linux_gethostname(void); } -88 AUE_SYSCTL MNOPROTO { int osethostname(char *hostname, \ - u_int len); } osethostname \ - sethostname_args int +88 AUE_SYSCTL MSTD { int linux_sethostname(char *hostname, u_int len); } 89 AUE_GETDTABLESIZE MSTD { int linux_getdtablesize(void); } 90 AUE_DUP2 MNOPROTO { int dup2(u_int from, u_int to); } 91 AUE_FSTAT MSTD { int linux_newfstat(l_uint fd, \ @@ -179,13 +172,13 @@ int protocol); } 98 AUE_CONNECT MSTD { int linux_connect(l_int s, \ struct l_sockaddr *name, l_int namelen); } -99 AUE_ACCEPT MNOPROTO { int oaccept(int s, caddr_t name, \ - int *anamelen); } accept accept_args int +99 AUE_ACCEPT MSTD { int linux_accept(l_int s, \ + struct linux_accept_args *args); } 100 AUE_GETPRIORITY MSTD { int linux_getpriority(int which, int who); } -101 AUE_SEND MNOPROTO { int osend(int s, caddr_t buf, int len, \ - int flags); } -102 AUE_RECV MNOPROTO { int orecv(int s, caddr_t buf, int len, \ - int flags); } +101 AUE_SEND MSTD { int linux_send(l_int s, \ + struct linux_send_args *args); } +102 AUE_RECV MSTD { int linux_recv(l_int s, \ + struct linux_recv_args *args); } 103 AUE_NULL MSTD { int osf1_sigreturn( \ struct osigcontext *sigcntxp); } 104 AUE_BIND MNOPROTO { int bind(int s, caddr_t name, \ @@ -217,16 +210,14 @@ 122 AUE_SETTIMEOFDAY UNIMPL osf_settimeofday 123 AUE_FCHOWN NOPROTO { int fchown(int fd, int uid, int gid); } 124 AUE_FCHMOD NOPROTO { int fchmod(int fd, int mode); } -125 AUE_RECVFROM NOPROTO { int orecvfrom(int s, caddr_t buf, \ - size_t len, int flags, caddr_t from, \ - int *fromlenaddr); } recvfrom \ - recvfrom_args int +125 AUE_RECVFROM MSTD { int linux_recvfrom(l_int s, \ + struct linux_recvfrom_args *args); } 126 AUE_SETREUID MNOPROTO { int setreuid(int ruid, int euid); } 127 AUE_SETREGID MNOPROTO { int setregid(int rgid, int egid); } 128 AUE_RENAME MSTD { int linux_rename(char *from, char *to); } 129 AUE_TRUNCATE MSTD { int linux_truncate(char *path, \ l_ulong length); } -130 AUE_FTRUNCATE MNOPROTO { int oftruncate(int fd, long length); } +130 AUE_FTRUNCATE MSTD { int linux_ftruncate(int fd, long length); } 131 AUE_FLOCK MNOPROTO { int flock(int fd, int how); } 132 AUE_SETGID MNOPROTO { int setgid(gid_t gid); } 133 AUE_SENDTO MSTD { int osf1_sendto(int s, caddr_t buf, \ @@ -240,8 +231,8 @@ struct timeval *tptr); } 139 AUE_NULL UNIMPL 140 AUE_NULL UNIMPL -141 AUE_GETPEERNAME MNOPROTO { int ogetpeername(int fdes, caddr_t asa, \ - int *alen); } +141 AUE_GETPEERNAME MSTD { int linux_getpeername(l_int s, \ + struct linux_getpeername_args *args); } 142 AUE_NULL UNIMPL 143 AUE_NULL UNIMPL 144 AUE_GETRLIMIT MSTD { int linux_getrlimit(l_uint resource, \ @@ -252,9 +243,8 @@ 147 AUE_SETSID MNOPROTO { int setsid(void); } 148 AUE_QUOTACTL MSTD { int linux_quotactl(void); } 149 AUE_NULL UNIMPL -150 AUE_GETSOCKNAME MNOPROTO { int ogetsockname(int fdec, caddr_t asa, \ - int *alen);} getsockname \ - getsockname_args int +150 AUE_GETSOCKNAME MSTD { int linux_getsockname(l_int s, \ + struct linux_getsockname_args *args);} 151 AUE_NULL UNIMPL 152 AUE_NULL UNIMPL 153 AUE_NULL UNIMPL ==== //depot/projects/smpng/sys/amd64/acpica/madt.c#10 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/acpica/madt.c,v 1.19 2005/11/01 22:44:06 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/acpica/madt.c,v 1.20 2006/03/27 15:59:48 jhb Exp $"); #include #include @@ -219,11 +219,12 @@ } /* - * For ACPI < 2.0, use the RSDT. For ACPI >= 2.0, use the XSDT. - * We map the XSDT and RSDT at page 1 in the crashdump area. - * Page 0 is used to map in the headers of candidate ACPI tables. + * For ACPI >= 2.0, use the XSDT if it is available. + * Otherwise, use the RSDT. We map the XSDT or RSDT at page 1 + * in the crashdump area. Page 0 is used to map in the + * headers of candidate ACPI tables. */ - if (rsdp->Revision >= 2) { + if (rsdp->Revision >= 2 && rsdp->XsdtPhysicalAddress != 0) { /* * AcpiOsGetRootPointer only verifies the checksum for * the version 1.0 portion of the RSDP. Version 2.0 has ==== //depot/projects/smpng/sys/amd64/amd64/io_apic.c#15 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.22 2006/03/13 23:55:31 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.23 2006/03/20 19:39:07 jhb Exp $"); #include "opt_atpic.h" #include "opt_isa.h" @@ -447,7 +447,7 @@ uint32_t value; /* Map the register window so we can access the device. */ - apic = (ioapic_t *)pmap_mapdev(addr, IOAPIC_MEM_REGION); + apic = pmap_mapdev(addr, IOAPIC_MEM_REGION); mtx_lock_spin(&icu_lock); value = ioapic_read(apic, IOAPIC_VER); mtx_unlock_spin(&icu_lock); ==== //depot/projects/smpng/sys/amd64/amd64/local_apic.c#21 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.24 2006/02/28 22:24:54 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.25 2006/03/20 19:39:07 jhb Exp $"); #include "opt_hwpmc_hooks.h" @@ -208,7 +208,7 @@ /* Map the local APIC and setup the spurious interrupt handler. */ KASSERT(trunc_page(addr) == addr, ("local APIC not aligned on a page boundary")); - lapic = (lapic_t *)pmap_mapdev(addr, sizeof(lapic_t)); + lapic = pmap_mapdev(addr, sizeof(lapic_t)); setidt(APIC_SPURIOUS_INT, IDTVEC(spuriousint), SDT_SYSIGT, SEL_KPL, 0); /* Perform basic initialization of the BSP's local APIC. */ ==== //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#35 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.270 2006/03/09 16:38:52 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.271 2006/03/18 19:32:46 ups Exp $"); #include "opt_cpu.h" #include "opt_kstack_pages.h" @@ -561,6 +561,13 @@ smp_active = 1; /* historic */ } + /* + * Enable global pages TLB extension + * This also implicitly flushes the TLB + */ + + load_cr4(rcr4() | CR4_PGE); + mtx_unlock_spin(&ap_boot_mtx); /* wait until all the AP's are up */ ==== //depot/projects/smpng/sys/amd64/amd64/pmap.c#53 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.537 2006/03/13 08:13:37 ps Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.539 2006/03/21 18:07:41 alc Exp $"); /* * Manages physical address maps. @@ -1731,7 +1731,13 @@ sva += PAGE_SIZE) { if (*pte == 0) continue; - anyvalid = 1; + + /* + * The TLB entry for a PG_G mapping is invalidated + * by pmap_remove_pte(). + */ + if ((*pte & PG_G) == 0) + anyvalid = 1; if (pmap_remove_pte(pmap, pte, sva, ptpaddr)) break; } @@ -2988,7 +2994,6 @@ void pmap_activate(struct thread *td) { - struct proc *p = td->td_proc; pmap_t pmap, oldpmap; u_int64_t cr3; @@ -3005,18 +3010,7 @@ pmap->pm_active |= PCPU_GET(cpumask); #endif cr3 = vtophys(pmap->pm_pml4); - /* XXXKSE this is wrong. - * pmap_activate is for the current thread on the current cpu - */ - if (p->p_flag & P_SA) { - /* Make sure all other cr3 entries are updated. */ - /* what if they are running? XXXKSE (maybe abort them) */ - FOREACH_THREAD_IN_PROC(p, td) { - td->td_pcb->pcb_cr3 = cr3; - } - } else { - td->td_pcb->pcb_cr3 = cr3; - } + td->td_pcb->pcb_cr3 = cr3; load_cr3(cr3); critical_exit(); } ==== //depot/projects/smpng/sys/amd64/linux32/linux.h#2 (text+ko) ==== @@ -27,7 +27,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/linux32/linux.h,v 1.1 2004/08/16 07:55:06 tjr Exp $ + * $FreeBSD: src/sys/amd64/linux32/linux.h,v 1.2 2006/03/18 18:24:38 netchild Exp $ */ #ifndef _AMD64_LINUX_LINUX_H_ @@ -197,6 +197,24 @@ l_ulong __unused5; } __packed; +struct l_stat { + l_ushort st_dev; + l_ulong st_ino; + l_ushort st_mode; + l_ushort st_nlink; + l_ushort st_uid; + l_ushort st_gid; + l_ushort st_rdev; + l_long st_size; + struct l_timespec st_atimespec; + struct l_timespec st_mtimespec; + struct l_timespec st_ctimespec; + l_long st_blksize; + l_long st_blocks; + l_ulong st_flags; + l_ulong st_gen; +}; + struct l_stat64 { l_ushort st_dev; u_char __pad0[10]; ==== //depot/projects/smpng/sys/amd64/linux32/linux32_proto.h#5 (text+ko) ==== @@ -2,8 +2,8 @@ * System call prototypes. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/amd64/linux32/linux32_proto.h,v 1.6 2005/07/13 20:35:07 jhb Exp $ - * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.5 2005/07/13 20:32:42 jhb Exp + * $FreeBSD: src/sys/amd64/linux32/linux32_proto.h,v 1.10 2006/03/20 18:54:29 netchild Exp $ + * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.8 2006/03/20 18:53:26 netchild Exp */ #ifndef _LINUX_SYSPROTO_H_ @@ -82,6 +82,10 @@ char uid_l_[PADL_(l_uid16_t)]; l_uid16_t uid; char uid_r_[PADR_(l_uid16_t)]; char gid_l_[PADL_(l_gid16_t)]; l_gid16_t gid; char gid_r_[PADR_(l_gid16_t)]; }; +struct linux_stat_args { + char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)]; + char up_l_[PADL_(struct linux_stat *)]; struct linux_stat * up; char up_r_[PADR_(struct linux_stat *)]; +}; struct linux_lseek_args { char fdes_l_[PADL_(l_uint)]; l_uint fdes; char fdes_r_[PADR_(l_uint)]; char off_l_[PADL_(l_off_t)]; l_off_t off; char off_r_[PADR_(l_off_t)]; @@ -220,6 +224,10 @@ struct linux_sigpending_args { char mask_l_[PADL_(l_osigset_t *)]; l_osigset_t * mask; char mask_r_[PADR_(l_osigset_t *)]; }; +struct linux_sethostname_args { + char hostname_l_[PADL_(char *)]; char * hostname; char hostname_r_[PADR_(char *)]; + char len_l_[PADL_(u_int)]; u_int len; char len_r_[PADR_(u_int)]; +}; struct linux_setrlimit_args { char resource_l_[PADL_(l_uint)]; l_uint resource; char resource_r_[PADR_(l_uint)]; char rlim_l_[PADL_(struct l_rlimit *)]; struct l_rlimit * rlim; char rlim_r_[PADR_(struct l_rlimit *)]; @@ -255,6 +263,10 @@ char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)]; char to_l_[PADL_(char *)]; char * to; char to_r_[PADR_(char *)]; }; +struct linux_lstat_args { + char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)]; + char up_l_[PADL_(struct linux_lstat *)]; struct linux_lstat * up; char up_r_[PADR_(struct linux_lstat *)]; +}; struct linux_readlink_args { char name_l_[PADL_(char *)]; char * name; char name_r_[PADR_(char *)]; char buf_l_[PADL_(char *)]; char * buf; char buf_r_[PADR_(char *)]; @@ -278,6 +290,10 @@ char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)]; char length_l_[PADL_(l_ulong)]; l_ulong length; char length_r_[PADR_(l_ulong)]; }; +struct linux_ftruncate_args { + char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; + char length_l_[PADL_(long)]; long length; char length_r_[PADR_(long)]; +}; struct linux_getpriority_args { char which_l_[PADL_(int)]; int which; char which_r_[PADR_(int)]; char who_l_[PADL_(int)]; int who; char who_r_[PADR_(int)]; @@ -703,6 +719,7 @@ int linux_mknod(struct thread *, struct linux_mknod_args *); int linux_chmod(struct thread *, struct linux_chmod_args *); int linux_lchown16(struct thread *, struct linux_lchown16_args *); +int linux_stat(struct thread *, struct linux_stat_args *); int linux_lseek(struct thread *, struct linux_lseek_args *); int linux_getpid(struct thread *, struct linux_getpid_args *); int linux_mount(struct thread *, struct linux_mount_args *); @@ -740,6 +757,7 @@ int linux_setregid16(struct thread *, struct linux_setregid16_args *); int linux_sigsuspend(struct thread *, struct linux_sigsuspend_args *); int linux_sigpending(struct thread *, struct linux_sigpending_args *); +int linux_sethostname(struct thread *, struct linux_sethostname_args *); int linux_setrlimit(struct thread *, struct linux_setrlimit_args *); int linux_old_getrlimit(struct thread *, struct linux_old_getrlimit_args *); int linux_getrusage(struct thread *, struct linux_getrusage_args *); @@ -749,11 +767,13 @@ int linux_setgroups16(struct thread *, struct linux_setgroups16_args *); int linux_old_select(struct thread *, struct linux_old_select_args *); int linux_symlink(struct thread *, struct linux_symlink_args *); +int linux_lstat(struct thread *, struct linux_lstat_args *); int linux_readlink(struct thread *, struct linux_readlink_args *); int linux_reboot(struct thread *, struct linux_reboot_args *); int linux_readdir(struct thread *, struct linux_readdir_args *); int linux_mmap(struct thread *, struct linux_mmap_args *); int linux_truncate(struct thread *, struct linux_truncate_args *); +int linux_ftruncate(struct thread *, struct linux_ftruncate_args *); int linux_getpriority(struct thread *, struct linux_getpriority_args *); int linux_statfs(struct thread *, struct linux_statfs_args *); int linux_fstatfs(struct thread *, struct linux_fstatfs_args *); ==== //depot/projects/smpng/sys/amd64/linux32/linux32_syscall.h#5 (text+ko) ==== @@ -2,8 +2,8 @@ * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/amd64/linux32/linux32_syscall.h,v 1.6 2005/07/13 20:35:07 jhb Exp $ - * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.5 2005/07/13 20:32:42 jhb Exp + * $FreeBSD: src/sys/amd64/linux32/linux32_syscall.h,v 1.10 2006/03/20 18:54:29 netchild Exp $ + * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.8 2006/03/20 18:53:26 netchild Exp */ #define LINUX_SYS_exit 1 @@ -22,6 +22,7 @@ #define LINUX_SYS_linux_mknod 14 #define LINUX_SYS_linux_chmod 15 #define LINUX_SYS_linux_lchown16 16 +#define LINUX_SYS_linux_stat 18 #define LINUX_SYS_linux_lseek 19 #define LINUX_SYS_linux_getpid 20 #define LINUX_SYS_linux_mount 21 @@ -69,7 +70,7 @@ #define LINUX_SYS_linux_setregid16 71 #define LINUX_SYS_linux_sigsuspend 72 #define LINUX_SYS_linux_sigpending 73 -#define LINUX_SYS_osethostname 74 +#define LINUX_SYS_linux_sethostname 74 #define LINUX_SYS_linux_setrlimit 75 #define LINUX_SYS_linux_old_getrlimit 76 #define LINUX_SYS_linux_getrusage 77 @@ -79,6 +80,7 @@ #define LINUX_SYS_linux_setgroups16 81 >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Mar 27 19:23:59 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3789F16A424; Mon, 27 Mar 2006 19:23:59 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 12E6716A422 for ; Mon, 27 Mar 2006 19:23:59 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9EA5243D53 for ; Mon, 27 Mar 2006 19:23:56 +0000 (GMT) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2RJNu36041259 for ; Mon, 27 Mar 2006 19:23:56 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2RJNutq041255 for perforce@freebsd.org; Mon, 27 Mar 2006 19:23:56 GMT (envelope-from imp@freebsd.org) Date: Mon, 27 Mar 2006 19:23:56 GMT Message-Id: <200603271923.k2RJNutq041255@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 94123 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Mar 2006 19:23:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=94123 Change 94123 by imp@imp_Speedy on 2006/03/27 19:23:39 pdc register definitions. Affected files ... .. //depot/projects/arm/src/sys/arm/at91/at91_pdcreg.h#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Mon Mar 27 19:30:05 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0B56016A42A; Mon, 27 Mar 2006 19:30:05 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id DDB3716A428 for ; Mon, 27 Mar 2006 19:30:04 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9089343D49 for ; Mon, 27 Mar 2006 19:30:04 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2RJU4nr041939 for ; Mon, 27 Mar 2006 19:30:04 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2RJU4WT041935 for perforce@freebsd.org; Mon, 27 Mar 2006 19:30:04 GMT (envelope-from jhb@freebsd.org) Date: Mon, 27 Mar 2006 19:30:04 GMT Message-Id: <200603271930.k2RJU4WT041935@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 94124 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Mar 2006 19:30:05 -0000 http://perforce.freebsd.org/chv.cgi?CH=94124 Change 94124 by jhb@jhb_slimer on 2006/03/27 19:29:53 - Conditionalize Giant for VFS operations. - Use the right msleep wait channel to avoid possible panics due to races with kldunload when tearing down the kthread and use the queue mutex to protect writes to the flags member of the softc once a md device is created. Affected files ... .. //depot/projects/smpng/sys/dev/md/md.c#75 edit Differences ... ==== //depot/projects/smpng/sys/dev/md/md.c#75 (text+ko) ==== @@ -88,7 +88,8 @@ #define MD_MODVER 1 -#define MD_SHUTDOWN 0x10000 /* Tell worker thread to terminate. */ +#define MD_SHUTDOWN 0x10000 /* Tell worker thread to terminate. */ +#define MD_EXITING 0x20000 /* Worker thread is exiting. */ #ifndef MD_NSECT #define MD_NSECT (10000 * 2) @@ -485,12 +486,11 @@ static int mdstart_vnode(struct md_s *sc, struct bio *bp) { - int error; + int error, vfslocked; struct uio auio; struct iovec aiov; struct mount *mp; - mtx_assert(&Giant, MA_OWNED); /* * VNODE I/O * @@ -519,6 +519,7 @@ * When reading set IO_DIRECT to try to avoid double-caching * the data. When writing IO_DIRECT is not optimal. */ + vfslocked = VFS_LOCK_GIANT(sc->vnode->v_mount); if (bp->bio_cmd == BIO_READ) { vn_lock(sc->vnode, LK_EXCLUSIVE | LK_RETRY, curthread); error = VOP_READ(sc->vnode, &auio, IO_DIRECT, sc->cred); @@ -531,6 +532,7 @@ VOP_UNLOCK(sc->vnode, 0, curthread); vn_finished_write(mp); } + VFS_UNLOCK_GIANT(vfslocked); bp->bio_resid = auio.uio_resid; return (error); } @@ -641,35 +643,20 @@ { struct md_s *sc; struct bio *bp; - int error, hasgiant; + int error; sc = arg; mtx_lock_spin(&sched_lock); sched_prio(curthread, PRIBIO); mtx_unlock_spin(&sched_lock); - switch (sc->type) { - case MD_VNODE: - mtx_lock(&Giant); - hasgiant = 1; - break; - case MD_MALLOC: - case MD_PRELOAD: - case MD_SWAP: - default: - hasgiant = 0; - break; - } - for (;;) { + mtx_lock(&sc->queue_mtx); if (sc->flags & MD_SHUTDOWN) { - sc->procp = NULL; - wakeup(&sc->procp); - if (hasgiant) - mtx_unlock(&Giant); + sc->flags |= MD_EXITING; + mtx_unlock_spin(&sc->queue_mtx); kthread_exit(0); } - mtx_lock(&sc->queue_mtx); bp = bioq_takefirst(&sc->bio_queue); if (!bp) { msleep(sc, &sc->queue_mtx, PRIBIO | PDROP, "mdwait", 0); @@ -867,7 +854,7 @@ { struct vattr vattr; struct nameidata nd; - int error, flags; + int error, flags, vfslocked; error = copyinstr(mdio->md_file, sc->file, sizeof(sc->file), NULL); if (error != 0) @@ -879,15 +866,17 @@ */ if ((mdio->md_options & MD_READONLY) != 0) flags &= ~FWRITE; - NDINIT(&nd, LOOKUP, FOLLOW, UIO_SYSSPACE, sc->file, td); + NDINIT(&nd, LOOKUP, FOLLOW | MPSAFE, UIO_SYSSPACE, sc->file, td); error = vn_open(&nd, &flags, 0, -1); if (error != 0) return (error); + vfslocked = NDHASGIANT(&nd); NDFREE(&nd, NDF_ONLY_PNBUF); if (nd.ni_vp->v_type != VREG || (error = VOP_GETATTR(nd.ni_vp, &vattr, td->td_ucred, td))) { VOP_UNLOCK(nd.ni_vp, 0, td); (void)vn_close(nd.ni_vp, flags, td->td_ucred, td); + VFS_UNLOCK_GIANT(vfslocked); return (error ? error : EINVAL); } VOP_UNLOCK(nd.ni_vp, 0, td); @@ -904,15 +893,17 @@ error = mdsetcred(sc, td->td_ucred); if (error != 0) { (void)vn_close(nd.ni_vp, flags, td->td_ucred, td); + VFS_UNLOCK_GIANT(vfslocked); return (error); } + VFS_UNLOCK_GIANT(vfslocked); return (0); } static int mddestroy(struct md_s *sc, struct thread *td) { - + int vfslocked; if (sc->gp) { sc->gp->softc = NULL; @@ -922,16 +913,18 @@ sc->gp = NULL; sc->pp = NULL; } + mtx_lock(&sc->queue_mtx); sc->flags |= MD_SHUTDOWN; wakeup(sc); - while (sc->procp != NULL) - tsleep(&sc->procp, PRIBIO, "mddestroy", hz / 10); + while (!(sc->flags & MD_EXITING)) + msleep(sc->procp, &sc->queue_mtx, PRIBIO, "mddestroy", hz / 10); + mtx_unlock(&sc->queue_mtx); mtx_destroy(&sc->queue_mtx); if (sc->vnode != NULL) { - mtx_lock(&Giant); + vfslocked = VFS_LOCK_GIANT(sc->vnode->v_mount); (void)vn_close(sc->vnode, sc->flags & MD_READONLY ? FREAD : (FREAD|FWRITE), sc->cred, td); - mtx_unlock(&Giant); + VFS_UNLOCK_GIANT(vfslocked); } if (sc->cred != NULL) crfree(sc->cred); From owner-p4-projects@FreeBSD.ORG Mon Mar 27 19:55:49 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8EBBD16A445; Mon, 27 Mar 2006 19:55:49 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6592A16A442 for ; Mon, 27 Mar 2006 19:55:49 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5E33443D97 for ; Mon, 27 Mar 2006 19:55:37 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2RJtaVr043045 for ; Mon, 27 Mar 2006 19:55:37 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2RJtaOn043042 for perforce@freebsd.org; Mon, 27 Mar 2006 19:55:36 GMT (envelope-from jhb@freebsd.org) Date: Mon, 27 Mar 2006 19:55:36 GMT Message-Id: <200603271955.k2RJtaOn043042@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 94125 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Mar 2006 19:55:49 -0000 http://perforce.freebsd.org/chv.cgi?CH=94125 Change 94125 by jhb@jhb_slimer on 2006/03/27 19:55:01 Conditionalize Giant around vn_open. Affected files ... .. //depot/projects/smpng/sys/security/audit/audit_syscalls.c#3 edit Differences ... ==== //depot/projects/smpng/sys/security/audit/audit_syscalls.c#3 (text) ==== @@ -520,7 +520,7 @@ struct ucred *cred; struct vnode *vp; int error = 0; - int flags; + int flags, vfslocked; error = suser(td); if (error) @@ -539,25 +539,21 @@ if (uap->path == NULL) return (EINVAL); - /* - * XXXAUDIT: Giant may no longer be required here. - */ - mtx_lock(&Giant); - NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF, UIO_USERSPACE, uap->path, td); + NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF | MPSAFE, UIO_USERSPACE, + uap->path, td); flags = AUDIT_OPEN_FLAGS; error = vn_open(&nd, &flags, 0, -1); - if (error) { - mtx_unlock(&Giant); - goto err_out; - } + if (error) + return (error); + vfslocked = NDHASGIANT(&nd); VOP_UNLOCK(nd.ni_vp, 0, td); vp = nd.ni_vp; if (vp->v_type != VREG) { vn_close(vp, AUDIT_CLOSE_FLAGS, td->td_ucred, td); - mtx_unlock(&Giant); - error = EINVAL; - goto err_out; + VFS_UNLOCK_GIANT(vfslocked); + return (EINVAL); } + VFS_UNLOCK_GIANT(vfslocked); cred = td->td_ucred; crhold(cred); @@ -567,10 +563,8 @@ */ audit_suspended = 0; - mtx_unlock(&Giant); audit_rotate_vnode(cred, vp); -err_out: return (error); } From owner-p4-projects@FreeBSD.ORG Mon Mar 27 21:07:04 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7B9DB16A427; Mon, 27 Mar 2006 21:07:04 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3D02016A425 for ; Mon, 27 Mar 2006 21:07:04 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E22C643D45 for ; Mon, 27 Mar 2006 21:07:03 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2RL73KD054982 for ; Mon, 27 Mar 2006 21:07:03 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2RL73Lg054979 for perforce@freebsd.org; Mon, 27 Mar 2006 21:07:03 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 27 Mar 2006 21:07:03 GMT Message-Id: <200603272107.k2RL73Lg054979@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 94126 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Mar 2006 21:07:04 -0000 http://perforce.freebsd.org/chv.cgi?CH=94126 Change 94126 by rwatson@rwatson_zoo on 2006/03/27 21:06:02 Add audit_filter.h, which defines a shared object interface for pluggable modules interested in tracking live audit records. Affected files ... .. //depot/projects/trustedbsd/openbsm/bsm/audit_filter.h#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Mon Mar 27 21:08:09 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5EB1416A429; Mon, 27 Mar 2006 21:08:09 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3D51516A427 for ; Mon, 27 Mar 2006 21:08:09 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9F39B43D49 for ; Mon, 27 Mar 2006 21:08:05 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2RL85ob055106 for ; Mon, 27 Mar 2006 21:08:05 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2RL85FE055103 for perforce@freebsd.org; Mon, 27 Mar 2006 21:08:05 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 27 Mar 2006 21:08:05 GMT Message-Id: <200603272108.k2RL85FE055103@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 94127 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Mar 2006 21:08:09 -0000 http://perforce.freebsd.org/chv.cgi?CH=94127 Change 94127 by rwatson@rwatson_zoo on 2006/03/27 21:07:12 First very basic cut at an audit filter daemon, which monitors /etc/auditpipe and feeds records to shared objects registered via /etc/security/audit_filter. Affected files ... .. //depot/projects/trustedbsd/openbsm/bin/auditfilterd/auditfilterd.8#1 add .. //depot/projects/trustedbsd/openbsm/bin/auditfilterd/auditfilterd.c#1 add .. //depot/projects/trustedbsd/openbsm/bin/auditfilterd/auditfilterd.h#1 add .. //depot/projects/trustedbsd/openbsm/bin/auditfilterd/auditfilterd_conf.c#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Mon Mar 27 21:09:13 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D8C4F16A422; Mon, 27 Mar 2006 21:09:12 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B7E2316A41F for ; Mon, 27 Mar 2006 21:09:12 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id B3F0443D64 for ; Mon, 27 Mar 2006 21:09:07 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2RL97Jf055136 for ; Mon, 27 Mar 2006 21:09:07 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2RL97gY055133 for perforce@freebsd.org; Mon, 27 Mar 2006 21:09:07 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 27 Mar 2006 21:09:07 GMT Message-Id: <200603272109.k2RL97gY055133@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 94128 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Mar 2006 21:09:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=94128 Change 94128 by rwatson@rwatson_zoo on 2006/03/27 21:08:17 Sample audit_filter configuration file. Affected files ... .. //depot/projects/trustedbsd/openbsm/etc/audit_filter#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Mon Mar 27 21:09:13 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3A06816A491; Mon, 27 Mar 2006 21:09:13 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id F283C16A458 for ; Mon, 27 Mar 2006 21:09:12 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1795643D67 for ; Mon, 27 Mar 2006 21:09:07 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2RL976l055142 for ; Mon, 27 Mar 2006 21:09:07 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2RL971N055139 for perforce@freebsd.org; Mon, 27 Mar 2006 21:09:07 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 27 Mar 2006 21:09:07 GMT Message-Id: <200603272109.k2RL971N055139@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 94129 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Mar 2006 21:09:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=94129 Change 94129 by rwatson@rwatson_zoo on 2006/03/27 21:08:48 Sample no-op audit filter module. Affected files ... .. //depot/projects/trustedbsd/openbsm/modules/auditfilter_noop/auditfilter_noop.c#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Mon Mar 27 21:16:18 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A56A016A420; Mon, 27 Mar 2006 21:16:18 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 65AD616A401 for ; Mon, 27 Mar 2006 21:16:18 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E6E3F43D6D for ; Mon, 27 Mar 2006 21:16:16 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2RLGGwC055558 for ; Mon, 27 Mar 2006 21:16:16 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2RLGGkZ055555 for perforce@freebsd.org; Mon, 27 Mar 2006 21:16:16 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 27 Mar 2006 21:16:16 GMT Message-Id: <200603272116.k2RLGGkZ055555@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 94130 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Mar 2006 21:16:18 -0000 http://perforce.freebsd.org/chv.cgi?CH=94130 Change 94130 by rwatson@rwatson_zoo on 2006/03/27 21:15:19 Don't mask global 'debug' variable with uninitialized local one. Affected files ... .. //depot/projects/trustedbsd/openbsm/bin/auditfilterd/auditfilterd.c#2 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/bin/auditfilterd/auditfilterd.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/openbsm/bin/auditfilterd/auditfilterd.c#1 $ + * $P4: //depot/projects/trustedbsd/openbsm/bin/auditfilterd/auditfilterd.c#2 $ */ #include @@ -169,7 +169,7 @@ const char *conffile; FILE *trail_fp; FILE *conf_fp; - int ch, debug; + int ch; conffile = AUDITFILTERD_CONFFILE; trailfile = AUDITFILTERD_TRAILFILE; From owner-p4-projects@FreeBSD.ORG Mon Mar 27 22:05:05 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E781316A424; Mon, 27 Mar 2006 22:05:04 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id AB91A16A400 for ; Mon, 27 Mar 2006 22:05:04 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5319B43D66 for ; Mon, 27 Mar 2006 22:05:03 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2RM53qX057667 for ; Mon, 27 Mar 2006 22:05:03 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2RM53kE057664 for perforce@freebsd.org; Mon, 27 Mar 2006 22:05:03 GMT (envelope-from jhb@freebsd.org) Date: Mon, 27 Mar 2006 22:05:03 GMT Message-Id: <200603272205.k2RM53kE057664@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 94131 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Mar 2006 22:05:05 -0000 http://perforce.freebsd.org/chv.cgi?CH=94131 Change 94131 by jhb@jhb_twclab on 2006/03/27 22:04:02 Compile. Affected files ... .. //depot/projects/smpng/sys/dev/md/md.c#76 edit Differences ... ==== //depot/projects/smpng/sys/dev/md/md.c#76 (text+ko) ==== @@ -67,6 +67,7 @@ #include #include #include +#include #include #include #include From owner-p4-projects@FreeBSD.ORG Mon Mar 27 23:05:16 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4C05A16A41F; Mon, 27 Mar 2006 23:05:16 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2471016A400 for ; Mon, 27 Mar 2006 23:05:16 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id DDB8B43D60 for ; Mon, 27 Mar 2006 23:05:15 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2RN5Fj7060144 for ; Mon, 27 Mar 2006 23:05:15 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2RN5F4U060141 for perforce@freebsd.org; Mon, 27 Mar 2006 23:05:15 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 27 Mar 2006 23:05:15 GMT Message-Id: <200603272305.k2RN5F4U060141@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 94132 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Mar 2006 23:05:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=94132 Change 94132 by rwatson@rwatson_zoo on 2006/03/27 23:04:29 Update configure.ac, Makefile.am's, for auditfilterd, sample filter module, etc. Affected files ... .. //depot/projects/trustedbsd/openbsm/Makefile.am#2 edit .. //depot/projects/trustedbsd/openbsm/bin/Makefile.am#3 edit .. //depot/projects/trustedbsd/openbsm/bin/auditfilterd/Makefile.am#1 add .. //depot/projects/trustedbsd/openbsm/bsm/Makefile.am#2 edit .. //depot/projects/trustedbsd/openbsm/modules/Makefile.am#1 add .. //depot/projects/trustedbsd/openbsm/modules/auditfilter_noop/Makefile.am#1 add Differences ... ==== //depot/projects/trustedbsd/openbsm/Makefile.am#2 (text+ko) ==== @@ -1,12 +1,13 @@ # -# $P4: //depot/projects/trustedbsd/openbsm/Makefile.am#1 $ +# $P4: //depot/projects/trustedbsd/openbsm/Makefile.am#2 $ # SUBDIRS = \ bsm \ libbsm \ bin \ - man + man \ + modules EXTRA_DIST = \ CHANGELOG \ ==== //depot/projects/trustedbsd/openbsm/bin/Makefile.am#3 (text+ko) ==== @@ -1,8 +1,9 @@ # -# $P4: //depot/projects/trustedbsd/openbsm/bin/Makefile.am#2 $ +# $P4: //depot/projects/trustedbsd/openbsm/bin/Makefile.am#3 $ # SUBDIRS = \ + auditfilterd \ auditreduce \ praudit ==== //depot/projects/trustedbsd/openbsm/bsm/Makefile.am#2 (text+ko) ==== @@ -1,11 +1,12 @@ # -# $P4: //depot/projects/trustedbsd/openbsm/bsm/Makefile.am#1 $ +# $P4: //depot/projects/trustedbsd/openbsm/bsm/Makefile.am#2 $ # openbsmdir = $(includedir)/bsm openbsm_HEADERS = \ audit.h \ + audit_filter.h \ audit_internal.h \ audit_kevents.h \ audit_record.h \ From owner-p4-projects@FreeBSD.ORG Mon Mar 27 23:26:46 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A5A2D16A420; Mon, 27 Mar 2006 23:26:46 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8205D16A401 for ; Mon, 27 Mar 2006 23:26:46 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4A0E243D64 for ; Mon, 27 Mar 2006 23:26:42 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2RNQgm6062088 for ; Mon, 27 Mar 2006 23:26:42 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2RNQfs9062084 for perforce@freebsd.org; Mon, 27 Mar 2006 23:26:41 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 27 Mar 2006 23:26:41 GMT Message-Id: <200603272326.k2RNQfs9062084@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 94133 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Mar 2006 23:26:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=94133 Change 94133 by rwatson@rwatson_zoo on 2006/03/27 23:25:43 Update configure.ac for new makefiles, regenerate. Affected files ... .. //depot/projects/trustedbsd/openbsm/Makefile.in#4 edit .. //depot/projects/trustedbsd/openbsm/bin/Makefile.in#4 edit .. //depot/projects/trustedbsd/openbsm/bsm/Makefile.in#4 edit .. //depot/projects/trustedbsd/openbsm/configure#16 edit .. //depot/projects/trustedbsd/openbsm/configure.ac#18 edit .. //depot/projects/trustedbsd/openbsm/modules/Makefile.in#1 add .. //depot/projects/trustedbsd/openbsm/modules/auditfilter_noop/Makefile.in#1 add Differences ... ==== //depot/projects/trustedbsd/openbsm/Makefile.in#4 (text+ko) ==== @@ -15,7 +15,7 @@ @SET_MAKE@ # -# $P4: //depot/projects/trustedbsd/openbsm/Makefile.in#3 $ +# $P4: //depot/projects/trustedbsd/openbsm/Makefile.in#4 $ # srcdir = @srcdir@ top_srcdir = @top_srcdir@ @@ -181,7 +181,8 @@ bsm \ libbsm \ bin \ - man + man \ + modules EXTRA_DIST = \ CHANGELOG \ ==== //depot/projects/trustedbsd/openbsm/bin/Makefile.in#4 (text+ko) ==== @@ -15,7 +15,7 @@ @SET_MAKE@ # -# $P4: //depot/projects/trustedbsd/openbsm/bin/Makefile.in#3 $ +# $P4: //depot/projects/trustedbsd/openbsm/bin/Makefile.in#4 $ # srcdir = @srcdir@ top_srcdir = @top_srcdir@ @@ -62,7 +62,7 @@ uninstall-recursive ETAGS = etags CTAGS = ctags -DIST_SUBDIRS = auditreduce praudit audit auditd +DIST_SUBDIRS = auditfilterd auditreduce praudit audit auditd DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ @@ -165,7 +165,7 @@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ -SUBDIRS = auditreduce praudit $(am__append_1) +SUBDIRS = auditfilterd auditreduce praudit $(am__append_1) all: all-recursive .SUFFIXES: ==== //depot/projects/trustedbsd/openbsm/bsm/Makefile.in#4 (text+ko) ==== @@ -15,7 +15,7 @@ @SET_MAKE@ # -# $P4: //depot/projects/trustedbsd/openbsm/bsm/Makefile.in#3 $ +# $P4: //depot/projects/trustedbsd/openbsm/bsm/Makefile.in#4 $ # srcdir = @srcdir@ @@ -168,6 +168,7 @@ openbsmdir = $(includedir)/bsm openbsm_HEADERS = \ audit.h \ + audit_filter.h \ audit_internal.h \ audit_kevents.h \ audit_record.h \ ==== //depot/projects/trustedbsd/openbsm/configure#16 (xtext) ==== @@ -22895,7 +22895,7 @@ fi - ac_config_files="$ac_config_files Makefile bin/Makefile bin/audit/Makefile bin/auditd/Makefile bin/auditreduce/Makefile bin/praudit/Makefile bsm/Makefile libbsm/Makefile man/Makefile test/Makefile test/bsm/Makefile tools/Makefile" + ac_config_files="$ac_config_files Makefile bin/Makefile bin/audit/Makefile bin/auditd/Makefile bin/auditfilterd/Makefile bin/auditreduce/Makefile bin/praudit/Makefile bsm/Makefile libbsm/Makefile modules/Makefile modules/auditfilter_noop/Makefile man/Makefile test/Makefile test/bsm/Makefile tools/Makefile" cat >confcache <<\_ACEOF @@ -23472,10 +23472,13 @@ "bin/Makefile" ) CONFIG_FILES="$CONFIG_FILES bin/Makefile" ;; "bin/audit/Makefile" ) CONFIG_FILES="$CONFIG_FILES bin/audit/Makefile" ;; "bin/auditd/Makefile" ) CONFIG_FILES="$CONFIG_FILES bin/auditd/Makefile" ;; + "bin/auditfilterd/Makefile" ) CONFIG_FILES="$CONFIG_FILES bin/auditfilterd/Makefile" ;; "bin/auditreduce/Makefile" ) CONFIG_FILES="$CONFIG_FILES bin/auditreduce/Makefile" ;; "bin/praudit/Makefile" ) CONFIG_FILES="$CONFIG_FILES bin/praudit/Makefile" ;; "bsm/Makefile" ) CONFIG_FILES="$CONFIG_FILES bsm/Makefile" ;; "libbsm/Makefile" ) CONFIG_FILES="$CONFIG_FILES libbsm/Makefile" ;; + "modules/Makefile" ) CONFIG_FILES="$CONFIG_FILES modules/Makefile" ;; + "modules/auditfilter_noop/Makefile" ) CONFIG_FILES="$CONFIG_FILES modules/auditfilter_noop/Makefile" ;; "man/Makefile" ) CONFIG_FILES="$CONFIG_FILES man/Makefile" ;; "test/Makefile" ) CONFIG_FILES="$CONFIG_FILES test/Makefile" ;; "test/bsm/Makefile" ) CONFIG_FILES="$CONFIG_FILES test/bsm/Makefile" ;; ==== //depot/projects/trustedbsd/openbsm/configure.ac#18 (text+ko) ==== @@ -3,7 +3,7 @@ AC_PREREQ(2.59) AC_INIT([OpenBSM], [1.0a5], [trustedbsd-audit@TrustesdBSD.org],[openbsm]) -AC_REVISION([$P4: //depot/projects/trustedbsd/openbsm/configure.ac#17 $]) +AC_REVISION([$P4: //depot/projects/trustedbsd/openbsm/configure.ac#18 $]) AC_CONFIG_SRCDIR([bin/auditreduce/auditreduce.c]) AC_CONFIG_AUX_DIR(config) AC_CONFIG_HEADER([config/config.h]) @@ -99,10 +99,13 @@ bin/Makefile bin/audit/Makefile bin/auditd/Makefile + bin/auditfilterd/Makefile bin/auditreduce/Makefile bin/praudit/Makefile bsm/Makefile libbsm/Makefile + modules/Makefile + modules/auditfilter_noop/Makefile man/Makefile test/Makefile test/bsm/Makefile From owner-p4-projects@FreeBSD.ORG Mon Mar 27 23:27:46 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A551616A423; Mon, 27 Mar 2006 23:27:46 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6C59D16A420 for ; Mon, 27 Mar 2006 23:27:46 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E58F143D6B for ; Mon, 27 Mar 2006 23:27:43 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2RNRhER062184 for ; Mon, 27 Mar 2006 23:27:43 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2RNRhXS062181 for perforce@freebsd.org; Mon, 27 Mar 2006 23:27:43 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 27 Mar 2006 23:27:43 GMT Message-Id: <200603272327.k2RNRhXS062181@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 94134 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Mar 2006 23:27:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=94134 Change 94134 by rwatson@rwatson_zoo on 2006/03/27 23:27:33 Add Makefile.in. Affected files ... .. //depot/projects/trustedbsd/openbsm/bin/auditfilterd/Makefile.in#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Mon Mar 27 23:31:55 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7457B16A42A; Mon, 27 Mar 2006 23:31:55 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5427716A428 for ; Mon, 27 Mar 2006 23:31:55 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 240CD43D79 for ; Mon, 27 Mar 2006 23:31:50 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2RNVn6N062536 for ; Mon, 27 Mar 2006 23:31:49 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2RNVnUr062533 for perforce@freebsd.org; Mon, 27 Mar 2006 23:31:49 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 27 Mar 2006 23:31:49 GMT Message-Id: <200603272331.k2RNVnUr062533@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 94136 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Mar 2006 23:31:55 -0000 http://perforce.freebsd.org/chv.cgi?CH=94136 Change 94136 by rwatson@rwatson_zoo on 2006/03/27 23:31:12 Use configure results for queue macro inclusion. Affected files ... .. //depot/projects/trustedbsd/openbsm/bin/auditfilterd/auditfilterd.c#3 edit .. //depot/projects/trustedbsd/openbsm/bin/auditfilterd/auditfilterd_conf.c#2 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/bin/auditfilterd/auditfilterd.c#3 (text+ko) ==== @@ -25,11 +25,18 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/openbsm/bin/auditfilterd/auditfilterd.c#2 $ + * $P4: //depot/projects/trustedbsd/openbsm/bin/auditfilterd/auditfilterd.c#3 $ */ +#include +#include + +#include +#ifdef HAVE_FULL_QUEUE_H #include -#include +#else +#include +#endif #include #include ==== //depot/projects/trustedbsd/openbsm/bin/auditfilterd/auditfilterd_conf.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/openbsm/bin/auditfilterd/auditfilterd_conf.c#1 $ + * $P4: //depot/projects/trustedbsd/openbsm/bin/auditfilterd/auditfilterd_conf.c#2 $ */ /* @@ -40,7 +40,14 @@ * and a call to its reinit method fails, we will detach it. */ +#include + +#include +#ifdef HAVE_FULL_QUEUE_H #include +#else +#include +#endif #include #include From owner-p4-projects@FreeBSD.ORG Tue Mar 28 08:32:39 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E579716A41F; Tue, 28 Mar 2006 08:32:38 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 70C5116A422 for ; Tue, 28 Mar 2006 08:32:38 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0FFAE43D5A for ; Tue, 28 Mar 2006 08:32:35 +0000 (GMT) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2S8WZx2099023 for ; Tue, 28 Mar 2006 08:32:35 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2S8WZ9T099019 for perforce@freebsd.org; Tue, 28 Mar 2006 08:32:35 GMT (envelope-from imp@freebsd.org) Date: Tue, 28 Mar 2006 08:32:35 GMT Message-Id: <200603280832.k2S8WZ9T099019@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 94146 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Mar 2006 08:32:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=94146 Change 94146 by imp@imp_hammer on 2006/03/28 08:32:00 Excess cutNpaste Affected files ... .. //depot/projects/arm/src/sys/arm/at91/at91_pdcreg.h#2 edit Differences ... ==== //depot/projects/arm/src/sys/arm/at91/at91_pdcreg.h#2 (text+ko) ==== @@ -22,7 +22,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -/* $FreeBSD: src/sys/arm/at91/at91_spireg.h,v 1.1 2006/02/04 23:32:13 imp Exp $ */ +/* $FreeBSD$ */ #ifndef ARM_AT91_AT91_PDCREG_H #define ARM_AT91_AT91_PDCREG_H From owner-p4-projects@FreeBSD.ORG Tue Mar 28 08:43:51 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F3C5C16A424; Tue, 28 Mar 2006 08:43:50 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id CDA1C16A400 for ; Tue, 28 Mar 2006 08:43:50 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8AC9843D53 for ; Tue, 28 Mar 2006 08:43:50 +0000 (GMT) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2S8hoeZ099471 for ; Tue, 28 Mar 2006 08:43:50 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2S8hoGa099467 for perforce@freebsd.org; Tue, 28 Mar 2006 08:43:50 GMT (envelope-from imp@freebsd.org) Date: Tue, 28 Mar 2006 08:43:50 GMT Message-Id: <200603280843.k2S8hoGa099467@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 94148 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Mar 2006 08:43:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=94148 Change 94148 by imp@imp_hammer on 2006/03/28 08:43:33 checkpoint Affected files ... .. //depot/projects/arm/src/sys/arm/at91/at91_usartreg.h#5 edit .. //depot/projects/arm/src/sys/arm/at91/uart_dev_at91usart.c#16 edit Differences ... ==== //depot/projects/arm/src/sys/arm/at91/at91_usartreg.h#5 (text+ko) ==== @@ -28,24 +28,24 @@ #define AT91USARTREG_H_ #define USART_CR 0x00 /* Control register */ -#define USART_CR_RSTRX (1 << 2) /* Reset Receiver */ -#define USART_CR_RSTTX (1 << 3) /* Reset Transmitter */ -#define USART_CR_RXEN (1 << 4) /* Receiver Enable */ -#define USART_CR_RXDIS (1 << 5) /* Receiver Disable */ -#define USART_CR_TXEN (1 << 6) /* Transmitter Enable */ -#define USART_CR_TXDIS (1 << 7) /* Transmitter Disable */ -#define USART_CR_RSTSTA (1 << 8) /* Reset Status Bits */ -#define USART_CR_STTBRK (1 << 9) /* Start Break */ -#define USART_CR_STPBRK (1 << 10) /* Stop Break */ -#define USART_CR_STTTO (1 << 11) /* Start Time-out */ -#define USART_CR_SENDA (1 << 12) /* Send Address */ -#define USART_CR_RSTIT (1 << 13) /* Reset Iterations */ -#define USART_CR_RSTNACK (1 << 14) /* Reset Non Acknowledge */ -#define USART_CR_RETTO (1 << 15) /* Rearm Time-out */ -#define USART_CR_DTREN (1 << 16) /* Data Terminal ready Enable */ -#define USART_CR_DTRDIS (1 << 17) /* Data Terminal ready Disable */ -#define USART_CR_RTSEN (1 << 18) /* Request to Send enable */ -#define USART_CR_RTSDIS (1 << 19) /* Request to Send Disable */ +#define USART_CR_RSTRX (1UL << 2) /* Reset Receiver */ +#define USART_CR_RSTTX (1UL << 3) /* Reset Transmitter */ +#define USART_CR_RXEN (1UL << 4) /* Receiver Enable */ +#define USART_CR_RXDIS (1UL << 5) /* Receiver Disable */ +#define USART_CR_TXEN (1UL << 6) /* Transmitter Enable */ +#define USART_CR_TXDIS (1UL << 7) /* Transmitter Disable */ +#define USART_CR_RSTSTA (1UL << 8) /* Reset Status Bits */ +#define USART_CR_STTBRK (1UL << 9) /* Start Break */ +#define USART_CR_STPBRK (1UL << 10) /* Stop Break */ +#define USART_CR_STTTO (1UL << 11) /* Start Time-out */ +#define USART_CR_SENDA (1UL << 12) /* Send Address */ +#define USART_CR_RSTIT (1UL << 13) /* Reset Iterations */ +#define USART_CR_RSTNACK (1UL << 14) /* Reset Non Acknowledge */ +#define USART_CR_RETTO (1UL << 15) /* Rearm Time-out */ +#define USART_CR_DTREN (1UL << 16) /* Data Terminal ready Enable */ +#define USART_CR_DTRDIS (1UL << 17) /* Data Terminal ready Disable */ +#define USART_CR_RTSEN (1UL << 18) /* Request to Send enable */ +#define USART_CR_RTSDIS (1UL << 19) /* Request to Send Disable */ #define USART_MR 0x04 /* Mode register */ #define USART_MR_MODE_NORMAL 0 /* Normal/Async/3-wire rs-232 */ @@ -125,24 +125,4 @@ /* 0x48 reserved */ #define USART_IFR 0x48 /* IrDA filter register */ - -#define UART_RXRDY (0x1 << 0) /* RXRDY Interrupt */ -#define UART_TXRDY (0x1 << 1) /* TXRDY Interrupt */ -#define UART_RXBRK (0x1 << 2) /* Break Received/End of Break */ -#define UART_ENDRX (0x1 << 3) /* End of Receive Transfer Interrupt */ -#define UART_ENDTX (0x1 << 4) /* End of Transmit Interrupt */ -#define UART_OVRE (0x1 << 5) /* Overrun Interrupt */ -#define UART_FRAME (0x1 << 6) /* Framing Error Interrupt */ -#define UART_PARE (0x1 << 7) /* Parity Error Interrupt */ -#define UART_TIMEOUT ( 0x1 << 8) /* (USART) Receiver Time-out */ -#define UART_TXEMPTY ( 0x1 << 9) /* (USART) TXEMPTY Interrupt */ -#define UART_ITERATION ( 0x1 << 10) /* (USART) Max number of Repetitions Reached */ -#define UART_TXBUFE ( 0x1 << 11) /* (USART) TXBUFE Interrupt */ -#define UART_RXBUFF ( 0x1 << 12) /* (USART) RXBUFF Interrupt */ -#define UART_NACK ( 0x1 << 13) /* (USART) Non Acknowledge */ -#define UART_RIIC ( 0x1 << 16) /* (USART) Ring INdicator Input Change Flag */ -#define AT91RM92_US_DSRIC ( 0x1 << 17) /* (USART) Data Set Ready Input Change Flag */ -#define AT91RM92_US_DCDIC ( 0x1 << 18) /* (USART) Data Carrier Flag */ -#define AT91RM92_US_CTSIC ( 0x1 << 19) /* (USART) Clear To Send Input Change Flag */ - #endif /* AT91RM92REG_H_ */ ==== //depot/projects/arm/src/sys/arm/at91/uart_dev_at91usart.c#16 (text+ko) ==== @@ -274,8 +274,8 @@ static int at91_usart_bus_attach(struct uart_softc *sc) { - sc->sc_txfifosz = 32; - sc->sc_rxfifosz = 1; + sc->sc_txfifosz = 128; /* Really 64k, but 128 seems a good number */ + sc->sc_rxfifosz = 128; sc->sc_hwiflow = 0; return (0); } @@ -287,8 +287,15 @@ /* XXX VERY sub-optimial */ mtx_lock_spin(&sc->sc_hwmtx); sc->sc_txbusy = 1; +#if 0 + /* XXX + * We can setup the PDC to transfer the whole buffer + * here. + */ +#else for (i = 0; i < sc->sc_txdatasz; i++) at91_usart_putc(&sc->sc_bas, sc->sc_txbuf[i]); +#endif mtx_unlock_spin(&sc->sc_hwmtx); #ifdef USART0_CONSOLE /* From owner-p4-projects@FreeBSD.ORG Tue Mar 28 10:39:56 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4CF5F16A425; Tue, 28 Mar 2006 10:39:56 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0916A16A423 for ; Tue, 28 Mar 2006 10:39:56 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A96CD43D49 for ; Tue, 28 Mar 2006 10:39:55 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2SAdtDm012406 for ; Tue, 28 Mar 2006 10:39:55 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2SAdsx9012403 for perforce@freebsd.org; Tue, 28 Mar 2006 10:39:54 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 28 Mar 2006 10:39:54 GMT Message-Id: <200603281039.k2SAdsx9012403@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 94153 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Mar 2006 10:39:56 -0000 http://perforce.freebsd.org/chv.cgi?CH=94153 Change 94153 by rwatson@rwatson_sesame on 2006/03/28 10:38:57 Conditionalize generating test token files on '-t', and record files on '-r'. Affected files ... .. //depot/projects/trustedbsd/openbsm/test/bsm/generate.c#3 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/test/bsm/generate.c#3 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/openbsm/test/bsm/generate.c#2 $ + * $P4: //depot/projects/trustedbsd/openbsm/test/bsm/generate.c#3 $ */ /* @@ -52,11 +52,13 @@ #include #include +static int do_records, do_tokens; + static void usage(void) { - fprintf(stderr, "generate path\n"); + fprintf(stderr, "generate [-rt] path\n"); exit(EX_USAGE); } @@ -185,8 +187,7 @@ static char data_token_unit_count = sizeof("SomeData") + 1; static void -generate_data_token(const char *directory, const char *token_filename, - const char *record_filename) +generate_data_token(const char *directory, const char *token_filename) { token_t *data_token; @@ -195,7 +196,13 @@ if (data_token == NULL) err(EX_UNAVAILABLE, "au_to_data"); write_token(directory, token_filename, data_token); +} +static void +generate_data_record(const char *directory, const char *record_filename) +{ + token_t *data_token; + data_token = au_to_data(data_token_unit_print, data_token_unit_type, data_token_unit_count, data_token_data); if (data_token == NULL) @@ -207,8 +214,7 @@ static int ipc_id = 0x12345678; static void -generate_ipc_token(const char *directory, const char *token_filename, - const char *record_filename) +generate_ipc_token(const char *directory, const char *token_filename) { token_t *ipc_token; @@ -216,7 +222,13 @@ if (ipc_token == NULL) err(EX_UNAVAILABLE, "au_to_ipc"); write_token(directory, token_filename, ipc_token); +} +static void +generate_ipc_record(const char *directory, const char *record_filename) +{ + token_t *ipc_token; + ipc_token = au_to_ipc(ipc_type, ipc_id); if (ipc_token == NULL) err(EX_UNAVAILABLE, "au_to_ipc"); @@ -226,8 +238,7 @@ static char *path_token_path = "/test/this/is/a/test"; static void -generate_path_token(const char *directory, const char *token_filename, - const char *record_filename) +generate_path_token(const char *directory, const char *token_filename) { token_t *path_token; @@ -235,7 +246,13 @@ if (path_token == NULL) err(EX_UNAVAILABLE, "au_to_path"); write_token(directory, token_filename, path_token); +} +static void +generate_path_record(const char *directory, const char *record_filename) +{ + token_t *path_token; + path_token = au_to_path(path_token_path); if (path_token == NULL) err(EX_UNAVAILABLE, "au_to_path"); @@ -252,8 +269,7 @@ static au_tid_t subject32_tid = { 0x16593746 }; static void -generate_subject32_token(const char *directory, const char *token_filename, - const char *record_filename) +generate_subject32_token(const char *directory, const char *token_filename) { token_t *subject32_token; @@ -265,7 +281,15 @@ if (subject32_token == NULL) err(EX_UNAVAILABLE, "au_to_subject32"); write_token(directory, token_filename, subject32_token); +} +static void +generate_subject32_record(const char *directory, const char *record_filename) +{ + token_t *subject32_token; + + subject32_tid.machine = inet_addr("127.0.0.1"); + subject32_token = au_to_subject32(subject32_auid, subject32_euid, subject32_egid, subject32_ruid, subject32_rgid, subject32_pid, subject32_sid, &subject32_tid); @@ -284,8 +308,7 @@ static au_tid_t process32_tid = { 0x16593746 }; static void -generate_process32_token(const char *directory, const char *token_filename, - const char *record_filename) +generate_process32_token(const char *directory, const char *token_filename) { token_t *process32_token; @@ -297,6 +320,14 @@ if (process32_token == NULL) err(EX_UNAVAILABLE, "au_to_process32"); write_token(directory, token_filename, process32_token); +} + +static void +generate_process32_record(const char *directory, const char *record_filename) +{ + token_t *process32_token; + + process32_tid.machine = inet_addr("127.0.0.1"); process32_token = au_to_process32(process32_auid, process32_euid, process32_egid, process32_ruid, process32_rgid, process32_pid, @@ -310,8 +341,7 @@ static uint32_t return32_ret = 0x12345678; static void -generate_return32_token(const char *directory, const char *token_filename, - const char *record_filename) +generate_return32_token(const char *directory, const char *token_filename) { token_t *return32_token; @@ -319,6 +349,12 @@ if (return32_token == NULL) err(EX_UNAVAILABLE, "au_to_return32"); write_token(directory, token_filename, return32_token); +} + +static void +generate_return32_record(const char *directory, const char *record_filename) +{ + token_t *return32_token; return32_token = au_to_return32(return32_status, return32_ret); if (return32_token == NULL) @@ -329,8 +365,7 @@ static char *text_token_text = "This is a test."; static void -generate_text_token(const char *directory, const char *token_filename, - const char *record_filename) +generate_text_token(const char *directory, const char *token_filename) { token_t *text_token; @@ -338,7 +373,13 @@ if (text_token == NULL) err(EX_UNAVAILABLE, "au_to_text"); write_token(directory, token_filename, text_token); +} +static void +generate_text_record(const char *directory, const char *record_filename) +{ + token_t *text_token; + text_token = au_to_text(text_token_text); if (text_token == NULL) err(EX_UNAVAILABLE, "au_to_text"); @@ -349,8 +390,7 @@ static int opaque_token_bytes = sizeof(opaque_token_data); static void -generate_opaque_token(const char *directory, const char *token_filename, - const char *record_filename) +generate_opaque_token(const char *directory, const char *token_filename) { token_t *opaque_token; @@ -358,6 +398,12 @@ if (opaque_token == NULL) err(EX_UNAVAILABLE, "au_to_opaque"); write_token(directory, token_filename, opaque_token); +} + +static void +generate_opaque_record(const char *directory, const char *record_filename) +{ + token_t *opaque_token; opaque_token = au_to_opaque(opaque_token_data, opaque_token_bytes); if (opaque_token == NULL) @@ -368,8 +414,7 @@ static struct in_addr in_addr_token_addr; static void -generate_in_addr_token(const char *directory, const char *token_filename, - const char *record_filename) +generate_in_addr_token(const char *directory, const char *token_filename) { token_t *in_addr_token; @@ -379,6 +424,14 @@ if (in_addr_token == NULL) err(EX_UNAVAILABLE, "au_to_in_addr"); write_token(directory, token_filename, in_addr_token); +} + +static void +generate_in_addr_record(const char *directory, const char *record_filename) +{ + token_t *in_addr_token; + + in_addr_token_addr.s_addr = inet_addr("192.168.100.15"); in_addr_token = au_to_in_addr(&in_addr_token_addr); if (in_addr_token == NULL) @@ -395,8 +448,7 @@ static struct in_addr ip_token_ip_dst; static void -generate_ip_token(const char *directory, const char *token_filename, - const char *record_filename) +generate_ip_token(const char *directory, const char *token_filename) { token_t *ip_token; @@ -416,7 +468,25 @@ if (ip_token == NULL) err(EX_UNAVAILABLE, "au_to_ip"); write_token(directory, token_filename, ip_token); +} + +static void +generate_ip_record(const char *directory, const char *record_filename) +{ + token_t *ip_token; + ip_token_ip_src.s_addr = inet_addr("192.168.100.155"); + ip_token_ip_dst.s_addr = inet_addr("192.168.110.48"); + + memset(&ip_token_ip, 0, sizeof(ip_token_ip)); + ip_token_ip.ip_v = ip_token_ip_v; + ip_token_ip.ip_len = htons(sizeof(ip_token_ip)); + ip_token_ip.ip_id = htons(ip_token_ip_id); + ip_token_ip.ip_ttl = ip_token_ip_ttl; + ip_token_ip.ip_p = ip_token_ip_p; + ip_token_ip.ip_src = ip_token_ip_src; + ip_token_ip.ip_dst = ip_token_ip_dst; + ip_token = au_to_ip(&ip_token_ip); if (ip_token == NULL) err(EX_UNAVAILABLE, "au_to_ip"); @@ -426,8 +496,7 @@ static u_int16_t iport_token_iport; static void -generate_iport_token(const char *directory, const char *token_filename, - const char *record_filename) +generate_iport_token(const char *directory, const char *token_filename) { token_t *iport_token; @@ -437,7 +506,15 @@ if (iport_token == NULL) err(EX_UNAVAILABLE, "au_to_iport"); write_token(directory, token_filename, iport_token); +} +static void +generate_iport_record(const char *directory, const char *record_filename) +{ + token_t *iport_token; + + iport_token_iport = htons(80); + iport_token = au_to_iport(iport_token_iport); if (iport_token == NULL) err(EX_UNAVAILABLE, "au_to_iport"); @@ -449,8 +526,7 @@ static uint32_t arg32_token_v = 0xabcdef00; static void -generate_arg32_token(const char *directory, const char *token_filename, - const char *record_filename) +generate_arg32_token(const char *directory, const char *token_filename) { token_t *arg32_token; @@ -459,7 +535,13 @@ if (arg32_token == NULL) err(EX_UNAVAILABLE, "au_to_arg32"); write_token(directory, token_filename, arg32_token); +} +static void +generate_arg32_record(const char *directory, const char *record_filename) +{ + token_t *arg32_token; + arg32_token = au_to_arg32(arg32_token_n, arg32_token_text, arg32_token_v); if (arg32_token == NULL) @@ -467,12 +549,28 @@ write_record(directory, record_filename, arg32_token, AUE_NULL); } +static long seq_audit_count = 0x12345678; + +static void +generate_seq_token(const char *directory, const char *token_filename) +{ + token_t *seq_token; + + seq_token = au_to_seq(seq_audit_count); + if (seq_token == NULL) + err(EX_UNAVAILABLE, "au_to_seq"); + write_token(directory, token_filename, seq_token); +} + static void -generate_seq_token(const char *directory, const char *token_filename, - const char *record_filename) +generate_seq_record(const char *directory, const char *record_filename) { token_t *seq_token; + seq_token = au_to_seq(seq_audit_count); + if (seq_token == NULL) + err(EX_UNAVAILABLE, "au_to_seq"); + write_record(directory, record_filename, seq_token, AUE_NULL); } /* @@ -480,16 +578,28 @@ */ static void -generate_attr_token(const char *directory, const char *token_filename, - const char *record_filename) +generate_attr_token(const char *directory, const char *token_filename) +{ + token_t *attr_token; + +} + +static void +generate_attr_record(const char *directory, const char *record_filename) { token_t *attr_token; } static void -generate_ipc_perm_token(const char *directory, const char *token_filename, - const char *record_filename) +generate_ipc_perm_token(const char *directory, const char *token_filename) +{ + token_t *ipc_perm_token; + +} + +static void +generate_ipc_perm_record(const char *directory, const char *record_filename) { token_t *ipc_perm_token; @@ -500,8 +610,14 @@ */ static void -generate_groups_token(const char *directory, const char *token_filename, - const char *record_filename) +generate_groups_token(const char *directory, const char *token_filename) +{ + token_t *groups_token; + +} + +static void +generate_groups_record(const char *directory, const char *record_filename) { token_t *groups_token; @@ -544,8 +660,14 @@ */ static void -generate_attr32_token(const char *directory, const char *token_filename, - const char *record_filename) +generate_attr32_token(const char *directory, const char *token_filename) +{ + token_t *attr32_token; + +} + +static void +generate_attr32_record(const char *directory, const char *record_filename) { token_t *attr32_token; @@ -555,41 +677,79 @@ main(int argc, char *argv[]) { const char *directory; + int ch; + + while ((ch = getopt(argc, argv, "rt")) != -1) { + switch (ch) { + case 'r': + do_records++; + break; + + case 't': + do_tokens++; + break; + + default: + usage(); + } + } - if (argc != 2) + argc -= optind; + argv += optind; + + if (argc != 1) usage(); - directory = argv[1]; + directory = argv[0]; if (mkdir(directory, 0755) < 0 && errno != EEXIST) err(EX_OSERR, "mkdir: %s", directory); - generate_file_token(directory, "file_token"); - generate_trailer_token(directory, "trailer_token"); - generate_header32_token(directory, "header32_token"); - generate_data_token(directory, "data_token", "data_record"); - generate_ipc_token(directory, "ipc_token", "ipc_record"); - generate_path_token(directory, "path_token", "path_record"); - generate_subject32_token(directory, "subject32_token", - "subject32_record"); - generate_process32_token(directory, "process32_token", - "process32_record"); - generate_return32_token(directory, "return32_token", - "return32_record"); - generate_text_token(directory, "text_token", "text_record"); - generate_opaque_token(directory, "opaque_token", "opaque_record"); - generate_in_addr_token(directory, "in_addr_token", "in_addr_record"); - generate_ip_token(directory, "ip_token", "ip_record"); - generate_iport_token(directory, "iport_token", "iport_record"); + if (do_tokens) { + generate_file_token(directory, "file_token"); + generate_trailer_token(directory, "trailer_token"); + generate_header32_token(directory, "header32_token"); + generate_data_token(directory, "data_token"); + generate_ipc_token(directory, "ipc_token"); + generate_path_token(directory, "path_token"); + generate_subject32_token(directory, "subject32_token"); + generate_process32_token(directory, "process32_token"); + generate_return32_token(directory, "return32_token"); + generate_text_token(directory, "text_token"); + generate_opaque_token(directory, "opaque_token"); + generate_in_addr_token(directory, "in_addr_token"); + generate_ip_token(directory, "ip_token"); + generate_iport_token(directory, "iport_token"); + generate_arg32_token(directory, "arg32_token"); + generate_seq_token(directory, "seq_token"); + generate_attr_token(directory, "attr_token"); + generate_ipc_perm_token(directory, "ipc_perm_token"); + generate_groups_token(directory, "groups_token"); + generate_attr32_token(directory, "attr32_token"); + } - generate_arg32_token(directory, "arg32_token", "arg32_record"); - generate_seq_token(directory, "seq_token", "seq_record"); - generate_attr_token(directory, "attr_token", "attr_record"); - generate_ipc_perm_token(directory, "ipc_perm_token", - "ipc_perm_record"); - generate_groups_token(directory, "groups_token", "groups_record"); - generate_attr32_token(directory, "attr32_token", "attr32_record"); - + if (do_records) { + generate_file_token(directory, "file_token"); + generate_trailer_token(directory, "trailer_token"); + generate_header32_token(directory, "header32_token"); + generate_data_token(directory, "data_record"); + generate_ipc_token(directory, "ipc_record"); + generate_path_token(directory, "path_record"); + generate_subject32_token(directory, "subject32_record"); + generate_process32_token(directory, "process32_record"); + generate_return32_token(directory, "return32_record"); + generate_text_token(directory, "text_record"); + generate_opaque_token(directory, "opaque_record"); + generate_in_addr_token(directory, "in_addr_record"); + generate_ip_token(directory, "ip_record"); + generate_iport_token(directory, "iport_record"); + generate_arg32_token(directory, "arg32_record"); + generate_seq_token(directory, "seq_record"); + generate_attr_token(directory, "attr_record"); + generate_ipc_perm_token(directory, "ipc_perm_record"); + generate_groups_token(directory, "groups_record"); + generate_attr32_token(directory, "attr32_record"); + } return (0); } From owner-p4-projects@FreeBSD.ORG Tue Mar 28 11:56:13 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0B03516A420; Tue, 28 Mar 2006 11:56:13 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C67A816A400 for ; Tue, 28 Mar 2006 11:56:12 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7FF8F43D46 for ; Tue, 28 Mar 2006 11:56:12 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2SBuC0U016287 for ; Tue, 28 Mar 2006 11:56:12 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2SBuC2C016273 for perforce@freebsd.org; Tue, 28 Mar 2006 11:56:12 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 28 Mar 2006 11:56:12 GMT Message-Id: <200603281156.k2SBuC2C016273@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 94156 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Mar 2006 11:56:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=94156 Change 94156 by rwatson@rwatson_zoo on 2006/03/28 11:56:08 Don't test for -lbsm, since we're going to use our own copy anyway. Do test for dlsym() in libc, then libdl, since that's required on Linux. Affected files ... .. //depot/projects/trustedbsd/openbsm/config/config.h.in#7 edit .. //depot/projects/trustedbsd/openbsm/configure#17 edit .. //depot/projects/trustedbsd/openbsm/configure.ac#19 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/config/config.h.in#7 (text+ko) ==== @@ -42,9 +42,6 @@ /* Define if ipc_perm.__seq instead of seq */ #undef HAVE_IPC_PERM___SEQ -/* Define to 1 if you have the `bsm' library (-lbsm). */ -#undef HAVE_LIBBSM - /* Define to 1 if you have the header file. */ #undef HAVE_MACHINE_ENDIAN_H ==== //depot/projects/trustedbsd/openbsm/configure#17 (xtext) ==== @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.ac P4: //depot/projects/trustedbsd/openbsm/configure.ac#17 . +# From configure.ac P4: //depot/projects/trustedbsd/openbsm/configure.ac#18 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.59 for OpenBSM 1.0a5. # @@ -19627,16 +19627,13 @@ -# Checks for libraries. -# FIXME: Replace `main' with a function in `-lbsm': - -echo "$as_me:$LINENO: checking for main in -lbsm" >&5 -echo $ECHO_N "checking for main in -lbsm... $ECHO_C" >&6 -if test "${ac_cv_lib_bsm_main+set}" = set; then +echo "$as_me:$LINENO: checking for library containing dlsym" >&5 +echo $ECHO_N "checking for library containing dlsym... $ECHO_C" >&6 +if test "${ac_cv_search_dlsym+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lbsm $LIBS" + ac_func_search_save_LIBS=$LIBS +ac_cv_search_dlsym=no cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -19644,11 +19641,72 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char dlsym (); +int +main () +{ +dlsym (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_search_dlsym="none required" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test "$ac_cv_search_dlsym" = no; then + for ac_lib in -ldl; do + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char dlsym (); int main () { -main (); +dlsym (); ; return 0; } @@ -19675,25 +19733,23 @@ ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_lib_bsm_main=yes + ac_cv_search_dlsym="-l$ac_lib" +break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_lib_bsm_main=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + done +fi +LIBS=$ac_func_search_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_lib_bsm_main" >&5 -echo "${ECHO_T}$ac_cv_lib_bsm_main" >&6 -if test $ac_cv_lib_bsm_main = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBBSM 1 -_ACEOF - - LIBS="-lbsm $LIBS" +echo "$as_me:$LINENO: result: $ac_cv_search_dlsym" >&5 +echo "${ECHO_T}$ac_cv_search_dlsym" >&6 +if test "$ac_cv_search_dlsym" != no; then + test "$ac_cv_search_dlsym" = "none required" || LIBS="$ac_cv_search_dlsym $LIBS" fi ==== //depot/projects/trustedbsd/openbsm/configure.ac#19 (text+ko) ==== @@ -3,7 +3,7 @@ AC_PREREQ(2.59) AC_INIT([OpenBSM], [1.0a5], [trustedbsd-audit@TrustesdBSD.org],[openbsm]) -AC_REVISION([$P4: //depot/projects/trustedbsd/openbsm/configure.ac#18 $]) +AC_REVISION([$P4: //depot/projects/trustedbsd/openbsm/configure.ac#19 $]) AC_CONFIG_SRCDIR([bin/auditreduce/auditreduce.c]) AC_CONFIG_AUX_DIR(config) AC_CONFIG_HEADER([config/config.h]) @@ -16,9 +16,7 @@ AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION) -# Checks for libraries. -# FIXME: Replace `main' with a function in `-lbsm': -AC_CHECK_LIB([bsm], [main]) +AC_SEARCH_LIBS(dlsym, -ldl,,) # Checks for header files. AC_HEADER_STDC From owner-p4-projects@FreeBSD.ORG Tue Mar 28 12:06:16 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 196CB16A41F; Tue, 28 Mar 2006 12:06:16 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E610A16A400 for ; Tue, 28 Mar 2006 12:06:15 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6B85843D58 for ; Tue, 28 Mar 2006 12:06:15 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2SC6FVg016943 for ; Tue, 28 Mar 2006 12:06:15 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2SC6ER3016940 for perforce@freebsd.org; Tue, 28 Mar 2006 12:06:15 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 28 Mar 2006 12:06:15 GMT Message-Id: <200603281206.k2SC6ER3016940@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 94157 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Mar 2006 12:06:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=94157 Change 94157 by rwatson@rwatson_zoo on 2006/03/28 12:05:18 Try alternative invocation with more configure-happy syntax. Affected files ... .. //depot/projects/trustedbsd/openbsm/configure#18 edit .. //depot/projects/trustedbsd/openbsm/configure.ac#20 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/configure#18 (xtext) ==== @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.ac P4: //depot/projects/trustedbsd/openbsm/configure.ac#18 . +# From configure.ac P4: //depot/projects/trustedbsd/openbsm/configure.ac#19 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.59 for OpenBSM 1.0a5. # @@ -19687,7 +19687,7 @@ rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "$ac_cv_search_dlsym" = no; then - for ac_lib in -ldl; do + for ac_lib in dl; do LIBS="-l$ac_lib $ac_func_search_save_LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ ==== //depot/projects/trustedbsd/openbsm/configure.ac#20 (text+ko) ==== @@ -3,7 +3,7 @@ AC_PREREQ(2.59) AC_INIT([OpenBSM], [1.0a5], [trustedbsd-audit@TrustesdBSD.org],[openbsm]) -AC_REVISION([$P4: //depot/projects/trustedbsd/openbsm/configure.ac#19 $]) +AC_REVISION([$P4: //depot/projects/trustedbsd/openbsm/configure.ac#20 $]) AC_CONFIG_SRCDIR([bin/auditreduce/auditreduce.c]) AC_CONFIG_AUX_DIR(config) AC_CONFIG_HEADER([config/config.h]) @@ -16,7 +16,7 @@ AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION) -AC_SEARCH_LIBS(dlsym, -ldl,,) +AC_SEARCH_LIBS(dlsym, dl) # Checks for header files. AC_HEADER_STDC From owner-p4-projects@FreeBSD.ORG Tue Mar 28 12:15:52 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 157B516A420; Tue, 28 Mar 2006 12:15:52 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C350816A401 for ; Tue, 28 Mar 2006 12:15:51 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7DCD343D46 for ; Tue, 28 Mar 2006 12:15:51 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2SCFpBu017869 for ; Tue, 28 Mar 2006 12:15:51 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2SCFpU7017866 for perforce@freebsd.org; Tue, 28 Mar 2006 12:15:51 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 28 Mar 2006 12:15:51 GMT Message-Id: <200603281215.k2SCFpU7017866@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 94159 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Mar 2006 12:15:52 -0000 http://perforce.freebsd.org/chv.cgi?CH=94159 Change 94159 by rwatson@rwatson_zoo on 2006/03/28 12:15:20 Check for clock_gettime() in libc and librt. Affected files ... .. //depot/projects/trustedbsd/openbsm/configure#19 edit .. //depot/projects/trustedbsd/openbsm/configure.ac#21 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/configure#19 (xtext) ==== @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.ac P4: //depot/projects/trustedbsd/openbsm/configure.ac#19 . +# From configure.ac P4: //depot/projects/trustedbsd/openbsm/configure.ac#20 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.59 for OpenBSM 1.0a5. # @@ -19753,6 +19753,132 @@ fi +echo "$as_me:$LINENO: checking for library containing clock_gettime" >&5 +echo $ECHO_N "checking for library containing clock_gettime... $ECHO_C" >&6 +if test "${ac_cv_search_clock_gettime+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_func_search_save_LIBS=$LIBS +ac_cv_search_clock_gettime=no +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char clock_gettime (); +int +main () +{ +clock_gettime (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_search_clock_gettime="none required" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test "$ac_cv_search_clock_gettime" = no; then + for ac_lib in rt; do + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char clock_gettime (); +int +main () +{ +clock_gettime (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_search_clock_gettime="-l$ac_lib" +break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + done +fi +LIBS=$ac_func_search_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_search_clock_gettime" >&5 +echo "${ECHO_T}$ac_cv_search_clock_gettime" >&6 +if test "$ac_cv_search_clock_gettime" != no; then + test "$ac_cv_search_clock_gettime" = "none required" || LIBS="$ac_cv_search_clock_gettime $LIBS" + +fi + # Checks for header files. echo "$as_me:$LINENO: checking for ANSI C header files" >&5 ==== //depot/projects/trustedbsd/openbsm/configure.ac#21 (text+ko) ==== @@ -3,7 +3,7 @@ AC_PREREQ(2.59) AC_INIT([OpenBSM], [1.0a5], [trustedbsd-audit@TrustesdBSD.org],[openbsm]) -AC_REVISION([$P4: //depot/projects/trustedbsd/openbsm/configure.ac#20 $]) +AC_REVISION([$P4: //depot/projects/trustedbsd/openbsm/configure.ac#21 $]) AC_CONFIG_SRCDIR([bin/auditreduce/auditreduce.c]) AC_CONFIG_AUX_DIR(config) AC_CONFIG_HEADER([config/config.h]) @@ -17,6 +17,7 @@ AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION) AC_SEARCH_LIBS(dlsym, dl) +AC_SEARCH_LIBS(clock_gettime, rt) # Checks for header files. AC_HEADER_STDC From owner-p4-projects@FreeBSD.ORG Tue Mar 28 13:32:31 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C357F16A422; Tue, 28 Mar 2006 13:32:31 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 86C3616A41F for ; Tue, 28 Mar 2006 13:32:31 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4D87E43D45 for ; Tue, 28 Mar 2006 13:32:31 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2SDWVUr029008 for ; Tue, 28 Mar 2006 13:32:31 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2SDWVBa029005 for perforce@freebsd.org; Tue, 28 Mar 2006 13:32:31 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 28 Mar 2006 13:32:31 GMT Message-Id: <200603281332.k2SDWVBa029005@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 94164 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Mar 2006 13:32:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=94164 Change 94164 by rwatson@rwatson_zoo on 2006/03/28 13:31:30 Add auditfilterd and audit filters to the history file. Affected files ... .. //depot/projects/trustedbsd/openbsm/HISTORY#11 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/HISTORY#11 (text+ko) ==== @@ -31,6 +31,11 @@ This code is not built or installed by default. - auditd now assigns more appropriate syslog levels to its debugging and error information. +- Support for audit filters introduced: audit filters are dynamically + loaded shared objects that run in the context of a new daemon, + auditfilterd. The daemon reads from an audit pipe and feeds both BSM and + parsed versions of records to shared objects using a module API. This + will provide a framework for the writing of intrusion detection services. OpenBSM 1.0 alpha 5 @@ -158,4 +163,4 @@ to support reloading of kernel event table. - Allow comments in /etc/security configuration files. -$P4: //depot/projects/trustedbsd/openbsm/HISTORY#10 $ +$P4: //depot/projects/trustedbsd/openbsm/HISTORY#11 $ From owner-p4-projects@FreeBSD.ORG Tue Mar 28 13:36:37 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 48E8D16A422; Tue, 28 Mar 2006 13:36:37 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0D03E16A400 for ; Tue, 28 Mar 2006 13:36:37 +0000 (UTC) (envelope-from brueffer@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id C9C3C43D55 for ; Tue, 28 Mar 2006 13:36:36 +0000 (GMT) (envelope-from brueffer@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2SDaagZ029137 for ; Tue, 28 Mar 2006 13:36:36 GMT (envelope-from brueffer@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2SDaaL0029134 for perforce@freebsd.org; Tue, 28 Mar 2006 13:36:36 GMT (envelope-from brueffer@freebsd.org) Date: Tue, 28 Mar 2006 13:36:36 GMT Message-Id: <200603281336.k2SDaaL0029134@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to brueffer@freebsd.org using -f From: Christian Brueffer To: Perforce Change Reviews Cc: Subject: PERFORCE change 94165 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Mar 2006 13:36:37 -0000 http://perforce.freebsd.org/chv.cgi?CH=94165 Change 94165 by brueffer@brueffer_serenity on 2006/03/28 13:35:41 Remove a superfluous .Bl macro that messed up formatting. Affected files ... .. //depot/projects/trustedbsd/openbsm/bin/auditfilterd/auditfilterd.8#2 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/bin/auditfilterd/auditfilterd.8#2 (text+ko) ==== @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $P4: //depot/projects/trustedbsd/openbsm/bin/auditfilterd/auditfilterd.8#1 $ +.\" $P4: //depot/projects/trustedbsd/openbsm/bin/auditfilterd/auditfilterd.8#2 $ .\" .Dd March 27, 2006 .Dt AUDITFILTERD 8 @@ -59,7 +59,6 @@ .It Pa /etc/security/audit_filterd Default configuration file for .Nm . -.Bl -tag -width "/dev/auditpipe" -compact .It Pa /dev/auditpipe Default audit record source for .Nm . From owner-p4-projects@FreeBSD.ORG Tue Mar 28 15:17:41 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4A67416A423; Tue, 28 Mar 2006 15:17:41 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1009816A41F for ; Tue, 28 Mar 2006 15:17:41 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9EBF043D48 for ; Tue, 28 Mar 2006 15:17:40 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2SFHeJu033256 for ; Tue, 28 Mar 2006 15:17:40 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2SFHe92033253 for perforce@freebsd.org; Tue, 28 Mar 2006 15:17:40 GMT (envelope-from jhb@freebsd.org) Date: Tue, 28 Mar 2006 15:17:40 GMT Message-Id: <200603281517.k2SFHe92033253@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 94170 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Mar 2006 15:17:41 -0000 http://perforce.freebsd.org/chv.cgi?CH=94170 Change 94170 by jhb@jhb_twclab on 2006/03/28 15:17:18 Don't do locking until we've stopped adding linker classes and fix the assertion to take that into account. Affected files ... .. //depot/projects/smpng/sys/kern/kern_linker.c#47 edit Differences ... ==== //depot/projects/smpng/sys/kern/kern_linker.c#47 (text+ko) ==== @@ -63,7 +63,7 @@ #define KLD_LOCK() do { sx_xlock(&kld_sx); mtx_lock(&Giant); } while (0) #define KLD_UNLOCK() do { mtx_unlock(&Giant); sx_xunlock(&kld_sx); } while (0) -#define KLD_LOCK_ASSERT() sx_assert(&kld_sx, SX_XLOCKED) +#define KLD_LOCK_ASSERT() do { if (linker_no_more_classes) sx_assert(&kld_sx, SX_XLOCKED); } while (0) /* * static char *linker_search_path(const char *name, struct mod_depend @@ -1222,7 +1222,6 @@ modlist_t mod; struct sysinit **si_start, **si_stop; - KLD_LOCK(); TAILQ_INIT(&loaded_files); TAILQ_INIT(&depended_files); TAILQ_INIT(&found_modules); @@ -1399,7 +1398,6 @@ linker_file_register_sysctls(lf); lf->flags |= LINKER_FILE_LINKED; } - KLD_UNLOCK(); /* woohoo! we made it! */ } From owner-p4-projects@FreeBSD.ORG Tue Mar 28 15:21:46 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 747DC16A424; Tue, 28 Mar 2006 15:21:46 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 538E516A422 for ; Tue, 28 Mar 2006 15:21:46 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E9CF943D48 for ; Tue, 28 Mar 2006 15:21:45 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2SFLjdk033542 for ; Tue, 28 Mar 2006 15:21:45 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2SFLjJE033539 for perforce@freebsd.org; Tue, 28 Mar 2006 15:21:45 GMT (envelope-from jhb@freebsd.org) Date: Tue, 28 Mar 2006 15:21:45 GMT Message-Id: <200603281521.k2SFLjJE033539@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 94171 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Mar 2006 15:21:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=94171 Change 94171 by jhb@jhb_slimer on 2006/03/28 15:21:11 Add an internal (locked) version of linker_file_lookup_symbol(). Affected files ... .. //depot/projects/smpng/sys/kern/kern_linker.c#48 edit .. //depot/projects/smpng/sys/sys/linker.h#18 edit Differences ... ==== //depot/projects/smpng/sys/kern/kern_linker.c#48 (text+ko) ==== @@ -635,13 +635,25 @@ caddr_t linker_file_lookup_symbol(linker_file_t file, const char *name, int deps) { + caddr_t sym; + + KLD_LOCK(); + sym = linker_file_lookup_symbol_internal(file, name, deps); + KLD_UNLOCK(); + return (sym); +} + +caddr_t +linker_file_lookup_symbol_internal(linker_file_t file, const char *name, + int deps) +{ c_linker_sym_t sym; linker_symval_t symval; caddr_t address; size_t common_size = 0; int i; - KLD_LOCK(); + KLD_LOCK_ASSERT(); KLD_DPF(SYM, ("linker_file_lookup_symbol: file=%p, name=%s, deps=%d\n", file, name, deps)); @@ -657,7 +669,6 @@ else { KLD_DPF(SYM, ("linker_file_lookup_symbol: symbol" ".value=%p\n", symval.value)); - KLD_UNLOCK(); return (symval.value); } } @@ -668,7 +679,6 @@ if (address) { KLD_DPF(SYM, ("linker_file_lookup_symbol:" " deps value=%p\n", address)); - KLD_UNLOCK(); return (address); } } @@ -685,7 +695,6 @@ if (strcmp(cp->name, name) == 0) { KLD_DPF(SYM, ("linker_file_lookup_symbol:" " old common value=%p\n", cp->address)); - KLD_UNLOCK(); return (cp->address); } } @@ -704,10 +713,8 @@ KLD_DPF(SYM, ("linker_file_lookup_symbol: new common" " value=%p\n", cp->address)); - KLD_UNLOCK(); return (cp->address); } - KLD_UNLOCK(); KLD_DPF(SYM, ("linker_file_lookup_symbol: fail\n")); return (0); } ==== //depot/projects/smpng/sys/sys/linker.h#18 (text+ko) ==== @@ -146,6 +146,8 @@ * Functions soley for use by the linker class handlers. */ int linker_add_class(linker_class_t _cls); +caddr_t linker_file_lookup_symbol_internal(linker_file_t _file, + const char* _name, int _deps); int linker_file_unload_internal(linker_file_t _file, int flags); int linker_load_dependencies(linker_file_t _lf); linker_file_t linker_make_file(const char* _filename, linker_class_t _cls); From owner-p4-projects@FreeBSD.ORG Tue Mar 28 15:23:49 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8F16916A420; Tue, 28 Mar 2006 15:23:49 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3F93316A423 for ; Tue, 28 Mar 2006 15:23:49 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id DB37943D49 for ; Tue, 28 Mar 2006 15:23:48 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2SFNm9Z033613 for ; Tue, 28 Mar 2006 15:23:48 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2SFNmQ2033610 for perforce@freebsd.org; Tue, 28 Mar 2006 15:23:48 GMT (envelope-from jhb@freebsd.org) Date: Tue, 28 Mar 2006 15:23:48 GMT Message-Id: <200603281523.k2SFNmQ2033610@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 94172 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Mar 2006 15:23:49 -0000 http://perforce.freebsd.org/chv.cgi?CH=94172 Change 94172 by jhb@jhb_slimer on 2006/03/28 15:23:27 kmupetext() needs Giant still. Affected files ... .. //depot/projects/smpng/sys/kern/link_elf.c#35 edit Differences ... ==== //depot/projects/smpng/sys/kern/link_elf.c#35 (text+ko) ==== @@ -759,8 +759,10 @@ #ifdef GPROF /* Update profiling information with the new text segment. */ + mtx_lock(&Giant); kmupetext((uintfptr_t)(mapbase + segs[0]->p_vaddr - base_vaddr + segs[0]->p_memsz)); + mtx_unlock(&Giant); #endif ef->dynamic = (Elf_Dyn *) (mapbase + phdyn->p_vaddr - base_vaddr); From owner-p4-projects@FreeBSD.ORG Tue Mar 28 15:25:54 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 88E1D16A426; Tue, 28 Mar 2006 15:25:54 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4E7DE16A420 for ; Tue, 28 Mar 2006 15:25:54 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 19AD143D69 for ; Tue, 28 Mar 2006 15:25:51 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2SFPpNB034238 for ; Tue, 28 Mar 2006 15:25:51 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2SFPpc7034232 for perforce@freebsd.org; Tue, 28 Mar 2006 15:25:51 GMT (envelope-from jhb@freebsd.org) Date: Tue, 28 Mar 2006 15:25:51 GMT Message-Id: <200603281525.k2SFPpc7034232@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 94173 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Mar 2006 15:25:54 -0000 http://perforce.freebsd.org/chv.cgi?CH=94173 Change 94173 by jhb@jhb_slimer on 2006/03/28 15:25:41 Use linker_file_lookup_symbol_internal() in the linker classes. Affected files ... .. //depot/projects/smpng/sys/kern/link_elf.c#36 edit .. //depot/projects/smpng/sys/kern/link_elf_obj.c#11 edit Differences ... ==== //depot/projects/smpng/sys/kern/link_elf.c#36 (text+ko) ==== @@ -1301,7 +1301,8 @@ if (*symbol == 0) return (0); - return ((Elf_Addr)linker_file_lookup_symbol(lf, symbol, deps)); + return ((Elf_Addr)linker_file_lookup_symbol_internal(lf, symbol, + deps)); } static void ==== //depot/projects/smpng/sys/kern/link_elf_obj.c#11 (text+ko) ==== @@ -1101,7 +1101,8 @@ /* Force a lookup failure if the symbol name is bogus. */ if (*symbol == 0) return (0); - ret = ((Elf_Addr)linker_file_lookup_symbol(lf, symbol, deps)); + ret = ((Elf_Addr)linker_file_lookup_symbol_internal(lf, symbol, + deps)); return ret; case STB_WEAK: From owner-p4-projects@FreeBSD.ORG Tue Mar 28 16:48:17 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 71BBD16A43A; Tue, 28 Mar 2006 16:48:17 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EF0D216A42A for ; Tue, 28 Mar 2006 16:48:16 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4EDE843DCA for ; Tue, 28 Mar 2006 16:14:52 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2SGEq3r038925 for ; Tue, 28 Mar 2006 16:14:52 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2SGEq9Z038922 for perforce@freebsd.org; Tue, 28 Mar 2006 16:14:52 GMT (envelope-from jhb@freebsd.org) Date: Tue, 28 Mar 2006 16:14:52 GMT Message-Id: <200603281614.k2SGEq9Z038922@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 94176 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Mar 2006 16:48:18 -0000 http://perforce.freebsd.org/chv.cgi?CH=94176 Change 94176 by jhb@jhb_slimer on 2006/03/28 16:14:00 Use internal version for recursive case. Affected files ... .. //depot/projects/smpng/sys/kern/kern_linker.c#49 edit Differences ... ==== //depot/projects/smpng/sys/kern/kern_linker.c#49 (text+ko) ==== @@ -674,8 +674,8 @@ } if (deps) { for (i = 0; i < file->ndeps; i++) { - address = linker_file_lookup_symbol(file->deps[i], - name, 0); + address = linker_file_lookup_symbol_internal( + file->deps[i], name, 0); if (address) { KLD_DPF(SYM, ("linker_file_lookup_symbol:" " deps value=%p\n", address)); From owner-p4-projects@FreeBSD.ORG Tue Mar 28 17:18:11 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 39DC516A422; Tue, 28 Mar 2006 17:18:11 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id F29C116A400 for ; Tue, 28 Mar 2006 17:18:10 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id AC63644DAA for ; Tue, 28 Mar 2006 17:18:10 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2SHIAu3049441 for ; Tue, 28 Mar 2006 17:18:10 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2SHIAIA049438 for perforce@freebsd.org; Tue, 28 Mar 2006 17:18:10 GMT (envelope-from jhb@freebsd.org) Date: Tue, 28 Mar 2006 17:18:10 GMT Message-Id: <200603281718.k2SHIAIA049438@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 94181 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Mar 2006 17:18:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=94181 Change 94181 by jhb@jhb_slimer on 2006/03/28 17:17:19 Bah. Affected files ... .. //depot/projects/smpng/sys/dev/md/md.c#77 edit Differences ... ==== //depot/projects/smpng/sys/dev/md/md.c#77 (text+ko) ==== @@ -655,7 +655,7 @@ mtx_lock(&sc->queue_mtx); if (sc->flags & MD_SHUTDOWN) { sc->flags |= MD_EXITING; - mtx_unlock_spin(&sc->queue_mtx); + mtx_unlock(&sc->queue_mtx); kthread_exit(0); } bp = bioq_takefirst(&sc->bio_queue); From owner-p4-projects@FreeBSD.ORG Tue Mar 28 17:40:19 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A743016A563; Tue, 28 Mar 2006 17:40:19 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 403A016A645 for ; Tue, 28 Mar 2006 17:40:19 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id B850443E64 for ; Tue, 28 Mar 2006 17:34:30 +0000 (GMT) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2SHYUJE050093 for ; Tue, 28 Mar 2006 17:34:30 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2SHYUXt050090 for perforce@freebsd.org; Tue, 28 Mar 2006 17:34:30 GMT (envelope-from imp@freebsd.org) Date: Tue, 28 Mar 2006 17:34:30 GMT Message-Id: <200603281734.k2SHYUXt050090@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 94182 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Mar 2006 17:40:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=94182 Change 94182 by imp@imp_Speedy on 2006/03/28 17:34:11 Nits Affected files ... .. //depot/projects/arm/src/sys/arm/at91/at91_usartreg.h#6 edit Differences ... ==== //depot/projects/arm/src/sys/arm/at91/at91_usartreg.h#6 (text+ko) ==== @@ -91,28 +91,28 @@ #define USART_IMR 0x10 /* Interrupt mask register */ #define USART_CSR 0x14 /* Channel status register */ -#define USART_CSR_RXRDY (1U << 0) /* Receiver ready */ -#define USART_CSR_TXRDY (1U << 1) /* Transmitter ready */ -#define USART_CSR_RXBRK (1U << 2) /* Break received */ -#define USART_CSR_ENDRX (1U << 3) /* End of Transfer RX from PDC */ -#define USART_CSR_ENDTX (1U << 4) /* End of Transfer TX from PDC */ -#define USART_CSR_OVRE (1U << 5) /* Overrun error */ -#define USART_CSR_FRAME (1U << 6) /* Framing error */ -#define USART_CSR_PARE (1U << 7) /* Parity Error */ -#define USART_CSR_TIMEOUT (1U << 8) /* Timeout since start-timeout */ -#define USART_CSR_TXEMPTY (1U << 9) /* Transmitter empty */ -#define USART_CSR_ITERATION (1U << 10) /* max repetitions since RSIT */ -#define USART_CSR_TXBUFE (1U << 11) /* Buffer empty from PDC */ -#define USART_CSR_RXBUFF (1U << 12) /* Buffer full from PDC */ -#define USART_CSR_NACK (1U << 13) /* NACK since last RSTNACK */ -#define USART_CSR_RIIC (1U << 16) /* RI delta since last csr read */ -#define USART_CSR_DSRIC (1U << 17) /* DSR delta */ -#define USART_CSR_DCDIC (1U << 18) /* DCD delta */ -#define USART_CSR_CTSIC (1U << 19) /* CTS delta */ -#define USART_CSR_RI (1U << 20) /* RI status */ -#define USART_CSR_DSR (1U << 21) /* DSR status */ -#define USART_CSR_DCD (1U << 22) /* DCD status */ -#define USART_CSR_CTS (1U << 23) /* CTS status */ +#define USART_CSR_RXRDY (1UL << 0) /* Receiver ready */ +#define USART_CSR_TXRDY (1UL << 1) /* Transmitter ready */ +#define USART_CSR_RXBRK (1UL << 2) /* Break received */ +#define USART_CSR_ENDRX (1UL << 3) /* End of Transfer RX from PDC */ +#define USART_CSR_ENDTX (1UL << 4) /* End of Transfer TX from PDC */ +#define USART_CSR_OVRE (1UL << 5) /* Overrun error */ +#define USART_CSR_FRAME (1UL << 6) /* Framing error */ +#define USART_CSR_PARE (1UL << 7) /* Parity Error */ +#define USART_CSR_TIMEOUT (1UL << 8) /* Timeout since start-timeout */ +#define USART_CSR_TXEMPTY (1UL << 9) /* Transmitter empty */ +#define USART_CSR_ITERATION (1UL << 10) /* max repetitions since RSIT */ +#define USART_CSR_TXBUFE (1UL << 11) /* Buffer empty from PDC */ +#define USART_CSR_RXBUFF (1UL << 12) /* Buffer full from PDC */ +#define USART_CSR_NACK (1UL << 13) /* NACK since last RSTNACK */ +#define USART_CSR_RIIC (1UL << 16) /* RI delta since last csr read */ +#define USART_CSR_DSRIC (1UL << 17) /* DSR delta */ +#define USART_CSR_DCDIC (1UL << 18) /* DCD delta */ +#define USART_CSR_CTSIC (1UL << 19) /* CTS delta */ +#define USART_CSR_RI (1UL << 20) /* RI status */ +#define USART_CSR_DSR (1UL << 21) /* DSR status */ +#define USART_CSR_DCD (1UL << 22) /* DCD status */ +#define USART_CSR_CTS (1UL << 23) /* CTS status */ #define USART_RHR 0x18 /* Receiver holding register */ #define USART_THR 0x1c /* Transmitter holding register */ From owner-p4-projects@FreeBSD.ORG Tue Mar 28 17:40:50 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3179E16A7EE; Tue, 28 Mar 2006 17:40:50 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E806616A6D5 for ; Tue, 28 Mar 2006 17:40:49 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0DBC744008 for ; Tue, 28 Mar 2006 17:37:35 +0000 (GMT) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2SHbYFJ050213 for ; Tue, 28 Mar 2006 17:37:34 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2SHbYVc050209 for perforce@freebsd.org; Tue, 28 Mar 2006 17:37:34 GMT (envelope-from imp@freebsd.org) Date: Tue, 28 Mar 2006 17:37:34 GMT Message-Id: <200603281737.k2SHbYVc050209@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 94183 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Mar 2006 17:40:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=94183 Change 94183 by imp@imp_Speedy on 2006/03/28 17:37:03 Migrate from uart_{sg}etreg to WR4/RD4. We need to do this because the USART registers are 32 bits in size, not 8 bits. This shows up when we set certain bits in the interrupt register. Also, start down the path of using DMA for Rx and Tx. Affected files ... .. //depot/projects/arm/src/sys/arm/at91/uart_dev_at91usart.c#17 edit Differences ... ==== //depot/projects/arm/src/sys/arm/at91/uart_dev_at91usart.c#17 (text+ko) ==== @@ -41,11 +41,17 @@ #include #include #include +#include #include "uart_if.h" #define DEFAULT_RCLK AT91C_MASTER_CLOCK +#define RD4(bas, reg) \ + bus_space_read_4((bas)->bst, (bas)->bsh, uart_regofs(bas, reg)) +#define WR4(bas, reg, value) \ + bus_space_write_4((bas)->bst, (bas)->bsh, uart_regofs(bas, reg), value) + #define SIGCHG(c, i, s, d) \ do { \ if (c) { \ @@ -183,10 +189,13 @@ /* Turn on rx and tx */ cr = USART_CR_RSTSTA | USART_CR_RSTRX | USART_CR_RSTTX; - uart_setreg(bas, USART_CR, cr); - uart_setreg(bas, USART_CR, USART_CR_RXEN | USART_CR_TXEN); - uart_setreg(bas, USART_IER, USART_CSR_TXRDY | USART_CSR_RXRDY | - USART_CSR_RXBRK); + WR4(bas, USART_CR, cr); + WR4(bas, USART_CR, USART_CR_RXEN | USART_CR_TXEN); + WR4(bas, USART_IER, USART_CSR_TIMEOUT | + USART_CSR_TXRDY | USART_CSR_RXRDY | + USART_CSR_RXBRK | USART_CSR_ENDRX | USART_CSR_ENDTX); + /* Set the receive timeout to be 1.5 character times. */ + WR4(bas, USART_RTOR, 12); } /* @@ -207,9 +216,9 @@ at91_usart_putc(struct uart_bas *bas, int c) { - while (!(uart_getreg(bas, USART_CSR) & + while (!(RD4(bas, USART_CSR) & USART_CSR_TXRDY)); - uart_setreg(bas, USART_THR, c); + WR4(bas, USART_THR, c); } /* @@ -219,9 +228,9 @@ at91_usart_poll(struct uart_bas *bas) { - if (!(uart_getreg(bas, USART_CSR) & USART_CSR_RXRDY)) + if (!(RD4(bas, USART_CSR) & USART_CSR_RXRDY)) return (-1); - return (uart_getreg(bas, USART_RHR) & 0xff); + return (RD4(bas, USART_RHR) & 0xff); } /* @@ -232,9 +241,9 @@ { int c; - while (!(uart_getreg(bas, USART_CSR) & USART_CSR_RXRDY)) + while (!(RD4(bas, USART_CSR) & USART_CSR_RXRDY)) ; - c = uart_getreg(bas, USART_RHR); + c = RD4(bas, USART_RHR); c &= 0xff; return (c); } @@ -302,7 +311,7 @@ * XXX: Gross hack : Skyeye doesn't raise an interrupt once the * transfer is done, so simulate it. */ - uart_setreg(&sc->sc_bas, USART_IER, USART_CSR_TXRDY); + WR4(&sc->sc_bas, USART_IER, USART_CSR_TXRDY); #endif return (0); } @@ -322,7 +331,7 @@ } while (!atomic_cmpset_32(&sc->sc_hwsig, old, new)); bas = &sc->sc_bas; mtx_lock_spin(&sc->sc_hwmtx); - cr = uart_getreg(bas, USART_CR); + cr = RD4(bas, USART_CR); cr &= ~(USART_CR_DTREN | USART_CR_DTRDIS | USART_CR_RTSEN | USART_CR_RTSDIS); if (new & SER_DTR) @@ -333,7 +342,7 @@ cr |= USART_CR_RTSEN; else cr |= USART_CR_RTSDIS; - uart_setreg(bas, USART_CR, cr); + WR4(bas, USART_CR, cr); mtx_unlock_spin(&sc->sc_hwmtx); return (0); } @@ -356,7 +365,7 @@ static int at91_usart_bus_ipend(struct uart_softc *sc) { - int csr = uart_getreg(&sc->sc_bas, USART_CSR); + int csr = RD4(&sc->sc_bas, USART_CSR); int ipend = 0; #ifdef USART0_CONSOLE @@ -371,13 +380,15 @@ mtx_lock_spin(&sc->sc_hwmtx); if (csr & USART_CSR_TXRDY && sc->sc_txbusy) ipend |= SER_INT_TXIDLE; - if (csr & USART_CSR_RXRDY) + if (csr & USART_CSR_ENDTX && sc->sc_txbusy) + ipend |= SER_INT_TXIDLE; + if (csr & (USART_CSR_RXRDY | USART_CSR_ENDRX | USART_CSR_TIMEOUT)) ipend |= SER_INT_RXREADY; if (csr & USART_CSR_RXBRK) { unsigned int cr = USART_CR_RSTSTA; ipend |= SER_INT_BREAK; - uart_setreg(&sc->sc_bas, USART_CR, cr); + WR4(&sc->sc_bas, USART_CR, cr); } mtx_unlock_spin(&sc->sc_hwmtx); return (ipend); @@ -395,7 +406,7 @@ uint8_t csr; mtx_lock_spin(&sc->sc_hwmtx); - csr = uart_getreg(&sc->sc_bas, USART_CSR); + csr = RD4(&sc->sc_bas, USART_CSR); sig = 0; if (csr & USART_CSR_CTS) sig |= SER_CTS; From owner-p4-projects@FreeBSD.ORG Tue Mar 28 17:48:53 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 378EE16A422; Tue, 28 Mar 2006 17:48:53 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EFB3716A401 for ; Tue, 28 Mar 2006 17:48:52 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id C6A7243D79 for ; Tue, 28 Mar 2006 17:48:49 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2SHmneA050800 for ; Tue, 28 Mar 2006 17:48:49 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2SHmnJW050797 for perforce@freebsd.org; Tue, 28 Mar 2006 17:48:49 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 28 Mar 2006 17:48:49 GMT Message-Id: <200603281748.k2SHmnJW050797@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 94185 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Mar 2006 17:48:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=94185 Change 94185 by rwatson@rwatson_zoo on 2006/03/28 17:48:17 Clear the audit mask of the audit daemon on start. Hook up reap_children(), which was apparently not hooked up. This should prevent large numbers of zombies from accumulating over time. Affected files ... .. //depot/projects/trustedbsd/openbsm/bin/auditd/auditd.c#16 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/bin/auditd/auditd.c#16 (text+ko) ==== @@ -30,7 +30,7 @@ * * @APPLE_BSD_LICENSE_HEADER_END@ * - * $P4: //depot/projects/trustedbsd/openbsm/bin/auditd/auditd.c#15 $ + * $P4: //depot/projects/trustedbsd/openbsm/bin/auditd/auditd.c#16 $ */ #include @@ -44,6 +44,7 @@ #include #include +#include #include #include #include @@ -63,6 +64,7 @@ static char *lastfile = NULL; static int allhardcount = 0; static int triggerfd = 0; +static int sigchlds, sigchlds_handled; static int sighups, sighups_handled; static int sigterms, sigterms_handled; static long global_flags; @@ -422,6 +424,8 @@ sighups++; if (signal == SIGTERM) sigterms++; + if (signal == SIGCHLD) + sigchlds++; } /* @@ -489,7 +493,6 @@ static int last_trigger; static time_t last_time; struct dir_ent *dirent; - int rc; /* * Suppres duplicate messages from the kernel within the specified @@ -595,6 +598,34 @@ } /* + * Reap our children. + */ +static void +reap_children(void) +{ + pid_t child; + int wstatus; + + while ((child = waitpid(-1, &wstatus, WNOHANG)) > 0) { + if (!wstatus) + continue; + syslog(LOG_INFO, "warn process [pid=%d] %s %d.", child, + ((WIFEXITED(wstatus)) ? "exited with non-zero status" : + "exited as a result of signal"), + ((WIFEXITED(wstatus)) ? WEXITSTATUS(wstatus) : + WTERMSIG(wstatus))); + } +} + +static void +handle_sigchld(void) +{ + + sigchlds_handled = sigchlds; + reap_children(); +} + +/* * Read the control file for triggers/signals and handle appropriately. */ static int @@ -613,6 +644,10 @@ syslog(LOG_DEBUG, "%s: SIGTERM", __FUNCTION__); break; } + if (sigchlds != sigchlds_handled) { + syslog(LOG_DEBUG, "%s: SIGCHLD", __FUNCTION__); + handle_sigchld(); + } if (sighups != sighups_handled) { syslog(LOG_DEBUG, "%s: SIGHUP", __FUNCTION__); handle_sighup(); @@ -633,26 +668,6 @@ } /* - * Reap our children. - */ -static void -reap_children(void) -{ - pid_t child; - int wstatus; - - while ((child = waitpid(-1, &wstatus, WNOHANG)) > 0) { - if (!wstatus) - continue; - syslog(LOG_INFO, "warn process [pid=%d] %s %d.", child, - ((WIFEXITED(wstatus)) ? "exited with non-zero status" : - "exited as a result of signal"), - ((WIFEXITED(wstatus)) ? WEXITSTATUS(wstatus) : - WTERMSIG(wstatus))); - } -} - -/* * Configure the audit controls in the kernel: the event to class mapping, * kernel preselection mask, etc. */ @@ -730,6 +745,7 @@ static void setup(void) { + auditinfo_t auinfo; int aufd; token_t *tok; @@ -738,6 +754,23 @@ fail_exit(); } + /* + * To provide event feedback cycles and avoid auditd becoming + * stalled if auditing is suspended, auditd and its children run + * without their events being audited. We allow the uid, tid, and + * mask fields to be implicitly set to zero, but do set the pid. We + * run this after opening the trigger device to avoid configuring + * audit state without audit present in the system. + * + * XXXRW: Is there more to it than this? + */ + bzero(&auinfo, sizeof(auinfo)); + auinfo.ai_asid = getpid(); + if (setaudit(&auinfo) == -1) { + syslog(LOG_ERR, "Error setting audit stat"); + fail_exit(); + } + TAILQ_INIT(&dir_q); if (read_control_file() == -1) { syslog(LOG_ERR, "Error reading control file"); From owner-p4-projects@FreeBSD.ORG Tue Mar 28 18:27:39 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D3C4D16A423; Tue, 28 Mar 2006 18:27:39 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7B7CC16A420 for ; Tue, 28 Mar 2006 18:27:39 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id EF46844336 for ; Tue, 28 Mar 2006 18:27:38 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2SIRc1A052416 for ; Tue, 28 Mar 2006 18:27:38 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2SIRcM6052413 for perforce@freebsd.org; Tue, 28 Mar 2006 18:27:38 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 28 Mar 2006 18:27:38 GMT Message-Id: <200603281827.k2SIRcM6052413@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 94188 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Mar 2006 18:27:40 -0000 http://perforce.freebsd.org/chv.cgi?CH=94188 Change 94188 by rwatson@rwatson_zoo on 2006/03/28 18:27:19 Don't need a pointer to a pointer, just a pointer. Affected files ... .. //depot/projects/trustedbsd/openbsm/bin/auditfilterd/auditfilterd.h#2 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/bin/auditfilterd/auditfilterd.h#2 (text+ko) ==== @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/openbsm/bin/auditfilterd/auditfilterd.h#1 $ + * $P4: //depot/projects/trustedbsd/openbsm/bin/auditfilterd/auditfilterd.h#2 $ */ #define AUDITFILTERD_CONFFILE "/etc/security/audit_filter" @@ -54,11 +54,11 @@ * Fields provided by or extracted from the module. */ void *am_instance; - audit_filter_attach_t *am_attach; - audit_filter_reinit_t *am_reinit; - audit_filter_record_t *am_record; - audit_filter_bsmrecord_t *am_bsmrecord; - audit_filter_detach_t *am_detach; + audit_filter_attach_t am_attach; + audit_filter_reinit_t am_reinit; + audit_filter_record_t am_record; + audit_filter_bsmrecord_t am_bsmrecord; + audit_filter_detach_t am_detach; /* * Fields for maintaining the list of modules. From owner-p4-projects@FreeBSD.ORG Tue Mar 28 18:28:50 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AB71316A44E; Tue, 28 Mar 2006 18:28:50 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 395AB16A43A for ; Tue, 28 Mar 2006 18:28:50 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id DD46143DDD for ; Tue, 28 Mar 2006 18:28:40 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2SISeSq052599 for ; Tue, 28 Mar 2006 18:28:40 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2SISee0052596 for perforce@freebsd.org; Tue, 28 Mar 2006 18:28:40 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 28 Mar 2006 18:28:40 GMT Message-Id: <200603281828.k2SISee0052596@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 94189 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Mar 2006 18:28:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=94189 Change 94189 by rwatson@rwatson_zoo on 2006/03/28 18:27:56 Don't compile filter functions as static, or the compiler will helpfully omit them as unused. As module symbols are local to the moduly with dlopen(), this won't generate conflicts. Affected files ... .. //depot/projects/trustedbsd/openbsm/modules/auditfilter_noop/auditfilter_noop.c#2 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/modules/auditfilter_noop/auditfilter_noop.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/openbsm/modules/auditfilter_noop/auditfilter_noop.c#1 $ + * $P4: //depot/projects/trustedbsd/openbsm/modules/auditfilter_noop/auditfilter_noop.c#2 $ */ /* @@ -38,33 +38,36 @@ #include #include -static int +int AUDIT_FILTER_ATTACH(void **instance, int argc, char *argv[]) { return (0); } -static int +int AUDIT_FILTER_REINIT(void *instance, int argc, char *argv[]) { return (0); } -static void +void AUDIT_FILTER_RECORD(void *instance, struct timespec *ts, int token_count, const tokenstr_t *tok[]) { + } -static void +void AUDIT_FILTER_BSMRECORD(void *instance, struct timespec *ts, u_char *data, u_int len) { + } -static void +void AUDIT_FILTER_DETACH(void *instance) { + } From owner-p4-projects@FreeBSD.ORG Tue Mar 28 19:12:38 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4919F16A422; Tue, 28 Mar 2006 19:12:38 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2151E16A401 for ; Tue, 28 Mar 2006 19:12:38 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6958D43D6B for ; Tue, 28 Mar 2006 19:12:35 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2SJCZ1C054380 for ; Tue, 28 Mar 2006 19:12:35 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2SJCZ1P054377 for perforce@freebsd.org; Tue, 28 Mar 2006 19:12:35 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 28 Mar 2006 19:12:35 GMT Message-Id: <200603281912.k2SJCZ1P054377@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 94195 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Mar 2006 19:12:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=94195 Change 94195 by rwatson@rwatson_zoo on 2006/03/28 19:12:20 Canonicalize calling of functions via pointers, one or two minor style/warning nits. Affected files ... .. //depot/projects/trustedbsd/openbsm/bin/auditfilterd/auditfilterd.c#4 edit .. //depot/projects/trustedbsd/openbsm/bin/auditfilterd/auditfilterd_conf.c#3 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/bin/auditfilterd/auditfilterd.c#4 (text+ko) ==== @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/openbsm/bin/auditfilterd/auditfilterd.c#3 $ + * $P4: //depot/projects/trustedbsd/openbsm/bin/auditfilterd/auditfilterd.c#4 $ */ #include @@ -86,7 +86,6 @@ case SIGQUIT: quit++; break; - } } @@ -96,8 +95,8 @@ struct auditfilter_module *am; TAILQ_FOREACH(am, &filter_list, am_list) { - if (am->am_record != NULL) - (*am->am_bsmrecord)(am->am_instance, ts, data, len); + if (am->am_bsmrecord != NULL) + (am->am_bsmrecord)(am->am_instance, ts, data, len); } } @@ -115,7 +114,8 @@ bytesread += tok.len; } TAILQ_FOREACH(am, &filter_list, am_list) { - + if (am->am_record != NULL) + (am->am_record)(am->am_instance, ts, 0, NULL); } } ==== //depot/projects/trustedbsd/openbsm/bin/auditfilterd/auditfilterd_conf.c#3 (text+ko) ==== @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/openbsm/bin/auditfilterd/auditfilterd_conf.c#2 $ + * $P4: //depot/projects/trustedbsd/openbsm/bin/auditfilterd/auditfilterd_conf.c#3 $ */ /* @@ -70,7 +70,6 @@ static void auditfilter_module_free(struct auditfilter_module *am) { - int i; if (am->am_modulename != NULL) free(am->am_modulename); @@ -106,7 +105,7 @@ { if (am->am_detach != NULL) - (*am->am_detach)(am->am_instance); + am->am_detach(am->am_instance); am->am_instance = NULL; (void)dlclose(am->am_dlhandle); am->am_dlhandle = NULL; @@ -155,8 +154,8 @@ am->am_detach = dlsym(am->am_dlhandle, AUDIT_FILTER_DETACH_STRING); if (am->am_attach != NULL) { - if ((*am->am_attach)(&am->am_instance, am->am_argc, - am->am_argv) != AUDIT_FILTER_SUCCESS) { + if (am->am_attach(&am->am_instance, am->am_argc, am->am_argv) + != AUDIT_FILTER_SUCCESS) { warnx("auditfilter_module_attach: %s: failed", am->am_modulename); dlclose(am->am_dlhandle); @@ -185,7 +184,7 @@ if (am->am_reinit == NULL) return (0); - if ((*am->am_reinit)(&am->am_instance, am->am_argc, am->am_argv) != + if (am->am_reinit(&am->am_instance, am->am_argc, am->am_argv) != AUDIT_FILTER_SUCCESS) { warnx("auditfilter_module_reinit: %s: failed", am->am_modulename); From owner-p4-projects@FreeBSD.ORG Tue Mar 28 19:51:27 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 89D4F16A420; Tue, 28 Mar 2006 19:51:27 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id DB8B216A4DC for ; Tue, 28 Mar 2006 19:51:26 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9DDE5442E0 for ; Tue, 28 Mar 2006 19:25:59 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2SJPxKR055037 for ; Tue, 28 Mar 2006 19:25:59 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2SJPxHq055034 for perforce@freebsd.org; Tue, 28 Mar 2006 19:25:59 GMT (envelope-from marcel@freebsd.org) Date: Tue, 28 Mar 2006 19:25:59 GMT Message-Id: <200603281925.k2SJPxHq055034@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Cc: Subject: PERFORCE change 94198 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Mar 2006 19:51:28 -0000 http://perforce.freebsd.org/chv.cgi?CH=94198 Change 94198 by marcel@marcel_nfs on 2006/03/28 19:25:52 Have the sysdev methods grab and release the hardware lock. This prevents system console output tos with the hardware when the TTY layer is already doing that. By default there's no mutex associated with the sysdev, but when bus enumation links a sysdev to a softc, the hardware mutex is shared between them. Alternatively: put the mutex in the BAS. Pointed out by: grehan@ Discussed with: grehan@ Affected files ... .. //depot/projects/uart/dev/uart/uart_core.c#47 edit .. //depot/projects/uart/dev/uart/uart_cpu.h#16 edit Differences ... ==== //depot/projects/uart/dev/uart/uart_core.c#47 (text+ko) ==== @@ -205,7 +205,7 @@ if (sc->sc_opened) uart_sched_softih(sc, SER_INT_SIGCHG); - return (0); + return (1); } /* @@ -480,6 +480,9 @@ if (error) goto fail; + if (sc->sc_sysdev != NULL) + sc->sc_sysdev->hwmtx = &sc->sc_hwmtx; + sc->sc_leaving = 0; uart_intr(sc); return (0); @@ -509,6 +512,9 @@ sc->sc_leaving = 1; + if (sc->sc_sysdev != NULL) + sc->sc_sysdev->hwmtx = NULL; + UART_DETACH(sc); if (sc->sc_sysdev != NULL && sc->sc_sysdev->detach != NULL) ==== //depot/projects/uart/dev/uart/uart_cpu.h#16 (text+ko) ==== @@ -29,6 +29,10 @@ #ifndef _DEV_UART_CPU_H_ #define _DEV_UART_CPU_H_ +#include +#include +#include + /* * Low-level operations for use by console and/or debug port support. */ @@ -68,6 +72,7 @@ int (*attach)(struct uart_softc*); int (*detach)(struct uart_softc*); void *cookie; /* Type dependent use. */ + struct mtx *hwmtx; }; int uart_cpu_eqres(struct uart_bas *, struct uart_bas *); @@ -80,41 +85,77 @@ * Operations for low-level access to the UART. Primarily for use * by console and debug port logic. */ + +static __inline void +uart_lock_spin(struct mtx *hwmtx) +{ + if (!kdb_active && hwmtx != NULL) + mtx_lock_spin(hwmtx); +} + +static __inline void +uart_unlock_spin(struct mtx *hwmtx) +{ + if (!kdb_active && hwmtx != NULL) + mtx_unlock_spin(hwmtx); +} + static __inline int uart_probe(struct uart_devinfo *di) { - return (di->ops.probe(&di->bas)); + int res; + + uart_lock_spin(di->hwmtx); + res = di->ops.probe(&di->bas); + uart_unlock_spin(di->hwmtx); + return (res); } static __inline void uart_init(struct uart_devinfo *di) { + uart_lock_spin(di->hwmtx); di->ops.init(&di->bas, di->baudrate, di->databits, di->stopbits, di->parity); + uart_unlock_spin(di->hwmtx); } static __inline void uart_term(struct uart_devinfo *di) { + uart_lock_spin(di->hwmtx); di->ops.term(&di->bas); + uart_unlock_spin(di->hwmtx); } static __inline void uart_putc(struct uart_devinfo *di, int c) { + uart_lock_spin(di->hwmtx); di->ops.putc(&di->bas, c); + uart_unlock_spin(di->hwmtx); } static __inline int uart_poll(struct uart_devinfo *di) { - return (di->ops.poll(&di->bas)); + int res; + + uart_lock_spin(di->hwmtx); + res = di->ops.poll(&di->bas); + uart_unlock_spin(di->hwmtx); + return (res); } static __inline int uart_getc(struct uart_devinfo *di) { - return (di->ops.getc(&di->bas)); + int res; + + uart_lock_spin(di->hwmtx); + res = di->ops.getc(&di->bas); + uart_unlock_spin(di->hwmtx); + return (res); } #endif /* _DEV_UART_CPU_H_ */ From owner-p4-projects@FreeBSD.ORG Tue Mar 28 19:51:53 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4963616A7CA; Tue, 28 Mar 2006 19:51:53 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A0C6516A772 for ; Tue, 28 Mar 2006 19:51:52 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 767C943F1A for ; Tue, 28 Mar 2006 19:19:44 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2SJJibJ054739 for ; Tue, 28 Mar 2006 19:19:44 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2SJJiwn054736 for perforce@freebsd.org; Tue, 28 Mar 2006 19:19:44 GMT (envelope-from peter@freebsd.org) Date: Tue, 28 Mar 2006 19:19:44 GMT Message-Id: <200603281919.k2SJJiwn054736@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 94196 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Mar 2006 19:51:56 -0000 http://perforce.freebsd.org/chv.cgi?CH=94196 Change 94196 by peter@peter_daintree on 2006/03/28 19:18:56 Oops. If we skipped a pv entry due to a wired page, we can't free the chunk. Let the final vm_map based rundown clean it up. Affected files ... .. //depot/projects/hammer/sys/amd64/amd64/pmap.c#146 edit Differences ... ==== //depot/projects/hammer/sys/amd64/amd64/pmap.c#146 (text+ko) ==== @@ -2700,6 +2700,7 @@ int field, idx; int64_t bit; uint64_t inuse; + int allfree; if (pmap != vmspace_pmap(curthread->td_proc->p_vmspace)) { printf("warning: pmap_remove_pages called with non-current pmap\n"); @@ -2713,6 +2714,7 @@ * after all because we still have to work around the * skipping of a PG_W page. oops. */ + allfree = 1; for (field = 0; field < _NPCM; field++) { inuse = (~(pc->pc_map[field])) & pc_freemask[field]; while (inuse != 0) { @@ -2734,8 +2736,10 @@ /* * We cannot remove wired pages from a process' mapping at this time */ - if (tpte & PG_W) + if (tpte & PG_W) { + allfree = 0; continue; + } m = PHYS_TO_VM_PAGE(tpte & PG_FRAME); KASSERT(m->phys_addr == (tpte & PG_FRAME), @@ -2770,14 +2774,16 @@ *vtopde(pv->pv_va)); } } - pv_entry_spare -= _NPCPV; - pc_chunk_count--; - pc_chunk_frees++; - TAILQ_REMOVE(&pmap->pm_pvchunk, pc, pc_list); - m = PHYS_TO_VM_PAGE(DMAP_TO_PHYS((vm_offset_t)pc)); - vm_page_lock_queues(); - vm_page_free(m); - vm_page_unlock_queues(); + if (allfree) { + pv_entry_spare -= _NPCPV; + pc_chunk_count--; + pc_chunk_frees++; + TAILQ_REMOVE(&pmap->pm_pvchunk, pc, pc_list); + m = PHYS_TO_VM_PAGE(DMAP_TO_PHYS((vm_offset_t)pc)); + vm_page_lock_queues(); + vm_page_free(m); + vm_page_unlock_queues(); + } } pmap_invalidate_all(pmap); PMAP_UNLOCK(pmap); From owner-p4-projects@FreeBSD.ORG Tue Mar 28 19:54:19 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E4C4D16A42F; Tue, 28 Mar 2006 19:54:18 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id AC82A16A422 for ; Tue, 28 Mar 2006 19:54:18 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 24E1E43D7C for ; Tue, 28 Mar 2006 19:54:11 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2SJsBDj056284 for ; Tue, 28 Mar 2006 19:54:11 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2SJsB7q056281 for perforce@freebsd.org; Tue, 28 Mar 2006 19:54:11 GMT (envelope-from marcel@freebsd.org) Date: Tue, 28 Mar 2006 19:54:11 GMT Message-Id: <200603281954.k2SJsB7q056281@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Cc: Subject: PERFORCE change 94202 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Mar 2006 19:54:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=94202 Change 94202 by marcel@marcel_nfs on 2006/03/28 19:53:55 Implement fine-grained interrupt handling: o When a subordinate driver sets up an interrupt handler, the scc(4) driver calls back for interrupt source-specific handlers. When a subordinate driver has at least one interrupt source-specific handler, it's generic handler (i.e. the one passed to BUS_SETUP_INTR) is nullified. o On interrupt, scc(4) queries the hardware for all pending interrupt conditions for all channels. Interrupts are handled in priority order across channels. Interrupt conditions are cleared for a particular source and channel if the subordinate driver has an interrupt source-specific handler and it indicated to have cleared the condition. Afterwards, all channels with pending interrupt conditions will have the generic interrupt handler of the subordinate driver called or otherwise the condition is cleared by scc(4). Affected files ... .. //depot/projects/uart/dev/scc/scc_bfe.h#10 edit .. //depot/projects/uart/dev/scc/scc_bus.h#5 edit .. //depot/projects/uart/dev/scc/scc_core.c#11 edit .. //depot/projects/uart/dev/scc/scc_dev_sab82532.c#5 edit .. //depot/projects/uart/dev/scc/scc_dev_z8530.c#5 edit .. //depot/projects/uart/dev/scc/scc_if.m#4 edit Differences ... ==== //depot/projects/uart/dev/scc/scc_bfe.h#10 (text+ko) ==== @@ -29,6 +29,8 @@ #ifndef _DEV_SCC_BFE_H_ #define _DEV_SCC_BFE_H_ +#include + /* * Bus access structure. This structure holds the minimum information needed * to access the SCC. The rclk field, although not important to actually @@ -59,6 +61,7 @@ */ #define SCC_NMODES 3 +#define SCC_ISRCCNT 5 struct scc_chan; @@ -74,13 +77,8 @@ int m_fastintr:1; driver_intr_t *ih; - driver_intr_t *ih_overrun; - driver_intr_t *ih_break; - driver_intr_t *ih_rxready; - driver_intr_t *ih_sigchg; - driver_intr_t *ih_txidle; + serdev_intr_t *ih_src[SCC_ISRCCNT]; void *ih_arg; - void *softih; }; struct scc_chan { @@ -89,7 +87,9 @@ struct scc_mode ch_mode[SCC_NMODES]; - u_int ch_nr; + uint32_t ch_nr; + uint32_t ch_ipend; + uint32_t ch_hwsig; }; /* ==== //depot/projects/uart/dev/scc/scc_bus.h#5 (text+ko) ==== @@ -29,6 +29,7 @@ #ifndef _DEV_SCC_BUS_H_ #define _DEV_SCC_BUS_H_ +#include #include #define SCC_IVAR_CHANNEL 0 ==== //depot/projects/uart/dev/scc/scc_core.c#11 (text+ko) ==== @@ -45,47 +45,99 @@ #include "scc_if.h" +#define SCC_ITRACE + devclass_t scc_devclass; char scc_driver_name[] = "scc"; MALLOC_DEFINE(M_SCC, "SCC", "SCC driver"); +#ifdef SCC_ITRACE +#define SCC_ITRACE_BUFSZ 128 +static uint32_t scc_itrace_entry[SCC_ITRACE_BUFSZ]; +static uint32_t scc_itrace_count[SCC_ITRACE_BUFSZ]; +static int scc_itrace_head = 0; + static void +scc_itrace_log(struct scc_softc *sc, int ch, int ipend) +{ + uint32_t entry; + int unit; + + unit = device_get_unit(sc->sc_dev); + entry = ipend | (ch << 8) | unit; + + if (scc_itrace_entry[scc_itrace_head] == entry) { + scc_itrace_count[scc_itrace_head]++; + } else { + scc_itrace_head = (scc_itrace_head + 1) % SCC_ITRACE_BUFSZ; + scc_itrace_entry[scc_itrace_head] = entry; + scc_itrace_count[scc_itrace_head] = 1; + } +} + +void scc_itrace_dump(void); +void +scc_itrace_dump() +{ + int idx; + + idx = scc_itrace_head; + do { + if (scc_itrace_entry[idx] != 0) + printf("%06x %u\n", scc_itrace_entry[idx], + scc_itrace_count[idx]); + idx = (idx == 0) ? SCC_ITRACE_BUFSZ - 1 : idx - 1; + } while (idx != scc_itrace_head); +} +#endif /* SCC_ITRACE */ + +static void scc_bfe_intr(void *arg) { struct scc_softc *sc = arg; struct scc_chan *ch; struct scc_class *cl; struct scc_mode *m; - int c; - - if (sc->sc_leaving) - return; + int c, i, ipend, isrc; cl = sc->sc_class; - for (c = 0; c < cl->cl_channels; c++) { - ch = &sc->sc_chan[c]; - m = &ch->ch_mode[0]; - if (!m->m_attached) - continue; - if (m->ih != NULL) - (*m->ih)(m->ih_arg); - } - -#if 0 while (!sc->sc_leaving && (ipend = SCC_IPEND(sc)) != 0) { - if (ipend & SER_INT_OVERRUN) - uart_intr_overrun(sc); - if (ipend & SER_INT_BREAK) - uart_intr_break(sc); - if (ipend & SER_INT_RXREADY) - uart_intr_rxready(sc); - if (ipend & SER_INT_SIGCHG) - uart_intr_sigchg(sc); - if (ipend & SER_INT_TXIDLE) - uart_intr_txidle(sc); +#ifdef SCC_ITRACE + for (c = 0; c < cl->cl_channels; c++) { + ch = &sc->sc_chan[c]; + if (ch->ch_ipend) + scc_itrace_log(sc, ch->ch_nr, ch->ch_ipend); + } +#endif + i = 0, isrc = SER_INT_OVERRUN; + while (ipend) { + while (i < SCC_ISRCCNT && !(ipend & isrc)) + i++, isrc <<= 1; + KASSERT(i < SCC_ISRCCNT, ("%s", __func__)); + ipend &= ~isrc; + for (c = 0; c < cl->cl_channels; c++) { + ch = &sc->sc_chan[c]; + if (!(ch->ch_ipend & isrc)) + continue; + m = &ch->ch_mode[0]; + if (m->ih_src[i] == NULL) + continue; + if ((*m->ih_src[i])(m->ih_arg)) + ch->ch_ipend &= ~isrc; + } + } + for (c = 0; c < cl->cl_channels; c++) { + ch = &sc->sc_chan[c]; + if (!ch->ch_ipend) + continue; + m = &ch->ch_mode[0]; + if (m->ih != NULL) + (*m->ih)(m->ih_arg); + else + SCC_ICLEAR(sc, ch); + } } -#endif } int @@ -99,7 +151,7 @@ const char *sep; bus_space_handle_t bh; u_long base, size, start; - int c, error, intr, mode, reset; + int c, error, mode, reset; /* * The sc_class field defines the type of SCC we're going to work @@ -118,13 +170,6 @@ size = abs(cl->cl_range); - /* - * Protect ourselves against interrupts while we're not completely - * finished attaching and initializing. We don't expect interrupts - * until after SCC_ATTACH() though. - */ - sc->sc_leaving = 1; - mtx_init(&sc->sc_hwmtx, "scc_hwmtx", NULL, MTX_SPIN); /* @@ -201,11 +246,38 @@ goto fail; /* + * Setup our interrupt handler. Make it FAST under the assumption + * that our children's are fast as well. We make it MPSAFE as soon + * as a child sets up a MPSAFE interrupt handler. + * Of course, if we can't setup a fast handler, we make it MPSAFE + * right away. + */ + if (sc->sc_ires != NULL) { + error = bus_setup_intr(dev, sc->sc_ires, + INTR_TYPE_TTY | INTR_FAST, scc_bfe_intr, sc, + &sc->sc_icookie); + if (error) { + error = bus_setup_intr(dev, sc->sc_ires, + INTR_TYPE_TTY | INTR_MPSAFE, scc_bfe_intr, sc, + &sc->sc_icookie); + } else + sc->sc_fastintr = 1; + + if (error) { + device_printf(dev, "could not activate interrupt\n"); + bus_release_resource(dev, SYS_RES_IRQ, sc->sc_irid, + sc->sc_ires); + sc->sc_ires = NULL; + } + } + if (sc->sc_ires == NULL) { + /* XXX no interrupt resource. Force polled mode. */ + sc->sc_polled = 1; + } + + /* * Attach all child devices that were probed successfully. - * Keep track of whether we can setup a fast interrupt - * handler ourselves. */ - intr = INTR_MPSAFE; for (c = 0; c < cl->cl_channels; c++) { ch = &sc->sc_chan[c]; for (mode = 0; mode < SCC_NMODES; mode++) { @@ -216,39 +288,9 @@ if (error) continue; m->m_attached = 1; - if (m->m_hasintr && !m->m_fastintr) - intr = INTR_MPSAFE; } } - /* - * Setup our interrupt handler. Make it FAST if all our - * children are fast as well. Otherwise make it MPSAFE. - */ - if (sc->sc_ires != NULL) { - error = BUS_SETUP_INTR(device_get_parent(dev), dev, - sc->sc_ires, INTR_TYPE_TTY | intr, scc_bfe_intr, - sc, &sc->sc_icookie); - if (error && intr == INTR_FAST) { - intr = INTR_MPSAFE; - error = BUS_SETUP_INTR(device_get_parent(dev), dev, - sc->sc_ires, INTR_TYPE_TTY | intr, scc_bfe_intr, - sc, &sc->sc_icookie); - } - if (error) { - device_printf(dev, "could not activate interrupt\n"); - bus_release_resource(dev, SYS_RES_IRQ, sc->sc_irid, - sc->sc_ires); - sc->sc_ires = NULL; - } - else - sc->sc_fastintr = (intr == INTR_FAST) ? 1 : 0; - } - if (sc->sc_ires == NULL) { - /* XXX no interrupt resource. Force polled mode. */ - sc->sc_polled = 1; - } - if (bootverbose && (sc->sc_fastintr || sc->sc_polled)) { sep = ""; device_print_prettyname(dev); @@ -263,9 +305,6 @@ printf("\n"); } - sc->sc_leaving = 0; - scc_bfe_intr(sc); - return (0); fail: @@ -451,6 +490,8 @@ void (*ihand)(void *), void *arg, void **cookiep) { struct scc_mode *m; + struct scc_softc *sc; + int i, isrc; if (device_get_parent(child) != dev) return (EINVAL); @@ -459,17 +500,30 @@ if ((flags & (INTR_FAST|INTR_MPSAFE)) == 0) return (EINVAL); + sc = device_get_softc(dev); + if (sc->sc_polled) + return (ENXIO); + + if (sc->sc_fastintr && !(flags & INTR_FAST)) { + sc->sc_fastintr = 0; + bus_teardown_intr(dev, sc->sc_ires, sc->sc_icookie); + bus_setup_intr(dev, sc->sc_ires, INTR_TYPE_TTY | INTR_MPSAFE, + scc_bfe_intr, sc, &sc->sc_icookie); + } + m = device_get_ivars(child); m->m_hasintr = 1; m->m_fastintr = (flags & INTR_FAST) ? 1 : 0; m->ih = ihand; m->ih_arg = arg; - m->ih_break = SERDEV_IHAND(child, SER_INT_BREAK); - m->ih_overrun = SERDEV_IHAND(child, SER_INT_OVERRUN); - m->ih_rxready = SERDEV_IHAND(child, SER_INT_RXREADY); - m->ih_sigchg = SERDEV_IHAND(child, SER_INT_SIGCHG); - m->ih_txidle = SERDEV_IHAND(child, SER_INT_TXIDLE); + i = 0, isrc = SER_INT_OVERRUN; + while (i < SCC_ISRCCNT) { + m->ih_src[i] = SERDEV_IHAND(child, isrc); + if (m->ih_src[i] != NULL) + m->ih = NULL; + i++, isrc <<= 1; + } return (0); } @@ -478,6 +532,7 @@ void *cookie) { struct scc_mode *m; + int i; if (device_get_parent(child) != dev) return (EINVAL); @@ -490,10 +545,7 @@ m->m_fastintr = 0; m->ih = NULL; m->ih_arg = NULL; - m->ih_break = NULL; - m->ih_overrun = NULL; - m->ih_rxready = NULL; - m->ih_sigchg = NULL; - m->ih_txidle = NULL; + for (i = 0; i < SCC_ISRCCNT; i++) + m->ih_src[i] = NULL; return (0); } ==== //depot/projects/uart/dev/scc/scc_dev_sab82532.c#5 (text+ko) ==== @@ -45,11 +45,13 @@ #define DEFAULT_RCLK 29491200 static int sab82532_bfe_attach(struct scc_softc *, int); +static int sab82532_bfe_iclear(struct scc_softc *, struct scc_chan *); static int sab82532_bfe_ipend(struct scc_softc *); static int sab82532_bfe_probe(struct scc_softc *); static kobj_method_t sab82532_methods[] = { KOBJMETHOD(scc_attach, sab82532_bfe_attach), + KOBJMETHOD(scc_iclear, sab82532_bfe_iclear), KOBJMETHOD(scc_ipend, sab82532_bfe_ipend), KOBJMETHOD(scc_probe, sab82532_bfe_probe), { 0, 0 } @@ -77,37 +79,51 @@ } static int +sab82532_bfe_iclear(struct scc_softc *sc, struct scc_chan *ch) +{ + + return (0); +} + +static int sab82532_bfe_ipend(struct scc_softc *sc) { struct scc_bas *bas; + struct scc_chan *ch; int ipend; + int c, ofs; uint8_t isr0, isr1; bas = &sc->sc_bas; - mtx_lock_spin(&sc->sc_hwmtx); - isr0 = scc_getreg(bas, SAB_ISR0); - isr1 = scc_getreg(bas, SAB_ISR1); - scc_barrier(bas); - if (isr0 & SAB_ISR0_TIME) { - while (scc_getreg(bas, SAB_STAR) & SAB_STAR_CEC) - ; - scc_setreg(bas, SAB_CMDR, SAB_CMDR_RFRD); + ipend = 0; + for (c = 0; c < SAB_NCHAN; c++) { + ch = &sc->sc_chan[c]; + ofs = c * SAB_CHANLEN; + mtx_lock_spin(&sc->sc_hwmtx); + isr0 = scc_getreg(bas, ofs + SAB_ISR0); + isr1 = scc_getreg(bas, ofs + SAB_ISR1); scc_barrier(bas); + if (isr0 & SAB_ISR0_TIME) { + while (scc_getreg(bas, ofs + SAB_STAR) & SAB_STAR_CEC) + ; + scc_setreg(bas, ofs + SAB_CMDR, SAB_CMDR_RFRD); + scc_barrier(bas); + } + mtx_unlock_spin(&sc->sc_hwmtx); + + ch->ch_ipend = 0; + if (isr1 & SAB_ISR1_BRKT) + ch->ch_ipend |= SER_INT_BREAK; + if (isr0 & SAB_ISR0_RFO) + ch->ch_ipend |= SER_INT_OVERRUN; + if (isr0 & (SAB_ISR0_TCD|SAB_ISR0_RPF)) + ch->ch_ipend |= SER_INT_RXREADY; + if ((isr0 & SAB_ISR0_CDSC) || (isr1 & SAB_ISR1_CSC)) + ch->ch_ipend |= SER_INT_SIGCHG; + if (isr1 & SAB_ISR1_ALLS) + ch->ch_ipend |= SER_INT_TXIDLE; + ipend |= ch->ch_ipend; } - mtx_unlock_spin(&sc->sc_hwmtx); - - ipend = 0; - if (isr1 & SAB_ISR1_BRKT) - ipend |= SER_INT_BREAK; - if (isr0 & SAB_ISR0_RFO) - ipend |= SER_INT_OVERRUN; - if (isr0 & (SAB_ISR0_TCD|SAB_ISR0_RPF)) - ipend |= SER_INT_RXREADY; - if ((isr0 & SAB_ISR0_CDSC) || (isr1 & SAB_ISR1_CSC)) - ipend |= SER_INT_SIGCHG; - if (isr1 & SAB_ISR1_ALLS) - ipend |= SER_INT_TXIDLE; - return (ipend); } ==== //depot/projects/uart/dev/scc/scc_dev_z8530.c#5 (text+ko) ==== @@ -45,11 +45,13 @@ #define DEFAULT_RCLK 307200 static int z8530_bfe_attach(struct scc_softc *, int); +static int z8530_bfe_iclear(struct scc_softc *, struct scc_chan *); static int z8530_bfe_ipend(struct scc_softc *); static int z8530_bfe_probe(struct scc_softc *); static kobj_method_t z8530_methods[] = { KOBJMETHOD(scc_attach, z8530_bfe_attach), + KOBJMETHOD(scc_iclear, z8530_bfe_iclear), KOBJMETHOD(scc_ipend, z8530_bfe_ipend), KOBJMETHOD(scc_probe, z8530_bfe_probe), { 0, 0 } @@ -96,12 +98,98 @@ } static int +z8530_bfe_iclear(struct scc_softc *sc, struct scc_chan *ch) +{ + struct scc_bas *bas; + int c; + + bas = &sc->sc_bas; + c = (ch->ch_nr == 1) ? CHAN_A : CHAN_B; + mtx_lock_spin(&sc->sc_hwmtx); + if (ch->ch_ipend & SER_INT_TXIDLE) { + scc_setreg(bas, c + REG_CTRL, CR_RSTTXI); + scc_barrier(bas); + } + if (ch->ch_ipend & SER_INT_RXREADY) { + scc_getreg(bas, c + REG_DATA); + scc_barrier(bas); + } + if (ch->ch_ipend & SER_INT_SIGCHG) { + scc_setreg(bas, c + REG_CTRL, CR_RSTXSI); + scc_barrier(bas); + } + if (ch->ch_ipend & (SER_INT_OVERRUN|SER_INT_BREAK)) + scc_setreg(bas, c + REG_CTRL, CR_RSTERR); + mtx_unlock_spin(&sc->sc_hwmtx); + return (0); +} + +#define SIGCHG(c, i, s, d) \ + if (c) { \ + i |= (i & s) ? s : s | d; \ + } else { \ + i = (i & s) ? (i & ~s) | d : i; \ + } + +static int z8530_bfe_ipend(struct scc_softc *sc) { struct scc_bas *bas; + struct scc_chan *ch[2]; + uint32_t sig; + uint8_t bes, ip, src; bas = &sc->sc_bas; - return (0); + ch[0] = &sc->sc_chan[0]; + ch[1] = &sc->sc_chan[1]; + ch[0]->ch_ipend = 0; + ch[1]->ch_ipend = 0; + + mtx_lock_spin(&sc->sc_hwmtx); + ip = scc_getmreg(bas, CHAN_A, RR_IP); + if (ip & IP_RIA) + ch[0]->ch_ipend |= SER_INT_RXREADY; + if (ip & IP_RIB) + ch[1]->ch_ipend |= SER_INT_RXREADY; + if (ip & IP_TIA) + ch[0]->ch_ipend |= SER_INT_TXIDLE; + if (ip & IP_TIB) + ch[1]->ch_ipend |= SER_INT_TXIDLE; + if (ip & IP_SIA) { + bes = scc_getreg(bas, CHAN_A + RR_BES); + if (bes & BES_BRK) + ch[0]->ch_ipend |= SER_INT_BREAK; + sig = ch[0]->ch_hwsig; + SIGCHG(bes & BES_CTS, sig, SER_CTS, SER_DCTS); + SIGCHG(bes & BES_DCD, sig, SER_DCD, SER_DDCD); + SIGCHG(bes & BES_SYNC, sig, SER_DSR, SER_DDSR); + if (sig & SER_MASK_DELTA) { + ch[0]->ch_hwsig = sig; + ch[0]->ch_ipend |= SER_INT_SIGCHG; + } + src = scc_getmreg(bas, CHAN_A, RR_SRC); + if (src & SRC_OVR) + ch[0]->ch_ipend |= SER_INT_OVERRUN; + } + if (ip & IP_SIB) { + bes = scc_getreg(bas, CHAN_B + RR_BES); + if (bes & BES_BRK) + ch[1]->ch_ipend |= SER_INT_BREAK; + sig = ch[1]->ch_hwsig; + SIGCHG(bes & BES_CTS, sig, SER_CTS, SER_DCTS); + SIGCHG(bes & BES_DCD, sig, SER_DCD, SER_DDCD); + SIGCHG(bes & BES_SYNC, sig, SER_DSR, SER_DDSR); + if (sig & SER_MASK_DELTA) { + ch[1]->ch_hwsig = sig; + ch[1]->ch_ipend |= SER_INT_SIGCHG; + } + src = scc_getmreg(bas, CHAN_B, RR_SRC); + if (src & SRC_OVR) + ch[1]->ch_ipend |= SER_INT_OVERRUN; + } + mtx_unlock_spin(&sc->sc_hwmtx); + + return (ch[0]->ch_ipend | ch[1]->ch_ipend); } static int ==== //depot/projects/uart/dev/scc/scc_if.m#4 (text+ko) ==== @@ -49,6 +49,11 @@ int reset; }; +METHOD void iclear { + struct scc_softc *this; + struct scc_chan *chan; +}; + # ipend() - query SCC for pending interrupts. # When an interrupt is signalled, the handler will call this method to find # out which of the interrupt sources needs attention. The handler will use From owner-p4-projects@FreeBSD.ORG Tue Mar 28 21:15:17 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1CF3F16A464; Tue, 28 Mar 2006 21:15:17 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C4C3716A44B for ; Tue, 28 Mar 2006 21:15:16 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2B6C4442B3 for ; Tue, 28 Mar 2006 20:52:26 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2SKqPJB066265 for ; Tue, 28 Mar 2006 20:52:26 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2SKqPOe066262 for perforce@freebsd.org; Tue, 28 Mar 2006 20:52:25 GMT (envelope-from jhb@freebsd.org) Date: Tue, 28 Mar 2006 20:52:25 GMT Message-Id: <200603282052.k2SKqPOe066262@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 94206 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Mar 2006 21:15:17 -0000 http://perforce.freebsd.org/chv.cgi?CH=94206 Change 94206 by jhb@jhb_twclab on 2006/03/28 20:52:14 Compile. Affected files ... .. //depot/projects/smpng/sys/kern/kern_alq.c#11 edit Differences ... ==== //depot/projects/smpng/sys/kern/kern_alq.c#11 (text+ko) ==== @@ -35,6 +35,7 @@ #include #include #include +#include #include #include #include From owner-p4-projects@FreeBSD.ORG Tue Mar 28 21:31:18 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7E08316A440; Tue, 28 Mar 2006 21:31:18 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4372916A431 for ; Tue, 28 Mar 2006 21:31:18 +0000 (UTC) (envelope-from soc-andrew@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 232C543D76 for ; Tue, 28 Mar 2006 21:31:14 +0000 (GMT) (envelope-from soc-andrew@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2SLVEcf068220 for ; Tue, 28 Mar 2006 21:31:14 GMT (envelope-from soc-andrew@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2SLVD50068217 for perforce@freebsd.org; Tue, 28 Mar 2006 21:31:13 GMT (envelope-from soc-andrew@freebsd.org) Date: Tue, 28 Mar 2006 21:31:13 GMT Message-Id: <200603282131.k2SLVD50068217@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-andrew@freebsd.org using -f From: soc-andrew To: Perforce Change Reviews Cc: Subject: PERFORCE change 94209 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Mar 2006 21:31:18 -0000 http://perforce.freebsd.org/chv.cgi?CH=94209 Change 94209 by soc-andrew@soc-andrew_serv on 2006/03/28 21:31:12 IFC Affected files ... .. //depot/projects/soc2005/bsdinstaller/src/release/Makefile#39 integrate .. //depot/projects/soc2005/bsdinstaller/src/release/scripts/kernels-install.sh#2 integrate .. //depot/projects/soc2005/bsdinstaller/src/usr.bin/Makefile#8 integrate Differences ... ==== //depot/projects/soc2005/bsdinstaller/src/release/Makefile#39 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/release/Makefile,v 1.906 2006/03/18 21:37:05 ru Exp $ +# $FreeBSD: src/release/Makefile,v 1.908 2006/03/23 07:48:58 ru Exp $ # # make release [BUILDNAME=somename] CHROOTDIR=/some/dir CVSROOT=/cvs/dir \ # [RELEASETAG=tag] @@ -512,6 +512,10 @@ # NB: these may fail if the host is running w/o devfs echo "umount /dev >/dev/null 2>&1 || true" >> ${_MK} echo "mount -t devfs devfs /dev >/dev/null 2>&1 || true" >> ${_MK} + echo "if [ ! -c /dev/null ]; then" >> ${_MK} + echo " echo /dev/null is not a device!" >> ${_MK} + echo " exit 1" >> ${_MK} + echo "fi" >> ${_MK} echo "if [ -x /etc/rc.d/ldconfig ]; then" >> ${_MK} echo " /etc/rc.d/ldconfig start" >> ${_MK} echo "else" >> ${_MK} @@ -1211,7 +1215,8 @@ > ${RD}/dists/${TD}/$$tn.inf && \ if [ -f ${.CURDIR}/scripts/$${TD}-install.sh ]; then \ cp -p ${.CURDIR}/scripts/$${TD}-install.sh \ - ${RD}/dists/${TD}/install.sh; \ + ${RD}/dists/${TD}/install.sh && \ + chmod +x ${RD}/dists/${TD}/install.sh; \ fi && \ if [ "${SD}" != "/usr/src" ]; then \ mtree -c -i -p ${SD}/${ARG} \ ==== //depot/projects/soc2005/bsdinstaller/src/release/scripts/kernels-install.sh#2 (text) ==== @@ -1,6 +1,6 @@ #!/bin/sh # -# $FreeBSD: src/release/scripts/kernels-install.sh,v 1.1 2006/03/08 18:03:09 sam Exp $ +# $FreeBSD: src/release/scripts/kernels-install.sh,v 1.2 2006/03/21 15:49:03 sam Exp $ # if [ "`id -u`" != "0" ]; then @@ -37,7 +37,7 @@ fi # translate per Makefile:doTARBALL XXX are we sure to have tr+cut? tn=`echo ${CONFIG} | tr 'A-Z' 'a-z' | cut -c1-8` - cat $tn.?? | tar --unlink -xpzf - -C ${DESTDIR:-/} + cat $tn.?? | tar --unlink -xpzf - -C $BOOT else echo "Installation of $CONFIG kernel distribution not done." fi ==== //depot/projects/soc2005/bsdinstaller/src/usr.bin/Makefile#8 (text+ko) ==== @@ -1,5 +1,5 @@ # From: @(#)Makefile 8.3 (Berkeley) 1/7/94 -# $FreeBSD: src/usr.bin/Makefile,v 1.291 2006/03/20 14:24:58 ru Exp $ +# $FreeBSD: src/usr.bin/Makefile,v 1.292 2006/03/21 11:00:54 ru Exp $ .include @@ -262,8 +262,14 @@ .if ${MK_OPENSSL} != "no" _chkey= chkey _newkey= newkey +.if ${MACHINE_ARCH} == "alpha" || ${MACHINE_ARCH} == "sparc64" +.if ${MK_LIBC_R} != "no" _csup= csup .endif +.elif ${MK_LIBPTHREAD} != "no" +_csup= csup +.endif +.endif .if ${MK_HESIOD} != "no" _hesinfo= hesinfo From owner-p4-projects@FreeBSD.ORG Tue Mar 28 21:48:43 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 11CA216A425; Tue, 28 Mar 2006 21:48:43 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C8DEC16A41F for ; Tue, 28 Mar 2006 21:48:42 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A612D43D75 for ; Tue, 28 Mar 2006 21:48:36 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2SLmaHh069118 for ; Tue, 28 Mar 2006 21:48:36 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2SLmalc069115 for perforce@freebsd.org; Tue, 28 Mar 2006 21:48:36 GMT (envelope-from jhb@freebsd.org) Date: Tue, 28 Mar 2006 21:48:36 GMT Message-Id: <200603282148.k2SLmalc069115@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 94212 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Mar 2006 21:48:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=94212 Change 94212 by jhb@jhb_slimer on 2006/03/28 21:47:47 IFC @94211. Affected files ... .. //depot/projects/smpng/sys/alpha/alpha/clock.c#29 integrate .. //depot/projects/smpng/sys/alpha/include/cpu.h#16 integrate .. //depot/projects/smpng/sys/compat/linux/linux_misc.c#63 integrate .. //depot/projects/smpng/sys/dev/hwpmc/hwpmc_piv.c#7 integrate .. //depot/projects/smpng/sys/dev/md/md.c#78 integrate .. //depot/projects/smpng/sys/dev/mfi/mfi.c#2 integrate .. //depot/projects/smpng/sys/dev/mfi/mfi_disk.c#2 integrate .. //depot/projects/smpng/sys/geom/raid3/g_raid3.c#25 integrate .. //depot/projects/smpng/sys/i386/include/atomic.h#46 integrate .. //depot/projects/smpng/sys/kern/kern_acct.c#43 integrate .. //depot/projects/smpng/sys/kern/kern_alq.c#12 integrate .. //depot/projects/smpng/sys/kern/kern_ktrace.c#51 integrate .. //depot/projects/smpng/sys/kern/kern_sig.c#123 integrate .. //depot/projects/smpng/sys/kern/syscalls.master#71 integrate .. //depot/projects/smpng/sys/kern/vfs_syscalls.c#103 integrate .. //depot/projects/smpng/sys/kern/vfs_vnops.c#70 integrate .. //depot/projects/smpng/sys/netinet6/in6.h#20 integrate .. //depot/projects/smpng/sys/netinet6/ipsec.c#23 integrate .. //depot/projects/smpng/sys/opencrypto/cryptosoft.c#9 integrate .. //depot/projects/smpng/sys/sparc64/fhc/clkbrd.c#3 integrate .. //depot/projects/smpng/sys/sparc64/fhc/clkbrdreg.h#2 integrate .. //depot/projects/smpng/sys/sparc64/include/bus.h#26 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/machdep.c#79 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/tick.c#18 integrate .. //depot/projects/smpng/sys/sys/pmc.h#7 integrate .. //depot/projects/smpng/sys/sys/pmclog.h#4 integrate .. //depot/projects/smpng/sys/sys/sysproto.h#70 integrate .. //depot/projects/smpng/sys/sys/umtx.h#14 integrate Differences ... ==== //depot/projects/smpng/sys/alpha/alpha/clock.c#29 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/clock.c,v 1.44 2006/03/07 22:12:09 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/clock.c,v 1.45 2006/03/28 21:20:11 jhb Exp $"); #include "opt_clock.h" ==== //depot/projects/smpng/sys/alpha/include/cpu.h#16 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/alpha/include/cpu.h,v 1.43 2005/12/22 22:16:04 jhb Exp $ */ +/* $FreeBSD: src/sys/alpha/include/cpu.h,v 1.44 2006/03/28 21:20:12 jhb Exp $ */ /* From: NetBSD: cpu.h,v 1.18 1997/09/23 23:17:49 mjacob Exp */ /*- ==== //depot/projects/smpng/sys/compat/linux/linux_misc.c#63 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.175 2006/03/19 11:10:33 ru Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.177 2006/03/27 23:27:11 avatar Exp $"); #include "opt_compat.h" #include "opt_mac.h" @@ -1405,13 +1405,12 @@ int linux_sethostname(struct thread *td, struct linux_sethostname_args *args) { - struct proc *p = td->td_proc; int name[2]; int error; name[0] = CTL_KERN; name[1] = KERN_HOSTNAME; - if ((error = suser_cred(p->p_ucred, SUSER_ALLOWJAIL))) + if ((error = suser_cred(td->td_ucred, SUSER_ALLOWJAIL))) return (error); return (userland_sysctl(td, name, 2, 0, 0, 0, args->hostname, args->len, 0, 0)); ==== //depot/projects/smpng/sys/dev/hwpmc/hwpmc_piv.c#7 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/hwpmc/hwpmc_piv.c,v 1.12 2005/12/26 09:27:24 jkoshy Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/hwpmc/hwpmc_piv.c,v 1.13 2006/03/28 14:09:21 jkoshy Exp $"); #include #include @@ -674,6 +674,7 @@ static int p4_cleanup(int cpu) { + int i; struct p4_cpu *pcs; PMCDBG(MDP,INI,0, "p4-cleanup cpu=%d", cpu); @@ -681,6 +682,11 @@ if ((pcs = (struct p4_cpu *) pmc_pcpu[cpu]) == NULL) return 0; + /* Turn off all PMCs on this CPU */ + for (i = 0; i < P4_NPMCS - 1; i++) + wrmsr(P4_CCCR_MSR_FIRST + i, + rdmsr(P4_CCCR_MSR_FIRST + i) & ~P4_CCCR_ENABLE); + /* * If the CPU is physical we need to teardown the * full MD state. ==== //depot/projects/smpng/sys/dev/md/md.c#78 (text+ko) ==== @@ -6,7 +6,7 @@ * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp * ---------------------------------------------------------------------------- * - * $FreeBSD: src/sys/dev/md/md.c,v 1.163 2006/03/26 23:21:11 wkoszek Exp $ + * $FreeBSD: src/sys/dev/md/md.c,v 1.164 2006/03/28 21:25:11 jhb Exp $ * */ ==== //depot/projects/smpng/sys/dev/mfi/mfi.c#2 (text) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/mfi/mfi.c,v 1.1 2006/03/25 06:14:32 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/mfi/mfi.c,v 1.2 2006/03/28 01:59:11 scottl Exp $"); #include "opt_mfi.h" @@ -911,6 +911,12 @@ struct mfi_ld *ld; device_t child; + if ((secsize == 0) || (sectors == 0)) { + device_printf(sc->mfi_dev, "Invalid capacity parameters for " + "logical disk %d\n", id); + return (EINVAL); + } + ld = malloc(sizeof(struct mfi_ld), M_MFIBUF, M_NOWAIT|M_ZERO); if (ld == NULL) { device_printf(sc->mfi_dev, "Cannot allocate ld\n"); @@ -929,7 +935,6 @@ device_set_ivars(child, ld); device_set_desc(child, "MFI Logical Disk"); - TAILQ_INSERT_TAIL(&sc->mfi_ld_tqh, ld, ld_link); mtx_unlock(&sc->mfi_io_lock); mtx_lock(&Giant); bus_generic_attach(sc->mfi_dev); ==== //depot/projects/smpng/sys/dev/mfi/mfi_disk.c#2 (text) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/mfi/mfi_disk.c,v 1.1 2006/03/25 06:14:32 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/mfi/mfi_disk.c,v 1.2 2006/03/28 01:59:11 scottl Exp $"); #include "opt_mfi.h" @@ -119,6 +119,7 @@ free(sc->ld_ld, M_MFIBUF); return (EINVAL); } + TAILQ_INSERT_TAIL(&sc->ld_controller->mfi_ld_tqh, ld, ld_link); device_printf(dev, "%juMB (%ju sectors) RAID\n", sectors / (1024 * 1024 / secsize), sectors); ==== //depot/projects/smpng/sys/geom/raid3/g_raid3.c#25 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/geom/raid3/g_raid3.c,v 1.58 2006/03/25 23:30:36 pjd Exp $"); +__FBSDID("$FreeBSD: src/sys/geom/raid3/g_raid3.c,v 1.59 2006/03/28 18:34:36 pjd Exp $"); #include #include @@ -180,7 +180,7 @@ { struct g_raid3_zone *sz = arg; - if (sz->sz_inuse == sz->sz_max) + if (sz->sz_max > 0 && sz->sz_inuse == sz->sz_max) return (ENOMEM); sz->sz_inuse++; return (0); ==== //depot/projects/smpng/sys/i386/include/atomic.h#46 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/i386/include/atomic.h,v 1.41 2005/09/27 17:39:10 jhb Exp $ + * $FreeBSD: src/sys/i386/include/atomic.h,v 1.42 2006/03/28 14:34:48 des Exp $ */ #ifndef _MACHINE_ATOMIC_H_ #define _MACHINE_ATOMIC_H_ @@ -415,24 +415,42 @@ #define atomic_fetchadd_32 atomic_fetchadd_int /* Operations on pointers. */ -#define atomic_set_ptr atomic_set_int -#define atomic_set_acq_ptr atomic_set_acq_int -#define atomic_set_rel_ptr atomic_set_rel_int -#define atomic_clear_ptr atomic_clear_int -#define atomic_clear_acq_ptr atomic_clear_acq_int -#define atomic_clear_rel_ptr atomic_clear_rel_int -#define atomic_add_ptr atomic_add_int -#define atomic_add_acq_ptr atomic_add_acq_int -#define atomic_add_rel_ptr atomic_add_rel_int -#define atomic_subtract_ptr atomic_subtract_int -#define atomic_subtract_acq_ptr atomic_subtract_acq_int -#define atomic_subtract_rel_ptr atomic_subtract_rel_int -#define atomic_load_acq_ptr atomic_load_acq_int -#define atomic_store_rel_ptr atomic_store_rel_int -#define atomic_cmpset_ptr atomic_cmpset_int -#define atomic_cmpset_acq_ptr atomic_cmpset_acq_int -#define atomic_cmpset_rel_ptr atomic_cmpset_rel_int -#define atomic_readandclear_ptr atomic_readandclear_int +#define atomic_set_ptr(p, v) \ + atomic_set_int((volatile u_int *)(p), (u_int)(v)) +#define atomic_set_acq_ptr(p, v) \ + atomic_set_acq_int((volatile u_int *)(p), (u_int)(v)) +#define atomic_set_rel_ptr(p, v) \ + atomic_set_rel_int((volatile u_int *)(p), (u_int)(v)) +#define atomic_clear_ptr(p, v) \ + atomic_clear_int((volatile u_int *)(p), (u_int)(v)) +#define atomic_clear_acq_ptr(p, v) \ + atomic_clear_acq_int((volatile u_int *)(p), (u_int)(v)) +#define atomic_clear_rel_ptr(p, v) \ + atomic_clear_rel_int((volatile u_int *)(p), (u_int)(v)) +#define atomic_add_ptr(p, v) \ + atomic_add_int((volatile u_int *)(p), (u_int)(v)) +#define atomic_add_acq_ptr(p, v) \ + atomic_add_acq_int((volatile u_int *)(p), (u_int)(v)) +#define atomic_add_rel_ptr(p, v) \ + atomic_add_rel_int((volatile u_int *)(p), (u_int)(v)) +#define atomic_subtract_ptr(p, v) \ + atomic_subtract_int((volatile u_int *)(p), (u_int)(v)) +#define atomic_subtract_acq_ptr(p, v) \ + atomic_subtract_acq_int((volatile u_int *)(p), (u_int)(v)) +#define atomic_subtract_rel_ptr(p, v) \ + atomic_subtract_rel_int((volatile u_int *)(p), (u_int)(v)) +#define atomic_load_acq_ptr(p) \ + atomic_load_acq_int((volatile u_int *)(p)) +#define atomic_store_rel_ptr(p, v) \ + atomic_store_rel_int((volatile u_int *)(p), (v)) +#define atomic_cmpset_ptr(dst, old, new) \ + atomic_cmpset_int((volatile u_int *)(dst), (u_int)(old), (u_int)(new)) +#define atomic_cmpset_acq_ptr(dst, old, new) \ + atomic_cmpset_acq_int((volatile u_int *)(dst), (u_int)(old), (u_int)(new)) +#define atomic_cmpset_rel_ptr(dst, old, new) \ + atomic_cmpset_rel_int((volatile u_int *)(dst), (u_int)(old), (u_int)(new)) +#define atomic_readandclear_ptr(p) \ + atomic_readandclear_int((volatile u_int *)(p)) #endif /* !defined(WANT_FUNCTIONS) */ #endif /* ! _MACHINE_ATOMIC_H_ */ ==== //depot/projects/smpng/sys/kern/kern_acct.c#43 (text+ko) ==== @@ -42,7 +42,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/kern_acct.c,v 1.80 2006/02/07 18:59:47 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_acct.c,v 1.81 2006/03/28 21:26:59 jhb Exp $"); #include "opt_mac.h" ==== //depot/projects/smpng/sys/kern/kern_alq.c#12 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/kern_alq.c,v 1.14 2006/01/27 11:25:06 pjd Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_alq.c,v 1.15 2006/03/28 21:30:22 jhb Exp $"); #include "opt_mac.h" ==== //depot/projects/smpng/sys/kern/kern_ktrace.c#51 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/kern_ktrace.c,v 1.107 2006/01/30 08:19:01 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_ktrace.c,v 1.108 2006/03/28 21:30:22 jhb Exp $"); #include "opt_ktrace.h" #include "opt_mac.h" ==== //depot/projects/smpng/sys/kern/kern_sig.c#123 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/kern_sig.c,v 1.327 2006/03/09 08:31:51 davidxu Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_sig.c,v 1.328 2006/03/28 21:30:22 jhb Exp $"); #include "opt_compat.h" #include "opt_ktrace.h" ==== //depot/projects/smpng/sys/kern/syscalls.master#71 (text+ko) ==== @@ -1,4 +1,4 @@ - $FreeBSD: src/sys/kern/syscalls.master,v 1.213 2006/03/23 08:46:41 davidxu Exp $ + $FreeBSD: src/sys/kern/syscalls.master,v 1.215 2006/03/28 14:32:37 des Exp $ ; from: @(#)syscalls.master 8.2 (Berkeley) 1/13/94 ; ; System call name/number master file. ==== //depot/projects/smpng/sys/kern/vfs_syscalls.c#103 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/vfs_syscalls.c,v 1.412 2006/03/21 23:58:37 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/vfs_syscalls.c,v 1.413 2006/03/28 21:22:08 jhb Exp $"); #include "opt_compat.h" #include "opt_mac.h" ==== //depot/projects/smpng/sys/kern/vfs_vnops.c#70 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/vfs_vnops.c,v 1.239 2006/03/22 00:00:05 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/vfs_vnops.c,v 1.240 2006/03/28 21:22:08 jhb Exp $"); #include "opt_mac.h" ==== //depot/projects/smpng/sys/netinet6/in6.h#20 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/netinet6/in6.h,v 1.43 2006/03/19 02:11:42 suz Exp $ */ +/* $FreeBSD: src/sys/netinet6/in6.h,v 1.44 2006/03/28 12:51:22 dwmalone Exp $ */ /* $KAME: in6.h,v 1.89 2001/05/27 13:28:35 itojun Exp $ */ /*- @@ -77,31 +77,9 @@ #define __KAME_VERSION "FreeBSD" /* - * Local port number conventions: - * - * Ports < IPPORT_RESERVED are reserved for privileged processes (e.g. root), - * unless a kernel is compiled with IPNOPRIVPORTS defined. - * - * When a user does a bind(2) or connect(2) with a port number of zero, - * a non-conflicting local port address is chosen. - * - * The default range is IPPORT_ANONMIN to IPPORT_ANONMAX, although - * that is settable by sysctl(3); net.inet.ip.anonportmin and - * net.inet.ip.anonportmax respectively. - * - * A user may set the IPPROTO_IP option IP_PORTRANGE to change this - * default assignment range. - * - * The value IP_PORTRANGE_DEFAULT causes the default behavior. - * - * The value IP_PORTRANGE_HIGH is the same as IP_PORTRANGE_DEFAULT, - * and exists only for FreeBSD compatibility purposes. - * - * The value IP_PORTRANGE_LOW changes the range to the "low" are - * that is (by convention) restricted to privileged processes. - * This convention is based on "vouchsafe" principles only. - * It is only secure if you trust the remote host to restrict these ports. - * The range is IPPORT_RESERVEDMIN to IPPORT_RESERVEDMAX. + * IPv6 port allocation rules should mirror the IPv4 rules and are controlled + * by the the net.inet.ip.portrange sysctl tree. The following defines exist + * for compatibility with userland applications that need them. */ #if __BSD_VISIBLE #define IPV6PORT_RESERVED 1024 ==== //depot/projects/smpng/sys/netinet6/ipsec.c#23 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/netinet6/ipsec.c,v 1.43 2005/07/25 12:31:42 ume Exp $ */ +/* $FreeBSD: src/sys/netinet6/ipsec.c,v 1.44 2006/03/28 10:16:38 rwatson Exp $ */ /* $KAME: ipsec.c,v 1.207 2004/01/13 03:30:42 itojun Exp $ */ /*- @@ -3469,15 +3469,6 @@ MGETHDR(mnew, M_DONTWAIT, MT_HEADER); if (mnew == NULL) goto fail; - mnew->m_pkthdr = n->m_pkthdr; -#if 0 - /* XXX: convert to m_tag or delete? */ - if (n->m_pkthdr.aux) { - mnew->m_pkthdr.aux = - m_copym(n->m_pkthdr.aux, - 0, M_COPYALL, M_DONTWAIT); - } -#endif M_MOVE_PKTHDR(mnew, n); } else { ==== //depot/projects/smpng/sys/opencrypto/cryptosoft.c#9 (text+ko) ==== @@ -22,7 +22,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/opencrypto/cryptosoft.c,v 1.9 2005/03/11 12:37:06 ume Exp $"); +__FBSDID("$FreeBSD: src/sys/opencrypto/cryptosoft.c,v 1.10 2006/03/28 08:33:30 pjd Exp $"); #include #include @@ -1028,3 +1028,12 @@ #undef REGISTER } SYSINIT(cryptosoft_init, SI_SUB_PSEUDO, SI_ORDER_ANY, swcr_init, NULL) + +static void +swcr_uninit(void) +{ + + if (swcr_sessions != NULL) + FREE(swcr_sessions, M_CRYPTO_DATA); +} +SYSUNINIT(cryptosoft_uninit, SI_SUB_PSEUDO, SI_ORDER_ANY, swcr_uninit, NULL); ==== //depot/projects/smpng/sys/sparc64/fhc/clkbrd.c#3 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/sparc64/fhc/clkbrd.c,v 1.2 2005/11/30 16:13:49 marius Exp $"); +__FBSDID("$FreeBSD: src/sys/sparc64/fhc/clkbrd.c,v 1.3 2006/03/28 19:46:48 marius Exp $"); #include #include @@ -131,19 +131,20 @@ slots = 4; r = bus_space_read_1(sc->sc_bt[CLKBRD_CLK], sc->sc_bh[CLKBRD_CLK], CLK_STS1); - switch (r & 0xc0) { - case 0x40: + switch (r & CLK_STS1_SLOTS_MASK) { + case CLK_STS1_SLOTS_16: slots = 16; break; - case 0xc0: + case CLK_STS1_SLOTS_8: slots = 8; break; - case 0x80: + case CLK_STS1_SLOTS_4: if (sc->sc_flags & CLKBRD_HAS_CLKVER) { r = bus_space_read_1(sc->sc_bt[CLKBRD_CLKVER], - sc->sc_bh[CLKBRD_CLKVER], 0); - if (r != 0 && (r & 0x80) == 0) - slots = 5; + sc->sc_bh[CLKBRD_CLKVER], CLKVER_SLOTS); + if (r != 0 && + (r & CLKVER_SLOTS_MASK) == CLKVER_SLOTS_PLUS) + slots = 5; } } ==== //depot/projects/smpng/sys/sparc64/fhc/clkbrdreg.h#2 (text+ko) ==== @@ -1,5 +1,6 @@ /*- * Copyright (c) 2004 Jason L. Wright (jason@thought.net) + * Copyright (c) 2006 Marius Strobl * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -25,23 +26,72 @@ * * from: OpenBSD: clkbrdreg.h,v 1.2 2004/10/01 15:36:30 jason Exp * - * $FreeBSD: src/sys/sparc64/fhc/clkbrdreg.h,v 1.1 2005/03/19 01:04:48 marius Exp $ + * $FreeBSD: src/sys/sparc64/fhc/clkbrdreg.h,v 1.2 2006/03/28 19:46:48 marius Exp $ */ -#define CLK_CTRL 0x00 -#define CLK_STS1 0x10 -#define CLK_STS2 0x20 -#define CLK_PSTS1 0x30 -#define CLK_PPRES 0x40 -#define CLK_TEMP 0x50 -#define CLK_IRQ 0x60 -#define CLK_PSTS2 0x70 +#ifndef _SPARC64_FHC_CLKBRDREG_H_ +#define _SPARC64_FHC_CLKBRDREG_H_ + +/* register bank 0 */ +#define CLK_CF_REG2 0x20 /* clock frequency register 2 */ +#define CLK_CF_REG2_REN_RCONS 0x80 /* reset enable: remote console */ +#define CLK_CF_REG2_REN_GEN 0x40 /* reset enable: frequency change */ +#define CLK_CF_REG2_REN_WDOG 0x20 /* reset enable: watchdog */ +#define CLK_CF_REG2_DIV1 0x10 /* CPU module divisor bit 1 */ +#define CLK_CF_REG2_RANGE 0x0c /* clock range */ +#define CLK_CF_REG2_DIV0 0x02 /* CPU module divisor bit 0 */ +#define CLK_CF_REG2_FREQ8 0x01 /* frequency bit 8 */ + +/* register bank 1 */ +#define CLK_CTRL 0x00 /* system control register */ +#define CLK_CTRL_IEN_FAN 0x80 /* intr enable: fan failure */ +#define CLK_CTRL_IEN_DC 0x40 /* intr enable: power supply DC */ +#define CLK_CTRL_IEN_AC 0x20 /* intr enable: AC power */ +#define CLK_CTRL_IEN_BRD 0x10 /* intr enable: board insert */ +#define CLK_CTRL_POFF 0x08 /* turn off system power */ +#define CLK_CTRL_LLED 0x04 /* left led (reversed) */ +#define CLK_CTRL_MLED 0x02 /* middle led */ +#define CLK_CTRL_RLED 0x01 /* right led */ +#define CLK_STS1 0x10 /* system status register 1 */ +#define CLK_STS1_SLOTS_MASK 0xc0 /* system status 1 slots mask */ +#define CLK_STS1_SLOTS_16 0x40 /* 16 slots */ +#define CLK_STS1_SLOTS_8 0xc0 /* 8 slots */ +#define CLK_STS1_SLOTS_4 0x80 /* 4 slots */ +#define CLK_STS1_SLOTS_TESTBED 0x00 /* test machine */ +#define CLK_STS1_SECURE 0x20 /* key in position secure (reversed) */ +#define CLK_STS1_FAN 0x10 /* fan tray present (reversed) */ +#define CLK_STS1_BRD 0x08 /* board inserted (reversed) */ +#define CLK_STS1_PS0 0x04 /* power supply 0 present (reversed) */ +#define CLK_STS1_RST_WDOG 0x02 /* rst by: watchdog (reversed) */ +#define CLK_STS1_RST_GEN 0x01 /* rst by: freq change (reversed) */ +#define CLK_STS2 0x20 /* system status register 2 */ +#define CLK_STS2_RST_RCONS 0x80 /* rst by: remote console (reversed) */ +#define CLK_STS2_OK_PS0 0x40 /* ok: power supply 0 */ +#define CLK_STS2_OK_33V 0x20 /* ok: 3.3V on clock board */ +#define CLK_STS2_OK_50V 0x10 /* ok: 5.0V on clock board */ +#define CLK_STS2_FAIL_AC 0x08 /* failed: AC power */ +#define CLK_STS2_FAIL_FAN 0x04 /* failed: rack fans */ +#define CLK_STS2_OK_ACFAN 0x02 /* ok: 4 AC box fans */ +#define CLK_STS2_OK_KEYFAN 0x01 /* ok: keyswitch fans */ +#define CLK_PSTS1 0x30 /* power supply 1 status register */ +#define CLK_PSTS1_PS 0x80 /* power supply 1 present (reversed) */ +#define CLK_PPRES 0x40 /* power supply presence register */ +#define CLK_PPRES_CSHARE 0x80 /* current share backplane */ +#define CLK_PPRES_OK_MASK 0x7f /* precharge and peripheral pwr mask */ +#define CLK_PPRES_OK_P_5V 0x40 /* ok: peripheral 5V */ +#define CLK_PPRES_OK_P_12V 0x20 /* ok: peripheral 12V */ +#define CLK_PPRES_OK_AUX_5V 0x10 /* ok: auxiliary 5V */ +#define CLK_PPRES_OK_PP_5V 0x08 /* ok: peripheral 5V precharge */ +#define CLK_PPRES_OK_PP_12V 0x04 /* ok: peripheral 12V precharge */ +#define CLK_PPRES_OK_SP_3V 0x02 /* ok: system 3.3V precharge */ +#define CLK_PPRES_OK_SP_5V 0x01 /* ok: system 5V precharge */ +#define CLK_TEMP 0x50 /* temperature register */ +#define CLK_IDIAG 0x60 /* interrupt diagnostic register */ +#define CLK_PSTS2 0x70 /* power supply 2 status register */ + +/* register bank 2 */ +#define CLKVER_SLOTS 0x00 /* clock version slots register */ +#define CLKVER_SLOTS_MASK 0x80 /* clock version slots mask */ +#define CLKVER_SLOTS_PLUS 0x00 /* plus system (reversed) */ -#define CLK_CTRL_IEN_FAN 0x80 /* intr enable: fan failure */ -#define CLK_CTRL_IEN_DC 0x40 /* intr enable: pwr supply DC */ -#define CLK_CTRL_IEN_AC 0x20 /* intr enable: AC pwr supply */ -#define CLK_CTRL_IEN_BRD 0x10 /* intr enable: board insert */ -#define CLK_CTRL_POFF 0x08 /* turn off system power */ -#define CLK_CTRL_LLED 0x04 /* left led (reversed) */ -#define CLK_CTRL_MLED 0x02 /* middle led */ -#define CLK_CTRL_RLED 0x01 /* right led */ +#endif /* !_SPARC64_FHC_CLKBRDREG_H_ */ ==== //depot/projects/smpng/sys/sparc64/include/bus.h#26 (text+ko) ==== @@ -69,7 +69,7 @@ * and * from: FreeBSD: src/sys/alpha/include/bus.h,v 1.9 2001/01/09 * - * $FreeBSD: src/sys/sparc64/include/bus.h,v 1.37 2005/04/18 21:45:34 imp Exp $ + * $FreeBSD: src/sys/sparc64/include/bus.h,v 1.38 2006/03/28 19:19:37 marius Exp $ */ #ifndef _MACHINE_BUS_H_ @@ -318,7 +318,7 @@ static __inline void bus_space_write_multi_1(bus_space_tag_t t, bus_space_handle_t h, bus_size_t o, - uint8_t *a, size_t c) + const uint8_t *a, size_t c) { while (c-- > 0) @@ -327,7 +327,7 @@ static __inline void bus_space_write_multi_2(bus_space_tag_t t, bus_space_handle_t h, bus_size_t o, - uint16_t *a, size_t c) + const uint16_t *a, size_t c) { while (c-- > 0) @@ -336,7 +336,7 @@ static __inline void bus_space_write_multi_4(bus_space_tag_t t, bus_space_handle_t h, bus_size_t o, - uint32_t *a, size_t c) + const uint32_t *a, size_t c) { while (c-- > 0) @@ -345,7 +345,7 @@ static __inline void bus_space_write_multi_8(bus_space_tag_t t, bus_space_handle_t h, bus_size_t o, - uint64_t *a, size_t c) + const uint64_t *a, size_t c) { while (c-- > 0) ==== //depot/projects/smpng/sys/sparc64/sparc64/machdep.c#79 (text+ko) ==== @@ -36,7 +36,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/sparc64/sparc64/machdep.c,v 1.127 2006/02/14 14:50:11 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/sparc64/sparc64/machdep.c,v 1.128 2006/03/28 20:28:31 marius Exp $"); #include "opt_compat.h" #include "opt_ddb.h" @@ -321,6 +321,11 @@ break; } + /* + * Initialize the tick counter. Must be before the console is inited + * in order to provide the low-level console drivers with a working + * DELAY(). + */ OF_getprop(child, "clock-frequency", &clock, sizeof(clock)); tick_init(clock); @@ -330,7 +335,7 @@ cninit(); /* - * Panic is there is no metadata. Most likely the kernel was booted + * Panic if there is no metadata. Most likely the kernel was booted * directly, instead of through loader(8). */ if (mdp == NULL || kmdp == NULL) { ==== //depot/projects/smpng/sys/sparc64/sparc64/tick.c#18 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/sparc64/sparc64/tick.c,v 1.20 2006/02/11 09:33:07 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/sparc64/sparc64/tick.c,v 1.21 2006/03/28 20:25:46 marius Exp $"); #include #include @@ -146,13 +146,6 @@ tick_freq = clock; tick_MHz = clock / 1000000; tick_increment = clock / hz; - /* - * Avoid stopping of hardclock in terms of a lost tick interrupt - * by ensuring that the tick period is at least TICK_GRACE ticks. - */ - if (tick_increment < TICK_GRACE) - panic("%s: HZ to high, decrease to at least %ld", __func__, - clock / TICK_GRACE); /* * UltraSparc II[e,i] based systems come up with the tick interrupt @@ -172,6 +165,18 @@ { u_long base, s; + /* + * Avoid stopping of hardclock in terms of a lost tick interrupt + * by ensuring that the tick period is at least TICK_GRACE ticks. + * This check would be better placed in tick_init(), however we + * have to call tick_init() before cninit() in order to provide + * the low-level console drivers with a working DELAY() which in + * turn means we cannot use panic() in tick_init(). + */ + if (tick_increment < TICK_GRACE) + panic("%s: HZ too high, decrease to at least %ld", __func__, + tick_freq / TICK_GRACE); + if (PCPU_GET(cpuid) == 0) intr_setup(PIL_TICK, tick_hardclock, -1, NULL, NULL); ==== //depot/projects/smpng/sys/sys/pmc.h#7 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/sys/pmc.h,v 1.10 2006/03/26 12:20:54 jkoshy Exp $ + * $FreeBSD: src/sys/sys/pmc.h,v 1.11 2006/03/28 16:20:29 jkoshy Exp $ */ #ifndef _SYS_PMC_H_ @@ -533,7 +533,6 @@ #include #include -#define PMC_REQUEST_POOL_SIZE 32 #define PMC_HASH_SIZE 16 #define PMC_MTXPOOL_SIZE 32 #define PMC_LOG_BUFFER_SIZE 4 ==== //depot/projects/smpng/sys/sys/pmclog.h#4 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/sys/pmclog.h,v 1.3 2006/03/26 12:20:54 jkoshy Exp $ + * $FreeBSD: src/sys/sys/pmclog.h,v 1.4 2006/03/28 16:20:29 jkoshy Exp $ */ #ifndef _SYS_PMCLOG_H_ @@ -57,9 +57,6 @@ PMCLOG_TYPE_MAP_OUT }; -#define PMCLOG_MAPPING_INSERT 0x01 /* obsolete */ -#define PMCLOG_MAPPING_DELETE 0x02 /* obsolete */ - /* * A log entry descriptor comprises of a 32 bit header and a 64 bit * time stamp followed by as many 32 bit words are required to record ==== //depot/projects/smpng/sys/sys/sysproto.h#70 (text+ko) ==== @@ -2,7 +2,7 @@ * System call prototypes. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/sys/sysproto.h,v 1.192 2006/03/23 08:48:37 davidxu Exp $ + * $FreeBSD: src/sys/sys/sysproto.h,v 1.194 2006/03/28 14:32:38 des Exp $ * created from FreeBSD: src/sys/kern/syscalls.master,v 1.213 2006/03/23 08:46:41 davidxu Exp */ ==== //depot/projects/smpng/sys/sys/umtx.h#14 (text+ko) ==== @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/sys/umtx.h,v 1.17 2005/10/26 06:55:46 davidxu Exp $ + * $FreeBSD: src/sys/sys/umtx.h,v 1.19 2006/03/28 14:32:38 des Exp $ * */ @@ -52,13 +52,15 @@ #ifndef _KERNEL /* - * System calls for acquiring and releasing contested mutexes. + * System call for userland mutex operations. + */ +int _umtx_op(struct umtx *umtx, int op, long id, void *uaddr, void *uaddr2); + +/* + * Old (deprecated) userland mutex system calls. */ -/* deprecated becaues it can only use thread id */ int _umtx_lock(struct umtx *mtx); -/* deprecated becaues it can only use thread id */ int _umtx_unlock(struct umtx *mtx); -int _umtx_op(struct umtx *umtx, int op, long id, void *uaddr, void *uaddr2); /* * Standard api. Try uncontested acquire/release and asks the @@ -100,7 +102,8 @@ { if (atomic_cmpset_acq_ptr(&umtx->u_owner, (void *)UMTX_UNOWNED, (void *)id) == 0) - if (_umtx_op(umtx, UMTX_OP_LOCK, id, 0, (void *)timeout) == -1) + if (_umtx_op(umtx, UMTX_OP_LOCK, id, 0, + __DECONST(void *, timeout)) == -1) return (errno); return (0); } @@ -118,7 +121,8 @@ static __inline int umtx_wait(struct umtx *umtx, long id, const struct timespec *timeout) { - if (_umtx_op(umtx, UMTX_OP_WAIT, id, 0, (void *)timeout) == -1) + if (_umtx_op(umtx, UMTX_OP_WAIT, id, 0, + __DECONST(void *, timeout)) == -1) return (errno); return (0); } From owner-p4-projects@FreeBSD.ORG Tue Mar 28 22:00:52 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4960316A588; Tue, 28 Mar 2006 22:00:52 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2124416A578 for ; Tue, 28 Mar 2006 22:00:52 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id D703B43D45 for ; Tue, 28 Mar 2006 22:00:51 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2SM0pKv069688 for ; Tue, 28 Mar 2006 22:00:51 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2SM0p10069685 for perforce@freebsd.org; Tue, 28 Mar 2006 22:00:51 GMT (envelope-from marcel@freebsd.org) Date: Tue, 28 Mar 2006 22:00:51 GMT Message-Id: <200603282200.k2SM0p10069685@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Cc: Subject: PERFORCE change 94213 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Mar 2006 22:00:52 -0000 http://perforce.freebsd.org/chv.cgi?CH=94213 Change 94213 by marcel@marcel_nfs on 2006/03/28 22:00:49 Perform a reset external/status interrupt before reading RR0. Any status that triggers XSI will be latched and we may not read the current status for them. Affected files ... .. //depot/projects/uart/dev/scc/scc_dev_z8530.c#6 edit Differences ... ==== //depot/projects/uart/dev/scc/scc_dev_z8530.c#6 (text+ko) ==== @@ -114,7 +114,7 @@ scc_getreg(bas, c + REG_DATA); scc_barrier(bas); } - if (ch->ch_ipend & SER_INT_SIGCHG) { + if (ch->ch_ipend & (SER_INT_SIGCHG|SER_INT_BREAK)) { scc_setreg(bas, c + REG_CTRL, CR_RSTXSI); scc_barrier(bas); } @@ -156,7 +156,9 @@ if (ip & IP_TIB) ch[1]->ch_ipend |= SER_INT_TXIDLE; if (ip & IP_SIA) { - bes = scc_getreg(bas, CHAN_A + RR_BES); + scc_setreg(bas, CHAN_A + REG_CTRL, CR_RSTXSI); + scc_barrier(bas); + bes = scc_getreg(bas, CHAN_A + REG_CTRL); if (bes & BES_BRK) ch[0]->ch_ipend |= SER_INT_BREAK; sig = ch[0]->ch_hwsig; @@ -172,7 +174,9 @@ ch[0]->ch_ipend |= SER_INT_OVERRUN; } if (ip & IP_SIB) { - bes = scc_getreg(bas, CHAN_B + RR_BES); + scc_setreg(bas, CHAN_B + REG_CTRL, CR_RSTXSI); + scc_barrier(bas); + bes = scc_getreg(bas, CHAN_B + REG_CTRL); if (bes & BES_BRK) ch[1]->ch_ipend |= SER_INT_BREAK; sig = ch[1]->ch_hwsig; From owner-p4-projects@FreeBSD.ORG Wed Mar 29 06:39:35 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1327816A420; Wed, 29 Mar 2006 06:39:35 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E644316A401 for ; Wed, 29 Mar 2006 06:39:34 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A50F543D46 for ; Wed, 29 Mar 2006 06:39:34 +0000 (GMT) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2T6dYVu008339 for ; Wed, 29 Mar 2006 06:39:34 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2T6dYG2008336 for perforce@freebsd.org; Wed, 29 Mar 2006 06:39:34 GMT (envelope-from imp@freebsd.org) Date: Wed, 29 Mar 2006 06:39:34 GMT Message-Id: <200603290639.k2T6dYG2008336@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 94228 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Mar 2006 06:39:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=94228 Change 94228 by imp@imp_Speedy on 2006/03/29 06:38:36 Start to add DMA stuff, one weenie step at a time Affected files ... .. //depot/projects/arm/src/sys/arm/at91/uart_dev_at91usart.c#18 edit Differences ... ==== //depot/projects/arm/src/sys/arm/at91/uart_dev_at91usart.c#18 (text+ko) ==== @@ -45,6 +45,15 @@ #include "uart_if.h" +/* + * High-level UART interface. + */ +struct at91_usart_softc { + struct uart_softc base; + bus_dma_tag_t dmatag; /* bus dma tag for mbufs */ + bus_dmamap_t tx_map; +}; + #define DEFAULT_RCLK AT91C_MASTER_CLOCK #define RD4(bas, reg) \ @@ -283,10 +292,28 @@ static int at91_usart_bus_attach(struct uart_softc *sc) { + int err; + struct at91_usart_softc *atsc; + + atsc = (struct at91_usart_softc *)sc; + sc->sc_txfifosz = 128; /* Really 64k, but 128 seems a good number */ sc->sc_rxfifosz = 128; sc->sc_hwiflow = 0; - return (0); + + /* + * Allocate DMA tags and maps + */ + err = bus_dma_tag_create(NULL, 1, 0, BUS_SPACE_MAXADDR_32BIT, + BUS_SPACE_MAXADDR, NULL, NULL, MCLBYTES, 1, MCLBYTES, + BUS_DMA_ALLOCNOW, NULL, NULL, &atsc->dmatag); + if (err != 0) + goto errout; + err = bus_dmamap_create(atsc->dmatag, 0, &atsc->tx_map); + if (err != 0) + goto errout; +errout:; + return (err); } static int at91_usart_bus_transmit(struct uart_softc *sc) @@ -430,7 +457,7 @@ struct uart_class at91_usart_class = { "at91_usart class", at91_usart_methods, - 1, + sizeof(struct at91_usart_softc), .uc_range = 8, .uc_rclk = DEFAULT_RCLK }; From owner-p4-projects@FreeBSD.ORG Wed Mar 29 07:00:00 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6777616A424; Wed, 29 Mar 2006 07:00:00 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 45DF816A422 for ; Wed, 29 Mar 2006 07:00:00 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 149DB43D45 for ; Wed, 29 Mar 2006 07:00:00 +0000 (GMT) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2T6xxgG009778 for ; Wed, 29 Mar 2006 06:59:59 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2T6xxep009775 for perforce@freebsd.org; Wed, 29 Mar 2006 06:59:59 GMT (envelope-from imp@freebsd.org) Date: Wed, 29 Mar 2006 06:59:59 GMT Message-Id: <200603290659.k2T6xxep009775@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 94230 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Mar 2006 07:00:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=94230 Change 94230 by imp@imp_Speedy on 2006/03/29 06:59:08 Fix offset Affected files ... .. //depot/projects/arm/src/sys/arm/at91/at91_pdcreg.h#3 edit Differences ... ==== //depot/projects/arm/src/sys/arm/at91/at91_pdcreg.h#3 (text+ko) ==== @@ -36,7 +36,7 @@ #define PDC_TNPR 0x118 /* PDC Transmit Next Pointer Reg */ #define PDC_TNCR 0x11c /* PDC Transmit Next Counter Reg */ #define PDC_PTCR 0x120 /* PDC Transfer Control Register */ -#define PDC_PTSR 0x120 /* PDC Transfer Status Register */ +#define PDC_PTSR 0x124 /* PDC Transfer Status Register */ /* PTCR/PTSR */ #define PDC_PTCR_RXTEN (1UL << 0) /* RXTEN: Receiver Transfer Enable */ From owner-p4-projects@FreeBSD.ORG Wed Mar 29 07:24:31 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 10CF416A425; Wed, 29 Mar 2006 07:24:31 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C50A516A422 for ; Wed, 29 Mar 2006 07:24:30 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 49AE143D49 for ; Wed, 29 Mar 2006 07:24:30 +0000 (GMT) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2T7OU7C011021 for ; Wed, 29 Mar 2006 07:24:30 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2T7OTro011018 for perforce@freebsd.org; Wed, 29 Mar 2006 07:24:29 GMT (envelope-from imp@freebsd.org) Date: Wed, 29 Mar 2006 07:24:29 GMT Message-Id: <200603290724.k2T7OTro011018@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 94231 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Mar 2006 07:24:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=94231 Change 94231 by imp@imp_Speedy on 2006/03/29 07:24:23 Use the PDC to transmit. The tx side is easy, since we don't try to double buffer. We get a bunch of bytes, and try to transmit them. Once it is done, we'll get more from the main uart driver. I think this works, but I've not tested it. The Rx side is harder. We don't know, a priori, the number of bytes we'll get. We have to deal with both ENDTRX interrupts, as well as TIMEOUT interrupts. We necessarily have to have double buffering. The uart infrastructure doesn't really have this concept, so more study is needed. We can fake it with really really large buffers, but that's just a statistical solution... Affected files ... .. //depot/projects/arm/src/sys/arm/at91/uart_dev_at91usart.c#19 edit Differences ... ==== //depot/projects/arm/src/sys/arm/at91/uart_dev_at91usart.c#19 (text+ko) ==== @@ -52,9 +52,11 @@ struct uart_softc base; bus_dma_tag_t dmatag; /* bus dma tag for mbufs */ bus_dmamap_t tx_map; + bus_dmamap_t rx_map; }; -#define DEFAULT_RCLK AT91C_MASTER_CLOCK +#define DEFAULT_RCLK AT91C_MASTER_CLOCK +#define USART_BUFFER_SIZE 128 #define RD4(bas, reg) \ bus_space_read_4((bas)->bst, (bas)->bsh, uart_regofs(bas, reg)) @@ -297,41 +299,59 @@ atsc = (struct at91_usart_softc *)sc; - sc->sc_txfifosz = 128; /* Really 64k, but 128 seems a good number */ - sc->sc_rxfifosz = 128; + sc->sc_txfifosz = USART_BUFFER_SIZE; + sc->sc_rxfifosz = USART_BUFFER_SIZE; sc->sc_hwiflow = 0; /* * Allocate DMA tags and maps */ err = bus_dma_tag_create(NULL, 1, 0, BUS_SPACE_MAXADDR_32BIT, - BUS_SPACE_MAXADDR, NULL, NULL, MCLBYTES, 1, MCLBYTES, - BUS_DMA_ALLOCNOW, NULL, NULL, &atsc->dmatag); + BUS_SPACE_MAXADDR, NULL, NULL, USART_BUFFER_SIZE, 1, + USART_BUFFER_SIZE, BUS_DMA_ALLOCNOW, NULL, NULL, &atsc->dmatag); if (err != 0) goto errout; err = bus_dmamap_create(atsc->dmatag, 0, &atsc->tx_map); if (err != 0) goto errout; + err = bus_dmamap_create(atsc->dmatag, 0, &atsc->rx_map); + if (err != 0) + goto errout; errout:; + // XXX bad return (err); } + +static void +at91_getaddr(void *arg, bus_dma_segment_t *segs, int nsegs, int error) +{ + if (error != 0) + return; + *(bus_addr_t *)arg = segs[0].ds_addr; +} + + static int at91_usart_bus_transmit(struct uart_softc *sc) { - int i; + bus_addr_t addr; + struct at91_usart_softc *atsc; + + atsc = (struct at91_usart_softc *)sc; + if (bus_dmamap_load(atsc->dmatag, atsc->tx_map, sc->sc_txbuf, + sc->sc_txdatasz, at91_getaddr, &addr, 0) != 0) + return (EAGAIN); + bus_dmamap_sync(atsc->dmatag, atsc->tx_map, BUS_DMASYNC_PREWRITE); - /* XXX VERY sub-optimial */ mtx_lock_spin(&sc->sc_hwmtx); sc->sc_txbusy = 1; -#if 0 - /* XXX - * We can setup the PDC to transfer the whole buffer - * here. + /* + * Setup the PDC to transfer the data and interrupt us when it + * is done. We've already requested the interrupt. */ -#else - for (i = 0; i < sc->sc_txdatasz; i++) - at91_usart_putc(&sc->sc_bas, sc->sc_txbuf[i]); -#endif + WR4(&sc->sc_bas, PDC_TPR, addr); + WR4(&sc->sc_bas, PDC_TCR, sc->sc_txdatasz); + WR4(&sc->sc_bas, PDC_PTCR, PDC_PTCR_TXTEN); mtx_unlock_spin(&sc->sc_hwmtx); #ifdef USART0_CONSOLE /* @@ -394,7 +414,9 @@ { int csr = RD4(&sc->sc_bas, USART_CSR); int ipend = 0; - + struct at91_usart_softc *atsc; + + atsc = (struct at91_usart_softc *)sc; #ifdef USART0_CONSOLE /* * XXX: We have to cheat for skyeye, as it will return 0xff for all @@ -404,6 +426,11 @@ return (0); #endif + if (csr & USART_CSR_ENDTX) { + bus_dmamap_sync(atsc->dmatag, atsc->tx_map, + BUS_DMASYNC_POSTWRITE); + bus_dmamap_unload(atsc->dmatag, atsc->tx_map); + } mtx_lock_spin(&sc->sc_hwmtx); if (csr & USART_CSR_TXRDY && sc->sc_txbusy) ipend |= SER_INT_TXIDLE; From owner-p4-projects@FreeBSD.ORG Wed Mar 29 10:00:01 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B13C816A41F; Wed, 29 Mar 2006 10:00:01 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 81AE416A400 for ; Wed, 29 Mar 2006 10:00:01 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id EBBB043D58 for ; Wed, 29 Mar 2006 10:00:00 +0000 (GMT) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2TA000u026589 for ; Wed, 29 Mar 2006 10:00:00 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2TA003v026574 for perforce@freebsd.org; Wed, 29 Mar 2006 10:00:00 GMT (envelope-from kmacy@freebsd.org) Date: Wed, 29 Mar 2006 10:00:00 GMT Message-Id: <200603291000.k2TA003v026574@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 94237 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Mar 2006 10:00:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=94237 Change 94237 by kmacy@kmacy_storage:sun4v_work on 2006/03/29 09:59:01 switch to a decidedly more fail-fast approach to tracking PCB physical addresses track down remaining issue to exec_setregs zeroing all fields in the PCB after it had been initialized in fork Affected files ... .. //depot/projects/kmacy_sun4v/src/sys/sparc64/sparc64/genassym.c#16 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/include/asmacros.h#12 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/include/pcb.h#9 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/include/pcpu.h#9 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/exception.S#40 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/locore.S#8 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/machdep.c#18 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/swtch.S#15 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/vm_machdep.c#7 edit Differences ... ==== //depot/projects/kmacy_sun4v/src/sys/sparc64/sparc64/genassym.c#16 (text+ko) ==== @@ -219,9 +219,8 @@ ASSYM(PC_KWBUF_SP, offsetof(struct pcpu, pc_kwbuf_sp)); ASSYM(PC_KWBUF, offsetof(struct pcpu, pc_kwbuf)); ASSYM(PC_PMAP, offsetof(struct pcpu, pc_curpmap)); -ASSYM(PC_CURPCB_RA, offsetof(struct pcpu, pc_curpcb_ra)); -ASSYM(PCB_RA, offsetof(struct pcb, pcb_ra)); +ASSYM(PCB_KSTACK, offsetof(struct pcb, pcb_kstack)); ASSYM(INTR_REPORT_SIZE, INTR_REPORT_SIZE); #else ASSYM(PC_TLB_CTX, offsetof(struct pcpu, pc_tlb_ctx)); ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/include/asmacros.h#12 (text+ko) ==== @@ -181,9 +181,10 @@ #define GET_PCB_PHYS(tmp, reg) \ - mov PC_CURPCB_RA, reg; \ + mov PC_CURPCB, reg; \ GET_PCPU_PHYS_SCRATCH(tmp); \ - ldxa [PCPU_REG + reg]ASI_REAL, reg; + ldxa [PCPU_REG + reg]ASI_REAL, reg; \ + sub reg, tmp, reg; #define GET_PCB(reg) \ ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/include/pcb.h#9 (text+ko) ==== @@ -45,7 +45,7 @@ uint64_t pcb_nsaved; /* number of windows saved in pcb_rw */ uint64_t pcb_pc; uint64_t pcb_sp; - uint64_t pcb_ra; /* physical address of pcb */ + uint64_t pcb_kstack; /* pcb's kernel stack */ uint64_t pcb_pad[4]; } __aligned(64); ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/include/pcpu.h#9 (text+ko) ==== @@ -74,8 +74,7 @@ struct rwindow pc_kwbuf; \ u_long pc_kwbuf_sp; \ u_int pc_kwbuf_full; \ - u_int pc_node; \ - u_long pc_curpcb_ra; + u_int pc_node; /* XXX SUN4V_FIXME - as we access the *_ra and *_size fields in quick * succession we _really_ want them to be L1 cache line size aligned ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/exception.S#40 (text+ko) ==== @@ -929,7 +929,8 @@ mov %l7, %o0 ldx [PCPU_REG + PC_CURPCB], %g6 - sub %g6, CCFSZ + SPOFF + TF_SIZEOF, %sp + ldx [%g6 + PCB_KSTACK], %g6 + sub %g6, TF_SIZEOF, %sp add %sp, REGOFF + SPOFF, %l7 ENTRY(user_rtt) GET_PCPU_SCRATCH @@ -1229,7 +1230,8 @@ #endif GET_PCB(%g6) wrpr %g0, %g5, %cleanwin - sub %g6, SPOFF + CCFSZ + TF_SIZEOF, %g6 + ldx [%g6 + PCB_KSTACK], %g6 + sub %g6, TF_SIZEOF, %g6 save %g6, 0, %sp rdpr %canrestore, %l0 ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/locore.S#8 (text+ko) ==== @@ -80,7 +80,7 @@ /* * Get onto thread0's kstack. */ - sub %g6, SPOFF + CCFSZ, %sp + ldx [%g6 + PCB_KSTACK], %sp /* * And away we go. This doesn't return. ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/machdep.c#18 (text+ko) ==== @@ -106,7 +106,7 @@ #include #include #include -#include +#include #include #include @@ -398,7 +398,9 @@ thread0.td_kstack = kstack0; thread0.td_pcb = (struct pcb *) - (thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1; + (thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1; + thread0.td_pcb->pcb_kstack = (uint64_t)(((char *)thread0.td_pcb) - (CCFSZ + SPOFF)); + thread0.td_pcb = (struct pcb *)TLB_PHYS_TO_DIRECT(vtophys((vm_offset_t)thread0.td_pcb)); pc->pc_curpcb = thread0.td_pcb; /* @@ -766,6 +768,7 @@ struct trapframe *tf; struct pcb *pcb; struct proc *p; + uint64_t kstack; u_long sp; /* XXX no cpu_exec */ @@ -776,12 +779,14 @@ utrap_free(p->p_md.md_utrap); p->p_md.md_utrap = NULL; } - pcb = td->td_pcb; + kstack = pcb->pcb_kstack; tf = td->td_frame; sp = rounddown(stack, 16); bzero(pcb, sizeof(*pcb)); bzero(tf, sizeof(*tf)); + pcb->pcb_kstack = kstack; + tf->tf_out[0] = stack; tf->tf_out[3] = p->p_sysent->sv_psstrings; tf->tf_out[6] = sp - SPOFF - sizeof(struct frame); ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/swtch.S#15 (text+ko) ==== @@ -48,34 +48,15 @@ ba %xcc, .Lsw1 mov %i1, %i0 END(cpu_throw) - - -ENTRY(pcb_ra_miss) - call pmap_kextract - mov PCB_REG, %o0 - mov %o0, %l0 -#ifdef DEBUG - ! sanity check lookup - brnz %o0, 1f - nop - MAGIC_TRAP_ON - MAGIC_EXIT -1: -#endif - ba,pt %xcc, pcb_ra_uptodate - stx %l0, [PCB_REG + PCB_RA] -END(pcb_ra_miss) - - /* * void cpu_switch(struct thread *old, struct thread *new) */ ENTRY(cpu_switch) + save %sp, -CCFSZ, %sp GET_PCB(PCB_REG) - save %sp, -CCFSZ, %sp mov %i1, %i0 - + /* * If the current thread was using floating point in the kernel, save * its context. The userland floating point context has already been @@ -133,7 +114,7 @@ 9: #endif ldx [%i0 + TD_PCB], %i1 - + stx %i0, [PCPU(CURTHREAD)] stx %i1, [PCPU(CURPCB)] @@ -147,18 +128,14 @@ */ ldx [PCB_REG + PCB_SP], %fp ldx [PCB_REG + PCB_PC], %i7 - ldx [PCB_REG + PCB_RA], %l0 sub %fp, CCFSZ, %sp - brz %l0, pcb_ra_miss - nop -pcb_ra_uptodate: + /* * Point to the pmaps of the new process, and of the last non-kernel * process to run. */ - stx %l0, [PCPU(CURPCB_RA)] ldx [%i0 + TD_PROC], %i2 ldx [PCPU(PMAP)], %l2 ldx [%i2 + P_VMSPACE], %i5 ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/vm_machdep.c#7 (text+ko) ==== @@ -86,6 +86,7 @@ #include #include #include +#include #ifndef NSFBUFS #define NSFBUFS (512 + maxusers * 16) @@ -135,9 +136,11 @@ pcb = (struct pcb *)((td->td_kstack + td->td_kstack_pages * PAGE_SIZE - sizeof(struct pcb)) & ~0x3fUL); - pcb->pcb_ra = vtophys((vm_offset_t)pcb); + pcb->pcb_kstack = (uint64_t)(((char *)pcb) - (CCFSZ + SPOFF)); pcb->pcb_nsaved = 0; td->td_frame = (struct trapframe *)pcb - 1; + + pcb = (struct pcb *)TLB_PHYS_TO_DIRECT(vtophys((vm_offset_t)pcb)); td->td_pcb = pcb; } @@ -162,6 +165,7 @@ bcopy(td0->td_frame, td->td_frame, sizeof(struct trapframe)); pcb = td->td_pcb; + tf = td->td_frame; fr = (struct frame *)tf - 1; fr->fr_local[0] = (u_long)fork_return; @@ -216,7 +220,7 @@ struct trapframe *tf; struct frame *fp; struct pcb *pcb1; - struct pcb *pcb2; + struct pcb *pcb2, *pcb2orig; vm_offset_t sp; int error; int i; @@ -232,8 +236,11 @@ /* The pcb must be aligned on a 64-byte boundary. */ pcb1 = td1->td_pcb; - pcb2 = (struct pcb *)((td2->td_kstack + td2->td_kstack_pages * + + pcb2orig = (struct pcb *)((td2->td_kstack + td2->td_kstack_pages * PAGE_SIZE - sizeof(struct pcb)) & ~0x3fUL); + pcb2 = (struct pcb *)TLB_PHYS_TO_DIRECT(vtophys((vm_offset_t)pcb2orig)); + td2->td_pcb = pcb2; /* @@ -279,7 +286,7 @@ * Copy the trap frame for the return to user mode as if from a * syscall. This copies most of the user mode register values. */ - tf = (struct trapframe *)pcb2 - 1; + tf = (struct trapframe *)pcb2orig - 1; bcopy(td1->td_frame, tf, sizeof(*tf)); tf->tf_out[0] = 0; /* Child returns zero */ @@ -298,7 +305,8 @@ fp->fr_pc = fp->fr_fp = 0; pcb2->pcb_sp = (u_long)fp - SPOFF; pcb2->pcb_pc = (u_long)fork_trampoline - 8; - pcb2->pcb_ra = vtophys((vm_offset_t)pcb2); + pcb2->pcb_kstack = (uint64_t)(((char *)pcb2orig) - (CCFSZ + SPOFF)); + /* Setup to release sched_lock in fork_exit(). */ td2->td_md.md_spinlock_count = 1; td2->td_md.md_saved_pil = 0; From owner-p4-projects@FreeBSD.ORG Wed Mar 29 15:49:34 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F270B16A422; Wed, 29 Mar 2006 15:49:33 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id CD35816A401 for ; Wed, 29 Mar 2006 15:49:33 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2B72843D68 for ; Wed, 29 Mar 2006 15:49:32 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2TFnVuq047878 for ; Wed, 29 Mar 2006 15:49:31 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2TFnVZD047875 for perforce@freebsd.org; Wed, 29 Mar 2006 15:49:31 GMT (envelope-from marcel@freebsd.org) Date: Wed, 29 Mar 2006 15:49:31 GMT Message-Id: <200603291549.k2TFnVZD047875@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Cc: Subject: PERFORCE change 94246 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Mar 2006 15:49:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=94246 Change 94246 by marcel@marcel_nfs on 2006/03/29 15:48:36 Add an IVAR for subordinate drivers to get a pointer to our hardware mutex. This way all drivers can end up using the same mutex for accessing the hardware. Affected files ... .. //depot/projects/uart/dev/scc/scc_bus.h#6 edit .. //depot/projects/uart/dev/scc/scc_core.c#12 edit Differences ... ==== //depot/projects/uart/dev/scc/scc_bus.h#6 (text+ko) ==== @@ -37,6 +37,7 @@ #define SCC_IVAR_CLOCK 2 #define SCC_IVAR_MODE 3 #define SCC_IVAR_REGSHFT 4 +#define SCC_IVAR_HWMTX 5 /* Hardware class -- the SCC type. */ #define SCC_CLASS_SAB82532 0 ==== //depot/projects/uart/dev/scc/scc_core.c#12 (text+ko) ==== @@ -462,6 +462,9 @@ case SCC_IVAR_REGSHFT: *result = cl->cl_regshft; break; + case SCC_IVAR_HWMTX: + *result = (uintptr_t)&sc->sc_hwmtx; + break; default: return (EINVAL); } From owner-p4-projects@FreeBSD.ORG Wed Mar 29 15:54:39 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7137716A424; Wed, 29 Mar 2006 15:54:39 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4778316A400 for ; Wed, 29 Mar 2006 15:54:39 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id F0DE043D49 for ; Wed, 29 Mar 2006 15:54:38 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2TFscer048062 for ; Wed, 29 Mar 2006 15:54:38 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2TFscqD048059 for perforce@freebsd.org; Wed, 29 Mar 2006 15:54:38 GMT (envelope-from marcel@freebsd.org) Date: Wed, 29 Mar 2006 15:54:38 GMT Message-Id: <200603291554.k2TFscqD048059@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Cc: Subject: PERFORCE change 94247 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Mar 2006 15:54:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=94247 Change 94247 by marcel@marcel_nfs on 2006/03/29 15:54:37 Rename uart_[un]lock_spin() to uart_[un]lock(). There's no need to advertise the fact that the mutex is a spin mutex in our little wrapper. Affected files ... .. //depot/projects/uart/dev/uart/uart_cpu.h#17 edit Differences ... ==== //depot/projects/uart/dev/uart/uart_cpu.h#17 (text+ko) ==== @@ -87,14 +87,14 @@ */ static __inline void -uart_lock_spin(struct mtx *hwmtx) +uart_lock(struct mtx *hwmtx) { if (!kdb_active && hwmtx != NULL) mtx_lock_spin(hwmtx); } static __inline void -uart_unlock_spin(struct mtx *hwmtx) +uart_unlock(struct mtx *hwmtx) { if (!kdb_active && hwmtx != NULL) mtx_unlock_spin(hwmtx); @@ -105,35 +105,35 @@ { int res; - uart_lock_spin(di->hwmtx); + uart_lock(di->hwmtx); res = di->ops.probe(&di->bas); - uart_unlock_spin(di->hwmtx); + uart_unlock(di->hwmtx); return (res); } static __inline void uart_init(struct uart_devinfo *di) { - uart_lock_spin(di->hwmtx); + uart_lock(di->hwmtx); di->ops.init(&di->bas, di->baudrate, di->databits, di->stopbits, di->parity); - uart_unlock_spin(di->hwmtx); + uart_unlock(di->hwmtx); } static __inline void uart_term(struct uart_devinfo *di) { - uart_lock_spin(di->hwmtx); + uart_lock(di->hwmtx); di->ops.term(&di->bas); - uart_unlock_spin(di->hwmtx); + uart_unlock(di->hwmtx); } static __inline void uart_putc(struct uart_devinfo *di, int c) { - uart_lock_spin(di->hwmtx); + uart_lock(di->hwmtx); di->ops.putc(&di->bas, c); - uart_unlock_spin(di->hwmtx); + uart_unlock(di->hwmtx); } static __inline int @@ -141,9 +141,9 @@ { int res; - uart_lock_spin(di->hwmtx); + uart_lock(di->hwmtx); res = di->ops.poll(&di->bas); - uart_unlock_spin(di->hwmtx); + uart_unlock(di->hwmtx); return (res); } @@ -152,9 +152,9 @@ { int res; - uart_lock_spin(di->hwmtx); + uart_lock(di->hwmtx); res = di->ops.getc(&di->bas); - uart_unlock_spin(di->hwmtx); + uart_unlock(di->hwmtx); return (res); } From owner-p4-projects@FreeBSD.ORG Wed Mar 29 16:02:57 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1F33616A43E; Wed, 29 Mar 2006 16:02:57 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EE2EB16A439 for ; Wed, 29 Mar 2006 16:02:56 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8E45443D4C for ; Wed, 29 Mar 2006 16:02:49 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2TG2nTi048399 for ; Wed, 29 Mar 2006 16:02:49 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2TG2mmk048396 for perforce@freebsd.org; Wed, 29 Mar 2006 16:02:48 GMT (envelope-from marcel@freebsd.org) Date: Wed, 29 Mar 2006 16:02:48 GMT Message-Id: <200603291602.k2TG2mmk048396@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Cc: Subject: PERFORCE change 94248 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Mar 2006 16:02:57 -0000 http://perforce.freebsd.org/chv.cgi?CH=94248 Change 94248 by marcel@marcel_nfs on 2006/03/29 16:02:20 Change the type of sc_hwmtx to a pointer to struct mtx. Add a new field to the softc (sc_hwmtx_s) that is a struct mtx. We operate on the pointer, which by default will point to the struct. This allows individual bus attachments to preset the mutex pointer to the mutex that we need to use. Have the SCC bus attachment do this. Use uart_[un]lock() instead of mtx_[un]lock_spin() to fully abstract the mutex type (spin or sleep). Affected files ... .. //depot/projects/uart/dev/uart/uart_bus.h#41 edit .. //depot/projects/uart/dev/uart/uart_bus_scc.c#5 edit .. //depot/projects/uart/dev/uart/uart_core.c#48 edit .. //depot/projects/uart/dev/uart/uart_dev_ns8250.c#37 edit .. //depot/projects/uart/dev/uart/uart_dev_sab82532.c#39 edit .. //depot/projects/uart/dev/uart/uart_dev_z8530.c#27 edit Differences ... ==== //depot/projects/uart/dev/uart/uart_bus.h#41 (text+ko) ==== @@ -81,7 +81,8 @@ struct uart_bas sc_bas; device_t sc_dev; - struct mtx sc_hwmtx; /* Spinlock protecting hardware. */ + struct mtx sc_hwmtx_s; /* Spinlock protecting hardware. */ + struct mtx *sc_hwmtx; struct resource *sc_rres; /* Register resource. */ int sc_rrid; ==== //depot/projects/uart/dev/uart/uart_bus_scc.c#5 (text+ko) ==== @@ -43,12 +43,13 @@ #include #include +static int uart_scc_attach(device_t dev); static int uart_scc_probe(device_t dev); static device_method_t uart_scc_methods[] = { /* Device interface */ DEVMETHOD(device_probe, uart_scc_probe), - DEVMETHOD(device_attach, uart_bus_attach), + DEVMETHOD(device_attach, uart_scc_attach), DEVMETHOD(device_detach, uart_bus_detach), /* Serdev interface */ DEVMETHOD(serdev_ihand, uart_bus_ihand), @@ -63,6 +64,22 @@ }; static int +uart_scc_attach(device_t dev) +{ + device_t parent; + struct uart_softc *sc; + uintptr_t mtx; + + parent = device_get_parent(dev); + sc = device_get_softc(dev); + + if (BUS_READ_IVAR(parent, dev, SCC_IVAR_HWMTX, &mtx)) + return (ENXIO); + sc->sc_hwmtx = (struct mtx *)(void *)mtx; + return (uart_bus_attach(dev)); +} + +static int uart_scc_probe(device_t dev) { device_t parent; ==== //depot/projects/uart/dev/uart/uart_core.c#48 (text+ko) ==== @@ -368,7 +368,9 @@ */ sc->sc_leaving = 1; - mtx_init(&sc->sc_hwmtx, "uart_hwmtx", NULL, MTX_SPIN); + mtx_init(&sc->sc_hwmtx_s, "uart_hwmtx", NULL, MTX_SPIN); + if (sc->sc_hwmtx == NULL) + sc->sc_hwmtx = &sc->sc_hwmtx_s; /* * Re-allocate. We expect that the softc contains the information @@ -377,7 +379,7 @@ sc->sc_rres = bus_alloc_resource(dev, sc->sc_rtype, &sc->sc_rrid, 0, ~0, sc->sc_class->uc_range, RF_ACTIVE); if (sc->sc_rres == NULL) { - mtx_destroy(&sc->sc_hwmtx); + mtx_destroy(&sc->sc_hwmtx_s); return (ENXIO); } sc->sc_bas.bsh = rman_get_bushandle(sc->sc_rres); @@ -481,7 +483,7 @@ goto fail; if (sc->sc_sysdev != NULL) - sc->sc_sysdev->hwmtx = &sc->sc_hwmtx; + sc->sc_sysdev->hwmtx = sc->sc_hwmtx; sc->sc_leaving = 0; uart_intr(sc); @@ -498,7 +500,7 @@ } bus_release_resource(dev, sc->sc_rtype, sc->sc_rrid, sc->sc_rres); - mtx_destroy(&sc->sc_hwmtx); + mtx_destroy(&sc->sc_hwmtx_s); return (error); } @@ -532,7 +534,7 @@ } bus_release_resource(dev, sc->sc_rtype, sc->sc_rrid, sc->sc_rres); - mtx_destroy(&sc->sc_hwmtx); + mtx_destroy(&sc->sc_hwmtx_s); if (sc->sc_class->size > sizeof(*sc)) { device_set_softc(dev, NULL); ==== //depot/projects/uart/dev/uart/uart_dev_ns8250.c#37 (text+ko) ==== @@ -432,7 +432,7 @@ int error; bas = &sc->sc_bas; - mtx_lock_spin(&sc->sc_hwmtx); + uart_lock(sc->sc_hwmtx); if (sc->sc_hasfifo) { ns8250_flush(bas, what); uart_setreg(bas, REG_FCR, ns8250->fcr); @@ -440,7 +440,7 @@ error = 0; } else error = ns8250_drain(bas, what); - mtx_unlock_spin(&sc->sc_hwmtx); + uart_unlock(sc->sc_hwmtx); return (error); } @@ -453,9 +453,9 @@ do { old = sc->sc_hwsig; sig = old; - mtx_lock_spin(&sc->sc_hwmtx); + uart_lock(sc->sc_hwmtx); msr = uart_getreg(&sc->sc_bas, REG_MSR); - mtx_unlock_spin(&sc->sc_hwmtx); + uart_unlock(sc->sc_hwmtx); SIGCHG(msr & MSR_DSR, sig, SER_DSR, SER_DDSR); SIGCHG(msr & MSR_CTS, sig, SER_CTS, SER_DCTS); SIGCHG(msr & MSR_DCD, sig, SER_DCD, SER_DDCD); @@ -474,7 +474,7 @@ bas = &sc->sc_bas; error = 0; - mtx_lock_spin(&sc->sc_hwmtx); + uart_lock(sc->sc_hwmtx); switch (request) { case UART_IOCTL_BREAK: lcr = uart_getreg(bas, REG_LCR); @@ -533,7 +533,7 @@ error = EINVAL; break; } - mtx_unlock_spin(&sc->sc_hwmtx); + uart_unlock(sc->sc_hwmtx); return (error); } @@ -545,16 +545,16 @@ uint8_t iir, lsr; bas = &sc->sc_bas; - mtx_lock_spin(&sc->sc_hwmtx); + uart_lock(sc->sc_hwmtx); iir = uart_getreg(bas, REG_IIR); if (iir & IIR_NOPEND) { - mtx_unlock_spin(&sc->sc_hwmtx); + uart_unlock(sc->sc_hwmtx); return (0); } ipend = 0; if (iir & IIR_RXRDY) { lsr = uart_getreg(bas, REG_LSR); - mtx_unlock_spin(&sc->sc_hwmtx); + uart_unlock(sc->sc_hwmtx); if (lsr & LSR_OE) ipend |= SER_INT_OVERRUN; if (lsr & LSR_BI) @@ -562,7 +562,7 @@ if (lsr & LSR_RXRDY) ipend |= SER_INT_RXREADY; } else { - mtx_unlock_spin(&sc->sc_hwmtx); + uart_unlock(sc->sc_hwmtx); if (iir & IIR_TXRDY) ipend |= SER_INT_TXIDLE; else @@ -579,9 +579,9 @@ int error; bas = &sc->sc_bas; - mtx_lock_spin(&sc->sc_hwmtx); + uart_lock(sc->sc_hwmtx); error = ns8250_param(bas, baudrate, databits, stopbits, parity); - mtx_unlock_spin(&sc->sc_hwmtx); + uart_unlock(sc->sc_hwmtx); return (error); } @@ -740,7 +740,7 @@ uint8_t lsr; bas = &sc->sc_bas; - mtx_lock_spin(&sc->sc_hwmtx); + uart_lock(sc->sc_hwmtx); lsr = uart_getreg(bas, REG_LSR); while (lsr & LSR_RXRDY) { if (uart_rx_full(sc)) { @@ -761,7 +761,7 @@ uart_barrier(bas); lsr = uart_getreg(bas, REG_LSR); } - mtx_unlock_spin(&sc->sc_hwmtx); + uart_unlock(sc->sc_hwmtx); return (0); } @@ -785,7 +785,7 @@ SER_DRTS); } } while (!atomic_cmpset_32(&sc->sc_hwsig, old, new)); - mtx_lock_spin(&sc->sc_hwmtx); + uart_lock(sc->sc_hwmtx); ns8250->mcr &= ~(MCR_DTR|MCR_RTS); if (new & SER_DTR) ns8250->mcr |= MCR_DTR; @@ -793,7 +793,7 @@ ns8250->mcr |= MCR_RTS; uart_setreg(bas, REG_MCR, ns8250->mcr); uart_barrier(bas); - mtx_unlock_spin(&sc->sc_hwmtx); + uart_unlock(sc->sc_hwmtx); return (0); } @@ -805,7 +805,7 @@ int i; bas = &sc->sc_bas; - mtx_lock_spin(&sc->sc_hwmtx); + uart_lock(sc->sc_hwmtx); while ((uart_getreg(bas, REG_LSR) & LSR_THRE) == 0) ; uart_setreg(bas, REG_IER, ns8250->ier | IER_ETXRDY); @@ -815,6 +815,6 @@ uart_barrier(bas); } sc->sc_txbusy = 1; - mtx_unlock_spin(&sc->sc_hwmtx); + uart_unlock(sc->sc_hwmtx); return (0); } ==== //depot/projects/uart/dev/uart/uart_dev_sab82532.c#39 (text+ko) ==== @@ -437,9 +437,9 @@ sab82532_bus_flush(struct uart_softc *sc, int what) { - mtx_lock_spin(&sc->sc_hwmtx); + uart_lock(sc->sc_hwmtx); sab82532_flush(&sc->sc_bas, what); - mtx_unlock_spin(&sc->sc_hwmtx); + uart_unlock(sc->sc_hwmtx); return (0); } @@ -454,7 +454,7 @@ do { old = sc->sc_hwsig; sig = old; - mtx_lock_spin(&sc->sc_hwmtx); + uart_lock(sc->sc_hwmtx); star = uart_getreg(bas, SAB_STAR); SIGCHG(star & SAB_STAR_CTS, sig, SER_CTS, SER_DCTS); vstr = uart_getreg(bas, SAB_VSTR); @@ -469,7 +469,7 @@ break; } SIGCHG(pvr, sig, SER_DSR, SER_DDSR); - mtx_unlock_spin(&sc->sc_hwmtx); + uart_unlock(sc->sc_hwmtx); new = sig & ~SER_MASK_DELTA; } while (!atomic_cmpset_32(&sc->sc_hwsig, old, new)); return (sig); @@ -484,7 +484,7 @@ bas = &sc->sc_bas; error = 0; - mtx_lock_spin(&sc->sc_hwmtx); + uart_lock(sc->sc_hwmtx); switch (request) { case UART_IOCTL_BREAK: dafo = uart_getreg(bas, SAB_DAFO); @@ -520,7 +520,7 @@ error = EINVAL; break; } - mtx_unlock_spin(&sc->sc_hwmtx); + uart_unlock(sc->sc_hwmtx); return (error); } @@ -532,7 +532,7 @@ uint8_t isr0, isr1; bas = &sc->sc_bas; - mtx_lock_spin(&sc->sc_hwmtx); + uart_lock(sc->sc_hwmtx); isr0 = uart_getreg(bas, SAB_ISR0); isr1 = uart_getreg(bas, SAB_ISR1); uart_barrier(bas); @@ -542,7 +542,7 @@ uart_setreg(bas, SAB_CMDR, SAB_CMDR_RFRD); uart_barrier(bas); } - mtx_unlock_spin(&sc->sc_hwmtx); + uart_unlock(sc->sc_hwmtx); ipend = 0; if (isr1 & SAB_ISR1_BRKT) @@ -567,9 +567,9 @@ int error; bas = &sc->sc_bas; - mtx_lock_spin(&sc->sc_hwmtx); + uart_lock(sc->sc_hwmtx); error = sab82532_param(bas, baudrate, databits, stopbits, parity); - mtx_unlock_spin(&sc->sc_hwmtx); + uart_unlock(sc->sc_hwmtx); return (error); } @@ -617,7 +617,7 @@ uint8_t s; bas = &sc->sc_bas; - mtx_lock_spin(&sc->sc_hwmtx); + uart_lock(sc->sc_hwmtx); if (uart_getreg(bas, SAB_STAR) & SAB_STAR_RFNE) { rbcl = uart_getreg(bas, SAB_RBCL) & 31; if (rbcl == 0) @@ -641,7 +641,7 @@ ; uart_setreg(bas, SAB_CMDR, SAB_CMDR_RMC); uart_barrier(bas); - mtx_unlock_spin(&sc->sc_hwmtx); + uart_unlock(sc->sc_hwmtx); return (0); } @@ -666,7 +666,7 @@ } } while (!atomic_cmpset_32(&sc->sc_hwsig, old, new)); - mtx_lock_spin(&sc->sc_hwmtx); + uart_lock(sc->sc_hwmtx); /* Set DTR pin. */ pvr = uart_getreg(bas, SAB_PVR); switch (bas->chan) { @@ -693,7 +693,7 @@ mode |= SAB_MODE_FRTS; uart_setreg(bas, SAB_MODE, mode); uart_barrier(bas); - mtx_unlock_spin(&sc->sc_hwmtx); + uart_unlock(sc->sc_hwmtx); return (0); } @@ -704,7 +704,7 @@ int i; bas = &sc->sc_bas; - mtx_lock_spin(&sc->sc_hwmtx); + uart_lock(sc->sc_hwmtx); while (!(uart_getreg(bas, SAB_STAR) & SAB_STAR_XFW)) ; for (i = 0; i < sc->sc_txdatasz; i++) @@ -714,6 +714,6 @@ ; uart_setreg(bas, SAB_CMDR, SAB_CMDR_XF); sc->sc_txbusy = 1; - mtx_unlock_spin(&sc->sc_hwmtx); + uart_unlock(sc->sc_hwmtx); return (0); } ==== //depot/projects/uart/dev/uart/uart_dev_z8530.c#27 (text+ko) ==== @@ -348,9 +348,9 @@ do { old = sc->sc_hwsig; sig = old; - mtx_lock_spin(&sc->sc_hwmtx); + uart_lock(sc->sc_hwmtx); bes = uart_getmreg(&sc->sc_bas, RR_BES); - mtx_unlock_spin(&sc->sc_hwmtx); + uart_unlock(sc->sc_hwmtx); SIGCHG(bes & BES_CTS, sig, SER_CTS, SER_DCTS); SIGCHG(bes & BES_DCD, sig, SER_DCD, SER_DDCD); SIGCHG(bes & BES_SYNC, sig, SER_DSR, SER_DDSR); @@ -368,7 +368,7 @@ bas = &sc->sc_bas; error = 0; - mtx_lock_spin(&sc->sc_hwmtx); + uart_lock(sc->sc_hwmtx); switch (request) { case UART_IOCTL_BREAK: if (data) @@ -382,7 +382,7 @@ error = EINVAL; break; } - mtx_unlock_spin(&sc->sc_hwmtx); + uart_unlock(sc->sc_hwmtx); return (error); } @@ -398,7 +398,7 @@ bas = &sc->sc_bas; ipend = 0; - mtx_lock_spin(&sc->sc_hwmtx); + uart_lock(sc->sc_hwmtx); switch (bas->chan) { case 1: ip = uart_getmreg(bas, RR_IP); @@ -454,7 +454,7 @@ uart_barrier(bas); } - mtx_unlock_spin(&sc->sc_hwmtx); + uart_unlock(sc->sc_hwmtx); return (ipend); } @@ -466,10 +466,10 @@ struct z8530_softc *z8530 = (struct z8530_softc*)sc; int error; - mtx_lock_spin(&sc->sc_hwmtx); + uart_lock(sc->sc_hwmtx); error = z8530_param(&sc->sc_bas, baudrate, databits, stopbits, parity, &z8530->tpc); - mtx_unlock_spin(&sc->sc_hwmtx); + uart_unlock(sc->sc_hwmtx); return (error); } @@ -499,7 +499,7 @@ uint8_t bes, src; bas = &sc->sc_bas; - mtx_lock_spin(&sc->sc_hwmtx); + uart_lock(sc->sc_hwmtx); bes = uart_getmreg(bas, RR_BES); while (bes & BES_RXA) { if (uart_rx_full(sc)) { @@ -533,7 +533,7 @@ } bes = uart_getmreg(bas, RR_BES); } - mtx_unlock_spin(&sc->sc_hwmtx); + uart_unlock(sc->sc_hwmtx); return (0); } @@ -558,7 +558,7 @@ } } while (!atomic_cmpset_32(&sc->sc_hwsig, old, new)); - mtx_lock_spin(&sc->sc_hwmtx); + uart_lock(sc->sc_hwmtx); if (new & SER_DTR) z8530->tpc |= TPC_DTR; else @@ -569,7 +569,7 @@ z8530->tpc &= ~TPC_RTS; uart_setmreg(bas, WR_TPC, z8530->tpc); uart_barrier(bas); - mtx_unlock_spin(&sc->sc_hwmtx); + uart_unlock(sc->sc_hwmtx); return (0); } @@ -580,13 +580,13 @@ struct uart_bas *bas; bas = &sc->sc_bas; - mtx_lock_spin(&sc->sc_hwmtx); + uart_lock(sc->sc_hwmtx); while (!(uart_getmreg(bas, RR_BES) & BES_TXE)) ; uart_setreg(bas, REG_DATA, sc->sc_txbuf[0]); uart_barrier(bas); sc->sc_txbusy = 1; z8530->txidle = 1; /* Report SER_INT_TXIDLE again. */ - mtx_unlock_spin(&sc->sc_hwmtx); + uart_unlock(sc->sc_hwmtx); return (0); } From owner-p4-projects@FreeBSD.ORG Wed Mar 29 18:05:16 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9104016A401; Wed, 29 Mar 2006 18:05:16 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6A9E216A422 for ; Wed, 29 Mar 2006 18:05:16 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 37F7543D72 for ; Wed, 29 Mar 2006 18:05:16 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2TI5GJM060327 for ; Wed, 29 Mar 2006 18:05:16 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2TI5Fc1060319 for perforce@freebsd.org; Wed, 29 Mar 2006 18:05:15 GMT (envelope-from marcel@freebsd.org) Date: Wed, 29 Mar 2006 18:05:15 GMT Message-Id: <200603291805.k2TI5Fc1060319@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Cc: Subject: PERFORCE change 94249 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Mar 2006 18:05:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=94249 Change 94249 by marcel@marcel_nfs on 2006/03/29 18:04:33 We typically don't need to reset the external/status interrupt in SCC_ICLEAR(), because we do that in SCC_IPEND() to unlatch RR0. Affected files ... .. //depot/projects/uart/dev/scc/scc_dev_z8530.c#7 edit Differences ... ==== //depot/projects/uart/dev/scc/scc_dev_z8530.c#7 (text+ko) ==== @@ -114,10 +114,6 @@ scc_getreg(bas, c + REG_DATA); scc_barrier(bas); } - if (ch->ch_ipend & (SER_INT_SIGCHG|SER_INT_BREAK)) { - scc_setreg(bas, c + REG_CTRL, CR_RSTXSI); - scc_barrier(bas); - } if (ch->ch_ipend & (SER_INT_OVERRUN|SER_INT_BREAK)) scc_setreg(bas, c + REG_CTRL, CR_RSTERR); mtx_unlock_spin(&sc->sc_hwmtx); From owner-p4-projects@FreeBSD.ORG Wed Mar 29 18:28:04 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BE9A116A424; Wed, 29 Mar 2006 18:28:04 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9B3B416A41F for ; Wed, 29 Mar 2006 18:28:04 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4C34243D45 for ; Wed, 29 Mar 2006 18:28:04 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2TIS4AN061337 for ; Wed, 29 Mar 2006 18:28:04 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2TIS4qg061333 for perforce@freebsd.org; Wed, 29 Mar 2006 18:28:04 GMT (envelope-from marcel@freebsd.org) Date: Wed, 29 Mar 2006 18:28:04 GMT Message-Id: <200603291828.k2TIS4qg061333@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Cc: Subject: PERFORCE change 94252 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Mar 2006 18:28:05 -0000 http://perforce.freebsd.org/chv.cgi?CH=94252 Change 94252 by marcel@marcel_nfs on 2006/03/29 18:27:21 Remove sc_schedih. It was used to limit calling swi_sched(), but introduced a race. Instead call swi_sched() on the 0 to !0 transition of the TTY pending interrupt status. Do this atomically. Affected files ... .. //depot/projects/uart/dev/uart/uart_bus.h#42 edit .. //depot/projects/uart/dev/uart/uart_core.c#49 edit .. //depot/projects/uart/dev/uart/uart_kbd_sun.c#8 edit .. //depot/projects/uart/dev/uart/uart_tty.c#26 edit Differences ... ==== //depot/projects/uart/dev/uart/uart_bus.h#42 (text+ko) ==== @@ -100,7 +100,6 @@ int sc_opened:1; /* This UART is open for business. */ int sc_polled:1; /* This UART has no interrupts. */ int sc_txbusy:1; /* This UART is transmitting. */ - int sc_schedih:1; /* The softih needs (re)scheduling. */ struct uart_devinfo *sc_sysdev; /* System device (or NULL). */ ==== //depot/projects/uart/dev/uart/uart_core.c#49 (text+ko) ==== @@ -71,17 +71,21 @@ } /* - * Schedule a soft interrupt. + * Schedule a soft interrupt. We do this on the 0 to !0 transition + * of the TTY pending interrupt status. */ -static __inline void +static void uart_sched_softih(struct uart_softc *sc, uint32_t ipend) { + uint32_t new, old; + + do { + old = sc->sc_ttypend; + new = old | ipend; + } while (!atomic_cmpset_32(&sc->sc_ttypend, old, new)); - atomic_set_32(&sc->sc_ttypend, ipend); - if (sc->sc_schedih) { + if (old == 0) swi_sched(sc->sc_softih, 0); - sc->sc_schedih = 0; - } } /* ==== //depot/projects/uart/dev/uart/uart_kbd_sun.c#8 (text+ko) ==== @@ -258,7 +258,6 @@ &sunkbd_softc, SWI_TTY, INTR_TYPE_TTY, &sc->sc_softih); sc->sc_opened = 1; - sc->sc_schedih = 1; KBD_INIT_DONE(&sunkbd_softc.sc_kbd); } @@ -274,7 +273,6 @@ if (sc->sc_uart->sc_leaving) return; - sc->sc_uart->sc_schedih = 1; pend = atomic_readandclear_32(&sc->sc_uart->sc_ttypend); if (!(pend & SER_INT_MASK)) return; ==== //depot/projects/uart/dev/uart/uart_tty.c#26 (text+ko) ==== @@ -306,7 +306,6 @@ if (sc->sc_leaving) return; - sc->sc_schedih = 1; pend = atomic_readandclear_32(&sc->sc_ttypend); if (!(pend & SER_INT_MASK)) return; @@ -380,7 +379,6 @@ swi_add(&tty_intr_event, uart_driver_name, uart_tty_intr, sc, SWI_TTY, INTR_TYPE_TTY, &sc->sc_softih); - sc->sc_schedih = 1; ttycreate(tp, TS_CALLOUT, "u%r", unit); From owner-p4-projects@FreeBSD.ORG Wed Mar 29 21:27:04 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7880D16A424; Wed, 29 Mar 2006 21:27:04 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3F39316A400 for ; Wed, 29 Mar 2006 21:27:04 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 09CF943D45 for ; Wed, 29 Mar 2006 21:27:04 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2TLR3WR076142 for ; Wed, 29 Mar 2006 21:27:03 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2TLR3hC076139 for perforce@freebsd.org; Wed, 29 Mar 2006 21:27:03 GMT (envelope-from jhb@freebsd.org) Date: Wed, 29 Mar 2006 21:27:03 GMT Message-Id: <200603292127.k2TLR3hC076139@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 94258 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Mar 2006 21:27:04 -0000 http://perforce.freebsd.org/chv.cgi?CH=94258 Change 94258 by jhb@jhb_slimer on 2006/03/29 21:26:34 Always do a more friendly panic in the TD_IS_SLEEPING case in propagate_priority and if DDB is compiled in dump a stack trace of the offending thread before calling panic(2). Affected files ... .. //depot/projects/smpng/sys/kern/subr_turnstile.c#23 edit Differences ... ==== //depot/projects/smpng/sys/kern/subr_turnstile.c#23 (text+ko) ==== @@ -186,15 +186,21 @@ MPASS(td->td_proc->p_magic == P_MAGIC); /* - * XXX: The owner of a turnstile can be stale if it is the - * first thread to grab a rlock of a rw lock. In that case - * it is possible for us to be at SSLEEP or some other - * weird state. We should probably just return if the state - * isn't SRUN or SLOCK. + * If the thread is asleep, then we are probably about + * to deadlock. To make debugging this easier, just + * panic and tell the user which thread misbehaved so + * they can hopefully get a stack trace from the truly + * misbehaving thread. */ - KASSERT(!TD_IS_SLEEPING(td), - ("sleeping thread (tid %d) owns a non-sleepable lock", - td->td_tid)); + if (TD_IS_SLEEPING(td)) { + printf( + "Sleeping thread (tid %d, pid %d) owns a non-sleepable lock\n", + td->td_tid, td->td_proc->p_pid); +#ifdef DDB + db_trace_thread(td, -1); +#endif + panic("b00m"); + } /* * If this thread already has higher priority than the From owner-p4-projects@FreeBSD.ORG Wed Mar 29 21:31:10 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D548216A420; Wed, 29 Mar 2006 21:31:09 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9D04716A400 for ; Wed, 29 Mar 2006 21:31:09 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6B04143D49 for ; Wed, 29 Mar 2006 21:31:09 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2TLV92C076363 for ; Wed, 29 Mar 2006 21:31:09 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2TLV9iQ076360 for perforce@freebsd.org; Wed, 29 Mar 2006 21:31:09 GMT (envelope-from jhb@freebsd.org) Date: Wed, 29 Mar 2006 21:31:09 GMT Message-Id: <200603292131.k2TLV9iQ076360@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 94259 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Mar 2006 21:31:10 -0000 http://perforce.freebsd.org/chv.cgi?CH=94259 Change 94259 by jhb@jhb_slimer on 2006/03/29 21:31:05 Add a test case for sleeping while holding a mutex. Affected files ... .. //depot/projects/smpng/sys/modules/crash2/crash2.c#3 edit Differences ... ==== //depot/projects/smpng/sys/modules/crash2/crash2.c#3 (text+ko) ==== @@ -85,6 +85,7 @@ static struct proc *kthread[NTHREADS]; static int event[NTHREADS]; static struct rwlock foo; +static struct mtx bar; static int mod_event(struct module *module, int cmd, void *arg); static int load(void *arg); @@ -95,6 +96,16 @@ /* Events. */ static void +bar_sleep(void) +{ + + mtx_lock(&bar); + tsleep(&bar, curthread->td_priority, "bar", hz/100); + mtx_unlock(&bar); +} +CRASH2_EVENT("sleep holding bar", bar_sleep, bar_sleep, bar_sleep, bar_sleep); + +static void whack_foo(void) { switch (arc4random() % 10) { @@ -255,6 +266,7 @@ int error, i; rw_init(&foo, "foo"); + mtx_init(&bar, "bar", NULL, MTX_DEF); mtx_init(&event_mtx, "crash2 event", NULL, MTX_DEF); cv_init(&event_cv, "crash2"); for (i = 0; i < NTHREADS; i++) { From owner-p4-projects@FreeBSD.ORG Wed Mar 29 21:34:16 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 141DA16A420; Wed, 29 Mar 2006 21:34:16 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D00FF16A400 for ; Wed, 29 Mar 2006 21:34:15 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 942C943D4C for ; Wed, 29 Mar 2006 21:34:13 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2TLYDcn076434 for ; Wed, 29 Mar 2006 21:34:13 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2TLYDdr076431 for perforce@freebsd.org; Wed, 29 Mar 2006 21:34:13 GMT (envelope-from jhb@freebsd.org) Date: Wed, 29 Mar 2006 21:34:13 GMT Message-Id: <200603292134.k2TLYDdr076431@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 94260 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Mar 2006 21:34:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=94260 Change 94260 by jhb@jhb_twclab on 2006/03/29 21:34:12 Fix for LP64. Affected files ... .. //depot/projects/smpng/sys/modules/crash2/crash2.c#4 edit Differences ... ==== //depot/projects/smpng/sys/modules/crash2/crash2.c#4 (text+ko) ==== @@ -270,8 +270,8 @@ mtx_init(&event_mtx, "crash2 event", NULL, MTX_DEF); cv_init(&event_cv, "crash2"); for (i = 0; i < NTHREADS; i++) { - error = kthread_create(crash_thread, (void *)i, &kthread[i], - RFSTOPPED, 0, "crash2: %d", i); + error = kthread_create(crash_thread, (void *)(intptr_t)i, + &kthread[i], RFSTOPPED, 0, "crash2: %d", i); if (error) { unload(NULL); return (error); From owner-p4-projects@FreeBSD.ORG Wed Mar 29 22:05:55 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CD0E616A443; Wed, 29 Mar 2006 22:05:55 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A39F316A440 for ; Wed, 29 Mar 2006 22:05:55 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5CCEE43D75 for ; Wed, 29 Mar 2006 22:05:53 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2TM5r1N077626 for ; Wed, 29 Mar 2006 22:05:53 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2TM5rAr077619 for perforce@freebsd.org; Wed, 29 Mar 2006 22:05:53 GMT (envelope-from marcel@freebsd.org) Date: Wed, 29 Mar 2006 22:05:53 GMT Message-Id: <200603292205.k2TM5rAr077619@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Cc: Subject: PERFORCE change 94263 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Mar 2006 22:05:56 -0000 http://perforce.freebsd.org/chv.cgi?CH=94263 Change 94263 by marcel@marcel_nfs on 2006/03/29 22:05:32 In uart_tty_open(), fail if there's no softc or sc_leaving has been set in the softc. Affected files ... .. //depot/projects/uart/dev/uart/uart_tty.c#27 edit Differences ... ==== //depot/projects/uart/dev/uart/uart_tty.c#27 (text+ko) ==== @@ -137,6 +137,10 @@ struct uart_softc *sc; sc = tp->t_sc; + + if (sc == NULL || sc->sc_leaving) + return (ENXIO); + sc->sc_opened = 1; return (0); } From owner-p4-projects@FreeBSD.ORG Wed Mar 29 22:09:02 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 47EEF16A427; Wed, 29 Mar 2006 22:09:02 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 256C916A400 for ; Wed, 29 Mar 2006 22:09:02 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id AE90043D5E for ; Wed, 29 Mar 2006 22:08:57 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2TM8v6c077697 for ; Wed, 29 Mar 2006 22:08:57 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2TM8vj8077694 for perforce@freebsd.org; Wed, 29 Mar 2006 22:08:57 GMT (envelope-from marcel@freebsd.org) Date: Wed, 29 Mar 2006 22:08:57 GMT Message-Id: <200603292208.k2TM8vj8077694@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Cc: Subject: PERFORCE change 94264 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Mar 2006 22:09:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=94264 Change 94264 by marcel@marcel_nfs on 2006/03/29 22:08:51 Fix braino: We keep track of line signal changes even if the device isn't open. This means that when a device gets opened, sc_ttypend may not be 0 and we will therefore never schedule the SWI. Do what I intended and limit the test to the interrupt pending bits. Affected files ... .. //depot/projects/uart/dev/uart/uart_core.c#50 edit Differences ... ==== //depot/projects/uart/dev/uart/uart_core.c#50 (text+ko) ==== @@ -84,7 +84,7 @@ new = old | ipend; } while (!atomic_cmpset_32(&sc->sc_ttypend, old, new)); - if (old == 0) + if ((old & SER_INT_MASK) == 0) swi_sched(sc->sc_softih, 0); } From owner-p4-projects@FreeBSD.ORG Wed Mar 29 22:11:01 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 07ABA16A420; Wed, 29 Mar 2006 22:11:01 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id DA48116A400 for ; Wed, 29 Mar 2006 22:11:00 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8D2B243D6E for ; Wed, 29 Mar 2006 22:11:00 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2TMB03h077843 for ; Wed, 29 Mar 2006 22:11:00 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2TMB0cS077840 for perforce@freebsd.org; Wed, 29 Mar 2006 22:11:00 GMT (envelope-from jhb@freebsd.org) Date: Wed, 29 Mar 2006 22:11:00 GMT Message-Id: <200603292211.k2TMB0cS077840@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 94265 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Mar 2006 22:11:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=94265 Change 94265 by jhb@jhb_twclab on 2006/03/29 22:10:36 Only require locking for !cold. Affected files ... .. //depot/projects/smpng/sys/kern/kern_linker.c#50 edit Differences ... ==== //depot/projects/smpng/sys/kern/kern_linker.c#50 (text+ko) ==== @@ -63,7 +63,7 @@ #define KLD_LOCK() do { sx_xlock(&kld_sx); mtx_lock(&Giant); } while (0) #define KLD_UNLOCK() do { mtx_unlock(&Giant); sx_xunlock(&kld_sx); } while (0) -#define KLD_LOCK_ASSERT() do { if (linker_no_more_classes) sx_assert(&kld_sx, SX_XLOCKED); } while (0) +#define KLD_LOCK_ASSERT() do { if (!cold) sx_assert(&kld_sx, SX_XLOCKED); } while (0) /* * static char *linker_search_path(const char *name, struct mod_depend From owner-p4-projects@FreeBSD.ORG Wed Mar 29 22:18:10 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 47CC016A429; Wed, 29 Mar 2006 22:18:10 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0A7B816A427 for ; Wed, 29 Mar 2006 22:18:10 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A3E5643D58 for ; Wed, 29 Mar 2006 22:18:09 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2TMI9bM078094 for ; Wed, 29 Mar 2006 22:18:09 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2TMI9PB078091 for perforce@freebsd.org; Wed, 29 Mar 2006 22:18:09 GMT (envelope-from marcel@freebsd.org) Date: Wed, 29 Mar 2006 22:18:09 GMT Message-Id: <200603292218.k2TMI9PB078091@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Cc: Subject: PERFORCE change 94266 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Mar 2006 22:18:10 -0000 http://perforce.freebsd.org/chv.cgi?CH=94266 Change 94266 by marcel@marcel_nfs on 2006/03/29 22:17:52 Nits. Affected files ... .. //depot/projects/uart/dev/scc/scc_bfe.h#11 edit Differences ... ==== //depot/projects/uart/dev/scc/scc_bfe.h#11 (text+ko) ==== @@ -70,11 +70,10 @@ device_t m_dev; u_int m_mode; - int m_alloc_rres:1; int m_attached:1; + int m_fastintr:1; + int m_hasintr:1; int m_probed:1; - int m_hasintr:1; - int m_fastintr:1; driver_intr_t *ih; serdev_intr_t *ih_src[SCC_ISRCCNT]; @@ -87,7 +86,8 @@ struct scc_mode ch_mode[SCC_NMODES]; - uint32_t ch_nr; + u_int ch_nr; + uint32_t ch_ipend; uint32_t ch_hwsig; }; From owner-p4-projects@FreeBSD.ORG Wed Mar 29 22:22:15 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8DB7A16A424; Wed, 29 Mar 2006 22:22:15 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6B37B16A423 for ; Wed, 29 Mar 2006 22:22:15 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id DAB9943D49 for ; Wed, 29 Mar 2006 22:22:14 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2TMME0r078278 for ; Wed, 29 Mar 2006 22:22:14 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2TMME9T078275 for perforce@freebsd.org; Wed, 29 Mar 2006 22:22:14 GMT (envelope-from marcel@freebsd.org) Date: Wed, 29 Mar 2006 22:22:14 GMT Message-Id: <200603292222.k2TMME9T078275@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Cc: Subject: PERFORCE change 94267 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Mar 2006 22:22:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=94267 Change 94267 by marcel@marcel_nfs on 2006/03/29 22:22:07 Remove interrupt tracing/debugging code. Affected files ... .. //depot/projects/uart/dev/scc/scc_core.c#13 edit Differences ... ==== //depot/projects/uart/dev/scc/scc_core.c#13 (text+ko) ==== @@ -45,54 +45,12 @@ #include "scc_if.h" -#define SCC_ITRACE - devclass_t scc_devclass; char scc_driver_name[] = "scc"; MALLOC_DEFINE(M_SCC, "SCC", "SCC driver"); -#ifdef SCC_ITRACE -#define SCC_ITRACE_BUFSZ 128 -static uint32_t scc_itrace_entry[SCC_ITRACE_BUFSZ]; -static uint32_t scc_itrace_count[SCC_ITRACE_BUFSZ]; -static int scc_itrace_head = 0; - static void -scc_itrace_log(struct scc_softc *sc, int ch, int ipend) -{ - uint32_t entry; - int unit; - - unit = device_get_unit(sc->sc_dev); - entry = ipend | (ch << 8) | unit; - - if (scc_itrace_entry[scc_itrace_head] == entry) { - scc_itrace_count[scc_itrace_head]++; - } else { - scc_itrace_head = (scc_itrace_head + 1) % SCC_ITRACE_BUFSZ; - scc_itrace_entry[scc_itrace_head] = entry; - scc_itrace_count[scc_itrace_head] = 1; - } -} - -void scc_itrace_dump(void); -void -scc_itrace_dump() -{ - int idx; - - idx = scc_itrace_head; - do { - if (scc_itrace_entry[idx] != 0) - printf("%06x %u\n", scc_itrace_entry[idx], - scc_itrace_count[idx]); - idx = (idx == 0) ? SCC_ITRACE_BUFSZ - 1 : idx - 1; - } while (idx != scc_itrace_head); -} -#endif /* SCC_ITRACE */ - -static void scc_bfe_intr(void *arg) { struct scc_softc *sc = arg; @@ -103,13 +61,6 @@ cl = sc->sc_class; while (!sc->sc_leaving && (ipend = SCC_IPEND(sc)) != 0) { -#ifdef SCC_ITRACE - for (c = 0; c < cl->cl_channels; c++) { - ch = &sc->sc_chan[c]; - if (ch->ch_ipend) - scc_itrace_log(sc, ch->ch_nr, ch->ch_ipend); - } -#endif i = 0, isrc = SER_INT_OVERRUN; while (ipend) { while (i < SCC_ISRCCNT && !(ipend & isrc)) From owner-p4-projects@FreeBSD.ORG Wed Mar 29 22:25:26 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4264216A453; Wed, 29 Mar 2006 22:25:26 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1B9B016A430 for ; Wed, 29 Mar 2006 22:25:26 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 126B843D73 for ; Wed, 29 Mar 2006 22:25:19 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2TMPIMK078406 for ; Wed, 29 Mar 2006 22:25:18 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2TMPIiH078403 for perforce@freebsd.org; Wed, 29 Mar 2006 22:25:18 GMT (envelope-from marcel@freebsd.org) Date: Wed, 29 Mar 2006 22:25:18 GMT Message-Id: <200603292225.k2TMPIiH078403@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Cc: Subject: PERFORCE change 94268 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Mar 2006 22:25:26 -0000 http://perforce.freebsd.org/chv.cgi?CH=94268 Change 94268 by marcel@marcel_nfs on 2006/03/29 22:24:25 Implement scc_bfe_detach(). Affected files ... .. //depot/projects/uart/dev/scc/scc_core.c#14 edit Differences ... ==== //depot/projects/uart/dev/scc/scc_core.c#14 (text+ko) ==== @@ -271,8 +271,44 @@ int scc_bfe_detach(device_t dev) { + struct scc_chan *ch; + struct scc_class *cl; + struct scc_mode *m; + struct scc_softc *sc; + int chan, error, mode; + + sc = device_get_softc(dev); + cl = sc->sc_class; + + /* Detach our children. */ + error = 0; + for (chan = 0; chan < cl->cl_channels; chan++) { + ch = &sc->sc_chan[chan]; + for (mode = 0; mode < SCC_NMODES; mode++) { + m = &ch->ch_mode[mode]; + if (!m->m_attached) + continue; + if (device_detach(m->m_dev) != 0) + error = ENXIO; + else + m->m_attached = 0; + } + } + + if (error) + return (error); - return (ENXIO); + if (sc->sc_ires != NULL) { + bus_teardown_intr(dev, sc->sc_ires, sc->sc_icookie); + bus_release_resource(dev, SYS_RES_IRQ, sc->sc_irid, + sc->sc_ires); + } + bus_release_resource(dev, sc->sc_rtype, sc->sc_rrid, sc->sc_rres); + + free(sc->sc_chan, M_SCC); + + mtx_destroy(&sc->sc_hwmtx); + return (0); } int From owner-p4-projects@FreeBSD.ORG Wed Mar 29 22:29:25 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 30E1A16A425; Wed, 29 Mar 2006 22:29:25 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EB66C16A41F for ; Wed, 29 Mar 2006 22:29:24 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8F0DA43D45 for ; Wed, 29 Mar 2006 22:29:24 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2TMTOwr078537 for ; Wed, 29 Mar 2006 22:29:24 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2TMTOlu078534 for perforce@freebsd.org; Wed, 29 Mar 2006 22:29:24 GMT (envelope-from marcel@freebsd.org) Date: Wed, 29 Mar 2006 22:29:24 GMT Message-Id: <200603292229.k2TMTOlu078534@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Cc: Subject: PERFORCE change 94269 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Mar 2006 22:29:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=94269 Change 94269 by marcel@marcel_nfs on 2006/03/29 22:29:21 Rename the reset() method of the serdev interface to sysdev(). Intead of scc(4) asking for each channel and mode if the hardware can be reset, it's asking now if the channel in that mode is used as a system device (think console, keyboard, etc). Consequently, the hardware is not reset, but additionally the channel is fixed in that mode. This means that no bsc(4) or hdlc(4) will be probed and/or attached for that channel, which means that there won't be devices that cannot be used. Affected files ... .. //depot/projects/uart/dev/scc/scc_bfe.h#12 edit .. //depot/projects/uart/dev/scc/scc_core.c#15 edit .. //depot/projects/uart/dev/uart/uart_bus.h#43 edit .. //depot/projects/uart/dev/uart/uart_bus_scc.c#6 edit .. //depot/projects/uart/dev/uart/uart_core.c#51 edit .. //depot/projects/uart/kern/serdev_if.m#3 edit Differences ... ==== //depot/projects/uart/dev/scc/scc_bfe.h#12 (text+ko) ==== @@ -74,6 +74,7 @@ int m_fastintr:1; int m_hasintr:1; int m_probed:1; + int m_sysdev:1; driver_intr_t *ih; serdev_intr_t *ih_src[SCC_ISRCCNT]; @@ -87,6 +88,7 @@ struct scc_mode ch_mode[SCC_NMODES]; u_int ch_nr; + int ch_sysdev:1; uint32_t ch_ipend; uint32_t ch_hwsig; ==== //depot/projects/uart/dev/scc/scc_core.c#15 (text+ko) ==== ==== //depot/projects/uart/dev/uart/uart_bus.h#43 (text+ko) ==== @@ -142,7 +142,7 @@ int uart_bus_detach(device_t dev); serdev_intr_t *uart_bus_ihand(device_t dev, int ipend); int uart_bus_probe(device_t dev, int regshft, int rclk, int rid, int chan); -int uart_bus_reset(device_t dev); +int uart_bus_sysdev(device_t dev); int uart_tty_attach(struct uart_softc *); int uart_tty_detach(struct uart_softc *); ==== //depot/projects/uart/dev/uart/uart_bus_scc.c#6 (text+ko) ==== @@ -53,7 +53,7 @@ DEVMETHOD(device_detach, uart_bus_detach), /* Serdev interface */ DEVMETHOD(serdev_ihand, uart_bus_ihand), - DEVMETHOD(serdev_reset, uart_bus_reset), + DEVMETHOD(serdev_sysdev, uart_bus_sysdev), { 0, 0 } }; ==== //depot/projects/uart/dev/uart/uart_core.c#51 (text+ko) ==== @@ -267,14 +267,12 @@ } int -uart_bus_reset(device_t dev) +uart_bus_sysdev(device_t dev) { struct uart_softc *sc; - int reset; sc = device_get_softc(dev); - reset = (sc->sc_sysdev == NULL) ? 1 : 0; - return (reset); + return ((sc->sc_sysdev != NULL) ? 1 : 0); } int ==== //depot/projects/uart/kern/serdev_if.m#3 (text+ko) ==== @@ -50,9 +50,9 @@ } static int - default_reset(device_t dev) + default_sysdev(device_t dev) { - return (1); + return (0); } }; @@ -66,17 +66,14 @@ int ipend; } DEFAULT default_ihand; -# reset() - Serial device hardware reset veto function. +# sysdev() - Query system device status # This method may be called by the umbrella driver for each child driver -# to establish if a hardware reset can be performed or not. When, for -# example, a serial channel is used as the system console, a hardware -# reset should not happen as it interrupts console operation. -# Each child driver is expected to perform a channel reset in any case -# and a hardware reset is assumed to have happened when at least one of -# the channels is in use. -# The return value is 0 when no hardware reset should happen and !0 -# otherwise. -METHOD int reset { +# to establish if a particular channel and mode is currently being used +# for system specific usage. If this is the case, the hardware is not +# reset and the channel will not change its operation mode. +# The return value is !0 if the channel and mode are used for a system +# device and 0 otherwise. +METHOD int sysdev { device_t dev; -} DEFAULT default_reset; +} DEFAULT default_sysdev; From owner-p4-projects@FreeBSD.ORG Wed Mar 29 22:32:29 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2034216A428; Wed, 29 Mar 2006 22:32:29 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id F3E4B16A420 for ; Wed, 29 Mar 2006 22:32:28 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id BFCE243D46 for ; Wed, 29 Mar 2006 22:32:28 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2TMWSfn078693 for ; Wed, 29 Mar 2006 22:32:28 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2TMWSwp078690 for perforce@freebsd.org; Wed, 29 Mar 2006 22:32:28 GMT (envelope-from marcel@freebsd.org) Date: Wed, 29 Mar 2006 22:32:28 GMT Message-Id: <200603292232.k2TMWSwp078690@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Cc: Subject: PERFORCE change 94270 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Mar 2006 22:32:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=94270 Change 94270 by marcel@marcel_nfs on 2006/03/29 22:31:33 Missed in previous changeset... Affected files ... .. //depot/projects/uart/dev/scc/scc_core.c#16 edit Differences ... ==== //depot/projects/uart/dev/scc/scc_core.c#16 (text+ko) ==== @@ -102,7 +102,7 @@ const char *sep; bus_space_handle_t bh; u_long base, size, start; - int c, error, mode, reset; + int c, error, mode, sysdev; /* * The sc_class field defines the type of SCC we're going to work @@ -142,8 +142,7 @@ * Create the control structures for our children. Probe devices * and query them to see if we can reset the hardware. */ - reset = 1; - + sysdev = 0; sc->sc_chan = malloc(sizeof(struct scc_chan) * cl->cl_channels, M_SCC, M_WAITOK | M_ZERO); base = rman_get_start(sc->sc_rres); @@ -170,18 +169,20 @@ m = &ch->ch_mode[mode]; m->m_chan = ch; m->m_mode = 1U << mode; - if ((cl->cl_modes & m->m_mode) == 0) + if ((cl->cl_modes & m->m_mode) == 0 || ch->ch_sysdev) continue; m->m_dev = device_add_child(dev, NULL, -1); device_set_ivars(m->m_dev, (void *)m); error = device_probe_child(dev, m->m_dev); if (!error) { m->m_probed = 1; - reset = (reset && SERDEV_RESET(m->m_dev)); + m->m_sysdev = SERDEV_SYSDEV(m->m_dev) ? 1 : 0; + ch->ch_sysdev |= m->m_sysdev; } } start += (cl->cl_range < 0) ? -size : size; + sysdev |= ch->ch_sysdev; } /* @@ -190,9 +191,9 @@ */ if (bootverbose) { device_printf(dev, "%sresetting hardware\n", - (reset) ? "" : "not "); + (sysdev) ? "not " : ""); } - error = SCC_ATTACH(sc, reset); + error = SCC_ATTACH(sc, !sysdev); if (error) goto fail; From owner-p4-projects@FreeBSD.ORG Wed Mar 29 22:34:32 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 66ACD16A423; Wed, 29 Mar 2006 22:34:32 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2CAB616A420 for ; Wed, 29 Mar 2006 22:34:32 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id CE3CE43D45 for ; Wed, 29 Mar 2006 22:34:31 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2TMYV9t078735 for ; Wed, 29 Mar 2006 22:34:31 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2TMYVBW078732 for perforce@freebsd.org; Wed, 29 Mar 2006 22:34:31 GMT (envelope-from marcel@freebsd.org) Date: Wed, 29 Mar 2006 22:34:31 GMT Message-Id: <200603292234.k2TMYVBW078732@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Cc: Subject: PERFORCE change 94271 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Mar 2006 22:34:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=94271 Change 94271 by marcel@marcel_nfs on 2006/03/29 22:33:48 Update copyright. Affected files ... .. //depot/projects/uart/dev/scc/scc_bfe.h#13 edit .. //depot/projects/uart/dev/scc/scc_bfe_ebus.c#4 edit .. //depot/projects/uart/dev/scc/scc_bfe_sbus.c#3 edit .. //depot/projects/uart/dev/scc/scc_bus.h#7 edit .. //depot/projects/uart/dev/scc/scc_core.c#17 edit .. //depot/projects/uart/dev/scc/scc_dev_sab82532.c#6 edit .. //depot/projects/uart/dev/scc/scc_dev_z8530.c#8 edit .. //depot/projects/uart/dev/scc/scc_if.m#5 edit Differences ... ==== //depot/projects/uart/dev/scc/scc_bfe.h#13 (text+ko) ==== @@ -1,5 +1,5 @@ -/* - * Copyright (c) 2004 Marcel Moolenaar +/*- + * Copyright (c) 2004-2006 Marcel Moolenaar * All rights reserved. * * Redistribution and use in source and binary forms, with or without ==== //depot/projects/uart/dev/scc/scc_bfe_ebus.c#4 (text+ko) ==== @@ -1,5 +1,5 @@ -/* - * Copyright (c) 2004 Marcel Moolenaar +/*- + * Copyright (c) 2004-2006 Marcel Moolenaar * All rights reserved. * * Redistribution and use in source and binary forms, with or without ==== //depot/projects/uart/dev/scc/scc_bfe_sbus.c#3 (text+ko) ==== @@ -1,5 +1,5 @@ -/* - * Copyright (c) 2004 Marcel Moolenaar +/*- + * Copyright (c) 2004-2006 Marcel Moolenaar * All rights reserved. * * Redistribution and use in source and binary forms, with or without ==== //depot/projects/uart/dev/scc/scc_bus.h#7 (text+ko) ==== @@ -1,5 +1,5 @@ -/* - * Copyright (c) 2004 Marcel Moolenaar +/*- + * Copyright (c) 2004-2006 Marcel Moolenaar * All rights reserved. * * Redistribution and use in source and binary forms, with or without ==== //depot/projects/uart/dev/scc/scc_core.c#17 (text+ko) ==== @@ -1,5 +1,5 @@ -/* - * Copyright (c) 2004 Marcel Moolenaar +/*- + * Copyright (c) 2004-2006 Marcel Moolenaar * All rights reserved. * * Redistribution and use in source and binary forms, with or without ==== //depot/projects/uart/dev/scc/scc_dev_sab82532.c#6 (text+ko) ==== @@ -1,5 +1,5 @@ -/* - * Copyright (c) 2004 Marcel Moolenaar +/*- + * Copyright (c) 2004-2006 Marcel Moolenaar * All rights reserved. * * Redistribution and use in source and binary forms, with or without ==== //depot/projects/uart/dev/scc/scc_dev_z8530.c#8 (text+ko) ==== @@ -1,5 +1,5 @@ -/* - * Copyright (c) 2004 Marcel Moolenaar +/*- + * Copyright (c) 2004-2006 Marcel Moolenaar * All rights reserved. * * Redistribution and use in source and binary forms, with or without ==== //depot/projects/uart/dev/scc/scc_if.m#5 (text+ko) ==== @@ -1,4 +1,4 @@ -# Copyright (c) 2004 Marcel Moolenaar +# Copyright (c) 2004-2006 Marcel Moolenaar # All rights reserved. # # Redistribution and use in source and binary forms, with or without From owner-p4-projects@FreeBSD.ORG Wed Mar 29 22:38:37 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C58B016A422; Wed, 29 Mar 2006 22:38:37 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8E05216A400 for ; Wed, 29 Mar 2006 22:38:37 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3951443D45 for ; Wed, 29 Mar 2006 22:38:37 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2TMcbUd078914 for ; Wed, 29 Mar 2006 22:38:37 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2TMcamw078911 for perforce@freebsd.org; Wed, 29 Mar 2006 22:38:36 GMT (envelope-from marcel@freebsd.org) Date: Wed, 29 Mar 2006 22:38:36 GMT Message-Id: <200603292238.k2TMcamw078911@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Cc: Subject: PERFORCE change 94272 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Mar 2006 22:38:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=94272 Change 94272 by marcel@marcel_nfs on 2006/03/29 22:37:52 Update copyright. Affected files ... .. //depot/projects/uart/dev/uart/uart_bus_scc.c#7 edit Differences ... ==== //depot/projects/uart/dev/uart/uart_bus_scc.c#7 (text+ko) ==== @@ -1,5 +1,5 @@ -/* - * Copyright (c) 2004 Marcel Moolenaar +/*- + * Copyright (c) 2004-2006 Marcel Moolenaar * All rights reserved. * * Redistribution and use in source and binary forms, with or without From owner-p4-projects@FreeBSD.ORG Wed Mar 29 22:39:39 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 88B4B16A424; Wed, 29 Mar 2006 22:39:39 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 67FD516A423 for ; Wed, 29 Mar 2006 22:39:39 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id EB70343D72 for ; Wed, 29 Mar 2006 22:39:38 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2TMdcIM078943 for ; Wed, 29 Mar 2006 22:39:38 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2TMdcL3078940 for perforce@freebsd.org; Wed, 29 Mar 2006 22:39:38 GMT (envelope-from marcel@freebsd.org) Date: Wed, 29 Mar 2006 22:39:38 GMT Message-Id: <200603292239.k2TMdcL3078940@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Cc: Subject: PERFORCE change 94273 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Mar 2006 22:39:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=94273 Change 94273 by marcel@marcel_nfs on 2006/03/29 22:39:38 Add #- prior to copyright. Affected files ... .. //depot/projects/uart/dev/scc/scc_if.m#6 edit Differences ... ==== //depot/projects/uart/dev/scc/scc_if.m#6 (text+ko) ==== @@ -1,3 +1,4 @@ +#- # Copyright (c) 2004-2006 Marcel Moolenaar # All rights reserved. # From owner-p4-projects@FreeBSD.ORG Wed Mar 29 22:42:44 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 420B216A420; Wed, 29 Mar 2006 22:42:44 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E3C8C16A400 for ; Wed, 29 Mar 2006 22:42:43 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 677BC43D46 for ; Wed, 29 Mar 2006 22:42:43 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2TMgh4x079141 for ; Wed, 29 Mar 2006 22:42:43 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2TMggdJ079138 for perforce@freebsd.org; Wed, 29 Mar 2006 22:42:42 GMT (envelope-from marcel@freebsd.org) Date: Wed, 29 Mar 2006 22:42:42 GMT Message-Id: <200603292242.k2TMggdJ079138@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Cc: Subject: PERFORCE change 94274 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Mar 2006 22:42:44 -0000 http://perforce.freebsd.org/chv.cgi?CH=94274 Change 94274 by marcel@marcel_nfs on 2006/03/29 22:41:58 IFC @94262 Affected files ... .. //depot/projects/uart/alpha/alpha/clock.c#9 integrate .. //depot/projects/uart/alpha/include/cpu.h#6 integrate .. //depot/projects/uart/amd64/acpica/madt.c#5 integrate .. //depot/projects/uart/amd64/conf/GENERIC#14 integrate .. //depot/projects/uart/arm/arm/pmap.c#12 integrate .. //depot/projects/uart/compat/linux/linux_misc.c#14 integrate .. //depot/projects/uart/conf/Makefile.arm#8 integrate .. //depot/projects/uart/conf/NOTES#31 integrate .. //depot/projects/uart/conf/files#53 integrate .. //depot/projects/uart/conf/options#25 integrate .. //depot/projects/uart/dev/acpica/Osd/OsdHardware.c#8 integrate .. //depot/projects/uart/dev/acpica/acpi.c#19 integrate .. //depot/projects/uart/dev/hwpmc/hwpmc_piv.c#5 integrate .. //depot/projects/uart/dev/md/md.c#16 integrate .. //depot/projects/uart/dev/mfi/mfi.c#2 integrate .. //depot/projects/uart/dev/mfi/mfi_disk.c#2 integrate .. //depot/projects/uart/geom/raid3/g_raid3.c#14 integrate .. //depot/projects/uart/i386/acpica/madt.c#5 integrate .. //depot/projects/uart/i386/conf/GENERIC#13 integrate .. //depot/projects/uart/i386/include/atomic.h#8 integrate .. //depot/projects/uart/kern/kern_acct.c#9 integrate .. //depot/projects/uart/kern/kern_alq.c#7 integrate .. //depot/projects/uart/kern/kern_event.c#9 integrate .. //depot/projects/uart/kern/kern_ktrace.c#11 integrate .. //depot/projects/uart/kern/kern_sig.c#27 integrate .. //depot/projects/uart/kern/syscalls.master#17 integrate .. //depot/projects/uart/kern/uipc_socket2.c#10 integrate .. //depot/projects/uart/kern/uipc_syscalls.c#16 integrate .. //depot/projects/uart/kern/vfs_syscalls.c#23 integrate .. //depot/projects/uart/kern/vfs_vnops.c#16 integrate .. //depot/projects/uart/modules/Makefile#29 integrate .. //depot/projects/uart/net80211/ieee80211_ioctl.c#16 integrate .. //depot/projects/uart/netinet6/in6.h#8 integrate .. //depot/projects/uart/netinet6/ipsec.c#9 integrate .. //depot/projects/uart/netipx/README#6 integrate .. //depot/projects/uart/netipx/ipx_input.c#9 integrate .. //depot/projects/uart/netipx/spx_usrreq.c#11 integrate .. //depot/projects/uart/opencrypto/cryptosoft.c#5 integrate .. //depot/projects/uart/sparc64/fhc/clkbrd.c#3 integrate .. //depot/projects/uart/sparc64/fhc/clkbrdreg.h#2 integrate .. //depot/projects/uart/sparc64/include/asi.h#2 integrate .. //depot/projects/uart/sparc64/include/bus.h#10 integrate .. //depot/projects/uart/sparc64/sparc64/machdep.c#15 integrate .. //depot/projects/uart/sparc64/sparc64/mp_machdep.c#8 integrate .. //depot/projects/uart/sparc64/sparc64/tick.c#8 integrate .. //depot/projects/uart/sys/gmon.h#3 integrate .. //depot/projects/uart/sys/pmc.h#5 integrate .. //depot/projects/uart/sys/pmclog.h#3 integrate .. //depot/projects/uart/sys/sysctl.h#10 integrate .. //depot/projects/uart/sys/sysproto.h#16 integrate .. //depot/projects/uart/sys/umtx.h#7 integrate Differences ... ==== //depot/projects/uart/alpha/alpha/clock.c#9 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/clock.c,v 1.44 2006/03/07 22:12:09 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/clock.c,v 1.45 2006/03/28 21:20:11 jhb Exp $"); #include "opt_clock.h" @@ -137,7 +137,6 @@ static void calibrate_clocks(u_int32_t firmware_freq, u_int32_t *pcc, u_int32_t *timer); static void set_timer_freq(u_int freq, int intr_freq); -static uint64_t read_cycle_count(void); void clockattach(device_t dev) ==== //depot/projects/uart/alpha/include/cpu.h#6 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/alpha/include/cpu.h,v 1.43 2005/12/22 22:16:04 jhb Exp $ */ +/* $FreeBSD: src/sys/alpha/include/cpu.h,v 1.44 2006/03/28 21:20:12 jhb Exp $ */ /* From: NetBSD: cpu.h,v 1.18 1997/09/23 23:17:49 mjacob Exp */ /*- @@ -88,11 +88,12 @@ #define cpu_getstack(td) (alpha_pal_rdusp()) #define cpu_spinwait() /* nothing */ -#define get_cyclecount alpha_rpcc +#define get_cyclecount() read_cycle_count() void cpu_halt(void); void cpu_reset(void); void fork_trampoline(void); /* MAGIC */ +uint64_t read_cycle_count(void); void swi_vm(void *); #endif /* _KERNEL */ ==== //depot/projects/uart/amd64/acpica/madt.c#5 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/acpica/madt.c,v 1.19 2005/11/01 22:44:06 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/acpica/madt.c,v 1.20 2006/03/27 15:59:48 jhb Exp $"); #include #include @@ -219,11 +219,12 @@ } /* - * For ACPI < 2.0, use the RSDT. For ACPI >= 2.0, use the XSDT. - * We map the XSDT and RSDT at page 1 in the crashdump area. - * Page 0 is used to map in the headers of candidate ACPI tables. + * For ACPI >= 2.0, use the XSDT if it is available. + * Otherwise, use the RSDT. We map the XSDT or RSDT at page 1 + * in the crashdump area. Page 0 is used to map in the + * headers of candidate ACPI tables. */ - if (rsdp->Revision >= 2) { + if (rsdp->Revision >= 2 && rsdp->XsdtPhysicalAddress != 0) { /* * AcpiOsGetRootPointer only verifies the checksum for * the version 1.0 portion of the RSDP. Version 2.0 has ==== //depot/projects/uart/amd64/conf/GENERIC#14 (text+ko) ==== @@ -16,7 +16,7 @@ # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # -# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.449 2006/01/12 01:20:59 obrien Exp $ +# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.450 2006/03/29 09:57:21 scottl Exp $ cpu HAMMER ident GENERIC @@ -137,6 +137,7 @@ device aac # Adaptec FSA RAID device aacp # SCSI passthrough for aac (requires CAM) device ida # Compaq Smart RAID +device mfi # LSI MegaRAID SAS device mlx # Mylex DAC960 family #XXX pointer/int warnings #device pst # Promise Supertrak SX6000 ==== //depot/projects/uart/arm/arm/pmap.c#12 (text+ko) ==== @@ -147,7 +147,7 @@ #include "opt_vm.h" #include -__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.44 2006/03/22 22:11:10 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.45 2006/03/26 22:03:43 cognet Exp $"); #include #include #include @@ -3065,7 +3065,10 @@ pmap_object_init_pt(pmap_t pmap, vm_offset_t addr, vm_object_t object, vm_pindex_t pindex, vm_size_t size) { - printf("pmap_object_init_pt()\n"); + + VM_OBJECT_LOCK_ASSERT(object, MA_OWNED); + KASSERT(object->type == OBJT_DEVICE, + ("pmap_object_init_pt: non-device object")); } ==== //depot/projects/uart/compat/linux/linux_misc.c#14 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.175 2006/03/19 11:10:33 ru Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.177 2006/03/27 23:27:11 avatar Exp $"); #include "opt_compat.h" #include "opt_mac.h" @@ -1405,13 +1405,12 @@ int linux_sethostname(struct thread *td, struct linux_sethostname_args *args) { - struct proc *p = td->td_proc; int name[2]; int error; name[0] = CTL_KERN; name[1] = KERN_HOSTNAME; - if ((error = suser_cred(p->p_ucred, SUSER_ALLOWJAIL))) + if ((error = suser_cred(td->td_ucred, SUSER_ALLOWJAIL))) return (error); return (userland_sysctl(td, name, 2, 0, 0, 0, args->hostname, args->len, 0, 0)); ==== //depot/projects/uart/conf/Makefile.arm#8 (text+ko) ==== @@ -1,7 +1,7 @@ # Makefile.arm -- with config changes. # Copyright 1990 W. Jolitz # from: @(#)Makefile.i386 7.1 5/10/91 -# $FreeBSD: src/sys/conf/Makefile.arm,v 1.25 2006/01/20 00:46:44 cognet Exp $ +# $FreeBSD: src/sys/conf/Makefile.arm,v 1.26 2006/03/27 00:32:46 cognet Exp $ # # Makefile for FreeBSD # @@ -42,7 +42,7 @@ .endif -.if !defined(DEBUG) +.if !defined(DEBUG) && !defined(PROFLEVEL) CFLAGS += -mno-apcs-frame STRIP_FLAGS = -S .endif ==== //depot/projects/uart/conf/NOTES#31 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1354 2006/03/05 22:52:16 yar Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1355 2006/03/29 09:57:22 scottl Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -1542,6 +1542,7 @@ device ida # Compaq Smart RAID device mlx # Mylex DAC960 device amr # AMI MegaRAID +device mfi # LSI MegaRAID SAS # # 3ware ATA RAID ==== //depot/projects/uart/conf/files#53 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1104 2006/03/23 23:06:14 sam Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1105 2006/03/29 09:57:22 scottl Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -705,6 +705,9 @@ dev/mcd/mcd_isa.c optional mcd isa nowerror dev/md/md.c optional md dev/mem/memdev.c optional mem +dev/mfi/mfi.c optional mfi +dev/mfi/mfi_pci.c optional mfi pci +dev/mfi/mfi_disk.c optional mfi dev/mii/acphy.c optional miibus | acphy dev/mii/amphy.c optional miibus | amphy dev/mii/bmtphy.c optional miibus | bmtphy ==== //depot/projects/uart/conf/options#25 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/options,v 1.531 2006/03/05 22:52:16 yar Exp $ +# $FreeBSD: src/sys/conf/options,v 1.532 2006/03/29 09:57:22 scottl Exp $ # # On the handling of kernel options # @@ -115,6 +115,7 @@ MAC_TEST opt_dontuse.h MD_ROOT opt_md.h MD_ROOT_SIZE opt_md.h +MFI_DEBUG opt_mfi.h MPROF_BUFFERS opt_mprof.h MPROF_HASH_SIZE opt_mprof.h MUTEX_WAKE_ALL ==== //depot/projects/uart/dev/acpica/Osd/OsdHardware.c#8 (text+ko) ==== @@ -30,10 +30,11 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/Osd/OsdHardware.c,v 1.17 2005/09/11 18:39:02 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/Osd/OsdHardware.c,v 1.19 2006/03/29 18:47:59 njl Exp $"); #include +#include #include #include #include @@ -62,9 +63,74 @@ #define ACPI_BUS_HANDLE 0 #endif +/* + * Some BIOS vendors use AML to read/write directly to IO space. This + * can cause a problem if such accesses interfere with the OS's access to + * the same ports. Windows XP and newer systems block accesses to certain + * IO ports. We print a message or block accesses based on a tunable. + */ +static int illegal_bios_ports[] = { + 0x000, 0x00f, /* DMA controller 1 */ + 0x020, 0x021, /* PIC */ + 0x040, 0x043, /* Timer 1 */ + 0x048, 0x04b, /* Timer 2 failsafe */ + 0x070, 0x071, /* CMOS and RTC */ + 0x074, 0x076, /* Extended CMOS */ + 0x081, 0x083, /* DMA1 page registers */ + 0x087, 0x087, /* DMA1 ch0 low page */ + 0x089, 0x08b, /* DMA2 ch2 (0x89), ch3 low page (0x8a, 0x8b) */ + 0x08f, 0x091, /* DMA2 low page refresh (0x8f) */ + /* Arb ctrl port, card select feedback (0x90, 0x91) */ + 0x093, 0x094, /* System board setup */ + 0x096, 0x097, /* POS channel select */ + 0x0a0, 0x0a1, /* PIC (cascaded) */ + 0x0c0, 0x0df, /* ISA DMA */ + 0x4d0, 0x4d1, /* PIC ELCR (edge/level control) */ + 0xcf8, 0xcff, /* PCI config space. Microsoft adds 0xd00 also but + that seems incorrect. */ + -1, -1 +}; + +/* Block accesses to bad IO port addresses or just print a warning. */ +static int block_bad_io; +TUNABLE_INT("debug.acpi.block_bad_io", &block_bad_io); + +/* + * Look up bad ports in our table. Returns 0 if ok, 1 if marked bad but + * access is still allowed, or -1 to deny access. + */ +static int +acpi_os_check_port(UINT32 addr, UINT32 width) +{ + int error, *port; + + error = 0; + for (port = illegal_bios_ports; *port != -1; port += 2) { + if ((addr >= port[0] && addr <= port[1]) || + (addr < port[0] && addr + (width / 8) >= port[0])) { + if (block_bad_io) + error = -1; + else + error = 1; + break; + } + } + + return (error); +} + ACPI_STATUS AcpiOsReadPort(ACPI_IO_ADDRESS InPort, UINT32 *Value, UINT32 Width) { + int error; + + error = acpi_os_check_port(InPort, Width); + if (error != 0) { + printf("acpi: bad read from port 0x%03x (%d)\n", (int)InPort, Width); + if (error == -1) + return (AE_BAD_PARAMETER); + } + switch (Width) { case 8: *(u_int8_t *)Value = bus_space_read_1(ACPI_BUS_SPACE_IO, @@ -89,6 +155,16 @@ ACPI_STATUS AcpiOsWritePort(ACPI_IO_ADDRESS OutPort, UINT32 Value, UINT32 Width) { + int error; + + error = acpi_os_check_port(OutPort, Width); + if (error != 0) { + printf("acpi: bad write to port 0x%03x (%d), val %#x\n", (int)OutPort, + Width, Value); + if (error == -1) + return (AE_BAD_PARAMETER); + } + switch (Width) { case 8: bus_space_write_1(ACPI_BUS_SPACE_IO, ACPI_BUS_HANDLE, OutPort, Value); ==== //depot/projects/uart/dev/acpica/acpi.c#19 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi.c,v 1.219 2005/11/07 21:52:06 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi.c,v 1.220 2006/03/29 06:30:47 njl Exp $"); #include "opt_acpi.h" #include @@ -58,6 +58,7 @@ #include #include #include +#include #include #include "pci_if.h" @@ -1636,6 +1637,16 @@ DELAY(1000000); printf("ACPI power-off failed - timeout\n"); } + } else if ((howto & RB_AUTOBOOT) != 0 && AcpiGbl_FADT->ResetRegSup) { + status = AcpiHwLowLevelWrite( + AcpiGbl_FADT->ResetRegister.RegisterBitWidth, + AcpiGbl_FADT->ResetValue, &AcpiGbl_FADT->ResetRegister); + if (ACPI_FAILURE(status)) { + printf("ACPI reset failed - %s\n", AcpiFormatException(status)); + } else { + DELAY(1000000); + printf("ACPI reset failed - timeout\n"); + } } else if (panicstr == NULL) { printf("Shutting down ACPI\n"); AcpiTerminate(); ==== //depot/projects/uart/dev/hwpmc/hwpmc_piv.c#5 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/hwpmc/hwpmc_piv.c,v 1.12 2005/12/26 09:27:24 jkoshy Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/hwpmc/hwpmc_piv.c,v 1.13 2006/03/28 14:09:21 jkoshy Exp $"); #include #include @@ -674,6 +674,7 @@ static int p4_cleanup(int cpu) { + int i; struct p4_cpu *pcs; PMCDBG(MDP,INI,0, "p4-cleanup cpu=%d", cpu); @@ -681,6 +682,11 @@ if ((pcs = (struct p4_cpu *) pmc_pcpu[cpu]) == NULL) return 0; + /* Turn off all PMCs on this CPU */ + for (i = 0; i < P4_NPMCS - 1; i++) + wrmsr(P4_CCCR_MSR_FIRST + i, + rdmsr(P4_CCCR_MSR_FIRST + i) & ~P4_CCCR_ENABLE); + /* * If the CPU is physical we need to teardown the * full MD state. ==== //depot/projects/uart/dev/md/md.c#16 (text+ko) ==== @@ -6,7 +6,7 @@ * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp * ---------------------------------------------------------------------------- * - * $FreeBSD: src/sys/dev/md/md.c,v 1.162 2006/01/31 13:35:30 luigi Exp $ + * $FreeBSD: src/sys/dev/md/md.c,v 1.164 2006/03/28 21:25:11 jhb Exp $ * */ @@ -67,6 +67,7 @@ #include #include #include +#include #include #include #include @@ -88,7 +89,8 @@ #define MD_MODVER 1 -#define MD_SHUTDOWN 0x10000 /* Tell worker thread to terminate. */ +#define MD_SHUTDOWN 0x10000 /* Tell worker thread to terminate. */ +#define MD_EXITING 0x20000 /* Worker thread is exiting. */ #ifndef MD_NSECT #define MD_NSECT (10000 * 2) @@ -120,6 +122,8 @@ static g_fini_t g_md_fini; static g_start_t g_md_start; static g_access_t g_md_access; +static void g_md_dumpconf(struct sbuf *sb, const char *indent, struct g_geom *gp, + struct g_consumer *cp __unused, struct g_provider *pp); static int mdunits; static struct cdev *status_dev = 0; @@ -140,6 +144,7 @@ .fini = g_md_fini, .start = g_md_start, .access = g_md_access, + .dumpconf = g_md_dumpconf, }; DECLARE_GEOM_CLASS(g_md_class, g_md); @@ -482,12 +487,11 @@ static int mdstart_vnode(struct md_s *sc, struct bio *bp) { - int error; + int error, vfslocked; struct uio auio; struct iovec aiov; struct mount *mp; - mtx_assert(&Giant, MA_OWNED); /* * VNODE I/O * @@ -516,6 +520,7 @@ * When reading set IO_DIRECT to try to avoid double-caching * the data. When writing IO_DIRECT is not optimal. */ + vfslocked = VFS_LOCK_GIANT(sc->vnode->v_mount); if (bp->bio_cmd == BIO_READ) { vn_lock(sc->vnode, LK_EXCLUSIVE | LK_RETRY, curthread); error = VOP_READ(sc->vnode, &auio, IO_DIRECT, sc->cred); @@ -528,6 +533,7 @@ VOP_UNLOCK(sc->vnode, 0, curthread); vn_finished_write(mp); } + VFS_UNLOCK_GIANT(vfslocked); bp->bio_resid = auio.uio_resid; return (error); } @@ -638,35 +644,20 @@ { struct md_s *sc; struct bio *bp; - int error, hasgiant; + int error; sc = arg; mtx_lock_spin(&sched_lock); sched_prio(curthread, PRIBIO); mtx_unlock_spin(&sched_lock); - switch (sc->type) { - case MD_VNODE: - mtx_lock(&Giant); - hasgiant = 1; - break; - case MD_MALLOC: - case MD_PRELOAD: - case MD_SWAP: - default: - hasgiant = 0; - break; - } - for (;;) { + mtx_lock(&sc->queue_mtx); if (sc->flags & MD_SHUTDOWN) { - sc->procp = NULL; - wakeup(&sc->procp); - if (hasgiant) - mtx_unlock(&Giant); + sc->flags |= MD_EXITING; + mtx_unlock(&sc->queue_mtx); kthread_exit(0); } - mtx_lock(&sc->queue_mtx); bp = bioq_takefirst(&sc->bio_queue); if (!bp) { msleep(sc, &sc->queue_mtx, PRIBIO | PDROP, "mdwait", 0); @@ -864,7 +855,7 @@ { struct vattr vattr; struct nameidata nd; - int error, flags; + int error, flags, vfslocked; error = copyinstr(mdio->md_file, sc->file, sizeof(sc->file), NULL); if (error != 0) @@ -876,15 +867,17 @@ */ if ((mdio->md_options & MD_READONLY) != 0) flags &= ~FWRITE; - NDINIT(&nd, LOOKUP, FOLLOW, UIO_SYSSPACE, sc->file, td); + NDINIT(&nd, LOOKUP, FOLLOW | MPSAFE, UIO_SYSSPACE, sc->file, td); error = vn_open(&nd, &flags, 0, -1); if (error != 0) return (error); + vfslocked = NDHASGIANT(&nd); NDFREE(&nd, NDF_ONLY_PNBUF); if (nd.ni_vp->v_type != VREG || (error = VOP_GETATTR(nd.ni_vp, &vattr, td->td_ucred, td))) { VOP_UNLOCK(nd.ni_vp, 0, td); (void)vn_close(nd.ni_vp, flags, td->td_ucred, td); + VFS_UNLOCK_GIANT(vfslocked); return (error ? error : EINVAL); } VOP_UNLOCK(nd.ni_vp, 0, td); @@ -901,16 +894,18 @@ error = mdsetcred(sc, td->td_ucred); if (error != 0) { (void)vn_close(nd.ni_vp, flags, td->td_ucred, td); + VFS_UNLOCK_GIANT(vfslocked); return (error); } + VFS_UNLOCK_GIANT(vfslocked); return (0); } static int mddestroy(struct md_s *sc, struct thread *td) { + int vfslocked; - if (sc->gp) { sc->gp->softc = NULL; g_topology_lock(); @@ -919,16 +914,18 @@ sc->gp = NULL; sc->pp = NULL; } + mtx_lock(&sc->queue_mtx); sc->flags |= MD_SHUTDOWN; wakeup(sc); - while (sc->procp != NULL) - tsleep(&sc->procp, PRIBIO, "mddestroy", hz / 10); + while (!(sc->flags & MD_EXITING)) + msleep(sc->procp, &sc->queue_mtx, PRIBIO, "mddestroy", hz / 10); + mtx_unlock(&sc->queue_mtx); mtx_destroy(&sc->queue_mtx); if (sc->vnode != NULL) { - mtx_lock(&Giant); + vfslocked = VFS_LOCK_GIANT(sc->vnode->v_mount); (void)vn_close(sc->vnode, sc->flags & MD_READONLY ? FREAD : (FREAD|FWRITE), sc->cred, td); - mtx_unlock(&Giant); + VFS_UNLOCK_GIANT(vfslocked); } if (sc->cred != NULL) crfree(sc->cred); @@ -1178,6 +1175,65 @@ } static void +g_md_dumpconf(struct sbuf *sb, const char *indent, struct g_geom *gp, + struct g_consumer *cp __unused, struct g_provider *pp) +{ + struct md_s *mp; + char *type; + + mp = gp->softc; + if (mp == NULL) + return; + + switch (mp->type) { + case MD_MALLOC: + type = "malloc"; + break; + case MD_PRELOAD: + type = "preload"; + break; + case MD_VNODE: + type = "vnode"; + break; + case MD_SWAP: + type = "swap"; + break; + default: + type = "unknown"; + break; + } + + if (pp != NULL) { + if (indent == NULL) { + sbuf_printf(sb, " u %d", mp->unit); + sbuf_printf(sb, " s %ju", (uintmax_t) mp->sectorsize); + sbuf_printf(sb, " f %ju", (uintmax_t) mp->fwheads); + sbuf_printf(sb, " fs %ju", (uintmax_t) mp->fwsectors); + sbuf_printf(sb, " l %ju", (uintmax_t) mp->mediasize); + sbuf_printf(sb, " t %s", type); + if (mp->type == MD_VNODE && mp->vnode != NULL) + sbuf_printf(sb, " file %s", mp->file); + } else { + sbuf_printf(sb, "%s%d\n", indent, + mp->unit); + sbuf_printf(sb, "%s%ju\n", + indent, (uintmax_t) mp->sectorsize); + sbuf_printf(sb, "%s%ju\n", + indent, (uintmax_t) mp->fwheads); + sbuf_printf(sb, "%s%ju\n", + indent, (uintmax_t) mp->fwsectors); + sbuf_printf(sb, "%s%ju\n", + indent, (uintmax_t) mp->mediasize); + sbuf_printf(sb, "%s%s\n", indent, + type); + if (mp->type == MD_VNODE && mp->vnode != NULL) + sbuf_printf(sb, "%s%s\n", + indent, mp->file); + } + } +} + +static void g_md_fini(struct g_class *mp __unused) { ==== //depot/projects/uart/dev/mfi/mfi.c#2 (text) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/mfi/mfi.c,v 1.1 2006/03/25 06:14:32 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/mfi/mfi.c,v 1.3 2006/03/28 23:59:07 scottl Exp $"); #include "opt_mfi.h" @@ -250,7 +250,7 @@ sc->mfi_sgsize = sizeof(struct mfi_sg64); sc->mfi_flags |= MFI_FLAGS_SG64; } else { - sc->mfi_sgsize = sizeof(struct mfi_sg64); + sc->mfi_sgsize = sizeof(struct mfi_sg32); } frames = (sc->mfi_sgsize * sc->mfi_total_sgl + MFI_FRAME_SIZE - 1) / MFI_FRAME_SIZE + 1; @@ -911,6 +911,12 @@ struct mfi_ld *ld; device_t child; + if ((secsize == 0) || (sectors == 0)) { + device_printf(sc->mfi_dev, "Invalid capacity parameters for " + "logical disk %d\n", id); + return (EINVAL); + } + ld = malloc(sizeof(struct mfi_ld), M_MFIBUF, M_NOWAIT|M_ZERO); if (ld == NULL) { device_printf(sc->mfi_dev, "Cannot allocate ld\n"); @@ -929,7 +935,6 @@ device_set_ivars(child, ld); device_set_desc(child, "MFI Logical Disk"); - TAILQ_INSERT_TAIL(&sc->mfi_ld_tqh, ld, ld_link); mtx_unlock(&sc->mfi_io_lock); mtx_lock(&Giant); bus_generic_attach(sc->mfi_dev); @@ -1069,6 +1074,7 @@ { struct mfi_frame_header *hdr; struct mfi_command *cm; + union mfi_sgl *sgl; struct mfi_softc *sc; int i, dir; @@ -1077,17 +1083,20 @@ cm = (struct mfi_command *)arg; sc = cm->cm_sc; - hdr = (struct mfi_frame_header *)cm->cm_frame; + hdr = &cm->cm_frame->header; + sgl = cm->cm_sg; - for (i = 0; i < nsegs; i++) { - if ((cm->cm_flags & MFI_FLAGS_SG64) == 0) { - cm->cm_sg->sg32[i].addr = segs[i].ds_addr; - cm->cm_sg->sg32[i].len = segs[i].ds_len; - } else { - cm->cm_sg->sg64[i].addr = segs[i].ds_addr; - cm->cm_sg->sg64[i].len = segs[i].ds_len; - hdr->flags |= MFI_FRAME_SGL64; + if ((sc->mfi_flags & MFI_FLAGS_SG64) == 0) { + for (i = 0; i < nsegs; i++) { + sgl->sg32[i].addr = segs[i].ds_addr; + sgl->sg32[i].len = segs[i].ds_len; + } + } else { + for (i = 0; i < nsegs; i++) { + sgl->sg64[i].addr = segs[i].ds_addr; + sgl->sg64[i].len = segs[i].ds_len; } + hdr->flags |= MFI_FRAME_SGL64; } hdr->sg_count = nsegs; ==== //depot/projects/uart/dev/mfi/mfi_disk.c#2 (text) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/mfi/mfi_disk.c,v 1.1 2006/03/25 06:14:32 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/mfi/mfi_disk.c,v 1.2 2006/03/28 01:59:11 scottl Exp $"); #include "opt_mfi.h" @@ -119,6 +119,7 @@ free(sc->ld_ld, M_MFIBUF); return (EINVAL); } + TAILQ_INSERT_TAIL(&sc->ld_controller->mfi_ld_tqh, ld, ld_link); device_printf(dev, "%juMB (%ju sectors) RAID\n", sectors / (1024 * 1024 / secsize), sectors); ==== //depot/projects/uart/geom/raid3/g_raid3.c#14 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/geom/raid3/g_raid3.c,v 1.58 2006/03/25 23:30:36 pjd Exp $"); +__FBSDID("$FreeBSD: src/sys/geom/raid3/g_raid3.c,v 1.59 2006/03/28 18:34:36 pjd Exp $"); #include #include @@ -180,7 +180,7 @@ { struct g_raid3_zone *sz = arg; - if (sz->sz_inuse == sz->sz_max) + if (sz->sz_max > 0 && sz->sz_inuse == sz->sz_max) return (ENOMEM); sz->sz_inuse++; return (0); ==== //depot/projects/uart/i386/acpica/madt.c#5 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/acpica/madt.c,v 1.22 2005/11/01 22:44:08 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/acpica/madt.c,v 1.23 2006/03/27 15:59:48 jhb Exp $"); #include #include @@ -219,11 +219,12 @@ } /* - * For ACPI < 2.0, use the RSDT. For ACPI >= 2.0, use the XSDT. - * We map the XSDT and RSDT at page 1 in the crashdump area. - * Page 0 is used to map in the headers of candidate ACPI tables. + * For ACPI >= 2.0, use the XSDT if it is available. + * Otherwise, use the RSDT. We map the XSDT or RSDT at page 1 + * in the crashdump area. Page 0 is used to map in the + * headers of candidate ACPI tables. */ - if (rsdp->Revision >= 2) { + if (rsdp->Revision >= 2 && rsdp->XsdtPhysicalAddress != 0) { /* * AcpiOsGetRootPointer only verifies the checksum for * the version 1.0 portion of the RSDP. Version 2.0 has ==== //depot/projects/uart/i386/conf/GENERIC#13 (text+ko) ==== @@ -16,7 +16,7 @@ # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # -# $FreeBSD: src/sys/i386/conf/GENERIC,v 1.438 2006/01/21 12:38:35 marius Exp $ +# $FreeBSD: src/sys/i386/conf/GENERIC,v 1.439 2006/03/29 09:57:21 scottl Exp $ cpu I486_CPU cpu I586_CPU @@ -140,6 +140,7 @@ device aac # Adaptec FSA RAID device aacp # SCSI passthrough for aac (requires CAM) device ida # Compaq Smart RAID +device mfi # LSI MegaRAID SAS device mlx # Mylex DAC960 family device pst # Promise Supertrak SX6000 device twe # 3ware ATA RAID ==== //depot/projects/uart/i386/include/atomic.h#8 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/i386/include/atomic.h,v 1.41 2005/09/27 17:39:10 jhb Exp $ + * $FreeBSD: src/sys/i386/include/atomic.h,v 1.42 2006/03/28 14:34:48 des Exp $ */ #ifndef _MACHINE_ATOMIC_H_ #define _MACHINE_ATOMIC_H_ @@ -415,24 +415,42 @@ #define atomic_fetchadd_32 atomic_fetchadd_int /* Operations on pointers. */ -#define atomic_set_ptr atomic_set_int -#define atomic_set_acq_ptr atomic_set_acq_int -#define atomic_set_rel_ptr atomic_set_rel_int -#define atomic_clear_ptr atomic_clear_int -#define atomic_clear_acq_ptr atomic_clear_acq_int -#define atomic_clear_rel_ptr atomic_clear_rel_int -#define atomic_add_ptr atomic_add_int -#define atomic_add_acq_ptr atomic_add_acq_int -#define atomic_add_rel_ptr atomic_add_rel_int -#define atomic_subtract_ptr atomic_subtract_int -#define atomic_subtract_acq_ptr atomic_subtract_acq_int -#define atomic_subtract_rel_ptr atomic_subtract_rel_int -#define atomic_load_acq_ptr atomic_load_acq_int -#define atomic_store_rel_ptr atomic_store_rel_int -#define atomic_cmpset_ptr atomic_cmpset_int -#define atomic_cmpset_acq_ptr atomic_cmpset_acq_int -#define atomic_cmpset_rel_ptr atomic_cmpset_rel_int -#define atomic_readandclear_ptr atomic_readandclear_int +#define atomic_set_ptr(p, v) \ + atomic_set_int((volatile u_int *)(p), (u_int)(v)) +#define atomic_set_acq_ptr(p, v) \ + atomic_set_acq_int((volatile u_int *)(p), (u_int)(v)) +#define atomic_set_rel_ptr(p, v) \ + atomic_set_rel_int((volatile u_int *)(p), (u_int)(v)) +#define atomic_clear_ptr(p, v) \ + atomic_clear_int((volatile u_int *)(p), (u_int)(v)) +#define atomic_clear_acq_ptr(p, v) \ + atomic_clear_acq_int((volatile u_int *)(p), (u_int)(v)) +#define atomic_clear_rel_ptr(p, v) \ + atomic_clear_rel_int((volatile u_int *)(p), (u_int)(v)) +#define atomic_add_ptr(p, v) \ + atomic_add_int((volatile u_int *)(p), (u_int)(v)) +#define atomic_add_acq_ptr(p, v) \ + atomic_add_acq_int((volatile u_int *)(p), (u_int)(v)) +#define atomic_add_rel_ptr(p, v) \ + atomic_add_rel_int((volatile u_int *)(p), (u_int)(v)) +#define atomic_subtract_ptr(p, v) \ + atomic_subtract_int((volatile u_int *)(p), (u_int)(v)) +#define atomic_subtract_acq_ptr(p, v) \ + atomic_subtract_acq_int((volatile u_int *)(p), (u_int)(v)) +#define atomic_subtract_rel_ptr(p, v) \ + atomic_subtract_rel_int((volatile u_int *)(p), (u_int)(v)) +#define atomic_load_acq_ptr(p) \ + atomic_load_acq_int((volatile u_int *)(p)) +#define atomic_store_rel_ptr(p, v) \ + atomic_store_rel_int((volatile u_int *)(p), (v)) +#define atomic_cmpset_ptr(dst, old, new) \ + atomic_cmpset_int((volatile u_int *)(dst), (u_int)(old), (u_int)(new)) +#define atomic_cmpset_acq_ptr(dst, old, new) \ + atomic_cmpset_acq_int((volatile u_int *)(dst), (u_int)(old), (u_int)(new)) +#define atomic_cmpset_rel_ptr(dst, old, new) \ + atomic_cmpset_rel_int((volatile u_int *)(dst), (u_int)(old), (u_int)(new)) +#define atomic_readandclear_ptr(p) \ + atomic_readandclear_int((volatile u_int *)(p)) #endif /* !defined(WANT_FUNCTIONS) */ #endif /* ! _MACHINE_ATOMIC_H_ */ ==== //depot/projects/uart/kern/kern_acct.c#9 (text+ko) ==== @@ -42,7 +42,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/kern_acct.c,v 1.80 2006/02/07 18:59:47 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_acct.c,v 1.81 2006/03/28 21:26:59 jhb Exp $"); #include "opt_mac.h" @@ -159,7 +159,7 @@ acct(struct thread *td, struct acct_args *uap) { struct nameidata nd; - int error, flags; + int error, flags, vfslocked; /* Make sure that the caller is root. */ error = suser(td); @@ -168,38 +168,38 @@ /* * If accounting is to be started to a file, open that file for - * appending and make sure it's a 'normal'. While we could - * conditionally acquire Giant here, we're actually interacting with - * vnodes from possibly two file systems, making the logic a bit - * complicated. For now, use Giant unconditionally. + * appending and make sure it's a 'normal'. */ - mtx_lock(&Giant); if (uap->path != NULL) { - NDINIT(&nd, LOOKUP, NOFOLLOW, UIO_USERSPACE, uap->path, td); + NDINIT(&nd, LOOKUP, NOFOLLOW | MPSAFE, UIO_USERSPACE, + uap->path, td); flags = FWRITE | O_APPEND; error = vn_open(&nd, &flags, 0, -1); if (error) - goto done; + return (error); + vfslocked = NDHASGIANT(&nd); NDFREE(&nd, NDF_ONLY_PNBUF); #ifdef MAC error = mac_check_system_acct(td->td_ucred, nd.ni_vp); if (error) { VOP_UNLOCK(nd.ni_vp, 0, td); vn_close(nd.ni_vp, flags, td->td_ucred, td); - goto done; + VFS_UNLOCK_GIANT(vfslocked); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Mar 29 23:09:16 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 254C416A4E5; Wed, 29 Mar 2006 23:09:16 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id DCD9416A4A3 for ; Wed, 29 Mar 2006 23:09:15 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id AB90C43D49 for ; Wed, 29 Mar 2006 23:09:15 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2TN9F1m080075 for ; Wed, 29 Mar 2006 23:09:15 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2TN9FZk080072 for perforce@freebsd.org; Wed, 29 Mar 2006 23:09:15 GMT (envelope-from jhb@freebsd.org) Date: Wed, 29 Mar 2006 23:09:15 GMT Message-Id: <200603292309.k2TN9FZk080072@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 94275 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Mar 2006 23:09:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=94275 Change 94275 by jhb@jhb_slimer on 2006/03/29 23:08:57 Add a module_file() function that returns the linker_file_t for a given module_t. Affected files ... .. //depot/projects/smpng/sys/kern/kern_module.c#17 edit .. //depot/projects/smpng/sys/sys/module.h#6 edit Differences ... ==== //depot/projects/smpng/sys/kern/kern_module.c#17 (text+ko) ==== @@ -264,6 +264,13 @@ mod->data = *datap; } +linker_file_t +module_file(module_t mod) +{ + + return (mod->file); +} + /* * Syscalls. */ ==== //depot/projects/smpng/sys/sys/module.h#6 (text+ko) ==== @@ -147,6 +147,7 @@ int module_getid(module_t); module_t module_getfnext(module_t); void module_setspecific(module_t, modspecific_t *); +struct linker_file *module_file(module_t); #ifdef MOD_DEBUG extern int mod_debug; From owner-p4-projects@FreeBSD.ORG Wed Mar 29 23:10:18 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 12C2C16A422; Wed, 29 Mar 2006 23:10:18 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B730716A401 for ; Wed, 29 Mar 2006 23:10:17 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 69DDE43D49 for ; Wed, 29 Mar 2006 23:10:17 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2TNAHde080210 for ; Wed, 29 Mar 2006 23:10:17 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2TNAH6x080206 for perforce@freebsd.org; Wed, 29 Mar 2006 23:10:17 GMT (envelope-from jhb@freebsd.org) Date: Wed, 29 Mar 2006 23:10:17 GMT Message-Id: <200603292310.k2TNAH6x080206@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 94276 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Mar 2006 23:10:18 -0000 http://perforce.freebsd.org/chv.cgi?CH=94276 Change 94276 by jhb@jhb_slimer on 2006/03/29 23:10:05 If USE_SET is not defined (turned off for amd64 for now), then ask the linker to lookup our set of events for us instead of assuming that ld(1) will do all the heavy-lifting for us. Evil I am. Affected files ... .. //depot/projects/smpng/sys/modules/crash2/crash2.c#5 edit Differences ... ==== //depot/projects/smpng/sys/modules/crash2/crash2.c#5 (text+ko) ==== @@ -47,6 +47,7 @@ #include #include #include +#include #include #include #include @@ -60,6 +61,10 @@ #define NTHREADS 4 +#ifndef __amd64__ +#define USE_SET +#endif + typedef void (*event_handler)(void); struct crash2_event { @@ -67,7 +72,9 @@ event_handler ev_handler[NTHREADS]; }; +#ifdef USE_SET SET_DECLARE(crash2_event_set, struct crash2_event); +#endif #define CRASH2_EVENT(name, func, ...) \ _CRASH2_EVENT(name, __LINE__, func , ## __VA_ARGS__) @@ -78,8 +85,16 @@ { name, { func , ## __VA_ARGS__ } }; \ DATA_SET(crash2_event_set, crash2_event_ ## line) +#ifdef USE_SET #define MAX_EVENT SET_COUNT(crash2_event_set) +#else +#define MAX_EVENT event_max +#endif +#ifndef USE_SET +static int event_max; +static struct crash2_event **event_start, **event_stop; +#endif static struct cv event_cv; static struct mtx event_mtx; static struct proc *kthread[NTHREADS]; @@ -164,11 +179,19 @@ { struct crash2_event **ev; +#ifdef USE_SET SET_FOREACH(ev, crash2_event_set) { +#else + for (ev = event_start; ev < event_stop; ev++) { +#endif /* Skip null event 0. */ if ((*ev)->ev_name == NULL) continue; +#ifdef USE_SET printf("%4td %s\n", ev - SET_BEGIN(crash2_event_set), +#else + printf("%4td %s\n", ev - event_start, +#endif (*ev)->ev_name); } } @@ -240,7 +263,11 @@ printf("crash2[%d]: event %d is not defined!\n", i, ev); continue; } +#ifdef USE_SET evp = SET_ITEM(crash2_event_set, ev); +#else + evp = event_start[ev]; +#endif if (evp->ev_handler[i]) evp->ev_handler[i](); mtx_lock(&event_mtx); @@ -317,6 +344,12 @@ switch (cmd) { case MOD_LOAD: +#ifndef USE_SET + error = linker_file_lookup_set(module_file(module), + "crash2_event_set", &event_start, &event_stop, &event_max); + if (error) + break; +#endif error = load(arg); break; case MOD_UNLOAD: From owner-p4-projects@FreeBSD.ORG Wed Mar 29 23:12:25 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 29DF316A423; Wed, 29 Mar 2006 23:12:25 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id CD39F16A400 for ; Wed, 29 Mar 2006 23:12:24 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id CA9A943D75 for ; Wed, 29 Mar 2006 23:12:20 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2TNCKgP080294 for ; Wed, 29 Mar 2006 23:12:20 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2TNCKak080291 for perforce@freebsd.org; Wed, 29 Mar 2006 23:12:20 GMT (envelope-from jhb@freebsd.org) Date: Wed, 29 Mar 2006 23:12:20 GMT Message-Id: <200603292312.k2TNCKak080291@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 94277 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Mar 2006 23:12:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=94277 Change 94277 by jhb@jhb_slimer on 2006/03/29 23:12:18 Slightly better than b00m. Affected files ... .. //depot/projects/smpng/sys/kern/subr_turnstile.c#24 edit Differences ... ==== //depot/projects/smpng/sys/kern/subr_turnstile.c#24 (text+ko) ==== @@ -199,7 +199,7 @@ #ifdef DDB db_trace_thread(td, -1); #endif - panic("b00m"); + panic("sleeping thread"); } /* From owner-p4-projects@FreeBSD.ORG Wed Mar 29 23:28:41 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5FBCB16A422; Wed, 29 Mar 2006 23:28:41 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3C10716A401 for ; Wed, 29 Mar 2006 23:28:41 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0A6E743D48 for ; Wed, 29 Mar 2006 23:28:41 +0000 (GMT) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2TNSeCr080995 for ; Wed, 29 Mar 2006 23:28:40 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2TNSeHd080992 for perforce@freebsd.org; Wed, 29 Mar 2006 23:28:40 GMT (envelope-from imp@freebsd.org) Date: Wed, 29 Mar 2006 23:28:40 GMT Message-Id: <200603292328.k2TNSeHd080992@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 94279 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Mar 2006 23:28:41 -0000 http://perforce.freebsd.org/chv.cgi?CH=94279 Change 94279 by imp@imp_Speedy on 2006/03/29 23:27:49 This really screws things up. Not sure *WHY* it would, but it does. Affected files ... .. //depot/projects/arm/src/sys/arm/at91/uart_dev_at91usart.c#20 edit Differences ... ==== //depot/projects/arm/src/sys/arm/at91/uart_dev_at91usart.c#20 (text+ko) ==== @@ -436,7 +436,7 @@ ipend |= SER_INT_TXIDLE; if (csr & USART_CSR_ENDTX && sc->sc_txbusy) ipend |= SER_INT_TXIDLE; - if (csr & (USART_CSR_RXRDY | USART_CSR_ENDRX | USART_CSR_TIMEOUT)) + if (csr & (USART_CSR_RXRDY /* | USART_CSR_ENDRX | USART_CSR_TIMEOUT */)) ipend |= SER_INT_RXREADY; if (csr & USART_CSR_RXBRK) { unsigned int cr = USART_CR_RSTSTA; From owner-p4-projects@FreeBSD.ORG Thu Mar 30 00:32:59 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0EA2816A449; Thu, 30 Mar 2006 00:32:59 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C600116A400 for ; Thu, 30 Mar 2006 00:32:58 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7FD3E43D45 for ; Thu, 30 Mar 2006 00:32:58 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2U0WwX0083167 for ; Thu, 30 Mar 2006 00:32:58 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2U0Wwix083164 for perforce@freebsd.org; Thu, 30 Mar 2006 00:32:58 GMT (envelope-from marcel@freebsd.org) Date: Thu, 30 Mar 2006 00:32:58 GMT Message-Id: <200603300032.k2U0Wwix083164@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Cc: Subject: PERFORCE change 94280 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Mar 2006 00:32:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=94280 Change 94280 by marcel@marcel_nfs on 2006/03/30 00:32:44 Remove inital uart(4) manpage. It's a burden. Affected files ... .. //depot/projects/uart/dev/uart/uart.4#4 delete Differences ... From owner-p4-projects@FreeBSD.ORG Thu Mar 30 02:29:18 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A55F216A423; Thu, 30 Mar 2006 02:29:18 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7FB6216A401 for ; Thu, 30 Mar 2006 02:29:18 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3868A43D4C for ; Thu, 30 Mar 2006 02:29:18 +0000 (GMT) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2U2TI0W095048 for ; Thu, 30 Mar 2006 02:29:18 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2U2THVb095045 for perforce@freebsd.org; Thu, 30 Mar 2006 02:29:17 GMT (envelope-from kmacy@freebsd.org) Date: Thu, 30 Mar 2006 02:29:17 GMT Message-Id: <200603300229.k2U2THVb095045@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 94281 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Mar 2006 02:29:18 -0000 http://perforce.freebsd.org/chv.cgi?CH=94281 Change 94281 by kmacy@kmacy_storage:sun4vtmp on 2006/03/30 02:28:18 remove magic traps Affected files ... .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/wbuf.S#11 edit Differences ... ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/wbuf.S#11 (text+ko) ==== @@ -29,7 +29,6 @@ END(fault_32bit_so1) ENTRY(fault_64bit_sn0) - MAGIC_TRAP_ON GET_PCB(%g4) stx %sp, [%g4 + PCB_RWSP] add %g4, PCB_RW, %g3 @@ -44,7 +43,6 @@ rdpr %tstate, %g5 and %g5, TSTATE_CWP_MASK, %g5 - MAGIC_TRAP_OFF ba,pt %xcc, tl0_utrap wrpr %g0, %g5, %cwp END(fault_64bit_sn0) From owner-p4-projects@FreeBSD.ORG Thu Mar 30 15:49:23 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A475D16A420; Thu, 30 Mar 2006 15:49:23 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4E3AD16A41F for ; Thu, 30 Mar 2006 15:49:23 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1D37043D49 for ; Thu, 30 Mar 2006 15:49:23 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2UFnMTb048198 for ; Thu, 30 Mar 2006 15:49:22 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2UFnMDO048195 for perforce@freebsd.org; Thu, 30 Mar 2006 15:49:22 GMT (envelope-from jhb@freebsd.org) Date: Thu, 30 Mar 2006 15:49:22 GMT Message-Id: <200603301549.k2UFnMDO048195@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 94303 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Mar 2006 15:49:23 -0000 http://perforce.freebsd.org/chv.cgi?CH=94303 Change 94303 by jhb@jhb_slimer on 2006/03/30 15:48:24 Add an sx_xlocked() macro. Grrr. Affected files ... .. //depot/projects/smpng/sys/sys/sx.h#17 edit Differences ... ==== //depot/projects/smpng/sys/sys/sx.h#17 (text+ko) ==== @@ -76,6 +76,7 @@ SYSUNINIT(name##_sx_sysuninit, SI_SUB_LOCK, SI_ORDER_MIDDLE, \ sx_destroy, (sxa)) +#define sx_xlocked(sx) ((sx)->sx_cnt < 0 && (sx)->sx_xholder == curthread) #define sx_slock(sx) _sx_slock((sx), LOCK_FILE, LOCK_LINE) #define sx_xlock(sx) _sx_xlock((sx), LOCK_FILE, LOCK_LINE) #define sx_try_slock(sx) _sx_try_slock((sx), LOCK_FILE, LOCK_LINE) @@ -86,7 +87,7 @@ #define sx_downgrade(sx) _sx_downgrade((sx), LOCK_FILE, LOCK_LINE) #define sx_unlock(sx) \ do { \ - if ((sx)->sx_cnt < 0) \ + if (sx_xlocked(sx)) \ sx_xunlock(sx); \ else \ sx_sunlock(sx); \ From owner-p4-projects@FreeBSD.ORG Thu Mar 30 15:49:24 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0E1EE16A4D5; Thu, 30 Mar 2006 15:49:24 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id DF7D116A4D2 for ; Thu, 30 Mar 2006 15:49:23 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 839A443D49 for ; Thu, 30 Mar 2006 15:49:23 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2UFnNNB048205 for ; Thu, 30 Mar 2006 15:49:23 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2UFnNpl048201 for perforce@freebsd.org; Thu, 30 Mar 2006 15:49:23 GMT (envelope-from jhb@freebsd.org) Date: Thu, 30 Mar 2006 15:49:23 GMT Message-Id: <200603301549.k2UFnNpl048201@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 94304 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Mar 2006 15:49:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=94304 Change 94304 by jhb@jhb_slimer on 2006/03/30 15:48:58 Use sx_xlocked() to handle recursion in the wrapper functions and make the internal functions private to kern_linker.c. Affected files ... .. //depot/projects/smpng/sys/kern/kern_linker.c#51 edit .. //depot/projects/smpng/sys/kern/link_elf.c#37 edit .. //depot/projects/smpng/sys/kern/link_elf_obj.c#12 edit .. //depot/projects/smpng/sys/sys/linker.h#19 edit Differences ... ==== //depot/projects/smpng/sys/kern/kern_linker.c#51 (text+ko) ==== @@ -63,6 +63,7 @@ #define KLD_LOCK() do { sx_xlock(&kld_sx); mtx_lock(&Giant); } while (0) #define KLD_UNLOCK() do { mtx_unlock(&Giant); sx_xunlock(&kld_sx); } while (0) +#define KLD_LOCKED() sx_xlocked(&kld_sx) #define KLD_LOCK_ASSERT() do { if (!cold) sx_assert(&kld_sx, SX_XLOCKED); } while (0) /* @@ -113,6 +114,9 @@ static int linker_file_add_dependency(linker_file_t file, linker_file_t dep); +static caddr_t linker_file_lookup_symbol_internal(linker_file_t file, + const char* name, int deps); +static int linker_file_unload_internal(linker_file_t _file, int flags); static int linker_load_module_internal(const char *kldname, const char *modname, struct linker_file *parent, struct mod_depend *verinfo, struct linker_file **lfpp); @@ -410,19 +414,23 @@ linker_file_t *result) { modlist_t mod; - int error; + int error, locked; - KLD_LOCK(); + locked = KLD_LOCKED(); + if (!locked) + KLD_LOCK(); if ((mod = modlist_lookup2(modname, verinfo)) != NULL) { *result = mod->container; (*result)->refs++; - KLD_UNLOCK(); + if (!locked) + KLD_UNLOCK(); return (0); } error = linker_load_module_internal(NULL, modname, NULL, verinfo, result); - KLD_UNLOCK(); + if (!locked) + KLD_UNLOCK(); return (error); } @@ -488,16 +496,18 @@ int linker_file_unload(linker_file_t file, int flags) { - int error; + int error, locked; - KLD_LOCK(); + locked = KLD_LOCKED(); + if (!locked) + KLD_LOCK(); error = linker_file_unload_internal(file, flags); - KLD_UNLOCK(); + if (!locked) + KLD_UNLOCK(); return (error); } -/* Not static as it is shared with the linker backends. */ -int +static int linker_file_unload_internal(linker_file_t file, int flags) { module_t mod, next; @@ -512,7 +522,7 @@ error = mac_check_kld_unload(curthread->td_ucred); if (error) return (error); -#endif +#endif KLD_LOCK_ASSERT(); KLD_DPF(FILE, ("linker_file_unload: lf->refs=%d\n", file->refs)); @@ -624,9 +634,11 @@ linker_file_lookup_set(linker_file_t file, const char *name, void *firstp, void *lastp, int *countp) { - int error; + int error, locked; - KLD_LOCK(); + locked = KLD_LOCKED(); + if (!locked) + KLD_LOCK(); error = linker_lookup_set(file, name, firstp, lastp, countp); KLD_UNLOCK(); return (error); @@ -636,14 +648,18 @@ linker_file_lookup_symbol(linker_file_t file, const char *name, int deps) { caddr_t sym; + int locked; - KLD_LOCK(); + locked = KLD_LOCKED(); + if (!locked) + KLD_LOCK(); sym = linker_file_lookup_symbol_internal(file, name, deps); - KLD_UNLOCK(); + if (!locked) + KLD_UNLOCK(); return (sym); } -caddr_t +static caddr_t linker_file_lookup_symbol_internal(linker_file_t file, const char *name, int deps) { @@ -1766,12 +1782,14 @@ struct linker_file *parent, struct mod_depend *verinfo, struct linker_file **lfpp) { - int error; + int error, locked; - KLD_LOCK(); + if (!locked) + KLD_LOCK(); error = linker_load_module_internal(kldname, modname, parent, verinfo, lfpp); - KLD_UNLOCK(); + if (!locked) + KLD_UNLOCK(); return (error); } ==== //depot/projects/smpng/sys/kern/link_elf.c#37 (text+ko) ==== @@ -495,7 +495,7 @@ error = parse_dynamic(ef); if (error) { - linker_file_unload_internal(lf, LINKER_UNLOAD_FORCE); + linker_file_unload(lf, LINKER_UNLOAD_FORCE); return error; } link_elf_reloc_local(lf); @@ -855,7 +855,7 @@ out: if (error && lf) - linker_file_unload_internal(lf, LINKER_UNLOAD_FORCE); + linker_file_unload(lf, LINKER_UNLOAD_FORCE); if (shdr) free(shdr, M_LINKER); if (firstpage) @@ -1301,8 +1301,7 @@ if (*symbol == 0) return (0); - return ((Elf_Addr)linker_file_lookup_symbol_internal(lf, symbol, - deps)); + return ((Elf_Addr)linker_file_lookup_symbol(lf, symbol, deps)); } static void ==== //depot/projects/smpng/sys/kern/link_elf_obj.c#12 (text+ko) ==== @@ -349,7 +349,7 @@ out: /* preload not done this way */ - linker_file_unload_internal(lf, LINKER_UNLOAD_FORCE); + linker_file_unload(lf, LINKER_UNLOAD_FORCE); return (error); } @@ -784,7 +784,7 @@ out: if (error && lf) - linker_file_unload_internal(lf, LINKER_UNLOAD_FORCE); + linker_file_unload(lf, LINKER_UNLOAD_FORCE); if (hdr) free(hdr, M_LINKER); VOP_UNLOCK(nd.ni_vp, 0, td); @@ -1101,8 +1101,7 @@ /* Force a lookup failure if the symbol name is bogus. */ if (*symbol == 0) return (0); - ret = ((Elf_Addr)linker_file_lookup_symbol_internal(lf, symbol, - deps)); + ret = ((Elf_Addr)linker_file_lookup_symbol(lf, symbol, deps)); return ret; case STB_WEAK: ==== //depot/projects/smpng/sys/sys/linker.h#19 (text+ko) ==== @@ -146,9 +146,6 @@ * Functions soley for use by the linker class handlers. */ int linker_add_class(linker_class_t _cls); -caddr_t linker_file_lookup_symbol_internal(linker_file_t _file, - const char* _name, int _deps); -int linker_file_unload_internal(linker_file_t _file, int flags); int linker_load_dependencies(linker_file_t _lf); linker_file_t linker_make_file(const char* _filename, linker_class_t _cls); From owner-p4-projects@FreeBSD.ORG Thu Mar 30 19:26:56 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A419716A424; Thu, 30 Mar 2006 19:26:56 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8279E16A41F for ; Thu, 30 Mar 2006 19:26:56 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 921B243D5D for ; Thu, 30 Mar 2006 19:26:51 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2UJQp5J068670 for ; Thu, 30 Mar 2006 19:26:51 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2UJQpTt068667 for perforce@freebsd.org; Thu, 30 Mar 2006 19:26:51 GMT (envelope-from jhb@freebsd.org) Date: Thu, 30 Mar 2006 19:26:51 GMT Message-Id: <200603301926.k2UJQpTt068667@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 94318 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Mar 2006 19:26:56 -0000 http://perforce.freebsd.org/chv.cgi?CH=94318 Change 94318 by jhb@jhb_slimer on 2006/03/30 19:25:55 If the FPU is present in the CPUID, assume the int 16 interface works. Affected files ... .. //depot/projects/smpng/sys/i386/isa/npx.c#50 edit Differences ... ==== //depot/projects/smpng/sys/i386/isa/npx.c#50 (text+ko) ==== @@ -250,6 +250,10 @@ u_short control; u_short status; + if (cpu_feature & CPUID_FPU) { + npx_ex16 = 1; + return (0); + } save_idt_npxtrap = idt[IDT_MF]; setidt(IDT_MF, probetrap, SDT_SYS386TGT, SEL_KPL, GSEL(GCODE_SEL, SEL_KPL)); From owner-p4-projects@FreeBSD.ORG Thu Mar 30 19:49:25 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 774E016A401; Thu, 30 Mar 2006 19:49:25 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3AA8F16A422 for ; Thu, 30 Mar 2006 19:49:25 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id AF7FF43D62 for ; Thu, 30 Mar 2006 19:49:19 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2UJnJL2069607 for ; Thu, 30 Mar 2006 19:49:19 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2UJnJTW069604 for perforce@freebsd.org; Thu, 30 Mar 2006 19:49:19 GMT (envelope-from jhb@freebsd.org) Date: Thu, 30 Mar 2006 19:49:19 GMT Message-Id: <200603301949.k2UJnJTW069604@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 94320 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Mar 2006 19:49:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=94320 Change 94320 by jhb@jhb_slimer on 2006/03/30 19:49:03 More thinking. Affected files ... .. //depot/projects/smpng/sys/i386/isa/npx.c#51 edit Differences ... ==== //depot/projects/smpng/sys/i386/isa/npx.c#51 (text+ko) ==== @@ -250,7 +250,9 @@ u_short control; u_short status; + KASSERT(rcr0() & (CRO_MP | CRO_NE) == (CR0_MP | CR0_NE), ("cr0 busted")); if (cpu_feature & CPUID_FPU) { + hw_float = npx_exists = 1; npx_ex16 = 1; return (0); } From owner-p4-projects@FreeBSD.ORG Thu Mar 30 20:17:58 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8F9A916A422; Thu, 30 Mar 2006 20:17:58 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 52D5916A420 for ; Thu, 30 Mar 2006 20:17:58 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8395443D70 for ; Thu, 30 Mar 2006 20:17:54 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2UKHslH072088 for ; Thu, 30 Mar 2006 20:17:54 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2UKHrdN072085 for perforce@freebsd.org; Thu, 30 Mar 2006 20:17:53 GMT (envelope-from jhb@freebsd.org) Date: Thu, 30 Mar 2006 20:17:53 GMT Message-Id: <200603302017.k2UKHrdN072085@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 94321 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Mar 2006 20:17:58 -0000 http://perforce.freebsd.org/chv.cgi?CH=94321 Change 94321 by jhb@jhb_blue on 2006/03/30 20:16:58 Compile. Affected files ... .. //depot/projects/smpng/sys/i386/isa/npx.c#52 edit .. //depot/projects/smpng/sys/kern/kern_linker.c#52 edit Differences ... ==== //depot/projects/smpng/sys/i386/isa/npx.c#52 (text+ko) ==== @@ -250,7 +250,8 @@ u_short control; u_short status; - KASSERT(rcr0() & (CRO_MP | CRO_NE) == (CR0_MP | CR0_NE), ("cr0 busted")); + KASSERT((rcr0() & (CR0_MP | CR0_NE)) == (CR0_MP | CR0_NE), + ("cr0 busted")); if (cpu_feature & CPUID_FPU) { hw_float = npx_exists = 1; npx_ex16 = 1; ==== //depot/projects/smpng/sys/kern/kern_linker.c#52 (text+ko) ==== @@ -1784,6 +1784,7 @@ { int error, locked; + locked = KLD_LOCKED(); if (!locked) KLD_LOCK(); error = linker_load_module_internal(kldname, modname, parent, From owner-p4-projects@FreeBSD.ORG Thu Mar 30 20:39:21 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 83B5316A420; Thu, 30 Mar 2006 20:39:21 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5FB4616A401 for ; Thu, 30 Mar 2006 20:39:21 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0ED7143D46 for ; Thu, 30 Mar 2006 20:39:21 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2UKdLar076277 for ; Thu, 30 Mar 2006 20:39:21 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2UKdKu6076274 for perforce@freebsd.org; Thu, 30 Mar 2006 20:39:20 GMT (envelope-from marcel@freebsd.org) Date: Thu, 30 Mar 2006 20:39:20 GMT Message-Id: <200603302039.k2UKdKu6076274@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Cc: Subject: PERFORCE change 94323 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Mar 2006 20:39:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=94323 Change 94323 by marcel@marcel_nfs on 2006/03/30 20:38:33 IFC @94319 Affected files ... .. //depot/projects/uart/compat/freebsd32/freebsd32_misc.c#14 integrate .. //depot/projects/uart/compat/freebsd32/freebsd32_proto.h#14 integrate .. //depot/projects/uart/compat/freebsd32/freebsd32_syscall.h#14 integrate .. //depot/projects/uart/compat/freebsd32/freebsd32_syscalls.c#14 integrate .. //depot/projects/uart/compat/freebsd32/freebsd32_sysent.c#14 integrate .. //depot/projects/uart/compat/freebsd32/syscalls.master#13 integrate .. //depot/projects/uart/conf/NOTES#32 integrate .. //depot/projects/uart/conf/files#54 integrate .. //depot/projects/uart/dev/acpica/Osd/OsdSchedule.c#10 integrate .. //depot/projects/uart/dev/ata/atapi-fd.c#11 integrate .. //depot/projects/uart/dev/pccbb/pccbb.c#16 integrate .. //depot/projects/uart/dev/pccbb/pccbbreg.h#7 integrate .. //depot/projects/uart/dev/puc/puc_ebus.c#12 integrate .. //depot/projects/uart/dev/puc/puc_sbus.c#13 integrate .. //depot/projects/uart/dev/scc/scc_bfe.h#14 integrate .. //depot/projects/uart/dev/scc/scc_bfe_ebus.c#5 integrate .. //depot/projects/uart/dev/scc/scc_bfe_sbus.c#4 integrate .. //depot/projects/uart/dev/scc/scc_bus.h#8 integrate .. //depot/projects/uart/dev/scc/scc_core.c#18 integrate .. //depot/projects/uart/dev/scc/scc_dev_sab82532.c#7 integrate .. //depot/projects/uart/dev/scc/scc_dev_z8530.c#9 integrate .. //depot/projects/uart/dev/scc/scc_if.m#7 integrate .. //depot/projects/uart/dev/sound/pcm/dsp.c#13 integrate .. //depot/projects/uart/dev/uart/uart_bus.h#44 integrate .. //depot/projects/uart/dev/uart/uart_bus_scc.c#8 integrate .. //depot/projects/uart/dev/uart/uart_core.c#52 integrate .. //depot/projects/uart/dev/uart/uart_cpu.h#18 integrate .. //depot/projects/uart/dev/uart/uart_dev_ns8250.c#38 integrate .. //depot/projects/uart/dev/uart/uart_dev_sab82532.c#40 integrate .. //depot/projects/uart/dev/uart/uart_dev_z8530.c#28 integrate .. //depot/projects/uart/dev/uart/uart_tty.c#28 integrate .. //depot/projects/uart/geom/eli/g_eli.h#3 integrate .. //depot/projects/uart/geom/mirror/g_mirror.c#13 integrate .. //depot/projects/uart/geom/vinum/geom_vinum.c#7 integrate .. //depot/projects/uart/geom/vinum/geom_vinum.h#6 integrate .. //depot/projects/uart/geom/vinum/geom_vinum_rm.c#6 integrate .. //depot/projects/uart/geom/vinum/geom_vinum_state.c#4 integrate .. //depot/projects/uart/geom/vinum/geom_vinum_subr.c#5 integrate .. //depot/projects/uart/kern/md5c.c#6 integrate .. //depot/projects/uart/kern/serdev_if.m#4 integrate .. //depot/projects/uart/kern/subr_turnstile.c#6 integrate .. //depot/projects/uart/kern/sysv_shm.c#11 integrate .. //depot/projects/uart/modules/Makefile#30 integrate .. //depot/projects/uart/modules/scc/Makefile#2 integrate .. //depot/projects/uart/modules/uart/Makefile#15 integrate .. //depot/projects/uart/net/if_ppp.c#8 integrate .. //depot/projects/uart/netipsec/xform.h#3 integrate .. //depot/projects/uart/netipsec/xform_ipip.c#5 integrate .. //depot/projects/uart/sparc64/conf/GENERIC#17 integrate .. //depot/projects/uart/sys/serial.h#6 integrate .. //depot/projects/uart/sys/sx.h#5 integrate Differences ... ==== //depot/projects/uart/compat/freebsd32/freebsd32_misc.c#14 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.53 2006/03/08 20:21:53 ups Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.54 2006/03/30 07:42:32 ps Exp $"); #include "opt_compat.h" @@ -69,6 +69,8 @@ #include #include #include +#include +#include #include #include @@ -1365,10 +1367,170 @@ int freebsd32_shmsys(struct thread *td, struct freebsd32_shmsys_args *uap) { - /* - * Vector through to shmsys if it is loaded. - */ - return sysent[SYS_shmsys].sy_call(td, uap); + + switch (uap->which) { + case 0: { /* shmat */ + struct shmat_args ap; + + ap.shmid = uap->a2; + ap.shmaddr = PTRIN(uap->a3); + ap.shmflg = uap->a4; + return (sysent[SYS_shmat].sy_call(td, &ap)); + } + case 2: { /* shmdt */ + struct shmdt_args ap; + + ap.shmaddr = PTRIN(uap->a2); + return (sysent[SYS_shmdt].sy_call(td, &ap)); + } + case 3: { /* shmget */ + struct shmget_args ap; + + ap.key = uap->a2; + ap.size = uap->a3; + ap.shmflg = uap->a4; + return (sysent[SYS_shmget].sy_call(td, &ap)); + } + case 4: { /* shmctl */ + struct freebsd32_shmctl_args ap; + + ap.shmid = uap->a2; + ap.cmd = uap->a3; + ap.buf = PTRIN(uap->a4); + return (freebsd32_shmctl(td, &ap)); + } + case 1: /* oshmctl */ + default: + return (EINVAL); + } +} + +struct ipc_perm32 { + uint16_t cuid; + uint16_t cgid; + uint16_t uid; + uint16_t gid; + uint16_t mode; + uint16_t seq; + uint32_t key; +}; +struct shmid_ds32 { + struct ipc_perm32 shm_perm; + int32_t shm_segsz; + int32_t shm_lpid; + int32_t shm_cpid; + int16_t shm_nattch; + int32_t shm_atime; + int32_t shm_dtime; + int32_t shm_ctime; + uint32_t shm_internal; +}; +struct shm_info32 { + int32_t used_ids; + uint32_t shm_tot; + uint32_t shm_rss; + uint32_t shm_swp; + uint32_t swap_attempts; + uint32_t swap_successes; +}; +struct shminfo32 { + uint32_t shmmax; + uint32_t shmmin; + uint32_t shmmni; + uint32_t shmseg; + uint32_t shmall; +}; + +int +freebsd32_shmctl(struct thread *td, struct freebsd32_shmctl_args *uap) +{ + int error = 0; + union { + struct shmid_ds shmid_ds; + struct shm_info shm_info; + struct shminfo shminfo; + } u; + union { + struct shmid_ds32 shmid_ds32; + struct shm_info32 shm_info32; + struct shminfo32 shminfo32; + } u32; + size_t sz; + + if (uap->cmd == IPC_SET) { + if ((error = copyin(uap->buf, &u32.shmid_ds32, + sizeof(u32.shmid_ds32)))) + goto done; + CP(u32.shmid_ds32, u.shmid_ds, shm_perm.cuid); + CP(u32.shmid_ds32, u.shmid_ds, shm_perm.cgid); + CP(u32.shmid_ds32, u.shmid_ds, shm_perm.uid); + CP(u32.shmid_ds32, u.shmid_ds, shm_perm.gid); + CP(u32.shmid_ds32, u.shmid_ds, shm_perm.mode); + CP(u32.shmid_ds32, u.shmid_ds, shm_perm.seq); + CP(u32.shmid_ds32, u.shmid_ds, shm_perm.key); + CP(u32.shmid_ds32, u.shmid_ds, shm_segsz); + CP(u32.shmid_ds32, u.shmid_ds, shm_lpid); + CP(u32.shmid_ds32, u.shmid_ds, shm_cpid); + CP(u32.shmid_ds32, u.shmid_ds, shm_nattch); + CP(u32.shmid_ds32, u.shmid_ds, shm_atime); + CP(u32.shmid_ds32, u.shmid_ds, shm_dtime); + CP(u32.shmid_ds32, u.shmid_ds, shm_ctime); + PTRIN_CP(u32.shmid_ds32, u.shmid_ds, shm_internal); + } + + error = kern_shmctl(td, uap->shmid, uap->cmd, (void *)&u, &sz); + if (error) + goto done; + + /* Cases in which we need to copyout */ + switch (uap->cmd) { + case IPC_INFO: + CP(u.shminfo, u32.shminfo32, shmmax); + CP(u.shminfo, u32.shminfo32, shmmin); + CP(u.shminfo, u32.shminfo32, shmmni); + CP(u.shminfo, u32.shminfo32, shmseg); + CP(u.shminfo, u32.shminfo32, shmall); + error = copyout(&u32.shminfo32, uap->buf, + sizeof(u32.shminfo32)); + break; + case SHM_INFO: + CP(u.shm_info, u32.shm_info32, used_ids); + CP(u.shm_info, u32.shm_info32, shm_rss); + CP(u.shm_info, u32.shm_info32, shm_tot); + CP(u.shm_info, u32.shm_info32, shm_swp); + CP(u.shm_info, u32.shm_info32, swap_attempts); + CP(u.shm_info, u32.shm_info32, swap_successes); + error = copyout(&u32.shm_info32, uap->buf, + sizeof(u32.shm_info32)); + break; + case SHM_STAT: + case IPC_STAT: + CP(u.shmid_ds, u32.shmid_ds32, shm_perm.cuid); + CP(u.shmid_ds, u32.shmid_ds32, shm_perm.cgid); + CP(u.shmid_ds, u32.shmid_ds32, shm_perm.uid); + CP(u.shmid_ds, u32.shmid_ds32, shm_perm.gid); + CP(u.shmid_ds, u32.shmid_ds32, shm_perm.mode); + CP(u.shmid_ds, u32.shmid_ds32, shm_perm.seq); + CP(u.shmid_ds, u32.shmid_ds32, shm_perm.key); + CP(u.shmid_ds, u32.shmid_ds32, shm_segsz); + CP(u.shmid_ds, u32.shmid_ds32, shm_lpid); + CP(u.shmid_ds, u32.shmid_ds32, shm_cpid); + CP(u.shmid_ds, u32.shmid_ds32, shm_nattch); + CP(u.shmid_ds, u32.shmid_ds32, shm_atime); + CP(u.shmid_ds, u32.shmid_ds32, shm_dtime); + CP(u.shmid_ds, u32.shmid_ds32, shm_ctime); + PTROUT_CP(u.shmid_ds, u32.shmid_ds32, shm_internal); + error = copyout(&u32.shmid_ds32, uap->buf, + sizeof(u32.shmid_ds32)); + break; + } + +done: + if (error) { + /* Invalidate the return value */ + td->td_retval[0] = -1; + } + return (error); } int ==== //depot/projects/uart/compat/freebsd32/freebsd32_proto.h#14 (text+ko) ==== @@ -2,7 +2,7 @@ * System call prototypes. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.53 2006/02/28 19:39:52 ps Exp $ + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.54 2006/03/30 07:43:01 ps Exp $ * created from FreeBSD */ @@ -130,10 +130,10 @@ char a6_l_[PADL_(int)]; int a6; char a6_r_[PADR_(int)]; }; struct freebsd32_shmsys_args { - char which_l_[PADL_(int)]; int which; char which_r_[PADR_(int)]; - char a2_l_[PADL_(int)]; int a2; char a2_r_[PADR_(int)]; - char a3_l_[PADL_(int)]; int a3; char a3_r_[PADR_(int)]; - char a4_l_[PADL_(int)]; int a4; char a4_r_[PADR_(int)]; + char which_l_[PADL_(uint32_t)]; uint32_t which; char which_r_[PADR_(uint32_t)]; + char a2_l_[PADL_(uint32_t)]; uint32_t a2; char a2_r_[PADR_(uint32_t)]; + char a3_l_[PADL_(uint32_t)]; uint32_t a3; char a3_r_[PADR_(uint32_t)]; + char a4_l_[PADL_(uint32_t)]; uint32_t a4; char a4_r_[PADR_(uint32_t)]; }; struct freebsd32_pread_args { char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; @@ -204,6 +204,11 @@ char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; char tptr_l_[PADL_(struct timeval32 *)]; struct timeval32 * tptr; char tptr_r_[PADR_(struct timeval32 *)]; }; +struct freebsd32_shmctl_args { + char shmid_l_[PADL_(int)]; int shmid; char shmid_r_[PADR_(int)]; + char cmd_l_[PADL_(int)]; int cmd; char cmd_r_[PADR_(int)]; + char buf_l_[PADL_(struct shmid_ds *)]; struct shmid_ds * buf; char buf_r_[PADR_(struct shmid_ds *)]; +}; struct freebsd32_clock_gettime_args { char clock_id_l_[PADL_(clockid_t)]; clockid_t clock_id; char clock_id_r_[PADR_(clockid_t)]; char tp_l_[PADL_(struct timespec32 *)]; struct timespec32 * tp; char tp_r_[PADR_(struct timespec32 *)]; @@ -306,6 +311,7 @@ int freebsd32_ftruncate(struct thread *, struct freebsd32_ftruncate_args *); int freebsd32_sysctl(struct thread *, struct freebsd32_sysctl_args *); int freebsd32_futimes(struct thread *, struct freebsd32_futimes_args *); +int freebsd32_shmctl(struct thread *, struct freebsd32_shmctl_args *); int freebsd32_clock_gettime(struct thread *, struct freebsd32_clock_gettime_args *); int freebsd32_clock_settime(struct thread *, struct freebsd32_clock_settime_args *); int freebsd32_clock_getres(struct thread *, struct freebsd32_clock_getres_args *); ==== //depot/projects/uart/compat/freebsd32/freebsd32_syscall.h#14 (text+ko) ==== @@ -2,7 +2,7 @@ * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscall.h,v 1.51 2006/02/28 19:39:52 ps Exp $ + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscall.h,v 1.52 2006/03/30 07:43:01 ps Exp $ * created from FreeBSD */ @@ -198,7 +198,7 @@ #define FREEBSD32_SYS_msgsnd 226 #define FREEBSD32_SYS_msgrcv 227 #define FREEBSD32_SYS_shmat 228 -#define FREEBSD32_SYS_shmctl 229 +#define FREEBSD32_SYS_freebsd32_shmctl 229 #define FREEBSD32_SYS_shmdt 230 #define FREEBSD32_SYS_shmget 231 #define FREEBSD32_SYS_freebsd32_clock_gettime 232 ==== //depot/projects/uart/compat/freebsd32/freebsd32_syscalls.c#14 (text+ko) ==== @@ -2,7 +2,7 @@ * System call names. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscalls.c,v 1.42 2006/02/28 19:39:52 ps Exp $ + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscalls.c,v 1.43 2006/03/30 07:43:01 ps Exp $ * created from FreeBSD */ @@ -236,7 +236,7 @@ "msgsnd", /* 226 = msgsnd */ "msgrcv", /* 227 = msgrcv */ "shmat", /* 228 = shmat */ - "shmctl", /* 229 = shmctl */ + "freebsd32_shmctl", /* 229 = freebsd32_shmctl */ "shmdt", /* 230 = shmdt */ "shmget", /* 231 = shmget */ "freebsd32_clock_gettime", /* 232 = freebsd32_clock_gettime */ ==== //depot/projects/uart/compat/freebsd32/freebsd32_sysent.c#14 (text+ko) ==== @@ -2,7 +2,7 @@ * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_sysent.c,v 1.52 2006/02/28 19:39:52 ps Exp $ + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_sysent.c,v 1.53 2006/03/30 07:43:01 ps Exp $ * created from FreeBSD */ @@ -261,7 +261,7 @@ { SYF_MPSAFE | AS(msgsnd_args), (sy_call_t *)msgsnd, AUE_MSGSND }, /* 226 = msgsnd */ { SYF_MPSAFE | AS(msgrcv_args), (sy_call_t *)msgrcv, AUE_MSGRCV }, /* 227 = msgrcv */ { SYF_MPSAFE | AS(shmat_args), (sy_call_t *)shmat, AUE_SHMAT }, /* 228 = shmat */ - { SYF_MPSAFE | AS(shmctl_args), (sy_call_t *)shmctl, AUE_SHMCTL }, /* 229 = shmctl */ + { SYF_MPSAFE | AS(freebsd32_shmctl_args), (sy_call_t *)freebsd32_shmctl, AUE_SHMCTL }, /* 229 = freebsd32_shmctl */ { SYF_MPSAFE | AS(shmdt_args), (sy_call_t *)shmdt, AUE_SHMDT }, /* 230 = shmdt */ { SYF_MPSAFE | AS(shmget_args), (sy_call_t *)shmget, AUE_SHMGET }, /* 231 = shmget */ { SYF_MPSAFE | AS(freebsd32_clock_gettime_args), (sy_call_t *)freebsd32_clock_gettime, AUE_NULL }, /* 232 = freebsd32_clock_gettime */ ==== //depot/projects/uart/compat/freebsd32/syscalls.master#13 (text+ko) ==== @@ -1,4 +1,4 @@ - $FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.64 2006/02/28 19:39:17 ps Exp $ + $FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.65 2006/03/30 07:42:32 ps Exp $ ; from: @(#)syscalls.master 8.2 (Berkeley) 1/13/94 ; from: src/sys/kern/syscalls.master 1.107 ; @@ -305,8 +305,8 @@ int a3, int a4, int a5); } 170 AUE_MSGSYS MSTD { int freebsd32_msgsys(int which, int a2, \ int a3, int a4, int a5, int a6); } -171 AUE_SHMSYS MSTD { int freebsd32_shmsys(int which, int a2, \ - int a3, int a4); } +171 AUE_SHMSYS MSTD { int freebsd32_shmsys(uint32_t which, uint32_t a2, \ + uint32_t a3, uint32_t a4); } 172 AUE_NULL UNIMPL nosys 173 AUE_PREAD MSTD { ssize_t freebsd32_pread(int fd, void *buf, \ size_t nbyte, int pad, \ @@ -415,7 +415,7 @@ size_t msgsz, long msgtyp, int msgflg); } 228 AUE_SHMAT MNOPROTO { int shmat(int shmid, void *shmaddr, \ int shmflg); } -229 AUE_SHMCTL MNOPROTO { int shmctl(int shmid, int cmd, \ +229 AUE_SHMCTL MSTD { int freebsd32_shmctl(int shmid, int cmd, \ struct shmid_ds *buf); } 230 AUE_SHMDT MNOPROTO { int shmdt(void *shmaddr); } 231 AUE_SHMGET MNOPROTO { int shmget(key_t key, int size, \ ==== //depot/projects/uart/conf/NOTES#32 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1355 2006/03/29 09:57:22 scottl Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1356 2006/03/30 18:39:24 marcel Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -1678,6 +1678,11 @@ # Sun servers by the Remote Console. options ALT_BREAK_TO_DEBUGGER +# Serial Communications Controller +# Supports the Siemens SAB 82532 and Zilog Z8530 multi-channel +# communications controllers. +device scc + # PCI Universal Communications driver # Supports various single and multi port PCI serial cards. Maybe later # also the parallel ports on combination serial/parallel cards. New cards ==== //depot/projects/uart/conf/files#54 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1105 2006/03/29 09:57:22 scottl Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1106 2006/03/30 18:39:24 marcel Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and ==== //depot/projects/uart/dev/acpica/Osd/OsdSchedule.c#10 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/Osd/OsdSchedule.c,v 1.35 2006/01/14 01:55:23 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/Osd/OsdSchedule.c,v 1.36 2006/03/30 19:22:45 scottl Exp $"); #include "opt_acpi.h" #include @@ -66,7 +66,8 @@ }; TASKQUEUE_DEFINE(acpi, taskqueue_thread_enqueue, &taskqueue_acpi, - taskqueue_start_threads(&taskqueue_acpi, 3, PWAIT, "acpi_task")); + taskqueue_start_threads(&taskqueue_acpi, acpi_max_threads, PWAIT, + "acpi_task")); /* * Bounce through this wrapper function since ACPI-CA doesn't understand ==== //depot/projects/uart/dev/ata/atapi-fd.c#11 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/atapi-fd.c,v 1.108 2006/03/18 13:14:38 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/atapi-fd.c,v 1.109 2006/03/30 05:29:57 marcel Exp $"); #include #include @@ -398,7 +398,7 @@ struct ata_channel *ch = device_get_softc(device_get_parent(dev)); struct ata_device *atadev = device_get_softc(dev); struct afd_softc *fdp = device_get_ivars(dev); - char sizestring[16] = ""; + char sizestring[16]; if (fdp->mediasize > 1048576 * 5) sprintf(sizestring, "%juMB", fdp->mediasize / 1048576); ==== //depot/projects/uart/dev/pccbb/pccbb.c#16 (text+ko) ==== @@ -75,7 +75,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/pccbb/pccbb.c,v 1.140 2006/03/24 07:52:00 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/pccbb/pccbb.c,v 1.141 2006/03/30 04:25:45 imp Exp $"); #include #include @@ -650,8 +650,19 @@ struct cbb_softc *sc = arg; uint32_t sockevent; + /* + * Read the socket event. Sometimes, the theory goes, the PCI + * bus is so loaded that it cannot satisfy the read request, so + * we get garbage back from the following read. We have to filter + * out the garbage so that we don't spontaneously reset the card + * under high load. PCI isn't supposed to act like this. No doubt + * this is a bug in the PCI bridge chipset (or cbb brige) that's being + * used in certain amd64 laptops today. Work around the issue by + * assuming that any bits we don't know about being set means that + * we got garbage. + */ sockevent = cbb_get(sc, CBB_SOCKET_EVENT); - if (sockevent != 0) { + if (sockevent != 0 && (sockevent & CBB_SOCKET_EVENT_VALID_MASK) == 0) { /* ack the interrupt */ cbb_set(sc, CBB_SOCKET_EVENT, sockevent); @@ -697,7 +708,7 @@ * indication above. * * We have to call this unconditionally because some bridges deliver - * the even independent of the CBB_SOCKET_EVENT_CD above. + * the event independent of the CBB_SOCKET_EVENT_CD above. */ exca_getb(&sc->exca[0], EXCA_CSC); } ==== //depot/projects/uart/dev/pccbb/pccbbreg.h#7 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/pccbb/pccbbreg.h,v 1.18 2005/12/27 18:55:21 imp Exp $ + * $FreeBSD: src/sys/dev/pccbb/pccbbreg.h,v 1.19 2006/03/30 04:12:28 imp Exp $ */ /* @@ -177,6 +177,7 @@ #define CBB_SOCKET_EVENT_CD2 0x04 /* Card Detect 2 */ #define CBB_SOCKET_EVENT_CD 0x06 /* Card Detect all */ #define CBB_SOCKET_EVENT_POWER 0x08 /* Power Cycle */ +#define CBB_SOCKET_EVENT_VALID_MASK 0x0f /* All socket events */ #define CBB_SOCKET_MASK_CSTS 0x01 /* Card Status Change */ #define CBB_SOCKET_MASK_CD 0x06 /* Card Detect */ @@ -220,26 +221,26 @@ #define CBB_SOCKET_CTRL_STOPCLK 0x80 -#define CBB_FORCE_CV_TEST (1UL << 14) -#define CBB_FORCE_3VCARD (1UL << 11) -#define CBB_FORCE_5VCARD (1UL << 10) -#define CBB_FORCE_BAD_VCC_REQ (1UL << 9) -#define CBB_FORCE_DATA_LOST (1UL << 8) -#define CBB_FORCE_NOT_A_CARD (1UL << 7) -#define CBB_FORCE_CB_CARD (1UL << 5) -#define CBB_FORCE_R2_CARD (1UL << 4) -#define CBB_FORCE_POWER_CYCLE (1UL << 3) -#define CBB_FORCE_CD2_CHANGE (1UL << 2) -#define CBB_FORCE_CD1_CHANGE (1UL << 1) -#define CBB_FORCE_CSTCHG (1UL << 0) +#define CBB_FORCE_CV_TEST (1UL << 14) +#define CBB_FORCE_3VCARD (1UL << 11) +#define CBB_FORCE_5VCARD (1UL << 10) +#define CBB_FORCE_BAD_VCC_REQ (1UL << 9) +#define CBB_FORCE_DATA_LOST (1UL << 8) +#define CBB_FORCE_NOT_A_CARD (1UL << 7) +#define CBB_FORCE_CB_CARD (1UL << 5) +#define CBB_FORCE_R2_CARD (1UL << 4) +#define CBB_FORCE_POWER_CYCLE (1UL << 3) +#define CBB_FORCE_CD2_CHANGE (1UL << 2) +#define CBB_FORCE_CD1_CHANGE (1UL << 1) +#define CBB_FORCE_CSTCHG (1UL << 0) #include -#define CBB_SOCKET_EVENT 0x00 -#define CBB_SOCKET_MASK 0x04 -#define CBB_SOCKET_STATE 0x08 -#define CBB_SOCKET_FORCE 0x0c -#define CBB_SOCKET_CONTROL 0x10 -#define CBB_SOCKET_POWER 0x14 +#define CBB_SOCKET_EVENT 0x00 +#define CBB_SOCKET_MASK 0x04 +#define CBB_SOCKET_STATE 0x08 +#define CBB_SOCKET_FORCE 0x0c +#define CBB_SOCKET_CONTROL 0x10 +#define CBB_SOCKET_POWER 0x14 -#define CBB_EXCA_OFFSET 0x800 /* offset for exca regs */ +#define CBB_EXCA_OFFSET 0x800 /* offset for exca regs */ ==== //depot/projects/uart/dev/puc/puc_ebus.c#12 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/puc/puc_ebus.c,v 1.7 2006/02/24 02:06:57 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/puc/puc_ebus.c,v 1.8 2006/03/30 18:43:03 marcel Exp $"); #include "opt_puc.h" @@ -65,6 +65,8 @@ struct puc_device_description dd; int i; + printf("NOTICE: Please configure device scc(1) into the kernel.\n"); + bzero(&dd, sizeof(dd)); dd.name = device_get_desc(dev); for (i = 0; i < 2; i++) { ==== //depot/projects/uart/dev/puc/puc_sbus.c#13 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/puc/puc_sbus.c,v 1.9 2006/02/24 02:06:57 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/puc/puc_sbus.c,v 1.10 2006/03/30 18:43:03 marcel Exp $"); #include "opt_puc.h" @@ -64,6 +64,8 @@ struct puc_device_description dd; int i; + printf("NOTICE: Please configure device scc(1) into the kernel.\n"); + bzero(&dd, sizeof(dd)); dd.name = device_get_desc(dev); for (i = 0; i < 2; i++) { ==== //depot/projects/uart/dev/scc/scc_bfe.h#14 (text+ko) ==== ==== //depot/projects/uart/dev/scc/scc_bfe_ebus.c#5 (text+ko) ==== ==== //depot/projects/uart/dev/scc/scc_bfe_sbus.c#4 (text+ko) ==== ==== //depot/projects/uart/dev/scc/scc_bus.h#8 (text+ko) ==== ==== //depot/projects/uart/dev/scc/scc_core.c#18 (text+ko) ==== ==== //depot/projects/uart/dev/scc/scc_dev_sab82532.c#7 (text+ko) ==== ==== //depot/projects/uart/dev/scc/scc_dev_z8530.c#9 (text+ko) ==== ==== //depot/projects/uart/dev/scc/scc_if.m#7 (text+ko) ==== ==== //depot/projects/uart/dev/sound/pcm/dsp.c#13 (text+ko) ==== @@ -29,7 +29,7 @@ #include -SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pcm/dsp.c,v 1.94 2006/03/21 06:35:48 ariff Exp $"); +SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pcm/dsp.c,v 1.95 2006/03/30 06:17:03 ariff Exp $"); #define OLDPCM_IOCTL @@ -306,10 +306,6 @@ pcm_lock(d); rdch = i_dev->si_drv1; wrch = i_dev->si_drv2; - if (rdch && td->td_proc->p_pid != rdch->pid) - rdch = NULL; - if (wrch && td->td_proc->p_pid != wrch->pid) - wrch = NULL; pcm_unlock(d); if (rdch || wrch) { @@ -431,11 +427,9 @@ getchns(i_dev, &rdch, &wrch, 0); kill = 0; - if (wrch && ((wrch->flags & CHN_F_DEAD) || - td->td_proc->p_pid != wrch->pid)) + if (wrch && (wrch->flags & CHN_F_DEAD)) kill |= 1; - if (rdch && ((rdch->flags & CHN_F_DEAD) || - td->td_proc->p_pid != rdch->pid)) + if (rdch && (rdch->flags & CHN_F_DEAD)) kill |= 2; if (kill == 3) { relchns(i_dev, rdch, wrch, 0); ==== //depot/projects/uart/dev/uart/uart_bus.h#44 (text+ko) ==== @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/uart/uart_bus.h,v 1.11 2006/02/24 05:40:17 marcel Exp $ + * $FreeBSD: src/sys/dev/uart/uart_bus.h,v 1.12 2006/03/30 18:37:03 marcel Exp $ */ #ifndef _DEV_UART_BUS_H_ ==== //depot/projects/uart/dev/uart/uart_bus_scc.c#8 (text+ko) ==== ==== //depot/projects/uart/dev/uart/uart_core.c#52 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/uart/uart_core.c,v 1.17 2006/02/24 05:40:17 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/uart/uart_core.c,v 1.18 2006/03/30 18:37:03 marcel Exp $"); #ifndef KLD_MODULE #include "opt_comconsole.h" ==== //depot/projects/uart/dev/uart/uart_cpu.h#18 (text+ko) ==== @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/uart/uart_cpu.h,v 1.8 2005/01/06 01:43:26 imp Exp $ + * $FreeBSD: src/sys/dev/uart/uart_cpu.h,v 1.9 2006/03/30 18:37:03 marcel Exp $ */ #ifndef _DEV_UART_CPU_H_ ==== //depot/projects/uart/dev/uart/uart_dev_ns8250.c#38 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/uart/uart_dev_ns8250.c,v 1.16 2006/02/24 05:40:17 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/uart/uart_dev_ns8250.c,v 1.17 2006/03/30 18:37:03 marcel Exp $"); #include #include ==== //depot/projects/uart/dev/uart/uart_dev_sab82532.c#40 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/uart/uart_dev_sab82532.c,v 1.12 2006/02/24 05:40:17 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/uart/uart_dev_sab82532.c,v 1.13 2006/03/30 18:37:03 marcel Exp $"); #include #include ==== //depot/projects/uart/dev/uart/uart_dev_z8530.c#28 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/uart/uart_dev_z8530.c,v 1.14 2006/02/24 05:40:17 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/uart/uart_dev_z8530.c,v 1.15 2006/03/30 18:37:03 marcel Exp $"); #include #include ==== //depot/projects/uart/dev/uart/uart_tty.c#28 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/uart/uart_tty.c,v 1.26 2006/02/24 02:42:26 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/uart/uart_tty.c,v 1.27 2006/03/30 03:26:52 marcel Exp $"); #include #include ==== //depot/projects/uart/geom/eli/g_eli.h#3 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/geom/eli/g_eli.h,v 1.5 2006/02/01 12:05:59 pjd Exp $ + * $FreeBSD: src/sys/geom/eli/g_eli.h,v 1.7 2006/03/30 18:50:00 pjd Exp $ */ #ifndef _G_ELI_H_ ==== //depot/projects/uart/geom/mirror/g_mirror.c#13 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/geom/mirror/g_mirror.c,v 1.79 2006/03/19 12:55:50 pjd Exp $"); +__FBSDID("$FreeBSD: src/sys/geom/mirror/g_mirror.c,v 1.80 2006/03/30 12:15:41 pjd Exp $"); #include #include @@ -2116,7 +2116,7 @@ * if we have any disks and 'force' is true. */ ndisks = g_mirror_ndisks(sc, -1); - if ((force && ndisks) || sc->sc_ndisks == ndisks) { + if (sc->sc_ndisks == ndisks || (force && ndisks > 0)) { ; } else if (ndisks == 0) { /* ==== //depot/projects/uart/geom/vinum/geom_vinum.c#7 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/geom/vinum/geom_vinum.c,v 1.20 2006/03/23 19:58:42 le Exp $"); +__FBSDID("$FreeBSD: src/sys/geom/vinum/geom_vinum.c,v 1.21 2006/03/30 14:01:25 le Exp $"); #include #include @@ -237,13 +237,16 @@ /* Find the volume this plex should be attached to. */ v = gv_find_vol(sc, p->volume); - if (v != NULL) { - if (v->plexcount) - p->flags |= GV_PLEX_ADDED; - p->vol_sc = v; - v->plexcount++; - LIST_INSERT_HEAD(&v->plexes, p, in_volume); + if (v == NULL) { + gctl_error(req, "volume '%s' not found", p->volume); + g_free(p); + continue; } + if (v->plexcount) + p->flags |= GV_PLEX_ADDED; + p->vol_sc = v; + v->plexcount++; + LIST_INSERT_HEAD(&v->plexes, p, in_volume); p->vinumconf = sc; p->flags |= GV_PLEX_NEWBORN; @@ -272,7 +275,7 @@ /* drive not found - XXX */ if (d == NULL) { - printf("FOO: drive '%s' not found\n", s->drive); + gctl_error(req, "drive '%s' not found", s->drive); g_free(s); continue; } @@ -282,7 +285,7 @@ /* plex not found - XXX */ if (p == NULL) { - printf("FOO: plex '%s' not found\n", s->plex); + gctl_error(req, "plex '%s' not found\n", s->plex); g_free(s); continue; } @@ -304,8 +307,34 @@ */ error = gv_sd_to_plex(p, s, 1); if (error) { - printf("FOO: couldn't give sd '%s' to plex '%s'\n", - s->name, p->name); + gctl_error(req, "GEOM_VINUM: couldn't give sd '%s' " + "to plex '%s'\n", s->name, p->name); + if (s->drive_sc) + LIST_REMOVE(s, from_drive); + gv_free_sd(s); + g_free(s); + /* + * If this subdisk can't be created, we won't create + * the attached plex either, if it is also a new one. + */ + if (!(p->flags & GV_PLEX_NEWBORN)) + continue; + LIST_FOREACH_SAFE(s, &p->subdisks, in_plex, s2) { + if (s->drive_sc) + LIST_REMOVE(s, from_drive); + p->sdcount--; + LIST_REMOVE(s, in_plex); + LIST_REMOVE(s, sd); + gv_free_sd(s); + g_free(s); + } + if (p->vol_sc != NULL) { + LIST_REMOVE(p, in_volume); + p->vol_sc->plexcount--; + } + LIST_REMOVE(p, plex); + g_free(p); + continue; } s->flags |= GV_SD_NEWBORN; ==== //depot/projects/uart/geom/vinum/geom_vinum.h#6 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/geom/vinum/geom_vinum.h,v 1.11 2006/03/23 19:58:42 le Exp $ + * $FreeBSD: src/sys/geom/vinum/geom_vinum.h,v 1.12 2006/03/30 14:01:25 le Exp $ */ #ifndef _GEOM_VINUM_H_ @@ -72,6 +72,7 @@ /* geom_vinum_subr.c */ void gv_adjust_freespace(struct gv_sd *, off_t); +void gv_free_sd(struct gv_sd *); struct g_geom *find_vinum_geom(void); struct gv_drive *gv_find_drive(struct gv_softc *, char *); struct gv_plex *gv_find_plex(struct gv_softc *, char *); ==== //depot/projects/uart/geom/vinum/geom_vinum_rm.c#6 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/geom/vinum/geom_vinum_rm.c,v 1.11 2006/03/23 20:01:13 le Exp $"); +__FBSDID("$FreeBSD: src/sys/geom/vinum/geom_vinum_rm.c,v 1.12 2006/03/30 14:01:25 le Exp $"); #include #include @@ -38,7 +38,6 @@ #include #include -static void gv_free_sd(struct gv_sd *); static int gv_rm_drive(struct gv_softc *, struct gctl_req *, struct gv_drive *, int); static int gv_rm_plex(struct gv_softc *, struct gctl_req *, @@ -381,60 +380,3 @@ return (err); } - -static void -gv_free_sd(struct gv_sd *s) -{ - struct gv_drive *d; - struct gv_freelist *fl, *fl2; - - KASSERT(s != NULL, ("gv_free_sd: NULL s")); - - d = s->drive_sc; - if (d == NULL) - return; - - /* - * First, find the free slot that's immediately before or after this - * subdisk. - */ - fl = NULL; - LIST_FOREACH(fl, &d->freelist, freelist) { - if (fl->offset == s->drive_offset + s->size) - break; - if (fl->offset + fl->size == s->drive_offset) - break; - } - - /* If there is no free slot behind this subdisk, so create one. */ - if (fl == NULL) { - - fl = g_malloc(sizeof(*fl), M_WAITOK | M_ZERO); - fl->size = s->size; - fl->offset = s->drive_offset; - - if (d->freelist_entries == 0) { - LIST_INSERT_HEAD(&d->freelist, fl, freelist); - } else { - LIST_FOREACH(fl2, &d->freelist, freelist) { - if (fl->offset < fl2->offset) { - LIST_INSERT_BEFORE(fl2, fl, freelist); - break; - } else if (LIST_NEXT(fl2, freelist) == NULL) { - LIST_INSERT_AFTER(fl2, fl, freelist); - break; - } - } - } - - d->freelist_entries++; - - /* Expand the free slot we just found. */ - } else { - fl->size += s->size; - if (fl->offset > s->drive_offset) - fl->offset = s->drive_offset; - } - - d->avail += s->size; -} ==== //depot/projects/uart/geom/vinum/geom_vinum_state.c#4 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/geom/vinum/geom_vinum_state.c,v 1.7 2005/01/21 18:27:23 le Exp $"); +__FBSDID("$FreeBSD: src/sys/geom/vinum/geom_vinum_state.c,v 1.8 2006/03/30 14:01:25 le Exp $"); #include >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Mar 30 20:44:28 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7D92116A420; Thu, 30 Mar 2006 20:44:28 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2714716A41F for ; Thu, 30 Mar 2006 20:44:28 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id DF62C43D5D for ; Thu, 30 Mar 2006 20:44:27 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2UKiRR6076516 for ; Thu, 30 Mar 2006 20:44:27 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2UKiRBl076513 for perforce@freebsd.org; Thu, 30 Mar 2006 20:44:27 GMT (envelope-from marcel@freebsd.org) Date: Thu, 30 Mar 2006 20:44:27 GMT Message-Id: <200603302044.k2UKiRBl076513@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Cc: Subject: PERFORCE change 94324 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Mar 2006 20:44:28 -0000 http://perforce.freebsd.org/chv.cgi?CH=94324 Change 94324 by marcel@marcel_nfs on 2006/03/30 20:44:22 Diff reduction. Affected files ... .. //depot/projects/uart/dev/scc/scc_bfe.h#15 edit .. //depot/projects/uart/dev/scc/scc_bfe_ebus.c#6 edit .. //depot/projects/uart/dev/scc/scc_bfe_sbus.c#5 edit .. //depot/projects/uart/dev/scc/scc_bus.h#9 edit .. //depot/projects/uart/dev/scc/scc_core.c#19 edit .. //depot/projects/uart/dev/scc/scc_dev_sab82532.c#8 edit .. //depot/projects/uart/dev/scc/scc_dev_z8530.c#10 edit .. //depot/projects/uart/dev/scc/scc_if.m#8 edit .. //depot/projects/uart/dev/uart/uart_bus_scc.c#9 edit .. //depot/projects/uart/kern/serdev_if.m#5 edit .. //depot/projects/uart/modules/scc/Makefile#3 edit Differences ... ==== //depot/projects/uart/dev/scc/scc_bfe.h#15 (text+ko) ==== @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD$ + * $FreeBSD: src/sys/dev/scc/scc_bfe.h,v 1.1 2006/03/30 18:33:22 marcel Exp $ */ #ifndef _DEV_SCC_BFE_H_ ==== //depot/projects/uart/dev/scc/scc_bfe_ebus.c#6 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD$"); +__FBSDID("$FreeBSD: src/sys/dev/scc/scc_bfe_ebus.c,v 1.1 2006/03/30 18:33:22 marcel Exp $"); #include #include ==== //depot/projects/uart/dev/scc/scc_bfe_sbus.c#5 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD$"); +__FBSDID("$FreeBSD: src/sys/dev/scc/scc_bfe_sbus.c,v 1.1 2006/03/30 18:33:22 marcel Exp $"); #include #include ==== //depot/projects/uart/dev/scc/scc_bus.h#9 (text+ko) ==== @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD$ + * $FreeBSD: src/sys/dev/scc/scc_bus.h,v 1.1 2006/03/30 18:33:22 marcel Exp $ */ #ifndef _DEV_SCC_BUS_H_ ==== //depot/projects/uart/dev/scc/scc_core.c#19 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD$"); +__FBSDID("$FreeBSD: src/sys/dev/scc/scc_core.c,v 1.1 2006/03/30 18:33:22 marcel Exp $"); #include #include ==== //depot/projects/uart/dev/scc/scc_dev_sab82532.c#8 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD$"); +__FBSDID("$FreeBSD: src/sys/dev/scc/scc_dev_sab82532.c,v 1.1 2006/03/30 18:33:22 marcel Exp $"); #include #include ==== //depot/projects/uart/dev/scc/scc_dev_z8530.c#10 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD$"); +__FBSDID("$FreeBSD: src/sys/dev/scc/scc_dev_z8530.c,v 1.1 2006/03/30 18:33:22 marcel Exp $"); #include #include ==== //depot/projects/uart/dev/scc/scc_if.m#8 (text+ko) ==== @@ -23,7 +23,7 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # -# $FreeBSD$ +# $FreeBSD: src/sys/dev/scc/scc_if.m,v 1.1 2006/03/30 18:33:22 marcel Exp $ #include #include ==== //depot/projects/uart/dev/uart/uart_bus_scc.c#9 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD$"); +__FBSDID("$FreeBSD: src/sys/dev/uart/uart_bus_scc.c,v 1.1 2006/03/30 18:33:22 marcel Exp $"); #include #include ==== //depot/projects/uart/kern/serdev_if.m#5 (text+ko) ==== @@ -23,7 +23,7 @@ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# $FreeBSD$ +# $FreeBSD: src/sys/kern/serdev_if.m,v 1.1 2006/03/30 18:33:22 marcel Exp $ # #include ==== //depot/projects/uart/modules/scc/Makefile#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD$ +# $FreeBSD: src/sys/modules/scc/Makefile,v 1.1 2006/03/30 18:33:22 marcel Exp $ .PATH: ${.CURDIR}/../../dev/scc From owner-p4-projects@FreeBSD.ORG Thu Mar 30 20:55:42 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6DDD016A423; Thu, 30 Mar 2006 20:55:42 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 322F816A420 for ; Thu, 30 Mar 2006 20:55:42 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id F3A0643D46 for ; Thu, 30 Mar 2006 20:55:41 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2UKtf60084555 for ; Thu, 30 Mar 2006 20:55:41 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2UKtfbx084552 for perforce@freebsd.org; Thu, 30 Mar 2006 20:55:41 GMT (envelope-from jhb@freebsd.org) Date: Thu, 30 Mar 2006 20:55:41 GMT Message-Id: <200603302055.k2UKtfbx084552@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 94325 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Mar 2006 20:55:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=94325 Change 94325 by jhb@jhb_slimer on 2006/03/30 20:55:32 Various diff-reduction and cleanups. Affected files ... .. //depot/projects/smpng/sys/kern/kern_linker.c#53 edit Differences ... ==== //depot/projects/smpng/sys/kern/kern_linker.c#53 (text+ko) ==== @@ -473,7 +473,6 @@ const char *filename; KLD_LOCK_ASSERT(); - lf = NULL; filename = linker_basename(pathname); KLD_DPF(FILE, ("linker_make_file: new file, filename=%s\n", filename)); @@ -484,11 +483,11 @@ lf->userrefs = 0; lf->flags = 0; lf->filename = linker_strdup(filename); + LINKER_GET_NEXT_FILE_ID(lf->id); lf->ndeps = 0; lf->deps = NULL; STAILQ_INIT(&lf->common); TAILQ_INIT(&lf->modules); - LINKER_GET_NEXT_FILE_ID(lf->id); TAILQ_INSERT_TAIL(&linker_files, lf, link); return (lf); } @@ -522,7 +521,7 @@ error = mac_check_kld_unload(curthread->td_ucred); if (error) return (error); -#endif +#endif KLD_LOCK_ASSERT(); KLD_DPF(FILE, ("linker_file_unload: lf->refs=%d\n", file->refs)); @@ -843,17 +842,19 @@ modname = pathname; } + KLD_LOCK(); + error = linker_load_module_internal(kldname, modname, NULL, NULL, &lf); + if (error) { + KLD_UNLOCK(); + goto out; + } #ifdef HWPMC_HOOKS pkm.pm_file = lf->filename; pkm.pm_address = (uintptr_t) lf->address; PMC_CALL_HOOK(td, PMC_FN_KLD_LOAD, (void *) &pkm); #endif - KLD_LOCK(); - error = linker_load_module_internal(kldname, modname, NULL, NULL, &lf); - if (error == 0) { - lf->userrefs++; - td->td_retval[0] = lf->id; - } + lf->userrefs++; + td->td_retval[0] = lf->id; KLD_UNLOCK(); out: free(pathname, M_TEMP); From owner-p4-projects@FreeBSD.ORG Thu Mar 30 21:17:09 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7D7E116A420; Thu, 30 Mar 2006 21:17:09 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3BDEB16A401 for ; Thu, 30 Mar 2006 21:17:09 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 09D3C43D53 for ; Thu, 30 Mar 2006 21:17:09 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2ULH8pt086665 for ; Thu, 30 Mar 2006 21:17:08 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2ULH81p086654 for perforce@freebsd.org; Thu, 30 Mar 2006 21:17:08 GMT (envelope-from jhb@freebsd.org) Date: Thu, 30 Mar 2006 21:17:08 GMT Message-Id: <200603302117.k2ULH81p086654@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 94326 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Mar 2006 21:17:09 -0000 http://perforce.freebsd.org/chv.cgi?CH=94326 Change 94326 by jhb@jhb_slimer on 2006/03/30 21:16:27 More cleanups and fix kld_unlock in linker_file_lookup_set(). Affected files ... .. //depot/projects/smpng/sys/kern/kern_linker.c#54 edit Differences ... ==== //depot/projects/smpng/sys/kern/kern_linker.c#54 (text+ko) ==== @@ -639,7 +639,8 @@ if (!locked) KLD_LOCK(); error = linker_lookup_set(file, name, firstp, lastp, countp); - KLD_UNLOCK(); + if (!locked) + KLD_UNLOCK(); return (error); } @@ -844,10 +845,8 @@ KLD_LOCK(); error = linker_load_module_internal(kldname, modname, NULL, NULL, &lf); - if (error) { - KLD_UNLOCK(); - goto out; - } + if (error) + goto unlock; #ifdef HWPMC_HOOKS pkm.pm_file = lf->filename; pkm.pm_address = (uintptr_t) lf->address; @@ -855,6 +854,7 @@ #endif lf->userrefs++; td->td_retval[0] = lf->id; +unlock: KLD_UNLOCK(); out: free(pathname, M_TEMP); @@ -961,9 +961,9 @@ filename = linker_basename(pathname); KLD_LOCK(); lf = linker_find_file_by_name(filename); - if (lf) { + if (lf) td->td_retval[0] = lf->id; - } else + else error = ENOENT; KLD_UNLOCK(); out: @@ -1116,12 +1116,9 @@ KLD_LOCK(); if (uap->fileid != 0) { lf = linker_find_file_by_id(uap->fileid); - if (lf == NULL) { + if (lf == NULL) error = ENOENT; - KLD_UNLOCK(); - goto out; - } - if (LINKER_LOOKUP_SYMBOL(lf, symstr, &sym) == 0 && + else if (LINKER_LOOKUP_SYMBOL(lf, symstr, &sym) == 0 && LINKER_SYMBOL_VALUES(lf, sym, &symval) == 0) { lookup.symvalue = (uintptr_t) symval.value; lookup.symsize = symval.size; From owner-p4-projects@FreeBSD.ORG Thu Mar 30 21:34:31 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DBFBE16A422; Thu, 30 Mar 2006 21:34:30 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A2BE416A41F for ; Thu, 30 Mar 2006 21:34:30 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5772D43D70 for ; Thu, 30 Mar 2006 21:34:30 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2ULYUo6087237 for ; Thu, 30 Mar 2006 21:34:30 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2ULYUIr087234 for perforce@freebsd.org; Thu, 30 Mar 2006 21:34:30 GMT (envelope-from marcel@freebsd.org) Date: Thu, 30 Mar 2006 21:34:30 GMT Message-Id: <200603302134.k2ULYUIr087234@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Cc: Subject: PERFORCE change 94327 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Mar 2006 21:34:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=94327 Change 94327 by marcel@marcel_nfs on 2006/03/30 21:33:52 Don't recognize the SAB82532. Affected files ... .. //depot/projects/uart/dev/uart/uart_bus_ebus.c#14 edit Differences ... ==== //depot/projects/uart/dev/uart/uart_bus_ebus.c#14 (text+ko) ==== @@ -100,11 +100,6 @@ sc->sc_class = &uart_ns8250_class; return (uart_bus_probe(dev, 0, 0, 0, 0)); } - if (!strcmp(nm, "se") || !strcmp(cmpt, "sab82532")) { - sc->sc_class = &uart_sab82532_class; - error = uart_bus_probe(dev, 0, 0, 0, 1); - return ((error <= 0) ? BUS_PROBE_GENERIC : error); - } return (ENXIO); } From owner-p4-projects@FreeBSD.ORG Thu Mar 30 21:41:41 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DE84216A44C; Thu, 30 Mar 2006 21:41:40 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A6ABD16A44A for ; Thu, 30 Mar 2006 21:41:40 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6FF4D43D55 for ; Thu, 30 Mar 2006 21:41:40 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2ULfeQo087647 for ; Thu, 30 Mar 2006 21:41:40 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2ULfeCf087644 for perforce@freebsd.org; Thu, 30 Mar 2006 21:41:40 GMT (envelope-from marcel@freebsd.org) Date: Thu, 30 Mar 2006 21:41:40 GMT Message-Id: <200603302141.k2ULfeCf087644@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Cc: Subject: PERFORCE change 94330 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Mar 2006 21:41:41 -0000 http://perforce.freebsd.org/chv.cgi?CH=94330 Change 94330 by marcel@marcel_nfs on 2006/03/30 21:41:02 Remove the ebus(4) and fhc(4)/sbus(4) attachments for puc(4). Affected files ... .. //depot/projects/uart/conf/files#55 edit Differences ... ==== //depot/projects/uart/conf/files#55 (text+ko) ==== @@ -806,10 +806,8 @@ dev/pst/pst-pci.c optional pst pci dev/pst/pst-raid.c optional pst dev/puc/puc.c optional puc -dev/puc/puc_ebus.c optional puc ebus dev/puc/puc_pccard.c optional puc pccard dev/puc/puc_pci.c optional puc pci -dev/puc/puc_sbus.c optional puc fhc | puc sbus dev/puc/pucdata.c optional puc pci dev/ral/rt2560.c optional ral dev/ral/rt2661.c optional ral From owner-p4-projects@FreeBSD.ORG Thu Mar 30 21:42:42 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B25A516A426; Thu, 30 Mar 2006 21:42:42 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 911AD16A423 for ; Thu, 30 Mar 2006 21:42:42 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4B02643D5C for ; Thu, 30 Mar 2006 21:42:42 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2ULggYq087675 for ; Thu, 30 Mar 2006 21:42:42 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2ULggxG087672 for perforce@freebsd.org; Thu, 30 Mar 2006 21:42:42 GMT (envelope-from marcel@freebsd.org) Date: Thu, 30 Mar 2006 21:42:42 GMT Message-Id: <200603302142.k2ULggxG087672@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Cc: Subject: PERFORCE change 94331 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Mar 2006 21:42:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=94331 Change 94331 by marcel@marcel_nfs on 2006/03/30 21:42:13 Remove the ebus(4) and fhc(4)/sbus(4) attachments. Affected files ... .. //depot/projects/uart/dev/puc/puc_ebus.c#13 delete .. //depot/projects/uart/dev/puc/puc_sbus.c#14 delete Differences ... From owner-p4-projects@FreeBSD.ORG Thu Mar 30 23:48:14 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A6B6316A423; Thu, 30 Mar 2006 23:48:14 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6C0D816A422 for ; Thu, 30 Mar 2006 23:48:14 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 22EDA43D46 for ; Thu, 30 Mar 2006 23:48:14 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2UNmEAT096795 for ; Thu, 30 Mar 2006 23:48:14 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2UNmDJd096792 for perforce@freebsd.org; Thu, 30 Mar 2006 23:48:13 GMT (envelope-from marcel@freebsd.org) Date: Thu, 30 Mar 2006 23:48:13 GMT Message-Id: <200603302348.k2UNmDJd096792@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Cc: Subject: PERFORCE change 94334 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Mar 2006 23:48:14 -0000 http://perforce.freebsd.org/chv.cgi?CH=94334 Change 94334 by marcel@marcel_nfs on 2006/03/30 23:47:36 Strip-down puc(4): o Remove PUC_PORT_TYPE_UART: we always use uart(4) now, so we can use PUC_PORT_TYPE_COM for that. o Remove PUC_PORT_UART_*: we don't support UART sub-types. All UARTs are standard ns8250 again. o Remove PUC_FLAGS_MEMORY and PUC_FLAGS_ALTRES: we try I/O ports first and if that fails, we try memory. o Remove PUC_FASTINTR: we try setting up a fast handler first, and if that fails we try a MPSAFE one. Affected files ... .. //depot/projects/uart/dev/puc/puc.c#18 edit .. //depot/projects/uart/dev/puc/pucdata.c#15 edit .. //depot/projects/uart/dev/puc/pucvar.h#13 edit .. //depot/projects/uart/dev/uart/uart_bus_puc.c#11 edit Differences ... ==== //depot/projects/uart/dev/puc/puc.c#18 (text+ko) ==== @@ -105,7 +105,6 @@ int port; int regshft; u_int serialfreq; - u_int subtype; }; static void puc_intr(void *arg); @@ -170,7 +169,7 @@ puc_attach(device_t dev, const struct puc_device_description *desc) { char *typestr; - int bidx, childunit, i, irq_setup, ressz, rid, type; + int bidx, childunit, i, error, ressz, rid, type; struct puc_softc *sc; struct puc_device *pdev; struct resource *res; @@ -189,6 +188,7 @@ printf("puc: name: %s\n", sc->sc_desc.name); #endif + rid = 0; res = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid, RF_ACTIVE | RF_SHAREABLE); @@ -197,18 +197,15 @@ sc->irqres = res; sc->irqrid = rid; -#ifdef PUC_FASTINTR - irq_setup = bus_setup_intr(dev, res, - INTR_TYPE_TTY | INTR_FAST, puc_intr, sc, &sc->intr_cookie); - if (irq_setup == 0) + error = bus_setup_intr(dev, res, INTR_TYPE_TTY | INTR_FAST, + puc_intr, sc, &sc->intr_cookie); + if (error) { + error = bus_setup_intr(dev, res, INTR_TYPE_TTY | INTR_MPSAFE, + puc_intr, sc, &sc->intr_cookie); + if (error) + return (error); + } else sc->fastintr = INTR_FAST; - else -#else - irq_setup = bus_setup_intr(dev, res, - INTR_TYPE_TTY, puc_intr, sc, &sc->intr_cookie); -#endif - if (irq_setup != 0) - return (ENXIO); rid = 0; for (i = 0; PUC_PORT_VALID(sc->sc_desc, i); i++) { @@ -220,15 +217,10 @@ if (bidx < 0 || sc->sc_bar_mappings[bidx].res != NULL) continue; - type = (sc->sc_desc.ports[i].flags & PUC_FLAGS_MEMORY) - ? SYS_RES_MEMORY : SYS_RES_IOPORT; - - res = bus_alloc_resource_any(dev, type, &rid, - RF_ACTIVE); - if (res == NULL && - sc->sc_desc.ports[i].flags & PUC_FLAGS_ALTRES) { - type = (type == SYS_RES_IOPORT) - ? SYS_RES_MEMORY : SYS_RES_IOPORT; + type = SYS_RES_IOPORT; + res = bus_alloc_resource_any(dev, type, &rid, RF_ACTIVE); + if (res == NULL) { + type = SYS_RES_MEMORY; res = bus_alloc_resource_any(dev, type, &rid, RF_ACTIVE); } @@ -266,30 +258,19 @@ if (bidx < 0 || sc->sc_bar_mappings[bidx].res == NULL) continue; - switch (sc->sc_desc.ports[i].type & ~PUC_PORT_SUBTYPE_MASK) { + switch (sc->sc_desc.ports[i].type) { case PUC_PORT_TYPE_COM: - typestr = "sio"; + typestr = "uart"; + ressz = 8; break; case PUC_PORT_TYPE_LPT: typestr = "ppc"; + ressz = 8; break; - case PUC_PORT_TYPE_UART: - typestr = "uart"; - break; default: continue; } - switch (sc->sc_desc.ports[i].type & PUC_PORT_SUBTYPE_MASK) { - case PUC_PORT_UART_SAB82532: - ressz = 64; - break; - case PUC_PORT_UART_Z8530: - ressz = 2; - break; - default: - ressz = 8; - break; - } + pdev = malloc(sizeof(struct puc_device), M_DEVBUF, M_NOWAIT | M_ZERO); if (!pdev) @@ -335,15 +316,9 @@ pdev->port = i + 1; pdev->serialfreq = sc->sc_desc.ports[i].serialfreq; - pdev->subtype = sc->sc_desc.ports[i].type & - PUC_PORT_SUBTYPE_MASK; pdev->regshft = sc->sc_desc.ports[i].regshft; childunit = puc_find_free_unit(typestr); - if (childunit < 0 && strcmp(typestr, "uart") != 0) { - typestr = "uart"; - childunit = puc_find_free_unit(typestr); - } sc->sc_ports[i].dev = device_add_child(dev, typestr, childunit); if (sc->sc_ports[i].dev == NULL) { @@ -358,7 +333,7 @@ device_set_ivars(sc->sc_ports[i].dev, pdev); device_set_desc(sc->sc_ports[i].dev, sc->sc_desc.name); #ifdef PUC_DEBUG - printf("puc: type %d, bar %x, offset %x\n", + printf("puc: type %s(%d), bar %x, offset %x\n", typestr, sc->sc_desc.ports[i].type, sc->sc_desc.ports[i].bar, sc->sc_desc.ports[i].offset); @@ -607,9 +582,6 @@ case PUC_IVAR_REGSHFT: *result = pdev->regshft; break; - case PUC_IVAR_SUBTYPE: - *result = pdev->subtype; - break; default: return (ENOENT); } ==== //depot/projects/uart/dev/puc/pucdata.c#15 (text+ko) ==== @@ -64,9 +64,9 @@ { 0x103c, 0x1048, 0x103c, 0x1282 }, { 0xffff, 0xffff, 0xffff, 0xffff }, { - { PUC_PORT_TYPE_UART, 0x10, 0x00, 0, PUC_FLAGS_MEMORY }, - { PUC_PORT_TYPE_UART, 0x10, 0x10, 0, PUC_FLAGS_MEMORY }, - { PUC_PORT_TYPE_UART, 0x10, 0x38, 0, PUC_FLAGS_MEMORY }, + { PUC_PORT_TYPE_COM, 0x10, 0x00, 0 }, + { PUC_PORT_TYPE_COM, 0x10, 0x10, 0 }, + { PUC_PORT_TYPE_COM, 0x10, 0x38, 0 }, }, }, @@ -1211,14 +1211,14 @@ { 0x13a8, 0x0158, 0, 0 }, { 0xffff, 0xffff, 0, 0 }, { - { PUC_PORT_TYPE_UART, 0x010, 0x000, COM_FREQ * 8, PUC_FLAGS_MEMORY }, - { PUC_PORT_TYPE_UART, 0x010, 0x200, COM_FREQ * 8, PUC_FLAGS_MEMORY }, - { PUC_PORT_TYPE_UART, 0x010, 0x400, COM_FREQ * 8, PUC_FLAGS_MEMORY }, - { PUC_PORT_TYPE_UART, 0x010, 0x600, COM_FREQ * 8, PUC_FLAGS_MEMORY }, - { PUC_PORT_TYPE_UART, 0x010, 0x800, COM_FREQ * 8, PUC_FLAGS_MEMORY }, - { PUC_PORT_TYPE_UART, 0x010, 0xA00, COM_FREQ * 8, PUC_FLAGS_MEMORY }, - { PUC_PORT_TYPE_UART, 0x010, 0xC00, COM_FREQ * 8, PUC_FLAGS_MEMORY }, - { PUC_PORT_TYPE_UART, 0x010, 0xE00, COM_FREQ * 8, PUC_FLAGS_MEMORY }, + { PUC_PORT_TYPE_COM, 0x010, 0x000, COM_FREQ * 8 }, + { PUC_PORT_TYPE_COM, 0x010, 0x200, COM_FREQ * 8 }, + { PUC_PORT_TYPE_COM, 0x010, 0x400, COM_FREQ * 8 }, + { PUC_PORT_TYPE_COM, 0x010, 0x600, COM_FREQ * 8 }, + { PUC_PORT_TYPE_COM, 0x010, 0x800, COM_FREQ * 8 }, + { PUC_PORT_TYPE_COM, 0x010, 0xA00, COM_FREQ * 8 }, + { PUC_PORT_TYPE_COM, 0x010, 0xC00, COM_FREQ * 8 }, + { PUC_PORT_TYPE_COM, 0x010, 0xE00, COM_FREQ * 8 }, }, }, ==== //depot/projects/uart/dev/puc/pucvar.h#13 (text+ko) ==== @@ -93,21 +93,11 @@ #define PUC_PORT_TYPE_NONE 0 #define PUC_PORT_TYPE_COM 1 #define PUC_PORT_TYPE_LPT 2 -#define PUC_PORT_TYPE_UART 3 -/* UART subtypes. */ -#define PUC_PORT_SUBTYPE_MASK (~0xff) -#define PUC_PORT_UART_NS8250 (0<<8) -#define PUC_PORT_UART_SAB82532 (1<<8) -#define PUC_PORT_UART_Z8530 (2<<8) - /* Interrupt Latch Register (ILR) types */ #define PUC_ILR_TYPE_NONE 0 #define PUC_ILR_TYPE_DIGI 1 -#define PUC_FLAGS_MEMORY 0x0001 /* Use memory mapped I/O. */ -#define PUC_FLAGS_ALTRES 0x0002 /* Use alternate I/O type. */ - #define PUC_PORT_VALID(desc, port) \ ((port) < PUC_MAX_PORTS && (desc).ports[(port)].type != PUC_PORT_TYPE_NONE) @@ -115,7 +105,6 @@ enum puc_device_ivars { PUC_IVAR_FREQ, - PUC_IVAR_SUBTYPE, PUC_IVAR_REGSHFT, PUC_IVAR_PORT }; ==== //depot/projects/uart/dev/uart/uart_bus_puc.c#11 (text+ko) ==== @@ -63,37 +63,18 @@ { device_t parent; struct uart_softc *sc; - uintptr_t port, rclk, regshft, type; + uintptr_t rclk, regshft; parent = device_get_parent(dev); sc = device_get_softc(dev); - if (BUS_READ_IVAR(parent, dev, PUC_IVAR_SUBTYPE, &type)) - return (ENXIO); - switch (type) { - case PUC_PORT_UART_NS8250: - sc->sc_class = &uart_ns8250_class; - port = 0; - break; - case PUC_PORT_UART_SAB82532: - sc->sc_class = &uart_sab82532_class; - if (BUS_READ_IVAR(parent, dev, PUC_IVAR_PORT, &port)) - port = 0; - break; - case PUC_PORT_UART_Z8530: - sc->sc_class = &uart_z8530_class; - if (BUS_READ_IVAR(parent, dev, PUC_IVAR_PORT, &port)) - port = 0; - break; - default: - return (ENXIO); - } + sc->sc_class = &uart_ns8250_class; if (BUS_READ_IVAR(parent, dev, PUC_IVAR_FREQ, &rclk)) rclk = 0; if (BUS_READ_IVAR(parent, dev, PUC_IVAR_REGSHFT, ®shft)) regshft = 0; - return (uart_bus_probe(dev, regshft, rclk, 0, port)); + return (uart_bus_probe(dev, regshft, rclk, 0, 0)); } DRIVER_MODULE(uart, puc, uart_puc_driver, uart_devclass, 0, 0); From owner-p4-projects@FreeBSD.ORG Fri Mar 31 08:26:49 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 572C816A425; Fri, 31 Mar 2006 08:26:49 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 16A9316A423 for ; Fri, 31 Mar 2006 08:26:49 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id BC52743D5A for ; Fri, 31 Mar 2006 08:26:46 +0000 (GMT) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2V8Qk96044566 for ; Fri, 31 Mar 2006 08:26:46 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2V8QkBU044563 for perforce@freebsd.org; Fri, 31 Mar 2006 08:26:46 GMT (envelope-from kmacy@freebsd.org) Date: Fri, 31 Mar 2006 08:26:46 GMT Message-Id: <200603310826.k2V8QkBU044563@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 94348 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Mar 2006 08:26:49 -0000 http://perforce.freebsd.org/chv.cgi?CH=94348 Change 94348 by kmacy@kmacy_storage:sun4v_work on 2006/03/31 08:25:46 vnex should only match against "virtual-devices" Affected files ... .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/vnex.c#3 edit Differences ... ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/vnex.c#3 (text+ko) ==== @@ -130,7 +130,7 @@ vnex_probe(device_t dev) { if (strcmp(ofw_bus_get_name(dev), "virtual-devices")) - return (-1); + return (ENXIO); device_set_desc(dev, "Open Firmware Virtual Nexus device"); return (0); From owner-p4-projects@FreeBSD.ORG Fri Mar 31 08:28:50 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6487C16A423; Fri, 31 Mar 2006 08:28:50 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 22D2A16A400 for ; Fri, 31 Mar 2006 08:28:50 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id B8A0643D45 for ; Fri, 31 Mar 2006 08:28:49 +0000 (GMT) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2V8SnCJ044702 for ; Fri, 31 Mar 2006 08:28:49 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2V8SnLq044699 for perforce@freebsd.org; Fri, 31 Mar 2006 08:28:49 GMT (envelope-from kmacy@freebsd.org) Date: Fri, 31 Mar 2006 08:28:49 GMT Message-Id: <200603310828.k2V8SnLq044699@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 94349 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Mar 2006 08:28:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=94349 Change 94349 by kmacy@kmacy_storage:sun4v_work on 2006/03/31 08:28:15 quick workaround for TSB alignment errors Affected files ... .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/pmap.c#34 edit Differences ... ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/pmap.c#34 (text+ko) ==== @@ -471,7 +471,13 @@ * Set up TSB descriptors for the hypervisor * */ +#ifdef notyet tsb_8k_size = virtsz >> (PAGE_SHIFT - TTE_SHIFT); + DPRINTF("tsb_8k_size is 0x%lx\n", tsb_8k_size); +#else + /* avoid alignment complaints from the hypervisor */ + tsb_8k_size = PAGE_SIZE_4M; +#endif pa = pmap_bootstrap_alloc(tsb_8k_size); if (pa & PAGE_MASK_4M) @@ -506,6 +512,7 @@ tsb_4m_size = virtsz >> (PAGE_SHIFT_4M - TTE_SHIFT); pa = pmap_bootstrap_alloc(tsb_4m_size); + DPRINTF("tsb_4m_pa is 0x%lx tsb_4m_size is 0x%lx\n", pa, tsb_4m_size); kernel_td[TSB4M_INDEX].hvtsb_idxpgsz = TTE4M; kernel_td[TSB4M_INDEX].hvtsb_assoc = 1; kernel_td[TSB4M_INDEX].hvtsb_ntte = (tsb_4m_size >> TTE_SHIFT); @@ -635,7 +642,7 @@ PMAP_LOCK_INIT(kernel_pmap); TAILQ_INIT(&kernel_pmap->pm_pvlist); - + error = hv_set_ctx0(MAX_TSB_INFO, vtophys((vm_offset_t)&kernel_td)); if (error != H_EOK) panic("failed to set ctx0 TSBs error: %ld", error); From owner-p4-projects@FreeBSD.ORG Fri Mar 31 13:51:46 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 52E9B16A426; Fri, 31 Mar 2006 13:51:46 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B3F0816A423; Fri, 31 Mar 2006 13:51:45 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from server.baldwin.cx (66-23-211-162.clients.speedfactory.net [66.23.211.162]) by mx1.FreeBSD.org (Postfix) with ESMTP id A066F43D58; Fri, 31 Mar 2006 13:51:44 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from zion.baldwin.cx (zion.baldwin.cx [192.168.0.7]) (authenticated bits=0) by server.baldwin.cx (8.13.4/8.13.4) with ESMTP id k2VDphuO013411; Fri, 31 Mar 2006 08:51:43 -0500 (EST) (envelope-from jhb@freebsd.org) From: John Baldwin To: Marcel Moolenaar Date: Fri, 31 Mar 2006 08:51:41 -0500 User-Agent: KMail/1.8.3 References: <200603302348.k2UNmDJd096792@repoman.freebsd.org> In-Reply-To: <200603302348.k2UNmDJd096792@repoman.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-15" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Message-Id: <200603310851.42196.jhb@freebsd.org> X-Virus-Scanned: ClamAV 0.87.1/1364/Thu Mar 30 15:05:50 2006 on server.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-3.9 required=4.2 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.1.0 X-Spam-Checker-Version: SpamAssassin 3.1.0 (2005-09-13) on server.baldwin.cx Cc: Perforce Change Reviews Subject: Re: PERFORCE change 94334 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Mar 2006 13:51:46 -0000 On Thursday 30 March 2006 06:48 pm, Marcel Moolenaar wrote: > http://perforce.freebsd.org/chv.cgi?CH=3D94334 > > Change 94334 by marcel@marcel_nfs on 2006/03/30 23:47:36 > > Strip-down puc(4): > o Remove PUC_PORT_TYPE_UART: we always use uart(4) now, so we > can use PUC_PORT_TYPE_COM for that. > o Remove PUC_PORT_UART_*: we don't support UART sub-types. All > UARTs are standard ns8250 again. > o Remove PUC_FLAGS_MEMORY and PUC_FLAGS_ALTRES: we try I/O ports > first and if that fails, we try memory. > o Remove PUC_FASTINTR: we try setting up a fast handler first, > and if that fails we try a MPSAFE one. Unfortunately that algorithm doesn't work in the case of a shared interrupt if puc is the first device to attach. The other devices then just "lose". This is mostly irrelevant on 6.1 and later for all but ppc since they allow INTR_FAST to be shared with non-INTR_FAST. =2D-=20 John Baldwin =A0<>< =A0http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" =A0=3D =A0http://www.FreeBSD.org From owner-p4-projects@FreeBSD.ORG Fri Mar 31 16:55:42 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3240C16A420; Fri, 31 Mar 2006 16:55:42 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id CA32916A400 for ; Fri, 31 Mar 2006 16:55:41 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 94ED643D46 for ; Fri, 31 Mar 2006 16:55:41 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2VGtcIf096252 for ; Fri, 31 Mar 2006 16:55:41 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2VGtc7P096244 for perforce@freebsd.org; Fri, 31 Mar 2006 16:55:38 GMT (envelope-from jhb@freebsd.org) Date: Fri, 31 Mar 2006 16:55:38 GMT Message-Id: <200603311655.k2VGtc7P096244@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 94357 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Mar 2006 16:55:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=94357 Change 94357 by jhb@jhb_slimer on 2006/03/31 16:54:47 Fixup comments. Affected files ... .. //depot/projects/smpng/sys/i386/isa/npx.c#53 edit Differences ... ==== //depot/projects/smpng/sys/i386/isa/npx.c#53 (text+ko) ==== @@ -236,7 +236,7 @@ /* * Probe routine. Initialize cr0 to give correct behaviour for [f]wait * whether the device exists or not (XXX should be elsewhere). Set flags - * to tell npxattach() what to do. Modify device struct if npx doesn't + * to tell npxattach() what to do. Setup an interrupt handler if npx does * need to use interrupts. Return 0 if device exists. */ static int @@ -252,11 +252,18 @@ KASSERT((rcr0() & (CR0_MP | CR0_NE)) == (CR0_MP | CR0_NE), ("cr0 busted")); + + /* + * Modern CPUs all have an FPU that uses the INT16 interface + * and provide a simple way to verify that, so handle the + * common case right away. + */ if (cpu_feature & CPUID_FPU) { hw_float = npx_exists = 1; npx_ex16 = 1; return (0); } + save_idt_npxtrap = idt[IDT_MF]; setidt(IDT_MF, probetrap, SDT_SYS386TGT, SEL_KPL, GSEL(GCODE_SEL, SEL_KPL)); From owner-p4-projects@FreeBSD.ORG Fri Mar 31 16:57:45 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D334B16A420; Fri, 31 Mar 2006 16:57:44 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B35B116A401 for ; Fri, 31 Mar 2006 16:57:44 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7ED7943D48 for ; Fri, 31 Mar 2006 16:57:44 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2VGvii2096337 for ; Fri, 31 Mar 2006 16:57:44 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2VGviI9096334 for perforce@freebsd.org; Fri, 31 Mar 2006 16:57:44 GMT (envelope-from jhb@freebsd.org) Date: Fri, 31 Mar 2006 16:57:44 GMT Message-Id: <200603311657.k2VGviI9096334@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 94358 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Mar 2006 16:57:45 -0000 http://perforce.freebsd.org/chv.cgi?CH=94358 Change 94358 by jhb@jhb_slimer on 2006/03/31 16:57:25 - Fix setting of device description in common case. - Shut npx up for modern systems, it just adds needless clutter to the dmesg. Affected files ... .. //depot/projects/smpng/sys/i386/isa/npx.c#54 edit Differences ... ==== //depot/projects/smpng/sys/i386/isa/npx.c#54 (text+ko) ==== @@ -253,6 +253,8 @@ KASSERT((rcr0() & (CR0_MP | CR0_NE)) == (CR0_MP | CR0_NE), ("cr0 busted")); + device_set_desc(dev, "math processor"); + /* * Modern CPUs all have an FPU that uses the INT16 interface * and provide a simple way to verify that, so handle the @@ -261,6 +263,7 @@ if (cpu_feature & CPUID_FPU) { hw_float = npx_exists = 1; npx_ex16 = 1; + device_quiet(dev); return (0); } @@ -317,8 +320,6 @@ */ fninit(); - device_set_desc(dev, "math processor"); - /* * Don't use fwait here because it might hang. * Don't use fnop here because it usually hangs if there is no FPU. @@ -418,12 +419,14 @@ flags = device_get_flags(dev); - if (npx_irq13) - device_printf(dev, "IRQ 13 interface\n"); - else if (npx_ex16) - device_printf(dev, "INT 16 interface\n"); - else - device_printf(dev, "WARNING: no FPU!\n"); + if (!device_is_quiet(dev) || bootverbose) { + if (npx_irq13) + device_printf(dev, "IRQ 13 interface\n"); + else if (npx_ex16) + device_printf(dev, "INT 16 interface\n"); + else + device_printf(dev, "WARNING: no FPU!\n"); + } npxinit(__INITIAL_NPXCW__); From owner-p4-projects@FreeBSD.ORG Fri Mar 31 17:37:03 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EF8EA16A422; Fri, 31 Mar 2006 17:37:02 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BECE916A41F; Fri, 31 Mar 2006 17:37:01 +0000 (UTC) (envelope-from marcel@xcllnt.net) Received: from ns1.xcllnt.net (209-128-86-226.bayarea.net [209.128.86.226]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4025543D49; Fri, 31 Mar 2006 17:37:01 +0000 (GMT) (envelope-from marcel@xcllnt.net) Received: from [192.168.5.6] (dhcp06.vpn.xcllnt.net [192.168.5.6]) by ns1.xcllnt.net (8.13.4/8.13.4) with ESMTP id k2VHb0r7033446; Fri, 31 Mar 2006 09:37:00 -0800 (PST) (envelope-from marcel@xcllnt.net) In-Reply-To: <200603310851.42196.jhb@freebsd.org> References: <200603302348.k2UNmDJd096792@repoman.freebsd.org> <200603310851.42196.jhb@freebsd.org> Mime-Version: 1.0 (Apple Message framework v746.3) Content-Type: multipart/signed; micalg=sha1; boundary=Apple-Mail-3-163184586; protocol="application/pkcs7-signature" Message-Id: From: Marcel Moolenaar Date: Fri, 31 Mar 2006 09:37:04 -0800 To: John Baldwin X-Mailer: Apple Mail (2.746.3) X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: Perforce Change Reviews Subject: Re: PERFORCE change 94334 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Mar 2006 17:37:03 -0000 --Apple-Mail-3-163184586 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed On Mar 31, 2006, at 5:51 AM, John Baldwin wrote: > On Thursday 30 March 2006 06:48 pm, Marcel Moolenaar wrote: >> http://perforce.freebsd.org/chv.cgi?CH=94334 >> >> Change 94334 by marcel@marcel_nfs on 2006/03/30 23:47:36 >> >> Strip-down puc(4): >> o Remove PUC_PORT_TYPE_UART: we always use uart(4) now, so we >> can use PUC_PORT_TYPE_COM for that. >> o Remove PUC_PORT_UART_*: we don't support UART sub-types. All >> UARTs are standard ns8250 again. >> o Remove PUC_FLAGS_MEMORY and PUC_FLAGS_ALTRES: we try I/O ports >> first and if that fails, we try memory. >> o Remove PUC_FASTINTR: we try setting up a fast handler first, >> and if that fails we try a MPSAFE one. > > Unfortunately that algorithm doesn't work in the case of a shared > interrupt > if puc is the first device to attach. The other devices then just > "lose". It's the standard algorithm I use. I expect the platform to either share a fast interrupt handler with a non-fast handler or silently downgrade my fast handler to a mpsafe one if later events demand this. All I can indicate in my driver is what I'm capable of. The MD interrupt code should do what needs to be done based on that and the surrounding environment and subsequent events. I have no visibility over and/or knowledge about that and cannot program for it then. -- Marcel Moolenaar USPA: A-39004 marcel@xcllnt.net --Apple-Mail-3-163184586-- From owner-p4-projects@FreeBSD.ORG Fri Mar 31 18:02:23 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 32D2E16A424; Fri, 31 Mar 2006 18:02:23 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0A35916A422 for ; Fri, 31 Mar 2006 18:02:23 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5529443D6A for ; Fri, 31 Mar 2006 18:02:03 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2VI2267000192 for ; Fri, 31 Mar 2006 18:02:02 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2VI22jK000189 for perforce@freebsd.org; Fri, 31 Mar 2006 18:02:02 GMT (envelope-from marcel@freebsd.org) Date: Fri, 31 Mar 2006 18:02:02 GMT Message-Id: <200603311802.k2VI22jK000189@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Cc: Subject: PERFORCE change 94360 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Mar 2006 18:02:23 -0000 http://perforce.freebsd.org/chv.cgi?CH=94360 Change 94360 by marcel@marcel_nfs on 2006/03/31 18:01:36 IFC @94359 Affected files ... .. //depot/projects/uart/conf/files#56 integrate .. //depot/projects/uart/conf/files.powerpc#7 integrate .. //depot/projects/uart/dev/ata/ata-all.c#20 integrate .. //depot/projects/uart/dev/ata/ata-all.h#14 integrate .. //depot/projects/uart/dev/ata/ata-disk.c#14 integrate .. //depot/projects/uart/dev/ata/ata-queue.c#17 integrate .. //depot/projects/uart/dev/ata/ata-usb.c#3 integrate .. //depot/projects/uart/dev/ata/atapi-cam.c#11 integrate .. //depot/projects/uart/dev/ata/atapi-cd.c#18 integrate .. //depot/projects/uart/dev/scc/scc_bfe_sbus.c#6 integrate .. //depot/projects/uart/dev/sound/pcm/sound.c#10 integrate .. //depot/projects/uart/dev/sound/pcm/vchan.c#9 integrate .. //depot/projects/uart/dev/uart/uart_cpu_powerpc.c#1 branch .. //depot/projects/uart/kern/subr_taskqueue.c#8 integrate .. //depot/projects/uart/kern/vfs_bio.c#22 integrate .. //depot/projects/uart/kern/vfs_default.c#16 integrate .. //depot/projects/uart/kern/vfs_lookup.c#11 integrate .. //depot/projects/uart/kern/vfs_mount.c#21 integrate .. //depot/projects/uart/kern/vfs_subr.c#25 integrate .. //depot/projects/uart/kern/vfs_syscalls.c#24 integrate .. //depot/projects/uart/kern/vfs_vnops.c#17 integrate .. //depot/projects/uart/modules/Makefile#31 integrate .. //depot/projects/uart/nfsserver/nfs_serv.c#11 integrate .. //depot/projects/uart/nfsserver/nfs_srvsubs.c#8 integrate .. //depot/projects/uart/powerpc/include/bus.h#8 integrate .. //depot/projects/uart/sys/ata.h#10 integrate .. //depot/projects/uart/sys/buf.h#15 integrate .. //depot/projects/uart/sys/mount.h#16 integrate .. //depot/projects/uart/ufs/ffs/ffs_snapshot.c#14 integrate .. //depot/projects/uart/ufs/ffs/ffs_vfsops.c#19 integrate Differences ... ==== //depot/projects/uart/conf/files#56 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1106 2006/03/30 18:39:24 marcel Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1107 2006/03/30 21:39:36 marcel Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -831,7 +831,7 @@ dev/sbsh/if_sbsh.c optional sbsh dev/scc/scc_if.m optional scc dev/scc/scc_bfe_ebus.c optional scc ebus -dev/scc/scc_bfe_sbus.c optional scc sbus +dev/scc/scc_bfe_sbus.c optional scc fhc | scc sbus dev/scc/scc_core.c optional scc dev/scc/scc_dev_sab82532.c optional scc dev/scc/scc_dev_z8530.c optional scc ==== //depot/projects/uart/conf/files.powerpc#7 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.powerpc,v 1.49 2006/03/05 22:52:16 yar Exp $ +# $FreeBSD: src/sys/conf/files.powerpc,v 1.50 2006/03/31 01:42:55 marcel Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -27,6 +27,7 @@ dev/syscons/scvtb.c optional sc dev/syscons/syscons.c optional sc dev/syscons/sysmouse.c optional sc +dev/uart/uart_cpu_powerpc.c optional uart geom/geom_apple.c standard kern/syscalls.c optional ktr powerpc/powerpc/atomic.S standard ==== //depot/projects/uart/dev/ata/ata-all.c#20 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.270 2006/03/10 12:20:53 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.271 2006/03/31 08:09:04 sos Exp $"); #include "opt_ata.h" #include @@ -485,7 +485,11 @@ if (ioc_request->flags & ATA_CMD_WRITE) request->flags |= ATA_R_WRITE; ata_queue_request(request); - if (!(request->flags & ATA_R_ATAPI)) { + if (request->flags & ATA_R_ATAPI) { + bcopy(&request->u.atapi.sense, &ioc_request->u.atapi.sense, + sizeof(struct atapi_sense)); + } + else { ioc_request->u.ata.command = request->u.ata.command; ioc_request->u.ata.feature = request->u.ata.feature; ioc_request->u.ata.lba = request->u.ata.lba; ==== //depot/projects/uart/dev/ata/ata-all.h#14 (text+ko) ==== @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/ata/ata-all.h,v 1.116 2006/03/08 16:39:01 sos Exp $ + * $FreeBSD: src/sys/dev/ata/ata-all.h,v 1.117 2006/03/31 08:09:04 sos Exp $ */ /* ATA register defines */ @@ -53,24 +53,7 @@ #define ATA_E_MC 0x20 /* media changed */ #define ATA_E_UNC 0x40 /* uncorrectable data */ #define ATA_E_ICRC 0x80 /* UDMA crc error */ -#define ATA_E_MASK 0x0f /* error mask */ -#define ATA_SK_MASK 0xf0 /* sense key mask */ -#define ATA_SK_NO_SENSE 0x00 /* no specific sense key info */ -#define ATA_SK_RECOVERED_ERROR 0x10 /* command OK, data recovered */ -#define ATA_SK_NOT_READY 0x20 /* no access to drive */ -#define ATA_SK_MEDIUM_ERROR 0x30 /* non-recovered data error */ -#define ATA_SK_HARDWARE_ERROR 0x40 /* non-recoverable HW failure */ -#define ATA_SK_ILLEGAL_REQUEST 0x50 /* invalid command param(s) */ -#define ATA_SK_UNIT_ATTENTION 0x60 /* media changed */ -#define ATA_SK_DATA_PROTECT 0x70 /* write protect */ -#define ATA_SK_BLANK_CHECK 0x80 /* blank check */ -#define ATA_SK_VENDOR_SPECIFIC 0x90 /* vendor specific skey */ -#define ATA_SK_COPY_ABORTED 0xa0 /* copy aborted */ -#define ATA_SK_ABORTED_COMMAND 0xb0 /* command aborted, try again */ -#define ATA_SK_EQUAL 0xc0 /* equal */ -#define ATA_SK_VOLUME_OVERFLOW 0xd0 /* volume overflow */ -#define ATA_SK_MISCOMPARE 0xe0 /* data dont match the medium */ -#define ATA_SK_RESERVED 0xf0 +#define ATA_E_ATAPI_SENSE_MASK 0xf0 /* ATAPI sense key mask */ #define ATA_IREASON 9 /* (R) interrupt reason */ #define ATA_I_CMD 0x01 /* cmd (1) | data (0) */ @@ -284,7 +267,8 @@ #define ATA_PC98_BANKADDR_RID 9 #define ATA_IRQ_RID 0 #define ATA_DEV(device) ((device == ATA_MASTER) ? 0 : 1) -#define ATA_CFA_MAGIC 0x848A +#define ATA_CFA_MAGIC1 0x844A +#define ATA_CFA_MAGIC2 0x848A #define ATAPI_MAGIC_LSB 0x14 #define ATAPI_MAGIC_MSB 0xeb #define ATAPI_P_READ (ATA_S_DRQ | ATA_I_IN) @@ -298,28 +282,6 @@ #define ATA_OP_FINISHED 1 #define ATA_MAX_28BIT_LBA 268435455UL -/* ATAPI request sense structure */ -struct atapi_sense { - u_int8_t error_code :7; /* current or deferred errors */ - u_int8_t valid :1; /* follows ATAPI spec */ - u_int8_t segment; /* Segment number */ - u_int8_t sense_key :4; /* sense key */ - u_int8_t reserved2_4 :1; /* reserved */ - u_int8_t ili :1; /* incorrect length indicator */ - u_int8_t eom :1; /* end of medium */ - u_int8_t filemark :1; /* filemark */ - u_int32_t cmd_info __packed; /* cmd information */ - u_int8_t sense_length; /* additional sense len (n-7) */ - u_int32_t cmd_specific_info __packed; /* additional cmd spec info */ - u_int8_t asc; /* additional sense code */ - u_int8_t ascq; /* additional sense code qual */ - u_int8_t replaceable_unit_code; /* replaceable unit code */ - u_int8_t sk_specific :7; /* sense key specific */ - u_int8_t sksv :1; /* sense key specific info OK */ - u_int8_t sk_specific1; /* sense key specific */ - u_int8_t sk_specific2; /* sense key specific */ -}; - /* structure used for composite atomic operations */ #define MAX_COMPOSITES 32 /* u_int32_t bits */ struct ata_composite { @@ -348,9 +310,8 @@ } ata; struct { u_int8_t ccb[16]; /* ATAPI command block */ - struct atapi_sense sense_data; /* ATAPI request sense data */ - u_int8_t sense_key; /* ATAPI request sense key */ - u_int8_t sense_cmd; /* ATAPI saved command */ + struct atapi_sense sense; /* ATAPI request sense data */ + u_int8_t saved_cmd; /* ATAPI saved command */ } atapi; } u; u_int32_t bytecount; /* bytes to transfer */ ==== //depot/projects/uart/dev/ata/ata-disk.c#14 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-disk.c,v 1.196 2006/03/09 08:34:44 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-disk.c,v 1.197 2006/03/31 08:09:04 sos Exp $"); #include "opt_ata.h" #include @@ -71,7 +71,8 @@ struct ata_device *atadev = device_get_softc(dev); if (!(atadev->param.config & ATA_PROTO_ATAPI) || - (atadev->param.config == ATA_CFA_MAGIC)) + (atadev->param.config == ATA_CFA_MAGIC1) || + (atadev->param.config == ATA_CFA_MAGIC2)) return 0; else return ENXIO; @@ -295,8 +296,14 @@ struct bio bp; /* length zero is special and really means flush buffers to media */ - if (!length) - return ata_controlcmd(dp->d_drv1, ATA_FLUSHCACHE, 0, 0, 0); + if (!length) { + struct ata_device *atadev = device_get_softc(dp->d_drv1); + int error = 0; + + if (atadev->param.support.command2 & ATA_SUPPORT_FLUSHCACHE) + error = ata_controlcmd(dp->d_drv1, ATA_FLUSHCACHE, 0, 0, 0); + return error; + } bzero(&bp, sizeof(struct bio)); bp.bio_disk = dp; ==== //depot/projects/uart/dev/ata/ata-queue.c#17 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-queue.c,v 1.62 2006/03/09 10:25:35 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-queue.c,v 1.63 2006/03/31 08:09:05 sos Exp $"); #include "opt_ata.h" #include @@ -51,13 +51,20 @@ void ata_queue_request(struct ata_request *request) { - struct ata_channel *ch = device_get_softc(device_get_parent(request->dev)); + struct ata_channel *ch; - /* mark request as virgin (this might be a ATA_R_REQUEUE) */ + /* treat request as virgin (this might be an ATA_R_REQUEUE) */ request->result = request->status = request->error = 0; - request->parent = device_get_parent(request->dev); + + /* check that that the device is still valid */ + if (!(request->parent = device_get_parent(request->dev))) { + request->result = ENXIO; + if (request->callback) + (request->callback)(request); + return; + } + ch = device_get_softc(request->parent); callout_init_mtx(&request->callout, &ch->state_mtx, CALLOUT_RETURNUNLOCKED); - if (!request->callback && !(request->flags & ATA_R_REQUEUE)) sema_init(&request->done, 0, "ATA request done"); @@ -368,16 +375,15 @@ break; /* if we have a sensekey -> request sense from device */ - if (request->error & ATA_SK_MASK && - request->u.atapi.ccb[0] != ATAPI_REQUEST_SENSE) { + if ((request->error & ATA_E_ATAPI_SENSE_MASK) && + (request->u.atapi.ccb[0] != ATAPI_REQUEST_SENSE)) { static u_int8_t ccb[16] = { ATAPI_REQUEST_SENSE, 0, 0, 0, sizeof(struct atapi_sense), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; - request->u.atapi.sense_key = request->error; - request->u.atapi.sense_cmd = request->u.atapi.ccb[0]; + request->u.atapi.saved_cmd = request->u.atapi.ccb[0]; bcopy(ccb, request->u.atapi.ccb, 16); - request->data = (caddr_t)&request->u.atapi.sense_data; + request->data = (caddr_t)&request->u.atapi.sense; request->bytecount = sizeof(struct atapi_sense); request->donecount = 0; request->transfersize = sizeof(struct atapi_sense); @@ -389,21 +395,21 @@ return; } - switch (request->u.atapi.sense_key & ATA_SK_MASK) { - case ATA_SK_RECOVERED_ERROR: + switch (request->u.atapi.sense.key & ATA_SENSE_KEY_MASK) { + case ATA_SENSE_RECOVERED_ERROR: device_printf(request->dev, "WARNING - %s recovered error\n", ata_cmd2str(request)); /* FALLTHROUGH */ - case ATA_SK_NO_SENSE: + case ATA_SENSE_NO_SENSE: request->result = 0; break; - case ATA_SK_NOT_READY: + case ATA_SENSE_NOT_READY: request->result = EBUSY; break; - case ATA_SK_UNIT_ATTENTION: + case ATA_SENSE_UNIT_ATTENTION: atadev->flags |= ATA_D_MEDIA_CHANGED; request->result = EIO; break; @@ -416,22 +422,19 @@ device_printf(request->dev, "FAILURE - %s %s asc=0x%02x ascq=0x%02x ", ata_cmd2str(request), ata_skey2str( - (request->u.atapi.sense_key & ATA_SK_MASK) >> 4), - request->u.atapi.sense_data.asc, - request->u.atapi.sense_data.ascq); - if (request->u.atapi.sense_data.sksv) - printf("sks=0x%02x 0x%02x 0x%02x ", - request->u.atapi.sense_data.sk_specific, - request->u.atapi.sense_data.sk_specific1, - request->u.atapi.sense_data.sk_specific2); - printf("error=%b\n", - (request->u.atapi.sense_key & ATA_E_MASK), - "\20\4MEDIA_CHANGE_REQUEST\3ABORTED" - "\2NO_MEDIA\1ILLEGAL_LENGTH"); + (request->u.atapi.sense.key & ATA_SENSE_KEY_MASK)), + request->u.atapi.sense.asc, + request->u.atapi.sense.ascq); + if (request->u.atapi.sense.specific & ATA_SENSE_SPEC_VALID) + printf("sks=0x%02x 0x%02x 0x%02x\n", + request->u.atapi.sense.specific & ATA_SENSE_SPEC_MASK, + request->u.atapi.sense.specific1, + request->u.atapi.sense.specific2); } - if ((request->u.atapi.sense_key ? - request->u.atapi.sense_key : request->error) & ATA_E_MASK) + if ((request->u.atapi.sense.key & ATA_SENSE_KEY_MASK ? + request->u.atapi.sense.key & ATA_SENSE_KEY_MASK : + request->error)) request->result = EIO; } @@ -625,8 +628,8 @@ static char buffer[20]; if (request->flags & ATA_R_ATAPI) { - switch (request->u.atapi.sense_key ? - request->u.atapi.sense_cmd : request->u.atapi.ccb[0]) { + switch (request->u.atapi.sense.key ? + request->u.atapi.saved_cmd : request->u.atapi.ccb[0]) { case 0x00: return ("TEST_UNIT_READY"); case 0x01: return ("REZERO"); case 0x03: return ("REQUEST_SENSE"); ==== //depot/projects/uart/dev/ata/ata-usb.c#3 (text) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-usb.c,v 1.3 2006/03/18 13:14:38 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-usb.c,v 1.4 2006/03/31 08:09:05 sos Exp $"); #include "opt_ata.h" #include @@ -683,8 +683,7 @@ else if (sc->csw.status == CSWSTATUS_FAILED) { if (atausbdebug) device_printf(sc->dev, "CSWSTATUS_FAILED\n"); - //request->result = ENODEV; - request->error = ATA_SK_RESERVED; + request->error = ATA_E_ATAPI_SENSE_MASK ; sc->state = ATAUSB_S_IDLE; ata_interrupt(device_get_softc(request->parent)); return; @@ -824,9 +823,6 @@ *ptr = ntohs(*ptr); request->result = 0; } - if ((request->flags & ATA_R_ATAPI) && - (request->u.atapi.ccb[0] == ATAPI_REQUEST_SENSE)) - request->u.atapi.sense_key = request->u.atapi.sense_data.sense_key << 4; return ATA_OP_FINISHED; } ==== //depot/projects/uart/dev/ata/atapi-cam.c#11 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/atapi-cam.c,v 1.43 2005/10/31 15:41:18 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/atapi-cam.c,v 1.44 2006/03/31 08:09:05 sos Exp $"); #include #include @@ -661,7 +661,7 @@ csio = &hcb->ccb->csio; #ifdef CAMDEBUG -# define err (request->u.atapi.sense_key) +# define err (request->u.atapi.sense.key) if (CAM_DEBUGGED(csio->ccb_h.path, CAM_DEBUG_CDB)) { printf("atapi_cb: hcb@%p error = %02x: (sk = %02x%s%s%s)\n", hcb, err, err >> 4, @@ -704,7 +704,7 @@ /* The ATA driver has already requested sense for us. */ if (request->error == 0) { /* The ATA autosense suceeded. */ - bcopy (&request->u.atapi.sense_data, &csio->sense_data, sizeof(struct atapi_sense)); + bcopy (&request->u.atapi.sense, &csio->sense_data, sizeof(struct atapi_sense)); csio->ccb_h.status |= CAM_AUTOSNS_VALID; } #endif ==== //depot/projects/uart/dev/ata/atapi-cd.c#18 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/atapi-cd.c,v 1.187 2006/03/08 10:14:39 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/atapi-cd.c,v 1.188 2006/03/31 08:09:05 sos Exp $"); #include "opt_ata.h" #include @@ -702,10 +702,10 @@ request->timeout = 5; ata_queue_request(request); if (!request->error && - (request->u.atapi.sense_data.sense_key == 2 || - request->u.atapi.sense_data.sense_key == 7) && - request->u.atapi.sense_data.asc == 4 && - request->u.atapi.sense_data.ascq == 1) + (request->u.atapi.sense.key == 2 || + request->u.atapi.sense.key == 7) && + request->u.atapi.sense.asc == 4 && + request->u.atapi.sense.ascq == 1) tsleep(&timeout, PRIBIO, "acdld", hz / 2); else break; @@ -1008,7 +1008,7 @@ cdp->disk_size, cdp->block_size, cdp->toc.hdr.ending_track-cdp->toc.hdr.starting_track+1); if (cdp->toc.tab[0].control & 4) - printf("%dMB\n", cdp->disk_size / 512); + printf("%dMB\n", cdp->disk_size * cdp->block_size / 1048576); else printf("%d:%d audio\n", cdp->disk_size / 75 / 60, cdp->disk_size / 75 % 60); @@ -1234,9 +1234,9 @@ request->flags = ATA_R_ATAPI | ATA_R_READ; request->timeout = 30; ata_queue_request(request); - if (!request->error && request->u.atapi.sense_data.sksv) - *finished = ((request->u.atapi.sense_data.sk_specific2 | - (request->u.atapi.sense_data.sk_specific1<<8))*100)/65535; + if (!request->error && request->u.atapi.sense.error & ATA_SENSE_VALID) + *finished = ((request->u.atapi.sense.specific2 | + (request->u.atapi.sense.specific1 << 8)) * 100) / 65535; else *finished = 0; ata_free_request(request); ==== //depot/projects/uart/dev/scc/scc_bfe_sbus.c#6 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/scc/scc_bfe_sbus.c,v 1.1 2006/03/30 18:33:22 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/scc/scc_bfe_sbus.c,v 1.2 2006/03/31 17:39:49 marcel Exp $"); #include #include @@ -81,4 +81,5 @@ sizeof(struct scc_softc), }; +DRIVER_MODULE(puc, fhc, puc_sbus_driver, puc_devclass, 0, 0); DRIVER_MODULE(scc, sbus, scc_sbus_driver, scc_devclass, 0, 0); ==== //depot/projects/uart/dev/sound/pcm/sound.c#10 (text+ko) ==== @@ -32,7 +32,7 @@ #include "feeder_if.h" -SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pcm/sound.c,v 1.102 2006/03/22 20:50:04 ariff Exp $"); +SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pcm/sound.c,v 1.103 2006/03/31 10:36:36 ariff Exp $"); devclass_t pcm_devclass; @@ -53,7 +53,7 @@ struct sysctl_ctx_list * snd_sysctl_tree(device_t dev) { - struct snddev_info *d = device_get_softc(dev); + struct snddev_info *d = device_get_softc(dev); return &d->sysctl_tree; } @@ -61,7 +61,7 @@ struct sysctl_oid * snd_sysctl_tree_top(device_t dev) { - struct snddev_info *d = device_get_softc(dev); + struct snddev_info *d = device_get_softc(dev); return d->sysctl_tree_top; } @@ -158,22 +158,128 @@ return d->fakechan; } +static int +pcm_setvchans(struct snddev_info *d, int newcnt) +{ + struct snddev_channel *sce = NULL; + struct pcm_channel *c = NULL; + int err = 0, vcnt, dcnt, i; + + pcm_inprog(d, 1); + + if (!(d->flags & SD_F_AUTOVCHAN)) { + err = EINVAL; + goto setvchans_out; + } + + vcnt = d->vchancount; + dcnt = d->playcount + d->reccount; + + if (newcnt < 0 || (dcnt + newcnt) > (PCMMAXCHAN + 1)) { + err = E2BIG; + goto setvchans_out; + } + + dcnt += vcnt; + + if (newcnt > vcnt) { + /* add new vchans - find a parent channel first */ + SLIST_FOREACH(sce, &d->channels, link) { + c = sce->channel; + CHN_LOCK(c); + if (c->direction == PCMDIR_PLAY && + ((c->flags & CHN_F_HAS_VCHAN) || + (vcnt == 0 && + !(c->flags & (CHN_F_BUSY | CHN_F_VIRTUAL))))) + goto addok; + CHN_UNLOCK(c); + } + err = EBUSY; + goto setvchans_out; +addok: + c->flags |= CHN_F_BUSY; + while (err == 0 && newcnt > vcnt) { + if (dcnt > PCMMAXCHAN) { + device_printf(d->dev, "%s: Maximum channel reached.\n", __func__); + break; + } + err = vchan_create(c); + if (err == 0) { + vcnt++; + dcnt++; + } else if (err == E2BIG && newcnt > vcnt) + device_printf(d->dev, "%s: err=%d Maximum channel reached.\n", __func__, err); + } + if (vcnt == 0) + c->flags &= ~CHN_F_BUSY; + CHN_UNLOCK(c); + } else if (newcnt < vcnt) { +#define ORPHAN_CDEVT(cdevt) \ + ((cdevt) == NULL || ((cdevt)->si_drv1 == NULL && \ + (cdevt)->si_drv2 == NULL)) + while (err == 0 && newcnt < vcnt) { + i = 0; + SLIST_FOREACH(sce, &d->channels, link) { + c = sce->channel; + CHN_LOCK(c); + if (c->direction == PCMDIR_PLAY && + (c->flags & CHN_F_VIRTUAL) && + (i++ == newcnt)) { + if (!(c->flags & CHN_F_BUSY) && + ORPHAN_CDEVT(sce->dsp_devt) && + ORPHAN_CDEVT(sce->dspW_devt) && + ORPHAN_CDEVT(sce->audio_devt) && + ORPHAN_CDEVT(sce->dspr_devt)) + goto remok; + /* + * Either we're busy, or our cdev + * has been stolen by dsp_clone(). + * Skip, and increase newcnt. + */ + if (!(c->flags & CHN_F_BUSY)) + device_printf(d->dev, + "%s: <%s> somebody steal my cdev!\n", + __func__, c->name); + newcnt++; + } + CHN_UNLOCK(c); + } + if (vcnt != newcnt) + err = EBUSY; + break; +remok: + CHN_UNLOCK(c); + err = vchan_destroy(c); + if (err == 0) + vcnt--; + else + device_printf(d->dev, + "%s: WARNING: vchan_destroy() failed!", + __func__); + } + } + +setvchans_out: + pcm_inprog(d, -1); + return err; +} + /* return error status and a locked channel */ int pcm_chnalloc(struct snddev_info *d, struct pcm_channel **ch, int direction, pid_t pid, int chnum) { struct pcm_channel *c; - struct snddev_channel *sce; - int err, ret; + struct snddev_channel *sce; + int err; retry_chnalloc: - ret = ENODEV; + err = ENODEV; /* scan for a free channel */ SLIST_FOREACH(sce, &d->channels, link) { c = sce->channel; CHN_LOCK(c); - if ((c->direction == direction) && !(c->flags & CHN_F_BUSY)) { + if (c->direction == direction && !(c->flags & CHN_F_BUSY)) { if (chnum < 0 || sce->chan_num == chnum) { c->flags |= CHN_F_BUSY; c->pid = pid; @@ -191,7 +297,7 @@ CHN_UNLOCK(c); return err; } else if (c->direction == direction && (c->flags & CHN_F_BUSY)) - ret = EBUSY; + err = EBUSY; CHN_UNLOCK(c); } @@ -199,25 +305,14 @@ if (chnum == -1 && direction == PCMDIR_PLAY && d->vchancount > 0 && d->vchancount < snd_maxautovchans && d->devcount <= PCMMAXCHAN) { - /* try to create a vchan */ - SLIST_FOREACH(sce, &d->channels, link) { - c = sce->channel; - CHN_LOCK(c); - if ((c->flags & CHN_F_HAS_VCHAN) && - !SLIST_EMPTY(&c->children)) { - err = vchan_create(c); - CHN_UNLOCK(c); - if (!err) { - chnum = -2; - goto retry_chnalloc; - } else - device_printf(d->dev, "%s: vchan_create(%s) == %d\n", __func__, c->name, err); - } else - CHN_UNLOCK(c); + err = pcm_setvchans(d, d->vchancount + 1); + if (err == 0) { + chnum = -2; + goto retry_chnalloc; } } - return ret; + return err; } /* release a locked channel and unlock it */ @@ -261,66 +356,10 @@ static void pcm_setmaxautovchans(struct snddev_info *d, int num) { - struct pcm_channel *c, *ch; - struct snddev_channel *sce; - int err, done; - - /* - * XXX WOAH... NEED SUPER CLEANUP!!! - * Robust, yet confusing. Understanding these will - * cause your brain spinning like a Doki Doki Dynamo. - */ - if (num > 0 && d->vchancount == 0) { - SLIST_FOREACH(sce, &d->channels, link) { - c = sce->channel; - CHN_LOCK(c); - if ((c->direction == PCMDIR_PLAY) && - (c->flags & (CHN_F_BUSY | CHN_F_VIRTUAL)) == 0 && - SLIST_EMPTY(&c->children)) { - c->flags |= CHN_F_BUSY; - err = vchan_create(c); - if (err) { - c->flags &= ~CHN_F_BUSY; - device_printf(d->dev, "%s: vchan_create(%s) == %d\n", __func__, c->name, err); - } else { - CHN_UNLOCK(c); - return; - } - } - CHN_UNLOCK(c); - } - return; - } - if (num == 0 && d->vchancount > 0) { - /* - * XXX Keep retrying... - */ - for (done = 0; done < 1024; done++) { - ch = NULL; - SLIST_FOREACH(sce, &d->channels, link) { - c = sce->channel; - CHN_LOCK(c); - if (c->direction == PCMDIR_PLAY && - !(c->flags & CHN_F_BUSY) && - (c->flags & CHN_F_VIRTUAL)) { - ch = c; - break; - } - CHN_UNLOCK(c); - } - if (ch != NULL) { - CHN_UNLOCK(ch); - snd_mtxlock(d->lock); - err = vchan_destroy(ch); - if (err) - device_printf(d->dev, "vchan_destroy(%s) == %d\n", - ch->name, err); - snd_mtxunlock(d->lock); - } else - return; - } - return; - } + if (num > 0 && d->vchancount == 0) + pcm_setvchans(d, 1); + else if (num == 0 && d->vchancount > 0) + pcm_setvchans(d, 0); } #ifdef USING_DEVFS @@ -355,18 +394,14 @@ v = snd_maxautovchans; error = sysctl_handle_int(oidp, &v, sizeof(v), req); if (error == 0 && req->newptr != NULL) { - if (v < 0 || v > (PCMMAXCHAN + 1)) - return EINVAL; + if (v < 0 || v > PCMMAXCHAN) + return E2BIG; if (pcm_devclass != NULL && v != snd_maxautovchans) { for (i = 0; i < devclass_get_maxunit(pcm_devclass); i++) { d = devclass_get_softc(pcm_devclass, i); if (!d) continue; - if (d->flags & SD_F_AUTOVCHAN) { - if (pcm_inprog(d, 1) == 1) - pcm_setmaxautovchans(d, v); - pcm_inprog(d, -1); - } + pcm_setmaxautovchans(d, v); } } snd_maxautovchans = v; @@ -380,9 +415,9 @@ pcm_chn_create(struct snddev_info *d, struct pcm_channel *parent, kobj_class_t cls, int dir, void *devinfo) { struct snddev_channel *sce; - struct pcm_channel *ch, *tmpch; + struct pcm_channel *ch, *c; char *dirs; - u_int32_t flsearch = 0; + uint32_t flsearch = 0; int direction, err, rpnum, *pnum; switch(dir) { @@ -424,23 +459,18 @@ ch->num = 0; rpnum = 0; SLIST_FOREACH(sce, &d->channels, link) { - if (sce == NULL || sce->channel == NULL) + c = sce->channel; + if (direction != c->direction || + (c->flags & CHN_F_VIRTUAL) != flsearch) continue; - tmpch = sce->channel; - if (direction != tmpch->direction || - (tmpch->flags & CHN_F_VIRTUAL) != flsearch) - continue; - if (ch->num == tmpch->num) + if (ch->num == c->num) ch->num++; else { - /* - * Channel numbering screwed. Bail out, and do the - * hard way lookup. - */ +#if 0 device_printf(d->dev, - "%s: channel numbering dirs=%s screwed.\n", - __func__, dirs); - ch->num = 0; + "%s: %s channel numbering screwed (Expect: %d, Got: %d)\n", + __func__, dirs, ch->num, c->num); +#endif goto retry_num_search; } rpnum++; @@ -449,13 +479,11 @@ retry_num_search: rpnum = 0; SLIST_FOREACH(sce, &d->channels, link) { - if (sce == NULL || sce->channel == NULL) + c = sce->channel; + if (direction != c->direction || + (c->flags & CHN_F_VIRTUAL) != flsearch) continue; - tmpch = sce->channel; - if (direction != tmpch->direction || - (tmpch->flags & CHN_F_VIRTUAL) != flsearch) - continue; - if (ch->num == tmpch->num) { + if (ch->num == c->num) { ch->num++; goto retry_num_search; } @@ -464,7 +492,7 @@ retry_num_search_out: if (*pnum != rpnum) { device_printf(d->dev, - "%s: pnum screwed : dirs=%s, pnum=%d, rpnum=%d\n", + "%s: WARNING: pnum screwed : dirs=%s, pnum=%d, rpnum=%d\n", __func__, dirs, *pnum, rpnum); *pnum = rpnum; } @@ -514,17 +542,16 @@ int pcm_chn_add(struct snddev_info *d, struct pcm_channel *ch) { - struct snddev_channel *sce, *tmp, *after; + struct snddev_channel *sce, *tmp, *after; unsigned rdevcount; - int device = device_get_unit(d->dev); - int stop; + int device = device_get_unit(d->dev); size_t namelen; /* * Note it's confusing nomenclature. * dev_t * device -> pcm_device - * unit -> pcm_channel + * unit -> pcm_channel * channel -> snddev_channel * device_t * unit -> pcm_device @@ -538,48 +565,42 @@ snd_mtxlock(d->lock); sce->channel = ch; sce->chan_num = 0; + rdevcount = 0; after = NULL; - stop = 0; + SLIST_FOREACH(tmp, &d->channels, link) { + if (sce->chan_num == tmp->chan_num) + sce->chan_num++; + else { +#if 0 + device_printf(d->dev, + "%s: cdev numbering screwed (Expect: %d, Got: %d)\n", + __func__, sce->chan_num, tmp->chan_num); +#endif + goto retry_chan_num_search; + } + after = tmp; + rdevcount++; + } + goto retry_chan_num_search_out; retry_chan_num_search: /* * Look for possible channel numbering collision. This may not * be optimized, but it will ensure that no collision occured. - * Creating maximum possible channels (256 channels) will cost - * us at most 32895 cycles, but this can be considered cheap - * since none of the locking/unlocking operations involved. - * - * Micro optimization, channel ordering: - * hw,hw,hw,vch,vch,vch,rec + * Can be considered cheap since none of the locking/unlocking + * operations involved. */ rdevcount = 0; + after = NULL; SLIST_FOREACH(tmp, &d->channels, link) { - if (tmp == NULL || tmp->channel == NULL) - continue; if (sce->chan_num == tmp->chan_num) { sce->chan_num++; - after = NULL; - stop = 0; goto retry_chan_num_search; } - if (stop == 0) { - if (ch->flags & CHN_F_VIRTUAL) { - if (tmp->channel->direction == PCMDIR_REC) - stop = 1; - else - after = tmp; - } else if (ch->direction == PCMDIR_REC) { - after = tmp; - } else { - if (tmp->channel->direction != PCMDIR_PLAY || - (tmp->channel->flags & CHN_F_VIRTUAL)) { - stop = 1; - } else { - after = tmp; - } - } - } + if (sce->chan_num > tmp->chan_num) + after = tmp; rdevcount++; } +retry_chan_num_search_out: /* * Don't overflow PCMMKMINOR / PCMMAXCHAN. */ @@ -603,6 +624,18 @@ } else { SLIST_INSERT_AFTER(after, sce, link); } +#if 0 + if (1) { + int cnum = 0; + SLIST_FOREACH(tmp, &d->channels, link) { + if (cnum != tmp->chan_num) + device_printf(d->dev, + "%s: WARNING: inconsistent cdev numbering! (Expect: %d, Got: %d)\n", + __func__, cnum, tmp->chan_num); + cnum++; + } + } +#endif namelen = strlen(ch->name); if ((CHN_NAMELEN - namelen) > 10) { /* ":dspXX.YYY" */ @@ -611,6 +644,10 @@ device, sce->chan_num); } snd_mtxunlock(d->lock); + + /* + * I will revisit these someday, and nuke it mercilessly.. + */ sce->dsp_devt = make_dev(&dsp_cdevsw, PCMMKMINOR(device, SND_DEV_DSP, sce->chan_num), UID_ROOT, GID_WHEEL, 0666, "dsp%d.%d", @@ -638,7 +675,7 @@ int pcm_chn_remove(struct snddev_info *d, struct pcm_channel *ch) { - struct snddev_channel *sce; + struct snddev_channel *sce; #if 0 int ourlock; @@ -680,9 +717,9 @@ int pcm_addchan(device_t dev, int dir, kobj_class_t cls, void *devinfo) { - struct snddev_info *d = device_get_softc(dev); + struct snddev_info *d = device_get_softc(dev); struct pcm_channel *ch; - int err; + int err; ch = pcm_chn_create(d, NULL, cls, dir, devinfo); if (!ch) { @@ -703,8 +740,8 @@ static int >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Mar 31 20:36:50 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8079516A427; Fri, 31 Mar 2006 20:36:50 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 46DD516A426 for ; Fri, 31 Mar 2006 20:36:50 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from server.baldwin.cx (66-23-211-162.clients.speedfactory.net [66.23.211.162]) by mx1.FreeBSD.org (Postfix) with ESMTP id 47F2943D48 for ; Fri, 31 Mar 2006 20:36:49 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from localhost (john@localhost [127.0.0.1]) by server.baldwin.cx (8.13.4/8.13.4) with ESMTP id k2VKajRC016651; Fri, 31 Mar 2006 15:36:47 -0500 (EST) (envelope-from jhb@freebsd.org) From: John Baldwin To: Marcel Moolenaar Date: Fri, 31 Mar 2006 15:37:24 -0500 User-Agent: KMail/1.9.1 References: <200603302348.k2UNmDJd096792@repoman.freebsd.org> <200603310851.42196.jhb@freebsd.org> In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200603311537.26612.jhb@freebsd.org> X-Virus-Scanned: ClamAV 0.87.1/1364/Thu Mar 30 15:05:50 2006 on server.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-3.9 required=4.2 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.1.0 X-Spam-Checker-Version: SpamAssassin 3.1.0 (2005-09-13) on server.baldwin.cx Cc: Perforce Change Reviews Subject: Re: PERFORCE change 94334 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Mar 2006 20:36:50 -0000 On Friday 31 March 2006 12:37, Marcel Moolenaar wrote: > > On Mar 31, 2006, at 5:51 AM, John Baldwin wrote: > > > On Thursday 30 March 2006 06:48 pm, Marcel Moolenaar wrote: > >> http://perforce.freebsd.org/chv.cgi?CH=94334 > >> > >> Change 94334 by marcel@marcel_nfs on 2006/03/30 23:47:36 > >> > >> Strip-down puc(4): > >> o Remove PUC_PORT_TYPE_UART: we always use uart(4) now, so we > >> can use PUC_PORT_TYPE_COM for that. > >> o Remove PUC_PORT_UART_*: we don't support UART sub-types. All > >> UARTs are standard ns8250 again. > >> o Remove PUC_FLAGS_MEMORY and PUC_FLAGS_ALTRES: we try I/O ports > >> first and if that fails, we try memory. > >> o Remove PUC_FASTINTR: we try setting up a fast handler first, > >> and if that fails we try a MPSAFE one. > > > > Unfortunately that algorithm doesn't work in the case of a shared > > interrupt > > if puc is the first device to attach. The other devices then just > > "lose". > > It's the standard algorithm I use. I expect the platform to either > share a fast interrupt handler with a non-fast handler or silently > downgrade my fast handler to a mpsafe one if later events demand > this. All I can indicate in my driver is what I'm capable of. The > MD interrupt code should do what needs to be done based on that > and the surrounding environment and subsequent events. I have no > visibility over and/or knowledge about that and cannot program > for it then. None of the platforms have ever done the downgrade thing FWIW. Only ppc doesn't share INTR_FAST now, so I think you could probably just always use INTR_FAST. -- John Baldwin <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.org From owner-p4-projects@FreeBSD.ORG Sat Apr 1 00:24:44 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C24FC16A424; Sat, 1 Apr 2006 00:24:44 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9DBBC16A420 for ; Sat, 1 Apr 2006 00:24:44 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id BBADC43D53 for ; Sat, 1 Apr 2006 00:24:43 +0000 (GMT) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k310OhQA032996 for ; Sat, 1 Apr 2006 00:24:43 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k310OhY4032993 for perforce@freebsd.org; Sat, 1 Apr 2006 00:24:43 GMT (envelope-from imp@freebsd.org) Date: Sat, 1 Apr 2006 00:24:43 GMT Message-Id: <200604010024.k310OhY4032993@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 94371 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 01 Apr 2006 00:24:45 -0000 http://perforce.freebsd.org/chv.cgi?CH=94371 Change 94371 by imp@imp_hammer on 2006/04/01 00:24:01 Start supporting FreeBSD's iicbus goo Affected files ... .. //depot/projects/arm/src/sys/arm/at91/at91_twi.c#7 edit Differences ... ==== //depot/projects/arm/src/sys/arm/at91/at91_twi.c#7 (text+ko) ==== @@ -416,12 +416,63 @@ return err; } +static int +at91_twi_stop(device_t dev) +{ + return (EIO); +} + +static int +at91_twi_repeated_start(device_t dev, u_char slave, int timeout) +{ + return EIO; +} + +static int +at91_twi_start(device_t dev, u_char slave, int timeout) +{ + struct at91_twi_softc *sc = device_get_softc(dev); + int error = 0; + + return (0); +error: + at91_twi_stop(dev); + return (error); +} + +static int +at91_write(device_t dev, char *buf, int len, int *sent, int timeout /* us */) +{ + return EIO; +} + +static int +at91_twi_read(device_t dev, char *buf, int len, int *read, int last, + int delay /* us */) +{ + return EIO; +} + +static int +at91_twi_rst_card(device_t dev, u_char speed, u_char addr, u_char *oldaddr) +{ + return EIO; +} + static device_method_t at91_twi_methods[] = { /* Device interface */ DEVMETHOD(device_probe, at91_twi_probe), DEVMETHOD(device_attach, at91_twi_attach), DEVMETHOD(device_detach, at91_twi_detach), + /* iicbus interface */ + DEVMETHOD(iicbus_callback, iicbus_null_callback), + DEVMETHOD(iicbus_repeated_start, at91_twi_repeated_start), + DEVMETHOD(iicbus_start, at91_twi_start), + DEVMETHOD(iicbus_stop, at91_twi_stop), + DEVMETHOD(iicbus_write, at91_twi_write), + DEVMETHOD(iicbus_read, at91_twi_read), + DEVMETHOD(iicbus_reset, at91_twi_rst_card), { 0, 0 } }; From owner-p4-projects@FreeBSD.ORG Sat Apr 1 00:27:48 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4D68616A420; Sat, 1 Apr 2006 00:27:48 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2BC9C16A401 for ; Sat, 1 Apr 2006 00:27:48 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id D32D143D48 for ; Sat, 1 Apr 2006 00:27:47 +0000 (GMT) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k310Rlpi033136 for ; Sat, 1 Apr 2006 00:27:47 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k310Rlte033133 for perforce@freebsd.org; Sat, 1 Apr 2006 00:27:47 GMT (envelope-from kmacy@freebsd.org) Date: Sat, 1 Apr 2006 00:27:47 GMT Message-Id: <200604010027.k310Rlte033133@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 94372 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 01 Apr 2006 00:27:48 -0000 http://perforce.freebsd.org/chv.cgi?CH=94372 Change 94372 by kmacy@kmacy_storage:sun4vtmp on 2006/04/01 00:26:53 make DDB work ... sort of Affected files ... .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/db_hwwatch.c#2 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/db_trace.c#2 edit Differences ... ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/db_hwwatch.c#2 (text+ko) ==== @@ -41,7 +41,7 @@ #include #include #include - +#if 0 static void db_watch_print(vm_offset_t wp, int bm); int @@ -209,3 +209,21 @@ } else db_printf("\tnot active.\n"); } +#endif +void +db_md_list_watchpoints(void) +{ +} + +int +db_md_clr_watchpoint(db_expr_t addr, db_expr_t size) +{ + + return (0); +} + +int +db_md_set_watchpoint(db_expr_t addr, db_expr_t size) +{ + return (0); +} ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/db_trace.c#2 (text+ko) ==== @@ -144,39 +144,50 @@ db_addr_t func; db_addr_t tpc; u_long type; +#if 0 u_long sfar; u_long sfsr; u_long tar; u_long level; u_long pil; +#endif u_long code; u_long o7; int user; + type = 5; p = td->td_proc; +#if 0 type = db_get_value((db_addr_t)&tf->tf_type, sizeof(tf->tf_type), FALSE); db_printf("-- %s", trap_msg[type & ~T_KERNEL]); +#endif switch (type & ~T_KERNEL) { case T_DATA_PROTECTION: +#if 0 tar = (u_long)db_get_value((db_addr_t)&tf->tf_tar, sizeof(tf->tf_tar), FALSE); db_printf(" tar=%#lx", tar); +#endif /* fall through */ case T_DATA_EXCEPTION: case T_INSTRUCTION_EXCEPTION: case T_MEM_ADDRESS_NOT_ALIGNED: +#if 0 sfar = (u_long)db_get_value((db_addr_t)&tf->tf_sfar, sizeof(tf->tf_sfar), FALSE); sfsr = (u_long)db_get_value((db_addr_t)&tf->tf_sfsr, sizeof(tf->tf_sfsr), FALSE); db_printf(" sfar=%#lx sfsr=%#lx", sfar, sfsr); +#endif break; case T_DATA_MISS: case T_INSTRUCTION_MISS: +#if 0 tar = (u_long)db_get_value((db_addr_t)&tf->tf_tar, sizeof(tf->tf_tar), FALSE); db_printf(" tar=%#lx", tar); +#endif break; case T_SYSCALL: code = db_get_value((db_addr_t)&tf->tf_global[1], @@ -194,11 +205,13 @@ } break; case T_INTERRUPT: +#if 0 level = (u_long)db_get_value((db_addr_t)&tf->tf_level, sizeof(tf->tf_level), FALSE); pil = (u_long)db_get_value((db_addr_t)&tf->tf_pil, sizeof(tf->tf_pil), FALSE); db_printf(" level=%#lx pil=%#lx", level, pil); +#endif break; default: break; From owner-p4-projects@FreeBSD.ORG Sat Apr 1 00:58:28 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A7CD016A420; Sat, 1 Apr 2006 00:58:28 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2D6F816A401 for ; Sat, 1 Apr 2006 00:58:28 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id EFFAE43D45 for ; Sat, 1 Apr 2006 00:58:27 +0000 (GMT) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k310wQbJ041770 for ; Sat, 1 Apr 2006 00:58:27 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k310wQJ1041764 for perforce@freebsd.org; Sat, 1 Apr 2006 00:58:26 GMT (envelope-from imp@freebsd.org) Date: Sat, 1 Apr 2006 00:58:26 GMT Message-Id: <200604010058.k310wQJ1041764@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 94374 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 01 Apr 2006 00:58:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=94374 Change 94374 by imp@imp_Speedy on 2006/04/01 00:57:58 Compile! Affected files ... .. //depot/projects/arm/src/sys/arm/at91/at91_twi.c#8 edit .. //depot/projects/arm/src/sys/arm/conf/KB920X#25 edit Differences ... ==== //depot/projects/arm/src/sys/arm/at91/at91_twi.c#8 (text+ko) ==== @@ -42,6 +42,8 @@ #include #include +#include "iicbus_if.h" + struct at91_twi_softc { device_t dev; /* Myself */ @@ -431,17 +433,11 @@ static int at91_twi_start(device_t dev, u_char slave, int timeout) { - struct at91_twi_softc *sc = device_get_softc(dev); - int error = 0; - - return (0); -error: - at91_twi_stop(dev); - return (error); + return EIO; } static int -at91_write(device_t dev, char *buf, int len, int *sent, int timeout /* us */) +at91_twi_write(device_t dev, char *buf, int len, int *sent, int timeout /* us */) { return EIO; } @@ -466,7 +462,7 @@ DEVMETHOD(device_detach, at91_twi_detach), /* iicbus interface */ - DEVMETHOD(iicbus_callback, iicbus_null_callback), +// DEVMETHOD(iicbus_callback, iicbus_null_callback), DEVMETHOD(iicbus_repeated_start, at91_twi_repeated_start), DEVMETHOD(iicbus_start, at91_twi_start), DEVMETHOD(iicbus_stop, at91_twi_stop), ==== //depot/projects/arm/src/sys/arm/conf/KB920X#25 (text+ko) ==== @@ -97,3 +97,6 @@ device at91_twi # TWI: Two Wire Interface device at91_spi # SPI: device at91_ssc +# iic +device iic +device iicbus From owner-p4-projects@FreeBSD.ORG Sat Apr 1 19:11:30 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EB3B816A422; Sat, 1 Apr 2006 19:11:29 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 95E5516A400 for ; Sat, 1 Apr 2006 19:11:29 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3E3D243D49 for ; Sat, 1 Apr 2006 19:11:29 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k31JBTqe048306 for ; Sat, 1 Apr 2006 19:11:29 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k31JBSYF048303 for perforce@freebsd.org; Sat, 1 Apr 2006 19:11:28 GMT (envelope-from marcel@freebsd.org) Date: Sat, 1 Apr 2006 19:11:28 GMT Message-Id: <200604011911.k31JBSYF048303@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Cc: Subject: PERFORCE change 94416 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 01 Apr 2006 19:11:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=94416 Change 94416 by marcel@marcel_nfs on 2006/04/01 19:11:26 IFC @94415 Affected files ... .. //depot/projects/uart/amd64/conf/GENERIC#15 integrate .. //depot/projects/uart/boot/forth/beastie.4th#7 integrate .. //depot/projects/uart/compat/linux/linux_socket.c#11 integrate .. //depot/projects/uart/compat/svr4/svr4_stream.c#8 integrate .. //depot/projects/uart/conf/files.powerpc#8 integrate .. //depot/projects/uart/dev/mpt/mpt.c#12 integrate .. //depot/projects/uart/dev/mpt/mpt.h#9 integrate .. //depot/projects/uart/dev/mpt/mpt_cam.c#9 integrate .. //depot/projects/uart/dev/mpt/mpt_debug.c#11 integrate .. //depot/projects/uart/dev/mpt/mpt_pci.c#15 integrate .. //depot/projects/uart/dev/scc/scc_bfe.h#16 integrate .. //depot/projects/uart/dev/scc/scc_bfe_ebus.c#7 integrate .. //depot/projects/uart/dev/scc/scc_bfe_macio.c#1 branch .. //depot/projects/uart/dev/scc/scc_bfe_sbus.c#7 integrate .. //depot/projects/uart/dev/scc/scc_core.c#20 integrate .. //depot/projects/uart/dev/scc/scc_dev_sab82532.c#9 integrate .. //depot/projects/uart/dev/scc/scc_dev_z8530.c#11 integrate .. //depot/projects/uart/dev/uart/uart_cpu.h#19 integrate .. //depot/projects/uart/dev/uart/uart_dev_ns8250.c#39 integrate .. //depot/projects/uart/dev/uart/uart_dev_sab82532.c#41 integrate .. //depot/projects/uart/dev/uart/uart_dev_z8530.c#29 integrate .. //depot/projects/uart/fs/devfs/devfs_vnops.c#14 integrate .. //depot/projects/uart/i386/conf/GENERIC#14 integrate .. //depot/projects/uart/kern/kern_descrip.c#22 integrate .. //depot/projects/uart/kern/uipc_socket.c#17 integrate .. //depot/projects/uart/kern/uipc_socket2.c#11 integrate .. //depot/projects/uart/kern/uipc_syscalls.c#17 integrate .. //depot/projects/uart/kern/uipc_usrreq.c#11 integrate .. //depot/projects/uart/kern/vfs_mount.c#22 integrate .. //depot/projects/uart/kern/vfs_subr.c#26 integrate .. //depot/projects/uart/modules/scc/Makefile#4 integrate .. //depot/projects/uart/net/raw_cb.c#5 integrate .. //depot/projects/uart/net/raw_usrreq.c#6 integrate .. //depot/projects/uart/net/rtsock.c#11 integrate .. //depot/projects/uart/netatalk/ddp_usrreq.c#7 integrate .. //depot/projects/uart/netatm/atm_aal5.c#6 integrate .. //depot/projects/uart/netatm/atm_proto.c#6 integrate .. //depot/projects/uart/netatm/atm_socket.c#9 integrate .. //depot/projects/uart/netatm/atm_usrreq.c#7 integrate .. //depot/projects/uart/netatm/atm_var.h#7 integrate .. //depot/projects/uart/netgraph/bluetooth/include/ng_btsocket_hci_raw.h#4 integrate .. //depot/projects/uart/netgraph/bluetooth/include/ng_btsocket_l2cap.h#5 integrate .. //depot/projects/uart/netgraph/bluetooth/include/ng_btsocket_rfcomm.h#6 integrate .. //depot/projects/uart/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c#6 integrate .. //depot/projects/uart/netgraph/bluetooth/socket/ng_btsocket_l2cap.c#7 integrate .. //depot/projects/uart/netgraph/bluetooth/socket/ng_btsocket_l2cap_raw.c#6 integrate .. //depot/projects/uart/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c#8 integrate .. //depot/projects/uart/netgraph/ng_socket.c#9 integrate .. //depot/projects/uart/netinet/in_pcb.c#12 integrate .. //depot/projects/uart/netinet/in_pcb.h#8 integrate .. //depot/projects/uart/netinet/ip_divert.c#10 integrate .. //depot/projects/uart/netinet/raw_ip.c#14 integrate .. //depot/projects/uart/netinet/tcp_input.c#19 integrate .. //depot/projects/uart/netinet/tcp_subr.c#15 integrate .. //depot/projects/uart/netinet/tcp_timer.c#11 integrate .. //depot/projects/uart/netinet/tcp_usrreq.c#10 integrate .. //depot/projects/uart/netinet/tcp_var.h#11 integrate .. //depot/projects/uart/netinet/udp_usrreq.c#14 integrate .. //depot/projects/uart/netinet6/in6_pcb.c#10 integrate .. //depot/projects/uart/netinet6/in6_pcb.h#4 integrate .. //depot/projects/uart/netinet6/raw_ip6.c#10 integrate .. //depot/projects/uart/netinet6/udp6_usrreq.c#9 integrate .. //depot/projects/uart/netipsec/keysock.c#8 integrate .. //depot/projects/uart/netipx/ipx_usrreq.c#7 integrate .. //depot/projects/uart/netipx/spx_usrreq.c#12 integrate .. //depot/projects/uart/netkey/keysock.c#9 integrate .. //depot/projects/uart/netnatm/natm.c#9 integrate .. //depot/projects/uart/nfsclient/nfs_vfsops.c#12 integrate .. //depot/projects/uart/sys/protosw.h#8 integrate .. //depot/projects/uart/sys/socketvar.h#11 integrate Differences ... ==== //depot/projects/uart/amd64/conf/GENERIC#15 (text+ko) ==== @@ -16,7 +16,7 @@ # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # -# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.450 2006/03/29 09:57:21 scottl Exp $ +# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.451 2006/03/31 23:04:48 emax Exp $ cpu HAMMER ident GENERIC @@ -148,6 +148,8 @@ device atkbd # AT keyboard device psm # PS/2 mouse +device kbdmux # keyboard multiplexer + device vga # VGA video card driver device splash # Splash screen and screen saver support ==== //depot/projects/uart/boot/forth/beastie.4th#7 (text+ko) ==== @@ -23,7 +23,7 @@ \ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF \ SUCH DAMAGE. \ -\ $FreeBSD: src/sys/boot/forth/beastie.4th,v 1.11 2005/10/30 05:36:23 scottl Exp $ +\ $FreeBSD: src/sys/boot/forth/beastie.4th,v 1.12 2006/03/31 21:36:17 scottl Exp $ marker task-beastie.4th @@ -40,7 +40,6 @@ variable bootkey variable bootacpikey -variable bootusbkey variable bootsafekey variable bootverbosekey variable bootsinglekey @@ -196,12 +195,6 @@ printmenuitem ." Boot FreeBSD in single user mode" bootsinglekey ! printmenuitem ." Boot FreeBSD with verbose logging" bootverbosekey ! printmenuitem ." Escape to loader prompt" escapekey ! - s" arch-i386" environment? if - drop - printmenuitem ." Boot FreeBSD with USB keyboard" bootusbkey ! - else - -2 bootusbkey ! - then printmenuitem ." Reboot" rebootkey ! menuX @ 20 at-xy ." Select option, [Enter] for default" @@ -267,10 +260,6 @@ then 0 boot then - dup bootusbkey @ = if - s" 0x1" s" hint.atkbd.0.flags" setenv - 0 boot - then dup bootsafekey @ = if s" arch-i386" environment? if drop @@ -283,6 +272,7 @@ s" 0" s" hw.ata.atapi_dma" setenv s" 0" s" hw.ata.wc" setenv s" 0" s" hw.eisa_slots" setenv + s" 1" s" hint.kbdmux.0.disabled" setenv 0 boot then dup bootverbosekey @ = if ==== //depot/projects/uart/compat/linux/linux_socket.c#11 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_socket.c,v 1.66 2006/03/21 21:56:04 netchild Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_socket.c,v 1.67 2006/04/01 15:25:01 rwatson Exp $"); /* XXX we use functions that might not exist. */ #include "opt_compat.h" @@ -662,6 +662,10 @@ * Linux doesn't return EISCONN the first time it occurs, * when on a non-blocking socket. Instead it returns the * error getsockopt(SOL_SOCKET, SO_ERROR) would return on BSD. + * + * XXXRW: Instead of using fgetsock(), check that it is a + * socket and use the file descriptor reference instead of + * creating a new one. */ NET_LOCK_GIANT(); error = fgetsock(td, linux_args.s, &so, &fflag); ==== //depot/projects/uart/compat/svr4/svr4_stream.c#8 (text+ko) ==== @@ -36,7 +36,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_stream.c,v 1.56 2005/09/28 07:03:02 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_stream.c,v 1.57 2006/04/01 15:25:01 rwatson Exp $"); #include "opt_compat.h" #include "opt_ktrace.h" @@ -167,6 +167,10 @@ struct uio *ktruio = NULL; #endif + /* + * XXXRW: Instead of using fgetsock(), just rely on the file + * descriptor reference. + */ if ((error = fgetsock(td, s, &so, NULL)) != 0) return (error); @@ -263,6 +267,10 @@ struct uio *ktruio = NULL; #endif + /* + * XXXRW: Instead of using fgetsock(), just rely on the file + * descriptor reference. + */ if ((error = fgetsock(td, s, &so, NULL)) != 0) return (error); ==== //depot/projects/uart/conf/files.powerpc#8 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.powerpc,v 1.50 2006/03/31 01:42:55 marcel Exp $ +# $FreeBSD: src/sys/conf/files.powerpc,v 1.51 2006/04/01 04:53:08 marcel Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -116,5 +116,6 @@ powerpc/psim/openpic_iobus.c optional psim powerpc/psim/sio_iobus.c optional sio psim +dev/scc/scc_bfe_macio.c optional scc powermac dev/zs/zs.c optional powermac zs dev/zs/zs_macio.c optional powermac zs ==== //depot/projects/uart/dev/mpt/mpt.c#12 (text+ko) ==== @@ -92,7 +92,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/mpt/mpt.c,v 1.23 2006/03/26 07:16:17 mjacob Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/mpt/mpt.c,v 1.24 2006/04/01 07:12:18 mjacob Exp $"); #include #include /* XXX For static handler registration */ @@ -477,12 +477,12 @@ req->state &= ~REQ_STATE_QUEUED; req->state |= REQ_STATE_DONE; TAILQ_REMOVE(&mpt->request_pending_list, req, links); - - if ((req->state & REQ_STATE_NEED_WAKEUP) != 0) + if ((req->state & REQ_STATE_NEED_WAKEUP) != 0) { wakeup(req); + } } - return (/*free_reply*/TRUE); + return (TRUE); } static int @@ -490,7 +490,7 @@ uint32_t reply_desc, MSG_DEFAULT_REPLY *reply_frame) { /* Nothing to be done. */ - return (/*free_reply*/TRUE); + return (TRUE); } static int @@ -499,11 +499,8 @@ { int free_reply; - if (reply_frame == NULL) { - mpt_prt(mpt, "Event Handler: req %p:%u - Unexpected NULL reply\n", - req, req->serno); - return (/*free_reply*/TRUE); - } + KASSERT(reply_frame != NULL, ("null reply in mpt_event_reply_handler")); + KASSERT(req != NULL, ("null request in mpt_event_reply_handler")); free_reply = TRUE; switch (reply_frame->Function) { @@ -535,7 +532,7 @@ uint32_t context; context = htole32(req->index|MPT_REPLY_HANDLER_EVENTS); - ack_req = mpt_get_request(mpt, /*sleep_ok*/FALSE); + ack_req = mpt_get_request(mpt, FALSE); if (ack_req == NULL) { struct mpt_evtf_record *evtf; @@ -546,32 +543,59 @@ break; } mpt_send_event_ack(mpt, ack_req, msg, context); + /* + * Don't check for CONTINUATION_REPLY here + */ + return (free_reply); } break; } case MPI_FUNCTION_PORT_ENABLE: - mpt_lprt(mpt, MPT_PRT_DEBUG, "enable port reply\n"); + mpt_lprt(mpt, MPT_PRT_DEBUG , "enable port reply\n"); break; case MPI_FUNCTION_EVENT_ACK: break; default: - mpt_prt(mpt, "Unknown Event Function: %x\n", + mpt_prt(mpt, "unknown event function: %x\n", reply_frame->Function); break; } - if (req != NULL - && (reply_frame->MsgFlags & MPI_MSGFLAGS_CONTINUATION_REPLY) == 0) { - - req->state &= ~REQ_STATE_QUEUED; - req->state |= REQ_STATE_DONE; + /* + * I'm not sure that this continuation stuff works as it should. + * + * I've had FC async events occur that free the frame up because + * the continuation bit isn't set, and then additional async events + * then occur using the same context. As you might imagine, this + * leads to Very Bad Thing. + * + * Let's just be safe for now and not free them up until we figure + * out what's actually happening here. + */ +#if 0 + if ((reply_frame->MsgFlags & MPI_MSGFLAGS_CONTINUATION_REPLY) == 0) { TAILQ_REMOVE(&mpt->request_pending_list, req, links); - - if ((req->state & REQ_STATE_NEED_WAKEUP) != 0) - wakeup(req); - else - mpt_free_request(mpt, req); + mpt_free_request(mpt, req); + mpt_prt(mpt, "event_reply %x for req %p:%u NOT a continuation", + reply_frame->Function, req, req->serno); + if (reply_frame->Function == MPI_FUNCTION_EVENT_NOTIFICATION) { + MSG_EVENT_NOTIFY_REPLY *msg = + (MSG_EVENT_NOTIFY_REPLY *)reply_frame; + mpt_prtc(mpt, " Event=0x%x AckReq=%d", + msg->Event, msg->AckRequired); + } + } else { + mpt_prt(mpt, "event_reply %x for %p:%u IS a continuation", + reply_frame->Function, req, req->serno); + if (reply_frame->Function == MPI_FUNCTION_EVENT_NOTIFICATION) { + MSG_EVENT_NOTIFY_REPLY *msg = + (MSG_EVENT_NOTIFY_REPLY *)reply_frame; + mpt_prtc(mpt, " Event=0x%x AckReq=%d", + msg->Event, msg->AckRequired); + } + mpt_prtc(mpt, "\n"); } +#endif return (free_reply); } @@ -609,10 +633,10 @@ case MPI_EVENT_SAS_DEVICE_STATUS_CHANGE: break; default: - return (/*handled*/0); + return (0); break; } - return (/*handled*/1); + return (1); } static void @@ -622,7 +646,7 @@ MSG_EVENT_ACK *ackp; ackp = (MSG_EVENT_ACK *)ack_req->req_vbuf; - bzero(ackp, sizeof *ackp); + memset(ackp, 0, sizeof (*ackp)); ackp->Function = MPI_FUNCTION_EVENT_ACK; ackp->Event = msg->Event; ackp->EventContext = msg->EventContext; @@ -637,6 +661,7 @@ { struct mpt_softc *mpt; uint32_t reply_desc; + uint32_t last_reply_desc = MPT_REPLY_EMPTY; int ntrips = 0; mpt = (struct mpt_softc *)arg; @@ -649,6 +674,15 @@ u_int req_index; int free_rf; + if (reply_desc == last_reply_desc) { + mpt_prt(mpt, "debounce reply_desc 0x%x\n", reply_desc); + if (ntrips++ == 1000) { + break; + } + continue; + } + last_reply_desc = reply_desc; + req = NULL; reply_frame = NULL; reply_baddr = 0; @@ -657,7 +691,7 @@ /* * Insure that the reply frame is coherent. */ - reply_baddr = (reply_desc << 1); + reply_baddr = MPT_REPLY_BADDR(reply_desc); offset = reply_baddr - (mpt->reply_phys & 0xFFFFFFFF); bus_dmamap_sync_range(mpt->reply_dmat, mpt->reply_dmap, offset, MPT_REPLY_SIZE, @@ -732,13 +766,17 @@ req_index = MPT_CONTEXT_TO_REQI(ctxt_idx); if (req_index < MPT_MAX_REQUESTS(mpt)) { req = &mpt->request_pool[req_index]; + } else { + mpt_prt(mpt, "WARN: mpt_intr index == %d (reply_desc ==" + " 0x%x)\n", req_index, reply_desc); } free_rf = mpt_reply_handlers[cb_index](mpt, req, reply_desc, reply_frame); - if (reply_frame != NULL && free_rf) + if (reply_frame != NULL && free_rf) { mpt_free_reply(mpt, reply_baddr); + } /* * If we got ourselves disabled, don't get stuck in a loop @@ -761,12 +799,13 @@ MSG_DEFAULT_REPLY ioc_status_frame; request_t *req; - bzero(&ioc_status_frame, sizeof(ioc_status_frame)); + memset(&ioc_status_frame, 0, sizeof(ioc_status_frame)); ioc_status_frame.MsgLength = roundup2(sizeof(ioc_status_frame), 4); ioc_status_frame.IOCStatus = iocstatus; while((req = TAILQ_FIRST(chain)) != NULL) { MSG_REQUEST_HEADER *msg_hdr; u_int cb_index; + TAILQ_REMOVE(chain, req, links); msg_hdr = (MSG_REQUEST_HEADER *)req->req_vbuf; ioc_status_frame.Function = msg_hdr->Function; @@ -784,7 +823,6 @@ void mpt_dump_reply_frame(struct mpt_softc *mpt, MSG_DEFAULT_REPLY *reply_frame) { - mpt_prt(mpt, "Address Reply:\n"); mpt_print_reply(reply_frame); } @@ -1072,7 +1110,7 @@ pers->reset(mpt, ret); } - if (reinit != 0) { + if (reinit) { ret = mpt_enable_ioc(mpt, 1); if (ret == MPT_OK) { mpt_enable_ints(mpt); @@ -1100,13 +1138,18 @@ req->chain = NULL; mpt_free_request(mpt, nxt); /* NB: recursion */ } - req->serno = 0; + + KASSERT(req->state != REQ_STATE_FREE, ("freeing free request")); + KASSERT(!(req->state & REQ_STATE_LOCKED), ("freeing locked request")); + req->ccb = NULL; - req->state = REQ_STATE_FREE; + if (LIST_EMPTY(&mpt->ack_frames)) { /* * Insert free ones at the tail */ + req->serno = 0; + req->state = REQ_STATE_FREE; TAILQ_INSERT_TAIL(&mpt->request_free_list, req, links); if (mpt->getreqwaiter != 0) { mpt->getreqwaiter = 0; @@ -1120,6 +1163,10 @@ */ record = LIST_FIRST(&mpt->ack_frames); LIST_REMOVE(record, links); + req->state = REQ_STATE_ALLOCATED; + if ((req->serno = mpt->sequence++) == 0) { + req->serno = mpt->sequence++; + } mpt_send_event_ack(mpt, req, &record->reply, record->context); reply_baddr = (uint32_t)((uint8_t *)record - mpt->reply) + (mpt->reply_phys & 0xFFFFFFFF); @@ -1137,16 +1184,20 @@ if (req != NULL) { KASSERT(req == &mpt->request_pool[req->index], ("mpt_get_request: corrupted request free list\n")); + KASSERT(req->state == REQ_STATE_FREE, + ("req not free on free list %x", req->state)); TAILQ_REMOVE(&mpt->request_free_list, req, links); req->state = REQ_STATE_ALLOCATED; req->chain = NULL; - req->serno = mpt->sequence++; + if ((req->serno = mpt->sequence++) == 0) { + req->serno = mpt->sequence++; + } } else if (sleep_ok != 0) { mpt->getreqwaiter = 1; mpt_sleep(mpt, &mpt->request_free_list, PUSER, "mptgreq", 0); goto retry; } - return req; + return (req); } /* Pass the command to the IOC */ @@ -1339,11 +1390,21 @@ *data16++ = mpt_read(mpt, MPT_OFFSET_DOORBELL) & MPT_DB_DATA_MASK; mpt_write(mpt, MPT_OFFSET_INTR_STATUS, 0); - /* With the second word, we can now look at the length */ - if (((reply_len >> 1) != hdr->MsgLength)) { + /* + * With the second word, we can now look at the length. + * Warn about a reply that's too short (except for IOC FACTS REPLY) + */ + if ((reply_len >> 1) != hdr->MsgLength && + (hdr->Function != MPI_FUNCTION_IOC_FACTS)){ +#if __FreeBSD_version >= 500000 + mpt_prt(mpt, "reply length does not match message length: " + "got %x; expected %x for function %x\n", + hdr->MsgLength << 2, reply_len << 1, hdr->Function); +#else mpt_prt(mpt, "reply length does not match message length: " - "got 0x%02x, expected 0x%02zx\n", - hdr->MsgLength << 2, reply_len << 1); + "got %x; expected %zx for function %x\n", + hdr->MsgLength << 2, reply_len << 1, hdr->Function); +#endif } /* Get rest of the reply; but don't overflow the provided buffer */ @@ -1386,7 +1447,7 @@ MSG_IOC_FACTS f_req; int error; - bzero(&f_req, sizeof f_req); + memset(&f_req, 0, sizeof f_req); f_req.Function = MPI_FUNCTION_IOC_FACTS; f_req.MsgContext = htole32(MPT_REPLY_HANDLER_HANDSHAKE); error = mpt_send_handshake_cmd(mpt, sizeof f_req, &f_req); @@ -1426,7 +1487,7 @@ MSG_IOC_INIT init; MSG_IOC_INIT_REPLY reply; - bzero(&init, sizeof init); + memset(&init, 0, sizeof init); init.WhoInit = who; init.Function = MPI_FUNCTION_IOC_INIT; if (mpt->is_fc) { @@ -1644,10 +1705,17 @@ if (rv) return (rv); +#if __FreeBSD_version >= 500000 mpt_lprt(mpt, MPT_PRT_DEBUG, "IOC Page 2 Header: ver %x, len %zx, " "num %x, type %x\n", hdr.PageVersion, hdr.PageLength * sizeof(uint32_t), hdr.PageNumber, hdr.PageType); +#else + mpt_lprt(mpt, MPT_PRT_DEBUG, "IOC Page 2 Header: ver %x, len %z, " + "num %x, type %x\n", hdr.PageVersion, + hdr.PageLength * sizeof(uint32_t), + hdr.PageNumber, hdr.PageType); +#endif len = hdr.PageLength * sizeof(uint32_t); mpt->ioc_page2 = malloc(len, M_DEVBUF, M_NOWAIT | M_ZERO); @@ -1788,7 +1856,7 @@ return (-1); enable_req = req->req_vbuf; - bzero(enable_req, MPT_RQSL(mpt)); + memset(enable_req, 0, MPT_RQSL(mpt)); enable_req->Function = MPI_FUNCTION_PORT_ENABLE; enable_req->MsgContext = htole32(req->index | MPT_REPLY_HANDLER_CONFIG); @@ -1812,9 +1880,6 @@ /* * Enable/Disable asynchronous event reporting. - * - * NB: this is the first command we send via shared memory - * instead of the handshake register. */ static int mpt_send_event_request(struct mpt_softc *mpt, int onoff) @@ -1822,20 +1887,24 @@ request_t *req; MSG_EVENT_NOTIFY *enable_req; - req = mpt_get_request(mpt, /*sleep_ok*/FALSE); - + req = mpt_get_request(mpt, FALSE); + if (req == NULL) { + return (ENOMEM); + } enable_req = req->req_vbuf; - bzero(enable_req, sizeof *enable_req); + memset(enable_req, 0, sizeof *enable_req); enable_req->Function = MPI_FUNCTION_EVENT_NOTIFICATION; enable_req->MsgContext = htole32(req->index | MPT_REPLY_HANDLER_EVENTS); enable_req->Switch = onoff; mpt_check_doorbell(mpt); - mpt_lprt(mpt, MPT_PRT_DEBUG, - "%sabling async events\n", onoff ? "en" : "dis"); + mpt_lprt(mpt, MPT_PRT_DEBUG, "%sabling async events\n", + onoff ? "en" : "dis"); + /* + * Send the command off, but don't wait for it. + */ mpt_send_cmd(mpt, req); - return (0); } @@ -1980,8 +2049,11 @@ /* Put all request buffers on the free list */ TAILQ_INIT(&mpt->request_pending_list); TAILQ_INIT(&mpt->request_free_list); + TAILQ_INIT(&mpt->request_timeout_list); for (val = 0; val < MPT_MAX_REQUESTS(mpt); val++) { - mpt_free_request(mpt, &mpt->request_pool[val]); + request_t *req = &mpt->request_pool[val]; + req->state = REQ_STATE_ALLOCATED; + mpt_free_request(mpt, req); } for (val = 0; val < MPT_MAX_LUNS; val++) { @@ -2462,7 +2534,8 @@ /* - * Enable the port if asked + * Enable the port if asked. This is only done if we're resetting + * the IOC after initial startup. */ if (portenable) { /* ==== //depot/projects/uart/dev/mpt/mpt.h#9 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/mpt/mpt.h,v 1.13 2006/03/25 07:08:26 mjacob Exp $ */ +/* $FreeBSD: src/sys/dev/mpt/mpt.h,v 1.14 2006/04/01 07:12:18 mjacob Exp $ */ /*- * Generic defines for LSI '909 FC adapters. * FreeBSD Version. @@ -278,12 +278,14 @@ /**************************** MPI Transaction State ***************************/ typedef enum { - REQ_STATE_FREE = 0x00, - REQ_STATE_ALLOCATED = 0x01, - REQ_STATE_QUEUED = 0x02, - REQ_STATE_DONE = 0x04, - REQ_STATE_TIMEDOUT = 0x08, - REQ_STATE_NEED_WAKEUP = 0x10, + REQ_STATE_NIL = 0x00, + REQ_STATE_FREE = 0x01, + REQ_STATE_ALLOCATED = 0x02, + REQ_STATE_QUEUED = 0x04, + REQ_STATE_DONE = 0x08, + REQ_STATE_TIMEDOUT = 0x10, + REQ_STATE_NEED_WAKEUP = 0x20, + REQ_STATE_LOCKED = 0x80, /* can't be freed */ REQ_STATE_MASK = 0xFF } mpt_req_state_t; @@ -292,7 +294,7 @@ mpt_req_state_t state; /* Request State Information */ uint16_t index; /* Index of this entry */ uint16_t IOCStatus; /* Completion status */ - uint16_t serno; /* serial number */ + uint32_t serno; /* serial number */ union ccb *ccb; /* CAM request */ void *req_vbuf; /* Virtual Address of Entry */ void *sense_vbuf; /* Virtual Address of sense data */ @@ -310,11 +312,11 @@ uint32_t bytes_xfered; /* current relative offset */ union ccb *ccb; /* pointer to currently active ccb */ request_t *req; /* pointer to currently active assist request */ - int flags; -#define BOGUS_JO 0x01 int nxfers; + uint32_t tag_id; enum { TGT_STATE_NIL, + TGT_STATE_LOADING, TGT_STATE_LOADED, TGT_STATE_IN_CAM, TGT_STATE_SETTING_UP_FOR_DATA, @@ -335,12 +337,12 @@ * which owns the incoming ATIO plus a rolling sequence number. */ #define MPT_MAKE_TAGID(mpt, req, ioindex) \ - ((ioindex << 16) | (mpt->sequence++)) + ((ioindex << 18) | (((mpt->sequence++) & 0x3f) << 12) | (req->index & 0xfff)) #ifdef INVARIANTS #define MPT_TAG_2_REQ(a, b) mpt_tag_2_req(a, (uint32_t) b) #else -#define MPT_TAG_2_REQ(mpt, tag) mpt->tgt_cmd_ptrs[tag >> 16] +#define MPT_TAG_2_REQ(mpt, tag) mpt->tgt_cmd_ptrs[tag >> 18] #endif #define MPT_TGT_STATE(mpt, req) ((mpt_tgt_state_t *) \ @@ -509,6 +511,7 @@ uint8_t mpt_max_devices; uint8_t mpt_max_buses; uint8_t ioc_facts_flags; + uint8_t padding0; /* * Port Facts @@ -615,11 +618,6 @@ struct req_queue request_pending_list; struct req_queue request_timeout_list; - /* - * Deferred frame acks due to resource shortage. - */ - struct mpt_evtf_list ack_frames; - struct cam_sim *sim; struct cam_path *path; @@ -631,6 +629,10 @@ request_t *tmf_req; /* + * Deferred frame acks due to resource shortage. + */ + struct mpt_evtf_list ack_frames; + /* * Target Mode Support */ uint32_t scsi_tgt_handler_id; @@ -644,13 +646,11 @@ tgt_resource_t trt_wildcard; /* wildcard luns */ tgt_resource_t trt[MPT_MAX_LUNS]; uint16_t tgt_cmds_allocated; + uint16_t padding1; - /* - * Stuff.. - */ - uint16_t sequence; /* Sequence Number */ uint16_t timeouts; /* timeout count */ uint16_t success; /* successes afer timeout */ + uint32_t sequence; /* Sequence Number */ /* Opposing port in a 929 or 1030, or NULL */ @@ -806,18 +806,12 @@ #define MPT_SENSE_SIZE 32 /* included in MPT_REQUEST_AREA */ #define MPT_REQ_MEM_SIZE(mpt) (MPT_MAX_REQUESTS(mpt) * MPT_REQUEST_AREA) -/* - * Currently we try to pack both callbacks and request indices into 14 bits - * so that we don't have to get fancy when we get a target mode context - * reply (which only has 14 bits of IoIndex value) or a normal scsi - * initiator context reply (where we get bits 28..0 of context). - */ -#define MPT_CONTEXT_CB_SHIFT (14) +#define MPT_CONTEXT_CB_SHIFT (16) #define MPT_CBI(handle) (handle >> MPT_CONTEXT_CB_SHIFT) #define MPT_CBI_TO_HID(cbi) ((cbi) << MPT_CONTEXT_CB_SHIFT) #define MPT_CONTEXT_TO_CBI(x) \ (((x) >> MPT_CONTEXT_CB_SHIFT) & (MPT_NUM_REPLY_HANDLERS - 1)) -#define MPT_CONTEXT_REQI_MASK 0x3FFF +#define MPT_CONTEXT_REQI_MASK 0xFFFF #define MPT_CONTEXT_TO_REQI(x) ((x) & MPT_CONTEXT_REQI_MASK) /* @@ -857,8 +851,9 @@ return mpt_read(mpt, MPT_OFFSET_REPLY_Q); } -void mpt_complete_request_chain(struct mpt_softc *mpt, - struct req_queue *chain, u_int iocstatus); +void +mpt_complete_request_chain(struct mpt_softc *, struct req_queue *, u_int); + /************************** Scatter Gather Managment **************************/ /* MPT_RQSL- size of request frame, in bytes */ #define MPT_RQSL(mpt) (mpt->request_frame_size << 2) @@ -954,7 +949,7 @@ static __inline request_t * mpt_tag_2_req(struct mpt_softc *mpt, uint32_t tag) { - uint16_t rtg = (tag >> 16); + uint16_t rtg = (tag >> 18); KASSERT(rtg < mpt->tgt_cmds_allocated, ("bad tag %d\n", tag)); KASSERT(mpt->tgt_cmd_ptrs, ("no cmd backpointer array")); KASSERT(mpt->tgt_cmd_ptrs[rtg], ("no cmd backpointer")); ==== //depot/projects/uart/dev/mpt/mpt_cam.c#9 (text+ko) ==== @@ -91,7 +91,7 @@ * OWNER OR CONTRIBUTOR IS ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include -__FBSDID("$FreeBSD: src/sys/dev/mpt/mpt_cam.c,v 1.12 2006/03/25 07:08:26 mjacob Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/mpt/mpt_cam.c,v 1.13 2006/04/01 07:12:18 mjacob Exp $"); #include #include @@ -114,19 +114,18 @@ static mpt_reply_handler_t mpt_scsi_reply_handler; static mpt_reply_handler_t mpt_scsi_tmf_reply_handler; static mpt_reply_handler_t mpt_fc_els_reply_handler; -static mpt_reply_handler_t mpt_scsi_tgt_reply_handler; -static int mpt_scsi_reply_frame_handler(struct mpt_softc *mpt, request_t *req, - MSG_DEFAULT_REPLY *reply_frame); -static int mpt_bus_reset(struct mpt_softc *, int /*sleep_ok*/); +static int mpt_scsi_reply_frame_handler(struct mpt_softc *, request_t *, + MSG_DEFAULT_REPLY *); +static int mpt_bus_reset(struct mpt_softc *, int); static int mpt_fc_reset_link(struct mpt_softc *, int); static int mpt_spawn_recovery_thread(struct mpt_softc *mpt); static void mpt_terminate_recovery_thread(struct mpt_softc *mpt); static void mpt_recovery_thread(void *arg); -static int mpt_scsi_send_tmf(struct mpt_softc *, u_int /*type*/, - u_int /*flags*/, u_int /*channel*/, - u_int /*target*/, u_int /*lun*/, - u_int /*abort_ctx*/, int /*sleep_ok*/); +static void mpt_recover_commands(struct mpt_softc *mpt); + +static int mpt_scsi_send_tmf(struct mpt_softc *, u_int, u_int, u_int, + u_int, u_int, u_int, int); static void mpt_fc_add_els(struct mpt_softc *mpt, request_t *); static void mpt_post_target_command(struct mpt_softc *, request_t *, int); @@ -135,9 +134,15 @@ static int mpt_disable_lun(struct mpt_softc *, target_id_t, lun_id_t); static void mpt_target_start_io(struct mpt_softc *, union ccb *); static cam_status mpt_abort_target_ccb(struct mpt_softc *, union ccb *); -static cam_status mpt_abort_target_cmd(struct mpt_softc *, request_t *); - -static void mpt_recover_commands(struct mpt_softc *mpt); +static int mpt_abort_target_cmd(struct mpt_softc *, request_t *); +static void mpt_scsi_tgt_status(struct mpt_softc *, union ccb *, request_t *, + uint8_t, uint8_t const *); +static void +mpt_scsi_tgt_tsk_mgmt(struct mpt_softc *, request_t *, mpt_task_mgmt_t, + tgt_resource_t *, int); +static void mpt_tgt_dump_tgt_state(struct mpt_softc *, request_t *); +static void mpt_tgt_dump_req_state(struct mpt_softc *, request_t *); +static mpt_reply_handler_t mpt_scsi_tgt_reply_handler; static uint32_t scsi_io_handler_id = MPT_HANDLER_ID_NONE; static uint32_t scsi_tmf_handler_id = MPT_HANDLER_ID_NONE; @@ -257,7 +262,7 @@ /* * We keep one request reserved for timeout TMF requests. */ - mpt->tmf_req = mpt_get_request(mpt, /*sleep_ok*/FALSE); + mpt->tmf_req = mpt_get_request(mpt, FALSE); if (mpt->tmf_req == NULL) { mpt_prt(mpt, "Unable to allocate dedicated TMF request!\n"); error = ENOMEM; @@ -435,6 +440,10 @@ U32 fl; int r, doit = 0; + if ((mpt->role & MPT_ROLE_TARGET) == 0) { + return (0); + } + r = mpt_read_cfg_header(mpt, MPI_CONFIG_PAGETYPE_FC_PORT, 1, 0, &fc.Header, FALSE, 5000); if (r) { @@ -478,6 +487,10 @@ } mpt_prt(mpt, cc); } +#else + if ((mpt->role & MPT_ROLE_TARGET) == 0) { + return (0); + } #endif return (mpt_fc_reset_link(mpt, 1)); } @@ -822,17 +835,12 @@ request_t *req; ccb = (union ccb *)arg; -#ifdef NOTYET - mpt = mpt_find_softc(mpt); - if (mpt == NULL) - return; -#else mpt = ccb->ccb_h.ccb_mpt_ptr; -#endif MPT_LOCK(mpt); req = ccb->ccb_h.ccb_req_ptr; - mpt_prt(mpt, "Request %p Timed out.\n", req); + mpt_prt(mpt, "request %p:%u timed out for ccb %p (req->ccb %p)\n", req, + req->serno, ccb, req->ccb); if ((req->state & REQ_STATE_QUEUED) == REQ_STATE_QUEUED) { TAILQ_REMOVE(&mpt->request_pending_list, req, links); TAILQ_INSERT_TAIL(&mpt->request_timeout_list, req, links); @@ -993,7 +1001,7 @@ for (seg = 0; seg < first_lim; seg++, se++, dm_segs++) { uint32_t tf; - bzero(se, sizeof (*se)); + memset(se, 0, sizeof (*se)); se->Address.Low = dm_segs->ds_addr; if (sizeof(bus_addr_t) > 4) { se->Address.High = ((uint64_t) dm_segs->ds_addr) >> 32; @@ -1061,7 +1069,7 @@ /* * Now initialized the chain descriptor. */ - bzero(ce, sizeof (SGE_CHAIN64)); + memset(ce, 0, sizeof (*ce)); /* * Get the physical address of the chain list. @@ -1108,7 +1116,7 @@ * set the end of list and end of buffer flags. */ while (seg < this_seg_lim) { - bzero(se, sizeof (*se)); + memset(se, 0, sizeof (*se)); se->Address.Low = dm_segs->ds_addr; if (sizeof (bus_addr_t) > 4) { se->Address.High = @@ -1369,7 +1377,7 @@ for (seg = 0; seg < first_lim; seg++, se++, dm_segs++) { uint32_t tf; - bzero(se, sizeof (*se)); + memset(se, 0,sizeof (*se)); se->Address = dm_segs->ds_addr; MPI_pSGE_SET_LENGTH(se, dm_segs->ds_len); tf = flags; @@ -1434,7 +1442,7 @@ /* * Now initialized the chain descriptor. */ - bzero(ce, sizeof (SGE_CHAIN32)); + memset(ce, 0, sizeof (*ce)); /* * Get the physical address of the chain list. @@ -1476,7 +1484,7 @@ * set the end of list and end of buffer flags. */ while (seg < this_seg_lim) { - bzero(se, sizeof (*se)); + memset(se, 0, sizeof (*se)); se->Address = dm_segs->ds_addr; MPI_pSGE_SET_LENGTH(se, dm_segs->ds_len); tf = flags; @@ -1604,8 +1612,7 @@ raid_passthru = (sim == mpt->phydisk_sim); CAMLOCK_2_MPTLOCK(mpt); - /* Get a request structure off the free list */ - if ((req = mpt_get_request(mpt, /*sleep_ok*/FALSE)) == NULL) { + if ((req = mpt_get_request(mpt, FALSE)) == NULL) { if (mpt->outofbeer == 0) { mpt->outofbeer = 1; xpt_freeze_simq(mpt->sim, 1); @@ -1642,15 +1649,13 @@ /* Now we build the command for the IOC */ mpt_req = req->req_vbuf; - bzero(mpt_req, sizeof *mpt_req); + memset(mpt_req, 0, sizeof (MSG_SCSI_IO_REQUEST)); mpt_req->Function = MPI_FUNCTION_SCSI_IO_REQUEST; if (raid_passthru) { mpt_req->Function = MPI_FUNCTION_RAID_SCSI_IO_PASSTHROUGH; } - mpt_req->Bus = 0; /* we don't have multiport devices yet */ - mpt_req->SenseBufferLength = >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Apr 1 20:00:14 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 30CF316A428; Sat, 1 Apr 2006 20:00:14 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E158716A423 for ; Sat, 1 Apr 2006 20:00:13 +0000 (UTC) (envelope-from alc@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id CB6D943D48 for ; Sat, 1 Apr 2006 20:00:10 +0000 (GMT) (envelope-from alc@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k31K0A31050245 for ; Sat, 1 Apr 2006 20:00:10 GMT (envelope-from alc@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k31JxbTP050174 for perforce@freebsd.org; Sat, 1 Apr 2006 19:59:37 GMT (envelope-from alc@freebsd.org) Date: Sat, 1 Apr 2006 19:59:37 GMT Message-Id: <200604011959.k31JxbTP050174@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to alc@freebsd.org using -f From: Alan Cox To: Perforce Change Reviews Cc: Subject: PERFORCE change 94419 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 01 Apr 2006 20:00:14 -0000 http://perforce.freebsd.org/chv.cgi?CH=94419 Change 94419 by alc@alc_home on 2006/04/01 19:58:56 IFC Affected files ... .. //depot/projects/superpages/doc/de_DE.ISO8859-1/books/faq/book.sgml#4 integrate .. //depot/projects/superpages/doc/de_DE.ISO8859-1/books/fdp-primer/book.sgml#2 integrate .. //depot/projects/superpages/doc/de_DE.ISO8859-1/books/fdp-primer/translations/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/de_DE.ISO8859-1/books/handbook/Makefile#3 integrate .. //depot/projects/superpages/doc/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.sgml#3 integrate .. //depot/projects/superpages/doc/de_DE.ISO8859-1/books/handbook/audit/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/de_DE.ISO8859-1/books/handbook/book.sgml#3 integrate .. //depot/projects/superpages/doc/de_DE.ISO8859-1/books/handbook/boot/chapter.sgml#4 integrate .. //depot/projects/superpages/doc/de_DE.ISO8859-1/books/handbook/chapters.ent#2 integrate .. //depot/projects/superpages/doc/de_DE.ISO8859-1/books/handbook/config/chapter.sgml#3 integrate .. //depot/projects/superpages/doc/de_DE.ISO8859-1/books/handbook/desktop/chapter.sgml#3 integrate .. //depot/projects/superpages/doc/de_DE.ISO8859-1/books/handbook/disks/chapter.sgml#3 integrate .. //depot/projects/superpages/doc/de_DE.ISO8859-1/books/handbook/firewalls/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/de_DE.ISO8859-1/books/handbook/introduction/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/de_DE.ISO8859-1/books/handbook/kernelconfig/chapter.sgml#3 integrate .. //depot/projects/superpages/doc/de_DE.ISO8859-1/books/handbook/l10n/chapter.sgml#3 integrate .. //depot/projects/superpages/doc/de_DE.ISO8859-1/books/handbook/linuxemu/chapter.sgml#3 integrate .. //depot/projects/superpages/doc/de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml#3 integrate .. //depot/projects/superpages/doc/de_DE.ISO8859-1/books/handbook/multimedia/chapter.sgml#4 integrate .. //depot/projects/superpages/doc/de_DE.ISO8859-1/books/handbook/network-servers/chapter.sgml#4 integrate .. //depot/projects/superpages/doc/de_DE.ISO8859-1/books/handbook/ports/chapter.sgml#4 integrate .. //depot/projects/superpages/doc/de_DE.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml#3 integrate .. //depot/projects/superpages/doc/de_DE.ISO8859-1/books/handbook/security/chapter.sgml#4 integrate .. //depot/projects/superpages/doc/de_DE.ISO8859-1/books/handbook/serialcomms/chapter.sgml#4 integrate .. //depot/projects/superpages/doc/de_DE.ISO8859-1/books/handbook/users/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/articles/Makefile#5 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/articles/checkpoint/Makefile#2 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/articles/checkpoint/article.sgml#2 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/articles/committers-guide/article.sgml#3 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/articles/contributing/article.sgml#2 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/articles/contributors/article.sgml#2 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/articles/contributors/contrib.additional.sgml#9 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/articles/contributors/contrib.committers.sgml#6 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/articles/contributors/contrib.develalumni.sgml#4 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/articles/contributors/contrib.staff.sgml#5 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/articles/contributors/contrib.who.sgml#4 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/articles/dialup-firewall/article.sgml#2 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/articles/hubs/article.sgml#2 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/articles/java-tomcat/Makefile#2 delete .. //depot/projects/superpages/doc/en_US.ISO8859-1/articles/java-tomcat/article.sgml#2 delete .. //depot/projects/superpages/doc/en_US.ISO8859-1/articles/p4-primer/article.sgml#3 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/articles/pam/article.sgml#2 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/articles/problem-reports/article.sgml#4 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/articles/releng-packages/article.sgml#2 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/articles/releng/article.sgml#3 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/articles/wp-toolbox/Makefile#1 branch .. //depot/projects/superpages/doc/en_US.ISO8859-1/articles/wp-toolbox/article.sgml#1 branch .. //depot/projects/superpages/doc/en_US.ISO8859-1/books/dev-model/book.sgml#2 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/books/developers-handbook/book.sgml#2 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/books/faq/book.sgml#3 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/books/fdp-primer/book.sgml#2 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/books/fdp-primer/translations/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/books/handbook/advanced-networking/chapter.sgml#3 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/books/handbook/audit/chapter.sgml#3 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/books/handbook/basics/chapter.sgml#4 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/books/handbook/boot/chapter.sgml#5 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/books/handbook/config/chapter.sgml#3 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/books/handbook/desktop/chapter.sgml#4 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/books/handbook/disks/chapter.sgml#3 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/books/handbook/firewalls/chapter.sgml#3 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/books/handbook/geom/chapter.sgml#4 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/books/handbook/introduction/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/books/handbook/l10n/chapter.sgml#4 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/books/handbook/linuxemu/chapter.sgml#3 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/books/handbook/mac/chapter.sgml#3 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/books/handbook/mirrors/chapter.sgml#6 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/books/handbook/network-servers/chapter.sgml#4 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/books/handbook/ports/chapter.sgml#4 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml#3 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/books/handbook/security/chapter.sgml#5 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/books/handbook/serialcomms/chapter.sgml#3 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/books/handbook/vinum/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/books/handbook/x11/chapter.sgml#3 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/books/pmake/answers/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/books/pmake/basics/chapter.sgml#3 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/books/pmake/shortcuts/chapter.sgml#3 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/books/porters-handbook/book.sgml#8 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/share/sgml/authors.ent#6 integrate .. //depot/projects/superpages/doc/fr_FR.ISO8859-1/books/handbook/advanced-networking/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/fr_FR.ISO8859-1/books/handbook/basics/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/fr_FR.ISO8859-1/books/handbook/book.sgml#3 integrate .. //depot/projects/superpages/doc/fr_FR.ISO8859-1/books/handbook/boot/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/fr_FR.ISO8859-1/books/handbook/desktop/chapter.sgml#4 integrate .. //depot/projects/superpages/doc/fr_FR.ISO8859-1/books/handbook/install/chapter.sgml#3 integrate .. //depot/projects/superpages/doc/fr_FR.ISO8859-1/books/handbook/kernelconfig/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/fr_FR.ISO8859-1/books/handbook/ports/chapter.sgml#3 integrate .. //depot/projects/superpages/doc/fr_FR.ISO8859-1/books/handbook/x11/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/articles/Makefile#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/articles/contributing/article.sgml#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/articles/contributors/Makefile#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/articles/contributors/article.sgml#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/articles/fbsd-from-scratch/Makefile#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/articles/fbsd-from-scratch/stage_1.conf.default#1 branch .. //depot/projects/superpages/doc/ja_JP.eucJP/articles/fbsd-from-scratch/stage_1.sh#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/articles/fbsd-from-scratch/stage_2.conf.default#1 branch .. //depot/projects/superpages/doc/ja_JP.eucJP/articles/fbsd-from-scratch/stage_2.sh#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/articles/fbsd-from-scratch/stage_3.mk#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/articles/fonts/article.sgml#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/books/design-44bsd/book.sgml#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/books/handbook/Makefile#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/books/handbook/authors.ent#2 delete .. //depot/projects/superpages/doc/ja_JP.eucJP/books/handbook/basics/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/books/handbook/bibliography/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/books/handbook/book.sgml#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/books/handbook/boot/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/books/handbook/config/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/books/handbook/cutting-edge/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/books/handbook/desktop/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/books/handbook/disks/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/books/handbook/eresources/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/books/handbook/introduction/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/books/handbook/jauthors.ent#2 delete .. //depot/projects/superpages/doc/ja_JP.eucJP/books/handbook/kernelconfig/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/books/handbook/l10n/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/books/handbook/multimedia/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/books/handbook/newsgroups.ent#2 delete .. //depot/projects/superpages/doc/ja_JP.eucJP/books/handbook/ports/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/books/handbook/preface/preface.sgml#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/books/handbook/printing/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/books/handbook/security/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man1/Makefile#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man1/bsdtar.1#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man1/bsnmpd.1#1 branch .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man1/bthost.1#1 branch .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man1/btsockstat.1#1 branch .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man1/fdread.1#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man1/find.1#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man1/fstat.1#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man1/gensnmptree.1#1 branch .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man1/hesinfo.1#1 branch .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man1/kgdb.1#1 branch .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man1/klist.1#1 branch .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man1/krb5-config.1#1 branch .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man1/last.1#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man1/limits.1#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man1/locate.1#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man1/ls.1#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man1/make.1#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man1/rfcomm_sppd.1#1 branch .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man1/rtld.1#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man1/scp.1#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man1/tcpdump.1#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man1/tcsh.1#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man1/vacation.1#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man1/zforce.1#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man2/kse.2#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man2/recv.2#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man3/crypt.3#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man3/intro.3#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man3/pcap.3#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man3/strstr.3#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man3/sysctl.3#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man3/syslog.3#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man3/vgl.3#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man4/Makefile#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man4/aic.4#2 delete .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man4/apm.4#2 delete .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man4/ar.4#2 delete .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man4/cs.4#2 delete .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man4/cx.4#2 delete .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man4/el.4#2 delete .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man4/ep.4#2 delete .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man4/ex.4#2 delete .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man4/fe.4#2 delete .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man4/ie.4#2 delete .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man4/io.4#2 delete .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man4/lnc.4#2 delete .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man4/man4.i386/Makefile#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man4/mcd.4#2 delete .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man4/npx.4#2 delete .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man4/pcf.4#2 delete .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man4/pcvt.4#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man4/perfmon.4#2 delete .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man4/pnp.4#2 delete .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man4/ppi.4#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man4/sa.4#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man4/scd.4#2 delete .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man4/spkr.4#2 delete .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man4/sr.4#2 delete .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man4/vx.4#2 delete .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man4/wd.4#2 delete .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man5/core.5#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man5/link.5#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man7/security.7#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man8/Makefile#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man8/apm.8#2 delete .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man8/apmd.8#2 delete .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man8/comsat.8#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man8/lptcontrol.8#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man8/man8.i386/Makefile#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man8/mknod.8#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man8/moused.8#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man8/rc.subr.8#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man8/rwhod.8#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/man/man9/style.9#2 integrate .. //depot/projects/superpages/doc/ja_JP.eucJP/share/sgml/mailing-lists.ent#2 integrate .. //depot/projects/superpages/doc/nl_NL.ISO8859-1/books/handbook/mirrors/chapter.sgml#3 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/articles/Makefile#3 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/articles/committers-guide/article.sgml#2 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/articles/contributing/article.sgml#3 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/articles/cvs-freebsd/article.sgml#2 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/articles/euro/article.sgml#2 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/articles/explaining-bsd/article.sgml#2 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/articles/formatting-media/Makefile#2 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/articles/formatting-media/article.sgml#2 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/articles/hats/article.sgml#2 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/articles/hubs/article.sgml#2 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/articles/java-tomcat/Makefile#2 delete .. //depot/projects/superpages/doc/ru_RU.KOI8-R/articles/java-tomcat/article.sgml#2 delete .. //depot/projects/superpages/doc/ru_RU.KOI8-R/articles/mailing-list-faq/article.sgml#2 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/articles/portbuild/article.sgml#2 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/articles/releng-packages/article.sgml#2 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/articles/releng/article.sgml#3 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/articles/solid-state/Makefile#2 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/articles/solid-state/article.sgml#2 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/articles/version-guide/article.sgml#2 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/books/faq/book.sgml#2 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/books/handbook/Makefile#2 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/books/handbook/advanced-networking/chapter.sgml#3 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/books/handbook/audit/Makefile#1 branch .. //depot/projects/superpages/doc/ru_RU.KOI8-R/books/handbook/audit/chapter.sgml#1 branch .. //depot/projects/superpages/doc/ru_RU.KOI8-R/books/handbook/basics/chapter.sgml#3 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/books/handbook/book.sgml#2 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/books/handbook/boot/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/books/handbook/chapters.ent#2 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/books/handbook/colophon.sgml#2 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/books/handbook/config/chapter.sgml#3 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/books/handbook/cutting-edge/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/books/handbook/desktop/chapter.sgml#3 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/books/handbook/disks/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/books/handbook/firewalls/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/books/handbook/geom/Makefile#1 branch .. //depot/projects/superpages/doc/ru_RU.KOI8-R/books/handbook/geom/chapter.sgml#1 branch .. //depot/projects/superpages/doc/ru_RU.KOI8-R/books/handbook/install/chapter.sgml#3 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/books/handbook/introduction/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/books/handbook/kernelconfig/chapter.sgml#3 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/books/handbook/l10n/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/books/handbook/linuxemu/chapter.sgml#4 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/books/handbook/mail/chapter.sgml#3 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/books/handbook/mirrors/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/books/handbook/network-servers/chapter.sgml#3 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/books/handbook/preface/preface.sgml#2 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/books/handbook/security/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/books/handbook/serialcomms/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/books/handbook/users/chapter.sgml#3 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/books/handbook/vinum/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/books/handbook/x11/chapter.sgml#3 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/share/sgml/freebsd.dsl#3 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/share/sgml/glossary/freebsd-glossary.sgml#2 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/share/sgml/transtable.xml#2 integrate .. //depot/projects/superpages/doc/share/images/books/dev-model/hats-overview.png#2 integrate .. //depot/projects/superpages/doc/share/misc/docbook.css#2 integrate .. //depot/projects/superpages/doc/share/mk/doc.docbook.mk#3 integrate .. //depot/projects/superpages/doc/share/mk/doc.html.mk#2 integrate .. //depot/projects/superpages/doc/share/pgpkeys/cel.key#1 branch .. //depot/projects/superpages/doc/share/pgpkeys/des.key#2 integrate .. //depot/projects/superpages/doc/share/pgpkeys/imp.key#3 integrate .. //depot/projects/superpages/doc/share/pgpkeys/lioux.key#2 integrate .. //depot/projects/superpages/doc/share/pgpkeys/pgpkeys-developers.sgml#2 integrate .. //depot/projects/superpages/doc/share/pgpkeys/pgpkeys.ent#5 integrate .. //depot/projects/superpages/doc/share/pgpkeys/wkoszek.key#1 branch .. //depot/projects/superpages/doc/share/sgml/freebsd.dsl#3 integrate .. //depot/projects/superpages/doc/share/sgml/man-refs.ent#6 integrate .. //depot/projects/superpages/doc/share/sgml/mirrors.xml#6 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/articles/Makefile#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/articles/contributing/article.sgml#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/Makefile#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/arch-handbook/Makefile#1 branch .. //depot/projects/superpages/doc/zh_CN.GB2312/books/arch-handbook/book.sgml#1 branch .. //depot/projects/superpages/doc/zh_CN.GB2312/books/arch-handbook/boot/chapter.sgml#1 branch .. //depot/projects/superpages/doc/zh_CN.GB2312/books/arch-handbook/chapters.ent#1 branch .. //depot/projects/superpages/doc/zh_CN.GB2312/books/arch-handbook/driverbasics/chapter.sgml#1 branch .. //depot/projects/superpages/doc/zh_CN.GB2312/books/arch-handbook/isa/chapter.sgml#1 branch .. //depot/projects/superpages/doc/zh_CN.GB2312/books/arch-handbook/jail/chapter.sgml#1 branch .. //depot/projects/superpages/doc/zh_CN.GB2312/books/arch-handbook/kobj/chapter.sgml#1 branch .. //depot/projects/superpages/doc/zh_CN.GB2312/books/arch-handbook/locking/chapter.sgml#1 branch .. //depot/projects/superpages/doc/zh_CN.GB2312/books/arch-handbook/mac.ent#1 branch .. //depot/projects/superpages/doc/zh_CN.GB2312/books/arch-handbook/mac/chapter.sgml#1 branch .. //depot/projects/superpages/doc/zh_CN.GB2312/books/arch-handbook/newbus/chapter.sgml#1 branch .. //depot/projects/superpages/doc/zh_CN.GB2312/books/arch-handbook/pccard/chapter.sgml#1 branch .. //depot/projects/superpages/doc/zh_CN.GB2312/books/arch-handbook/pci/chapter.sgml#1 branch .. //depot/projects/superpages/doc/zh_CN.GB2312/books/arch-handbook/scsi/chapter.sgml#1 branch .. //depot/projects/superpages/doc/zh_CN.GB2312/books/arch-handbook/smp/chapter.sgml#1 branch .. //depot/projects/superpages/doc/zh_CN.GB2312/books/arch-handbook/sound/chapter.sgml#1 branch .. //depot/projects/superpages/doc/zh_CN.GB2312/books/arch-handbook/sysinit/chapter.sgml#1 branch .. //depot/projects/superpages/doc/zh_CN.GB2312/books/arch-handbook/usb/chapter.sgml#1 branch .. //depot/projects/superpages/doc/zh_CN.GB2312/books/arch-handbook/vm/chapter.sgml#1 branch .. //depot/projects/superpages/doc/zh_CN.GB2312/books/handbook/Makefile#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/handbook/advanced-networking/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/handbook/audit/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/handbook/basics/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/handbook/book.sgml#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/handbook/boot/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/handbook/chapters.ent#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/handbook/config/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/handbook/cutting-edge/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/handbook/desktop/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/handbook/disks/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/handbook/eresources/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/handbook/firewalls/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/handbook/geom/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/handbook/install/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/handbook/introduction/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/handbook/kernelconfig/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/handbook/l10n/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/handbook/linuxemu/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/handbook/mac/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/handbook/mail/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/handbook/mirrors/Makefile#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/handbook/mirrors/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/handbook/multimedia/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/handbook/network-servers/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/handbook/pgpkeys/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/handbook/ports/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/handbook/ppp-and-slip/Makefile#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/handbook/ppp-and-slip/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/handbook/preface/preface.sgml#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/handbook/printing/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/handbook/security/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/handbook/serialcomms/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/handbook/users/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/handbook/vinum/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/handbook/x11/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/books/porters-handbook/book.sgml#3 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/share/mk/doc.local.mk#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/share/sgml/articles.ent#2 delete .. //depot/projects/superpages/doc/zh_CN.GB2312/share/sgml/authors-in-author-tag.ent#1 branch .. //depot/projects/superpages/doc/zh_CN.GB2312/share/sgml/authors.ent#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/share/sgml/bookinfo.ent#1 branch .. //depot/projects/superpages/doc/zh_CN.GB2312/share/sgml/books.ent#2 delete .. //depot/projects/superpages/doc/zh_CN.GB2312/share/sgml/catalog#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/share/sgml/freebsd.dsl#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/share/sgml/l10n.ent#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/share/sgml/legalnotice.sgml#1 branch .. //depot/projects/superpages/doc/zh_CN.GB2312/share/sgml/mailing-lists.ent#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/share/sgml/mirrors-local.xsl#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/share/sgml/teams.ent#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/share/sgml/trademarks.ent#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/share/sgml/trademarks.sgml#1 branch .. //depot/projects/superpages/doc/zh_CN.GB2312/share/sgml/transtable-local.xsl#2 integrate .. //depot/projects/superpages/doc/zh_CN.GB2312/share/sgml/transtable.xml#2 integrate .. //depot/projects/superpages/src/MAINTAINERS#3 integrate .. //depot/projects/superpages/src/Makefile#3 integrate .. //depot/projects/superpages/src/Makefile.inc1#4 integrate .. //depot/projects/superpages/src/ObsoleteFiles.inc#6 integrate .. //depot/projects/superpages/src/README#2 integrate .. //depot/projects/superpages/src/UPDATING#5 integrate .. //depot/projects/superpages/src/bin/Makefile#2 integrate .. //depot/projects/superpages/src/bin/Makefile.inc#2 integrate .. //depot/projects/superpages/src/bin/chflags/chflags.1#2 integrate .. //depot/projects/superpages/src/bin/csh/Makefile#2 integrate .. //depot/projects/superpages/src/bin/csh/config.h#2 integrate .. //depot/projects/superpages/src/bin/csh/iconv.h#1 branch .. //depot/projects/superpages/src/bin/csh/iconv_stub.c#1 branch .. //depot/projects/superpages/src/bin/ed/Makefile#2 integrate .. //depot/projects/superpages/src/bin/getfacl/getfacl.1#2 integrate .. //depot/projects/superpages/src/bin/getfacl/getfacl.c#2 integrate .. //depot/projects/superpages/src/bin/ln/ln.1#2 integrate .. //depot/projects/superpages/src/bin/ln/ln.c#2 integrate .. //depot/projects/superpages/src/bin/ls/cmp.c#2 integrate .. //depot/projects/superpages/src/bin/ls/extern.h#2 integrate .. //depot/projects/superpages/src/bin/ls/ls.1#3 integrate .. //depot/projects/superpages/src/bin/ls/ls.c#3 integrate .. //depot/projects/superpages/src/bin/ls/ls.h#2 integrate .. //depot/projects/superpages/src/bin/ls/print.c#2 integrate .. //depot/projects/superpages/src/bin/ls/util.c#3 integrate .. //depot/projects/superpages/src/bin/ps/keyword.c#2 integrate .. //depot/projects/superpages/src/bin/ps/print.c#2 integrate .. //depot/projects/superpages/src/contrib/bind9/FREEBSD-Upgrade#3 integrate .. //depot/projects/superpages/src/contrib/bsnmp/FREEBSD-Xlist#3 integrate .. //depot/projects/superpages/src/contrib/bsnmp/NEWS#3 integrate .. //depot/projects/superpages/src/contrib/bsnmp/TODO#2 integrate .. //depot/projects/superpages/src/contrib/bsnmp/VERSION#3 integrate .. //depot/projects/superpages/src/contrib/bsnmp/gensnmptree/gensnmptree.1#3 integrate .. //depot/projects/superpages/src/contrib/bsnmp/gensnmptree/gensnmptree.c#4 integrate .. //depot/projects/superpages/src/contrib/bsnmp/lib/asn1.c#3 integrate .. //depot/projects/superpages/src/contrib/bsnmp/lib/asn1.h#3 integrate .. //depot/projects/superpages/src/contrib/bsnmp/lib/snmpclient.c#3 integrate .. //depot/projects/superpages/src/contrib/bsnmp/lib/support.h#2 integrate .. //depot/projects/superpages/src/contrib/bsnmp/oid-list#2 integrate .. //depot/projects/superpages/src/contrib/bsnmp/snmp_mibII/BEGEMOT-IP-MIB.txt#1 branch .. //depot/projects/superpages/src/contrib/bsnmp/snmp_mibII/BEGEMOT-MIB2-MIB.txt#1 branch .. //depot/projects/superpages/src/contrib/bsnmp/snmp_mibII/mibII.c#4 integrate .. //depot/projects/superpages/src/contrib/bsnmp/snmp_mibII/mibII.h#3 integrate .. //depot/projects/superpages/src/contrib/bsnmp/snmp_mibII/mibII_begemot.c#1 branch .. //depot/projects/superpages/src/contrib/bsnmp/snmp_mibII/mibII_interfaces.c#3 integrate .. //depot/projects/superpages/src/contrib/bsnmp/snmp_mibII/mibII_route.c#3 integrate .. //depot/projects/superpages/src/contrib/bsnmp/snmp_mibII/mibII_tree.def#2 integrate .. //depot/projects/superpages/src/contrib/bsnmp/snmp_mibII/snmp_mibII.h#2 integrate .. //depot/projects/superpages/src/contrib/bsnmp/snmp_ntp/snmp_ntp.c#3 integrate .. //depot/projects/superpages/src/contrib/bsnmp/snmpd/bsnmpd.1#3 integrate .. //depot/projects/superpages/src/contrib/bsnmp/snmpd/config.c#4 integrate .. //depot/projects/superpages/src/contrib/bsnmp/snmpd/export.c#2 integrate .. //depot/projects/superpages/src/contrib/bsnmp/snmpd/main.c#5 integrate .. //depot/projects/superpages/src/contrib/bsnmp/snmpd/snmpd.config#3 integrate .. //depot/projects/superpages/src/contrib/bsnmp/snmpd/snmpmod.3#3 integrate .. //depot/projects/superpages/src/contrib/bsnmp/snmpd/snmpmod.h#3 integrate .. //depot/projects/superpages/src/contrib/csup/GNUmakefile#1 branch .. //depot/projects/superpages/src/contrib/csup/Makefile#1 branch .. //depot/projects/superpages/src/contrib/csup/README#1 branch .. //depot/projects/superpages/src/contrib/csup/TODO#1 branch .. //depot/projects/superpages/src/contrib/csup/attrstack.c#1 branch .. //depot/projects/superpages/src/contrib/csup/attrstack.h#1 branch .. //depot/projects/superpages/src/contrib/csup/config.c#1 branch .. //depot/projects/superpages/src/contrib/csup/config.h#1 branch .. //depot/projects/superpages/src/contrib/csup/csup.1#1 branch .. //depot/projects/superpages/src/contrib/csup/detailer.c#1 branch .. //depot/projects/superpages/src/contrib/csup/detailer.h#1 branch .. //depot/projects/superpages/src/contrib/csup/diff.c#1 branch .. //depot/projects/superpages/src/contrib/csup/diff.h#1 branch .. //depot/projects/superpages/src/contrib/csup/fattr.c#1 branch .. //depot/projects/superpages/src/contrib/csup/fattr.h#1 branch .. //depot/projects/superpages/src/contrib/csup/fattr_bsd.h#1 branch .. //depot/projects/superpages/src/contrib/csup/fattr_posix.h#1 branch .. //depot/projects/superpages/src/contrib/csup/fixups.c#1 branch .. //depot/projects/superpages/src/contrib/csup/fixups.h#1 branch .. //depot/projects/superpages/src/contrib/csup/fnmatch.c#1 branch .. //depot/projects/superpages/src/contrib/csup/fnmatch.h#1 branch .. //depot/projects/superpages/src/contrib/csup/globtree.c#1 branch .. //depot/projects/superpages/src/contrib/csup/globtree.h#1 branch .. //depot/projects/superpages/src/contrib/csup/idcache.c#1 branch .. //depot/projects/superpages/src/contrib/csup/idcache.h#1 branch .. //depot/projects/superpages/src/contrib/csup/keyword.c#1 branch .. //depot/projects/superpages/src/contrib/csup/keyword.h#1 branch .. //depot/projects/superpages/src/contrib/csup/lister.c#1 branch .. //depot/projects/superpages/src/contrib/csup/lister.h#1 branch .. //depot/projects/superpages/src/contrib/csup/main.c#1 branch .. //depot/projects/superpages/src/contrib/csup/main.h#1 branch .. //depot/projects/superpages/src/contrib/csup/misc.c#1 branch .. //depot/projects/superpages/src/contrib/csup/misc.h#1 branch .. //depot/projects/superpages/src/contrib/csup/mux.c#1 branch .. //depot/projects/superpages/src/contrib/csup/mux.h#1 branch .. //depot/projects/superpages/src/contrib/csup/parse.y#1 branch .. //depot/projects/superpages/src/contrib/csup/pathcomp.c#1 branch .. //depot/projects/superpages/src/contrib/csup/pathcomp.h#1 branch .. //depot/projects/superpages/src/contrib/csup/proto.c#1 branch .. //depot/projects/superpages/src/contrib/csup/proto.h#1 branch .. //depot/projects/superpages/src/contrib/csup/queue.h#1 branch .. //depot/projects/superpages/src/contrib/csup/status.c#1 branch .. //depot/projects/superpages/src/contrib/csup/status.h#1 branch .. //depot/projects/superpages/src/contrib/csup/stream.c#1 branch .. //depot/projects/superpages/src/contrib/csup/stream.h#1 branch .. //depot/projects/superpages/src/contrib/csup/threads.c#1 branch .. //depot/projects/superpages/src/contrib/csup/threads.h#1 branch .. //depot/projects/superpages/src/contrib/csup/token.h#1 branch .. //depot/projects/superpages/src/contrib/csup/token.l#1 branch .. //depot/projects/superpages/src/contrib/csup/updater.c#1 branch .. //depot/projects/superpages/src/contrib/csup/updater.h#1 branch .. //depot/projects/superpages/src/contrib/hostapd/ChangeLog#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/FREEBSD-Xlist#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/FREEBSD-upgrade#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/Makefile#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/README#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/accounting.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/aes.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/aes_wrap.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/aes_wrap.h#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/common.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/common.h#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/config.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/config.h#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/config_types.h#1 branch .. //depot/projects/superpages/src/contrib/hostapd/crypto.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/crypto.h#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/ctrl_iface.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/defconfig#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/defs.h#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/driver.h#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/driver_test.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/driver_wired.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/eap.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/eap.h#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/eap_defs.h#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/eap_i.h#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/eap_identity.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/eap_md5.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/eap_pax.c#1 branch .. //depot/projects/superpages/src/contrib/hostapd/eap_pax_common.c#1 branch .. //depot/projects/superpages/src/contrib/hostapd/eap_pax_common.h#1 branch .. //depot/projects/superpages/src/contrib/hostapd/eap_peap.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/eap_psk.c#1 branch .. //depot/projects/superpages/src/contrib/hostapd/eap_psk_common.c#1 branch .. //depot/projects/superpages/src/contrib/hostapd/eap_psk_common.h#1 branch .. //depot/projects/superpages/src/contrib/hostapd/eap_sim.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/eap_sim_common.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/eap_sim_common.h#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/eap_sim_db.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/eap_tls.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/eap_tls_common.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/eap_ttls.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/eap_ttls.h#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/eapol_sm.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/eapol_sm.h#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/eloop.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/eloop.h#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/hostap_common.h#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/hostapd.8#1 branch .. //depot/projects/superpages/src/contrib/hostapd/hostapd.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/hostapd.conf#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/hostapd.eap_user#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/hostapd.h#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/hostapd_cli.1#1 branch .. //depot/projects/superpages/src/contrib/hostapd/hostapd_cli.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/hostapd_ctrl.c#2 delete .. //depot/projects/superpages/src/contrib/hostapd/hostapd_ctrl.h#2 delete .. //depot/projects/superpages/src/contrib/hostapd/iapp.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/ieee802_11.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/ieee802_11_auth.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/ieee802_1x.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/ieee802_1x.h#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/l2_packet.h#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/logwatch/README#1 branch .. //depot/projects/superpages/src/contrib/hostapd/logwatch/hostapd#1 branch .. //depot/projects/superpages/src/contrib/hostapd/logwatch/hostapd.conf#1 branch .. //depot/projects/superpages/src/contrib/hostapd/madwifi.conf#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/md5.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/md5.h#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/ms_funcs.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/ms_funcs.h#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/radius.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/radius.h#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/radius_client.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/radius_client.h#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/radius_server.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/radius_server.h#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/rc4.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/rc4.h#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/sha1.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/sha1.h#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/sta_info.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/sta_info.h#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/tls.h#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/tls_none.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/tls_openssl.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/version.h#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/wired.conf#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/wpa.c#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/wpa.h#2 integrate .. //depot/projects/superpages/src/contrib/hostapd/wpa_ctrl.c#1 branch .. //depot/projects/superpages/src/contrib/hostapd/wpa_ctrl.h#1 branch .. //depot/projects/superpages/src/contrib/ipfilter/man/Makefile#2 integrate .. //depot/projects/superpages/src/contrib/ipfilter/man/mkfilters.1#2 integrate .. //depot/projects/superpages/src/contrib/libbegemot/rpoll.c#2 integrate .. //depot/projects/superpages/src/contrib/libbegemot/rpoll.man#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/CHANGELOG#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/CHANGES#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/FREEBSD-upgrade#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/INSTALL#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/MANIFEST#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/Makefile.in#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/NEWS#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/README#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/aclocal.m4#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/bind.c#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/callback.c#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/chardefs.h#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/complete.c#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/config.h.in#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/configure#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/configure.in#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/display.c#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/doc/readline.3#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/doc/rltech.texi#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/doc/rluser.texi#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/doc/rluserman.texi#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/doc/version.texi#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/examples/Makefile.in#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/examples/histexamp.c#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/examples/rl.c#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/examples/rlcat.c#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/examples/rlfe.c#2 delete .. //depot/projects/superpages/src/contrib/libreadline/examples/rlfe/ChangeLog#1 branch .. //depot/projects/superpages/src/contrib/libreadline/examples/rlfe/Makefile.in#1 branch .. //depot/projects/superpages/src/contrib/libreadline/examples/rlfe/README#1 branch .. //depot/projects/superpages/src/contrib/libreadline/examples/rlfe/config.h.in#1 branch .. //depot/projects/superpages/src/contrib/libreadline/examples/rlfe/configure#1 branch .. //depot/projects/superpages/src/contrib/libreadline/examples/rlfe/configure.in#1 branch .. //depot/projects/superpages/src/contrib/libreadline/examples/rlfe/extern.h#1 branch .. //depot/projects/superpages/src/contrib/libreadline/examples/rlfe/os.h#1 branch .. //depot/projects/superpages/src/contrib/libreadline/examples/rlfe/pty.c#1 branch .. //depot/projects/superpages/src/contrib/libreadline/examples/rlfe/rlfe.c#1 branch .. //depot/projects/superpages/src/contrib/libreadline/examples/rlfe/screen.h#1 branch .. //depot/projects/superpages/src/contrib/libreadline/examples/rlptytest.c#1 branch .. //depot/projects/superpages/src/contrib/libreadline/examples/rltest.c#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/examples/rlversion.c#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/funmap.c#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/histexpand.c#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/history.c#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/input.c#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/isearch.c#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/macro.c#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/mbutil.c#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/misc.c#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/readline.c#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/readline.h#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/rldefs.h#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/rlmbutil.h#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/rlprivate.h#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/rltty.c#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/search.c#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/shell.c#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/shlib/Makefile.in#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/signals.c#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/support/config.guess#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/support/shlib-install#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/support/shobj-conf#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/support/wcwidth.c#2 delete .. //depot/projects/superpages/src/contrib/libreadline/terminal.c#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/text.c#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/tilde.c#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/tilde.h#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/undo.c#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/util.c#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/vi_keymap.c#2 integrate .. //depot/projects/superpages/src/contrib/libreadline/vi_mode.c#2 integrate .. //depot/projects/superpages/src/contrib/netcat/nc.1#2 integrate .. //depot/projects/superpages/src/contrib/ngatm/man/libngatm.3#2 integrate .. //depot/projects/superpages/src/contrib/ngatm/man/uniaddr.3#2 integrate .. //depot/projects/superpages/src/contrib/ngatm/man/unifunc.3#2 integrate .. //depot/projects/superpages/src/contrib/ngatm/man/unimsg.3#2 integrate .. //depot/projects/superpages/src/contrib/ngatm/man/unisap.3#2 integrate .. //depot/projects/superpages/src/contrib/ngatm/man/unistruct.3#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/CHANGELOG#3 delete .. //depot/projects/superpages/src/contrib/openbsm/FREEBSD-upgrade#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/HISTORY#1 branch .. //depot/projects/superpages/src/contrib/openbsm/Makefile#2 delete .. //depot/projects/superpages/src/contrib/openbsm/Makefile.am#1 branch .. //depot/projects/superpages/src/contrib/openbsm/Makefile.in#1 branch .. //depot/projects/superpages/src/contrib/openbsm/README#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/TODO#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/VERSION#3 integrate .. //depot/projects/superpages/src/contrib/openbsm/aclocal.m4#1 branch .. //depot/projects/superpages/src/contrib/openbsm/autogen.sh#1 branch .. //depot/projects/superpages/src/contrib/openbsm/bin/Makefile#2 delete .. //depot/projects/superpages/src/contrib/openbsm/bin/Makefile.am#1 branch .. //depot/projects/superpages/src/contrib/openbsm/bin/Makefile.in#1 branch .. //depot/projects/superpages/src/contrib/openbsm/bin/audit/Makefile#2 delete .. //depot/projects/superpages/src/contrib/openbsm/bin/audit/Makefile.am#1 branch .. //depot/projects/superpages/src/contrib/openbsm/bin/audit/Makefile.in#1 branch .. //depot/projects/superpages/src/contrib/openbsm/bin/audit/audit.8#3 integrate .. //depot/projects/superpages/src/contrib/openbsm/bin/audit/audit.c#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/bin/auditd/Makefile#2 delete .. //depot/projects/superpages/src/contrib/openbsm/bin/auditd/Makefile.am#1 branch .. //depot/projects/superpages/src/contrib/openbsm/bin/auditd/Makefile.in#1 branch .. //depot/projects/superpages/src/contrib/openbsm/bin/auditd/audit_warn.c#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/bin/auditd/auditd.8#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/bin/auditd/auditd.c#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/bin/auditd/auditd.h#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/bin/auditreduce/Makefile#2 delete .. //depot/projects/superpages/src/contrib/openbsm/bin/auditreduce/Makefile.am#1 branch .. //depot/projects/superpages/src/contrib/openbsm/bin/auditreduce/Makefile.in#1 branch .. //depot/projects/superpages/src/contrib/openbsm/bin/auditreduce/auditreduce.1#3 integrate .. //depot/projects/superpages/src/contrib/openbsm/bin/auditreduce/auditreduce.c#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/bin/praudit/Makefile#2 delete .. //depot/projects/superpages/src/contrib/openbsm/bin/praudit/Makefile.am#1 branch .. //depot/projects/superpages/src/contrib/openbsm/bin/praudit/Makefile.in#1 branch .. //depot/projects/superpages/src/contrib/openbsm/bin/praudit/praudit.1#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/bin/praudit/praudit.c#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/bsm/Makefile#2 delete .. //depot/projects/superpages/src/contrib/openbsm/bsm/Makefile.am#1 branch .. //depot/projects/superpages/src/contrib/openbsm/bsm/Makefile.in#1 branch .. //depot/projects/superpages/src/contrib/openbsm/bsm/audit.h#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/bsm/audit_internal.h#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/bsm/audit_kevents.h#3 integrate .. //depot/projects/superpages/src/contrib/openbsm/bsm/libbsm.h#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/compat/endian.h#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/compat/queue.h#1 branch .. //depot/projects/superpages/src/contrib/openbsm/config/config.guess#1 branch .. //depot/projects/superpages/src/contrib/openbsm/config/config.h#1 branch .. //depot/projects/superpages/src/contrib/openbsm/config/config.h.in#1 branch .. //depot/projects/superpages/src/contrib/openbsm/config/config.sub#1 branch .. //depot/projects/superpages/src/contrib/openbsm/config/depcomp#1 branch .. //depot/projects/superpages/src/contrib/openbsm/config/install-sh#1 branch .. //depot/projects/superpages/src/contrib/openbsm/config/ltmain.sh#1 branch .. //depot/projects/superpages/src/contrib/openbsm/config/missing#1 branch .. //depot/projects/superpages/src/contrib/openbsm/configure#1 branch .. //depot/projects/superpages/src/contrib/openbsm/configure.ac#1 branch .. //depot/projects/superpages/src/contrib/openbsm/etc/audit_class#3 integrate .. //depot/projects/superpages/src/contrib/openbsm/etc/audit_control#3 integrate .. //depot/projects/superpages/src/contrib/openbsm/etc/audit_event#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/etc/audit_user#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/etc/audit_warn#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/libbsm/Makefile#2 delete .. //depot/projects/superpages/src/contrib/openbsm/libbsm/Makefile.am#1 branch .. //depot/projects/superpages/src/contrib/openbsm/libbsm/Makefile.in#1 branch .. //depot/projects/superpages/src/contrib/openbsm/libbsm/au_control.3#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/libbsm/au_event.3#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/libbsm/au_free_token.3#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/libbsm/au_mask.3#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/libbsm/au_token.3#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/libbsm/au_user.3#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/libbsm/bsm_audit.c#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/libbsm/bsm_io.c#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/libbsm/bsm_mask.c#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/libbsm/bsm_notify.c#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/libbsm/bsm_token.c#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/libbsm/bsm_user.c#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/libbsm/bsm_wrappers.c#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/libbsm/libbsm.3#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/man/Makefile#2 delete .. //depot/projects/superpages/src/contrib/openbsm/man/Makefile.am#1 branch .. //depot/projects/superpages/src/contrib/openbsm/man/Makefile.in#1 branch .. //depot/projects/superpages/src/contrib/openbsm/man/audit.log.5#3 integrate .. //depot/projects/superpages/src/contrib/openbsm/man/audit_class.5#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/man/audit_control.5#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/man/audit_event.5#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/man/audit_user.5#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/man/audit_warn.5#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/man/auditon.2#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/man/getaudit.2#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/man/getauid.2#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/man/setaudit.2#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/man/setauid.2#2 integrate .. //depot/projects/superpages/src/contrib/openbsm/tools/Makefile#2 delete .. //depot/projects/superpages/src/contrib/openbsm/tools/Makefile.am#1 branch .. //depot/projects/superpages/src/contrib/openbsm/tools/Makefile.in#1 branch .. //depot/projects/superpages/src/contrib/openbsm/tools/audump.c#2 integrate .. //depot/projects/superpages/src/contrib/opie/opiepasswd.c#2 integrate .. //depot/projects/superpages/src/contrib/pf/authpf/authpf.8#2 integrate .. //depot/projects/superpages/src/contrib/pf/pflogd/pflogd.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/FREEBSD-upgrade#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/PGPKEYS#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/README#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/RELEASE_NOTES#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/cf/README#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/cf/cf/Makefile#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/cf/cf/knecht.mc#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/cf/cf/submit.cf#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/cf/feature/dnsbl.m4#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/cf/feature/enhdnsbl.m4#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/cf/feature/mtamark.m4#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/cf/m4/proto.m4#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/cf/m4/version.m4#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/cf/ostype/darwin.m4#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/cf/sendmail.schema#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/contrib/dnsblaccess.m4#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/doc/op/Makefile#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/doc/op/op.me#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/include/libmilter/mfdef.h#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/include/sm/conf.h#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/include/sm/ldap.h#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/include/sm/time.h#1 branch .. //depot/projects/superpages/src/contrib/sendmail/libmilter/README#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/libmilter/docs/smfi_stop.html#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/libmilter/docs/xxfi_helo.html#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/libmilter/libmilter.h#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/libmilter/listener.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/libmilter/signal.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/libmilter/smfi.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/libsm/Makefile.m4#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/libsm/b-strcmp.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/libsm/b-strl.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/libsm/clock.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/libsm/fclose.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/libsm/fflush.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/libsm/fopen.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/libsm/fpos.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/libsm/fseek.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/libsm/ldap.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/libsm/local.h#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/libsm/memstat.c#1 branch .. //depot/projects/superpages/src/contrib/sendmail/libsm/refill.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/libsm/sem.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/libsm/shm.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/libsm/signal.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/libsm/stdio.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/libsm/strio.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/libsm/t-event.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/libsm/t-memstat.c#1 branch .. //depot/projects/superpages/src/contrib/sendmail/libsm/t-sem.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/libsm/ungetc.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/libsm/vfprintf.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/libsm/vfscanf.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/src/README#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/src/TRACEFLAGS#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/src/collect.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/src/conf.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/src/conf.h#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/src/daemon.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/src/deliver.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/src/envelope.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/src/headers.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/src/helpfile#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/src/main.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/src/map.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/src/mci.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/src/milter.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/src/mime.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/src/parseaddr.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/src/queue.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/src/ratectrl.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/src/readcf.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/src/savemail.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/src/sendmail.h#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/src/sfsasl.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/src/sfsasl.h#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/src/srvrsmtp.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/src/timers.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/src/tls.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/src/udb.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/src/usersmtp.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/src/util.c#2 integrate .. //depot/projects/superpages/src/contrib/sendmail/src/version.c#2 integrate .. //depot/projects/superpages/src/contrib/tcsh/FREEBSD-Xlist#2 integrate .. //depot/projects/superpages/src/contrib/tcsh/nls/C/charset#1 branch .. //depot/projects/superpages/src/contrib/tcsh/nls/et/charset#1 branch .. //depot/projects/superpages/src/contrib/tcsh/nls/finnish/charset#1 branch .. //depot/projects/superpages/src/contrib/tcsh/nls/french/charset#1 branch .. //depot/projects/superpages/src/contrib/tcsh/nls/german/charset#1 branch .. //depot/projects/superpages/src/contrib/tcsh/nls/greek/charset#1 branch .. //depot/projects/superpages/src/contrib/tcsh/nls/italian/charset#1 branch .. //depot/projects/superpages/src/contrib/tcsh/nls/ja/charset#1 branch .. //depot/projects/superpages/src/contrib/tcsh/nls/pl/charset#1 branch .. //depot/projects/superpages/src/contrib/tcsh/nls/russian/charset#1 branch .. //depot/projects/superpages/src/contrib/tcsh/nls/spanish/charset#1 branch .. //depot/projects/superpages/src/contrib/tcsh/nls/ukrainian/charset#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/ChangeLog#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/FREEBSD-Xlist#3 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/Makefile#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/README#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/aes.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/aes_wrap.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/aes_wrap.h#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/base64.c#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/base64.h#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/common.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/common.h#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/config.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/config.h#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/config_file.c#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/config_ssid.h#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/config_types.h#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/crypto.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/crypto.h#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/crypto_gnutls.c#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/ctrl_iface.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/ctrl_iface.h#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/defconfig#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/defs.h#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/developer.txt#2 delete .. //depot/projects/superpages/src/contrib/wpa_supplicant/doc/code_structure.doxygen#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/doc/ctrl_iface.doxygen#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/doc/docbook/Makefile#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/doc/docbook/wpa_background.8#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/doc/docbook/wpa_background.sgml#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/doc/docbook/wpa_cli.8#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/doc/docbook/wpa_cli.sgml#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/doc/docbook/wpa_passphrase.8#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/doc/docbook/wpa_passphrase.sgml#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.8#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.conf.5#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.conf.sgml#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.sgml#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/doc/doxygen.fast#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/doc/doxygen.full#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/doc/driver_wrapper.doxygen#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/doc/eap.doxygen#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/doc/kerneldoc2doxygen.pl#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/doc/mainpage.doxygen#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/doc/porting.doxygen#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/doc/testing_tools.doxygen#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/doc/wpa_supplicant.fig#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/driver.h#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/driver_hostap.h#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/driver_ndis.c#3 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/driver_ndis.h#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/driver_wired.c#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/drivers.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/eap.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/eap.h#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/eap_aka.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/eap_defs.h#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/eap_fast.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/eap_gtc.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/eap_i.h#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/eap_leap.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/eap_md5.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/eap_mschapv2.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/eap_otp.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/eap_pax.c#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/eap_pax_common.c#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/eap_pax_common.h#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/eap_peap.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/eap_psk.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/eap_psk_common.c#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/eap_psk_common.h#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/eap_sim.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/eap_sim_common.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/eap_sim_common.h#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/eap_testing.txt#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/eap_tls.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/eap_tls_common.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/eap_tls_common.h#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/eap_tlv.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/eap_tlv.h#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/eap_ttls.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/eap_ttls.h#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/eapol_sm.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/eapol_sm.h#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/eapol_test.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/eloop.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/eloop.h#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/events.c#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/examples/ieee8021x.conf#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/examples/plaintext.conf#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/examples/wep.conf#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/examples/wpa-psk-tkip.conf#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/examples/wpa2-eap-ccmp.conf#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/hostap_common.h#2 delete .. //depot/projects/superpages/src/contrib/wpa_supplicant/hostapd.h#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/l2_packet.h#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/main.c#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/md5.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/md5.h#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/ms_funcs.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/ms_funcs.h#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/openssl-tls-extensions.patch#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/pcsc_funcs.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/pcsc_funcs.h#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/preauth.c#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/preauth.h#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/preauth_test.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/radius.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/radius.h#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/radius_client.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/radius_client.h#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/rc4.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/rc4.h#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/sha1.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/sha1.h#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/tls.h#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/tls_gnutls.c#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/tls_none.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/tls_openssl.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/tls_schannel.c#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/todo.txt#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/version.h#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa.h#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa_cli.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa_ctrl.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa_ctrl.h#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa_gui-qt4/eventhistory.ui#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa_gui-qt4/eventhistory.ui.h#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa_gui-qt4/main.cpp#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa_gui-qt4/networkconfig.ui#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa_gui-qt4/networkconfig.ui.h#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa_gui-qt4/scanresults.ui#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa_gui-qt4/scanresults.ui.h#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa_gui-qt4/setup-mingw-cross-compiling#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa_gui-qt4/userdatarequest.ui#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa_gui-qt4/userdatarequest.ui.h#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa_gui-qt4/wpa_gui.pro#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa_gui-qt4/wpagui.ui#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa_gui-qt4/wpagui.ui.h#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa_gui-qt4/wpamsg.h#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa_gui/eventhistory.ui#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa_gui/eventhistory.ui.h#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa_gui/main.cpp#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa_gui/networkconfig.ui#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa_gui/networkconfig.ui.h#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa_gui/scanresults.ui#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa_gui/scanresults.ui.h#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa_gui/userdatarequest.ui#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa_gui/userdatarequest.ui.h#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa_gui/wpa_gui.pro#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa_gui/wpagui.ui#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa_gui/wpagui.ui.h#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa_gui/wpamsg.h#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa_i.h#1 branch .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa_passphrase.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa_supplicant.c#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa_supplicant.conf#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa_supplicant.h#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/wpa_supplicant_i.h#2 integrate .. //depot/projects/superpages/src/crypto/openssh/ChangeLog#2 integrate .. //depot/projects/superpages/src/crypto/openssh/FREEBSD-upgrade#2 integrate .. //depot/projects/superpages/src/crypto/openssh/Makefile.in#2 integrate .. //depot/projects/superpages/src/crypto/openssh/README#2 integrate .. //depot/projects/superpages/src/crypto/openssh/README.platform#2 integrate .. //depot/projects/superpages/src/crypto/openssh/README.tun#1 branch .. //depot/projects/superpages/src/crypto/openssh/acconfig.h#2 delete .. //depot/projects/superpages/src/crypto/openssh/aclocal.m4#2 integrate .. //depot/projects/superpages/src/crypto/openssh/auth-krb5.c#2 integrate .. //depot/projects/superpages/src/crypto/openssh/auth-options.c#2 integrate .. //depot/projects/superpages/src/crypto/openssh/auth-options.h#2 integrate .. //depot/projects/superpages/src/crypto/openssh/auth-pam.c#2 integrate .. //depot/projects/superpages/src/crypto/openssh/auth2-gss.c#2 integrate .. //depot/projects/superpages/src/crypto/openssh/auth2.c#2 integrate .. //depot/projects/superpages/src/crypto/openssh/bufaux.c#2 integrate .. //depot/projects/superpages/src/crypto/openssh/buildpkg.sh.in#2 integrate .. //depot/projects/superpages/src/crypto/openssh/canohost.c#2 integrate .. //depot/projects/superpages/src/crypto/openssh/channels.c#2 integrate .. //depot/projects/superpages/src/crypto/openssh/channels.h#2 integrate >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Apr 1 21:03:36 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 635BE16A423; Sat, 1 Apr 2006 21:03:36 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3EB7816A428 for ; Sat, 1 Apr 2006 21:03:36 +0000 (UTC) (envelope-from alc@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id F349E43D45 for ; Sat, 1 Apr 2006 21:03:35 +0000 (GMT) (envelope-from alc@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k31L3ZU3063003 for ; Sat, 1 Apr 2006 21:03:35 GMT (envelope-from alc@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k31L3ZDQ063000 for perforce@freebsd.org; Sat, 1 Apr 2006 21:03:35 GMT (envelope-from alc@freebsd.org) Date: Sat, 1 Apr 2006 21:03:35 GMT Message-Id: <200604012103.k31L3ZDQ063000@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to alc@freebsd.org using -f From: Alan Cox To: Perforce Change Reviews Cc: Subject: PERFORCE change 94421 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 01 Apr 2006 21:03:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=94421 Change 94421 by alc@alc_home on 2006/04/01 21:03:17 IFC the correction to mpt Affected files ... .. //depot/projects/superpages/src/sys/dev/mpt/mpt.c#4 integrate Differences ... ==== //depot/projects/superpages/src/sys/dev/mpt/mpt.c#4 (text+ko) ==== @@ -92,7 +92,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/mpt/mpt.c,v 1.24 2006/04/01 07:12:18 mjacob Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/mpt/mpt.c,v 1.25 2006/04/01 19:49:55 mjacob Exp $"); #include #include /* XXX For static handler registration */ @@ -1398,11 +1398,11 @@ (hdr->Function != MPI_FUNCTION_IOC_FACTS)){ #if __FreeBSD_version >= 500000 mpt_prt(mpt, "reply length does not match message length: " - "got %x; expected %x for function %x\n", + "got %x; expected %zx for function %x\n", hdr->MsgLength << 2, reply_len << 1, hdr->Function); #else mpt_prt(mpt, "reply length does not match message length: " - "got %x; expected %zx for function %x\n", + "got %x; expected %x for function %x\n", hdr->MsgLength << 2, reply_len << 1, hdr->Function); #endif }