From owner-svn-src-all@freebsd.org Sun Apr 5 00:10:24 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7B9112A7255; Sun, 5 Apr 2020 00:10:24 +0000 (UTC) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: from gndrsh.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 48vvFV71Vsz4DJh; Sun, 5 Apr 2020 00:10:22 +0000 (UTC) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: from gndrsh.dnsmgr.net (localhost [127.0.0.1]) by gndrsh.dnsmgr.net (8.13.3/8.13.3) with ESMTP id 0350ACeS080260; Sat, 4 Apr 2020 17:10:12 -0700 (PDT) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: (from freebsd@localhost) by gndrsh.dnsmgr.net (8.13.3/8.13.3/Submit) id 0350ACId080259; Sat, 4 Apr 2020 17:10:12 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <202004050010.0350ACId080259@gndrsh.dnsmgr.net> Subject: Re: svn commit: r359633 - head/share/man/man4 In-Reply-To: <202004042138.034Lc1J1085911@repo.freebsd.org> To: Christian Brueffer Date: Sat, 4 Apr 2020 17:10:12 -0700 (PDT) CC: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-Rspamd-Queue-Id: 48vvFV71Vsz4DJh X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; NEURAL_HAM_LONG(-1.00)[-0.999,0]; REPLY(-4.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Apr 2020 00:10:24 -0000 > Author: brueffer > Date: Sat Apr 4 21:38:00 2020 > New Revision: 359633 > URL: https://svnweb.freebsd.org/changeset/base/359633 > > Log: > Add a manpage for smbios(4). > > Submitted by: Gordon Bergling There should be an AUTHORS section entry for him writting the man page. > MFC after: 1 week > Differential Revision: https://reviews.freebsd.org/D23714 > > Added: > head/share/man/man4/smbios.4 (contents, props changed) > Modified: > head/share/man/man4/Makefile > > Modified: head/share/man/man4/Makefile > ============================================================================== > --- head/share/man/man4/Makefile Sat Apr 4 17:08:58 2020 (r359632) > +++ head/share/man/man4/Makefile Sat Apr 4 21:38:00 2020 (r359633) > @@ -471,6 +471,7 @@ MAN= aac.4 \ > sk.4 \ > ${_smartpqi.4} \ > smb.4 \ > + smbios.4 \ > smbus.4 \ > smp.4 \ > smsc.4 \ > > Added: head/share/man/man4/smbios.4 > ============================================================================== > --- /dev/null 00:00:00 1970 (empty, because file is newly added) > +++ head/share/man/man4/smbios.4 Sat Apr 4 21:38:00 2020 (r359633) > @@ -0,0 +1,63 @@ > +.\" Copyright (c) 2020 Gordon Bergling > +.\" > +.\" Redistribution and use in source and binary forms, with or without > +.\" 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. > +.\" 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. > +.\" > +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND > +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE > +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE > +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE > +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL > +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS > +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) > +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT > +.\" LIABILITY, OR TORT (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$ > +.\" > +.Dd April 4, 2020 > +.Dt SMBIOS 4 > +.Os > +.Sh NAME > +.Nm smbios > +.Nd "System Management BIOS" > +.Sh SYNOPSIS > +To compile this driver into the kernel, > +place the following lines in your > +kernel configuration file: > +.Bd -ragged -offset indent > +.Cd "device smbios" > +.Ed > +.Pp > +Alternatively, to load the driver as a > +module at boot time, place the following line in > +.Xr loader.conf 5 : > +.Bd -literal -offset indent > +smbios_load="YES" > +.Ed > +.Sh DESCRIPTION > +The System Management BIOS (SMBIOS) describes hardware components. > +.Sh SEE ALSO > +.Xr efi 4 > +.Rs > +.%T System Management BIOS (SMBIOS) Reference Specification > +.%N DMTF DSP0134 > +.Re > +.Sh HISTORY > +The > +.Nm > +device driver first appeared in > +.Fx 4.8 . > +.Sh AUTHORS > +The > +.Nm > +device driver was written by > +.An Matthew N. Dodd Aq Mt winter@jurai.net . > -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-all@freebsd.org Sun Apr 5 00:23:54 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 508EB2A78DD for ; Sun, 5 Apr 2020 00:23:54 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from outbound1b.ore.mailhop.org (outbound1b.ore.mailhop.org [54.200.247.200]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 48vvY50h1Wz4Jc4 for ; Sun, 5 Apr 2020 00:23:52 +0000 (UTC) (envelope-from ian@freebsd.org) ARC-Seal: i=1; a=rsa-sha256; t=1586046221; cv=none; d=outbound.mailhop.org; s=arc-outbound20181012; b=tA1Rw468wuxkt6+0mk83masefq8mJSd4r+WOrqp5Xmn7p/18yOCyULuKAB0QmzvcrUsCFNJZ7zf0N 1OIK9HGak8ITNWO2x13IaH07LfyHggUAt7WbQmAWozPUSbRf3h9GncEr3n9lOPzAJP2L8fdqAcoTuh 9U8IvTXoYioQ+vy7FP2V2e5qI71q8Hv3RC8XVvIhfbXtOuU5cSMuQP/vmX8IFhL9n9r+LegmV+sr3m QqOeGD/I4CitAiazKrmMvMG98GplvZYzfVwqvXBcu9jNOmeqNTjyGcKybd6FWv02ZWgNSeKR25ZXT0 Gv1cfuvyevZCDKvMKANyT0154dAFd+A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=outbound.mailhop.org; s=arc-outbound20181012; h=content-transfer-encoding:mime-version:content-type:references:in-reply-to: date:cc:to:from:subject:message-id:dkim-signature:from; bh=XFweoiHwFTsYBtopl8M7urngVYHqBr6k8StyKdiopuk=; b=mUk4e2zi+UE2IoJJCXBi3Uwktsox7Zzbwe19N1AcI4D3FZlZDCLzX69jA+xmB6Fc+Xr05MMbblJ3O yJ+YAvg2ksVFe0XjohVaH2x4TMAcZlHCpeOko2Up/iNp1lCh9amskNIGxjQbsaj7rTfy/JPvGMkSi2 oQZmrEDABZMHQHPsd9LahutX3XoeQDGQdCMJOK7CUgohoKXH8fKZUQjt1RB/xr7rpo7KKxviMvuojR MdOjPhvQ4ylnOwUumWXcc12qYfbdfoGgNEGa5ja9GAEu4xpoUuTxx7CU25ENpe2+Wr73T+W1BhLFHk puy8bL0sa2SbMHTNMtj0Z0hB0m+FwZg== ARC-Authentication-Results: i=1; outbound3.ore.mailhop.org; spf=softfail smtp.mailfrom=freebsd.org smtp.remote-ip=67.177.211.60; dmarc=none header.from=freebsd.org; arc=none header.oldest-pass=0; DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outbound.mailhop.org; s=dkim-high; h=content-transfer-encoding:mime-version:content-type:references:in-reply-to: date:cc:to:from:subject:message-id:from; bh=XFweoiHwFTsYBtopl8M7urngVYHqBr6k8StyKdiopuk=; b=vS8br3t9yDKtJwjhLa5zxBVmdA7AiDjvRCnQ3qYJUDCP0tA2SHznqwgKy39Z0P3ziCHcLGrWeWJtD DddbQn/5BrYZfb8ZzIWhO2P50D7nq2HmlxBZmuTC0ZYvGen7xKA/NEcpcR3A4hxGvL2AVCCac178tE xhS8vRMKmsmT+3n+1E2DfTo5IpY8CFt8SlY6rnVe/rBU4svswBcufy0L5k59DZQpLMzp71Q89MXQW9 nBw3LYFwMTsY5YgDnpDyKSug64fpf1zL6fg8lhxfIUATinuVs65LyZcGWpSP8uCJmG8E4c+kmSwQnv FWYygzu3Gjv9sQQjKrmu7evAnTz38nQ== X-MHO-RoutePath: aGlwcGll X-MHO-User: b248d908-76d3-11ea-984f-93ef91f222d3 X-Report-Abuse-To: https://support.duocircle.com/support/solutions/articles/5000540958-duocircle-standard-smtp-abuse-information X-Originating-IP: 67.177.211.60 X-Mail-Handler: DuoCircle Outbound SMTP Received: from ilsoft.org (c-67-177-211-60.hsd1.co.comcast.net [67.177.211.60]) by outbound3.ore.mailhop.org (Halon) with ESMTPSA id b248d908-76d3-11ea-984f-93ef91f222d3; Sun, 05 Apr 2020 00:23:39 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.15.2/8.15.2) with ESMTP id 0350Ncr1028474; Sat, 4 Apr 2020 18:23:38 -0600 (MDT) (envelope-from ian@freebsd.org) Message-ID: <9284a50d8049ae588b11e4e18b997b4bad898738.camel@freebsd.org> Subject: Re: svn commit: r359633 - head/share/man/man4 From: Ian Lepore To: rgrimes@freebsd.org, Christian Brueffer Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Date: Sat, 04 Apr 2020 18:23:38 -0600 In-Reply-To: <202004050010.0350ACId080259@gndrsh.dnsmgr.net> References: <202004050010.0350ACId080259@gndrsh.dnsmgr.net> Content-Type: text/plain; charset="ASCII" X-Mailer: Evolution 3.28.5 FreeBSD GNOME Team Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 48vvY50h1Wz4Jc4 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-1.93 / 15.00]; local_wl_from(0.00)[freebsd.org]; NEURAL_HAM_MEDIUM(-0.98)[-0.978,0]; NEURAL_HAM_LONG(-0.95)[-0.949,0]; ASN(0.00)[asn:16509, ipnet:54.200.0.0/15, country:US] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Apr 2020 00:23:54 -0000 On Sat, 2020-04-04 at 17:10 -0700, Rodney W. Grimes wrote: > > Author: brueffer > > Date: Sat Apr 4 21:38:00 2020 > > New Revision: 359633 > > URL: https://svnweb.freebsd.org/changeset/base/359633 > > > > Log: > > Add a manpage for smbios(4). > > > > Submitted by: Gordon Bergling > > There should be an AUTHORS section entry for him writting the man > page. Is that not optional? I've never added one to any manpage I've ever written, and don't especially want it to be added. -- Ian From owner-svn-src-all@freebsd.org Sun Apr 5 00:48:59 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 692662A7FCB; Sun, 5 Apr 2020 00:48:59 +0000 (UTC) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: from gndrsh.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 48vw622GTpz4S7d; Sun, 5 Apr 2020 00:48:58 +0000 (UTC) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: from gndrsh.dnsmgr.net (localhost [127.0.0.1]) by gndrsh.dnsmgr.net (8.13.3/8.13.3) with ESMTP id 0350mnbO080369; Sat, 4 Apr 2020 17:48:49 -0700 (PDT) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: (from freebsd@localhost) by gndrsh.dnsmgr.net (8.13.3/8.13.3/Submit) id 0350mnB1080368; Sat, 4 Apr 2020 17:48:49 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <202004050048.0350mnB1080368@gndrsh.dnsmgr.net> Subject: Re: svn commit: r359633 - head/share/man/man4 In-Reply-To: <9284a50d8049ae588b11e4e18b997b4bad898738.camel@freebsd.org> To: Ian Lepore Date: Sat, 4 Apr 2020 17:48:49 -0700 (PDT) CC: rgrimes@freebsd.org, Christian Brueffer , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-Rspamd-Queue-Id: 48vw622GTpz4S7d X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; NEURAL_HAM_LONG(-1.00)[-0.999,0]; REPLY(-4.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Apr 2020 00:49:00 -0000 > On Sat, 2020-04-04 at 17:10 -0700, Rodney W. Grimes wrote: > > > Author: brueffer > > > Date: Sat Apr 4 21:38:00 2020 > > > New Revision: 359633 > > > URL: https://svnweb.freebsd.org/changeset/base/359633 > > > > > > Log: > > > Add a manpage for smbios(4). > > > > > > Submitted by: Gordon Bergling > > > > There should be an AUTHORS section entry for him writting the man > > page. > > Is that not optional? I've never added one to any manpage I've ever > written, and don't especially want it to be added. Yes, of cource it is optional, but perhaps he was not aware that option even existed as he probably copied the man page from some other work which may of not had that attribution. > -- Ian -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-all@freebsd.org Sun Apr 5 02:01:11 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E1B382A943B; Sun, 5 Apr 2020 02:01:11 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48vxjK0d9Hz3Q2q; Sun, 5 Apr 2020 02:01:08 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7CB8F3F58; Sun, 5 Apr 2020 01:53:36 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0351rai6043899; Sun, 5 Apr 2020 01:53:36 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0351raSR043897; Sun, 5 Apr 2020 01:53:36 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <202004050153.0351raSR043897@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Sun, 5 Apr 2020 01:53:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359635 - in stable/12: contrib/xz contrib/xz/src/common contrib/xz/src/liblzma/api contrib/xz/src/liblzma/api/lzma contrib/xz/src/liblzma/check contrib/xz/src/liblzma/common contrib/xz... X-SVN-Group: stable-12 X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: in stable/12: contrib/xz contrib/xz/src/common contrib/xz/src/liblzma/api contrib/xz/src/liblzma/api/lzma contrib/xz/src/liblzma/check contrib/xz/src/liblzma/common contrib/xz/src/liblzma/delta contri... X-SVN-Commit-Revision: 359635 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Apr 2020 02:01:12 -0000 Author: delphij Date: Sun Apr 5 01:53:35 2020 New Revision: 359635 URL: https://svnweb.freebsd.org/changeset/base/359635 Log: MFC r359201: MFV r359197: xz 5.2.5. Relnotes: yes Modified: stable/12/contrib/xz/ChangeLog stable/12/contrib/xz/FREEBSD-Xlist stable/12/contrib/xz/README stable/12/contrib/xz/THANKS stable/12/contrib/xz/src/common/sysdefs.h stable/12/contrib/xz/src/common/tuklib_cpucores.c stable/12/contrib/xz/src/common/tuklib_exit.c stable/12/contrib/xz/src/common/tuklib_integer.h stable/12/contrib/xz/src/common/tuklib_mbstr.h stable/12/contrib/xz/src/common/tuklib_mbstr_fw.c stable/12/contrib/xz/src/common/tuklib_mbstr_width.c stable/12/contrib/xz/src/liblzma/api/lzma.h stable/12/contrib/xz/src/liblzma/api/lzma/block.h stable/12/contrib/xz/src/liblzma/api/lzma/filter.h stable/12/contrib/xz/src/liblzma/api/lzma/hardware.h stable/12/contrib/xz/src/liblzma/api/lzma/lzma12.h stable/12/contrib/xz/src/liblzma/api/lzma/version.h stable/12/contrib/xz/src/liblzma/api/lzma/vli.h stable/12/contrib/xz/src/liblzma/check/crc32_fast.c stable/12/contrib/xz/src/liblzma/check/crc32_table.c stable/12/contrib/xz/src/liblzma/check/crc64_fast.c stable/12/contrib/xz/src/liblzma/check/crc64_table.c stable/12/contrib/xz/src/liblzma/common/alone_decoder.c stable/12/contrib/xz/src/liblzma/common/alone_encoder.c stable/12/contrib/xz/src/liblzma/common/block_header_decoder.c stable/12/contrib/xz/src/liblzma/common/block_header_encoder.c stable/12/contrib/xz/src/liblzma/common/block_util.c stable/12/contrib/xz/src/liblzma/common/common.c stable/12/contrib/xz/src/liblzma/common/filter_common.h stable/12/contrib/xz/src/liblzma/common/filter_decoder.h stable/12/contrib/xz/src/liblzma/common/filter_flags_encoder.c stable/12/contrib/xz/src/liblzma/common/hardware_physmem.c stable/12/contrib/xz/src/liblzma/common/index.c stable/12/contrib/xz/src/liblzma/common/memcmplen.h stable/12/contrib/xz/src/liblzma/common/stream_encoder_mt.c stable/12/contrib/xz/src/liblzma/common/stream_flags_decoder.c stable/12/contrib/xz/src/liblzma/common/stream_flags_encoder.c stable/12/contrib/xz/src/liblzma/common/vli_decoder.c stable/12/contrib/xz/src/liblzma/delta/delta_decoder.c stable/12/contrib/xz/src/liblzma/lz/lz_decoder.c stable/12/contrib/xz/src/liblzma/lz/lz_encoder_hash.h stable/12/contrib/xz/src/liblzma/lz/lz_encoder_mf.c stable/12/contrib/xz/src/liblzma/lzma/fastpos.h stable/12/contrib/xz/src/liblzma/lzma/fastpos_tablegen.c stable/12/contrib/xz/src/liblzma/lzma/lzma2_decoder.c stable/12/contrib/xz/src/liblzma/lzma/lzma_common.h stable/12/contrib/xz/src/liblzma/lzma/lzma_decoder.c stable/12/contrib/xz/src/liblzma/lzma/lzma_encoder.c stable/12/contrib/xz/src/liblzma/lzma/lzma_encoder_optimum_normal.c stable/12/contrib/xz/src/liblzma/lzma/lzma_encoder_private.h stable/12/contrib/xz/src/liblzma/simple/arm.c stable/12/contrib/xz/src/liblzma/simple/armthumb.c stable/12/contrib/xz/src/liblzma/simple/ia64.c stable/12/contrib/xz/src/liblzma/simple/powerpc.c stable/12/contrib/xz/src/liblzma/simple/simple_coder.c stable/12/contrib/xz/src/liblzma/simple/simple_decoder.c stable/12/contrib/xz/src/liblzma/simple/simple_encoder.c stable/12/contrib/xz/src/liblzma/simple/x86.c stable/12/contrib/xz/src/xz/args.c stable/12/contrib/xz/src/xz/coder.c stable/12/contrib/xz/src/xz/file_io.c stable/12/contrib/xz/src/xz/file_io.h stable/12/contrib/xz/src/xz/main.c stable/12/contrib/xz/src/xz/message.c stable/12/contrib/xz/src/xz/message.h stable/12/contrib/xz/src/xz/mytime.c stable/12/contrib/xz/src/xz/mytime.h stable/12/contrib/xz/src/xz/options.c stable/12/contrib/xz/src/xz/private.h stable/12/contrib/xz/src/xz/signals.c stable/12/contrib/xz/src/xz/util.c stable/12/contrib/xz/src/xz/xz.1 stable/12/contrib/xz/src/xzdec/xzdec.c stable/12/lib/liblzma/config.h Directory Properties: stable/12/ (props changed) Modified: stable/12/contrib/xz/ChangeLog ============================================================================== --- stable/12/contrib/xz/ChangeLog Sat Apr 4 22:37:50 2020 (r359634) +++ stable/12/contrib/xz/ChangeLog Sun Apr 5 01:53:35 2020 (r359635) @@ -1,3 +1,1335 @@ +commit 2327a461e1afce862c22269b80d3517801103c1b +Author: Lasse Collin +Date: 2020-03-17 16:27:42 +0200 + + Bump version and soname for 5.2.5. + + src/liblzma/Makefile.am | 2 +- + src/liblzma/api/lzma/version.h | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +commit 3be82d2f7dc882258caf0f0a69214e5916b2bdda +Author: Lasse Collin +Date: 2020-03-17 16:26:04 +0200 + + Update NEWS for 5.2.5. + + NEWS | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 105 insertions(+) + +commit ab3e57539c7337f0653b13b75dbc5d03ade9700e +Author: Lasse Collin +Date: 2020-03-16 21:57:21 +0200 + + Translations: Rebuild cs.po to avoid incorrect fuzzy strings. + + "make dist" updates the .po files and the fuzzy strings would + result in multiple very wrong translations. + + po/cs.po | 592 ++++++++++++++++++++++++++++++++++----------------------------- + 1 file changed, 322 insertions(+), 270 deletions(-) + +commit 3a6f38309dc5d44d8a63ebb337b6b2028561c93e +Author: Lasse Collin +Date: 2020-03-16 20:01:37 +0200 + + README: Update outdated sections. + + README | 21 +++++++++++---------- + 1 file changed, 11 insertions(+), 10 deletions(-) + +commit 9cc0901798217e258e91c13cf6fda7ad42ba108c +Author: Lasse Collin +Date: 2020-03-16 19:46:27 +0200 + + README: Mention that translatable strings will change after 5.2.x. + + README | 74 +++--------------------------------------------------------------- + 1 file changed, 3 insertions(+), 71 deletions(-) + +commit cc163574249f6a4a66f3dc09d6fe5a71bee24fab +Author: Lasse Collin +Date: 2020-03-16 19:39:45 +0200 + + README: Mention that man pages can be translated. + + README | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +commit ca261994edc3f2d03d5589c037171c63471ee9dc +Author: Lasse Collin +Date: 2020-03-16 17:30:39 +0200 + + Translations: Add partial Danish translation. + + I made a few minor white space changes without getting them + approved by the Danish translation team. + + po/LINGUAS | 1 + + po/da.po | 896 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 897 insertions(+) + +commit 51cd5d051fc730d61411dee292e863582784e189 +Author: Lasse Collin +Date: 2020-03-16 16:43:29 +0200 + + Update INSTALL.generic from Automake 1.16.1. + + INSTALL.generic | 321 ++++++++++++++++++++++++++++---------------------------- + 1 file changed, 162 insertions(+), 159 deletions(-) + +commit 69d694e5f1beae2bbfa3b6c348ec0ec5f14b5cd0 +Author: Lasse Collin +Date: 2020-03-15 15:27:22 +0200 + + Update INSTALL for Windows and DOS and add preliminary info for z/OS. + + INSTALL | 51 +++++++++++++++++++++++++++++++++++++++++---------- + 1 file changed, 41 insertions(+), 10 deletions(-) + +commit 2c3b1bb80a3ca7e09728fe4d7a1d8648a5cb9bca +Author: Lasse Collin +Date: 2020-03-15 15:26:20 +0200 + + Build: Update m4/ax_pthread.m4 from Autoconf Archive (again). + + m4/ax_pthread.m4 | 219 +++++++++++++++++++++++++++++-------------------------- + 1 file changed, 117 insertions(+), 102 deletions(-) + +commit 74a5af180a6a6c4b8c90cefb37ee900d3fea7dc6 +Author: Lasse Collin +Date: 2020-03-11 21:15:35 +0200 + + xz: Never use thousand separators in DJGPP builds. + + DJGPP 2.05 added support for thousands separators but it's + broken at least under WinXP with Finnish locale that uses + a non-breaking space as the thousands separator. Workaround + by disabling thousands separators for DJGPP builds. + + src/xz/util.c | 14 ++++++++++++-- + 1 file changed, 12 insertions(+), 2 deletions(-) + +commit ceba0d25e826bcdbf64bb4cb03385a2a66f8cbcb +Author: Lasse Collin +Date: 2020-03-11 19:38:08 +0200 + + DOS: Update dos/Makefile for DJGPP 2.05. + + It doesn't need -fgnu89-inline like 2.04beta did. + + dos/Makefile | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +commit 29e5bd71612253281fb22bbaa0a566990a74dcc3 +Author: Lasse Collin +Date: 2020-03-11 19:36:07 +0200 + + DOS: Update instructions in dos/INSTALL.txt. + + dos/INSTALL.txt | 59 ++++++++++++++++++++++++++++----------------------------- + 1 file changed, 29 insertions(+), 30 deletions(-) + +commit 00a037ee9c8ee5a03cf9744e05570ae93d56b875 +Author: Lasse Collin +Date: 2020-03-11 17:58:51 +0200 + + DOS: Update config.h. + + The added defines assume GCC >= 4.8. + + dos/config.h | 8 ++++++++ + 1 file changed, 8 insertions(+) + +commit 4ec2feaefa310b4249eb41893caf526e5c51ee39 +Author: Lasse Collin +Date: 2020-03-11 22:37:54 +0200 + + Translations: Add hu, zh_CN, and zh_TW. + + I made a few white space changes to these without getting them + approved by the translation teams. (I tried to contact the hu and + zh_TW teams but didn't succeed. I didn't contact the zh_CN team.) + + po/LINGUAS | 3 + + po/hu.po | 985 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + po/zh_CN.po | 963 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + po/zh_TW.po | 956 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 4 files changed, 2907 insertions(+) + +commit b6ed09729ae408be4533a0ddbc7df3d6f566846a +Author: Lasse Collin +Date: 2020-03-11 14:33:30 +0200 + + Translations: Update vi.po to match the file from the TP. + + The translated strings haven't been updated but word wrapping + is different. + + po/vi.po | 407 ++++++++++++++++++++++++++++----------------------------------- + 1 file changed, 179 insertions(+), 228 deletions(-) + +commit 7c85e8953ced204c858101872a15183e4639e9fb +Author: Lasse Collin +Date: 2020-03-11 14:18:03 +0200 + + Translations: Add fi and pt_BR, and update de, fr, it, and pl. + + The German translation isn't identical to the file in + the Translation Project but the changes (white space changes + only) were approved by the translator Mario Blättermann. + + po/LINGUAS | 2 + + po/de.po | 476 ++++++++++++++-------------- + po/fi.po | 974 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + po/fr.po | 272 ++++++++-------- + po/it.po | 479 ++++++++++++---------------- + po/pl.po | 239 +++++++------- + po/pt_BR.po | 1001 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 7 files changed, 2697 insertions(+), 746 deletions(-) + +commit 7da3ebc67fb5414034685ec16c7a29dad03dfa9b +Author: Lasse Collin +Date: 2020-02-25 21:35:14 +0200 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 1acc48794364606c9091cae6fa56db75a1325114 +Author: Lasse Collin +Date: 2020-03-11 13:05:29 +0200 + + Build: Add very limited experimental CMake support. + + This version matches CMake files in the master branch (commit + 265daa873c0d871f5f23f9b56e133a6f20045a0a) except that this omits + two source files that aren't in v5.2 and in the beginning of + CMakeLists.txt the first paragraph in the comment is slightly + different to point out possible issues in building shared liblzma. + + CMakeLists.txt | 659 ++++++++++++++++++++++++++++++++++++++++++++ + cmake/tuklib_common.cmake | 49 ++++ + cmake/tuklib_cpucores.cmake | 175 ++++++++++++ + cmake/tuklib_integer.cmake | 102 +++++++ + cmake/tuklib_mbstr.cmake | 20 ++ + cmake/tuklib_physmem.cmake | 150 ++++++++++ + cmake/tuklib_progname.cmake | 19 ++ + 7 files changed, 1174 insertions(+) + +commit 9acc6abea1552803c74c1486fbb10af119550772 +Author: Lasse Collin +Date: 2020-02-27 20:24:27 +0200 + + Build: Add support for --no-po4a option to autogen.sh. + + Normally, if po4a isn't available, autogen.sh will return + with non-zero exit status. The option --no-po4a can be useful + when one knows that po4a isn't available but wants autogen.sh + to still return with zero exit status. + + autogen.sh | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +commit c8853b31545db7bd0551be85949624b1261efd47 +Author: Lasse Collin +Date: 2020-02-24 23:37:07 +0200 + + Update m4/.gitignore. + + m4/.gitignore | 1 + + 1 file changed, 1 insertion(+) + +commit 901eb4a8c992354c3ea482f5bad60a1f8ad6fcc8 +Author: Lasse Collin +Date: 2020-02-24 23:01:00 +0200 + + liblzma: Remove unneeded from fastpos_tablegen.c. + + This file only generates fastpos_table.c. + It isn't built as a part of liblzma. + + src/liblzma/lzma/fastpos_tablegen.c | 1 - + 1 file changed, 1 deletion(-) + +commit ac35c9585fb734b7a19785d490c152e0b8cd4663 +Author: Lasse Collin +Date: 2020-02-22 14:15:07 +0200 + + Use defined(__GNUC__) before __GNUC__ in preprocessor lines. + + This should silence the equivalent of -Wundef in compilers that + don't define __GNUC__. + + src/common/sysdefs.h | 3 ++- + src/liblzma/api/lzma.h | 5 +++-- + 2 files changed, 5 insertions(+), 3 deletions(-) + +commit fb9cada7cfade1156d6277717280e05b5cd342d6 +Author: Lasse Collin +Date: 2020-02-21 17:40:02 +0200 + + liblzma: Add more uses of lzma_memcmplen() to the normal mode of LZMA. + + This gives a tiny encoder speed improvement. This could have been done + in 2014 after the commit 544aaa3d13554e8640f9caf7db717a96360ec0f6 but + it was forgotten. + + src/liblzma/lzma/lzma_encoder_optimum_normal.c | 16 ++++++++++------ + 1 file changed, 10 insertions(+), 6 deletions(-) + +commit 6117955af0b9cef5acde7859e86f773692b5f43c +Author: Lasse Collin +Date: 2020-02-21 17:01:15 +0200 + + Build: Add visibility.m4 from gnulib. + + Appears that this file used to get included as a side effect of + gettext. After the change to gettext version requirements this file + no longer got copied to the package and so the build was broken. + + m4/.gitignore | 1 - + m4/visibility.m4 | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 77 insertions(+), 1 deletion(-) + +commit c2cc64d78c098834231f9cfd7d852c9cd8950d74 +Author: Lasse Collin +Date: 2020-02-21 16:10:44 +0200 + + xz: Silence a warning when sig_atomic_t is long int. + + It can be true at least on z/OS. + + src/xz/signals.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit b6314aa275b35c714e0a191d0b2e9b6106129ea9 +Author: Lasse Collin +Date: 2020-02-21 15:59:26 +0200 + + xz: Avoid unneeded access of a volatile variable. + + src/xz/signals.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit f772a1572f723e5dc7d2d32e1d4287ac7a0da55e +Author: Lasse Collin +Date: 2020-02-21 01:24:18 +0200 + + tuklib_integer.m4: Optimize the check order. + + The __builtin byteswapping is the preferred one so check for it first. + + m4/tuklib_integer.m4 | 56 +++++++++++++++++++++++++++------------------------- + 1 file changed, 29 insertions(+), 27 deletions(-) + +commit 641042e63f665f3231c2fd1241fd3dddda3fb313 +Author: Lasse Collin +Date: 2020-02-20 18:54:04 +0200 + + tuklib_exit: Add missing header. + + strerror() needs which happened to be included via + tuklib_common.h -> tuklib_config.h -> sysdefs.h if HAVE_CONFIG_H + was defined. This wasn't tested without config.h before so it + had worked fine. + + src/common/tuklib_exit.c | 1 + + 1 file changed, 1 insertion(+) + +commit dbd55a69e530fec9ae866aaf6c3ccc0b4daf1f1f +Author: Lasse Collin +Date: 2020-02-16 11:18:28 +0200 + + sysdefs.h: Omit the conditionals around string.h and limits.h. + + string.h is used unconditionally elsewhere in the project and + configure has always stopped if limits.h is missing, so these + headers must have been always available even on the weirdest + systems. + + src/common/sysdefs.h | 8 ++------ + 1 file changed, 2 insertions(+), 6 deletions(-) + +commit 9294909861e6d22b32418467e0e988f953a82264 +Author: Lasse Collin +Date: 2020-02-15 15:07:11 +0200 + + Build: Bump Autoconf and Libtool version requirements. + + There is no specific reason for this other than blocking + the most ancient versions. These are still old: + + Autoconf 2.69 (2012) + Automake 1.12 (2012) + gettext 0.19.6 (2015) + Libtool 2.4 (2010) + + configure.ac | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit bd09081bbdf552f730030d2fd0e5e39ccb3936af +Author: Lasse Collin +Date: 2020-02-15 03:08:32 +0200 + + Build: Use AM_GNU_GETTEXT_REQUIRE_VERSION and require 0.19.6. + + This bumps the version requirement from 0.19 (from 2014) to + 0.19.6 (2015). + + Using only the old AM_GNU_GETTEXT_VERSION results in old + gettext infrastructure being placed in the package. By using + both macros we get the latest gettext files while the other + programs in the Autotools family can still see the old macro. + + configure.ac | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +commit 1e5e08d86534aec7ca957982c7f6e90203c19e9f +Author: Lasse Collin +Date: 2020-02-14 20:42:06 +0200 + + Translations: Add German translation of the man pages. + + Thanks to Mario Blättermann. + + po4a/de.po | 5532 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + po4a/po4a.conf | 2 +- + 2 files changed, 5533 insertions(+), 1 deletion(-) + +commit 4b1447809ffbc0d77c0ad456bd6b3afcf0b8623e +Author: Lasse Collin +Date: 2020-02-07 15:32:21 +0200 + + Build: Add support for translated man pages using po4a. + + The dependency on po4a is optional. It's never required to install + the translated man pages when xz is built from a release tarball. + If po4a is missing when building from xz.git, the translated man + pages won't be generated but otherwise the build will work normally. + + The translations are only updated automatically by autogen.sh and + by "make mydist". This makes it easy to keep po4a as an optional + dependency and ensures that I won't forget to put updated + translations to a release tarball. + + The translated man pages aren't installed if --disable-nls is used. + + The installation of translated man pages abuses Automake internals + by calling "install-man" with redefined dist_man_MANS and man_MANS. + This makes the hairy script code slightly less hairy. If it breaks + some day, this code needs to be fixed; don't blame Automake developers. + + Also, this adds more quotes to the existing shell script code in + the Makefile.am "-hook"s. + + Makefile.am | 4 ++++ + autogen.sh | 8 ++++--- + po4a/.gitignore | 2 ++ + po4a/po4a.conf | 14 +++++++++++ + po4a/update-po | 45 ++++++++++++++++++++++++++++++++++ + src/scripts/Makefile.am | 64 +++++++++++++++++++++++++++++++++++++------------ + src/xz/Makefile.am | 50 +++++++++++++++++++++++++++----------- + src/xzdec/Makefile.am | 55 ++++++++++++++++++++++++++++++++---------- + 8 files changed, 197 insertions(+), 45 deletions(-) + +commit 882fcfdcd86525cc5c6f6d0bf0230d0089206d13 +Author: Lasse Collin +Date: 2020-02-06 00:04:42 +0200 + + Update THANKS (sync with the master branch). + + THANKS | 3 +++ + 1 file changed, 3 insertions(+) + +commit 134bb7765815d5f265eb0bc9e6ebacd9ae4a52bc +Author: Lasse Collin +Date: 2020-02-05 22:35:06 +0200 + + Update tests/.gitignore. + + .gitignore | 4 ++++ + 1 file changed, 4 insertions(+) + +commit 6912472fafb656be8f4c5b4ac9ea28fea3065de4 +Author: Lasse Collin +Date: 2020-02-05 22:28:51 +0200 + + Update m4/.gitignore. + + m4/.gitignore | 1 + + 1 file changed, 1 insertion(+) + +commit 68c60735bbb6e51d4205ba8a9fde307bcfb22f8c +Author: Lasse Collin +Date: 2020-02-05 20:47:38 +0200 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit e1beaa74bc7cb5a409d59b55870e01ae7784ce3a +Author: Lasse Collin +Date: 2020-02-05 20:33:50 +0200 + + xz: Comment out annoying sandboxing messages. + + src/xz/file_io.c | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + +commit 8238192652290df78bd728b20e3f6542d1a2819e +Author: Lasse Collin +Date: 2020-02-05 19:33:37 +0200 + + Build: Workaround a POSIX shell detection problem on Solaris. + + I don't know if the problem is in gnulib's gl_POSIX_SHELL macro + or if xzgrep does something that isn't in POSIX. The workaround + adds a special case for Solaris: if /usr/xpg4/bin/sh exists and + gl_cv_posix_shell wasn't overriden on the configure command line, + use that shell for xzgrep and other scripts. That shell is known + to work and exists on most Solaris systems. + + configure.ac | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +commit 93a1f61e892e145607dd938e3b30098af19a1672 +Author: Lasse Collin +Date: 2020-02-03 22:03:50 +0200 + + Build: Update m4/ax_pthread.m4 from Autoconf Archive. + + m4/ax_pthread.m4 | 398 ++++++++++++++++++++++++++++++++++++++----------------- + 1 file changed, 279 insertions(+), 119 deletions(-) + +commit d0daa21792ff861e5423bbd82aaa6c8ba9fa0462 +Author: Lasse Collin +Date: 2020-02-01 19:56:18 +0200 + + xz: Limit --memlimit-compress to at most 4020 MiB for 32-bit xz. + + See the code comment for reasoning. It's far from perfect but + hopefully good enough for certain cases while hopefully doing + nothing bad in other situations. + + At presets -5 ... -9, 4020 MiB vs. 4096 MiB makes no difference + on how xz scales down the number of threads. + + The limit has to be a few MiB below 4096 MiB because otherwise + things like "xz --lzma2=dict=500MiB" won't scale down the dict + size enough and xz cannot allocate enough memory. With + "ulimit -v $((4096 * 1024))" on x86-64, the limit in xz had + to be no more than 4085 MiB. Some safety margin is good though. + + This is hack but it should be useful when running 32-bit xz on + a 64-bit kernel that gives full 4 GiB address space to xz. + Hopefully this is enough to solve this: + + https://bugzilla.redhat.com/show_bug.cgi?id=1196786 + + FreeBSD has a patch that limits the result in tuklib_physmem() + to SIZE_MAX on 32-bit systems. While I think it's not the way + to do it, the results on --memlimit-compress have been good. This + commit should achieve practically identical results for compression + while leaving decompression and tuklib_physmem() and thus + lzma_physmem() unaffected. + + src/xz/hardware.c | 32 +++++++++++++++++++++++++++++++- + src/xz/xz.1 | 21 ++++++++++++++++++++- + 2 files changed, 51 insertions(+), 2 deletions(-) + +commit 4433c2dc5727ee6aef570e001a5a024e0d94e609 +Author: Lasse Collin +Date: 2020-01-26 20:53:25 +0200 + + xz: Set the --flush-timeout deadline when the first input byte arrives. + + xz --flush-timeout=2000, old version: + + 1. xz is started. The next flush will happen after two seconds. + 2. No input for one second. + 3. A burst of a few kilobytes of input. + 4. No input for one second. + 5. Two seconds have passed and flushing starts. + + The first second counted towards the flush-timeout even though + there was no pending data. This can cause flushing to occur more + often than needed. + + xz --flush-timeout=2000, after this commit: + + 1. xz is started. + 2. No input for one second. + 3. A burst of a few kilobytes of input. The next flush will + happen after two seconds counted from the time when the + first bytes of the burst were read. + 4. No input for one second. + 5. No input for another second. + 6. Two seconds have passed and flushing starts. + + src/xz/coder.c | 6 +----- + src/xz/file_io.c | 6 +++++- + src/xz/mytime.c | 1 - + 3 files changed, 6 insertions(+), 7 deletions(-) + +commit acc0ef3ac80f18e349c6d0252177707105c0a29c +Author: Lasse Collin +Date: 2020-01-26 20:19:19 +0200 + + xz: Move flush_needed from mytime.h to file_pair struct in file_io.h. + + src/xz/coder.c | 3 ++- + src/xz/file_io.c | 3 ++- + src/xz/file_io.h | 3 +++ + src/xz/mytime.c | 3 --- + src/xz/mytime.h | 4 ---- + 5 files changed, 7 insertions(+), 9 deletions(-) + +commit 4afe69d30b66812682a2016ee18441958019cbb2 +Author: Lasse Collin +Date: 2020-01-26 14:49:22 +0200 + + xz: coder.c: Make writing output a separate function. + + The same code sequence repeats so it's nicer as a separate function. + Note that in one case there was no test for opt_mode != MODE_TEST, + but that was only because that condition would always be true, so + this commit doesn't change the behavior there. + + src/xz/coder.c | 30 +++++++++++++++++------------- + 1 file changed, 17 insertions(+), 13 deletions(-) + +commit ec26f3ace5f9b260ca91508030f07465ae2f9f78 +Author: Lasse Collin +Date: 2020-01-26 14:13:42 +0200 + + xz: Fix semi-busy-waiting in xz --flush-timeout. + + When input blocked, xz --flush-timeout=1 would wake up every + millisecond and initiate flushing which would have nothing to + flush and thus would just waste CPU time. The fix disables the + timeout when no input has been seen since the previous flush. + + src/xz/coder.c | 4 ++++ + src/xz/file_io.c | 15 +++++++++++---- + src/xz/file_io.h | 4 ++++ + 3 files changed, 19 insertions(+), 4 deletions(-) + +commit 38915703241e69a64f133ff9a02ec9100c6019c6 +Author: Lasse Collin +Date: 2020-01-26 13:47:31 +0200 + + xz: Refactor io_read() a bit. + + src/xz/file_io.c | 17 ++++++++--------- + 1 file changed, 8 insertions(+), 9 deletions(-) + +commit f6d24245349cecfae6ec0d2366fa80716c9f6d37 +Author: Lasse Collin +Date: 2020-01-26 13:37:08 +0200 + + xz: Update a comment in file_io.h. + + src/xz/file_io.h | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +commit 15b55d5c63d27f81776edb1abc05872a751fc674 +Author: Lasse Collin +Date: 2020-01-26 13:27:51 +0200 + + xz: Move the setting of flush_needed in file_io.c to a nicer location. + + src/xz/file_io.c | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +commit 609c7067859146ffc62ac655f6ba53599c891801 +Author: Lasse Collin +Date: 2020-02-05 19:56:09 +0200 + + xz: Enable Capsicum sandboxing by default if available. + + It has been enabled in FreeBSD for a while and reported to work fine. + + Thanks to Xin Li. + + INSTALL | 6 ------ + configure.ac | 8 ++++---- + 2 files changed, 4 insertions(+), 10 deletions(-) + +commit 00517d125cc26ecece0eebb84c1c3975cd19bee0 +Author: Lasse Collin +Date: 2019-12-31 22:41:45 +0200 + + Rename unaligned_read32ne to read32ne, and similarly for the others. + + src/common/tuklib_integer.h | 64 +++++++++++++++---------------- + src/liblzma/common/alone_encoder.c | 2 +- + src/liblzma/common/block_header_decoder.c | 2 +- + src/liblzma/common/block_header_encoder.c | 2 +- + src/liblzma/common/memcmplen.h | 9 ++--- + src/liblzma/common/stream_flags_decoder.c | 6 +-- + src/liblzma/common/stream_flags_encoder.c | 8 ++-- + src/liblzma/lz/lz_encoder_hash.h | 2 +- + src/liblzma/lzma/lzma_decoder.c | 2 +- + src/liblzma/lzma/lzma_encoder.c | 2 +- + src/liblzma/lzma/lzma_encoder_private.h | 3 +- + src/liblzma/simple/simple_decoder.c | 2 +- + src/liblzma/simple/simple_encoder.c | 2 +- + tests/test_block_header.c | 4 +- + tests/test_stream_flags.c | 6 +-- + 15 files changed, 54 insertions(+), 62 deletions(-) + +commit 52d89d8443c4a31a69c0701062f2c7711d82bbed +Author: Lasse Collin +Date: 2019-12-31 00:29:48 +0200 + + Rename read32ne to aligned_read32ne, and similarly for the others. + + Using the aligned methods requires more care to ensure that + the address really is aligned, so it's nicer if the aligned + methods are prefixed. The next commit will remove the unaligned_ + prefix from the unaligned methods which in liblzma are used in + more places than the aligned ones. + + src/common/tuklib_integer.h | 56 +++++++++++++++++++++--------------------- + src/liblzma/check/crc32_fast.c | 4 +-- + src/liblzma/check/crc64_fast.c | 4 +-- + 3 files changed, 32 insertions(+), 32 deletions(-) + +commit 850620468b57d49f16093e5870d1050886fcb37a +Author: Lasse Collin +Date: 2019-12-31 00:18:24 +0200 + + Revise tuklib_integer.h and .m4. + + Add a configure option --enable-unsafe-type-punning to get the + old non-conforming memory access methods. It can be useful with + old compilers or in some other less typical situations but + shouldn't normally be used. + + Omit the packed struct trick for unaligned access. While it's + best in some cases, this is simpler. If the memcpy trick doesn't + work, one can request unsafe type punning from configure. + + Because CRC32/CRC64 code needs fast aligned reads, if no very + safe way to do it is found, type punning is used as a fallback. + This sucks but since it currently works in practice, it seems to + be the least bad option. It's never needed with GCC >= 4.7 or + Clang >= 3.6 since these support __builtin_assume_aligned and + thus fast aligned access can be done with the memcpy trick. + + Other things: + - Support GCC/Clang __builtin_bswapXX + - Cleaner bswap fallback macros + - Minor cleanups + + m4/tuklib_integer.m4 | 43 ++++ + src/common/tuklib_integer.h | 488 ++++++++++++++++++++++++-------------------- + 2 files changed, 314 insertions(+), 217 deletions(-) + +commit a45badf0342666462cc6a7107a071418570ab773 +Author: Lasse Collin +Date: 2019-12-29 22:51:58 +0200 + + Tests: Hopefully fix test_check.c to work on EBCDIC systems. + + Thanks to Daniel Richard G. + + tests/test_check.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +commit c9a8071e6690a8db8a485c075920df254e7c70ea +Author: Lasse Collin +Date: 2019-09-24 23:02:40 +0300 + + Scripts: Put /usr/xpg4/bin to the beginning of PATH on Solaris. + + This adds a configure option --enable-path-for-scripts=PREFIX + which defaults to empty except on Solaris it is /usr/xpg4/bin + to make POSIX grep and others available. The Solaris case had + been documented in INSTALL with a manual fix but it's better + to do this automatically since it is needed on most Solaris + systems anyway. + + Thanks to Daniel Richard G. + + INSTALL | 43 +++++++++++++++++++++++++++++++++++-------- + configure.ac | 26 ++++++++++++++++++++++++++ + src/scripts/xzdiff.in | 1 + + src/scripts/xzgrep.in | 1 + + src/scripts/xzless.in | 1 + + src/scripts/xzmore.in | 1 + + 6 files changed, 65 insertions(+), 8 deletions(-) + +commit aba140e2df3ff63ad124ae997de16d517b98ca50 +Author: Lasse Collin +Date: 2019-07-12 18:57:43 +0300 + + Fix comment typos in tuklib_mbstr* files. + + src/common/tuklib_mbstr.h | 2 +- + src/common/tuklib_mbstr_fw.c | 2 +- + src/common/tuklib_mbstr_width.c | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +commit 710f5bd769a5d2bd8684256c2727d15350ee2ab8 +Author: Lasse Collin +Date: 2019-07-12 18:30:46 +0300 + + Add missing include to tuklib_mbstr_width.c. + + It didn't matter in XZ Utils because sysdefs.h + includes string.h anyway. + + src/common/tuklib_mbstr_width.c | 1 + + 1 file changed, 1 insertion(+) + +commit 0e491aa8cd72e0100cd15c1b9469cd57fae500b0 +Author: Lasse Collin +Date: 2019-06-25 23:15:21 +0300 + + liblzma: Fix a buggy comment. + + src/liblzma/lz/lz_encoder_mf.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit bfc245569f340a75bd71ad32a6beba786712683b +Author: Lasse Collin +Date: 2019-06-25 00:16:06 +0300 + + configure.ac: Fix a typo in a comment. + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit f18eee9d15a22c8449ef395a05f0eb637c4ad253 +Author: Lasse Collin +Date: 2019-06-25 00:08:13 +0300 + + Tests: Silence warnings from clang -Wassign-enum. + + Also changed 999 to 99 so it fits even if lzma_check happened + to be 8 bits wide. + + tests/test_block_header.c | 3 ++- + tests/test_stream_flags.c | 2 +- + 2 files changed, 3 insertions(+), 2 deletions(-) + +commit 25f74554723e8deabc66fed1abf0ec27a4ed19d5 +Author: Lasse Collin +Date: 2019-06-24 23:52:17 +0300 + + liblzma: Add a comment. + + src/liblzma/common/stream_encoder_mt.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 44eb961f2a51d02420d017bc5ff470360663650c +Author: Lasse Collin +Date: 2019-06-24 23:45:21 +0300 + + liblzma: Silence clang -Wmissing-variable-declarations. + + src/liblzma/check/crc32_table.c | 3 +++ + src/liblzma/check/crc64_table.c | 3 +++ + 2 files changed, 6 insertions(+) + +commit 267afcd9955e668c1532b069230c21c348eb4f82 +Author: Lasse Collin +Date: 2019-06-24 22:57:43 +0300 + + xz: Silence a warning from clang -Wsign-conversion in main.c. + + src/xz/main.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 0e3c4002f809311ecef239b05e556d9c462b5703 +Author: Lasse Collin +Date: 2019-06-24 22:47:39 +0300 + + liblzma: Remove incorrect uses of lzma_attribute((__unused__)). + + Caught by clang -Wused-but-marked-unused. + + src/liblzma/common/alone_decoder.c | 3 +-- + src/liblzma/common/alone_encoder.c | 3 +-- + src/liblzma/lz/lz_decoder.c | 3 +-- + 3 files changed, 3 insertions(+), 6 deletions(-) + +commit cb708e8fa3405ec13a0ebfebbbf2793f927deab1 +Author: Lasse Collin +Date: 2019-06-24 20:53:55 +0300 + + Tests: Silence a warning from -Wsign-conversion. + + tests/create_compress_files.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +commit c8cace3d6e965c0fb537591372bf71b9357dd76c +Author: Lasse Collin +Date: 2019-06-24 20:45:49 +0300 + + xz: Fix an integer overflow with 32-bit off_t. + + Or any off_t which isn't very big (like signed 64 bit integer + that most system have). A small off_t could overflow if the + file being decompressed had long enough run of zero bytes, + which would result in corrupt output. + + src/xz/file_io.c | 11 +++++++++-- + 1 file changed, 9 insertions(+), 2 deletions(-) + +commit 65a42741e290fbcd85dfc5db8a62c4bce5f7712c +Author: Lasse Collin +Date: 2019-06-24 00:57:23 +0300 + + Tests: Remove a duplicate branch from tests/tests.h. + + The duplication was introduced about eleven years ago and + should have been cleaned up back then already. + + This was caught by -Wduplicated-branches. + + tests/tests.h | 9 ++------- + 1 file changed, 2 insertions(+), 7 deletions(-) + +commit 5c4fb60e8df026e933afab0cfe0a8b55be20036c +Author: Lasse Collin +Date: 2019-06-23 23:22:45 +0300 + + tuklib_mbstr_width: Fix a warning from -Wsign-conversion. + + src/common/tuklib_mbstr_width.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 37df03ce52ce53710e1513387648763f8a744154 +Author: Lasse Collin +Date: 2019-06-23 23:19:34 +0300 + + xz: Fix some of the warnings from -Wsign-conversion. + + src/xz/args.c | 4 ++-- + src/xz/coder.c | 4 ++-- + src/xz/file_io.c | 5 +++-- + src/xz/message.c | 4 ++-- + src/xz/mytime.c | 4 ++-- + src/xz/options.c | 2 +- + src/xz/util.c | 4 ++-- + 7 files changed, 14 insertions(+), 13 deletions(-) + +commit 7c65ae0f5f2e2431f88621e8fe6d1dc7907e30c1 +Author: Lasse Collin +Date: 2019-06-23 22:27:45 +0300 + + tuklib_cpucores: Silence warnings from -Wsign-conversion. + + src/common/tuklib_cpucores.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +commit a502dd1d000b598406637d452f535f4bbd43e2a4 +Author: Lasse Collin +Date: 2019-06-23 21:40:47 +0300 + + xzdec: Fix warnings from -Wsign-conversion. + + src/xzdec/xzdec.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit a45d1a5374ceb22e23255b0b595b9e641e9860af +Author: Lasse Collin +Date: 2019-06-23 21:38:56 +0300 + + liblzma: Fix warnings from -Wsign-conversion. + + Also, more parentheses were added to the literal_subcoder + macro in lzma_comon.h (better style but no functional change + in the current usage). + + src/liblzma/common/block_header_decoder.c | 2 +- + src/liblzma/delta/delta_decoder.c | 2 +- + src/liblzma/lzma/fastpos.h | 2 +- + src/liblzma/lzma/lzma2_decoder.c | 8 ++++---- + src/liblzma/lzma/lzma_common.h | 3 ++- + src/liblzma/lzma/lzma_decoder.c | 16 ++++++++-------- + src/liblzma/simple/arm.c | 6 +++--- + src/liblzma/simple/armthumb.c | 8 ++++---- + src/liblzma/simple/ia64.c | 2 +- + src/liblzma/simple/powerpc.c | 9 +++++---- + src/liblzma/simple/x86.c | 2 +- + 11 files changed, 31 insertions(+), 29 deletions(-) + +commit 4ff87ddf80ed7cb233444cddd86ab1940b5b55ec +Author: Lasse Collin +Date: 2019-06-23 19:33:55 +0300 + + tuklib_integer: Silence warnings from -Wsign-conversion. + + src/common/tuklib_integer.h | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit ed1a9d33984a3a37ae9a775a46859850d98ea4d0 +Author: Lasse Collin +Date: 2019-06-20 19:40:30 +0300 + + tuklib_integer: Fix usage of conv macros. + + Use a temporary variable instead of e.g. + conv32le(unaligned_read32ne(buf)) because the macro can + evaluate its argument multiple times. + + src/common/tuklib_integer.h | 12 ++++++++---- + 1 file changed, 8 insertions(+), 4 deletions(-) + +commit 612c88dfc08e2c572623954ecfde541d21c84882 +Author: Lasse Collin +Date: 2019-06-03 20:44:19 +0300 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 85da31d8b882b8b9671ab3e3d74d88bd945cd0bb +Author: Lasse Collin +Date: 2019-06-03 20:41:54 +0300 + *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Sun Apr 5 02:15:45 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C15FE2A9867; Sun, 5 Apr 2020 02:15:45 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48vy280Gh4z414v; Sun, 5 Apr 2020 02:15:43 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 056BD41D2; Sun, 5 Apr 2020 02:08:18 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03528HiB050371; Sun, 5 Apr 2020 02:08:17 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03528HYH050368; Sun, 5 Apr 2020 02:08:17 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <202004050208.03528HYH050368@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Sun, 5 Apr 2020 02:08:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359636 - in stable/12/contrib/xz/src: common xz X-SVN-Group: stable-12 X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: in stable/12/contrib/xz/src: common xz X-SVN-Commit-Revision: 359636 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Apr 2020 02:15:45 -0000 Author: delphij Date: Sun Apr 5 02:08:17 2020 New Revision: 359636 URL: https://svnweb.freebsd.org/changeset/base/359636 Log: MFC r357609: MFV r357608: Limit memory usage in xz(1) instead of in tuklib. Modified: stable/12/contrib/xz/src/common/tuklib_physmem.c stable/12/contrib/xz/src/xz/hardware.c stable/12/contrib/xz/src/xz/xz.1 Directory Properties: stable/12/ (props changed) Modified: stable/12/contrib/xz/src/common/tuklib_physmem.c ============================================================================== --- stable/12/contrib/xz/src/common/tuklib_physmem.c Sun Apr 5 01:53:35 2020 (r359635) +++ stable/12/contrib/xz/src/common/tuklib_physmem.c Sun Apr 5 02:08:17 2020 (r359636) @@ -45,7 +45,6 @@ # include #elif defined(TUKLIB_PHYSMEM_SYSCONF) -# include # include #elif defined(TUKLIB_PHYSMEM_SYSCTL) @@ -146,16 +145,13 @@ tuklib_physmem(void) #elif defined(TUKLIB_PHYSMEM_SYSCONF) const long pagesize = sysconf(_SC_PAGESIZE); const long pages = sysconf(_SC_PHYS_PAGES); - if (pagesize != -1 && pages != -1) { + if (pagesize != -1 && pages != -1) // According to docs, pagesize * pages can overflow. // Simple case is 32-bit box with 4 GiB or more RAM, // which may report exactly 4 GiB of RAM, and "long" // being 32-bit will overflow. Casting to uint64_t // hopefully avoids overflows in the near future. ret = (uint64_t)pagesize * (uint64_t)pages; - if (ret > SIZE_T_MAX) - ret = SIZE_T_MAX; - } #elif defined(TUKLIB_PHYSMEM_SYSCTL) int name[2] = { Modified: stable/12/contrib/xz/src/xz/hardware.c ============================================================================== --- stable/12/contrib/xz/src/xz/hardware.c Sun Apr 5 01:53:35 2020 (r359635) +++ stable/12/contrib/xz/src/xz/hardware.c Sun Apr 5 02:08:17 2020 (r359636) @@ -68,8 +68,38 @@ hardware_memlimit_set(uint64_t new_memlimit, new_memlimit = (uint32_t)new_memlimit * total_ram / 100; } - if (set_compress) + if (set_compress) { memlimit_compress = new_memlimit; + +#if SIZE_MAX == UINT32_MAX + // FIXME? + // + // When running a 32-bit xz on a system with a lot of RAM and + // using a percentage-based memory limit, the result can be + // bigger than the 32-bit address space. Limiting the limit + // below SIZE_MAX for compression (not decompression) makes + // xz lower the compression settings (or number of threads) + // to a level that *might* work. In practice it has worked + // when using a 64-bit kernel that gives full 4 GiB address + // space to 32-bit programs. In other situations this might + // still be too high, like 32-bit kernels that may give much + // less than 4 GiB to a single application. + // + // So this is an ugly hack but I will keep it here while + // it does more good than bad. + // + // Use a value less than SIZE_MAX so that there's some room + // for the xz program and so on. Don't use 4000 MiB because + // it could look like someone mixed up base-2 and base-10. + const uint64_t limit_max = UINT64_C(4020) << 20; + + // UINT64_MAX is a special case for the string "max" so + // that has to be handled specially. + if (memlimit_compress != UINT64_MAX + && memlimit_compress > limit_max) + memlimit_compress = limit_max; +#endif + } if (set_decompress) memlimit_decompress = new_memlimit; Modified: stable/12/contrib/xz/src/xz/xz.1 ============================================================================== --- stable/12/contrib/xz/src/xz/xz.1 Sun Apr 5 01:53:35 2020 (r359635) +++ stable/12/contrib/xz/src/xz/xz.1 Sun Apr 5 02:08:17 2020 (r359636) @@ -1005,6 +1005,25 @@ instead of until the details have been decided. .RE .IP "" +For 32-bit +.BR xz +there is a special case: if the +.I limit +would be over +.BR "4020\ MiB" , +the +.I limit +is set to +.BR "4020\ MiB" . +(The values +.B 0 +and +.B max +aren't affected by this. +A similar feature doesn't exist for decompression.) +This can be helpful when a 32-bit executable has access +to 4\ GiB address space while hopefully doing no harm in other situations. +.IP "" See also the section .BR "Memory usage" . .TP From owner-svn-src-all@freebsd.org Sun Apr 5 02:28:01 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D670E2A9AD8; Sun, 5 Apr 2020 02:28:00 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48vyJJ0NlFz44xV; Sun, 5 Apr 2020 02:28:00 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C2B5F45DA; Sun, 5 Apr 2020 02:27:50 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0352RoIc062889; Sun, 5 Apr 2020 02:27:50 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0352RnxY062882; Sun, 5 Apr 2020 02:27:49 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <202004050227.0352RnxY062882@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Sun, 5 Apr 2020 02:27:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359637 - in stable/12: contrib/file contrib/file/doc contrib/file/m4 contrib/file/magic contrib/file/magic/Magdir contrib/file/python contrib/file/src contrib/file/tests lib/libmagic X-SVN-Group: stable-12 X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: in stable/12: contrib/file contrib/file/doc contrib/file/m4 contrib/file/magic contrib/file/magic/Magdir contrib/file/python contrib/file/src contrib/file/tests lib/libmagic X-SVN-Commit-Revision: 359637 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Apr 2020 02:28:01 -0000 Author: delphij Date: Sun Apr 5 02:27:49 2020 New Revision: 359637 URL: https://svnweb.freebsd.org/changeset/base/359637 Log: MFC r357757: MFV r357712: file 5.38. Added: stable/12/contrib/file/magic/Magdir/forth - copied unchanged from r357757, head/contrib/file/magic/Magdir/forth stable/12/contrib/file/magic/Magdir/git - copied unchanged from r357757, head/contrib/file/magic/Magdir/git stable/12/contrib/file/magic/Magdir/modulefile - copied unchanged from r357757, head/contrib/file/magic/Magdir/modulefile stable/12/contrib/file/magic/Magdir/openfst - copied unchanged from r357757, head/contrib/file/magic/Magdir/openfst stable/12/contrib/file/magic/Magdir/opentimestamps - copied unchanged from r357757, head/contrib/file/magic/Magdir/opentimestamps stable/12/contrib/file/magic/Magdir/pmem - copied unchanged from r357757, head/contrib/file/magic/Magdir/pmem stable/12/contrib/file/magic/Magdir/rst - copied unchanged from r357757, head/contrib/file/magic/Magdir/rst stable/12/contrib/file/magic/Magdir/sosi - copied unchanged from r357757, head/contrib/file/magic/Magdir/sosi stable/12/contrib/file/src/is_csv.c - copied unchanged from r357757, head/contrib/file/src/is_csv.c Modified: stable/12/contrib/file/ChangeLog stable/12/contrib/file/Makefile.in stable/12/contrib/file/README stable/12/contrib/file/aclocal.m4 stable/12/contrib/file/compile stable/12/contrib/file/config.guess stable/12/contrib/file/config.h.in stable/12/contrib/file/config.sub stable/12/contrib/file/configure stable/12/contrib/file/configure.ac stable/12/contrib/file/depcomp stable/12/contrib/file/doc/Makefile.in stable/12/contrib/file/doc/file.man stable/12/contrib/file/doc/libmagic.man stable/12/contrib/file/doc/magic.man stable/12/contrib/file/ltmain.sh stable/12/contrib/file/m4/libtool.m4 stable/12/contrib/file/m4/ltoptions.m4 stable/12/contrib/file/m4/ltsugar.m4 stable/12/contrib/file/m4/ltversion.m4 stable/12/contrib/file/m4/lt~obsolete.m4 stable/12/contrib/file/magic/Magdir/android stable/12/contrib/file/magic/Magdir/animation stable/12/contrib/file/magic/Magdir/apple stable/12/contrib/file/magic/Magdir/archive stable/12/contrib/file/magic/Magdir/audio stable/12/contrib/file/magic/Magdir/bsi stable/12/contrib/file/magic/Magdir/c-lang stable/12/contrib/file/magic/Magdir/cad stable/12/contrib/file/magic/Magdir/commands stable/12/contrib/file/magic/Magdir/compress stable/12/contrib/file/magic/Magdir/console stable/12/contrib/file/magic/Magdir/database stable/12/contrib/file/magic/Magdir/elf stable/12/contrib/file/magic/Magdir/espressif stable/12/contrib/file/magic/Magdir/filesystems stable/12/contrib/file/magic/Magdir/fonts stable/12/contrib/file/magic/Magdir/frame stable/12/contrib/file/magic/Magdir/games stable/12/contrib/file/magic/Magdir/gimp stable/12/contrib/file/magic/Magdir/icc stable/12/contrib/file/magic/Magdir/images stable/12/contrib/file/magic/Magdir/javascript stable/12/contrib/file/magic/Magdir/kml stable/12/contrib/file/magic/Magdir/linux stable/12/contrib/file/magic/Magdir/macintosh stable/12/contrib/file/magic/Magdir/mail.news stable/12/contrib/file/magic/Magdir/map stable/12/contrib/file/magic/Magdir/msdos stable/12/contrib/file/magic/Magdir/msooxml stable/12/contrib/file/magic/Magdir/ole2compounddocs stable/12/contrib/file/magic/Magdir/pdf stable/12/contrib/file/magic/Magdir/python stable/12/contrib/file/magic/Magdir/rpi stable/12/contrib/file/magic/Magdir/ruby stable/12/contrib/file/magic/Magdir/sgml stable/12/contrib/file/magic/Magdir/sniffer stable/12/contrib/file/magic/Magdir/ssh stable/12/contrib/file/magic/Magdir/uuencode stable/12/contrib/file/magic/Magdir/varied.script stable/12/contrib/file/magic/Magdir/vax stable/12/contrib/file/magic/Magdir/windows stable/12/contrib/file/magic/Magdir/wordprocessors stable/12/contrib/file/magic/Magdir/zip stable/12/contrib/file/magic/Makefile.am stable/12/contrib/file/magic/Makefile.in stable/12/contrib/file/missing stable/12/contrib/file/python/Makefile.in stable/12/contrib/file/src/Makefile.am stable/12/contrib/file/src/Makefile.in stable/12/contrib/file/src/apprentice.c stable/12/contrib/file/src/ascmagic.c stable/12/contrib/file/src/buffer.c stable/12/contrib/file/src/compress.c stable/12/contrib/file/src/encoding.c stable/12/contrib/file/src/file.c stable/12/contrib/file/src/file.h stable/12/contrib/file/src/file_opts.h stable/12/contrib/file/src/fsmagic.c stable/12/contrib/file/src/funcs.c stable/12/contrib/file/src/magic.h.in stable/12/contrib/file/src/readcdf.c stable/12/contrib/file/src/readelf.c stable/12/contrib/file/src/seccomp.c stable/12/contrib/file/src/vasprintf.c stable/12/contrib/file/tests/JW07022A.mp3.result stable/12/contrib/file/tests/Makefile.in stable/12/contrib/file/tests/test.c stable/12/lib/libmagic/Makefile stable/12/lib/libmagic/config.h Directory Properties: stable/12/ (props changed) Modified: stable/12/contrib/file/ChangeLog ============================================================================== --- stable/12/contrib/file/ChangeLog Sun Apr 5 02:08:17 2020 (r359636) +++ stable/12/contrib/file/ChangeLog Sun Apr 5 02:27:49 2020 (r359637) @@ -1,3 +1,23 @@ +2019-12-16 21:11 Christos Zoulas + + * release 5.38 + +2019-12-15 22:13 Christos Zoulas + Document changes since the previous release: + - Always accept -S (no sandbox) even if we don't support sandboxing + - More syscalls elided for sandboxiing + - For ELF dynamic means having an interpreter not just PT_DYNAMIC + - Check for large ELF session header offset + - When saving and restoring a locale, keep the locale name in our + own storage. + - Add a flag to disable CSV file detection. + - Don't pass NULL/0 to memset to appease sanitizers. + - Avoid spurious prints when looks for extensions or apple strings + in fsmagic. + - Add builtin decompressors for xz and and bzip. + - Add a limit for the number of CDF elements. + - More checks for overflow in CDF. + 2019-05-14 22:26 Christos Zoulas * release 5.37 Modified: stable/12/contrib/file/Makefile.in ============================================================================== --- stable/12/contrib/file/Makefile.in Sun Apr 5 02:08:17 2020 (r359636) +++ stable/12/contrib/file/Makefile.in Sun Apr 5 02:27:49 2020 (r359637) @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2014 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -136,7 +136,7 @@ am__recursive_targets = \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - cscope distdir dist dist-all distcheck + cscope distdir distdir-am dist dist-all distcheck am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ $(LISP)config.h.in # Read a list of newline-separated strings from the standard input, @@ -161,7 +161,7 @@ CSCOPE = cscope DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in AUTHORS \ COPYING ChangeLog INSTALL NEWS README TODO compile \ - config.guess config.sub depcomp install-sh ltmain.sh missing + config.guess config.sub install-sh ltmain.sh missing DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) @@ -246,6 +246,7 @@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MINGW = @MINGW@ @@ -352,8 +353,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -495,7 +496,10 @@ distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @@ -560,7 +564,7 @@ distdir: $(DISTFILES) ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz $(am__post_remove_distdir) dist-bzip2: distdir @@ -586,7 +590,7 @@ dist-shar: distdir @echo WARNING: "Support for shar distribution archives is" \ "deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 - shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz $(am__post_remove_distdir) dist-zip: distdir @@ -604,7 +608,7 @@ dist dist-all: distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ - GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ + eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lz*) \ @@ -614,7 +618,7 @@ distcheck: dist *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ - GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ + eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac Modified: stable/12/contrib/file/README ============================================================================== --- stable/12/contrib/file/README Sun Apr 5 02:08:17 2020 (r359636) +++ stable/12/contrib/file/README Sun Apr 5 02:27:49 2020 (r359637) @@ -1,6 +1,6 @@ ## README for file(1) Command and the libmagic(3) library ## - @(#) $File: README,v 1.57 2019/02/06 00:20:56 christos Exp $ + @(#) $File: README,v 1.59 2019/09/19 01:04:01 christos Exp $ Mailing List: file@astron.com Mailing List archives: http://mailman.astron.com/pipermail/file/ @@ -24,6 +24,10 @@ A public read-only git repository of the same sources https://github.com/file/file +We are continuously being fuzzed by OSS-FUZZ: + + https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:file + The major changes for 5.x are CDF file parsing, indirect magic, name/use (recursion) and overhaul in mime and ascii encoding handling. @@ -91,6 +95,7 @@ src/funcs.c - utilility functions src/getline.c - replacement for OS's that don't have it. src/getopt_long.c - replacement for OS's that don't have it. src/gmtime_r.c - replacement for OS's that don't have it. +src/is_csv.c - knows about Comma Separated Value file format (RFC 4180). src/is_json.c - knows about JavaScript Object Notation format (RFC 8259). src/is_tar.c, tar.h - knows about Tape ARchive format (courtesy John Gilmore). src/localtime_r.c - replacement for OS's that don't have it. Modified: stable/12/contrib/file/aclocal.m4 ============================================================================== --- stable/12/contrib/file/aclocal.m4 Sun Apr 5 02:08:17 2020 (r359636) +++ stable/12/contrib/file/aclocal.m4 Sun Apr 5 02:27:49 2020 (r359637) @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.15 -*- Autoconf -*- +# generated automatically by aclocal 1.16.1 -*- Autoconf -*- -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -20,8 +20,8 @@ You have another version of autoconf. It may work, bu If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -# visibility.m4 serial 5 (gettext-0.18.2) -dnl Copyright (C) 2005, 2008, 2010-2016 Free Software Foundation, Inc. +# visibility.m4 serial 6 +dnl Copyright (C) 2005, 2008, 2010-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -51,42 +51,42 @@ AC_DEFUN([gl_VISIBILITY], dnl First, check whether -Werror can be added to the command line, or dnl whether it leads to an error because of some other option that the dnl user has put into $CC $CFLAGS $CPPFLAGS. - AC_MSG_CHECKING([whether the -Werror option is usable]) - AC_CACHE_VAL([gl_cv_cc_vis_werror], [ - gl_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -Werror" - AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([[]], [[]])], - [gl_cv_cc_vis_werror=yes], - [gl_cv_cc_vis_werror=no]) - CFLAGS="$gl_save_CFLAGS"]) - AC_MSG_RESULT([$gl_cv_cc_vis_werror]) + AC_CACHE_CHECK([whether the -Werror option is usable], + [gl_cv_cc_vis_werror], + [gl_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Werror" + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[]], [[]])], + [gl_cv_cc_vis_werror=yes], + [gl_cv_cc_vis_werror=no]) + CFLAGS="$gl_save_CFLAGS" + ]) dnl Now check whether visibility declarations are supported. - AC_MSG_CHECKING([for simple visibility declarations]) - AC_CACHE_VAL([gl_cv_cc_visibility], [ - gl_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -fvisibility=hidden" - dnl We use the option -Werror and a function dummyfunc, because on some - dnl platforms (Cygwin 1.7) the use of -fvisibility triggers a warning - dnl "visibility attribute not supported in this configuration; ignored" - dnl at the first function definition in every compilation unit, and we - dnl don't want to use the option in this case. - if test $gl_cv_cc_vis_werror = yes; then - CFLAGS="$CFLAGS -Werror" - fi - AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[extern __attribute__((__visibility__("hidden"))) int hiddenvar; - extern __attribute__((__visibility__("default"))) int exportedvar; - extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); - extern __attribute__((__visibility__("default"))) int exportedfunc (void); - void dummyfunc (void) {} - ]], - [[]])], - [gl_cv_cc_visibility=yes], - [gl_cv_cc_visibility=no]) - CFLAGS="$gl_save_CFLAGS"]) - AC_MSG_RESULT([$gl_cv_cc_visibility]) + AC_CACHE_CHECK([for simple visibility declarations], + [gl_cv_cc_visibility], + [gl_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -fvisibility=hidden" + dnl We use the option -Werror and a function dummyfunc, because on some + dnl platforms (Cygwin 1.7) the use of -fvisibility triggers a warning + dnl "visibility attribute not supported in this configuration; ignored" + dnl at the first function definition in every compilation unit, and we + dnl don't want to use the option in this case. + if test $gl_cv_cc_vis_werror = yes; then + CFLAGS="$CFLAGS -Werror" + fi + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[extern __attribute__((__visibility__("hidden"))) int hiddenvar; + extern __attribute__((__visibility__("default"))) int exportedvar; + extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); + extern __attribute__((__visibility__("default"))) int exportedfunc (void); + void dummyfunc (void) {} + ]], + [[]])], + [gl_cv_cc_visibility=yes], + [gl_cv_cc_visibility=no]) + CFLAGS="$gl_save_CFLAGS" + ]) if test $gl_cv_cc_visibility = yes; then CFLAG_VISIBILITY="-fvisibility=hidden" HAVE_VISIBILITY=1 @@ -98,7 +98,7 @@ AC_DEFUN([gl_VISIBILITY], [Define to 1 or 0, depending whether the compiler supports simple visibility declarations.]) ]) -# Copyright (C) 2002-2014 Free Software Foundation, Inc. +# Copyright (C) 2002-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -110,10 +110,10 @@ AC_DEFUN([gl_VISIBILITY], # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.15' +[am__api_version='1.16' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.15], [], +m4_if([$1], [1.16.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -129,14 +129,14 @@ m4_define([_AM_AUTOCONF_VERSION], []) # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.15])dnl +[AM_AUTOMAKE_VERSION([1.16.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -188,7 +188,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd` # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997-2014 Free Software Foundation, Inc. +# Copyright (C) 1997-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -219,7 +219,7 @@ AC_CONFIG_COMMANDS_PRE( Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -410,13 +410,12 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. - # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], @@ -424,49 +423,41 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac + # TODO: see whether this extra hack can be removed once we start + # requiring Autoconf 2.70 or later. + AS_CASE([$CONFIG_FILES], + [*\'*], [eval set x "$CONFIG_FILES"], + [*], [set x $CONFIG_FILES]) shift - for mf + # Used to flag and report bootstrapping failures. + am_rc=0 + for am_mf do # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line + am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile which includes + # dependency-tracking related rules and includes. + # Grep'ing the whole file directly is not great: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`AS_DIRNAME("$mf")` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`AS_DIRNAME(["$file"])` - AS_MKDIR_P([$dirpart/$fdir]) - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done + sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ + || continue + am_dirpart=`AS_DIRNAME(["$am_mf"])` + am_filepart=`AS_BASENAME(["$am_mf"])` + AM_RUN_LOG([cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles]) || am_rc=$? done + if test $am_rc -ne 0; then + AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments + for automatic dependency tracking. Try re-running configure with the + '--disable-dependency-tracking' option to at least be able to build + the package (albeit without support for automatic dependency tracking).]) + fi + AS_UNSET([am_dirpart]) + AS_UNSET([am_filepart]) + AS_UNSET([am_mf]) + AS_UNSET([am_rc]) + rm -f conftest-deps.mk } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS @@ -475,18 +466,17 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # -# This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each '.P' file that we will -# need in order to bootstrap the dependency handling code. +# This code is only required when automatic dependency tracking is enabled. +# This creates each '.Po' and '.Plo' makefile fragment that we'll need in +# order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], - [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) -]) + [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])]) # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -573,8 +563,8 @@ AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: -# -# +# +# AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. @@ -641,7 +631,7 @@ END Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . +that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM @@ -683,7 +673,7 @@ for _am_header in $config_headers :; do done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -704,7 +694,7 @@ if test x"${install_sh+set}" != xset; then fi AC_SUBST([install_sh])]) -# Copyright (C) 2003-2014 Free Software Foundation, Inc. +# Copyright (C) 2003-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -725,7 +715,7 @@ AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -733,49 +723,42 @@ AC_SUBST([am__leading_dot])]) # AM_MAKE_INCLUDE() # ----------------- -# Check to see how make treats includes. +# Check whether make has an 'include' directive that can support all +# the idioms we need for our automatic dependency tracking code. AC_DEFUN([AM_MAKE_INCLUDE], -[am_make=${MAKE-make} -cat > confinc << 'END' +[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive]) +cat > confinc.mk << 'END' am__doit: - @echo this is the am__doit target + @echo this is the am__doit target >confinc.out .PHONY: am__doit END -# If we don't find an include directive, just comment out the code. -AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD - ;; - esac -fi -AC_SUBST([am__include]) -AC_SUBST([am__quote]) -AC_MSG_RESULT([$_am_result]) -rm -f confinc confmf -]) +# BSD make does it like this. +echo '.include "confinc.mk" # ignored' > confmf.BSD +# Other make implementations (GNU, Solaris 10, AIX) do it like this. +echo 'include confinc.mk # ignored' > confmf.GNU +_am_result=no +for s in GNU BSD; do + AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out]) + AS_CASE([$?:`cat confinc.out 2>/dev/null`], + ['0:this is the am__doit target'], + [AS_CASE([$s], + [BSD], [am__include='.include' am__quote='"'], + [am__include='include' am__quote=''])]) + if test "$am__include" != "#"; then + _am_result="yes ($s style)" + break + fi +done +rm -f confinc.* confmf.* +AC_MSG_RESULT([${_am_result}]) +AC_SUBST([am__include])]) +AC_SUBST([am__quote])]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997-2014 Free Software Foundation, Inc. +# Copyright (C) 1997-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -814,7 +797,7 @@ fi # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -843,7 +826,7 @@ AC_DEFUN([_AM_SET_OPTIONS], AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -890,7 +873,7 @@ AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -909,7 +892,7 @@ AC_DEFUN([AM_RUN_LOG], # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -990,7 +973,7 @@ AC_CONFIG_COMMANDS_PRE( rm -f conftest.file ]) -# Copyright (C) 2009-2014 Free Software Foundation, Inc. +# Copyright (C) 2009-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1050,7 +1033,7 @@ AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1078,7 +1061,7 @@ fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006-2014 Free Software Foundation, Inc. +# Copyright (C) 2006-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1097,7 +1080,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004-2014 Free Software Foundation, Inc. +# Copyright (C) 2004-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, Modified: stable/12/contrib/file/compile ============================================================================== --- stable/12/contrib/file/compile Sun Apr 5 02:08:17 2020 (r359636) +++ stable/12/contrib/file/compile Sun Apr 5 02:27:49 2020 (r359637) @@ -1,9 +1,9 @@ #! /bin/sh # Wrapper for compilers which do not understand '-c -o'. -scriptversion=2012-10-14.11; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify @@ -17,7 +17,7 @@ scriptversion=2012-10-14.11; # UTC # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -255,7 +255,8 @@ EOF echo "compile $scriptversion" exit $? ;; - cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ + icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac @@ -339,9 +340,9 @@ exit $ret # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: Modified: stable/12/contrib/file/config.guess ============================================================================== --- stable/12/contrib/file/config.guess Sun Apr 5 02:08:17 2020 (r359636) +++ stable/12/contrib/file/config.guess Sun Apr 5 02:27:49 2020 (r359637) @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2017 Free Software Foundation, Inc. +# Copyright 1992-2019 Free Software Foundation, Inc. -timestamp='2017-01-01' +timestamp='2019-01-03' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -15,7 +15,7 @@ timestamp='2017-01-01' # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, see . +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -27,7 +27,7 @@ timestamp='2017-01-01' # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess +# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess # # Please send patches to . @@ -39,7 +39,7 @@ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. -Operation modes: +Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit @@ -50,7 +50,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2017 Free Software Foundation, Inc. +Copyright 1992-2019 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -84,8 +84,6 @@ if test $# != 0; then exit 1 fi -trap 'exit 1' 1 2 15 - # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a @@ -96,34 +94,38 @@ trap 'exit 1' 1 2 15 # Portable tmp directory creation inspired by the Autoconf team. -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ; set_cc_for_build= ;' +tmp= +# shellcheck disable=SC2172 +trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 +set_cc_for_build() { + : "${TMPDIR=/tmp}" + # shellcheck disable=SC2039 + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } + dummy=$tmp/dummy + case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in + ,,) echo "int x;" > "$dummy.c" + for driver in cc gcc c89 c99 ; do + if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then + CC_FOR_BUILD="$driver" + break + fi + done + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; + esac +} + # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then +if test -f /.attbin/uname ; then PATH=$PATH:/.attbin ; export PATH fi @@ -132,14 +134,14 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEAS UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown -case "${UNAME_SYSTEM}" in +case "$UNAME_SYSTEM" in Linux|GNU|GNU/*) # If the system lacks a compiler, then just pick glibc. # We could probably try harder. LIBC=gnu - eval $set_cc_for_build - cat <<-EOF > $dummy.c + set_cc_for_build + cat <<-EOF > "$dummy.c" #include #if defined(__UCLIBC__) LIBC=uclibc @@ -149,13 +151,20 @@ Linux|GNU|GNU/*) LIBC=gnu #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`" + + # If ldd exists, use it to detect musl libc. + if command -v ldd >/dev/null && \ + ldd --version 2>&1 | grep -q ^musl + then + LIBC=musl + fi ;; esac # Note: order is significant - the case branches are not exclusive. -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in +case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, @@ -169,30 +178,32 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ - /sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || \ + "/sbin/$sysctl" 2>/dev/null || \ + "/usr/sbin/$sysctl" 2>/dev/null || \ echo unknown)` - case "${UNAME_MACHINE_ARCH}" in + case "$UNAME_MACHINE_ARCH" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; - earmv*) - arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` - endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` - machine=${arch}${endian}-unknown + earm*) + arch="${UNAME_MACHINE_ARCH#e}" + arch="${arch%eb}" + arch="${arch%hf}" + endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` + machine="${arch}${endian}"-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + *) machine="$UNAME_MACHINE_ARCH"-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently (or will in the future) and ABI. - case "${UNAME_MACHINE_ARCH}" in + case "$UNAME_MACHINE_ARCH" in earm*) os=netbsdelf ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build + set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then @@ -208,10 +219,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE ;; esac # Determine ABI tags. - case "${UNAME_MACHINE_ARCH}" in + case "$UNAME_MACHINE_ARCH" in earm*) - expr='s/^earmv[0-9]/-eabi/;s/eb$//' - abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` + expr='s/v[0-9]//;s/earm/-eabi/;s/eb$//' + abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` ;; esac # The OS release @@ -219,46 +230,55 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in + case "$UNAME_VERSION" in Debian*) release='-gnu' ;; *) - release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` + release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}${abi}" + echo "$machine-${os}${release}${abi-}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} + echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" exit ;; *:LibertyBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} + echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" exit ;; + *:MidnightBSD:*:*) + echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" + exit ;; *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" exit ;; *:SolidBSD:*:*) - echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" exit ;; macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd${UNAME_RELEASE} + echo powerpc-unknown-mirbsd"$UNAME_RELEASE" exit ;; *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" exit ;; *:Sortix:*:*) - echo ${UNAME_MACHINE}-unknown-sortix + echo "$UNAME_MACHINE"-unknown-sortix exit ;; + *:Redox:*:*) + echo "$UNAME_MACHINE"-unknown-redox + exit ;; + mips:OSF1:*.*) + echo mips-dec-osf1 + exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) @@ -310,28 +330,19 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`" # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos + echo "$UNAME_MACHINE"-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos + echo "$UNAME_MACHINE"-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition @@ -343,7 +354,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} + echo arm-acorn-riscix"$UNAME_RELEASE" exit ;; arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos @@ -370,19 +381,32 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE sparc) echo sparc-icl-nx7; exit ;; esac ;; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Sun Apr 5 03:02:31 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 68DE22AA9D1; Sun, 5 Apr 2020 03:02:31 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48vz441dtkz4JRH; Sun, 5 Apr 2020 03:02:28 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 64B084A04; Sun, 5 Apr 2020 02:45:55 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0352jsUT075221; Sun, 5 Apr 2020 02:45:54 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0352js2Z075220; Sun, 5 Apr 2020 02:45:54 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <202004050245.0352js2Z075220@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Sun, 5 Apr 2020 02:45:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359638 - stable/12/sbin/fsck_msdosfs X-SVN-Group: stable-12 X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: stable/12/sbin/fsck_msdosfs X-SVN-Commit-Revision: 359638 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Apr 2020 03:02:31 -0000 Author: delphij Date: Sun Apr 5 02:45:54 2020 New Revision: 359638 URL: https://svnweb.freebsd.org/changeset/base/359638 Log: MFC r357716: Use humanize_number to format available and bad space size Modified: stable/12/sbin/fsck_msdosfs/Makefile stable/12/sbin/fsck_msdosfs/check.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sbin/fsck_msdosfs/Makefile ============================================================================== --- stable/12/sbin/fsck_msdosfs/Makefile Sun Apr 5 02:27:49 2020 (r359637) +++ stable/12/sbin/fsck_msdosfs/Makefile Sun Apr 5 02:45:54 2020 (r359638) @@ -9,6 +9,7 @@ PROG= fsck_msdosfs MAN= fsck_msdosfs.8 SRCS= main.c check.c boot.c fat.c dir.c fsutil.c -CFLAGS+= -I${FSCK} +CFLAGS+= -I${FSCK} -DHAVE_LIBUTIL_H +LIBADD= util .include Modified: stable/12/sbin/fsck_msdosfs/check.c ============================================================================== --- stable/12/sbin/fsck_msdosfs/check.c Sun Apr 5 02:27:49 2020 (r359637) +++ stable/12/sbin/fsck_msdosfs/check.c Sun Apr 5 02:45:54 2020 (r359638) @@ -33,6 +33,9 @@ static const char rcsid[] = "$FreeBSD$"; #endif /* not lint */ +#ifdef HAVE_LIBUTIL_H +#include +#endif #include #include #include @@ -126,15 +129,38 @@ checkfilesys(const char *fname) mod |= FSERROR; } +#ifdef HAVE_LIBUTIL_H + char freestr[7], badstr[7]; + + int64_t freebytes = boot.NumFree * boot.ClusterSize; + humanize_number(freestr, sizeof(freestr), freebytes, "", + HN_AUTOSCALE, HN_DECIMAL | HN_IEC_PREFIXES); + if (boot.NumBad) { + int64_t badbytes = boot.NumBad * boot.ClusterSize; + + humanize_number(badstr, sizeof(badstr), badbytes, "", + HN_AUTOSCALE, HN_B | HN_DECIMAL | HN_IEC_PREFIXES); + + pwarn("%d files, %sB free (%d clusters), %sB bad (%d clusters)\n", + boot.NumFiles, + freestr, boot.NumFree, + badstr, boot.NumBad); + } else { + pwarn("%d files, %sB free (%d clusters)\n", + boot.NumFiles, + freestr, boot.NumFree); + } +#else if (boot.NumBad) - pwarn("%d files, %d free (%d clusters), %d bad (%d clusters)\n", + pwarn("%d files, %d KiB free (%d clusters), %d KiB bad (%d clusters)\n", boot.NumFiles, boot.NumFree * boot.ClusterSize / 1024, boot.NumFree, boot.NumBad * boot.ClusterSize / 1024, boot.NumBad); else - pwarn("%d files, %d free (%d clusters)\n", + pwarn("%d files, %d KiB free (%d clusters)\n", boot.NumFiles, boot.NumFree * boot.ClusterSize / 1024, boot.NumFree); +#endif if (mod && (mod & FSERROR) == 0) { if (mod & FSDIRTY) { From owner-svn-src-all@freebsd.org Sun Apr 5 03:26:50 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5BCC22AB132; Sun, 5 Apr 2020 03:26:50 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48vzc85KfSz4S09; Sun, 5 Apr 2020 03:26:48 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A431352DB; Sun, 5 Apr 2020 03:26:40 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0353QeT4000829; Sun, 5 Apr 2020 03:26:40 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0353QeWU000828; Sun, 5 Apr 2020 03:26:40 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <202004050326.0353QeWU000828@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Sun, 5 Apr 2020 03:26:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359639 - stable/12/lib/liblzma X-SVN-Group: stable-12 X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: stable/12/lib/liblzma X-SVN-Commit-Revision: 359639 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Apr 2020 03:26:50 -0000 Author: delphij Date: Sun Apr 5 03:26:40 2020 New Revision: 359639 URL: https://svnweb.freebsd.org/changeset/base/359639 Log: Workaround for GCC. Modified: stable/12/lib/liblzma/config.h Modified: stable/12/lib/liblzma/config.h ============================================================================== --- stable/12/lib/liblzma/config.h Sun Apr 5 02:45:54 2020 (r359638) +++ stable/12/lib/liblzma/config.h Sun Apr 5 03:26:40 2020 (r359639) @@ -314,7 +314,9 @@ /* Define to 1 if the GNU C extension __builtin_assume_aligned is supported. */ +#if defined(__clang__) && defined(__FreeBSD__) #define HAVE___BUILTIN_ASSUME_ALIGNED 1 +#endif /* Define to 1 if the GNU C extensions __builtin_bswap16/32/64 are supported. */ From owner-svn-src-all@freebsd.org Sun Apr 5 04:02:57 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A12122ABB5A; Sun, 5 Apr 2020 04:02:57 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48w0Pq5xYtz4g90; Sun, 5 Apr 2020 04:02:55 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5EA195B5C; Sun, 5 Apr 2020 04:01:12 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03541CT0020673; Sun, 5 Apr 2020 04:01:12 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03541Cq6020671; Sun, 5 Apr 2020 04:01:12 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <202004050401.03541Cq6020671@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Sun, 5 Apr 2020 04:01:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359640 - stable/12/lib/liblzma X-SVN-Group: stable-12 X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: stable/12/lib/liblzma X-SVN-Commit-Revision: 359640 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Apr 2020 04:02:57 -0000 Author: delphij Date: Sun Apr 5 04:01:11 2020 New Revision: 359640 URL: https://svnweb.freebsd.org/changeset/base/359640 Log: Disable use of bswapxx with GCC. Modified: stable/12/lib/liblzma/config.h Modified: stable/12/lib/liblzma/config.h ============================================================================== --- stable/12/lib/liblzma/config.h Sun Apr 5 03:26:40 2020 (r359639) +++ stable/12/lib/liblzma/config.h Sun Apr 5 04:01:11 2020 (r359640) @@ -312,15 +312,15 @@ #define HAVE__MM_MOVEMASK_EPI8 1 #endif +#if defined(__clang__) && defined(__FreeBSD__) /* Define to 1 if the GNU C extension __builtin_assume_aligned is supported. */ -#if defined(__clang__) && defined(__FreeBSD__) #define HAVE___BUILTIN_ASSUME_ALIGNED 1 -#endif /* Define to 1 if the GNU C extensions __builtin_bswap16/32/64 are supported. */ #define HAVE___BUILTIN_BSWAPXX 1 +#endif /* Define to the sub-directory where libtool stores uninstalled libraries. */ #define LT_OBJDIR ".libs/" From owner-svn-src-all@freebsd.org Sun Apr 5 17:15:31 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 411162BCA53; Sun, 5 Apr 2020 17:15:31 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48wL0M0xvfz4Rjw; Sun, 5 Apr 2020 17:15:31 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D3CEC18D8D; Sun, 5 Apr 2020 17:15:20 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 035HFKXP006135; Sun, 5 Apr 2020 17:15:20 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 035HFK6s006134; Sun, 5 Apr 2020 17:15:20 GMT (envelope-from kp@FreeBSD.org) Message-Id: <202004051715.035HFK6s006134@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Sun, 5 Apr 2020 17:15:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359641 - head/sys/net X-SVN-Group: head X-SVN-Commit-Author: kp X-SVN-Commit-Paths: head/sys/net X-SVN-Commit-Revision: 359641 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Apr 2020 17:15:31 -0000 Author: kp Date: Sun Apr 5 17:15:20 2020 New Revision: 359641 URL: https://svnweb.freebsd.org/changeset/base/359641 Log: bridge: Change lists to CK_LIST as a peparation for epochification Prepare the ground for a rework of the bridge locking approach. We will use an epoch-based approach in the datapath and making it safe to iterate over the interface, span and rtnode lists without holding the BRIDGE_LOCK. Replace the relevant lists by their ConcurrencyKit equivalents. No functional change in this commit. Reviewed by: emaste, ae, philip (previous version) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D24249 Modified: head/sys/net/if_bridge.c Modified: head/sys/net/if_bridge.c ============================================================================== --- head/sys/net/if_bridge.c Sun Apr 5 04:01:11 2020 (r359640) +++ head/sys/net/if_bridge.c Sun Apr 5 17:15:20 2020 (r359641) @@ -229,7 +229,7 @@ extern void nd6_setmtu(struct ifnet *); * Bridge interface list entry. */ struct bridge_iflist { - LIST_ENTRY(bridge_iflist) bif_next; + CK_LIST_ENTRY(bridge_iflist) bif_next; struct ifnet *bif_ifp; /* member if */ struct bstp_port bif_stp; /* STP state */ uint32_t bif_flags; /* member if flags */ @@ -243,8 +243,8 @@ struct bridge_iflist { * Bridge route node. */ struct bridge_rtnode { - LIST_ENTRY(bridge_rtnode) brt_hash; /* hash table linkage */ - LIST_ENTRY(bridge_rtnode) brt_list; /* list linkage */ + CK_LIST_ENTRY(bridge_rtnode) brt_hash; /* hash table linkage */ + CK_LIST_ENTRY(bridge_rtnode) brt_list; /* list linkage */ struct bridge_iflist *brt_dst; /* destination if */ unsigned long brt_expire; /* expiration time */ uint8_t brt_flags; /* address flags */ @@ -267,11 +267,11 @@ struct bridge_softc { struct callout sc_brcallout; /* bridge callout */ uint32_t sc_iflist_ref; /* refcount for sc_iflist */ uint32_t sc_iflist_xcnt; /* refcount for sc_iflist */ - LIST_HEAD(, bridge_iflist) sc_iflist; /* member interface list */ - LIST_HEAD(, bridge_rtnode) *sc_rthash; /* our forwarding table */ - LIST_HEAD(, bridge_rtnode) sc_rtlist; /* list version of above */ + CK_LIST_HEAD(, bridge_iflist) sc_iflist; /* member interface list */ + CK_LIST_HEAD(, bridge_rtnode) *sc_rthash; /* our forwarding table */ + CK_LIST_HEAD(, bridge_rtnode) sc_rtlist; /* list version of above */ uint32_t sc_rthash_key; /* key for hash */ - LIST_HEAD(, bridge_iflist) sc_spanlist; /* span ports list */ + CK_LIST_HEAD(, bridge_iflist) sc_spanlist; /* span ports list */ struct bstp_state sc_stp; /* STP state */ uint32_t sc_brtexceeded; /* # of cache drops */ struct ifnet *sc_ifaddr; /* member mac copied from */ @@ -697,8 +697,8 @@ bridge_clone_create(struct if_clone *ifc, int unit, ca callout_init_mtx(&sc->sc_brcallout, &sc->sc_mtx, 0); - LIST_INIT(&sc->sc_iflist); - LIST_INIT(&sc->sc_spanlist); + CK_LIST_INIT(&sc->sc_iflist); + CK_LIST_INIT(&sc->sc_spanlist); ifp->if_softc = sc; if_initname(ifp, bridge_name, unit); @@ -774,10 +774,10 @@ bridge_clone_destroy(struct ifnet *ifp) bridge_stop(ifp, 1); ifp->if_flags &= ~IFF_UP; - while ((bif = LIST_FIRST(&sc->sc_iflist)) != NULL) + while ((bif = CK_LIST_FIRST(&sc->sc_iflist)) != NULL) bridge_delete_member(sc, bif, 0); - while ((bif = LIST_FIRST(&sc->sc_spanlist)) != NULL) { + while ((bif = CK_LIST_FIRST(&sc->sc_spanlist)) != NULL) { bridge_delete_span(sc, bif); } @@ -916,12 +916,12 @@ bridge_ioctl(struct ifnet *ifp, u_long cmd, caddr_t da error = EINVAL; break; } - if (LIST_EMPTY(&sc->sc_iflist)) { + if (CK_LIST_EMPTY(&sc->sc_iflist)) { sc->sc_ifp->if_mtu = ifr->ifr_mtu; break; } BRIDGE_LOCK(sc); - LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { + CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { if (bif->bif_ifp->if_mtu != ifr->ifr_mtu) { log(LOG_NOTICE, "%s: invalid MTU: %u(%s)" " != %d\n", sc->sc_ifp->if_xname, @@ -961,13 +961,13 @@ bridge_mutecaps(struct bridge_softc *sc) /* Initial bitmask of capabilities to test */ mask = BRIDGE_IFCAPS_MASK; - LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { + CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { /* Every member must support it or its disabled */ mask &= bif->bif_savedcaps; } BRIDGE_XLOCK(sc); - LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { + CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { enabled = bif->bif_ifp->if_capenable; enabled &= ~BRIDGE_IFCAPS_STRIP; /* strip off mask bits and enable them again if allowed */ @@ -1021,7 +1021,7 @@ bridge_lookup_member(struct bridge_softc *sc, const ch BRIDGE_LOCK_ASSERT(sc); - LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { + CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { ifp = bif->bif_ifp; if (strcmp(ifp->if_xname, name) == 0) return (bif); @@ -1042,7 +1042,7 @@ bridge_lookup_member_if(struct bridge_softc *sc, struc BRIDGE_LOCK_ASSERT(sc); - LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { + CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { if (bif->bif_ifp == member_ifp) return (bif); } @@ -1061,6 +1061,7 @@ bridge_delete_member(struct bridge_softc *sc, struct b { struct ifnet *ifs = bif->bif_ifp; struct ifnet *fif = NULL; + struct bridge_iflist *bifl; BRIDGE_LOCK_ASSERT(sc); @@ -1069,7 +1070,7 @@ bridge_delete_member(struct bridge_softc *sc, struct b ifs->if_bridge = NULL; BRIDGE_XLOCK(sc); - LIST_REMOVE(bif, bif_next); + CK_LIST_REMOVE(bif, bif_next); BRIDGE_XDROP(sc); /* @@ -1078,12 +1079,13 @@ bridge_delete_member(struct bridge_softc *sc, struct b * to its default address if no members are left. */ if (V_bridge_inherit_mac && sc->sc_ifaddr == ifs) { - if (LIST_EMPTY(&sc->sc_iflist)) { + if (CK_LIST_EMPTY(&sc->sc_iflist)) { bcopy(&sc->sc_defaddr, IF_LLADDR(sc->sc_ifp), ETHER_ADDR_LEN); sc->sc_ifaddr = NULL; } else { - fif = LIST_FIRST(&sc->sc_iflist)->bif_ifp; + bifl = CK_LIST_FIRST(&sc->sc_iflist); + fif = bifl->bif_ifp; bcopy(IF_LLADDR(fif), IF_LLADDR(sc->sc_ifp), ETHER_ADDR_LEN); sc->sc_ifaddr = fif; @@ -1144,7 +1146,7 @@ bridge_delete_span(struct bridge_softc *sc, struct bri KASSERT(bif->bif_ifp->if_bridge == NULL, ("%s: not a span interface", __func__)); - LIST_REMOVE(bif, bif_next); + CK_LIST_REMOVE(bif, bif_next); free(bif, M_DEVBUF); } @@ -1163,7 +1165,7 @@ bridge_ioctl_add(struct bridge_softc *sc, void *arg) return (EINVAL); /* If it's in the span list, it can't be a member. */ - LIST_FOREACH(bif, &sc->sc_spanlist, bif_next) + CK_LIST_FOREACH(bif, &sc->sc_spanlist, bif_next) if (ifs == bif->bif_ifp) return (EBUSY); @@ -1202,7 +1204,7 @@ bridge_ioctl_add(struct bridge_softc *sc, void *arg) * interfaces. */ BRIDGE_XLOCK(sc); - LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { + CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { if (in6ifa_llaonifp(bif->bif_ifp)) { BRIDGE_UNLOCK(sc); in6_ifdetach(bif->bif_ifp); @@ -1228,7 +1230,7 @@ bridge_ioctl_add(struct bridge_softc *sc, void *arg) } #endif /* Allow the first Ethernet member to define the MTU */ - if (LIST_EMPTY(&sc->sc_iflist)) + if (CK_LIST_EMPTY(&sc->sc_iflist)) sc->sc_ifp->if_mtu = ifs->if_mtu; else if (sc->sc_ifp->if_mtu != ifs->if_mtu) { if_printf(sc->sc_ifp, "invalid MTU: %u(%s) != %u\n", @@ -1249,7 +1251,7 @@ bridge_ioctl_add(struct bridge_softc *sc, void *arg) * member and the MAC address of the bridge has not been changed from * the default randomly generated one. */ - if (V_bridge_inherit_mac && LIST_EMPTY(&sc->sc_iflist) && + if (V_bridge_inherit_mac && CK_LIST_EMPTY(&sc->sc_iflist) && !memcmp(IF_LLADDR(sc->sc_ifp), sc->sc_defaddr.octet, ETHER_ADDR_LEN)) { bcopy(IF_LLADDR(ifs), IF_LLADDR(sc->sc_ifp), ETHER_ADDR_LEN); sc->sc_ifaddr = ifs; @@ -1266,7 +1268,7 @@ bridge_ioctl_add(struct bridge_softc *sc, void *arg) * * NOTE: insert_***HEAD*** should be safe for the traversals. */ - LIST_INSERT_HEAD(&sc->sc_iflist, bif, bif_next); + CK_LIST_INSERT_HEAD(&sc->sc_iflist, bif, bif_next); /* Set interface capabilities to the intersection set of all members */ bridge_mutecaps(sc); @@ -1413,9 +1415,9 @@ bridge_ioctl_gifs(struct bridge_softc *sc, void *arg) int count, buflen, len, error = 0; count = 0; - LIST_FOREACH(bif, &sc->sc_iflist, bif_next) + CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) count++; - LIST_FOREACH(bif, &sc->sc_spanlist, bif_next) + CK_LIST_FOREACH(bif, &sc->sc_spanlist, bif_next) count++; buflen = sizeof(breq) * count; @@ -1431,7 +1433,7 @@ bridge_ioctl_gifs(struct bridge_softc *sc, void *arg) buf = outbuf; len = min(bifc->ifbic_len, buflen); bzero(&breq, sizeof(breq)); - LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { + CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { if (len < sizeof(breq)) break; @@ -1446,7 +1448,7 @@ bridge_ioctl_gifs(struct bridge_softc *sc, void *arg) buf += sizeof(breq); len -= sizeof(breq); } - LIST_FOREACH(bif, &sc->sc_spanlist, bif_next) { + CK_LIST_FOREACH(bif, &sc->sc_spanlist, bif_next) { if (len < sizeof(breq)) break; @@ -1481,7 +1483,7 @@ bridge_ioctl_rts(struct bridge_softc *sc, void *arg) return (0); count = 0; - LIST_FOREACH(brt, &sc->sc_rtlist, brt_list) + CK_LIST_FOREACH(brt, &sc->sc_rtlist, brt_list) count++; buflen = sizeof(bareq) * count; @@ -1493,7 +1495,7 @@ bridge_ioctl_rts(struct bridge_softc *sc, void *arg) buf = outbuf; len = min(bac->ifbac_len, buflen); bzero(&bareq, sizeof(bareq)); - LIST_FOREACH(brt, &sc->sc_rtlist, brt_list) { + CK_LIST_FOREACH(brt, &sc->sc_rtlist, brt_list) { if (len < sizeof(bareq)) goto out; strlcpy(bareq.ifba_ifsname, brt->brt_ifp->if_xname, @@ -1696,7 +1698,7 @@ bridge_ioctl_addspan(struct bridge_softc *sc, void *ar if (ifs == NULL) return (ENOENT); - LIST_FOREACH(bif, &sc->sc_spanlist, bif_next) + CK_LIST_FOREACH(bif, &sc->sc_spanlist, bif_next) if (ifs == bif->bif_ifp) return (EBUSY); @@ -1719,7 +1721,7 @@ bridge_ioctl_addspan(struct bridge_softc *sc, void *ar bif->bif_ifp = ifs; bif->bif_flags = IFBIF_SPAN; - LIST_INSERT_HEAD(&sc->sc_spanlist, bif, bif_next); + CK_LIST_INSERT_HEAD(&sc->sc_spanlist, bif, bif_next); return (0); } @@ -1735,7 +1737,7 @@ bridge_ioctl_delspan(struct bridge_softc *sc, void *ar if (ifs == NULL) return (ENOENT); - LIST_FOREACH(bif, &sc->sc_spanlist, bif_next) + CK_LIST_FOREACH(bif, &sc->sc_spanlist, bif_next) if (ifs == bif->bif_ifp) break; @@ -1797,7 +1799,7 @@ bridge_ioctl_gifsstp(struct bridge_softc *sc, void *ar int count, buflen, len, error = 0; count = 0; - LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { + CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { if ((bif->bif_flags & IFBIF_STP) != 0) count++; } @@ -1816,7 +1818,7 @@ bridge_ioctl_gifsstp(struct bridge_softc *sc, void *ar buf = outbuf; len = min(bifstp->ifbpstp_len, buflen); bzero(&bpreq, sizeof(bpreq)); - LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { + CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { if (len < sizeof(bpreq)) break; @@ -1898,7 +1900,7 @@ bridge_ifdetach(void *arg __unused, struct ifnet *ifp) BRIDGE_LIST_LOCK(); LIST_FOREACH(sc, &V_bridge_list, sc_list) { BRIDGE_LOCK(sc); - LIST_FOREACH(bif, &sc->sc_spanlist, bif_next) + CK_LIST_FOREACH(bif, &sc->sc_spanlist, bif_next) if (ifp == bif->bif_ifp) { bridge_delete_span(sc, bif); break; @@ -2113,7 +2115,7 @@ bridge_output(struct ifnet *ifp, struct mbuf *m, struc return (0); } - LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { + CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { dst_if = bif->bif_ifp; if (dst_if->if_type == IFT_GIF) @@ -2131,7 +2133,7 @@ bridge_output(struct ifnet *ifp, struct mbuf *m, struc bif->bif_stp.bp_state == BSTP_IFSTATE_DISCARDING) continue; - if (LIST_NEXT(bif, bif_next) == NULL) { + if (CK_LIST_NEXT(bif, bif_next) == NULL) { used = 1; mc = m; } else { @@ -2546,7 +2548,7 @@ bridge_input(struct ifnet *ifp, struct mbuf *m) do { GRAB_OUR_PACKETS(ifp) } while (0); /* Now check the all bridge members. */ - LIST_FOREACH(bif2, &sc->sc_iflist, bif_next) { + CK_LIST_FOREACH(bif2, &sc->sc_iflist, bif_next) { GRAB_OUR_PACKETS(bif2->bif_ifp) } @@ -2599,7 +2601,7 @@ bridge_broadcast(struct bridge_softc *sc, struct ifnet goto out; } - LIST_FOREACH(dbif, &sc->sc_iflist, bif_next) { + CK_LIST_FOREACH(dbif, &sc->sc_iflist, bif_next) { dst_if = dbif->bif_ifp; if (dst_if == src_if) continue; @@ -2619,7 +2621,7 @@ bridge_broadcast(struct bridge_softc *sc, struct ifnet if ((dst_if->if_drv_flags & IFF_DRV_RUNNING) == 0) continue; - if (LIST_NEXT(dbif, bif_next) == NULL) { + if (CK_LIST_NEXT(dbif, bif_next) == NULL) { mc = m; used = 1; } else { @@ -2677,10 +2679,10 @@ bridge_span(struct bridge_softc *sc, struct mbuf *m) struct ifnet *dst_if; struct mbuf *mc; - if (LIST_EMPTY(&sc->sc_spanlist)) + if (CK_LIST_EMPTY(&sc->sc_spanlist)) return; - LIST_FOREACH(bif, &sc->sc_spanlist, bif_next) { + CK_LIST_FOREACH(bif, &sc->sc_spanlist, bif_next) { dst_if = bif->bif_ifp; if ((dst_if->if_drv_flags & IFF_DRV_RUNNING) == 0) @@ -2816,7 +2818,7 @@ bridge_rttrim(struct bridge_softc *sc) if (sc->sc_brtcnt <= sc->sc_brtmax) return; - LIST_FOREACH_SAFE(brt, &sc->sc_rtlist, brt_list, nbrt) { + CK_LIST_FOREACH_SAFE(brt, &sc->sc_rtlist, brt_list, nbrt) { if ((brt->brt_flags & IFBAF_TYPEMASK) == IFBAF_DYNAMIC) { bridge_rtnode_destroy(sc, brt); if (sc->sc_brtcnt <= sc->sc_brtmax) @@ -2859,7 +2861,7 @@ bridge_rtage(struct bridge_softc *sc) BRIDGE_LOCK_ASSERT(sc); - LIST_FOREACH_SAFE(brt, &sc->sc_rtlist, brt_list, nbrt) { + CK_LIST_FOREACH_SAFE(brt, &sc->sc_rtlist, brt_list, nbrt) { if ((brt->brt_flags & IFBAF_TYPEMASK) == IFBAF_DYNAMIC) { if (time_uptime >= brt->brt_expire) bridge_rtnode_destroy(sc, brt); @@ -2879,7 +2881,7 @@ bridge_rtflush(struct bridge_softc *sc, int full) BRIDGE_LOCK_ASSERT(sc); - LIST_FOREACH_SAFE(brt, &sc->sc_rtlist, brt_list, nbrt) { + CK_LIST_FOREACH_SAFE(brt, &sc->sc_rtlist, brt_list, nbrt) { if (full || (brt->brt_flags & IFBAF_TYPEMASK) == IFBAF_DYNAMIC) bridge_rtnode_destroy(sc, brt); } @@ -2922,7 +2924,7 @@ bridge_rtdelete(struct bridge_softc *sc, struct ifnet BRIDGE_LOCK_ASSERT(sc); - LIST_FOREACH_SAFE(brt, &sc->sc_rtlist, brt_list, nbrt) { + CK_LIST_FOREACH_SAFE(brt, &sc->sc_rtlist, brt_list, nbrt) { if (brt->brt_ifp == ifp && (full || (brt->brt_flags & IFBAF_TYPEMASK) == IFBAF_DYNAMIC)) bridge_rtnode_destroy(sc, brt); @@ -2943,10 +2945,10 @@ bridge_rtable_init(struct bridge_softc *sc) M_DEVBUF, M_WAITOK); for (i = 0; i < BRIDGE_RTHASH_SIZE; i++) - LIST_INIT(&sc->sc_rthash[i]); + CK_LIST_INIT(&sc->sc_rthash[i]); sc->sc_rthash_key = arc4random(); - LIST_INIT(&sc->sc_rtlist); + CK_LIST_INIT(&sc->sc_rtlist); } /* @@ -3027,7 +3029,7 @@ bridge_rtnode_lookup(struct bridge_softc *sc, const ui BRIDGE_LOCK_ASSERT(sc); hash = bridge_rthash(sc, addr); - LIST_FOREACH(brt, &sc->sc_rthash[hash], brt_hash) { + CK_LIST_FOREACH(brt, &sc->sc_rthash[hash], brt_hash) { dir = bridge_rtnode_addr_cmp(addr, brt->brt_addr); if (dir == 0 && (brt->brt_vlan == vlan || vlan == 0)) return (brt); @@ -3055,9 +3057,9 @@ bridge_rtnode_insert(struct bridge_softc *sc, struct b hash = bridge_rthash(sc, brt->brt_addr); - lbrt = LIST_FIRST(&sc->sc_rthash[hash]); + lbrt = CK_LIST_FIRST(&sc->sc_rthash[hash]); if (lbrt == NULL) { - LIST_INSERT_HEAD(&sc->sc_rthash[hash], brt, brt_hash); + CK_LIST_INSERT_HEAD(&sc->sc_rthash[hash], brt, brt_hash); goto out; } @@ -3066,14 +3068,14 @@ bridge_rtnode_insert(struct bridge_softc *sc, struct b if (dir == 0 && brt->brt_vlan == lbrt->brt_vlan) return (EEXIST); if (dir > 0) { - LIST_INSERT_BEFORE(lbrt, brt, brt_hash); + CK_LIST_INSERT_BEFORE(lbrt, brt, brt_hash); goto out; } - if (LIST_NEXT(lbrt, brt_hash) == NULL) { - LIST_INSERT_AFTER(lbrt, brt, brt_hash); + if (CK_LIST_NEXT(lbrt, brt_hash) == NULL) { + CK_LIST_INSERT_AFTER(lbrt, brt, brt_hash); goto out; } - lbrt = LIST_NEXT(lbrt, brt_hash); + lbrt = CK_LIST_NEXT(lbrt, brt_hash); } while (lbrt != NULL); #ifdef DIAGNOSTIC @@ -3081,7 +3083,7 @@ bridge_rtnode_insert(struct bridge_softc *sc, struct b #endif out: - LIST_INSERT_HEAD(&sc->sc_rtlist, brt, brt_list); + CK_LIST_INSERT_HEAD(&sc->sc_rtlist, brt, brt_list); sc->sc_brtcnt++; return (0); @@ -3097,9 +3099,9 @@ bridge_rtnode_destroy(struct bridge_softc *sc, struct { BRIDGE_LOCK_ASSERT(sc); - LIST_REMOVE(brt, brt_hash); + CK_LIST_REMOVE(brt, brt_hash); - LIST_REMOVE(brt, brt_list); + CK_LIST_REMOVE(brt, brt_list); sc->sc_brtcnt--; brt->brt_dst->bif_addrcnt--; uma_zfree(V_bridge_rtnode_zone, brt); @@ -3126,7 +3128,7 @@ bridge_rtable_expire(struct ifnet *ifp, int age) if (age == 0) bridge_rtdelete(sc, ifp, IFBF_FLUSHDYN); else { - LIST_FOREACH(brt, &sc->sc_rtlist, brt_list) { + CK_LIST_FOREACH(brt, &sc->sc_rtlist, brt_list) { /* Cap the expiry time to 'age' */ if (brt->brt_ifp == ifp && brt->brt_expire > time_uptime + age && @@ -3664,7 +3666,7 @@ bridge_linkcheck(struct bridge_softc *sc) new_link = LINK_STATE_DOWN; hasls = 0; /* Our link is considered up if at least one of our ports is active */ - LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { + CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { if (bif->bif_ifp->if_capabilities & IFCAP_LINKSTATE) hasls++; if (bif->bif_ifp->if_link_state == LINK_STATE_UP) { @@ -3672,7 +3674,7 @@ bridge_linkcheck(struct bridge_softc *sc) break; } } - if (!LIST_EMPTY(&sc->sc_iflist) && !hasls) { + if (!CK_LIST_EMPTY(&sc->sc_iflist) && !hasls) { /* If no interfaces support link-state then we default to up */ new_link = LINK_STATE_UP; } From owner-svn-src-all@freebsd.org Sun Apr 5 19:35:57 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 92F112680AA; Sun, 5 Apr 2020 19:35:57 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48wP6M1GHpz4M5m; Sun, 5 Apr 2020 19:35:55 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 792DB1AA5D; Sun, 5 Apr 2020 19:25:46 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 035JPkdo085668; Sun, 5 Apr 2020 19:25:46 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 035JPkE5085667; Sun, 5 Apr 2020 19:25:46 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004051925.035JPkE5085667@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Sun, 5 Apr 2020 19:25:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359642 - head/usr.sbin/adduser X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/usr.sbin/adduser X-SVN-Commit-Revision: 359642 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Apr 2020 19:35:57 -0000 Author: kevans Date: Sun Apr 5 19:25:46 2020 New Revision: 359642 URL: https://svnweb.freebsd.org/changeset/base/359642 Log: adduser: allow standard IFS characters in passwords Notably, the default IFS contains space/tab, thus any leading/trailing whitespace characters tend to be removed. Set IFS= for just the read lines to mitigate this, allowing the user to be less surprised when their leading/trailing spaces weren't actually captured in the password as they are with other means of setting a user's password. PR: 245342 Submitted by: dereks_lifeofadishwasher.com Reviewed by: jilles MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D24292 Modified: head/usr.sbin/adduser/adduser.sh Modified: head/usr.sbin/adduser/adduser.sh ============================================================================== --- head/usr.sbin/adduser/adduser.sh Sun Apr 5 17:15:20 2020 (r359641) +++ head/usr.sbin/adduser/adduser.sh Sun Apr 5 19:25:46 2020 (r359642) @@ -733,10 +733,10 @@ input_interactive() { trap 'stty echo; exit' 0 1 2 3 15 stty -echo echo -n "Enter password: " - read -r upass + IFS= read -r upass echo'' echo -n "Enter password again: " - read -r _passconfirm + IFS= read -r _passconfirm echo '' stty echo # if user entered a blank password From owner-svn-src-all@freebsd.org Sun Apr 5 21:26:01 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DDD9926D4C7; Sun, 5 Apr 2020 21:26:01 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48wRYN4bcYz46Rx; Sun, 5 Apr 2020 21:26:00 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id ABBDA1C27E; Sun, 5 Apr 2020 21:08:17 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 035L8HBi049864; Sun, 5 Apr 2020 21:08:17 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 035L8HDC049863; Sun, 5 Apr 2020 21:08:17 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <202004052108.035L8HDC049863@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Sun, 5 Apr 2020 21:08:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359643 - head/sys/rpc X-SVN-Group: head X-SVN-Commit-Author: rmacklem X-SVN-Commit-Paths: head/sys/rpc X-SVN-Commit-Revision: 359643 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Apr 2020 21:26:02 -0000 Author: rmacklem Date: Sun Apr 5 21:08:17 2020 New Revision: 359643 URL: https://svnweb.freebsd.org/changeset/base/359643 Log: Change the xid for client side krpc over UDP to a global value. Without this patch, the xid used for the client side krpc requests over UDP was initialized for each "connection". A "connection" for UDP is rather sketchy and for the kernel NLM a new one is created every 2minutes. A problem with client side interoperability with a Netapp server for the NLM was reported and it is believed to be caused by reuse of the same xid. Although this was never completely diagnosed by the reporter, I could see how the same xid might get reused, since it is initialized to a value based on the TOD clock every two minutes. I suspect initializing the value for every "connection" was inherited from userland library code, where having a global xid was not practical. However, implementing a global "xid" for the kernel rpc is straightforward and will ensure that an xid value is not reused for a long time. This patch does that and is hoped it will fix the Netapp interoperability problem. PR: 245022 Reported by: danny@cs.huji.ac.il MFC after: 2 weeks Modified: head/sys/rpc/clnt_dg.c Modified: head/sys/rpc/clnt_dg.c ============================================================================== --- head/sys/rpc/clnt_dg.c Sun Apr 5 19:25:46 2020 (r359642) +++ head/sys/rpc/clnt_dg.c Sun Apr 5 21:08:17 2020 (r359643) @@ -94,6 +94,8 @@ static struct clnt_ops clnt_dg_ops = { .cl_control = clnt_dg_control }; +static volatile uint32_t rpc_xid = 0; + /* * A pending RPC request which awaits a reply. Requests which have * received their reply will have cr_xid set to zero and cr_mrep to @@ -193,6 +195,7 @@ clnt_dg_create( struct __rpc_sockinfo si; XDR xdrs; int error; + uint32_t newxid; if (svcaddr == NULL) { rpc_createerr.cf_stat = RPC_UNKNOWNADDR; @@ -245,8 +248,10 @@ clnt_dg_create( cu->cu_sent = 0; cu->cu_cwnd_wait = FALSE; (void) getmicrotime(&now); - cu->cu_xid = __RPC_GETXID(&now); - call_msg.rm_xid = cu->cu_xid; + /* Clip at 28bits so that it will not wrap around. */ + newxid = __RPC_GETXID(&now) & 0xfffffff; + atomic_cmpset_32(&rpc_xid, 0, newxid); + call_msg.rm_xid = atomic_fetchadd_32(&rpc_xid, 1); call_msg.rm_call.cb_prog = program; call_msg.rm_call.cb_vers = version; xdrmem_create(&xdrs, cu->cu_mcallc, MCALL_MSG_SIZE, XDR_ENCODE); @@ -418,8 +423,7 @@ clnt_dg_call( call_again: mtx_assert(&cs->cs_lock, MA_OWNED); - cu->cu_xid++; - xid = cu->cu_xid; + xid = atomic_fetchadd_32(&rpc_xid, 1); send_again: mtx_unlock(&cs->cs_lock); @@ -865,13 +869,13 @@ clnt_dg_control(CLIENT *cl, u_int request, void *info) (void) memcpy(&cu->cu_raddr, addr, addr->sa_len); break; case CLGET_XID: - *(uint32_t *)info = cu->cu_xid; + *(uint32_t *)info = atomic_load_32(&rpc_xid); break; case CLSET_XID: /* This will set the xid of the NEXT call */ /* decrement by 1 as clnt_dg_call() increments once */ - cu->cu_xid = *(uint32_t *)info - 1; + atomic_store_32(&rpc_xid, *(uint32_t *)info - 1); break; case CLGET_VERS: From owner-svn-src-all@freebsd.org Mon Apr 6 01:27:28 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8278527C36C; Mon, 6 Apr 2020 01:27:28 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48wXvz1JJCz4cl5; Mon, 6 Apr 2020 01:27:27 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 302841FB6C; Mon, 6 Apr 2020 01:27:19 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0361RIWA007670; Mon, 6 Apr 2020 01:27:18 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0361RIeR007666; Mon, 6 Apr 2020 01:27:18 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004060127.0361RIeR007666@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 6 Apr 2020 01:27:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359644 - in head: lib/clang share/mk tools/build/options X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in head: lib/clang share/mk tools/build/options X-SVN-Commit-Revision: 359644 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 01:27:28 -0000 Author: kevans Date: Mon Apr 6 01:27:17 2020 New Revision: 359644 URL: https://svnweb.freebsd.org/changeset/base/359644 Log: llvm: add a build knob for enabling assertions For head/, this will remain eternally default-on to maintain the status quo. For stable/ branches, it should be flipped to default-off to maintain the status quo. There's value in being able to flip it one way or the other easily on head or stable branches, whether you want to gain some performance back on head/ (for machines there's little chance you'll actually hit an assertion) or potentially diagnose a problem with the version of llvm on an older branch. Currently, stable branches get the CFLAGS+= -ndebug line uncommented; going forward, they will instead have the default of LLVM_ASSERTIONS flipped. Reviewed by: dim, emaste, re (gjb) MFC after: 1 week MFC note: flip the default of LLVM_ASSERTIONS Differential Revision: https://reviews.freebsd.org/D24264 Added: head/tools/build/options/WITHOUT_LLVM_ASSERTIONS (contents, props changed) head/tools/build/options/WITH_LLVM_ASSERTIONS (contents, props changed) Modified: head/lib/clang/llvm.build.mk head/share/mk/src.opts.mk Modified: head/lib/clang/llvm.build.mk ============================================================================== --- head/lib/clang/llvm.build.mk Sun Apr 5 21:08:17 2020 (r359643) +++ head/lib/clang/llvm.build.mk Mon Apr 6 01:27:17 2020 (r359644) @@ -22,7 +22,9 @@ CFLAGS+= -D__STDC_CONSTANT_MACROS CFLAGS+= -D__STDC_FORMAT_MACROS CFLAGS+= -D__STDC_LIMIT_MACROS CFLAGS+= -DHAVE_VCS_VERSION_INC -#CFLAGS+= -DNDEBUG +.if ${MK_LLVM_ASSERTIONS} == "no" +CFLAGS+= -DNDEBUG +.endif TARGET_ARCH?= ${MACHINE_ARCH} BUILD_ARCH?= ${MACHINE_ARCH} Modified: head/share/mk/src.opts.mk ============================================================================== --- head/share/mk/src.opts.mk Sun Apr 5 21:08:17 2020 (r359643) +++ head/share/mk/src.opts.mk Mon Apr 6 01:27:17 2020 (r359644) @@ -132,6 +132,7 @@ __DEFAULT_YES_OPTIONS = \ LLD \ LLD_BOOTSTRAP \ LLD_IS_LD \ + LLVM_ASSERTIONS \ LLVM_COV \ LLVM_TARGET_ALL \ LOADER_GELI \ Added: head/tools/build/options/WITHOUT_LLVM_ASSERTIONS ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/build/options/WITHOUT_LLVM_ASSERTIONS Mon Apr 6 01:27:17 2020 (r359644) @@ -0,0 +1,2 @@ +.\" $FreeBSD$ +Set to disable debugging assertions in LLVM. Added: head/tools/build/options/WITH_LLVM_ASSERTIONS ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/build/options/WITH_LLVM_ASSERTIONS Mon Apr 6 01:27:17 2020 (r359644) @@ -0,0 +1,2 @@ +.\" $FreeBSD$ +Set to enable debugging assertions in LLVM. From owner-svn-src-all@freebsd.org Mon Apr 6 01:45:55 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B00B927CB18; Mon, 6 Apr 2020 01:45:55 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48wYKG0x8Lz3G1t; Mon, 6 Apr 2020 01:45:54 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BD0ED1FB83; Mon, 6 Apr 2020 01:28:03 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0361S31b007746; Mon, 6 Apr 2020 01:28:03 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0361S3p9007745; Mon, 6 Apr 2020 01:28:03 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004060128.0361S3p9007745@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 6 Apr 2020 01:28:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359645 - head/share/man/man5 X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/share/man/man5 X-SVN-Commit-Revision: 359645 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 01:45:55 -0000 Author: kevans Date: Mon Apr 6 01:28:03 2020 New Revision: 359645 URL: https://svnweb.freebsd.org/changeset/base/359645 Log: src.conf(5): re-roll after r359644 (LLVM_ASSERTIONS) Modified: head/share/man/man5/src.conf.5 Modified: head/share/man/man5/src.conf.5 ============================================================================== --- head/share/man/man5/src.conf.5 Mon Apr 6 01:27:17 2020 (r359644) +++ head/share/man/man5/src.conf.5 Mon Apr 6 01:28:03 2020 (r359645) @@ -1,6 +1,6 @@ .\" DO NOT EDIT-- this file is @generated by tools/build/options/makeman. .\" $FreeBSD$ -.Dd March 30, 2020 +.Dd April 5, 2020 .Dt SRC.CONF 5 .Os .Sh NAME @@ -918,6 +918,8 @@ To be able to build the system, either Binutils or LLD enabled unless an alternate linker is provided via XLD. .It Va WITHOUT_LLD_IS_LD Set to use GNU binutils ld as the system linker, instead of LLVM's LLD. +.It Va WITHOUT_LLVM_ASSERTIONS +Set to disable debugging assertions in LLVM. .It Va WITHOUT_LLVM_COV Set to not build the .Xr llvm-cov 1 From owner-svn-src-all@freebsd.org Mon Apr 6 04:06:16 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4030A27FDEC; Mon, 6 Apr 2020 04:06:16 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48wcRD0WKgz4S72; Mon, 6 Apr 2020 04:06:16 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0C74C21E30; Mon, 6 Apr 2020 04:06:16 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03646FRT004755; Mon, 6 Apr 2020 04:06:15 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03646FTc004754; Mon, 6 Apr 2020 04:06:15 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004060406.03646FTc004754@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 6 Apr 2020 04:06:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359646 - stable/12/libexec/flua X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: stable/12/libexec/flua X-SVN-Commit-Revision: 359646 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 04:06:16 -0000 Author: kevans Date: Mon Apr 6 04:06:15 2020 New Revision: 359646 URL: https://svnweb.freebsd.org/changeset/base/359646 Log: MFC r359453, r359455 r359453: flua: enable readline bits, courtesy of libedit This is a nicer experience when attempting to run ad-hoc lua bits in the flua REPL. r359455: flua: follow-up to r359453, don't bother with libedit in bootstrap The bootstrap flua should not be used for REPL-like activities; exclude it to save the dependency on libedit and not waste time with it. PR: 245121 Modified: stable/12/libexec/flua/Makefile Directory Properties: stable/12/ (props changed) Modified: stable/12/libexec/flua/Makefile ============================================================================== --- stable/12/libexec/flua/Makefile Mon Apr 6 01:28:03 2020 (r359645) +++ stable/12/libexec/flua/Makefile Mon Apr 6 04:06:15 2020 (r359646) @@ -35,4 +35,12 @@ SRCS+= lfs.c lposix.c CFLAGS+= -I${.CURDIR} -I${.CURDIR}/modules -I${LUASRC} CFLAGS+= -DLUA_PROGNAME="\"${PROG}\"" +# readline bits; these aren't needed if we're building a bootstrap flua, as we +# don't expect that one to see any REPL usage. +.if !defined(BOOTSTRAPPING) +CFLAGS+= -DLUA_USE_READLINE +CFLAGS+= -I${SRCTOP}/lib/libedit -I${SRCTOP}/contrib/libedit +LIBADD+= edit +.endif + .include From owner-svn-src-all@freebsd.org Mon Apr 6 05:48:59 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B5B742A2FC4; Mon, 6 Apr 2020 05:48:59 +0000 (UTC) (envelope-from wma@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48wfjl4fC9z4X4J; Mon, 6 Apr 2020 05:48:59 +0000 (UTC) (envelope-from wma@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9A97123121; Mon, 6 Apr 2020 05:48:59 +0000 (UTC) (envelope-from wma@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0365mxRv065233; Mon, 6 Apr 2020 05:48:59 GMT (envelope-from wma@FreeBSD.org) Received: (from wma@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0365mwYZ065227; Mon, 6 Apr 2020 05:48:58 GMT (envelope-from wma@FreeBSD.org) Message-Id: <202004060548.0365mwYZ065227@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: wma set sender to wma@FreeBSD.org using -f From: Wojciech Macek Date: Mon, 6 Apr 2020 05:48:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359647 - in head/sys: arm64/broadcom arm64/broadcom/brcmmdio conf dev/mdio X-SVN-Group: head X-SVN-Commit-Author: wma X-SVN-Commit-Paths: in head/sys: arm64/broadcom arm64/broadcom/brcmmdio conf dev/mdio X-SVN-Commit-Revision: 359647 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 05:48:59 -0000 Author: wma Date: Mon Apr 6 05:48:58 2020 New Revision: 359647 URL: https://svnweb.freebsd.org/changeset/base/359647 Log: Add MDIO PHY driver for NS2 ARM64 platform. Obtained from: Semihalf Authored by: Kornel Duleba Approved by: wma Differential Revision: https://reviews.freebsd.org/D21335 Added: head/sys/arm64/broadcom/ head/sys/arm64/broadcom/brcmmdio/ head/sys/arm64/broadcom/brcmmdio/mdio_mux_iproc.c (contents, props changed) head/sys/arm64/broadcom/brcmmdio/mdio_nexus_iproc.c (contents, props changed) head/sys/arm64/broadcom/brcmmdio/mdio_ns2_pcie_phy.c (contents, props changed) Modified: head/sys/conf/files.arm64 head/sys/dev/mdio/mdio_if.m Added: head/sys/arm64/broadcom/brcmmdio/mdio_mux_iproc.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/arm64/broadcom/brcmmdio/mdio_mux_iproc.c Mon Apr 6 05:48:58 2020 (r359647) @@ -0,0 +1,399 @@ +/*- + * Copyright (c) 2019 Juniper Networks, Inc. + * Copyright (c) 2019 Semihalf. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * 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. + * 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. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include + +#include "mdio_if.h" + +#define REG_BASE_RID 0 + +#define MDIO_RATE_ADJ_EXT_OFFSET 0x000 +#define MDIO_RATE_ADJ_INT_OFFSET 0x004 +#define MDIO_RATE_ADJ_DIVIDENT_SHIFT 16 + +#define MDIO_SCAN_CTRL_OFFSET 0x008 +#define MDIO_SCAN_CTRL_OVRIDE_EXT_MSTR 28 + +#define MDIO_PARAM_OFFSET 0x23c +#define MDIO_PARAM_MIIM_CYCLE 29 +#define MDIO_PARAM_INTERNAL_SEL 25 +#define MDIO_PARAM_BUS_ID 22 +#define MDIO_PARAM_C45_SEL 21 +#define MDIO_PARAM_PHY_ID 16 +#define MDIO_PARAM_PHY_DATA 0 + +#define MDIO_READ_OFFSET 0x240 +#define MDIO_READ_DATA_MASK 0xffff +#define MDIO_ADDR_OFFSET 0x244 + +#define MDIO_CTRL_OFFSET 0x248 +#define MDIO_CTRL_WRITE_OP 0x1 +#define MDIO_CTRL_READ_OP 0x2 + +#define MDIO_STAT_OFFSET 0x24c +#define MDIO_STAT_DONE 1 + +#define BUS_MAX_ADDR 32 +#define EXT_BUS_START_ADDR 16 + +#define MDIO_REG_ADDR_SPACE_SIZE 0x250 + +#define MDIO_OPERATING_FREQUENCY 11000000 +#define MDIO_RATE_ADJ_DIVIDENT 1 + +#define MII_ADDR_C45 (1<<30) + +static int brcm_iproc_mdio_probe(device_t); +static int brcm_iproc_mdio_attach(device_t); +static int brcm_iproc_mdio_detach(device_t); + +/* OFW bus interface */ +struct brcm_mdio_ofw_devinfo { + struct ofw_bus_devinfo di_dinfo; + struct resource_list di_rl; +}; + +struct brcm_iproc_mdio_softc { + struct simplebus_softc sbus; + device_t dev; + struct resource * reg_base; + uint32_t clock_rate; +}; + +MALLOC_DEFINE(M_BRCM_IPROC_MDIO, "Broadcom IPROC MDIO", + "Broadcom IPROC MDIO dynamic memory"); + +static int brcm_iproc_config(struct brcm_iproc_mdio_softc*); +static const struct ofw_bus_devinfo * +brcm_iproc_mdio_get_devinfo(device_t, device_t); +static int brcm_iproc_mdio_write_mux(device_t, int, int, int, int); +static int brcm_iproc_mdio_read_mux(device_t, int, int, int); + +static device_method_t brcm_iproc_mdio_fdt_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, brcm_iproc_mdio_probe), + DEVMETHOD(device_attach, brcm_iproc_mdio_attach), + DEVMETHOD(device_detach, brcm_iproc_mdio_detach), + + /* Bus interface */ + DEVMETHOD(bus_alloc_resource, bus_generic_alloc_resource), + DEVMETHOD(bus_release_resource, bus_generic_release_resource), + DEVMETHOD(bus_activate_resource, bus_generic_activate_resource), + + /* ofw_bus interface */ + DEVMETHOD(ofw_bus_get_devinfo, brcm_iproc_mdio_get_devinfo), + DEVMETHOD(ofw_bus_get_compat, ofw_bus_gen_get_compat), + DEVMETHOD(ofw_bus_get_model, ofw_bus_gen_get_model), + DEVMETHOD(ofw_bus_get_name, ofw_bus_gen_get_name), + DEVMETHOD(ofw_bus_get_node, ofw_bus_gen_get_node), + DEVMETHOD(ofw_bus_get_type, ofw_bus_gen_get_type), + + /* MDIO interface */ + DEVMETHOD(mdio_writereg_mux, brcm_iproc_mdio_write_mux), + DEVMETHOD(mdio_readreg_mux, brcm_iproc_mdio_read_mux), + + /* End */ + DEVMETHOD_END +}; + +DEFINE_CLASS_0(brcm_iproc_mdio, brcm_iproc_mdio_driver, + brcm_iproc_mdio_fdt_methods, sizeof(struct brcm_iproc_mdio_softc)); + +static devclass_t brcm_iproc_mdio_fdt_devclass; + +EARLY_DRIVER_MODULE(brcm_iproc_mdio, ofwbus, brcm_iproc_mdio_driver, + brcm_iproc_mdio_fdt_devclass, 0, 0, BUS_PASS_BUS + BUS_PASS_ORDER_MIDDLE); +EARLY_DRIVER_MODULE(brcm_iproc_mdio, simplebus, brcm_iproc_mdio_driver, + brcm_iproc_mdio_fdt_devclass, 0, 0, BUS_PASS_BUS + BUS_PASS_ORDER_MIDDLE); + +static struct ofw_compat_data mdio_compat_data[] = { + {"brcm,mdio-mux-iproc", true}, + {NULL, false} +}; + +static int +brcm_iproc_switch(struct brcm_iproc_mdio_softc *sc, int child) +{ + uint32_t param, bus_id; + uint32_t bus_dir; + + /* select bus and its properties */ + bus_dir = (child < EXT_BUS_START_ADDR); + bus_id = bus_dir ? child : (child - EXT_BUS_START_ADDR); + + param = (bus_dir ? 1 : 0) << MDIO_PARAM_INTERNAL_SEL; + param |= (bus_id << MDIO_PARAM_BUS_ID); + + bus_write_4(sc->reg_base, MDIO_PARAM_OFFSET, param); + + return (0); +} + +static int +iproc_mdio_wait_for_idle(struct brcm_iproc_mdio_softc *sc, uint32_t result) +{ + unsigned int timeout = 1000; /* loop for 1s */ + uint32_t val; + + do { + val = bus_read_4(sc->reg_base, MDIO_STAT_OFFSET); + if ((val & MDIO_STAT_DONE) == result) + return (0); + + pause("BRCM MDIO SLEEP", 1000 / hz); + } while (timeout--); + + return (ETIMEDOUT); +} + +/* start_miim_ops- Program and start MDIO transaction over mdio bus. + * @base: Base address + * @phyid: phyid of the selected bus. + * @reg: register offset to be read/written. + * @val :0 if read op else value to be written in @reg; + * @op: Operation that need to be carried out. + * MDIO_CTRL_READ_OP: Read transaction. + * MDIO_CTRL_WRITE_OP: Write transaction. + * + * Return value: Successful Read operation returns read reg values and write + * operation returns 0. Failure operation returns negative error code. + */ +static int +brcm_iproc_mdio_op(struct brcm_iproc_mdio_softc *sc, + uint16_t phyid, uint32_t reg, uint32_t val, uint32_t op) +{ + uint32_t param; + int ret; + + bus_write_4(sc->reg_base, MDIO_CTRL_OFFSET, 0); + bus_read_4(sc->reg_base, MDIO_STAT_OFFSET); + ret = iproc_mdio_wait_for_idle(sc, 0); + if (ret) + goto err; + + param = bus_read_4(sc->reg_base, MDIO_PARAM_OFFSET); + param |= phyid << MDIO_PARAM_PHY_ID; + param |= val << MDIO_PARAM_PHY_DATA; + if (reg & MII_ADDR_C45) + param |= (1 << MDIO_PARAM_C45_SEL); + + bus_write_4(sc->reg_base, MDIO_PARAM_OFFSET, param); + + bus_write_4(sc->reg_base, MDIO_ADDR_OFFSET, reg); + + bus_write_4(sc->reg_base, MDIO_CTRL_OFFSET, op); + + ret = iproc_mdio_wait_for_idle(sc, 1); + if (ret) + goto err; + + if (op == MDIO_CTRL_READ_OP) + ret = bus_read_4(sc->reg_base, MDIO_READ_OFFSET) & MDIO_READ_DATA_MASK; +err: + return ret; +} + +static int +brcm_iproc_config(struct brcm_iproc_mdio_softc *sc) +{ + uint32_t divisor; + uint32_t val; + + /* Disable external mdio master access */ + val = bus_read_4(sc->reg_base, MDIO_SCAN_CTRL_OFFSET); + val |= 1 << MDIO_SCAN_CTRL_OVRIDE_EXT_MSTR; + bus_write_4(sc->reg_base, MDIO_SCAN_CTRL_OFFSET, val); + + if (sc->clock_rate) { + /* use rate adjust regs to derrive the mdio's operating + * frequency from the specified core clock + */ + divisor = sc->clock_rate / MDIO_OPERATING_FREQUENCY; + divisor = divisor / (MDIO_RATE_ADJ_DIVIDENT + 1); + val = divisor; + val |= MDIO_RATE_ADJ_DIVIDENT << MDIO_RATE_ADJ_DIVIDENT_SHIFT; + bus_write_4(sc->reg_base, MDIO_RATE_ADJ_EXT_OFFSET, val); + bus_write_4(sc->reg_base, MDIO_RATE_ADJ_INT_OFFSET, val); + } + + return (0); +} + +static int +brcm_iproc_mdio_write_mux(device_t dev, int bus, int phy, int reg, int val) +{ + struct brcm_iproc_mdio_softc *sc; + + sc = device_get_softc(dev); + + if (brcm_iproc_switch(sc, bus) != 0) { + device_printf(dev, "Failed to set BUS MUX\n"); + return (EINVAL); + } + + return (brcm_iproc_mdio_op(sc, phy, reg, val, MDIO_CTRL_WRITE_OP)); +} + +static int +brcm_iproc_mdio_read_mux(device_t dev, int bus, int phy, int reg) +{ + struct brcm_iproc_mdio_softc *sc; + + sc = device_get_softc(dev); + + if (brcm_iproc_switch(sc, bus) != 0) { + device_printf(dev, "Failed to set BUS MUX\n"); + return (EINVAL); + } + + return (brcm_iproc_mdio_op(sc, phy, reg, 0, MDIO_CTRL_READ_OP)); +} + +static int +brcm_iproc_mdio_probe(device_t dev) +{ + + if (!ofw_bus_status_okay(dev)) + return (ENXIO); + if (!ofw_bus_search_compatible(dev, mdio_compat_data)->ocd_data) + return (ENXIO); + + device_set_desc(dev, "Broadcom MDIO MUX driver"); + return (BUS_PROBE_DEFAULT); +} + +static int +brcm_iproc_mdio_attach(device_t dev) +{ + struct brcm_iproc_mdio_softc *sc; + phandle_t node, parent; + struct brcm_mdio_ofw_devinfo *di; + int rid; + device_t child; + + sc = device_get_softc(dev); + sc->dev = dev; + + /* Allocate memory resources */ + rid = REG_BASE_RID; + sc->reg_base = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, + RF_ACTIVE); + if (sc->reg_base == NULL) { + device_printf(dev, "Could not allocate memory\n"); + return (ENXIO); + } + + /* Configure MDIO controlled */ + if (brcm_iproc_config(sc) < 0) { + device_printf(dev, "Unable to initialize IPROC MDIO\n"); + goto error; + } + + parent = ofw_bus_get_node(dev); + simplebus_init(dev, parent); + + /* Iterate through all bus subordinates */ + for (node = OF_child(parent); node > 0; node = OF_peer(node)) { + /* Allocate and populate devinfo. */ + di = malloc(sizeof(*di), M_BRCM_IPROC_MDIO, M_WAITOK | M_ZERO); + if (ofw_bus_gen_setup_devinfo(&di->di_dinfo, node) != 0) { + free(di, M_BRCM_IPROC_MDIO); + continue; + } + + /* Initialize and populate resource list. */ + resource_list_init(&di->di_rl); + ofw_bus_reg_to_rl(dev, node, sc->sbus.acells, sc->sbus.scells, + &di->di_rl); + ofw_bus_intr_to_rl(dev, node, &di->di_rl, NULL); + + /* Add newbus device for this FDT node */ + child = device_add_child(dev, NULL, -1); + if (child == NULL) { + printf("Failed to add child\n"); + resource_list_free(&di->di_rl); + ofw_bus_gen_destroy_devinfo(&di->di_dinfo); + free(di, M_BRCM_IPROC_MDIO); + continue; + } + + device_set_ivars(child, di); + } + + /* + * Register device to this node/xref. + * Thanks to that we will be able to retrieve device_t structure + * while holding only node reference acquired from FDT. + */ + node = ofw_bus_get_node(dev); + OF_device_register_xref(OF_xref_from_node(node), dev); + + return (bus_generic_attach(dev)); + +error: + brcm_iproc_mdio_detach(dev); + return (ENXIO); +} + +static const struct ofw_bus_devinfo * +brcm_iproc_mdio_get_devinfo(device_t bus __unused, device_t child) +{ + struct brcm_mdio_ofw_devinfo *di; + + di = device_get_ivars(child); + return (&di->di_dinfo); +} + +static int +brcm_iproc_mdio_detach(device_t dev) +{ + struct brcm_iproc_mdio_softc *sc; + + sc = device_get_softc(dev); + + if (sc->reg_base != NULL) { + bus_release_resource(dev, SYS_RES_MEMORY, REG_BASE_RID, + sc->reg_base); + } + + return (0); +} Added: head/sys/arm64/broadcom/brcmmdio/mdio_nexus_iproc.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/arm64/broadcom/brcmmdio/mdio_nexus_iproc.c Mon Apr 6 05:48:58 2020 (r359647) @@ -0,0 +1,234 @@ +/*- + * Copyright (c) 2019 Juniper Networks, Inc. + * Copyright (c) 2019 Semihalf. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * 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. + * 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. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include + +#include "mdio_if.h" + +MALLOC_DEFINE(M_BRCM_IPROC_NEXUS, "Broadcom IPROC MDIO NEXUS", + "Broadcom IPROC MDIO NEXUS dynamic memory"); + +struct brcm_mdionexus_softc { + struct simplebus_softc simplebus_sc; + uint32_t mux_id; +}; + +/* OFW bus interface */ +struct brcm_mdionexus_ofw_devinfo { + struct ofw_bus_devinfo di_dinfo; + struct resource_list di_rl; +}; + +static device_probe_t brcm_mdionexus_fdt_probe; +static device_attach_t brcm_mdionexus_fdt_attach; + +static const struct ofw_bus_devinfo * brcm_mdionexus_ofw_get_devinfo(device_t, + device_t); +static int brcm_mdionexus_mdio_readreg(device_t, int, int); +static int brcm_mdionexus_mdio_writereg(device_t, int, int, int); + +static device_method_t brcm_mdionexus_fdt_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, brcm_mdionexus_fdt_probe), + DEVMETHOD(device_attach, brcm_mdionexus_fdt_attach), + + /* Bus interface */ + DEVMETHOD(bus_alloc_resource, bus_generic_alloc_resource), + DEVMETHOD(bus_release_resource, bus_generic_release_resource), + DEVMETHOD(bus_activate_resource, bus_generic_activate_resource), + + /* ofw_bus interface */ + DEVMETHOD(ofw_bus_get_devinfo, brcm_mdionexus_ofw_get_devinfo), + DEVMETHOD(ofw_bus_get_compat, ofw_bus_gen_get_compat), + DEVMETHOD(ofw_bus_get_model, ofw_bus_gen_get_model), + DEVMETHOD(ofw_bus_get_name, ofw_bus_gen_get_name), + DEVMETHOD(ofw_bus_get_node, ofw_bus_gen_get_node), + DEVMETHOD(ofw_bus_get_type, ofw_bus_gen_get_type), + + /* MDIO interface */ + /* MDIO interface */ + DEVMETHOD(mdio_readreg, brcm_mdionexus_mdio_readreg), + DEVMETHOD(mdio_writereg, brcm_mdionexus_mdio_writereg), + + DEVMETHOD_END +}; + +DEFINE_CLASS_0(brcm_mdionexus, brcm_mdionexus_fdt_driver, brcm_mdionexus_fdt_methods, + sizeof(struct brcm_mdionexus_softc)); + +static devclass_t brcm_mdionexus_fdt_devclass; + +static driver_t brcm_mdionexus_driver = { + "brcm_mdionexus", + brcm_mdionexus_fdt_methods, + sizeof(struct brcm_mdionexus_softc) +}; +EARLY_DRIVER_MODULE(brcm_mdionexus, brcm_iproc_mdio, brcm_mdionexus_driver, + brcm_mdionexus_fdt_devclass, NULL, NULL, BUS_PASS_BUS + BUS_PASS_ORDER_MIDDLE); + +static int brcm_mdionexus_ofw_bus_attach(device_t); + +static int +brcm_mdionexus_mdio_readreg(device_t dev, int phy, int reg) +{ + struct brcm_mdionexus_softc *sc; + + sc = device_get_softc(dev); + + return (MDIO_READREG_MUX(device_get_parent(dev), + sc->mux_id, phy, reg)); +} + +static int +brcm_mdionexus_mdio_writereg(device_t dev, int phy, int reg, int val) +{ + struct brcm_mdionexus_softc *sc; + + sc = device_get_softc(dev); + + return (MDIO_WRITEREG_MUX(device_get_parent(dev), + sc->mux_id, phy, reg, val)); +} + +static __inline void +get_addr_size_cells(phandle_t node, pcell_t *addr_cells, pcell_t *size_cells) +{ + + *addr_cells = 2; + /* Find address cells if present */ + OF_getencprop(node, "#address-cells", addr_cells, sizeof(*addr_cells)); + + *size_cells = 2; + /* Find size cells if present */ + OF_getencprop(node, "#size-cells", size_cells, sizeof(*size_cells)); +} + +static int +brcm_mdionexus_fdt_probe(device_t dev) +{ + + if (!ofw_bus_status_okay(dev)) + return (ENXIO); + device_set_desc(dev, "Broadcom MDIO nexus"); + return (BUS_PROBE_SPECIFIC); +} + +static int +brcm_mdionexus_fdt_attach(device_t dev) +{ + struct brcm_mdionexus_softc *sc; + int err; + pcell_t addr_cells, size_cells, buf[2]; + phandle_t node; + + sc = device_get_softc(dev); + + node = ofw_bus_get_node(dev); + get_addr_size_cells(node, &addr_cells, &size_cells); + if ((addr_cells != 1) || (size_cells != 0)) { + device_printf(dev, "Only addr_cells=1 and size_cells=0 are supported\n"); + return (EINVAL); + } + + if (OF_getencprop(node, "reg", buf, sizeof(pcell_t)) < 0) + return (ENXIO); + + sc->mux_id = buf[0]; + + err = brcm_mdionexus_ofw_bus_attach(dev); + if (err != 0) + return (err); + + return (bus_generic_attach(dev)); +} + +static const struct ofw_bus_devinfo * +brcm_mdionexus_ofw_get_devinfo(device_t bus __unused, device_t child) +{ + struct brcm_mdionexus_ofw_devinfo *di; + + di = device_get_ivars(child); + return (&di->di_dinfo); +} + +static int +brcm_mdionexus_ofw_bus_attach(device_t dev) +{ + struct simplebus_softc *sc; + struct brcm_mdionexus_ofw_devinfo *di; + device_t child; + phandle_t parent, node; + + parent = ofw_bus_get_node(dev); + simplebus_init(dev, parent); + + sc = (struct simplebus_softc *)device_get_softc(dev); + + /* Iterate through all bus subordinates */ + for (node = OF_child(parent); node > 0; node = OF_peer(node)) { + /* Allocate and populate devinfo. */ + di = malloc(sizeof(*di), M_BRCM_IPROC_NEXUS, M_WAITOK | M_ZERO); + if (ofw_bus_gen_setup_devinfo(&di->di_dinfo, node) != 0) { + free(di, M_BRCM_IPROC_NEXUS); + continue; + } + + /* Initialize and populate resource list. */ + resource_list_init(&di->di_rl); + ofw_bus_reg_to_rl(dev, node, sc->acells, sc->scells, + &di->di_rl); + ofw_bus_intr_to_rl(dev, node, &di->di_rl, NULL); + + /* Add newbus device for this FDT node */ + child = device_add_child(dev, NULL, -1); + if (child == NULL) { + resource_list_free(&di->di_rl); + ofw_bus_gen_destroy_devinfo(&di->di_dinfo); + free(di, M_BRCM_IPROC_NEXUS); + continue; + } + + device_set_ivars(child, di); + } + + return (0); +} Added: head/sys/arm64/broadcom/brcmmdio/mdio_ns2_pcie_phy.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/arm64/broadcom/brcmmdio/mdio_ns2_pcie_phy.c Mon Apr 6 05:48:58 2020 (r359647) @@ -0,0 +1,162 @@ +/*- + * Copyright (c) 2019 Juniper Networks, Inc. + * Copyright (c) 2019 Semihalf. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * 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. + * 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. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include + +#include "mdio_if.h" + +#define BLK_ADDR_REG_OFFSET 0x1f +#define PLL_AFE1_100MHZ_BLK 0x2100 +#define PLL_CLK_AMP_OFFSET 0x03 +#define PLL_CLK_AMP_2P05V 0x2b18 + +struct ns2_pcie_phy_softc { + uint32_t phy_id; +}; + +static device_probe_t ns2_pcie_phy_fdt_probe; +static device_attach_t ns2_pcie_phy_fdt_attach; + +static int ns2_pci_phy_init(device_t dev); + +static device_method_t ns2_pcie_phy_fdt_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, ns2_pcie_phy_fdt_probe), + DEVMETHOD(device_attach, ns2_pcie_phy_fdt_attach), + + DEVMETHOD_END +}; + +DEFINE_CLASS_0(ns2_pcie_phy, ns2_pcie_phy_fdt_driver, ns2_pcie_phy_fdt_methods, + sizeof(struct ns2_pcie_phy_softc)); + +static devclass_t ns2_pcie_phy_fdt_devclass; + +static driver_t ns2_pcie_phy_driver = { + "ns2_pcie_phy", + ns2_pcie_phy_fdt_methods, + sizeof(struct ns2_pcie_phy_softc) +}; +EARLY_DRIVER_MODULE(ns2_pcie_phy, brcm_mdionexus, ns2_pcie_phy_driver, + ns2_pcie_phy_fdt_devclass, NULL, NULL, BUS_PASS_BUS + BUS_PASS_ORDER_MIDDLE); + +static int +ns2_pci_phy_init(device_t dev) +{ + struct ns2_pcie_phy_softc *sc; + int err; + + sc = device_get_softc(dev); + + /* select the AFE 100MHz block page */ + err = MDIO_WRITEREG(device_get_parent(dev), sc->phy_id, + BLK_ADDR_REG_OFFSET, PLL_AFE1_100MHZ_BLK); + if (err) + goto err; + + /* set the 100 MHz reference clock amplitude to 2.05 v */ + err = MDIO_WRITEREG(device_get_parent(dev), sc->phy_id, + PLL_CLK_AMP_OFFSET, PLL_CLK_AMP_2P05V); + if (err) + goto err; + + return 0; + +err: + device_printf(dev, "Error %d writing to phy\n", err); + return (err); +} + +static __inline void +get_addr_size_cells(phandle_t node, pcell_t *addr_cells, pcell_t *size_cells) +{ + + *addr_cells = 2; + /* Find address cells if present */ + OF_getencprop(node, "#address-cells", addr_cells, sizeof(*addr_cells)); + + *size_cells = 2; + /* Find size cells if present */ + OF_getencprop(node, "#size-cells", size_cells, sizeof(*size_cells)); +} + +static int +ns2_pcie_phy_fdt_probe(device_t dev) +{ + + if (!ofw_bus_status_okay(dev)) + return (ENXIO); + + if (!ofw_bus_is_compatible(dev, "brcm,ns2-pcie-phy")) + return (ENXIO); + + device_set_desc(dev, "Broadcom NS2 PCIe PHY"); + return (BUS_PROBE_SPECIFIC); +} + +static int +ns2_pcie_phy_fdt_attach(device_t dev) +{ + struct ns2_pcie_phy_softc *sc; + pcell_t addr_cells, size_cells, buf[2]; + phandle_t node; + + sc = device_get_softc(dev); + + node = ofw_bus_get_node(dev); + get_addr_size_cells(OF_parent(node), &addr_cells, &size_cells); + if ((addr_cells != 1) || (size_cells != 0)) { + device_printf(dev, + "Only addr_cells=1 and size_cells=0 are supported\n"); + return (EINVAL); + } + + if (OF_getencprop(node, "reg", buf, sizeof(pcell_t)) < 0) + return (ENXIO); + + sc->phy_id = buf[0]; + + if (ns2_pci_phy_init(dev) < 0) + return (EINVAL); + + return (bus_generic_attach(dev)); +} Modified: head/sys/conf/files.arm64 ============================================================================== --- head/sys/conf/files.arm64 Mon Apr 6 04:06:15 2020 (r359646) +++ head/sys/conf/files.arm64 Mon Apr 6 05:48:58 2020 (r359647) @@ -176,6 +176,9 @@ arm64/arm64/undefined.c standard arm64/arm64/unwind.c optional ddb | kdtrace_hooks | stack arm64/arm64/vfp.c standard arm64/arm64/vm_machdep.c standard +arm64/broadcom/brcmmdio/mdio_mux_iproc.c optional fdt +arm64/broadcom/brcmmdio/mdio_nexus_iproc.c optional fdt +arm64/broadcom/brcmmdio/mdio_ns2_pcie_phy.c optional fdt pci arm64/cavium/thunder_pcie_fdt.c optional soc_cavm_thunderx pci fdt arm64/cavium/thunder_pcie_pem.c optional soc_cavm_thunderx pci arm64/cavium/thunder_pcie_pem_fdt.c optional soc_cavm_thunderx pci fdt Modified: head/sys/dev/mdio/mdio_if.m ============================================================================== --- head/sys/dev/mdio/mdio_if.m Mon Apr 6 04:06:15 2020 (r359646) +++ head/sys/dev/mdio/mdio_if.m Mon Apr 6 05:48:58 2020 (r359647) @@ -40,6 +40,21 @@ METHOD int readreg { }; /** + * @brief Read register from device on MDIO muxed bus. + * + * @param dev MDIO bus device. + * @param bus MDIO bus mux position + * @param phy PHY address. + * @param reg The PHY register offset. + */ +METHOD int readreg_mux { + device_t dev; + int bus; + int phy; + int reg; +}; + +/** * @brief Write register to device on MDIO bus. * * @param dev MDIO bus device. @@ -49,6 +64,23 @@ METHOD int readreg { */ METHOD int writereg { device_t dev; + int phy; + int reg; + int val; +}; + +/** + * @brief Write register to device on MDIO muxed bus. + * + * @param dev MDIO bus device. + * @param bus MDIO bus mux position + * @param phy PHY address. + * @param reg The PHY register offset. + * @param val The value to write at offset @p reg. + */ +METHOD int writereg_mux { + device_t dev; + int bus; int phy; int reg; int val; From owner-svn-src-all@freebsd.org Mon Apr 6 06:34:46 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 758EF2A4543; Mon, 6 Apr 2020 06:34:46 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48wgkZ1jmFz4ZMk; Mon, 6 Apr 2020 06:34:46 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1923823AAE; Mon, 6 Apr 2020 06:34:46 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0366Yjp2095893; Mon, 6 Apr 2020 06:34:45 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0366YjGR095890; Mon, 6 Apr 2020 06:34:45 GMT (envelope-from ae@FreeBSD.org) Message-Id: <202004060634.0366YjGR095890@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Mon, 6 Apr 2020 06:34:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359648 - stable/12/sbin/ipfw X-SVN-Group: stable-12 X-SVN-Commit-Author: ae X-SVN-Commit-Paths: stable/12/sbin/ipfw X-SVN-Commit-Revision: 359648 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 06:34:46 -0000 Author: ae Date: Mon Apr 6 06:34:45 2020 New Revision: 359648 URL: https://svnweb.freebsd.org/changeset/base/359648 Log: MFC r359271: Use IP_FW_NAT44_DESTROY opcode for IP_FW3 socket option to destroy NAT instance. The NAT44 group of opcodes for IP_FW3 socket option is modern way to control NAT instances and this method can be used in future to switch from numeric to named NAT instances, like was done for ipfw tables. The IP_FW_NAT_DEL opcode is the last remnant of old ipfw_ctl control plane that doesn't support versioned operations. This interface will be retired soon. Modified: stable/12/sbin/ipfw/ipfw2.c stable/12/sbin/ipfw/ipfw2.h stable/12/sbin/ipfw/nat.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sbin/ipfw/ipfw2.c ============================================================================== --- stable/12/sbin/ipfw/ipfw2.c Mon Apr 6 05:48:58 2020 (r359647) +++ stable/12/sbin/ipfw/ipfw2.c Mon Apr 6 06:34:45 2020 (r359648) @@ -3328,13 +3328,7 @@ ipfw_delete(char *av[]) j = strtol(sep + 1, NULL, 10); av++; if (co.do_nat) { - exitval = do_cmd(IP_FW_NAT_DEL, &i, sizeof i); - if (exitval) { - exitval = EX_UNAVAILABLE; - if (co.do_quiet) - continue; - warn("nat %u not available", i); - } + exitval = ipfw_delete_nat(i); } else if (co.do_pipe) { exitval = ipfw_delete_pipe(co.do_pipe, i); } else { Modified: stable/12/sbin/ipfw/ipfw2.h ============================================================================== --- stable/12/sbin/ipfw/ipfw2.h Mon Apr 6 05:48:58 2020 (r359647) +++ stable/12/sbin/ipfw/ipfw2.h Mon Apr 6 06:34:45 2020 (r359648) @@ -386,6 +386,7 @@ extern int resvd_set_number; /* first-level command handlers */ void ipfw_add(char *av[]); void ipfw_show_nat(int ac, char **av); +int ipfw_delete_nat(int i); void ipfw_config_pipe(int ac, char **av); void ipfw_config_nat(int ac, char **av); void ipfw_sets_handler(char *av[]); Modified: stable/12/sbin/ipfw/nat.c ============================================================================== --- stable/12/sbin/ipfw/nat.c Mon Apr 6 05:48:58 2020 (r359647) +++ stable/12/sbin/ipfw/nat.c Mon Apr 6 06:34:45 2020 (r359648) @@ -931,6 +931,34 @@ ipfw_config_nat(int ac, char **av) } } +static void +nat_fill_ntlv(ipfw_obj_ntlv *ntlv, int i) +{ + + ntlv->head.type = IPFW_TLV_EACTION_NAME(1); /* it doesn't matter */ + ntlv->head.length = sizeof(ipfw_obj_ntlv); + ntlv->idx = 1; + ntlv->set = 0; /* not yet */ + snprintf(ntlv->name, sizeof(ntlv->name), "%d", i); +} + +int +ipfw_delete_nat(int i) +{ + ipfw_obj_header oh; + int ret; + + memset(&oh, 0, sizeof(oh)); + nat_fill_ntlv(&oh.ntlv, i); + ret = do_set3(IP_FW_NAT44_DESTROY, &oh.opheader, sizeof(oh)); + if (ret == -1) { + if (!co.do_quiet) + warn("nat %u not available", i); + return (EX_UNAVAILABLE); + } + return (EX_OK); +} + struct nat_list_arg { uint16_t cmd; int is_all; From owner-svn-src-all@freebsd.org Mon Apr 6 06:38:55 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 682732A462A; Mon, 6 Apr 2020 06:38:55 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48wgqM226yz4ZW0; Mon, 6 Apr 2020 06:38:55 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 40C8C23AB2; Mon, 6 Apr 2020 06:38:55 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0366ct3u096149; Mon, 6 Apr 2020 06:38:55 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0366csuU096146; Mon, 6 Apr 2020 06:38:54 GMT (envelope-from ae@FreeBSD.org) Message-Id: <202004060638.0366csuU096146@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Mon, 6 Apr 2020 06:38:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r359649 - stable/11/sbin/ipfw X-SVN-Group: stable-11 X-SVN-Commit-Author: ae X-SVN-Commit-Paths: stable/11/sbin/ipfw X-SVN-Commit-Revision: 359649 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 06:38:55 -0000 Author: ae Date: Mon Apr 6 06:38:54 2020 New Revision: 359649 URL: https://svnweb.freebsd.org/changeset/base/359649 Log: MFC r359271: Use IP_FW_NAT44_DESTROY opcode for IP_FW3 socket option to destroy NAT instance. The NAT44 group of opcodes for IP_FW3 socket option is modern way to control NAT instances and this method can be used in future to switch from numeric to named NAT instances, like was done for ipfw tables. The IP_FW_NAT_DEL opcode is the last remnant of old ipfw_ctl control plane that doesn't support versioned operations. This interface will be retired soon. Modified: stable/11/sbin/ipfw/ipfw2.c stable/11/sbin/ipfw/ipfw2.h stable/11/sbin/ipfw/nat.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sbin/ipfw/ipfw2.c ============================================================================== --- stable/11/sbin/ipfw/ipfw2.c Mon Apr 6 06:34:45 2020 (r359648) +++ stable/11/sbin/ipfw/ipfw2.c Mon Apr 6 06:38:54 2020 (r359649) @@ -3328,13 +3328,7 @@ ipfw_delete(char *av[]) j = strtol(sep + 1, NULL, 10); av++; if (co.do_nat) { - exitval = do_cmd(IP_FW_NAT_DEL, &i, sizeof i); - if (exitval) { - exitval = EX_UNAVAILABLE; - if (co.do_quiet) - continue; - warn("nat %u not available", i); - } + exitval = ipfw_delete_nat(i); } else if (co.do_pipe) { exitval = ipfw_delete_pipe(co.do_pipe, i); } else { Modified: stable/11/sbin/ipfw/ipfw2.h ============================================================================== --- stable/11/sbin/ipfw/ipfw2.h Mon Apr 6 06:34:45 2020 (r359648) +++ stable/11/sbin/ipfw/ipfw2.h Mon Apr 6 06:38:54 2020 (r359649) @@ -384,6 +384,7 @@ extern int resvd_set_number; /* first-level command handlers */ void ipfw_add(char *av[]); void ipfw_show_nat(int ac, char **av); +int ipfw_delete_nat(int i); void ipfw_config_pipe(int ac, char **av); void ipfw_config_nat(int ac, char **av); void ipfw_sets_handler(char *av[]); Modified: stable/11/sbin/ipfw/nat.c ============================================================================== --- stable/11/sbin/ipfw/nat.c Mon Apr 6 06:34:45 2020 (r359648) +++ stable/11/sbin/ipfw/nat.c Mon Apr 6 06:38:54 2020 (r359649) @@ -931,6 +931,34 @@ ipfw_config_nat(int ac, char **av) } } +static void +nat_fill_ntlv(ipfw_obj_ntlv *ntlv, int i) +{ + + ntlv->head.type = IPFW_TLV_EACTION_NAME(1); /* it doesn't matter */ + ntlv->head.length = sizeof(ipfw_obj_ntlv); + ntlv->idx = 1; + ntlv->set = 0; /* not yet */ + snprintf(ntlv->name, sizeof(ntlv->name), "%d", i); +} + +int +ipfw_delete_nat(int i) +{ + ipfw_obj_header oh; + int ret; + + memset(&oh, 0, sizeof(oh)); + nat_fill_ntlv(&oh.ntlv, i); + ret = do_set3(IP_FW_NAT44_DESTROY, &oh.opheader, sizeof(oh)); + if (ret == -1) { + if (!co.do_quiet) + warn("nat %u not available", i); + return (EX_UNAVAILABLE); + } + return (EX_OK); +} + struct nat_list_arg { uint16_t cmd; int is_all; From owner-svn-src-all@freebsd.org Mon Apr 6 07:07:27 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id AFABF2A5124; Mon, 6 Apr 2020 07:07:27 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48whSH4JW2z4bks; Mon, 6 Apr 2020 07:07:27 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8ED0D2406B; Mon, 6 Apr 2020 07:07:27 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03677RXf014377; Mon, 6 Apr 2020 07:07:27 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03677Rh9014376; Mon, 6 Apr 2020 07:07:27 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202004060707.03677Rh9014376@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Apr 2020 07:07:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359650 - stable/12/sys/fs/cuse X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/fs/cuse X-SVN-Commit-Revision: 359650 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 07:07:27 -0000 Author: hselasky Date: Mon Apr 6 07:07:27 2020 New Revision: 359650 URL: https://svnweb.freebsd.org/changeset/base/359650 Log: MFC r359452: Fine grain locking inside the cuse(3) kernel module. Implement one mutex per cuse(3) server instance which also cover the clients belonging to the given server instance. This should significantly reduce the mutex congestion inside the cuse(3) kernel module when multiple servers are in use. Sponsored by: Mellanox Technologies Modified: stable/12/sys/fs/cuse/cuse.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/fs/cuse/cuse.c ============================================================================== --- stable/12/sys/fs/cuse/cuse.c Mon Apr 6 06:38:54 2020 (r359649) +++ stable/12/sys/fs/cuse/cuse.c Mon Apr 6 07:07:27 2020 (r359650) @@ -1,6 +1,6 @@ /* $FreeBSD$ */ /*- - * Copyright (c) 2010-2017 Hans Petter Selasky. All rights reserved. + * Copyright (c) 2010-2020 Hans Petter Selasky. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -114,6 +114,7 @@ struct cuse_server { TAILQ_HEAD(, cuse_server_dev) hdev; TAILQ_HEAD(, cuse_client) hcli; TAILQ_HEAD(, cuse_memory) hmem; + struct mtx mtx; struct cv cv; struct selinfo selinfo; pid_t pid; @@ -145,7 +146,7 @@ struct cuse_client { static MALLOC_DEFINE(M_CUSE, "cuse", "CUSE memory"); static TAILQ_HEAD(, cuse_server) cuse_server_head; -static struct mtx cuse_mtx; +static struct mtx cuse_global_mtx; static struct cdev *cuse_dev; static struct cuse_server *cuse_alloc_unit[CUSE_DEVICES_MAX]; static int cuse_alloc_unit_id[CUSE_DEVICES_MAX]; @@ -216,18 +217,30 @@ static void cuse_client_is_closing(struct cuse_client static int cuse_free_unit_by_id_locked(struct cuse_server *, int); static void -cuse_lock(void) +cuse_global_lock(void) { - mtx_lock(&cuse_mtx); + mtx_lock(&cuse_global_mtx); } static void -cuse_unlock(void) +cuse_global_unlock(void) { - mtx_unlock(&cuse_mtx); + mtx_unlock(&cuse_global_mtx); } static void +cuse_server_lock(struct cuse_server *pcs) +{ + mtx_lock(&pcs->mtx); +} + +static void +cuse_server_unlock(struct cuse_server *pcs) +{ + mtx_unlock(&pcs->mtx); +} + +static void cuse_cmd_lock(struct cuse_client_command *pccmd) { sx_xlock(&pccmd->sx); @@ -244,7 +257,7 @@ cuse_kern_init(void *arg) { TAILQ_INIT(&cuse_server_head); - mtx_init(&cuse_mtx, "cuse-mtx", NULL, MTX_DEF); + mtx_init(&cuse_global_mtx, "cuse-global-mtx", NULL, MTX_DEF); cuse_dev = make_dev(&cuse_server_devsw, 0, UID_ROOT, GID_OPERATOR, 0600, "cuse"); @@ -267,9 +280,9 @@ cuse_kern_uninit(void *arg) pause("DRAIN", 2 * hz); - cuse_lock(); + cuse_global_lock(); ptr = TAILQ_FIRST(&cuse_server_head); - cuse_unlock(); + cuse_global_unlock(); if (ptr == NULL) break; @@ -278,7 +291,7 @@ cuse_kern_uninit(void *arg) if (cuse_dev != NULL) destroy_dev(cuse_dev); - mtx_destroy(&cuse_mtx); + mtx_destroy(&cuse_global_mtx); } SYSUNINIT(cuse_kern_uninit, SI_SUB_DEVFS, SI_ORDER_ANY, cuse_kern_uninit, 0); @@ -293,14 +306,10 @@ cuse_server_get(struct cuse_server **ppcs) *ppcs = NULL; return (error); } - /* check if closing */ - cuse_lock(); if (pcs->is_closing) { - cuse_unlock(); *ppcs = NULL; return (EINVAL); } - cuse_unlock(); *ppcs = pcs; return (0); } @@ -426,14 +435,14 @@ cuse_server_alloc_memory(struct cuse_server *pcs, uint goto error_0; } - cuse_lock(); + cuse_server_lock(pcs); /* check if allocation number already exists */ TAILQ_FOREACH(temp, &pcs->hmem, entry) { if (temp->alloc_nr == alloc_nr) break; } if (temp != NULL) { - cuse_unlock(); + cuse_server_unlock(pcs); error = EBUSY; goto error_1; } @@ -441,7 +450,7 @@ cuse_server_alloc_memory(struct cuse_server *pcs, uint mem->page_count = page_count; mem->alloc_nr = alloc_nr; TAILQ_INSERT_TAIL(&pcs->hmem, mem, entry); - cuse_unlock(); + cuse_server_unlock(pcs); return (0); @@ -457,17 +466,17 @@ cuse_server_free_memory(struct cuse_server *pcs, uint3 { struct cuse_memory *mem; - cuse_lock(); + cuse_server_lock(pcs); TAILQ_FOREACH(mem, &pcs->hmem, entry) { if (mem->alloc_nr == alloc_nr) break; } if (mem == NULL) { - cuse_unlock(); + cuse_server_unlock(pcs); return (EINVAL); } TAILQ_REMOVE(&pcs->hmem, mem, entry); - cuse_unlock(); + cuse_server_unlock(pcs); cuse_vm_memory_free(mem); @@ -486,14 +495,10 @@ cuse_client_get(struct cuse_client **ppcc) *ppcc = NULL; return (error); } - /* check if closing */ - cuse_lock(); if (CUSE_CLIENT_CLOSING(pcc) || pcc->server->is_closing) { - cuse_unlock(); *ppcc = NULL; return (EINVAL); } - cuse_unlock(); *ppcc = pcc; return (0); } @@ -578,28 +583,28 @@ static int cuse_client_receive_command_locked(struct cuse_client_command *pccmd, uint8_t *arg_ptr, uint32_t arg_len) { + struct cuse_server *pcs; int error; + pcs = pccmd->client->server; error = 0; pccmd->proc_curr = curthread->td_proc; - if (CUSE_CLIENT_CLOSING(pccmd->client) || - pccmd->client->server->is_closing) { + if (CUSE_CLIENT_CLOSING(pccmd->client) || pcs->is_closing) { error = CUSE_ERR_OTHER; goto done; } while (pccmd->command == CUSE_CMD_NONE) { if (error != 0) { - cv_wait(&pccmd->cv, &cuse_mtx); + cv_wait(&pccmd->cv, &pcs->mtx); } else { - error = cv_wait_sig(&pccmd->cv, &cuse_mtx); + error = cv_wait_sig(&pccmd->cv, &pcs->mtx); if (error != 0) cuse_client_got_signal(pccmd); } - if (CUSE_CLIENT_CLOSING(pccmd->client) || - pccmd->client->server->is_closing) { + if (CUSE_CLIENT_CLOSING(pccmd->client) || pcs->is_closing) { error = CUSE_ERR_OTHER; goto done; } @@ -616,7 +621,7 @@ done: pccmd->proc_curr = NULL; while (pccmd->proc_refs != 0) - cv_wait(&pccmd->cv, &cuse_mtx); + cv_wait(&pccmd->cv, &pcs->mtx); return (error); } @@ -635,7 +640,7 @@ cuse_server_free_dev(struct cuse_server_dev *pcsd) pcs = pcsd->server; /* prevent creation of more devices */ - cuse_lock(); + cuse_server_lock(pcs); if (pcsd->kern_dev != NULL) pcsd->kern_dev->si_drv1 = NULL; @@ -643,7 +648,7 @@ cuse_server_free_dev(struct cuse_server_dev *pcsd) if (pcc->server_dev == pcsd) cuse_client_is_closing(pcc); } - cuse_unlock(); + cuse_server_unlock(pcs); /* destroy device, if any */ if (pcsd->kern_dev != NULL) { @@ -659,43 +664,46 @@ cuse_server_unref(struct cuse_server *pcs) struct cuse_server_dev *pcsd; struct cuse_memory *mem; - cuse_lock(); - pcs->refs--; - if (pcs->refs != 0) { - cuse_unlock(); + cuse_server_lock(pcs); + if (--(pcs->refs) != 0) { + cuse_server_unlock(pcs); return; } cuse_server_is_closing(pcs); /* final client wakeup, if any */ cuse_server_wakeup_all_client_locked(pcs); + cuse_global_lock(); TAILQ_REMOVE(&cuse_server_head, pcs, entry); + cuse_global_unlock(); while ((pcsd = TAILQ_FIRST(&pcs->hdev)) != NULL) { TAILQ_REMOVE(&pcs->hdev, pcsd, entry); - cuse_unlock(); + cuse_server_unlock(pcs); cuse_server_free_dev(pcsd); - cuse_lock(); + cuse_server_lock(pcs); } cuse_free_unit_by_id_locked(pcs, -1); while ((mem = TAILQ_FIRST(&pcs->hmem)) != NULL) { TAILQ_REMOVE(&pcs->hmem, mem, entry); - cuse_unlock(); + cuse_server_unlock(pcs); cuse_vm_memory_free(mem); - cuse_lock(); + cuse_server_lock(pcs); } knlist_clear(&pcs->selinfo.si_note, 1); knlist_destroy(&pcs->selinfo.si_note); - cuse_unlock(); + cuse_server_unlock(pcs); seldrain(&pcs->selinfo); cv_destroy(&pcs->cv); + mtx_destroy(&pcs->mtx); + free(pcs, M_CUSE); } @@ -704,7 +712,7 @@ cuse_server_do_close(struct cuse_server *pcs) { int retval; - cuse_lock(); + cuse_server_lock(pcs); cuse_server_is_closing(pcs); /* final client wakeup, if any */ cuse_server_wakeup_all_client_locked(pcs); @@ -712,7 +720,7 @@ cuse_server_do_close(struct cuse_server *pcs) knlist_clear(&pcs->selinfo.si_note, 1); retval = pcs->refs; - cuse_unlock(); + cuse_server_unlock(pcs); return (retval); } @@ -758,12 +766,14 @@ cuse_server_open(struct cdev *dev, int fflags, int dev cv_init(&pcs->cv, "cuse-server-cv"); - knlist_init_mtx(&pcs->selinfo.si_note, &cuse_mtx); + mtx_init(&pcs->mtx, "cuse-server-mtx", NULL, MTX_DEF); - cuse_lock(); + knlist_init_mtx(&pcs->selinfo.si_note, &pcs->mtx); + + cuse_global_lock(); pcs->refs++; TAILQ_INSERT_TAIL(&cuse_server_head, pcs, entry); - cuse_unlock(); + cuse_global_unlock(); return (0); } @@ -792,7 +802,8 @@ cuse_server_write(struct cdev *dev, struct uio *uio, i } static int -cuse_server_ioctl_copy_locked(struct cuse_client_command *pccmd, +cuse_server_ioctl_copy_locked(struct cuse_server *pcs, + struct cuse_client_command *pccmd, struct cuse_data_chunk *pchk, int isread) { struct proc *p_proc; @@ -819,7 +830,7 @@ cuse_server_ioctl_copy_locked(struct cuse_client_comma pccmd->proc_refs++; - cuse_unlock(); + cuse_server_unlock(pcs); if (isread == 0) { error = copyin( @@ -833,7 +844,7 @@ cuse_server_ioctl_copy_locked(struct cuse_client_comma pchk->length); } - cuse_lock(); + cuse_server_lock(pcs); pccmd->proc_refs--; @@ -898,7 +909,8 @@ cuse_proc2proc_copy(struct proc *proc_s, vm_offset_t d } static int -cuse_server_data_copy_locked(struct cuse_client_command *pccmd, +cuse_server_data_copy_locked(struct cuse_server *pcs, + struct cuse_client_command *pccmd, struct cuse_data_chunk *pchk, int isread) { struct proc *p_proc; @@ -913,7 +925,7 @@ cuse_server_data_copy_locked(struct cuse_client_comman pccmd->proc_refs++; - cuse_unlock(); + cuse_server_unlock(pcs); if (isread == 0) { error = cuse_proc2proc_copy( @@ -927,7 +939,7 @@ cuse_server_data_copy_locked(struct cuse_client_comman pchk->length); } - cuse_lock(); + cuse_server_lock(pcs); pccmd->proc_refs--; @@ -1031,16 +1043,16 @@ cuse_server_ioctl(struct cdev *dev, unsigned long cmd, case CUSE_IOCTL_GET_COMMAND: pcmd = (void *)data; - cuse_lock(); + cuse_server_lock(pcs); while ((pccmd = TAILQ_FIRST(&pcs->head)) == NULL) { - error = cv_wait_sig(&pcs->cv, &cuse_mtx); + error = cv_wait_sig(&pcs->cv, &pcs->mtx); if (pcs->is_closing) error = ENXIO; if (error) { - cuse_unlock(); + cuse_server_unlock(pcs); return (error); } } @@ -1052,13 +1064,13 @@ cuse_server_ioctl(struct cdev *dev, unsigned long cmd, *pcmd = pccmd->sub; - cuse_unlock(); + cuse_server_unlock(pcs); break; case CUSE_IOCTL_SYNC_COMMAND: - cuse_lock(); + cuse_server_lock(pcs); while ((pccmd = cuse_server_find_command(pcs, curthread)) != NULL) { /* send sync command */ @@ -1069,16 +1081,16 @@ cuse_server_ioctl(struct cdev *dev, unsigned long cmd, /* signal peer, if any */ cv_signal(&pccmd->cv); } - cuse_unlock(); + cuse_server_unlock(pcs); break; case CUSE_IOCTL_ALLOC_UNIT: - cuse_lock(); + cuse_server_lock(pcs); n = cuse_alloc_unit_by_id_locked(pcs, CUSE_ID_DEFAULT(0)); - cuse_unlock(); + cuse_server_unlock(pcs); if (n < 0) error = ENOMEM; @@ -1092,9 +1104,9 @@ cuse_server_ioctl(struct cdev *dev, unsigned long cmd, n = (n & CUSE_ID_MASK); - cuse_lock(); + cuse_server_lock(pcs); n = cuse_alloc_unit_by_id_locked(pcs, n); - cuse_unlock(); + cuse_server_unlock(pcs); if (n < 0) error = ENOMEM; @@ -1108,18 +1120,18 @@ cuse_server_ioctl(struct cdev *dev, unsigned long cmd, n = CUSE_ID_DEFAULT(n); - cuse_lock(); + cuse_server_lock(pcs); error = cuse_free_unit_by_id_locked(pcs, n); - cuse_unlock(); + cuse_server_unlock(pcs); break; case CUSE_IOCTL_FREE_UNIT_BY_ID: n = *(int *)data; - cuse_lock(); + cuse_server_lock(pcs); error = cuse_free_unit_by_id_locked(pcs, n); - cuse_unlock(); + cuse_server_unlock(pcs); break; case CUSE_IOCTL_ALLOC_MEMORY: @@ -1150,7 +1162,7 @@ cuse_server_ioctl(struct cdev *dev, unsigned long cmd, case CUSE_IOCTL_GET_SIG: - cuse_lock(); + cuse_server_lock(pcs); pccmd = cuse_server_find_command(pcs, curthread); if (pccmd != NULL) { @@ -1159,7 +1171,7 @@ cuse_server_ioctl(struct cdev *dev, unsigned long cmd, } else { n = 0; } - cuse_unlock(); + cuse_server_unlock(pcs); *(int *)data = n; @@ -1167,7 +1179,7 @@ cuse_server_ioctl(struct cdev *dev, unsigned long cmd, case CUSE_IOCTL_SET_PFH: - cuse_lock(); + cuse_server_lock(pcs); pccmd = cuse_server_find_command(pcs, curthread); if (pccmd != NULL) { @@ -1178,7 +1190,7 @@ cuse_server_ioctl(struct cdev *dev, unsigned long cmd, } else { error = ENXIO; } - cuse_unlock(); + cuse_server_unlock(pcs); break; case CUSE_IOCTL_CREATE_DEV: @@ -1224,9 +1236,9 @@ cuse_server_ioctl(struct cdev *dev, unsigned long cmd, } pcsd->kern_dev->si_drv1 = pcsd; - cuse_lock(); + cuse_server_lock(pcs); TAILQ_INSERT_TAIL(&pcs->hdev, pcsd, entry); - cuse_unlock(); + cuse_server_unlock(pcs); break; @@ -1236,7 +1248,7 @@ cuse_server_ioctl(struct cdev *dev, unsigned long cmd, if (error) break; - cuse_lock(); + cuse_server_lock(pcs); error = EINVAL; @@ -1244,9 +1256,9 @@ cuse_server_ioctl(struct cdev *dev, unsigned long cmd, while (pcsd != NULL) { if (pcsd->user_dev == *(struct cuse_dev **)data) { TAILQ_REMOVE(&pcs->hdev, pcsd, entry); - cuse_unlock(); + cuse_server_unlock(pcs); cuse_server_free_dev(pcsd); - cuse_lock(); + cuse_server_lock(pcs); error = 0; pcsd = TAILQ_FIRST(&pcs->hdev); } else { @@ -1254,13 +1266,13 @@ cuse_server_ioctl(struct cdev *dev, unsigned long cmd, } } - cuse_unlock(); + cuse_server_unlock(pcs); break; case CUSE_IOCTL_WRITE_DATA: case CUSE_IOCTL_READ_DATA: - cuse_lock(); + cuse_server_lock(pcs); pchk = (struct cuse_data_chunk *)data; pccmd = cuse_server_find_command(pcs, curthread); @@ -1270,23 +1282,23 @@ cuse_server_ioctl(struct cdev *dev, unsigned long cmd, } else if (pchk->peer_ptr < CUSE_BUF_MIN_PTR) { error = EFAULT; /* NULL pointer */ } else if (pchk->peer_ptr < CUSE_BUF_MAX_PTR) { - error = cuse_server_ioctl_copy_locked(pccmd, + error = cuse_server_ioctl_copy_locked(pcs, pccmd, pchk, cmd == CUSE_IOCTL_READ_DATA); } else { - error = cuse_server_data_copy_locked(pccmd, + error = cuse_server_data_copy_locked(pcs, pccmd, pchk, cmd == CUSE_IOCTL_READ_DATA); } - cuse_unlock(); + cuse_server_unlock(pcs); break; case CUSE_IOCTL_SELWAKEUP: - cuse_lock(); + cuse_server_lock(pcs); /* * We don't know which direction caused the event. * Wakeup both! */ cuse_server_wakeup_all_client_locked(pcs); - cuse_unlock(); + cuse_server_unlock(pcs); break; default: @@ -1317,31 +1329,31 @@ cuse_server_mmap_single(struct cdev *dev, vm_ooffset_t if (error != 0) return (error); - cuse_lock(); + cuse_server_lock(pcs); /* lookup memory structure */ TAILQ_FOREACH(mem, &pcs->hmem, entry) { if (mem->alloc_nr == alloc_nr) break; } if (mem == NULL) { - cuse_unlock(); + cuse_server_unlock(pcs); return (ENOMEM); } /* verify page offset */ page_nr %= CUSE_ALLOC_PAGES_MAX; if (page_nr >= mem->page_count) { - cuse_unlock(); + cuse_server_unlock(pcs); return (ENXIO); } /* verify mmap size */ if ((size % PAGE_SIZE) != 0 || (size < PAGE_SIZE) || (size > ((mem->page_count - page_nr) * PAGE_SIZE))) { - cuse_unlock(); + cuse_server_unlock(pcs); return (EINVAL); } vm_object_reference(mem->object); *object = mem->object; - cuse_unlock(); + cuse_server_unlock(pcs); /* set new VM object offset to use */ *offset = page_nr * PAGE_SIZE; @@ -1361,10 +1373,12 @@ cuse_client_free(void *arg) struct cuse_server *pcs; int n; - cuse_lock(); + pcs = pcc->server; + + cuse_server_lock(pcs); cuse_client_is_closing(pcc); - TAILQ_REMOVE(&pcc->server->hcli, pcc, entry); - cuse_unlock(); + TAILQ_REMOVE(&pcs->hcli, pcc, entry); + cuse_server_unlock(pcs); for (n = 0; n != CUSE_CMD_MAX; n++) { @@ -1374,8 +1388,6 @@ cuse_client_free(void *arg) cv_destroy(&pccmd->cv); } - pcs = pcc->server; - free(pcc, M_CUSE); /* drop reference on server */ @@ -1393,11 +1405,12 @@ cuse_client_open(struct cdev *dev, int fflags, int dev int error; int n; - cuse_lock(); pcsd = dev->si_drv1; if (pcsd != NULL) { pcs = pcsd->server; pcd = pcsd->user_dev; + + cuse_server_lock(pcs); /* * Check that the refcount didn't wrap and that the * same process is not both client and server. This @@ -1408,17 +1421,14 @@ cuse_client_open(struct cdev *dev, int fflags, int dev if (pcs->refs < 0 || pcs->pid == curproc->p_pid) { /* overflow or wrong PID */ pcs->refs--; - pcsd = NULL; + cuse_server_unlock(pcs); + return (EINVAL); } + cuse_server_unlock(pcs); } else { - pcs = NULL; - pcd = NULL; + return (EINVAL); } - cuse_unlock(); - if (pcsd == NULL) - return (EINVAL); - pcc = malloc(sizeof(*pcc), M_CUSE, M_WAITOK | M_ZERO); if (pcc == NULL) { /* drop reference on server */ @@ -1448,7 +1458,7 @@ cuse_client_open(struct cdev *dev, int fflags, int dev cv_init(&pccmd->cv, "cuse-client-cv"); } - cuse_lock(); + cuse_server_lock(pcs); /* cuse_client_free() assumes that the client is listed somewhere! */ /* always enqueue */ @@ -1461,7 +1471,7 @@ cuse_client_open(struct cdev *dev, int fflags, int dev } else { error = 0; } - cuse_unlock(); + cuse_server_unlock(pcs); if (error) { devfs_clear_cdevpriv(); /* XXX bugfix */ @@ -1471,11 +1481,11 @@ cuse_client_open(struct cdev *dev, int fflags, int dev cuse_cmd_lock(pccmd); - cuse_lock(); + cuse_server_lock(pcs); cuse_client_send_command_locked(pccmd, 0, 0, pcc->fflags, 0); error = cuse_client_receive_command_locked(pccmd, 0, 0); - cuse_unlock(); + cuse_server_unlock(pcs); if (error < 0) { error = cuse_convert_error(error); @@ -1496,6 +1506,7 @@ cuse_client_close(struct cdev *dev, int fflag, int dev { struct cuse_client_command *pccmd; struct cuse_client *pcc; + struct cuse_server *pcs; int error; error = cuse_client_get(&pcc); @@ -1503,20 +1514,18 @@ cuse_client_close(struct cdev *dev, int fflag, int dev return (0); pccmd = &pcc->cmds[CUSE_CMD_CLOSE]; + pcs = pcc->server; cuse_cmd_lock(pccmd); - cuse_lock(); + cuse_server_lock(pcs); cuse_client_send_command_locked(pccmd, 0, 0, pcc->fflags, 0); error = cuse_client_receive_command_locked(pccmd, 0, 0); - cuse_unlock(); - cuse_cmd_unlock(pccmd); - cuse_lock(); cuse_client_is_closing(pcc); - cuse_unlock(); + cuse_server_unlock(pcs); return (0); } @@ -1524,21 +1533,22 @@ cuse_client_close(struct cdev *dev, int fflag, int dev static void cuse_client_kqfilter_poll(struct cdev *dev, struct cuse_client *pcc) { + struct cuse_server *pcs = pcc->server; int temp; - cuse_lock(); + cuse_server_lock(pcs); temp = (pcc->cflags & (CUSE_CLI_KNOTE_HAS_READ | CUSE_CLI_KNOTE_HAS_WRITE)); pcc->cflags &= ~(CUSE_CLI_KNOTE_NEED_READ | CUSE_CLI_KNOTE_NEED_WRITE); - cuse_unlock(); + cuse_server_unlock(pcs); if (temp != 0) { /* get the latest polling state from the server */ temp = cuse_client_poll(dev, POLLIN | POLLOUT, NULL); if (temp & (POLLIN | POLLOUT)) { - cuse_lock(); + cuse_server_lock(pcs); if (temp & POLLIN) pcc->cflags |= CUSE_CLI_KNOTE_NEED_READ; if (temp & POLLOUT) @@ -1546,7 +1556,7 @@ cuse_client_kqfilter_poll(struct cdev *dev, struct cus /* make sure the "knote" gets woken up */ cuse_server_wakeup_locked(pcc->server); - cuse_unlock(); + cuse_server_unlock(pcs); } } } @@ -1556,6 +1566,7 @@ cuse_client_read(struct cdev *dev, struct uio *uio, in { struct cuse_client_command *pccmd; struct cuse_client *pcc; + struct cuse_server *pcs; int error; int len; @@ -1564,6 +1575,7 @@ cuse_client_read(struct cdev *dev, struct uio *uio, in return (error); pccmd = &pcc->cmds[CUSE_CMD_READ]; + pcs = pcc->server; if (uio->uio_segflg != UIO_USERSPACE) { return (EINVAL); @@ -1580,13 +1592,13 @@ cuse_client_read(struct cdev *dev, struct uio *uio, in } len = uio->uio_iov->iov_len; - cuse_lock(); + cuse_server_lock(pcs); cuse_client_send_command_locked(pccmd, (uintptr_t)uio->uio_iov->iov_base, (unsigned long)(unsigned int)len, pcc->fflags, ioflag); error = cuse_client_receive_command_locked(pccmd, 0, 0); - cuse_unlock(); + cuse_server_unlock(pcs); if (error < 0) { error = cuse_convert_error(error); @@ -1615,6 +1627,7 @@ cuse_client_write(struct cdev *dev, struct uio *uio, i { struct cuse_client_command *pccmd; struct cuse_client *pcc; + struct cuse_server *pcs; int error; int len; @@ -1623,6 +1636,7 @@ cuse_client_write(struct cdev *dev, struct uio *uio, i return (error); pccmd = &pcc->cmds[CUSE_CMD_WRITE]; + pcs = pcc->server; if (uio->uio_segflg != UIO_USERSPACE) { return (EINVAL); @@ -1639,13 +1653,13 @@ cuse_client_write(struct cdev *dev, struct uio *uio, i } len = uio->uio_iov->iov_len; - cuse_lock(); + cuse_server_lock(pcs); cuse_client_send_command_locked(pccmd, (uintptr_t)uio->uio_iov->iov_base, (unsigned long)(unsigned int)len, pcc->fflags, ioflag); error = cuse_client_receive_command_locked(pccmd, 0, 0); - cuse_unlock(); + cuse_server_unlock(pcs); if (error < 0) { error = cuse_convert_error(error); @@ -1675,6 +1689,7 @@ cuse_client_ioctl(struct cdev *dev, unsigned long cmd, { struct cuse_client_command *pccmd; struct cuse_client *pcc; + struct cuse_server *pcs; int error; int len; @@ -1687,6 +1702,7 @@ cuse_client_ioctl(struct cdev *dev, unsigned long cmd, return (ENOMEM); pccmd = &pcc->cmds[CUSE_CMD_IOCTL]; + pcs = pcc->server; cuse_cmd_lock(pccmd); @@ -1699,14 +1715,14 @@ cuse_client_ioctl(struct cdev *dev, unsigned long cmd, * is forwarded to the driver. */ - cuse_lock(); + cuse_server_lock(pcs); cuse_client_send_command_locked(pccmd, (len == 0) ? *(long *)data : CUSE_BUF_MIN_PTR, (unsigned long)cmd, pcc->fflags, (fflag & O_NONBLOCK) ? IO_NDELAY : 0); error = cuse_client_receive_command_locked(pccmd, data, len); - cuse_unlock(); + cuse_server_unlock(pcs); if (error < 0) { error = cuse_convert_error(error); @@ -1730,6 +1746,7 @@ cuse_client_poll(struct cdev *dev, int events, struct { struct cuse_client_command *pccmd; struct cuse_client *pcc; + struct cuse_server *pcs; unsigned long temp; int error; int revents; @@ -1739,6 +1756,7 @@ cuse_client_poll(struct cdev *dev, int events, struct goto pollnval; temp = 0; + pcs = pcc->server; if (events & (POLLPRI | POLLIN | POLLRDNORM)) temp |= CUSE_POLL_READ; @@ -1755,14 +1773,14 @@ cuse_client_poll(struct cdev *dev, int events, struct /* Need to selrecord() first to not loose any events. */ if (temp != 0 && td != NULL) - selrecord(td, &pcc->server->selinfo); + selrecord(td, &pcs->selinfo); - cuse_lock(); + cuse_server_lock(pcs); cuse_client_send_command_locked(pccmd, 0, temp, pcc->fflags, IO_NDELAY); error = cuse_client_receive_command_locked(pccmd, 0, 0); - cuse_unlock(); + cuse_server_unlock(pcs); cuse_cmd_unlock(pccmd); @@ -1793,37 +1811,40 @@ cuse_client_mmap_single(struct cdev *dev, vm_ooffset_t uint32_t alloc_nr = page_nr / CUSE_ALLOC_PAGES_MAX; struct cuse_memory *mem; struct cuse_client *pcc; + struct cuse_server *pcs; int error; error = cuse_client_get(&pcc); if (error != 0) return (error); - cuse_lock(); + pcs = pcc->server; + + cuse_server_lock(pcs); /* lookup memory structure */ - TAILQ_FOREACH(mem, &pcc->server->hmem, entry) { + TAILQ_FOREACH(mem, &pcs->hmem, entry) { if (mem->alloc_nr == alloc_nr) break; } if (mem == NULL) { - cuse_unlock(); + cuse_server_unlock(pcs); return (ENOMEM); } /* verify page offset */ page_nr %= CUSE_ALLOC_PAGES_MAX; if (page_nr >= mem->page_count) { - cuse_unlock(); + cuse_server_unlock(pcs); return (ENXIO); } /* verify mmap size */ if ((size % PAGE_SIZE) != 0 || (size < PAGE_SIZE) || (size > ((mem->page_count - page_nr) * PAGE_SIZE))) { - cuse_unlock(); + cuse_server_unlock(pcs); return (EINVAL); } vm_object_reference(mem->object); *object = mem->object; - cuse_unlock(); + cuse_server_unlock(pcs); /* set new VM object offset to use */ *offset = page_nr * PAGE_SIZE; @@ -1836,22 +1857,28 @@ static void cuse_client_kqfilter_read_detach(struct knote *kn) { struct cuse_client *pcc; + struct cuse_server *pcs; - cuse_lock(); pcc = kn->kn_hook; - knlist_remove(&pcc->server->selinfo.si_note, kn, 1); - cuse_unlock(); + pcs = pcc->server; + + cuse_server_lock(pcs); + knlist_remove(&pcs->selinfo.si_note, kn, 1); + cuse_server_unlock(pcs); } static void cuse_client_kqfilter_write_detach(struct knote *kn) { struct cuse_client *pcc; + struct cuse_server *pcs; - cuse_lock(); pcc = kn->kn_hook; - knlist_remove(&pcc->server->selinfo.si_note, kn, 1); - cuse_unlock(); + pcs = pcc->server; + + cuse_server_lock(pcs); + knlist_remove(&pcs->selinfo.si_note, kn, 1); + cuse_server_unlock(pcs); } static int @@ -1859,9 +1886,10 @@ cuse_client_kqfilter_read_event(struct knote *kn, long { struct cuse_client *pcc; - mtx_assert(&cuse_mtx, MA_OWNED); - *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Mon Apr 6 07:09:04 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E33FA2A51EE; Mon, 6 Apr 2020 07:09:04 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48whV850cCz4bsn; Mon, 6 Apr 2020 07:09:04 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A68892406E; Mon, 6 Apr 2020 07:09:04 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 036794PL014507; Mon, 6 Apr 2020 07:09:04 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 036794fN014506; Mon, 6 Apr 2020 07:09:04 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202004060709.036794fN014506@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Apr 2020 07:09:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r359651 - stable/11/sys/fs/cuse X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/fs/cuse X-SVN-Commit-Revision: 359651 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 07:09:05 -0000 Author: hselasky Date: Mon Apr 6 07:09:04 2020 New Revision: 359651 URL: https://svnweb.freebsd.org/changeset/base/359651 Log: MFC r359452: Fine grain locking inside the cuse(3) kernel module. Implement one mutex per cuse(3) server instance which also cover the clients belonging to the given server instance. This should significantly reduce the mutex congestion inside the cuse(3) kernel module when multiple servers are in use. Sponsored by: Mellanox Technologies Modified: stable/11/sys/fs/cuse/cuse.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/fs/cuse/cuse.c ============================================================================== --- stable/11/sys/fs/cuse/cuse.c Mon Apr 6 07:07:27 2020 (r359650) +++ stable/11/sys/fs/cuse/cuse.c Mon Apr 6 07:09:04 2020 (r359651) @@ -1,6 +1,6 @@ /* $FreeBSD$ */ /*- - * Copyright (c) 2010-2017 Hans Petter Selasky. All rights reserved. + * Copyright (c) 2010-2020 Hans Petter Selasky. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -116,6 +116,7 @@ struct cuse_server { TAILQ_HEAD(, cuse_server_dev) hdev; TAILQ_HEAD(, cuse_client) hcli; TAILQ_HEAD(, cuse_memory) hmem; + struct mtx mtx; struct cv cv; struct selinfo selinfo; pid_t pid; @@ -147,7 +148,7 @@ struct cuse_client { static MALLOC_DEFINE(M_CUSE, "cuse", "CUSE memory"); static TAILQ_HEAD(, cuse_server) cuse_server_head; -static struct mtx cuse_mtx; +static struct mtx cuse_global_mtx; static struct cdev *cuse_dev; static struct cuse_server *cuse_alloc_unit[CUSE_DEVICES_MAX]; static int cuse_alloc_unit_id[CUSE_DEVICES_MAX]; @@ -218,18 +219,30 @@ static void cuse_client_is_closing(struct cuse_client static int cuse_free_unit_by_id_locked(struct cuse_server *, int); static void -cuse_lock(void) +cuse_global_lock(void) { - mtx_lock(&cuse_mtx); + mtx_lock(&cuse_global_mtx); } static void -cuse_unlock(void) +cuse_global_unlock(void) { - mtx_unlock(&cuse_mtx); + mtx_unlock(&cuse_global_mtx); } static void +cuse_server_lock(struct cuse_server *pcs) +{ + mtx_lock(&pcs->mtx); +} + +static void +cuse_server_unlock(struct cuse_server *pcs) +{ + mtx_unlock(&pcs->mtx); +} + +static void cuse_cmd_lock(struct cuse_client_command *pccmd) { sx_xlock(&pccmd->sx); @@ -246,7 +259,7 @@ cuse_kern_init(void *arg) { TAILQ_INIT(&cuse_server_head); - mtx_init(&cuse_mtx, "cuse-mtx", NULL, MTX_DEF); + mtx_init(&cuse_global_mtx, "cuse-global-mtx", NULL, MTX_DEF); cuse_dev = make_dev(&cuse_server_devsw, 0, UID_ROOT, GID_OPERATOR, 0600, "cuse"); @@ -269,9 +282,9 @@ cuse_kern_uninit(void *arg) pause("DRAIN", 2 * hz); - cuse_lock(); + cuse_global_lock(); ptr = TAILQ_FIRST(&cuse_server_head); - cuse_unlock(); + cuse_global_unlock(); if (ptr == NULL) break; @@ -280,7 +293,7 @@ cuse_kern_uninit(void *arg) if (cuse_dev != NULL) destroy_dev(cuse_dev); - mtx_destroy(&cuse_mtx); + mtx_destroy(&cuse_global_mtx); } SYSUNINIT(cuse_kern_uninit, SI_SUB_DEVFS, SI_ORDER_ANY, cuse_kern_uninit, 0); @@ -295,14 +308,10 @@ cuse_server_get(struct cuse_server **ppcs) *ppcs = NULL; return (error); } - /* check if closing */ - cuse_lock(); if (pcs->is_closing) { - cuse_unlock(); *ppcs = NULL; return (EINVAL); } - cuse_unlock(); *ppcs = pcs; return (0); } @@ -428,14 +437,14 @@ cuse_server_alloc_memory(struct cuse_server *pcs, uint goto error_0; } - cuse_lock(); + cuse_server_lock(pcs); /* check if allocation number already exists */ TAILQ_FOREACH(temp, &pcs->hmem, entry) { if (temp->alloc_nr == alloc_nr) break; } if (temp != NULL) { - cuse_unlock(); + cuse_server_unlock(pcs); error = EBUSY; goto error_1; } @@ -443,7 +452,7 @@ cuse_server_alloc_memory(struct cuse_server *pcs, uint mem->page_count = page_count; mem->alloc_nr = alloc_nr; TAILQ_INSERT_TAIL(&pcs->hmem, mem, entry); - cuse_unlock(); + cuse_server_unlock(pcs); return (0); @@ -459,17 +468,17 @@ cuse_server_free_memory(struct cuse_server *pcs, uint3 { struct cuse_memory *mem; - cuse_lock(); + cuse_server_lock(pcs); TAILQ_FOREACH(mem, &pcs->hmem, entry) { if (mem->alloc_nr == alloc_nr) break; } if (mem == NULL) { - cuse_unlock(); + cuse_server_unlock(pcs); return (EINVAL); } TAILQ_REMOVE(&pcs->hmem, mem, entry); - cuse_unlock(); + cuse_server_unlock(pcs); cuse_vm_memory_free(mem); @@ -488,14 +497,10 @@ cuse_client_get(struct cuse_client **ppcc) *ppcc = NULL; return (error); } - /* check if closing */ - cuse_lock(); if (CUSE_CLIENT_CLOSING(pcc) || pcc->server->is_closing) { - cuse_unlock(); *ppcc = NULL; return (EINVAL); } - cuse_unlock(); *ppcc = pcc; return (0); } @@ -580,28 +585,28 @@ static int cuse_client_receive_command_locked(struct cuse_client_command *pccmd, uint8_t *arg_ptr, uint32_t arg_len) { + struct cuse_server *pcs; int error; + pcs = pccmd->client->server; error = 0; pccmd->proc_curr = curthread->td_proc; - if (CUSE_CLIENT_CLOSING(pccmd->client) || - pccmd->client->server->is_closing) { + if (CUSE_CLIENT_CLOSING(pccmd->client) || pcs->is_closing) { error = CUSE_ERR_OTHER; goto done; } while (pccmd->command == CUSE_CMD_NONE) { if (error != 0) { - cv_wait(&pccmd->cv, &cuse_mtx); + cv_wait(&pccmd->cv, &pcs->mtx); } else { - error = cv_wait_sig(&pccmd->cv, &cuse_mtx); + error = cv_wait_sig(&pccmd->cv, &pcs->mtx); if (error != 0) cuse_client_got_signal(pccmd); } - if (CUSE_CLIENT_CLOSING(pccmd->client) || - pccmd->client->server->is_closing) { + if (CUSE_CLIENT_CLOSING(pccmd->client) || pcs->is_closing) { error = CUSE_ERR_OTHER; goto done; } @@ -618,7 +623,7 @@ done: pccmd->proc_curr = NULL; while (pccmd->proc_refs != 0) - cv_wait(&pccmd->cv, &cuse_mtx); + cv_wait(&pccmd->cv, &pcs->mtx); return (error); } @@ -637,7 +642,7 @@ cuse_server_free_dev(struct cuse_server_dev *pcsd) pcs = pcsd->server; /* prevent creation of more devices */ - cuse_lock(); + cuse_server_lock(pcs); if (pcsd->kern_dev != NULL) pcsd->kern_dev->si_drv1 = NULL; @@ -645,7 +650,7 @@ cuse_server_free_dev(struct cuse_server_dev *pcsd) if (pcc->server_dev == pcsd) cuse_client_is_closing(pcc); } - cuse_unlock(); + cuse_server_unlock(pcs); /* destroy device, if any */ if (pcsd->kern_dev != NULL) { @@ -661,43 +666,46 @@ cuse_server_unref(struct cuse_server *pcs) struct cuse_server_dev *pcsd; struct cuse_memory *mem; - cuse_lock(); - pcs->refs--; - if (pcs->refs != 0) { - cuse_unlock(); + cuse_server_lock(pcs); + if (--(pcs->refs) != 0) { + cuse_server_unlock(pcs); return; } cuse_server_is_closing(pcs); /* final client wakeup, if any */ cuse_server_wakeup_all_client_locked(pcs); + cuse_global_lock(); TAILQ_REMOVE(&cuse_server_head, pcs, entry); + cuse_global_unlock(); while ((pcsd = TAILQ_FIRST(&pcs->hdev)) != NULL) { TAILQ_REMOVE(&pcs->hdev, pcsd, entry); - cuse_unlock(); + cuse_server_unlock(pcs); cuse_server_free_dev(pcsd); - cuse_lock(); + cuse_server_lock(pcs); } cuse_free_unit_by_id_locked(pcs, -1); while ((mem = TAILQ_FIRST(&pcs->hmem)) != NULL) { TAILQ_REMOVE(&pcs->hmem, mem, entry); - cuse_unlock(); + cuse_server_unlock(pcs); cuse_vm_memory_free(mem); - cuse_lock(); + cuse_server_lock(pcs); } knlist_clear(&pcs->selinfo.si_note, 1); knlist_destroy(&pcs->selinfo.si_note); - cuse_unlock(); + cuse_server_unlock(pcs); seldrain(&pcs->selinfo); cv_destroy(&pcs->cv); + mtx_destroy(&pcs->mtx); + free(pcs, M_CUSE); } @@ -706,7 +714,7 @@ cuse_server_do_close(struct cuse_server *pcs) { int retval; - cuse_lock(); + cuse_server_lock(pcs); cuse_server_is_closing(pcs); /* final client wakeup, if any */ cuse_server_wakeup_all_client_locked(pcs); @@ -714,7 +722,7 @@ cuse_server_do_close(struct cuse_server *pcs) knlist_clear(&pcs->selinfo.si_note, 1); retval = pcs->refs; - cuse_unlock(); + cuse_server_unlock(pcs); return (retval); } @@ -760,12 +768,14 @@ cuse_server_open(struct cdev *dev, int fflags, int dev cv_init(&pcs->cv, "cuse-server-cv"); - knlist_init_mtx(&pcs->selinfo.si_note, &cuse_mtx); + mtx_init(&pcs->mtx, "cuse-server-mtx", NULL, MTX_DEF); - cuse_lock(); + knlist_init_mtx(&pcs->selinfo.si_note, &pcs->mtx); + + cuse_global_lock(); pcs->refs++; TAILQ_INSERT_TAIL(&cuse_server_head, pcs, entry); - cuse_unlock(); + cuse_global_unlock(); return (0); } @@ -794,7 +804,8 @@ cuse_server_write(struct cdev *dev, struct uio *uio, i } static int -cuse_server_ioctl_copy_locked(struct cuse_client_command *pccmd, +cuse_server_ioctl_copy_locked(struct cuse_server *pcs, + struct cuse_client_command *pccmd, struct cuse_data_chunk *pchk, int isread) { struct proc *p_proc; @@ -821,7 +832,7 @@ cuse_server_ioctl_copy_locked(struct cuse_client_comma pccmd->proc_refs++; - cuse_unlock(); + cuse_server_unlock(pcs); if (isread == 0) { error = copyin( @@ -835,7 +846,7 @@ cuse_server_ioctl_copy_locked(struct cuse_client_comma pchk->length); } - cuse_lock(); + cuse_server_lock(pcs); pccmd->proc_refs--; @@ -900,7 +911,8 @@ cuse_proc2proc_copy(struct proc *proc_s, vm_offset_t d } static int -cuse_server_data_copy_locked(struct cuse_client_command *pccmd, +cuse_server_data_copy_locked(struct cuse_server *pcs, + struct cuse_client_command *pccmd, struct cuse_data_chunk *pchk, int isread) { struct proc *p_proc; @@ -915,7 +927,7 @@ cuse_server_data_copy_locked(struct cuse_client_comman pccmd->proc_refs++; - cuse_unlock(); + cuse_server_unlock(pcs); if (isread == 0) { error = cuse_proc2proc_copy( @@ -929,7 +941,7 @@ cuse_server_data_copy_locked(struct cuse_client_comman pchk->length); } - cuse_lock(); + cuse_server_lock(pcs); pccmd->proc_refs--; @@ -1033,16 +1045,16 @@ cuse_server_ioctl(struct cdev *dev, unsigned long cmd, case CUSE_IOCTL_GET_COMMAND: pcmd = (void *)data; - cuse_lock(); + cuse_server_lock(pcs); while ((pccmd = TAILQ_FIRST(&pcs->head)) == NULL) { - error = cv_wait_sig(&pcs->cv, &cuse_mtx); + error = cv_wait_sig(&pcs->cv, &pcs->mtx); if (pcs->is_closing) error = ENXIO; if (error) { - cuse_unlock(); + cuse_server_unlock(pcs); return (error); } } @@ -1054,13 +1066,13 @@ cuse_server_ioctl(struct cdev *dev, unsigned long cmd, *pcmd = pccmd->sub; - cuse_unlock(); + cuse_server_unlock(pcs); break; case CUSE_IOCTL_SYNC_COMMAND: - cuse_lock(); + cuse_server_lock(pcs); while ((pccmd = cuse_server_find_command(pcs, curthread)) != NULL) { /* send sync command */ @@ -1071,16 +1083,16 @@ cuse_server_ioctl(struct cdev *dev, unsigned long cmd, /* signal peer, if any */ cv_signal(&pccmd->cv); } - cuse_unlock(); + cuse_server_unlock(pcs); break; case CUSE_IOCTL_ALLOC_UNIT: - cuse_lock(); + cuse_server_lock(pcs); n = cuse_alloc_unit_by_id_locked(pcs, CUSE_ID_DEFAULT(0)); - cuse_unlock(); + cuse_server_unlock(pcs); if (n < 0) error = ENOMEM; @@ -1094,9 +1106,9 @@ cuse_server_ioctl(struct cdev *dev, unsigned long cmd, n = (n & CUSE_ID_MASK); - cuse_lock(); + cuse_server_lock(pcs); n = cuse_alloc_unit_by_id_locked(pcs, n); - cuse_unlock(); + cuse_server_unlock(pcs); if (n < 0) error = ENOMEM; @@ -1110,18 +1122,18 @@ cuse_server_ioctl(struct cdev *dev, unsigned long cmd, n = CUSE_ID_DEFAULT(n); - cuse_lock(); + cuse_server_lock(pcs); error = cuse_free_unit_by_id_locked(pcs, n); - cuse_unlock(); + cuse_server_unlock(pcs); break; case CUSE_IOCTL_FREE_UNIT_BY_ID: n = *(int *)data; - cuse_lock(); + cuse_server_lock(pcs); error = cuse_free_unit_by_id_locked(pcs, n); - cuse_unlock(); + cuse_server_unlock(pcs); break; case CUSE_IOCTL_ALLOC_MEMORY: @@ -1152,7 +1164,7 @@ cuse_server_ioctl(struct cdev *dev, unsigned long cmd, case CUSE_IOCTL_GET_SIG: - cuse_lock(); + cuse_server_lock(pcs); pccmd = cuse_server_find_command(pcs, curthread); if (pccmd != NULL) { @@ -1161,7 +1173,7 @@ cuse_server_ioctl(struct cdev *dev, unsigned long cmd, } else { n = 0; } - cuse_unlock(); + cuse_server_unlock(pcs); *(int *)data = n; @@ -1169,7 +1181,7 @@ cuse_server_ioctl(struct cdev *dev, unsigned long cmd, case CUSE_IOCTL_SET_PFH: - cuse_lock(); + cuse_server_lock(pcs); pccmd = cuse_server_find_command(pcs, curthread); if (pccmd != NULL) { @@ -1180,7 +1192,7 @@ cuse_server_ioctl(struct cdev *dev, unsigned long cmd, } else { error = ENXIO; } - cuse_unlock(); + cuse_server_unlock(pcs); break; case CUSE_IOCTL_CREATE_DEV: @@ -1226,9 +1238,9 @@ cuse_server_ioctl(struct cdev *dev, unsigned long cmd, } pcsd->kern_dev->si_drv1 = pcsd; - cuse_lock(); + cuse_server_lock(pcs); TAILQ_INSERT_TAIL(&pcs->hdev, pcsd, entry); - cuse_unlock(); + cuse_server_unlock(pcs); break; @@ -1238,7 +1250,7 @@ cuse_server_ioctl(struct cdev *dev, unsigned long cmd, if (error) break; - cuse_lock(); + cuse_server_lock(pcs); error = EINVAL; @@ -1246,9 +1258,9 @@ cuse_server_ioctl(struct cdev *dev, unsigned long cmd, while (pcsd != NULL) { if (pcsd->user_dev == *(struct cuse_dev **)data) { TAILQ_REMOVE(&pcs->hdev, pcsd, entry); - cuse_unlock(); + cuse_server_unlock(pcs); cuse_server_free_dev(pcsd); - cuse_lock(); + cuse_server_lock(pcs); error = 0; pcsd = TAILQ_FIRST(&pcs->hdev); } else { @@ -1256,13 +1268,13 @@ cuse_server_ioctl(struct cdev *dev, unsigned long cmd, } } - cuse_unlock(); + cuse_server_unlock(pcs); break; case CUSE_IOCTL_WRITE_DATA: case CUSE_IOCTL_READ_DATA: - cuse_lock(); + cuse_server_lock(pcs); pchk = (struct cuse_data_chunk *)data; pccmd = cuse_server_find_command(pcs, curthread); @@ -1272,23 +1284,23 @@ cuse_server_ioctl(struct cdev *dev, unsigned long cmd, } else if (pchk->peer_ptr < CUSE_BUF_MIN_PTR) { error = EFAULT; /* NULL pointer */ } else if (pchk->peer_ptr < CUSE_BUF_MAX_PTR) { - error = cuse_server_ioctl_copy_locked(pccmd, + error = cuse_server_ioctl_copy_locked(pcs, pccmd, pchk, cmd == CUSE_IOCTL_READ_DATA); } else { - error = cuse_server_data_copy_locked(pccmd, + error = cuse_server_data_copy_locked(pcs, pccmd, pchk, cmd == CUSE_IOCTL_READ_DATA); } - cuse_unlock(); + cuse_server_unlock(pcs); break; case CUSE_IOCTL_SELWAKEUP: - cuse_lock(); + cuse_server_lock(pcs); /* * We don't know which direction caused the event. * Wakeup both! */ cuse_server_wakeup_all_client_locked(pcs); - cuse_unlock(); + cuse_server_unlock(pcs); break; default: @@ -1319,31 +1331,31 @@ cuse_server_mmap_single(struct cdev *dev, vm_ooffset_t if (error != 0) return (error); - cuse_lock(); + cuse_server_lock(pcs); /* lookup memory structure */ TAILQ_FOREACH(mem, &pcs->hmem, entry) { if (mem->alloc_nr == alloc_nr) break; } if (mem == NULL) { - cuse_unlock(); + cuse_server_unlock(pcs); return (ENOMEM); } /* verify page offset */ page_nr %= CUSE_ALLOC_PAGES_MAX; if (page_nr >= mem->page_count) { - cuse_unlock(); + cuse_server_unlock(pcs); return (ENXIO); } /* verify mmap size */ if ((size % PAGE_SIZE) != 0 || (size < PAGE_SIZE) || (size > ((mem->page_count - page_nr) * PAGE_SIZE))) { - cuse_unlock(); + cuse_server_unlock(pcs); return (EINVAL); } vm_object_reference(mem->object); *object = mem->object; - cuse_unlock(); + cuse_server_unlock(pcs); /* set new VM object offset to use */ *offset = page_nr * PAGE_SIZE; @@ -1363,10 +1375,12 @@ cuse_client_free(void *arg) struct cuse_server *pcs; int n; - cuse_lock(); + pcs = pcc->server; + + cuse_server_lock(pcs); cuse_client_is_closing(pcc); - TAILQ_REMOVE(&pcc->server->hcli, pcc, entry); - cuse_unlock(); + TAILQ_REMOVE(&pcs->hcli, pcc, entry); + cuse_server_unlock(pcs); for (n = 0; n != CUSE_CMD_MAX; n++) { @@ -1376,8 +1390,6 @@ cuse_client_free(void *arg) cv_destroy(&pccmd->cv); } - pcs = pcc->server; - free(pcc, M_CUSE); /* drop reference on server */ @@ -1395,11 +1407,12 @@ cuse_client_open(struct cdev *dev, int fflags, int dev int error; int n; - cuse_lock(); pcsd = dev->si_drv1; if (pcsd != NULL) { pcs = pcsd->server; pcd = pcsd->user_dev; + + cuse_server_lock(pcs); /* * Check that the refcount didn't wrap and that the * same process is not both client and server. This @@ -1410,17 +1423,14 @@ cuse_client_open(struct cdev *dev, int fflags, int dev if (pcs->refs < 0 || pcs->pid == curproc->p_pid) { /* overflow or wrong PID */ pcs->refs--; - pcsd = NULL; + cuse_server_unlock(pcs); + return (EINVAL); } + cuse_server_unlock(pcs); } else { - pcs = NULL; - pcd = NULL; + return (EINVAL); } - cuse_unlock(); - if (pcsd == NULL) - return (EINVAL); - pcc = malloc(sizeof(*pcc), M_CUSE, M_WAITOK | M_ZERO); if (pcc == NULL) { /* drop reference on server */ @@ -1450,7 +1460,7 @@ cuse_client_open(struct cdev *dev, int fflags, int dev cv_init(&pccmd->cv, "cuse-client-cv"); } - cuse_lock(); + cuse_server_lock(pcs); /* cuse_client_free() assumes that the client is listed somewhere! */ /* always enqueue */ @@ -1463,7 +1473,7 @@ cuse_client_open(struct cdev *dev, int fflags, int dev } else { error = 0; } - cuse_unlock(); + cuse_server_unlock(pcs); if (error) { devfs_clear_cdevpriv(); /* XXX bugfix */ @@ -1473,11 +1483,11 @@ cuse_client_open(struct cdev *dev, int fflags, int dev cuse_cmd_lock(pccmd); - cuse_lock(); + cuse_server_lock(pcs); cuse_client_send_command_locked(pccmd, 0, 0, pcc->fflags, 0); error = cuse_client_receive_command_locked(pccmd, 0, 0); - cuse_unlock(); + cuse_server_unlock(pcs); if (error < 0) { error = cuse_convert_error(error); @@ -1498,6 +1508,7 @@ cuse_client_close(struct cdev *dev, int fflag, int dev { struct cuse_client_command *pccmd; struct cuse_client *pcc; + struct cuse_server *pcs; int error; error = cuse_client_get(&pcc); @@ -1505,20 +1516,18 @@ cuse_client_close(struct cdev *dev, int fflag, int dev return (0); pccmd = &pcc->cmds[CUSE_CMD_CLOSE]; + pcs = pcc->server; cuse_cmd_lock(pccmd); - cuse_lock(); + cuse_server_lock(pcs); cuse_client_send_command_locked(pccmd, 0, 0, pcc->fflags, 0); error = cuse_client_receive_command_locked(pccmd, 0, 0); - cuse_unlock(); - cuse_cmd_unlock(pccmd); - cuse_lock(); cuse_client_is_closing(pcc); - cuse_unlock(); + cuse_server_unlock(pcs); return (0); } @@ -1526,21 +1535,22 @@ cuse_client_close(struct cdev *dev, int fflag, int dev static void cuse_client_kqfilter_poll(struct cdev *dev, struct cuse_client *pcc) { + struct cuse_server *pcs = pcc->server; int temp; - cuse_lock(); + cuse_server_lock(pcs); temp = (pcc->cflags & (CUSE_CLI_KNOTE_HAS_READ | CUSE_CLI_KNOTE_HAS_WRITE)); pcc->cflags &= ~(CUSE_CLI_KNOTE_NEED_READ | CUSE_CLI_KNOTE_NEED_WRITE); - cuse_unlock(); + cuse_server_unlock(pcs); if (temp != 0) { /* get the latest polling state from the server */ temp = cuse_client_poll(dev, POLLIN | POLLOUT, NULL); if (temp & (POLLIN | POLLOUT)) { - cuse_lock(); + cuse_server_lock(pcs); if (temp & POLLIN) pcc->cflags |= CUSE_CLI_KNOTE_NEED_READ; if (temp & POLLOUT) @@ -1548,7 +1558,7 @@ cuse_client_kqfilter_poll(struct cdev *dev, struct cus /* make sure the "knote" gets woken up */ cuse_server_wakeup_locked(pcc->server); - cuse_unlock(); + cuse_server_unlock(pcs); } } } @@ -1558,6 +1568,7 @@ cuse_client_read(struct cdev *dev, struct uio *uio, in { struct cuse_client_command *pccmd; struct cuse_client *pcc; + struct cuse_server *pcs; int error; int len; @@ -1566,6 +1577,7 @@ cuse_client_read(struct cdev *dev, struct uio *uio, in return (error); pccmd = &pcc->cmds[CUSE_CMD_READ]; + pcs = pcc->server; if (uio->uio_segflg != UIO_USERSPACE) { return (EINVAL); @@ -1582,13 +1594,13 @@ cuse_client_read(struct cdev *dev, struct uio *uio, in } len = uio->uio_iov->iov_len; - cuse_lock(); + cuse_server_lock(pcs); cuse_client_send_command_locked(pccmd, (uintptr_t)uio->uio_iov->iov_base, (unsigned long)(unsigned int)len, pcc->fflags, ioflag); error = cuse_client_receive_command_locked(pccmd, 0, 0); - cuse_unlock(); + cuse_server_unlock(pcs); if (error < 0) { error = cuse_convert_error(error); @@ -1617,6 +1629,7 @@ cuse_client_write(struct cdev *dev, struct uio *uio, i { struct cuse_client_command *pccmd; struct cuse_client *pcc; + struct cuse_server *pcs; int error; int len; @@ -1625,6 +1638,7 @@ cuse_client_write(struct cdev *dev, struct uio *uio, i return (error); pccmd = &pcc->cmds[CUSE_CMD_WRITE]; + pcs = pcc->server; if (uio->uio_segflg != UIO_USERSPACE) { return (EINVAL); @@ -1641,13 +1655,13 @@ cuse_client_write(struct cdev *dev, struct uio *uio, i } len = uio->uio_iov->iov_len; - cuse_lock(); + cuse_server_lock(pcs); cuse_client_send_command_locked(pccmd, (uintptr_t)uio->uio_iov->iov_base, (unsigned long)(unsigned int)len, pcc->fflags, ioflag); error = cuse_client_receive_command_locked(pccmd, 0, 0); - cuse_unlock(); + cuse_server_unlock(pcs); if (error < 0) { error = cuse_convert_error(error); @@ -1677,6 +1691,7 @@ cuse_client_ioctl(struct cdev *dev, unsigned long cmd, { struct cuse_client_command *pccmd; struct cuse_client *pcc; + struct cuse_server *pcs; int error; int len; @@ -1689,6 +1704,7 @@ cuse_client_ioctl(struct cdev *dev, unsigned long cmd, return (ENOMEM); pccmd = &pcc->cmds[CUSE_CMD_IOCTL]; + pcs = pcc->server; cuse_cmd_lock(pccmd); @@ -1701,14 +1717,14 @@ cuse_client_ioctl(struct cdev *dev, unsigned long cmd, * is forwarded to the driver. */ - cuse_lock(); + cuse_server_lock(pcs); cuse_client_send_command_locked(pccmd, (len == 0) ? *(long *)data : CUSE_BUF_MIN_PTR, (unsigned long)cmd, pcc->fflags, (fflag & O_NONBLOCK) ? IO_NDELAY : 0); error = cuse_client_receive_command_locked(pccmd, data, len); - cuse_unlock(); + cuse_server_unlock(pcs); if (error < 0) { error = cuse_convert_error(error); @@ -1732,6 +1748,7 @@ cuse_client_poll(struct cdev *dev, int events, struct { struct cuse_client_command *pccmd; struct cuse_client *pcc; + struct cuse_server *pcs; unsigned long temp; int error; int revents; @@ -1741,6 +1758,7 @@ cuse_client_poll(struct cdev *dev, int events, struct goto pollnval; temp = 0; + pcs = pcc->server; if (events & (POLLPRI | POLLIN | POLLRDNORM)) temp |= CUSE_POLL_READ; @@ -1757,14 +1775,14 @@ cuse_client_poll(struct cdev *dev, int events, struct /* Need to selrecord() first to not loose any events. */ if (temp != 0 && td != NULL) - selrecord(td, &pcc->server->selinfo); + selrecord(td, &pcs->selinfo); - cuse_lock(); + cuse_server_lock(pcs); cuse_client_send_command_locked(pccmd, 0, temp, pcc->fflags, IO_NDELAY); error = cuse_client_receive_command_locked(pccmd, 0, 0); - cuse_unlock(); + cuse_server_unlock(pcs); cuse_cmd_unlock(pccmd); @@ -1795,37 +1813,40 @@ cuse_client_mmap_single(struct cdev *dev, vm_ooffset_t uint32_t alloc_nr = page_nr / CUSE_ALLOC_PAGES_MAX; struct cuse_memory *mem; struct cuse_client *pcc; + struct cuse_server *pcs; int error; error = cuse_client_get(&pcc); if (error != 0) return (error); - cuse_lock(); + pcs = pcc->server; + + cuse_server_lock(pcs); /* lookup memory structure */ - TAILQ_FOREACH(mem, &pcc->server->hmem, entry) { + TAILQ_FOREACH(mem, &pcs->hmem, entry) { if (mem->alloc_nr == alloc_nr) break; } if (mem == NULL) { - cuse_unlock(); + cuse_server_unlock(pcs); return (ENOMEM); } /* verify page offset */ page_nr %= CUSE_ALLOC_PAGES_MAX; if (page_nr >= mem->page_count) { - cuse_unlock(); + cuse_server_unlock(pcs); return (ENXIO); } /* verify mmap size */ if ((size % PAGE_SIZE) != 0 || (size < PAGE_SIZE) || (size > ((mem->page_count - page_nr) * PAGE_SIZE))) { - cuse_unlock(); + cuse_server_unlock(pcs); return (EINVAL); } vm_object_reference(mem->object); *object = mem->object; - cuse_unlock(); + cuse_server_unlock(pcs); /* set new VM object offset to use */ *offset = page_nr * PAGE_SIZE; @@ -1838,22 +1859,28 @@ static void cuse_client_kqfilter_read_detach(struct knote *kn) { struct cuse_client *pcc; + struct cuse_server *pcs; - cuse_lock(); pcc = kn->kn_hook; - knlist_remove(&pcc->server->selinfo.si_note, kn, 1); - cuse_unlock(); + pcs = pcc->server; + + cuse_server_lock(pcs); + knlist_remove(&pcs->selinfo.si_note, kn, 1); + cuse_server_unlock(pcs); } static void cuse_client_kqfilter_write_detach(struct knote *kn) { struct cuse_client *pcc; + struct cuse_server *pcs; - cuse_lock(); pcc = kn->kn_hook; - knlist_remove(&pcc->server->selinfo.si_note, kn, 1); - cuse_unlock(); + pcs = pcc->server; + + cuse_server_lock(pcs); + knlist_remove(&pcs->selinfo.si_note, kn, 1); + cuse_server_unlock(pcs); } static int @@ -1861,9 +1888,10 @@ cuse_client_kqfilter_read_event(struct knote *kn, long { struct cuse_client *pcc; - mtx_assert(&cuse_mtx, MA_OWNED); - *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Mon Apr 6 07:16:35 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3615D2A54F8; Mon, 6 Apr 2020 07:16:35 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48whfq0X6Zz4cJd; Mon, 6 Apr 2020 07:16:35 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 08E1824265; Mon, 6 Apr 2020 07:16:35 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0367GYZU020202; Mon, 6 Apr 2020 07:16:34 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0367GVPK020189; Mon, 6 Apr 2020 07:16:31 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202004060716.0367GVPK020189@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Apr 2020 07:16:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r359652 - in stable/11/sys: dev/acpica fs/cuse i386/bios kern net X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/11/sys: dev/acpica fs/cuse i386/bios kern net X-SVN-Commit-Revision: 359652 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 07:16:35 -0000 Author: hselasky Date: Mon Apr 6 07:16:31 2020 New Revision: 359652 URL: https://svnweb.freebsd.org/changeset/base/359652 Log: MFC r333806: Use NULL for SYSINIT's last arg, which is a pointer type Sponsored by: The FreeBSD Foundation Modified: stable/11/sys/dev/acpica/acpi.c stable/11/sys/fs/cuse/cuse.c stable/11/sys/i386/bios/apm.c stable/11/sys/kern/imgact_binmisc.c stable/11/sys/kern/kern_linker.c stable/11/sys/kern/kern_module.c stable/11/sys/kern/kern_synch.c stable/11/sys/kern/kern_sysctl.c stable/11/sys/kern/link_elf.c stable/11/sys/kern/link_elf_obj.c stable/11/sys/kern/posix4_mib.c stable/11/sys/kern/subr_pcpu.c stable/11/sys/net/route.c stable/11/sys/net/vnet.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/acpica/acpi.c ============================================================================== --- stable/11/sys/dev/acpica/acpi.c Mon Apr 6 07:09:04 2020 (r359651) +++ stable/11/sys/dev/acpica/acpi.c Mon Apr 6 07:16:31 2020 (r359652) @@ -4158,4 +4158,4 @@ acpi_pm_register(void *arg) power_pm_register(POWER_PM_TYPE_ACPI, acpi_pm_func, NULL); } -SYSINIT(power, SI_SUB_KLD, SI_ORDER_ANY, acpi_pm_register, 0); +SYSINIT(power, SI_SUB_KLD, SI_ORDER_ANY, acpi_pm_register, NULL); Modified: stable/11/sys/fs/cuse/cuse.c ============================================================================== --- stable/11/sys/fs/cuse/cuse.c Mon Apr 6 07:09:04 2020 (r359651) +++ stable/11/sys/fs/cuse/cuse.c Mon Apr 6 07:16:31 2020 (r359652) @@ -268,7 +268,7 @@ cuse_kern_init(void *arg) (CUSE_VERSION >> 16) & 0xFF, (CUSE_VERSION >> 8) & 0xFF, (CUSE_VERSION >> 0) & 0xFF); } -SYSINIT(cuse_kern_init, SI_SUB_DEVFS, SI_ORDER_ANY, cuse_kern_init, 0); +SYSINIT(cuse_kern_init, SI_SUB_DEVFS, SI_ORDER_ANY, cuse_kern_init, NULL); static void cuse_kern_uninit(void *arg) Modified: stable/11/sys/i386/bios/apm.c ============================================================================== --- stable/11/sys/i386/bios/apm.c Mon Apr 6 07:09:04 2020 (r359651) +++ stable/11/sys/i386/bios/apm.c Mon Apr 6 07:16:31 2020 (r359652) @@ -1589,4 +1589,4 @@ apm_pm_register(void *arg) power_pm_register(POWER_PM_TYPE_APM, apm_pm_func, NULL); } -SYSINIT(power, SI_SUB_KLD, SI_ORDER_ANY, apm_pm_register, 0); +SYSINIT(power, SI_SUB_KLD, SI_ORDER_ANY, apm_pm_register, NULL); Modified: stable/11/sys/kern/imgact_binmisc.c ============================================================================== --- stable/11/sys/kern/imgact_binmisc.c Mon Apr 6 07:09:04 2020 (r359651) +++ stable/11/sys/kern/imgact_binmisc.c Mon Apr 6 07:16:31 2020 (r359652) @@ -747,8 +747,10 @@ imgact_binmisc_fini(void *arg) sx_destroy(&interp_list_sx); } -SYSINIT(imgact_binmisc, SI_SUB_EXEC, SI_ORDER_MIDDLE, imgact_binmisc_init, 0); -SYSUNINIT(imgact_binmisc, SI_SUB_EXEC, SI_ORDER_MIDDLE, imgact_binmisc_fini, 0); +SYSINIT(imgact_binmisc, SI_SUB_EXEC, SI_ORDER_MIDDLE, imgact_binmisc_init, + NULL); +SYSUNINIT(imgact_binmisc, SI_SUB_EXEC, SI_ORDER_MIDDLE, imgact_binmisc_fini, + NULL); /* * Tell kern_execve.c about it, with a little help from the linker. Modified: stable/11/sys/kern/kern_linker.c ============================================================================== --- stable/11/sys/kern/kern_linker.c Mon Apr 6 07:09:04 2020 (r359651) +++ stable/11/sys/kern/kern_linker.c Mon Apr 6 07:16:31 2020 (r359652) @@ -161,7 +161,7 @@ linker_init(void *arg) TAILQ_INIT(&linker_files); } -SYSINIT(linker, SI_SUB_KLD, SI_ORDER_FIRST, linker_init, 0); +SYSINIT(linker, SI_SUB_KLD, SI_ORDER_FIRST, linker_init, NULL); static void linker_stop_class_add(void *arg) @@ -409,7 +409,7 @@ linker_init_kernel_modules(void) } SYSINIT(linker_kernel, SI_SUB_KLD, SI_ORDER_ANY, linker_init_kernel_modules, - 0); + NULL); static int linker_load_file(const char *filename, linker_file_t *result) @@ -1680,7 +1680,7 @@ fail: /* woohoo! we made it! */ } -SYSINIT(preload, SI_SUB_KLD, SI_ORDER_MIDDLE, linker_preload, 0); +SYSINIT(preload, SI_SUB_KLD, SI_ORDER_MIDDLE, linker_preload, NULL); /* * Search for a not-loaded module by name. Modified: stable/11/sys/kern/kern_module.c ============================================================================== --- stable/11/sys/kern/kern_module.c Mon Apr 6 07:09:04 2020 (r359651) +++ stable/11/sys/kern/kern_module.c Mon Apr 6 07:16:31 2020 (r359652) @@ -89,7 +89,7 @@ module_init(void *arg) SHUTDOWN_PRI_DEFAULT); } -SYSINIT(module, SI_SUB_KLD, SI_ORDER_FIRST, module_init, 0); +SYSINIT(module, SI_SUB_KLD, SI_ORDER_FIRST, module_init, NULL); static void module_shutdown(void *arg1, int arg2) Modified: stable/11/sys/kern/kern_synch.c ============================================================================== --- stable/11/sys/kern/kern_synch.c Mon Apr 6 07:09:04 2020 (r359651) +++ stable/11/sys/kern/kern_synch.c Mon Apr 6 07:16:31 2020 (r359652) @@ -107,7 +107,7 @@ sleepinit(void *unused) * vmem tries to lock the sleepq mutexes when free'ing kva, so make sure * it is available. */ -SYSINIT(sleepinit, SI_SUB_KMEM, SI_ORDER_ANY, sleepinit, 0); +SYSINIT(sleepinit, SI_SUB_KMEM, SI_ORDER_ANY, sleepinit, NULL); /* * General sleep call. Suspends the current thread until a wakeup is Modified: stable/11/sys/kern/kern_sysctl.c ============================================================================== --- stable/11/sys/kern/kern_sysctl.c Mon Apr 6 07:09:04 2020 (r359651) +++ stable/11/sys/kern/kern_sysctl.c Mon Apr 6 07:16:31 2020 (r359652) @@ -829,7 +829,7 @@ sysctl_register_all(void *arg) sysctl_register_oid(*oidp); SYSCTL_WUNLOCK(); } -SYSINIT(sysctl, SI_SUB_KMEM, SI_ORDER_FIRST, sysctl_register_all, 0); +SYSINIT(sysctl, SI_SUB_KMEM, SI_ORDER_FIRST, sysctl_register_all, NULL); /* * "Staff-functions" Modified: stable/11/sys/kern/link_elf.c ============================================================================== --- stable/11/sys/kern/link_elf.c Mon Apr 6 07:09:04 2020 (r359651) +++ stable/11/sys/kern/link_elf.c Mon Apr 6 07:16:31 2020 (r359652) @@ -464,7 +464,7 @@ link_elf_init(void* arg) #endif } -SYSINIT(link_elf, SI_SUB_KLD, SI_ORDER_THIRD, link_elf_init, 0); +SYSINIT(link_elf, SI_SUB_KLD, SI_ORDER_THIRD, link_elf_init, NULL); static int link_elf_preload_parse_symbols(elf_file_t ef) Modified: stable/11/sys/kern/link_elf_obj.c ============================================================================== --- stable/11/sys/kern/link_elf_obj.c Mon Apr 6 07:09:04 2020 (r359651) +++ stable/11/sys/kern/link_elf_obj.c Mon Apr 6 07:16:31 2020 (r359652) @@ -192,7 +192,7 @@ link_elf_init(void *arg) linker_add_class(&link_elf_class); } -SYSINIT(link_elf_obj, SI_SUB_KLD, SI_ORDER_SECOND, link_elf_init, 0); +SYSINIT(link_elf_obj, SI_SUB_KLD, SI_ORDER_SECOND, link_elf_init, NULL); static int link_elf_link_preload(linker_class_t cls, const char *filename, Modified: stable/11/sys/kern/posix4_mib.c ============================================================================== --- stable/11/sys/kern/posix4_mib.c Mon Apr 6 07:09:04 2020 (r359651) +++ stable/11/sys/kern/posix4_mib.c Mon Apr 6 07:16:31 2020 (r359652) @@ -171,5 +171,5 @@ p31b_set_standard(void *dummy) } SYSINIT(p31b_set_standard, SI_SUB_P1003_1B, SI_ORDER_ANY, p31b_set_standard, - 0); + NULL); Modified: stable/11/sys/kern/subr_pcpu.c ============================================================================== --- stable/11/sys/kern/subr_pcpu.c Mon Apr 6 07:09:04 2020 (r359651) +++ stable/11/sys/kern/subr_pcpu.c Mon Apr 6 07:16:31 2020 (r359652) @@ -125,7 +125,7 @@ dpcpu_startup(void *dummy __unused) TAILQ_INSERT_HEAD(&dpcpu_head, df, df_link); sx_init(&dpcpu_lock, "dpcpu alloc lock"); } -SYSINIT(dpcpu, SI_SUB_KLD, SI_ORDER_FIRST, dpcpu_startup, 0); +SYSINIT(dpcpu, SI_SUB_KLD, SI_ORDER_FIRST, dpcpu_startup, NULL); /* * UMA_PCPU_ZONE zones, that are available for all kernel Modified: stable/11/sys/net/route.c ============================================================================== --- stable/11/sys/net/route.c Mon Apr 6 07:09:04 2020 (r359651) +++ stable/11/sys/net/route.c Mon Apr 6 07:16:31 2020 (r359652) @@ -227,7 +227,7 @@ route_init(void) if (rt_numfibs == 0) rt_numfibs = 1; } -SYSINIT(route_init, SI_SUB_PROTO_DOMAIN, SI_ORDER_THIRD, route_init, 0); +SYSINIT(route_init, SI_SUB_PROTO_DOMAIN, SI_ORDER_THIRD, route_init, NULL); static int rtentry_zinit(void *mem, int size, int how) Modified: stable/11/sys/net/vnet.c ============================================================================== --- stable/11/sys/net/vnet.c Mon Apr 6 07:09:04 2020 (r359651) +++ stable/11/sys/net/vnet.c Mon Apr 6 07:16:31 2020 (r359652) @@ -348,7 +348,7 @@ vnet_data_startup(void *dummy __unused) TAILQ_INSERT_HEAD(&vnet_data_free_head, df, vnd_link); sx_init(&vnet_data_free_lock, "vnet_data alloc lock"); } -SYSINIT(vnet_data, SI_SUB_KLD, SI_ORDER_FIRST, vnet_data_startup, 0); +SYSINIT(vnet_data, SI_SUB_KLD, SI_ORDER_FIRST, vnet_data_startup, NULL); /* Dummy VNET_SYSINIT to make sure we always reach the final end state. */ static void From owner-svn-src-all@freebsd.org Mon Apr 6 09:23:29 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B034E2A99F3; Mon, 6 Apr 2020 09:23:29 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.17.10]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "mout.kundenserver.de", Issuer "TeleSec ServerPass Class 2 CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48wlTF0vFxz3H0y; Mon, 6 Apr 2020 09:23:28 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from [192.168.1.99] ([84.68.89.100]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1MYeAP-1jpn2b18Dr-00Vfvb; Mon, 06 Apr 2020 11:23:26 +0200 Subject: Re: svn commit: r359633 - head/share/man/man4 To: rgrimes@freebsd.org, Ian Lepore Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, gbergling@gmail.com References: <202004050048.0350mnB1080368@gndrsh.dnsmgr.net> From: Christian Brueffer Message-ID: Date: Mon, 6 Apr 2020 10:23:25 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 MIME-Version: 1.0 In-Reply-To: <202004050048.0350mnB1080368@gndrsh.dnsmgr.net> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:4DcPp+TeXPgT4CdQU/4bHy1oTJE4YhrCd7aawhD+BT2j24byq19 kRxL1Z4JIt9OdhSk76YwQJDBJ/M87pMwbl9Mkwu4LSAp7/O9kW2LzA4v/FONOAi2eYLhDDD 6FYgG9aOev6XADcxybquZ1CfUgq+EgtAd4o1opl7neZJdR04EbipbAv4WDNCcbqdFSbLgAW xzg0VhzDyvAi7aB2Y/wCA== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:vhlLZru+3Uo=:xQBMwaML2sS1lCErwmxQbY 7spLbSAHtXt1M/anfbAwvnDJUOZRYz9oh0JipCsj76oS1aBVeJMzu9xi3297edXHJN7Ve+sUh 9u+5eGKSauHpNXap3/7EszejIvUDdvr5CxCTDIJ0P1uuCMYZPihQXfnS4NR/uwcPY9yK28mux ZfxDNYwN2q+IHHvjPOtRkaJNiEEuUxq4aoai75CdWa7rAXb/mI1ykP57/oMxaALx1QmxyEH6o q7VuEUVQNMgC/ZFfjS7RBLdfSjFwq0rVZt0TuJU8jKghbdVcA3G+VhlWEtrO6kuIoKyE5DAHp hC5lHY79jlbpyZTtnrwzYSmznSYyp/r6Zp+34uJwstQjOEXtlwsXqJLD5J5nmdfsOdVepbtwI Azyw4CbsfitwVNJ8Rs0hwpewWZUAkap7OJErwnDGH0RTQTcL3tx0EqY49q8tCGFyvCYfkl6US jwjbGdQz5HLY2fvlk3snNun1o2EYILJ8LQZZh2xh/Jva5YjcQCBVpvm7FYZ07rOCc6Myb7dEH EXJSzc6esO7hMOz/h77+dBPj9P4erKNQOvrV6MNVQgRuin1Z9E0zOT3rkYwL7E3tCh8KNKJLD A+FdgIpNXVTR2j6pO/YyAUzhCHvZIIbNDhbJGtoD5CUEtzFELwOw6GDp4INrxw5rUtibUX8n8 nXyuzvAZeA4ONaJGS2FsmM4h+lu2ZFVpHW/QOCQrd47A+OUE5SVHqHBUZKNEbd1bvypDmWAqi rmhdVtiz/9nK+bYxVeT5Z3akydM07uMzpq4pNcXDaNTyHKiwLVMktDG+qq5s5o9+CbbfP9Atw qWGKe0xn5BI1s75mlAH25s4fmhzhJld6F+kcylz9USZ2sq+rULY3CECmDK4d6Bdx+X8smOq X-Rspamd-Queue-Id: 48wlTF0vFxz3H0y X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-1.84 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.91)[-0.913,0]; NEURAL_HAM_LONG(-0.93)[-0.928,0]; ASN(0.00)[asn:8560, ipnet:212.227.0.0/16, country:DE] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 09:23:29 -0000 On 2020-04-05 01:48, Rodney W. Grimes wrote: > >> On Sat, 2020-04-04 at 17:10 -0700, Rodney W. Grimes wrote: >>>> Author: brueffer >>>> Date: Sat Apr 4 21:38:00 2020 >>>> New Revision: 359633 >>>> URL: https://svnweb.freebsd.org/changeset/base/359633 >>>> >>>> Log: >>>> Add a manpage for smbios(4). >>>> >>>> Submitted by: Gordon Bergling >>> >>> There should be an AUTHORS section entry for him writting the man >>> page. >> >> Is that not optional? I've never added one to any manpage I've ever >> written, and don't especially want it to be added. > > Yes, of cource it is optional, but perhaps he was not aware that > option even existed as he probably copied the man page from some > other work which may of not had that attribution. > Gordon, please see above, would you like to be added to the AUTHORS section? Cheers, Chris From owner-svn-src-all@freebsd.org Mon Apr 6 09:41:11 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B49E12AA08A; Mon, 6 Apr 2020 09:41:11 +0000 (UTC) (envelope-from gbergling@gmail.com) Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com [IPv6:2a00:1450:4864:20::333]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48wlsg3dTyz3J9N; Mon, 6 Apr 2020 09:41:11 +0000 (UTC) (envelope-from gbergling@gmail.com) Received: by mail-wm1-x333.google.com with SMTP id t203so5424266wmt.2; Mon, 06 Apr 2020 02:41:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:message-id:mime-version:subject:date:in-reply-to:cc:to :references; bh=7nTjTnPveGhOmmkKtltn1L/xRjQJT93pkjE5XF5kezw=; b=gsHf43nzP745xzbAAlBp1HzZlWVFDnJWF04w05ZA8zNf7Kgb9gh8BLMQWDZ96ETNpP jwg4sRejRT5ZVXA7ZbEUw3m9vcBpoA10hWVufpsL7z3YMitiFWf/q4Oc802eELDLb4jZ r0AL3zrMHqDKaih2g21x/NhFbejlEmNvygRZoNjhhvyzXudogH742YZ90eWxBo6fTGgo BC5oXRptlMcas2e82VM7Ht+gji/AM4aESCDRmbBovohVtjZo1VDlI3Xa64lnmXJ61ZUP WAPqP1a1LxUhOF/SPTtVULRBGy3gBXNvbJ8LB6CsSJO21Fv7ZKXzEYWYSMzQ7N1fsGVo OuiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:mime-version:subject:date :in-reply-to:cc:to:references; bh=7nTjTnPveGhOmmkKtltn1L/xRjQJT93pkjE5XF5kezw=; b=KvRgL2zMmUj0M9YIPfefDQ8vQYQa7nrV3fIdOWjdEd7EHovw+0BSM0yQYo1UKq03Vb PZwDmRzgmyn8nc3yvzMCGY+XQT3t/9lApGymRzB4RaHD+c67DSQIyPKgYyLQxBC5m7a3 MWEN02rkcgjYZhe2pfcwIPIcNADE2gtBHDznYZ7CbZkwHv8uT10ebkZYNpXYgjGptrWT HbZyPQUhIVwiKeE2Mf3reHbo52z2Pz67otIu2a2cbR7rBah5wC0M3TFQBzfW/wQ2XTeZ fO7k56x46jYWDY7zHGyZewWG/jTRQhIMyKlQjoccg/V474cVgmM+MaRQyJAHCDKSpaaf ogdA== X-Gm-Message-State: AGi0PuY3tz3OBMxhHDmhtBv2OBK5HFlxJwtc8cgVI0sZwiKSTPRc6OOQ 0XZafw2kalguCRbS++2D6LMg6krZcCI= X-Google-Smtp-Source: APiQypIhWF5ypIoviWoLdDCrkJV4cw2M7ukfajSTq6NbI7bAp3QIVHL3siWt2bLEH89TNQPrL+tJrg== X-Received: by 2002:a1c:382:: with SMTP id 124mr20602306wmd.151.1586166068151; Mon, 06 Apr 2020 02:41:08 -0700 (PDT) Received: from [10.0.1.111] (p4FD3AF72.dip0.t-ipconnect.de. [79.211.175.114]) by smtp.gmail.com with ESMTPSA id s9sm25382054wmc.2.2020.04.06.02.41.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 06 Apr 2020 02:41:07 -0700 (PDT) From: Gordon Bergling Message-Id: Mime-Version: 1.0 (Mac OS X Mail 13.0 \(3608.60.0.2.5\)) Subject: Re: svn commit: r359633 - head/share/man/man4 Date: Mon, 6 Apr 2020 11:41:06 +0200 In-Reply-To: Cc: "Rodney W. Grimes" , Ian Lepore , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org To: Christian Brueffer References: <202004050048.0350mnB1080368@gndrsh.dnsmgr.net> X-Mailer: Apple Mail (2.3608.60.0.2.5) X-Rspamd-Queue-Id: 48wlsg3dTyz3J9N X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 09:41:11 -0000 Hi Chris, yes, why not. :) Should I create a new differential for it, or could you do it on the fly? Best regards, Gordon > Am 06.04.2020 um 11:23 schrieb Christian Brueffer : > > On 2020-04-05 01:48, Rodney W. Grimes wrote: >> >>> On Sat, 2020-04-04 at 17:10 -0700, Rodney W. Grimes wrote: >>>>> Author: brueffer >>>>> Date: Sat Apr 4 21:38:00 2020 >>>>> New Revision: 359633 >>>>> URL: https://svnweb.freebsd.org/changeset/base/359633 >>>>> >>>>> Log: >>>>> Add a manpage for smbios(4). >>>>> >>>>> Submitted by: Gordon Bergling >>>> >>>> There should be an AUTHORS section entry for him writting the man >>>> page. >>> >>> Is that not optional? I've never added one to any manpage I've ever >>> written, and don't especially want it to be added. >> >> Yes, of cource it is optional, but perhaps he was not aware that >> option even existed as he probably copied the man page from some >> other work which may of not had that attribution. >> > > Gordon, > > please see above, would you like to be added to the AUTHORS section? > > Cheers, > > Chris From owner-svn-src-all@freebsd.org Mon Apr 6 09:41:23 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C73592AA114; Mon, 6 Apr 2020 09:41:23 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48wlsv4vp3z3JGy; Mon, 6 Apr 2020 09:41:23 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9E79A25D96; Mon, 6 Apr 2020 09:41:23 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0369fNEL010632; Mon, 6 Apr 2020 09:41:23 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0369fNle010630; Mon, 6 Apr 2020 09:41:23 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202004060941.0369fNle010630@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Apr 2020 09:41:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359653 - head/sys/dev/mlx5/mlx5_en X-SVN-Group: head X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: head/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 359653 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 09:41:23 -0000 Author: hselasky Date: Mon Apr 6 09:41:22 2020 New Revision: 359653 URL: https://svnweb.freebsd.org/changeset/base/359653 Log: Count number of times transmit ring is out of buffers in mlx5en(4). Differential Revision: https://reviews.freebsd.org/D24273 MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/dev/mlx5/mlx5_en/en.h head/sys/dev/mlx5/mlx5_en/mlx5_en_tx.c Modified: head/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- head/sys/dev/mlx5/mlx5_en/en.h Mon Apr 6 07:16:31 2020 (r359652) +++ head/sys/dev/mlx5/mlx5_en/en.h Mon Apr 6 09:41:22 2020 (r359653) @@ -627,6 +627,7 @@ struct mlx5e_rq_stats { m(+1, u64, csum_offload_none, "csum_offload_none", "Transmitted packets") \ m(+1, u64, defragged, "defragged", "Transmitted packets") \ m(+1, u64, dropped, "dropped", "Transmitted packets") \ + m(+1, u64, enobuf, "enobuf", "Transmitted packets") \ m(+1, u64, nop, "nop", "Transmitted packets") #define MLX5E_SQ_STATS_NUM (0 MLX5E_SQ_STATS(MLX5E_STATS_COUNT)) Modified: head/sys/dev/mlx5/mlx5_en/mlx5_en_tx.c ============================================================================== --- head/sys/dev/mlx5/mlx5_en/mlx5_en_tx.c Mon Apr 6 07:16:31 2020 (r359652) +++ head/sys/dev/mlx5/mlx5_en/mlx5_en_tx.c Mon Apr 6 09:41:22 2020 (r359653) @@ -401,6 +401,7 @@ mlx5e_sq_dump_xmit(struct mlx5e_sq *sq, struct mlx5e_x /* return ENOBUFS if the queue is full */ if (unlikely(!mlx5e_sq_has_room_for(sq, xsegs))) { + sq->stats.enobuf++; bus_dmamap_unload(sq->dma_tag, sq->mbuf[pi].dma_map); m_freem(mb); *mbp = NULL; /* safety clear */ @@ -493,8 +494,10 @@ mlx5e_sq_xmit(struct mlx5e_sq *sq, struct mbuf **mbp) top: #endif /* Return ENOBUFS if the queue is full */ - if (unlikely(!mlx5e_sq_has_room_for(sq, 2 * MLX5_SEND_WQE_MAX_WQEBBS))) + if (unlikely(!mlx5e_sq_has_room_for(sq, 2 * MLX5_SEND_WQE_MAX_WQEBBS))) { + sq->stats.enobuf++; return (ENOBUFS); + } /* Align SQ edge with NOPs to avoid WQE wrap around */ pi = ((~sq->pc) & sq->wq.sz_m1); @@ -502,8 +505,10 @@ top: /* Send one multi NOP message instead of many */ mlx5e_send_nop(sq, (pi + 1) * MLX5_SEND_WQEBB_NUM_DS); pi = ((~sq->pc) & sq->wq.sz_m1); - if (pi < (MLX5_SEND_WQE_MAX_WQEBBS - 1)) + if (pi < (MLX5_SEND_WQE_MAX_WQEBBS - 1)) { + sq->stats.enobuf++; return (ENOMEM); + } } #ifdef KERN_TLS From owner-svn-src-all@freebsd.org Mon Apr 6 09:45:49 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A24512AAA1D; Mon, 6 Apr 2020 09:45:49 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48wlz13rYxz3Jjb; Mon, 6 Apr 2020 09:45:49 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7F2CB25F56; Mon, 6 Apr 2020 09:45:49 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0369jn9b011930; Mon, 6 Apr 2020 09:45:49 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0369jnas011929; Mon, 6 Apr 2020 09:45:49 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202004060945.0369jnas011929@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Apr 2020 09:45:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359654 - head/sys/dev/mlx5/mlx5_en X-SVN-Group: head X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: head/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 359654 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 09:45:49 -0000 Author: hselasky Date: Mon Apr 6 09:45:49 2020 New Revision: 359654 URL: https://svnweb.freebsd.org/changeset/base/359654 Log: Ensure a minimum inline size of 16 bytes in mlx5en(4). This includes 14 bytes of ethernet header and 2 bytes of VLAN header. This allows for making assumptions about the inline size limit in the fast transmit path later on. Use a signed integer variable to catch underflow. MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Modified: head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Apr 6 09:41:22 2020 (r359653) +++ head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Apr 6 09:45:49 2020 (r359654) @@ -3523,15 +3523,19 @@ mlx5e_check_required_hca_cap(struct mlx5_core_dev *mde static u16 mlx5e_get_max_inline_cap(struct mlx5_core_dev *mdev) { - uint32_t bf_buf_size = (1U << MLX5_CAP_GEN(mdev, log_bf_reg_size)) / 2U; + const int min_size = ETHER_VLAN_ENCAP_LEN + ETHER_HDR_LEN; + const int max_size = MLX5E_MAX_TX_INLINE; + const int bf_buf_size = + ((1U << MLX5_CAP_GEN(mdev, log_bf_reg_size)) / 2U) - + (sizeof(struct mlx5e_tx_wqe) - 2); - bf_buf_size -= sizeof(struct mlx5e_tx_wqe) - 2; - - /* verify against driver hardware limit */ - if (bf_buf_size > MLX5E_MAX_TX_INLINE) - bf_buf_size = MLX5E_MAX_TX_INLINE; - - return (bf_buf_size); + /* verify against driver limits */ + if (bf_buf_size > max_size) + return (max_size); + else if (bf_buf_size < min_size) + return (min_size); + else + return (bf_buf_size); } static int From owner-svn-src-all@freebsd.org Mon Apr 6 09:50:21 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8B0072AAB14; Mon, 6 Apr 2020 09:50:21 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48wm4F2y7Yz3Jt6; Mon, 6 Apr 2020 09:50:21 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 608E225F5C; Mon, 6 Apr 2020 09:50:21 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0369oLDO012223; Mon, 6 Apr 2020 09:50:21 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0369oLnQ012222; Mon, 6 Apr 2020 09:50:21 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202004060950.0369oLnQ012222@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Apr 2020 09:50:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359655 - head/sys/dev/mlx5/mlx5_en X-SVN-Group: head X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: head/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 359655 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 09:50:21 -0000 Author: hselasky Date: Mon Apr 6 09:50:20 2020 New Revision: 359655 URL: https://svnweb.freebsd.org/changeset/base/359655 Log: Don't drop packets having too many TCP option headers in mlx5en(4). When using SACK it can happen there are multiple option headers. Don't drop these packets, but instead limit the amount of inlining to the maximum supported. MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/dev/mlx5/mlx5_en/mlx5_en_tx.c Modified: head/sys/dev/mlx5/mlx5_en/mlx5_en_tx.c ============================================================================== --- head/sys/dev/mlx5/mlx5_en/mlx5_en_tx.c Mon Apr 6 09:45:49 2020 (r359654) +++ head/sys/dev/mlx5/mlx5_en/mlx5_en_tx.c Mon Apr 6 09:50:20 2020 (r359655) @@ -613,18 +613,18 @@ top: if (likely(args.ihs == 0)) { /* nothing to inline */ - } else if (unlikely(args.ihs > sq->max_inline)) { - /* inline header size is too big */ - err = EINVAL; - goto tx_drop; } else if ((mb->m_flags & M_VLANTAG) != 0) { struct ether_vlan_header *eh = (struct ether_vlan_header *) wqe->eth.inline_hdr_start; /* Range checks */ - if (unlikely(args.ihs > (MLX5E_MAX_TX_INLINE - ETHER_VLAN_ENCAP_LEN))) - args.ihs = (MLX5E_MAX_TX_INLINE - ETHER_VLAN_ENCAP_LEN); - else if (unlikely(args.ihs < ETHER_HDR_LEN)) { + if (unlikely(args.ihs > (sq->max_inline - ETHER_VLAN_ENCAP_LEN))) { + if (mb->m_pkthdr.csum_flags & CSUM_TSO) { + err = EINVAL; + goto tx_drop; + } + args.ihs = (sq->max_inline - ETHER_VLAN_ENCAP_LEN); + } else if (unlikely(args.ihs < ETHER_HDR_LEN)) { err = EINVAL; goto tx_drop; } @@ -641,6 +641,14 @@ top: args.ihs += ETHER_VLAN_ENCAP_LEN; wqe->eth.inline_hdr_sz = cpu_to_be16(args.ihs); } else { + /* check if inline header size is too big */ + if (unlikely(args.ihs > sq->max_inline)) { + if (unlikely(mb->m_pkthdr.csum_flags & CSUM_TSO)) { + err = EINVAL; + goto tx_drop; + } + args.ihs = sq->max_inline; + } m_copydata(mb, 0, args.ihs, wqe->eth.inline_hdr_start); m_adj(mb, args.ihs); wqe->eth.inline_hdr_sz = cpu_to_be16(args.ihs); From owner-svn-src-all@freebsd.org Mon Apr 6 09:59:21 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EDDD72AAEB6; Mon, 6 Apr 2020 09:59:21 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48wmGd5qtbz3KWC; Mon, 6 Apr 2020 09:59:21 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C313426135; Mon, 6 Apr 2020 09:59:21 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0369xLYw018559; Mon, 6 Apr 2020 09:59:21 GMT (envelope-from brueffer@FreeBSD.org) Received: (from brueffer@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0369xL8p018558; Mon, 6 Apr 2020 09:59:21 GMT (envelope-from brueffer@FreeBSD.org) Message-Id: <202004060959.0369xL8p018558@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brueffer set sender to brueffer@FreeBSD.org using -f From: Christian Brueffer Date: Mon, 6 Apr 2020 09:59:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359656 - head/share/man/man4 X-SVN-Group: head X-SVN-Commit-Author: brueffer X-SVN-Commit-Paths: head/share/man/man4 X-SVN-Commit-Revision: 359656 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 09:59:22 -0000 Author: brueffer Date: Mon Apr 6 09:59:21 2020 New Revision: 359656 URL: https://svnweb.freebsd.org/changeset/base/359656 Log: Add Gordon Bergling to the authors section; remove trailing whitespace. Suggested by: rgrimes Approved by: Gordon Bergling X-MFC-with: r359633 Modified: head/share/man/man4/smbios.4 Modified: head/share/man/man4/smbios.4 ============================================================================== --- head/share/man/man4/smbios.4 Mon Apr 6 09:50:20 2020 (r359655) +++ head/share/man/man4/smbios.4 Mon Apr 6 09:59:21 2020 (r359656) @@ -1,4 +1,4 @@ -.\" Copyright (c) 2020 Gordon Bergling +.\" Copyright (c) 2020 Gordon Bergling .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions @@ -23,11 +23,11 @@ .\" .\" $FreeBSD$ .\" -.Dd April 4, 2020 +.Dd April 6, 2020 .Dt SMBIOS 4 .Os .Sh NAME -.Nm smbios +.Nm smbios .Nd "System Management BIOS" .Sh SYNOPSIS To compile this driver into the kernel, @@ -61,3 +61,5 @@ The .Nm device driver was written by .An Matthew N. Dodd Aq Mt winter@jurai.net . +This manual page was written by +.An Gordon Bergling Aq Mt gbergling@gmail.com . From owner-svn-src-all@freebsd.org Mon Apr 6 13:58:14 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 539BD2B0CED; Mon, 6 Apr 2020 13:58:14 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48wsZG1KF0z45r3; Mon, 6 Apr 2020 13:58:14 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2860328FDF; Mon, 6 Apr 2020 13:58:14 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 036DwE5R062985; Mon, 6 Apr 2020 13:58:14 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 036DwEYg062984; Mon, 6 Apr 2020 13:58:14 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <202004061358.036DwEYg062984@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Mon, 6 Apr 2020 13:58:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359657 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: tuexen X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 359657 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 13:58:14 -0000 Author: tuexen Date: Mon Apr 6 13:58:13 2020 New Revision: 359657 URL: https://svnweb.freebsd.org/changeset/base/359657 Log: Do more argument validation under INVARIANTS when starting/stopping an SCTP timer. MFC after: 1 week Modified: head/sys/netinet/sctputil.c Modified: head/sys/netinet/sctputil.c ============================================================================== --- head/sys/netinet/sctputil.c Mon Apr 6 09:59:21 2020 (r359656) +++ head/sys/netinet/sctputil.c Mon Apr 6 13:58:13 2020 (r359657) @@ -1730,9 +1730,14 @@ sctp_timeout_handler(void *t) #endif /* sanity checks... */ - KASSERT(tmr->self == tmr, ("tmr->self corrupted")); - KASSERT(SCTP_IS_TIMER_TYPE_VALID(tmr->type), ("Invalid timer type %d", tmr->type)); + KASSERT(tmr->self == tmr, + ("sctp_timeout_handler: tmr->self corrupted")); + KASSERT(SCTP_IS_TIMER_TYPE_VALID(tmr->type), + ("sctp_timeout_handler: invalid timer type %d", tmr->type)); type = tmr->type; + KASSERT(stcb == NULL || stcb->sctp_ep == inp, + ("sctp_timeout_handler of type %d: inp = %p, stcb->sctp_ep %p", + type, stcb, stcb->sctp_ep)); if (inp) { SCTP_INP_INCR_REF(inp); } @@ -2147,6 +2152,9 @@ sctp_timer_start(int t_type, struct sctp_inpcb *inp, s uint32_t to_ticks; uint32_t rndval, jitter; + KASSERT(stcb == NULL || stcb->sctp_ep == inp, + ("sctp_timer_start of type %d: inp = %p, stcb->sctp_ep %p", + t_type, stcb, stcb->sctp_ep)); tmr = NULL; to_ticks = 0; if (stcb != NULL) { @@ -2581,6 +2589,9 @@ sctp_timer_stop(int t_type, struct sctp_inpcb *inp, st { struct sctp_timer *tmr; + KASSERT(stcb == NULL || stcb->sctp_ep == inp, + ("sctp_timer_stop of type %d: inp = %p, stcb->sctp_ep %p", + t_type, stcb, stcb->sctp_ep)); if (stcb != NULL) { SCTP_TCB_LOCK_ASSERT(stcb); } else if (inp != NULL) { From owner-svn-src-all@freebsd.org Mon Apr 6 14:56:20 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1472F2B25E9; Mon, 6 Apr 2020 14:56:20 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48wtsH6dYfz49cw; Mon, 6 Apr 2020 14:56:19 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DF04029B79; Mon, 6 Apr 2020 14:56:19 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 036EuJvJ099295; Mon, 6 Apr 2020 14:56:19 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 036EuJSS099294; Mon, 6 Apr 2020 14:56:19 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202004061456.036EuJSS099294@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 6 Apr 2020 14:56:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359658 - stable/12/usr.bin/top X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12/usr.bin/top X-SVN-Commit-Revision: 359658 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 14:56:20 -0000 Author: markj Date: Mon Apr 6 14:56:19 2020 New Revision: 359658 URL: https://svnweb.freebsd.org/changeset/base/359658 Log: MFC r359594, r359597: Fix the description of the -m flag in top.1. PR: 244153 Modified: stable/12/usr.bin/top/top.1 Directory Properties: stable/12/ (props changed) Modified: stable/12/usr.bin/top/top.1 ============================================================================== --- stable/12/usr.bin/top/top.1 Mon Apr 6 13:58:13 2020 (r359657) +++ stable/12/usr.bin/top/top.1 Mon Apr 6 14:56:19 2020 (r359658) @@ -100,7 +100,7 @@ Toggle displaying thread ID (tid) instead of process i Do not display the .Nm process itself. -.It Fl display +.It Fl m Ar display Display either 'cpu' or 'io' statistics. Default is 'cpu'. .It Fl n From owner-svn-src-all@freebsd.org Mon Apr 6 14:58:25 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 287AC2B26B6; Mon, 6 Apr 2020 14:58:25 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48wtvj0F4Gz49qx; Mon, 6 Apr 2020 14:58:25 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0359629B8D; Mon, 6 Apr 2020 14:58:25 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 036EwOUC099467; Mon, 6 Apr 2020 14:58:24 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 036EwOdp099466; Mon, 6 Apr 2020 14:58:24 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202004061458.036EwOdp099466@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 6 Apr 2020 14:58:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359659 - stable/12/sys/dev/hwpmc X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12/sys/dev/hwpmc X-SVN-Commit-Revision: 359659 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 14:58:25 -0000 Author: markj Date: Mon Apr 6 14:58:24 2020 New Revision: 359659 URL: https://svnweb.freebsd.org/changeset/base/359659 Log: MFC r359437: Fix accounting of hwpmc's thread descriptor freelist. Modified: stable/12/sys/dev/hwpmc/hwpmc_mod.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/hwpmc/hwpmc_mod.c ============================================================================== --- stable/12/sys/dev/hwpmc/hwpmc_mod.c Mon Apr 6 14:56:19 2020 (r359658) +++ stable/12/sys/dev/hwpmc/hwpmc_mod.c Mon Apr 6 14:58:24 2020 (r359659) @@ -2426,12 +2426,13 @@ pmc_thread_descriptor_pool_free_task(void *arg __unuse int delta; LIST_INIT(&tmplist); + /* Determine what changes, if any, we need to make. */ mtx_lock_spin(&pmc_threadfreelist_mtx); delta = pmc_threadfreelist_entries - pmc_threadfreelist_max; - while (delta > 0 && - (pt = LIST_FIRST(&pmc_threadfreelist)) != NULL) { + while (delta > 0 && (pt = LIST_FIRST(&pmc_threadfreelist)) != NULL) { delta--; + pmc_threadfreelist_entries--; LIST_REMOVE(pt, pt_next); LIST_INSERT_HEAD(&tmplist, pt, pt_next); } From owner-svn-src-all@freebsd.org Mon Apr 6 16:34:05 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id AB9F62B4919; Mon, 6 Apr 2020 16:34:05 +0000 (UTC) (envelope-from rgrimes@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48wx253wz6z4H18; Mon, 6 Apr 2020 16:34:05 +0000 (UTC) (envelope-from rgrimes@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 822932AEC9; Mon, 6 Apr 2020 16:34:05 +0000 (UTC) (envelope-from rgrimes@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 036GY5fB060528; Mon, 6 Apr 2020 16:34:05 GMT (envelope-from rgrimes@FreeBSD.org) Received: (from rgrimes@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 036GY5Le060527; Mon, 6 Apr 2020 16:34:05 GMT (envelope-from rgrimes@FreeBSD.org) Message-Id: <202004061634.036GY5Le060527@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rgrimes set sender to rgrimes@FreeBSD.org using -f From: "Rodney W. Grimes" Date: Mon, 6 Apr 2020 16:34:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-svnadmin@freebsd.org Subject: svn commit: r359660 - svnadmin/conf X-SVN-Group: svnadmin X-SVN-Commit-Author: rgrimes X-SVN-Commit-Paths: svnadmin/conf X-SVN-Commit-Revision: 359660 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 16:34:05 -0000 Author: rgrimes Date: Mon Apr 6 16:34:04 2020 New Revision: 359660 URL: https://svnweb.freebsd.org/changeset/base/359660 Log: # (2) The full name of the person. # (3) In brief, what they will be working on (a couple of sentences). Welcome Richard Scheffenegger as a src committer. Richard will focus on the network stack and RFC conformance. tuexen and rgrimes will be his mentors. Approved by: core Modified: svnadmin/conf/access Modified: svnadmin/conf/access ============================================================================== --- svnadmin/conf/access Mon Apr 6 14:58:24 2020 (r359659) +++ svnadmin/conf/access Mon Apr 6 16:34:04 2020 (r359660) @@ -183,6 +183,7 @@ roberto royger rpokala rrs +rscheff rstone rwatson bb+lists.freebsd.cvs-committers@cyrus.watson.org sbruno From owner-svn-src-all@freebsd.org Mon Apr 6 17:28:17 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D0EF92B5FE3; Mon, 6 Apr 2020 17:28:17 +0000 (UTC) (envelope-from jrm@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48wyDd58VYz4LMm; Mon, 6 Apr 2020 17:28:17 +0000 (UTC) (envelope-from jrm@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AC0E42B8D5; Mon, 6 Apr 2020 17:28:17 +0000 (UTC) (envelope-from jrm@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 036HSHNa092359; Mon, 6 Apr 2020 17:28:17 GMT (envelope-from jrm@FreeBSD.org) Received: (from jrm@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 036HSHfT092357; Mon, 6 Apr 2020 17:28:17 GMT (envelope-from jrm@FreeBSD.org) Message-Id: <202004061728.036HSHfT092357@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jrm set sender to jrm@FreeBSD.org using -f From: Joseph Mingrone Date: Mon, 6 Apr 2020 17:28:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-svnadmin@freebsd.org Subject: svn commit: r359661 - svnadmin/conf X-SVN-Group: svnadmin X-SVN-Commit-Author: jrm X-SVN-Commit-Paths: svnadmin/conf X-SVN-Commit-Revision: 359661 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 17:28:17 -0000 Author: jrm (ports committer) Date: Mon Apr 6 17:28:17 2020 New Revision: 359661 URL: https://svnweb.freebsd.org/changeset/base/359661 Log: Take in idle commit bits Approved by: core (jhb) Differential Revision: https://reviews.freebsd.org/D24311 With hat: core-secretary@ Modified: svnadmin/conf/access svnadmin/conf/mentors Modified: svnadmin/conf/access ============================================================================== --- svnadmin/conf/access Mon Apr 6 16:34:04 2020 (r359660) +++ svnadmin/conf/access Mon Apr 6 17:28:17 2020 (r359661) @@ -44,7 +44,6 @@ br brd brooks brueffer -bryanv bwidawsk bz cem @@ -66,7 +65,6 @@ dfr dim dougm dteske -dumbbell dwmalone dwmalone=freebsd-committers@maths.tcd.ie eadler ed @@ -111,7 +109,6 @@ jmallett jmg joerg freebsd-devel@uriah.heep.sax.de johalun -jonathan jpaetzel jrtc27 jtl @@ -132,7 +129,6 @@ loos lstewart luporl lwhsu -mahrens manu marcel marius @@ -201,7 +197,6 @@ sobomax stevek syrinx takawata -theraven thj tijl tmunro Modified: svnadmin/conf/mentors ============================================================================== --- svnadmin/conf/mentors Mon Apr 6 16:34:04 2020 (r359660) +++ svnadmin/conf/mentors Mon Apr 6 17:28:17 2020 (r359661) @@ -25,7 +25,6 @@ jrtc27 brooks Co-mentor: jhb kadesai ken Co-mentor: scottl, ambrisko kaktus kib Co-mentor: mjg leitao jhibbits Co-mentor: nwhitehorn -mahrens mckusick miwi araujo mjoras rstone nick philip Co-mentor: kp From owner-svn-src-all@freebsd.org Mon Apr 6 18:42:01 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id AFF962B7C06; Mon, 6 Apr 2020 18:42:01 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48wzsj3yKxz4Rt1; Mon, 6 Apr 2020 18:42:01 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 831B92C8B9; Mon, 6 Apr 2020 18:42:01 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 036Ig1Je039963; Mon, 6 Apr 2020 18:42:01 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 036Ig1Ga039962; Mon, 6 Apr 2020 18:42:01 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202004061842.036Ig1Ga039962@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Mon, 6 Apr 2020 18:42:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359662 - head/sys/cam/scsi X-SVN-Group: head X-SVN-Commit-Author: mav X-SVN-Commit-Paths: head/sys/cam/scsi X-SVN-Commit-Revision: 359662 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 18:42:01 -0000 Author: mav Date: Mon Apr 6 18:42:01 2020 New Revision: 359662 URL: https://svnweb.freebsd.org/changeset/base/359662 Log: Relax too strict SES element descriptors check in r355430. SES specifications allows the string to be NULL-terminated, while previous code was considering it as invalid due to incorrectly ordered conditions. MFC after: 1 week Sponsored by: iXsystem, Inc. Modified: head/sys/cam/scsi/scsi_enc_ses.c Modified: head/sys/cam/scsi/scsi_enc_ses.c ============================================================================== --- head/sys/cam/scsi/scsi_enc_ses.c Mon Apr 6 17:28:17 2020 (r359661) +++ head/sys/cam/scsi/scsi_enc_ses.c Mon Apr 6 18:42:01 2020 (r359662) @@ -2004,11 +2004,11 @@ ses_sanitize_elm_desc(const char *desc, uint16_t *len) int i; for (i = 0; i < *len; i++) { - if (desc[i] < 0x20 || desc[i] > 0x7e) { + if (desc[i] == 0) { + break; + } else if (desc[i] < 0x20 || desc[i] > 0x7e) { *len = strlen(invalid); return (invalid); - } else if (desc[i] == 0) { - break; } } return (desc); From owner-svn-src-all@freebsd.org Mon Apr 6 18:45:05 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C4A5D2B7E54; Mon, 6 Apr 2020 18:45:05 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48wzxF4lgnz4S9T; Mon, 6 Apr 2020 18:45:05 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 99E832C8F3; Mon, 6 Apr 2020 18:45:05 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 036Ij5dc044343; Mon, 6 Apr 2020 18:45:05 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 036Ij57b044342; Mon, 6 Apr 2020 18:45:05 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202004061845.036Ij57b044342@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Mon, 6 Apr 2020 18:45:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359663 - stable/12/sys/kern X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/12/sys/kern X-SVN-Commit-Revision: 359663 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 18:45:05 -0000 Author: kib Date: Mon Apr 6 18:45:05 2020 New Revision: 359663 URL: https://svnweb.freebsd.org/changeset/base/359663 Log: MFC r359463: kern_sendfile.c style: order headers alphabetically. Modified: stable/12/sys/kern/kern_sendfile.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/kern/kern_sendfile.c ============================================================================== --- stable/12/sys/kern/kern_sendfile.c Mon Apr 6 18:42:01 2020 (r359662) +++ stable/12/sys/kern/kern_sendfile.c Mon Apr 6 18:45:05 2020 (r359663) @@ -36,12 +36,11 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include -#include #include #include #include +#include #include #include #include @@ -49,6 +48,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include From owner-svn-src-all@freebsd.org Mon Apr 6 18:47:16 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6FA092B7EFA; Mon, 6 Apr 2020 18:47:16 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48wzzm2Nbpz4SSZ; Mon, 6 Apr 2020 18:47:16 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4A4D42C8F8; Mon, 6 Apr 2020 18:47:16 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 036IlGEi044496; Mon, 6 Apr 2020 18:47:16 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 036IlGFH044495; Mon, 6 Apr 2020 18:47:16 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202004061847.036IlGFH044495@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Mon, 6 Apr 2020 18:47:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359664 - stable/12/sys/kern X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/12/sys/kern X-SVN-Commit-Revision: 359664 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 18:47:16 -0000 Author: kib Date: Mon Apr 6 18:47:15 2020 New Revision: 359664 URL: https://svnweb.freebsd.org/changeset/base/359664 Log: MFC r359464: buffer pager: skip bogus pages. PR: 244713 Modified: stable/12/sys/kern/vfs_bio.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/kern/vfs_bio.c ============================================================================== --- stable/12/sys/kern/vfs_bio.c Mon Apr 6 18:45:05 2020 (r359663) +++ stable/12/sys/kern/vfs_bio.c Mon Apr 6 18:47:15 2020 (r359664) @@ -5185,13 +5185,17 @@ vfs_bio_getpages(struct vnode *vp, vm_page_t *ma, int != 0) ? GB_UNMAPPED : 0; VM_OBJECT_WLOCK(object); again: - for (i = 0; i < count; i++) - vm_page_busy_downgrade(ma[i]); + for (i = 0; i < count; i++) { + if (ma[i] != bogus_page) + vm_page_busy_downgrade(ma[i]); + } VM_OBJECT_WUNLOCK(object); lbnp = -1; for (i = 0; i < count; i++) { m = ma[i]; + if (m == bogus_page) + continue; /* * Pages are shared busy and the object lock is not @@ -5263,6 +5267,8 @@ end_pages: VM_OBJECT_WLOCK(object); redo = false; for (i = 0; i < count; i++) { + if (ma[i] == bogus_page) + continue; vm_page_sunbusy(ma[i]); ma[i] = vm_page_grab(object, ma[i]->pindex, VM_ALLOC_NORMAL); From owner-svn-src-all@freebsd.org Mon Apr 6 18:48:56 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5032C27802E; Mon, 6 Apr 2020 18:48:56 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48x01h1Q2hz4Sdr; Mon, 6 Apr 2020 18:48:56 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2BC122C903; Mon, 6 Apr 2020 18:48:56 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 036ImuHG044644; Mon, 6 Apr 2020 18:48:56 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 036Imtph044642; Mon, 6 Apr 2020 18:48:55 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202004061848.036Imtph044642@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Mon, 6 Apr 2020 18:48:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359665 - in stable/12/sys: kern ufs/ffs vm X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: in stable/12/sys: kern ufs/ffs vm X-SVN-Commit-Revision: 359665 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 18:48:56 -0000 Author: kib Date: Mon Apr 6 18:48:55 2020 New Revision: 359665 URL: https://svnweb.freebsd.org/changeset/base/359665 Log: MFC r359466: VOP_GETPAGES_ASYNC(): consistently call iodone() callback in case of error. Modified: stable/12/sys/kern/vfs_default.c stable/12/sys/ufs/ffs/ffs_vnops.c stable/12/sys/vm/vnode_pager.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/kern/vfs_default.c ============================================================================== --- stable/12/sys/kern/vfs_default.c Mon Apr 6 18:47:15 2020 (r359664) +++ stable/12/sys/kern/vfs_default.c Mon Apr 6 18:48:55 2020 (r359665) @@ -682,7 +682,8 @@ vop_stdgetpages_async(struct vop_getpages_async_args * error = VOP_GETPAGES(ap->a_vp, ap->a_m, ap->a_count, ap->a_rbehind, ap->a_rahead); - ap->a_iodone(ap->a_arg, ap->a_m, ap->a_count, error); + if (ap->a_iodone != NULL) + ap->a_iodone(ap->a_arg, ap->a_m, ap->a_count, error); return (error); } Modified: stable/12/sys/ufs/ffs/ffs_vnops.c ============================================================================== --- stable/12/sys/ufs/ffs/ffs_vnops.c Mon Apr 6 18:47:15 2020 (r359664) +++ stable/12/sys/ufs/ffs/ffs_vnops.c Mon Apr 6 18:48:55 2020 (r359665) @@ -1749,18 +1749,25 @@ ffs_getpages_async(struct vop_getpages_async_args *ap) { struct vnode *vp; struct ufsmount *um; + bool do_iodone; int error; vp = ap->a_vp; um = VFSTOUFS(vp->v_mount); + do_iodone = true; - if (um->um_devvp->v_bufobj.bo_bsize <= PAGE_SIZE) - return (vnode_pager_generic_getpages(vp, ap->a_m, ap->a_count, - ap->a_rbehind, ap->a_rahead, ap->a_iodone, ap->a_arg)); - - error = vfs_bio_getpages(vp, ap->a_m, ap->a_count, ap->a_rbehind, - ap->a_rahead, ffs_gbp_getblkno, ffs_gbp_getblksz); - ap->a_iodone(ap->a_arg, ap->a_m, ap->a_count, error); + if (um->um_devvp->v_bufobj.bo_bsize <= PAGE_SIZE) { + error = vnode_pager_generic_getpages(vp, ap->a_m, ap->a_count, + ap->a_rbehind, ap->a_rahead, ap->a_iodone, ap->a_arg); + if (error == 0) + do_iodone = false; + } else { + error = vfs_bio_getpages(vp, ap->a_m, ap->a_count, + ap->a_rbehind, ap->a_rahead, ffs_gbp_getblkno, + ffs_gbp_getblksz); + } + if (do_iodone && ap->a_iodone != NULL) + ap->a_iodone(ap->a_arg, ap->a_m, ap->a_count, error); return (error); } Modified: stable/12/sys/vm/vnode_pager.c ============================================================================== --- stable/12/sys/vm/vnode_pager.c Mon Apr 6 18:47:15 2020 (r359664) +++ stable/12/sys/vm/vnode_pager.c Mon Apr 6 18:48:55 2020 (r359665) @@ -767,9 +767,13 @@ vnode_pager_local_getpages(struct vop_getpages_args *a int vnode_pager_local_getpages_async(struct vop_getpages_async_args *ap) { + int error; - return (vnode_pager_generic_getpages(ap->a_vp, ap->a_m, ap->a_count, - ap->a_rbehind, ap->a_rahead, ap->a_iodone, ap->a_arg)); + error = vnode_pager_generic_getpages(ap->a_vp, ap->a_m, ap->a_count, + ap->a_rbehind, ap->a_rahead, ap->a_iodone, ap->a_arg); + if (error != 0 && ap->a_iodone != NULL) + ap->a_iodone(ap->a_arg, ap->a_m, ap->a_count, error); + return (error); } /* From owner-svn-src-all@freebsd.org Mon Apr 6 18:52:41 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 16EF32782E8; Mon, 6 Apr 2020 18:52:41 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48x0606tVfz4T5n; Mon, 6 Apr 2020 18:52:40 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E77EA2CAF0; Mon, 6 Apr 2020 18:52:40 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 036Iqe3S050567; Mon, 6 Apr 2020 18:52:40 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 036IqeBv050566; Mon, 6 Apr 2020 18:52:40 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202004061852.036IqeBv050566@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Mon, 6 Apr 2020 18:52:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359666 - stable/12/sys/kern X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/12/sys/kern X-SVN-Commit-Revision: 359666 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 18:52:41 -0000 Author: kib Date: Mon Apr 6 18:52:40 2020 New Revision: 359666 URL: https://svnweb.freebsd.org/changeset/base/359666 Log: MFC r359468: kern_sendfile.c: add specific malloc type. Modified: stable/12/sys/kern/kern_sendfile.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/kern/kern_sendfile.c ============================================================================== --- stable/12/sys/kern/kern_sendfile.c Mon Apr 6 18:48:55 2020 (r359665) +++ stable/12/sys/kern/kern_sendfile.c Mon Apr 6 18:52:40 2020 (r359666) @@ -60,6 +60,8 @@ __FBSDID("$FreeBSD$"); #include #include +static MALLOC_DEFINE(M_SENDFILE, "sendfile", "sendfile dynamic memory"); + #define EXT_FLAG_SYNC EXT_FLAG_VENDOR1 #define EXT_FLAG_NOCACHE EXT_FLAG_VENDOR2 @@ -255,7 +257,7 @@ sendfile_iodone(void *arg, vm_page_t *pg, int count, i SOCK_LOCK(so); sorele(so); CURVNET_RESTORE(); - free(sfio, M_TEMP); + free(sfio, M_SENDFILE); } /* @@ -530,7 +532,7 @@ vn_sendfile(struct file *fp, int sockfd, struct uio *h SFSTAT_ADD(sf_rhpages_requested, SF_READAHEAD(flags)); if (flags & SF_SYNC) { - sfs = malloc(sizeof *sfs, M_TEMP, M_WAITOK | M_ZERO); + sfs = malloc(sizeof(*sfs), M_SENDFILE, M_WAITOK | M_ZERO); mtx_init(&sfs->mtx, "sendfile", NULL, MTX_DEF); cv_init(&sfs->cv, "sendfile"); } @@ -695,7 +697,7 @@ retry_space: npages, rhpages); sfio = malloc(sizeof(struct sf_io) + - npages * sizeof(vm_page_t), M_TEMP, M_WAITOK); + npages * sizeof(vm_page_t), M_SENDFILE, M_WAITOK); refcount_init(&sfio->nios, 1); sfio->so = so; sfio->error = 0; @@ -705,7 +707,7 @@ retry_space: if (error != 0) { if (vp != NULL) VOP_UNLOCK(vp, 0); - free(sfio, M_TEMP); + free(sfio, M_SENDFILE); goto done; } @@ -817,7 +819,7 @@ prepend_header: if (m == NULL) { KASSERT(softerr, ("%s: m NULL, no error", __func__)); error = softerr; - free(sfio, M_TEMP); + free(sfio, M_SENDFILE); goto done; } @@ -834,7 +836,7 @@ prepend_header: * we can send data right now without the * PRUS_NOTREADY flag. */ - free(sfio, M_TEMP); + free(sfio, M_SENDFILE); error = (*so->so_proto->pr_usrreqs->pru_send) (so, 0, m, NULL, NULL, td); } else { @@ -898,7 +900,7 @@ out: KASSERT(sfs->count == 0, ("sendfile sync still busy")); cv_destroy(&sfs->cv); mtx_destroy(&sfs->mtx); - free(sfs, M_TEMP); + free(sfs, M_SENDFILE); } if (error == ERESTART) From owner-svn-src-all@freebsd.org Mon Apr 6 19:45:27 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3069B2797F2; Mon, 6 Apr 2020 19:45:27 +0000 (UTC) (envelope-from mw@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48x1Gv0H3Dz4WWq; Mon, 6 Apr 2020 19:45:27 +0000 (UTC) (envelope-from mw@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 04BB92D450; Mon, 6 Apr 2020 19:45:27 +0000 (UTC) (envelope-from mw@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 036JjQxe081231; Mon, 6 Apr 2020 19:45:26 GMT (envelope-from mw@FreeBSD.org) Received: (from mw@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 036JjQoY081229; Mon, 6 Apr 2020 19:45:26 GMT (envelope-from mw@FreeBSD.org) Message-Id: <202004061945.036JjQoY081229@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mw set sender to mw@FreeBSD.org using -f From: Marcin Wojtas Date: Mon, 6 Apr 2020 19:45:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359667 - in head/sys: dev/hwpmc sys X-SVN-Group: head X-SVN-Commit-Author: mw X-SVN-Commit-Paths: in head/sys: dev/hwpmc sys X-SVN-Commit-Revision: 359667 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 19:45:27 -0000 Author: mw Date: Mon Apr 6 19:45:26 2020 New Revision: 359667 URL: https://svnweb.freebsd.org/changeset/base/359667 Log: Add hwpmc support for Intel Atom Goldmont microarchitecture Recognize new micro-architecture in hwpmc_intel driver. Based on Intel document 325462-071US. Tested with tools/test/hwpmc/pmctest.py on Atom E3930 SoC. Submitted by: Dawid Gorecki Reviewed by: kib Obtained from: Semihalf Sponsored by: Stormshield Differential Revision: https://reviews.freebsd.org/D24310 Modified: head/sys/dev/hwpmc/hwpmc_intel.c head/sys/sys/pmc.h Modified: head/sys/dev/hwpmc/hwpmc_intel.c ============================================================================== --- head/sys/dev/hwpmc/hwpmc_intel.c Mon Apr 6 18:52:40 2020 (r359666) +++ head/sys/dev/hwpmc/hwpmc_intel.c Mon Apr 6 19:45:26 2020 (r359667) @@ -203,6 +203,10 @@ pmc_intel_initialize(void) cputype = PMC_CPU_INTEL_ATOM_SILVERMONT; nclasses = 3; break; + case 0x5C: /* Per Intel document 325462-071US 10/2019. */ + cputype = PMC_CPU_INTEL_ATOM_GOLDMONT; + nclasses = 3; + break; } break; } @@ -230,6 +234,7 @@ pmc_intel_initialize(void) */ case PMC_CPU_INTEL_ATOM: case PMC_CPU_INTEL_ATOM_SILVERMONT: + case PMC_CPU_INTEL_ATOM_GOLDMONT: case PMC_CPU_INTEL_BROADWELL: case PMC_CPU_INTEL_BROADWELL_XEON: case PMC_CPU_INTEL_SKYLAKE_XEON: @@ -293,6 +298,7 @@ pmc_intel_finalize(struct pmc_mdep *md) switch (md->pmd_cputype) { case PMC_CPU_INTEL_ATOM: case PMC_CPU_INTEL_ATOM_SILVERMONT: + case PMC_CPU_INTEL_ATOM_GOLDMONT: case PMC_CPU_INTEL_BROADWELL: case PMC_CPU_INTEL_BROADWELL_XEON: case PMC_CPU_INTEL_SKYLAKE_XEON: Modified: head/sys/sys/pmc.h ============================================================================== --- head/sys/sys/pmc.h Mon Apr 6 18:52:40 2020 (r359666) +++ head/sys/sys/pmc.h Mon Apr 6 19:45:26 2020 (r359667) @@ -110,6 +110,7 @@ extern char pmc_cpuid[PMC_CPUID_LEN]; __PMC_CPU(INTEL_BROADWELL_XEON, 0x97, "Intel Broadwell Xeon") \ __PMC_CPU(INTEL_SKYLAKE, 0x98, "Intel Skylake") \ __PMC_CPU(INTEL_SKYLAKE_XEON, 0x99, "Intel Skylake Xeon") \ + __PMC_CPU(INTEL_ATOM_GOLDMONT, 0x9A, "Intel Atom Goldmont") \ __PMC_CPU(INTEL_XSCALE, 0x100, "Intel XScale") \ __PMC_CPU(MIPS_24K, 0x200, "MIPS 24K") \ __PMC_CPU(MIPS_OCTEON, 0x201, "Cavium Octeon") \ From owner-svn-src-all@freebsd.org Mon Apr 6 20:23:48 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 498E027ACAD; Mon, 6 Apr 2020 20:23:48 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48x27818bpz4YLR; Mon, 6 Apr 2020 20:23:48 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 22EB42DBED; Mon, 6 Apr 2020 20:23:48 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 036KNmNC005294; Mon, 6 Apr 2020 20:23:48 GMT (envelope-from mckusick@FreeBSD.org) Received: (from mckusick@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 036KNmqF005293; Mon, 6 Apr 2020 20:23:48 GMT (envelope-from mckusick@FreeBSD.org) Message-Id: <202004062023.036KNmqF005293@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mckusick set sender to mckusick@FreeBSD.org using -f From: Kirk McKusick Date: Mon, 6 Apr 2020 20:23:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359668 - head/sys/ufs/ffs X-SVN-Group: head X-SVN-Commit-Author: mckusick X-SVN-Commit-Paths: head/sys/ufs/ffs X-SVN-Commit-Revision: 359668 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 20:23:48 -0000 Author: mckusick Date: Mon Apr 6 20:23:47 2020 New Revision: 359668 URL: https://svnweb.freebsd.org/changeset/base/359668 Log: Revert -r359612 as it can cause other panics. An updated version will be made when the issue has been resolved. Reported by: Peter Holm Modified: head/sys/ufs/ffs/ffs_inode.c Modified: head/sys/ufs/ffs/ffs_inode.c ============================================================================== --- head/sys/ufs/ffs/ffs_inode.c Mon Apr 6 19:45:26 2020 (r359667) +++ head/sys/ufs/ffs/ffs_inode.c Mon Apr 6 20:23:47 2020 (r359668) @@ -426,6 +426,11 @@ ffs_truncate(vp, length, flags, cred) ip->i_size = length; DIP_SET(ip, i_size, length); } else { + lbn = lblkno(fs, length); + flags |= BA_CLRBUF; + error = UFS_BALLOC(vp, length - 1, 1, cred, flags, &bp); + if (error) + return (error); /* * When we are doing soft updates and the UFS_BALLOC * above fills in a direct block hole with a full sized @@ -434,14 +439,9 @@ ffs_truncate(vp, length, flags, cred) * so that we do not get a soft updates inconsistency * when we create the fragment below. */ - lbn = lblkno(fs, length); if (DOINGSOFTDEP(vp) && lbn < UFS_NDADDR && fragroundup(fs, blkoff(fs, length)) < fs->fs_bsize && (error = ffs_syncvnode(vp, MNT_WAIT, 0)) != 0) - return (error); - flags |= BA_CLRBUF; - error = UFS_BALLOC(vp, length - 1, 1, cred, flags, &bp); - if (error) return (error); ip->i_size = length; DIP_SET(ip, i_size, length); From owner-svn-src-all@freebsd.org Mon Apr 6 22:12:43 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 53B7227DA55; Mon, 6 Apr 2020 22:12:43 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48x4Xq1WNgz4g2f; Mon, 6 Apr 2020 22:12:43 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2F28E2F19D; Mon, 6 Apr 2020 22:12:43 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 036MChcn072147; Mon, 6 Apr 2020 22:12:43 GMT (envelope-from mckusick@FreeBSD.org) Received: (from mckusick@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 036MCht3072146; Mon, 6 Apr 2020 22:12:43 GMT (envelope-from mckusick@FreeBSD.org) Message-Id: <202004062212.036MCht3072146@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mckusick set sender to mckusick@FreeBSD.org using -f From: Kirk McKusick Date: Mon, 6 Apr 2020 22:12:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359669 - stable/12/sys/ufs/ufs X-SVN-Group: stable-12 X-SVN-Commit-Author: mckusick X-SVN-Commit-Paths: stable/12/sys/ufs/ufs X-SVN-Commit-Revision: 359669 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 22:12:43 -0000 Author: mckusick Date: Mon Apr 6 22:12:42 2020 New Revision: 359669 URL: https://svnweb.freebsd.org/changeset/base/359669 Log: MFC of 359612 Use proper boolean expressions for soft update macros. Sponsored by: Netflix Modified: stable/12/sys/ufs/ufs/inode.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/ufs/ufs/inode.h ============================================================================== --- stable/12/sys/ufs/ufs/inode.h Mon Apr 6 20:23:47 2020 (r359668) +++ stable/12/sys/ufs/ufs/inode.h Mon Apr 6 22:12:42 2020 (r359669) @@ -192,10 +192,11 @@ struct indir { #define ITOV(ip) ((ip)->i_vnode) /* Determine if soft dependencies are being done */ -#define DOINGSOFTDEP(vp) ((vp)->v_mount->mnt_flag & (MNT_SOFTDEP | MNT_SUJ)) -#define MOUNTEDSOFTDEP(mp) ((mp)->mnt_flag & (MNT_SOFTDEP | MNT_SUJ)) -#define DOINGSUJ(vp) ((vp)->v_mount->mnt_flag & MNT_SUJ) -#define MOUNTEDSUJ(mp) ((mp)->mnt_flag & MNT_SUJ) +#define DOINGSOFTDEP(vp) \ + (((vp)->v_mount->mnt_flag & (MNT_SOFTDEP | MNT_SUJ)) != 0) +#define MOUNTEDSOFTDEP(mp) (((mp)->mnt_flag & (MNT_SOFTDEP | MNT_SUJ)) != 0) +#define DOINGSUJ(vp) (((vp)->v_mount->mnt_flag & MNT_SUJ) != 0) +#define MOUNTEDSUJ(mp) (((mp)->mnt_flag & MNT_SUJ) != 0) /* This overlays the fid structure (see mount.h). */ struct ufid { From owner-svn-src-all@freebsd.org Mon Apr 6 22:14:50 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8EEFB27DB90; Mon, 6 Apr 2020 22:14:50 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48x4bG3FBTz4gDW; Mon, 6 Apr 2020 22:14:50 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6A8E52F1C9; Mon, 6 Apr 2020 22:14:50 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 036MEoC9072294; Mon, 6 Apr 2020 22:14:50 GMT (envelope-from mckusick@FreeBSD.org) Received: (from mckusick@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 036MEoKC072293; Mon, 6 Apr 2020 22:14:50 GMT (envelope-from mckusick@FreeBSD.org) Message-Id: <202004062214.036MEoKC072293@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mckusick set sender to mckusick@FreeBSD.org using -f From: Kirk McKusick Date: Mon, 6 Apr 2020 22:14:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r359670 - stable/11/sys/ufs/ufs X-SVN-Group: stable-11 X-SVN-Commit-Author: mckusick X-SVN-Commit-Paths: stable/11/sys/ufs/ufs X-SVN-Commit-Revision: 359670 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 22:14:50 -0000 Author: mckusick Date: Mon Apr 6 22:14:50 2020 New Revision: 359670 URL: https://svnweb.freebsd.org/changeset/base/359670 Log: MFC of 359612 Use proper boolean expressions for soft update macros. Sponsored by: Netflix Modified: stable/11/sys/ufs/ufs/inode.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/ufs/ufs/inode.h ============================================================================== --- stable/11/sys/ufs/ufs/inode.h Mon Apr 6 22:12:42 2020 (r359669) +++ stable/11/sys/ufs/ufs/inode.h Mon Apr 6 22:14:50 2020 (r359670) @@ -190,10 +190,11 @@ struct indir { #define ITOV(ip) ((ip)->i_vnode) /* Determine if soft dependencies are being done */ -#define DOINGSOFTDEP(vp) ((vp)->v_mount->mnt_flag & (MNT_SOFTDEP | MNT_SUJ)) -#define MOUNTEDSOFTDEP(mp) ((mp)->mnt_flag & (MNT_SOFTDEP | MNT_SUJ)) -#define DOINGSUJ(vp) ((vp)->v_mount->mnt_flag & MNT_SUJ) -#define MOUNTEDSUJ(mp) ((mp)->mnt_flag & MNT_SUJ) +#define DOINGSOFTDEP(vp) \ + (((vp)->v_mount->mnt_flag & (MNT_SOFTDEP | MNT_SUJ)) != 0) +#define MOUNTEDSOFTDEP(mp) (((mp)->mnt_flag & (MNT_SOFTDEP | MNT_SUJ)) != 0) +#define DOINGSUJ(vp) (((vp)->v_mount->mnt_flag & MNT_SUJ) != 0) +#define MOUNTEDSUJ(mp) (((mp)->mnt_flag & MNT_SUJ) != 0) /* This overlays the fid structure (see mount.h). */ struct ufid { From owner-svn-src-all@freebsd.org Mon Apr 6 22:29:15 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9A57927E0FE; Mon, 6 Apr 2020 22:29:15 +0000 (UTC) (envelope-from jrtc27@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48x4vv3YYGz3CVZ; Mon, 6 Apr 2020 22:29:15 +0000 (UTC) (envelope-from jrtc27@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 757C92F3F0; Mon, 6 Apr 2020 22:29:15 +0000 (UTC) (envelope-from jrtc27@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 036MTF2x078722; Mon, 6 Apr 2020 22:29:15 GMT (envelope-from jrtc27@FreeBSD.org) Received: (from jrtc27@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 036MTF7M078721; Mon, 6 Apr 2020 22:29:15 GMT (envelope-from jrtc27@FreeBSD.org) Message-Id: <202004062229.036MTF7M078721@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jrtc27 set sender to jrtc27@FreeBSD.org using -f From: Jessica Clarke Date: Mon, 6 Apr 2020 22:29:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359671 - head/sys/riscv/riscv X-SVN-Group: head X-SVN-Commit-Author: jrtc27 X-SVN-Commit-Paths: head/sys/riscv/riscv X-SVN-Commit-Revision: 359671 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 22:29:15 -0000 Author: jrtc27 Date: Mon Apr 6 22:29:15 2020 New Revision: 359671 URL: https://svnweb.freebsd.org/changeset/base/359671 Log: riscv: Fix pmap_fault_fixup for L3 pages Summary: The parentheses being in the wrong place means that, for L3 pages, oldpte has all bits except PTE_V cleared, and so all the subsequent checks against oldpte will fail, causing us to bail out and not retry the faulting instruction after an SFENCE.VMA. This causes a WITNESS + INVARIANTS kernel to fault on the "Chisel P3" (BOOM-based) DARPA SSITH GFE SoC in pmap_init when writing to pv_table and, being a nofault entry, subsequently panic with: panic: vm_fault_lookup: fault on nofault entry, addr: 0xffffffc004e00000 Reviewed by: markj Approved by: markj Differential Revision: https://reviews.freebsd.org/D24315 Modified: head/sys/riscv/riscv/pmap.c Modified: head/sys/riscv/riscv/pmap.c ============================================================================== --- head/sys/riscv/riscv/pmap.c Mon Apr 6 22:14:50 2020 (r359670) +++ head/sys/riscv/riscv/pmap.c Mon Apr 6 22:29:15 2020 (r359671) @@ -2416,7 +2416,7 @@ pmap_fault_fixup(pmap_t pmap, vm_offset_t va, vm_prot_ goto done; if ((l2e & PTE_RWX) == 0) { pte = pmap_l2_to_l3(l2, va); - if (pte == NULL || ((oldpte = pmap_load(pte) & PTE_V)) == 0) + if (pte == NULL || ((oldpte = pmap_load(pte)) & PTE_V) == 0) goto done; } else { pte = l2; From owner-svn-src-all@freebsd.org Mon Apr 6 22:31:31 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7612627E53B; Mon, 6 Apr 2020 22:31:31 +0000 (UTC) (envelope-from jrtc27@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48x4yW2LDCz3Cr8; Mon, 6 Apr 2020 22:31:31 +0000 (UTC) (envelope-from jrtc27@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4B94C2F457; Mon, 6 Apr 2020 22:31:31 +0000 (UTC) (envelope-from jrtc27@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 036MVVhX079572; Mon, 6 Apr 2020 22:31:31 GMT (envelope-from jrtc27@FreeBSD.org) Received: (from jrtc27@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 036MVVvO079571; Mon, 6 Apr 2020 22:31:31 GMT (envelope-from jrtc27@FreeBSD.org) Message-Id: <202004062231.036MVVvO079571@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jrtc27 set sender to jrtc27@FreeBSD.org using -f From: Jessica Clarke Date: Mon, 6 Apr 2020 22:31:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359672 - head/sys/riscv/riscv X-SVN-Group: head X-SVN-Commit-Author: jrtc27 X-SVN-Commit-Paths: head/sys/riscv/riscv X-SVN-Commit-Revision: 359672 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 22:31:31 -0000 Author: jrtc27 Date: Mon Apr 6 22:31:30 2020 New Revision: 359672 URL: https://svnweb.freebsd.org/changeset/base/359672 Log: riscv: Make sure local hart's icache is synced in pmap_sync_icache The only way to flush the local hart's icache is with a FENCE.I (or an equivalent SBI call); a normal FENCE is insufficient and, for the single-hart case, unnecessary. Reviewed by: jhb (mentor), markj Approved by: jhb (mentor), markj Differential Revision: https://reviews.freebsd.org/D24317 Modified: head/sys/riscv/riscv/pmap.c Modified: head/sys/riscv/riscv/pmap.c ============================================================================== --- head/sys/riscv/riscv/pmap.c Mon Apr 6 22:29:15 2020 (r359671) +++ head/sys/riscv/riscv/pmap.c Mon Apr 6 22:31:30 2020 (r359672) @@ -4335,13 +4335,20 @@ pmap_sync_icache(pmap_t pmap, vm_offset_t va, vm_size_ * RISC-V harts, the writing hart has to execute a data FENCE * before requesting that all remote RISC-V harts execute a * FENCE.I." + * + * However, this is slightly misleading; we still need to + * perform a FENCE.I for the local hart, as FENCE does nothing + * for its icache. FENCE.I alone is also sufficient for the + * local hart. */ sched_pin(); mask = all_harts; CPU_CLR(PCPU_GET(hart), &mask); - fence(); - if (!CPU_EMPTY(&mask) && smp_started) + fence_i() + if (!CPU_EMPTY(&mask) && smp_started) { + fence(); sbi_remote_fence_i(mask.__bits); + } sched_unpin(); } From owner-svn-src-all@freebsd.org Mon Apr 6 22:48:45 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2DFE827EFC6; Mon, 6 Apr 2020 22:48:45 +0000 (UTC) (envelope-from mhorne@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48x5LP0DzSz3Dg4; Mon, 6 Apr 2020 22:48:45 +0000 (UTC) (envelope-from mhorne@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F2CDA2F7C9; Mon, 6 Apr 2020 22:48:44 +0000 (UTC) (envelope-from mhorne@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 036MmiJJ091122; Mon, 6 Apr 2020 22:48:44 GMT (envelope-from mhorne@FreeBSD.org) Received: (from mhorne@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 036MmhwC091115; Mon, 6 Apr 2020 22:48:43 GMT (envelope-from mhorne@FreeBSD.org) Message-Id: <202004062248.036MmhwC091115@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mhorne set sender to mhorne@FreeBSD.org using -f From: Mitchell Horne Date: Mon, 6 Apr 2020 22:48:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359673 - in head/sys/riscv: include riscv X-SVN-Group: head X-SVN-Commit-Author: mhorne X-SVN-Commit-Paths: in head/sys/riscv: include riscv X-SVN-Commit-Revision: 359673 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 22:48:45 -0000 Author: mhorne Date: Mon Apr 6 22:48:43 2020 New Revision: 359673 URL: https://svnweb.freebsd.org/changeset/base/359673 Log: RISC-V: copy the DTB to early KVA The location of the device-tree blob is passed to the kernel by the previous booting stage (i.e. BBL or OpenSBI). Currently, we leave it untouched and mark the 1MB of memory holding it as unavailable. Instead, do what is done by other fake_preload_metadata() routines and copy to the DTB to KVA space. This is more in line with what loader(8) will provide us in the future, and it allows us to reclaim the hole in physical memory. Reviewed by: markj, kp (earlier version) Differential Revision: https://reviews.freebsd.org/D24152 Added: head/sys/riscv/include/metadata.h (contents, props changed) Modified: head/sys/riscv/include/machdep.h head/sys/riscv/include/vmparam.h head/sys/riscv/riscv/genassym.c head/sys/riscv/riscv/locore.S head/sys/riscv/riscv/machdep.c head/sys/riscv/riscv/pmap.c Modified: head/sys/riscv/include/machdep.h ============================================================================== --- head/sys/riscv/include/machdep.h Mon Apr 6 22:31:30 2020 (r359672) +++ head/sys/riscv/include/machdep.h Mon Apr 6 22:48:43 2020 (r359673) @@ -42,7 +42,6 @@ struct riscv_bootparams { vm_offset_t kern_phys; /* Kernel base (physical) addr */ vm_offset_t kern_stack; vm_offset_t dtbp_virt; /* Device tree blob virtual addr */ - vm_offset_t dtbp_phys; /* Device tree blob physical addr */ }; extern vm_paddr_t physmap[]; Added: head/sys/riscv/include/metadata.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/riscv/include/metadata.h Mon Apr 6 22:48:43 2020 (r359673) @@ -0,0 +1,35 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2020 Mitchell Horne + * + * Redistribution and use in source and binary forms, with or without + * 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. + * 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. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (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$ + */ + +#ifndef _MACHINE_METADATA_H_ +#define _MACHINE_METADATA_H_ + +#define MODINFOMD_DTBP 0x1001 + +#endif /* !_MACHINE_METADATA_H_ */ Modified: head/sys/riscv/include/vmparam.h ============================================================================== --- head/sys/riscv/include/vmparam.h Mon Apr 6 22:31:30 2020 (r359672) +++ head/sys/riscv/include/vmparam.h Mon Apr 6 22:48:43 2020 (r359673) @@ -192,6 +192,8 @@ #define KERNENTRY (0) +#define VM_EARLY_DTB_ADDRESS (VM_MAX_KERNEL_ADDRESS - (2 * L2_SIZE)) + /* * How many physical pages per kmem arena virtual page. */ Modified: head/sys/riscv/riscv/genassym.c ============================================================================== --- head/sys/riscv/riscv/genassym.c Mon Apr 6 22:31:30 2020 (r359672) +++ head/sys/riscv/riscv/genassym.c Mon Apr 6 22:48:43 2020 (r359673) @@ -56,10 +56,12 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include ASSYM(KERNBASE, KERNBASE); ASSYM(VM_MAXUSER_ADDRESS, VM_MAXUSER_ADDRESS); ASSYM(VM_MAX_KERNEL_ADDRESS, VM_MAX_KERNEL_ADDRESS); +ASSYM(VM_EARLY_DTB_ADDRESS, VM_EARLY_DTB_ADDRESS); ASSYM(TDF_ASTPENDING, TDF_ASTPENDING); ASSYM(TDF_NEEDRESCHED, TDF_NEEDRESCHED); @@ -104,4 +106,3 @@ ASSYM(RISCV_BOOTPARAMS_KERN_PHYS, offsetof(struct risc ASSYM(RISCV_BOOTPARAMS_KERN_STACK, offsetof(struct riscv_bootparams, kern_stack)); ASSYM(RISCV_BOOTPARAMS_DTBP_VIRT, offsetof(struct riscv_bootparams, dtbp_virt)); -ASSYM(RISCV_BOOTPARAMS_DTBP_PHYS, offsetof(struct riscv_bootparams, dtbp_phys)); Modified: head/sys/riscv/riscv/locore.S ============================================================================== --- head/sys/riscv/riscv/locore.S Mon Apr 6 22:31:30 2020 (r359672) +++ head/sys/riscv/riscv/locore.S Mon Apr 6 22:48:43 2020 (r359673) @@ -217,9 +217,8 @@ va: la t0, initstack sd t0, RISCV_BOOTPARAMS_KERN_STACK(sp) - li t0, (VM_MAX_KERNEL_ADDRESS - 2 * L2_SIZE) + li t0, (VM_EARLY_DTB_ADDRESS) sd t0, RISCV_BOOTPARAMS_DTBP_VIRT(sp) - sd a1, RISCV_BOOTPARAMS_DTBP_PHYS(sp) mv a0, sp call _C_LABEL(initriscv) /* Off we go */ Modified: head/sys/riscv/riscv/machdep.c ============================================================================== --- head/sys/riscv/riscv/machdep.c Mon Apr 6 22:31:30 2020 (r359672) +++ head/sys/riscv/riscv/machdep.c Mon Apr 6 22:48:43 2020 (r359673) @@ -81,6 +81,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -93,6 +94,7 @@ __FBSDID("$FreeBSD$"); #endif #ifdef FDT +#include #include #include #endif @@ -741,11 +743,19 @@ add_physmap_entry(uint64_t base, uint64_t length, vm_p #ifdef FDT static void -try_load_dtb(caddr_t kmdp, vm_offset_t dtbp) +try_load_dtb(caddr_t kmdp) { + vm_offset_t dtbp; + dtbp = MD_FETCH(kmdp, MODINFOMD_DTBP, vm_offset_t); + #if defined(FDT_DTB_STATIC) - dtbp = (vm_offset_t)&fdt_static_dtb; + /* + * In case the device tree blob was not retrieved (from metadata) try + * to use the statically embedded one. + */ + if (dtbp == (vm_offset_t)NULL) + dtbp = (vm_offset_t)&fdt_static_dtb; #endif if (dtbp == (vm_offset_t)NULL) { @@ -777,13 +787,14 @@ cache_setup(void) * RISCVTODO: This needs to be done via loader (when it's available). */ vm_offset_t -fake_preload_metadata(struct riscv_bootparams *rvbp __unused) +fake_preload_metadata(struct riscv_bootparams *rvbp) { static uint32_t fake_preload[35]; #ifdef DDB vm_offset_t zstart = 0, zend = 0; #endif vm_offset_t lastaddr; + size_t dtb_size; int i; i = 0; @@ -824,10 +835,23 @@ fake_preload_metadata(struct riscv_bootparams *rvbp __ #endif #endif lastaddr = (vm_offset_t)&end; + + /* Copy the DTB to KVA space. */ + lastaddr = roundup(lastaddr, sizeof(int)); + fake_preload[i++] = MODINFO_METADATA | MODINFOMD_DTBP; + fake_preload[i++] = sizeof(vm_offset_t); + *(vm_offset_t *)&fake_preload[i] = (vm_offset_t)lastaddr; + i += sizeof(vm_offset_t) / sizeof(uint32_t); + dtb_size = fdt_totalsize(rvbp->dtbp_virt); + memmove((void *)lastaddr, (const void *)rvbp->dtbp_virt, dtb_size); + lastaddr = roundup(lastaddr + dtb_size, sizeof(int)); + fake_preload[i++] = 0; fake_preload[i] = 0; preload_metadata = (void *)fake_preload; + KASSERT(i < nitems(fake_preload), ("Too many fake_preload items")); + return (lastaddr); } @@ -836,8 +860,6 @@ initriscv(struct riscv_bootparams *rvbp) { struct mem_region mem_regions[FDT_MEM_REGIONS]; struct pcpu *pcpup; - vm_offset_t rstart, rend; - vm_offset_t s, e; int mem_regions_sz; vm_offset_t lastaddr; vm_size_t kernlen; @@ -873,7 +895,7 @@ initriscv(struct riscv_bootparams *rvbp) kern_envp = NULL; #ifdef FDT - try_load_dtb(kmdp, rvbp->dtbp_virt); + try_load_dtb(kmdp); #endif /* Load the physical memory ranges */ @@ -884,21 +906,9 @@ initriscv(struct riscv_bootparams *rvbp) if (fdt_get_mem_regions(mem_regions, &mem_regions_sz, NULL) != 0) panic("Cannot get physical memory regions"); - s = rvbp->dtbp_phys; - e = s + DTB_SIZE_MAX; - for (i = 0; i < mem_regions_sz; i++) { - rstart = mem_regions[i].mr_start; - rend = (mem_regions[i].mr_start + mem_regions[i].mr_size); - - if ((rstart < s) && (rend > e)) { - /* Exclude DTB region. */ - add_physmap_entry(rstart, (s - rstart), physmap, &physmap_idx); - add_physmap_entry(e, (rend - e), physmap, &physmap_idx); - } else { - add_physmap_entry(mem_regions[i].mr_start, - mem_regions[i].mr_size, physmap, &physmap_idx); - } + add_physmap_entry(mem_regions[i].mr_start, + mem_regions[i].mr_size, physmap, &physmap_idx); } #endif Modified: head/sys/riscv/riscv/pmap.c ============================================================================== --- head/sys/riscv/riscv/pmap.c Mon Apr 6 22:31:30 2020 (r359672) +++ head/sys/riscv/riscv/pmap.c Mon Apr 6 22:48:43 2020 (r359673) @@ -558,6 +558,7 @@ pmap_bootstrap(vm_offset_t l1pt, vm_paddr_t kernstart, vm_offset_t freemempos; vm_offset_t dpcpu, msgbufpv; vm_paddr_t end, max_pa, min_pa, pa, start; + pt_entry_t *l2p; int i; printf("pmap_bootstrap %lx %lx %lx\n", l1pt, kernstart, kernlen); @@ -609,6 +610,15 @@ pmap_bootstrap(vm_offset_t l1pt, vm_paddr_t kernstart, /* Create the l3 tables for the early devmap */ freemempos = pmap_bootstrap_l3(l1pt, VM_MAX_KERNEL_ADDRESS - L2_SIZE, freemempos); + + /* + * Invalidate the mapping we created for the DTB. At this point a copy + * has been created, and we no longer need it. We want to avoid the + * possibility of an aliased mapping in the future. + */ + l2p = pmap_l2(kernel_pmap, VM_EARLY_DTB_ADDRESS); + KASSERT((pmap_load(l2p) & PTE_V) != 0, ("dtpb not mapped")); + pmap_clear(l2p); sfence_vma(); From owner-svn-src-all@freebsd.org Mon Apr 6 23:07:57 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6122F27F60D; Mon, 6 Apr 2020 23:07:57 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48x5mY1tx6z3G1p; Mon, 6 Apr 2020 23:07:57 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3C3392FBA8; Mon, 6 Apr 2020 23:07:57 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 036N7vxm003558; Mon, 6 Apr 2020 23:07:57 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 036N7umn003555; Mon, 6 Apr 2020 23:07:56 GMT (envelope-from cem@FreeBSD.org) Message-Id: <202004062307.036N7umn003555@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Mon, 6 Apr 2020 23:07:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359674 - head/lib/libcasper/services/cap_sysctl X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: head/lib/libcasper/services/cap_sysctl X-SVN-Commit-Revision: 359674 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 23:07:57 -0000 Author: cem Date: Mon Apr 6 23:07:56 2020 New Revision: 359674 URL: https://svnweb.freebsd.org/changeset/base/359674 Log: libcasper: Constify cap_sysctl_limit_mib() mib parameter No functional change. Minor API change that is nicer for consumers. ABI is identical; the routine never needed to modify the pointed to value. Reviewed by: emaste, markj Differential Revision: https://reviews.freebsd.org/D24319 Modified: head/lib/libcasper/services/cap_sysctl/cap_sysctl.3 head/lib/libcasper/services/cap_sysctl/cap_sysctl.c head/lib/libcasper/services/cap_sysctl/cap_sysctl.h Modified: head/lib/libcasper/services/cap_sysctl/cap_sysctl.3 ============================================================================== --- head/lib/libcasper/services/cap_sysctl/cap_sysctl.3 Mon Apr 6 22:48:43 2020 (r359673) +++ head/lib/libcasper/services/cap_sysctl/cap_sysctl.3 Mon Apr 6 23:07:56 2020 (r359674) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 13, 2019 +.Dd April 6, 2020 .Dt CAP_SYSCTL 3 .Os .Sh NAME @@ -46,7 +46,7 @@ .Ft void * .Fn cap_sysctl_limit_name "void *limit" "const char *name" "int flags" .Ft void * -.Fn cap_sysctl_limit_mib "void *limit" "int *mibp" "u_int miblen" "int flags" +.Fn cap_sysctl_limit_mib "void *limit" "const int *mibp" "u_int miblen" "int flags" .Ft int .Fn cap_sysctl_limit "void *limit" .Sh DESCRIPTION Modified: head/lib/libcasper/services/cap_sysctl/cap_sysctl.c ============================================================================== --- head/lib/libcasper/services/cap_sysctl/cap_sysctl.c Mon Apr 6 22:48:43 2020 (r359673) +++ head/lib/libcasper/services/cap_sysctl/cap_sysctl.c Mon Apr 6 23:07:56 2020 (r359674) @@ -109,7 +109,7 @@ cap_sysctl_limit_name(cap_sysctl_limit_t *limit, const } cap_sysctl_limit_t * -cap_sysctl_limit_mib(cap_sysctl_limit_t *limit, int *mibp, u_int miblen, +cap_sysctl_limit_mib(cap_sysctl_limit_t *limit, const int *mibp, u_int miblen, int flags) { nvlist_t *lnv; Modified: head/lib/libcasper/services/cap_sysctl/cap_sysctl.h ============================================================================== --- head/lib/libcasper/services/cap_sysctl/cap_sysctl.h Mon Apr 6 22:48:43 2020 (r359673) +++ head/lib/libcasper/services/cap_sysctl/cap_sysctl.h Mon Apr 6 23:07:56 2020 (r359674) @@ -55,8 +55,8 @@ typedef struct cap_sysctl_limit cap_sysctl_limit_t; cap_sysctl_limit_t *cap_sysctl_limit_init(cap_channel_t *); cap_sysctl_limit_t *cap_sysctl_limit_name(cap_sysctl_limit_t *limit, const char *name, int flags); -cap_sysctl_limit_t *cap_sysctl_limit_mib(cap_sysctl_limit_t *limit, int *mibp, - u_int miblen, int flags); +cap_sysctl_limit_t *cap_sysctl_limit_mib(cap_sysctl_limit_t *limit, + const int *mibp, u_int miblen, int flags); int cap_sysctl_limit(cap_sysctl_limit_t *limit); #else /* !WITH_CASPER */ #define cap_sysctl(chan, name, namelen, oldp, oldlenp, newp, newlen) \ From owner-svn-src-all@freebsd.org Mon Apr 6 23:08:08 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F2C3B27F657; Mon, 6 Apr 2020 23:08:08 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48x5mm6GLVz3G8c; Mon, 6 Apr 2020 23:08:08 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D24FA2FBA9; Mon, 6 Apr 2020 23:08:08 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 036N88K1003621; Mon, 6 Apr 2020 23:08:08 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 036N87Si003615; Mon, 6 Apr 2020 23:08:07 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004062308.036N87Si003615@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 6 Apr 2020 23:08:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359675 - head/tests/sys/kqueue/libkqueue X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/tests/sys/kqueue/libkqueue X-SVN-Commit-Revision: 359675 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 23:08:09 -0000 Author: kevans Date: Mon Apr 6 23:08:07 2020 New Revision: 359675 URL: https://svnweb.freebsd.org/changeset/base/359675 Log: kqueue tests: fix -fno-common build vnode_fd and kqfd are both shared among multiple CU; define them exactly once. In the case of vnode_fd, it was simply the declaration that needed correction. -fno-common will become the default in GCC10/LLVM11. MFC after: 3 days Modified: head/tests/sys/kqueue/libkqueue/common.h head/tests/sys/kqueue/libkqueue/proc.c head/tests/sys/kqueue/libkqueue/read.c head/tests/sys/kqueue/libkqueue/signal.c head/tests/sys/kqueue/libkqueue/timer.c head/tests/sys/kqueue/libkqueue/user.c head/tests/sys/kqueue/libkqueue/vnode.c Modified: head/tests/sys/kqueue/libkqueue/common.h ============================================================================== --- head/tests/sys/kqueue/libkqueue/common.h Mon Apr 6 23:07:56 2020 (r359674) +++ head/tests/sys/kqueue/libkqueue/common.h Mon Apr 6 23:08:07 2020 (r359675) @@ -41,7 +41,8 @@ #include extern char *cur_test_id; -int vnode_fd; +extern int vnode_fd; +extern int kqfd; extern char * kevent_to_str(struct kevent *); struct kevent * kevent_get(int); Modified: head/tests/sys/kqueue/libkqueue/proc.c ============================================================================== --- head/tests/sys/kqueue/libkqueue/proc.c Mon Apr 6 23:07:56 2020 (r359674) +++ head/tests/sys/kqueue/libkqueue/proc.c Mon Apr 6 23:08:07 2020 (r359675) @@ -25,7 +25,6 @@ static int sigusr1_caught = 0; -int kqfd; static void sig_handler(int signum) Modified: head/tests/sys/kqueue/libkqueue/read.c ============================================================================== --- head/tests/sys/kqueue/libkqueue/read.c Mon Apr 6 23:07:56 2020 (r359674) +++ head/tests/sys/kqueue/libkqueue/read.c Mon Apr 6 23:08:07 2020 (r359675) @@ -18,7 +18,6 @@ #include "common.h" -int kqfd; int sockfd[2]; static void Modified: head/tests/sys/kqueue/libkqueue/signal.c ============================================================================== --- head/tests/sys/kqueue/libkqueue/signal.c Mon Apr 6 23:07:56 2020 (r359674) +++ head/tests/sys/kqueue/libkqueue/signal.c Mon Apr 6 23:08:07 2020 (r359675) @@ -18,7 +18,6 @@ #include "common.h" -int kqfd; void test_kevent_signal_add(void) Modified: head/tests/sys/kqueue/libkqueue/timer.c ============================================================================== --- head/tests/sys/kqueue/libkqueue/timer.c Mon Apr 6 23:07:56 2020 (r359674) +++ head/tests/sys/kqueue/libkqueue/timer.c Mon Apr 6 23:08:07 2020 (r359675) @@ -26,7 +26,6 @@ #define MS_TO_US(t) ((t) * THOUSAND) /* Convert milliseconds to microseconds. */ #define US_TO_NS(t) ((t) * THOUSAND) /* Convert microseconds to nanoseconds. */ -int kqfd; /* Get the current time with microsecond precision. Used for * sub-second timing to make some timer tests run faster. Modified: head/tests/sys/kqueue/libkqueue/user.c ============================================================================== --- head/tests/sys/kqueue/libkqueue/user.c Mon Apr 6 23:07:56 2020 (r359674) +++ head/tests/sys/kqueue/libkqueue/user.c Mon Apr 6 23:08:07 2020 (r359675) @@ -18,7 +18,6 @@ #include "common.h" -int kqfd; static void add_and_delete(void) Modified: head/tests/sys/kqueue/libkqueue/vnode.c ============================================================================== --- head/tests/sys/kqueue/libkqueue/vnode.c Mon Apr 6 23:07:56 2020 (r359674) +++ head/tests/sys/kqueue/libkqueue/vnode.c Mon Apr 6 23:08:07 2020 (r359675) @@ -18,7 +18,6 @@ #include "common.h" -int kqfd; int vnode_fd; void From owner-svn-src-all@freebsd.org Mon Apr 6 23:11:44 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 599B327F88B; Mon, 6 Apr 2020 23:11:44 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48x5rv6wmBz3GZs; Mon, 6 Apr 2020 23:11:43 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E90442FC2E; Mon, 6 Apr 2020 23:11:43 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 036NBhq7007067; Mon, 6 Apr 2020 23:11:43 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 036NBhiI007065; Mon, 6 Apr 2020 23:11:43 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004062311.036NBhiI007065@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 6 Apr 2020 23:11:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359676 - in head/contrib/ntp: include ntpd X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in head/contrib/ntp: include ntpd X-SVN-Commit-Revision: 359676 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 23:11:44 -0000 Author: kevans Date: Mon Apr 6 23:11:43 2020 New Revision: 359676 URL: https://svnweb.freebsd.org/changeset/base/359676 Log: ntpd: fix build with -fno-common Only a small nit here: psl should be declared extern and defined exactly once. -fno-common will become the default in GCC10/LLVM11. MFC after: 3 days Modified: head/contrib/ntp/include/ntp_config.h head/contrib/ntp/ntpd/ntp_config.c Modified: head/contrib/ntp/include/ntp_config.h ============================================================================== --- head/contrib/ntp/include/ntp_config.h Mon Apr 6 23:08:07 2020 (r359675) +++ head/contrib/ntp/include/ntp_config.h Mon Apr 6 23:11:43 2020 (r359676) @@ -280,7 +280,7 @@ typedef struct settrap_parms_tag { * Poll Skew List */ -psl_item psl[17-3+1]; /* values for polls 3-17 */ +extern psl_item psl[17-3+1]; /* values for polls 3-17 */ /* To simplify the runtime code we */ /* don't want to have to special-case */ /* dealing with a default */ Modified: head/contrib/ntp/ntpd/ntp_config.c ============================================================================== --- head/contrib/ntp/ntpd/ntp_config.c Mon Apr 6 23:08:07 2020 (r359675) +++ head/contrib/ntp/ntpd/ntp_config.c Mon Apr 6 23:11:43 2020 (r359676) @@ -202,6 +202,8 @@ int cryptosw; /* crypto command called */ extern char *stats_drift_file; /* name of the driftfile */ +psl_item psl[17-3+1]; + #ifdef BC_LIST_FRAMEWORK_NOT_YET_USED /* * backwards compatibility flags From owner-svn-src-all@freebsd.org Mon Apr 6 23:16:07 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 663EA27F98A; Mon, 6 Apr 2020 23:16:07 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48x5xz27Zmz3Gnb; Mon, 6 Apr 2020 23:16:07 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 446E32FD99; Mon, 6 Apr 2020 23:16:07 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 036NG72G009619; Mon, 6 Apr 2020 23:16:07 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 036NG5I8009610; Mon, 6 Apr 2020 23:16:05 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004062316.036NG5I8009610@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 6 Apr 2020 23:16:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359677 - in head: libexec/ypxfr usr.sbin/rpc.yppasswdd usr.sbin/rpc.ypupdated usr.sbin/rpc.ypxfrd usr.sbin/ypldap usr.sbin/ypserv X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in head: libexec/ypxfr usr.sbin/rpc.yppasswdd usr.sbin/rpc.ypupdated usr.sbin/rpc.ypxfrd usr.sbin/ypldap usr.sbin/ypserv X-SVN-Commit-Revision: 359677 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 23:16:07 -0000 Author: kevans Date: Mon Apr 6 23:16:05 2020 New Revision: 359677 URL: https://svnweb.freebsd.org/changeset/base/359677 Log: yp*: fix -fno-common build This is mostly two problems spread out far and wide: - ypldap_process should be declared properly - debug is defined differently in many programs For the latter, just extern it and define it everywhere that actually needs it. This mostly works out nicely for ^/libexec/ypxfr, which can remove the assignment at the beginning of main in favor of defining it properly. -fno-common will become the default in GCC10/LLVM11. MFC after: 3 days Modified: head/libexec/ypxfr/ypxfr_main.c head/usr.sbin/rpc.yppasswdd/yppasswdd_main.c head/usr.sbin/rpc.ypupdated/ypupdated_main.c head/usr.sbin/rpc.ypxfrd/ypxfrd_main.c head/usr.sbin/ypldap/ypldap.c head/usr.sbin/ypldap/ypldap.h head/usr.sbin/ypserv/yp_access.c head/usr.sbin/ypserv/yp_error.c head/usr.sbin/ypserv/yp_main.c Modified: head/libexec/ypxfr/ypxfr_main.c ============================================================================== --- head/libexec/ypxfr/ypxfr_main.c Mon Apr 6 23:11:43 2020 (r359676) +++ head/libexec/ypxfr/ypxfr_main.c Mon Apr 6 23:16:05 2020 (r359677) @@ -53,6 +53,8 @@ __FBSDID("$FreeBSD$"); #include #include "ypxfr_extern.h" +int debug = 1; + char *progname = "ypxfr"; char *yp_dir = _PATH_YP; int _rpcpmstart = 0; @@ -175,8 +177,6 @@ main(int argc, char *argv[]) int remoteport; int interdom = 0; int secure = 0; - - debug = 1; if (!isatty(fileno(stderr))) { openlog("ypxfr", LOG_PID, LOG_DAEMON); Modified: head/usr.sbin/rpc.yppasswdd/yppasswdd_main.c ============================================================================== --- head/usr.sbin/rpc.yppasswdd/yppasswdd_main.c Mon Apr 6 23:11:43 2020 (r359676) +++ head/usr.sbin/rpc.yppasswdd/yppasswdd_main.c Mon Apr 6 23:16:05 2020 (r359677) @@ -83,6 +83,7 @@ static int _rpcfdtype; #define _IDLE 0 #define _SERVED 1 #define _SERVING 2 +int debug; static char _localhost[] = "localhost"; static char _passwd_byname[] = "passwd.byname"; @@ -172,8 +173,6 @@ main(int argc, char *argv[]) char *mastername; char myname[MAXHOSTNAMELEN + 2]; int maxrec = RPC_MAXDATASIZE; - - extern int debug; debug = 1; Modified: head/usr.sbin/rpc.ypupdated/ypupdated_main.c ============================================================================== --- head/usr.sbin/rpc.ypupdated/ypupdated_main.c Mon Apr 6 23:11:43 2020 (r359676) +++ head/usr.sbin/rpc.ypupdated/ypupdated_main.c Mon Apr 6 23:16:05 2020 (r359677) @@ -76,6 +76,8 @@ static int _rpcfdtype; extern int _rpcsvcstate; /* Set when a request is serviced */ +int debug; + char *progname = "rpc.ypupdated"; char *yp_dir = "/var/yp/"; Modified: head/usr.sbin/rpc.ypxfrd/ypxfrd_main.c ============================================================================== --- head/usr.sbin/rpc.ypxfrd/ypxfrd_main.c Mon Apr 6 23:11:43 2020 (r359676) +++ head/usr.sbin/rpc.ypxfrd/ypxfrd_main.c Mon Apr 6 23:16:05 2020 (r359677) @@ -78,6 +78,8 @@ static int _rpcfdtype; extern int _rpcsvcstate; /* Set when a request is serviced */ +int debug; + char *progname = "rpc.ypxfrd"; char *yp_dir = "/var/yp/"; Modified: head/usr.sbin/ypldap/ypldap.c ============================================================================== --- head/usr.sbin/ypldap/ypldap.c Mon Apr 6 23:11:43 2020 (r359676) +++ head/usr.sbin/ypldap/ypldap.c Mon Apr 6 23:16:05 2020 (r359677) @@ -40,6 +40,8 @@ #include "ypldap.h" +enum ypldap_process_type ypldap_process; + __dead2 void usage(void); int check_child(pid_t, const char *); void main_sig_handler(int, short, void *); Modified: head/usr.sbin/ypldap/ypldap.h ============================================================================== --- head/usr.sbin/ypldap/ypldap.h Mon Apr 6 23:11:43 2020 (r359676) +++ head/usr.sbin/ypldap/ypldap.h Mon Apr 6 23:16:05 2020 (r359677) @@ -47,10 +47,11 @@ struct ypldap_addr { }; TAILQ_HEAD(ypldap_addr_list, ypldap_addr); -enum { +enum ypldap_process_type { PROC_MAIN, PROC_CLIENT -} ypldap_process; +}; +extern enum ypldap_process_type ypldap_process; struct userent { RB_ENTRY(userent) ue_name_node; Modified: head/usr.sbin/ypserv/yp_access.c ============================================================================== --- head/usr.sbin/ypserv/yp_access.c Mon Apr 6 23:11:43 2020 (r359676) +++ head/usr.sbin/ypserv/yp_access.c Mon Apr 6 23:16:05 2020 (r359677) @@ -57,8 +57,6 @@ __FBSDID("$FreeBSD$"); #include "tcpd.h" #endif -extern int debug; - static const char *yp_procs[] = { /* NIS v1 */ "ypoldproc_null", Modified: head/usr.sbin/ypserv/yp_error.c ============================================================================== --- head/usr.sbin/ypserv/yp_error.c Mon Apr 6 23:11:43 2020 (r359676) +++ head/usr.sbin/ypserv/yp_error.c Mon Apr 6 23:16:05 2020 (r359677) @@ -47,8 +47,6 @@ __FBSDID("$FreeBSD$"); #include #include "yp_extern.h" -int debug; - extern int _rpcpmstart; extern char *progname; static void __verr(const char *fmt, va_list ap) __printflike(1, 0); Modified: head/usr.sbin/ypserv/yp_main.c ============================================================================== --- head/usr.sbin/ypserv/yp_main.c Mon Apr 6 23:11:43 2020 (r359676) +++ head/usr.sbin/ypserv/yp_main.c Mon Apr 6 23:16:05 2020 (r359677) @@ -89,7 +89,7 @@ extern int _rpc_dtablesize(void); extern int _rpcsvcstate; /* Set when a request is serviced */ char *progname = "ypserv"; char *yp_dir = _PATH_YP; -/*int debug = 0;*/ +int debug; int do_dns = 0; int resfd; From owner-svn-src-all@freebsd.org Mon Apr 6 23:20:21 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D2B9A27FA2F; Mon, 6 Apr 2020 23:20:21 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48x62s4tvhz3Gy8; Mon, 6 Apr 2020 23:20:21 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9EB2B2FD9D; Mon, 6 Apr 2020 23:20:21 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 036NKLdZ009888; Mon, 6 Apr 2020 23:20:21 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 036NKKiZ009885; Mon, 6 Apr 2020 23:20:20 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004062320.036NKKiZ009885@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 6 Apr 2020 23:20:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359678 - head/usr.bin/indent X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/usr.bin/indent X-SVN-Commit-Revision: 359678 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 23:20:21 -0000 Author: kevans Date: Mon Apr 6 23:20:20 2020 New Revision: 359678 URL: https://svnweb.freebsd.org/changeset/base/359678 Log: indent: fix the -fno-common build Spread the globals far and wide, hopefully to the files that make the most sense. -fno-common will become the default in GCC10/LLVM11. MFC after: 3 days Modified: head/usr.bin/indent/indent.c head/usr.bin/indent/indent_globs.h head/usr.bin/indent/io.c head/usr.bin/indent/parse.c Modified: head/usr.bin/indent/indent.c ============================================================================== --- head/usr.bin/indent/indent.c Mon Apr 6 23:16:05 2020 (r359677) +++ head/usr.bin/indent/indent.c Mon Apr 6 23:20:20 2020 (r359678) @@ -59,6 +59,30 @@ __FBSDID("$FreeBSD$"); #include "indent_codes.h" #include "indent.h" +/* Globals */ +FILE *input, *output; +char *labbuf, *s_lab, *e_lab, *l_lab; +char *codebuf, *s_code, *e_code, *l_code; +char *combuf, *s_com, *e_com, *l_com; +char *tokenbuf, *s_token, *e_token, *l_token; +char *in_buffer, *in_buffer_limit; +char *buf_ptr, *buf_end; + +char sc_buf[sc_size]; + +char *save_com, *sc_end; +char *bp_save; +char *be_save; + +struct options opt; +int line_no; + +struct parser_state ps; +int ifdef_level; +struct parser_state state_stack[5]; +struct parser_state match_state[5]; + + static void bakcopy(void); static void indent_declaration(int, int); Modified: head/usr.bin/indent/indent_globs.h ============================================================================== --- head/usr.bin/indent/indent_globs.h Mon Apr 6 23:16:05 2020 (r359677) +++ head/usr.bin/indent/indent_globs.h Mon Apr 6 23:20:20 2020 (r359678) @@ -49,8 +49,8 @@ #define true 1 -FILE *input; /* the fid for the input file */ -FILE *output; /* the output file */ +extern FILE *input; /* the fid for the input file */ +extern FILE *output; /* the output file */ #define CHECK_SIZE_CODE(desired_size) \ if (e_code + (desired_size) >= l_code) { \ @@ -104,41 +104,43 @@ FILE *output; /* the output file */ s_token = tokenbuf + 1; \ } -char *labbuf; /* buffer for label */ -char *s_lab; /* start ... */ -char *e_lab; /* .. and end of stored label */ -char *l_lab; /* limit of label buffer */ +extern char *labbuf; /* buffer for label */ +extern char *s_lab; /* start ... */ +extern char *e_lab; /* .. and end of stored label */ +extern char *l_lab; /* limit of label buffer */ -char *codebuf; /* buffer for code section */ -char *s_code; /* start ... */ -char *e_code; /* .. and end of stored code */ -char *l_code; /* limit of code section */ +extern char *codebuf; /* buffer for code section */ +extern char *s_code; /* start ... */ +extern char *e_code; /* .. and end of stored code */ +extern char *l_code; /* limit of code section */ -char *combuf; /* buffer for comments */ -char *s_com; /* start ... */ -char *e_com; /* ... and end of stored comments */ -char *l_com; /* limit of comment buffer */ +extern char *combuf; /* buffer for comments */ +extern char *s_com; /* start ... */ +extern char *e_com; /* ... and end of stored comments */ +extern char *l_com; /* limit of comment buffer */ #define token s_token -char *tokenbuf; /* the last token scanned */ -char *s_token; -char *e_token; -char *l_token; +extern char *tokenbuf; /* the last token scanned */ +extern char *s_token; +extern char *e_token; +extern char *l_token; -char *in_buffer; /* input buffer */ -char *in_buffer_limit; /* the end of the input buffer */ -char *buf_ptr; /* ptr to next character to be taken from - * in_buffer */ -char *buf_end; /* ptr to first after last char in in_buffer */ +extern char *in_buffer; /* input buffer */ +extern char *in_buffer_limit; /* the end of the input buffer */ +extern char *buf_ptr; /* ptr to next character to be taken + * from in_buffer */ +extern char *buf_end; /* ptr to first after last char in + * in_buffer */ -char sc_buf[sc_size]; /* input text is saved here when looking for - * the brace after an if, while, etc */ -char *save_com; /* start of the comment stored in sc_buf */ -char *sc_end; /* pointer into save_com buffer */ +extern char sc_buf[sc_size]; /* input text is saved here when looking + * for the brace after an if, while, etc */ +extern char *save_com; /* start of the comment stored in + * sc_buf */ +extern char *sc_end; /* pointer into save_com buffer */ -char *bp_save; /* saved value of buf_ptr when taking input - * from save_com */ -char *be_save; /* similarly saved value of buf_end */ +extern char *bp_save; /* saved value of buf_ptr when taking + * input from save_com */ +extern char *be_save; /* similarly saved value of buf_end */ struct options { @@ -217,21 +219,22 @@ struct options { * uses all spaces */ int verbose; /* when true, non-essential error messages * are printed */ -} opt; +}; +extern struct options opt; -int found_err; -int n_real_blanklines; -int prefix_blankline_requested; -int postfix_blankline_requested; -int break_comma; /* when true and not in parens, break after a +extern int found_err; +extern int n_real_blanklines; +extern int prefix_blankline_requested; +extern int postfix_blankline_requested; +extern int break_comma; /* when true and not in parens, break after a * comma */ -float case_ind; /* indentation level to be used for a "case +extern float case_ind; /* indentation level to be used for a "case * n:" */ -int code_lines; /* count of lines with code */ -int had_eof; /* set to true when input is exhausted */ -int line_no; /* the current line number. */ -int inhibit_formatting; /* true if INDENT OFF is in effect */ -int suppress_blanklines;/* set iff following blanklines should be +extern int code_lines; /* count of lines with code */ +extern int had_eof; /* set to true when input is exhausted */ +extern int line_no; /* the current line number. */ +extern int inhibit_formatting; /* true if INDENT OFF is in effect */ +extern int suppress_blanklines;/* set iff following blanklines should be * suppressed */ #define STACKSIZE 256 @@ -312,8 +315,10 @@ struct parser_state { int tos; /* pointer to top of stack */ char procname[100]; /* The name of the current procedure */ int just_saw_decl; -} ps; +}; -int ifdef_level; -struct parser_state state_stack[5]; -struct parser_state match_state[5]; +extern struct parser_state ps; + +extern int ifdef_level; +extern struct parser_state state_stack[5]; +extern struct parser_state match_state[5]; Modified: head/usr.bin/indent/io.c ============================================================================== --- head/usr.bin/indent/io.c Mon Apr 6 23:16:05 2020 (r359677) +++ head/usr.bin/indent/io.c Mon Apr 6 23:20:20 2020 (r359678) @@ -52,6 +52,15 @@ __FBSDID("$FreeBSD$"); #include "indent_globs.h" #include "indent.h" +/* Globals */ +int found_err; +int n_real_blanklines; +int prefix_blankline_requested, postfix_blankline_requested; +int code_lines; +int had_eof; +int inhibit_formatting; +int suppress_blanklines; + int comment_open; static int paren_target; static int pad_output(int current, int target); Modified: head/usr.bin/indent/parse.c ============================================================================== --- head/usr.bin/indent/parse.c Mon Apr 6 23:16:05 2020 (r359677) +++ head/usr.bin/indent/parse.c Mon Apr 6 23:20:20 2020 (r359678) @@ -50,6 +50,10 @@ __FBSDID("$FreeBSD$"); #include "indent_codes.h" #include "indent.h" +/* Globals */ +int break_comma; +float case_ind; + static void reduce(void); void From owner-svn-src-all@freebsd.org Mon Apr 6 23:21:40 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8205127FC37; Mon, 6 Apr 2020 23:21:40 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48x64N2wzxz3HHn; Mon, 6 Apr 2020 23:21:40 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5FBD22FE02; Mon, 6 Apr 2020 23:21:40 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 036NLeJJ014153; Mon, 6 Apr 2020 23:21:40 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 036NLd5o014150; Mon, 6 Apr 2020 23:21:39 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <202004062321.036NLd5o014150@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Mon, 6 Apr 2020 23:21:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359679 - in head/sys/fs: nfs nfsserver X-SVN-Group: head X-SVN-Commit-Author: rmacklem X-SVN-Commit-Paths: in head/sys/fs: nfs nfsserver X-SVN-Commit-Revision: 359679 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 23:21:40 -0000 Author: rmacklem Date: Mon Apr 6 23:21:39 2020 New Revision: 359679 URL: https://svnweb.freebsd.org/changeset/base/359679 Log: Fix noisy NFSv4 server printf. Peter reported that his dmesg was getting cluttered with nfsrv_cache_session: no session messages when he rebooted his NFS server and they did not seem useful. He was correct, in that these messages are "normal" and expected when NFSv4.1 or NFSv4.2 are mounted and the server is rebooted. This patch silences the printf() during the grace period after a reboot. It also adds the client IP address to the printf(), so that the message is more useful if/when it occurs. If this happens outside of the server's grace period, it does indicate something is not working correctly. Instead of adding yet another nd_XXX argument, the arguments for nfsrv_cache_session() were simplified to take a "struct nfsrv_descript *". Reported by: pen@lysator.liu.se MFC after: 2 weeks Modified: head/sys/fs/nfs/nfs_var.h head/sys/fs/nfsserver/nfs_nfsdkrpc.c head/sys/fs/nfsserver/nfs_nfsdstate.c Modified: head/sys/fs/nfs/nfs_var.h ============================================================================== --- head/sys/fs/nfs/nfs_var.h Mon Apr 6 23:20:20 2020 (r359678) +++ head/sys/fs/nfs/nfs_var.h Mon Apr 6 23:21:39 2020 (r359679) @@ -143,7 +143,7 @@ void nfsrv_throwawayallstate(NFSPROC_T *); int nfsrv_checksequence(struct nfsrv_descript *, uint32_t, uint32_t *, uint32_t *, int, uint32_t *, NFSPROC_T *); int nfsrv_checkreclaimcomplete(struct nfsrv_descript *, int); -void nfsrv_cache_session(uint8_t *, uint32_t, int, struct mbuf **); +void nfsrv_cache_session(struct nfsrv_descript *, struct mbuf **); void nfsrv_freeallbackchannel_xprts(void); int nfsrv_layoutcommit(struct nfsrv_descript *, vnode_t, int, int, uint64_t, uint64_t, uint64_t, int, struct timespec *, int, nfsv4stateid_t *, Modified: head/sys/fs/nfsserver/nfs_nfsdkrpc.c ============================================================================== --- head/sys/fs/nfsserver/nfs_nfsdkrpc.c Mon Apr 6 23:20:20 2020 (r359678) +++ head/sys/fs/nfsserver/nfs_nfsdkrpc.c Mon Apr 6 23:21:39 2020 (r359679) @@ -393,8 +393,7 @@ nfs_proc(struct nfsrv_descript *nd, u_int32_t xid, SVC } else m = NULL; if ((nd->nd_flag & ND_HASSEQUENCE) != 0) - nfsrv_cache_session(nd->nd_sessionid, - nd->nd_slotid, nd->nd_repstat, &m); + nfsrv_cache_session(nd, &m); if (nd->nd_repstat == NFSERR_REPLYFROMCACHE) nd->nd_repstat = 0; cacherep = RC_REPLY; Modified: head/sys/fs/nfsserver/nfs_nfsdstate.c ============================================================================== --- head/sys/fs/nfsserver/nfs_nfsdstate.c Mon Apr 6 23:20:20 2020 (r359678) +++ head/sys/fs/nfsserver/nfs_nfsdstate.c Mon Apr 6 23:21:39 2020 (r359679) @@ -6294,22 +6294,56 @@ nfsrv_checkreclaimcomplete(struct nfsrv_descript *nd, * Cache the reply in a session slot. */ void -nfsrv_cache_session(uint8_t *sessionid, uint32_t slotid, int repstat, - struct mbuf **m) +nfsrv_cache_session(struct nfsrv_descript *nd, struct mbuf **m) { struct nfsdsession *sep; struct nfssessionhash *shp; + char *buf, *cp; +#ifdef INET + struct sockaddr_in *sin; +#endif +#ifdef INET6 + struct sockaddr_in6 *sin6; +#endif - shp = NFSSESSIONHASH(sessionid); + shp = NFSSESSIONHASH(nd->nd_sessionid); NFSLOCKSESSION(shp); - sep = nfsrv_findsession(sessionid); + sep = nfsrv_findsession(nd->nd_sessionid); if (sep == NULL) { NFSUNLOCKSESSION(shp); - printf("nfsrv_cache_session: no session\n"); + if ((nfsrv_stablefirst.nsf_flags & NFSNSF_GRACEOVER) != 0) { + buf = malloc(INET6_ADDRSTRLEN, M_TEMP, M_WAITOK); + switch (nd->nd_nam->sa_family) { +#ifdef INET + case AF_INET: + sin = (struct sockaddr_in *)nd->nd_nam; + cp = inet_ntop(sin->sin_family, + &sin->sin_addr.s_addr, buf, + INET6_ADDRSTRLEN); + break; +#endif +#ifdef INET6 + case AF_INET6: + sin6 = (struct sockaddr_in6 *)nd->nd_nam; + cp = inet_ntop(sin6->sin6_family, + &sin6->sin6_addr, buf, INET6_ADDRSTRLEN); + break; +#endif + default: + cp = NULL; + } + if (cp != NULL) + printf("nfsrv_cache_session: no session " + "IPaddr=%s\n", cp); + else + printf("nfsrv_cache_session: no session\n"); + free(buf, M_TEMP); + } m_freem(*m); return; } - nfsv4_seqsess_cacherep(slotid, sep->sess_slots, repstat, m); + nfsv4_seqsess_cacherep(nd->nd_slotid, sep->sess_slots, nd->nd_repstat, + m); NFSUNLOCKSESSION(shp); } From owner-svn-src-all@freebsd.org Mon Apr 6 23:28:26 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 84A2B27FD3D; Mon, 6 Apr 2020 23:28:26 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48x6DB3J6jz3HXd; Mon, 6 Apr 2020 23:28:26 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 67C142FF89; Mon, 6 Apr 2020 23:28:26 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 036NSQQd016159; Mon, 6 Apr 2020 23:28:26 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 036NSPU9016153; Mon, 6 Apr 2020 23:28:25 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004062328.036NSPU9016153@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 6 Apr 2020 23:28:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359680 - in head/usr.bin: gprof mail tip/tip X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in head/usr.bin: gprof mail tip/tip X-SVN-Commit-Revision: 359680 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 23:28:26 -0000 Author: kevans Date: Mon Apr 6 23:28:24 2020 New Revision: 359680 URL: https://svnweb.freebsd.org/changeset/base/359680 Log: mail/gprof/tip: tap with the ugly stick The ugly stick here is this bit in the respective headers: #ifndef EXTERN #define EXTERN extern #endif with a follow-up #define EXTERN in a single .c file to push all of their definitions into one spot. A pass should be made over these three later to push these definitions into the correct files instead, but this will suffice for now and at a more leisurely pace. MFC after: 3 days Modified: head/usr.bin/gprof/gprof.c head/usr.bin/gprof/gprof.h head/usr.bin/mail/glob.h head/usr.bin/mail/main.c head/usr.bin/mail/strings.c head/usr.bin/tip/tip/tip.c head/usr.bin/tip/tip/tip.h Modified: head/usr.bin/gprof/gprof.c ============================================================================== --- head/usr.bin/gprof/gprof.c Mon Apr 6 23:21:39 2020 (r359679) +++ head/usr.bin/gprof/gprof.c Mon Apr 6 23:28:24 2020 (r359680) @@ -49,6 +49,7 @@ __FBSDID("$FreeBSD$"); #include #include +#define EXTERN #include "gprof.h" static int valcmp(const void *, const void *); Modified: head/usr.bin/gprof/gprof.h ============================================================================== --- head/usr.bin/gprof/gprof.h Mon Apr 6 23:21:39 2020 (r359679) +++ head/usr.bin/gprof/gprof.h Mon Apr 6 23:28:24 2020 (r359680) @@ -75,18 +75,22 @@ typedef int bool; */ #define HISTORICAL_SCALE_2 2 +#ifndef EXTERN +#define EXTERN extern +#endif + /* * ticks per second */ -long hz; +EXTERN long hz; -size_t histcounter_size; -int histcounter_type; +EXTERN size_t histcounter_size; +EXTERN int histcounter_type; -char *a_outname; +EXTERN char *a_outname; #define A_OUTNAME "a.out" -char *gmonname; +EXTERN char *gmonname; #define GMONSUM "gmon.sum" /* @@ -146,9 +150,9 @@ struct nl { }; typedef struct nl nltype; -nltype *nl; /* the whole namelist */ -nltype *npe; /* the virtual end of the namelist */ -int nname; /* the number of function names */ +EXTERN nltype *nl; /* the whole namelist */ +EXTERN nltype *npe; /* the virtual end of the namelist */ +EXTERN int nname; /* the number of function names */ #define HASCYCLEXIT 0x08 /* node has arc exiting from cycle */ #define CYCLEHEAD 0x10 /* node marked as head of a cycle */ @@ -167,9 +171,9 @@ struct cl { }; typedef struct cl cltype; -arctype *archead; /* the head of arcs in current cycle list */ -cltype *cyclehead; /* the head of the list */ -int cyclecnt; /* the number of cycles found */ +EXTERN arctype *archead; /* the head of arcs in current cycle list */ +EXTERN cltype *cyclehead; /* the head of the list */ +EXTERN int cyclecnt; /* the number of cycles found */ #define CYCLEMAX 100 /* maximum cycles before cutting one of them */ /* @@ -183,8 +187,8 @@ int cyclecnt; /* the number of cycles found */ * namelist entries for cycle headers. * the number of discovered cycles. */ -nltype *cyclenl; /* cycle header namelist */ -int ncycle; /* number of cycles discovered */ +EXTERN nltype *cyclenl; /* cycle header namelist */ +EXTERN int ncycle; /* number of cycles discovered */ /* * The header on the gmon.out file. @@ -200,43 +204,46 @@ struct ophdr { int ncnt; }; -int debug; +EXTERN int debug; /* * Each discretized pc sample has * a count of the number of samples in its range */ -double *samples; +EXTERN double *samples; -unsigned long s_lowpc; /* lowpc from the profile file */ -unsigned long s_highpc; /* highpc from the profile file */ -unsigned long lowpc, highpc; /* range profiled, in historical units */ -unsigned sampbytes; /* number of bytes of samples */ -int nsamples; /* number of samples */ -double actime; /* accumulated time thus far for putprofline */ -double totime; /* total time for all routines */ -double printtime; /* total of time being printed */ -double scale; /* scale factor converting samples to pc +EXTERN unsigned long s_lowpc; /* lowpc from the profile file */ +EXTERN unsigned long s_highpc; /* highpc from the profile file */ +/* range profiled, in historical units */ +EXTERN unsigned long lowpc, highpc; +EXTERN unsigned sampbytes; /* number of bytes of samples */ +EXTERN int nsamples; /* number of samples */ +/* accumulated time thus far for putprofline */ +EXTERN double actime; +EXTERN double totime; /* total time for all routines */ +EXTERN double printtime; /* total of time being printed */ +EXTERN double scale; /* scale factor converting samples to pc values: each sample covers scale bytes */ -unsigned char *textspace; /* text space of a.out in core */ -int cyclethreshold; /* with -C, minimum cycle size to ignore */ +EXTERN unsigned char *textspace; /* text space of a.out in core */ +/* with -C, minimum cycle size to ignore */ +EXTERN int cyclethreshold; /* * option flags, from a to z. */ -bool aflag; /* suppress static functions */ -bool bflag; /* blurbs, too */ -bool Cflag; /* find cut-set to eliminate cycles */ -bool dflag; /* debugging options */ -bool eflag; /* specific functions excluded */ -bool Eflag; /* functions excluded with time */ -bool fflag; /* specific functions requested */ -bool Fflag; /* functions requested with time */ -bool kflag; /* arcs to be deleted */ -bool Kflag; /* use the running kernel for symbols */ -bool sflag; /* sum multiple gmon.out files */ -bool uflag; /* suppress symbols hidden from C */ -bool zflag; /* zero time/called functions, too */ +EXTERN bool aflag; /* suppress static functions */ +EXTERN bool bflag; /* blurbs, too */ +EXTERN bool Cflag; /* find cut-set to eliminate cycles */ +EXTERN bool dflag; /* debugging options */ +EXTERN bool eflag; /* specific functions excluded */ +EXTERN bool Eflag; /* functions excluded with time */ +EXTERN bool fflag; /* specific functions requested */ +EXTERN bool Fflag; /* functions requested with time */ +EXTERN bool kflag; /* arcs to be deleted */ +EXTERN bool Kflag; /* use the running kernel for symbols */ +EXTERN bool sflag; /* sum multiple gmon.out files */ +EXTERN bool uflag; /* suppress symbols hidden from C */ +EXTERN bool zflag; /* zero time/called functions, too */ /* * structure for various string lists @@ -245,12 +252,12 @@ struct stringlist { struct stringlist *next; char *string; }; -struct stringlist *elist; -struct stringlist *Elist; -struct stringlist *flist; -struct stringlist *Flist; -struct stringlist *kfromlist; -struct stringlist *ktolist; +extern struct stringlist *elist; +extern struct stringlist *Elist; +extern struct stringlist *flist; +extern struct stringlist *Flist; +extern struct stringlist *kfromlist; +extern struct stringlist *ktolist; /* * function declarations Modified: head/usr.bin/mail/glob.h ============================================================================== --- head/usr.bin/mail/glob.h Mon Apr 6 23:21:39 2020 (r359679) +++ head/usr.bin/mail/glob.h Mon Apr 6 23:28:24 2020 (r359680) @@ -38,51 +38,51 @@ * def.h must be included first. */ -int msgCount; /* Count of messages read in */ -int rcvmode; /* True if receiving mail */ -int sawcom; /* Set after first command */ -char *Tflag; /* -T temp file for netnews */ -int senderr; /* An error while checking */ -int edit; /* Indicates editing a file */ -int readonly; /* Will be unable to rewrite file */ -int noreset; /* String resets suspended */ -int sourcing; /* Currently reading variant file */ -int loading; /* Loading user definitions */ -int cond; /* Current state of conditional exc. */ -FILE *itf; /* Input temp file buffer */ -FILE *otf; /* Output temp file buffer */ -int image; /* File descriptor for image of msg */ -FILE *input; /* Current command input file */ -char mailname[PATHSIZE]; /* Name of current file */ -char prevfile[PATHSIZE]; /* Name of previous file */ -char *homedir; /* Path name of home directory */ -char *myname; /* My login name */ -off_t mailsize; /* Size of system mailbox */ -int lexnumber; /* Number of TNUMBER from scan() */ -char lexstring[STRINGLEN]; /* String from TSTRING, scan() */ -int regretp; /* Pointer to TOS of regret tokens */ -int regretstack[REGDEP]; /* Stack of regretted tokens */ -char *string_stack[REGDEP]; /* Stack of regretted strings */ -int numberstack[REGDEP]; /* Stack of regretted numbers */ -struct message *dot; /* Pointer to current message */ -struct message *message; /* The actual message structure */ -struct var *variables[HSHSIZE]; /* Pointer to active var list */ -struct grouphead *groups[HSHSIZE];/* Pointer to active groups */ -struct ignoretab ignore[2]; /* ignored and retained fields +extern int msgCount; /* Count of messages read in */ +extern int rcvmode; /* True if receiving mail */ +extern int sawcom; /* Set after first command */ +extern char *Tflag; /* -T temp file for netnews */ +extern int senderr; /* An error while checking */ +extern int edit; /* Indicates editing a file */ +extern int readonly; /* Will be unable to rewrite file */ +extern int noreset; /* String resets suspended */ +extern int sourcing; /* Currently reading variant file */ +extern int loading; /* Loading user definitions */ +extern int cond; /* Current state of conditional exc. */ +extern FILE *itf; /* Input temp file buffer */ +extern FILE *otf; /* Output temp file buffer */ +extern int image; /* File descriptor for image of msg */ +extern FILE *input; /* Current command input file */ +extern char mailname[PATHSIZE]; /* Name of current file */ +extern char prevfile[PATHSIZE]; /* Name of previous file */ +extern char *homedir; /* Path name of home directory */ +extern char *myname; /* My login name */ +extern off_t mailsize; /* Size of system mailbox */ +extern int lexnumber; /* Number of TNUMBER from scan() */ +extern char lexstring[STRINGLEN]; /* String from TSTRING, scan() */ +extern int regretp; /* Pointer to TOS of regret tokens */ +extern int regretstack[REGDEP]; /* Stack of regretted tokens */ +extern char *string_stack[REGDEP]; /* Stack of regretted strings */ +extern int numberstack[REGDEP]; /* Stack of regretted numbers */ +extern struct message *dot; /* Pointer to current message */ +extern struct message *message; /* The actual message structure */ +extern struct var *variables[HSHSIZE]; /* Pointer to active var list */ +extern struct grouphead *groups[HSHSIZE];/* Pointer to active groups */ +extern struct ignoretab ignore[2]; /* ignored and retained fields 0 is ignore, 1 is retain */ -struct ignoretab saveignore[2]; /* ignored and retained fields +extern struct ignoretab saveignore[2]; /* ignored and retained fields on save to folder */ -struct ignoretab ignoreall[2]; /* special, ignore all headers */ -char **altnames; /* List of alternate names for user */ -int debug; /* Debug flag set */ -int screenwidth; /* Screen width, or best guess */ -int screenheight; /* Screen height, or best guess, +extern struct ignoretab ignoreall[2]; /* special, ignore all headers */ +extern char **altnames; /* List of alternate names for user */ +extern int debug; /* Debug flag set */ +extern int screenwidth; /* Screen width, or best guess */ +extern int screenheight; /* Screen height, or best guess, for "header" command */ -int realscreenheight; /* the real screen height */ +extern int realscreenheight; /* the real screen height */ #include -jmp_buf srbuf; +extern jmp_buf srbuf; /* @@ -93,7 +93,7 @@ jmp_buf srbuf; */ #define NSPACE 25 /* Total number of string spaces */ -struct strings { +extern struct strings { char *s_topFree; /* Beginning of this area */ char *s_nextFree; /* Next alloctable place here */ unsigned s_nleft; /* Number of bytes left here */ Modified: head/usr.bin/mail/main.c ============================================================================== --- head/usr.bin/mail/main.c Mon Apr 6 23:21:39 2020 (r359679) +++ head/usr.bin/mail/main.c Mon Apr 6 23:28:24 2020 (r359680) @@ -52,6 +52,49 @@ __FBSDID("$FreeBSD$"); * * Startup -- interface with user. */ +int msgCount; +int rcvmode; +int sawcom; +char *Tflag; +int senderr; +int edit; +int readonly; +int noreset; +int sourcing; +int loading; +int cond; +FILE *itf; +FILE *otf; +int image; +FILE *input; +char mailname[PATHSIZE]; +char prevfile[PATHSIZE]; +char *homedir; +char *myname; +off_t mailsize; +int lexnumber; +char lexstring[STRINGLEN]; +int regretp; +int regretstack[REGDEP]; +char *string_stack[REGDEP]; +int numberstack[REGDEP]; +struct message *dot; +struct message *message; +struct var *variables[HSHSIZE]; +struct grouphead *groups[HSHSIZE]; +struct ignoretab ignore[2]; + +struct ignoretab saveignore[2]; + +struct ignoretab ignoreall[2]; +char **altnames; +int debug; +int screenwidth; +int screenheight; + +int realscreenheight; + +jmp_buf srbuf; static jmp_buf hdrjmp; Modified: head/usr.bin/mail/strings.c ============================================================================== --- head/usr.bin/mail/strings.c Mon Apr 6 23:21:39 2020 (r359679) +++ head/usr.bin/mail/strings.c Mon Apr 6 23:28:24 2020 (r359680) @@ -48,6 +48,8 @@ __FBSDID("$FreeBSD$"); #include "rcv.h" #include "extern.h" +struct strings stringdope[NSPACE]; + /* * Allocate size more bytes of space and return the address of the * first byte to the caller. An even number of bytes are always Modified: head/usr.bin/tip/tip/tip.c ============================================================================== --- head/usr.bin/tip/tip/tip.c Mon Apr 6 23:21:39 2020 (r359679) +++ head/usr.bin/tip/tip/tip.c Mon Apr 6 23:28:24 2020 (r359680) @@ -54,6 +54,7 @@ static const char rcsid[] = "$OpenBSD: tip.c,v 1.30 20 * or * cu phone-number [-s speed] [-l line] [-a acu] */ +#define EXTERN #include "tip.h" #include "pathnames.h" Modified: head/usr.bin/tip/tip/tip.h ============================================================================== --- head/usr.bin/tip/tip/tip.h Mon Apr 6 23:21:39 2020 (r359679) +++ head/usr.bin/tip/tip/tip.h Mon Apr 6 23:28:24 2020 (r359680) @@ -58,40 +58,44 @@ #include #include +#ifndef EXTERN +#define EXTERN extern +#endif + /* * Remote host attributes */ -char *DV; /* UNIX device(s) to open */ -char *EL; /* chars marking an EOL */ -char *CM; /* initial connection message */ -char *IE; /* EOT to expect on input */ -char *OE; /* EOT to send to complete FT */ -char *CU; /* call unit if making a phone call */ -char *AT; /* acu type */ -char *PN; /* phone number(s) */ -char *DI; /* disconnect string */ -char *PA; /* parity to be generated */ +EXTERN char *DV; /* UNIX device(s) to open */ +EXTERN char *EL; /* chars marking an EOL */ +EXTERN char *CM; /* initial connection message */ +EXTERN char *IE; /* EOT to expect on input */ +EXTERN char *OE; /* EOT to send to complete FT */ +EXTERN char *CU; /* call unit if making a phone call */ +EXTERN char *AT; /* acu type */ +EXTERN char *PN; /* phone number(s) */ +EXTERN char *DI; /* disconnect string */ +EXTERN char *PA; /* parity to be generated */ -char *PH; /* phone number file */ -char *RM; /* remote file name */ -char *HO; /* host name */ +EXTERN char *PH; /* phone number file */ +EXTERN char *RM; /* remote file name */ +EXTERN char *HO; /* host name */ -long BR; /* line speed for conversation */ -long FS; /* frame size for transfers */ +EXTERN long BR; /* line speed for conversation */ +EXTERN long FS; /* frame size for transfers */ -short DU; /* this host is dialed up */ -short HW; /* this device is hardwired, see hunt.c */ -char *ES; /* escape character */ -char *EX; /* exceptions */ -char *FO; /* force (literal next) char*/ -char *RC; /* raise character */ -char *RE; /* script record file */ -char *PR; /* remote prompt */ -long DL; /* line delay for file transfers to remote */ -long CL; /* char delay for file transfers to remote */ -long ET; /* echocheck timeout */ -long LD; /* line disc */ -short HD; /* this host is half duplex - do local echo */ +EXTERN short DU; /* this host is dialed up */ +EXTERN short HW; /* this device is hardwired, see hunt.c */ +EXTERN char *ES; /* escape character */ +EXTERN char *EX; /* exceptions */ +EXTERN char *FO; /* force (literal next) char*/ +EXTERN char *RC; /* raise character */ +EXTERN char *RE; /* script record file */ +EXTERN char *PR; /* remote prompt */ +EXTERN long DL; /* line delay for file transfers to remote */ +EXTERN long CL; /* char delay for file transfers to remote */ +EXTERN long ET; /* echocheck timeout */ +EXTERN long LD; /* line disc */ +EXTERN short HD; /* this host is half duplex - do local echo */ /* * String value table @@ -237,39 +241,39 @@ extern value_t vtable[]; /* variable table */ #define NOFILE ((FILE *)NULL) #define NOPWD ((struct passwd *)0) -struct termios term; /* current mode of terminal */ -struct termios defterm; /* initial mode of terminal */ -struct termios defchars; /* current mode with initial chars */ -int gotdefterm; +EXTERN struct termios term; /* current mode of terminal */ +EXTERN struct termios defterm; /* initial mode of terminal */ +EXTERN struct termios defchars; /* current mode with initial chars */ +EXTERN int gotdefterm; -FILE *fscript; /* FILE for scripting */ +EXTERN FILE *fscript; /* FILE for scripting */ -int fildes[2]; /* file transfer synchronization channel */ -int repdes[2]; /* read process sychronization channel */ -int FD; /* open file descriptor to remote host */ -int AC; /* open file descriptor to dialer (v831 only) */ -int vflag; /* print .tiprc initialization sequence */ -int noesc; /* no `~' escape char */ -int sfd; /* for ~< operation */ -pid_t tipin_pid; /* pid of tipin */ -pid_t tipout_pid; /* pid of tipout */ -uid_t uid, euid; /* real and effective user id's */ -gid_t gid, egid; /* real and effective group id's */ -int stop; /* stop transfer session flag */ -int quit; /* same; but on other end */ -int intflag; /* recognized interrupt */ -int stoprompt; /* for interrupting a prompt session */ -int timedout; /* ~> transfer timedout */ -int cumode; /* simulating the "cu" program */ -int bits8; /* terminal is 8-bit mode */ +EXTERN int fildes[2]; /* file transfer synchronization channel */ +EXTERN int repdes[2]; /* read process sychronization channel */ +EXTERN int FD; /* open file descriptor to remote host */ +EXTERN int AC; /* open file descriptor to dialer (v831 only) */ +EXTERN int vflag; /* print .tiprc initialization sequence */ +EXTERN int noesc; /* no `~' escape char */ +EXTERN int sfd; /* for ~< operation */ +EXTERN pid_t tipin_pid; /* pid of tipin */ +EXTERN pid_t tipout_pid; /* pid of tipout */ +EXTERN uid_t uid, euid; /* real and effective user id's */ +EXTERN gid_t gid, egid; /* real and effective group id's */ +EXTERN int stop; /* stop transfer session flag */ +EXTERN int quit; /* same; but on other end */ +EXTERN int intflag; /* recognized interrupt */ +EXTERN int stoprompt; /* for interrupting a prompt session */ +EXTERN int timedout; /* ~> transfer timedout */ +EXTERN int cumode; /* simulating the "cu" program */ +EXTERN int bits8; /* terminal is 8-bit mode */ #define STRIP_PAR (bits8 ? 0377 : 0177) -char fname[PATH_MAX]; /* file name buffer for ~< */ -char copyname[PATH_MAX]; /* file name buffer for ~> */ -char ccc; /* synchronization character */ -char *uucplock; /* name of lock file for uucp's */ +EXTERN char fname[PATH_MAX]; /* file name buffer for ~< */ +EXTERN char copyname[PATH_MAX]; /* file name buffer for ~> */ +EXTERN char ccc; /* synchronization character */ +EXTERN char *uucplock; /* name of lock file for uucp's */ -int odisc; /* initial tty line discipline */ +EXTERN int odisc; /* initial tty line discipline */ extern int disc; /* current tty discpline */ extern char *__progname; /* program name */ From owner-svn-src-all@freebsd.org Mon Apr 6 23:38:47 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4A4222A1056; Mon, 6 Apr 2020 23:38:47 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48x6S7191Zz3J3n; Mon, 6 Apr 2020 23:38:47 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 22EA21B5; Mon, 6 Apr 2020 23:38:47 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 036Nck5S022133; Mon, 6 Apr 2020 23:38:46 GMT (envelope-from brooks@FreeBSD.org) Received: (from brooks@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 036Nckt3022130; Mon, 6 Apr 2020 23:38:46 GMT (envelope-from brooks@FreeBSD.org) Message-Id: <202004062338.036Nckt3022130@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brooks set sender to brooks@FreeBSD.org using -f From: Brooks Davis Date: Mon, 6 Apr 2020 23:38:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359681 - in head: . share/mk X-SVN-Group: head X-SVN-Commit-Author: brooks X-SVN-Commit-Paths: in head: . share/mk X-SVN-Commit-Revision: 359681 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 23:38:47 -0000 Author: brooks Date: Mon Apr 6 23:38:46 2020 New Revision: 359681 URL: https://svnweb.freebsd.org/changeset/base/359681 Log: Fix compilation with upstream clang builtin headers. By using -nobuiltininc and adding the clang builtin headers resource dir to the end of the compiler header search path, we can still find headers such as immintrin.h but find the FreeBSD version of stddef.h/stdarg.h/.. first. This is a workaround until we are able to settle on and complete a plan to harmonize guard macros with LLVM. We've mostly worked out this on FreeBSD systems by removing select headers from the installed set of devel/llvm*, but that isn't a good solution for cross build. Submitted by: arichardson Obtained from: CheriBSD Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D17002 Modified: head/Makefile.inc1 head/share/mk/bsd.compiler.mk head/share/mk/bsd.sys.mk Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Mon Apr 6 23:28:24 2020 (r359680) +++ head/Makefile.inc1 Mon Apr 6 23:38:46 2020 (r359681) @@ -337,6 +337,7 @@ _TOOLCHAIN_METADATA_VARS= COMPILER_VERSION \ COMPILER_TYPE \ COMPILER_FEATURES \ COMPILER_FREEBSD_VERSION \ + COMPILER_RESOURCE_DIR \ LINKER_VERSION \ LINKER_FEATURES \ LINKER_TYPE \ Modified: head/share/mk/bsd.compiler.mk ============================================================================== --- head/share/mk/bsd.compiler.mk Mon Apr 6 23:28:24 2020 (r359680) +++ head/share/mk/bsd.compiler.mk Mon Apr 6 23:38:46 2020 (r359681) @@ -143,7 +143,7 @@ _cc_vars+=XCC X_ # The value is only used/exported for the same environment that impacts # CC and COMPILER_* settings here. _exported_vars= ${X_}COMPILER_TYPE ${X_}COMPILER_VERSION \ - ${X_}COMPILER_FREEBSD_VERSION + ${X_}COMPILER_FREEBSD_VERSION ${X_}COMPILER_RESOURCE_DIR ${X_}_cc_hash= ${${cc}}${MACHINE}${PATH} ${X_}_cc_hash:= ${${X_}_cc_hash:hash} # Only import if none of the vars are set somehow else. @@ -201,6 +201,10 @@ ${X_}COMPILER_FREEBSD_VERSION= unknown .endif .endif +.if !defined(${X_}COMPILER_RESOURCE_DIR) +${X_}COMPILER_RESOURCE_DIR!= ${${cc}:N${CCACHE_BIN}} -print-resource-dir 2>/dev/null || echo unknown +.endif + ${X_}COMPILER_FEATURES= .if (${${X_}COMPILER_TYPE} == "clang" && ${${X_}COMPILER_VERSION} >= 30300) || \ (${${X_}COMPILER_TYPE} == "gcc" && ${${X_}COMPILER_VERSION} >= 40800) @@ -224,6 +228,7 @@ X_COMPILER_TYPE= ${COMPILER_TYPE} X_COMPILER_VERSION= ${COMPILER_VERSION} X_COMPILER_FREEBSD_VERSION= ${COMPILER_FREEBSD_VERSION} X_COMPILER_FEATURES= ${COMPILER_FEATURES} +X_COMPILER_RESOURCE_DIR= ${COMPILER_RESOURCE_DIR} .endif # ${cc} == "CC" || (${cc} == "XCC" && ${XCC} != ${CC}) # Export the values so sub-makes don't have to look them up again, using the Modified: head/share/mk/bsd.sys.mk ============================================================================== --- head/share/mk/bsd.sys.mk Mon Apr 6 23:28:24 2020 (r359680) +++ head/share/mk/bsd.sys.mk Mon Apr 6 23:38:46 2020 (r359681) @@ -206,6 +206,21 @@ CWARNFLAGS+= -Wno-unknown-pragmas # This warning is utter nonsense CFLAGS+= -Wno-format-zero-length +.if ${COMPILER_TYPE} == "clang" +# The headers provided by clang are incompatible with the FreeBSD headers. +# If the version of clang is not one that has been patched to omit the +# incompatible headers, we need to compile with -nobuiltininc and add the +# resource dir to the end of the search paths. This ensures that headers such as +# immintrin.h are still found but stddef.h, etc. are picked up from FreeBSD. +# +# XXX: This is a hack to support complete external installs of clang while +# we work to synchronize our decleration guards with those in the clang tree. +.if ${MK_CLANG_BOOTSTRAP} == "no" && ${COMPILER_RESOURCE_DIR} != "unknown" && \ + !defined(BOOTSTRAPPING) +CFLAGS+=-nobuiltininc -idirafter ${COMPILER_RESOURCE_DIR}/include +.endif +.endif + CLANG_OPT_SMALL= -mstack-alignment=8 -mllvm -inline-threshold=3\ -mllvm -simplifycfg-dup-ret .if ${COMPILER_VERSION} >= 30500 && ${COMPILER_VERSION} < 30700 From owner-svn-src-all@freebsd.org Mon Apr 6 23:54:50 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id ECD7F2A1C15; Mon, 6 Apr 2020 23:54:50 +0000 (UTC) (envelope-from jrtc27@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48x6pf5FF6z3K6S; Mon, 6 Apr 2020 23:54:50 +0000 (UTC) (envelope-from jrtc27@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AF390597; Mon, 6 Apr 2020 23:54:50 +0000 (UTC) (envelope-from jrtc27@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 036Nsohs034126; Mon, 6 Apr 2020 23:54:50 GMT (envelope-from jrtc27@FreeBSD.org) Received: (from jrtc27@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 036Nsoi8034125; Mon, 6 Apr 2020 23:54:50 GMT (envelope-from jrtc27@FreeBSD.org) Message-Id: <202004062354.036Nsoi8034125@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jrtc27 set sender to jrtc27@FreeBSD.org using -f From: Jessica Clarke Date: Mon, 6 Apr 2020 23:54:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359682 - head/sys/riscv/riscv X-SVN-Group: head X-SVN-Commit-Author: jrtc27 X-SVN-Commit-Paths: head/sys/riscv/riscv X-SVN-Commit-Revision: 359682 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 23:54:51 -0000 Author: jrtc27 Date: Mon Apr 6 23:54:50 2020 New Revision: 359682 URL: https://svnweb.freebsd.org/changeset/base/359682 Log: riscv: Add semicolon missing from r359672 Somehow this got lost between build-testing and submitting to Phabricator. Modified: head/sys/riscv/riscv/pmap.c Modified: head/sys/riscv/riscv/pmap.c ============================================================================== --- head/sys/riscv/riscv/pmap.c Mon Apr 6 23:38:46 2020 (r359681) +++ head/sys/riscv/riscv/pmap.c Mon Apr 6 23:54:50 2020 (r359682) @@ -4354,7 +4354,7 @@ pmap_sync_icache(pmap_t pmap, vm_offset_t va, vm_size_ sched_pin(); mask = all_harts; CPU_CLR(PCPU_GET(hart), &mask); - fence_i() + fence_i(); if (!CPU_EMPTY(&mask) && smp_started) { fence(); sbi_remote_fence_i(mask.__bits); From owner-svn-src-all@freebsd.org Tue Apr 7 01:49:34 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2F2032A4644; Tue, 7 Apr 2020 01:49:34 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [96.47.72.132]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "freefall.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48x9M20GtNz3QHC; Tue, 7 Apr 2020 01:49:34 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (unknown [127.0.1.132]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by freefall.freebsd.org (Postfix) with ESMTPS id B069B1956B; Tue, 7 Apr 2020 01:49:33 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [172.31.3.2]) by mail.xzibition.com (Postfix) with ESMTP id A418512B64; Tue, 7 Apr 2020 01:49:32 +0000 (UTC) X-Virus-Scanned: amavisd-new at mail.xzibition.com Received: from mail.xzibition.com ([172.31.3.2]) by mail.xzibition.com (mail.xzibition.com [172.31.3.2]) (amavisd-new, port 10026) with LMTP id UEb_44IETf6b; Tue, 7 Apr 2020 01:49:28 +0000 (UTC) Subject: Re: svn commit: r359681 - in head: . share/mk DKIM-Filter: OpenDKIM Filter v2.10.3 mail.xzibition.com 93A3712AE4 To: Brooks Davis , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <202004062338.036Nckt3022130@repo.freebsd.org> From: Bryan Drewery Autocrypt: addr=bdrewery@FreeBSD.org; prefer-encrypt=mutual; keydata= mQENBFJphmsBCADiFgmS4bIzwZijrS31SjEMzg+n5zNellgM+HkShwehpqCiyhXdWrvH6dTZ a6u50pbUIX7doTR7W7PQHCjCTqtpwvcj0eulZva+iHFp+XrbgSFHn+VVXgkYP2MFySyZRFab D2qqzJBEJofhpv4HvY6uQI5K99pMqKr1Z/lHqsijYYu4RH2OfwB5PinId7xeldzWEonVoCr+ rfxzO/UrgA6v/3layGZcKNHFjmc3NqoN1DXtdaEHqtjIozzbndVkH6lkFvIpIrI6i5ox8pwp VxsxLCr/4Musd5CWgHiet5kSw2SzNeA8FbxdLYCpXNVu+uBACEbCUP+CSNy3NVfEUxsBABEB AAG0JEJyeWFuIERyZXdlcnkgPGJkcmV3ZXJ5QEZyZWVCU0Qub3JnPokBVwQTAQoAQQIbAwUL CQgHAwUVCgkICwUWAwIBAAIeAQIXgAIZARYhBPkXPLLDqup6XIofCTXXcbtuRpfPBQJb5hLu BQkNPvODAAoJEDXXcbtuRpfP9rMH/3f7cfX5rzyEV5QNfV/wS4jFukLoPZ4+nCM/TKxH3pEX 2bLbeQbkk6La8cueQ5Lpoht5XFZ18Y5TbMittngltrlNzoDD0h9are24OkDFGim3afJU7tkj IGQa1if+re+vI5BhzYwRhj0oKXzBi39M5oePd3L1dXfx83rg2FPyZBdIejsz6fR74T3JVkbd 6k2l5/3Zk2uiNMy+eBfDRgYE1E6CP28kV0nCeGKZgSVso0kGUUHud7voKqGVpMvbd0mE4pp4 PE5YJaFPjrll9miaDAvdU8LGIq5n6+aXPLKoQ/QNl6mg6ifgI6FfKILOkTizLW8E5PBSNnCm NapQ55yjm125AQ0EUmmGawEIAKJUU9+Q19oW1RK5jTf3m56j+szIc8Y9DaLC8REUKl4UZJBK BqCl6c0cukVApOD92XoU6hJPm2rLEyp/IcYcPPNTnVu8D8h9oag2L8EiFN7+2hk0xG+lwjc8 uOIZycme7AIJsBU4AZ1v63lxm2k104hwpiatgbe71GIGl7p1MX6ousP/wGzXCOF25Dx9w02C eRe7zEMfhnFjSUhzdCC9han2+KaVB7qIqNR3b8NfbwRNlwPmHqlhXffUow9OsQjSnTK8WKNR lx7xzVccXIvWP2wECFrmqmzMmXpSrmIuiWEpFwZ9x2a0Pva8dCNRiCVTK51IlRXKjaAxiN1u IUrMm6UAEQEAAYkBPAQYAQoAJgIbDBYhBPkXPLLDqup6XIofCTXXcbtuRpfPBQJb5hL4BQkN PvONAAoJEDXXcbtuRpfPCjcH/ivBsOpdpebpgLizSNU5/X4yWN5Aixsc9VBnQhGKAKnMINJQ VMpA55sD2JSPwloXYM/B3qyPJRS/9cwIuX5LDNKKOZU3Qp+TzleynM15/xea14orWYRGRict YHBM3Cnqp7OD8K6Q1uhs0fTxyJP7PZ/G0+7Corlf1DlHhDt6C2HldRPFvAvAgl6sR9Wzgcb7 rzub2HVtbJgl6YHbgyAG7x9NpXFqzx1JLAMdpt2DIYwoi+oMdRQlBIwNuKjQjCGzuXHandd3 kGvBAsyJpQ+coEep9UzwANaV28cXrFr2R4FSOcR50rBA2Nh/vqUYfpsvBvJlwuKAoV1djVHa ihNeL5E= Organization: FreeBSD Message-ID: <9f2a2e90-0bb5-29b0-8b2b-c79caf6df903@FreeBSD.org> Date: Mon, 6 Apr 2020 18:14:00 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.6.0 MIME-Version: 1.0 In-Reply-To: <202004062338.036Nckt3022130@repo.freebsd.org> Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="QVVwWxdjjPGdAk0AOOIKjiFwdSmHC0h5H" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 01:49:34 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --QVVwWxdjjPGdAk0AOOIKjiFwdSmHC0h5H Content-Type: multipart/mixed; boundary="CVxL14w4N9c31uTFjTuURC86orHFPXaxq"; protected-headers="v1" From: Bryan Drewery To: Brooks Davis , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Message-ID: <9f2a2e90-0bb5-29b0-8b2b-c79caf6df903@FreeBSD.org> Subject: Re: svn commit: r359681 - in head: . share/mk References: <202004062338.036Nckt3022130@repo.freebsd.org> In-Reply-To: <202004062338.036Nckt3022130@repo.freebsd.org> --CVxL14w4N9c31uTFjTuURC86orHFPXaxq Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable On 4/6/2020 4:38 PM, Brooks Davis wrote: > Author: brooks > Date: Mon Apr 6 23:38:46 2020 > New Revision: 359681 > URL: https://svnweb.freebsd.org/changeset/base/359681 >=20 > Log: > Fix compilation with upstream clang builtin headers. > =20 > By using -nobuiltininc and adding the clang builtin headers resource = dir > to the end of the compiler header search path, we can still find head= ers > such as immintrin.h but find the FreeBSD version of stddef.h/stdarg.h= /.. > first. > =20 > This is a workaround until we are able to settle on and complete a pl= an > to harmonize guard macros with LLVM. We've mostly worked out this on= > FreeBSD systems by removing select headers from the installed set of > devel/llvm*, but that isn't a good solution for cross build. > =20 > Submitted by: arichardson > Obtained from: CheriBSD > Sponsored by: DARPA, AFRL > Differential Revision: https://reviews.freebsd.org/D17002 >=20 > Modified: > head/Makefile.inc1 > head/share/mk/bsd.compiler.mk > head/share/mk/bsd.sys.mk >=20 > Modified: head/Makefile.inc1 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/Makefile.inc1 Mon Apr 6 23:28:24 2020 (r359680) > +++ head/Makefile.inc1 Mon Apr 6 23:38:46 2020 (r359681) > @@ -337,6 +337,7 @@ _TOOLCHAIN_METADATA_VARS=3D COMPILER_VERSION \ > COMPILER_TYPE \ > COMPILER_FEATURES \ > COMPILER_FREEBSD_VERSION \ > + COMPILER_RESOURCE_DIR \ > LINKER_VERSION \ > LINKER_FEATURES \ > LINKER_TYPE \ >=20 > Modified: head/share/mk/bsd.compiler.mk > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/share/mk/bsd.compiler.mk Mon Apr 6 23:28:24 2020 (r359680) > +++ head/share/mk/bsd.compiler.mk Mon Apr 6 23:38:46 2020 (r359681) > @@ -143,7 +143,7 @@ _cc_vars+=3DXCC X_ > # The value is only used/exported for the same environment that impact= s > # CC and COMPILER_* settings here. > _exported_vars=3D ${X_}COMPILER_TYPE ${X_}COMPILER_VERSION \ > - ${X_}COMPILER_FREEBSD_VERSION > + ${X_}COMPILER_FREEBSD_VERSION ${X_}COMPILER_RESOURCE_DIR > ${X_}_cc_hash=3D ${${cc}}${MACHINE}${PATH} > ${X_}_cc_hash:=3D ${${X_}_cc_hash:hash} > # Only import if none of the vars are set somehow else. > @@ -201,6 +201,10 @@ ${X_}COMPILER_FREEBSD_VERSION=3D unknown > .endif > .endif > =20 > +.if !defined(${X_}COMPILER_RESOURCE_DIR) > +${X_}COMPILER_RESOURCE_DIR!=3D ${${cc}:N${CCACHE_BIN}} -print-resource= -dir 2>/dev/null || echo unknown > +.endif > + > ${X_}COMPILER_FEATURES=3D > .if (${${X_}COMPILER_TYPE} =3D=3D "clang" && ${${X_}COMPILER_VERSION} = >=3D 30300) || \ > (${${X_}COMPILER_TYPE} =3D=3D "gcc" && ${${X_}COMPILER_VERSION} >=3D = 40800) > @@ -224,6 +228,7 @@ X_COMPILER_TYPE=3D ${COMPILER_TYPE} > X_COMPILER_VERSION=3D ${COMPILER_VERSION} > X_COMPILER_FREEBSD_VERSION=3D ${COMPILER_FREEBSD_VERSION} > X_COMPILER_FEATURES=3D ${COMPILER_FEATURES} > +X_COMPILER_RESOURCE_DIR=3D ${COMPILER_RESOURCE_DIR} > .endif # ${cc} =3D=3D "CC" || (${cc} =3D=3D "XCC" && ${XCC} !=3D ${CC}= ) > =20 > # Export the values so sub-makes don't have to look them up again, usi= ng the >=20 > Modified: head/share/mk/bsd.sys.mk > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/share/mk/bsd.sys.mk Mon Apr 6 23:28:24 2020 (r359680) > +++ head/share/mk/bsd.sys.mk Mon Apr 6 23:38:46 2020 (r359681) > @@ -206,6 +206,21 @@ CWARNFLAGS+=3D -Wno-unknown-pragmas > # This warning is utter nonsense > CFLAGS+=3D -Wno-format-zero-length > =20 > +.if ${COMPILER_TYPE} =3D=3D "clang" > +# The headers provided by clang are incompatible with the FreeBSD head= ers. > +# If the version of clang is not one that has been patched to omit the= > +# incompatible headers, we need to compile with -nobuiltininc and add = the > +# resource dir to the end of the search paths. This ensures that heade= rs such as > +# immintrin.h are still found but stddef.h, etc. are picked up from Fr= eeBSD. > +# > +# XXX: This is a hack to support complete external installs of clang w= hile > +# we work to synchronize our decleration guards with those in the clan= g tree. > +.if ${MK_CLANG_BOOTSTRAP} =3D=3D "no" && ${COMPILER_RESOURCE_DIR} !=3D= "unknown" && \ > + !defined(BOOTSTRAPPING) I just realized MK_CLANG_BOOTSTRAP is not going to be defined here outside of the tree. Adding :Uno will fix it. Keep in mind this current change and the next will affect ports. It looks like by default clang will always get these flags added on. > +CFLAGS+=3D-nobuiltininc -idirafter ${COMPILER_RESOURCE_DIR}/include > +.endif > +.endif > + > CLANG_OPT_SMALL=3D -mstack-alignment=3D8 -mllvm -inline-threshold=3D3\= > -mllvm -simplifycfg-dup-ret > .if ${COMPILER_VERSION} >=3D 30500 && ${COMPILER_VERSION} < 30700 >=20 --=20 Regards, Bryan Drewery --CVxL14w4N9c31uTFjTuURC86orHFPXaxq-- --QVVwWxdjjPGdAk0AOOIKjiFwdSmHC0h5H Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQGTBAEBCgB9FiEE+Rc8ssOq6npcih8JNddxu25Gl88FAl6L09hfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEY5 MTczQ0IyQzNBQUVBN0E1QzhBMUYwOTM1RDc3MUJCNkU0Njk3Q0YACgkQNddxu25G l89KSQf+PCZPPRH7nlDHMpn+uG8Bq1GAtuj1ngWvRNS4/KSOs+Wz4wQGPKjDfihO oeHJ1mykOcRJr1u2Cmpd4NLqa3m4y+xA4mvexw1A2vsK6HkWQnCS6tb16Q0fwllE ajGVmyTDOWhai3Hzc2UOQzAByT0Ap2q9rBuTWuupnHVJCBDtlDQsffLD4gv0hkXL UFyUViKn3M4vb1b2pSegzZkVt/acHAGCgx1/Gp5qDZpgBMqEo1EaQzmVTrM7lTk7 KEHFY6hd7JNKaOjK0j2BM0Xu/ToSWFcQoCz/bZW3C/kO6Kv33ttwi4Gph+NnRUGS QeUa0vX17stImYyA+xs5B2v3DabUsg== =6LRB -----END PGP SIGNATURE----- --QVVwWxdjjPGdAk0AOOIKjiFwdSmHC0h5H-- From owner-svn-src-all@freebsd.org Tue Apr 7 02:46:25 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3FDA02A5B5E; Tue, 7 Apr 2020 02:46:25 +0000 (UTC) (envelope-from sobomax@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xBcd0z1Fz3xxR; Tue, 7 Apr 2020 02:46:25 +0000 (UTC) (envelope-from sobomax@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1C643265A; Tue, 7 Apr 2020 02:46:25 +0000 (UTC) (envelope-from sobomax@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0372kObk036224; Tue, 7 Apr 2020 02:46:24 GMT (envelope-from sobomax@FreeBSD.org) Received: (from sobomax@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0372kNIx036216; Tue, 7 Apr 2020 02:46:23 GMT (envelope-from sobomax@FreeBSD.org) Message-Id: <202004070246.0372kNIx036216@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sobomax set sender to sobomax@FreeBSD.org using -f From: Maxim Sobolev Date: Tue, 7 Apr 2020 02:46:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359685 - in head: . etc lib/libc/gen share/mk share/termcap usr.bin/login usr.bin/vgrind usr.sbin/services_mkdb X-SVN-Group: head X-SVN-Commit-Author: sobomax X-SVN-Commit-Paths: in head: . etc lib/libc/gen share/mk share/termcap usr.bin/login usr.bin/vgrind usr.sbin/services_mkdb X-SVN-Commit-Revision: 359685 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 02:46:25 -0000 Author: sobomax Date: Tue Apr 7 02:46:22 2020 New Revision: 359685 URL: https://svnweb.freebsd.org/changeset/base/359685 Log: Normalize deployment tools usage and definitions by putting into one place instead of sprinkling them out over many disjoint files. This is a follow-up to achieve the same goal in an incomplete rev.348521. Approved by: imp MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D20520 Added: head/share/mk/src.tools.mk (contents, props changed) Modified: head/Makefile.inc1 head/etc/Makefile head/lib/libc/gen/Makefile.inc head/share/mk/sys.mk head/share/termcap/Makefile head/usr.bin/login/Makefile head/usr.bin/vgrind/Makefile head/usr.sbin/services_mkdb/Makefile Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Tue Apr 7 02:45:24 2020 (r359684) +++ head/Makefile.inc1 Tue Apr 7 02:46:22 2020 (r359685) @@ -57,6 +57,8 @@ _MKSHOWCONFIG= t SRCDIR?= ${.CURDIR} LOCALBASE?= /usr/local +.include "share/mk/src.tools.mk" + # Cross toolchain changes must be in effect before bsd.compiler.mk # so that gets the right CC, and pass CROSS_TOOLCHAIN to submakes. .if defined(CROSS_TOOLCHAIN) @@ -874,8 +876,8 @@ MTREEFLAGS+= -W INSTALLFLAGS+= -h sha256 .endif .if defined(DB_FROM_SRC) || defined(NO_ROOT) -IMAKE_INSTALL= INSTALL="install ${INSTALLFLAGS}" -IMAKE_MTREE= MTREE_CMD="mtree ${MTREEFLAGS}" +IMAKE_INSTALL= INSTALL="${INSTALL_CMD} ${INSTALLFLAGS}" +IMAKE_MTREE= MTREE_CMD="${MTREE_CMD} ${MTREEFLAGS}" .endif DESTDIR_MTREEFLAGS= -deU @@ -887,12 +889,12 @@ WORLDTMP_MTREEFLAGS= -deUW # that are created by mtree to be owned by root/wheel. DESTDIR_MTREEFLAGS+= -W .endif -MTREE?= mtree +DISTR_MTREE= ${MTREE_CMD} .if ${BUILD_WITH_STRICT_TMPPATH} != 0 -MTREE= ${WORLDTMP}/legacy/usr/sbin/mtree +DISTR_MTREE= ${WORLDTMP}/legacy/usr/sbin/mtree .endif -WORLDTMP_MTREE= ${MTREE} ${WORLDTMP_MTREEFLAGS} -DESTDIR_MTREE= ${MTREE} ${DESTDIR_MTREEFLAGS} +WORLDTMP_MTREE= ${DISTR_MTREE} ${WORLDTMP_MTREEFLAGS} +DESTDIR_MTREE= ${DISTR_MTREE} ${DESTDIR_MTREEFLAGS} # kernel stage KMAKEENV= ${WMAKEENV:NSYSROOT=*} @@ -1363,14 +1365,14 @@ distributeworld installworld stageworld: _installcheck .endif .endif .if defined(NO_ROOT) - ${IMAKEENV} ${MTREE} -C -f ${.CURDIR}/etc/mtree/BSD.root.dist | \ + ${IMAKEENV} ${DISTR_MTREE} -C -f ${.CURDIR}/etc/mtree/BSD.root.dist | \ sed -e 's#^\./#./${dist}/#' >> ${METALOG} - ${IMAKEENV} ${MTREE} -C -f ${.CURDIR}/etc/mtree/BSD.usr.dist | \ + ${IMAKEENV} ${DISTR_MTREE} -C -f ${.CURDIR}/etc/mtree/BSD.usr.dist | \ sed -e 's#^\./#./${dist}/usr/#' >> ${METALOG} - ${IMAKEENV} ${MTREE} -C -f ${.CURDIR}/etc/mtree/BSD.include.dist | \ + ${IMAKEENV} ${DISTR_MTREE} -C -f ${.CURDIR}/etc/mtree/BSD.include.dist | \ sed -e 's#^\./#./${dist}/usr/include/#' >> ${METALOG} .if defined(_LIBCOMPAT) - ${IMAKEENV} ${MTREE} -C -f ${.CURDIR}/etc/mtree/BSD.lib${libcompat}.dist | \ + ${IMAKEENV} ${DISTR_MTREE} -C -f ${.CURDIR}/etc/mtree/BSD.lib${libcompat}.dist | \ sed -e 's#^\./#./${dist}/usr/#' >> ${METALOG} .endif .endif Modified: head/etc/Makefile ============================================================================== --- head/etc/Makefile Tue Apr 7 02:45:24 2020 (r359684) +++ head/etc/Makefile Tue Apr 7 02:46:22 2020 (r359685) @@ -2,11 +2,11 @@ # $FreeBSD$ .include +.include FILESGROUPS= FILES NLS_ALIASES= POSIX C \ en_US.US_ASCII C -PWD_MKDB_CMD?= pwd_mkdb # No need as it is empty and just causes rebuilds since this file does so much. UPDATE_DEPENDFILE= no @@ -98,8 +98,6 @@ distribution: ${DESTDIR}/boot/device.hints .endif .endif - -MTREE_CMD?= mtree MTREES= mtree/BSD.root.dist / \ mtree/BSD.var.dist /var \ Modified: head/lib/libc/gen/Makefile.inc ============================================================================== --- head/lib/libc/gen/Makefile.inc Tue Apr 7 02:45:24 2020 (r359684) +++ head/lib/libc/gen/Makefile.inc Tue Apr 7 02:46:22 2020 (r359685) @@ -550,11 +550,13 @@ MLINKS+=vis.3 nvis.3 \ MLINKS+=wordexp.3 wordfree.3 +.include + afterinstallconfig: .if ${MK_TCSH} == "no" sed -i "" -e 's;/bin/csh;/bin/sh;' ${DESTDIR}/etc/master.passwd .endif - pwd_mkdb -i -p -d ${DESTDIR}/etc ${DESTDIR}/etc/master.passwd + ${PWD_MKDB_CMD} -i -p -d ${DESTDIR}/etc ${DESTDIR}/etc/master.passwd .if defined(NO_ROOT) && defined(METALOG) ( \ echo "./etc/pwd.db type=file mode=0644 uname=root gname=wheel"; \ Added: head/share/mk/src.tools.mk ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/share/mk/src.tools.mk Tue Apr 7 02:46:22 2020 (r359685) @@ -0,0 +1,25 @@ +# Various tools used by the FreeBSD make installworld / distrib-dirs / +# distribution / installkernel targets. Also called "bootstrap tools" +# historically, however that name seemed to be ambiguous, as those tools +# merely help distributing the OS build artefacts into staging / production +# area. +# +# Very tiny subset of "itools", if you are old enough to know what it is. +# +# Please keep the list short, this file may and will be included from +# many places within the source tree. Rule of thumb: if the above mentioned +# targets survive with MYTOOL_CMD=false, then MYTOOL_CMD probably +# does not belong here. Stick it somewhere else, thank you very much! +# +# $FreeBSD$ + +.if !target(____) + +INSTALL_CMD?= install +MTREE_CMD?= mtree +PWD_MKDB_CMD?= pwd_mkdb +SERVICES_MKDB_CMD?= services_mkdb +CAP_MKDB_CMD?= cap_mkdb + +____: +.endif # !target(____) Modified: head/share/mk/sys.mk ============================================================================== --- head/share/mk/sys.mk Tue Apr 7 02:45:24 2020 (r359684) +++ head/share/mk/sys.mk Tue Apr 7 02:46:22 2020 (r359685) @@ -234,7 +234,7 @@ FFLAGS ?= -O .endif EFLAGS ?= -INSTALL ?= install +INSTALL ?= ${INSTALL_CMD:Uinstall} LEX ?= lex LFLAGS ?= Modified: head/share/termcap/Makefile ============================================================================== --- head/share/termcap/Makefile Tue Apr 7 02:45:24 2020 (r359684) +++ head/share/termcap/Makefile Tue Apr 7 02:46:22 2020 (r359685) @@ -14,9 +14,10 @@ CLEANFILES+= termcap.db CONFS= termcap.small .include +.include termcap.db: termcap - cap_mkdb ${CAP_MKDB_ENDIAN} -f ${.TARGET:R} ${.ALLSRC} + ${CAP_MKDB_CMD} ${CAP_MKDB_ENDIAN} -f ${.TARGET:R} ${.ALLSRC} etc-termcap: ${INSTALL_SYMLINK} -T "package=runtime" \ Modified: head/usr.bin/login/Makefile ============================================================================== --- head/usr.bin/login/Makefile Tue Apr 7 02:45:24 2020 (r359684) +++ head/usr.bin/login/Makefile Tue Apr 7 02:46:22 2020 (r359685) @@ -2,13 +2,13 @@ # $FreeBSD$ .include +.include CONFS= fbtab login.conf motd.template login.access PROG= login SRCS= login.c login_fbtab.c CFLAGS+=-DLOGALL LIBADD= util pam -CAP_MKDB_CMD?= cap_mkdb WARNS?= 5 Modified: head/usr.bin/vgrind/Makefile ============================================================================== --- head/usr.bin/vgrind/Makefile Tue Apr 7 02:45:24 2020 (r359684) +++ head/usr.bin/vgrind/Makefile Tue Apr 7 02:46:22 2020 (r359685) @@ -19,8 +19,9 @@ SCRIPTSDIR=/usr/bin CLEANFILES= vgrindefs.src.db .include +.include vgrindefs.src.db: vgrindefs.src - cap_mkdb ${CAP_MKDB_ENDIAN} -f vgrindefs.src ${.ALLSRC} + ${CAP_MKDB_CMD} ${CAP_MKDB_ENDIAN} -f vgrindefs.src ${.ALLSRC} .include Modified: head/usr.sbin/services_mkdb/Makefile ============================================================================== --- head/usr.sbin/services_mkdb/Makefile Tue Apr 7 02:45:24 2020 (r359684) +++ head/usr.sbin/services_mkdb/Makefile Tue Apr 7 02:46:22 2020 (r359685) @@ -6,11 +6,13 @@ CONFS= services PROG= services_mkdb MAN= services_mkdb.8 SRCS= services_mkdb.c uniq.c extern.h -SERVICES_MKDB_CMD?= ${PROG} .include .include .if ${MK_SERVICESDB} != "no" +# SERVICES_MKDB_CMD defined here +.include + afterinstallconfig: ${SERVICES_MKDB_CMD} ${CAP_MKDB_ENDIAN} -q -o ${DESTDIR}/var/db/services.db \ ${DESTDIR}/etc/services From owner-svn-src-all@freebsd.org Tue Apr 7 03:19:01 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 450842A6B79; Tue, 7 Apr 2020 03:19:01 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xCLF0vsyz40cc; Tue, 7 Apr 2020 03:19:01 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1A8732CAF; Tue, 7 Apr 2020 03:19:01 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0373J0MD056314; Tue, 7 Apr 2020 03:19:00 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0373J0b8056312; Tue, 7 Apr 2020 03:19:00 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202004070319.0373J0b8056312@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 7 Apr 2020 03:19:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359686 - head/sys/cam/ctl X-SVN-Group: head X-SVN-Commit-Author: mav X-SVN-Commit-Paths: head/sys/cam/ctl X-SVN-Commit-Revision: 359686 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 03:19:01 -0000 Author: mav Date: Tue Apr 7 03:19:00 2020 New Revision: 359686 URL: https://svnweb.freebsd.org/changeset/base/359686 Log: Fix panic on kern.cam.ctl.ha_role change after r333446. MFC after: 1 week Sponsored by: iXsystems, Inc. Modified: head/sys/cam/ctl/ctl_backend_block.c head/sys/cam/ctl/ctl_backend_ramdisk.c Modified: head/sys/cam/ctl/ctl_backend_block.c ============================================================================== --- head/sys/cam/ctl/ctl_backend_block.c Tue Apr 7 02:46:22 2020 (r359685) +++ head/sys/cam/ctl/ctl_backend_block.c Tue Apr 7 03:19:00 2020 (r359686) @@ -2574,8 +2574,10 @@ ctl_be_block_modify(struct ctl_be_block_softc *softc, if (params->lun_size_bytes != 0) be_lun->params.lun_size_bytes = params->lun_size_bytes; - nvlist_destroy(cbe_lun->options); - cbe_lun->options = nvlist_clone(req->args_nvl); + if (req->args_nvl != NULL) { + nvlist_destroy(cbe_lun->options); + cbe_lun->options = nvlist_clone(req->args_nvl); + } wasprim = (cbe_lun->flags & CTL_LUN_FLAG_PRIMARY); value = dnvlist_get_string(cbe_lun->options, "ha_role", NULL); Modified: head/sys/cam/ctl/ctl_backend_ramdisk.c ============================================================================== --- head/sys/cam/ctl/ctl_backend_ramdisk.c Tue Apr 7 02:46:22 2020 (r359685) +++ head/sys/cam/ctl/ctl_backend_ramdisk.c Tue Apr 7 03:19:00 2020 (r359686) @@ -1252,8 +1252,10 @@ ctl_backend_ramdisk_modify(struct ctl_be_ramdisk_softc if (params->lun_size_bytes != 0) be_lun->params.lun_size_bytes = params->lun_size_bytes; - nvlist_destroy(cbe_lun->options); - cbe_lun->options = nvlist_clone(req->args_nvl); + if (req->args_nvl != NULL) { + nvlist_destroy(cbe_lun->options); + cbe_lun->options = nvlist_clone(req->args_nvl); + } wasprim = (cbe_lun->flags & CTL_LUN_FLAG_PRIMARY); value = dnvlist_get_string(cbe_lun->options, "ha_role", NULL); From owner-svn-src-all@freebsd.org Tue Apr 7 04:45:22 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 004102A8B90 for ; Tue, 7 Apr 2020 04:45:22 +0000 (UTC) (envelope-from sobomax@sippysoft.com) Received: from mail-vs1-f53.google.com (mail-vs1-f53.google.com [209.85.217.53]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xFFs29X7z44gQ for ; Tue, 7 Apr 2020 04:45:20 +0000 (UTC) (envelope-from sobomax@sippysoft.com) Received: by mail-vs1-f53.google.com with SMTP id a63so1375247vsa.8 for ; Mon, 06 Apr 2020 21:45:20 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=7kGbUd1bcqTVwsiUpTwP0xRCThBi5Cinkr4Wsf/bdxI=; b=tbqPpxOkj6FZ+Cr+8rIRNZAv7oWcApw8LMrUOhhrA7OBh4NhjvK+g0htAWdh+rSV9Z RpQS+grUE7hviLc38Tx5feeXlBIfBlnhvMmt9+ogc795nx/1qEM5zzYX2E/2+I/OAu/b PTQUVH+Hddzr+hthjPum1LZqynimu96vXEIO9t8Z6833h6QZz0Rg3gVFRax1thH4UTPU q+yEQAXko9tpy8tfqZb09NYt8rdKuEX80qgO3otmhckjxXyUAXj+/OlA+jq6efvI6YNf tNtPOrOKoAOFWqpOWSeVkyhfhxyYiVdvqR3R7SDyvKWTWjHgkFcXn3db+ebvNc2mjw8N q0dw== X-Gm-Message-State: AGi0PubyaChu2skjY2K5abYNtG2yw/dBWpHFkO5yfZdNJ93764PWz+/J tDT3GL35lmYvJLkf+po8kkNM9PbeZ8ct0o1pY2oxzg== X-Google-Smtp-Source: APiQypKrss3yr+krGxLA+ROUaESfU+EPDITcUFqvZoKS39aiU5c7VTZxhTo8V0xW4hiXY7wgsJ+7BHwM2lTcUjgqoRM= X-Received: by 2002:a67:f8c4:: with SMTP id c4mr454118vsp.161.1586234719907; Mon, 06 Apr 2020 21:45:19 -0700 (PDT) MIME-Version: 1.0 References: <202004062338.036Nckt3022130@repo.freebsd.org> <9f2a2e90-0bb5-29b0-8b2b-c79caf6df903@FreeBSD.org> In-Reply-To: <9f2a2e90-0bb5-29b0-8b2b-c79caf6df903@FreeBSD.org> From: Maxim Sobolev Date: Mon, 6 Apr 2020 21:45:08 -0700 Message-ID: Subject: Re: svn commit: r359681 - in head: . share/mk To: Bryan Drewery Cc: Brooks Davis , src-committers , svn-src-all , svn-src-head X-Rspamd-Queue-Id: 48xFFs29X7z44gQ X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of sobomax@sippysoft.com designates 209.85.217.53 as permitted sender) smtp.mailfrom=sobomax@sippysoft.com X-Spamd-Result: default: False [-1.05 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-0.95)[-0.946,0]; FROM_HAS_DN(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17]; NEURAL_HAM_LONG(-0.93)[-0.933,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-all@freebsd.org]; DMARC_NA(0.00)[freebsd.org]; URI_COUNT_ODD(1.00)[19]; RCPT_COUNT_FIVE(0.00)[5]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[53.217.85.209.list.dnswl.org : 127.0.5.0]; IP_SCORE(-0.17)[ipnet: 209.85.128.0/17(-0.40), asn: 15169(-0.43), country: US(-0.05)]; FORGED_SENDER(0.30)[sobomax@freebsd.org,sobomax@sippysoft.com]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; FROM_NEQ_ENVFROM(0.00)[sobomax@freebsd.org,sobomax@sippysoft.com]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 04:45:22 -0000 This broke Jenkins builds. :( https://ci.freebsd.org/job/FreeBSD-head-armv7-build/8689/ -Max On Mon, Apr 6, 2020 at 6:49 PM Bryan Drewery wrote: > On 4/6/2020 4:38 PM, Brooks Davis wrote: > > Author: brooks > > Date: Mon Apr 6 23:38:46 2020 > > New Revision: 359681 > > URL: https://svnweb.freebsd.org/changeset/base/359681 > > > > Log: > > Fix compilation with upstream clang builtin headers. > > > > By using -nobuiltininc and adding the clang builtin headers resource > dir > > to the end of the compiler header search path, we can still find > headers > > such as immintrin.h but find the FreeBSD version of > stddef.h/stdarg.h/.. > > first. > > > > This is a workaround until we are able to settle on and complete a plan > > to harmonize guard macros with LLVM. We've mostly worked out this on > > FreeBSD systems by removing select headers from the installed set of > > devel/llvm*, but that isn't a good solution for cross build. > > > > Submitted by: arichardson > > Obtained from: CheriBSD > > Sponsored by: DARPA, AFRL > > Differential Revision: https://reviews.freebsd.org/D17002 > > > > Modified: > > head/Makefile.inc1 > > head/share/mk/bsd.compiler.mk > > head/share/mk/bsd.sys.mk > > > > Modified: head/Makefile.inc1 > > > ============================================================================== > > --- head/Makefile.inc1 Mon Apr 6 23:28:24 2020 (r359680) > > +++ head/Makefile.inc1 Mon Apr 6 23:38:46 2020 (r359681) > > @@ -337,6 +337,7 @@ _TOOLCHAIN_METADATA_VARS= COMPILER_VERSION \ > > COMPILER_TYPE \ > > COMPILER_FEATURES \ > > COMPILER_FREEBSD_VERSION \ > > + COMPILER_RESOURCE_DIR \ > > LINKER_VERSION \ > > LINKER_FEATURES \ > > LINKER_TYPE \ > > > > Modified: head/share/mk/bsd.compiler.mk > > > ============================================================================== > > --- head/share/mk/bsd.compiler.mk Mon Apr 6 23:28:24 2020 > (r359680) > > +++ head/share/mk/bsd.compiler.mk Mon Apr 6 23:38:46 2020 > (r359681) > > @@ -143,7 +143,7 @@ _cc_vars+=XCC X_ > > # The value is only used/exported for the same environment that impacts > > # CC and COMPILER_* settings here. > > _exported_vars= ${X_}COMPILER_TYPE ${X_}COMPILER_VERSION \ > > - ${X_}COMPILER_FREEBSD_VERSION > > + ${X_}COMPILER_FREEBSD_VERSION ${X_}COMPILER_RESOURCE_DIR > > ${X_}_cc_hash= ${${cc}}${MACHINE}${PATH} > > ${X_}_cc_hash:= ${${X_}_cc_hash:hash} > > # Only import if none of the vars are set somehow else. > > @@ -201,6 +201,10 @@ ${X_}COMPILER_FREEBSD_VERSION= unknown > > .endif > > .endif > > > > +.if !defined(${X_}COMPILER_RESOURCE_DIR) > > +${X_}COMPILER_RESOURCE_DIR!= ${${cc}:N${CCACHE_BIN}} > -print-resource-dir 2>/dev/null || echo unknown > > +.endif > > + > > ${X_}COMPILER_FEATURES= > > .if (${${X_}COMPILER_TYPE} == "clang" && ${${X_}COMPILER_VERSION} >= > 30300) || \ > > (${${X_}COMPILER_TYPE} == "gcc" && ${${X_}COMPILER_VERSION} >= > 40800) > > @@ -224,6 +228,7 @@ X_COMPILER_TYPE= ${COMPILER_TYPE} > > X_COMPILER_VERSION= ${COMPILER_VERSION} > > X_COMPILER_FREEBSD_VERSION= ${COMPILER_FREEBSD_VERSION} > > X_COMPILER_FEATURES= ${COMPILER_FEATURES} > > +X_COMPILER_RESOURCE_DIR= ${COMPILER_RESOURCE_DIR} > > .endif # ${cc} == "CC" || (${cc} == "XCC" && ${XCC} != ${CC}) > > > > # Export the values so sub-makes don't have to look them up again, > using the > > > > Modified: head/share/mk/bsd.sys.mk > > > ============================================================================== > > --- head/share/mk/bsd.sys.mk Mon Apr 6 23:28:24 2020 (r359680) > > +++ head/share/mk/bsd.sys.mk Mon Apr 6 23:38:46 2020 (r359681) > > @@ -206,6 +206,21 @@ CWARNFLAGS+= -Wno-unknown-pragmas > > # This warning is utter nonsense > > CFLAGS+= -Wno-format-zero-length > > > > +.if ${COMPILER_TYPE} == "clang" > > +# The headers provided by clang are incompatible with the FreeBSD > headers. > > +# If the version of clang is not one that has been patched to omit the > > +# incompatible headers, we need to compile with -nobuiltininc and add > the > > +# resource dir to the end of the search paths. This ensures that > headers such as > > +# immintrin.h are still found but stddef.h, etc. are picked up from > FreeBSD. > > +# > > +# XXX: This is a hack to support complete external installs of clang > while > > +# we work to synchronize our decleration guards with those in the clang > tree. > > +.if ${MK_CLANG_BOOTSTRAP} == "no" && ${COMPILER_RESOURCE_DIR} != > "unknown" && \ > > + !defined(BOOTSTRAPPING) > > I just realized MK_CLANG_BOOTSTRAP is not going to be defined here > outside of the tree. Adding :Uno will fix it. Keep in mind this current > change and the next will affect ports. It looks like by default clang > will always get these flags added on. > > > +CFLAGS+=-nobuiltininc -idirafter ${COMPILER_RESOURCE_DIR}/include > > +.endif > > +.endif > > + > > CLANG_OPT_SMALL= -mstack-alignment=8 -mllvm -inline-threshold=3\ > > -mllvm -simplifycfg-dup-ret > > .if ${COMPILER_VERSION} >= 30500 && ${COMPILER_VERSION} < 30700 > > > > > -- > Regards, > Bryan Drewery > > From owner-svn-src-all@freebsd.org Tue Apr 7 05:40:32 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 01D052AA01B; Tue, 7 Apr 2020 05:40:32 +0000 (UTC) (envelope-from antoine.brodin.freebsd@gmail.com) Received: from mail-qt1-f195.google.com (mail-qt1-f195.google.com [209.85.160.195]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xGTW6Htfz477N; Tue, 7 Apr 2020 05:40:31 +0000 (UTC) (envelope-from antoine.brodin.freebsd@gmail.com) Received: by mail-qt1-f195.google.com with SMTP id x16so1797127qts.11; Mon, 06 Apr 2020 22:40:31 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=MvSuo/QfFwEwynaE95BHZDA9WCwfVpqXBcd1i9Makr0=; b=XOepkGXkUj4CFSbxyQyoOmnPzWnMF6il63zDtQkGyA341lK6CnRXp2q2AimGBCp1EE H4q/Hy4fByJj63loTaH6Ren+wOUJYigRRVc9P/4GQSDSGMgw4PIgVgeRzc7D07b4JlH9 VT6iOVChl54EqWqovaJjp+TNuqxk7dxARHEUSZ/EFpajffD4pYYOG47McDzT0fNP+Py8 6p1BPQT870jgKuDBzn0hKC35o1YcTJCpqidX55+/JJ22tUnyFPcHef08Ki+2Cu8ow6Qk 2U6/wDXOqLsUDqF8kpFyWoPayz+F86sgs9q31i2FuZCBVlgwNdt1QmzKzVetEMgqswGn JZtg== X-Gm-Message-State: AGi0Pub5mRd9nH36ou4j0TRhbKJpJToMqr9rBcq1Uk3yTk/DGfP55Ejg RQ1ASWbIT9DJQRJRgLt08rIVBsZAgIYQBJWzR9EaWy0Z X-Google-Smtp-Source: APiQypJED2QUiHjc17i43zyxxuTxsMsCNhhQ+GId87nv8ULlQKsCLT82qfVZsjNfHtEsIjbd1hkHeIixx0ww3OZ0E/E= X-Received: by 2002:ac8:24a7:: with SMTP id s36mr704755qts.357.1586238030567; Mon, 06 Apr 2020 22:40:30 -0700 (PDT) MIME-Version: 1.0 References: <202004062338.036Nckt3022130@repo.freebsd.org> In-Reply-To: <202004062338.036Nckt3022130@repo.freebsd.org> From: Antoine Brodin Date: Tue, 7 Apr 2020 07:40:19 +0200 Message-ID: Subject: Re: svn commit: r359681 - in head: . share/mk To: Brooks Davis Cc: src-committers , svn-src-all , svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 48xGTW6Htfz477N X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-5.99 / 15.00]; NEURAL_HAM_MEDIUM(-0.99)[-0.995,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[]; TAGGED_FROM(0.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 05:40:32 -0000 On Tue, Apr 7, 2020 at 1:38 AM Brooks Davis wrote: > > Author: brooks > Date: Mon Apr 6 23:38:46 2020 > New Revision: 359681 > URL: https://svnweb.freebsd.org/changeset/base/359681 > > Log: > Fix compilation with upstream clang builtin headers. > > By using -nobuiltininc and adding the clang builtin headers resource dir > to the end of the compiler header search path, we can still find headers > such as immintrin.h but find the FreeBSD version of stddef.h/stdarg.h/.. > first. > > This is a workaround until we are able to settle on and complete a plan > to harmonize guard macros with LLVM. We've mostly worked out this on > FreeBSD systems by removing select headers from the installed set of > devel/llvm*, but that isn't a good solution for cross build. > > Submitted by: arichardson > Obtained from: CheriBSD > Sponsored by: DARPA, AFRL > Differential Revision: https://reviews.freebsd.org/D17002 > > Modified: > head/Makefile.inc1 > head/share/mk/bsd.compiler.mk > head/share/mk/bsd.sys.mk > This breaks ports: make[1]: "/usr/share/mk/bsd.sys.mk" line 219: Malformed conditional (${MK_CLANG_BOOTSTRAP} == "no" && ${COMPILER_RESOURCE_DIR} != "unknown" && !defined(BOOTSTRAPPING)) Antoine From owner-svn-src-all@freebsd.org Tue Apr 7 09:22:49 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5F1E72B0262; Tue, 7 Apr 2020 09:22:49 +0000 (UTC) (envelope-from peter@rulingia.com) Received: from vtr.rulingia.com (vtr.rulingia.com [IPv6:2001:19f0:5801:ebe:5400:1ff:fe53:30fd]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "vtr.rulingia.com", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xMPz47hKz4Lcm; Tue, 7 Apr 2020 09:22:47 +0000 (UTC) (envelope-from peter@rulingia.com) Received: from server.rulingia.com (ppp239-208.static.internode.on.net [59.167.239.208]) by vtr.rulingia.com (8.15.2/8.15.2) with ESMTPS id 0379MVP3028903 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 7 Apr 2020 19:22:37 +1000 (AEST) (envelope-from peter@rulingia.com) X-Bogosity: Ham, spamicity=0.000000 Received: from server.rulingia.com (localhost.rulingia.com [127.0.0.1]) by server.rulingia.com (8.15.2/8.15.2) with ESMTPS id 0379MQZ1090012 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Tue, 7 Apr 2020 19:22:26 +1000 (AEST) (envelope-from peter@server.rulingia.com) Received: (from peter@localhost) by server.rulingia.com (8.15.2/8.15.2/Submit) id 0379MQR2090011; Tue, 7 Apr 2020 19:22:26 +1000 (AEST) (envelope-from peter) Date: Tue, 7 Apr 2020 19:22:26 +1000 From: Peter Jeremy To: Wojciech Macek Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r359647 - in head/sys: arm64/broadcom arm64/broadcom/brcmmdio conf dev/mdio Message-ID: <20200407092226.GA89740@server.rulingia.com> References: <202004060548.0365mwYZ065227@repo.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="IJpNTDwzlM2Ie8A6" Content-Disposition: inline In-Reply-To: <202004060548.0365mwYZ065227@repo.freebsd.org> X-PGP-Key: http://www.rulingia.com/keys/peter.pgp User-Agent: Mutt/1.12.2 (2019-09-21) X-Rspamd-Queue-Id: 48xMPz47hKz4Lcm X-Spamd-Bar: ------- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of peter@rulingia.com designates 2001:19f0:5801:ebe:5400:1ff:fe53:30fd as permitted sender) smtp.mailfrom=peter@rulingia.com X-Spamd-Result: default: False [-7.49 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; TO_MATCH_ENVRCPT_ALL(0.00)[]; R_SPF_ALLOW(-0.20)[+mx]; MIME_GOOD(-0.20)[multipart/signed,text/plain]; DMARC_NA(0.00)[rulingia.com]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; TO_DN_SOME(0.00)[]; RCVD_COUNT_THREE(0.00)[3]; IP_SCORE(-3.09)[ip: (-9.52), ipnet: 2001:19f0:5800::/38(-4.16), asn: 20473(-1.72), country: US(-0.05)]; SIGNED_PGP(-2.00)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; ASN(0.00)[asn:20473, ipnet:2001:19f0:5800::/38, country:US]; RCVD_TLS_ALL(0.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 09:22:49 -0000 --IJpNTDwzlM2Ie8A6 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On 2020-Apr-06 05:48:58 +0000, Wojciech Macek wrote: >Log: > Add MDIO PHY driver for NS2 ARM64 platform. =2E.. >Modified: head/sys/conf/files.arm64 >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >--- head/sys/conf/files.arm64 Mon Apr 6 04:06:15 2020 (r359646) >+++ head/sys/conf/files.arm64 Mon Apr 6 05:48:58 2020 (r359647) >@@ -176,6 +176,9 @@ arm64/arm64/undefined.c standard > arm64/arm64/unwind.c optional ddb | kdtrace_hooks | stack > arm64/arm64/vfp.c standard > arm64/arm64/vm_machdep.c standard >+arm64/broadcom/brcmmdio/mdio_mux_iproc.c optional fdt >+arm64/broadcom/brcmmdio/mdio_nexus_iproc.c optional fdt >+arm64/broadcom/brcmmdio/mdio_ns2_pcie_phy.c optional fdt pci I don't believe this is correct. These files are only relevant to a subset of Broadcom SoCs and (IMO) should not be included merely with "options FDT", rather they should be conditional on the relevant Broadcom SoCs. --=20 Peter Jeremy --IJpNTDwzlM2Ie8A6 Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQKTBAEBCgB9FiEE2M6l8vfIeOACl4uUHZIUommfjLIFAl6MRkhfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEQ4 Q0VBNUYyRjdDODc4RTAwMjk3OEI5NDFEOTIxNEEyNjk5RjhDQjIACgkQHZIUommf jLLyeg/+LSwJ+x2JUWhd1jE69GsnjKC2ZvzR794deEGgOBlOHHDM2LNrTnS3qTuq NP+sKQfJ5J36QrdmRY7oVLLvvJliBKOr6vYUvaEpV9HWxN/TuF1DwDgDD3NsacHh 9og/wZj3gU/k51AGhY3bPqiRw997vYkQlAp8VPxAk5VwkQhwbDVtwEqK8TqbEzt2 Kf4MTDmbzIhyPrUxnVsAPhGuEuISgSaHAeLfeFnN4NE6/BT6dXc80jI76f6mlvvO +HzqTJo/GEr+jciTJ+t5MiFKuVdkH+Cge1T2+r3K5K4/cTdSRYQ4RXNMEeSKnxAf FEDswInSh1XUjaUhrvzycMbs38RvDNipcmy2smQlmo495Zn3texea0Fnpb4dQemp QU3I9/Px5qdzvHuBrnwQLq+M0QW4ZnbSxZzwXE0S0DqDkCsW2kHnIf2hesKEwALS f7J/qLEJ8p7cSL5xzEFnrQfZYaPmoNz5xNzHmegTNP/4Jim6+f1mrb4rpXMIfJkw uTemKWgBuB7oxvcs5YGCXLJ1dtzpLd9oxvNeJT2Jyl4FyEpaYoaSqVuXHE3pQrJJ DuJZd2t0VI6gyUuba+kmGfMTp6KnOekVmrt8C5fc6F6K3fADbGez/yuhkXz2qkm4 77YMiPlhmYtdkg2CwWQu1hssR3AG0grrcuStgXVaK9ApsZKqNGw= =EJqe -----END PGP SIGNATURE----- --IJpNTDwzlM2Ie8A6-- From owner-svn-src-all@freebsd.org Tue Apr 7 10:37:43 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1981E2B26C6; Tue, 7 Apr 2020 10:37:43 +0000 (UTC) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: from gndrsh.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 48xP4Q3q0cz4RTY; Tue, 7 Apr 2020 10:37:42 +0000 (UTC) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: from gndrsh.dnsmgr.net (localhost [127.0.0.1]) by gndrsh.dnsmgr.net (8.13.3/8.13.3) with ESMTP id 037AbdW6091938; Tue, 7 Apr 2020 03:37:39 -0700 (PDT) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: (from freebsd@localhost) by gndrsh.dnsmgr.net (8.13.3/8.13.3/Submit) id 037Abd5T091937; Tue, 7 Apr 2020 03:37:39 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <202004071037.037Abd5T091937@gndrsh.dnsmgr.net> Subject: Re: svn commit: r359685 - in head: . etc lib/libc/gen share/mk share/termcap usr.bin/login usr.bin/vgrind usr.sbin/services_mkdb In-Reply-To: <202004070246.0372kNIx036216@repo.freebsd.org> To: Maxim Sobolev Date: Tue, 7 Apr 2020 03:37:39 -0700 (PDT) CC: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-Rspamd-Queue-Id: 48xP4Q3q0cz4RTY X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-5.97 / 15.00]; NEURAL_HAM_MEDIUM(-0.98)[-0.975,0]; NEURAL_HAM_LONG(-1.00)[-0.999,0]; REPLY(-4.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 10:37:43 -0000 > Author: sobomax > Date: Tue Apr 7 02:46:22 2020 > New Revision: 359685 > URL: https://svnweb.freebsd.org/changeset/base/359685 > > Log: > Normalize deployment tools usage and definitions by putting into one place > instead of sprinkling them out over many disjoint files. This is a follow-up > to achieve the same goal in an incomplete rev.348521. I have concerns that this factoring out of 5 values that have not changed in 25 years is a pessimization, it is one more file that make has to open on each invocation. > Approved by: imp > MFC after: 1 month > Differential Revision: https://reviews.freebsd.org/D20520 > > Added: > head/share/mk/src.tools.mk (contents, props changed) > Modified: > head/Makefile.inc1 > head/etc/Makefile > head/lib/libc/gen/Makefile.inc > head/share/mk/sys.mk > head/share/termcap/Makefile > head/usr.bin/login/Makefile > head/usr.bin/vgrind/Makefile > head/usr.sbin/services_mkdb/Makefile > > Modified: head/Makefile.inc1 > ============================================================================== > --- head/Makefile.inc1 Tue Apr 7 02:45:24 2020 (r359684) > +++ head/Makefile.inc1 Tue Apr 7 02:46:22 2020 (r359685) > @@ -57,6 +57,8 @@ _MKSHOWCONFIG= t > SRCDIR?= ${.CURDIR} > LOCALBASE?= /usr/local > > +.include "share/mk/src.tools.mk" > + > # Cross toolchain changes must be in effect before bsd.compiler.mk > # so that gets the right CC, and pass CROSS_TOOLCHAIN to submakes. > .if defined(CROSS_TOOLCHAIN) > @@ -874,8 +876,8 @@ MTREEFLAGS+= -W > INSTALLFLAGS+= -h sha256 > .endif > .if defined(DB_FROM_SRC) || defined(NO_ROOT) > -IMAKE_INSTALL= INSTALL="install ${INSTALLFLAGS}" > -IMAKE_MTREE= MTREE_CMD="mtree ${MTREEFLAGS}" > +IMAKE_INSTALL= INSTALL="${INSTALL_CMD} ${INSTALLFLAGS}" > +IMAKE_MTREE= MTREE_CMD="${MTREE_CMD} ${MTREEFLAGS}" > .endif > > DESTDIR_MTREEFLAGS= -deU > @@ -887,12 +889,12 @@ WORLDTMP_MTREEFLAGS= -deUW > # that are created by mtree to be owned by root/wheel. > DESTDIR_MTREEFLAGS+= -W > .endif > -MTREE?= mtree > +DISTR_MTREE= ${MTREE_CMD} > .if ${BUILD_WITH_STRICT_TMPPATH} != 0 > -MTREE= ${WORLDTMP}/legacy/usr/sbin/mtree > +DISTR_MTREE= ${WORLDTMP}/legacy/usr/sbin/mtree > .endif > -WORLDTMP_MTREE= ${MTREE} ${WORLDTMP_MTREEFLAGS} > -DESTDIR_MTREE= ${MTREE} ${DESTDIR_MTREEFLAGS} > +WORLDTMP_MTREE= ${DISTR_MTREE} ${WORLDTMP_MTREEFLAGS} > +DESTDIR_MTREE= ${DISTR_MTREE} ${DESTDIR_MTREEFLAGS} > > # kernel stage > KMAKEENV= ${WMAKEENV:NSYSROOT=*} > @@ -1363,14 +1365,14 @@ distributeworld installworld stageworld: _installcheck > .endif > .endif > .if defined(NO_ROOT) > - ${IMAKEENV} ${MTREE} -C -f ${.CURDIR}/etc/mtree/BSD.root.dist | \ > + ${IMAKEENV} ${DISTR_MTREE} -C -f ${.CURDIR}/etc/mtree/BSD.root.dist | \ > sed -e 's#^\./#./${dist}/#' >> ${METALOG} > - ${IMAKEENV} ${MTREE} -C -f ${.CURDIR}/etc/mtree/BSD.usr.dist | \ > + ${IMAKEENV} ${DISTR_MTREE} -C -f ${.CURDIR}/etc/mtree/BSD.usr.dist | \ > sed -e 's#^\./#./${dist}/usr/#' >> ${METALOG} > - ${IMAKEENV} ${MTREE} -C -f ${.CURDIR}/etc/mtree/BSD.include.dist | \ > + ${IMAKEENV} ${DISTR_MTREE} -C -f ${.CURDIR}/etc/mtree/BSD.include.dist | \ > sed -e 's#^\./#./${dist}/usr/include/#' >> ${METALOG} > .if defined(_LIBCOMPAT) > - ${IMAKEENV} ${MTREE} -C -f ${.CURDIR}/etc/mtree/BSD.lib${libcompat}.dist | \ > + ${IMAKEENV} ${DISTR_MTREE} -C -f ${.CURDIR}/etc/mtree/BSD.lib${libcompat}.dist | \ > sed -e 's#^\./#./${dist}/usr/#' >> ${METALOG} > .endif > .endif > > Modified: head/etc/Makefile > ============================================================================== > --- head/etc/Makefile Tue Apr 7 02:45:24 2020 (r359684) > +++ head/etc/Makefile Tue Apr 7 02:46:22 2020 (r359685) > @@ -2,11 +2,11 @@ > # $FreeBSD$ > > .include > +.include > > FILESGROUPS= FILES > NLS_ALIASES= POSIX C \ > en_US.US_ASCII C > -PWD_MKDB_CMD?= pwd_mkdb > > # No need as it is empty and just causes rebuilds since this file does so much. > UPDATE_DEPENDFILE= no > @@ -98,8 +98,6 @@ distribution: > ${DESTDIR}/boot/device.hints > .endif > .endif > - > -MTREE_CMD?= mtree > > MTREES= mtree/BSD.root.dist / \ > mtree/BSD.var.dist /var \ > > Modified: head/lib/libc/gen/Makefile.inc > ============================================================================== > --- head/lib/libc/gen/Makefile.inc Tue Apr 7 02:45:24 2020 (r359684) > +++ head/lib/libc/gen/Makefile.inc Tue Apr 7 02:46:22 2020 (r359685) > @@ -550,11 +550,13 @@ MLINKS+=vis.3 nvis.3 \ > > MLINKS+=wordexp.3 wordfree.3 > > +.include > + > afterinstallconfig: > .if ${MK_TCSH} == "no" > sed -i "" -e 's;/bin/csh;/bin/sh;' ${DESTDIR}/etc/master.passwd > .endif > - pwd_mkdb -i -p -d ${DESTDIR}/etc ${DESTDIR}/etc/master.passwd > + ${PWD_MKDB_CMD} -i -p -d ${DESTDIR}/etc ${DESTDIR}/etc/master.passwd > .if defined(NO_ROOT) && defined(METALOG) > ( \ > echo "./etc/pwd.db type=file mode=0644 uname=root gname=wheel"; \ > > Added: head/share/mk/src.tools.mk > ============================================================================== > --- /dev/null 00:00:00 1970 (empty, because file is newly added) > +++ head/share/mk/src.tools.mk Tue Apr 7 02:46:22 2020 (r359685) > @@ -0,0 +1,25 @@ > +# Various tools used by the FreeBSD make installworld / distrib-dirs / > +# distribution / installkernel targets. Also called "bootstrap tools" > +# historically, however that name seemed to be ambiguous, as those tools > +# merely help distributing the OS build artefacts into staging / production > +# area. > +# > +# Very tiny subset of "itools", if you are old enough to know what it is. > +# > +# Please keep the list short, this file may and will be included from > +# many places within the source tree. Rule of thumb: if the above mentioned > +# targets survive with MYTOOL_CMD=false, then MYTOOL_CMD probably > +# does not belong here. Stick it somewhere else, thank you very much! > +# > +# $FreeBSD$ > + > +.if !target(____) > + > +INSTALL_CMD?= install > +MTREE_CMD?= mtree > +PWD_MKDB_CMD?= pwd_mkdb > +SERVICES_MKDB_CMD?= services_mkdb > +CAP_MKDB_CMD?= cap_mkdb > + > +____: > +.endif # !target(____) > > Modified: head/share/mk/sys.mk > ============================================================================== > --- head/share/mk/sys.mk Tue Apr 7 02:45:24 2020 (r359684) > +++ head/share/mk/sys.mk Tue Apr 7 02:46:22 2020 (r359685) > @@ -234,7 +234,7 @@ FFLAGS ?= -O > .endif > EFLAGS ?= > > -INSTALL ?= install > +INSTALL ?= ${INSTALL_CMD:Uinstall} > > LEX ?= lex > LFLAGS ?= > > Modified: head/share/termcap/Makefile > ============================================================================== > --- head/share/termcap/Makefile Tue Apr 7 02:45:24 2020 (r359684) > +++ head/share/termcap/Makefile Tue Apr 7 02:46:22 2020 (r359685) > @@ -14,9 +14,10 @@ CLEANFILES+= termcap.db > CONFS= termcap.small > > .include > +.include > > termcap.db: termcap > - cap_mkdb ${CAP_MKDB_ENDIAN} -f ${.TARGET:R} ${.ALLSRC} > + ${CAP_MKDB_CMD} ${CAP_MKDB_ENDIAN} -f ${.TARGET:R} ${.ALLSRC} > > etc-termcap: > ${INSTALL_SYMLINK} -T "package=runtime" \ > > Modified: head/usr.bin/login/Makefile > ============================================================================== > --- head/usr.bin/login/Makefile Tue Apr 7 02:45:24 2020 (r359684) > +++ head/usr.bin/login/Makefile Tue Apr 7 02:46:22 2020 (r359685) > @@ -2,13 +2,13 @@ > # $FreeBSD$ > > .include > +.include > > CONFS= fbtab login.conf motd.template login.access > PROG= login > SRCS= login.c login_fbtab.c > CFLAGS+=-DLOGALL > LIBADD= util pam > -CAP_MKDB_CMD?= cap_mkdb > > WARNS?= 5 > > > Modified: head/usr.bin/vgrind/Makefile > ============================================================================== > --- head/usr.bin/vgrind/Makefile Tue Apr 7 02:45:24 2020 (r359684) > +++ head/usr.bin/vgrind/Makefile Tue Apr 7 02:46:22 2020 (r359685) > @@ -19,8 +19,9 @@ SCRIPTSDIR=/usr/bin > CLEANFILES= vgrindefs.src.db > > .include > +.include > > vgrindefs.src.db: vgrindefs.src > - cap_mkdb ${CAP_MKDB_ENDIAN} -f vgrindefs.src ${.ALLSRC} > + ${CAP_MKDB_CMD} ${CAP_MKDB_ENDIAN} -f vgrindefs.src ${.ALLSRC} > > .include > > Modified: head/usr.sbin/services_mkdb/Makefile > ============================================================================== > --- head/usr.sbin/services_mkdb/Makefile Tue Apr 7 02:45:24 2020 (r359684) > +++ head/usr.sbin/services_mkdb/Makefile Tue Apr 7 02:46:22 2020 (r359685) > @@ -6,11 +6,13 @@ CONFS= services > PROG= services_mkdb > MAN= services_mkdb.8 > SRCS= services_mkdb.c uniq.c extern.h > -SERVICES_MKDB_CMD?= ${PROG} > > .include > .include > .if ${MK_SERVICESDB} != "no" > +# SERVICES_MKDB_CMD defined here > +.include > + > afterinstallconfig: > ${SERVICES_MKDB_CMD} ${CAP_MKDB_ENDIAN} -q -o ${DESTDIR}/var/db/services.db \ > ${DESTDIR}/etc/services > -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-all@freebsd.org Tue Apr 7 12:46:27 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 099DD2B5FAE; Tue, 7 Apr 2020 12:46:27 +0000 (UTC) (envelope-from luporl@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xRwy6Sm4z4Zf8; Tue, 7 Apr 2020 12:46:26 +0000 (UTC) (envelope-from luporl@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D42D59D8A; Tue, 7 Apr 2020 12:46:26 +0000 (UTC) (envelope-from luporl@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 037CkQD5003259; Tue, 7 Apr 2020 12:46:26 GMT (envelope-from luporl@FreeBSD.org) Received: (from luporl@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 037CkQwM003258; Tue, 7 Apr 2020 12:46:26 GMT (envelope-from luporl@FreeBSD.org) Message-Id: <202004071246.037CkQwM003258@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: luporl set sender to luporl@FreeBSD.org using -f From: Leandro Lupori Date: Tue, 7 Apr 2020 12:46:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359687 - head/stand/powerpc/ofw X-SVN-Group: head X-SVN-Commit-Author: luporl X-SVN-Commit-Paths: head/stand/powerpc/ofw X-SVN-Commit-Revision: 359687 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 12:46:27 -0000 Author: luporl Date: Tue Apr 7 12:46:26 2020 New Revision: 359687 URL: https://svnweb.freebsd.org/changeset/base/359687 Log: [PPC] Fix loader call to instantiate-rtas OpenFirmware (OF) method instantiate-rtas was being called with a wrong rtas-base-address argument. It must use the memory that is already being allocated to this end instead. This issue was causing QEMU netboot to hang when building the FDT from OF DT. Reviewed by: jhibbits Sponsored by: Eldorado Research Institute (eldorado.org.br) Differential Revision: https://reviews.freebsd.org/D24313 Modified: head/stand/powerpc/ofw/ofwfdt.c Modified: head/stand/powerpc/ofw/ofwfdt.c ============================================================================== --- head/stand/powerpc/ofw/ofwfdt.c Tue Apr 7 03:19:00 2020 (r359686) +++ head/stand/powerpc/ofw/ofwfdt.c Tue Apr 7 12:46:26 2020 (r359687) @@ -120,7 +120,7 @@ ofwfdt_fixups(void *fdtp) /* Instantiate RTAS */ rtas = OF_open(path); base = 0; - OF_call_method("instantiate-rtas", rtas, 1, 1, (cell_t)rtas, + OF_call_method("instantiate-rtas", rtas, 1, 1, (cell_t)rtasmem, &base); /* Store info to FDT using Linux convention */ From owner-svn-src-all@freebsd.org Tue Apr 7 12:57:51 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B8FCB2B62E4; Tue, 7 Apr 2020 12:57:51 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xSB74VGPz4b7P; Tue, 7 Apr 2020 12:57:51 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 90FE99F8C; Tue, 7 Apr 2020 12:57:51 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 037CvpAd009545; Tue, 7 Apr 2020 12:57:51 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 037Cvp6a009543; Tue, 7 Apr 2020 12:57:51 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004071257.037Cvp6a009543@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Tue, 7 Apr 2020 12:57:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359688 - in head/stand: mips/beri/loader powerpc/ofw uboot/lib X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in head/stand: mips/beri/loader powerpc/ofw uboot/lib X-SVN-Commit-Revision: 359688 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 12:57:51 -0000 Author: kevans Date: Tue Apr 7 12:57:50 2020 New Revision: 359688 URL: https://svnweb.freebsd.org/changeset/base/359688 Log: stand: -fno-common fixes for !x86 loaders - beriloader: archsw is declared extern and defined elsewhere - ofwloader: ofw_elf{,64} are defined in elf_freebsd.c and ppc64_elf_freebsd.c respectively - ubldr: syscall_ptr is defined in start.S for whichever ubldr platform is building -fno-common will become the default in GCC10/LLVM11. MFC after: 3 days Modified: head/stand/mips/beri/loader/main.c head/stand/powerpc/ofw/conf.c head/stand/uboot/lib/glue.h Modified: head/stand/mips/beri/loader/main.c ============================================================================== --- head/stand/mips/beri/loader/main.c Tue Apr 7 12:46:26 2020 (r359687) +++ head/stand/mips/beri/loader/main.c Tue Apr 7 12:57:50 2020 (r359688) @@ -59,8 +59,6 @@ struct devsw *devsw[] = { NULL }; -struct arch_switch archsw; - struct file_format *file_formats[] = { &beri_elf, NULL Modified: head/stand/powerpc/ofw/conf.c ============================================================================== --- head/stand/powerpc/ofw/conf.c Tue Apr 7 12:46:26 2020 (r359687) +++ head/stand/powerpc/ofw/conf.c Tue Apr 7 12:57:50 2020 (r359688) @@ -97,8 +97,8 @@ struct netif_driver *netif_drivers[] = { * rather than reading the file go first. */ -struct file_format ofw_elf; -struct file_format ofw_elf64; +extern struct file_format ofw_elf; +extern struct file_format ofw_elf64; struct file_format *file_formats[] = { &ofw_elf, Modified: head/stand/uboot/lib/glue.h ============================================================================== --- head/stand/uboot/lib/glue.h Tue Apr 7 12:46:26 2020 (r359687) +++ head/stand/uboot/lib/glue.h Tue Apr 7 12:57:50 2020 (r359688) @@ -56,7 +56,7 @@ #endif int syscall(int, int *, ...); -void *syscall_ptr; +extern void *syscall_ptr; int api_parse_cmdline_sig(int argc, char **argv, struct api_signature **sig); int api_search_sig(struct api_signature **sig); From owner-svn-src-all@freebsd.org Tue Apr 7 14:14:59 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E37732B7C26; Tue, 7 Apr 2020 14:14:59 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xTv75pnZz4gDW; Tue, 7 Apr 2020 14:14:59 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C27E8AF1E; Tue, 7 Apr 2020 14:14:59 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 037EExoR057794; Tue, 7 Apr 2020 14:14:59 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 037EEx5Q057793; Tue, 7 Apr 2020 14:14:59 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004071414.037EEx5Q057793@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Tue, 7 Apr 2020 14:14:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359689 - head/usr.sbin/config X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/usr.sbin/config X-SVN-Commit-Revision: 359689 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 14:15:00 -0000 Author: kevans Date: Tue Apr 7 14:14:59 2020 New Revision: 359689 URL: https://svnweb.freebsd.org/changeset/base/359689 Log: config(8): "fix" a couple of buffer overflows Recently added/changed lines in various kernel configs have caused some buffer overflows that went undetected. These were detected with a config built using -fno-common as these line buffers smashed one of our arrays, then further triaged with ASAN. Double the sizes; this is really not a great fix, but addresses the immediate need until someone rewrites config. While here, add some bounds checking so that we don't need to detect this by random bus errors or other weird failures. MFC after: 3 days Modified: head/usr.sbin/config/main.c Modified: head/usr.sbin/config/main.c ============================================================================== --- head/usr.sbin/config/main.c Tue Apr 7 12:57:50 2020 (r359688) +++ head/usr.sbin/config/main.c Tue Apr 7 14:14:59 2020 (r359689) @@ -322,7 +322,7 @@ usage(void) char * get_word(FILE *fp) { - static char line[80]; + static char line[160]; int ch; char *cp; int escaped_nl = 0; @@ -352,11 +352,17 @@ begin: *cp = 0; return (line); } - while ((ch = getc(fp)) != EOF) { + while ((ch = getc(fp)) != EOF && cp < line + sizeof(line)) { if (isspace(ch)) break; *cp++ = ch; } + if (cp >= line + sizeof(line)) { + line[sizeof(line) - 1] = '\0'; + fprintf(stderr, "config: attempted overflow, partial line: `%s'", + line); + exit(2); + } *cp = 0; if (ch == EOF) return ((char *)EOF); @@ -372,7 +378,7 @@ begin: char * get_quoted_word(FILE *fp) { - static char line[256]; + static char line[512]; int ch; char *cp; int escaped_nl = 0; @@ -415,15 +421,29 @@ begin: } if (ch != quote && escaped_nl) *cp++ = '\\'; + if (cp >= line + sizeof(line)) { + line[sizeof(line) - 1] = '\0'; + printf( + "config: line buffer overflow reading partial line `%s'\n", + line); + exit(2); + } *cp++ = ch; escaped_nl = 0; } } else { *cp++ = ch; - while ((ch = getc(fp)) != EOF) { + while ((ch = getc(fp)) != EOF && cp < line + sizeof(line)) { if (isspace(ch)) break; *cp++ = ch; + } + if (cp >= line + sizeof(line)) { + line[sizeof(line) - 1] = '\0'; + printf( + "config: line buffer overflow reading partial line `%s'\n", + line); + exit(2); } if (ch != EOF) (void) ungetc(ch, fp); From owner-svn-src-all@freebsd.org Tue Apr 7 15:10:04 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E74F2271E94; Tue, 7 Apr 2020 15:10:04 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xW6h5glcz3JZv; Tue, 7 Apr 2020 15:10:04 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BDFD6B8E6; Tue, 7 Apr 2020 15:10:04 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 037FA4v4092795; Tue, 7 Apr 2020 15:10:04 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 037FA402092794; Tue, 7 Apr 2020 15:10:04 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004071510.037FA402092794@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Tue, 7 Apr 2020 15:10:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359690 - head/share/mk X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/share/mk X-SVN-Commit-Revision: 359690 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 15:10:05 -0000 Author: kevans Date: Tue Apr 7 15:10:04 2020 New Revision: 359690 URL: https://svnweb.freebsd.org/changeset/base/359690 Log: Fix port/kernel builds after r359681 Submitted by: bdrewery Reported by: bdrewery, sobomax, antoine Modified: head/share/mk/bsd.sys.mk Modified: head/share/mk/bsd.sys.mk ============================================================================== --- head/share/mk/bsd.sys.mk Tue Apr 7 14:14:59 2020 (r359689) +++ head/share/mk/bsd.sys.mk Tue Apr 7 15:10:04 2020 (r359690) @@ -215,8 +215,8 @@ CFLAGS+= -Wno-format-zero-length # # XXX: This is a hack to support complete external installs of clang while # we work to synchronize our decleration guards with those in the clang tree. -.if ${MK_CLANG_BOOTSTRAP} == "no" && ${COMPILER_RESOURCE_DIR} != "unknown" && \ - !defined(BOOTSTRAPPING) +.if ${MK_CLANG_BOOTSTRAP:Uno} == "no" && \ + ${COMPILER_RESOURCE_DIR} != "unknown" && !defined(BOOTSTRAPPING) CFLAGS+=-nobuiltininc -idirafter ${COMPILER_RESOURCE_DIR}/include .endif .endif From owner-svn-src-all@freebsd.org Tue Apr 7 15:32:08 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E0F5F27272D; Tue, 7 Apr 2020 15:32:08 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xWc85jLlz3KjY; Tue, 7 Apr 2020 15:32:08 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BF4B9BEEE; Tue, 7 Apr 2020 15:32:08 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 037FW8VH009205; Tue, 7 Apr 2020 15:32:08 GMT (envelope-from brooks@FreeBSD.org) Received: (from brooks@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 037FW8UD009204; Tue, 7 Apr 2020 15:32:08 GMT (envelope-from brooks@FreeBSD.org) Message-Id: <202004071532.037FW8UD009204@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brooks set sender to brooks@FreeBSD.org using -f From: Brooks Davis Date: Tue, 7 Apr 2020 15:32:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359691 - head/sys/conf X-SVN-Group: head X-SVN-Commit-Author: brooks X-SVN-Commit-Paths: head/sys/conf X-SVN-Commit-Revision: 359691 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 15:32:08 -0000 Author: brooks Date: Tue Apr 7 15:32:08 2020 New Revision: 359691 URL: https://svnweb.freebsd.org/changeset/base/359691 Log: Allow the kernel to build with a compiler that sets -fno-common. The mechanism that generates assym.inc and offset.inc depends on the symbols in question being common. For now, simply force the object files to be created with -fcommon. -fno-common will be the default in GCC10/LLVM11. Submitted by: arichardson Reviewed by: kevans Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D24322 Modified: head/sys/conf/kern.post.mk Modified: head/sys/conf/kern.post.mk ============================================================================== --- head/sys/conf/kern.post.mk Tue Apr 7 15:10:04 2020 (r359690) +++ head/sys/conf/kern.post.mk Tue Apr 7 15:32:08 2020 (r359691) @@ -235,20 +235,20 @@ offset.inc: $S/kern/genoffset.sh genoffset.o NM='${NM}' NMFLAGS='${NMFLAGS}' sh $S/kern/genoffset.sh genoffset.o > ${.TARGET} genoffset.o: $S/kern/genoffset.c - ${CC} -c ${CFLAGS:N-flto:N-fno-common} $S/kern/genoffset.c + ${CC} -c ${CFLAGS:N-flto:N-fno-common} -fcommon $S/kern/genoffset.c # genoffset_test.o is not actually used for anything - the point of compiling it # is to exercise the CTASSERT that checks that the offsets in the offset.inc # _lite struct(s) match those in the original(s). genoffset_test.o: $S/kern/genoffset.c offset.inc - ${CC} -c ${CFLAGS:N-flto:N-fno-common} -DOFFSET_TEST \ + ${CC} -c ${CFLAGS:N-flto:N-fno-common} -fcommon -DOFFSET_TEST \ $S/kern/genoffset.c -o ${.TARGET} assym.inc: $S/kern/genassym.sh genassym.o genoffset_test.o NM='${NM}' NMFLAGS='${NMFLAGS}' sh $S/kern/genassym.sh genassym.o > ${.TARGET} genassym.o: $S/$M/$M/genassym.c offset.inc - ${CC} -c ${CFLAGS:N-flto:N-fno-common} $S/$M/$M/genassym.c + ${CC} -c ${CFLAGS:N-flto:N-fno-common} -fcommon $S/$M/$M/genassym.c OBJS_DEPEND_GUESS+= opt_global.h genoffset.o genassym.o vers.o: opt_global.h From owner-svn-src-all@freebsd.org Tue Apr 7 15:48:22 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DD937272C18; Tue, 7 Apr 2020 15:48:22 +0000 (UTC) (envelope-from brooks@spindle.one-eyed-alien.net) Received: from spindle.one-eyed-alien.net (spindle.one-eyed-alien.net [199.48.129.229]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 48xWyt5Zb1z3LT5; Tue, 7 Apr 2020 15:48:22 +0000 (UTC) (envelope-from brooks@spindle.one-eyed-alien.net) Received: by spindle.one-eyed-alien.net (Postfix, from userid 3001) id E81823C0199; Tue, 7 Apr 2020 15:48:15 +0000 (UTC) Date: Tue, 7 Apr 2020 15:48:15 +0000 From: Brooks Davis To: Kyle Evans Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r359690 - head/share/mk Message-ID: <20200407154815.GA72584@spindle.one-eyed-alien.net> References: <202004071510.037FA402092794@repo.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="2oS5YaxWCcQjTEyO" Content-Disposition: inline In-Reply-To: <202004071510.037FA402092794@repo.freebsd.org> User-Agent: Mutt/1.9.4 (2018-02-28) X-Rspamd-Queue-Id: 48xWyt5Zb1z3LT5 X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.996,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 15:48:22 -0000 --2oS5YaxWCcQjTEyO Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Apr 07, 2020 at 03:10:04PM +0000, Kyle Evans wrote: > Author: kevans > Date: Tue Apr 7 15:10:04 2020 > New Revision: 359690 > URL: https://svnweb.freebsd.org/changeset/base/359690 >=20 > Log: > Fix port/kernel builds after r359681 > =20 > Submitted by: bdrewery > Reported by: bdrewery, sobomax, antoine >=20 > Modified: > head/share/mk/bsd.sys.mk Thanks! -- Brooks --2oS5YaxWCcQjTEyO Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQEcBAEBAgAGBQJejKC/AAoJEKzQXbSebgfAUAEIAIpVEUBH8ABSfNyyXCld+KxM 7ITrmxqOyiXOe5OqZAEuwFk32Qha0DbSP6OejoI59tC2Z45DDT8nARtnTNDtWSNA 1rYbmPUitPflohuqc6JFKYHEZFi65Mw63uV7GvzqEJgmX0CVXEwA0ZEAkqIwdTQp ltdnXtH3ARn9r20EvVyn4AlF0tBZTp4Ph9XKxSEaRfyi8GbepKItQGuGsxU/wI9F 6uzSzVPxEBt7pn3Qittret0VcsSpDEYmZsj1HBZzcO2vxu48uRwimqwaXNjlhWRJ vYx1SgiBGK0dhjcvD3fZKYW2cFH5N8gBAZJ34bh5vnnQCd0wSpnaLLwpBiNaLrQ= =kDfH -----END PGP SIGNATURE----- --2oS5YaxWCcQjTEyO-- From owner-svn-src-all@freebsd.org Tue Apr 7 16:15:35 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BF6DE273EDB; Tue, 7 Apr 2020 16:15:35 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xXZH4lLvz3NPH; Tue, 7 Apr 2020 16:15:35 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9E2A8C7EF; Tue, 7 Apr 2020 16:15:35 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 037GFZZ0035402; Tue, 7 Apr 2020 16:15:35 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 037GFZHi035401; Tue, 7 Apr 2020 16:15:35 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202004071615.037GFZHi035401@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Tue, 7 Apr 2020 16:15:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359692 - stable/12/usr.sbin/newsyslog X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12/usr.sbin/newsyslog X-SVN-Commit-Revision: 359692 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 16:15:35 -0000 Author: markj Date: Tue Apr 7 16:15:35 2020 New Revision: 359692 URL: https://svnweb.freebsd.org/changeset/base/359692 Log: MFC r359276: newsyslog: Fix stack corruption when initializing a zipwork structure. Modified: stable/12/usr.sbin/newsyslog/newsyslog.c Directory Properties: stable/12/ (props changed) Modified: stable/12/usr.sbin/newsyslog/newsyslog.c ============================================================================== --- stable/12/usr.sbin/newsyslog/newsyslog.c Tue Apr 7 15:32:08 2020 (r359691) +++ stable/12/usr.sbin/newsyslog/newsyslog.c Tue Apr 7 16:15:35 2020 (r359692) @@ -1829,17 +1829,23 @@ do_rotate(const struct conf_entry *ent) else { /* XXX - Ought to be checking for failure! */ (void)rename(zfile1, zfile2); - change_attrs(zfile2, ent); - if (ent->compress && !strlen(logfile_suffix)) { - /* compress old rotation */ - struct zipwork_entry zwork; + } + change_attrs(zfile2, ent); + if (ent->compress && strlen(logfile_suffix) == 0) { + /* compress old rotation */ + struct zipwork_entry *zwork; + size_t sz; - memset(&zwork, 0, sizeof(zwork)); - zwork.zw_conf = ent; - zwork.zw_fsize = sizefile(zfile2); - strcpy(zwork.zw_fname, zfile2); - do_zipwork(&zwork); - } + sz = sizeof(*zwork) + strlen(zfile2) + 1; + zwork = calloc(1, sz); + if (zwork == NULL) + err(1, "calloc"); + + zwork->zw_conf = ent; + zwork->zw_fsize = sizefile(zfile2); + strcpy(zwork->zw_fname, zfile2); + do_zipwork(zwork); + free(zwork); } } From owner-svn-src-all@freebsd.org Tue Apr 7 16:15:54 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 82AC7273F52; Tue, 7 Apr 2020 16:15:54 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xXZf2yzTz3NVy; Tue, 7 Apr 2020 16:15:54 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 47DCBC7F0; Tue, 7 Apr 2020 16:15:54 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 037GFsVW035464; Tue, 7 Apr 2020 16:15:54 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 037GFsdY035463; Tue, 7 Apr 2020 16:15:54 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202004071615.037GFsdY035463@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Tue, 7 Apr 2020 16:15:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359693 - stable/12/usr.sbin/newsyslog/tests X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12/usr.sbin/newsyslog/tests X-SVN-Commit-Revision: 359693 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 16:15:54 -0000 Author: markj Date: Tue Apr 7 16:15:53 2020 New Revision: 359693 URL: https://svnweb.freebsd.org/changeset/base/359693 Log: MFC r359277: Add regression tests for newsyslog.conf's p flag. Modified: stable/12/usr.sbin/newsyslog/tests/legacy_test.sh Directory Properties: stable/12/ (props changed) Modified: stable/12/usr.sbin/newsyslog/tests/legacy_test.sh ============================================================================== --- stable/12/usr.sbin/newsyslog/tests/legacy_test.sh Tue Apr 7 16:15:35 2020 (r359692) +++ stable/12/usr.sbin/newsyslog/tests/legacy_test.sh Tue Apr 7 16:15:53 2020 (r359693) @@ -194,7 +194,8 @@ ckstr() tmpdir_create() { - mkdir -p ${TMPDIR}/log ${TMPDIR}/alog + rm -rf ${TMPDIR}/log ${TMPDIR}/alog + mkdir ${TMPDIR}/log ${TMPDIR}/alog cd ${TMPDIR}/log } @@ -211,6 +212,8 @@ run_newsyslog() } tests_normal_rotate() { + local dir ext name_postfix newsyslog_args + ext="$1" dir="$2" @@ -286,6 +289,8 @@ tests_normal_rotate() { } tests_normal_rotate_keepn() { + local cnt dir ext name_postfix newsyslog_args + cnt="$1" ext="$2" dir="$3" @@ -354,6 +359,8 @@ tests_normal_rotate_keepn() { } tests_time_rotate() { + local dir ext name_postfix newsyslog_args + ext="$1" dir="$2" @@ -413,6 +420,8 @@ tests_time_rotate() { } tests_rfc5424() { + local dir ext name_postfix newsyslog_args + ext="$1" dir="$2" @@ -451,7 +460,73 @@ tests_rfc5424() { tmpdir_clean } -echo 1..180 +tests_p_flag_rotate() { + local ext + + ext="$1" + + tmpdir_create + + begin "create file" + run_newsyslog -C + ckfe $LOGFNAME + cknt ${LOGFNAME}.0 + cknt ${LOGFNAME}.0${ext} + end + + begin "rotate p flag 1 ${ext}" + run_newsyslog + ckfe $LOGFNAME + ckfe ${LOGFNAME}.0 + cknt ${LOGFNAME}.0${ext} + run_newsyslog + ckfe $LOGFNAME + ckfe ${LOGFNAME}.0 + cknt ${LOGFNAME}.0${ext} + ckfe ${LOGFNAME}.1${ext} + run_newsyslog + ckfe $LOGFNAME + ckfe ${LOGFNAME}.0 + cknt ${LOGFNAME}.0${ext} + ckfe ${LOGFNAME}.1${ext} + ckfe ${LOGFNAME}.2${ext} + end + + tmpdir_clean +} + +tests_normal_rotate_recompress() { + local ext + + ext=".gz" + + tmpdir_create + + begin "create file recompress" + run_newsyslog -C + ckfe $LOGFNAME + cknt ${LOGFNAME}.0${ext} + end + + begin "rotate normal 1" + run_newsyslog + ckfe $LOGFNAME + ckfe ${LOGFNAME}.0${ext} + cknt ${LOGFNAME}.1${ext} + end + + begin "rotate recompress 1" + gunzip ${LOGFNAME}.0${ext} + ckfe ${LOGFNAME}.0 + cknt ${LOGFNAME}.0${ext} + run_newsyslog + ckfe $LOGFNAME + ckfe ${LOGFNAME}.0${ext} + ckfe ${LOGFNAME}.1${ext} + end +} + +echo 1..185 mkdir -p ${TMPDIR} cd ${TMPDIR} @@ -556,5 +631,11 @@ tests_time_rotate "zst" "${TMPDIR}/alog/" echo "$LOGFPATH5424 640 3 * @T00 NCT" > newsyslog.conf echo "$LOGFPATH 640 3 * @T00 NC" >> newsyslog.conf tests_rfc5424 + +echo "$LOGFPATH 640 3 * @T00 NCpZ" > newsyslog.conf +tests_p_flag_rotate ".gz" + +echo "$LOGFPATH 640 3 * @T00 NCZ" > newsyslog.conf +tests_normal_rotate_recompress rm -rf "${TMPDIR}" From owner-svn-src-all@freebsd.org Tue Apr 7 16:28:00 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 367BD274501; Tue, 7 Apr 2020 16:28:00 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xXrc0kl7z3PG5; Tue, 7 Apr 2020 16:28:00 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E93C0C9E7; Tue, 7 Apr 2020 16:27:59 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 037GRx2e042027; Tue, 7 Apr 2020 16:27:59 GMT (envelope-from eugen@FreeBSD.org) Received: (from eugen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 037GRwTS042020; Tue, 7 Apr 2020 16:27:58 GMT (envelope-from eugen@FreeBSD.org) Message-Id: <202004071627.037GRwTS042020@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: eugen set sender to eugen@FreeBSD.org using -f From: Eugene Grosbein Date: Tue, 7 Apr 2020 16:27:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359694 - in stable/12: sbin/ipfw sys/netinet/libalias X-SVN-Group: stable-12 X-SVN-Commit-Author: eugen X-SVN-Commit-Paths: in stable/12: sbin/ipfw sys/netinet/libalias X-SVN-Commit-Revision: 359694 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 16:28:00 -0000 Author: eugen Date: Tue Apr 7 16:27:58 2020 New Revision: 359694 URL: https://svnweb.freebsd.org/changeset/base/359694 Log: MFC r357092,357787: Add support for RFC 6598/Carrier Grade NAT subnets to libalias and ipfw. In libalias, a new flag PKT_ALIAS_UNREGISTERED_RFC6598 is added. This is like PKT_ALIAS_UNREGISTERED_ONLY, but also is RFC 6598 aware. Also, we add a new NAT option to ipfw called unreg_cgn, which is like unreg_only, but also is RFC 6598-aware. The reason for the new flags/options is to avoid breaking existing networks, especially those which rely on RFC 6598 as an external address. Submitted by: Neel Chauhan Reviewed by: melifaro, rgrimes, Lutz Donnerhacke Relnotes: yes Differential Revision: https://reviews.freebsd.org/D22877 Differential Revision: https://reviews.freebsd.org/D23448 Modified: stable/12/sbin/ipfw/ipfw.8 stable/12/sbin/ipfw/ipfw2.h stable/12/sbin/ipfw/main.c stable/12/sbin/ipfw/nat.c stable/12/sys/netinet/libalias/alias.c stable/12/sys/netinet/libalias/alias.h stable/12/sys/netinet/libalias/libalias.3 Directory Properties: stable/12/ (props changed) Modified: stable/12/sbin/ipfw/ipfw.8 ============================================================================== --- stable/12/sbin/ipfw/ipfw.8 Tue Apr 7 16:15:53 2020 (r359693) +++ stable/12/sbin/ipfw/ipfw.8 Tue Apr 7 16:27:58 2020 (r359694) @@ -3233,8 +3233,11 @@ Deny any incoming connection from outside world. Try to leave the alias port numbers unchanged from the actual local port numbers. .It Cm unreg_only -Traffic on the local network not originating from an +Traffic on the local network not originating from a RFC 1918 unregistered address spaces will be ignored. +.It Cm unreg_cgn +Like unreg_only, but includes the RFC 6598 (Carrier Grade NAT) +address range. .It Cm reset Reset table of the packet aliasing engine on address change. .It Cm reverse Modified: stable/12/sbin/ipfw/ipfw2.h ============================================================================== --- stable/12/sbin/ipfw/ipfw2.h Tue Apr 7 16:15:53 2020 (r359693) +++ stable/12/sbin/ipfw/ipfw2.h Tue Apr 7 16:27:58 2020 (r359694) @@ -220,6 +220,7 @@ enum tokens { TOK_DENY_INC, TOK_SAME_PORTS, TOK_UNREG_ONLY, + TOK_UNREG_CGN, TOK_SKIP_GLOBAL, TOK_RESET_ADDR, TOK_ALIAS_REV, Modified: stable/12/sbin/ipfw/main.c ============================================================================== --- stable/12/sbin/ipfw/main.c Tue Apr 7 16:15:53 2020 (r359693) +++ stable/12/sbin/ipfw/main.c Tue Apr 7 16:27:58 2020 (r359694) @@ -43,8 +43,8 @@ help(void) "add [num] [set N] [prob x] RULE-BODY\n" "{pipe|queue} N config PIPE-BODY\n" "[pipe|queue] {zero|delete|show} [N{,N}]\n" -"nat N config {ip IPADDR|if IFNAME|log|deny_in|same_ports|unreg_only|reset|\n" -" reverse|proxy_only|redirect_addr linkspec|\n" +"nat N config {ip IPADDR|if IFNAME|log|deny_in|same_ports|unreg_only|unreg_cgn|\n" +" reset|reverse|proxy_only|redirect_addr linkspec|\n" " redirect_port linkspec|redirect_proto linkspec}\n" "set [disable N... enable N...] | move [rule] X to Y | swap X Y | show\n" "set N {show|list|zero|resetlog|delete} [N{,N}] | flush\n" Modified: stable/12/sbin/ipfw/nat.c ============================================================================== --- stable/12/sbin/ipfw/nat.c Tue Apr 7 16:15:53 2020 (r359693) +++ stable/12/sbin/ipfw/nat.c Tue Apr 7 16:27:58 2020 (r359694) @@ -60,6 +60,7 @@ static struct _s_x nat_params[] = { { "deny_in", TOK_DENY_INC }, { "same_ports", TOK_SAME_PORTS }, { "unreg_only", TOK_UNREG_ONLY }, + { "unreg_cgn", TOK_UNREG_CGN }, { "skip_global", TOK_SKIP_GLOBAL }, { "reset", TOK_RESET_ADDR }, { "reverse", TOK_ALIAS_REV }, @@ -663,6 +664,9 @@ nat_show_cfg(struct nat44_cfg_nat *n, void *arg) } else if (n->mode & PKT_ALIAS_UNREGISTERED_ONLY) { printf(" unreg_only"); n->mode &= ~PKT_ALIAS_UNREGISTERED_ONLY; + } else if (n->mode & PKT_ALIAS_UNREGISTERED_CGN) { + printf(" unreg_cgn"); + n->mode &= ~PKT_ALIAS_UNREGISTERED_CGN; } else if (n->mode & PKT_ALIAS_RESET_ON_ADDR_CHANGE) { printf(" reset"); n->mode &= ~PKT_ALIAS_RESET_ON_ADDR_CHANGE; @@ -789,6 +793,7 @@ ipfw_config_nat(int ac, char **av) case TOK_SAME_PORTS: case TOK_SKIP_GLOBAL: case TOK_UNREG_ONLY: + case TOK_UNREG_CGN: case TOK_RESET_ADDR: case TOK_ALIAS_REV: case TOK_PROXY_ONLY: @@ -882,6 +887,9 @@ ipfw_config_nat(int ac, char **av) break; case TOK_UNREG_ONLY: n->mode |= PKT_ALIAS_UNREGISTERED_ONLY; + break; + case TOK_UNREG_CGN: + n->mode |= PKT_ALIAS_UNREGISTERED_CGN; break; case TOK_SKIP_GLOBAL: n->mode |= PKT_ALIAS_SKIP_GLOBAL; Modified: stable/12/sys/netinet/libalias/alias.c ============================================================================== --- stable/12/sys/netinet/libalias/alias.c Tue Apr 7 16:15:53 2020 (r359693) +++ stable/12/sys/netinet/libalias/alias.c Tue Apr 7 16:27:58 2020 (r359694) @@ -1413,6 +1413,10 @@ getout: #define UNREG_ADDR_C_LOWER 0xc0a80000 #define UNREG_ADDR_C_UPPER 0xc0a8ffff +/* 100.64.0.0 -> 100.127.255.255 (RFC 6598 - Carrier Grade NAT) */ +#define UNREG_ADDR_CGN_LOWER 0x64400000 +#define UNREG_ADDR_CGN_UPPER 0x647fffff + int LibAliasOut(struct libalias *la, char *ptr, int maxpacketsize) { @@ -1464,7 +1468,8 @@ LibAliasOutLocked(struct libalias *la, char *ptr, /* v } addr_save = GetDefaultAliasAddress(la); - if (la->packetAliasMode & PKT_ALIAS_UNREGISTERED_ONLY) { + if (la->packetAliasMode & PKT_ALIAS_UNREGISTERED_ONLY || + la->packetAliasMode & PKT_ALIAS_UNREGISTERED_CGN) { u_long addr; int iclass; @@ -1476,6 +1481,9 @@ LibAliasOutLocked(struct libalias *la, char *ptr, /* v iclass = 2; else if (addr >= UNREG_ADDR_A_LOWER && addr <= UNREG_ADDR_A_UPPER) iclass = 1; + else if (addr >= UNREG_ADDR_CGN_LOWER && addr <= UNREG_ADDR_CGN_UPPER && + la->packetAliasMode & PKT_ALIAS_UNREGISTERED_CGN) + iclass = 4; if (iclass == 0) { SetDefaultAliasAddress(la, pip->ip_src); Modified: stable/12/sys/netinet/libalias/alias.h ============================================================================== --- stable/12/sys/netinet/libalias/alias.h Tue Apr 7 16:15:53 2020 (r359693) +++ stable/12/sys/netinet/libalias/alias.h Tue Apr 7 16:27:58 2020 (r359694) @@ -228,6 +228,14 @@ struct mbuf *m_megapullup(struct mbuf *, int); */ #define PKT_ALIAS_SKIP_GLOBAL 0x200 +/* + * Like PKT_ALIAS_UNREGISTERED_ONLY, but includes the RFC 6598 + * (Carrier Grade NAT) address range as follows: + * + * 100.64.0.0 -> 100.127.255.255 + */ +#define PKT_ALIAS_UNREGISTERED_CGN 0x400 + /* Function return codes. */ #define PKT_ALIAS_ERROR -1 #define PKT_ALIAS_OK 1 Modified: stable/12/sys/netinet/libalias/libalias.3 ============================================================================== --- stable/12/sys/netinet/libalias/libalias.3 Tue Apr 7 16:15:53 2020 (r359693) +++ stable/12/sys/netinet/libalias/libalias.3 Tue Apr 7 16:27:58 2020 (r359694) @@ -212,6 +212,11 @@ This option is useful in the case that the packet alia registered and unregistered subnets on different interfaces. The registered subnet is fully accessible to the outside world, so traffic from it does not need to be passed through the packet aliasing engine. +.It Dv PKT_ALIAS_UNREGISTERED_CGN +Like PKT_ALIAS_UNREGISTERED_ONLY, but includes the RFC 6598 (Carrier Grade +NAT) subnet as follows: +.Pp +100.64.0.0 -> 100.127.255.255 (RFC 6598 subnet) .It Dv PKT_ALIAS_RESET_ON_ADDR_CHANGE When this mode bit is set and .Fn LibAliasSetAddress From owner-svn-src-all@freebsd.org Tue Apr 7 16:29:13 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2A9202745C3; Tue, 7 Apr 2020 16:29:13 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xXt10NJ6z3PNl; Tue, 7 Apr 2020 16:29:13 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 08475C9E8; Tue, 7 Apr 2020 16:29:13 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 037GTC2E042134; Tue, 7 Apr 2020 16:29:12 GMT (envelope-from eugen@FreeBSD.org) Received: (from eugen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 037GTBns042126; Tue, 7 Apr 2020 16:29:11 GMT (envelope-from eugen@FreeBSD.org) Message-Id: <202004071629.037GTBns042126@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: eugen set sender to eugen@FreeBSD.org using -f From: Eugene Grosbein Date: Tue, 7 Apr 2020 16:29:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r359695 - in stable/11: sbin/ipfw sys/netinet/libalias X-SVN-Group: stable-11 X-SVN-Commit-Author: eugen X-SVN-Commit-Paths: in stable/11: sbin/ipfw sys/netinet/libalias X-SVN-Commit-Revision: 359695 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 16:29:13 -0000 Author: eugen Date: Tue Apr 7 16:29:11 2020 New Revision: 359695 URL: https://svnweb.freebsd.org/changeset/base/359695 Log: MFC r357092,357787: Add support for RFC 6598/Carrier Grade NAT subnets to libalias and ipfw. In libalias, a new flag PKT_ALIAS_UNREGISTERED_RFC6598 is added. This is like PKT_ALIAS_UNREGISTERED_ONLY, but also is RFC 6598 aware. Also, we add a new NAT option to ipfw called unreg_cgn, which is like unreg_only, but also is RFC 6598-aware. The reason for the new flags/options is to avoid breaking existing networks, especially those which rely on RFC 6598 as an external address. Submitted by: Neel Chauhan Reviewed by: melifaro, rgrimes, Lutz Donnerhacke Relnotes: yes Differential Revision: https://reviews.freebsd.org/D22877 Differential Revision: https://reviews.freebsd.org/D23448 Modified: stable/11/sbin/ipfw/ipfw.8 stable/11/sbin/ipfw/ipfw2.h stable/11/sbin/ipfw/main.c stable/11/sbin/ipfw/nat.c stable/11/sys/netinet/libalias/alias.c stable/11/sys/netinet/libalias/alias.h stable/11/sys/netinet/libalias/libalias.3 Directory Properties: stable/11/ (props changed) Modified: stable/11/sbin/ipfw/ipfw.8 ============================================================================== --- stable/11/sbin/ipfw/ipfw.8 Tue Apr 7 16:27:58 2020 (r359694) +++ stable/11/sbin/ipfw/ipfw.8 Tue Apr 7 16:29:11 2020 (r359695) @@ -3228,8 +3228,11 @@ Deny any incoming connection from outside world. Try to leave the alias port numbers unchanged from the actual local port numbers. .It Cm unreg_only -Traffic on the local network not originating from an +Traffic on the local network not originating from a RFC 1918 unregistered address spaces will be ignored. +.It Cm unreg_cgn +Like unreg_only, but includes the RFC 6598 (Carrier Grade NAT) +address range. .It Cm reset Reset table of the packet aliasing engine on address change. .It Cm reverse Modified: stable/11/sbin/ipfw/ipfw2.h ============================================================================== --- stable/11/sbin/ipfw/ipfw2.h Tue Apr 7 16:27:58 2020 (r359694) +++ stable/11/sbin/ipfw/ipfw2.h Tue Apr 7 16:29:11 2020 (r359695) @@ -220,6 +220,7 @@ enum tokens { TOK_DENY_INC, TOK_SAME_PORTS, TOK_UNREG_ONLY, + TOK_UNREG_CGN, TOK_SKIP_GLOBAL, TOK_RESET_ADDR, TOK_ALIAS_REV, Modified: stable/11/sbin/ipfw/main.c ============================================================================== --- stable/11/sbin/ipfw/main.c Tue Apr 7 16:27:58 2020 (r359694) +++ stable/11/sbin/ipfw/main.c Tue Apr 7 16:29:11 2020 (r359695) @@ -43,8 +43,8 @@ help(void) "add [num] [set N] [prob x] RULE-BODY\n" "{pipe|queue} N config PIPE-BODY\n" "[pipe|queue] {zero|delete|show} [N{,N}]\n" -"nat N config {ip IPADDR|if IFNAME|log|deny_in|same_ports|unreg_only|reset|\n" -" reverse|proxy_only|redirect_addr linkspec|\n" +"nat N config {ip IPADDR|if IFNAME|log|deny_in|same_ports|unreg_only|unreg_cgn|\n" +" reset|reverse|proxy_only|redirect_addr linkspec|\n" " redirect_port linkspec|redirect_proto linkspec}\n" "set [disable N... enable N...] | move [rule] X to Y | swap X Y | show\n" "set N {show|list|zero|resetlog|delete} [N{,N}] | flush\n" Modified: stable/11/sbin/ipfw/nat.c ============================================================================== --- stable/11/sbin/ipfw/nat.c Tue Apr 7 16:27:58 2020 (r359694) +++ stable/11/sbin/ipfw/nat.c Tue Apr 7 16:29:11 2020 (r359695) @@ -60,6 +60,7 @@ static struct _s_x nat_params[] = { { "deny_in", TOK_DENY_INC }, { "same_ports", TOK_SAME_PORTS }, { "unreg_only", TOK_UNREG_ONLY }, + { "unreg_cgn", TOK_UNREG_CGN }, { "skip_global", TOK_SKIP_GLOBAL }, { "reset", TOK_RESET_ADDR }, { "reverse", TOK_ALIAS_REV }, @@ -663,6 +664,9 @@ nat_show_cfg(struct nat44_cfg_nat *n, void *arg) } else if (n->mode & PKT_ALIAS_UNREGISTERED_ONLY) { printf(" unreg_only"); n->mode &= ~PKT_ALIAS_UNREGISTERED_ONLY; + } else if (n->mode & PKT_ALIAS_UNREGISTERED_CGN) { + printf(" unreg_cgn"); + n->mode &= ~PKT_ALIAS_UNREGISTERED_CGN; } else if (n->mode & PKT_ALIAS_RESET_ON_ADDR_CHANGE) { printf(" reset"); n->mode &= ~PKT_ALIAS_RESET_ON_ADDR_CHANGE; @@ -789,6 +793,7 @@ ipfw_config_nat(int ac, char **av) case TOK_SAME_PORTS: case TOK_SKIP_GLOBAL: case TOK_UNREG_ONLY: + case TOK_UNREG_CGN: case TOK_RESET_ADDR: case TOK_ALIAS_REV: case TOK_PROXY_ONLY: @@ -882,6 +887,9 @@ ipfw_config_nat(int ac, char **av) break; case TOK_UNREG_ONLY: n->mode |= PKT_ALIAS_UNREGISTERED_ONLY; + break; + case TOK_UNREG_CGN: + n->mode |= PKT_ALIAS_UNREGISTERED_CGN; break; case TOK_SKIP_GLOBAL: n->mode |= PKT_ALIAS_SKIP_GLOBAL; Modified: stable/11/sys/netinet/libalias/alias.c ============================================================================== --- stable/11/sys/netinet/libalias/alias.c Tue Apr 7 16:27:58 2020 (r359694) +++ stable/11/sys/netinet/libalias/alias.c Tue Apr 7 16:29:11 2020 (r359695) @@ -1411,6 +1411,10 @@ getout: #define UNREG_ADDR_C_LOWER 0xc0a80000 #define UNREG_ADDR_C_UPPER 0xc0a8ffff +/* 100.64.0.0 -> 100.127.255.255 (RFC 6598 - Carrier Grade NAT) */ +#define UNREG_ADDR_CGN_LOWER 0x64400000 +#define UNREG_ADDR_CGN_UPPER 0x647fffff + int LibAliasOut(struct libalias *la, char *ptr, int maxpacketsize) { @@ -1462,7 +1466,8 @@ LibAliasOutLocked(struct libalias *la, char *ptr, /* v } addr_save = GetDefaultAliasAddress(la); - if (la->packetAliasMode & PKT_ALIAS_UNREGISTERED_ONLY) { + if (la->packetAliasMode & PKT_ALIAS_UNREGISTERED_ONLY || + la->packetAliasMode & PKT_ALIAS_UNREGISTERED_CGN) { u_long addr; int iclass; @@ -1474,6 +1479,9 @@ LibAliasOutLocked(struct libalias *la, char *ptr, /* v iclass = 2; else if (addr >= UNREG_ADDR_A_LOWER && addr <= UNREG_ADDR_A_UPPER) iclass = 1; + else if (addr >= UNREG_ADDR_CGN_LOWER && addr <= UNREG_ADDR_CGN_UPPER && + la->packetAliasMode & PKT_ALIAS_UNREGISTERED_CGN) + iclass = 4; if (iclass == 0) { SetDefaultAliasAddress(la, pip->ip_src); Modified: stable/11/sys/netinet/libalias/alias.h ============================================================================== --- stable/11/sys/netinet/libalias/alias.h Tue Apr 7 16:27:58 2020 (r359694) +++ stable/11/sys/netinet/libalias/alias.h Tue Apr 7 16:29:11 2020 (r359695) @@ -226,6 +226,14 @@ struct mbuf *m_megapullup(struct mbuf *, int); */ #define PKT_ALIAS_SKIP_GLOBAL 0x200 +/* + * Like PKT_ALIAS_UNREGISTERED_ONLY, but includes the RFC 6598 + * (Carrier Grade NAT) address range as follows: + * + * 100.64.0.0 -> 100.127.255.255 + */ +#define PKT_ALIAS_UNREGISTERED_CGN 0x400 + /* Function return codes. */ #define PKT_ALIAS_ERROR -1 #define PKT_ALIAS_OK 1 Modified: stable/11/sys/netinet/libalias/libalias.3 ============================================================================== --- stable/11/sys/netinet/libalias/libalias.3 Tue Apr 7 16:27:58 2020 (r359694) +++ stable/11/sys/netinet/libalias/libalias.3 Tue Apr 7 16:29:11 2020 (r359695) @@ -212,6 +212,11 @@ This option is useful in the case that the packet alia registered and unregistered subnets on different interfaces. The registered subnet is fully accessible to the outside world, so traffic from it does not need to be passed through the packet aliasing engine. +.It Dv PKT_ALIAS_UNREGISTERED_CGN +Like PKT_ALIAS_UNREGISTERED_ONLY, but includes the RFC 6598 (Carrier Grade +NAT) subnet as follows: +.Pp +100.64.0.0 -> 100.127.255.255 (RFC 6598 subnet) .It Dv PKT_ALIAS_RESET_ON_ADDR_CHANGE When this mode bit is set and .Fn LibAliasSetAddress From owner-svn-src-all@freebsd.org Tue Apr 7 16:40:42 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D6ECF274A50; Tue, 7 Apr 2020 16:40:42 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xY7G5Nnqz3Px6; Tue, 7 Apr 2020 16:40:42 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B4327CBE0; Tue, 7 Apr 2020 16:40:42 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 037Gegaq048349; Tue, 7 Apr 2020 16:40:42 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 037GeftS048343; Tue, 7 Apr 2020 16:40:41 GMT (envelope-from cem@FreeBSD.org) Message-Id: <202004071640.037GeftS048343@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Tue, 7 Apr 2020 16:40:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359696 - in head/lib/libcasper/services: cap_dns cap_fileargs cap_grp cap_pwd cap_sysctl cap_syslog X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: in head/lib/libcasper/services: cap_dns cap_fileargs cap_grp cap_pwd cap_sysctl cap_syslog X-SVN-Commit-Revision: 359696 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 16:40:42 -0000 Author: cem Date: Tue Apr 7 16:40:41 2020 New Revision: 359696 URL: https://svnweb.freebsd.org/changeset/base/359696 Log: libcasper(3): Export functions to C++ We must wrap C declarations in __BEGIN / __END_DECLS to avoid C++ name-mangling of the declaration when including the C header; name-mangling causes the linker to attempt to locate the wrong (C++ ABI) symbol name. Reviewed by: markj, oshogbo (earlier version both) Differential Revision: https://reviews.freebsd.org/D24323 Modified: head/lib/libcasper/services/cap_dns/cap_dns.h head/lib/libcasper/services/cap_fileargs/cap_fileargs.h head/lib/libcasper/services/cap_grp/cap_grp.h head/lib/libcasper/services/cap_pwd/cap_pwd.h head/lib/libcasper/services/cap_sysctl/cap_sysctl.h head/lib/libcasper/services/cap_syslog/cap_syslog.h Modified: head/lib/libcasper/services/cap_dns/cap_dns.h ============================================================================== --- head/lib/libcasper/services/cap_dns/cap_dns.h Tue Apr 7 16:29:11 2020 (r359695) +++ head/lib/libcasper/services/cap_dns/cap_dns.h Tue Apr 7 16:40:41 2020 (r359696) @@ -36,12 +36,15 @@ #define WITH_CASPER #endif +#include #include /* socklen_t */ struct addrinfo; struct hostent; #ifdef WITH_CASPER +__BEGIN_DECLS + struct hostent *cap_gethostbyname(cap_channel_t *chan, const char *name); struct hostent *cap_gethostbyname2(cap_channel_t *chan, const char *name, int type); @@ -58,6 +61,8 @@ int cap_dns_type_limit(cap_channel_t *chan, const char size_t ntypes); int cap_dns_family_limit(cap_channel_t *chan, const int *families, size_t nfamilies); + +__END_DECLS #else #define cap_gethostbyname(chan, name) gethostbyname(name) #define cap_gethostbyname2(chan, name, type) gethostbyname2(name, type) Modified: head/lib/libcasper/services/cap_fileargs/cap_fileargs.h ============================================================================== --- head/lib/libcasper/services/cap_fileargs/cap_fileargs.h Tue Apr 7 16:29:11 2020 (r359695) +++ head/lib/libcasper/services/cap_fileargs/cap_fileargs.h Tue Apr 7 16:40:41 2020 (r359696) @@ -31,6 +31,7 @@ #ifndef _FILEARGS_H_ #define _FILEARGS_H_ +#include #include #include @@ -44,6 +45,8 @@ struct fileargs; typedef struct fileargs fileargs_t; struct stat; +__BEGIN_DECLS + fileargs_t *fileargs_init(int argc, char *argv[], int flags, mode_t mode, cap_rights_t *rightsp, int operations); fileargs_t *fileargs_cinit(cap_channel_t *cas, int argc, char *argv[], @@ -57,6 +60,9 @@ FILE *fileargs_fopen(fileargs_t *fa, const char *name, fileargs_t *fileargs_wrap(cap_channel_t *chan, int fdflags); cap_channel_t *fileargs_unwrap(fileargs_t *fa, int *fdflags); + +__END_DECLS + #else typedef struct fileargs { int fa_flags; Modified: head/lib/libcasper/services/cap_grp/cap_grp.h ============================================================================== --- head/lib/libcasper/services/cap_grp/cap_grp.h Tue Apr 7 16:29:11 2020 (r359695) +++ head/lib/libcasper/services/cap_grp/cap_grp.h Tue Apr 7 16:40:41 2020 (r359696) @@ -36,7 +36,11 @@ #define WITH_CASPER #endif +#include + #ifdef WITH_CASPER +__BEGIN_DECLS + struct group *cap_getgrent(cap_channel_t *chan); struct group *cap_getgrnam(cap_channel_t *chan, const char *name); struct group *cap_getgrgid(cap_channel_t *chan, gid_t gid); @@ -58,6 +62,9 @@ int cap_grp_limit_fields(cap_channel_t *chan, const ch size_t nfields); int cap_grp_limit_groups(cap_channel_t *chan, const char * const *names, size_t nnames, const gid_t *gids, size_t ngids); + +__END_DECLS + #else #define cap_getgrent(chan) getgrent() #define cap_getgrnam(chan, name) getgrnam(name) Modified: head/lib/libcasper/services/cap_pwd/cap_pwd.h ============================================================================== --- head/lib/libcasper/services/cap_pwd/cap_pwd.h Tue Apr 7 16:29:11 2020 (r359695) +++ head/lib/libcasper/services/cap_pwd/cap_pwd.h Tue Apr 7 16:40:41 2020 (r359696) @@ -36,7 +36,11 @@ #define WITH_CASPER #endif +#include + #ifdef WITH_CASPER +__BEGIN_DECLS + struct passwd *cap_getpwent(cap_channel_t *chan); struct passwd *cap_getpwnam(cap_channel_t *chan, const char *login); struct passwd *cap_getpwuid(cap_channel_t *chan, uid_t uid); @@ -58,6 +62,9 @@ int cap_pwd_limit_fields(cap_channel_t *chan, const ch size_t nfields); int cap_pwd_limit_users(cap_channel_t *chan, const char * const *names, size_t nnames, uid_t *uids, size_t nuids); + +__END_DECLS + #else #define cap_getpwent(chan) getpwent() #define cap_getpwnam(chan, login) getpwnam(login) Modified: head/lib/libcasper/services/cap_sysctl/cap_sysctl.h ============================================================================== --- head/lib/libcasper/services/cap_sysctl/cap_sysctl.h Tue Apr 7 16:29:11 2020 (r359695) +++ head/lib/libcasper/services/cap_sysctl/cap_sysctl.h Tue Apr 7 16:40:41 2020 (r359696) @@ -36,12 +36,16 @@ #define WITH_CASPER #endif +#include + #ifdef WITH_CASPER #define CAP_SYSCTL_READ 0x01 #define CAP_SYSCTL_WRITE 0x02 #define CAP_SYSCTL_RDWR (CAP_SYSCTL_READ | CAP_SYSCTL_WRITE) #define CAP_SYSCTL_RECURSIVE 0x04 +__BEGIN_DECLS + int cap_sysctl(cap_channel_t *chan, const int *name, u_int namelen, void *oldp, size_t *oldlenp, const void *newp, size_t newlen); int cap_sysctlbyname(cap_channel_t *chan, const char *name, void *oldp, @@ -58,6 +62,9 @@ cap_sysctl_limit_t *cap_sysctl_limit_name(cap_sysctl_l cap_sysctl_limit_t *cap_sysctl_limit_mib(cap_sysctl_limit_t *limit, const int *mibp, u_int miblen, int flags); int cap_sysctl_limit(cap_sysctl_limit_t *limit); + +__END_DECLS + #else /* !WITH_CASPER */ #define cap_sysctl(chan, name, namelen, oldp, oldlenp, newp, newlen) \ sysctl((name), (namelen), (oldp), (oldlenp), (newp), (newlen)) Modified: head/lib/libcasper/services/cap_syslog/cap_syslog.h ============================================================================== --- head/lib/libcasper/services/cap_syslog/cap_syslog.h Tue Apr 7 16:29:11 2020 (r359695) +++ head/lib/libcasper/services/cap_syslog/cap_syslog.h Tue Apr 7 16:40:41 2020 (r359696) @@ -29,7 +29,11 @@ #ifndef _CAP_SYSLOG_H_ #define _CAP_SYSLOG_H_ +#include + #ifdef WITH_CASPER +__BEGIN_DECLS + void cap_syslog(cap_channel_t *chan, int pri, const char *fmt, ...) __printflike(3, 4); void cap_vsyslog(cap_channel_t *chan, int priority, const char *fmt, @@ -40,6 +44,9 @@ void cap_openlog(cap_channel_t *chan, const char *iden void cap_closelog(cap_channel_t *chan); int cap_setlogmask(cap_channel_t *chan, int maskpri); + +__END_DECLS + #else #define cap_syslog(chan, pri, ...) syslog(pri, __VA_ARGS__) #define cap_vsyslog(chan, pri, fmt, ap) vsyslog(pri, fmt, ap) From owner-svn-src-all@freebsd.org Tue Apr 7 16:44:15 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 82CE2274E63; Tue, 7 Apr 2020 16:44:15 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xYCM2tw1z3QQL; Tue, 7 Apr 2020 16:44:15 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5E077CDB3; Tue, 7 Apr 2020 16:44:15 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 037GiFDo053860; Tue, 7 Apr 2020 16:44:15 GMT (envelope-from eugen@FreeBSD.org) Received: (from eugen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 037GiEV3053857; Tue, 7 Apr 2020 16:44:14 GMT (envelope-from eugen@FreeBSD.org) Message-Id: <202004071644.037GiEV3053857@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: eugen set sender to eugen@FreeBSD.org using -f From: Eugene Grosbein Date: Tue, 7 Apr 2020 16:44:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359697 - in stable/12: share/man/man4 sys/netgraph X-SVN-Group: stable-12 X-SVN-Commit-Author: eugen X-SVN-Commit-Paths: in stable/12: share/man/man4 sys/netgraph X-SVN-Commit-Revision: 359697 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 16:44:15 -0000 Author: eugen Date: Tue Apr 7 16:44:14 2020 New Revision: 359697 URL: https://svnweb.freebsd.org/changeset/base/359697 Log: MFC r342168,357786: Allow ng_nat to be attached to a ethernet interface Allow ng_nat to be attached to a ethernet interface directly via ng_ether(4) or the likes. Add new control message types: setdlt and getdlt to switch from default DLT_RAW (no encapsulation) to DLT_EN10MB (ethernet). Submitted by: sobomax Reviewed by: glebius Differential Revision: https://reviews.freebsd.org/D18535 Relnotes: yes Modified: stable/12/share/man/man4/ng_nat.4 stable/12/sys/netgraph/ng_nat.c stable/12/sys/netgraph/ng_nat.h Directory Properties: stable/12/ (props changed) Modified: stable/12/share/man/man4/ng_nat.4 ============================================================================== --- stable/12/share/man/man4/ng_nat.4 Tue Apr 7 16:40:41 2020 (r359696) +++ stable/12/share/man/man4/ng_nat.4 Tue Apr 7 16:44:14 2020 (r359697) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd March 21, 2013 +.Dd December 12, 2018 .Dt NG_NAT 4 .Os .Sh NAME @@ -264,6 +264,38 @@ from its .Xr libalias instance, the corresponding field is returned as .Va UINT32_MAX . +.It Dv NGM_NAT_SET_DLT Pq Ic setdlt +Sets the data link type on the +.Va in +and +.Va out +hooks. +Currently, supported types are +.Cm DLT_RAW +(raw IP datagrams , no offset applied, the default) and +.Cm DLT_EN10MB +(Ethernet). DLT_ definitions can be found in +.In net/bpf.h . +If you want to work on the +.Xr ipfw 8 +level you must use no additional offset by specifying +.Cm DLT_RAW . +If, however, you attach +.Nm +to a network interface directly and +.Cm EN10MB +is specified, then the extra offset will be applied to take into account +link-level header. +In this mode the +.Nm +would also inspect appropriate type field in the Ethernet header and +pass-through any datagrams that are not IP packets. +.It Dv NGM_NAT_GET_DLT Pq Ic getdlt +This control message returns the current data link type of the +.Va in +and +.Va out +hooks. .El .Pp In all redirection messages @@ -336,11 +368,31 @@ serial line with HDLC encapsulation. SEQ ifconfig ng0 x.y.8.35 x.y.8.1 .Ed +.Pp +The +.Nm +node can also be attached directly to the physical interface +via +.Xr ng_ether 4 +node in the graph. +In the following example, we perform masquerading on a +Ethernet interface connected to a public network. +.Bd -literal -offset indent +ifconfig igb0 inet x.y.8.35 netmask 0xfffff000 +route add default x.y.0.1 +/usr/sbin/ngctl -f- <<-SEQ + mkpeer igb0: nat lower in + name igb0:lower igb0_NAT + connect igb0: igb0_NAT: upper out + msg igb0_NAT: setdlt 1 + msg igb0_NAT: setaliasaddr x.y.8.35 +SEQ .Sh SEE ALSO .Xr libalias 3 , .Xr ng_ipfw 4 , .Xr natd 8 , -.Xr ngctl 8 +.Xr ngctl 8 , +.Xr ng_ether 8 .Sh HISTORY The .Nm Modified: stable/12/sys/netgraph/ng_nat.c ============================================================================== --- stable/12/sys/netgraph/ng_nat.c Tue Apr 7 16:40:41 2020 (r359696) +++ stable/12/sys/netgraph/ng_nat.c Tue Apr 7 16:44:14 2020 (r359697) @@ -44,6 +44,9 @@ #include #include +#include +#include + #include #include @@ -241,6 +244,20 @@ static const struct ng_cmdlist ng_nat_cmdlist[] = { NULL, &ng_nat_libalias_info_type }, + { + NGM_NAT_COOKIE, + NGM_NAT_SET_DLT, + "setdlt", + &ng_parse_uint8_type, + NULL + }, + { + NGM_NAT_COOKIE, + NGM_NAT_GET_DLT, + "getdlt", + NULL, + &ng_parse_uint8_type + }, { 0 } }; @@ -277,6 +294,7 @@ struct ng_nat_priv { uint32_t rdrcount; /* number or redirects in list */ uint32_t nextid; /* for next in turn in list */ struct rdrhead redirhead; /* redirect list header */ + uint8_t dlt; /* DLT_XXX from bpf.h */ }; typedef struct ng_nat_priv *priv_p; @@ -302,6 +320,7 @@ ng_nat_constructor(node_p node) /* Init redirects housekeeping. */ priv->rdrcount = 0; priv->nextid = 1; + priv->dlt = DLT_RAW; STAILQ_INIT(&priv->redirhead); /* Link structs together. */ @@ -694,11 +713,34 @@ ng_nat_rcvmsg(node_p node, item_p item, hook_p lasthoo #undef COPY } break; + case NGM_NAT_SET_DLT: + if (msg->header.arglen != sizeof(uint8_t)) { + error = EINVAL; + break; + } + switch (*(uint8_t *) msg->data) { + case DLT_EN10MB: + case DLT_RAW: + priv->dlt = *(uint8_t *) msg->data; + break; + default: + error = EINVAL; + break; + } + break; default: error = EINVAL; /* unknown command */ break; } break; + case NGM_NAT_GET_DLT: + NG_MKRESPONSE(resp, msg, sizeof(uint8_t), M_WAITOK); + if (resp == NULL) { + error = ENOMEM; + break; + } + *((uint8_t *) resp->data) = priv->dlt; + break; default: error = EINVAL; /* unknown cookie type */ break; @@ -715,7 +757,7 @@ ng_nat_rcvdata(hook_p hook, item_p item ) const priv_p priv = NG_NODE_PRIVATE(NG_HOOK_NODE(hook)); struct mbuf *m; struct ip *ip; - int rval, error = 0; + int rval, ipofs, error = 0; char *c; /* We have no required hooks. */ @@ -738,12 +780,44 @@ ng_nat_rcvdata(hook_p hook, item_p item ) NGI_M(item) = m; - c = mtod(m, char *); - ip = mtod(m, struct ip *); + switch (priv->dlt) { + case DLT_RAW: + ipofs = 0; + break; + case DLT_EN10MB: + { + struct ether_header *eh; - KASSERT(m->m_pkthdr.len == ntohs(ip->ip_len), - ("ng_nat: ip_len != m_pkthdr.len")); + if (m->m_pkthdr.len < sizeof(struct ether_header)) { + NG_FREE_ITEM(item); + return (ENXIO); + } + eh = mtod(m, struct ether_header *); + switch (ntohs(eh->ether_type)) { + case ETHERTYPE_IP: + case ETHERTYPE_IPV6: + ipofs = sizeof(struct ether_header); + break; + default: + goto send; + } + break; + } + default: + panic("Corrupted priv->dlt: %u", priv->dlt); + } + if (m->m_pkthdr.len < ipofs + sizeof(struct ip)) + goto send; /* packet too short to hold IP */ + + c = (char *)mtodo(m, ipofs); + ip = (struct ip *)mtodo(m, ipofs); + + if (ip->ip_v != IPVERSION) + goto send; /* other IP version, let it pass */ + if (m->m_pkthdr.len < ipofs + ntohs(ip->ip_len)) + goto send; /* packet too short (i.e. fragmented or broken) */ + /* * We drop packet when: * 1. libalias returns PKT_ALIAS_ERROR; @@ -753,7 +827,8 @@ ng_nat_rcvdata(hook_p hook, item_p item ) * PKT_ALIAS_DENY_INCOMING flag is set. */ if (hook == priv->in) { - rval = LibAliasIn(priv->lib, c, m->m_len + M_TRAILINGSPACE(m)); + rval = LibAliasIn(priv->lib, c, m->m_len - ipofs + + M_TRAILINGSPACE(m)); if (rval == PKT_ALIAS_ERROR || rval == PKT_ALIAS_UNRESOLVED_FRAGMENT || (rval == PKT_ALIAS_IGNORED && @@ -763,7 +838,8 @@ ng_nat_rcvdata(hook_p hook, item_p item ) return (EINVAL); } } else if (hook == priv->out) { - rval = LibAliasOut(priv->lib, c, m->m_len + M_TRAILINGSPACE(m)); + rval = LibAliasOut(priv->lib, c, m->m_len - ipofs + + M_TRAILINGSPACE(m)); if (rval == PKT_ALIAS_ERROR) { NG_FREE_ITEM(item); return (EINVAL); @@ -773,7 +849,7 @@ ng_nat_rcvdata(hook_p hook, item_p item ) if (rval == PKT_ALIAS_RESPOND) m->m_flags |= M_SKIP_FIREWALL; - m->m_pkthdr.len = m->m_len = ntohs(ip->ip_len); + m->m_pkthdr.len = m->m_len = ntohs(ip->ip_len) + ipofs; if ((ip->ip_off & htons(IP_OFFMASK)) == 0 && ip->ip_p == IPPROTO_TCP) { Modified: stable/12/sys/netgraph/ng_nat.h ============================================================================== --- stable/12/sys/netgraph/ng_nat.h Tue Apr 7 16:40:41 2020 (r359696) +++ stable/12/sys/netgraph/ng_nat.h Tue Apr 7 16:44:14 2020 (r359697) @@ -205,6 +205,8 @@ enum { NGM_NAT_SET_IPADDR = 1, NGM_NAT_SET_MODE, NGM_NAT_SET_TARGET, + NGM_NAT_SET_DLT, + NGM_NAT_GET_DLT, NGM_NAT_REDIRECT_PORT, NGM_NAT_REDIRECT_ADDR, NGM_NAT_REDIRECT_PROTO, From owner-svn-src-all@freebsd.org Tue Apr 7 16:47:36 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 27B98274F2E; Tue, 7 Apr 2020 16:47:36 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xYHD0GtPz3QfS; Tue, 7 Apr 2020 16:47:36 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 04909CDE2; Tue, 7 Apr 2020 16:47:36 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 037GlZAH054070; Tue, 7 Apr 2020 16:47:35 GMT (envelope-from eugen@FreeBSD.org) Received: (from eugen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 037GlZjb054068; Tue, 7 Apr 2020 16:47:35 GMT (envelope-from eugen@FreeBSD.org) Message-Id: <202004071647.037GlZjb054068@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: eugen set sender to eugen@FreeBSD.org using -f From: Eugene Grosbein Date: Tue, 7 Apr 2020 16:47:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r359698 - in stable/11: share/man/man4 sys/netgraph X-SVN-Group: stable-11 X-SVN-Commit-Author: eugen X-SVN-Commit-Paths: in stable/11: share/man/man4 sys/netgraph X-SVN-Commit-Revision: 359698 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 16:47:36 -0000 Author: eugen Date: Tue Apr 7 16:47:35 2020 New Revision: 359698 URL: https://svnweb.freebsd.org/changeset/base/359698 Log: MFC r342168,357786: Allow ng_nat to be attached to a ethernet interface Allow ng_nat to be attached to a ethernet interface directly via ng_ether(4) or the likes. Add new control message types: setdlt and getdlt to switch from default DLT_RAW (no encapsulation) to DLT_EN10MB (ethernet). Submitted by: sobomax Reviewed by: glebius Differential Revision: https://reviews.freebsd.org/D18535 Relnotes: yes Modified: stable/11/share/man/man4/ng_nat.4 stable/11/sys/netgraph/ng_nat.c stable/11/sys/netgraph/ng_nat.h Directory Properties: stable/11/ (props changed) Modified: stable/11/share/man/man4/ng_nat.4 ============================================================================== --- stable/11/share/man/man4/ng_nat.4 Tue Apr 7 16:44:14 2020 (r359697) +++ stable/11/share/man/man4/ng_nat.4 Tue Apr 7 16:47:35 2020 (r359698) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd March 21, 2013 +.Dd December 12, 2018 .Dt NG_NAT 4 .Os .Sh NAME @@ -264,6 +264,38 @@ from its .Xr libalias instance, the corresponding field is returned as .Va UINT32_MAX . +.It Dv NGM_NAT_SET_DLT Pq Ic setdlt +Sets the data link type on the +.Va in +and +.Va out +hooks. +Currently, supported types are +.Cm DLT_RAW +(raw IP datagrams , no offset applied, the default) and +.Cm DLT_EN10MB +(Ethernet). DLT_ definitions can be found in +.In net/bpf.h . +If you want to work on the +.Xr ipfw 8 +level you must use no additional offset by specifying +.Cm DLT_RAW . +If, however, you attach +.Nm +to a network interface directly and +.Cm EN10MB +is specified, then the extra offset will be applied to take into account +link-level header. +In this mode the +.Nm +would also inspect appropriate type field in the Ethernet header and +pass-through any datagrams that are not IP packets. +.It Dv NGM_NAT_GET_DLT Pq Ic getdlt +This control message returns the current data link type of the +.Va in +and +.Va out +hooks. .El .Pp In all redirection messages @@ -336,11 +368,31 @@ serial line with HDLC encapsulation. SEQ ifconfig ng0 x.y.8.35 x.y.8.1 .Ed +.Pp +The +.Nm +node can also be attached directly to the physical interface +via +.Xr ng_ether 4 +node in the graph. +In the following example, we perform masquerading on a +Ethernet interface connected to a public network. +.Bd -literal -offset indent +ifconfig igb0 inet x.y.8.35 netmask 0xfffff000 +route add default x.y.0.1 +/usr/sbin/ngctl -f- <<-SEQ + mkpeer igb0: nat lower in + name igb0:lower igb0_NAT + connect igb0: igb0_NAT: upper out + msg igb0_NAT: setdlt 1 + msg igb0_NAT: setaliasaddr x.y.8.35 +SEQ .Sh SEE ALSO .Xr libalias 3 , .Xr ng_ipfw 4 , .Xr natd 8 , -.Xr ngctl 8 +.Xr ngctl 8 , +.Xr ng_ether 8 .Sh HISTORY The .Nm Modified: stable/11/sys/netgraph/ng_nat.c ============================================================================== --- stable/11/sys/netgraph/ng_nat.c Tue Apr 7 16:44:14 2020 (r359697) +++ stable/11/sys/netgraph/ng_nat.c Tue Apr 7 16:47:35 2020 (r359698) @@ -42,6 +42,9 @@ #include #include +#include +#include + #include #include @@ -239,6 +242,20 @@ static const struct ng_cmdlist ng_nat_cmdlist[] = { NULL, &ng_nat_libalias_info_type }, + { + NGM_NAT_COOKIE, + NGM_NAT_SET_DLT, + "setdlt", + &ng_parse_uint8_type, + NULL + }, + { + NGM_NAT_COOKIE, + NGM_NAT_GET_DLT, + "getdlt", + NULL, + &ng_parse_uint8_type + }, { 0 } }; @@ -275,6 +292,7 @@ struct ng_nat_priv { uint32_t rdrcount; /* number or redirects in list */ uint32_t nextid; /* for next in turn in list */ struct rdrhead redirhead; /* redirect list header */ + uint8_t dlt; /* DLT_XXX from bpf.h */ }; typedef struct ng_nat_priv *priv_p; @@ -300,6 +318,7 @@ ng_nat_constructor(node_p node) /* Init redirects housekeeping. */ priv->rdrcount = 0; priv->nextid = 1; + priv->dlt = DLT_RAW; STAILQ_INIT(&priv->redirhead); /* Link structs together. */ @@ -692,11 +711,34 @@ ng_nat_rcvmsg(node_p node, item_p item, hook_p lasthoo #undef COPY } break; + case NGM_NAT_SET_DLT: + if (msg->header.arglen != sizeof(uint8_t)) { + error = EINVAL; + break; + } + switch (*(uint8_t *) msg->data) { + case DLT_EN10MB: + case DLT_RAW: + priv->dlt = *(uint8_t *) msg->data; + break; + default: + error = EINVAL; + break; + } + break; default: error = EINVAL; /* unknown command */ break; } break; + case NGM_NAT_GET_DLT: + NG_MKRESPONSE(resp, msg, sizeof(uint8_t), M_WAITOK); + if (resp == NULL) { + error = ENOMEM; + break; + } + *((uint8_t *) resp->data) = priv->dlt; + break; default: error = EINVAL; /* unknown cookie type */ break; @@ -713,7 +755,7 @@ ng_nat_rcvdata(hook_p hook, item_p item ) const priv_p priv = NG_NODE_PRIVATE(NG_HOOK_NODE(hook)); struct mbuf *m; struct ip *ip; - int rval, error = 0; + int rval, ipofs, error = 0; char *c; /* We have no required hooks. */ @@ -736,12 +778,44 @@ ng_nat_rcvdata(hook_p hook, item_p item ) NGI_M(item) = m; - c = mtod(m, char *); - ip = mtod(m, struct ip *); + switch (priv->dlt) { + case DLT_RAW: + ipofs = 0; + break; + case DLT_EN10MB: + { + struct ether_header *eh; - KASSERT(m->m_pkthdr.len == ntohs(ip->ip_len), - ("ng_nat: ip_len != m_pkthdr.len")); + if (m->m_pkthdr.len < sizeof(struct ether_header)) { + NG_FREE_ITEM(item); + return (ENXIO); + } + eh = mtod(m, struct ether_header *); + switch (ntohs(eh->ether_type)) { + case ETHERTYPE_IP: + case ETHERTYPE_IPV6: + ipofs = sizeof(struct ether_header); + break; + default: + goto send; + } + break; + } + default: + panic("Corrupted priv->dlt: %u", priv->dlt); + } + if (m->m_pkthdr.len < ipofs + sizeof(struct ip)) + goto send; /* packet too short to hold IP */ + + c = (char *)mtodo(m, ipofs); + ip = (struct ip *)mtodo(m, ipofs); + + if (ip->ip_v != IPVERSION) + goto send; /* other IP version, let it pass */ + if (m->m_pkthdr.len < ipofs + ntohs(ip->ip_len)) + goto send; /* packet too short (i.e. fragmented or broken) */ + /* * We drop packet when: * 1. libalias returns PKT_ALIAS_ERROR; @@ -751,7 +825,8 @@ ng_nat_rcvdata(hook_p hook, item_p item ) * PKT_ALIAS_DENY_INCOMING flag is set. */ if (hook == priv->in) { - rval = LibAliasIn(priv->lib, c, m->m_len + M_TRAILINGSPACE(m)); + rval = LibAliasIn(priv->lib, c, m->m_len - ipofs + + M_TRAILINGSPACE(m)); if (rval == PKT_ALIAS_ERROR || rval == PKT_ALIAS_UNRESOLVED_FRAGMENT || (rval == PKT_ALIAS_IGNORED && @@ -761,7 +836,8 @@ ng_nat_rcvdata(hook_p hook, item_p item ) return (EINVAL); } } else if (hook == priv->out) { - rval = LibAliasOut(priv->lib, c, m->m_len + M_TRAILINGSPACE(m)); + rval = LibAliasOut(priv->lib, c, m->m_len - ipofs + + M_TRAILINGSPACE(m)); if (rval == PKT_ALIAS_ERROR) { NG_FREE_ITEM(item); return (EINVAL); @@ -771,7 +847,7 @@ ng_nat_rcvdata(hook_p hook, item_p item ) if (rval == PKT_ALIAS_RESPOND) m->m_flags |= M_SKIP_FIREWALL; - m->m_pkthdr.len = m->m_len = ntohs(ip->ip_len); + m->m_pkthdr.len = m->m_len = ntohs(ip->ip_len) + ipofs; if ((ip->ip_off & htons(IP_OFFMASK)) == 0 && ip->ip_p == IPPROTO_TCP) { Modified: stable/11/sys/netgraph/ng_nat.h ============================================================================== --- stable/11/sys/netgraph/ng_nat.h Tue Apr 7 16:44:14 2020 (r359697) +++ stable/11/sys/netgraph/ng_nat.h Tue Apr 7 16:47:35 2020 (r359698) @@ -203,6 +203,8 @@ enum { NGM_NAT_SET_IPADDR = 1, NGM_NAT_SET_MODE, NGM_NAT_SET_TARGET, + NGM_NAT_SET_DLT, + NGM_NAT_GET_DLT, NGM_NAT_REDIRECT_PORT, NGM_NAT_REDIRECT_ADDR, NGM_NAT_REDIRECT_PROTO, From owner-svn-src-all@freebsd.org Tue Apr 7 16:52:45 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EC6F12751EB; Tue, 7 Apr 2020 16:52:45 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xYP95ypzz3R4C; Tue, 7 Apr 2020 16:52:45 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C7D0ACFD2; Tue, 7 Apr 2020 16:52:45 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 037GqjFT059809; Tue, 7 Apr 2020 16:52:45 GMT (envelope-from eugen@FreeBSD.org) Received: (from eugen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 037GqjMF059808; Tue, 7 Apr 2020 16:52:45 GMT (envelope-from eugen@FreeBSD.org) Message-Id: <202004071652.037GqjMF059808@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: eugen set sender to eugen@FreeBSD.org using -f From: Eugene Grosbein Date: Tue, 7 Apr 2020 16:52:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359699 - stable/12/libexec/rc/rc.d X-SVN-Group: stable-12 X-SVN-Commit-Author: eugen X-SVN-Commit-Paths: stable/12/libexec/rc/rc.d X-SVN-Commit-Revision: 359699 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 16:52:46 -0000 Author: eugen Date: Tue Apr 7 16:52:45 2020 New Revision: 359699 URL: https://svnweb.freebsd.org/changeset/base/359699 Log: MFC r356943,356944: Correct "service ipfw status" for INET6-only systems. Modified: stable/12/libexec/rc/rc.d/ipfw Directory Properties: stable/12/ (props changed) Modified: stable/12/libexec/rc/rc.d/ipfw ============================================================================== --- stable/12/libexec/rc/rc.d/ipfw Tue Apr 7 16:47:35 2020 (r359698) +++ stable/12/libexec/rc/rc.d/ipfw Tue Apr 7 16:52:45 2020 (r359699) @@ -127,7 +127,11 @@ ipfw_stop() ipfw_status() { status=$(sysctl -i -n net.inet.ip.fw.enable) - if [ ${status:-0} -eq 0 ]; then + : ${status:=0} + if afexists inet6; then + status=$((${status} + $(sysctl -i -n net.inet6.ip6.fw.enable))) + fi + if [ ${status} -eq 0 ]; then echo "ipfw is not enabled" exit 1 else From owner-svn-src-all@freebsd.org Tue Apr 7 16:56:35 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4F4B927533D; Tue, 7 Apr 2020 16:56:35 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xYTb1QhKz3RDB; Tue, 7 Apr 2020 16:56:35 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 12462CFE0; Tue, 7 Apr 2020 16:56:35 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 037GuY0i060066; Tue, 7 Apr 2020 16:56:34 GMT (envelope-from sjg@FreeBSD.org) Received: (from sjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 037GuYE7060063; Tue, 7 Apr 2020 16:56:34 GMT (envelope-from sjg@FreeBSD.org) Message-Id: <202004071656.037GuYE7060063@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sjg set sender to sjg@FreeBSD.org using -f From: "Simon J. Gerraty" Date: Tue, 7 Apr 2020 16:56:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359700 - in head: lib/libsecureboot stand/libsa X-SVN-Group: head X-SVN-Commit-Author: sjg X-SVN-Commit-Paths: in head: lib/libsecureboot stand/libsa X-SVN-Commit-Revision: 359700 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 16:56:35 -0000 Author: sjg Date: Tue Apr 7 16:56:34 2020 New Revision: 359700 URL: https://svnweb.freebsd.org/changeset/base/359700 Log: Improve interaction of vectx and tftp On slow platforms, it helps to spread the hashing load over time so that tftp does not timeout. Also, some .4th files are too big to fit in cache of pkgfs, so increase cache size and ensure fully populated. Reviewed by: stevek MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D24287 Modified: head/lib/libsecureboot/vectx.c head/stand/libsa/pkgfs.c head/stand/libsa/tftp.c Modified: head/lib/libsecureboot/vectx.c ============================================================================== --- head/lib/libsecureboot/vectx.c Tue Apr 7 16:52:45 2020 (r359699) +++ head/lib/libsecureboot/vectx.c Tue Apr 7 16:56:34 2020 (r359700) @@ -211,6 +211,7 @@ ssize_t vectx_read(struct vectx *ctx, void *buf, size_t nbytes) { unsigned char *bp = buf; + int d; int n; int delta; int x; @@ -221,23 +222,30 @@ vectx_read(struct vectx *ctx, void *buf, size_t nbytes off = 0; do { - n = read(ctx->vec_fd, &bp[off], nbytes - off); - if (n < 0) + /* + * Do this in reasonable chunks so + * we don't timeout if doing tftp + */ + x = nbytes - off; + x = MIN(PAGE_SIZE, x); + d = n = read(ctx->vec_fd, &bp[off], x); + if (n < 0) { return (n); - if (n > 0) { + } + if (d > 0) { /* we may have seeked backwards! */ delta = ctx->vec_hashed - ctx->vec_off; if (delta > 0) { - x = MIN(delta, n); + x = MIN(delta, d); off += x; - n -= x; + d -= x; ctx->vec_off += x; } - if (n > 0) { - ctx->vec_md->update(&ctx->vec_ctx.vtable, &bp[off], n); - off += n; - ctx->vec_off += n; - ctx->vec_hashed += n; + if (d > 0) { + ctx->vec_md->update(&ctx->vec_ctx.vtable, &bp[off], d); + off += d; + ctx->vec_off += d; + ctx->vec_hashed += d; } } } while (n > 0 && off < nbytes); Modified: head/stand/libsa/pkgfs.c ============================================================================== --- head/stand/libsa/pkgfs.c Tue Apr 7 16:52:45 2020 (r359699) +++ head/stand/libsa/pkgfs.c Tue Apr 7 16:56:34 2020 (r359700) @@ -60,7 +60,7 @@ struct fs_ops pkgfs_fsops = { }; #define PKG_BUFSIZE 512 -#define PKG_MAXCACHESZ 16384 +#define PKG_MAXCACHESZ (16384 * 3) #define PKG_FILEEXT ".tgz" @@ -132,6 +132,7 @@ struct package static struct package *package = NULL; static int new_package(int, struct package **); +static int cache_data(struct tarfile *tf, int); void pkgfs_cleanup(void) @@ -282,6 +283,9 @@ pkg_read(struct open_file *f, void *buf, size_t size, return (EBADF); } + if (tf->tf_cachesz == 0) + cache_data(tf, 1); + fp = tf->tf_fp; p = buf; sz = 0; @@ -311,16 +315,6 @@ pkg_read(struct open_file *f, void *buf, size_t size, fp += sz; p += sz; size -= sz; - - if (tf->tf_cachesz != 0) - continue; - - tf->tf_cachesz = (sz <= PKG_MAXCACHESZ) ? sz : PKG_MAXCACHESZ; - tf->tf_cache = malloc(tf->tf_cachesz); - if (tf->tf_cache != NULL) - memcpy(tf->tf_cache, buf, tf->tf_cachesz); - else - tf->tf_cachesz = 0; } tf->tf_fp = fp; @@ -484,8 +478,20 @@ get_zipped(struct package *pkg, void *buf, size_t bufs return (0); } +/** + * @brief + * cache data of a tarfile + * + * @param[in] tf + * tarfile pointer + * + * @param[in] force + * If file size > PKG_MAXCACHESZ, cache that much + * + * @return 0, -1 (errno set to error value) + */ static int -cache_data(struct tarfile *tf) +cache_data(struct tarfile *tf, int force) { struct package *pkg; size_t sz; @@ -503,21 +509,28 @@ cache_data(struct tarfile *tf) return (-1); } + if (tf->tf_cachesz > 0) { + DBG(("%s: data already cached\n", __func__)); + errno = EINVAL; + return (-1); + } + if (tf->tf_ofs != pkg->pkg_ofs) { - DBG(("%s: caching after partial read of file %s?\n", + DBG(("%s: caching after force read of file %s?\n", __func__, tf->tf_hdr.ut_name)); errno = EINVAL; return (-1); } /* We don't cache everything... */ - if (tf->tf_size > PKG_MAXCACHESZ) { - errno = ENOMEM; + if (tf->tf_size > PKG_MAXCACHESZ && !force) { + errno = ENOBUFS; return (-1); } + sz = tf->tf_size < PKG_MAXCACHESZ ? tf->tf_size : PKG_MAXCACHESZ; /* All files are padded to a multiple of 512 bytes. */ - sz = (tf->tf_size + 0x1ff) & ~0x1ff; + sz = (sz + 0x1ff) & ~0x1ff; tf->tf_cache = malloc(sz); if (tf->tf_cache == NULL) { @@ -741,7 +754,7 @@ scan_tarfile(struct package *pkg, struct tarfile *last if (ofs != pkg->pkg_ofs) { if (last != NULL && pkg->pkg_ofs == last->tf_ofs) { - if (cache_data(last) == -1) + if (cache_data(last, 0) == -1) return (NULL); } else { sz = ofs - pkg->pkg_ofs; Modified: head/stand/libsa/tftp.c ============================================================================== --- head/stand/libsa/tftp.c Tue Apr 7 16:52:45 2020 (r359699) +++ head/stand/libsa/tftp.c Tue Apr 7 16:56:34 2020 (r359700) @@ -100,11 +100,13 @@ static int is_open = 0; * Jumbo frames in the future. */ #define TFTP_MAX_BLKSIZE 9008 +#define TFTP_TRIES 2 struct tftp_handle { struct iodesc *iodesc; int currblock; /* contents of lastdata */ - int islastblock; /* flag */ + int islastblock:1; /* flag */ + int tries:4; /* number of read attempts */ int validsize; int off; char *path; /* saved for re-requests */ @@ -530,7 +532,12 @@ tftp_read(struct open_file *f, void *addr, size_t size #ifdef TFTP_DEBUG printf("tftp: read error\n"); #endif - return (rc); + if (tftpfile->tries > TFTP_TRIES) { + return (rc); + } else { + tftpfile->tries++; + tftp_makereq(tftpfile); + } } if (tftpfile->islastblock) break; From owner-svn-src-all@freebsd.org Tue Apr 7 16:57:24 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2BD792753FE; Tue, 7 Apr 2020 16:57:24 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xYVX0G0Yz3wZf; Tue, 7 Apr 2020 16:57:24 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0411BCFE5; Tue, 7 Apr 2020 16:57:24 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 037GvNRR060146; Tue, 7 Apr 2020 16:57:23 GMT (envelope-from eugen@FreeBSD.org) Received: (from eugen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 037GvNSr060145; Tue, 7 Apr 2020 16:57:23 GMT (envelope-from eugen@FreeBSD.org) Message-Id: <202004071657.037GvNSr060145@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: eugen set sender to eugen@FreeBSD.org using -f From: Eugene Grosbein Date: Tue, 7 Apr 2020 16:57:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r359701 - stable/11/etc/rc.d X-SVN-Group: stable-11 X-SVN-Commit-Author: eugen X-SVN-Commit-Paths: stable/11/etc/rc.d X-SVN-Commit-Revision: 359701 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 16:57:24 -0000 Author: eugen Date: Tue Apr 7 16:57:23 2020 New Revision: 359701 URL: https://svnweb.freebsd.org/changeset/base/359701 Log: MFC r356943,356944: Correct "service ipfw status" for INET6-only systems. Modified: stable/11/etc/rc.d/ipfw Directory Properties: stable/11/ (props changed) Modified: stable/11/etc/rc.d/ipfw ============================================================================== --- stable/11/etc/rc.d/ipfw Tue Apr 7 16:56:34 2020 (r359700) +++ stable/11/etc/rc.d/ipfw Tue Apr 7 16:57:23 2020 (r359701) @@ -127,7 +127,11 @@ ipfw_stop() ipfw_status() { status=$(sysctl -n net.inet.ip.fw.enable) - if [ ${status} -eq 0 ]; then + : ${status:=0} + if afexists inet6; then + status=$((${status} + $(sysctl -i -n net.inet6.ip6.fw.enable))) + fi + if [ ${status} -eq 0 ]; then echo "ipfw is not enabled" exit 1 else From owner-svn-src-all@freebsd.org Tue Apr 7 17:04:25 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 92EAA275CEE; Tue, 7 Apr 2020 17:04:25 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xYfd3J61z3xJG; Tue, 7 Apr 2020 17:04:25 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6C35BD1CB; Tue, 7 Apr 2020 17:04:25 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 037H4PIs066174; Tue, 7 Apr 2020 17:04:25 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 037H4Oko066171; Tue, 7 Apr 2020 17:04:24 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004071704.037H4Oko066171@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Tue, 7 Apr 2020 17:04:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359702 - in head: share/mk sys/conf X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in head: share/mk sys/conf X-SVN-Commit-Revision: 359702 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 17:04:25 -0000 Author: kevans Date: Tue Apr 7 17:04:24 2020 New Revision: 359702 URL: https://svnweb.freebsd.org/changeset/base/359702 Log: Add -fno-common to all userland/kernel src builds -fno-common will become the default in GCC10/LLVM11. Plenty of work has been put in to make sure our world builds are no -fno-common clean, so let's slap the build with this until it becomes the compiler default to ensure we don't regress. At this time, we will not be enforcing -fno-common on ports builds. I suspect most ports will be or quickly become -fno-common clean as they're naturally built against compilers that default to it, so this will hopefully become a non-issue in due time. The exception to this, which is actually the status quo, is that kmods built from ports will continue to build with -fno-common. As of the time of writing, I intend to also make stable/12 -fno-common clean. What's been done will be MFC'd to stable/11 if it's easily applicable and/or not much work to massage it into being functional, but I anticipate adding -fcommon to stable/11 builds to maintain its ability to be built with newer compilers for the rest of its lifetime instead of putting in a third branch's worth of effort. Modified: head/share/mk/src.sys.mk head/sys/conf/kern.pre.mk head/sys/conf/kmod.mk Modified: head/share/mk/src.sys.mk ============================================================================== --- head/share/mk/src.sys.mk Tue Apr 7 16:57:23 2020 (r359701) +++ head/share/mk/src.sys.mk Tue Apr 7 17:04:24 2020 (r359702) @@ -34,6 +34,11 @@ __postrcconf_${var}:= ${MK_${var}:U-}${WITHOUT_${var}: .endif # SRCCONF .endif +# The following should be removed no earlier than LLVM11 being imported into the +# tree, to ensure we don't regress the build. LLVM11 and GCC10 will switch the +# default over to -fno-common, making this redundant. +CFLAGS+= -fno-common + # tempting, but bsd.compiler.mk causes problems this early # probably need to remove dependence on bsd.own.mk #.include "src.opts.mk" Modified: head/sys/conf/kern.pre.mk ============================================================================== --- head/sys/conf/kern.pre.mk Tue Apr 7 16:57:23 2020 (r359701) +++ head/sys/conf/kern.pre.mk Tue Apr 7 17:04:24 2020 (r359702) @@ -86,7 +86,7 @@ CFLAGS_PARAM_LARGE_FUNCTION_GROWTH?=1000 .if ${MACHINE_CPUARCH} == "mips" CFLAGS_ARCH_PARAMS?=--param max-inline-insns-single=1000 -DMACHINE_ARCH='"${MACHINE_ARCH}"' .endif -CFLAGS.gcc+= -fno-common -fms-extensions -finline-limit=${INLINE_LIMIT} +CFLAGS.gcc+= -fms-extensions -finline-limit=${INLINE_LIMIT} CFLAGS.gcc+= --param inline-unit-growth=${CFLAGS_PARAM_INLINE_UNIT_GROWTH} CFLAGS.gcc+= --param large-function-growth=${CFLAGS_PARAM_LARGE_FUNCTION_GROWTH} CFLAGS.gcc+= -fms-extensions @@ -98,6 +98,10 @@ WERROR?= -Wno-error .else WERROR?= -Werror .endif +# The following should be removed no earlier than LLVM11 being imported into the +# tree, to ensure we don't regress the build. LLVM11 and GCC10 will switch the +# default over to -fno-common, making this redundant. +CFLAGS+= -fno-common # XXX LOCORE means "don't declare C stuff" not "for locore.s". ASM_CFLAGS= -x assembler-with-cpp -DLOCORE ${CFLAGS} ${ASM_CFLAGS.${.IMPSRC:T}} Modified: head/sys/conf/kmod.mk ============================================================================== --- head/sys/conf/kmod.mk Tue Apr 7 16:57:23 2020 (r359701) +++ head/sys/conf/kmod.mk Tue Apr 7 17:04:24 2020 (r359702) @@ -133,6 +133,13 @@ CFLAGS.gcc+= --param large-function-growth=1000 # Disallow common variables, and if we end up with commons from # somewhere unexpected, allocate storage for them in the module itself. +# +# -fno-common is the default for src builds, but this should be left in place +# until at least we catch up to GCC10/LLVM11 or otherwise enable -fno-common +# in instead. For now, we will have duplicate -fno-common in +# CFLAGS for in-tree module builds as they will also pick it up from +# share/mk/src.sys.mk, but the following is important for out-of-tree modules +# (e.g. ports). CFLAGS+= -fno-common LDFLAGS+= -d -warn-common From owner-svn-src-all@freebsd.org Tue Apr 7 17:05:06 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 859CE275D7B; Tue, 7 Apr 2020 17:05:06 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xYgQ2zyBz3xQs; Tue, 7 Apr 2020 17:05:06 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 61D50D1CC; Tue, 7 Apr 2020 17:05:06 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 037H56mW066264; Tue, 7 Apr 2020 17:05:06 GMT (envelope-from eugen@FreeBSD.org) Received: (from eugen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 037H56qh066263; Tue, 7 Apr 2020 17:05:06 GMT (envelope-from eugen@FreeBSD.org) Message-Id: <202004071705.037H56qh066263@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: eugen set sender to eugen@FreeBSD.org using -f From: Eugene Grosbein Date: Tue, 7 Apr 2020 17:05:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r359703 - stable/11/etc/rc.d X-SVN-Group: stable-11 X-SVN-Commit-Author: eugen X-SVN-Commit-Paths: stable/11/etc/rc.d X-SVN-Commit-Revision: 359703 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 17:05:06 -0000 Author: eugen Date: Tue Apr 7 17:05:05 2020 New Revision: 359703 URL: https://svnweb.freebsd.org/changeset/base/359703 Log: Style fix for /etc/rc.d/ipfw: correct bad identation after r359701. Modified: stable/11/etc/rc.d/ipfw Modified: stable/11/etc/rc.d/ipfw ============================================================================== --- stable/11/etc/rc.d/ipfw Tue Apr 7 17:04:24 2020 (r359702) +++ stable/11/etc/rc.d/ipfw Tue Apr 7 17:05:05 2020 (r359703) @@ -126,18 +126,18 @@ ipfw_stop() ipfw_status() { - status=$(sysctl -n net.inet.ip.fw.enable) + status=$(sysctl -n net.inet.ip.fw.enable) : ${status:=0} if afexists inet6; then status=$((${status} + $(sysctl -i -n net.inet6.ip6.fw.enable))) fi if [ ${status} -eq 0 ]; then - echo "ipfw is not enabled" - exit 1 - else - echo "ipfw is enabled" - exit 0 - fi + echo "ipfw is not enabled" + exit 1 + else + echo "ipfw is enabled" + exit 0 + fi } load_rc_config $name From owner-svn-src-all@freebsd.org Tue Apr 7 17:06:34 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D0053275E38; Tue, 7 Apr 2020 17:06:34 +0000 (UTC) (envelope-from afedorov@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xYj65BL8z3xY7; Tue, 7 Apr 2020 17:06:34 +0000 (UTC) (envelope-from afedorov@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AD4C4D1CD; Tue, 7 Apr 2020 17:06:34 +0000 (UTC) (envelope-from afedorov@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 037H6YFa066371; Tue, 7 Apr 2020 17:06:34 GMT (envelope-from afedorov@FreeBSD.org) Received: (from afedorov@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 037H6XRi066367; Tue, 7 Apr 2020 17:06:33 GMT (envelope-from afedorov@FreeBSD.org) Message-Id: <202004071706.037H6XRi066367@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: afedorov set sender to afedorov@FreeBSD.org using -f From: Aleksandr Fedorov Date: Tue, 7 Apr 2020 17:06:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359704 - head/usr.sbin/bhyve X-SVN-Group: head X-SVN-Commit-Author: afedorov X-SVN-Commit-Paths: head/usr.sbin/bhyve X-SVN-Commit-Revision: 359704 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 17:06:34 -0000 Author: afedorov Date: Tue Apr 7 17:06:33 2020 New Revision: 359704 URL: https://svnweb.freebsd.org/changeset/base/359704 Log: Add VIRTIO_NET_F_MTU flag support for the bhyve virtio-net device. The flag can be enabled using the new 'mtu' option: bhyve -s X:Y:Z,virtio-net,[tapN|valeX:N],mtu=9000 Reported by: vmaffione, jhb Approved by: vmaffione (mentor) Differential Revision: https://reviews.freebsd.org/D23971 Modified: head/usr.sbin/bhyve/net_backends.h head/usr.sbin/bhyve/net_utils.c head/usr.sbin/bhyve/net_utils.h head/usr.sbin/bhyve/pci_virtio_net.c Modified: head/usr.sbin/bhyve/net_backends.h ============================================================================== --- head/usr.sbin/bhyve/net_backends.h Tue Apr 7 17:05:05 2020 (r359703) +++ head/usr.sbin/bhyve/net_backends.h Tue Apr 7 17:06:33 2020 (r359704) @@ -59,6 +59,7 @@ void netbe_rx_enable(net_backend_t *be); */ #define VIRTIO_NET_F_CSUM (1 << 0) /* host handles partial cksum */ #define VIRTIO_NET_F_GUEST_CSUM (1 << 1) /* guest handles partial cksum */ +#define VIRTIO_NET_F_MTU (1 << 3) /* initial MTU advice */ #define VIRTIO_NET_F_MAC (1 << 5) /* host supplies MAC */ #define VIRTIO_NET_F_GSO_DEPREC (1 << 6) /* deprecated: host handles GSO */ #define VIRTIO_NET_F_GUEST_TSO4 (1 << 7) /* guest can rcv TSOv4 */ @@ -76,6 +77,7 @@ void netbe_rx_enable(net_backend_t *be); #define VIRTIO_NET_F_CTRL_VLAN (1 << 19) /* control channel VLAN filtering */ #define VIRTIO_NET_F_GUEST_ANNOUNCE \ (1 << 21) /* guest can send gratuitous pkts */ +#define VIRTIO_NET_F_MQ (1 << 22) /* host supports multiple VQ pairs */ /* * Fixed network header size Modified: head/usr.sbin/bhyve/net_utils.c ============================================================================== --- head/usr.sbin/bhyve/net_utils.c Tue Apr 7 17:05:05 2020 (r359703) +++ head/usr.sbin/bhyve/net_utils.c Tue Apr 7 17:06:33 2020 (r359704) @@ -31,9 +31,12 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include +#include #include #include +#include #include #include "bhyverun.h" @@ -59,6 +62,37 @@ net_parsemac(char *mac_str, uint8_t *mac_addr) memcpy(mac_addr, ea->octet, ETHER_ADDR_LEN); return (0); +} + +int +net_parsemtu(const char *mtu_str, unsigned long *mtu) +{ + char *end; + unsigned long val; + + assert(mtu_str != NULL); + + if (*mtu_str == '-') + goto err; + + val = strtoul(mtu_str, &end, 0); + + if (*end != '\0') + goto err; + + if (val == ULONG_MAX) + return (ERANGE); + + if (val == 0 && errno == EINVAL) + return (EINVAL); + + *mtu = val; + + return (0); + +err: + errno = EINVAL; + return (EINVAL); } void Modified: head/usr.sbin/bhyve/net_utils.h ============================================================================== --- head/usr.sbin/bhyve/net_utils.h Tue Apr 7 17:05:05 2020 (r359703) +++ head/usr.sbin/bhyve/net_utils.h Tue Apr 7 17:06:33 2020 (r359704) @@ -35,5 +35,6 @@ void net_genmac(struct pci_devinst *pi, uint8_t *macaddr); int net_parsemac(char *mac_str, uint8_t *mac_addr); +int net_parsemtu(const char *mtu_str, unsigned long *mtu); #endif /* _NET_UTILS_H_ */ Modified: head/usr.sbin/bhyve/pci_virtio_net.c ============================================================================== --- head/usr.sbin/bhyve/pci_virtio_net.c Tue Apr 7 17:05:05 2020 (r359703) +++ head/usr.sbin/bhyve/pci_virtio_net.c Tue Apr 7 17:06:33 2020 (r359704) @@ -67,6 +67,9 @@ __FBSDID("$FreeBSD$"); #define VTNET_MAX_PKT_LEN (65536 + 64) +#define VTNET_MIN_MTU ETHERMIN +#define VTNET_MAX_MTU 65535 + #define VTNET_S_HOSTCAPS \ ( VIRTIO_NET_F_MAC | VIRTIO_NET_F_STATUS | \ VIRTIO_F_NOTIFY_ON_EMPTY | VIRTIO_RING_F_INDIRECT_DESC) @@ -77,6 +80,8 @@ __FBSDID("$FreeBSD$"); struct virtio_net_config { uint8_t mac[6]; uint16_t status; + uint16_t max_virtqueue_pairs; + uint16_t mtu; } __packed; /* @@ -532,6 +537,8 @@ pci_vtnet_init(struct vmctx *ctx, struct pci_devinst * struct pci_vtnet_softc *sc; char tname[MAXCOMLEN + 1]; int mac_provided; + int mtu_provided; + unsigned long mtu = ETHERMTU; /* * Allocate data structures for further virtio initializations. @@ -557,6 +564,7 @@ pci_vtnet_init(struct vmctx *ctx, struct pci_devinst * * if specified. */ mac_provided = 0; + mtu_provided = 0; if (opts != NULL) { char *devname; char *vtopts; @@ -585,6 +593,17 @@ pci_vtnet_init(struct vmctx *ctx, struct pci_devinst * if (err) break; mac_provided = 1; + } else if (strcmp(key, "mtu") == 0) { + err = net_parsemtu(value, &mtu); + if (err) + break; + + if (mtu < VTNET_MIN_MTU || mtu > VTNET_MAX_MTU) { + err = EINVAL; + errno = EINVAL; + break; + } + mtu_provided = 1; } } @@ -608,6 +627,17 @@ pci_vtnet_init(struct vmctx *ctx, struct pci_devinst * if (!mac_provided) { net_genmac(pi, sc->vsc_config.mac); } + + sc->vsc_config.mtu = mtu; + if (mtu_provided) { + sc->vsc_consts.vc_hv_caps |= VIRTIO_NET_F_MTU; + } + + /* + * Since we do not actually support multiqueue, + * set the maximum virtqueue pairs to 1. + */ + sc->vsc_config.max_virtqueue_pairs = 1; /* initialize config space */ pci_set_cfgdata16(pi, PCIR_DEVICE, VIRTIO_DEV_NET); From owner-svn-src-all@freebsd.org Tue Apr 7 17:07:05 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 49171275F04; Tue, 7 Apr 2020 17:07:05 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xYjj1HC0z3xjj; Tue, 7 Apr 2020 17:07:05 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2732DD201; Tue, 7 Apr 2020 17:07:05 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 037H75Jo066449; Tue, 7 Apr 2020 17:07:05 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 037H74VX066447; Tue, 7 Apr 2020 17:07:04 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <202004071707.037H74VX066447@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Tue, 7 Apr 2020 17:07:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359705 - head/share/mk X-SVN-Group: head X-SVN-Commit-Author: bdrewery X-SVN-Commit-Paths: head/share/mk X-SVN-Commit-Revision: 359705 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 17:07:05 -0000 Author: bdrewery Date: Tue Apr 7 17:07:04 2020 New Revision: 359705 URL: https://svnweb.freebsd.org/changeset/base/359705 Log: NO_OBJ: Always fix .OBJDIR regardless of AUTO_OBJ. Sponsored by: Dell EMC MFC after: 2 weeks Modified: head/share/mk/bsd.init.mk head/share/mk/bsd.obj.mk Modified: head/share/mk/bsd.init.mk ============================================================================== --- head/share/mk/bsd.init.mk Tue Apr 7 17:06:33 2020 (r359704) +++ head/share/mk/bsd.init.mk Tue Apr 7 17:07:04 2020 (r359705) @@ -11,11 +11,9 @@ ____: .include .-include "local.init.mk" -.if ${MK_AUTO_OBJ} == "yes" # This is also done in bsd.obj.mk .if defined(NO_OBJ) && ${.OBJDIR} != ${.CURDIR} .OBJDIR: ${.CURDIR} -.endif .endif .if exists(${.CURDIR}/../Makefile.inc) Modified: head/share/mk/bsd.obj.mk ============================================================================== --- head/share/mk/bsd.obj.mk Tue Apr 7 17:06:33 2020 (r359704) +++ head/share/mk/bsd.obj.mk Tue Apr 7 17:07:04 2020 (r359705) @@ -42,16 +42,16 @@ ____: .include -.if ${MK_AUTO_OBJ} == "yes" -# it is done by now -objwarn: .PHONY -obj: .PHONY -CANONICALOBJDIR= ${.OBJDIR} # This is also done in bsd.init.mk .if defined(NO_OBJ) && ${.OBJDIR} != ${.CURDIR} # but this makefile does not want it! .OBJDIR: ${.CURDIR} .endif +.if ${MK_AUTO_OBJ} == "yes" +# it is done by now +objwarn: .PHONY +obj: .PHONY +CANONICALOBJDIR= ${.OBJDIR} # Handle special case where SRCS is full-pathed and requires # nested objdirs. This duplicates some auto.obj.mk logic. .if (!empty(SRCS:M*/*) || !empty(DPSRCS:M*/*)) && \ From owner-svn-src-all@freebsd.org Tue Apr 7 17:13:21 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 58125276322; Tue, 7 Apr 2020 17:13:21 +0000 (UTC) (envelope-from byond.lenox@gmail.com) Received: from mail-qk1-f169.google.com (mail-qk1-f169.google.com [209.85.222.169]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xYrx01bnz3yDj; Tue, 7 Apr 2020 17:13:20 +0000 (UTC) (envelope-from byond.lenox@gmail.com) Received: by mail-qk1-f169.google.com with SMTP id m67so83597qke.12; Tue, 07 Apr 2020 10:13:20 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=QbWLSPHOAbBk2142bAGTqpPYD/VyA/CRRj75wTNyQ9c=; b=lATVPnyZVOETV0W0iW2KtyhVqKHeIBO8GE2CzuMWQnYwBF9ZRJ7r4E7zb9yfW7DC8w AiPKZu582khQXE6cDNIusDdEs6K8yg+a7vJzzfSReA8neN+VKKU626H1eu20NvRnbTlo X+6PR/ANgkk590RXXlZxFM32M3BGK74bR3KXFWfIq9wEeVh/zCOMV8N6SuBvpOMkqUCl XiGX9b6I7n8X6KV2Dsq3h8vMPis/Lo8v0Dg4ympdycUIjk/35jMO2YWwy8h8RuGwX+sQ n5EPPTiDAtQ6tiiS5/QNkYUitRG6PuhXTonvvZxT31esdaI7y3disFPkXcXCaYCoK741 Qppg== X-Gm-Message-State: AGi0PuZGGccyyaGzFRpHzbSmVrwwnRWhjzJyOhHlMjFVlbZmxdL9TACJ eJgKktezifqz0ERNtCZDypqscF2v X-Google-Smtp-Source: APiQypIyrZVgsSgwEsY95lPViFW8IVZArwqK45I8byZ3SH2pWiGMT1iegIxVaFRz7/2o2TUjeCsAHw== X-Received: by 2002:a37:9c52:: with SMTP id f79mr2849903qke.186.1586279599844; Tue, 07 Apr 2020 10:13:19 -0700 (PDT) Received: from mail-qv1-f52.google.com (mail-qv1-f52.google.com. [209.85.219.52]) by smtp.gmail.com with ESMTPSA id d2sm16486307qkl.98.2020.04.07.10.13.19 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 07 Apr 2020 10:13:19 -0700 (PDT) Received: by mail-qv1-f52.google.com with SMTP id bu9so2170202qvb.13; Tue, 07 Apr 2020 10:13:19 -0700 (PDT) X-Received: by 2002:a05:6214:12c1:: with SMTP id s1mr3228150qvv.150.1586279599324; Tue, 07 Apr 2020 10:13:19 -0700 (PDT) MIME-Version: 1.0 References: <202004071707.037H74VX066447@repo.freebsd.org> In-Reply-To: <202004071707.037H74VX066447@repo.freebsd.org> From: Kyle Evans Date: Tue, 7 Apr 2020 12:13:05 -0500 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r359705 - head/share/mk To: Bryan Drewery Cc: src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 48xYrx01bnz3yDj X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[]; TAGGED_FROM(0.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 17:13:21 -0000 On Tue, Apr 7, 2020 at 12:07 PM Bryan Drewery wrote: > > Author: bdrewery > Date: Tue Apr 7 17:07:04 2020 > New Revision: 359705 > URL: https://svnweb.freebsd.org/changeset/base/359705 > > Log: > NO_OBJ: Always fix .OBJDIR regardless of AUTO_OBJ. > > Sponsored by: Dell EMC > MFC after: 2 weeks > > Modified: > head/share/mk/bsd.init.mk > head/share/mk/bsd.obj.mk > Unrelated, but something else that's kinda funky: universe13a% make -C stand -V .OBJDIR /scratch/tmp/kevans/obj/home/kevans/head/amd64.amd64/stand But in a buildenv: universe13a% make TARGET_ARCH=armv7 buildenv Entering world for armv7:arm For ZSH you must run: export CPUTYPE= universe13a% make -C stand -V .OBJDIR [Creating objdir /scratch/tmp/kevans/obj/home/kevans/head/stand...] /scratch/tmp/kevans/obj/home/kevans/head/stand Using buildenv with BUILDENV_SHELL="make -C stand -V .OBDJIR" *doesn't* reproduce it (objdir has arm.armv7 in it again). I tried with both zsh (and export CPUTYPE=) and /bin/sh, but it seems to reproduce both ways. Thanks, Kyle Evans From owner-svn-src-all@freebsd.org Tue Apr 7 17:18:23 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 579E82764D1; Tue, 7 Apr 2020 17:18:23 +0000 (UTC) (envelope-from rgrimes@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xYyl0VrXz3yVb; Tue, 7 Apr 2020 17:18:23 +0000 (UTC) (envelope-from rgrimes@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0C4A5D3ED; Tue, 7 Apr 2020 17:18:23 +0000 (UTC) (envelope-from rgrimes@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 037HIMkr072575; Tue, 7 Apr 2020 17:18:22 GMT (envelope-from rgrimes@FreeBSD.org) Received: (from rgrimes@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 037HIMGI072574; Tue, 7 Apr 2020 17:18:22 GMT (envelope-from rgrimes@FreeBSD.org) Message-Id: <202004071718.037HIMGI072574@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rgrimes set sender to rgrimes@FreeBSD.org using -f From: "Rodney W. Grimes" Date: Tue, 7 Apr 2020 17:18:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-svnadmin@freebsd.org Subject: svn commit: r359706 - svnadmin/conf X-SVN-Group: svnadmin X-SVN-Commit-Author: rgrimes X-SVN-Commit-Paths: svnadmin/conf X-SVN-Commit-Revision: 359706 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 17:18:23 -0000 Author: rgrimes Date: Tue Apr 7 17:18:22 2020 New Revision: 359706 URL: https://svnweb.freebsd.org/changeset/base/359706 Log: Add tuexen and myself (rgrimes) as rscheff's mentors. Reminded by: gjb Approved by: core Modified: svnadmin/conf/mentors Modified: svnadmin/conf/mentors ============================================================================== --- svnadmin/conf/mentors Tue Apr 7 17:07:04 2020 (r359705) +++ svnadmin/conf/mentors Tue Apr 7 17:18:22 2020 (r359706) @@ -29,6 +29,7 @@ miwi araujo mjoras rstone nick philip Co-mentor: kp ram ken Co-mentor: mav +rscheff tuexen Co-mentor: rgrimes scottph scottl Co-mentor: emaste, jhb thj jtl Co-mentor: bz tmunro mjg Co-mentor: allanjude From owner-svn-src-all@freebsd.org Tue Apr 7 17:49:37 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C98C5277A1D; Tue, 7 Apr 2020 17:49:37 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xZfn4vPxz41p8; Tue, 7 Apr 2020 17:49:37 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9ED0FD9B2; Tue, 7 Apr 2020 17:49:37 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 037HnbHj090521; Tue, 7 Apr 2020 17:49:37 GMT (envelope-from eugen@FreeBSD.org) Received: (from eugen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 037Hnb9R090519; Tue, 7 Apr 2020 17:49:37 GMT (envelope-from eugen@FreeBSD.org) Message-Id: <202004071749.037Hnb9R090519@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: eugen set sender to eugen@FreeBSD.org using -f From: Eugene Grosbein Date: Tue, 7 Apr 2020 17:49:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359707 - in stable/12: share/man/man4 sys/netgraph X-SVN-Group: stable-12 X-SVN-Commit-Author: eugen X-SVN-Commit-Paths: in stable/12: share/man/man4 sys/netgraph X-SVN-Commit-Revision: 359707 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 17:49:37 -0000 Author: eugen Date: Tue Apr 7 17:49:36 2020 New Revision: 359707 URL: https://svnweb.freebsd.org/changeset/base/359707 Log: MFC r357053 by markj: ng_nat: Pass IPv6 packets through. ng_nat implements NAT for IPv4 traffic only. When connected to an ng_ether node it erroneously handled IPv6 packets as well. This change is not sufficient: ng_nat does not do any validation of IP packets in this mode, even though they have not yet passed through ip_input(). PR: 243096 Reported by: Robert James Hernandez Reviewed by: julian Differential Revision: https://reviews.freebsd.org/D23080 Modified: stable/12/share/man/man4/ng_nat.4 stable/12/sys/netgraph/ng_nat.c Directory Properties: stable/12/ (props changed) Modified: stable/12/share/man/man4/ng_nat.4 ============================================================================== --- stable/12/share/man/man4/ng_nat.4 Tue Apr 7 17:18:22 2020 (r359706) +++ stable/12/share/man/man4/ng_nat.4 Tue Apr 7 17:49:36 2020 (r359707) @@ -35,7 +35,7 @@ .Sh DESCRIPTION An .Nm -node performs network address translation (NAT) of packets +node performs network address translation (NAT) of IPv4 packets passing through it. A .Nm nat Modified: stable/12/sys/netgraph/ng_nat.c ============================================================================== --- stable/12/sys/netgraph/ng_nat.c Tue Apr 7 17:18:22 2020 (r359706) +++ stable/12/sys/netgraph/ng_nat.c Tue Apr 7 17:49:36 2020 (r359707) @@ -795,7 +795,6 @@ ng_nat_rcvdata(hook_p hook, item_p item ) eh = mtod(m, struct ether_header *); switch (ntohs(eh->ether_type)) { case ETHERTYPE_IP: - case ETHERTYPE_IPV6: ipofs = sizeof(struct ether_header); break; default: From owner-svn-src-all@freebsd.org Tue Apr 7 17:50:18 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D13D7277ACC; Tue, 7 Apr 2020 17:50:18 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xZgZ5FDvz41xl; Tue, 7 Apr 2020 17:50:18 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AF356D9D2; Tue, 7 Apr 2020 17:50:18 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 037HoIpl090662; Tue, 7 Apr 2020 17:50:18 GMT (envelope-from eugen@FreeBSD.org) Received: (from eugen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 037HoIAx090660; Tue, 7 Apr 2020 17:50:18 GMT (envelope-from eugen@FreeBSD.org) Message-Id: <202004071750.037HoIAx090660@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: eugen set sender to eugen@FreeBSD.org using -f From: Eugene Grosbein Date: Tue, 7 Apr 2020 17:50:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r359708 - in stable/11: share/man/man4 sys/netgraph X-SVN-Group: stable-11 X-SVN-Commit-Author: eugen X-SVN-Commit-Paths: in stable/11: share/man/man4 sys/netgraph X-SVN-Commit-Revision: 359708 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 17:50:18 -0000 Author: eugen Date: Tue Apr 7 17:50:18 2020 New Revision: 359708 URL: https://svnweb.freebsd.org/changeset/base/359708 Log: MFC r357053 by markj: ng_nat: Pass IPv6 packets through. ng_nat implements NAT for IPv4 traffic only. When connected to an ng_ether node it erroneously handled IPv6 packets as well. This change is not sufficient: ng_nat does not do any validation of IP packets in this mode, even though they have not yet passed through ip_input(). PR: 243096 Reported by: Robert James Hernandez Reviewed by: julian Differential Revision: https://reviews.freebsd.org/D23080 Modified: stable/11/share/man/man4/ng_nat.4 stable/11/sys/netgraph/ng_nat.c Directory Properties: stable/11/ (props changed) Modified: stable/11/share/man/man4/ng_nat.4 ============================================================================== --- stable/11/share/man/man4/ng_nat.4 Tue Apr 7 17:49:36 2020 (r359707) +++ stable/11/share/man/man4/ng_nat.4 Tue Apr 7 17:50:18 2020 (r359708) @@ -35,7 +35,7 @@ .Sh DESCRIPTION An .Nm -node performs network address translation (NAT) of packets +node performs network address translation (NAT) of IPv4 packets passing through it. A .Nm nat Modified: stable/11/sys/netgraph/ng_nat.c ============================================================================== --- stable/11/sys/netgraph/ng_nat.c Tue Apr 7 17:49:36 2020 (r359707) +++ stable/11/sys/netgraph/ng_nat.c Tue Apr 7 17:50:18 2020 (r359708) @@ -793,7 +793,6 @@ ng_nat_rcvdata(hook_p hook, item_p item ) eh = mtod(m, struct ether_header *); switch (ntohs(eh->ether_type)) { case ETHERTYPE_IP: - case ETHERTYPE_IPV6: ipofs = sizeof(struct ether_header); break; default: From owner-svn-src-all@freebsd.org Tue Apr 7 18:21:55 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1C0B32788C5; Tue, 7 Apr 2020 18:21:55 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [96.47.72.132]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "freefall.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xbN26tVhz43VS; Tue, 7 Apr 2020 18:21:54 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (unknown [127.0.1.132]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by freefall.freebsd.org (Postfix) with ESMTPS id A0A6C89C9; Tue, 7 Apr 2020 18:21:54 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [172.31.3.2]) by mail.xzibition.com (Postfix) with ESMTP id 6F16B14124; Tue, 7 Apr 2020 18:21:53 +0000 (UTC) X-Virus-Scanned: amavisd-new at mail.xzibition.com Received: from mail.xzibition.com ([172.31.3.2]) by mail.xzibition.com (mail.xzibition.com [172.31.3.2]) (amavisd-new, port 10026) with LMTP id c8Lc52zcT8uI; Tue, 7 Apr 2020 18:21:50 +0000 (UTC) Subject: Re: svn commit: r359705 - head/share/mk DKIM-Filter: OpenDKIM Filter v2.10.3 mail.xzibition.com 7F35A1411C Cc: Kyle Evans , src-committers , svn-src-all , svn-src-head References: <202004071707.037H74VX066447@repo.freebsd.org> From: Bryan Drewery Autocrypt: addr=bdrewery@FreeBSD.org; prefer-encrypt=mutual; keydata= mQENBFJphmsBCADiFgmS4bIzwZijrS31SjEMzg+n5zNellgM+HkShwehpqCiyhXdWrvH6dTZ a6u50pbUIX7doTR7W7PQHCjCTqtpwvcj0eulZva+iHFp+XrbgSFHn+VVXgkYP2MFySyZRFab D2qqzJBEJofhpv4HvY6uQI5K99pMqKr1Z/lHqsijYYu4RH2OfwB5PinId7xeldzWEonVoCr+ rfxzO/UrgA6v/3layGZcKNHFjmc3NqoN1DXtdaEHqtjIozzbndVkH6lkFvIpIrI6i5ox8pwp VxsxLCr/4Musd5CWgHiet5kSw2SzNeA8FbxdLYCpXNVu+uBACEbCUP+CSNy3NVfEUxsBABEB AAG0JEJyeWFuIERyZXdlcnkgPGJkcmV3ZXJ5QEZyZWVCU0Qub3JnPokBVwQTAQoAQQIbAwUL CQgHAwUVCgkICwUWAwIBAAIeAQIXgAIZARYhBPkXPLLDqup6XIofCTXXcbtuRpfPBQJb5hLu BQkNPvODAAoJEDXXcbtuRpfP9rMH/3f7cfX5rzyEV5QNfV/wS4jFukLoPZ4+nCM/TKxH3pEX 2bLbeQbkk6La8cueQ5Lpoht5XFZ18Y5TbMittngltrlNzoDD0h9are24OkDFGim3afJU7tkj IGQa1if+re+vI5BhzYwRhj0oKXzBi39M5oePd3L1dXfx83rg2FPyZBdIejsz6fR74T3JVkbd 6k2l5/3Zk2uiNMy+eBfDRgYE1E6CP28kV0nCeGKZgSVso0kGUUHud7voKqGVpMvbd0mE4pp4 PE5YJaFPjrll9miaDAvdU8LGIq5n6+aXPLKoQ/QNl6mg6ifgI6FfKILOkTizLW8E5PBSNnCm NapQ55yjm125AQ0EUmmGawEIAKJUU9+Q19oW1RK5jTf3m56j+szIc8Y9DaLC8REUKl4UZJBK BqCl6c0cukVApOD92XoU6hJPm2rLEyp/IcYcPPNTnVu8D8h9oag2L8EiFN7+2hk0xG+lwjc8 uOIZycme7AIJsBU4AZ1v63lxm2k104hwpiatgbe71GIGl7p1MX6ousP/wGzXCOF25Dx9w02C eRe7zEMfhnFjSUhzdCC9han2+KaVB7qIqNR3b8NfbwRNlwPmHqlhXffUow9OsQjSnTK8WKNR lx7xzVccXIvWP2wECFrmqmzMmXpSrmIuiWEpFwZ9x2a0Pva8dCNRiCVTK51IlRXKjaAxiN1u IUrMm6UAEQEAAYkBPAQYAQoAJgIbDBYhBPkXPLLDqup6XIofCTXXcbtuRpfPBQJb5hL4BQkN PvONAAoJEDXXcbtuRpfPCjcH/ivBsOpdpebpgLizSNU5/X4yWN5Aixsc9VBnQhGKAKnMINJQ VMpA55sD2JSPwloXYM/B3qyPJRS/9cwIuX5LDNKKOZU3Qp+TzleynM15/xea14orWYRGRict YHBM3Cnqp7OD8K6Q1uhs0fTxyJP7PZ/G0+7Corlf1DlHhDt6C2HldRPFvAvAgl6sR9Wzgcb7 rzub2HVtbJgl6YHbgyAG7x9NpXFqzx1JLAMdpt2DIYwoi+oMdRQlBIwNuKjQjCGzuXHandd3 kGvBAsyJpQ+coEep9UzwANaV28cXrFr2R4FSOcR50rBA2Nh/vqUYfpsvBvJlwuKAoV1djVHa ihNeL5E= Organization: FreeBSD Message-ID: <7f42eb02-3eeb-d56e-1d8a-f8c295e5d997@FreeBSD.org> Date: Tue, 7 Apr 2020 11:21:49 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="vmYQY36CM7eNvSFUehbCSaj1TUPBxTqUo" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 18:21:55 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --vmYQY36CM7eNvSFUehbCSaj1TUPBxTqUo Content-Type: multipart/mixed; boundary="9YrWAGDAeB2hvRlsxUd0c50ji9tcfdJ6W"; protected-headers="v1" From: Bryan Drewery Cc: Kyle Evans , src-committers , svn-src-all , svn-src-head Message-ID: <7f42eb02-3eeb-d56e-1d8a-f8c295e5d997@FreeBSD.org> Subject: Re: svn commit: r359705 - head/share/mk References: <202004071707.037H74VX066447@repo.freebsd.org> In-Reply-To: --9YrWAGDAeB2hvRlsxUd0c50ji9tcfdJ6W Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable On 4/7/2020 10:13 AM, Kyle Evans wrote: > On Tue, Apr 7, 2020 at 12:07 PM Bryan Drewery wr= ote: >> >> Author: bdrewery >> Date: Tue Apr 7 17:07:04 2020 >> New Revision: 359705 >> URL: https://svnweb.freebsd.org/changeset/base/359705 >> >> Log: >> NO_OBJ: Always fix .OBJDIR regardless of AUTO_OBJ. >> >> Sponsored by: Dell EMC >> MFC after: 2 weeks >> >> Modified: >> head/share/mk/bsd.init.mk >> head/share/mk/bsd.obj.mk >> >=20 > Unrelated, but something else that's kinda funky: >=20 > universe13a% make -C stand -V .OBJDIR > /scratch/tmp/kevans/obj/home/kevans/head/amd64.amd64/stand >=20 > But in a buildenv: > universe13a% make TARGET_ARCH=3Darmv7 buildenv > Entering world for armv7:arm > For ZSH you must run: export CPUTYPE=3D > universe13a% make -C stand -V .OBJDIR > [Creating objdir /scratch/tmp/kevans/obj/home/kevans/head/stand...] > /scratch/tmp/kevans/obj/home/kevans/head/stand >=20 > Using buildenv with BUILDENV_SHELL=3D"make -C stand -V .OBDJIR" > *doesn't* reproduce it (objdir has arm.armv7 in it again). >=20 > I tried with both zsh (and export CPUTYPE=3D) and /bin/sh, but it seems= > to reproduce both ways. >=20 > Thanks, >=20 > Kyle Evans >=20 Discussed with Kyle on IRC. Turned out to be an 'export MAKEOBJDIRPREFIX=3D/something' in ~/.profile. I suggest something like this in the profile: if [ -n "${BUILDENV}" ]; then PS1=3D"(buildenv) ${PS1}" unset CPUTYPE else export MAKEOBJDIRPREFIX=3D/whatever fi --=20 Regards, Bryan Drewery --9YrWAGDAeB2hvRlsxUd0c50ji9tcfdJ6W-- --vmYQY36CM7eNvSFUehbCSaj1TUPBxTqUo Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQGTBAEBCgB9FiEE+Rc8ssOq6npcih8JNddxu25Gl88FAl6MxL1fFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEY5 MTczQ0IyQzNBQUVBN0E1QzhBMUYwOTM1RDc3MUJCNkU0Njk3Q0YACgkQNddxu25G l88Lzgf9HubcMZWkB0O+tYBwZ6BfMIP43QhYHoSE7W+eOc8+Bwdkk0nVpK2+AZgy 4HrZCy3Wbaysl6pHLjIqEYbec8eEvUCcdD4gYUX6gJPZrayw3kNWx0V/UxoZrscL CP6ZvpHhA6nUqXgXD5i2qwhP5VvRigdoWj47YpILp6V2t6nmE7AYrQvaG5xvgK+x uLhT9pvR/OaryeyhDU3z6XlWdb8KL3PjRIsD3Zbs6vKG4GPXn00xTnk4BfiFacm1 S4Uwbd7afZiFaaYYil7uvoX9yz3GYVswLm7ynz/QE05+k8Cg33K2n6vxeaOAHRSO Fs9laACH8xSCz2Bjo0ct6nzd3ZrC6Q== =gJJa -----END PGP SIGNATURE----- --vmYQY36CM7eNvSFUehbCSaj1TUPBxTqUo-- From owner-svn-src-all@freebsd.org Tue Apr 7 18:41:52 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E515D279353; Tue, 7 Apr 2020 18:41:52 +0000 (UTC) (envelope-from mhorne@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xbq45nRHz44Xl; Tue, 7 Apr 2020 18:41:52 +0000 (UTC) (envelope-from mhorne@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C1CA9E514; Tue, 7 Apr 2020 18:41:52 +0000 (UTC) (envelope-from mhorne@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 037IfqVR023883; Tue, 7 Apr 2020 18:41:52 GMT (envelope-from mhorne@FreeBSD.org) Received: (from mhorne@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 037IfqDr023882; Tue, 7 Apr 2020 18:41:52 GMT (envelope-from mhorne@FreeBSD.org) Message-Id: <202004071841.037IfqDr023882@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mhorne set sender to mhorne@FreeBSD.org using -f From: Mitchell Horne Date: Tue, 7 Apr 2020 18:41:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359709 - stable/12 X-SVN-Group: stable-12 X-SVN-Commit-Author: mhorne X-SVN-Commit-Paths: stable/12 X-SVN-Commit-Revision: 359709 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 18:41:53 -0000 Author: mhorne Date: Tue Apr 7 18:41:52 2020 New Revision: 359709 URL: https://svnweb.freebsd.org/changeset/base/359709 Log: MFC r359289: Makefile.inc1: override MACHINE for native-xtools Modified: stable/12/Makefile.inc1 Directory Properties: stable/12/ (props changed) Modified: stable/12/Makefile.inc1 ============================================================================== --- stable/12/Makefile.inc1 Tue Apr 7 17:50:18 2020 (r359708) +++ stable/12/Makefile.inc1 Tue Apr 7 18:41:52 2020 (r359709) @@ -2474,6 +2474,7 @@ NXBMAKE+= XCC="${NXBOBJTOP}/tmp/usr/bin/cc" \ XCPP="${NXBOBJTOP}/tmp/usr/bin/cpp" .endif NXBMAKE+= ${NXBMAKEENV} ${MAKE} -f Makefile.inc1 ${NXBMAKEARGS} \ + MACHINE=${MACHINE} MACHINE_ARCH=${MACHINE_ARCH} \ TARGET=${NXB_TARGET} TARGET_ARCH=${NXB_TARGET_ARCH} \ TARGET_TRIPLE=${MACHINE_TRIPLE:Q} # NXBDIRS is improperly based on MACHINE rather than NXB_TARGET. Need to From owner-svn-src-all@freebsd.org Tue Apr 7 19:39:09 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 86C8F27B2D4; Tue, 7 Apr 2020 19:39:09 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xd5934Sqz47j2; Tue, 7 Apr 2020 19:39:09 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 64C97EF25; Tue, 7 Apr 2020 19:39:09 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 037Jd9cP056644; Tue, 7 Apr 2020 19:39:09 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 037Jd9vb056643; Tue, 7 Apr 2020 19:39:09 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <202004071939.037Jd9vb056643@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Tue, 7 Apr 2020 19:39:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359710 - stable/12/sys/conf X-SVN-Group: stable-12 X-SVN-Commit-Author: bdrewery X-SVN-Commit-Paths: stable/12/sys/conf X-SVN-Commit-Revision: 359710 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 19:39:09 -0000 Author: bdrewery Date: Tue Apr 7 19:39:08 2020 New Revision: 359710 URL: https://svnweb.freebsd.org/changeset/base/359710 Log: MFC r357353: make all is needed to generate .depend.* Modified: stable/12/sys/conf/kern.post.mk Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/conf/kern.post.mk ============================================================================== --- stable/12/sys/conf/kern.post.mk Tue Apr 7 18:41:52 2020 (r359709) +++ stable/12/sys/conf/kern.post.mk Tue Apr 7 19:39:08 2020 (r359710) @@ -356,7 +356,7 @@ kernel-cleandepend: .PHONY kernel-tags: @ls .depend.* > /dev/null 2>&1 || \ - { echo "you must make depend first"; exit 1; } + { echo "you must make all first"; exit 1; } sh $S/conf/systags.sh kernel-install: .PHONY From owner-svn-src-all@freebsd.org Tue Apr 7 19:39:41 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B94F827B37D; Tue, 7 Apr 2020 19:39:41 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xd5n4WDbz47qQ; Tue, 7 Apr 2020 19:39:41 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 96099EF27; Tue, 7 Apr 2020 19:39:41 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 037Jdf6d056712; Tue, 7 Apr 2020 19:39:41 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 037JdfVg056711; Tue, 7 Apr 2020 19:39:41 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <202004071939.037JdfVg056711@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Tue, 7 Apr 2020 19:39:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r359711 - stable/11/sys/conf X-SVN-Group: stable-11 X-SVN-Commit-Author: bdrewery X-SVN-Commit-Paths: stable/11/sys/conf X-SVN-Commit-Revision: 359711 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 19:39:41 -0000 Author: bdrewery Date: Tue Apr 7 19:39:41 2020 New Revision: 359711 URL: https://svnweb.freebsd.org/changeset/base/359711 Log: MFC r357353: make all is needed to generate .depend.* Modified: stable/11/sys/conf/kern.post.mk Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/conf/kern.post.mk ============================================================================== --- stable/11/sys/conf/kern.post.mk Tue Apr 7 19:39:08 2020 (r359710) +++ stable/11/sys/conf/kern.post.mk Tue Apr 7 19:39:41 2020 (r359711) @@ -313,7 +313,7 @@ kernel-cleandepend: .PHONY kernel-tags: @ls .depend.* > /dev/null 2>&1 || \ - { echo "you must make depend first"; exit 1; } + { echo "you must make all first"; exit 1; } sh $S/conf/systags.sh kernel-install: .PHONY From owner-svn-src-all@freebsd.org Tue Apr 7 19:40:11 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8DB8127B408; Tue, 7 Apr 2020 19:40:11 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xd6M3GCXz47xX; Tue, 7 Apr 2020 19:40:11 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6B251EF2B; Tue, 7 Apr 2020 19:40:11 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 037JeBuM056823; Tue, 7 Apr 2020 19:40:11 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 037JeBkI056822; Tue, 7 Apr 2020 19:40:11 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <202004071940.037JeBkI056822@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Tue, 7 Apr 2020 19:40:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359712 - stable/12/share/mk X-SVN-Group: stable-12 X-SVN-Commit-Author: bdrewery X-SVN-Commit-Paths: stable/12/share/mk X-SVN-Commit-Revision: 359712 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 19:40:11 -0000 Author: bdrewery Date: Tue Apr 7 19:40:11 2020 New Revision: 359712 URL: https://svnweb.freebsd.org/changeset/base/359712 Log: MFC r353771: Fix spelling of DPSRCS. Modified: stable/12/share/mk/bsd.dep.mk Directory Properties: stable/12/ (props changed) Modified: stable/12/share/mk/bsd.dep.mk ============================================================================== --- stable/12/share/mk/bsd.dep.mk Tue Apr 7 19:39:41 2020 (r359711) +++ stable/12/share/mk/bsd.dep.mk Tue Apr 7 19:40:11 2020 (r359712) @@ -182,7 +182,7 @@ DEPEND_MP?= -MP # avoid collisions. DEPEND_FILTER= C,/,_,g DEPENDSRCS+= ${SRCS:M*.[cSC]} ${SRCS:M*.cxx} ${SRCS:M*.cpp} ${SRCS:M*.cc} -DEPENDSRCS+= ${DPSRCS:M*.[cSC]} ${SRCS:M*.cxx} ${SRCS:M*.cpp} ${SRCS:M*.cc} +DEPENDSRCS+= ${DPSRCS:M*.[cSC]} ${DPSRCS:M*.cxx} ${DPSRCS:M*.cpp} ${DPSRCS:M*.cc} .if !empty(DEPENDSRCS) DEPENDOBJS+= ${DEPENDSRCS:${OBJS_SRCS_FILTER:ts:}:S,$,.o,} .endif From owner-svn-src-all@freebsd.org Tue Apr 7 19:40:17 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 22CA427B442; Tue, 7 Apr 2020 19:40:17 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xd6R4X0Gz47yl; Tue, 7 Apr 2020 19:40:15 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2CC0AEF2C; Tue, 7 Apr 2020 19:40:15 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 037JeEap056871; Tue, 7 Apr 2020 19:40:14 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 037JeE9L056870; Tue, 7 Apr 2020 19:40:14 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <202004071940.037JeE9L056870@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Tue, 7 Apr 2020 19:40:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r359713 - stable/11/share/mk X-SVN-Group: stable-11 X-SVN-Commit-Author: bdrewery X-SVN-Commit-Paths: stable/11/share/mk X-SVN-Commit-Revision: 359713 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 19:40:18 -0000 Author: bdrewery Date: Tue Apr 7 19:40:14 2020 New Revision: 359713 URL: https://svnweb.freebsd.org/changeset/base/359713 Log: MFC r353771: Fix spelling of DPSRCS. Modified: stable/11/share/mk/bsd.dep.mk Directory Properties: stable/11/ (props changed) Modified: stable/11/share/mk/bsd.dep.mk ============================================================================== --- stable/11/share/mk/bsd.dep.mk Tue Apr 7 19:40:11 2020 (r359712) +++ stable/11/share/mk/bsd.dep.mk Tue Apr 7 19:40:14 2020 (r359713) @@ -177,7 +177,7 @@ DEPEND_MP?= -MP # avoid collisions. DEPEND_FILTER= C,/,_,g DEPENDSRCS= ${SRCS:M*.[cSC]} ${SRCS:M*.cxx} ${SRCS:M*.cpp} ${SRCS:M*.cc} -DEPENDSRCS+= ${DPSRCS:M*.[cSC]} ${SRCS:M*.cxx} ${SRCS:M*.cpp} ${SRCS:M*.cc} +DEPENDSRCS+= ${DPSRCS:M*.[cSC]} ${DPSRCS:M*.cxx} ${DPSRCS:M*.cpp} ${DPSRCS:M*.cc} .if !empty(DEPENDSRCS) DEPENDOBJS+= ${DEPENDSRCS:R:S,$,.o,} .endif From owner-svn-src-all@freebsd.org Tue Apr 7 19:44:38 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BCB0627B8B4; Tue, 7 Apr 2020 19:44:38 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xdCV4ZGgz48Wy; Tue, 7 Apr 2020 19:44:38 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9826CF119; Tue, 7 Apr 2020 19:44:38 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 037Jicis062643; Tue, 7 Apr 2020 19:44:38 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 037Jicj8062641; Tue, 7 Apr 2020 19:44:38 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <202004071944.037Jicj8062641@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Tue, 7 Apr 2020 19:44:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359714 - stable/12/share/mk X-SVN-Group: stable-12 X-SVN-Commit-Author: bdrewery X-SVN-Commit-Paths: stable/12/share/mk X-SVN-Commit-Revision: 359714 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 19:44:38 -0000 Author: bdrewery Date: Tue Apr 7 19:44:37 2020 New Revision: 359714 URL: https://svnweb.freebsd.org/changeset/base/359714 Log: MFC r349729: Consider *clean targets as non-build targets as well. Modified: stable/12/share/mk/bsd.init.mk stable/12/share/mk/bsd.sys.mk Directory Properties: stable/12/ (props changed) Modified: stable/12/share/mk/bsd.init.mk ============================================================================== --- stable/12/share/mk/bsd.init.mk Tue Apr 7 19:40:14 2020 (r359713) +++ stable/12/share/mk/bsd.init.mk Tue Apr 7 19:44:37 2020 (r359714) @@ -58,11 +58,12 @@ $xGRP= ${_gid} # things like 'make all install' or 'make foo install'. # - non-build targets are called .if ${MK_DIRDEPS_BUILD} == "yes" && ${.MAKE.LEVEL:U1} == 0 && \ - ${BUILD_AT_LEVEL0:Uyes:tl} == "no" && !make(clean*) + ${BUILD_AT_LEVEL0:Uyes:tl} == "no" && !make(clean*) && !make(*clean) _SKIP_BUILD= not building at level 0 .elif !empty(.MAKEFLAGS:M-V${_V_DO_BUILD}) || \ ${.TARGETS:M*install*} == ${.TARGETS} || \ ${.TARGETS:Mclean*} == ${.TARGETS} || \ + ${.TARGETS:M*clean} == ${.TARGETS} || \ ${.TARGETS:Mdestroy*} == ${.TARGETS} || \ ${.TARGETS:Mobj} == ${.TARGETS} || \ make(analyze) || make(print-dir) Modified: stable/12/share/mk/bsd.sys.mk ============================================================================== --- stable/12/share/mk/bsd.sys.mk Tue Apr 7 19:40:14 2020 (r359713) +++ stable/12/share/mk/bsd.sys.mk Tue Apr 7 19:44:37 2020 (r359714) @@ -284,7 +284,7 @@ PHONY_NOTMAIN = analyze afterdepend afterinstall all b .NOTMAIN: ${PHONY_NOTMAIN:Nall} .if ${MK_STAGING} != "no" -.if defined(_SKIP_BUILD) || (!make(all) && !make(clean*)) +.if defined(_SKIP_BUILD) || (!make(all) && !make(clean*) && !make(*clean)) _SKIP_STAGING?= yes .endif .if ${_SKIP_STAGING:Uno} == "yes" From owner-svn-src-all@freebsd.org Tue Apr 7 19:44:40 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DB9FC27B8C8; Tue, 7 Apr 2020 19:44:40 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xdCX5Sy0z48X0; Tue, 7 Apr 2020 19:44:40 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B6EB4F11A; Tue, 7 Apr 2020 19:44:40 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 037JieqR062689; Tue, 7 Apr 2020 19:44:40 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 037JieAf062688; Tue, 7 Apr 2020 19:44:40 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <202004071944.037JieAf062688@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Tue, 7 Apr 2020 19:44:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r359715 - stable/11/share/mk X-SVN-Group: stable-11 X-SVN-Commit-Author: bdrewery X-SVN-Commit-Paths: stable/11/share/mk X-SVN-Commit-Revision: 359715 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 19:44:40 -0000 Author: bdrewery Date: Tue Apr 7 19:44:40 2020 New Revision: 359715 URL: https://svnweb.freebsd.org/changeset/base/359715 Log: MFC r349729: Consider *clean targets as non-build targets as well. Modified: stable/11/share/mk/bsd.init.mk stable/11/share/mk/bsd.sys.mk Directory Properties: stable/11/ (props changed) Modified: stable/11/share/mk/bsd.init.mk ============================================================================== --- stable/11/share/mk/bsd.init.mk Tue Apr 7 19:44:37 2020 (r359714) +++ stable/11/share/mk/bsd.init.mk Tue Apr 7 19:44:40 2020 (r359715) @@ -46,11 +46,12 @@ $xGRP= ${_gid} # things like 'make all install' or 'make foo install'. # - non-build targets are called .if ${MK_DIRDEPS_BUILD} == "yes" && ${.MAKE.LEVEL:U1} == 0 && \ - ${BUILD_AT_LEVEL0:Uyes:tl} == "no" && !make(clean*) + ${BUILD_AT_LEVEL0:Uyes:tl} == "no" && !make(clean*) && !make(*clean) _SKIP_BUILD= not building at level 0 .elif !empty(.MAKEFLAGS:M-V${_V_DO_BUILD}) || \ ${.TARGETS:M*install*} == ${.TARGETS} || \ ${.TARGETS:Mclean*} == ${.TARGETS} || \ + ${.TARGETS:M*clean} == ${.TARGETS} || \ ${.TARGETS:Mdestroy*} == ${.TARGETS} || \ make(obj) || make(analyze) || make(print-dir) # Skip building, but don't show a warning. Modified: stable/11/share/mk/bsd.sys.mk ============================================================================== --- stable/11/share/mk/bsd.sys.mk Tue Apr 7 19:44:37 2020 (r359714) +++ stable/11/share/mk/bsd.sys.mk Tue Apr 7 19:44:40 2020 (r359715) @@ -244,7 +244,7 @@ PHONY_NOTMAIN = analyze afterdepend afterinstall all b .NOTMAIN: ${PHONY_NOTMAIN:Nall} .if ${MK_STAGING} != "no" -.if defined(_SKIP_BUILD) || (!make(all) && !make(clean*)) +.if defined(_SKIP_BUILD) || (!make(all) && !make(clean*) && !make(*clean)) _SKIP_STAGING?= yes .endif .if ${_SKIP_STAGING:Uno} == "yes" From owner-svn-src-all@freebsd.org Tue Apr 7 19:46:01 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2E1C527BA55; Tue, 7 Apr 2020 19:46:01 +0000 (UTC) (envelope-from luporl@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xdF50PJCz48nN; Tue, 7 Apr 2020 19:46:01 +0000 (UTC) (envelope-from luporl@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 08F19F11E; Tue, 7 Apr 2020 19:46:01 +0000 (UTC) (envelope-from luporl@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 037Jk0VG062810; Tue, 7 Apr 2020 19:46:00 GMT (envelope-from luporl@FreeBSD.org) Received: (from luporl@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 037Jk0BO062809; Tue, 7 Apr 2020 19:46:00 GMT (envelope-from luporl@FreeBSD.org) Message-Id: <202004071946.037Jk0BO062809@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: luporl set sender to luporl@FreeBSD.org using -f From: Leandro Lupori Date: Tue, 7 Apr 2020 19:46:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359716 - head/stand/powerpc/ofw X-SVN-Group: head X-SVN-Commit-Author: luporl X-SVN-Commit-Paths: head/stand/powerpc/ofw X-SVN-Commit-Revision: 359716 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 19:46:01 -0000 Author: luporl Date: Tue Apr 7 19:46:00 2020 New Revision: 359716 URL: https://svnweb.freebsd.org/changeset/base/359716 Log: Add support to MSDOS FS in PPC loader Although PPC OFW loader already had a LOADER_MSDOS_SUPPORT option, a few lines were missing in conf.c, in order to support FAT filesystems. This is useful when running FreeBSD under QEMU, to be able to easily change the kernel and modules when running on hosts without UFS read/write support. Reviewed by: jhibbits Sponsored by: Eldorado Research Institute (eldorado.org.br) Differential Revision: https://reviews.freebsd.org/D24328 Modified: head/stand/powerpc/ofw/conf.c Modified: head/stand/powerpc/ofw/conf.c ============================================================================== --- head/stand/powerpc/ofw/conf.c Tue Apr 7 19:44:40 2020 (r359715) +++ head/stand/powerpc/ofw/conf.c Tue Apr 7 19:46:00 2020 (r359716) @@ -69,6 +69,9 @@ struct fs_ops *file_system[] = { #if defined(LOADER_EXT2FS_SUPPORT) &ext2fs_fsops, #endif +#if defined(LOADER_MSDOS_SUPPORT) + &dosfs_fsops, +#endif #if defined(LOADER_NFS_SUPPORT) &nfs_fsops, #endif From owner-svn-src-all@freebsd.org Tue Apr 7 20:26:44 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A0E9127CBC8; Tue, 7 Apr 2020 20:26:44 +0000 (UTC) (envelope-from dab@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xf84254Tz4By4; Tue, 7 Apr 2020 20:26:44 +0000 (UTC) (envelope-from dab@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 42D39F931; Tue, 7 Apr 2020 20:26:44 +0000 (UTC) (envelope-from dab@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 037KQiXw087008; Tue, 7 Apr 2020 20:26:44 GMT (envelope-from dab@FreeBSD.org) Received: (from dab@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 037KQhZF087003; Tue, 7 Apr 2020 20:26:43 GMT (envelope-from dab@FreeBSD.org) Message-Id: <202004072026.037KQhZF087003@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dab set sender to dab@FreeBSD.org using -f From: David Bright Date: Tue, 7 Apr 2020 20:26:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359717 - in head: etc/mtree sbin/nvmecontrol sbin/nvmecontrol/tests X-SVN-Group: head X-SVN-Commit-Author: dab X-SVN-Commit-Paths: in head: etc/mtree sbin/nvmecontrol sbin/nvmecontrol/tests X-SVN-Commit-Revision: 359717 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 20:26:44 -0000 Author: dab Date: Tue Apr 7 20:26:42 2020 New Revision: 359717 URL: https://svnweb.freebsd.org/changeset/base/359717 Log: Add a basic test for nvmecontrol I recently made some bug fixes in nvmecontrol. It occurred to me that since nvmecontrol lacks any kyua tests, I should convert the informal testing I did into a more formal automated test. The test in this change should be considered just a starting point; it is neither complete nor thorough. While converting the test to ATF/kyua, I discovered a small bug in nvmecontrol; the nvmecontrol devlist command would always exit with an unsuccessful status. So I included the fix for that, too, so that the test won't fail. Reviewed by: imp@ MFC after: 3 days Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D24269 Added: head/sbin/nvmecontrol/tests/ head/sbin/nvmecontrol/tests/Makefile (contents, props changed) head/sbin/nvmecontrol/tests/basic.sh (contents, props changed) Modified: head/etc/mtree/BSD.tests.dist head/sbin/nvmecontrol/Makefile head/sbin/nvmecontrol/devlist.c Modified: head/etc/mtree/BSD.tests.dist ============================================================================== --- head/etc/mtree/BSD.tests.dist Tue Apr 7 19:46:00 2020 (r359716) +++ head/etc/mtree/BSD.tests.dist Tue Apr 7 20:26:42 2020 (r359717) @@ -438,6 +438,8 @@ .. mdconfig .. + nvmecontrol + .. pfctl files .. Modified: head/sbin/nvmecontrol/Makefile ============================================================================== --- head/sbin/nvmecontrol/Makefile Tue Apr 7 19:46:00 2020 (r359716) +++ head/sbin/nvmecontrol/Makefile Tue Apr 7 20:26:42 2020 (r359717) @@ -1,5 +1,7 @@ # $FreeBSD$ +.include + PACKAGE=runtime PROG= nvmecontrol SRCS= comnd.c nvmecontrol.c @@ -11,6 +13,8 @@ MAN= nvmecontrol.8 LDFLAGS+= -rdynamic LIBADD+= util SUBDIR= modules +HAS_TESTS= +SUBDIR.${MK_TESTS}+= tests .PATH: ${SRCTOP}/sys/dev/nvme Modified: head/sbin/nvmecontrol/devlist.c ============================================================================== --- head/sbin/nvmecontrol/devlist.c Tue Apr 7 19:46:00 2020 (r359716) +++ head/sbin/nvmecontrol/devlist.c Tue Apr 7 20:26:42 2020 (r359717) @@ -122,8 +122,10 @@ devlist(const struct cmd *f, int argc, char *argv[]) close(fd); } - if (found == 0) + if (found == 0) { printf("No NVMe controllers found.\n"); + exit(1); + } - exit(1); + exit(0); } Added: head/sbin/nvmecontrol/tests/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sbin/nvmecontrol/tests/Makefile Tue Apr 7 20:26:42 2020 (r359717) @@ -0,0 +1,6 @@ +# $FreeBSD$ + +PACKAGE= tests +ATF_TESTS_SH+= basic + +.include Added: head/sbin/nvmecontrol/tests/basic.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sbin/nvmecontrol/tests/basic.sh Tue Apr 7 20:26:42 2020 (r359717) @@ -0,0 +1,236 @@ +# SPDX-License-Identifier: BSD-2-Clause-FreeBSD +# +# Copyright (c) 2020 David A. Bright +# +# Redistribution and use in source and binary forms, with or without +# 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. +# 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. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (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$ + +# +# A basic test for nvmecontrol. This isn't a thorough or complete test +# of nvmecontrol functionality; it is more of a sanity check that +# nvmecontrol basically works. +# + +DANGEROUS=false # Set to true to run "dangerous" tests +# Select a nvme device to use for testing. If none exist, use nvme0. +TEST_DEV=$(cd /dev/;ls nvme[0-9]* | grep 'nvme[0-9][0-9]*$' | head -1) 2>/dev/null +TEST_DEV=${TEST_DEV:-nvme0} +TEST_DEV_PATH=/dev/${TEST_DEV} +INV_OPT="-z" +INV_OPT_MSG="invalid option -- z" + + +atf_test_case fake_lib cleanup +fake_lib_head() +{ + atf_set "descr" "check loading of a library from /lib" + atf_set "require.user" "root" +} +fake_lib_body() +{ + local libdir="/lib/nvmecontrol" + local fakelib="${libdir}/fake.so" + if [ -d ${libdir} ] ; then + touch ${fakelib} + atf_check -s not-exit:0 -o ignore -e match:"Can't load ${fakelib}" nvmecontrol + rm -f ${fakelib} + else + atf_skip "Skipping; directory ${libdir} does not exist" + fi +} +fake_lib_cleanup() +{ + rm -f /lib/nvmecontrol/fake.so +} + +atf_test_case fake_local_lib cleanup +fake_local_lib_head() +{ + atf_set "descr" "check loading of a library from /usr/local/lib" + atf_set "require.user" "root" +} +fake_local_lib_body() +{ + local libdir="/usr/local/lib/nvmecontrol" + local fakelib="${libdir}/fake.so" + if [ -d ${libdir} ] ; then + touch ${fakelib} + atf_check -s not-exit:0 -o ignore -e match:"Can't load ${fakelib}" nvmecontrol + rm -f ${fakelib} + else + atf_skip "Skipping; directory ${libdir} does not exist" + fi +} +fake_local_lib_cleanup() +{ + rm -f /usr/local/lib/nvmecontrol/fake.so +} + +atf_test_case admin_passthru +admin_passthru_head() +{ + atf_set "descr" "check the admin-passthru command" + atf_set "require.user" "root" +} +admin_passthru_body() +{ + if [ -c "${TEST_DEV_PATH}" ] ; then + atf_check -o not-empty -e empty nvmecontrol admin-passthru --opcode=06 --data-len=4096 --cdw10=1 -r 0 ${TEST_DEV} + else + atf_check -s not-exit:0 -o empty -e not-empty nvmecontrol admin-passthru --opcode=06 --data-len=4096 --cdw10=1 -r 0 ${TEST_DEV} + fi + atf_check -s not-exit:0 -o ignore -e match:"${INV_OPT_MSG}" nvmecontrol admin-passthru ${INV_OPT} --opcode=06 --data-len=4096 --cdw10=1 -r 0 ${TEST_DEV} +} + +atf_test_case devlist +devlist_head() +{ + atf_set "descr" "check the devlist command" + atf_set "require.user" "root" +} +devlist_body() +{ + if [ -c "${TEST_DEV_PATH}" ] ; then + atf_check -o not-empty -e empty nvmecontrol devlist + else + atf_check -s not-exit:0 -o ignore -e ignore nvmecontrol devlist + fi + atf_check -s not-exit:0 -o ignore -e match:"${INV_OPT_MSG}" nvmecontrol devlist ${INV_OPT} +} + +atf_test_case identify +identify_head() +{ + atf_set "descr" "check the identify command" + atf_set "require.user" "root" +} +identify_body() +{ + if [ -c "${TEST_DEV_PATH}" ] ; then + atf_check -o not-empty -e empty nvmecontrol identify ${TEST_DEV} + else + atf_check -s not-exit:0 -o empty -e not-empty nvmecontrol identify ${TEST_DEV} + fi + atf_check -s not-exit:0 -o ignore -e match:"${INV_OPT_MSG}" nvmecontrol identify ${INV_OPT} ${TEST_DEV} +} + +atf_test_case io_passthru +io_passthru_head() +{ + atf_set "descr" "check the io-passthru command" + atf_set "require.user" "root" +} +io_passthru_body() +{ + if [ -c "${TEST_DEV_PATH}" ] ; then + atf_check -o not-empty -e empty nvmecontrol io-passthru --opcode=02 --data-len=4096 --cdw10=0 --cdw11=0 --cdw12=0x70000 -r 0 nvme0 ${TEST_DEV} + else + atf_check -s not-exit:0 -o empty -e not-empty nvmecontrol io-passthru --opcode=02 --data-len=4096 --cdw10=0 --cdw11=0 --cdw12=0x70000 -r 0 nvme0 ${TEST_DEV} + fi + atf_check -s not-exit:0 -o ignore -e match:"${INV_OPT_MSG}" nvmecontrol io-passthru ${INV_OPT} --opcode=02 --data-len=4096 --cdw10=0 --cdw11=0 --cdw12=0x70000 -r 0 nvme0 ${TEST_DEV} +} + +atf_test_case logpage +logpage_head() +{ + atf_set "descr" "check the logpage command" + atf_set "require.user" "root" +} +logpage_body() +{ + if [ -c "${TEST_DEV_PATH}" ] ; then + atf_check -o not-empty -e empty nvmecontrol logpage -p 1 ${TEST_DEV} + else + atf_check -s not-exit:0 -o empty -e not-empty nvmecontrol logpage -p 1 ${TEST_DEV} + fi + atf_check -s not-exit:0 -o ignore -e match:"${INV_OPT_MSG}" nvmecontrol logpage -p 1 ${INV_OPT} ${TEST_DEV} +} + +atf_test_case nsid +nsid_head() +{ + atf_set "descr" "check the nsid command" + atf_set "require.user" "root" +} +nsid_body() +{ + if [ -c "${TEST_DEV_PATH}" ] ; then + atf_check -o not-empty -e empty nvmecontrol nsid ${TEST_DEV} + else + atf_check -s not-exit:0 -o empty -e not-empty nvmecontrol nsid ${TEST_DEV} + fi + atf_check -s not-exit:0 -o ignore -e match:"${INV_OPT_MSG}" nvmecontrol nsid ${INV_OPT} ${TEST_DEV} +} + +atf_test_case power +power_head() +{ + atf_set "descr" "check the power command" + atf_set "require.user" "root" +} +power_body() +{ + if [ -c "${TEST_DEV_PATH}" ] ; then + atf_check -o not-empty -e empty nvmecontrol power ${TEST_DEV} + else + atf_check -s not-exit:0 -o empty -e not-empty nvmecontrol power ${TEST_DEV} + fi + atf_check -s not-exit:0 -o ignore -e match:"${INV_OPT_MSG}" nvmecontrol power ${INV_OPT} ${TEST_DEV} +} + +atf_test_case reset +reset_head() +{ + atf_set "descr" "check the reset command" + atf_set "require.user" "root" +} +reset_body() +{ + atf_check -s not-exit:0 -o ignore -e match:"${INV_OPT_MSG}" nvmecontrol reset ${INV_OPT} ${TEST_DEV} + if [ -c "${TEST_DEV_PATH}" ] ; then + # Reset of an active device seems a little dangerous, + # therefore, this is normally disabled. + if ${DANGEROUS} ; then + atf_check -o not-empty -e empty nvmecontrol reset ${TEST_DEV} + else + atf_skip "Skipping reset test" + fi + else + atf_check -s not-exit:0 -o empty -e not-empty nvmecontrol reset ${TEST_DEV} + fi +} + + +atf_init_test_cases() +{ + atf_add_test_case fake_lib + atf_add_test_case fake_local_lib + atf_add_test_case admin_passthru + atf_add_test_case devlist + atf_add_test_case identify + atf_add_test_case io_passthru + atf_add_test_case logpage + atf_add_test_case nsid + atf_add_test_case power + atf_add_test_case reset +} From owner-svn-src-all@freebsd.org Tue Apr 7 21:49:24 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 924B727F0FE; Tue, 7 Apr 2020 21:49:24 +0000 (UTC) (envelope-from sjg@juniper.net) Received: from mx0b-00273201.pphosted.com (mx0b-00273201.pphosted.com [67.231.152.164]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "*.pphosted.com", Issuer "Thawte RSA CA 2018" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xgzR4Qq8z4H0s; Tue, 7 Apr 2020 21:49:23 +0000 (UTC) (envelope-from sjg@juniper.net) Received: from pps.filterd (m0108162.ppops.net [127.0.0.1]) by mx0b-00273201.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 037LnE7E004886; Tue, 7 Apr 2020 14:49:22 -0700 Received: from nam04-sn1-obe.outbound.protection.outlook.com (mail-sn1nam04lp2056.outbound.protection.outlook.com [104.47.44.56]) by mx0b-00273201.pphosted.com with ESMTP id 3091s0800k-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Apr 2020 14:49:22 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ms6ZzQkOOKxAgUWhQWGm2GS/jGcVfLmY7xWS/pt4ITugpQ7kf0oPOwSWV37cESR7opDWHAHXTDVJfZt/b5KMPCFfDyQKJN+L6kZgamaZg4xwZSJ+5YGGRkja2JEmug4RuqBUX2dOoeS63nUGF179jbwWMeoaBQqZnQSwZ6dNGe3JE0scvzM9L8MIXWQtKR+FJG7Xv3wdcIDcJyxF5AbhpPK2xOramFDMzE3JzZ9fam4pegZ9cZfUgaG+Ucmxb+lYZ3Gzql/TlwQPLnIT2pwL9JEj4XPu3a+wARQJzB9YEKX8XSkC6OMSKXxGJGJ3ZXlvJ9vZuwOOW+cehJti+YwH9w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hN2ERiJ6whfjhoR8BgiOvNrtGZ+W/xHVI27AdyHqTI0=; b=gbB7/f9uZ5mwTnqPPOGvAfUCgLBt/8FJIyTVDUrSi+1/AbDyhFtvrEJnoSBtneaXlNXKO8zRlcMC1Ox7fqq9/EcT3AprPNRo3FmGXE3PQPvM7ohGvafYNFNtmg1bxPYIlrfe7449kqpwPnAmI90hMTFYOmBYOIwfRwGPRVR17QOtEaKkbrfNf4ccKuqqG3jHlfvk+cofq5pULn8c0FjS10NdLjzEHf4Dn/NDYUxV5OZ3za1xOTRe3H1a2hCx9MAH6gVnp2deKd1KecuuscjfRHtaoOrsbcqpoej/wSYl6IOx3kR/S9mS5kwwfKwg8R1m5TWC8+tGo7XWmw6wOEI7pg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=softfail (sender ip is 66.129.242.12) smtp.rcpttodomain=kyle-evans.net smtp.mailfrom=juniper.net; dmarc=fail (p=reject sp=reject pct=100) action=oreject header.from=juniper.net; dkim=none (message not signed); arc=none Received: from DM6PR03CA0060.namprd03.prod.outlook.com (2603:10b6:5:100::37) by CY4PR05MB3477.namprd05.prod.outlook.com (2603:10b6:910:55::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2900.13; Tue, 7 Apr 2020 21:49:19 +0000 Received: from DM3NAM05FT025.eop-nam05.prod.protection.outlook.com (2603:10b6:5:100:cafe::57) by DM6PR03CA0060.outlook.office365.com (2603:10b6:5:100::37) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2878.17 via Frontend Transport; Tue, 7 Apr 2020 21:49:19 +0000 Received-SPF: SoftFail (protection.outlook.com: domain of transitioning juniper.net discourages use of 66.129.242.12 as permitted sender) Received: from P-EXFEND-EQX-01.jnpr.net (66.129.242.12) by DM3NAM05FT025.mail.protection.outlook.com (10.152.98.135) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.2900.12 via Frontend Transport; Tue, 7 Apr 2020 21:49:19 +0000 Received: from P-EXBEND-EQX-01.jnpr.net (10.104.8.52) by P-EXFEND-EQX-01.jnpr.net (10.104.8.54) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 7 Apr 2020 14:49:02 -0700 Received: from P-EXBEND-EQX-01.jnpr.net (10.104.8.52) by P-EXBEND-EQX-01.jnpr.net (10.104.8.52) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 7 Apr 2020 14:49:02 -0700 Received: from p-mailhub01.juniper.net (10.104.20.6) by P-EXBEND-EQX-01.jnpr.net (10.104.8.52) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Tue, 7 Apr 2020 14:49:02 -0700 Received: from kaos.jnpr.net (kaos.jnpr.net [172.23.50.162]) by p-mailhub01.juniper.net (8.14.4/8.11.3) with ESMTP id 037Ln11J006473; Tue, 7 Apr 2020 14:49:01 -0700 (envelope-from sjg@juniper.net) Received: by kaos.jnpr.net (Postfix, from userid 1377) id 6280268E4B; Tue, 7 Apr 2020 14:49:01 -0700 (PDT) Received: from kaos.jnpr.net (localhost [127.0.0.1]) by kaos.jnpr.net (Postfix) with ESMTP id 60BB868E4A; Tue, 7 Apr 2020 14:49:01 -0700 (PDT) To: Kyle Evans CC: Bryan Drewery , src-committers , svn-src-all , svn-src-head , Subject: Re: svn commit: r359705 - head/share/mk In-Reply-To: References: <202004071707.037H74VX066447@repo.freebsd.org> Comments: In-reply-to: Kyle Evans message dated "Tue, 07 Apr 2020 12:13:05 -0500." From: "Simon J. Gerraty" X-Mailer: MH-E 8.6+git; nmh 1.7.1; GNU Emacs 26.3 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <51333.1586296141.1@kaos.jnpr.net> Date: Tue, 7 Apr 2020 14:49:01 -0700 Message-ID: <54551.1586296141@kaos.jnpr.net> X-EXCLAIMER-MD-CONFIG: e3cb0ff2-54e7-4646-8a04-0dae4ac7b136 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:66.129.242.12; CTRY:US; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:P-EXFEND-EQX-01.jnpr.net; PTR:InfoDomainNonexistent; CAT:NONE; SFTY:; SFS:(10019020)(4636009)(136003)(39850400004)(376002)(396003)(346002)(46966005)(5660300002)(478600001)(107886003)(82740400003)(2906002)(86362001)(54906003)(8936002)(70586007)(9686003)(6916009)(7696005)(6266002)(186003)(356004)(47076004)(4326008)(8676002)(26005)(7126003)(316002)(26826003)(336012)(55016002)(70206006)(81156014)(4744005)(81166006); DIR:OUT; SFP:1102; X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 47367fc3-4e60-481a-611d-08d7db3d86aa X-MS-TrafficTypeDiagnostic: CY4PR05MB3477: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3276; X-Forefront-PRVS: 036614DD9C X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 7KoymVkwPtyg4oFEisOYotUPDJbvKeia76jK/aKKiT0WVPZ1Jlm98q3noxbQkCDL81eiaf8vJfpzlHK+qUQfdaQ1f0axnwYJ4sQVl40xUt/8BJ/rLn05TTwT7wlw6YK05OgE8w8APl3D5f6EmDvuPSfjOQVcM3FKLw4YvDU6PJdZM6bVVBBPTpkyls1zAI61PUZyrxRVL8ZWYUhrsZLxbBGYWqpWIiG6HQASnNccmnRlSUTPRP/Swz6O8E+QBRL4UNV5gYbbre/vLq6nd71H5jQs/cFIkomajBZvtUtFpMsjh/9sDoYyrDYGO1/DBnH+PL8zM5X+4e71wWmX9HE7pzWtnRAdZFpbQuWFikhCoDZ/l3Y+XNPlmUxHygENkEPle6I7y4NwJtrFKXgHh7fCZ3gn1bZKqjJbcLLldR72+n+DqX7gnBDkB1ssaaa+8YeSmzICCwrltJrdnYp64IlW0ujWwjH4V88qfk6fPWVhV4uwSTFTGC2CTTzY/zI5+0roWIlpcdM8RukDe0mRN3nZrg== X-OriginatorOrg: juniper.net X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2020 21:49:19.3915 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 47367fc3-4e60-481a-611d-08d7db3d86aa X-MS-Exchange-CrossTenant-Id: bea78b3c-4cdb-4130-854a-1d193232e5f4 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=bea78b3c-4cdb-4130-854a-1d193232e5f4; Ip=[66.129.242.12]; Helo=[P-EXFEND-EQX-01.jnpr.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR05MB3477 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138, 18.0.676 definitions=2020-04-07_09:2020-04-07, 2020-04-07 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 suspectscore=0 adultscore=0 mlxscore=0 mlxlogscore=746 lowpriorityscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 priorityscore=1501 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2003020000 definitions=main-2004070171 X-Rspamd-Queue-Id: 48xgzR4Qq8z4H0s X-Spamd-Bar: ----- X-Spamd-Result: default: False [-5.84 / 15.00]; RCVD_TLS_LAST(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_DKIM_ALLOW(-0.20)[juniper.net:s=PPS1017,juniper.net:s=selector1]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:67.231.152.164]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; IP_SCORE(-1.74)[ip: (-4.26), ipnet: 67.231.152.0/24(-1.94), asn: 22843(-2.45), country: US(-0.05)]; RCPT_COUNT_FIVE(0.00)[6]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[juniper.net:+]; DMARC_POLICY_ALLOW(-0.50)[juniper.net,reject]; RCVD_IN_DNSWL_LOW(-0.10)[164.152.231.67.list.dnswl.org : 127.0.3.1]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:22843, ipnet:67.231.152.0/24, country:US]; ARC_ALLOW(-1.00)[i=1]; RCVD_COUNT_SEVEN(0.00)[11] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 21:49:24 -0000 Kyle Evans wrote: > universe13a% make -C stand -V .OBJDIR > /scratch/tmp/kevans/obj/home/kevans/head/amd64.amd64/stand > > But in a buildenv: > universe13a% make TARGET_ARCH=armv7 buildenv > Entering world for armv7:arm > For ZSH you must run: export CPUTYPE= > universe13a% make -C stand -V .OBJDIR > [Creating objdir /scratch/tmp/kevans/obj/home/kevans/head/stand...] > /scratch/tmp/kevans/obj/home/kevans/head/stand What do you get for: env | grep MAKE > Using buildenv with BUILDENV_SHELL="make -C stand -V .OBDJIR" > *doesn't* reproduce it (objdir has arm.armv7 in it again). > > I tried with both zsh (and export CPUTYPE=) and /bin/sh, but it seems > to reproduce both ways. > > Thanks, > > Kyle Evans From owner-svn-src-all@freebsd.org Tue Apr 7 21:52:35 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 406A327F49B; Tue, 7 Apr 2020 21:52:35 +0000 (UTC) (envelope-from byond.lenox@gmail.com) Received: from mail-qk1-f170.google.com (mail-qk1-f170.google.com [209.85.222.170]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xh360JGxz4HfD; Tue, 7 Apr 2020 21:52:33 +0000 (UTC) (envelope-from byond.lenox@gmail.com) Received: by mail-qk1-f170.google.com with SMTP id b62so1090287qkf.6; Tue, 07 Apr 2020 14:52:33 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=5/xrWB8+fRitLLi/Phjs9mKt0bx4+N+lciOJh3ubxgs=; b=ruX17M3iZzKynqW1A3vmPn7rju10H/zgX91Mr5r+uHVt2Ib7FHoJWoiOn/+5f+fQs5 T8PPv8ZuPcB7iNUoOGgttAlMlFTLW2AlIskzOBVsy7u5JMkb9BiBTt3m1hbad3TScWTT roobe50Z0vqBeFfTYTaAkZBEqYa6liUSWvp3fhqYDdQIpfePj5BiYivFclQLrbNAuaur /tmU3wfmo6hPAKVTAc73y6j/LZhsqTd+fKmcM1NcM3jr1DcUx0OFNkMzDGViVwyOvX29 yrT5o5ToTZJyXz7S5IgPVsdD3kZIvOunS8ib5+nSlFpLNMDR8FT7I1CSi9q+/c0CoKJ5 vEYw== X-Gm-Message-State: AGi0PuZqOBTp6R1Kq2Js4ueFPaKIn0LEWqzFZG8yfGmGcRFQ64fSrmQw +nNRv5YI1iA62EElxciD1YT/IyqY X-Google-Smtp-Source: APiQypIOCDFwyFzlctS/MdUguyN+LW5afmGbntSprgoGA8v2y9Gd5HSH6cZyPh140MHn8I6Mq77mHQ== X-Received: by 2002:a37:ad08:: with SMTP id f8mr4613507qkm.258.1586296352605; Tue, 07 Apr 2020 14:52:32 -0700 (PDT) Received: from mail-qk1-f172.google.com (mail-qk1-f172.google.com. [209.85.222.172]) by smtp.gmail.com with ESMTPSA id w13sm16916626qtn.81.2020.04.07.14.52.32 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 07 Apr 2020 14:52:32 -0700 (PDT) Received: by mail-qk1-f172.google.com with SMTP id b62so1090258qkf.6; Tue, 07 Apr 2020 14:52:32 -0700 (PDT) X-Received: by 2002:a37:6d8:: with SMTP id 207mr4703506qkg.103.1586296352246; Tue, 07 Apr 2020 14:52:32 -0700 (PDT) MIME-Version: 1.0 References: <202004071707.037H74VX066447@repo.freebsd.org> <54551.1586296141@kaos.jnpr.net> In-Reply-To: <54551.1586296141@kaos.jnpr.net> From: Kyle Evans Date: Tue, 7 Apr 2020 16:52:18 -0500 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r359705 - head/share/mk To: "Simon J. Gerraty" Cc: Bryan Drewery , src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 48xh360JGxz4HfD X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of byondlenox@gmail.com designates 209.85.222.170 as permitted sender) smtp.mailfrom=byondlenox@gmail.com X-Spamd-Result: default: False [-2.67 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; FROM_NEQ_ENVFROM(0.00)[self@kyle-evans.net,byondlenox@gmail.com]; FROM_HAS_DN(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17]; RCVD_TLS_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[kyle-evans.net]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; RCPT_COUNT_FIVE(0.00)[5]; RCVD_COUNT_THREE(0.00)[4]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[170.222.85.209.list.dnswl.org : 127.0.5.0]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; IP_SCORE(-0.67)[ip: (-2.49), ipnet: 209.85.128.0/17(-0.40), asn: 15169(-0.43), country: US(-0.05)]; FORGED_SENDER(0.30)[self@kyle-evans.net,byondlenox@gmail.com]; RWL_MAILSPIKE_POSSIBLE(0.00)[170.222.85.209.rep.mailspike.net : 127.0.0.17]; MIME_TRACE(0.00)[0:+]; R_DKIM_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; TAGGED_FROM(0.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 21:52:35 -0000 On Tue, Apr 7, 2020 at 4:49 PM Simon J. Gerraty wrote: > > Kyle Evans wrote: > > universe13a% make -C stand -V .OBJDIR > > /scratch/tmp/kevans/obj/home/kevans/head/amd64.amd64/stand > > > > But in a buildenv: > > universe13a% make TARGET_ARCH=armv7 buildenv > > Entering world for armv7:arm > > For ZSH you must run: export CPUTYPE= > > universe13a% make -C stand -V .OBJDIR > > [Creating objdir /scratch/tmp/kevans/obj/home/kevans/head/stand...] > > /scratch/tmp/kevans/obj/home/kevans/head/stand > > What do you get for: > > env | grep MAKE > It turned out I had export MAKEOBJDIRPREFIX=... in my ~/.zshrc on this particular machine that was polluting the buildenv- Bryan investigated a bit (via IRC) and we came to the conclusion that I should not do that, or at least not do that for BUILDENV. I'm happy with this solution, as it's only in there to allow me to be lazy on universe machines. =-) Thanks, Kyle Evans From owner-svn-src-all@freebsd.org Tue Apr 7 22:23:24 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 027DB27FEF4; Tue, 7 Apr 2020 22:23:24 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xhkg64ZGz4KWt; Tue, 7 Apr 2020 22:23:23 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CB96F19049; Tue, 7 Apr 2020 22:23:23 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 037MNNDw059908; Tue, 7 Apr 2020 22:23:23 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 037MNN7g059905; Tue, 7 Apr 2020 22:23:23 GMT (envelope-from imp@FreeBSD.org) Message-Id: <202004072223.037MNN7g059905@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Tue, 7 Apr 2020 22:23:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359718 - in head/sys: cam cam/ata cam/mmc geom X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: in head/sys: cam cam/ata cam/mmc geom X-SVN-Commit-Revision: 359718 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 22:23:24 -0000 Author: imp Date: Tue Apr 7 22:23:22 2020 New Revision: 359718 URL: https://svnweb.freebsd.org/changeset/base/359718 Log: Now that we don't have special-case geom hacking defined in md_var.h, stop including it. sparc64 was the last straggler here, but these weren't removed at the time. Modified: head/sys/cam/ata/ata_da.c head/sys/cam/cam_xpt.c head/sys/cam/mmc/mmc_da.c head/sys/geom/geom_disk.c Modified: head/sys/cam/ata/ata_da.c ============================================================================== --- head/sys/cam/ata/ata_da.c Tue Apr 7 20:26:42 2020 (r359717) +++ head/sys/cam/ata/ata_da.c Tue Apr 7 22:23:22 2020 (r359718) @@ -70,8 +70,6 @@ __FBSDID("$FreeBSD$"); #include -#include /* geometry translation */ - #ifdef _KERNEL #define ATA_MAX_28BIT_LBA 268435455UL Modified: head/sys/cam/cam_xpt.c ============================================================================== --- head/sys/cam/cam_xpt.c Tue Apr 7 20:26:42 2020 (r359717) +++ head/sys/cam/cam_xpt.c Tue Apr 7 22:23:22 2020 (r359718) @@ -71,7 +71,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include /* geometry translation */ #include /* for xpt_print below */ #include "opt_cam.h" Modified: head/sys/cam/mmc/mmc_da.c ============================================================================== --- head/sys/cam/mmc/mmc_da.c Tue Apr 7 20:26:42 2020 (r359717) +++ head/sys/cam/mmc/mmc_da.c Tue Apr 7 22:23:22 2020 (r359718) @@ -77,8 +77,6 @@ __FBSDID("$FreeBSD$"); #include -#include /* geometry translation */ - #ifdef _KERNEL typedef enum { Modified: head/sys/geom/geom_disk.c ============================================================================== --- head/sys/geom/geom_disk.c Tue Apr 7 20:26:42 2020 (r359717) +++ head/sys/geom/geom_disk.c Tue Apr 7 22:23:22 2020 (r359718) @@ -51,7 +51,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include From owner-svn-src-all@freebsd.org Tue Apr 7 23:17:44 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DB6EA2A22E3; Tue, 7 Apr 2020 23:17:44 +0000 (UTC) (envelope-from rgrimes@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xjxN5Wfmz4NLD; Tue, 7 Apr 2020 23:17:44 +0000 (UTC) (envelope-from rgrimes@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B8C4B19A4D; Tue, 7 Apr 2020 23:17:44 +0000 (UTC) (envelope-from rgrimes@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 037NHief090772; Tue, 7 Apr 2020 23:17:44 GMT (envelope-from rgrimes@FreeBSD.org) Received: (from rgrimes@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 037NHi7x090771; Tue, 7 Apr 2020 23:17:44 GMT (envelope-from rgrimes@FreeBSD.org) Message-Id: <202004072317.037NHi7x090771@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rgrimes set sender to rgrimes@FreeBSD.org using -f From: "Rodney W. Grimes" Date: Tue, 7 Apr 2020 23:17:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359719 - head/usr.sbin/bhyve X-SVN-Group: head X-SVN-Commit-Author: rgrimes X-SVN-Commit-Paths: head/usr.sbin/bhyve X-SVN-Commit-Revision: 359719 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 23:17:44 -0000 Author: rgrimes Date: Tue Apr 7 23:17:44 2020 New Revision: 359719 URL: https://svnweb.freebsd.org/changeset/base/359719 Log: In the past changes have been made to smbios->minor without updating the smbios->bcdrev value. Correct that by calculating bcdrev from the major/minor values. Reported by: bcran Reviewed by: bcran, jhb Approved by: jhb (maintainer) Modified: head/usr.sbin/bhyve/smbiostbl.c Modified: head/usr.sbin/bhyve/smbiostbl.c ============================================================================== --- head/usr.sbin/bhyve/smbiostbl.c Tue Apr 7 22:23:22 2020 (r359718) +++ head/usr.sbin/bhyve/smbiostbl.c Tue Apr 7 23:17:44 2020 (r359719) @@ -774,7 +774,7 @@ smbios_ep_initializer(struct smbios_entry_point *smbio memcpy(smbios_ep->ianchor, SMBIOS_ENTRY_IANCHOR, SMBIOS_ENTRY_IANCHORLEN); smbios_ep->staddr = staddr; - smbios_ep->bcdrev = 0x24; + smbios_ep->bcdrev = (smbios_ep->major & 0xf) << 4 | (smbios_ep->minor & 0xf); } static void From owner-svn-src-all@freebsd.org Wed Apr 8 01:12:54 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D78EF2A5584; Wed, 8 Apr 2020 01:12:54 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xmVG5Nzzz4V6H; Wed, 8 Apr 2020 01:12:54 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B40A71B1D2; Wed, 8 Apr 2020 01:12:54 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0381CsZZ063661; Wed, 8 Apr 2020 01:12:54 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0381CsL5063660; Wed, 8 Apr 2020 01:12:54 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <202004080112.0381CsL5063660@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Wed, 8 Apr 2020 01:12:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359720 - head/sys/fs/nfsserver X-SVN-Group: head X-SVN-Commit-Author: rmacklem X-SVN-Commit-Paths: head/sys/fs/nfsserver X-SVN-Commit-Revision: 359720 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Apr 2020 01:12:54 -0000 Author: rmacklem Date: Wed Apr 8 01:12:54 2020 New Revision: 359720 URL: https://svnweb.freebsd.org/changeset/base/359720 Log: Fix an interoperability issue w.r.t. the Linux client and the NFSv4 server. Luoqi Chen reported a problem on freebsd-fs@ where a Linux NFSv4 client was able to open and write to a file when the file's permissions were not set to allow the owner write access. Since NFS servers check file permissions on every write RPC, it is standard practice to allow the owner of the file to do writes, regardless of file permissions. This provides POSIX like behaviour, since POSIX only checks permissions upon open(2). The traditional way NFS clients handle this is to check access via the Access operation/RPC and use that to determine if an open(2) on the client is allowed. It appears that, for NFSv4, the Linux client expects the NFSv4 Open (not a POSIX open) operation to fail with NFSERR_ACCES if the file is not being created and file permissions do not allow owner access, unlike NFSv3. Since both the Linux and OpenSolaris NFSv4 servers seem to exhibit this behaviour, this patch changes the FreeBSD NFSv4 server to do the same. A sysctl called vfs.nfsd.v4openaccess can be set to 0 to return the NFSv4 server to its previous behaviour. Since both the Linux and FreeBSD NFSv4 clients seem to exhibit correct behaviour with the access check for file owner in Open enabled, it is enabled by default. Reported by: luoqi.chen@gmail.com MFC after: 2 weeks Modified: head/sys/fs/nfsserver/nfs_nfsdserv.c Modified: head/sys/fs/nfsserver/nfs_nfsdserv.c ============================================================================== --- head/sys/fs/nfsserver/nfs_nfsdserv.c Tue Apr 7 23:17:44 2020 (r359719) +++ head/sys/fs/nfsserver/nfs_nfsdserv.c Wed Apr 8 01:12:54 2020 (r359720) @@ -81,6 +81,10 @@ static int nfsrv_linux42server = 1; SYSCTL_INT(_vfs_nfsd, OID_AUTO, linux42server, CTLFLAG_RW, &nfsrv_linux42server, 0, "Enable Linux style NFSv4.2 server (non-RFC compliant)"); +static bool nfsrv_openaccess = true; +SYSCTL_BOOL(_vfs_nfsd, OID_AUTO, v4openaccess, CTLFLAG_RW, + &nfsrv_openaccess, 0, + "Enable Linux style NFSv4 Open access check"); /* * This list defines the GSS mechanisms supported. @@ -2742,7 +2746,7 @@ nfsrvd_open(struct nfsrv_descript *nd, __unused int is u_int32_t *tl; int i, retext; struct nfsstate *stp = NULL; - int error = 0, create, claim, exclusive_flag = 0; + int error = 0, create, claim, exclusive_flag = 0, override; u_int32_t rflags = NFSV4OPEN_LOCKTYPEPOSIX, acemask; int how = NFSCREATE_UNCHECKED; int32_t cverf[2], tverf[2] = { 0, 0 }; @@ -3046,15 +3050,38 @@ nfsrvd_open(struct nfsrv_descript *nd, __unused int is */ nd->nd_repstat = (vp->v_type == VDIR) ? NFSERR_ISDIR : NFSERR_SYMLINK; } + + /* + * If the Open is being done for a file that already exists, apply + * normal permission checking including for the file owner, if + * vfs.nfsd.v4openaccess is set. + * Previously, the owner was always allowed to open the file to + * be consistent with the NFS tradition of always allowing the + * owner of the file to write to the file regardless of permissions. + * It now appears that the Linux client expects the owner + * permissions to be checked for opens that are not creating the + * file. I believe the correct approach is to use the Access + * operation's results to be consistent with NFSv3, but that is + * not what the current Linux client appears to be doing. + * Since both the Linux and OpenSolaris NFSv4 servers do this check, + * I have enabled it by default. + * If this semantic change causes a problem, it can be disabled by + * setting the sysctl vfs.nfsd.v4openaccess to 0 to re-enable the + * previous semantics. + */ + if (nfsrv_openaccess && create == NFSV4OPEN_NOCREATE) + override = NFSACCCHK_NOOVERRIDE; + else + override = NFSACCCHK_ALLOWOWNER; if (!nd->nd_repstat && (stp->ls_flags & NFSLCK_WRITEACCESS)) nd->nd_repstat = nfsvno_accchk(vp, VWRITE, nd->nd_cred, - exp, p, NFSACCCHK_ALLOWOWNER, NFSACCCHK_VPISLOCKED, NULL); + exp, p, override, NFSACCCHK_VPISLOCKED, NULL); if (!nd->nd_repstat && (stp->ls_flags & NFSLCK_READACCESS)) { nd->nd_repstat = nfsvno_accchk(vp, VREAD, nd->nd_cred, - exp, p, NFSACCCHK_ALLOWOWNER, NFSACCCHK_VPISLOCKED, NULL); + exp, p, override, NFSACCCHK_VPISLOCKED, NULL); if (nd->nd_repstat) nd->nd_repstat = nfsvno_accchk(vp, VEXEC, - nd->nd_cred, exp, p, NFSACCCHK_ALLOWOWNER, + nd->nd_cred, exp, p, override, NFSACCCHK_VPISLOCKED, NULL); } From owner-svn-src-all@freebsd.org Wed Apr 8 06:06:15 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6DE432AAA75; Wed, 8 Apr 2020 06:06:15 +0000 (UTC) (envelope-from freqlabs@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xv0l2NWnz3JFx; Wed, 8 Apr 2020 06:06:15 +0000 (UTC) (envelope-from freqlabs@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 47D681E967; Wed, 8 Apr 2020 06:06:15 +0000 (UTC) (envelope-from freqlabs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03866FlL044319; Wed, 8 Apr 2020 06:06:15 GMT (envelope-from freqlabs@FreeBSD.org) Received: (from freqlabs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03866DuD044311; Wed, 8 Apr 2020 06:06:13 GMT (envelope-from freqlabs@FreeBSD.org) Message-Id: <202004080606.03866DuD044311@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: freqlabs set sender to freqlabs@FreeBSD.org using -f From: Ryan Moeller Date: Wed, 8 Apr 2020 06:06:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359721 - in stable/12: cddl/contrib/opensolaris/lib/libzfs/common sys/cddl/contrib/opensolaris/uts/common/fs/zfs sys/cddl/contrib/opensolaris/uts/common/sys/fs X-SVN-Group: stable-12 X-SVN-Commit-Author: freqlabs X-SVN-Commit-Paths: in stable/12: cddl/contrib/opensolaris/lib/libzfs/common sys/cddl/contrib/opensolaris/uts/common/fs/zfs sys/cddl/contrib/opensolaris/uts/common/sys/fs X-SVN-Commit-Revision: 359721 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Apr 2020 06:06:15 -0000 Author: freqlabs Date: Wed Apr 8 06:06:13 2020 New Revision: 359721 URL: https://svnweb.freebsd.org/changeset/base/359721 Log: MFC r359303 MFOpenZFS: ZVOLs should not be allowed to have children zfs create, receive and rename can bypass this hierarchy rule. Update both userland and kernel module to prevent this issue and use pyzfs unit tests to exercise the ioctls directly. Note: this commit slightly changes zfs_ioc_create() ABI. This allow to differentiate a generic error (EINVAL) from the specific case where we tried to create a dataset below a ZVOL (ZFS_ERR_WRONG_PARENT). Reviewed-by: Paul Dagnelie Reviewed-by: Matt Ahrens Reviewed-by: Brian Behlendorf Reviewed-by: Tom Caputi Signed-off-by: loli10K Approved by: mav (mentor) openzfs/zfs@d8d418ff0cc90776182534bce10b01e9487b63e4 Modified: stable/12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h stable/12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c stable/12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c stable/12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c stable/12/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h Directory Properties: stable/12/ (props changed) Modified: stable/12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h ============================================================================== --- stable/12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h Wed Apr 8 01:12:54 2020 (r359720) +++ stable/12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h Wed Apr 8 06:06:13 2020 (r359721) @@ -140,6 +140,7 @@ typedef enum zfs_error { EZFS_TOOMANY, /* argument list too long */ EZFS_INITIALIZING, /* currently initializing */ EZFS_NO_INITIALIZE, /* no active initialize */ + EZFS_WRONG_PARENT, /* invalid parent dataset (e.g ZVOL) */ EZFS_UNKNOWN } zfs_error_t; Modified: stable/12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c ============================================================================== --- stable/12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c Wed Apr 8 01:12:54 2020 (r359720) +++ stable/12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c Wed Apr 8 06:06:13 2020 (r359721) @@ -3622,11 +3622,6 @@ zfs_create(libzfs_handle_t *hdl, const char *path, zfs "no such parent '%s'"), parent); return (zfs_error(hdl, EZFS_NOENT, errbuf)); - case EINVAL: - zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, - "parent '%s' is not a filesystem"), parent); - return (zfs_error(hdl, EZFS_BADTYPE, errbuf)); - case ENOTSUP: zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, "pool must be upgraded to set this " Modified: stable/12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c ============================================================================== --- stable/12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Wed Apr 8 01:12:54 2020 (r359720) +++ stable/12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Wed Apr 8 06:06:13 2020 (r359721) @@ -28,6 +28,7 @@ * Copyright 2015, OmniTI Computer Consulting, Inc. All rights reserved. * Copyright (c) 2014 Integros [integros.com] * Copyright 2016 Igor Kozhukhov + * Copyright (c) 2018, loli10K . All rights reserved. * Copyright (c) 2019 Datto Inc. */ @@ -3375,6 +3376,7 @@ zfs_receive_one(libzfs_handle_t *hdl, int infd, const * - we are resuming a failed receive. */ if (stream_wantsnewfs) { + boolean_t is_volume = drrb->drr_type == DMU_OST_ZVOL; if (!flags->force) { zcmd_free_nvlists(&zc); zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, @@ -3392,6 +3394,25 @@ zfs_receive_one(libzfs_handle_t *hdl, int infd, const zc.zc_name); return (zfs_error(hdl, EZFS_EXISTS, errbuf)); } + if (is_volume && strrchr(zc.zc_name, '/') == NULL) { + zcmd_free_nvlists(&zc); + zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, + "destination '%s' is the root dataset\n" + "cannot overwrite with a ZVOL"), + zc.zc_name); + return (zfs_error(hdl, EZFS_EXISTS, errbuf)); + } + if (is_volume && + ioctl(hdl->libzfs_fd, ZFS_IOC_DATASET_LIST_NEXT, + &zc) == 0) { + zcmd_free_nvlists(&zc); + zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, + "destination has children (eg. %s)\n" + "cannot overwrite with a ZVOL"), + zc.zc_name); + return (zfs_error(hdl, EZFS_WRONG_PARENT, + errbuf)); + } } if ((zhp = zfs_open(hdl, zc.zc_name, @@ -3441,6 +3462,8 @@ zfs_receive_one(libzfs_handle_t *hdl, int infd, const zfs_close(zhp); } else { + zfs_handle_t *zhp; + /* * Destination filesystem does not exist. Therefore we better * be creating a new filesystem (either from a full backup, or @@ -3467,6 +3490,21 @@ zfs_receive_one(libzfs_handle_t *hdl, int infd, const zcmd_free_nvlists(&zc); return (zfs_error(hdl, EZFS_BADRESTORE, errbuf)); } + + /* validate parent */ + zhp = zfs_open(hdl, zc.zc_name, ZFS_TYPE_DATASET); + if (zhp == NULL) { + zcmd_free_nvlists(&zc); + return (zfs_error(hdl, EZFS_BADRESTORE, errbuf)); + } + if (zfs_get_type(zhp) != ZFS_TYPE_FILESYSTEM) { + zcmd_free_nvlists(&zc); + zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, + "parent '%s' is not a filesystem"), zc.zc_name); + zfs_close(zhp); + return (zfs_error(hdl, EZFS_WRONG_PARENT, errbuf)); + } + zfs_close(zhp); newfs = B_TRUE; } Modified: stable/12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c ============================================================================== --- stable/12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c Wed Apr 8 01:12:54 2020 (r359720) +++ stable/12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c Wed Apr 8 06:06:13 2020 (r359721) @@ -261,6 +261,8 @@ libzfs_error_description(libzfs_handle_t *hdl) case EZFS_NO_INITIALIZE: return (dgettext(TEXT_DOMAIN, "there is no active " "initialization")); + case EZFS_WRONG_PARENT: + return (dgettext(TEXT_DOMAIN, "invalid parent dataset")); case EZFS_UNKNOWN: return (dgettext(TEXT_DOMAIN, "unknown error")); default: @@ -526,6 +528,9 @@ zpool_standard_error_fmt(libzfs_handle_t *hdl, int err break; case ZFS_ERR_VDEV_TOO_BIG: zfs_verror(hdl, EZFS_VDEV_TOO_BIG, fmt, ap); + break; + case ZFS_ERR_WRONG_PARENT: + zfs_verror(hdl, EZFS_WRONG_PARENT, fmt, ap); break; default: zfs_error_aux(hdl, strerror(error)); Modified: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c ============================================================================== --- stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c Wed Apr 8 01:12:54 2020 (r359720) +++ stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c Wed Apr 8 06:06:13 2020 (r359721) @@ -28,6 +28,7 @@ * Copyright (c) 2015, STRATO AG, Inc. All rights reserved. * Copyright (c) 2014 Integros [integros.com] * Copyright 2017 Nexenta Systems, Inc. + * Copyright (c) 2018, loli10K . All rights reserved. */ /* Portions Copyright 2010 Robert Milkowski */ @@ -951,6 +952,8 @@ dmu_objset_create_check(void *arg, dmu_tx_t *tx) dmu_objset_create_arg_t *doca = arg; dsl_pool_t *dp = dmu_tx_pool(tx); dsl_dir_t *pdd; + dsl_dataset_t *parentds; + objset_t *parentos; const char *tail; int error; @@ -972,6 +975,30 @@ dmu_objset_create_check(void *arg, dmu_tx_t *tx) } error = dsl_fs_ss_limit_check(pdd, 1, ZFS_PROP_FILESYSTEM_LIMIT, NULL, doca->doca_cred); + if (error != 0) { + dsl_dir_rele(pdd, FTAG); + return (error); + } + + /* can't create below anything but filesystems (eg. no ZVOLs) */ + error = dsl_dataset_hold_obj(pdd->dd_pool, + dsl_dir_phys(pdd)->dd_head_dataset_obj, FTAG, &parentds); + if (error != 0) { + dsl_dir_rele(pdd, FTAG); + return (error); + } + error = dmu_objset_from_ds(parentds, &parentos); + if (error != 0) { + dsl_dataset_rele(parentds, FTAG); + dsl_dir_rele(pdd, FTAG); + return (error); + } + if (dmu_objset_type(parentos) != DMU_OST_ZFS) { + dsl_dataset_rele(parentds, FTAG); + dsl_dir_rele(pdd, FTAG); + return (SET_ERROR(ZFS_ERR_WRONG_PARENT)); + } + dsl_dataset_rele(parentds, FTAG); dsl_dir_rele(pdd, FTAG); return (error); Modified: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c ============================================================================== --- stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c Wed Apr 8 01:12:54 2020 (r359720) +++ stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c Wed Apr 8 06:06:13 2020 (r359721) @@ -27,6 +27,7 @@ * Copyright 2014 HybridCluster. All rights reserved. * Copyright 2016 RackTop Systems. * Copyright (c) 2014 Integros [integros.com] + * Copyright (c) 2018, loli10K . All rights reserved. */ #include @@ -1308,6 +1309,7 @@ recv_begin_check_existing_impl(dmu_recv_begin_arg_t *d uint64_t fromguid) { uint64_t val; + uint64_t children; int error; dsl_pool_t *dp = ds->ds_dir->dd_pool; @@ -1329,6 +1331,15 @@ recv_begin_check_existing_impl(dmu_recv_begin_arg_t *d if (error != ENOENT) return (error == 0 ? SET_ERROR(EEXIST) : error); + /* must not have children if receiving a ZVOL */ + error = zap_count(dp->dp_meta_objset, + dsl_dir_phys(ds->ds_dir)->dd_child_dir_zapobj, &children); + if (error != 0) + return (error); + if (drba->drba_cookie->drc_drrb->drr_type != DMU_OST_ZFS && + children > 0) + return (SET_ERROR(ZFS_ERR_WRONG_PARENT)); + /* * Check snapshot limit before receiving. We'll recheck again at the * end, but might as well abort before receiving if we're already over @@ -1466,6 +1477,7 @@ dmu_recv_begin_check(void *arg, dmu_tx_t *tx) } else if (error == ENOENT) { /* target fs does not exist; must be a full backup or clone */ char buf[ZFS_MAX_DATASET_NAME_LEN]; + objset_t *os; /* * If it's a non-clone incremental, we are missing the @@ -1510,6 +1522,17 @@ dmu_recv_begin_check(void *arg, dmu_tx_t *tx) return (error); } + /* can't recv below anything but filesystems (eg. no ZVOLs) */ + error = dmu_objset_from_ds(ds, &os); + if (error != 0) { + dsl_dataset_rele(ds, FTAG); + return (error); + } + if (dmu_objset_type(os) != DMU_OST_ZFS) { + dsl_dataset_rele(ds, FTAG); + return (SET_ERROR(ZFS_ERR_WRONG_PARENT)); + } + if (drba->drba_origin != NULL) { dsl_dataset_t *origin; error = dsl_dataset_hold(dp, drba->drba_origin, @@ -1531,6 +1554,7 @@ dmu_recv_begin_check(void *arg, dmu_tx_t *tx) } dsl_dataset_rele(origin, FTAG); } + dsl_dataset_rele(ds, FTAG); error = 0; } Modified: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c ============================================================================== --- stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c Wed Apr 8 01:12:54 2020 (r359720) +++ stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c Wed Apr 8 06:06:13 2020 (r359721) @@ -26,6 +26,7 @@ * Copyright (c) 2014 Joyent, Inc. All rights reserved. * Copyright (c) 2014 Spectra Logic Corporation, All rights reserved. * Copyright 2015 Nexenta Systems, Inc. All rights reserved. + * Copyright (c) 2018, loli10K . All rights reserved. */ #include @@ -1852,6 +1853,8 @@ dsl_dir_rename_check(void *arg, dmu_tx_t *tx) dsl_pool_t *dp = dmu_tx_pool(tx); dsl_dir_t *dd, *newparent; dsl_valid_rename_arg_t dvra; + dsl_dataset_t *parentds; + objset_t *parentos; const char *mynewname; int error; @@ -1881,6 +1884,29 @@ dsl_dir_rename_check(void *arg, dmu_tx_t *tx) dsl_dir_rele(dd, FTAG); return (SET_ERROR(EEXIST)); } + + /* can't rename below anything but filesystems (eg. no ZVOLs) */ + error = dsl_dataset_hold_obj(newparent->dd_pool, + dsl_dir_phys(newparent)->dd_head_dataset_obj, FTAG, &parentds); + if (error != 0) { + dsl_dir_rele(newparent, FTAG); + dsl_dir_rele(dd, FTAG); + return (error); + } + error = dmu_objset_from_ds(parentds, &parentos); + if (error != 0) { + dsl_dataset_rele(parentds, FTAG); + dsl_dir_rele(newparent, FTAG); + dsl_dir_rele(dd, FTAG); + return (error); + } + if (dmu_objset_type(parentos) != DMU_OST_ZFS) { + dsl_dataset_rele(parentds, FTAG); + dsl_dir_rele(newparent, FTAG); + dsl_dir_rele(dd, FTAG); + return (error); + } + dsl_dataset_rele(parentds, FTAG); ASSERT3U(strnlen(ddra->ddra_newname, ZFS_MAX_DATASET_NAME_LEN), <, ZFS_MAX_DATASET_NAME_LEN); Modified: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c ============================================================================== --- stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Wed Apr 8 01:12:54 2020 (r359720) +++ stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Wed Apr 8 06:06:13 2020 (r359721) @@ -33,6 +33,7 @@ * Copyright (c) 2014 Integros [integros.com] * Copyright 2016 Toomas Soome * Copyright 2017 RackTop Systems. + * Copyright (c) 2018, loli10K . All rights reserved. * Copyright (c) 2019 Datto Inc. */ @@ -3172,8 +3173,9 @@ zfs_fill_zplprops_impl(objset_t *os, uint64_t zplver, ASSERT(zplprops != NULL); + /* parent dataset must be a filesystem */ if (os != NULL && os->os_phys->os_type != DMU_OST_ZFS) - return (SET_ERROR(EINVAL)); + return (SET_ERROR(ZFS_ERR_WRONG_PARENT)); /* * Pull out creator prop choices, if any. @@ -3249,15 +3251,11 @@ zfs_fill_zplprops(const char *dataset, nvlist_t *creat uint64_t zplver = ZPL_VERSION; objset_t *os = NULL; char parentname[ZFS_MAX_DATASET_NAME_LEN]; - char *cp; spa_t *spa; uint64_t spa_vers; int error; - (void) strlcpy(parentname, dataset, sizeof (parentname)); - cp = strrchr(parentname, '/'); - ASSERT(cp != NULL); - cp[0] = '\0'; + zfs_get_parent(dataset, parentname, sizeof (parentname)); if ((error = spa_open(dataset, &spa, FTAG)) != 0) return (error); Modified: stable/12/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h ============================================================================== --- stable/12/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h Wed Apr 8 01:12:54 2020 (r359720) +++ stable/12/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h Wed Apr 8 06:06:13 2020 (r359721) @@ -1033,7 +1033,8 @@ typedef enum { ZFS_ERR_DISCARDING_CHECKPOINT, ZFS_ERR_NO_CHECKPOINT, ZFS_ERR_DEVRM_IN_PROGRESS, - ZFS_ERR_VDEV_TOO_BIG + ZFS_ERR_VDEV_TOO_BIG, + ZFS_ERR_WRONG_PARENT, } zfs_errno_t; /* From owner-svn-src-all@freebsd.org Wed Apr 8 08:05:04 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 533452AD012; Wed, 8 Apr 2020 08:05:04 +0000 (UTC) (envelope-from freqlabs@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xxdr1rhdz3PqC; Wed, 8 Apr 2020 08:05:04 +0000 (UTC) (envelope-from freqlabs@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 363F81FFDA; Wed, 8 Apr 2020 08:05:04 +0000 (UTC) (envelope-from freqlabs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 038854mD017144; Wed, 8 Apr 2020 08:05:04 GMT (envelope-from freqlabs@FreeBSD.org) Received: (from freqlabs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 038852Hw017135; Wed, 8 Apr 2020 08:05:02 GMT (envelope-from freqlabs@FreeBSD.org) Message-Id: <202004080805.038852Hw017135@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: freqlabs set sender to freqlabs@FreeBSD.org using -f From: Ryan Moeller Date: Wed, 8 Apr 2020 08:05:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r359722 - in stable/11: cddl/contrib/opensolaris/lib/libzfs/common sys/cddl/contrib/opensolaris/uts/common/fs/zfs sys/cddl/contrib/opensolaris/uts/common/sys/fs X-SVN-Group: stable-11 X-SVN-Commit-Author: freqlabs X-SVN-Commit-Paths: in stable/11: cddl/contrib/opensolaris/lib/libzfs/common sys/cddl/contrib/opensolaris/uts/common/fs/zfs sys/cddl/contrib/opensolaris/uts/common/sys/fs X-SVN-Commit-Revision: 359722 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Apr 2020 08:05:04 -0000 Author: freqlabs Date: Wed Apr 8 08:05:02 2020 New Revision: 359722 URL: https://svnweb.freebsd.org/changeset/base/359722 Log: MFC r359303 MFOpenZFS: ZVOLs should not be allowed to have children zfs create, receive and rename can bypass this hierarchy rule. Update both userland and kernel module to prevent this issue and use pyzfs unit tests to exercise the ioctls directly. Note: this commit slightly changes zfs_ioc_create() ABI. This allow to differentiate a generic error (EINVAL) from the specific case where we tried to create a dataset below a ZVOL (ZFS_ERR_WRONG_PARENT). Reviewed-by: Paul Dagnelie Reviewed-by: Matt Ahrens Reviewed-by: Brian Behlendorf Reviewed-by: Tom Caputi Signed-off-by: loli10K Approved by: mav (mentor) openzfs/zfs@d8d418ff0cc90776182534bce10b01e9487b63e4 Modified: stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c stable/11/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h Directory Properties: stable/11/ (props changed) Modified: stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h ============================================================================== --- stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h Wed Apr 8 06:06:13 2020 (r359721) +++ stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h Wed Apr 8 08:05:02 2020 (r359722) @@ -140,6 +140,7 @@ typedef enum zfs_error { EZFS_TOOMANY, /* argument list too long */ EZFS_INITIALIZING, /* currently initializing */ EZFS_NO_INITIALIZE, /* no active initialize */ + EZFS_WRONG_PARENT, /* invalid parent dataset (e.g ZVOL) */ EZFS_UNKNOWN } zfs_error_t; Modified: stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c ============================================================================== --- stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c Wed Apr 8 06:06:13 2020 (r359721) +++ stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c Wed Apr 8 08:05:02 2020 (r359722) @@ -3616,11 +3616,6 @@ zfs_create(libzfs_handle_t *hdl, const char *path, zfs "no such parent '%s'"), parent); return (zfs_error(hdl, EZFS_NOENT, errbuf)); - case EINVAL: - zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, - "parent '%s' is not a filesystem"), parent); - return (zfs_error(hdl, EZFS_BADTYPE, errbuf)); - case ENOTSUP: zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, "pool must be upgraded to set this " Modified: stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c ============================================================================== --- stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Wed Apr 8 06:06:13 2020 (r359721) +++ stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Wed Apr 8 08:05:02 2020 (r359722) @@ -28,6 +28,8 @@ * Copyright 2015, OmniTI Computer Consulting, Inc. All rights reserved. * Copyright (c) 2014 Integros [integros.com] * Copyright 2016 Igor Kozhukhov + * Copyright (c) 2018, loli10K . All rights reserved. + * Copyright (c) 2019 Datto Inc. */ #include @@ -3356,6 +3358,7 @@ zfs_receive_one(libzfs_handle_t *hdl, int infd, const * - we are resuming a failed receive. */ if (stream_wantsnewfs) { + boolean_t is_volume = drrb->drr_type == DMU_OST_ZVOL; if (!flags->force) { zcmd_free_nvlists(&zc); zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, @@ -3373,6 +3376,25 @@ zfs_receive_one(libzfs_handle_t *hdl, int infd, const zc.zc_name); return (zfs_error(hdl, EZFS_EXISTS, errbuf)); } + if (is_volume && strrchr(zc.zc_name, '/') == NULL) { + zcmd_free_nvlists(&zc); + zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, + "destination '%s' is the root dataset\n" + "cannot overwrite with a ZVOL"), + zc.zc_name); + return (zfs_error(hdl, EZFS_EXISTS, errbuf)); + } + if (is_volume && + ioctl(hdl->libzfs_fd, ZFS_IOC_DATASET_LIST_NEXT, + &zc) == 0) { + zcmd_free_nvlists(&zc); + zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, + "destination has children (eg. %s)\n" + "cannot overwrite with a ZVOL"), + zc.zc_name); + return (zfs_error(hdl, EZFS_WRONG_PARENT, + errbuf)); + } } if ((zhp = zfs_open(hdl, zc.zc_name, @@ -3422,6 +3444,8 @@ zfs_receive_one(libzfs_handle_t *hdl, int infd, const zfs_close(zhp); } else { + zfs_handle_t *zhp; + /* * Destination filesystem does not exist. Therefore we better * be creating a new filesystem (either from a full backup, or @@ -3448,6 +3472,21 @@ zfs_receive_one(libzfs_handle_t *hdl, int infd, const zcmd_free_nvlists(&zc); return (zfs_error(hdl, EZFS_BADRESTORE, errbuf)); } + + /* validate parent */ + zhp = zfs_open(hdl, zc.zc_name, ZFS_TYPE_DATASET); + if (zhp == NULL) { + zcmd_free_nvlists(&zc); + return (zfs_error(hdl, EZFS_BADRESTORE, errbuf)); + } + if (zfs_get_type(zhp) != ZFS_TYPE_FILESYSTEM) { + zcmd_free_nvlists(&zc); + zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, + "parent '%s' is not a filesystem"), zc.zc_name); + zfs_close(zhp); + return (zfs_error(hdl, EZFS_WRONG_PARENT, errbuf)); + } + zfs_close(zhp); newfs = B_TRUE; } Modified: stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c ============================================================================== --- stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c Wed Apr 8 06:06:13 2020 (r359721) +++ stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c Wed Apr 8 08:05:02 2020 (r359722) @@ -261,6 +261,8 @@ libzfs_error_description(libzfs_handle_t *hdl) case EZFS_NO_INITIALIZE: return (dgettext(TEXT_DOMAIN, "there is no active " "initialization")); + case EZFS_WRONG_PARENT: + return (dgettext(TEXT_DOMAIN, "invalid parent dataset")); case EZFS_UNKNOWN: return (dgettext(TEXT_DOMAIN, "unknown error")); default: @@ -526,6 +528,9 @@ zpool_standard_error_fmt(libzfs_handle_t *hdl, int err break; case ZFS_ERR_VDEV_TOO_BIG: zfs_verror(hdl, EZFS_VDEV_TOO_BIG, fmt, ap); + break; + case ZFS_ERR_WRONG_PARENT: + zfs_verror(hdl, EZFS_WRONG_PARENT, fmt, ap); break; default: zfs_error_aux(hdl, strerror(error)); Modified: stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c ============================================================================== --- stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c Wed Apr 8 06:06:13 2020 (r359721) +++ stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c Wed Apr 8 08:05:02 2020 (r359722) @@ -28,6 +28,7 @@ * Copyright (c) 2015, STRATO AG, Inc. All rights reserved. * Copyright (c) 2014 Integros [integros.com] * Copyright 2017 Nexenta Systems, Inc. + * Copyright (c) 2018, loli10K . All rights reserved. */ /* Portions Copyright 2010 Robert Milkowski */ @@ -905,6 +906,8 @@ dmu_objset_create_check(void *arg, dmu_tx_t *tx) dmu_objset_create_arg_t *doca = arg; dsl_pool_t *dp = dmu_tx_pool(tx); dsl_dir_t *pdd; + dsl_dataset_t *parentds; + objset_t *parentos; const char *tail; int error; @@ -926,6 +929,30 @@ dmu_objset_create_check(void *arg, dmu_tx_t *tx) } error = dsl_fs_ss_limit_check(pdd, 1, ZFS_PROP_FILESYSTEM_LIMIT, NULL, doca->doca_cred); + if (error != 0) { + dsl_dir_rele(pdd, FTAG); + return (error); + } + + /* can't create below anything but filesystems (eg. no ZVOLs) */ + error = dsl_dataset_hold_obj(pdd->dd_pool, + dsl_dir_phys(pdd)->dd_head_dataset_obj, FTAG, &parentds); + if (error != 0) { + dsl_dir_rele(pdd, FTAG); + return (error); + } + error = dmu_objset_from_ds(parentds, &parentos); + if (error != 0) { + dsl_dataset_rele(parentds, FTAG); + dsl_dir_rele(pdd, FTAG); + return (error); + } + if (dmu_objset_type(parentos) != DMU_OST_ZFS) { + dsl_dataset_rele(parentds, FTAG); + dsl_dir_rele(pdd, FTAG); + return (SET_ERROR(ZFS_ERR_WRONG_PARENT)); + } + dsl_dataset_rele(parentds, FTAG); dsl_dir_rele(pdd, FTAG); return (error); Modified: stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c ============================================================================== --- stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c Wed Apr 8 06:06:13 2020 (r359721) +++ stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c Wed Apr 8 08:05:02 2020 (r359722) @@ -27,6 +27,7 @@ * Copyright 2014 HybridCluster. All rights reserved. * Copyright 2016 RackTop Systems. * Copyright (c) 2014 Integros [integros.com] + * Copyright (c) 2018, loli10K . All rights reserved. */ #include @@ -1305,6 +1306,7 @@ recv_begin_check_existing_impl(dmu_recv_begin_arg_t *d uint64_t fromguid) { uint64_t val; + uint64_t children; int error; dsl_pool_t *dp = ds->ds_dir->dd_pool; @@ -1326,6 +1328,15 @@ recv_begin_check_existing_impl(dmu_recv_begin_arg_t *d if (error != ENOENT) return (error == 0 ? SET_ERROR(EEXIST) : error); + /* must not have children if receiving a ZVOL */ + error = zap_count(dp->dp_meta_objset, + dsl_dir_phys(ds->ds_dir)->dd_child_dir_zapobj, &children); + if (error != 0) + return (error); + if (drba->drba_cookie->drc_drrb->drr_type != DMU_OST_ZFS && + children > 0) + return (SET_ERROR(ZFS_ERR_WRONG_PARENT)); + /* * Check snapshot limit before receiving. We'll recheck again at the * end, but might as well abort before receiving if we're already over @@ -1459,6 +1470,7 @@ dmu_recv_begin_check(void *arg, dmu_tx_t *tx) } else if (error == ENOENT) { /* target fs does not exist; must be a full backup or clone */ char buf[ZFS_MAX_DATASET_NAME_LEN]; + objset_t *os; /* * If it's a non-clone incremental, we are missing the @@ -1503,6 +1515,17 @@ dmu_recv_begin_check(void *arg, dmu_tx_t *tx) return (error); } + /* can't recv below anything but filesystems (eg. no ZVOLs) */ + error = dmu_objset_from_ds(ds, &os); + if (error != 0) { + dsl_dataset_rele(ds, FTAG); + return (error); + } + if (dmu_objset_type(os) != DMU_OST_ZFS) { + dsl_dataset_rele(ds, FTAG); + return (SET_ERROR(ZFS_ERR_WRONG_PARENT)); + } + if (drba->drba_origin != NULL) { dsl_dataset_t *origin; error = dsl_dataset_hold(dp, drba->drba_origin, @@ -1524,6 +1547,7 @@ dmu_recv_begin_check(void *arg, dmu_tx_t *tx) } dsl_dataset_rele(origin, FTAG); } + dsl_dataset_rele(ds, FTAG); error = 0; } Modified: stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c ============================================================================== --- stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c Wed Apr 8 06:06:13 2020 (r359721) +++ stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c Wed Apr 8 08:05:02 2020 (r359722) @@ -26,6 +26,7 @@ * Copyright (c) 2014 Joyent, Inc. All rights reserved. * Copyright (c) 2014 Spectra Logic Corporation, All rights reserved. * Copyright 2015 Nexenta Systems, Inc. All rights reserved. + * Copyright (c) 2018, loli10K . All rights reserved. */ #include @@ -1852,6 +1853,8 @@ dsl_dir_rename_check(void *arg, dmu_tx_t *tx) dsl_pool_t *dp = dmu_tx_pool(tx); dsl_dir_t *dd, *newparent; dsl_valid_rename_arg_t dvra; + dsl_dataset_t *parentds; + objset_t *parentos; const char *mynewname; int error; @@ -1881,6 +1884,29 @@ dsl_dir_rename_check(void *arg, dmu_tx_t *tx) dsl_dir_rele(dd, FTAG); return (SET_ERROR(EEXIST)); } + + /* can't rename below anything but filesystems (eg. no ZVOLs) */ + error = dsl_dataset_hold_obj(newparent->dd_pool, + dsl_dir_phys(newparent)->dd_head_dataset_obj, FTAG, &parentds); + if (error != 0) { + dsl_dir_rele(newparent, FTAG); + dsl_dir_rele(dd, FTAG); + return (error); + } + error = dmu_objset_from_ds(parentds, &parentos); + if (error != 0) { + dsl_dataset_rele(parentds, FTAG); + dsl_dir_rele(newparent, FTAG); + dsl_dir_rele(dd, FTAG); + return (error); + } + if (dmu_objset_type(parentos) != DMU_OST_ZFS) { + dsl_dataset_rele(parentds, FTAG); + dsl_dir_rele(newparent, FTAG); + dsl_dir_rele(dd, FTAG); + return (error); + } + dsl_dataset_rele(parentds, FTAG); ASSERT3U(strnlen(ddra->ddra_newname, ZFS_MAX_DATASET_NAME_LEN), <, ZFS_MAX_DATASET_NAME_LEN); Modified: stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c ============================================================================== --- stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Wed Apr 8 06:06:13 2020 (r359721) +++ stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Wed Apr 8 08:05:02 2020 (r359722) @@ -33,8 +33,8 @@ * Copyright (c) 2014 Integros [integros.com] * Copyright 2016 Toomas Soome * Copyright 2017 RackTop Systems. - * Copyright (c) 2017 Datto Inc. - * Copyright 2016 Toomas Soome + * Copyright (c) 2018, loli10K . All rights reserved. + * Copyright (c) 2019 Datto Inc. */ /* @@ -3131,8 +3131,9 @@ zfs_fill_zplprops_impl(objset_t *os, uint64_t zplver, ASSERT(zplprops != NULL); + /* parent dataset must be a filesystem */ if (os != NULL && os->os_phys->os_type != DMU_OST_ZFS) - return (SET_ERROR(EINVAL)); + return (SET_ERROR(ZFS_ERR_WRONG_PARENT)); /* * Pull out creator prop choices, if any. @@ -3208,15 +3209,11 @@ zfs_fill_zplprops(const char *dataset, nvlist_t *creat uint64_t zplver = ZPL_VERSION; objset_t *os = NULL; char parentname[ZFS_MAX_DATASET_NAME_LEN]; - char *cp; spa_t *spa; uint64_t spa_vers; int error; - (void) strlcpy(parentname, dataset, sizeof (parentname)); - cp = strrchr(parentname, '/'); - ASSERT(cp != NULL); - cp[0] = '\0'; + zfs_get_parent(dataset, parentname, sizeof (parentname)); if ((error = spa_open(dataset, &spa, FTAG)) != 0) return (error); Modified: stable/11/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h ============================================================================== --- stable/11/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h Wed Apr 8 06:06:13 2020 (r359721) +++ stable/11/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h Wed Apr 8 08:05:02 2020 (r359722) @@ -1020,7 +1020,8 @@ typedef enum { ZFS_ERR_DISCARDING_CHECKPOINT, ZFS_ERR_NO_CHECKPOINT, ZFS_ERR_DEVRM_IN_PROGRESS, - ZFS_ERR_VDEV_TOO_BIG + ZFS_ERR_VDEV_TOO_BIG, + ZFS_ERR_WRONG_PARENT, } zfs_errno_t; /* From owner-svn-src-all@freebsd.org Wed Apr 8 08:53:32 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 625DD2ADAD0; Wed, 8 Apr 2020 08:53:32 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xyjm1pNdz3wwX; Wed, 8 Apr 2020 08:53:32 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 392242099A; Wed, 8 Apr 2020 08:53:32 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0388rWOf047356; Wed, 8 Apr 2020 08:53:32 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0388rVt9047354; Wed, 8 Apr 2020 08:53:31 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202004080853.0388rVt9047354@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Wed, 8 Apr 2020 08:53:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359723 - head/sys/dev/mlx5/mlx5_en X-SVN-Group: head X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: head/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 359723 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Apr 2020 08:53:32 -0000 Author: hselasky Date: Wed Apr 8 08:53:31 2020 New Revision: 359723 URL: https://svnweb.freebsd.org/changeset/base/359723 Log: Remove obsolete bufring stats in mlx5en(4). Leftover from when DRBR was removed. MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/dev/mlx5/mlx5_en/en.h head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Modified: head/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- head/sys/dev/mlx5/mlx5_en/en.h Wed Apr 8 08:05:02 2020 (r359722) +++ head/sys/dev/mlx5/mlx5_en/en.h Wed Apr 8 08:53:31 2020 (r359723) @@ -827,7 +827,6 @@ struct mlx5e_sq { /* pointers to per packet info: write@xmit, read@completion */ struct mlx5e_sq_mbuf *mbuf; - struct buf_ring *br; /* read only */ struct mlx5_wq_cyc wq; Modified: head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Wed Apr 8 08:05:02 2020 (r359722) +++ head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Wed Apr 8 08:53:31 2020 (r359723) @@ -852,7 +852,6 @@ mlx5e_update_stats_locked(struct mlx5e_priv *priv) struct mlx5_core_dev *mdev = priv->mdev; struct mlx5e_vport_stats *s = &priv->stats.vport; struct mlx5e_sq_stats *sq_stats; - struct buf_ring *sq_br; #if (__FreeBSD_version < 1100000) struct ifnet *ifp = priv->ifp; #endif @@ -902,13 +901,10 @@ mlx5e_update_stats_locked(struct mlx5e_priv *priv) for (j = 0; j < priv->num_tc; j++) { sq_stats = &pch->sq[j].stats; - sq_br = pch->sq[j].br; tso_packets += sq_stats->tso_packets; tso_bytes += sq_stats->tso_bytes; tx_queue_dropped += sq_stats->dropped; - if (sq_br != NULL) - tx_queue_dropped += sq_br->br_drops; tx_defragged += sq_stats->defragged; tx_offload_none += sq_stats->csum_offload_none; } From owner-svn-src-all@freebsd.org Wed Apr 8 08:56:28 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7AE552ADC97; Wed, 8 Apr 2020 08:56:28 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48xyn81c12z3x8c; Wed, 8 Apr 2020 08:56:28 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3273B2099D; Wed, 8 Apr 2020 08:56:28 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0388uSv5047612; Wed, 8 Apr 2020 08:56:28 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0388uSfk047611; Wed, 8 Apr 2020 08:56:28 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202004080856.0388uSfk047611@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Wed, 8 Apr 2020 08:56:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359724 - head/sys/dev/mlx5/mlx5_en X-SVN-Group: head X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: head/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 359724 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Apr 2020 08:56:28 -0000 Author: hselasky Date: Wed Apr 8 08:56:27 2020 New Revision: 359724 URL: https://svnweb.freebsd.org/changeset/base/359724 Log: Account out of buffer as dropped packets in mlx5en(4). MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Modified: head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Wed Apr 8 08:53:31 2020 (r359723) +++ head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Wed Apr 8 08:56:27 2020 (r359724) @@ -905,6 +905,7 @@ mlx5e_update_stats_locked(struct mlx5e_priv *priv) tso_packets += sq_stats->tso_packets; tso_bytes += sq_stats->tso_bytes; tx_queue_dropped += sq_stats->dropped; + tx_queue_dropped += sq_stats->enobuf; tx_defragged += sq_stats->defragged; tx_offload_none += sq_stats->csum_offload_none; } From owner-svn-src-all@freebsd.org Wed Apr 8 16:07:57 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E82BA2B5E1C; Wed, 8 Apr 2020 16:07:57 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48y8M15yJGz4LDd; Wed, 8 Apr 2020 16:07:57 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C792E25D31; Wed, 8 Apr 2020 16:07:57 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 038G7voV011988; Wed, 8 Apr 2020 16:07:57 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 038G7v6F011987; Wed, 8 Apr 2020 16:07:57 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202004081607.038G7v6F011987@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Wed, 8 Apr 2020 16:07:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359726 - head/sys/compat/linuxkpi/common/include/linux X-SVN-Group: head X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: head/sys/compat/linuxkpi/common/include/linux X-SVN-Commit-Revision: 359726 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Apr 2020 16:07:58 -0000 Author: hselasky Date: Wed Apr 8 16:07:57 2020 New Revision: 359726 URL: https://svnweb.freebsd.org/changeset/base/359726 Log: Some fixes for SRCU in the LinuxKPI. - Make sure to use READ_ONCE() when deferring variables. - Remove superfluous zero initializer. MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/compat/linuxkpi/common/include/linux/srcu.h Modified: head/sys/compat/linuxkpi/common/include/linux/srcu.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/srcu.h Wed Apr 8 14:11:54 2020 (r359725) +++ head/sys/compat/linuxkpi/common/include/linux/srcu.h Wed Apr 8 16:07:57 2020 (r359726) @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2015-2017 Mellanox Technologies, Ltd. + * Copyright (c) 2015-2020 Mellanox Technologies, Ltd. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -29,13 +29,16 @@ #ifndef _LINUX_SRCU_H_ #define _LINUX_SRCU_H_ +#include + struct srcu_struct { }; -#define srcu_dereference(ptr,srcu) ((__typeof(*(ptr)) *)(ptr)) +#define srcu_dereference(p, srcu) \ + ((__typeof(*(p)) *)READ_ONCE(p)) #define DEFINE_STATIC_SRCU(name) \ - static struct srcu_struct name = {} + static struct srcu_struct name /* prototypes */ From owner-svn-src-all@freebsd.org Wed Apr 8 17:09:46 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E15C42B72A3; Wed, 8 Apr 2020 17:09:46 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48y9kL5cJ2z4Q2x; Wed, 8 Apr 2020 17:09:46 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B77ED2688A; Wed, 8 Apr 2020 17:09:46 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 038H9kk7050313; Wed, 8 Apr 2020 17:09:46 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 038H9kRp050310; Wed, 8 Apr 2020 17:09:46 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202004081709.038H9kRp050310@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Wed, 8 Apr 2020 17:09:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359727 - in head/sys: compat/linuxkpi/common/include/linux compat/linuxkpi/common/src sys X-SVN-Group: head X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in head/sys: compat/linuxkpi/common/include/linux compat/linuxkpi/common/src sys X-SVN-Commit-Revision: 359727 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Apr 2020 17:09:46 -0000 Author: hselasky Date: Wed Apr 8 17:09:45 2020 New Revision: 359727 URL: https://svnweb.freebsd.org/changeset/base/359727 Log: Clone the RCU interface into a sleepable and a non-sleepable part in the LinuxKPI. This allows synchronize RCU to be used inside a SRCU read section. No functional change intended. Bump the __FreeBSD_version to force recompilation of external kernel modules. PR: 242272 MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/compat/linuxkpi/common/include/linux/rcupdate.h head/sys/compat/linuxkpi/common/src/linux_rcu.c head/sys/sys/param.h Modified: head/sys/compat/linuxkpi/common/include/linux/rcupdate.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/rcupdate.h Wed Apr 8 16:07:57 2020 (r359726) +++ head/sys/compat/linuxkpi/common/include/linux/rcupdate.h Wed Apr 8 17:09:45 2020 (r359727) @@ -35,6 +35,11 @@ #define LINUX_KFREE_RCU_OFFSET_MAX 4096 /* exclusive */ +/* BSD specific defines */ +#define RCU_TYPE_REGULAR 0 +#define RCU_TYPE_SLEEPABLE 1 +#define RCU_TYPE_MAX 2 + #define RCU_INITIALIZER(v) \ ((__typeof(*(v)) *)(v)) @@ -43,27 +48,27 @@ } while (0) #define call_rcu(ptr, func) do { \ - linux_call_rcu(ptr, func); \ + linux_call_rcu(RCU_TYPE_REGULAR, ptr, func); \ } while (0) #define rcu_barrier(void) do { \ - linux_rcu_barrier(); \ + linux_rcu_barrier(RCU_TYPE_REGULAR); \ } while (0) #define rcu_read_lock(void) do { \ - linux_rcu_read_lock(); \ + linux_rcu_read_lock(RCU_TYPE_REGULAR); \ } while (0) #define rcu_read_unlock(void) do { \ - linux_rcu_read_unlock(); \ + linux_rcu_read_unlock(RCU_TYPE_REGULAR);\ } while (0) #define synchronize_rcu(void) do { \ - linux_synchronize_rcu(); \ + linux_synchronize_rcu(RCU_TYPE_REGULAR); \ } while (0) #define synchronize_rcu_expedited(void) do { \ - linux_synchronize_rcu(); \ + linux_synchronize_rcu(RCU_TYPE_REGULAR); \ } while (0) #define kfree_rcu(ptr, rcu_head) do { \ @@ -94,11 +99,11 @@ /* prototypes */ -extern void linux_call_rcu(struct rcu_head *ptr, rcu_callback_t func); -extern void linux_rcu_barrier(void); -extern void linux_rcu_read_lock(void); -extern void linux_rcu_read_unlock(void); -extern void linux_synchronize_rcu(void); +extern void linux_call_rcu(unsigned type, struct rcu_head *ptr, rcu_callback_t func); +extern void linux_rcu_barrier(unsigned type); +extern void linux_rcu_read_lock(unsigned type); +extern void linux_rcu_read_unlock(unsigned type); +extern void linux_synchronize_rcu(unsigned type); /* Empty implementation for !DEBUG */ #define init_rcu_head(...) Modified: head/sys/compat/linuxkpi/common/src/linux_rcu.c ============================================================================== --- head/sys/compat/linuxkpi/common/src/linux_rcu.c Wed Apr 8 16:07:57 2020 (r359726) +++ head/sys/compat/linuxkpi/common/src/linux_rcu.c Wed Apr 8 17:09:45 2020 (r359727) @@ -1,6 +1,6 @@ /*- * Copyright (c) 2016 Matthew Macy (mmacy@mattmacy.io) - * Copyright (c) 2017 Hans Petter Selasky (hselasky@freebsd.org) + * Copyright (c) 2017-2020 Hans Petter Selasky (hselasky@freebsd.org) * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -90,9 +90,9 @@ CTASSERT(sizeof(struct rcu_head) == sizeof(struct call */ CTASSERT(offsetof(struct linux_epoch_record, epoch_record) == 0); -static ck_epoch_t linux_epoch; -static struct linux_epoch_head linux_epoch_head; -DPCPU_DEFINE_STATIC(struct linux_epoch_record, linux_epoch_record); +static ck_epoch_t linux_epoch[RCU_TYPE_MAX]; +static struct linux_epoch_head linux_epoch_head[RCU_TYPE_MAX]; +DPCPU_DEFINE_STATIC(struct linux_epoch_record, linux_epoch_record[RCU_TYPE_MAX]); static void linux_rcu_cleaner_func(void *, int); @@ -101,23 +101,27 @@ linux_rcu_runtime_init(void *arg __unused) { struct linux_epoch_head *head; int i; + int j; - ck_epoch_init(&linux_epoch); + for (j = 0; j != RCU_TYPE_MAX; j++) { + ck_epoch_init(&linux_epoch[j]); - head = &linux_epoch_head; + head = &linux_epoch_head[j]; - mtx_init(&head->lock, "LRCU-HEAD", NULL, MTX_DEF); - TASK_INIT(&head->task, 0, linux_rcu_cleaner_func, NULL); - STAILQ_INIT(&head->cb_head); + mtx_init(&head->lock, "LRCU-HEAD", NULL, MTX_DEF); + TASK_INIT(&head->task, 0, linux_rcu_cleaner_func, head); + STAILQ_INIT(&head->cb_head); - CPU_FOREACH(i) { - struct linux_epoch_record *record; + CPU_FOREACH(i) { + struct linux_epoch_record *record; - record = &DPCPU_ID_GET(i, linux_epoch_record); + record = &DPCPU_ID_GET(i, linux_epoch_record[j]); - record->cpuid = i; - ck_epoch_register(&linux_epoch, &record->epoch_record, NULL); - TAILQ_INIT(&record->ts_head); + record->cpuid = i; + ck_epoch_register(&linux_epoch[j], + &record->epoch_record, NULL); + TAILQ_INIT(&record->ts_head); + } } } SYSINIT(linux_rcu_runtime, SI_SUB_CPU, SI_ORDER_ANY, linux_rcu_runtime_init, NULL); @@ -126,24 +130,27 @@ static void linux_rcu_runtime_uninit(void *arg __unused) { struct linux_epoch_head *head; + int j; - head = &linux_epoch_head; + for (j = 0; j != RCU_TYPE_MAX; j++) { + head = &linux_epoch_head[j]; - /* destroy head lock */ - mtx_destroy(&head->lock); + mtx_destroy(&head->lock); + } } SYSUNINIT(linux_rcu_runtime, SI_SUB_LOCK, SI_ORDER_SECOND, linux_rcu_runtime_uninit, NULL); static void -linux_rcu_cleaner_func(void *context __unused, int pending __unused) +linux_rcu_cleaner_func(void *context, int pending __unused) { struct linux_epoch_head *head; struct callback_head *rcu; STAILQ_HEAD(, callback_head) tmp_head; + uintptr_t offset; linux_set_current(curthread); - head = &linux_epoch_head; + head = context; /* move current callbacks into own queue */ mtx_lock(&head->lock); @@ -152,11 +159,10 @@ linux_rcu_cleaner_func(void *context __unused, int pen mtx_unlock(&head->lock); /* synchronize */ - linux_synchronize_rcu(); + linux_synchronize_rcu(head - linux_epoch_head); /* dispatch all callbacks, if any */ while ((rcu = STAILQ_FIRST(&tmp_head)) != NULL) { - uintptr_t offset; STAILQ_REMOVE_HEAD(&tmp_head, entry); @@ -170,11 +176,13 @@ linux_rcu_cleaner_func(void *context __unused, int pen } void -linux_rcu_read_lock(void) +linux_rcu_read_lock(unsigned type) { struct linux_epoch_record *record; struct task_struct *ts; + MPASS(type < RCU_TYPE_MAX); + if (RCU_SKIP()) return; @@ -184,7 +192,7 @@ linux_rcu_read_lock(void) */ sched_pin(); - record = &DPCPU_GET(linux_epoch_record); + record = &DPCPU_GET(linux_epoch_record[type]); ts = current; /* @@ -200,15 +208,17 @@ linux_rcu_read_lock(void) } void -linux_rcu_read_unlock(void) +linux_rcu_read_unlock(unsigned type) { struct linux_epoch_record *record; struct task_struct *ts; + MPASS(type < RCU_TYPE_MAX); + if (RCU_SKIP()) return; - record = &DPCPU_GET(linux_epoch_record); + record = &DPCPU_GET(linux_epoch_record[type]); ts = current; /* @@ -283,7 +293,7 @@ linux_synchronize_rcu_cb(ck_epoch_t *epoch __unused, c } void -linux_synchronize_rcu(void) +linux_synchronize_rcu(unsigned type) { struct thread *td; int was_bound; @@ -291,6 +301,8 @@ linux_synchronize_rcu(void) int old_pinned; u_char old_prio; + MPASS(type < RCU_TYPE_MAX); + if (RCU_SKIP()) return; @@ -314,7 +326,7 @@ linux_synchronize_rcu(void) td->td_pinned = 0; sched_bind(td, old_cpu); - ck_epoch_synchronize_wait(&linux_epoch, + ck_epoch_synchronize_wait(&linux_epoch[type], &linux_synchronize_rcu_cb, NULL); /* restore CPU binding, if any */ @@ -337,24 +349,31 @@ linux_synchronize_rcu(void) } void -linux_rcu_barrier(void) +linux_rcu_barrier(unsigned type) { struct linux_epoch_head *head; - linux_synchronize_rcu(); + MPASS(type < RCU_TYPE_MAX); - head = &linux_epoch_head; + linux_synchronize_rcu(type); + head = &linux_epoch_head[type]; + /* wait for callbacks to complete */ taskqueue_drain(taskqueue_fast, &head->task); } void -linux_call_rcu(struct rcu_head *context, rcu_callback_t func) +linux_call_rcu(unsigned type, struct rcu_head *context, rcu_callback_t func) { - struct callback_head *rcu = (struct callback_head *)context; - struct linux_epoch_head *head = &linux_epoch_head; + struct callback_head *rcu; + struct linux_epoch_head *head; + MPASS(type < RCU_TYPE_MAX); + + rcu = (struct callback_head *)context; + head = &linux_epoch_head[type]; + mtx_lock(&head->lock); rcu->func = func; STAILQ_INSERT_TAIL(&head->cb_head, rcu, entry); @@ -376,24 +395,24 @@ cleanup_srcu_struct(struct srcu_struct *srcu) int srcu_read_lock(struct srcu_struct *srcu) { - linux_rcu_read_lock(); + linux_rcu_read_lock(RCU_TYPE_SLEEPABLE); return (0); } void srcu_read_unlock(struct srcu_struct *srcu, int key __unused) { - linux_rcu_read_unlock(); + linux_rcu_read_unlock(RCU_TYPE_SLEEPABLE); } void synchronize_srcu(struct srcu_struct *srcu) { - linux_synchronize_rcu(); + linux_synchronize_rcu(RCU_TYPE_SLEEPABLE); } void srcu_barrier(struct srcu_struct *srcu) { - linux_rcu_barrier(); + linux_rcu_barrier(RCU_TYPE_SLEEPABLE); } Modified: head/sys/sys/param.h ============================================================================== --- head/sys/sys/param.h Wed Apr 8 16:07:57 2020 (r359726) +++ head/sys/sys/param.h Wed Apr 8 17:09:45 2020 (r359727) @@ -60,7 +60,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1300088 /* Master, propagated to newvers */ +#define __FreeBSD_version 1300089 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From owner-svn-src-all@freebsd.org Wed Apr 8 17:41:28 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E05AA2B77F3; Wed, 8 Apr 2020 17:41:28 +0000 (UTC) (envelope-from jrm@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48yBQw5Mf0z4RCQ; Wed, 8 Apr 2020 17:41:28 +0000 (UTC) (envelope-from jrm@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B36D426E88; Wed, 8 Apr 2020 17:41:28 +0000 (UTC) (envelope-from jrm@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 038HfSYP070143; Wed, 8 Apr 2020 17:41:28 GMT (envelope-from jrm@FreeBSD.org) Received: (from jrm@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 038HfSWG070142; Wed, 8 Apr 2020 17:41:28 GMT (envelope-from jrm@FreeBSD.org) Message-Id: <202004081741.038HfSWG070142@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jrm set sender to jrm@FreeBSD.org using -f From: Joseph Mingrone Date: Wed, 8 Apr 2020 17:41:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-svnadmin@freebsd.org Subject: svn commit: r359728 - svnadmin/conf X-SVN-Group: svnadmin X-SVN-Commit-Author: jrm X-SVN-Commit-Paths: svnadmin/conf X-SVN-Commit-Revision: 359728 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Apr 2020 17:41:28 -0000 Author: jrm (ports committer) Date: Wed Apr 8 17:41:28 2020 New Revision: 359728 URL: https://svnweb.freebsd.org/changeset/base/359728 Log: Sadly, retire Bruce D. Evans' commit bit after his death. In memory of Bruce D. Evans: https://www.freebsd.org/doc/en_US.ISO8859-1/articles/contributors/contrib-develinmemoriam.html Approved by: core (implicit) Modified: svnadmin/conf/access Modified: svnadmin/conf/access ============================================================================== --- svnadmin/conf/access Wed Apr 8 17:09:45 2020 (r359727) +++ svnadmin/conf/access Wed Apr 8 17:41:28 2020 (r359728) @@ -37,7 +37,6 @@ avg avos bapt bcran -bde bdragon bdrewery br From owner-svn-src-all@freebsd.org Wed Apr 8 17:55:46 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6034C2B7B43; Wed, 8 Apr 2020 17:55:46 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48yBlQ1hC6z4Rv4; Wed, 8 Apr 2020 17:55:46 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 30B002720F; Wed, 8 Apr 2020 17:55:46 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 038Htj65080419; Wed, 8 Apr 2020 17:55:45 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 038Htjlu080418; Wed, 8 Apr 2020 17:55:45 GMT (envelope-from imp@FreeBSD.org) Message-Id: <202004081755.038Htjlu080418@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Wed, 8 Apr 2020 17:55:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359729 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 359729 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Apr 2020 17:55:46 -0000 Author: imp Date: Wed Apr 8 17:55:45 2020 New Revision: 359729 URL: https://svnweb.freebsd.org/changeset/base/359729 Log: Fix copyright year and eliminate the obsolete all rights reserved line. Reviewed by: rrs@ Modified: head/sys/netinet/tcp_ratelimit.c head/sys/netinet/tcp_ratelimit.h Modified: head/sys/netinet/tcp_ratelimit.c ============================================================================== --- head/sys/netinet/tcp_ratelimit.c Wed Apr 8 17:41:28 2020 (r359728) +++ head/sys/netinet/tcp_ratelimit.c Wed Apr 8 17:55:45 2020 (r359729) @@ -2,9 +2,8 @@ * * SPDX-License-Identifier: BSD-3-Clause * - * Copyright (c) 2018-2019 + * Copyright (c) 2018-2020 * Netflix Inc. - * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions Modified: head/sys/netinet/tcp_ratelimit.h ============================================================================== --- head/sys/netinet/tcp_ratelimit.h Wed Apr 8 17:41:28 2020 (r359728) +++ head/sys/netinet/tcp_ratelimit.h Wed Apr 8 17:55:45 2020 (r359729) @@ -2,9 +2,8 @@ * * SPDX-License-Identifier: BSD-3-Clause * - * Copyright (c) 2018-2019 + * Copyright (c) 2018-2020 * Netflix Inc. - * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions From owner-svn-src-all@freebsd.org Wed Apr 8 18:28:32 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 676C9278BA5; Wed, 8 Apr 2020 18:28:32 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-pl1-x631.google.com (mail-pl1-x631.google.com [IPv6:2607:f8b0:4864:20::631]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48yCTC1DN1z4V3m; Wed, 8 Apr 2020 18:28:30 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: by mail-pl1-x631.google.com with SMTP id t4so2801678plq.12; Wed, 08 Apr 2020 11:28:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=J4/tz0kv53J6oGl6EElT+9Y7hSUYXd79bMJW+6Wwtvg=; b=YkZ+hI7V8PVwLAdO9oKjitH0CnnRpqU7zP/RN4ZblWzzG6HrpQO2UW7isFKJQP/7Ni C+ZLNzu1vfq+7QOKYEx1wYw53690lhTSORiyQubOLUJvz+Igb18y6l5MKS4+/TQ5Kghs P7YWdxvF5WM5n4bELfRpBsmT1ba0r4qNIHxMNoelzLJ7xPN8xazstIdbpqK84Vej6iZE 7bX11FwZg2+/vWQiYwIWuuiRlzmrdnpKxlkJJzhP8JUydVPJoO8JRWCPif1z+VVvsb44 xoKqfZ9tEcaeWBPob634ciEGUQ4VikaKRSlvDVZWk65nkh1Xi0k2t8if3+CcP9qoTvhu 3kWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=J4/tz0kv53J6oGl6EElT+9Y7hSUYXd79bMJW+6Wwtvg=; b=sbk0jtbc8uGC1c7IC5JTXSnmTPQ+kr2PiKVNhCeQzRsLoipxXA4EU/fVAJIwG5X9Ec sLczRX+8a3V5/PP25AAhMzRJzX5eDkfwHjDP9I/u1KhXJeyBXSTeq6tPPCf6ep/M3kuk /M1sHAKYt5cvi53dbbqoQxj2kJed9dRFKcsYYMsdEP/LWHyZbRW0g7gr7UbUkTL1WCla tV/pMg0/qGGFsnKUX8xbjYzJbcnG+q9gMHah43Bk7IVAg4U9BdZ26hm4vcGsmU0mrM4v tvXEfuVSXWGLjPW18Eh2VWdCZ5/Xb9SAafrzQyeyKMr7eImjG4tZLySBCTtfVoFjGEgG vmwQ== X-Gm-Message-State: AGi0PuZY37NzmD/OR3eFIknYT8cYq4ZWb697TiRBaSJa/gN/Qg+fv/Yq mTdxy2dJC83/mgW11C/JP7nFTuRXF/0= X-Google-Smtp-Source: APiQypJi8VzlhqkOoCZvHqrA7M55AIMLUZHDkkKnVqKgW24zFtyJ+4bGP3QKuXHRuYAjv/3Ut8i2Zg== X-Received: by 2002:a17:902:8305:: with SMTP id bd5mr8024197plb.114.1586370509095; Wed, 08 Apr 2020 11:28:29 -0700 (PDT) Received: from [192.168.20.26] (c-73-19-52-228.hsd1.wa.comcast.net. [73.19.52.228]) by smtp.gmail.com with ESMTPSA id a2sm192845pja.44.2020.04.08.11.28.27 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 08 Apr 2020 11:28:28 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.80.23.2.2\)) Subject: Re: svn commit: r359689 - head/usr.sbin/config From: Enji Cooper In-Reply-To: <202004071414.037EEx5Q057793@repo.freebsd.org> Date: Wed, 8 Apr 2020 11:28:27 -0700 Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <8AAE567D-BEC5-4AF1-B290-D4EA833ED96A@gmail.com> References: <202004071414.037EEx5Q057793@repo.freebsd.org> To: Kyle Evans X-Mailer: Apple Mail (2.3608.80.23.2.2) X-Rspamd-Queue-Id: 48yCTC1DN1z4V3m X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=YkZ+hI7V; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of yaneurabeya@gmail.com designates 2607:f8b0:4864:20::631 as permitted sender) smtp.mailfrom=yaneurabeya@gmail.com X-Spamd-Result: default: False [-2.50 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36]; FREEMAIL_FROM(0.00)[gmail.com]; MV_CASE(0.50)[]; RCVD_COUNT_THREE(0.00)[3]; DKIM_TRACE(0.00)[gmail.com:+]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; RECEIVED_SPAMHAUS_PBL(0.00)[228.52.19.73.khpj7ygk5idzvmvt5x4ziurxhy.zen.dq.spamhaus.net : 127.0.0.10]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; MID_RHS_MATCH_FROM(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com.dwl.dnswl.org : 127.0.5.0]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; IP_SCORE(0.00)[ip: (-8.96), ipnet: 2607:f8b0::/32(-0.33), asn: 15169(-0.43), country: US(-0.05)]; IP_SCORE_FREEMAIL(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[1.3.6.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; RCVD_TLS_ALL(0.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Apr 2020 18:28:32 -0000 > On Apr 7, 2020, at 7:14 AM, Kyle Evans wrote: >=20 > Author: kevans > Date: Tue Apr 7 14:14:59 2020 > New Revision: 359689 > URL: https://svnweb.freebsd.org/changeset/base/359689 >=20 > Log: > config(8): "fix" a couple of buffer overflows >=20 > Recently added/changed lines in various kernel configs have caused = some > buffer overflows that went undetected. These were detected with a = config > built using -fno-common as these line buffers smashed one of our = arrays, > then further triaged with ASAN. >=20 > Double the sizes; this is really not a great fix, but addresses the > immediate need until someone rewrites config. While here, add some = bounds > checking so that we don't need to detect this by random bus errors or = other > weird failures. Good catch! This seems like it deserves a follow up PR in = Bugzilla. Cheers, -Enji= From owner-svn-src-all@freebsd.org Wed Apr 8 18:43:01 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7526027907A; Wed, 8 Apr 2020 18:43:01 +0000 (UTC) (envelope-from oshogbo@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48yCnx2LMYz4Vp2; Wed, 8 Apr 2020 18:43:01 +0000 (UTC) (envelope-from oshogbo@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4B9A427BAF; Wed, 8 Apr 2020 18:43:01 +0000 (UTC) (envelope-from oshogbo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 038Ih1lI011318; Wed, 8 Apr 2020 18:43:01 GMT (envelope-from oshogbo@FreeBSD.org) Received: (from oshogbo@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 038Ih1iF011317; Wed, 8 Apr 2020 18:43:01 GMT (envelope-from oshogbo@FreeBSD.org) Message-Id: <202004081843.038Ih1iF011317@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: oshogbo set sender to oshogbo@FreeBSD.org using -f From: Mariusz Zaborski Date: Wed, 8 Apr 2020 18:43:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359730 - head/usr.bin/logger X-SVN-Group: head X-SVN-Commit-Author: oshogbo X-SVN-Commit-Paths: head/usr.bin/logger X-SVN-Commit-Revision: 359730 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Apr 2020 18:43:01 -0000 Author: oshogbo Date: Wed Apr 8 18:43:00 2020 New Revision: 359730 URL: https://svnweb.freebsd.org/changeset/base/359730 Log: logger: temporarily disable Capsicum when a host is provided We don't have a way to send a UDP package. PR: 245314 Reported by: dch Discussed with: emaste Modified: head/usr.bin/logger/logger.c Modified: head/usr.bin/logger/logger.c ============================================================================== --- head/usr.bin/logger/logger.c Wed Apr 8 17:55:45 2020 (r359729) +++ head/usr.bin/logger/logger.c Wed Apr 8 18:43:00 2020 (r359730) @@ -181,8 +181,10 @@ main(int argc, char *argv[]) err(1, "Unable to contact Casper"); caph_cache_catpages(); caph_cache_tzdata(); - if (caph_enter() < 0) - err(1, "Unable to enter capability mode"); + if (nsock == 0) { + if (caph_enter() < 0) + err(1, "Unable to enter capability mode"); + } capsyslog = cap_service_open(capcas, "system.syslog"); if (capsyslog == NULL) err(1, "Unable to open system.syslog service"); From owner-svn-src-all@freebsd.org Wed Apr 8 20:00:31 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 89FCD27B214; Wed, 8 Apr 2020 20:00:31 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48yFWM35pGz4Zt9; Wed, 8 Apr 2020 20:00:31 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6590A97C; Wed, 8 Apr 2020 20:00:31 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 038K0Vsw054891; Wed, 8 Apr 2020 20:00:31 GMT (envelope-from brueffer@FreeBSD.org) Received: (from brueffer@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 038K0VMq054889; Wed, 8 Apr 2020 20:00:31 GMT (envelope-from brueffer@FreeBSD.org) Message-Id: <202004082000.038K0VMq054889@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brueffer set sender to brueffer@FreeBSD.org using -f From: Christian Brueffer Date: Wed, 8 Apr 2020 20:00:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359731 - head/share/man/man5 X-SVN-Group: head X-SVN-Commit-Author: brueffer X-SVN-Commit-Paths: head/share/man/man5 X-SVN-Commit-Revision: 359731 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Apr 2020 20:00:31 -0000 Author: brueffer Date: Wed Apr 8 20:00:30 2020 New Revision: 359731 URL: https://svnweb.freebsd.org/changeset/base/359731 Log: Add a basic manpage for smbfs(5). Submitted by: Gordon Bergling MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D23905 Added: head/share/man/man5/smbfs.5 (contents, props changed) Modified: head/share/man/man5/Makefile Modified: head/share/man/man5/Makefile ============================================================================== --- head/share/man/man5/Makefile Wed Apr 8 18:43:00 2020 (r359730) +++ head/share/man/man5/Makefile Wed Apr 8 20:00:30 2020 (r359731) @@ -63,6 +63,7 @@ MAN= acct.5 \ resolver.5 \ services.5 \ shells.5 \ + smbfs.5 \ src.conf.5 \ stab.5 \ style.Makefile.5 \ Added: head/share/man/man5/smbfs.5 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/share/man/man5/smbfs.5 Wed Apr 8 20:00:30 2020 (r359731) @@ -0,0 +1,79 @@ +.\" Copyright (c) 2020 Gordon Bergling +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" 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. +.\" 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. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (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$ +.\" +.Dd April 8, 2020 +.Dt SMBFS 5 +.Os +.Sh NAME +.Nm smbfs +.Nd "SMB FS" +.Sh SYNOPSIS +To compile this driver into the kernel, +place the following lines in your +kernel configuration file: +.Bd -ragged -offset indent +.Cd "option NETSMB" +.Ed +.Pp +Alternatively, to load the driver as a +module at boot time, place the following line in +.Xr loader.conf 5 : +.Bd -literal -offset indent +smbfs_load="YES" +.Ed +.Sh DESCRIPTION +The SMB driver is an implementation of the CIFS (Common Internet Filesystem) +network protocol. +.Sh SEE ALSO +.Xr smbutil 1 , +.Xr mount_smbfs 8 +.Sh STANDARDS +.Rs +.%U https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-cifs/ +.%T Common Internet File System (CIFS) Protocol +.%R MS-CIFS +.%D December 2018 +.Re +.Pp +.Rs +.%U https://tools.ietf.org/html/draft-heizer-cifs-v1-spec-00 +.%T Common Internet File System Protocol (CIFS/1.0) +.%D June 13, 1996 +.%A I. Heizer +.%A P. Leach +.%A D. Perry +.Re +.Sh HISTORY +The +.Nm +device driver first appeared in +.Fx 4.4 . +.Sh AUTHORS +The +.Nm +device driver was written by +.An Boris Popov Aq Mt bp@FreeBSD.org . +The manual page was contributed by +.An Gordon Bergling Aq Mt gbergling@gmail.com . From owner-svn-src-all@freebsd.org Wed Apr 8 23:01:47 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 27F1827F53A for ; Wed, 8 Apr 2020 23:01:47 +0000 (UTC) (envelope-from sobomax@sippysoft.com) Received: from mail-vk1-f195.google.com (mail-vk1-f195.google.com [209.85.221.195]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48yKXT75nlz3H5B for ; Wed, 8 Apr 2020 23:01:45 +0000 (UTC) (envelope-from sobomax@sippysoft.com) Received: by mail-vk1-f195.google.com with SMTP id q7so1743057vkb.9 for ; Wed, 08 Apr 2020 16:01:45 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=8nT6NfP0UC89ARQXjPWqYuZnpe3zfAjIyyiYgqwcvxQ=; b=B4QOC/vjeF+xF3mQzMk/7tHUdGURLq08+Dz24VRtcIKpOvYxbIMXjuvK/lHaYzjK/U X6jORrf4+8pwG12b4HVOBtjGNw6dADysYHYHLfNIzE1/6hvEnHoBtPmCBtO7vS5qtqy1 1WyKoBYIceH02fMZi6zqJAF+KMRgNiaFDmXur1rgAbj3ebj36K6R49oM308y5s5mC5QK 65V5vhVr+c283R7Olr4/PqzSH0BpYmd5kMd4mLGhTWrYf8HHoqGFJ+aj67OfvUndRqMv VdUCTBz4/u0dM+2860I1n+PI8yZpNZwJEWBAGDX8I39W1B9aBCt4nQXkMg4b+52ehyPz 4O8Q== X-Gm-Message-State: AGi0PuZV5mJ2mnfnYohnm1JRDq4GcA190kXN2r1L9c0UsON9o/Jp730/ Q0XGaBq7MtcJIcHMHGcJFgc/kqdrsbP+bcOrSYr8LlK4ppw= X-Google-Smtp-Source: APiQypJy/JQW32iF0dM1uKFrxRZsUTUwGM5kFNhC1cpAiJ8djJ7dcjqe9yxOb9wbdGFh3NMMZynwYWgyhRU1LQdokjQ= X-Received: by 2002:a1f:2706:: with SMTP id n6mr7741628vkn.88.1586386904460; Wed, 08 Apr 2020 16:01:44 -0700 (PDT) MIME-Version: 1.0 References: <202004070246.0372kNIx036216@repo.freebsd.org> <202004071037.037Abd5T091937@gndrsh.dnsmgr.net> In-Reply-To: <202004071037.037Abd5T091937@gndrsh.dnsmgr.net> From: Maxim Sobolev Date: Wed, 8 Apr 2020 16:01:33 -0700 Message-ID: Subject: Re: svn commit: r359685 - in head: . etc lib/libc/gen share/mk share/termcap usr.bin/login usr.bin/vgrind usr.sbin/services_mkdb To: "Rodney W. Grimes" Cc: src-committers , svn-src-all , svn-src-head X-Rspamd-Queue-Id: 48yKXT75nlz3H5B X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of sobomax@sippysoft.com designates 209.85.221.195 as permitted sender) smtp.mailfrom=sobomax@sippysoft.com X-Spamd-Result: default: False [-2.16 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17:c]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-all@freebsd.org]; DMARC_NA(0.00)[freebsd.org]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[195.221.85.209.list.dnswl.org : 127.0.5.0]; IP_SCORE(-0.17)[ip: (0.04), ipnet: 209.85.128.0/17(-0.40), asn: 15169(-0.43), country: US(-0.05)]; FORGED_SENDER(0.30)[sobomax@freebsd.org,sobomax@sippysoft.com]; RWL_MAILSPIKE_POSSIBLE(0.00)[195.221.85.209.rep.mailspike.net : 127.0.0.17]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; FROM_NEQ_ENVFROM(0.00)[sobomax@freebsd.org,sobomax@sippysoft.com]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Apr 2020 23:01:47 -0000 On Tue, Apr 7, 2020 at 3:37 AM Rodney W. Grimes wrote: > > Author: sobomax > > Date: Tue Apr 7 02:46:22 2020 > > New Revision: 359685 > > URL: https://svnweb.freebsd.org/changeset/base/359685 > > > > Log: > > Normalize deployment tools usage and definitions by putting into one > place > > instead of sprinkling them out over many disjoint files. This is a > follow-up > > to achieve the same goal in an incomplete rev.348521. > > I have concerns that this factoring out of 5 values that have not changed > in 25 years is a pessimization, it is one more file that make has to > open on each invocation. > Well, luckily enough the cost of opening a file has been exponentially declining over those 25 years, so we are probably many-orders of magnitude faster than we used to be back in 1995. Or so I've heard. :) Having those variables defined in a centralized manner allows us here for example to convert the result of what would be installworld/installkernel/distribution action into a self-extracting archive (optionally signed) with automatically generated script, which does the action in question. As such, we can now build in a completely sandboxed environment with 0 privileges (potentially even on something completely alien like GNU/Linux) and then deploy it to as many systems as we need or use to create VM images / Jails. https://github.com/sobomax/sysmaker/blob/master/makeargs/distribution.sub https://github.com/sobomax/sysmaker/blob/master/makeargs/installkernel.sub https://github.com/sobomax/sysmaker/blob/master/makeargs/installworld.sub I have very few reasons to believe that our needs to be unique in this, I am pretty sure others will find some interesting use for this as well (e.g. signing binaries being installed, etc). -Max From owner-svn-src-all@freebsd.org Thu Apr 9 00:12:33 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EE2B12A8A82; Thu, 9 Apr 2020 00:12:33 +0000 (UTC) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: from gndrsh.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 48yM69486Hz3LNg; Thu, 9 Apr 2020 00:12:33 +0000 (UTC) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: from gndrsh.dnsmgr.net (localhost [127.0.0.1]) by gndrsh.dnsmgr.net (8.13.3/8.13.3) with ESMTP id 0390CVFn002904; Wed, 8 Apr 2020 17:12:31 -0700 (PDT) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: (from freebsd@localhost) by gndrsh.dnsmgr.net (8.13.3/8.13.3/Submit) id 0390CV5H002903; Wed, 8 Apr 2020 17:12:31 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <202004090012.0390CV5H002903@gndrsh.dnsmgr.net> Subject: Re: svn commit: r359685 - in head: . etc lib/libc/gen share/mk share/termcap usr.bin/login usr.bin/vgrind usr.sbin/services_mkdb In-Reply-To: To: Maxim Sobolev Date: Wed, 8 Apr 2020 17:12:31 -0700 (PDT) CC: "Rodney W. Grimes" , src-committers , svn-src-all , svn-src-head Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-Rspamd-Queue-Id: 48yM69486Hz3LNg X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-0.999,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Apr 2020 00:12:34 -0000 > On Tue, Apr 7, 2020 at 3:37 AM Rodney W. Grimes > wrote: > > > > Author: sobomax > > > Date: Tue Apr 7 02:46:22 2020 > > > New Revision: 359685 > > > URL: https://svnweb.freebsd.org/changeset/base/359685 > > > > > > Log: > > > Normalize deployment tools usage and definitions by putting into one > > place > > > instead of sprinkling them out over many disjoint files. This is a > > follow-up > > > to achieve the same goal in an incomplete rev.348521. > > > > I have concerns that this factoring out of 5 values that have not changed > > in 25 years is a pessimization, it is one more file that make has to > > open on each invocation. > > > > Well, luckily enough the cost of opening a file has been exponentially > declining over those 25 years, so we are probably many-orders of magnitude > faster than we used to be back in 1995. Or so I've heard. :) I believe we are pretty much just on par and no more than 1 order of magnitude on time completion of make world. > > Having those variables defined in a centralized manner allows us here for > example to convert the result of what would be > installworld/installkernel/distribution action into a self-extracting > archive (optionally signed) with automatically generated script, which does > the action in question. As such, we can now build in a completely sandboxed > environment with 0 privileges (potentially even on something completely > alien like GNU/Linux) and then deploy it to as many systems as we need or > use to create VM images / Jails. > > https://github.com/sobomax/sysmaker/blob/master/makeargs/distribution.sub > https://github.com/sobomax/sysmaker/blob/master/makeargs/installkernel.sub > https://github.com/sobomax/sysmaker/blob/master/makeargs/installworld.sub I do not see anything in that set of files that requires this change, am I missing something? All of the existing values should of been overridable from the make command line invocation, and it does not mater if they are in 1 file or 50 files. > I have very few reasons to believe that our needs to be unique in this, I > am pretty sure others will find some interesting use for this as well (e.g. > signing binaries being installed, etc). I do not see that your needs require this change. > > -Max -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-all@freebsd.org Thu Apr 9 01:55:39 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 06CAE2AA975; Thu, 9 Apr 2020 01:55:39 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48yPP66hfbz3RGn; Thu, 9 Apr 2020 01:55:38 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C789750E9; Thu, 9 Apr 2020 01:55:38 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0391tcqG075498; Thu, 9 Apr 2020 01:55:38 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0391taNF075483; Thu, 9 Apr 2020 01:55:36 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <202004090155.0391taNF075483@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Enji Cooper Date: Thu, 9 Apr 2020 01:55:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r359732 - in vendor/google/googletest/dist: . ci googlemock googlemock/build-aux googlemock/cmake googlemock/docs googlemock/include/gmock googlemock/include/gmock/internal googlemock/m... X-SVN-Group: vendor X-SVN-Commit-Author: ngie X-SVN-Commit-Paths: in vendor/google/googletest/dist: . ci googlemock googlemock/build-aux googlemock/cmake googlemock/docs googlemock/include/gmock googlemock/include/gmock/internal googlemock/make googlemock/msvc googl... X-SVN-Commit-Revision: 359732 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Apr 2020 01:55:39 -0000 Author: ngie Date: Thu Apr 9 01:55:35 2020 New Revision: 359732 URL: https://svnweb.freebsd.org/changeset/base/359732 Log: Import GoogleTest 1.10.0 GoogleTest 1.10.0 is the last official release series planned for GoogleTest. After 1.10.x, Google is switching GoogleTest to a "release on master" model, as documented here: https://abseil.io/about/philosophy . More information about what's captured between releases can be found on the GitHub release page: https://github.com/google/googletest/releases . Added: vendor/google/googletest/dist/.clang-format vendor/google/googletest/dist/ci/build-platformio.sh (contents, props changed) vendor/google/googletest/dist/ci/install-platformio.sh (contents, props changed) vendor/google/googletest/dist/googlemock/docs/cheat_sheet.md vendor/google/googletest/dist/googlemock/docs/cook_book.md vendor/google/googletest/dist/googlemock/docs/for_dummies.md vendor/google/googletest/dist/googlemock/docs/gmock_faq.md vendor/google/googletest/dist/googlemock/include/gmock/gmock-function-mocker.h (contents, props changed) vendor/google/googletest/dist/googlemock/include/gmock/gmock-nice-strict.h (contents, props changed) vendor/google/googletest/dist/googlemock/include/gmock/internal/gmock-pp.h (contents, props changed) vendor/google/googletest/dist/googlemock/test/gmock-function-mocker_nc.cc (contents, props changed) vendor/google/googletest/dist/googlemock/test/gmock-function-mocker_nc_test.py (contents, props changed) vendor/google/googletest/dist/googlemock/test/gmock-function-mocker_test.cc (contents, props changed) vendor/google/googletest/dist/googlemock/test/gmock-pp-string_test.cc (contents, props changed) vendor/google/googletest/dist/googlemock/test/gmock-pp_test.cc (contents, props changed) vendor/google/googletest/dist/googletest/cmake/libgtest.la.in (contents, props changed) vendor/google/googletest/dist/googletest/docs/pkgconfig.md vendor/google/googletest/dist/googletest/docs/pump_manual.md vendor/google/googletest/dist/googletest/include/gtest/gtest-matchers.h (contents, props changed) vendor/google/googletest/dist/googletest/src/gtest-matchers.cc (contents, props changed) vendor/google/googletest/dist/googletest/test/gtest_skip_environment_check_output_test.py (contents, props changed) vendor/google/googletest/dist/googletest/test/gtest_skip_in_environment_setup_test.cc (contents, props changed) vendor/google/googletest/dist/googletest/test/gtest_skip_test.cc (contents, props changed) vendor/google/googletest/dist/library.json vendor/google/googletest/dist/platformio.ini Deleted: vendor/google/googletest/dist/ci/build-linux-autotools.sh vendor/google/googletest/dist/googlemock/CHANGES vendor/google/googletest/dist/googlemock/Makefile.am vendor/google/googletest/dist/googlemock/build-aux/ vendor/google/googletest/dist/googlemock/configure.ac vendor/google/googletest/dist/googlemock/docs/CheatSheet.md vendor/google/googletest/dist/googlemock/docs/CookBook.md vendor/google/googletest/dist/googlemock/docs/DesignDoc.md vendor/google/googletest/dist/googlemock/docs/Documentation.md vendor/google/googletest/dist/googlemock/docs/ForDummies.md vendor/google/googletest/dist/googlemock/docs/FrequentlyAskedQuestions.md vendor/google/googletest/dist/googlemock/docs/KnownIssues.md vendor/google/googletest/dist/googlemock/include/gmock/gmock-generated-nice-strict.h vendor/google/googletest/dist/googlemock/include/gmock/gmock-generated-nice-strict.h.pump vendor/google/googletest/dist/googlemock/include/gmock/internal/gmock-generated-internal-utils.h vendor/google/googletest/dist/googlemock/include/gmock/internal/gmock-generated-internal-utils.h.pump vendor/google/googletest/dist/googlemock/make/ vendor/google/googletest/dist/googlemock/msvc/ vendor/google/googletest/dist/googlemock/test/gmock-generated-internal-utils_test.cc vendor/google/googletest/dist/googletest/CHANGES vendor/google/googletest/dist/googletest/Makefile.am vendor/google/googletest/dist/googletest/codegear/ vendor/google/googletest/dist/googletest/configure.ac vendor/google/googletest/dist/googletest/docs/Pkgconfig.md vendor/google/googletest/dist/googletest/docs/PumpManual.md vendor/google/googletest/dist/googletest/docs/XcodeGuide.md vendor/google/googletest/dist/googletest/include/gtest/gtest-param-test.h.pump vendor/google/googletest/dist/googletest/include/gtest/internal/gtest-linked_ptr.h vendor/google/googletest/dist/googletest/include/gtest/internal/gtest-param-util-generated.h vendor/google/googletest/dist/googletest/include/gtest/internal/gtest-param-util-generated.h.pump vendor/google/googletest/dist/googletest/include/gtest/internal/gtest-tuple.h vendor/google/googletest/dist/googletest/include/gtest/internal/gtest-tuple.h.pump vendor/google/googletest/dist/googletest/m4/ vendor/google/googletest/dist/googletest/make/ vendor/google/googletest/dist/googletest/msvc/ vendor/google/googletest/dist/googletest/test/googletest-linked-ptr-test.cc vendor/google/googletest/dist/googletest/test/googletest-tuple-test.cc vendor/google/googletest/dist/googletest/xcode/ Modified: vendor/google/googletest/dist/BUILD.bazel vendor/google/googletest/dist/CMakeLists.txt vendor/google/googletest/dist/CONTRIBUTING.md vendor/google/googletest/dist/README.md vendor/google/googletest/dist/WORKSPACE vendor/google/googletest/dist/appveyor.yml vendor/google/googletest/dist/ci/build-linux-bazel.sh vendor/google/googletest/dist/ci/env-osx.sh vendor/google/googletest/dist/ci/install-osx.sh vendor/google/googletest/dist/googlemock/CMakeLists.txt vendor/google/googletest/dist/googlemock/README.md vendor/google/googletest/dist/googlemock/cmake/gmock.pc.in vendor/google/googletest/dist/googlemock/cmake/gmock_main.pc.in vendor/google/googletest/dist/googlemock/include/gmock/gmock-actions.h vendor/google/googletest/dist/googlemock/include/gmock/gmock-cardinalities.h vendor/google/googletest/dist/googlemock/include/gmock/gmock-generated-actions.h vendor/google/googletest/dist/googlemock/include/gmock/gmock-generated-actions.h.pump vendor/google/googletest/dist/googlemock/include/gmock/gmock-generated-function-mockers.h vendor/google/googletest/dist/googlemock/include/gmock/gmock-generated-function-mockers.h.pump vendor/google/googletest/dist/googlemock/include/gmock/gmock-generated-matchers.h vendor/google/googletest/dist/googlemock/include/gmock/gmock-generated-matchers.h.pump vendor/google/googletest/dist/googlemock/include/gmock/gmock-matchers.h vendor/google/googletest/dist/googlemock/include/gmock/gmock-more-actions.h vendor/google/googletest/dist/googlemock/include/gmock/gmock-spec-builders.h vendor/google/googletest/dist/googlemock/include/gmock/gmock.h vendor/google/googletest/dist/googlemock/include/gmock/internal/gmock-internal-utils.h vendor/google/googletest/dist/googlemock/include/gmock/internal/gmock-port.h vendor/google/googletest/dist/googlemock/scripts/fuse_gmock_files.py vendor/google/googletest/dist/googlemock/src/gmock-cardinalities.cc vendor/google/googletest/dist/googlemock/src/gmock-internal-utils.cc vendor/google/googletest/dist/googlemock/src/gmock-matchers.cc vendor/google/googletest/dist/googlemock/src/gmock-spec-builders.cc vendor/google/googletest/dist/googlemock/src/gmock.cc vendor/google/googletest/dist/googlemock/src/gmock_main.cc vendor/google/googletest/dist/googlemock/test/BUILD.bazel vendor/google/googletest/dist/googlemock/test/gmock-actions_test.cc vendor/google/googletest/dist/googlemock/test/gmock-cardinalities_test.cc vendor/google/googletest/dist/googlemock/test/gmock-generated-actions_test.cc vendor/google/googletest/dist/googlemock/test/gmock-generated-function-mockers_test.cc vendor/google/googletest/dist/googlemock/test/gmock-generated-matchers_test.cc vendor/google/googletest/dist/googlemock/test/gmock-internal-utils_test.cc vendor/google/googletest/dist/googlemock/test/gmock-matchers_test.cc vendor/google/googletest/dist/googlemock/test/gmock-more-actions_test.cc vendor/google/googletest/dist/googlemock/test/gmock-nice-strict_test.cc vendor/google/googletest/dist/googlemock/test/gmock-spec-builders_test.cc vendor/google/googletest/dist/googlemock/test/gmock_all_test.cc vendor/google/googletest/dist/googlemock/test/gmock_link_test.h vendor/google/googletest/dist/googlemock/test/gmock_output_test.py vendor/google/googletest/dist/googlemock/test/gmock_output_test_golden.txt vendor/google/googletest/dist/googlemock/test/gmock_stress_test.cc vendor/google/googletest/dist/googlemock/test/gmock_test.cc vendor/google/googletest/dist/googletest/CMakeLists.txt vendor/google/googletest/dist/googletest/README.md vendor/google/googletest/dist/googletest/cmake/gtest.pc.in vendor/google/googletest/dist/googletest/cmake/gtest_main.pc.in vendor/google/googletest/dist/googletest/cmake/internal_utils.cmake vendor/google/googletest/dist/googletest/docs/advanced.md vendor/google/googletest/dist/googletest/docs/faq.md vendor/google/googletest/dist/googletest/docs/primer.md vendor/google/googletest/dist/googletest/docs/samples.md vendor/google/googletest/dist/googletest/include/gtest/gtest-death-test.h vendor/google/googletest/dist/googletest/include/gtest/gtest-message.h vendor/google/googletest/dist/googletest/include/gtest/gtest-param-test.h vendor/google/googletest/dist/googletest/include/gtest/gtest-printers.h vendor/google/googletest/dist/googletest/include/gtest/gtest-spi.h vendor/google/googletest/dist/googletest/include/gtest/gtest-test-part.h vendor/google/googletest/dist/googletest/include/gtest/gtest-typed-test.h vendor/google/googletest/dist/googletest/include/gtest/gtest.h vendor/google/googletest/dist/googletest/include/gtest/gtest_pred_impl.h vendor/google/googletest/dist/googletest/include/gtest/internal/gtest-death-test-internal.h vendor/google/googletest/dist/googletest/include/gtest/internal/gtest-filepath.h vendor/google/googletest/dist/googletest/include/gtest/internal/gtest-internal.h vendor/google/googletest/dist/googletest/include/gtest/internal/gtest-param-util.h vendor/google/googletest/dist/googletest/include/gtest/internal/gtest-port-arch.h vendor/google/googletest/dist/googletest/include/gtest/internal/gtest-port.h vendor/google/googletest/dist/googletest/include/gtest/internal/gtest-string.h vendor/google/googletest/dist/googletest/include/gtest/internal/gtest-type-util.h vendor/google/googletest/dist/googletest/include/gtest/internal/gtest-type-util.h.pump vendor/google/googletest/dist/googletest/samples/prime_tables.h vendor/google/googletest/dist/googletest/samples/sample1.cc vendor/google/googletest/dist/googletest/samples/sample1.h vendor/google/googletest/dist/googletest/samples/sample10_unittest.cc vendor/google/googletest/dist/googletest/samples/sample2.cc vendor/google/googletest/dist/googletest/samples/sample2.h vendor/google/googletest/dist/googletest/samples/sample2_unittest.cc vendor/google/googletest/dist/googletest/samples/sample3-inl.h vendor/google/googletest/dist/googletest/samples/sample3_unittest.cc vendor/google/googletest/dist/googletest/samples/sample5_unittest.cc vendor/google/googletest/dist/googletest/samples/sample6_unittest.cc vendor/google/googletest/dist/googletest/samples/sample7_unittest.cc vendor/google/googletest/dist/googletest/samples/sample8_unittest.cc vendor/google/googletest/dist/googletest/samples/sample9_unittest.cc vendor/google/googletest/dist/googletest/src/gtest-all.cc vendor/google/googletest/dist/googletest/src/gtest-death-test.cc vendor/google/googletest/dist/googletest/src/gtest-filepath.cc vendor/google/googletest/dist/googletest/src/gtest-internal-inl.h vendor/google/googletest/dist/googletest/src/gtest-port.cc vendor/google/googletest/dist/googletest/src/gtest-printers.cc vendor/google/googletest/dist/googletest/src/gtest-test-part.cc vendor/google/googletest/dist/googletest/src/gtest-typed-test.cc vendor/google/googletest/dist/googletest/src/gtest.cc vendor/google/googletest/dist/googletest/src/gtest_main.cc vendor/google/googletest/dist/googletest/test/BUILD.bazel vendor/google/googletest/dist/googletest/test/googletest-catch-exceptions-test.py vendor/google/googletest/dist/googletest/test/googletest-catch-exceptions-test_.cc vendor/google/googletest/dist/googletest/test/googletest-death-test-test.cc vendor/google/googletest/dist/googletest/test/googletest-death-test_ex_test.cc vendor/google/googletest/dist/googletest/test/googletest-env-var-test.py vendor/google/googletest/dist/googletest/test/googletest-filepath-test.cc vendor/google/googletest/dist/googletest/test/googletest-filter-unittest.py vendor/google/googletest/dist/googletest/test/googletest-filter-unittest_.cc vendor/google/googletest/dist/googletest/test/googletest-json-outfiles-test.py vendor/google/googletest/dist/googletest/test/googletest-json-output-unittest.py vendor/google/googletest/dist/googletest/test/googletest-list-tests-unittest_.cc vendor/google/googletest/dist/googletest/test/googletest-listener-test.cc vendor/google/googletest/dist/googletest/test/googletest-message-test.cc vendor/google/googletest/dist/googletest/test/googletest-options-test.cc vendor/google/googletest/dist/googletest/test/googletest-output-test-golden-lin.txt vendor/google/googletest/dist/googletest/test/googletest-output-test.py vendor/google/googletest/dist/googletest/test/googletest-output-test_.cc vendor/google/googletest/dist/googletest/test/googletest-param-test-invalid-name1-test_.cc vendor/google/googletest/dist/googletest/test/googletest-param-test-invalid-name2-test_.cc vendor/google/googletest/dist/googletest/test/googletest-param-test-test.cc vendor/google/googletest/dist/googletest/test/googletest-param-test-test.h vendor/google/googletest/dist/googletest/test/googletest-param-test2-test.cc vendor/google/googletest/dist/googletest/test/googletest-port-test.cc vendor/google/googletest/dist/googletest/test/googletest-printers-test.cc vendor/google/googletest/dist/googletest/test/googletest-shuffle-test_.cc vendor/google/googletest/dist/googletest/test/googletest-test-part-test.cc vendor/google/googletest/dist/googletest/test/googletest-test2_test.cc vendor/google/googletest/dist/googletest/test/googletest-throw-on-failure-test.py vendor/google/googletest/dist/googletest/test/googletest-throw-on-failure-test_.cc vendor/google/googletest/dist/googletest/test/googletest-uninitialized-test.py vendor/google/googletest/dist/googletest/test/gtest-typed-test2_test.cc vendor/google/googletest/dist/googletest/test/gtest-typed-test_test.cc vendor/google/googletest/dist/googletest/test/gtest-typed-test_test.h vendor/google/googletest/dist/googletest/test/gtest-unittest-api_test.cc vendor/google/googletest/dist/googletest/test/gtest_all_test.cc vendor/google/googletest/dist/googletest/test/gtest_assert_by_exception_test.cc vendor/google/googletest/dist/googletest/test/gtest_environment_test.cc vendor/google/googletest/dist/googletest/test/gtest_pred_impl_unittest.cc vendor/google/googletest/dist/googletest/test/gtest_premature_exit_test.cc vendor/google/googletest/dist/googletest/test/gtest_repeat_test.cc vendor/google/googletest/dist/googletest/test/gtest_stress_test.cc vendor/google/googletest/dist/googletest/test/gtest_test_utils.py vendor/google/googletest/dist/googletest/test/gtest_throw_on_failure_ex_test.cc vendor/google/googletest/dist/googletest/test/gtest_unittest.cc vendor/google/googletest/dist/googletest/test/gtest_xml_outfile1_test_.cc vendor/google/googletest/dist/googletest/test/gtest_xml_outfile2_test_.cc vendor/google/googletest/dist/googletest/test/gtest_xml_outfiles_test.py vendor/google/googletest/dist/googletest/test/gtest_xml_output_unittest.py vendor/google/googletest/dist/googletest/test/gtest_xml_output_unittest_.cc vendor/google/googletest/dist/googletest/test/gtest_xml_test_utils.py Added: vendor/google/googletest/dist/.clang-format ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/google/googletest/dist/.clang-format Thu Apr 9 01:55:35 2020 (r359732) @@ -0,0 +1,4 @@ +# Run manually to reformat a file: +# clang-format -i --style=file +Language: Cpp +BasedOnStyle: Google Modified: vendor/google/googletest/dist/BUILD.bazel ============================================================================== --- vendor/google/googletest/dist/BUILD.bazel Wed Apr 8 20:00:30 2020 (r359731) +++ vendor/google/googletest/dist/BUILD.bazel Thu Apr 9 01:55:35 2020 (r359732) @@ -28,29 +28,31 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # -# Author: misterg@google.com (Gennadiy Civil) -# # Bazel Build for Google C++ Testing Framework(Google Test) +load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test") + package(default_visibility = ["//visibility:public"]) licenses(["notice"]) config_setting( name = "windows", - values = {"cpu": "x64_windows"}, + constraint_values = ["@bazel_tools//platforms:windows"], ) config_setting( - name = "windows_msvc", - values = {"cpu": "x64_windows_msvc"}, -) - -config_setting( name = "has_absl", values = {"define": "absl=1"}, ) +# Library that defines the FRIEND_TEST macro. +cc_library( + name = "gtest_prod", + hdrs = ["googletest/include/gtest/gtest_prod.h"], + includes = ["googletest/include"], +) + # Google Test including Google Mock cc_library( name = "gtest", @@ -73,21 +75,18 @@ cc_library( "googletest/include/gtest/*.h", "googlemock/include/gmock/*.h", ]), - copts = select( - { - ":windows": [], - ":windows_msvc": [], - "//conditions:default": ["-pthread"], - }, - ), - defines = select( - { - ":has_absl": [ - "GTEST_HAS_ABSL=1", - ], - "//conditions:default": [], - }, - ), + copts = select({ + ":windows": [], + "//conditions:default": ["-pthread"], + }), + defines = select({ + ":has_absl": ["GTEST_HAS_ABSL=1"], + "//conditions:default": [], + }), + features = select({ + ":windows": ["windows_export_all_symbols"], + "//conditions:default": [], + }), includes = [ "googlemock", "googlemock/include", @@ -96,31 +95,28 @@ cc_library( ], linkopts = select({ ":windows": [], - ":windows_msvc": [], - "//conditions:default": [ - "-pthread", + "//conditions:default": ["-pthread"], + }), + deps = select({ + ":has_absl": [ + "@com_google_absl//absl/debugging:failure_signal_handler", + "@com_google_absl//absl/debugging:stacktrace", + "@com_google_absl//absl/debugging:symbolize", + "@com_google_absl//absl/strings", + "@com_google_absl//absl/types:optional", + "@com_google_absl//absl/types:variant", ], + "//conditions:default": [], }), - deps = select( - { - ":has_absl": [ - "@com_google_absl//absl/debugging:failure_signal_handler", - "@com_google_absl//absl/debugging:stacktrace", - "@com_google_absl//absl/debugging:symbolize", - "@com_google_absl//absl/strings", - "@com_google_absl//absl/types:optional", - "@com_google_absl//absl/types:variant", - ], - "//conditions:default": [], - }, - ), ) cc_library( name = "gtest_main", - srcs = [ - "googlemock/src/gmock_main.cc", - ], + srcs = ["googlemock/src/gmock_main.cc"], + features = select({ + ":windows": ["windows_export_all_symbols"], + "//conditions:default": [], + }), deps = [":gtest"], ) @@ -139,14 +135,18 @@ cc_library( "googletest/samples/sample3-inl.h", "googletest/samples/sample4.h", ], + features = select({ + ":windows": ["windows_export_all_symbols"], + "//conditions:default": [], + }), ) cc_test( name = "gtest_samples", size = "small", - #All Samples except: - #sample9 ( main ) - #sample10 (main and takes a command line option and needs to be separate) + # All Samples except: + # sample9 (main) + # sample10 (main and takes a command line option and needs to be separate) srcs = [ "googletest/samples/sample1_unittest.cc", "googletest/samples/sample2_unittest.cc", @@ -157,6 +157,7 @@ cc_test( "googletest/samples/sample7_unittest.cc", "googletest/samples/sample8_unittest.cc", ], + linkstatic = 0, deps = [ "gtest_sample_lib", ":gtest_main", @@ -174,7 +175,5 @@ cc_test( name = "sample10_unittest", size = "small", srcs = ["googletest/samples/sample10_unittest.cc"], - deps = [ - ":gtest", - ], + deps = [":gtest"], ) Modified: vendor/google/googletest/dist/CMakeLists.txt ============================================================================== --- vendor/google/googletest/dist/CMakeLists.txt Wed Apr 8 20:00:30 2020 (r359731) +++ vendor/google/googletest/dist/CMakeLists.txt Thu Apr 9 01:55:35 2020 (r359732) @@ -1,3 +1,6 @@ +# Note: CMake support is community-based. The maintainers do not use CMake +# internally. + cmake_minimum_required(VERSION 2.8.8) if (POLICY CMP0048) @@ -5,7 +8,17 @@ if (POLICY CMP0048) endif (POLICY CMP0048) project(googletest-distribution) -set(GOOGLETEST_VERSION 1.9.0) +set(GOOGLETEST_VERSION 1.10.0) + +if (CMAKE_VERSION VERSION_LESS "3.1") + add_definitions(-std=c++11) +else() + set(CMAKE_CXX_STANDARD 11) + set(CMAKE_CXX_STANDARD_REQUIRED ON) + if(NOT CYGWIN) + set(CMAKE_CXX_EXTENSIONS OFF) + endif() +endif() enable_testing() Modified: vendor/google/googletest/dist/CONTRIBUTING.md ============================================================================== --- vendor/google/googletest/dist/CONTRIBUTING.md Wed Apr 8 20:00:30 2020 (r359731) +++ vendor/google/googletest/dist/CONTRIBUTING.md Thu Apr 9 01:55:35 2020 (r359732) @@ -2,16 +2,16 @@ ## Contributor License Agreements -We'd love to accept your patches! Before we can take them, we -have to jump a couple of legal hurdles. +We'd love to accept your patches! Before we can take them, we have to jump a +couple of legal hurdles. Please fill out either the individual or corporate Contributor License Agreement (CLA). - * If you are an individual writing original source code and you're sure you +* If you are an individual writing original source code and you're sure you own the intellectual property, then you'll need to sign an [individual CLA](https://developers.google.com/open-source/cla/individual). - * If you work for a company that wants to allow you to contribute your work, +* If you work for a company that wants to allow you to contribute your work, then you'll need to sign a [corporate CLA](https://developers.google.com/open-source/cla/corporate). @@ -20,141 +20,123 @@ instructions for how to sign and return it. Once we re accept your pull requests. ## Are you a Googler? -If you are a Googler, you can either create an internal change or work on GitHub directly. +If you are a Googler, please make an attempt to submit an internal change rather +than a GitHub Pull Request. If you are not able to submit an internal change a +PR is acceptable as an alternative. ## Contributing A Patch -1. Submit an issue describing your proposed change to the - [issue tracker](https://github.com/google/googletest). -1. Please don't mix more than one logical change per submittal, - because it makes the history hard to follow. If you want to make a - change that doesn't have a corresponding issue in the issue - tracker, please create one. -1. Also, coordinate with team members that are listed on the issue in - question. This ensures that work isn't being duplicated and - communicating your plan early also generally leads to better - patches. -1. If your proposed change is accepted, and you haven't already done so, sign a - Contributor License Agreement (see details above). -1. Fork the desired repo, develop and test your code changes. -1. Ensure that your code adheres to the existing style in the sample to which - you are contributing. -1. Ensure that your code has an appropriate set of unit tests which all pass. -1. Submit a pull request. +1. Submit an issue describing your proposed change to the + [issue tracker](https://github.com/google/googletest). +2. Please don't mix more than one logical change per submittal, because it + makes the history hard to follow. If you want to make a change that doesn't + have a corresponding issue in the issue tracker, please create one. +3. Also, coordinate with team members that are listed on the issue in question. + This ensures that work isn't being duplicated and communicating your plan + early also generally leads to better patches. +4. If your proposed change is accepted, and you haven't already done so, sign a + Contributor License Agreement (see details above). +5. Fork the desired repo, develop and test your code changes. +6. Ensure that your code adheres to the existing style in the sample to which + you are contributing. +7. Ensure that your code has an appropriate set of unit tests which all pass. +8. Submit a pull request. -## The Google Test and Google Mock Communities ## +## The Google Test and Google Mock Communities The Google Test community exists primarily through the -[discussion group](http://groups.google.com/group/googletestframework) -and the GitHub repository. -Likewise, the Google Mock community exists primarily through their own -[discussion group](http://groups.google.com/group/googlemock). -You are definitely encouraged to contribute to the -discussion and you can also help us to keep the effectiveness of the -group high by following and promoting the guidelines listed here. +[discussion group](http://groups.google.com/group/googletestframework) and the +GitHub repository. Likewise, the Google Mock community exists primarily through +their own [discussion group](http://groups.google.com/group/googlemock). You are +definitely encouraged to contribute to the discussion and you can also help us +to keep the effectiveness of the group high by following and promoting the +guidelines listed here. -### Please Be Friendly ### +### Please Be Friendly -Showing courtesy and respect to others is a vital part of the Google -culture, and we strongly encourage everyone participating in Google -Test development to join us in accepting nothing less. Of course, -being courteous is not the same as failing to constructively disagree -with each other, but it does mean that we should be respectful of each -other when enumerating the 42 technical reasons that a particular -proposal may not be the best choice. There's never a reason to be -antagonistic or dismissive toward anyone who is sincerely trying to +Showing courtesy and respect to others is a vital part of the Google culture, +and we strongly encourage everyone participating in Google Test development to +join us in accepting nothing less. Of course, being courteous is not the same as +failing to constructively disagree with each other, but it does mean that we +should be respectful of each other when enumerating the 42 technical reasons +that a particular proposal may not be the best choice. There's never a reason to +be antagonistic or dismissive toward anyone who is sincerely trying to contribute to a discussion. -Sure, C++ testing is serious business and all that, but it's also -a lot of fun. Let's keep it that way. Let's strive to be one of the -friendliest communities in all of open source. +Sure, C++ testing is serious business and all that, but it's also a lot of fun. +Let's keep it that way. Let's strive to be one of the friendliest communities in +all of open source. -As always, discuss Google Test in the official GoogleTest discussion group. -You don't have to actually submit code in order to sign up. Your participation +As always, discuss Google Test in the official GoogleTest discussion group. You +don't have to actually submit code in order to sign up. Your participation itself is a valuable contribution. ## Style -To keep the source consistent, readable, diffable and easy to merge, -we use a fairly rigid coding style, as defined by the [google-styleguide](https://github.com/google/styleguide) project. All patches will be expected -to conform to the style outlined [here](https://google.github.io/styleguide/cppguide.html). +To keep the source consistent, readable, diffable and easy to merge, we use a +fairly rigid coding style, as defined by the +[google-styleguide](https://github.com/google/styleguide) project. All patches +will be expected to conform to the style outlined +[here](https://google.github.io/styleguide/cppguide.html). Use +[.clang-format](https://github.com/google/googletest/blob/master/.clang-format) +to check your formatting -## Requirements for Contributors ### +## Requirements for Contributors -If you plan to contribute a patch, you need to build Google Test, -Google Mock, and their own tests from a git checkout, which has -further requirements: +If you plan to contribute a patch, you need to build Google Test, Google Mock, +and their own tests from a git checkout, which has further requirements: - * [Python](https://www.python.org/) v2.3 or newer (for running some of - the tests and re-generating certain source files from templates) - * [CMake](https://cmake.org/) v2.6.4 or newer - * [GNU Build System](https://en.wikipedia.org/wiki/GNU_Build_System) - including automake (>= 1.9), autoconf (>= 2.59), and - libtool / libtoolize. +* [Python](https://www.python.org/) v2.3 or newer (for running some of the + tests and re-generating certain source files from templates) +* [CMake](https://cmake.org/) v2.6.4 or newer -## Developing Google Test ## +## Developing Google Test and Google Mock -This section discusses how to make your own changes to Google Test. +This section discusses how to make your own changes to the Google Test project. -### Testing Google Test Itself ### +### Testing Google Test and Google Mock Themselves To make sure your changes work as intended and don't break existing -functionality, you'll want to compile and run Google Test's own tests. -For that you can use CMake: +functionality, you'll want to compile and run Google Test and GoogleMock's own +tests. For that you can use CMake: mkdir mybuild cd mybuild - cmake -Dgtest_build_tests=ON ${GTEST_DIR} + cmake -Dgtest_build_tests=ON -Dgmock_build_tests=ON ${GTEST_REPO_DIR} -Make sure you have Python installed, as some of Google Test's tests -are written in Python. If the cmake command complains about not being -able to find Python (`Could NOT find PythonInterp (missing: -PYTHON_EXECUTABLE)`), try telling it explicitly where your Python -executable can be found: +To choose between building only Google Test or Google Mock, you may modify your +cmake command to be one of each - cmake -DPYTHON_EXECUTABLE=path/to/python -Dgtest_build_tests=ON ${GTEST_DIR} + cmake -Dgtest_build_tests=ON ${GTEST_DIR} # sets up Google Test tests + cmake -Dgmock_build_tests=ON ${GMOCK_DIR} # sets up Google Mock tests -Next, you can build Google Test and all of its own tests. On \*nix, -this is usually done by 'make'. To run the tests, do +Make sure you have Python installed, as some of Google Test's tests are written +in Python. If the cmake command complains about not being able to find Python +(`Could NOT find PythonInterp (missing: PYTHON_EXECUTABLE)`), try telling it +explicitly where your Python executable can be found: - make test + cmake -DPYTHON_EXECUTABLE=path/to/python ... -All tests should pass. +Next, you can build Google Test and / or Google Mock and all desired tests. On +\*nix, this is usually done by -### Regenerating Source Files ## + make -Some of Google Test's source files are generated from templates (not -in the C++ sense) using a script. -For example, the -file include/gtest/internal/gtest-type-util.h.pump is used to generate -gtest-type-util.h in the same directory. +To run the tests, do -You don't need to worry about regenerating the source files -unless you need to modify them. You would then modify the -corresponding `.pump` files and run the '[pump.py](googletest/scripts/pump.py)' -generator script. See the [Pump Manual](googletest/docs/PumpManual.md). + make test -## Developing Google Mock ### +All tests should pass. -This section discusses how to make your own changes to Google Mock. +### Regenerating Source Files -#### Testing Google Mock Itself #### +Some of Google Test's source files are generated from templates (not in the C++ +sense) using a script. For example, the file +include/gtest/internal/gtest-type-util.h.pump is used to generate +gtest-type-util.h in the same directory. -To make sure your changes work as intended and don't break existing -functionality, you'll want to compile and run Google Test's own tests. -For that you'll need Autotools. First, make sure you have followed -the instructions above to configure Google Mock. -Then, create a build output directory and enter it. Next, - - ${GMOCK_DIR}/configure # try --help for more info - -Once you have successfully configured Google Mock, the build steps are -standard for GNU-style OSS packages. - - make # Standard makefile following GNU conventions - make check # Builds and runs all tests - all should pass. - -Note that when building your project against Google Mock, you are building -against Google Test as well. There is no need to configure Google Test -separately. +You don't need to worry about regenerating the source files unless you need to +modify them. You would then modify the corresponding `.pump` files and run the +'[pump.py](googletest/scripts/pump.py)' generator script. See the +[Pump Manual](googletest/docs/pump_manual.md). Modified: vendor/google/googletest/dist/README.md ============================================================================== --- vendor/google/googletest/dist/README.md Wed Apr 8 20:00:30 2020 (r359731) +++ vendor/google/googletest/dist/README.md Thu Apr 9 01:55:35 2020 (r359732) @@ -1,79 +1,97 @@ +# Google Test -# Google Test # +#### OSS Builds Status: -[![Build Status](https://travis-ci.org/google/googletest.svg?branch=master)](https://travis-ci.org/google/googletest) +[![Build Status](https://api.travis-ci.org/google/googletest.svg?branch=master)](https://travis-ci.org/google/googletest) [![Build status](https://ci.appveyor.com/api/projects/status/4o38plt0xbo1ubc8/branch/master?svg=true)](https://ci.appveyor.com/project/GoogleTestAppVeyor/googletest/branch/master) -**Future Plans**: -* 1.8.x Release - the 1.8.x will be the last release that works with pre-C++11 compilers. The 1.8.x will not accept any requests for any new features and any bugfix requests will only be accepted if proven "critical" -* Post 1.8.x - work to improve/cleanup/pay technical debt. When this work is completed there will be a 1.9.x tagged release -* Post 1.9.x googletest will follow [Abseil Live at Head philosophy](https://abseil.io/about/philosophy) +### Future Plans +#### 1.8.x Release: -Welcome to **Google Test**, Google's C++ test framework! +[the 1.8.x](https://github.com/google/googletest/releases/tag/release-1.8.1) is +the last release that works with pre-C++11 compilers. The 1.8.x will not accept +any requests for any new features and any bugfix requests will only be accepted +if proven "critical" -This repository is a merger of the formerly separate GoogleTest and -GoogleMock projects. These were so closely related that it makes sense to -maintain and release them together. +#### Post 1.8.x: -Please see the project page above for more information as well as the -mailing list for questions, discussions, and development. There is -also an IRC channel on [OFTC](https://webchat.oftc.net/) (irc.oftc.net) #gtest available. Please -join us! +On-going work to improve/cleanup/pay technical debt. When this work is completed +there will be a 1.9.x tagged release -Getting started information for **Google Test** is available in the +#### Post 1.9.x + +Post 1.9.x googletest will follow +[Abseil Live at Head philosophy](https://abseil.io/about/philosophy) + +## Welcome to **Google Test**, Google's C++ test framework! + +This repository is a merger of the formerly separate GoogleTest and GoogleMock +projects. These were so closely related that it makes sense to maintain and +release them together. + +Please subscribe to the mailing list at googletestframework@googlegroups.com for +questions, discussions, and development. + +### Getting started: + +The information for **Google Test** is available in the [Google Test Primer](googletest/docs/primer.md) documentation. **Google Mock** is an extension to Google Test for writing and using C++ mock -classes. See the separate [Google Mock documentation](googlemock/README.md). +classes. See the separate [Google Mock documentation](googlemock/README.md). -More detailed documentation for googletest (including build instructions) are -in its interior [googletest/README.md](googletest/README.md) file. +More detailed documentation for googletest is in its interior +[googletest/README.md](googletest/README.md) file. -## Features ## +## Features - * An [xUnit](https://en.wikipedia.org/wiki/XUnit) test framework. - * Test discovery. - * A rich set of assertions. - * User-defined assertions. - * Death tests. - * Fatal and non-fatal failures. - * Value-parameterized tests. - * Type-parameterized tests. - * Various options for running the tests. - * XML test report generation. +* An [xUnit](https://en.wikipedia.org/wiki/XUnit) test framework. +* Test discovery. +* A rich set of assertions. +* User-defined assertions. +* Death tests. +* Fatal and non-fatal failures. +* Value-parameterized tests. +* Type-parameterized tests. +* Various options for running the tests. +* XML test report generation. -## Platforms ## +## Platforms Google test has been used on a variety of platforms: - * Linux - * Mac OS X - * Windows - * Cygwin - * MinGW - * Windows Mobile - * Symbian +* Linux +* Mac OS X +* Windows +* Cygwin +* MinGW +* Windows Mobile +* Symbian +* PlatformIO -## Who Is Using Google Test? ## +## Who Is Using Google Test? -In addition to many internal projects at Google, Google Test is also used by -the following notable projects: +In addition to many internal projects at Google, Google Test is also used by the +following notable projects: - * The [Chromium projects](http://www.chromium.org/) (behind the Chrome - browser and Chrome OS). - * The [LLVM](http://llvm.org/) compiler. - * [Protocol Buffers](https://github.com/google/protobuf), Google's data +* The [Chromium projects](http://www.chromium.org/) (behind the Chrome browser + and Chrome OS). +* The [LLVM](http://llvm.org/) compiler. +* [Protocol Buffers](https://github.com/google/protobuf), Google's data interchange format. - * The [OpenCV](http://opencv.org/) computer vision library. - * [tiny-dnn](https://github.com/tiny-dnn/tiny-dnn): header only, dependency-free deep learning framework in C++11. +* The [OpenCV](http://opencv.org/) computer vision library. +* [tiny-dnn](https://github.com/tiny-dnn/tiny-dnn): header only, + dependency-free deep learning framework in C++11. -## Related Open Source Projects ## +## Related Open Source Projects -[GTest Runner](https://github.com/nholthaus/gtest-runner) is a Qt5 based automated test-runner and Graphical User Interface with powerful features for Windows and Linux platforms. +[GTest Runner](https://github.com/nholthaus/gtest-runner) is a Qt5 based +automated test-runner and Graphical User Interface with powerful features for +Windows and Linux platforms. -[Google Test UI](https://github.com/ospector/gtest-gbar) is test runner that runs -your test binary, allows you to track its progress via a progress bar, and +[Google Test UI](https://github.com/ospector/gtest-gbar) is test runner that +runs your test binary, allows you to track its progress via a progress bar, and displays a list of test failures. Clicking on one shows failure text. Google Test UI is written in C#. @@ -85,46 +103,32 @@ result output. If your test runner understands TAP, yo [gtest-parallel](https://github.com/google/gtest-parallel) is a test runner that runs tests from your binary in parallel to provide significant speed-up. -[GoogleTest Adapter](https://marketplace.visualstudio.com/items?itemName=DavidSchuldenfrei.gtest-adapter) is a VS Code extension allowing to view Google Tests in a tree view, and run/debug your tests. +[GoogleTest Adapter](https://marketplace.visualstudio.com/items?itemName=DavidSchuldenfrei.gtest-adapter) +is a VS Code extension allowing to view Google Tests in a tree view, and +run/debug your tests. -## Requirements ## +## Requirements -Google Test is designed to have fairly minimal requirements to build -and use with your projects, but there are some. Currently, we support -Linux, Windows, Mac OS X, and Cygwin. We will also make our best -effort to support other platforms (e.g. Solaris, AIX, and z/OS). -However, since core members of the Google Test project have no access -to these platforms, Google Test may have outstanding issues there. If -you notice any problems on your platform, please notify -[googletestframework@googlegroups.com](https://groups.google.com/forum/#!forum/googletestframework). Patches for fixing them are -even more welcome! +Google Test is designed to have fairly minimal requirements to build and use +with your projects, but there are some. If you notice any problems on your +platform, please notify +[googletestframework@googlegroups.com](https://groups.google.com/forum/#!forum/googletestframework). +Patches for fixing them are welcome! -### Linux Requirements ### +### Build Requirements These are the base requirements to build and use Google Test from a source -package (as described below): +package: - * GNU-compatible Make or gmake - * POSIX-standard shell - * POSIX(-2) Regular Expressions (regex.h) - * A C++98-standard-compliant compiler +* [Bazel](https://bazel.build/) or [CMake](https://cmake.org/). NOTE: Bazel is + the build system that googletest is using internally and tests against. + CMake is community-supported. -### Windows Requirements ### +* a C++11-standard-compliant compiler - * Microsoft Visual C++ 2015 or newer - -### Cygwin Requirements ### - - * Cygwin v1.5.25-14 or newer - -### Mac OS X Requirements ### - - * Mac OS X v10.4 Tiger or newer - * Xcode Developer Tools - ## Contributing change -Please read the [`CONTRIBUTING.md`](CONTRIBUTING.md) for details on -how to contribute to this project. +Please read the [`CONTRIBUTING.md`](CONTRIBUTING.md) for details on how to +contribute to this project. Happy testing! Modified: vendor/google/googletest/dist/WORKSPACE ============================================================================== --- vendor/google/googletest/dist/WORKSPACE Wed Apr 8 20:00:30 2020 (r359731) +++ vendor/google/googletest/dist/WORKSPACE Thu Apr 9 01:55:35 2020 (r359732) @@ -1,8 +1,23 @@ workspace(name = "com_google_googletest") +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") + # Abseil http_archive( name = "com_google_absl", urls = ["https://github.com/abseil/abseil-cpp/archive/master.zip"], strip_prefix = "abseil-cpp-master", ) + +http_archive( + name = "rules_cc", + strip_prefix = "rules_cc-master", + urls = ["https://github.com/bazelbuild/rules_cc/archive/master.zip"], +) + +http_archive( + name = "rules_python", + strip_prefix = "rules_python-master", + urls = ["https://github.com/bazelbuild/rules_python/archive/master.zip"], +) + Modified: vendor/google/googletest/dist/appveyor.yml ============================================================================== --- vendor/google/googletest/dist/appveyor.yml Wed Apr 8 20:00:30 2020 (r359731) +++ vendor/google/googletest/dist/appveyor.yml Thu Apr 9 01:55:35 2020 (r359732) @@ -6,27 +6,34 @@ environment: matrix: - compiler: msvc-15-seh generator: "Visual Studio 15 2017" + build_system: cmake APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 - compiler: msvc-15-seh generator: "Visual Studio 15 2017 Win64" + build_system: cmake APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 enabled_on_pr: yes + - compiler: msvc-15-seh + build_system: bazel + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 + enabled_on_pr: yes + - compiler: msvc-14-seh + build_system: cmake generator: "Visual Studio 14 2015" enabled_on_pr: yes - compiler: msvc-14-seh + build_system: cmake generator: "Visual Studio 14 2015 Win64" - - compiler: gcc-5.3.0-posix - generator: "MinGW Makefiles" - cxx_path: 'C:\mingw-w64\i686-5.3.0-posix-dwarf-rt_v4-rev0\mingw32\bin' - - compiler: gcc-6.3.0-posix + build_system: cmake generator: "MinGW Makefiles" cxx_path: 'C:\mingw-w64\i686-6.3.0-posix-dwarf-rt_v5-rev1\mingw32\bin' + enabled_on_pr: yes configuration: - Debug @@ -38,6 +45,8 @@ install: - ps: | Write-Output "Compiler: $env:compiler" Write-Output "Generator: $env:generator" + Write-Output "Env:Configuation: $env:configuration" + Write-Output "Env: $env" if (-not (Test-Path env:APPVEYOR_PULL_REQUEST_NUMBER)) { Write-Output "This is *NOT* a pull request build" } else { @@ -47,20 +56,44 @@ install: } } - # git bash conflicts with MinGW makefiles - if ($env:generator -eq "MinGW Makefiles") { - $env:path = $env:path.replace("C:\Program Files\Git\usr\bin;", "") - if ($env:cxx_path -ne "") { - $env:path += ";$env:cxx_path" + # install Bazel + if ($env:build_system -eq "bazel") { + appveyor DownloadFile https://github.com/bazelbuild/bazel/releases/download/0.28.1/bazel-0.28.1-windows-x86_64.exe -FileName bazel.exe + } + + if ($env:build_system -eq "cmake") { + # git bash conflicts with MinGW makefiles + if ($env:generator -eq "MinGW Makefiles") { + $env:path = $env:path.replace("C:\Program Files\Git\usr\bin;", "") + if ($env:cxx_path -ne "") { + $env:path += ";$env:cxx_path" + } } } +before_build: +- ps: | + $env:root=$env:APPVEYOR_BUILD_FOLDER + Write-Output "env:root: $env:root" + build_script: - ps: | # Only enable some builds for pull requests, the AppVeyor queue is too long. if ((Test-Path env:APPVEYOR_PULL_REQUEST_NUMBER) -And (-not (Test-Path env:enabled_on_pr) -or $env:enabled_on_pr -ne "yes")) { return + } else { + # special case - build with Bazel + if ($env:build_system -eq "bazel") { + & $env:root\bazel.exe build -c opt //:gtest_samples + if ($LastExitCode -eq 0) { # bazel writes to StdErr and PowerShell interprets it as an error + $host.SetShouldExit(0) + } else { # a real error + throw "Exec: $ErrorMessage" + } + return + } } + # by default build with CMake md _build -Force | Out-Null cd _build @@ -89,16 +122,33 @@ test_script: if ((Test-Path env:APPVEYOR_PULL_REQUEST_NUMBER) -And (-not (Test-Path env:enabled_on_pr) -or $env:enabled_on_pr -ne "yes")) { return } - if ($env:generator -eq "MinGW Makefiles") { - return # No test available for MinGW + if ($env:build_system -eq "bazel") { + # special case - testing with Bazel + & $env:root\bazel.exe test //:gtest_samples + if ($LastExitCode -eq 0) { # bazel writes to StdErr and PowerShell interprets it as an error + $host.SetShouldExit(0) + } else { # a real error + throw "Exec: $ErrorMessage" + } } - & ctest -C $env:configuration --timeout 600 --output-on-failure - if ($LastExitCode -ne 0) { - throw "Exec: $ErrorMessage" + if ($env:build_system -eq "cmake") { + # built with CMake - test with CTest + if ($env:generator -eq "MinGW Makefiles") { + return # No test available for MinGW + } + + & ctest -C $env:configuration --timeout 600 --output-on-failure + if ($LastExitCode -ne 0) { + throw "Exec: $ErrorMessage" + } } artifacts: - path: '_build/CMakeFiles/*.log' name: logs - path: '_build/Testing/**/*.xml' + name: test_results + - path: 'bazel-testlogs/**/test.log' + name: test_logs + - path: 'bazel-testlogs/**/test.xml' name: test_results Modified: vendor/google/googletest/dist/ci/build-linux-bazel.sh ============================================================================== --- vendor/google/googletest/dist/ci/build-linux-bazel.sh Wed Apr 8 20:00:30 2020 (r359731) +++ vendor/google/googletest/dist/ci/build-linux-bazel.sh Thu Apr 9 01:55:35 2020 (r359732) @@ -31,6 +31,7 @@ set -e +bazel version bazel build --curses=no //...:all bazel test --curses=no //...:all bazel test --curses=no //...:all --define absl=1 Added: vendor/google/googletest/dist/ci/build-platformio.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/google/googletest/dist/ci/build-platformio.sh Thu Apr 9 01:55:35 2020 (r359732) @@ -0,0 +1,2 @@ +# run PlatformIO builds +platformio run Modified: vendor/google/googletest/dist/ci/env-osx.sh ============================================================================== --- vendor/google/googletest/dist/ci/env-osx.sh Wed Apr 8 20:00:30 2020 (r359731) +++ vendor/google/googletest/dist/ci/env-osx.sh Thu Apr 9 01:55:35 2020 (r359732) @@ -34,7 +34,14 @@ # # TODO() - we can check if this is being sourced using $BASH_VERSION and $BASH_SOURCE[0] != ${0}. +# -if [ "${TRAVIS_OS_NAME}" = "linux" ]; then - if [ "$CXX" = "clang++" ]; then export CXX="clang++-3.9" CC="clang-3.9"; fi +if [ "${TRAVIS_OS_NAME}" = "osx" ]; then + if [ "$CXX" = "clang++" ]; then + # $PATH needs to be adjusted because the llvm tap doesn't install the + # package to /usr/local/bin, etc, like the gcc tap does. + # See: https://github.com/Homebrew/legacy-homebrew/issues/29733 + clang_version=3.9 + export PATH="/usr/local/opt/llvm@${clang_version}/bin:$PATH"; + fi fi Modified: vendor/google/googletest/dist/ci/install-osx.sh ============================================================================== --- vendor/google/googletest/dist/ci/install-osx.sh Wed Apr 8 20:00:30 2020 (r359731) +++ vendor/google/googletest/dist/ci/install-osx.sh Thu Apr 9 01:55:35 2020 (r359732) @@ -36,4 +36,5 @@ if [ "${TRAVIS_OS_NAME}" != "osx" ]; then exit 0 fi -brew install ccache +brew update +brew install ccache gcc@4.9 Added: vendor/google/googletest/dist/ci/install-platformio.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/google/googletest/dist/ci/install-platformio.sh Thu Apr 9 01:55:35 2020 (r359732) @@ -0,0 +1,5 @@ +# install PlatformIO +sudo pip install -U platformio + +# update PlatformIO +platformio update Modified: vendor/google/googletest/dist/googlemock/CMakeLists.txt ============================================================================== --- vendor/google/googletest/dist/googlemock/CMakeLists.txt Wed Apr 8 20:00:30 2020 (r359731) +++ vendor/google/googletest/dist/googlemock/CMakeLists.txt Thu Apr 9 01:55:35 2020 (r359732) @@ -1,4 +1,7 @@ ######################################################################## +# Note: CMake support is community-based. The maintainers do not use CMake +# internally. +# # CMake build script for Google Mock. # # To run the tests for Google Mock itself on Linux, use 'make test' or @@ -49,7 +52,7 @@ endif() # targets to the current scope. We are placing Google Test's binary # directory in a subdirectory of our own as VC compilation may break # if they are the same (the default). -add_subdirectory("${gtest_dir}" "${gmock_BINARY_DIR}/gtest") +add_subdirectory("${gtest_dir}" "${gmock_BINARY_DIR}/${gtest_dir}") # These commands only run if this is the main project @@ -75,18 +78,6 @@ set(gmock_build_include_dirs "${gtest_SOURCE_DIR}") include_directories(${gmock_build_include_dirs}) -# Summary of tuple support for Microsoft Visual Studio: -# Compiler version(MS) version(cmake) Support -# ---------- ----------- -------------- ----------------------------- -# <= VS 2010 <= 10 <= 1600 Use Google Tests's own tuple. -# VS 2012 11 1700 std::tr1::tuple + _VARIADIC_MAX=10 -# VS 2013 12 1800 std::tr1::tuple -# VS 2015 14 1900 std::tuple -# VS 2017 15 >= 1910 std::tuple -if (MSVC AND MSVC_VERSION EQUAL 1700) - add_definitions(/D _VARIADIC_MAX=10) -endif() - ######################################################################## # # Defines the gmock & gmock_main libraries. User tests should link @@ -145,15 +136,37 @@ if (gmock_build_tests) # 'make test' or ctest. enable_testing() + if (WIN32) + file(GENERATE OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/$/RunTest.ps1" + CONTENT +"$project_bin = \"${CMAKE_BINARY_DIR}/bin/$\" +$env:Path = \"$project_bin;$env:Path\" +& $args") + elseif (MINGW OR CYGWIN) + file(GENERATE OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/RunTest.ps1" + CONTENT +"$project_bin = (cygpath --windows ${CMAKE_BINARY_DIR}/bin) +$env:Path = \"$project_bin;$env:Path\" +& $args") + endif() + + if (MINGW OR CYGWIN) + if (CMAKE_VERSION VERSION_LESS "2.8.12") + add_compile_options("-Wa,-mbig-obj") + else() + add_definitions("-Wa,-mbig-obj") + endif() + endif() + ############################################################ # C++ tests built with standard compiler flags. cxx_test(gmock-actions_test gmock_main) cxx_test(gmock-cardinalities_test gmock_main) cxx_test(gmock_ex_test gmock_main) + cxx_test(gmock-function-mocker_test gmock_main) cxx_test(gmock-generated-actions_test gmock_main) cxx_test(gmock-generated-function-mockers_test gmock_main) - cxx_test(gmock-generated-internal-utils_test gmock_main) cxx_test(gmock-generated-matchers_test gmock_main) cxx_test(gmock-internal-utils_test gmock_main) cxx_test(gmock-matchers_test gmock_main) @@ -182,25 +195,12 @@ if (gmock_build_tests) cxx_library(gmock_main_no_rtti "${cxx_no_rtti}" "${gtest_dir}/src/gtest-all.cc" src/gmock-all.cc src/gmock_main.cc) - if (MSVC_VERSION LESS 1600) # 1600 is Visual Studio 2010. - # Visual Studio 2010, 2012, and 2013 define symbols in std::tr1 that - # conflict with our own definitions. Therefore using our own tuple does not - # work on those compilers. - cxx_library(gmock_main_use_own_tuple "${cxx_use_own_tuple}" - "${gtest_dir}/src/gtest-all.cc" src/gmock-all.cc src/gmock_main.cc) - - cxx_test_with_flags(gmock_use_own_tuple_test "${cxx_use_own_tuple}" - gmock_main_use_own_tuple test/gmock-spec-builders_test.cc) - endif() else() cxx_library(gmock_main_no_exception "${cxx_no_exception}" src/gmock_main.cc) target_link_libraries(gmock_main_no_exception PUBLIC gmock) cxx_library(gmock_main_no_rtti "${cxx_no_rtti}" src/gmock_main.cc) target_link_libraries(gmock_main_no_rtti PUBLIC gmock) - - cxx_library(gmock_main_use_own_tuple "${cxx_use_own_tuple}" src/gmock_main.cc) - target_link_libraries(gmock_main_use_own_tuple PUBLIC gmock) endif() cxx_test_with_flags(gmock-more-actions_no_exception_test "${cxx_no_exception}" gmock_main_no_exception test/gmock-more-actions_test.cc) Modified: vendor/google/googletest/dist/googlemock/README.md ============================================================================== --- vendor/google/googletest/dist/googlemock/README.md Wed Apr 8 20:00:30 2020 (r359731) +++ vendor/google/googletest/dist/googlemock/README.md Thu Apr 9 01:55:35 2020 (r359732) @@ -1,323 +1,44 @@ -## Google Mock ## +# Googletest Mocking (gMock) Framework -The Google C++ mocking framework. +### Overview -### Overview ### +Google's framework for writing and using C++ mock classes. It can help you +derive better designs of your system and write better tests. -Google's framework for writing and using C++ mock classes. -It can help you derive better designs of your system and write better tests. - It is inspired by: - * [jMock](http://www.jmock.org/), - * [EasyMock](http://www.easymock.org/), and - * [Hamcrest](http://code.google.com/p/hamcrest/), +* [jMock](http://www.jmock.org/), +* [EasyMock](http://www.easymock.org/), and *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Thu Apr 9 01:56:21 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DE1E62AAA0C; Thu, 9 Apr 2020 01:56:21 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48yPPx5cbWz3wc7; Thu, 9 Apr 2020 01:56:21 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A215550F4; Thu, 9 Apr 2020 01:56:21 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0391uLYP075567; Thu, 9 Apr 2020 01:56:21 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0391uLxt075566; Thu, 9 Apr 2020 01:56:21 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <202004090156.0391uLxt075566@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Enji Cooper Date: Thu, 9 Apr 2020 01:56:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r359733 - vendor/google/googletest/1.10.0 X-SVN-Group: vendor X-SVN-Commit-Author: ngie X-SVN-Commit-Paths: vendor/google/googletest/1.10.0 X-SVN-Commit-Revision: 359733 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Apr 2020 01:56:21 -0000 Author: ngie Date: Thu Apr 9 01:56:21 2020 New Revision: 359733 URL: https://svnweb.freebsd.org/changeset/base/359733 Log: Copy ^/vendor/google/googletest/dist to ^/vendor/google/googletest/1.10.0 Added: vendor/google/googletest/1.10.0/ - copied from r359732, vendor/google/googletest/dist/ From owner-svn-src-all@freebsd.org Thu Apr 9 02:01:00 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8743C2AAB1E; Thu, 9 Apr 2020 02:01:00 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48yPWJ2D1Fz3wmr; Thu, 9 Apr 2020 02:01:00 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 471735242; Thu, 9 Apr 2020 02:01:00 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 039210fO075930; Thu, 9 Apr 2020 02:01:00 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 039210lh075929; Thu, 9 Apr 2020 02:01:00 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <202004090201.039210lh075929@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Enji Cooper Date: Thu, 9 Apr 2020 02:01:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r359734 - vendor/google/googletest/dist/googletest/src X-SVN-Group: vendor X-SVN-Commit-Author: ngie X-SVN-Commit-Paths: vendor/google/googletest/dist/googletest/src X-SVN-Commit-Revision: 359734 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Apr 2020 02:01:00 -0000 Author: ngie Date: Thu Apr 9 02:00:59 2020 New Revision: 359734 URL: https://svnweb.freebsd.org/changeset/base/359734 Log: Backport a -Wsign-compare fix for `ArrayAsVector` This fixes the build with newer versions of gcc. Obtained from: [google/googletest#2723](https://github.com/google/googletest/pull/2723) Submitted-by: [Johan Mabille](https://github.com/JohanMabille) Modified: vendor/google/googletest/dist/googletest/src/gtest.cc Modified: vendor/google/googletest/dist/googletest/src/gtest.cc ============================================================================== --- vendor/google/googletest/dist/googletest/src/gtest.cc Thu Apr 9 01:56:21 2020 (r359733) +++ vendor/google/googletest/dist/googletest/src/gtest.cc Thu Apr 9 02:00:59 2020 (r359734) @@ -2108,7 +2108,7 @@ static const char* const kReservedOutputTestCaseAttrib "classname", "name", "status", "time", "type_param", "value_param", "file", "line", "result", "timestamp"}; -template +template std::vector ArrayAsVector(const char* const (&array)[kSize]) { return std::vector(array, array + kSize); } From owner-svn-src-all@freebsd.org Thu Apr 9 04:50:22 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 927BB2ADF2C; Thu, 9 Apr 2020 04:50:22 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48yTGk3b93z44vc; Thu, 9 Apr 2020 04:50:22 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 762597224; Thu, 9 Apr 2020 04:50:22 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0394oMYx080526; Thu, 9 Apr 2020 04:50:22 GMT (envelope-from sjg@FreeBSD.org) Received: (from sjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0394oJgJ080510; Thu, 9 Apr 2020 04:50:19 GMT (envelope-from sjg@FreeBSD.org) Message-Id: <202004090450.0394oJgJ080510@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sjg set sender to sjg@FreeBSD.org using -f From: "Simon J. Gerraty" Date: Thu, 9 Apr 2020 04:50:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359735 - in stable/12: lib/libsecureboot lib/libsecureboot/h lib/libsecureboot/tests share/mk stand stand/common stand/efi/loader stand/efi/loader/arch/i386 stand/ficl stand/i386/libi3... X-SVN-Group: stable-12 X-SVN-Commit-Author: sjg X-SVN-Commit-Paths: in stable/12: lib/libsecureboot lib/libsecureboot/h lib/libsecureboot/tests share/mk stand stand/common stand/efi/loader stand/efi/loader/arch/i386 stand/ficl stand/i386/libi386 stand/i386/loader stan... X-SVN-Commit-Revision: 359735 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Apr 2020 04:50:22 -0000 Author: sjg Date: Thu Apr 9 04:50:19 2020 New Revision: 359735 URL: https://svnweb.freebsd.org/changeset/base/359735 Log: veloader use vectx API for kernel and modules The vectx API, computes the hash for verifying a file as it is read. This avoids the overhead of reading files twice - once to verify, then again to load. For doing an install via loader, avoiding the need to rewind large files is critical. This API is only used for modules, kernel and mdimage as these are the biggest files read by the loader. The reduction in boot time depends on how expensive the I/O is on any given platform. On a fast VM we see 6% improvement. For install via loader the first file to be verified is likely to be the kernel, so some of the prep work (finding manifest etc) done by verify_file() needs to be factored so it can be reused for vectx_open(). For missing or unrecognized fingerprint entries, we fail in vectx_open() unless verifying is disabled. Otherwise fingerprint check happens in vectx_close() and since this API is only used for files which must be verified (VE_MUST) we panic if we get an incorrect hash. Fix pkgfs stat so it satisfies libsecureboot We need a valid st_dev, st_ino and st_mtime to correctly track which files have been verified and to update our notion of time. ve_utc_set(): ignore utc if it would jump our current time by more than VE_UTC_MAX_JUMP (20 years). Allow testing of install command via userboot. Need to fix its stat implementation too. bhyveload also needs stat fixed - due to change to userboot.h Call ve_error_get() from vectx_close() when hash is wrong. Track the names of files we have hashed into pcr For the purposes of measured boot, it is important to be able to reproduce the hash reflected in loader.ve.pcr so loader.ve.hashed provides a list of names in the order they were added. Avoid unused vars when VE_ECDSA_HASH_AGAIN undefined MFC of r358744 r358767 r359307 r355962 Reviewed by: imp,tsoome,emaste Sponsored by: Juniper Networks Differential Revision: https://reviews.freebsd.org//D23827 https://reviews.freebsd.org//D24027 Added: stable/12/stand/common/readin.h - copied unchanged from r358767, head/stand/common/readin.h Modified: stable/12/lib/libsecureboot/h/libsecureboot.h stable/12/lib/libsecureboot/h/verify_file.h stable/12/lib/libsecureboot/tests/tvo.c stable/12/lib/libsecureboot/vectx.c stable/12/lib/libsecureboot/veopen.c stable/12/lib/libsecureboot/vepcr.c stable/12/lib/libsecureboot/verify_file.c stable/12/lib/libsecureboot/vets.c stable/12/share/mk/src.opts.mk stable/12/stand/common/bootstrap.h stable/12/stand/common/install.c stable/12/stand/common/interp_forth.c stable/12/stand/common/interp_simple.c stable/12/stand/common/load_elf.c stable/12/stand/common/load_elf_obj.c stable/12/stand/common/misc.c stable/12/stand/common/module.c stable/12/stand/efi/loader/arch/i386/i386_copy.c stable/12/stand/efi/loader/copy.c stable/12/stand/efi/loader/loader_efi.h stable/12/stand/efi/loader/main.c stable/12/stand/ficl/loader.c stable/12/stand/i386/libi386/i386_copy.c stable/12/stand/i386/libi386/libi386.h stable/12/stand/i386/loader/chain.c stable/12/stand/libsa/pkgfs.c stable/12/stand/loader.mk stable/12/stand/mips/beri/loader/arch.c stable/12/stand/powerpc/kboot/main.c stable/12/stand/uboot/lib/copy.c stable/12/stand/uboot/lib/libuboot.h stable/12/stand/userboot/test/test.c stable/12/stand/userboot/userboot.h stable/12/stand/userboot/userboot/conf.c stable/12/stand/userboot/userboot/copy.c stable/12/stand/userboot/userboot/host.c stable/12/stand/userboot/userboot/libuserboot.h stable/12/usr.sbin/bhyveload/bhyveload.c Modified: stable/12/lib/libsecureboot/h/libsecureboot.h ============================================================================== --- stable/12/lib/libsecureboot/h/libsecureboot.h Thu Apr 9 02:00:59 2020 (r359734) +++ stable/12/lib/libsecureboot/h/libsecureboot.h Thu Apr 9 04:50:19 2020 (r359735) @@ -69,12 +69,6 @@ void fingerprint_info_add(const char *, const char *, int ve_check_hash(br_hash_compat_context *, const br_hash_class *, const char *, const char *, size_t); -struct vectx; -struct vectx* vectx_open(int, const char *, off_t, struct stat *, int *); -ssize_t vectx_read(struct vectx *, void *, size_t); -off_t vectx_lseek(struct vectx *, off_t, int); -int vectx_close(struct vectx *); - char * hexdigest(char *, size_t, unsigned char *, size_t); int verify_fd(int, const char *, off_t, struct stat *); int verify_open(const char *, int); @@ -84,10 +78,11 @@ unsigned char *verify_sig(const char *, int); unsigned char *verify_asc(const char *, int); /* OpenPGP */ void ve_pcr_init(void); -void ve_pcr_update(unsigned char *, size_t); +void ve_pcr_update(const char *, unsigned char *, size_t); ssize_t ve_pcr_get(unsigned char *, size_t); int ve_pcr_updating_get(void); void ve_pcr_updating_set(int); +char * ve_pcr_hashed_get(int); /* flags for verify_{asc,sig,signed} */ #define VEF_VERBOSE 1 Modified: stable/12/lib/libsecureboot/h/verify_file.h ============================================================================== --- stable/12/lib/libsecureboot/h/verify_file.h Thu Apr 9 02:00:59 2020 (r359734) +++ stable/12/lib/libsecureboot/h/verify_file.h Thu Apr 9 04:50:19 2020 (r359735) @@ -39,13 +39,21 @@ struct stat; -void ve_debug_set(int); -int ve_status_get(int); -void ve_efi_init(void); -int load_manifest(const char *, const char *, const char *, struct stat *); -int pass_manifest(const char *, const char *); -int pass_manifest_export_envs(void); -int verify_file(int, const char *, off_t, int); -void verify_pcr_export(void); +int verify_prep(int, const char *, off_t, struct stat *, const char *); +void ve_debug_set(int); +char *ve_error_get(void); +void ve_efi_init(void); +int ve_status_get(int); +int load_manifest(const char *, const char *, const char *, struct stat *); +int pass_manifest(const char *, const char *); +int pass_manifest_export_envs(void); +int verify_file(int, const char *, off_t, int, const char *); +void verify_pcr_export(void); + +struct vectx; +struct vectx* vectx_open(int, const char *, off_t, struct stat *, int *, const char *); +ssize_t vectx_read(struct vectx *, void *, size_t); +off_t vectx_lseek(struct vectx *, off_t, int); +int vectx_close(struct vectx *, int, const char *); #endif /* _VERIFY_FILE_H_ */ Modified: stable/12/lib/libsecureboot/tests/tvo.c ============================================================================== --- stable/12/lib/libsecureboot/tests/tvo.c Thu Apr 9 02:00:59 2020 (r359734) +++ stable/12/lib/libsecureboot/tests/tvo.c Thu Apr 9 04:50:19 2020 (r359735) @@ -31,6 +31,8 @@ __FBSDID("$FreeBSD$"); #include #include +size_t DestdirLen; +char *Destdir; char *Skip; int @@ -42,7 +44,10 @@ main(int argc, char *argv[]) int Vflag; char *cp; char *prefix; + char *destdir; + Destdir = NULL; + DestdirLen = 0; prefix = NULL; Skip = NULL; @@ -50,8 +55,12 @@ main(int argc, char *argv[]) printf("Trust %d\n", n); Vflag = 0; - while ((c = getopt(argc, argv, "dp:s:T:V")) != -1) { + while ((c = getopt(argc, argv, "D:dp:s:T:V")) != -1) { switch (c) { + case 'D': + Destdir = optarg; + DestdirLen = strlen(optarg); + break; case 'd': DebugVe++; break; @@ -92,7 +101,7 @@ main(int argc, char *argv[]) */ int x; - x = verify_file(fd, argv[optind], 0, VE_GUESS); + x = verify_file(fd, argv[optind], 0, VE_GUESS, __func__); printf("verify_file(%s) = %d\n", argv[optind], x); close(fd); } @@ -147,7 +156,7 @@ main(int argc, char *argv[]) lseek(fd, 0, SEEK_SET); off = st.st_size % 512; vp = vectx_open(fd, argv[optind], off, - &st, &error); + &st, &error, __func__); if (!vp) { printf("vectx_open(%s) failed: %d %s\n", argv[optind], error, @@ -155,7 +164,8 @@ main(int argc, char *argv[]) } else { off = vectx_lseek(vp, (st.st_size % 1024), SEEK_SET); - + /* we can seek backwards! */ + off = vectx_lseek(vp, off/2, SEEK_SET); if (off < st.st_size) { n = vectx_read(vp, buf, sizeof(buf)); @@ -165,7 +175,7 @@ main(int argc, char *argv[]) off = vectx_lseek(vp, 0, SEEK_END); /* repeating that should be harmless */ off = vectx_lseek(vp, 0, SEEK_END); - error = vectx_close(vp); + error = vectx_close(vp, VE_MUST, __func__); if (error) { printf("vectx_close(%s) == %d %s\n", argv[optind], error, Modified: stable/12/lib/libsecureboot/vectx.c ============================================================================== --- stable/12/lib/libsecureboot/vectx.c Thu Apr 9 02:00:59 2020 (r359734) +++ stable/12/lib/libsecureboot/vectx.c Thu Apr 9 04:50:19 2020 (r359735) @@ -33,6 +33,7 @@ __FBSDID("$FreeBSD$"); #endif #include "libsecureboot-priv.h" +#include /** * @file vectx.c @@ -50,12 +51,14 @@ struct vectx { const char *vec_path; /* path we are verifying */ const char *vec_want; /* hash value we want */ off_t vec_off; /* current offset */ + off_t vec_hashed; /* where we have hashed to */ size_t vec_size; /* size of path */ size_t vec_hashsz; /* size of hash */ int vec_fd; /* file descriptor */ int vec_status; /* verification status */ }; + /** * @brief * verify an open file as we read it @@ -86,24 +89,31 @@ struct vectx { * NULL is only returned for non-files or out-of-memory. */ struct vectx * -vectx_open(int fd, const char *path, off_t off, struct stat *stp, int *error) +vectx_open(int fd, const char *path, off_t off, struct stat *stp, + int *error, const char *caller) { struct vectx *ctx; struct stat st; size_t hashsz; char *cp; + int rc; - if (!stp) { - if (fstat(fd, &st) == 0) - stp = &st; - } + if (!stp) + stp = &st; - /* we *should* only get called for files */ - if (stp && !S_ISREG(stp->st_mode)) { - *error = 0; + rc = verify_prep(fd, path, off, stp, __func__); + + DEBUG_PRINTF(2, + ("vectx_open: caller=%s,fd=%d,name='%s',prep_rc=%d\n", + caller, fd, path, rc)); + + switch (rc) { + case VE_FINGERPRINT_NONE: + case VE_FINGERPRINT_UNKNOWN: + case VE_FINGERPRINT_WRONG: + *error = rc; return (NULL); } - ctx = malloc(sizeof(struct vectx)); if (!ctx) goto enomem; @@ -111,10 +121,16 @@ vectx_open(int fd, const char *path, off_t off, struct ctx->vec_path = path; ctx->vec_size = stp->st_size; ctx->vec_off = 0; + ctx->vec_hashed = 0; ctx->vec_want = NULL; ctx->vec_status = 0; - hashsz = 0; + ctx->vec_hashsz = hashsz = 0; + if (rc == 0) { + /* we are not verifying this */ + *error = 0; + return (ctx); + } cp = fingerprint_info_lookup(fd, path); if (!cp) { ctx->vec_status = VE_FINGERPRINT_NONE; @@ -161,6 +177,10 @@ vectx_open(int fd, const char *path, off_t off, struct vectx_lseek(ctx, off, SEEK_SET); } } + DEBUG_PRINTF(2, + ("vectx_open: caller=%s,name='%s',hashsz=%lu,status=%d\n", + caller, path, (unsigned long)ctx->vec_hashsz, + ctx->vec_status)); return (ctx); enomem: /* unlikely */ @@ -175,6 +195,8 @@ enomem: /* unlikely */ * * It is critical that all file I/O comes through here. * We keep track of current offset. + * We also track what offset we have hashed to, + * so we won't replay data if we seek backwards. * * @param[in] pctx * pointer to ctx @@ -190,6 +212,8 @@ vectx_read(struct vectx *ctx, void *buf, size_t nbytes { unsigned char *bp = buf; int n; + int delta; + int x; size_t off; if (ctx->vec_hashsz == 0) /* nothing to do */ @@ -201,9 +225,20 @@ vectx_read(struct vectx *ctx, void *buf, size_t nbytes if (n < 0) return (n); if (n > 0) { - ctx->vec_md->update(&ctx->vec_ctx.vtable, &bp[off], n); - off += n; - ctx->vec_off += n; + /* we may have seeked backwards! */ + delta = ctx->vec_hashed - ctx->vec_off; + if (delta > 0) { + x = MIN(delta, n); + off += x; + n -= x; + ctx->vec_off += x; + } + if (n > 0) { + ctx->vec_md->update(&ctx->vec_ctx.vtable, &bp[off], n); + off += n; + ctx->vec_off += n; + ctx->vec_hashed += n; + } } } while (n > 0 && off < nbytes); return (off); @@ -213,10 +248,10 @@ vectx_read(struct vectx *ctx, void *buf, size_t nbytes * @brief * vectx equivalent of lseek * - * We do not actually, seek, but call vectx_read + * When seeking forwards we actually call vectx_read * to reach the desired offset. * - * We do not support seeking backwards. + * We support seeking backwards. * * @param[in] pctx * pointer to ctx @@ -225,6 +260,8 @@ vectx_read(struct vectx *ctx, void *buf, size_t nbytes * desired offset * * @param[in] whence + * We try to convert whence to ``SEEK_SET``. + * We do not support ``SEEK_DATA`` or ``SEEK_HOLE``. * * @return offset or error. */ @@ -239,22 +276,26 @@ vectx_lseek(struct vectx *ctx, off_t off, int whence) return (lseek(ctx->vec_fd, off, whence)); /* - * Try to convert whence to SEEK_SET - * but we cannot support seeking backwards! - * Nor beyond end of file. + * Convert whence to SEEK_SET */ if (whence == SEEK_END && off <= 0) { whence = SEEK_SET; off += ctx->vec_size; - } else if (whence == SEEK_CUR && off >= 0) { + } else if (whence == SEEK_CUR) { whence = SEEK_SET; off += ctx->vec_off; } - if (whence != SEEK_SET || off < ctx->vec_off || + if (whence != SEEK_SET || (size_t)off > ctx->vec_size) { - printf("ERROR: %s: unsupported operation\n", __func__); + printf("ERROR: %s: unsupported operation: whence=%d off=%lld -> %lld\n", + __func__, whence, (long long)ctx->vec_off, (long long)off); return (-1); } + if (off < ctx->vec_hashed) { + /* seeking backwards! just do it */ + ctx->vec_off = lseek(ctx->vec_fd, off, whence); + return (ctx->vec_off); + } n = 0; do { delta = off - ctx->vec_off; @@ -275,21 +316,48 @@ vectx_lseek(struct vectx *ctx, off_t off, int whence) * We have finished reading file, compare the hash with what * we wanted. * + * Be sure to call this before closing the file, since we may + * need to seek to the end to ensure hashing is complete. + * * @param[in] pctx * pointer to ctx * * @return 0 or an error. */ int -vectx_close(struct vectx *ctx) +vectx_close(struct vectx *ctx, int severity, const char *caller) { int rc; if (ctx->vec_hashsz == 0) { rc = ctx->vec_status; } else { +#ifdef VE_PCR_SUPPORT + /* + * Only update pcr with things that must verify + * these tend to be processed in a more deterministic + * order, which makes our pseudo pcr more useful. + */ + ve_pcr_updating_set((severity == VE_MUST)); +#endif + /* make sure we have hashed it all */ + vectx_lseek(ctx, 0, SEEK_END); rc = ve_check_hash(&ctx->vec_ctx, ctx->vec_md, ctx->vec_path, ctx->vec_want, ctx->vec_hashsz); + } + DEBUG_PRINTF(2, + ("vectx_close: caller=%s,name='%s',rc=%d,severity=%d\n", + caller,ctx->vec_path, rc, severity)); + if (rc == VE_FINGERPRINT_WRONG) { + printf("Unverified: %s\n", ve_error_get()); +#if !defined(UNIT_TEST) && !defined(DEBUG_VECTX) + /* we are generally called with VE_MUST */ + if (severity > VE_WANT) + panic("cannot continue"); +#endif + } else if (severity > VE_WANT) { + printf("%serified %s\n", (rc <= 0) ? "Unv" : "V", + ctx->vec_path); } free(ctx); return ((rc < 0) ? rc : 0); Modified: stable/12/lib/libsecureboot/veopen.c ============================================================================== --- stable/12/lib/libsecureboot/veopen.c Thu Apr 9 02:00:59 2020 (r359734) +++ stable/12/lib/libsecureboot/veopen.c Thu Apr 9 04:50:19 2020 (r359735) @@ -86,9 +86,11 @@ fingerprint_info_add(const char *filename, const char } nfip->fi_prefix = strdup(filename); cp = strrchr(nfip->fi_prefix, '/'); - if (cp) + if (cp == nfip->fi_prefix) { + cp[1] = '\0'; + } else if (cp) { *cp = '\0'; - else { + } else { free(nfip->fi_prefix); free(nfip); return; @@ -96,7 +98,7 @@ fingerprint_info_add(const char *filename, const char } /* collapse any trailing ..[/] */ n = 0; - while ((cp = strrchr(nfip->fi_prefix, '/')) != NULL) { + while ((cp = strrchr(nfip->fi_prefix, '/')) > nfip->fi_prefix) { if (cp[1] == '\0') { /* trailing "/" */ *cp = '\0'; continue; Modified: stable/12/lib/libsecureboot/vepcr.c ============================================================================== --- stable/12/lib/libsecureboot/vepcr.c Thu Apr 9 02:00:59 2020 (r359734) +++ stable/12/lib/libsecureboot/vepcr.c Thu Apr 9 04:50:19 2020 (r359735) @@ -25,6 +25,7 @@ #include __FBSDID("$FreeBSD$"); +#include #include "libsecureboot-priv.h" /* @@ -43,8 +44,17 @@ __FBSDID("$FreeBSD$"); static const br_hash_class *pcr_md = NULL; static br_hash_compat_context pcr_ctx; static size_t pcr_hlen = 0; -static int pcr_updating; +static int pcr_updating = -1; +struct hashed_info { + const char *hi_path; + const char *hi_basename; + STAILQ_ENTRY(hashed_info) entries; +}; + +static STAILQ_HEAD(, hashed_info) hi_list; + + /** * @brief initialize pcr context * @@ -54,10 +64,13 @@ static int pcr_updating; void ve_pcr_init(void) { - pcr_updating = 0; - pcr_hlen = br_sha256_SIZE; - pcr_md = &br_sha256_vtable; - pcr_md->init(&pcr_ctx.vtable); + if (pcr_updating < 0) { + pcr_updating = 0; + pcr_hlen = br_sha256_SIZE; + pcr_md = &br_sha256_vtable; + pcr_md->init(&pcr_ctx.vtable); + STAILQ_INIT(&hi_list); + } } /** @@ -82,10 +95,28 @@ ve_pcr_updating_set(int updating) * @brief update pcr context */ void -ve_pcr_update(unsigned char *data, size_t dlen) +ve_pcr_update(const char *path, unsigned char *data, size_t dlen) { - if (pcr_updating != 0 && pcr_md != NULL) + struct hashed_info *hip; + + if (pcr_updating > 0 && pcr_md != NULL) { pcr_md->update(&pcr_ctx.vtable, data, dlen); + /* if mallocs fail, measured boot will likely fail too */ + if ((hip = malloc(sizeof(struct hashed_info)))) { + hip->hi_path = strdup(path); + if (!hip->hi_path) { + free(hip); + return; + } + hip->hi_basename = strrchr(hip->hi_path, '/'); + if (hip->hi_basename) { + hip->hi_basename++; + } else { + hip->hi_basename = hip->hi_path; + } + STAILQ_INSERT_TAIL(&hi_list, hip, entries); + } + } } /** @@ -102,3 +133,37 @@ ve_pcr_get(unsigned char *buf, size_t sz) return (pcr_hlen); } +/** + * @brief get list of paths in prc + */ +char * +ve_pcr_hashed_get(int flags) +{ + const char *cp; + char *hinfo; + struct hashed_info *hip; + size_t nbytes; + size_t x; + int n; + + n = 0; + nbytes = x = 0; + hinfo = NULL; + STAILQ_FOREACH(hip, &hi_list, entries) { + nbytes += 1 + strlen(flags ? hip->hi_basename : hip->hi_path); + } + if (nbytes > 1) { + hinfo = malloc(nbytes + 2); + if (hinfo) { + STAILQ_FOREACH(hip, &hi_list, entries) { + cp = flags ? hip->hi_basename : hip->hi_path; + n = snprintf(&hinfo[x], nbytes - x, "%s,", cp); + x += n; + } + if (x > 0) { + hinfo[x-1] = '\0'; + } + } + } + return hinfo; +} Modified: stable/12/lib/libsecureboot/verify_file.c ============================================================================== --- stable/12/lib/libsecureboot/verify_file.c Thu Apr 9 02:00:59 2020 (r359734) +++ stable/12/lib/libsecureboot/verify_file.c Thu Apr 9 04:50:19 2020 (r359735) @@ -43,6 +43,8 @@ __FBSDID("$FreeBSD$"); * define MANIFEST_SKIP to Skip - in tests/tvo.c so that * tvo can control the value we use in find_manifest() */ +extern char *Destdir; +extern size_t DestdirLen; extern char *Skip; # undef MANIFEST_SKIP # define MANIFEST_SKIP Skip @@ -115,10 +117,12 @@ is_verified(struct stat *stp) { struct verify_status *vsp; - for (vsp = verified_files; vsp != NULL; vsp = vsp->vs_next) { - if (stp->st_dev == vsp->vs_dev && - stp->st_ino == vsp->vs_ino) - return (vsp->vs_status); + if (stp->st_ino > 0) { + for (vsp = verified_files; vsp != NULL; vsp = vsp->vs_next) { + if (stp->st_dev == vsp->vs_dev && + stp->st_ino == vsp->vs_ino) + return (vsp->vs_status); + } } return (VE_NOT_CHECKED); } @@ -167,12 +171,21 @@ load_manifest(const char *name, const char *prefix, ve_utc_set(stp->st_mtime); content = (char *)verify_signed(name, VEF_VERBOSE); if (content) { +#ifdef UNIT_TEST + if (DestdirLen > 0 && + strncmp(name, Destdir, DestdirLen) == 0) { + name += DestdirLen; + if (prefix && + strncmp(prefix, Destdir, DestdirLen) == 0) + prefix += DestdirLen; + } +#endif fingerprint_info_add(name, prefix, skip, content, stp); add_verify_status(stp, VE_VERIFIED); loaded_manifests = 1; /* we are verifying! */ DEBUG_PRINTF(3, ("loaded: %s %s %s\n", name, prefix, skip)); - rc = 0; + rc = VE_VERIFIED; } else { rc = VE_FINGERPRINT_WRONG; add_verify_status(stp, rc); /* remember */ @@ -245,13 +258,15 @@ severity_guess(const char *filename) return (VE_WANT); } +static int Verifying = -1; /* 0 if not verifying */ + static void verify_tweak(int fd, off_t off, struct stat *stp, char *tweak, int *accept_no_fp, - int *verbose, int *verifying) + int *verbose) { if (strcmp(tweak, "off") == 0) { - *verifying = 0; + Verifying = 0; } else if (strcmp(tweak, "strict") == 0) { /* anything caller wants verified must be */ *accept_no_fp = VE_WANT; @@ -314,7 +329,60 @@ getenv_int(const char *var, int def) return (int)val; } + /** + * @brief prepare to verify an open file + * + * @param[in] fd + * open descriptor + * + * @param[in] filename + * path we opened and will use to lookup fingerprint + * + * @param[in] stp + * stat pointer so we can check file type + */ +int +verify_prep(int fd, const char *filename, off_t off, struct stat *stp, + const char *caller) +{ + int rc; + + if (Verifying < 0) { + Verifying = ve_trust_init(); +#ifndef UNIT_TEST + ve_debug_set(getenv_int("VE_DEBUG_LEVEL", VE_DEBUG_LEVEL)); +#endif + /* initialize ve_status with default result */ + rc = Verifying ? VE_NOT_CHECKED : VE_NOT_VERIFYING; + ve_status_set(0, rc); + ve_status_state = VE_STATUS_NONE; + if (Verifying) { + ve_self_tests(); + ve_anchor_verbose_set(1); + } + } + if (!Verifying || fd < 0) + return (0); + if (stp) { + if (fstat(fd, stp) < 0 || !S_ISREG(stp->st_mode)) + return (0); + } + DEBUG_PRINTF(2, + ("verify_prep: caller=%s,fd=%d,name='%s',off=%lld,dev=%lld,ino=%lld\n", + caller, fd, filename, (long long)off, (long long)stp->st_dev, + (long long)stp->st_ino)); + rc = is_verified(stp); + DEBUG_PRINTF(4,("verify_prep: is_verified()->%d\n", rc)); + if (rc == VE_NOT_CHECKED) { + rc = find_manifest(filename); + } else { + ve_status_set(fd, rc); + } + return (rc); +} + +/** * @brief verify an open file * * @param[in] fd @@ -342,45 +410,26 @@ getenv_int(const char *var, int def) * @return >= 0 on success < 0 on failure */ int -verify_file(int fd, const char *filename, off_t off, int severity) +verify_file(int fd, const char *filename, off_t off, int severity, + const char *caller) { - static int verifying = -1; + static int once; static int accept_no_fp = ACCEPT_NO_FP_DEFAULT; static int verbose = VE_VERBOSE_DEFAULT; struct stat st; char *cp; int rc; - if (verifying < 0) { - verifying = ve_trust_init(); - verbose = getenv_int("VE_VERBOSE", VE_VERBOSE_DEFAULT); - ve_debug_set(getenv_int("VE_DEBUG_LEVEL", VE_DEBUG_LEVEL)); - /* initialize ve_status with default result */ - rc = verifying ? VE_NOT_CHECKED : VE_NOT_VERIFYING; - ve_status_set(0, rc); - ve_status_state = VE_STATUS_NONE; - if (verifying) { - ve_self_tests(); - ve_anchor_verbose_set(1); - } - } - if (!verifying) - return (0); + rc = verify_prep(fd, filename, off, &st, caller); - if (fd < 0 || fstat(fd, &st) < 0 || !S_ISREG(st.st_mode)) + if (!rc) return (0); - DEBUG_PRINTF(3, ("fd=%d,name='%s',off=%lld,dev=%lld,ino=%lld\n", - fd, filename, (long long)off, (long long)st.st_dev, - (long long)st.st_ino)); - - - rc = is_verified(&st); - if (rc != VE_NOT_CHECKED) { - ve_status_set(fd, rc); - return (rc); + if (!once) { + once++; + verbose = getenv_int("VE_VERBOSE", VE_VERBOSE_DEFAULT); } - rc = find_manifest(filename); + if (rc != VE_FINGERPRINT_WRONG && loaded_manifests) { if (severity <= VE_GUESS) severity = severity_guess(filename); @@ -392,6 +441,12 @@ verify_file(int fd, const char *filename, off_t off, i */ ve_pcr_updating_set((severity == VE_MUST)); #endif +#ifdef UNIT_TEST + if (DestdirLen > 0 && + strncmp(filename, Destdir, DestdirLen) == 0) { + filename += DestdirLen; + } +#endif if ((rc = verify_fd(fd, filename, off, &st)) >= 0) { if (verbose || severity > VE_WANT) { #if defined(VE_DEBUG_LEVEL) && VE_DEBUG_LEVEL > 0 @@ -406,14 +461,12 @@ verify_file(int fd, const char *filename, off_t off, i #endif } if (severity < VE_MUST) { /* not a kernel or module */ - if ((cp = strrchr(filename, '/'))) { cp++; if (strncmp(cp, "loader.ve.", 10) == 0) { cp += 10; verify_tweak(fd, off, &st, cp, - &accept_no_fp, &verbose, - &verifying); + &accept_no_fp, &verbose); } } } @@ -460,6 +513,7 @@ verify_pcr_export(void) #ifdef VE_PCR_SUPPORT char hexbuf[br_sha256_SIZE * 2 + 2]; unsigned char hbuf[br_sha256_SIZE]; + char *hinfo; char *hex; ssize_t hlen; @@ -469,6 +523,17 @@ verify_pcr_export(void) if (hex) { hex[hlen*2] = '\0'; /* clobber newline */ setenv("loader.ve.pcr", hex, 1); + DEBUG_PRINTF(1, + ("%s: setenv(loader.ve.pcr, %s\n", __func__, + hex)); + hinfo = ve_pcr_hashed_get(1); + if (hinfo) { + setenv("loader.ve.hashed", hinfo, 1); + DEBUG_PRINTF(1, + ("%s: setenv(loader.ve.hashed, %s\n", + __func__, hinfo)); + free(hinfo); + } } } #endif Modified: stable/12/lib/libsecureboot/vets.c ============================================================================== --- stable/12/lib/libsecureboot/vets.c Thu Apr 9 02:00:59 2020 (r359734) +++ stable/12/lib/libsecureboot/vets.c Thu Apr 9 04:50:19 2020 (r359735) @@ -44,6 +44,10 @@ __FBSDID("$FreeBSD$"); #endif #define SECONDS_PER_DAY 86400 +#define SECONDS_PER_YEAR 365 * SECONDS_PER_DAY +#ifndef VE_UTC_MAX_JUMP +# define VE_UTC_MAX_JUMP 20 * SECONDS_PER_YEAR +#endif #define X509_DAYS_TO_UTC0 719528 int DebugVe = 0; @@ -113,12 +117,14 @@ static time_t ve_utc = 0; * set ve_utc used for certificate verification * * @param[in] utc - * time - ignored unless greater than current value. + * time - ignored unless greater than current value + * and not a leap of 20 years or more. */ void ve_utc_set(time_t utc) { - if (utc > ve_utc) { + if (utc > ve_utc && + (ve_utc == 0 || (utc - ve_utc) < VE_UTC_MAX_JUMP)) { DEBUG_PRINTF(2, ("Set ve_utc=%jd\n", (intmax_t)utc)); ve_utc = utc; } @@ -345,11 +351,11 @@ ve_trust_init(void) if (once >= 0) return (once); - - ve_utc_set(time(NULL)); + once = 0; /* to be sure */ #ifdef BUILD_UTC - ve_utc_set(BUILD_UTC); /* just in case */ + ve_utc_set(BUILD_UTC); /* ensure sanity */ #endif + ve_utc_set(time(NULL)); ve_error_set(NULL); /* make sure it is empty */ #ifdef VE_PCR_SUPPORT ve_pcr_init(); @@ -642,9 +648,10 @@ hexdigest(char *buf, size_t bufsz, unsigned char *foo, static unsigned char * verify_ec(br_x509_pkey *pk, const char *file, const char *sigfile) { - char hexbuf[br_sha512_SIZE * 2 + 2]; +#ifdef VE_ECDSA_HASH_AGAIN + char *hex, hexbuf[br_sha512_SIZE * 2 + 2]; +#endif unsigned char rhbuf[br_sha512_SIZE]; - char *hex; br_sha256_context ctx; unsigned char *fcp, *scp; size_t flen, slen, plen; @@ -902,7 +909,7 @@ ve_check_hash(br_hash_compat_context *ctx, const br_ha md->out(&ctx->vtable, hbuf); #ifdef VE_PCR_SUPPORT - ve_pcr_update(hbuf, hlen); + ve_pcr_update(path, hbuf, hlen); #endif hex = hexdigest(hexbuf, sizeof(hexbuf), hbuf, hlen); if (!hex) Modified: stable/12/share/mk/src.opts.mk ============================================================================== --- stable/12/share/mk/src.opts.mk Thu Apr 9 02:00:59 2020 (r359734) +++ stable/12/share/mk/src.opts.mk Thu Apr 9 04:50:19 2020 (r359735) @@ -221,6 +221,7 @@ __DEFAULT_DEPENDENT_OPTIONS= \ CLANG_FULL/CLANG \ LOADER_VERIEXEC/BEARSSL \ LOADER_EFI_SECUREBOOT/LOADER_VERIEXEC \ + LOADER_VERIEXEC_VECTX/LOADER_VERIEXEC \ VERIEXEC/BEARSSL \ # MK_*_SUPPORT options which default to "yes" unless their corresponding Modified: stable/12/stand/common/bootstrap.h ============================================================================== --- stable/12/stand/common/bootstrap.h Thu Apr 9 02:00:59 2020 (r359734) +++ stable/12/stand/common/bootstrap.h Thu Apr 9 04:50:19 2020 (r359735) @@ -33,6 +33,8 @@ #include #include +#include "readin.h" + /* Commands and return values; nonzero return sets command_errmsg != NULL */ typedef int (bootblk_cmd_t)(int argc, char *argv[]); #define COMMAND_ERRBUFSZ (256) @@ -70,8 +72,8 @@ void hexdump(caddr_t region, size_t len); size_t strlenout(vm_offset_t str); char *strdupout(vm_offset_t str); void kern_bzero(vm_offset_t dest, size_t len); -int kern_pread(int fd, vm_offset_t dest, size_t len, off_t off); -void *alloc_pread(int fd, off_t off, size_t len); +int kern_pread(readin_handle_t fd, vm_offset_t dest, size_t len, off_t off); +void *alloc_pread(readin_handle_t fd, off_t off, size_t len); /* bcache.c */ void bcache_init(size_t nblks, size_t bsize); @@ -303,7 +305,7 @@ struct arch_switch ssize_t (*arch_copyout)(const vm_offset_t src, void *dest, const size_t len); /* Read from file to module address space, same semantics as read() */ - ssize_t (*arch_readin)(const int fd, vm_offset_t dest, + ssize_t (*arch_readin)(readin_handle_t fd, vm_offset_t dest, const size_t len); /* Perform ISA byte port I/O (only for systems with ISA) */ int (*arch_isainb)(int port); @@ -347,10 +349,6 @@ time_t time(time_t *tloc); #ifndef CTASSERT #define CTASSERT(x) _Static_assert(x, "compile-time assertion failed") -#endif - -#ifdef LOADER_VERIEXEC -#include #endif #endif /* !_BOOTSTRAP_H_ */ Modified: stable/12/stand/common/install.c ============================================================================== --- stable/12/stand/common/install.c Thu Apr 9 02:00:59 2020 (r359734) +++ stable/12/stand/common/install.c Thu Apr 9 04:50:19 2020 (r359735) @@ -210,6 +210,13 @@ install(char *pkgname) if (currdev != NULL && strcmp(currdev, "pxe0:") == 0) { devname = "pxe0"; proto = NULL; +#ifdef HOSTPROG + } else if (currdev != NULL && strcmp(currdev, "host0:") == 0) { + extern struct fs_ops host_fsops; + + devname = "host0"; + proto = &host_fsops; +#endif } else { devname = "disk1"; proto = &dosfs_fsops; @@ -236,6 +243,10 @@ install(char *pkgname) goto invalid_url; setenv("serverip", inet_ntoa(servip), 1); + + if (proto == &tftp_fsops) { + tftpip.s_addr = servip.s_addr; + } *pkgname = '/'; } else Modified: stable/12/stand/common/interp_forth.c ============================================================================== --- stable/12/stand/common/interp_forth.c Thu Apr 9 02:00:59 2020 (r359734) +++ stable/12/stand/common/interp_forth.c Thu Apr 9 04:50:19 2020 (r359735) @@ -284,7 +284,7 @@ bf_init(void) /* try to load and run init file if present */ if ((fd = open("/boot/boot.4th", O_RDONLY)) != -1) { #ifdef LOADER_VERIEXEC - if (verify_file(fd, "/boot/boot.4th", 0, VE_GUESS) < 0) { + if (verify_file(fd, "/boot/boot.4th", 0, VE_GUESS, __func__) < 0) { close(fd); return; } @@ -386,7 +386,7 @@ interp_include(const char *filename) } #ifdef LOADER_VERIEXEC - if (verify_file(fd, filename, 0, VE_GUESS) < 0) { + if (verify_file(fd, filename, 0, VE_GUESS, __func__) < 0) { close(fd); sprintf(command_errbuf,"can't verify '%s'", filename); return(CMD_ERROR); Modified: stable/12/stand/common/interp_simple.c ============================================================================== --- stable/12/stand/common/interp_simple.c Thu Apr 9 02:00:59 2020 (r359734) +++ stable/12/stand/common/interp_simple.c Thu Apr 9 04:50:19 2020 (r359735) @@ -97,7 +97,7 @@ interp_include(const char *filename) } #ifdef LOADER_VERIEXEC - if (verify_file(fd, filename, 0, VE_GUESS) < 0) { + if (verify_file(fd, filename, 0, VE_GUESS, __func__) < 0) { close(fd); sprintf(command_errbuf,"can't verify '%s'", filename); return(CMD_ERROR); Modified: stable/12/stand/common/load_elf.c ============================================================================== --- stable/12/stand/common/load_elf.c Thu Apr 9 02:00:59 2020 (r359734) +++ stable/12/stand/common/load_elf.c Thu Apr 9 04:50:19 2020 (r359735) @@ -71,8 +71,17 @@ typedef struct elf_file { size_t firstlen; int kernel; uint64_t off; +#ifdef LOADER_VERIEXEC_VECTX + struct vectx *vctx; +#endif } *elf_file_t; +#ifdef LOADER_VERIEXEC_VECTX +#define VECTX_HANDLE(ef) (ef)->vctx +#else +#define VECTX_HANDLE(ef) (ef)->fd +#endif + static int __elfN(loadimage)(struct preloaded_file *mp, elf_file_t ef, uint64_t loadaddr); static int __elfN(lookup_symbol)(struct preloaded_file *mp, elf_file_t ef, @@ -214,7 +223,20 @@ __elfN(load_elf_header)(char *filename, elf_file_t ef) close(ef->fd); return (ENOMEM); } - bytes_read = read(ef->fd, ef->firstpage, PAGE_SIZE); +#ifdef LOADER_VERIEXEC_VECTX + { + int verror; + + ef->vctx = vectx_open(ef->fd, filename, 0L, NULL, &verror, __func__); + if (verror) { + printf("Unverified %s: %s\n", filename, ve_error_get()); + close(ef->fd); + free(ef->vctx); + return (EAUTH); + } + } +#endif + bytes_read = VECTX_READ(VECTX_HANDLE(ef), ef->firstpage, PAGE_SIZE); ef->firstlen = (size_t)bytes_read; if (bytes_read < 0 || ef->firstlen <= sizeof(Elf_Ehdr)) { err = EFTYPE; /* could be EIO, but may be small file */ @@ -245,10 +267,10 @@ __elfN(load_elf_header)(char *filename, elf_file_t ef) goto error; } -#ifdef LOADER_VERIEXEC - if (verify_file(ef->fd, filename, bytes_read, VE_MUST) < 0) { - err = EAUTH; - goto error; +#if defined(LOADER_VERIEXEC) && !defined(LOADER_VERIEXEC_VECTX) + if (verify_file(ef->fd, filename, bytes_read, VE_MUST, __func__) < 0) { + err = EAUTH; + goto error; } #endif return (0); @@ -259,6 +281,9 @@ error: ef->firstpage = NULL; } if (ef->fd != -1) { +#ifdef LOADER_VERIEXEC_VECTX + free(ef->vctx); +#endif close(ef->fd); ef->fd = -1; } *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Thu Apr 9 05:11:20 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2A23E2AE4FB; Thu, 9 Apr 2020 05:11:20 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48yTkv6kS1z45h3; Thu, 9 Apr 2020 05:11:19 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E21AD7749; Thu, 9 Apr 2020 05:11:19 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0395BJWV093510; Thu, 9 Apr 2020 05:11:19 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0395BJTq093506; Thu, 9 Apr 2020 05:11:19 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <202004090511.0395BJTq093506@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Thu, 9 Apr 2020 05:11:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359736 - in head: etc/mtree share/mk share/zoneinfo share/zoneinfo/tests X-SVN-Group: head X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: in head: etc/mtree share/mk share/zoneinfo share/zoneinfo/tests X-SVN-Commit-Revision: 359736 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Apr 2020 05:11:20 -0000 Author: delphij Date: Thu Apr 9 05:11:18 2020 New Revision: 359736 URL: https://svnweb.freebsd.org/changeset/base/359736 Log: Always install backward compatibility timezones, as they are installed on all major Linux distributions as well as NetBSD and OpenBSD. Remove the undocumented ZONEINFO_OLD_TIMEZONES_SUPPORT and the deprecated OLDTIMEZONES knobs as they are now the default. Reviewed by: ngie, rgrimes MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D24306 Modified: head/etc/mtree/BSD.usr.dist head/share/mk/src.opts.mk head/share/zoneinfo/Makefile head/share/zoneinfo/tests/Makefile Modified: head/etc/mtree/BSD.usr.dist ============================================================================== --- head/etc/mtree/BSD.usr.dist Thu Apr 9 04:50:19 2020 (r359735) +++ head/etc/mtree/BSD.usr.dist Thu Apr 9 05:11:18 2020 (r359736) @@ -1253,15 +1253,25 @@ .. Australia .. + Brazil + .. + Canada + .. + Chile + .. Etc .. Europe .. Indian .. + Mexico + .. Pacific .. SystemV + .. + US .. .. .. Modified: head/share/mk/src.opts.mk ============================================================================== --- head/share/mk/src.opts.mk Thu Apr 9 04:50:19 2020 (r359735) +++ head/share/mk/src.opts.mk Thu Apr 9 05:11:18 2020 (r359736) @@ -218,7 +218,6 @@ __DEFAULT_NO_OPTIONS = \ SORT_THREADS \ SVN \ ZONEINFO_LEAPSECONDS_SUPPORT \ - ZONEINFO_OLD_TIMEZONES_SUPPORT \ # LEFT/RIGHT. Left options which default to "yes" unless their corresponding # RIGHT option is disabled. @@ -466,7 +465,6 @@ MK_GOOGLETEST:= no .if ${MK_ZONEINFO} == "no" MK_ZONEINFO_LEAPSECONDS_SUPPORT:= no -MK_ZONEINFO_OLD_TIMEZONES_SUPPORT:= no .endif .if ${MK_CROSS_COMPILER} == "no" Modified: head/share/zoneinfo/Makefile ============================================================================== --- head/share/zoneinfo/Makefile Thu Apr 9 04:50:19 2020 (r359735) +++ head/share/zoneinfo/Makefile Thu Apr 9 05:11:18 2020 (r359736) @@ -40,11 +40,6 @@ CONTRIBDIR= ${SRCTOP}/contrib/tzdata/ MK_ZONEINFO_LEAPSECONDS_SUPPORT= yes .endif -.if defined(OLDTIMEZONES) -.warning "Using backwards compatibility variable for OLDTIMEZONES; please use WITH_ZONEINFO_OLD_TIMEZONES_SUPPORT instead" -MK_ZONEINFO_OLD_TIMEZONES_SUPPORT= yes -.endif - .if ${MK_ZONEINFO_LEAPSECONDS_SUPPORT} != "no" LEAPFILE= -L ${CONTRIBDIR}leapseconds .else @@ -53,12 +48,9 @@ LEAPFILE= TZFILES= africa antarctica asia australasia etcetera europe \ factory northamerica southamerica +TZFILES+= backward systemv POSIXRULES= America/New_York -.if ${MK_ZONEINFO_OLD_TIMEZONES_SUPPORT} != "no" -TZFILES+= backward systemv -.endif - TZFILES:= ${TZFILES:S/^/${CONTRIBDIR}/} TZBUILDDIR= ${.OBJDIR}/builddir @@ -78,10 +70,7 @@ TZBUILDSUBDIRS= \ Indian \ Pacific \ SystemV - -.if ${MK_ZONEINFO_OLD_TIMEZONES_SUPPORT} != "no" TZBUILDSUBDIRS+= US Mexico Chile Canada Brazil -.endif .if !defined(_SKIP_BUILD) all: zoneinfo Modified: head/share/zoneinfo/tests/Makefile ============================================================================== --- head/share/zoneinfo/tests/Makefile Thu Apr 9 04:50:19 2020 (r359735) +++ head/share/zoneinfo/tests/Makefile Thu Apr 9 05:11:18 2020 (r359736) @@ -8,10 +8,8 @@ PACKAGE= tests FILESGROUPS+= TESTFILES -.if ${MK_ZONEINFO_OLD_TIMEZONES_SUPPORT} != "no" ATF_TESTS_SH+= backward_test TESTFILES+= backward -.endif TESTFILES+= zoneinfo_common.sh TESTFILESPACKAGE= ${PACKAGE} From owner-svn-src-all@freebsd.org Thu Apr 9 06:32:52 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 338EA2AFDBB; Thu, 9 Apr 2020 06:32:52 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48yWY00c0yz49QG; Thu, 9 Apr 2020 06:32:52 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1026486D0; Thu, 9 Apr 2020 06:32:52 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0396WphR047013; Thu, 9 Apr 2020 06:32:51 GMT (envelope-from mckusick@FreeBSD.org) Received: (from mckusick@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0396WpQD047012; Thu, 9 Apr 2020 06:32:51 GMT (envelope-from mckusick@FreeBSD.org) Message-Id: <202004090632.0396WpQD047012@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mckusick set sender to mckusick@FreeBSD.org using -f From: Kirk McKusick Date: Thu, 9 Apr 2020 06:32:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359737 - stable/12/sys/ufs/ufs X-SVN-Group: stable-12 X-SVN-Commit-Author: mckusick X-SVN-Commit-Paths: stable/12/sys/ufs/ufs X-SVN-Commit-Revision: 359737 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Apr 2020 06:32:52 -0000 Author: mckusick Date: Thu Apr 9 06:32:51 2020 New Revision: 359737 URL: https://svnweb.freebsd.org/changeset/base/359737 Log: Revert MFC of 359612 due to reported problems. Modified: stable/12/sys/ufs/ufs/inode.h Modified: stable/12/sys/ufs/ufs/inode.h ============================================================================== --- stable/12/sys/ufs/ufs/inode.h Thu Apr 9 05:11:18 2020 (r359736) +++ stable/12/sys/ufs/ufs/inode.h Thu Apr 9 06:32:51 2020 (r359737) @@ -192,11 +192,10 @@ struct indir { #define ITOV(ip) ((ip)->i_vnode) /* Determine if soft dependencies are being done */ -#define DOINGSOFTDEP(vp) \ - (((vp)->v_mount->mnt_flag & (MNT_SOFTDEP | MNT_SUJ)) != 0) -#define MOUNTEDSOFTDEP(mp) (((mp)->mnt_flag & (MNT_SOFTDEP | MNT_SUJ)) != 0) -#define DOINGSUJ(vp) (((vp)->v_mount->mnt_flag & MNT_SUJ) != 0) -#define MOUNTEDSUJ(mp) (((mp)->mnt_flag & MNT_SUJ) != 0) +#define DOINGSOFTDEP(vp) ((vp)->v_mount->mnt_flag & (MNT_SOFTDEP | MNT_SUJ)) +#define MOUNTEDSOFTDEP(mp) ((mp)->mnt_flag & (MNT_SOFTDEP | MNT_SUJ)) +#define DOINGSUJ(vp) ((vp)->v_mount->mnt_flag & MNT_SUJ) +#define MOUNTEDSUJ(mp) ((mp)->mnt_flag & MNT_SUJ) /* This overlays the fid structure (see mount.h). */ struct ufid { From owner-svn-src-all@freebsd.org Thu Apr 9 06:35:51 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 98A3E2AFE5D; Thu, 9 Apr 2020 06:35:51 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48yWcR3Yswz49bf; Thu, 9 Apr 2020 06:35:51 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 711C586D3; Thu, 9 Apr 2020 06:35:51 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0396Zpsm047263; Thu, 9 Apr 2020 06:35:51 GMT (envelope-from mckusick@FreeBSD.org) Received: (from mckusick@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0396ZpwM047262; Thu, 9 Apr 2020 06:35:51 GMT (envelope-from mckusick@FreeBSD.org) Message-Id: <202004090635.0396ZpwM047262@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mckusick set sender to mckusick@FreeBSD.org using -f From: Kirk McKusick Date: Thu, 9 Apr 2020 06:35:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r359738 - stable/11/sys/ufs/ufs X-SVN-Group: stable-11 X-SVN-Commit-Author: mckusick X-SVN-Commit-Paths: stable/11/sys/ufs/ufs X-SVN-Commit-Revision: 359738 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Apr 2020 06:35:51 -0000 Author: mckusick Date: Thu Apr 9 06:35:50 2020 New Revision: 359738 URL: https://svnweb.freebsd.org/changeset/base/359738 Log: Revert MFC of 359612 due to reported problems. Modified: stable/11/sys/ufs/ufs/inode.h Modified: stable/11/sys/ufs/ufs/inode.h ============================================================================== --- stable/11/sys/ufs/ufs/inode.h Thu Apr 9 06:32:51 2020 (r359737) +++ stable/11/sys/ufs/ufs/inode.h Thu Apr 9 06:35:50 2020 (r359738) @@ -190,11 +190,10 @@ struct indir { #define ITOV(ip) ((ip)->i_vnode) /* Determine if soft dependencies are being done */ -#define DOINGSOFTDEP(vp) \ - (((vp)->v_mount->mnt_flag & (MNT_SOFTDEP | MNT_SUJ)) != 0) -#define MOUNTEDSOFTDEP(mp) (((mp)->mnt_flag & (MNT_SOFTDEP | MNT_SUJ)) != 0) -#define DOINGSUJ(vp) (((vp)->v_mount->mnt_flag & MNT_SUJ) != 0) -#define MOUNTEDSUJ(mp) (((mp)->mnt_flag & MNT_SUJ) != 0) +#define DOINGSOFTDEP(vp) ((vp)->v_mount->mnt_flag & (MNT_SOFTDEP | MNT_SUJ)) +#define MOUNTEDSOFTDEP(mp) ((mp)->mnt_flag & (MNT_SOFTDEP | MNT_SUJ)) +#define DOINGSUJ(vp) ((vp)->v_mount->mnt_flag & MNT_SUJ) +#define MOUNTEDSUJ(mp) ((mp)->mnt_flag & MNT_SUJ) /* This overlays the fid structure (see mount.h). */ struct ufid { From owner-svn-src-all@freebsd.org Thu Apr 9 07:12:00 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id AFB242B0A8F; Thu, 9 Apr 2020 07:12:00 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48yXQ84dC5z4Cl8; Thu, 9 Apr 2020 07:12:00 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 99EC68E6C; Thu, 9 Apr 2020 07:12:00 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0397C0iU069517; Thu, 9 Apr 2020 07:12:00 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0397C05w069515; Thu, 9 Apr 2020 07:12:00 GMT (envelope-from ae@FreeBSD.org) Message-Id: <202004090712.0397C05w069515@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Thu, 9 Apr 2020 07:12:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359739 - stable/12/usr.sbin/syslogd X-SVN-Group: stable-12 X-SVN-Commit-Author: ae X-SVN-Commit-Paths: stable/12/usr.sbin/syslogd X-SVN-Commit-Revision: 359739 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Apr 2020 07:12:00 -0000 Author: ae Date: Thu Apr 9 07:11:59 2020 New Revision: 359739 URL: https://svnweb.freebsd.org/changeset/base/359739 Log: MFC r359327,359328: Add property-based filters for syslogd. Property-based filters allow substring and regular expressions (see re_format(7)) matching against various message attributes. Filter specification starts with '#:' or ':' followed by three comma-separated fields property, operator, "value". Value must be double-quoted. A double quote and backslash must be escaped by a backslash. Following properties are supported as test value: o msg - body of the message received; o programname - program name sent the message; o hostname - hostname of message's originator; o source - an alias for hostname. Supported operators: o contains - true if filter value is found as a substring of property; o isequal - true if filter value is equal to property; o startswith - true if property starts with filter value; o regex - true if property matches basic regular expression defined in filter value; o ereregex - true if property matches extended regular expression defined in filter value; Operator may be prefixed by '!' to invert compare logic or by 'icase_' to make comparison function case insensitive. Submitted by: Boris N. Lytochkin Relnotes: yes Differential Revision: https://reviews.freebsd.org/D23468 Modified: stable/12/usr.sbin/syslogd/syslog.conf.5 stable/12/usr.sbin/syslogd/syslogd.c Directory Properties: stable/12/ (props changed) Modified: stable/12/usr.sbin/syslogd/syslog.conf.5 ============================================================================== --- stable/12/usr.sbin/syslogd/syslog.conf.5 Thu Apr 9 06:35:50 2020 (r359738) +++ stable/12/usr.sbin/syslogd/syslog.conf.5 Thu Apr 9 07:11:59 2020 (r359739) @@ -28,7 +28,7 @@ .\" @(#)syslog.conf.5 8.1 (Berkeley) 6/9/93 .\" $FreeBSD$ .\" -.Dd November 1, 2016 +.Dd March 26, 2020 .Dt SYSLOG.CONF 5 .Os .Sh NAME @@ -44,9 +44,10 @@ file is the configuration file for the program. It consists of blocks of lines separated by -.Em program -and +.Em program , .Em hostname +or +.Em property-based filter specifications (separations appear alone on their lines), with each line containing two fields: the .Em selector @@ -154,14 +155,16 @@ values specified to the library routine. .Pp Each block of lines is separated from the previous block by a -.Em program -or +.Em program , .Em hostname +or +.Em property-based filter specification. A block will only log messages corresponding to the most recent -.Em program -and +.Em program , .Em hostname +and +.Em property-based filter specifications given. Thus, with a block which selects .Ql ppp @@ -236,11 +239,24 @@ As for program specifications, multiple comma-separate values may be specified for hostname specifications. .Pp A -.Em program +.Em property-based filter +specification is a line beginning with +.Ql #: or +.Ql \&: +and the following blocks will be applied only when filter value +matches given filter propertie's value. See +.Sx PROPERTY-BASED FILTERS +section for more details. +.Pp +A +.Em program , .Em hostname -specification may be reset by giving the program or hostname as -.Ql * . +or +.Em property-based filter +specification may be reset by giving +.Ql * +as an argument. .Pp See .Xr syslog 3 @@ -434,6 +450,78 @@ in this case preceding is removed and .Ql # is treated as an ordinary character. +.Sh PROPERTY-BASED FILTERS +.Em program , +.Em hostname +specifications performs exact match filtering against explicit field only. +.Em Property-based filters +feature substring and regular expressions (see +.Xr re_format 7 ) +matching against various message attributes. +Filter specification starts with +.Ql #: +or +.Ql \&: +followed by three comma-separated fields +.Em property , operator , \&"value\&" . +Value must be double-quoted. A double quote and backslash must be escaped by +a backslash. +.Pp +Following +.Em properties +are supported as test value: +.Pp +.Bl -bullet -compact +.It +.Ql msg +- body of the message received. +.It +.Ql programname +- program name sent the message +.It +.Ql hostname +- hostname of message's originator +.It +.Ql source +- an alias for hostname +.El +.Pp +Operator specifies a comparison function between +.Em propertie's + value against filter's value. +Possible operators: +.Pp +.Bl -bullet -compact +.It +.Ql contains +- true if filter value is found as a substring of +.Em property +.It +.Ql isequal +- true if filter value is equal to +.Em property +.It +.Ql startswith +- true if property starts with filter value +.It +.Ql regex +- true if property matches basic regular expression defined in filter value +.It +.Ql ereregex +- true if property matches extended regular expression defined in filter value +.El +.Pp +Operator may be prefixed by +.Pp +.Bl -bullet -compact +.It +.Ql \&! +- to invert compare logic +.It +.Ql icase_ +- to make comparison function case insensitive +.El +.Pp .Sh IMPLEMENTATION NOTES The .Dq kern @@ -503,6 +591,21 @@ console.* /var/log/console.log # Log ipfw messages without syncing after every message. !ipfw *.* -/var/log/ipfw + +# Log ipfw messages with "Deny" in the message body. +:msg, contains, ".*Deny.*" +*.* /var/log/ipfw.deny + +# Reset program name filtering +!* + +# Log messages from bird or bird6 into one file +:processname, regex, "^bird6?$" +*.* /var/log/bird-all.log + +# Log messages from servers in racks 10-19 in multiple locations, case insensitive +:hostname, icase_ereregex, "^server-(dcA|podB|cdn)-rack1[0-9]{2}\\..*" +*.* /var/log/racks10..19.log .Ed .Sh SEE ALSO .Xr syslog 3 , Modified: stable/12/usr.sbin/syslogd/syslogd.c ============================================================================== --- stable/12/usr.sbin/syslogd/syslogd.c Thu Apr 9 06:35:50 2020 (r359738) +++ stable/12/usr.sbin/syslogd/syslogd.c Thu Apr 9 07:11:59 2020 (r359739) @@ -143,6 +143,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include "pathnames.h" #include "ttymsg.h" @@ -214,6 +215,37 @@ struct logtime { #define RFC3164_DATEFMT "%b %e %H:%M:%S" /* + * This structure holds a property-based filter + */ + +struct prop_filter { + uint8_t prop_type; +#define PROP_TYPE_NOOP 0 +#define PROP_TYPE_MSG 1 +#define PROP_TYPE_HOSTNAME 2 +#define PROP_TYPE_PROGNAME 3 + + uint8_t cmp_type; +#define PROP_CMP_CONTAINS 1 +#define PROP_CMP_EQUAL 2 +#define PROP_CMP_STARTS 3 +#define PROP_CMP_REGEX 4 + + uint16_t cmp_flags; +#define PROP_FLAG_EXCLUDE (1 << 0) +#define PROP_FLAG_ICASE (1 << 1) + + union { + char *p_strval; + regex_t *p_re; + } pflt_uniptr; +#define pflt_strval pflt_uniptr.p_strval +#define pflt_re pflt_uniptr.p_re + + size_t pflt_strlen; +}; + +/* * This structure represents the files that will have log * copies printed. * We require f_file to be valid if f_type is F_FILE, F_CONSOLE, F_TTY @@ -232,6 +264,7 @@ struct filed { #define PRI_EQ 0x2 #define PRI_GT 0x4 char *f_program; /* program this applies to */ + struct prop_filter *f_prop_filter; /* property-based filter */ union { char f_uname[MAXUNAMES][MAXLOGNAME]; struct { @@ -378,7 +411,8 @@ static int allowaddr(char *); static int addfile(struct filed *); static int addpeer(struct peer *); static int addsock(struct sockaddr *, socklen_t, struct socklist *); -static struct filed *cfline(const char *, const char *, const char *); +static struct filed *cfline(const char *, const char *, const char *, + const char *); static const char *cvthname(struct sockaddr *); static void deadq_enter(pid_t, const char *); static int deadq_remove(struct deadq_entry *); @@ -404,6 +438,10 @@ static int socklist_recv_sock(struct socklist *); static int socklist_recv_signal(struct socklist *); static void sighandler(int); static int skip_message(const char *, const char *, int); +static int evaluate_prop_filter(const struct prop_filter *filter, + const char *value); +static int prop_filter_compile(struct prop_filter *pfilter, + char *filterstr); static void parsemsg(const char *, char *); static void printsys(char *); static int p_open(const char *, pid_t *); @@ -1425,6 +1463,69 @@ skip_message(const char *name, const char *spec, int c } /* + * Match some property of the message against a filter. + * Return a non-0 value if the message must be ignored + * based on the filter. + */ +static int +evaluate_prop_filter(const struct prop_filter *filter, const char *value) +{ + const char *s = NULL; + const int exclude = ((filter->cmp_flags & PROP_FLAG_EXCLUDE) > 0); + size_t valuelen; + + if (value == NULL) + return (-1); + + if (filter->cmp_type == PROP_CMP_REGEX) { + if (regexec(filter->pflt_re, value, 0, NULL, 0) == 0) + return (exclude); + else + return (!exclude); + } + + valuelen = strlen(value); + + /* a shortcut for equal with different length is always false */ + if (filter->cmp_type == PROP_CMP_EQUAL && + valuelen != filter->pflt_strlen) + return (!exclude); + + if (filter->cmp_flags & PROP_FLAG_ICASE) + s = strcasestr(value, filter->pflt_strval); + else + s = strstr(value, filter->pflt_strval); + + /* + * PROP_CMP_CONTAINS true if s + * PROP_CMP_STARTS true if s && s == value + * PROP_CMP_EQUAL true if s && s == value && + * valuelen == filter->pflt_strlen + * (and length match is checked + * already) + */ + + switch (filter->cmp_type) { + case PROP_CMP_STARTS: + case PROP_CMP_EQUAL: + if (s != value) + return (!exclude); + /* FALLTHROUGH */ + case PROP_CMP_CONTAINS: + if (s) + return (exclude); + else + return (!exclude); + break; + default: + /* unknown cmp_type */ + break; + } + + return (-1); +} + +/* * Logs a message to the appropriate log files, users, etc. based on the * priority. Log messages are always formatted according to RFC 3164, * even if they were in RFC 5424 format originally, The MSGID and @@ -1515,6 +1616,30 @@ logmsg(int pri, const struct logtime *timestamp, const f->f_program, 1)) continue; + /* skip messages if a property does not match filter */ + if (f->f_prop_filter != NULL && + f->f_prop_filter->prop_type != PROP_TYPE_NOOP) { + switch (f->f_prop_filter->prop_type) { + case PROP_TYPE_MSG: + if (evaluate_prop_filter(f->f_prop_filter, + msg)) + continue; + break; + case PROP_TYPE_HOSTNAME: + if (evaluate_prop_filter(f->f_prop_filter, + hostname)) + continue; + break; + case PROP_TYPE_PROGNAME: + if (evaluate_prop_filter(f->f_prop_filter, + app_name == NULL ? "" : app_name)) + continue; + break; + default: + continue; + } + } + /* skip message to console if it has already been printed */ if (f->f_type == F_CONSOLE && (flags & IGN_CONS)) continue; @@ -2204,6 +2329,7 @@ readconfigfile(FILE *cf, int allow_includes) char host[MAXHOSTNAMELEN]; char prog[LINE_MAX]; char file[MAXPATHLEN]; + char pfilter[LINE_MAX]; char *p, *tmp; int i, nents; size_t include_len; @@ -2214,6 +2340,7 @@ readconfigfile(FILE *cf, int allow_includes) include_len = sizeof(include_str) -1; (void)strlcpy(host, "*", sizeof(host)); (void)strlcpy(prog, "*", sizeof(prog)); + (void)strlcpy(pfilter, "*", sizeof(pfilter)); while (fgets(cline, sizeof(cline), cf) != NULL) { /* * check for end-of-section, comments, strip off trailing @@ -2262,7 +2389,7 @@ readconfigfile(FILE *cf, int allow_includes) } if (*p == '#') { p++; - if (*p != '!' && *p != '+' && *p != '-') + if (*p == '\0' || strchr("!+-:", *p) == NULL) continue; } if (*p == '+' || *p == '-') { @@ -2299,6 +2426,17 @@ readconfigfile(FILE *cf, int allow_includes) prog[i] = 0; continue; } + if (*p == ':') { + p++; + while (isspace(*p)) + p++; + if ((!*p) || (*p == '*')) { + (void)strlcpy(pfilter, "*", sizeof(pfilter)); + continue; + } + (void)strlcpy(pfilter, p, sizeof(pfilter)); + continue; + } for (p = cline + 1; *p != '\0'; p++) { if (*p != '#') continue; @@ -2312,7 +2450,7 @@ readconfigfile(FILE *cf, int allow_includes) } for (i = strlen(cline) - 1; i >= 0 && isspace(cline[i]); i--) cline[i] = '\0'; - f = cfline(cline, prog, host); + f = cfline(cline, prog, host, pfilter); if (f != NULL) addfile(f); free(f); @@ -2406,17 +2544,31 @@ init(int signo) STAILQ_REMOVE_HEAD(&fhead, next); free(f->f_program); free(f->f_host); + if (f->f_prop_filter) { + switch (f->f_prop_filter->cmp_type) { + case PROP_CMP_REGEX: + regfree(f->f_prop_filter->pflt_re); + free(f->f_prop_filter->pflt_re); + break; + case PROP_CMP_CONTAINS: + case PROP_CMP_EQUAL: + case PROP_CMP_STARTS: + free(f->f_prop_filter->pflt_strval); + break; + } + free(f->f_prop_filter); + } free(f); } /* open the configuration file */ if ((cf = fopen(ConfFile, "r")) == NULL) { dprintf("cannot open %s\n", ConfFile); - f = cfline("*.ERR\t/dev/console", "*", "*"); + f = cfline("*.ERR\t/dev/console", "*", "*", "*"); if (f != NULL) addfile(f); free(f); - f = cfline("*.PANIC\t*", "*", "*"); + f = cfline("*.PANIC\t*", "*", "*", "*"); if (f != NULL) addfile(f); free(f); @@ -2517,19 +2669,165 @@ init(int signo) } /* + * Compile property-based filter. + * Returns 0 on success, -1 otherwise. + */ +static int +prop_filter_compile(struct prop_filter *pfilter, char *filter) +{ + char *filter_endpos, *p; + char **ap, *argv[2] = {NULL, NULL}; + int re_flags = REG_NOSUB; + int escaped; + + bzero(pfilter, sizeof(struct prop_filter)); + + /* + * Here's some filter examples mentioned in syslog.conf(5) + * 'msg, contains, ".*Deny.*"' + * 'processname, regex, "^bird6?$"' + * 'hostname, icase_ereregex, "^server-(dcA|podB)-rack1[0-9]{2}\\..*"' + */ + + /* + * Split filter into 3 parts: property name (argv[0]), + * cmp type (argv[1]) and lvalue for comparison (filter). + */ + for (ap = argv; (*ap = strsep(&filter, ", \t\n")) != NULL;) { + if (**ap != '\0') + if (++ap >= &argv[2]) + break; + } + + if (argv[0] == NULL || argv[1] == NULL) { + logerror("filter parse error"); + return (-1); + } + + /* fill in prop_type */ + if (strcasecmp(argv[0], "msg") == 0) + pfilter->prop_type = PROP_TYPE_MSG; + else if(strcasecmp(argv[0], "hostname") == 0) + pfilter->prop_type = PROP_TYPE_HOSTNAME; + else if(strcasecmp(argv[0], "source") == 0) + pfilter->prop_type = PROP_TYPE_HOSTNAME; + else if(strcasecmp(argv[0], "programname") == 0) + pfilter->prop_type = PROP_TYPE_PROGNAME; + else { + logerror("unknown property"); + return (-1); + } + + /* full in cmp_flags (i.e. !contains, icase_regex, etc.) */ + if (*argv[1] == '!') { + pfilter->cmp_flags |= PROP_FLAG_EXCLUDE; + argv[1]++; + } + if (strncasecmp(argv[1], "icase_", (sizeof("icase_") - 1)) == 0) { + pfilter->cmp_flags |= PROP_FLAG_ICASE; + argv[1] += sizeof("icase_") - 1; + } + + /* fill in cmp_type */ + if (strcasecmp(argv[1], "contains") == 0) + pfilter->cmp_type = PROP_CMP_CONTAINS; + else if (strcasecmp(argv[1], "isequal") == 0) + pfilter->cmp_type = PROP_CMP_EQUAL; + else if (strcasecmp(argv[1], "startswith") == 0) + pfilter->cmp_type = PROP_CMP_STARTS; + else if (strcasecmp(argv[1], "regex") == 0) + pfilter->cmp_type = PROP_CMP_REGEX; + else if (strcasecmp(argv[1], "ereregex") == 0) { + pfilter->cmp_type = PROP_CMP_REGEX; + re_flags |= REG_EXTENDED; + } else { + logerror("unknown cmp function"); + return (-1); + } + + /* + * Handle filter value + */ + + /* ' ".*Deny.*"' */ + /* remove leading whitespace and check for '"' next character */ + filter += strspn(filter, ", \t\n"); + if (*filter != '"' || strlen(filter) < 3) { + logerror("property value parse error"); + return (-1); + } + filter++; + + /* '.*Deny.*"' */ + /* process possible backslash (\") escaping */ + escaped = 0; + filter_endpos = filter; + for (p = filter; *p != '\0'; p++) { + if (*p == '\\' && !escaped) { + escaped = 1; + /* do not shift filter_endpos */ + continue; + } + if (*p == '"' && !escaped) { + p++; + break; + } + /* we've seen some esc symbols, need to compress the line */ + if (filter_endpos != p) + *filter_endpos = *p; + + filter_endpos++; + escaped = 0; + } + + *filter_endpos = '\0'; + /* '.*Deny.*' */ + + /* We should not have anything but whitespace left after closing '"' */ + if (*p != '\0' && strspn(p, " \t\n") != strlen(p)) { + logerror("property value parse error"); + return (-1); + } + + if (pfilter->cmp_type == PROP_CMP_REGEX) { + pfilter->pflt_re = calloc(1, sizeof(*pfilter->pflt_re)); + if (pfilter->pflt_re == NULL) { + logerror("RE calloc() error"); + free(pfilter->pflt_re); + return (-1); + } + if (pfilter->cmp_flags & PROP_FLAG_ICASE) + re_flags |= REG_ICASE; + if (regcomp(pfilter->pflt_re, filter, re_flags) != 0) { + logerror("RE compilation error"); + free(pfilter->pflt_re); + return (-1); + } + } else { + pfilter->pflt_strval = strdup(filter); + pfilter->pflt_strlen = strlen(filter); + } + + return (0); + +} + +/* * Crack a configuration file line */ static struct filed * -cfline(const char *line, const char *prog, const char *host) +cfline(const char *line, const char *prog, const char *host, + const char *pfilter) { struct filed *f; struct addrinfo hints, *res; int error, i, pri, syncfile; const char *p, *q; - char *bp; + char *bp, *pfilter_dup; char buf[MAXLINE], ebuf[100]; - dprintf("cfline(\"%s\", f, \"%s\", \"%s\")\n", line, prog, host); + dprintf("cfline(\"%s\", f, \"%s\", \"%s\", \"%s\")\n", line, prog, + host, pfilter); f = calloc(1, sizeof(*f)); if (f == NULL) { @@ -2566,6 +2864,27 @@ cfline(const char *line, const char *prog, const char if (f->f_program == NULL) { logerror("strdup"); exit(1); + } + } + + if (pfilter) { + f->f_prop_filter = calloc(1, sizeof(*(f->f_prop_filter))); + if (f->f_prop_filter == NULL) { + logerror("pfilter calloc"); + exit(1); + } + if (*pfilter == '*') + f->f_prop_filter->prop_type = PROP_TYPE_NOOP; + else { + pfilter_dup = strdup(pfilter); + if (pfilter_dup == NULL) { + logerror("strdup"); + exit(1); + } + if (prop_filter_compile(f->f_prop_filter, pfilter_dup)) { + logerror("filter compile error"); + exit(1); + } } } From owner-svn-src-all@freebsd.org Thu Apr 9 07:15:28 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9F4542B0BCF; Thu, 9 Apr 2020 07:15:28 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48yXV83z0Kz4D7p; Thu, 9 Apr 2020 07:15:28 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 833978E9F; Thu, 9 Apr 2020 07:15:28 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0397FSJT072209; Thu, 9 Apr 2020 07:15:28 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0397FSdn072207; Thu, 9 Apr 2020 07:15:28 GMT (envelope-from ae@FreeBSD.org) Message-Id: <202004090715.0397FSdn072207@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Thu, 9 Apr 2020 07:15:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r359740 - stable/11/usr.sbin/syslogd X-SVN-Group: stable-11 X-SVN-Commit-Author: ae X-SVN-Commit-Paths: stable/11/usr.sbin/syslogd X-SVN-Commit-Revision: 359740 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Apr 2020 07:15:28 -0000 Author: ae Date: Thu Apr 9 07:15:27 2020 New Revision: 359740 URL: https://svnweb.freebsd.org/changeset/base/359740 Log: MFC r359327,359328: Add property-based filters for syslogd. Property-based filters allow substring and regular expressions (see re_format(7)) matching against various message attributes. Filter specification starts with '#:' or ':' followed by three comma-separated fields property, operator, "value". Value must be double-quoted. A double quote and backslash must be escaped by a blackslash. Following properties are supported as test value: o msg - body of the message received; o programname - program name sent the message; o hostname - hostname of message's originator; o source - an alias for hostname. Supported operators: o contains - true if filter value is found as a substring of property; o isequal - true if filter value is equal to property; o startswith - true if property starts with filter value; o regex - true if property matches basic regular expression defined in filter value; o ereregex - true if property matches extended regular expression defined in filter value; Operator may be prefixed by '!' to invert compare logic or by 'icase_' to make comparison function case insensitive. Submitted by: Boris N. Lytochkin Relnotes: yes Differential Revision: https://reviews.freebsd.org/D23468 Modified: stable/11/usr.sbin/syslogd/syslog.conf.5 stable/11/usr.sbin/syslogd/syslogd.c Directory Properties: stable/11/ (props changed) Modified: stable/11/usr.sbin/syslogd/syslog.conf.5 ============================================================================== --- stable/11/usr.sbin/syslogd/syslog.conf.5 Thu Apr 9 07:11:59 2020 (r359739) +++ stable/11/usr.sbin/syslogd/syslog.conf.5 Thu Apr 9 07:15:27 2020 (r359740) @@ -28,7 +28,7 @@ .\" @(#)syslog.conf.5 8.1 (Berkeley) 6/9/93 .\" $FreeBSD$ .\" -.Dd November 1, 2016 +.Dd March 26, 2020 .Dt SYSLOG.CONF 5 .Os .Sh NAME @@ -44,9 +44,10 @@ file is the configuration file for the program. It consists of blocks of lines separated by -.Em program -and +.Em program , .Em hostname +or +.Em property-based filter specifications (separations appear alone on their lines), with each line containing two fields: the .Em selector @@ -154,14 +155,16 @@ values specified to the library routine. .Pp Each block of lines is separated from the previous block by a -.Em program -or +.Em program , .Em hostname +or +.Em property-based filter specification. A block will only log messages corresponding to the most recent -.Em program -and +.Em program , .Em hostname +and +.Em property-based filter specifications given. Thus, with a block which selects .Ql ppp @@ -236,11 +239,24 @@ As for program specifications, multiple comma-separate values may be specified for hostname specifications. .Pp A -.Em program +.Em property-based filter +specification is a line beginning with +.Ql #: or +.Ql \&: +and the following blocks will be applied only when filter value +matches given filter propertie's value. See +.Sx PROPERTY-BASED FILTERS +section for more details. +.Pp +A +.Em program , .Em hostname -specification may be reset by giving the program or hostname as -.Ql * . +or +.Em property-based filter +specification may be reset by giving +.Ql * +as an argument. .Pp See .Xr syslog 3 @@ -434,6 +450,78 @@ in this case preceding is removed and .Ql # is treated as an ordinary character. +.Sh PROPERTY-BASED FILTERS +.Em program , +.Em hostname +specifications performs exact match filtering against explicit field only. +.Em Property-based filters +feature substring and regular expressions (see +.Xr re_format 7 ) +matching against various message attributes. +Filter specification starts with +.Ql #: +or +.Ql \&: +followed by three comma-separated fields +.Em property , operator , \&"value\&" . +Value must be double-quoted. A double quote and backslash must be escaped by +a backslash. +.Pp +Following +.Em properties +are supported as test value: +.Pp +.Bl -bullet -compact +.It +.Ql msg +- body of the message received. +.It +.Ql programname +- program name sent the message +.It +.Ql hostname +- hostname of message's originator +.It +.Ql source +- an alias for hostname +.El +.Pp +Operator specifies a comparison function between +.Em propertie's + value against filter's value. +Possible operators: +.Pp +.Bl -bullet -compact +.It +.Ql contains +- true if filter value is found as a substring of +.Em property +.It +.Ql isequal +- true if filter value is equal to +.Em property +.It +.Ql startswith +- true if property starts with filter value +.It +.Ql regex +- true if property matches basic regular expression defined in filter value +.It +.Ql ereregex +- true if property matches extended regular expression defined in filter value +.El +.Pp +Operator may be prefixed by +.Pp +.Bl -bullet -compact +.It +.Ql \&! +- to invert compare logic +.It +.Ql icase_ +- to make comparison function case insensitive +.El +.Pp .Sh IMPLEMENTATION NOTES The .Dq kern @@ -503,6 +591,21 @@ console.* /var/log/console.log # Log ipfw messages without syncing after every message. !ipfw *.* -/var/log/ipfw + +# Log ipfw messages with "Deny" in the message body. +:msg, contains, ".*Deny.*" +*.* /var/log/ipfw.deny + +# Reset program name filtering +!* + +# Log messages from bird or bird6 into one file +:processname, regex, "^bird6?$" +*.* /var/log/bird-all.log + +# Log messages from servers in racks 10-19 in multiple locations, case insensitive +:hostname, icase_ereregex, "^server-(dcA|podB|cdn)-rack1[0-9]{2}\\..*" +*.* /var/log/racks10..19.log .Ed .Sh SEE ALSO .Xr syslog 3 , Modified: stable/11/usr.sbin/syslogd/syslogd.c ============================================================================== --- stable/11/usr.sbin/syslogd/syslogd.c Thu Apr 9 07:11:59 2020 (r359739) +++ stable/11/usr.sbin/syslogd/syslogd.c Thu Apr 9 07:15:27 2020 (r359740) @@ -141,6 +141,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include "pathnames.h" #include "ttymsg.h" @@ -212,6 +213,37 @@ struct logtime { #define RFC3164_DATEFMT "%b %e %H:%M:%S" /* + * This structure holds a property-based filter + */ + +struct prop_filter { + uint8_t prop_type; +#define PROP_TYPE_NOOP 0 +#define PROP_TYPE_MSG 1 +#define PROP_TYPE_HOSTNAME 2 +#define PROP_TYPE_PROGNAME 3 + + uint8_t cmp_type; +#define PROP_CMP_CONTAINS 1 +#define PROP_CMP_EQUAL 2 +#define PROP_CMP_STARTS 3 +#define PROP_CMP_REGEX 4 + + uint16_t cmp_flags; +#define PROP_FLAG_EXCLUDE (1 << 0) +#define PROP_FLAG_ICASE (1 << 1) + + union { + char *p_strval; + regex_t *p_re; + } pflt_uniptr; +#define pflt_strval pflt_uniptr.p_strval +#define pflt_re pflt_uniptr.p_re + + size_t pflt_strlen; +}; + +/* * This structure represents the files that will have log * copies printed. * We require f_file to be valid if f_type is F_FILE, F_CONSOLE, F_TTY @@ -230,6 +262,7 @@ struct filed { #define PRI_EQ 0x2 #define PRI_GT 0x4 char *f_program; /* program this applies to */ + struct prop_filter *f_prop_filter; /* property-based filter */ union { char f_uname[MAXUNAMES][MAXLOGNAME]; struct { @@ -376,7 +409,8 @@ static int allowaddr(char *); static int addfile(struct filed *); static int addpeer(struct peer *); static int addsock(struct sockaddr *, socklen_t, struct socklist *); -static struct filed *cfline(const char *, const char *, const char *); +static struct filed *cfline(const char *, const char *, const char *, + const char *); static const char *cvthname(struct sockaddr *); static void deadq_enter(pid_t, const char *); static int deadq_remove(struct deadq_entry *); @@ -402,6 +436,10 @@ static int socklist_recv_sock(struct socklist *); static int socklist_recv_signal(struct socklist *); static void sighandler(int); static int skip_message(const char *, const char *, int); +static int evaluate_prop_filter(const struct prop_filter *filter, + const char *value); +static int prop_filter_compile(struct prop_filter *pfilter, + char *filterstr); static void parsemsg(const char *, char *); static void printsys(char *); static int p_open(const char *, pid_t *); @@ -1423,6 +1461,69 @@ skip_message(const char *name, const char *spec, int c } /* + * Match some property of the message against a filter. + * Return a non-0 value if the message must be ignored + * based on the filter. + */ +static int +evaluate_prop_filter(const struct prop_filter *filter, const char *value) +{ + const char *s = NULL; + const int exclude = ((filter->cmp_flags & PROP_FLAG_EXCLUDE) > 0); + size_t valuelen; + + if (value == NULL) + return (-1); + + if (filter->cmp_type == PROP_CMP_REGEX) { + if (regexec(filter->pflt_re, value, 0, NULL, 0) == 0) + return (exclude); + else + return (!exclude); + } + + valuelen = strlen(value); + + /* a shortcut for equal with different length is always false */ + if (filter->cmp_type == PROP_CMP_EQUAL && + valuelen != filter->pflt_strlen) + return (!exclude); + + if (filter->cmp_flags & PROP_FLAG_ICASE) + s = strcasestr(value, filter->pflt_strval); + else + s = strstr(value, filter->pflt_strval); + + /* + * PROP_CMP_CONTAINS true if s + * PROP_CMP_STARTS true if s && s == value + * PROP_CMP_EQUAL true if s && s == value && + * valuelen == filter->pflt_strlen + * (and length match is checked + * already) + */ + + switch (filter->cmp_type) { + case PROP_CMP_STARTS: + case PROP_CMP_EQUAL: + if (s != value) + return (!exclude); + /* FALLTHROUGH */ + case PROP_CMP_CONTAINS: + if (s) + return (exclude); + else + return (!exclude); + break; + default: + /* unknown cmp_type */ + break; + } + + return (-1); +} + +/* * Logs a message to the appropriate log files, users, etc. based on the * priority. Log messages are always formatted according to RFC 3164, * even if they were in RFC 5424 format originally, The MSGID and @@ -1513,6 +1614,30 @@ logmsg(int pri, const struct logtime *timestamp, const f->f_program, 1)) continue; + /* skip messages if a property does not match filter */ + if (f->f_prop_filter != NULL && + f->f_prop_filter->prop_type != PROP_TYPE_NOOP) { + switch (f->f_prop_filter->prop_type) { + case PROP_TYPE_MSG: + if (evaluate_prop_filter(f->f_prop_filter, + msg)) + continue; + break; + case PROP_TYPE_HOSTNAME: + if (evaluate_prop_filter(f->f_prop_filter, + hostname)) + continue; + break; + case PROP_TYPE_PROGNAME: + if (evaluate_prop_filter(f->f_prop_filter, + app_name == NULL ? "" : app_name)) + continue; + break; + default: + continue; + } + } + /* skip message to console if it has already been printed */ if (f->f_type == F_CONSOLE && (flags & IGN_CONS)) continue; @@ -2202,6 +2327,7 @@ readconfigfile(FILE *cf, int allow_includes) char host[MAXHOSTNAMELEN]; char prog[LINE_MAX]; char file[MAXPATHLEN]; + char pfilter[LINE_MAX]; char *p, *tmp; int i, nents; size_t include_len; @@ -2212,6 +2338,7 @@ readconfigfile(FILE *cf, int allow_includes) include_len = sizeof(include_str) -1; (void)strlcpy(host, "*", sizeof(host)); (void)strlcpy(prog, "*", sizeof(prog)); + (void)strlcpy(pfilter, "*", sizeof(pfilter)); while (fgets(cline, sizeof(cline), cf) != NULL) { /* * check for end-of-section, comments, strip off trailing @@ -2260,7 +2387,7 @@ readconfigfile(FILE *cf, int allow_includes) } if (*p == '#') { p++; - if (*p != '!' && *p != '+' && *p != '-') + if (*p == '\0' || strchr("!+-:", *p) == NULL) continue; } if (*p == '+' || *p == '-') { @@ -2297,6 +2424,17 @@ readconfigfile(FILE *cf, int allow_includes) prog[i] = 0; continue; } + if (*p == ':') { + p++; + while (isspace(*p)) + p++; + if ((!*p) || (*p == '*')) { + (void)strlcpy(pfilter, "*", sizeof(pfilter)); + continue; + } + (void)strlcpy(pfilter, p, sizeof(pfilter)); + continue; + } for (p = cline + 1; *p != '\0'; p++) { if (*p != '#') continue; @@ -2310,7 +2448,7 @@ readconfigfile(FILE *cf, int allow_includes) } for (i = strlen(cline) - 1; i >= 0 && isspace(cline[i]); i--) cline[i] = '\0'; - f = cfline(cline, prog, host); + f = cfline(cline, prog, host, pfilter); if (f != NULL) addfile(f); free(f); @@ -2404,17 +2542,31 @@ init(int signo) STAILQ_REMOVE_HEAD(&fhead, next); free(f->f_program); free(f->f_host); + if (f->f_prop_filter) { + switch (f->f_prop_filter->cmp_type) { + case PROP_CMP_REGEX: + regfree(f->f_prop_filter->pflt_re); + free(f->f_prop_filter->pflt_re); + break; + case PROP_CMP_CONTAINS: + case PROP_CMP_EQUAL: + case PROP_CMP_STARTS: + free(f->f_prop_filter->pflt_strval); + break; + } + free(f->f_prop_filter); + } free(f); } /* open the configuration file */ if ((cf = fopen(ConfFile, "r")) == NULL) { dprintf("cannot open %s\n", ConfFile); - f = cfline("*.ERR\t/dev/console", "*", "*"); + f = cfline("*.ERR\t/dev/console", "*", "*", "*"); if (f != NULL) addfile(f); free(f); - f = cfline("*.PANIC\t*", "*", "*"); + f = cfline("*.PANIC\t*", "*", "*", "*"); if (f != NULL) addfile(f); free(f); @@ -2515,19 +2667,165 @@ init(int signo) } /* + * Compile property-based filter. + * Returns 0 on success, -1 otherwise. + */ +static int +prop_filter_compile(struct prop_filter *pfilter, char *filter) +{ + char *filter_endpos, *p; + char **ap, *argv[2] = {NULL, NULL}; + int re_flags = REG_NOSUB; + int escaped; + + bzero(pfilter, sizeof(struct prop_filter)); + + /* + * Here's some filter examples mentioned in syslog.conf(5) + * 'msg, contains, ".*Deny.*"' + * 'processname, regex, "^bird6?$"' + * 'hostname, icase_ereregex, "^server-(dcA|podB)-rack1[0-9]{2}\\..*"' + */ + + /* + * Split filter into 3 parts: property name (argv[0]), + * cmp type (argv[1]) and lvalue for comparison (filter). + */ + for (ap = argv; (*ap = strsep(&filter, ", \t\n")) != NULL;) { + if (**ap != '\0') + if (++ap >= &argv[2]) + break; + } + + if (argv[0] == NULL || argv[1] == NULL) { + logerror("filter parse error"); + return (-1); + } + + /* fill in prop_type */ + if (strcasecmp(argv[0], "msg") == 0) + pfilter->prop_type = PROP_TYPE_MSG; + else if(strcasecmp(argv[0], "hostname") == 0) + pfilter->prop_type = PROP_TYPE_HOSTNAME; + else if(strcasecmp(argv[0], "source") == 0) + pfilter->prop_type = PROP_TYPE_HOSTNAME; + else if(strcasecmp(argv[0], "programname") == 0) + pfilter->prop_type = PROP_TYPE_PROGNAME; + else { + logerror("unknown property"); + return (-1); + } + + /* full in cmp_flags (i.e. !contains, icase_regex, etc.) */ + if (*argv[1] == '!') { + pfilter->cmp_flags |= PROP_FLAG_EXCLUDE; + argv[1]++; + } + if (strncasecmp(argv[1], "icase_", (sizeof("icase_") - 1)) == 0) { + pfilter->cmp_flags |= PROP_FLAG_ICASE; + argv[1] += sizeof("icase_") - 1; + } + + /* fill in cmp_type */ + if (strcasecmp(argv[1], "contains") == 0) + pfilter->cmp_type = PROP_CMP_CONTAINS; + else if (strcasecmp(argv[1], "isequal") == 0) + pfilter->cmp_type = PROP_CMP_EQUAL; + else if (strcasecmp(argv[1], "startswith") == 0) + pfilter->cmp_type = PROP_CMP_STARTS; + else if (strcasecmp(argv[1], "regex") == 0) + pfilter->cmp_type = PROP_CMP_REGEX; + else if (strcasecmp(argv[1], "ereregex") == 0) { + pfilter->cmp_type = PROP_CMP_REGEX; + re_flags |= REG_EXTENDED; + } else { + logerror("unknown cmp function"); + return (-1); + } + + /* + * Handle filter value + */ + + /* ' ".*Deny.*"' */ + /* remove leading whitespace and check for '"' next character */ + filter += strspn(filter, ", \t\n"); + if (*filter != '"' || strlen(filter) < 3) { + logerror("property value parse error"); + return (-1); + } + filter++; + + /* '.*Deny.*"' */ + /* process possible backslash (\") escaping */ + escaped = 0; + filter_endpos = filter; + for (p = filter; *p != '\0'; p++) { + if (*p == '\\' && !escaped) { + escaped = 1; + /* do not shift filter_endpos */ + continue; + } + if (*p == '"' && !escaped) { + p++; + break; + } + /* we've seen some esc symbols, need to compress the line */ + if (filter_endpos != p) + *filter_endpos = *p; + + filter_endpos++; + escaped = 0; + } + + *filter_endpos = '\0'; + /* '.*Deny.*' */ + + /* We should not have anything but whitespace left after closing '"' */ + if (*p != '\0' && strspn(p, " \t\n") != strlen(p)) { + logerror("property value parse error"); + return (-1); + } + + if (pfilter->cmp_type == PROP_CMP_REGEX) { + pfilter->pflt_re = calloc(1, sizeof(*pfilter->pflt_re)); + if (pfilter->pflt_re == NULL) { + logerror("RE calloc() error"); + free(pfilter->pflt_re); + return (-1); + } + if (pfilter->cmp_flags & PROP_FLAG_ICASE) + re_flags |= REG_ICASE; + if (regcomp(pfilter->pflt_re, filter, re_flags) != 0) { + logerror("RE compilation error"); + free(pfilter->pflt_re); + return (-1); + } + } else { + pfilter->pflt_strval = strdup(filter); + pfilter->pflt_strlen = strlen(filter); + } + + return (0); + +} + +/* * Crack a configuration file line */ static struct filed * -cfline(const char *line, const char *prog, const char *host) +cfline(const char *line, const char *prog, const char *host, + const char *pfilter) { struct filed *f; struct addrinfo hints, *res; int error, i, pri, syncfile; const char *p, *q; - char *bp; + char *bp, *pfilter_dup; char buf[MAXLINE], ebuf[100]; - dprintf("cfline(\"%s\", f, \"%s\", \"%s\")\n", line, prog, host); + dprintf("cfline(\"%s\", f, \"%s\", \"%s\", \"%s\")\n", line, prog, + host, pfilter); f = calloc(1, sizeof(*f)); if (f == NULL) { @@ -2564,6 +2862,27 @@ cfline(const char *line, const char *prog, const char if (f->f_program == NULL) { logerror("strdup"); exit(1); + } + } + + if (pfilter) { + f->f_prop_filter = calloc(1, sizeof(*(f->f_prop_filter))); + if (f->f_prop_filter == NULL) { + logerror("pfilter calloc"); + exit(1); + } + if (*pfilter == '*') + f->f_prop_filter->prop_type = PROP_TYPE_NOOP; + else { + pfilter_dup = strdup(pfilter); + if (pfilter_dup == NULL) { + logerror("strdup"); + exit(1); + } + if (prop_filter_compile(f->f_prop_filter, pfilter_dup)) { + logerror("filter compile error"); + exit(1); + } } } From owner-svn-src-all@freebsd.org Thu Apr 9 14:21:17 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 440602BB5A0; Thu, 9 Apr 2020 14:21:17 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48yjxT14qtz4dn2; Thu, 9 Apr 2020 14:21:17 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: from mail-qk1-f174.google.com (mail-qk1-f174.google.com [209.85.222.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) (Authenticated sender: kevans) by smtp.freebsd.org (Postfix) with ESMTPSA id 144F6174FB; Thu, 9 Apr 2020 14:21:17 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: by mail-qk1-f174.google.com with SMTP id z15so4044301qki.7; Thu, 09 Apr 2020 07:21:17 -0700 (PDT) X-Gm-Message-State: AGi0PuauUiC/Yz3pyZCWCneOhuJsXoTo6ELk8OCq7BwuEoUZEJHytAVe UT0LuUt3PPXR2OiMz6vCQ64r0PEm5cFIVttkoOc= X-Google-Smtp-Source: APiQypIgESXcUSWwla8mYvMEvSgRPLybeeU7j93sdwFVLlBhJHHggwEYuvkOpQE6tc3KJuMKbK5H8DcOTmNc3R3i8Pc= X-Received: by 2002:a37:6d8:: with SMTP id 207mr17562qkg.103.1586442076430; Thu, 09 Apr 2020 07:21:16 -0700 (PDT) MIME-Version: 1.0 References: <202004071414.037EEx5Q057793@repo.freebsd.org> <8AAE567D-BEC5-4AF1-B290-D4EA833ED96A@gmail.com> In-Reply-To: <8AAE567D-BEC5-4AF1-B290-D4EA833ED96A@gmail.com> From: Kyle Evans Date: Thu, 9 Apr 2020 09:21:03 -0500 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r359689 - head/usr.sbin/config To: Enji Cooper Cc: src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Apr 2020 14:21:17 -0000 On Wed, Apr 8, 2020 at 1:28 PM Enji Cooper wrote: > > > > On Apr 7, 2020, at 7:14 AM, Kyle Evans wrote: > > > > Author: kevans > > Date: Tue Apr 7 14:14:59 2020 > > New Revision: 359689 > > URL: https://svnweb.freebsd.org/changeset/base/359689 > > > > Log: > > config(8): "fix" a couple of buffer overflows > > > > Recently added/changed lines in various kernel configs have caused some > > buffer overflows that went undetected. These were detected with a config > > built using -fno-common as these line buffers smashed one of our arrays, > > then further triaged with ASAN. > > > > Double the sizes; this is really not a great fix, but addresses the > > immediate need until someone rewrites config. While here, add some bounds > > checking so that we don't need to detect this by random bus errors or other > > weird failures. > > Good catch! This seems like it deserves a follow up PR in Bugzilla. I waffled a bit, then came to my senses and created one[0], as this really does need an actual fix or for someone to be motivated to rewrite config(8). [0] https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=245476 From owner-svn-src-all@freebsd.org Thu Apr 9 14:44:49 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4AE9B2BBF78; Thu, 9 Apr 2020 14:44:49 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48ykSd1BGMz4gBH; Thu, 9 Apr 2020 14:44:49 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 23D91E687; Thu, 9 Apr 2020 14:44:49 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 039EinJl049063; Thu, 9 Apr 2020 14:44:49 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 039EikOO049053; Thu, 9 Apr 2020 14:44:46 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <202004091444.039EikOO049053@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Thu, 9 Apr 2020 14:44:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359745 - in head/sys: conf fs/nfs fs/nfsclient fs/nfsserver kern modules modules/nfslock nfs nlm sys X-SVN-Group: head X-SVN-Commit-Author: rmacklem X-SVN-Commit-Paths: in head/sys: conf fs/nfs fs/nfsclient fs/nfsserver kern modules modules/nfslock nfs nlm sys X-SVN-Commit-Revision: 359745 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Apr 2020 14:44:49 -0000 Author: rmacklem Date: Thu Apr 9 14:44:46 2020 New Revision: 359745 URL: https://svnweb.freebsd.org/changeset/base/359745 Log: Remove the old NFS lock device driver that uses Giant. This NFS lock device driver was replaced by the kernel NLM around FreeBSD7 and has not normally been used since then. To use it, the kernel had to be built without "options NFSLOCKD" and the nfslockd.ko had to be deleted as well. Since it uses Giant and is no longer used, this patch removes it. With this device driver removed, there is now a lot of unused code in the userland rpc.lockd. That will be removed on a future commit. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D22933 Deleted: head/sys/modules/nfslock/ head/sys/nfs/nfs_lock.c Modified: head/sys/conf/files head/sys/fs/nfs/nfs_commonport.c head/sys/fs/nfsclient/nfs_clport.c head/sys/fs/nfsclient/nfs_clvfsops.c head/sys/fs/nfsserver/nfs_nfsdport.c head/sys/kern/kern_exit.c head/sys/kern/kern_thread.c head/sys/modules/Makefile head/sys/nlm/nlm_prot_impl.c head/sys/sys/proc.h Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Thu Apr 9 08:34:27 2020 (r359744) +++ head/sys/conf/files Thu Apr 9 14:44:46 2020 (r359745) @@ -3489,10 +3489,10 @@ fs/msdosfs/msdosfs_iconv.c optional msdosfs_iconv fs/msdosfs/msdosfs_lookup.c optional msdosfs fs/msdosfs/msdosfs_vfsops.c optional msdosfs fs/msdosfs/msdosfs_vnops.c optional msdosfs -fs/nfs/nfs_commonkrpc.c optional nfscl | nfsd -fs/nfs/nfs_commonsubs.c optional nfscl | nfsd -fs/nfs/nfs_commonport.c optional nfscl | nfsd -fs/nfs/nfs_commonacl.c optional nfscl | nfsd +fs/nfs/nfs_commonkrpc.c optional nfscl | nfslockd | nfsd +fs/nfs/nfs_commonsubs.c optional nfscl | nfslockd | nfsd +fs/nfs/nfs_commonport.c optional nfscl | nfslockd | nfsd +fs/nfs/nfs_commonacl.c optional nfscl | nfslockd | nfsd fs/nfsclient/nfs_clcomsubs.c optional nfscl fs/nfsclient/nfs_clsubs.c optional nfscl fs/nfsclient/nfs_clstate.c optional nfscl @@ -4434,8 +4434,7 @@ nfs/bootp_subr.c optional bootp nfscl nfs/krpc_subr.c optional bootp nfscl nfs/nfs_diskless.c optional nfscl nfs_root nfs/nfs_fha.c optional nfsd -nfs/nfs_lock.c optional nfscl | nfslockd | nfsd -nfs/nfs_nfssvc.c optional nfscl | nfsd +nfs/nfs_nfssvc.c optional nfscl | nfslockd | nfsd nlm/nlm_advlock.c optional nfslockd | nfsd nlm/nlm_prot_clnt.c optional nfslockd | nfsd nlm/nlm_prot_impl.c optional nfslockd | nfsd Modified: head/sys/fs/nfs/nfs_commonport.c ============================================================================== --- head/sys/fs/nfs/nfs_commonport.c Thu Apr 9 08:34:27 2020 (r359744) +++ head/sys/fs/nfs/nfs_commonport.c Thu Apr 9 14:44:46 2020 (r359745) @@ -74,6 +74,8 @@ struct nfsdevicehead nfsrv_devidhead; volatile int nfsrv_devidcnt = 0; void (*nfsd_call_servertimer)(void) = NULL; void (*ncl_call_invalcaches)(struct vnode *) = NULL; +vop_advlock_t *nfs_advlock_p = NULL; +vop_reclaim_t *nfs_reclaim_p = NULL; int nfs_pnfsio(task_fn_t *, void *); Modified: head/sys/fs/nfsclient/nfs_clport.c ============================================================================== --- head/sys/fs/nfsclient/nfs_clport.c Thu Apr 9 08:34:27 2020 (r359744) +++ head/sys/fs/nfsclient/nfs_clport.c Thu Apr 9 14:44:46 2020 (r359745) @@ -1412,5 +1412,4 @@ MODULE_VERSION(nfscl, 1); MODULE_DEPEND(nfscl, nfscommon, 1, 1, 1); MODULE_DEPEND(nfscl, krpc, 1, 1, 1); MODULE_DEPEND(nfscl, nfssvc, 1, 1, 1); -MODULE_DEPEND(nfscl, nfslock, 1, 1, 1); Modified: head/sys/fs/nfsclient/nfs_clvfsops.c ============================================================================== --- head/sys/fs/nfsclient/nfs_clvfsops.c Thu Apr 9 08:34:27 2020 (r359744) +++ head/sys/fs/nfsclient/nfs_clvfsops.c Thu Apr 9 14:44:46 2020 (r359745) @@ -152,7 +152,6 @@ MODULE_VERSION(nfs, 1); MODULE_DEPEND(nfs, nfscommon, 1, 1, 1); MODULE_DEPEND(nfs, krpc, 1, 1, 1); MODULE_DEPEND(nfs, nfssvc, 1, 1, 1); -MODULE_DEPEND(nfs, nfslock, 1, 1, 1); /* * This structure is now defined in sys/nfs/nfs_diskless.c so that it Modified: head/sys/fs/nfsserver/nfs_nfsdport.c ============================================================================== --- head/sys/fs/nfsserver/nfs_nfsdport.c Thu Apr 9 08:34:27 2020 (r359744) +++ head/sys/fs/nfsserver/nfs_nfsdport.c Thu Apr 9 14:44:46 2020 (r359745) @@ -6443,7 +6443,6 @@ DECLARE_MODULE(nfsd, nfsd_mod, SI_SUB_VFS, SI_ORDER_AN /* So that loader and kldload(2) can find us, wherever we are.. */ MODULE_VERSION(nfsd, 1); MODULE_DEPEND(nfsd, nfscommon, 1, 1, 1); -MODULE_DEPEND(nfsd, nfslock, 1, 1, 1); MODULE_DEPEND(nfsd, nfslockd, 1, 1, 1); MODULE_DEPEND(nfsd, krpc, 1, 1, 1); MODULE_DEPEND(nfsd, nfssvc, 1, 1, 1); Modified: head/sys/kern/kern_exit.c ============================================================================== --- head/sys/kern/kern_exit.c Thu Apr 9 08:34:27 2020 (r359744) +++ head/sys/kern/kern_exit.c Thu Apr 9 14:44:46 2020 (r359745) @@ -96,9 +96,6 @@ dtrace_execexit_func_t dtrace_fasttrap_exit; SDT_PROVIDER_DECLARE(proc); SDT_PROBE_DEFINE1(proc, , , exit, "int"); -/* Hook for NFS teardown procedure. */ -void (*nlminfo_release_p)(struct proc *p); - struct proc * proc_realparent(struct proc *child) { @@ -364,12 +361,6 @@ exit1(struct thread *td, int rval, int signo) * F_SETOWN with our pid. */ funsetownlst(&p->p_sigiolst); - - /* - * If this process has an nlminfo data area (for lockd), release it - */ - if (nlminfo_release_p != NULL && p->p_nlminfo != NULL) - (*nlminfo_release_p)(p); /* * Close open files and release open-file table. Modified: head/sys/kern/kern_thread.c ============================================================================== --- head/sys/kern/kern_thread.c Thu Apr 9 08:34:27 2020 (r359744) +++ head/sys/kern/kern_thread.c Thu Apr 9 14:44:46 2020 (r359745) @@ -90,11 +90,11 @@ _Static_assert(offsetof(struct proc, p_flag) == 0xb0, "struct proc KBI p_flag"); _Static_assert(offsetof(struct proc, p_pid) == 0xbc, "struct proc KBI p_pid"); -_Static_assert(offsetof(struct proc, p_filemon) == 0x3c0, +_Static_assert(offsetof(struct proc, p_filemon) == 0x3b8, "struct proc KBI p_filemon"); -_Static_assert(offsetof(struct proc, p_comm) == 0x3d8, +_Static_assert(offsetof(struct proc, p_comm) == 0x3d0, "struct proc KBI p_comm"); -_Static_assert(offsetof(struct proc, p_emuldata) == 0x4b8, +_Static_assert(offsetof(struct proc, p_emuldata) == 0x4b0, "struct proc KBI p_emuldata"); #endif #ifdef __i386__ @@ -110,11 +110,11 @@ _Static_assert(offsetof(struct proc, p_flag) == 0x68, "struct proc KBI p_flag"); _Static_assert(offsetof(struct proc, p_pid) == 0x74, "struct proc KBI p_pid"); -_Static_assert(offsetof(struct proc, p_filemon) == 0x26c, +_Static_assert(offsetof(struct proc, p_filemon) == 0x268, "struct proc KBI p_filemon"); -_Static_assert(offsetof(struct proc, p_comm) == 0x280, +_Static_assert(offsetof(struct proc, p_comm) == 0x27c, "struct proc KBI p_comm"); -_Static_assert(offsetof(struct proc, p_emuldata) == 0x30c, +_Static_assert(offsetof(struct proc, p_emuldata) == 0x308, "struct proc KBI p_emuldata"); #endif Modified: head/sys/modules/Makefile ============================================================================== --- head/sys/modules/Makefile Thu Apr 9 08:34:27 2020 (r359744) +++ head/sys/modules/Makefile Thu Apr 9 14:44:46 2020 (r359745) @@ -259,7 +259,6 @@ SUBDIR= \ nfscl \ nfscommon \ nfsd \ - nfslock \ nfslockd \ nfssvc \ nge \ Modified: head/sys/nlm/nlm_prot_impl.c ============================================================================== --- head/sys/nlm/nlm_prot_impl.c Thu Apr 9 08:34:27 2020 (r359744) +++ head/sys/nlm/nlm_prot_impl.c Thu Apr 9 14:44:46 2020 (r359745) @@ -2411,5 +2411,5 @@ DECLARE_MODULE(nfslockd, nfslockd_mod, SI_SUB_VFS, SI_ /* So that loader and kldload(2) can find us, wherever we are.. */ MODULE_DEPEND(nfslockd, krpc, 1, 1, 1); -MODULE_DEPEND(nfslockd, nfslock, 1, 1, 1); +MODULE_DEPEND(nfslockd, nfscommon, 1, 1, 1); MODULE_VERSION(nfslockd, 1); Modified: head/sys/sys/proc.h ============================================================================== --- head/sys/sys/proc.h Thu Apr 9 08:34:27 2020 (r359744) +++ head/sys/sys/proc.h Thu Apr 9 14:44:46 2020 (r359745) @@ -182,7 +182,6 @@ struct kcov_info; struct kdtrace_proc; struct kdtrace_thread; struct mqueue_notifier; -struct nlminfo; struct p_sched; struct proc; struct procdesc; @@ -645,7 +644,6 @@ struct proc { int p_sigparent; /* (c) Signal to parent on exit. */ int p_sig; /* (n) For core dump/debugger XXX. */ u_int p_ptevents; /* (c + e) ptrace() event mask. */ - struct nlminfo *p_nlminfo; /* (?) Only used by/for lockd. */ struct kaioinfo *p_aioinfo; /* (y) ASYNC I/O info. */ struct thread *p_singlethread;/* (c + j) If single threading this is it */ int p_suspcount; /* (j) Num threads in suspended mode. */ From owner-svn-src-all@freebsd.org Thu Apr 9 15:30:21 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CB35B2BD37E; Thu, 9 Apr 2020 15:30:21 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48ylT9534bz3FWY; Thu, 9 Apr 2020 15:30:21 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A89B6EEE9; Thu, 9 Apr 2020 15:30:21 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 039FUL2n074759; Thu, 9 Apr 2020 15:30:21 GMT (envelope-from eugen@FreeBSD.org) Received: (from eugen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 039FUL0Q074758; Thu, 9 Apr 2020 15:30:21 GMT (envelope-from eugen@FreeBSD.org) Message-Id: <202004091530.039FUL0Q074758@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: eugen set sender to eugen@FreeBSD.org using -f From: Eugene Grosbein Date: Thu, 9 Apr 2020 15:30:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r359746 - stable/11/sys/net80211 X-SVN-Group: stable-11 X-SVN-Commit-Author: eugen X-SVN-Commit-Paths: stable/11/sys/net80211 X-SVN-Commit-Revision: 359746 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Apr 2020 15:30:21 -0000 Author: eugen Date: Thu Apr 9 15:30:21 2020 New Revision: 359746 URL: https://svnweb.freebsd.org/changeset/base/359746 Log: net80211: fix another possible panic for some drivers This change fixes another case for panic missed in r343035 and seen with run(4)-based system. This is direct commit to stable/11 because r306591 could not be merged due to differences in KPI. Note that stable/12 has this problem fixed already. Modified: stable/11/sys/net80211/ieee80211_amrr.c Modified: stable/11/sys/net80211/ieee80211_amrr.c ============================================================================== --- stable/11/sys/net80211/ieee80211_amrr.c Thu Apr 9 14:44:46 2020 (r359745) +++ stable/11/sys/net80211/ieee80211_amrr.c Thu Apr 9 15:30:21 2020 (r359746) @@ -409,6 +409,9 @@ amrr_tx_update(const struct ieee80211vap *vap, const s struct ieee80211_amrr_node *amn = ni->ni_rctls; int txcnt = *(int *)arg1, success = *(int *)arg2, retrycnt = *(int *)arg3; + if (!amn) + return; + amn->amn_txcnt = txcnt; amn->amn_success = success; amn->amn_retrycnt = retrycnt; From owner-svn-src-all@freebsd.org Thu Apr 9 15:33:14 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 107602BD644; Thu, 9 Apr 2020 15:33:14 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48ylXT6jmKz3GBC; Thu, 9 Apr 2020 15:33:13 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E167FF0E9; Thu, 9 Apr 2020 15:33:13 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 039FXD2J080248; Thu, 9 Apr 2020 15:33:13 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 039FXDeA080247; Thu, 9 Apr 2020 15:33:13 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <202004091533.039FXDeA080247@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Thu, 9 Apr 2020 15:33:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359747 - head/sys/sys X-SVN-Group: head X-SVN-Commit-Author: rmacklem X-SVN-Commit-Paths: head/sys/sys X-SVN-Commit-Revision: 359747 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Apr 2020 15:33:14 -0000 Author: rmacklem Date: Thu Apr 9 15:33:13 2020 New Revision: 359747 URL: https://svnweb.freebsd.org/changeset/base/359747 Log: Bump version for r359745, since it removed a field from "struct proc" and that changed the offsets of fields within it. Modified: head/sys/sys/param.h Modified: head/sys/sys/param.h ============================================================================== --- head/sys/sys/param.h Thu Apr 9 15:30:21 2020 (r359746) +++ head/sys/sys/param.h Thu Apr 9 15:33:13 2020 (r359747) @@ -60,7 +60,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1300089 /* Master, propagated to newvers */ +#define __FreeBSD_version 1300090 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From owner-svn-src-all@freebsd.org Thu Apr 9 15:58:08 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 216092BE30A; Thu, 9 Apr 2020 15:58:08 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48ym5D02VLz3HmN; Thu, 9 Apr 2020 15:58:08 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EC1EEF4CF; Thu, 9 Apr 2020 15:58:07 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 039Fw74c093472; Thu, 9 Apr 2020 15:58:07 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 039Fw7em093468; Thu, 9 Apr 2020 15:58:07 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004091558.039Fw7em093468@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 9 Apr 2020 15:58:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r359748 - in stable: 11/lib/clang 11/share/mk 11/tools/build/options 12/lib/clang 12/share/mk 12/tools/build/options X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/lib/clang 11/share/mk 11/tools/build/options 12/lib/clang 12/share/mk 12/tools/build/options X-SVN-Commit-Revision: 359748 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Apr 2020 15:58:08 -0000 Author: kevans Date: Thu Apr 9 15:58:06 2020 New Revision: 359748 URL: https://svnweb.freebsd.org/changeset/base/359748 Log: MFC r359644: llvm: add a build knob for enabling assertions For head/, this will remain eternally default-on to maintain the status quo. For stable/ branches, it should be flipped to default-off to maintain the status quo. There's value in being able to flip it one way or the other easily on head or stable branches, whether you want to gain some performance back on head/ (for machines there's little chance you'll actually hit an assertion) or potentially diagnose a problem with the version of llvm on an older branch. Currently, stable branches get the CFLAGS+= -ndebug line uncommented; going forward, they will instead have the default of LLVM_ASSERTIONS flipped. [MFC note: that last comment just happened for these two branches] Added: stable/11/tools/build/options/WITHOUT_LLVM_ASSERTIONS - copied unchanged from r359644, head/tools/build/options/WITHOUT_LLVM_ASSERTIONS stable/11/tools/build/options/WITH_LLVM_ASSERTIONS - copied unchanged from r359644, head/tools/build/options/WITH_LLVM_ASSERTIONS Modified: stable/11/lib/clang/llvm.build.mk stable/11/share/mk/src.opts.mk Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Added: stable/12/tools/build/options/WITHOUT_LLVM_ASSERTIONS - copied unchanged from r359644, head/tools/build/options/WITHOUT_LLVM_ASSERTIONS stable/12/tools/build/options/WITH_LLVM_ASSERTIONS - copied unchanged from r359644, head/tools/build/options/WITH_LLVM_ASSERTIONS Modified: stable/12/lib/clang/llvm.build.mk stable/12/share/mk/src.opts.mk Directory Properties: stable/12/ (props changed) Modified: stable/11/lib/clang/llvm.build.mk ============================================================================== --- stable/11/lib/clang/llvm.build.mk Thu Apr 9 15:33:13 2020 (r359747) +++ stable/11/lib/clang/llvm.build.mk Thu Apr 9 15:58:06 2020 (r359748) @@ -17,7 +17,9 @@ CFLAGS+= -I${LLVM_SRCS}/include CFLAGS+= -DLLVM_BUILD_GLOBAL_ISEL CFLAGS+= -D__STDC_LIMIT_MACROS CFLAGS+= -D__STDC_CONSTANT_MACROS +.if ${MK_LLVM_ASSERTIONS} == "no" CFLAGS+= -DNDEBUG +.endif TARGET_ARCH?= ${MACHINE_ARCH} BUILD_ARCH?= ${MACHINE_ARCH} Modified: stable/11/share/mk/src.opts.mk ============================================================================== --- stable/11/share/mk/src.opts.mk Thu Apr 9 15:33:13 2020 (r359747) +++ stable/11/share/mk/src.opts.mk Thu Apr 9 15:58:06 2020 (r359748) @@ -197,6 +197,7 @@ __DEFAULT_NO_OPTIONS = \ HESIOD \ LIBSOFT \ LINT \ + LLVM_ASSERTIONS \ LOADER_FIREWIRE \ LOADER_FORCE_LE \ LOADER_VERBOSE \ Copied: stable/11/tools/build/options/WITHOUT_LLVM_ASSERTIONS (from r359644, head/tools/build/options/WITHOUT_LLVM_ASSERTIONS) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/tools/build/options/WITHOUT_LLVM_ASSERTIONS Thu Apr 9 15:58:06 2020 (r359748, copy of r359644, head/tools/build/options/WITHOUT_LLVM_ASSERTIONS) @@ -0,0 +1,2 @@ +.\" $FreeBSD$ +Set to disable debugging assertions in LLVM. Copied: stable/11/tools/build/options/WITH_LLVM_ASSERTIONS (from r359644, head/tools/build/options/WITH_LLVM_ASSERTIONS) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/tools/build/options/WITH_LLVM_ASSERTIONS Thu Apr 9 15:58:06 2020 (r359748, copy of r359644, head/tools/build/options/WITH_LLVM_ASSERTIONS) @@ -0,0 +1,2 @@ +.\" $FreeBSD$ +Set to enable debugging assertions in LLVM. From owner-svn-src-all@freebsd.org Thu Apr 9 15:58:09 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7C62D2BE31C; Thu, 9 Apr 2020 15:58:09 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48ym5D70CFz3HmP; Thu, 9 Apr 2020 15:58:08 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EB482F4D0; Thu, 9 Apr 2020 15:58:08 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 039Fw8a6093483; Thu, 9 Apr 2020 15:58:08 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 039Fw8bK093478; Thu, 9 Apr 2020 15:58:08 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004091558.039Fw8bK093478@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 9 Apr 2020 15:58:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359748 - in stable: 11/lib/clang 11/share/mk 11/tools/build/options 12/lib/clang 12/share/mk 12/tools/build/options X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/lib/clang 11/share/mk 11/tools/build/options 12/lib/clang 12/share/mk 12/tools/build/options X-SVN-Commit-Revision: 359748 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Apr 2020 15:58:09 -0000 Author: kevans Date: Thu Apr 9 15:58:06 2020 New Revision: 359748 URL: https://svnweb.freebsd.org/changeset/base/359748 Log: MFC r359644: llvm: add a build knob for enabling assertions For head/, this will remain eternally default-on to maintain the status quo. For stable/ branches, it should be flipped to default-off to maintain the status quo. There's value in being able to flip it one way or the other easily on head or stable branches, whether you want to gain some performance back on head/ (for machines there's little chance you'll actually hit an assertion) or potentially diagnose a problem with the version of llvm on an older branch. Currently, stable branches get the CFLAGS+= -ndebug line uncommented; going forward, they will instead have the default of LLVM_ASSERTIONS flipped. [MFC note: that last comment just happened for these two branches] Added: stable/12/tools/build/options/WITHOUT_LLVM_ASSERTIONS - copied unchanged from r359644, head/tools/build/options/WITHOUT_LLVM_ASSERTIONS stable/12/tools/build/options/WITH_LLVM_ASSERTIONS - copied unchanged from r359644, head/tools/build/options/WITH_LLVM_ASSERTIONS Modified: stable/12/lib/clang/llvm.build.mk stable/12/share/mk/src.opts.mk Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Added: stable/11/tools/build/options/WITHOUT_LLVM_ASSERTIONS - copied unchanged from r359644, head/tools/build/options/WITHOUT_LLVM_ASSERTIONS stable/11/tools/build/options/WITH_LLVM_ASSERTIONS - copied unchanged from r359644, head/tools/build/options/WITH_LLVM_ASSERTIONS Modified: stable/11/lib/clang/llvm.build.mk stable/11/share/mk/src.opts.mk Directory Properties: stable/11/ (props changed) Modified: stable/12/lib/clang/llvm.build.mk ============================================================================== --- stable/12/lib/clang/llvm.build.mk Thu Apr 9 15:33:13 2020 (r359747) +++ stable/12/lib/clang/llvm.build.mk Thu Apr 9 15:58:06 2020 (r359748) @@ -22,7 +22,9 @@ CFLAGS+= -D__STDC_CONSTANT_MACROS CFLAGS+= -D__STDC_FORMAT_MACROS CFLAGS+= -D__STDC_LIMIT_MACROS CFLAGS+= -DHAVE_VCS_VERSION_INC +.if ${MK_LLVM_ASSERTIONS} == "no" CFLAGS+= -DNDEBUG +.endif TARGET_ARCH?= ${MACHINE_ARCH} BUILD_ARCH?= ${MACHINE_ARCH} Modified: stable/12/share/mk/src.opts.mk ============================================================================== --- stable/12/share/mk/src.opts.mk Thu Apr 9 15:33:13 2020 (r359747) +++ stable/12/share/mk/src.opts.mk Thu Apr 9 15:58:06 2020 (r359748) @@ -202,6 +202,7 @@ __DEFAULT_NO_OPTIONS = \ GNU_GREP_COMPAT \ HESIOD \ LIBSOFT \ + LLVM_ASSERTIONS \ LOADER_FIREWIRE \ LOADER_FORCE_LE \ LOADER_VERIEXEC_PASS_MANIFEST \ Copied: stable/12/tools/build/options/WITHOUT_LLVM_ASSERTIONS (from r359644, head/tools/build/options/WITHOUT_LLVM_ASSERTIONS) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/tools/build/options/WITHOUT_LLVM_ASSERTIONS Thu Apr 9 15:58:06 2020 (r359748, copy of r359644, head/tools/build/options/WITHOUT_LLVM_ASSERTIONS) @@ -0,0 +1,2 @@ +.\" $FreeBSD$ +Set to disable debugging assertions in LLVM. Copied: stable/12/tools/build/options/WITH_LLVM_ASSERTIONS (from r359644, head/tools/build/options/WITH_LLVM_ASSERTIONS) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/tools/build/options/WITH_LLVM_ASSERTIONS Thu Apr 9 15:58:06 2020 (r359748, copy of r359644, head/tools/build/options/WITH_LLVM_ASSERTIONS) @@ -0,0 +1,2 @@ +.\" $FreeBSD$ +Set to enable debugging assertions in LLVM. From owner-svn-src-all@freebsd.org Thu Apr 9 16:02:21 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 11B392BE572; Thu, 9 Apr 2020 16:02:21 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48ymB46WNPz3JQS; Thu, 9 Apr 2020 16:02:20 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DADC3F6A7; Thu, 9 Apr 2020 16:02:20 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 039G2Ki6098739; Thu, 9 Apr 2020 16:02:20 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 039G2K9w098737; Thu, 9 Apr 2020 16:02:20 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004091602.039G2K9w098737@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 9 Apr 2020 16:02:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r359749 - in stable: 11/contrib/openbsm/bin/auditreduce 12/contrib/openbsm/bin/auditreduce X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/contrib/openbsm/bin/auditreduce 12/contrib/openbsm/bin/auditreduce X-SVN-Commit-Revision: 359749 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Apr 2020 16:02:21 -0000 Author: kevans Date: Thu Apr 9 16:02:20 2020 New Revision: 359749 URL: https://svnweb.freebsd.org/changeset/base/359749 Log: MFV r359401: OpenBSM: import ee79d73e8df5: auditreduce: add a zone filter This allows one to select audit records that match a -z zone glob. Modified: stable/11/contrib/openbsm/bin/auditreduce/auditreduce.1 stable/11/contrib/openbsm/bin/auditreduce/auditreduce.c stable/11/contrib/openbsm/bin/auditreduce/auditreduce.h Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/contrib/openbsm/bin/auditreduce/auditreduce.1 stable/12/contrib/openbsm/bin/auditreduce/auditreduce.c stable/12/contrib/openbsm/bin/auditreduce/auditreduce.h Directory Properties: stable/12/ (props changed) Modified: stable/11/contrib/openbsm/bin/auditreduce/auditreduce.1 ============================================================================== --- stable/11/contrib/openbsm/bin/auditreduce/auditreduce.1 Thu Apr 9 15:58:06 2020 (r359748) +++ stable/11/contrib/openbsm/bin/auditreduce/auditreduce.1 Thu Apr 9 16:02:20 2020 (r359749) @@ -25,7 +25,7 @@ .\" IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd January 24, 2004 +.Dd February 20, 2020 .Dt AUDITREDUCE 1 .Os .Sh NAME @@ -47,6 +47,7 @@ .Op Fl r Ar ruid .Op Fl u Ar auid .Op Fl v +.Op Fl z Ar zone .Op Ar .Sh DESCRIPTION The @@ -129,6 +130,10 @@ Select records with the given real user ID or name. Select records with the given audit ID. .It Fl v Invert sense of matching, to select records that do not match. +.It Fl z Ar zone +Select records from the given zone(s). +.Ar zone +is a glob for zones to match. .El .Sh EXAMPLES To select all records associated with effective user ID root from the audit Modified: stable/11/contrib/openbsm/bin/auditreduce/auditreduce.c ============================================================================== --- stable/11/contrib/openbsm/bin/auditreduce/auditreduce.c Thu Apr 9 15:58:06 2020 (r359748) +++ stable/11/contrib/openbsm/bin/auditreduce/auditreduce.c Thu Apr 9 16:02:20 2020 (r359749) @@ -51,6 +51,7 @@ #include #include +#include #include #include #include @@ -83,6 +84,7 @@ static int p_egid; /* Effective group id. */ static int p_rgid; /* Real group id. */ static int p_ruid; /* Real user id. */ static int p_subid; /* Subject id. */ +static const char *p_zone; /* Zone. */ /* * Maintain a dynamically sized array of events for -m @@ -103,6 +105,8 @@ static char *p_sockobj = NULL; static uint32_t opttochk = 0; +static int select_zone(const char *zone, uint32_t *optchkd); + static void parse_regexp(char *re_string) { @@ -175,6 +179,7 @@ usage(const char *msg) fprintf(stderr, "\t-r : real user\n"); fprintf(stderr, "\t-u : audit user\n"); fprintf(stderr, "\t-v : select non-matching records\n"); + fprintf(stderr, "\t-z : zone name\n"); exit(EX_USAGE); } @@ -482,6 +487,21 @@ select_subj32(tokenstr_t tok, uint32_t *optchkd) } /* + * Check if the given zone matches the selection criteria. + */ +static int +select_zone(const char *zone, uint32_t *optchkd) +{ + + SETOPT((*optchkd), OPT_z); + if (ISOPTSET(opttochk, OPT_z) && p_zone != NULL) { + if (fnmatch(p_zone, zone, FNM_PATHNAME) != 0) + return (0); + } + return (1); +} + +/* * Read each record from the audit trail. Check if it is selected after * passing through each of the options */ @@ -548,6 +568,10 @@ select_records(FILE *fp) tok_hdr32_copy, &optchkd); break; + case AUT_ZONENAME: + selected = select_zone(tok.tt.zonename.zonename, &optchkd); + break; + default: break; } @@ -614,7 +638,7 @@ main(int argc, char **argv) converr = NULL; - while ((ch = getopt(argc, argv, "Aa:b:c:d:e:f:g:j:m:o:r:u:v")) != -1) { + while ((ch = getopt(argc, argv, "Aa:b:c:d:e:f:g:j:m:o:r:u:vz:")) != -1) { switch(ch) { case 'A': SETOPT(opttochk, OPT_A); @@ -766,6 +790,11 @@ main(int argc, char **argv) case 'v': SETOPT(opttochk, OPT_v); + break; + + case 'z': + p_zone = optarg; + SETOPT(opttochk, OPT_z); break; case '?': Modified: stable/11/contrib/openbsm/bin/auditreduce/auditreduce.h ============================================================================== --- stable/11/contrib/openbsm/bin/auditreduce/auditreduce.h Thu Apr 9 15:58:06 2020 (r359748) +++ stable/11/contrib/openbsm/bin/auditreduce/auditreduce.h Thu Apr 9 16:02:20 2020 (r359749) @@ -57,6 +57,7 @@ struct re_entry { #define OPT_u 0x00010000 #define OPT_A 0x00020000 #define OPT_v 0x00040000 +#define OPT_z 0x00080000 #define FILEOBJ "file" #define MSGQIDOBJ "msgqid" From owner-svn-src-all@freebsd.org Thu Apr 9 16:02:21 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B872B2BE577; Thu, 9 Apr 2020 16:02:21 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48ymB54QQXz3JQT; Thu, 9 Apr 2020 16:02:21 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 92DA4F6A8; Thu, 9 Apr 2020 16:02:21 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 039G2LqL098748; Thu, 9 Apr 2020 16:02:21 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 039G2LL9098745; Thu, 9 Apr 2020 16:02:21 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004091602.039G2LL9098745@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 9 Apr 2020 16:02:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359749 - in stable: 11/contrib/openbsm/bin/auditreduce 12/contrib/openbsm/bin/auditreduce X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/contrib/openbsm/bin/auditreduce 12/contrib/openbsm/bin/auditreduce X-SVN-Commit-Revision: 359749 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Apr 2020 16:02:21 -0000 Author: kevans Date: Thu Apr 9 16:02:20 2020 New Revision: 359749 URL: https://svnweb.freebsd.org/changeset/base/359749 Log: MFV r359401: OpenBSM: import ee79d73e8df5: auditreduce: add a zone filter This allows one to select audit records that match a -z zone glob. Modified: stable/12/contrib/openbsm/bin/auditreduce/auditreduce.1 stable/12/contrib/openbsm/bin/auditreduce/auditreduce.c stable/12/contrib/openbsm/bin/auditreduce/auditreduce.h Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/contrib/openbsm/bin/auditreduce/auditreduce.1 stable/11/contrib/openbsm/bin/auditreduce/auditreduce.c stable/11/contrib/openbsm/bin/auditreduce/auditreduce.h Directory Properties: stable/11/ (props changed) Modified: stable/12/contrib/openbsm/bin/auditreduce/auditreduce.1 ============================================================================== --- stable/12/contrib/openbsm/bin/auditreduce/auditreduce.1 Thu Apr 9 15:58:06 2020 (r359748) +++ stable/12/contrib/openbsm/bin/auditreduce/auditreduce.1 Thu Apr 9 16:02:20 2020 (r359749) @@ -25,7 +25,7 @@ .\" IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd January 24, 2004 +.Dd February 20, 2020 .Dt AUDITREDUCE 1 .Os .Sh NAME @@ -47,6 +47,7 @@ .Op Fl r Ar ruid .Op Fl u Ar auid .Op Fl v +.Op Fl z Ar zone .Op Ar .Sh DESCRIPTION The @@ -129,6 +130,10 @@ Select records with the given real user ID or name. Select records with the given audit ID. .It Fl v Invert sense of matching, to select records that do not match. +.It Fl z Ar zone +Select records from the given zone(s). +.Ar zone +is a glob for zones to match. .El .Sh EXAMPLES To select all records associated with effective user ID root from the audit Modified: stable/12/contrib/openbsm/bin/auditreduce/auditreduce.c ============================================================================== --- stable/12/contrib/openbsm/bin/auditreduce/auditreduce.c Thu Apr 9 15:58:06 2020 (r359748) +++ stable/12/contrib/openbsm/bin/auditreduce/auditreduce.c Thu Apr 9 16:02:20 2020 (r359749) @@ -62,6 +62,7 @@ #include #include +#include #include #include #include @@ -94,6 +95,7 @@ static int p_egid; /* Effective group id. */ static int p_rgid; /* Real group id. */ static int p_ruid; /* Real user id. */ static int p_subid; /* Subject id. */ +static const char *p_zone; /* Zone. */ /* * Maintain a dynamically sized array of events for -m @@ -114,6 +116,8 @@ static char *p_sockobj = NULL; static uint32_t opttochk = 0; +static int select_zone(const char *zone, uint32_t *optchkd); + static void parse_regexp(char *re_string) { @@ -186,6 +190,7 @@ usage(const char *msg) fprintf(stderr, "\t-r : real user\n"); fprintf(stderr, "\t-u : audit user\n"); fprintf(stderr, "\t-v : select non-matching records\n"); + fprintf(stderr, "\t-z : zone name\n"); exit(EX_USAGE); } @@ -493,6 +498,21 @@ select_subj32(tokenstr_t tok, uint32_t *optchkd) } /* + * Check if the given zone matches the selection criteria. + */ +static int +select_zone(const char *zone, uint32_t *optchkd) +{ + + SETOPT((*optchkd), OPT_z); + if (ISOPTSET(opttochk, OPT_z) && p_zone != NULL) { + if (fnmatch(p_zone, zone, FNM_PATHNAME) != 0) + return (0); + } + return (1); +} + +/* * Read each record from the audit trail. Check if it is selected after * passing through each of the options */ @@ -559,6 +579,10 @@ select_records(FILE *fp) tok_hdr32_copy, &optchkd); break; + case AUT_ZONENAME: + selected = select_zone(tok.tt.zonename.zonename, &optchkd); + break; + default: break; } @@ -629,7 +653,7 @@ main(int argc, char **argv) converr = NULL; - while ((ch = getopt(argc, argv, "Aa:b:c:d:e:f:g:j:m:o:r:u:v")) != -1) { + while ((ch = getopt(argc, argv, "Aa:b:c:d:e:f:g:j:m:o:r:u:vz:")) != -1) { switch(ch) { case 'A': SETOPT(opttochk, OPT_A); @@ -781,6 +805,11 @@ main(int argc, char **argv) case 'v': SETOPT(opttochk, OPT_v); + break; + + case 'z': + p_zone = optarg; + SETOPT(opttochk, OPT_z); break; case '?': Modified: stable/12/contrib/openbsm/bin/auditreduce/auditreduce.h ============================================================================== --- stable/12/contrib/openbsm/bin/auditreduce/auditreduce.h Thu Apr 9 15:58:06 2020 (r359748) +++ stable/12/contrib/openbsm/bin/auditreduce/auditreduce.h Thu Apr 9 16:02:20 2020 (r359749) @@ -57,6 +57,7 @@ struct re_entry { #define OPT_u 0x00010000 #define OPT_A 0x00020000 #define OPT_v 0x00040000 +#define OPT_z 0x00080000 #define FILEOBJ "file" #define MSGQIDOBJ "msgqid" From owner-svn-src-all@freebsd.org Thu Apr 9 16:24:58 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5110C2BED32; Thu, 9 Apr 2020 16:24:58 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48ymhB1RJBz3Lh1; Thu, 9 Apr 2020 16:24:58 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2C1E4FA94; Thu, 9 Apr 2020 16:24:58 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 039GOwxm012886; Thu, 9 Apr 2020 16:24:58 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 039GOwaO012885; Thu, 9 Apr 2020 16:24:58 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004091624.039GOwaO012885@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 9 Apr 2020 16:24:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r359750 - in stable: 11/share/man/man5 12/share/man/man5 X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/share/man/man5 12/share/man/man5 X-SVN-Commit-Revision: 359750 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Apr 2020 16:24:58 -0000 Author: kevans Date: Thu Apr 9 16:24:57 2020 New Revision: 359750 URL: https://svnweb.freebsd.org/changeset/base/359750 Log: MFC (effectively) r359645: src.conf(5): re-roll after LLVM_ASSERTIONS On stable/12, this ends up including just a couple other things that src.conf(5) hadn't been regenerated for. Modified: stable/11/share/man/man5/src.conf.5 Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/share/man/man5/src.conf.5 Directory Properties: stable/12/ (props changed) stable/12/contrib/llvm-project/clang/ (props changed) stable/12/contrib/llvm-project/compiler-rt/ (props changed) stable/12/contrib/llvm-project/libcxx/ (props changed) stable/12/contrib/llvm-project/libunwind/ (props changed) stable/12/contrib/llvm-project/lld/ (props changed) stable/12/contrib/llvm-project/lldb/ (props changed) stable/12/contrib/llvm-project/llvm/ (props changed) stable/12/contrib/llvm-project/openmp/ (props changed) Modified: stable/11/share/man/man5/src.conf.5 ============================================================================== --- stable/11/share/man/man5/src.conf.5 Thu Apr 9 16:02:20 2020 (r359749) +++ stable/11/share/man/man5/src.conf.5 Thu Apr 9 16:24:57 2020 (r359750) @@ -1,6 +1,6 @@ .\" DO NOT EDIT-- this file is @generated by tools/build/options/makeman. .\" $FreeBSD$ -.Dd October 28, 2019 +.Dd April 9, 2020 .Dt SRC.CONF 5 .Os .Sh NAME @@ -991,6 +991,8 @@ Set to use LLVM's LLD as the system linker, instead of .Pp This is a default setting on arm64/aarch64. +.It Va WITH_LLVM_ASSERTIONS +Set to enable debugging assertions in LLVM. .It Va WITHOUT_LLVM_COV Set to not build the .Xr llvm-cov 1 From owner-svn-src-all@freebsd.org Thu Apr 9 16:24:58 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9D64D2BED37; Thu, 9 Apr 2020 16:24:58 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48ymhB3n88z3Lh2; Thu, 9 Apr 2020 16:24:58 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7CF94FA95; Thu, 9 Apr 2020 16:24:58 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 039GOwP0012893; Thu, 9 Apr 2020 16:24:58 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 039GOwwP012892; Thu, 9 Apr 2020 16:24:58 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004091624.039GOwwP012892@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 9 Apr 2020 16:24:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359750 - in stable: 11/share/man/man5 12/share/man/man5 X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/share/man/man5 12/share/man/man5 X-SVN-Commit-Revision: 359750 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Apr 2020 16:24:58 -0000 Author: kevans Date: Thu Apr 9 16:24:57 2020 New Revision: 359750 URL: https://svnweb.freebsd.org/changeset/base/359750 Log: MFC (effectively) r359645: src.conf(5): re-roll after LLVM_ASSERTIONS On stable/12, this ends up including just a couple other things that src.conf(5) hadn't been regenerated for. Modified: stable/12/share/man/man5/src.conf.5 Directory Properties: stable/12/ (props changed) stable/12/contrib/llvm-project/clang/ (props changed) stable/12/contrib/llvm-project/compiler-rt/ (props changed) stable/12/contrib/llvm-project/libcxx/ (props changed) stable/12/contrib/llvm-project/libunwind/ (props changed) stable/12/contrib/llvm-project/lld/ (props changed) stable/12/contrib/llvm-project/lldb/ (props changed) stable/12/contrib/llvm-project/llvm/ (props changed) stable/12/contrib/llvm-project/openmp/ (props changed) Changes in other areas also in this revision: Modified: stable/11/share/man/man5/src.conf.5 Directory Properties: stable/11/ (props changed) Modified: stable/12/share/man/man5/src.conf.5 ============================================================================== --- stable/12/share/man/man5/src.conf.5 Thu Apr 9 16:02:20 2020 (r359749) +++ stable/12/share/man/man5/src.conf.5 Thu Apr 9 16:24:57 2020 (r359750) @@ -1,6 +1,6 @@ .\" DO NOT EDIT-- this file is @generated by tools/build/options/makeman. .\" $FreeBSD$ -.Dd March 8, 2020 +.Dd April 9, 2020 .Dt SRC.CONF 5 .Os .Sh NAME @@ -159,6 +159,10 @@ is set explicitly) (unless .Va WITHOUT_LOADER_VERIEXEC is set explicitly) +.It Va WITH_LOADER_VERIEXEC_VECTX +(unless +.Va WITHOUT_LOADER_VERIEXEC_VECTX +is set explicitly) .It Va WITH_VERIEXEC (unless .Va WITHOUT_VERIEXEC @@ -452,9 +456,15 @@ When set, it enforces these options: .It .Va WITHOUT_KERBEROS .It +.Va WITHOUT_LDNS +.It +.Va WITHOUT_LDNS_UTILS +.It .Va WITHOUT_OPENSSH .It .Va WITHOUT_OPENSSL +.It +.Va WITHOUT_UNBOUND .El .Pp When set, these options are also in effect: @@ -1040,6 +1050,8 @@ Set to use LLVM's LLD as the system linker, instead of .Pp This is a default setting on amd64/amd64, arm/armv7, arm64/aarch64 and i386/i386. +.It Va WITH_LLVM_ASSERTIONS +Set to enable debugging assertions in LLVM. .It Va WITHOUT_LLVM_COV Set to not build the .Xr llvm-cov 1 @@ -1251,6 +1263,10 @@ When set, these options are also in effect: (unless .Va WITHOUT_LOADER_EFI_SECUREBOOT is set explicitly) +.It Va WITH_LOADER_VERIEXEC_VECTX +(unless +.Va WITHOUT_LOADER_VERIEXEC_VECTX +is set explicitly) .El .It Va WITH_LOADER_VERIEXEC_PASS_MANIFEST Enable building @@ -1508,7 +1524,13 @@ When set, it enforces these options: .It .Va WITHOUT_KERBEROS .It +.Va WITHOUT_LDNS +.It +.Va WITHOUT_LDNS_UTILS +.It .Va WITHOUT_OPENSSH +.It +.Va WITHOUT_UNBOUND .El .Pp When set, these options are also in effect: From owner-svn-src-all@freebsd.org Thu Apr 9 18:17:09 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 88F0227978F; Thu, 9 Apr 2020 18:17:09 +0000 (UTC) (envelope-from dab@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48yq9d2yrDz3ykl; Thu, 9 Apr 2020 18:17:09 +0000 (UTC) (envelope-from dab@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 60DD818FB2; Thu, 9 Apr 2020 18:17:09 +0000 (UTC) (envelope-from dab@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 039IH9wZ080051; Thu, 9 Apr 2020 18:17:09 GMT (envelope-from dab@FreeBSD.org) Received: (from dab@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 039IH7sr080044; Thu, 9 Apr 2020 18:17:07 GMT (envelope-from dab@FreeBSD.org) Message-Id: <202004091817.039IH7sr080044@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dab set sender to dab@FreeBSD.org using -f From: David Bright Date: Thu, 9 Apr 2020 18:17:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359751 - in stable/12/sbin/nvmecontrol: . modules/wdc X-SVN-Group: stable-12 X-SVN-Commit-Author: dab X-SVN-Commit-Paths: in stable/12/sbin/nvmecontrol: . modules/wdc X-SVN-Commit-Revision: 359751 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Apr 2020 18:17:09 -0000 Author: dab Date: Thu Apr 9 18:17:07 2020 New Revision: 359751 URL: https://svnweb.freebsd.org/changeset/base/359751 Log: MFC r359562: Fix various Coverity-detected errors in nvmecontrol This fixes several Coverity-detected errors in nvmecontrol. While in here, a couple additional errors with shift/mask confusion that were not diagnosed by Coverity are also fixed. CIDs addressed: 1040299, 1040300, 1403972, 1403973, 1403985, 1403988, 1403990, 1404374, 1404427, 1404469, 1404510, 1404534, 1418118 CID 1403657 (resource leak of shared library handle) was marked "intentional" in the Coverity scan database. Sponsored by: Dell EMC Isilon Modified: stable/12/sbin/nvmecontrol/firmware.c stable/12/sbin/nvmecontrol/identify.c stable/12/sbin/nvmecontrol/logpage.c stable/12/sbin/nvmecontrol/modules/wdc/wdc.c stable/12/sbin/nvmecontrol/nsid.c stable/12/sbin/nvmecontrol/passthru.c stable/12/sbin/nvmecontrol/power.c stable/12/sbin/nvmecontrol/reset.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sbin/nvmecontrol/firmware.c ============================================================================== --- stable/12/sbin/nvmecontrol/firmware.c Thu Apr 9 16:24:57 2020 (r359750) +++ stable/12/sbin/nvmecontrol/firmware.c Thu Apr 9 18:17:07 2020 (r359751) @@ -151,6 +151,7 @@ read_image_file(const char *path, void **buf, int32_t errx(1, "error reading '%s' (read %d bytes, requested %d bytes)", path, *size, filesize); + close(fd); } static void @@ -188,6 +189,7 @@ update_firmware(int fd, uint8_t *payload, int32_t payl resid -= size; off += size; } + free(chunk); } static int Modified: stable/12/sbin/nvmecontrol/identify.c ============================================================================== --- stable/12/sbin/nvmecontrol/identify.c Thu Apr 9 16:24:57 2020 (r359750) +++ stable/12/sbin/nvmecontrol/identify.c Thu Apr 9 18:17:07 2020 (r359751) @@ -94,7 +94,7 @@ print_namespace(struct nvme_namespace_data *nsdata) NVME_NS_DATA_DPC_PIT3_MASK) ? "Type 3, " : "", ((nsdata->dpc >> NVME_NS_DATA_DPC_PIT2_SHIFT) & NVME_NS_DATA_DPC_PIT2_MASK) ? "Type 2, " : "", - ((nsdata->dpc >> NVME_NS_DATA_DPC_PIT2_MASK) & + ((nsdata->dpc >> NVME_NS_DATA_DPC_PIT1_SHIFT) & NVME_NS_DATA_DPC_PIT1_MASK) ? "Type 1" : ""); printf("Data Protection Settings: "); ptype = (nsdata->dps >> NVME_NS_DATA_DPS_PIT_SHIFT) & @@ -238,7 +238,8 @@ identify(const struct cmd *f, int argc, char *argv[]) int fd; uint32_t nsid; - arg_parse(argc, argv, f); + if (arg_parse(argc, argv, f)) + return; open_dev(opt.dev, &fd, 1, 1); get_nsid(fd, &path, &nsid); Modified: stable/12/sbin/nvmecontrol/logpage.c ============================================================================== --- stable/12/sbin/nvmecontrol/logpage.c Thu Apr 9 16:24:57 2020 (r359750) +++ stable/12/sbin/nvmecontrol/logpage.c Thu Apr 9 18:17:07 2020 (r359751) @@ -570,11 +570,11 @@ print_log_sanitize_status(const struct nvme_controller printf("Unknown"); break; } - p = (ss->sstat & NVME_SS_PAGE_SSTAT_PASSES_SHIFT) >> + p = (ss->sstat >> NVME_SS_PAGE_SSTAT_PASSES_SHIFT) & NVME_SS_PAGE_SSTAT_PASSES_MASK; if (p > 0) printf(", %d passes", p); - if ((ss->sstat & NVME_SS_PAGE_SSTAT_GDE_SHIFT) >> + if ((ss->sstat >> NVME_SS_PAGE_SSTAT_GDE_SHIFT) & NVME_SS_PAGE_SSTAT_GDE_MASK) printf(", Global Data Erased"); printf("\n"); Modified: stable/12/sbin/nvmecontrol/modules/wdc/wdc.c ============================================================================== --- stable/12/sbin/nvmecontrol/modules/wdc/wdc.c Thu Apr 9 16:24:57 2020 (r359750) +++ stable/12/sbin/nvmecontrol/modules/wdc/wdc.c Thu Apr 9 18:17:07 2020 (r359751) @@ -275,7 +275,7 @@ print_hgst_info_subpage_gen(void *buf, uint16_t subtyp wsp++; /* Flags, just ignore */ plen = *wsp++; param = 0; - for (i = 0; i < plen; i++) + for (i = 0; i < plen && wsp < esp; i++) param |= (uint64_t)*wsp++ << (i * 8); printf(" %-30s: %jd\n", kv_lookup(kv, kv_count, ptype), (uintmax_t)param); } Modified: stable/12/sbin/nvmecontrol/nsid.c ============================================================================== --- stable/12/sbin/nvmecontrol/nsid.c Thu Apr 9 16:24:57 2020 (r359750) +++ stable/12/sbin/nvmecontrol/nsid.c Thu Apr 9 18:17:07 2020 (r359751) @@ -70,7 +70,8 @@ gnsid(const struct cmd *f, int argc, char *argv[]) int fd; uint32_t nsid; - arg_parse(argc, argv, f); + if (arg_parse(argc, argv, f)) + return; open_dev(nsid_opt.dev, &fd, 1, 1); get_nsid(fd, &path, &nsid); Modified: stable/12/sbin/nvmecontrol/passthru.c ============================================================================== --- stable/12/sbin/nvmecontrol/passthru.c Thu Apr 9 16:24:57 2020 (r359750) +++ stable/12/sbin/nvmecontrol/passthru.c Thu Apr 9 18:17:07 2020 (r359751) @@ -158,10 +158,12 @@ static void passthru(const struct cmd *f, int argc, char *argv[]) { int fd = -1, ifd = -1; + size_t bytes_read; void *data = NULL, *metadata = NULL; struct nvme_pt_command pt; - arg_parse(argc, argv, f); + if (arg_parse(argc, argv, f)) + return; open_dev(argv[optind], &fd, 1, 1); if (opt.read && opt.write) @@ -189,8 +191,12 @@ passthru(const struct cmd *f, int argc, char *argv[]) goto cleanup; } memset(data, opt.prefill, opt.data_len); - if (opt.write && read(ifd, data, opt.data_len) < 0) { - warn("read %s", *opt.ifn ? opt.ifn : "stdin"); + if (opt.write && + (bytes_read = read(ifd, data, opt.data_len)) != + opt.data_len) { + warn("read %s; expected %u bytes; got %zd", + *opt.ifn ? opt.ifn : "stdin", + opt.data_len, bytes_read); goto cleanup; } } @@ -249,6 +255,10 @@ passthru(const struct cmd *f, int argc, char *argv[]) } } cleanup: + free(data); + close(fd); + if (ifd > -1) + close(ifd); if (errno) exit(1); } Modified: stable/12/sbin/nvmecontrol/power.c ============================================================================== --- stable/12/sbin/nvmecontrol/power.c Thu Apr 9 16:24:57 2020 (r359750) +++ stable/12/sbin/nvmecontrol/power.c Thu Apr 9 18:17:07 2020 (r359751) @@ -145,7 +145,8 @@ power(const struct cmd *f, int argc, char *argv[]) struct nvme_controller_data cdata; int fd; - arg_parse(argc, argv, f); + if (arg_parse(argc, argv, f)) + return; if (opt.list && opt.power != POWER_NONE) { fprintf(stderr, "Can't set power and list power states\n"); Modified: stable/12/sbin/nvmecontrol/reset.c ============================================================================== --- stable/12/sbin/nvmecontrol/reset.c Thu Apr 9 16:24:57 2020 (r359750) +++ stable/12/sbin/nvmecontrol/reset.c Thu Apr 9 18:17:07 2020 (r359751) @@ -57,7 +57,8 @@ reset(const struct cmd *f, int argc, char *argv[]) { int fd; - arg_parse(argc, argv, f); + if (arg_parse(argc, argv, f)) + return; open_dev(opt.dev, &fd, 1, 1); if (ioctl(fd, NVME_RESET_CONTROLLER) < 0) From owner-svn-src-all@freebsd.org Thu Apr 9 18:38:01 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 46D3C279F72; Thu, 9 Apr 2020 18:38:01 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48yqdj11V8z40tF; Thu, 9 Apr 2020 18:38:01 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1E31E193AF; Thu, 9 Apr 2020 18:38:01 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 039Ic09Y092586; Thu, 9 Apr 2020 18:38:00 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 039Ic0IA092585; Thu, 9 Apr 2020 18:38:00 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202004091838.039Ic0IA092585@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 9 Apr 2020 18:38:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359752 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 359752 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Apr 2020 18:38:01 -0000 Author: kib Date: Thu Apr 9 18:38:00 2020 New Revision: 359752 URL: https://svnweb.freebsd.org/changeset/base/359752 Log: Remove extra call to vfs_op_exit() from vfs_write_suspend() when VFS_SYNC() fails. The vfs_write_resume() handler already does vfs_op_exit() for us. Reported by: pho Reviewed by: mckusick Sponsored by: The FreeBSD Foundation Modified: head/sys/kern/vfs_vnops.c Modified: head/sys/kern/vfs_vnops.c ============================================================================== --- head/sys/kern/vfs_vnops.c Thu Apr 9 18:17:07 2020 (r359751) +++ head/sys/kern/vfs_vnops.c Thu Apr 9 18:38:00 2020 (r359752) @@ -1902,7 +1902,7 @@ vfs_write_suspend(struct mount *mp, int flags) MNT_IUNLOCK(mp); if ((error = VFS_SYNC(mp, MNT_SUSPEND)) != 0) { vfs_write_resume(mp, 0); - vfs_op_exit(mp); + /* vfs_write_resume does vfs_op_exit() for us */ } return (error); } From owner-svn-src-all@freebsd.org Thu Apr 9 19:49:21 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9454427CBE8 for ; Thu, 9 Apr 2020 19:49:21 +0000 (UTC) (envelope-from sobomax@sippysoft.com) Received: from mail-ua1-f65.google.com (mail-ua1-f65.google.com [209.85.222.65]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48ysD04rDmz49yx for ; Thu, 9 Apr 2020 19:49:20 +0000 (UTC) (envelope-from sobomax@sippysoft.com) Received: by mail-ua1-f65.google.com with SMTP id a6so450877uao.2 for ; Thu, 09 Apr 2020 12:49:20 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=RvHhWXt0Au+F45nw3ZJ4InZIi7WLas9JzOPiQR1mxyk=; b=l+PCPAVVGDFfg3C4KE3cOztvDwzd5zGYM9/CKJDT5vfvNl/5Oe1pb8cb5ZzXv0/QJg IIDQJdV7SxRmxsXIHLGK7+phx6G9am+UU6Sbb+9354kD0TUbsquUoiULXDn/98/01DQg aR0RU7jeuu/dOW81/BAy3nt2p737XnV8Fhk52PyzhVbKVt7JmPkHoHUs0YsZnFJN07ze UbrBXao5jyKCm0szXXj6zjBcqu7c4E8C0rTm1Q4MlBVXDKPr/V86sxsma8e430JWdoZf x3tJbLODiajdR/kj1afPxUa1jcB93iKYO0ee9+GNbWgSES9roqwWEc60WOsS2jAYbcDP 4kzg== X-Gm-Message-State: AGi0PuYST31c6ushxNPKOon1XPevtGV+MJYo5HD3zm8Rna5s4BF9bvDU wsCRDa9Xn95ng7za+1lZZsmTDPuwocchOU3lyUCaCA== X-Google-Smtp-Source: APiQypLkGslyvQG/Tg/WYuifKWO1bhftOWNU4E/CO3OtRwDxq125bsz2WX7vxvhhVT4CnHLLB9SjyqZUyoc6EO3Eka8= X-Received: by 2002:ab0:7556:: with SMTP id k22mr705758uaq.104.1586461759582; Thu, 09 Apr 2020 12:49:19 -0700 (PDT) MIME-Version: 1.0 References: <202004090012.0390CV5H002903@gndrsh.dnsmgr.net> In-Reply-To: <202004090012.0390CV5H002903@gndrsh.dnsmgr.net> From: Maxim Sobolev Date: Thu, 9 Apr 2020 12:49:08 -0700 Message-ID: Subject: Re: svn commit: r359685 - in head: . etc lib/libc/gen share/mk share/termcap usr.bin/login usr.bin/vgrind usr.sbin/services_mkdb To: "Rodney W. Grimes" Cc: src-committers , svn-src-all , svn-src-head X-Rspamd-Queue-Id: 48ysD04rDmz49yx X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of sobomax@sippysoft.com designates 209.85.222.65 as permitted sender) smtp.mailfrom=sobomax@sippysoft.com X-Spamd-Result: default: False [-2.17 / 15.00]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17]; TO_DN_ALL(0.00)[]; FORGED_SENDER(0.30)[sobomax@freebsd.org,sobomax@sippysoft.com]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; FROM_NEQ_ENVFROM(0.00)[sobomax@freebsd.org,sobomax@sippysoft.com]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-all@freebsd.org]; DMARC_NA(0.00)[freebsd.org]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[65.222.85.209.list.dnswl.org : 127.0.5.0]; IP_SCORE(-0.17)[ip: (-0.00), ipnet: 209.85.128.0/17(-0.40), asn: 15169(-0.43), country: US(-0.05)]; RWL_MAILSPIKE_POSSIBLE(0.00)[65.222.85.209.rep.mailspike.net : 127.0.0.17]; RCVD_COUNT_TWO(0.00)[2]; RCVD_TLS_ALL(0.00)[] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Apr 2020 19:49:21 -0000 Well, how many FreeBSD builds have you run in the last year, Rodney, personally to care about 0.1s slowdown that it might have caused? We've run at least a 1,000 here, probably 3x more. So yes, the cost is there, the cost is well understood and found negligible versus the benefit of having a slightly more extensible build system that is slightly easier to understand and integrate into bigger projects. -Max On Wed, Apr 8, 2020 at 5:12 PM Rodney W. Grimes wrote: > > On Tue, Apr 7, 2020 at 3:37 AM Rodney W. Grimes < > freebsd@gndrsh.dnsmgr.net> > > wrote: > > > > > > Author: sobomax > > > > Date: Tue Apr 7 02:46:22 2020 > > > > New Revision: 359685 > > > > URL: https://svnweb.freebsd.org/changeset/base/359685 > > > > > > > > Log: > > > > Normalize deployment tools usage and definitions by putting into > one > > > place > > > > instead of sprinkling them out over many disjoint files. This is a > > > follow-up > > > > to achieve the same goal in an incomplete rev.348521. > > > > > > I have concerns that this factoring out of 5 values that have not > changed > > > in 25 years is a pessimization, it is one more file that make has to > > > open on each invocation. > > > > > > > Well, luckily enough the cost of opening a file has been exponentially > > declining over those 25 years, so we are probably many-orders of > magnitude > > faster than we used to be back in 1995. Or so I've heard. :) > > I believe we are pretty much just on par and no more than 1 > order of magnitude on time completion of make world. > > > > > Having those variables defined in a centralized manner allows us here for > > example to convert the result of what would be > > installworld/installkernel/distribution action into a self-extracting > > archive (optionally signed) with automatically generated script, which > does > > the action in question. As such, we can now build in a completely > sandboxed > > environment with 0 privileges (potentially even on something completely > > alien like GNU/Linux) and then deploy it to as many systems as we need or > > use to create VM images / Jails. > > > > > https://github.com/sobomax/sysmaker/blob/master/makeargs/distribution.sub > > > https://github.com/sobomax/sysmaker/blob/master/makeargs/installkernel.sub > > > https://github.com/sobomax/sysmaker/blob/master/makeargs/installworld.sub > > I do not see anything in that set of files that requires this change, > am I missing something? > > All of the existing values should of been overridable from the make > command line invocation, and it does not mater if they are in 1 > file or 50 files. > > > I have very few reasons to believe that our needs to be unique in this, I > > am pretty sure others will find some interesting use for this as well > (e.g. > > signing binaries being installed, etc). > > I do not see that your needs require this change. > > > > > -Max > > -- > Rod Grimes > rgrimes@freebsd.org > > From owner-svn-src-all@freebsd.org Thu Apr 9 20:35:47 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0A59527E132; Thu, 9 Apr 2020 20:35:47 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48ytFZ6pPlz4FG6; Thu, 9 Apr 2020 20:35:46 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E42F61AAFA; Thu, 9 Apr 2020 20:35:46 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 039KZkCe071861; Thu, 9 Apr 2020 20:35:46 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 039KZZ0q071806; Thu, 9 Apr 2020 20:35:35 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004092035.039KZZ0q071806@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 9 Apr 2020 20:35:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359753 - in stable/12: bin/sh cddl/contrib/opensolaris/cmd/zfs cddl/contrib/opensolaris/cmd/zpool contrib/bmake contrib/ipfilter contrib/ipfilter/tools contrib/ntp/include contrib/ntp/... X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable/12: bin/sh cddl/contrib/opensolaris/cmd/zfs cddl/contrib/opensolaris/cmd/zpool contrib/bmake contrib/ipfilter contrib/ipfilter/tools contrib/ntp/include contrib/ntp/ntpd contrib/tcsh contrib... X-SVN-Commit-Revision: 359753 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Apr 2020 20:35:47 -0000 Author: kevans Date: Thu Apr 9 20:35:35 2020 New Revision: 359753 URL: https://svnweb.freebsd.org/changeset/base/359753 Log: MFC -fno-common fixes: r359389, r359394, r359397-r359399, r359403-r359404, r359406, r359413-r359416, r359424-r359425, r359427, r359432-r359433, r359443, r359675-r359678 Note: this is not necessarily a complete fix to get these programs to build with -fno-common applied; further work may be needed in this branch. r359389: config(8): fixes for -fno-common Move this handful of definitions into main.c, properly declare these as extern in config.h. This fixes the config(8) build with -fno-common. Unexplained in my previous commit to gas, -fno-common will become the default in GCC10 and LLVM11, so it's worth addressing these in advance. r359394: MFV r359393: tcsh: import 6974bc35a5cd This removes an extra variable definition that causes the -fno-common build to fail, which will be a new default in GCC10/LLVM11. r359397: zfs: fix -fno-common issues A similar (or identical?) fix has already landed in OpenZFS. -fno-common will become the default in GCC10/LLVM11. r359398: sh: remove duplicate el definition el is declared extern in myhistedit.h and defined in histedit.c. Remove the duplicate definition in input.c to appease the -fno-common build. -fno-common will become the default in GCC10/LLVM11. r359399: telnet: remove some duplicate definitions, mark terminaltype extern Most of these were already properly declared and defined elsewhere, this is effectively just a minor cleanup that fixes the -fno-common build. -fno-common will become the default in GCC10/LLVM11. r359403: Revert 359399: telnet -fno-common bits There was a large misfire from my local diff that I need to investigate, and this version committed did not build. r359404: Re-apply r359399: telnet -fno-common fix line and auth_level's redefinitions are just extraneous telnetd will #define extern and then include ext.h to allocate storage for all of these extern'd vars; however, two of them are actually defined in libtelnet instead. Instead of doing an #ifdef extern dance around those function pointers, just add an EXTERN macro to make it easier to differentiate by sight which ones will get allocated in globals.c and which ones are defined elsewhere. r359406: telnet: kill off remaining duplicate definition r359413: ipfilter: remove duplicate definition of 'thishost' thishost is already defined in lib/initparse.c; no need for this one. This fixes the ipfilter build with -fno-common. -fno-common will become the default in GCC10/LLVM11. r359414: iscontrol: move definition of vflag/iscsidev to iscontrol.c Mark the declaration extern as these are used elsewhere; this fixes the build with -fno-common. r359415: userboot: mark host_fsops as extern This is already defined elsewhere; mark this declaration extern to the fix the -fno-common build. r359416: systat: remove redundant definition of kd kd is already properly declared in extern.h and defined in main.c, rendering this definition useless. This fixes the -fno-common build. r359424: openssh: -fno-common fix from upstream f47d72ddad This is currently staged in vendor/ as part of the 8.0p1 import, which isn't quite ready to land. Given that this is a simple one-line fix, apply it now as the fallout will be pretty minimal. -fno-common will become the default in GCC10/LLVM11. r359425: locate: fix -fno-common build Just a single variable declaration to extern and define elsewhere here, myctype. -fno-common will become a default in GCC10/LLVM11. r359427: fsck_ffs/fsdb: fix -fno-common build This one is also a small list: - 3x duplicate definition (ufs2_zino, returntosingle, nflag) - 5x 'needs extern', 3/5 of which are referenced in fsdb -fno-common will become the default in GCC10/LLVM11. r359432: gdb: compile with -fcommon explicitly As described in the comment, gdb relies on some of the linker magic that happens with -fcommon. I suspect the life expectancy of gdb-in-base is low enough that this isn't worth spending much time addressing, especially given the vintage. Hit it with the -fcommon hammer so that it continues to just work. r359433: bmake: fix -fno-common build debug was declared extern, but debug_file was not; correct this and define debug_file in main.c (as debug is) to fix the -fno-common build. -fno-common will become the default with GCC10/LLVM11. r359443: MFV r359442: bmake: import -fno-common fix build back from upstream sjg@ committed the local patch previously committed upstream; pull it in to vendor/ to ease any potential stress of future imports. r359675: kqueue tests: fix -fno-common build vnode_fd and kqfd are both shared among multiple CU; define them exactly once. In the case of vnode_fd, it was simply the declaration that needed correction. -fno-common will become the default in GCC10/LLVM11. r359676: ntpd: fix build with -fno-common Only a small nit here: psl should be declared extern and defined exactly once. -fno-common will become the default in GCC10/LLVM11. r359677: yp*: fix -fno-common build This is mostly two problems spread out far and wide: - ypldap_process should be declared properly - debug is defined differently in many programs For the latter, just extern it and define it everywhere that actually needs it. This mostly works out nicely for ^/libexec/ypxfr, which can remove the assignment at the beginning of main in favor of defining it properly. -fno-common will become the default in GCC10/LLVM11. r359678: indent: fix the -fno-common build Spread the globals far and wide, hopefully to the files that make the most sense. -fno-common will become the default in GCC10/LLVM11. Modified: stable/12/bin/sh/input.c stable/12/cddl/contrib/opensolaris/cmd/zfs/zfs_util.h stable/12/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c stable/12/cddl/contrib/opensolaris/cmd/zpool/zpool_util.h stable/12/contrib/bmake/main.c stable/12/contrib/bmake/make.h stable/12/contrib/ipfilter/ipf.h stable/12/contrib/ipfilter/tools/ipnat.c stable/12/contrib/ntp/include/ntp_config.h stable/12/contrib/ntp/ntpd/ntp_config.c stable/12/contrib/tcsh/tc.sig.c stable/12/contrib/telnet/telnetd/ext.h stable/12/contrib/telnet/telnetd/global.c stable/12/contrib/telnet/telnetd/sys_term.c stable/12/contrib/telnet/telnetd/telnetd.c stable/12/crypto/openssh/session.c stable/12/gnu/usr.bin/gdb/Makefile.inc stable/12/libexec/ypxfr/ypxfr_main.c stable/12/sbin/fsck_ffs/fsck.h stable/12/sbin/fsck_ffs/gjournal.c stable/12/sbin/fsck_ffs/globs.c stable/12/sbin/fsck_ffs/setup.c stable/12/sbin/fsdb/fsdb.c stable/12/sbin/iscontrol/iscontrol.c stable/12/sbin/iscontrol/iscontrol.h stable/12/stand/userboot/userboot/libuserboot.h stable/12/tests/sys/kqueue/libkqueue/common.h stable/12/tests/sys/kqueue/libkqueue/proc.c stable/12/tests/sys/kqueue/libkqueue/read.c stable/12/tests/sys/kqueue/libkqueue/signal.c stable/12/tests/sys/kqueue/libkqueue/timer.c stable/12/tests/sys/kqueue/libkqueue/user.c stable/12/tests/sys/kqueue/libkqueue/vnode.c stable/12/usr.bin/indent/indent.c stable/12/usr.bin/indent/indent_globs.h stable/12/usr.bin/indent/io.c stable/12/usr.bin/indent/parse.c stable/12/usr.bin/locate/locate/locate.c stable/12/usr.bin/locate/locate/locate.h stable/12/usr.bin/systat/swap.c stable/12/usr.sbin/config/config.h stable/12/usr.sbin/config/main.c stable/12/usr.sbin/rpc.yppasswdd/yppasswdd_main.c stable/12/usr.sbin/rpc.ypupdated/ypupdated_main.c stable/12/usr.sbin/rpc.ypxfrd/ypxfrd_main.c stable/12/usr.sbin/ypldap/ypldap.c stable/12/usr.sbin/ypldap/ypldap.h stable/12/usr.sbin/ypserv/yp_access.c stable/12/usr.sbin/ypserv/yp_error.c stable/12/usr.sbin/ypserv/yp_main.c Directory Properties: stable/12/ (props changed) Modified: stable/12/bin/sh/input.c ============================================================================== --- stable/12/bin/sh/input.c Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/bin/sh/input.c Thu Apr 9 20:35:35 2020 (r359753) @@ -102,8 +102,6 @@ static struct parsefile basepf = { /* top level input static struct parsefile *parsefile = &basepf; /* current input file */ int whichprompt; /* 1 == PS1, 2 == PS2 */ -EditLine *el; /* cookie for editline package */ - static void pushfile(void); static int preadfd(void); static void popstring(void); Modified: stable/12/cddl/contrib/opensolaris/cmd/zfs/zfs_util.h ============================================================================== --- stable/12/cddl/contrib/opensolaris/cmd/zfs/zfs_util.h Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/cddl/contrib/opensolaris/cmd/zfs/zfs_util.h Thu Apr 9 20:35:35 2020 (r359753) @@ -33,7 +33,7 @@ extern "C" { void * safe_malloc(size_t size); void nomem(void); -libzfs_handle_t *g_zfs; +extern libzfs_handle_t *g_zfs; #ifdef __cplusplus } Modified: stable/12/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c ============================================================================== --- stable/12/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Thu Apr 9 20:35:35 2020 (r359753) @@ -62,6 +62,8 @@ #include "statcommon.h" +libzfs_handle_t *g_zfs; + static int zpool_do_create(int, char **); static int zpool_do_destroy(int, char **); Modified: stable/12/cddl/contrib/opensolaris/cmd/zpool/zpool_util.h ============================================================================== --- stable/12/cddl/contrib/opensolaris/cmd/zpool/zpool_util.h Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/cddl/contrib/opensolaris/cmd/zpool/zpool_util.h Thu Apr 9 20:35:35 2020 (r359753) @@ -64,7 +64,7 @@ void pool_list_free(zpool_list_t *); int pool_list_count(zpool_list_t *); void pool_list_remove(zpool_list_t *, zpool_handle_t *); -libzfs_handle_t *g_zfs; +extern libzfs_handle_t *g_zfs; #ifdef __cplusplus } Modified: stable/12/contrib/bmake/main.c ============================================================================== --- stable/12/contrib/bmake/main.c Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/contrib/bmake/main.c Thu Apr 9 20:35:35 2020 (r359753) @@ -1,4 +1,4 @@ -/* $NetBSD: main.c,v 1.273 2017/10/28 21:54:54 sjg Exp $ */ +/* $NetBSD: main.c,v 1.274 2020/03/30 02:41:06 sjg Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -69,7 +69,7 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: main.c,v 1.273 2017/10/28 21:54:54 sjg Exp $"; +static char rcsid[] = "$NetBSD: main.c,v 1.274 2020/03/30 02:41:06 sjg Exp $"; #else #include #ifndef lint @@ -81,7 +81,7 @@ __COPYRIGHT("@(#) Copyright (c) 1988, 1989, 1990, 1993 #if 0 static char sccsid[] = "@(#)main.c 8.3 (Berkeley) 3/19/94"; #else -__RCSID("$NetBSD: main.c,v 1.273 2017/10/28 21:54:54 sjg Exp $"); +__RCSID("$NetBSD: main.c,v 1.274 2020/03/30 02:41:06 sjg Exp $"); #endif #endif /* not lint */ #endif @@ -198,6 +198,8 @@ char *progname; /* the program name */ char *makeDependfile; pid_t myPid; int makelevel; + +FILE *debug_file; Boolean forceJobs = FALSE; Modified: stable/12/contrib/bmake/make.h ============================================================================== --- stable/12/contrib/bmake/make.h Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/contrib/bmake/make.h Thu Apr 9 20:35:35 2020 (r359753) @@ -1,4 +1,4 @@ -/* $NetBSD: make.h,v 1.104 2018/02/12 21:38:09 sjg Exp $ */ +/* $NetBSD: make.h,v 1.105 2020/03/30 02:41:06 sjg Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -464,7 +464,7 @@ extern pid_t myPid; * There is one bit per module. It is up to the module what debug * information to print. */ -FILE *debug_file; /* Output written here - default stdout */ +extern FILE *debug_file; /* Output written here - default stdout */ extern int debug; #define DEBUG_ARCH 0x00001 #define DEBUG_COND 0x00002 Modified: stable/12/contrib/ipfilter/ipf.h ============================================================================== --- stable/12/contrib/ipfilter/ipf.h Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/contrib/ipfilter/ipf.h Thu Apr 9 20:35:35 2020 (r359753) @@ -191,7 +191,7 @@ typedef int (* addfunc_t) __P((int, ioctlfunc_t, void typedef int (* copyfunc_t) __P((void *, void *, size_t)); -extern char thishost[]; +extern char thishost[MAXHOSTNAMELEN]; extern char flagset[]; extern u_char flags[]; extern struct ipopt_names ionames[]; Modified: stable/12/contrib/ipfilter/tools/ipnat.c ============================================================================== --- stable/12/contrib/ipfilter/tools/ipnat.c Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/contrib/ipfilter/tools/ipnat.c Thu Apr 9 20:35:35 2020 (r359753) @@ -60,7 +60,6 @@ static const char rcsid[] = "@(#)$Id$"; #define bzero(a,b) memset(a,0,b) #endif int use_inet6 = 0; -char thishost[MAXHOSTNAMELEN]; extern char *optarg; Modified: stable/12/contrib/ntp/include/ntp_config.h ============================================================================== --- stable/12/contrib/ntp/include/ntp_config.h Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/contrib/ntp/include/ntp_config.h Thu Apr 9 20:35:35 2020 (r359753) @@ -280,7 +280,7 @@ typedef struct settrap_parms_tag { * Poll Skew List */ -psl_item psl[17-3+1]; /* values for polls 3-17 */ +extern psl_item psl[17-3+1]; /* values for polls 3-17 */ /* To simplify the runtime code we */ /* don't want to have to special-case */ /* dealing with a default */ Modified: stable/12/contrib/ntp/ntpd/ntp_config.c ============================================================================== --- stable/12/contrib/ntp/ntpd/ntp_config.c Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/contrib/ntp/ntpd/ntp_config.c Thu Apr 9 20:35:35 2020 (r359753) @@ -202,6 +202,8 @@ int cryptosw; /* crypto command called */ extern char *stats_drift_file; /* name of the driftfile */ +psl_item psl[17-3+1]; + #ifdef BC_LIST_FRAMEWORK_NOT_YET_USED /* * backwards compatibility flags Modified: stable/12/contrib/tcsh/tc.sig.c ============================================================================== --- stable/12/contrib/tcsh/tc.sig.c Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/contrib/tcsh/tc.sig.c Thu Apr 9 20:35:35 2020 (r359753) @@ -56,7 +56,6 @@ int alrmcatch_disabled; /* = 0; */ int phup_disabled; /* = 0; */ int pchild_disabled; /* = 0; */ int pintr_disabled; /* = 0; */ -int handle_interrupt; /* = 0; */ int handle_pending_signals(void) Modified: stable/12/contrib/telnet/telnetd/ext.h ============================================================================== --- stable/12/contrib/telnet/telnetd/ext.h Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/contrib/telnet/telnetd/ext.h Thu Apr 9 20:35:35 2020 (r359753) @@ -30,53 +30,57 @@ * $FreeBSD$ */ +#ifndef EXTERN +#define EXTERN extern +#endif + /* * Telnet server variable declarations */ -extern char options[256]; -extern char do_dont_resp[256]; -extern char will_wont_resp[256]; -extern int linemode; /* linemode on/off */ +EXTERN char options[256]; +EXTERN char do_dont_resp[256]; +EXTERN char will_wont_resp[256]; +EXTERN int linemode; /* linemode on/off */ #ifdef LINEMODE -extern int uselinemode; /* what linemode to use (on/off) */ -extern int editmode; /* edit modes in use */ -extern int useeditmode; /* edit modes to use */ -extern int alwayslinemode; /* command line option */ -extern int lmodetype; /* Client support for linemode */ +EXTERN int uselinemode; /* what linemode to use (on/off) */ +EXTERN int editmode; /* edit modes in use */ +EXTERN int useeditmode; /* edit modes to use */ +EXTERN int alwayslinemode; /* command line option */ +EXTERN int lmodetype; /* Client support for linemode */ #endif /* LINEMODE */ -extern int flowmode; /* current flow control state */ -extern int restartany; /* restart output on any character state */ +EXTERN int flowmode; /* current flow control state */ +EXTERN int restartany; /* restart output on any character state */ #ifdef DIAGNOSTICS -extern int diagnostic; /* telnet diagnostic capabilities */ +EXTERN int diagnostic; /* telnet diagnostic capabilities */ #endif /* DIAGNOSTICS */ #ifdef BFTPDAEMON -extern int bftpd; /* behave as bftp daemon */ +EXTERN int bftpd; /* behave as bftp daemon */ #endif /* BFTPDAEMON */ #ifdef AUTHENTICATION -extern int auth_level; +EXTERN int auth_level; #endif -extern slcfun slctab[NSLC + 1]; /* slc mapping table */ +EXTERN slcfun slctab[NSLC + 1]; /* slc mapping table */ -char *terminaltype; +EXTERN char *terminaltype; /* * I/O data buffers, pointers, and counters. */ -extern char ptyobuf[BUFSIZ+NETSLOP], *pfrontp, *pbackp; +EXTERN char ptyobuf[BUFSIZ+NETSLOP], *pfrontp, *pbackp; -extern char netibuf[BUFSIZ], *netip; +EXTERN char netibuf[BUFSIZ], *netip; -extern char netobuf[BUFSIZ], *nfrontp, *nbackp; -extern char *neturg; /* one past last bye of urgent data */ +EXTERN char netobuf[BUFSIZ], *nfrontp, *nbackp; +EXTERN char *neturg; /* one past last bye of urgent data */ -extern int pcc, ncc; +EXTERN int pcc, ncc; -extern int pty, net; -extern char line[32]; -extern int SYNCHing; /* we are in TELNET SYNCH mode */ +EXTERN int pty, net; +EXTERN char line[32]; +EXTERN int SYNCHing; /* we are in TELNET SYNCH mode */ -extern void +EXTERN void _termstat(void), add_slc(char, char, cc_t), check_slc(void), @@ -133,7 +137,7 @@ extern void tty_binaryin(int), tty_binaryout(int); -extern int +EXTERN int end_slc(unsigned char **), getnpty(void), #ifndef convex @@ -158,7 +162,7 @@ extern int tty_istrapsig(void), tty_linemode(void); -extern void +EXTERN void tty_rspeed(int), tty_setecho(int), tty_setedit(int), @@ -177,7 +181,7 @@ void startslave(char *, int, char *); #ifdef ENCRYPTION extern void (*encrypt_output)(unsigned char *, int); extern int (*decrypt_input)(int); -extern char *nclearto; +EXTERN char *nclearto; #endif /* ENCRYPTION */ @@ -186,7 +190,7 @@ extern char *nclearto; * the relationship between various variables. */ -extern struct { +EXTERN struct { int system, /* what the current time is */ echotoggle, /* last time user entered echo character */ Modified: stable/12/contrib/telnet/telnetd/global.c ============================================================================== --- stable/12/contrib/telnet/telnetd/global.c Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/contrib/telnet/telnetd/global.c Thu Apr 9 20:35:35 2020 (r359753) @@ -44,5 +44,5 @@ __FBSDID("$FreeBSD$"); */ #include "defs.h" -#define extern +#define EXTERN #include "ext.h" Modified: stable/12/contrib/telnet/telnetd/sys_term.c ============================================================================== --- stable/12/contrib/telnet/telnetd/sys_term.c Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/contrib/telnet/telnetd/sys_term.c Thu Apr 9 20:35:35 2020 (r359753) @@ -376,8 +376,6 @@ spcset(int func, cc_t *valp, cc_t **valpp) * * Returns the file descriptor of the opened pty. */ -char line[32]; - int getpty(int *ptynum __unused) { Modified: stable/12/contrib/telnet/telnetd/telnetd.c ============================================================================== --- stable/12/contrib/telnet/telnetd/telnetd.c Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/contrib/telnet/telnetd/telnetd.c Thu Apr 9 20:35:35 2020 (r359753) @@ -48,7 +48,6 @@ __FBSDID("$FreeBSD$"); #ifdef AUTHENTICATION #include -int auth_level = 0; #endif #ifdef ENCRYPTION #include Modified: stable/12/crypto/openssh/session.c ============================================================================== --- stable/12/crypto/openssh/session.c Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/crypto/openssh/session.c Thu Apr 9 20:35:35 2020 (r359753) @@ -143,7 +143,7 @@ extern int startup_pipe; extern void destroy_sensitive_data(void); extern struct sshbuf *loginmsg; extern struct sshauthopt *auth_opts; -char *tun_fwd_ifnames; /* serverloop.c */ +extern char *tun_fwd_ifnames; /* serverloop.c */ /* original command from peer. */ const char *original_command = NULL; Modified: stable/12/gnu/usr.bin/gdb/Makefile.inc ============================================================================== --- stable/12/gnu/usr.bin/gdb/Makefile.inc Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/gnu/usr.bin/gdb/Makefile.inc Thu Apr 9 20:35:35 2020 (r359753) @@ -47,6 +47,11 @@ CFLAGS+= -I${CNTRB_GDB}/include CFLAGS+= -I${CNTRB_BU}/bfd CFLAGS+= -I${SYSROOT:U${DESTDIR}}/${INCLUDEDIR}/edit +# Some bits here currently rely on some of the linker-merging magic that happens +# with -fcommon. While this is the default right now, explicitly set -fcommon +# so that it continues to build when the default flips. +CFLAGS+= -fcommon + GENSRCS+= nm.h tm.h .if defined(GDB_CROSS_DEBUGGER) Modified: stable/12/libexec/ypxfr/ypxfr_main.c ============================================================================== --- stable/12/libexec/ypxfr/ypxfr_main.c Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/libexec/ypxfr/ypxfr_main.c Thu Apr 9 20:35:35 2020 (r359753) @@ -53,6 +53,8 @@ __FBSDID("$FreeBSD$"); #include #include "ypxfr_extern.h" +int debug = 1; + char *progname = "ypxfr"; char *yp_dir = _PATH_YP; int _rpcpmstart = 0; @@ -175,8 +177,6 @@ main(int argc, char *argv[]) int remoteport; int interdom = 0; int secure = 0; - - debug = 1; if (!isatty(fileno(stderr))) { openlog("ypxfr", LOG_PID, LOG_DAEMON); Modified: stable/12/sbin/fsck_ffs/fsck.h ============================================================================== --- stable/12/sbin/fsck_ffs/fsck.h Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/sbin/fsck_ffs/fsck.h Thu Apr 9 20:35:35 2020 (r359753) @@ -127,7 +127,7 @@ struct inostat { * Inode state information is contained on per cylinder group lists * which are described by the following structure. */ -struct inostatlist { +extern struct inostatlist { long il_numalloced; /* number of inodes allocated in this cg */ struct inostat *il_stat;/* inostat info for this cylinder group */ } *inostathead; @@ -271,13 +271,13 @@ struct dups { struct dups *next; ufs2_daddr_t dup; }; -struct dups *duplist; /* head of dup list */ -struct dups *muldup; /* end of unique duplicate dup block numbers */ +extern struct dups *duplist; /* head of dup list */ +extern struct dups *muldup; /* end of unique duplicate dup block numbers */ /* * Inode cache data structures. */ -struct inoinfo { +extern struct inoinfo { struct inoinfo *i_nexthash; /* next entry in hash chain */ ino_t i_number; /* inode number of this entry */ ino_t i_parent; /* inode number of parent */ Modified: stable/12/sbin/fsck_ffs/gjournal.c ============================================================================== --- stable/12/sbin/fsck_ffs/gjournal.c Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/sbin/fsck_ffs/gjournal.c Thu Apr 9 20:35:35 2020 (r359753) @@ -93,7 +93,6 @@ static LIST_HEAD(, cgchain) cglist = LIST_HEAD_INITIAL static const char *devnam; static struct uufsd *diskp = NULL; static struct fs *fs = NULL; -struct ufs2_dinode ufs2_zino; static void putcgs(void); Modified: stable/12/sbin/fsck_ffs/globs.c ============================================================================== --- stable/12/sbin/fsck_ffs/globs.c Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/sbin/fsck_ffs/globs.c Thu Apr 9 20:35:35 2020 (r359753) @@ -117,6 +117,10 @@ volatile sig_atomic_t got_sigalarm; /* received a SIGA struct ufs1_dinode ufs1_zino; struct ufs2_dinode ufs2_zino; +struct dups *duplist; +struct dups *muldup; +struct inostatlist *inostathead; + void fsckinit(void) { Modified: stable/12/sbin/fsck_ffs/setup.c ============================================================================== --- stable/12/sbin/fsck_ffs/setup.c Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/sbin/fsck_ffs/setup.c Thu Apr 9 20:35:35 2020 (r359753) @@ -58,6 +58,8 @@ __FBSDID("$FreeBSD$"); #include "fsck.h" +struct inoinfo **inphead, **inpsort; + struct uufsd disk; struct bufarea asblk; #define altsblock (*asblk.b_un.b_fs) Modified: stable/12/sbin/fsdb/fsdb.c ============================================================================== --- stable/12/sbin/fsdb/fsdb.c Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/sbin/fsdb/fsdb.c Thu Apr 9 20:35:35 2020 (r359753) @@ -70,9 +70,6 @@ usage(void) exit(1); } -int returntosingle; -char nflag; - /* * We suck in lots of fsck code, and just pick & choose the stuff we want. * Modified: stable/12/sbin/iscontrol/iscontrol.c ============================================================================== --- stable/12/sbin/iscontrol/iscontrol.c Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/sbin/iscontrol/iscontrol.c Thu Apr 9 20:35:35 2020 (r359753) @@ -82,6 +82,9 @@ token_t DigestMethods[] = { {0, 0} }; +int vflag; +char *iscsidev; + u_char isid[6 + 6]; /* | Default values Modified: stable/12/sbin/iscontrol/iscontrol.h ============================================================================== --- stable/12/sbin/iscontrol/iscontrol.h Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/sbin/iscontrol/iscontrol.h Thu Apr 9 20:35:35 2020 (r359753) @@ -149,8 +149,8 @@ int recvpdu(isess_t *sess, pdu_t *pp); int lookup(token_t *tbl, char *m); -int vflag; -char *iscsidev; +extern int vflag; +extern char *iscsidev; void parseArgs(int nargs, char **args, isc_opt_t *op); void parseConfig(FILE *fd, char *key, isc_opt_t *op); Modified: stable/12/stand/userboot/userboot/libuserboot.h ============================================================================== --- stable/12/stand/userboot/userboot/libuserboot.h Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/stand/userboot/userboot/libuserboot.h Thu Apr 9 20:35:35 2020 (r359753) @@ -44,7 +44,7 @@ extern int userboot_disk_maxunit; extern struct devsw host_dev; /* access to host filesystem */ -struct fs_ops host_fsops; +extern struct fs_ops host_fsops; struct bootinfo; struct preloaded_file; Modified: stable/12/tests/sys/kqueue/libkqueue/common.h ============================================================================== --- stable/12/tests/sys/kqueue/libkqueue/common.h Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/tests/sys/kqueue/libkqueue/common.h Thu Apr 9 20:35:35 2020 (r359753) @@ -41,7 +41,8 @@ #include extern char *cur_test_id; -int vnode_fd; +extern int vnode_fd; +extern int kqfd; extern char * kevent_to_str(struct kevent *); struct kevent * kevent_get(int); Modified: stable/12/tests/sys/kqueue/libkqueue/proc.c ============================================================================== --- stable/12/tests/sys/kqueue/libkqueue/proc.c Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/tests/sys/kqueue/libkqueue/proc.c Thu Apr 9 20:35:35 2020 (r359753) @@ -25,7 +25,6 @@ static int sigusr1_caught = 0; -int kqfd; static void sig_handler(int signum) Modified: stable/12/tests/sys/kqueue/libkqueue/read.c ============================================================================== --- stable/12/tests/sys/kqueue/libkqueue/read.c Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/tests/sys/kqueue/libkqueue/read.c Thu Apr 9 20:35:35 2020 (r359753) @@ -18,7 +18,6 @@ #include "common.h" -int kqfd; int sockfd[2]; static void Modified: stable/12/tests/sys/kqueue/libkqueue/signal.c ============================================================================== --- stable/12/tests/sys/kqueue/libkqueue/signal.c Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/tests/sys/kqueue/libkqueue/signal.c Thu Apr 9 20:35:35 2020 (r359753) @@ -18,7 +18,6 @@ #include "common.h" -int kqfd; void test_kevent_signal_add(void) Modified: stable/12/tests/sys/kqueue/libkqueue/timer.c ============================================================================== --- stable/12/tests/sys/kqueue/libkqueue/timer.c Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/tests/sys/kqueue/libkqueue/timer.c Thu Apr 9 20:35:35 2020 (r359753) @@ -26,7 +26,6 @@ #define MS_TO_US(t) ((t) * THOUSAND) /* Convert milliseconds to microseconds. */ #define US_TO_NS(t) ((t) * THOUSAND) /* Convert microseconds to nanoseconds. */ -int kqfd; /* Get the current time with microsecond precision. Used for * sub-second timing to make some timer tests run faster. Modified: stable/12/tests/sys/kqueue/libkqueue/user.c ============================================================================== --- stable/12/tests/sys/kqueue/libkqueue/user.c Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/tests/sys/kqueue/libkqueue/user.c Thu Apr 9 20:35:35 2020 (r359753) @@ -18,7 +18,6 @@ #include "common.h" -int kqfd; static void add_and_delete(void) Modified: stable/12/tests/sys/kqueue/libkqueue/vnode.c ============================================================================== --- stable/12/tests/sys/kqueue/libkqueue/vnode.c Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/tests/sys/kqueue/libkqueue/vnode.c Thu Apr 9 20:35:35 2020 (r359753) @@ -18,7 +18,6 @@ #include "common.h" -int kqfd; int vnode_fd; void Modified: stable/12/usr.bin/indent/indent.c ============================================================================== --- stable/12/usr.bin/indent/indent.c Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/usr.bin/indent/indent.c Thu Apr 9 20:35:35 2020 (r359753) @@ -59,6 +59,30 @@ __FBSDID("$FreeBSD$"); #include "indent_codes.h" #include "indent.h" +/* Globals */ +FILE *input, *output; +char *labbuf, *s_lab, *e_lab, *l_lab; +char *codebuf, *s_code, *e_code, *l_code; +char *combuf, *s_com, *e_com, *l_com; +char *tokenbuf, *s_token, *e_token, *l_token; +char *in_buffer, *in_buffer_limit; +char *buf_ptr, *buf_end; + +char sc_buf[sc_size]; + +char *save_com, *sc_end; +char *bp_save; +char *be_save; + +struct options opt; +int line_no; + +struct parser_state ps; +int ifdef_level; +struct parser_state state_stack[5]; +struct parser_state match_state[5]; + + static void bakcopy(void); static void indent_declaration(int, int); Modified: stable/12/usr.bin/indent/indent_globs.h ============================================================================== --- stable/12/usr.bin/indent/indent_globs.h Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/usr.bin/indent/indent_globs.h Thu Apr 9 20:35:35 2020 (r359753) @@ -49,8 +49,8 @@ #define true 1 -FILE *input; /* the fid for the input file */ -FILE *output; /* the output file */ +extern FILE *input; /* the fid for the input file */ +extern FILE *output; /* the output file */ #define CHECK_SIZE_CODE(desired_size) \ if (e_code + (desired_size) >= l_code) { \ @@ -104,41 +104,43 @@ FILE *output; /* the output file */ s_token = tokenbuf + 1; \ } -char *labbuf; /* buffer for label */ -char *s_lab; /* start ... */ -char *e_lab; /* .. and end of stored label */ -char *l_lab; /* limit of label buffer */ +extern char *labbuf; /* buffer for label */ +extern char *s_lab; /* start ... */ +extern char *e_lab; /* .. and end of stored label */ +extern char *l_lab; /* limit of label buffer */ -char *codebuf; /* buffer for code section */ -char *s_code; /* start ... */ -char *e_code; /* .. and end of stored code */ -char *l_code; /* limit of code section */ +extern char *codebuf; /* buffer for code section */ +extern char *s_code; /* start ... */ +extern char *e_code; /* .. and end of stored code */ +extern char *l_code; /* limit of code section */ -char *combuf; /* buffer for comments */ -char *s_com; /* start ... */ -char *e_com; /* ... and end of stored comments */ -char *l_com; /* limit of comment buffer */ +extern char *combuf; /* buffer for comments */ +extern char *s_com; /* start ... */ +extern char *e_com; /* ... and end of stored comments */ +extern char *l_com; /* limit of comment buffer */ #define token s_token -char *tokenbuf; /* the last token scanned */ -char *s_token; -char *e_token; -char *l_token; +extern char *tokenbuf; /* the last token scanned */ +extern char *s_token; +extern char *e_token; +extern char *l_token; -char *in_buffer; /* input buffer */ -char *in_buffer_limit; /* the end of the input buffer */ -char *buf_ptr; /* ptr to next character to be taken from - * in_buffer */ -char *buf_end; /* ptr to first after last char in in_buffer */ +extern char *in_buffer; /* input buffer */ +extern char *in_buffer_limit; /* the end of the input buffer */ +extern char *buf_ptr; /* ptr to next character to be taken + * from in_buffer */ +extern char *buf_end; /* ptr to first after last char in + * in_buffer */ -char sc_buf[sc_size]; /* input text is saved here when looking for - * the brace after an if, while, etc */ -char *save_com; /* start of the comment stored in sc_buf */ -char *sc_end; /* pointer into save_com buffer */ +extern char sc_buf[sc_size]; /* input text is saved here when looking + * for the brace after an if, while, etc */ +extern char *save_com; /* start of the comment stored in + * sc_buf */ +extern char *sc_end; /* pointer into save_com buffer */ -char *bp_save; /* saved value of buf_ptr when taking input - * from save_com */ -char *be_save; /* similarly saved value of buf_end */ +extern char *bp_save; /* saved value of buf_ptr when taking + * input from save_com */ +extern char *be_save; /* similarly saved value of buf_end */ struct options { @@ -217,21 +219,22 @@ struct options { * uses all spaces */ int verbose; /* when true, non-essential error messages * are printed */ -} opt; +}; +extern struct options opt; -int found_err; -int n_real_blanklines; -int prefix_blankline_requested; -int postfix_blankline_requested; -int break_comma; /* when true and not in parens, break after a +extern int found_err; +extern int n_real_blanklines; +extern int prefix_blankline_requested; +extern int postfix_blankline_requested; +extern int break_comma; /* when true and not in parens, break after a * comma */ -float case_ind; /* indentation level to be used for a "case +extern float case_ind; /* indentation level to be used for a "case * n:" */ -int code_lines; /* count of lines with code */ -int had_eof; /* set to true when input is exhausted */ -int line_no; /* the current line number. */ -int inhibit_formatting; /* true if INDENT OFF is in effect */ -int suppress_blanklines;/* set iff following blanklines should be +extern int code_lines; /* count of lines with code */ +extern int had_eof; /* set to true when input is exhausted */ +extern int line_no; /* the current line number. */ +extern int inhibit_formatting; /* true if INDENT OFF is in effect */ +extern int suppress_blanklines;/* set iff following blanklines should be * suppressed */ #define STACKSIZE 256 @@ -312,8 +315,10 @@ struct parser_state { int tos; /* pointer to top of stack */ char procname[100]; /* The name of the current procedure */ int just_saw_decl; -} ps; +}; -int ifdef_level; -struct parser_state state_stack[5]; -struct parser_state match_state[5]; +extern struct parser_state ps; + +extern int ifdef_level; +extern struct parser_state state_stack[5]; +extern struct parser_state match_state[5]; Modified: stable/12/usr.bin/indent/io.c ============================================================================== --- stable/12/usr.bin/indent/io.c Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/usr.bin/indent/io.c Thu Apr 9 20:35:35 2020 (r359753) @@ -52,6 +52,15 @@ __FBSDID("$FreeBSD$"); #include "indent_globs.h" #include "indent.h" +/* Globals */ +int found_err; +int n_real_blanklines; +int prefix_blankline_requested, postfix_blankline_requested; +int code_lines; +int had_eof; +int inhibit_formatting; +int suppress_blanklines; + int comment_open; static int paren_target; static int pad_output(int current, int target); Modified: stable/12/usr.bin/indent/parse.c ============================================================================== --- stable/12/usr.bin/indent/parse.c Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/usr.bin/indent/parse.c Thu Apr 9 20:35:35 2020 (r359753) @@ -50,6 +50,10 @@ __FBSDID("$FreeBSD$"); #include "indent_codes.h" #include "indent.h" +/* Globals */ +int break_comma; +float case_ind; + static void reduce(void); void Modified: stable/12/usr.bin/locate/locate/locate.c ============================================================================== --- stable/12/usr.bin/locate/locate/locate.c Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/usr.bin/locate/locate/locate.c Thu Apr 9 20:35:35 2020 (r359753) @@ -116,6 +116,7 @@ int f_limit; /* limit number of output line u_int counter; /* counter for matches [-c] */ char separator='\n'; /* line separator */ +u_char myctype[UCHAR_MAX + 1]; void usage(void); void statistic(FILE *, char *); Modified: stable/12/usr.bin/locate/locate/locate.h ============================================================================== --- stable/12/usr.bin/locate/locate/locate.h Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/usr.bin/locate/locate/locate.h Thu Apr 9 20:35:35 2020 (r359753) @@ -65,7 +65,7 @@ define TOLOWER(ch) tolower(ch) #else -u_char myctype[UCHAR_MAX + 1]; +extern u_char myctype[UCHAR_MAX + 1]; #define TOLOWER(ch) (myctype[ch]) #endif Modified: stable/12/usr.bin/systat/swap.c ============================================================================== --- stable/12/usr.bin/systat/swap.c Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/usr.bin/systat/swap.c Thu Apr 9 20:35:35 2020 (r359753) @@ -56,8 +56,6 @@ static const char sccsid[] = "@(#)swap.c 8.3 (Berkeley #include "systat.h" #include "extern.h" -kvm_t *kd; - static char *header; static long blocksize; static int dlen, odlen; Modified: stable/12/usr.sbin/config/config.h ============================================================================== --- stable/12/usr.sbin/config/config.h Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/usr.sbin/config/config.h Thu Apr 9 20:35:35 2020 (r359753) @@ -45,7 +45,7 @@ struct cfgfile { STAILQ_ENTRY(cfgfile) cfg_next; char *cfg_path; }; -STAILQ_HEAD(, cfgfile) cfgfiles; +extern STAILQ_HEAD(cfgfile_head, cfgfile) cfgfiles; struct file_list { STAILQ_ENTRY(file_list) f_next; @@ -103,8 +103,8 @@ struct config { * in the makerules, etc. machinearch is the global notion of the * MACHINE_ARCH for this MACHINE. */ -char *machinename; -char *machinearch; +extern char *machinename; +extern char *machinearch; /* * For each machine, a set of CPU's may be specified as supported. @@ -115,7 +115,7 @@ struct cputype { SLIST_ENTRY(cputype) cpu_next; }; -SLIST_HEAD(, cputype) cputype; +extern SLIST_HEAD(cputype_head, cputype) cputype; /* * A set of options may also be specified which are like CPU types, @@ -131,7 +131,7 @@ struct opt { SLIST_ENTRY(opt) op_append; }; -SLIST_HEAD(opt_head, opt) opt, mkopt, rmopts; +extern SLIST_HEAD(opt_head, opt) opt, mkopt, rmopts; struct opt_list { char *o_name; @@ -141,7 +141,7 @@ struct opt_list { SLIST_ENTRY(opt_list) o_next; }; -SLIST_HEAD(, opt_list) otab; +extern SLIST_HEAD(opt_list_head, opt_list) otab; struct envvar { char *env_str; @@ -149,21 +149,21 @@ struct envvar { STAILQ_ENTRY(envvar) envvar_next; }; -STAILQ_HEAD(envvar_head, envvar) envvars; +extern STAILQ_HEAD(envvar_head, envvar) envvars; struct hint { char *hint_name; STAILQ_ENTRY(hint) hint_next; }; -STAILQ_HEAD(hint_head, hint) hints; +extern STAILQ_HEAD(hint_head, hint) hints; struct includepath { char *path; SLIST_ENTRY(includepath) path_next; }; -SLIST_HEAD(, includepath) includepath; +extern SLIST_HEAD(includepath_head, includepath) includepath; /* * Tag present in the kernconf.tmpl template file. It's mandatory for those Modified: stable/12/usr.sbin/config/main.c ============================================================================== --- stable/12/usr.sbin/config/main.c Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/usr.sbin/config/main.c Thu Apr 9 20:35:35 2020 (r359753) @@ -72,6 +72,17 @@ static const char rcsid[] = #define CDIR "../compile/" +char *machinename; +char *machinearch; + +struct cfgfile_head cfgfiles; +struct cputype_head cputype; +struct opt_head opt, mkopt, rmopts; +struct opt_list_head otab; +struct envvar_head envvars; +struct hint_head hints; +struct includepath_head includepath; + char * PREFIX; char destdir[MAXPATHLEN]; char srcdir[MAXPATHLEN]; Modified: stable/12/usr.sbin/rpc.yppasswdd/yppasswdd_main.c ============================================================================== --- stable/12/usr.sbin/rpc.yppasswdd/yppasswdd_main.c Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/usr.sbin/rpc.yppasswdd/yppasswdd_main.c Thu Apr 9 20:35:35 2020 (r359753) @@ -83,6 +83,7 @@ static int _rpcfdtype; #define _IDLE 0 #define _SERVED 1 #define _SERVING 2 +int debug; static char _localhost[] = "localhost"; static char _passwd_byname[] = "passwd.byname"; @@ -172,8 +173,6 @@ main(int argc, char *argv[]) char *mastername; char myname[MAXHOSTNAMELEN + 2]; int maxrec = RPC_MAXDATASIZE; - - extern int debug; debug = 1; Modified: stable/12/usr.sbin/rpc.ypupdated/ypupdated_main.c ============================================================================== --- stable/12/usr.sbin/rpc.ypupdated/ypupdated_main.c Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/usr.sbin/rpc.ypupdated/ypupdated_main.c Thu Apr 9 20:35:35 2020 (r359753) @@ -76,6 +76,8 @@ static int _rpcfdtype; extern int _rpcsvcstate; /* Set when a request is serviced */ +int debug; + char *progname = "rpc.ypupdated"; char *yp_dir = "/var/yp/"; Modified: stable/12/usr.sbin/rpc.ypxfrd/ypxfrd_main.c ============================================================================== --- stable/12/usr.sbin/rpc.ypxfrd/ypxfrd_main.c Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/usr.sbin/rpc.ypxfrd/ypxfrd_main.c Thu Apr 9 20:35:35 2020 (r359753) @@ -78,6 +78,8 @@ static int _rpcfdtype; extern int _rpcsvcstate; /* Set when a request is serviced */ +int debug; + char *progname = "rpc.ypxfrd"; char *yp_dir = "/var/yp/"; Modified: stable/12/usr.sbin/ypldap/ypldap.c ============================================================================== --- stable/12/usr.sbin/ypldap/ypldap.c Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/usr.sbin/ypldap/ypldap.c Thu Apr 9 20:35:35 2020 (r359753) @@ -40,6 +40,8 @@ #include "ypldap.h" +enum ypldap_process_type ypldap_process; + __dead2 void usage(void); int check_child(pid_t, const char *); void main_sig_handler(int, short, void *); Modified: stable/12/usr.sbin/ypldap/ypldap.h ============================================================================== --- stable/12/usr.sbin/ypldap/ypldap.h Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/usr.sbin/ypldap/ypldap.h Thu Apr 9 20:35:35 2020 (r359753) @@ -47,10 +47,11 @@ struct ypldap_addr { }; TAILQ_HEAD(ypldap_addr_list, ypldap_addr); -enum { +enum ypldap_process_type { PROC_MAIN, PROC_CLIENT -} ypldap_process; +}; +extern enum ypldap_process_type ypldap_process; struct userent { RB_ENTRY(userent) ue_name_node; Modified: stable/12/usr.sbin/ypserv/yp_access.c ============================================================================== --- stable/12/usr.sbin/ypserv/yp_access.c Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/usr.sbin/ypserv/yp_access.c Thu Apr 9 20:35:35 2020 (r359753) @@ -57,8 +57,6 @@ __FBSDID("$FreeBSD$"); #include "tcpd.h" #endif -extern int debug; - static const char *yp_procs[] = { /* NIS v1 */ "ypoldproc_null", Modified: stable/12/usr.sbin/ypserv/yp_error.c ============================================================================== --- stable/12/usr.sbin/ypserv/yp_error.c Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/usr.sbin/ypserv/yp_error.c Thu Apr 9 20:35:35 2020 (r359753) @@ -47,8 +47,6 @@ __FBSDID("$FreeBSD$"); #include #include "yp_extern.h" -int debug; - extern int _rpcpmstart; extern char *progname; static void __verr(const char *fmt, va_list ap) __printflike(1, 0); Modified: stable/12/usr.sbin/ypserv/yp_main.c ============================================================================== --- stable/12/usr.sbin/ypserv/yp_main.c Thu Apr 9 18:38:00 2020 (r359752) +++ stable/12/usr.sbin/ypserv/yp_main.c Thu Apr 9 20:35:35 2020 (r359753) @@ -89,7 +89,7 @@ extern int _rpc_dtablesize(void); extern int _rpcsvcstate; /* Set when a request is serviced */ char *progname = "ypserv"; char *yp_dir = _PATH_YP; -/*int debug = 0;*/ +int debug; int do_dns = 0; int resfd; From owner-svn-src-all@freebsd.org Thu Apr 9 20:38:45 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DF8B327E57B; Thu, 9 Apr 2020 20:38:45 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48ytK15twDz4FdL; Thu, 9 Apr 2020 20:38:45 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A6F961AB02; Thu, 9 Apr 2020 20:38:45 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 039KcjYj072113; Thu, 9 Apr 2020 20:38:45 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 039KcaQg072060; Thu, 9 Apr 2020 20:38:36 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004092038.039KcaQg072060@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 9 Apr 2020 20:38:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r359754 - in stable/11: bin/sh cddl/contrib/opensolaris/cmd/zfs cddl/contrib/opensolaris/cmd/zpool contrib/bmake contrib/ipfilter contrib/ipfilter/tools contrib/ntp/include contrib/ntp/... X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable/11: bin/sh cddl/contrib/opensolaris/cmd/zfs cddl/contrib/opensolaris/cmd/zpool contrib/bmake contrib/ipfilter contrib/ipfilter/tools contrib/ntp/include contrib/ntp/ntpd contrib/tcsh contrib... X-SVN-Commit-Revision: 359754 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Apr 2020 20:38:45 -0000 Author: kevans Date: Thu Apr 9 20:38:36 2020 New Revision: 359754 URL: https://svnweb.freebsd.org/changeset/base/359754 Log: MFC -fno-common fixes: r359389, r359394, r359397-r359399, r359403-r359404, r359406, r359413-r359416, r359425, r359427, r359432-r359433, r359443, r359675-r359677 Note: this is not necessarily a complete fix to get these programs to build with -fno-common applied. r359389: config(8): fixes for -fno-common Move this handful of definitions into main.c, properly declare these as extern in config.h. This fixes the config(8) build with -fno-common. Unexplained in my previous commit to gas, -fno-common will become the default in GCC10 and LLVM11, so it's worth addressing these in advance. r359394: MFV r359393: tcsh: import 6974bc35a5cd This removes an extra variable definition that causes the -fno-common build to fail, which will be a new default in GCC10/LLVM11. r359397: zfs: fix -fno-common issues A similar (or identical?) fix has already landed in OpenZFS. -fno-common will become the default in GCC10/LLVM11. r359398: sh: remove duplicate el definition el is declared extern in myhistedit.h and defined in histedit.c. Remove the duplicate definition in input.c to appease the -fno-common build. -fno-common will become the default in GCC10/LLVM11. r359399: telnet: remove some duplicate definitions, mark terminaltype extern Most of these were already properly declared and defined elsewhere, this is effectively just a minor cleanup that fixes the -fno-common build. -fno-common will become the default in GCC10/LLVM11. r359403: Revert 359399: telnet -fno-common bits There was a large misfire from my local diff that I need to investigate, and this version committed did not build. r359404: Re-apply r359399: telnet -fno-common fix line and auth_level's redefinitions are just extraneous telnetd will #define extern and then include ext.h to allocate storage for all of these extern'd vars; however, two of them are actually defined in libtelnet instead. Instead of doing an #ifdef extern dance around those function pointers, just add an EXTERN macro to make it easier to differentiate by sight which ones will get allocated in globals.c and which ones are defined elsewhere. r359406: telnet: kill off remaining duplicate definition r359413: ipfilter: remove duplicate definition of 'thishost' thishost is already defined in lib/initparse.c; no need for this one. This fixes the ipfilter build with -fno-common. -fno-common will become the default in GCC10/LLVM11. r359414: iscontrol: move definition of vflag/iscsidev to iscontrol.c Mark the declaration extern as these are used elsewhere; this fixes the build with -fno-common. r359415: userboot: mark host_fsops as extern This is already defined elsewhere; mark this declaration extern to the fix the -fno-common build. r359416: systat: remove redundant definition of kd kd is already properly declared in extern.h and defined in main.c, rendering this definition useless. This fixes the -fno-common build. r359425: locate: fix -fno-common build Just a single variable declaration to extern and define elsewhere here, myctype. -fno-common will become a default in GCC10/LLVM11. r359427: fsck_ffs/fsdb: fix -fno-common build This one is also a small list: - 3x duplicate definition (ufs2_zino, returntosingle, nflag) - 5x 'needs extern', 3/5 of which are referenced in fsdb -fno-common will become the default in GCC10/LLVM11. r359432: gdb: compile with -fcommon explicitly As described in the comment, gdb relies on some of the linker magic that happens with -fcommon. I suspect the life expectancy of gdb-in-base is low enough that this isn't worth spending much time addressing, especially given the vintage. Hit it with the -fcommon hammer so that it continues to just work. r359433: bmake: fix -fno-common build debug was declared extern, but debug_file was not; correct this and define debug_file in main.c (as debug is) to fix the -fno-common build. -fno-common will become the default with GCC10/LLVM11. r359443: MFV r359442: bmake: import -fno-common fix build back from upstream sjg@ committed the local patch previously committed upstream; pull it in to vendor/ to ease any potential stress of future imports. r359675: kqueue tests: fix -fno-common build vnode_fd and kqfd are both shared among multiple CU; define them exactly once. In the case of vnode_fd, it was simply the declaration that needed correction. -fno-common will become the default in GCC10/LLVM11. r359676: ntpd: fix build with -fno-common Only a small nit here: psl should be declared extern and defined exactly once. -fno-common will become the default in GCC10/LLVM11. r359677: yp*: fix -fno-common build This is mostly two problems spread out far and wide: - ypldap_process should be declared properly - debug is defined differently in many programs For the latter, just extern it and define it everywhere that actually needs it. This mostly works out nicely for ^/libexec/ypxfr, which can remove the assignment at the beginning of main in favor of defining it properly. -fno-common will become the default in GCC10/LLVM11. Modified: stable/11/bin/sh/input.c stable/11/cddl/contrib/opensolaris/cmd/zfs/zfs_util.h stable/11/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c stable/11/cddl/contrib/opensolaris/cmd/zpool/zpool_util.h stable/11/contrib/bmake/main.c stable/11/contrib/bmake/make.h stable/11/contrib/ipfilter/ipf.h stable/11/contrib/ipfilter/tools/ipnat.c stable/11/contrib/ntp/include/ntp_config.h stable/11/contrib/ntp/ntpd/ntp_config.c stable/11/contrib/tcsh/tc.sig.c stable/11/contrib/telnet/telnetd/ext.h stable/11/contrib/telnet/telnetd/global.c stable/11/contrib/telnet/telnetd/sys_term.c stable/11/contrib/telnet/telnetd/telnetd.c stable/11/gnu/usr.bin/gdb/Makefile.inc stable/11/libexec/ypxfr/ypxfr_main.c stable/11/sbin/fsck_ffs/fsck.h stable/11/sbin/fsck_ffs/gjournal.c stable/11/sbin/fsck_ffs/globs.c stable/11/sbin/fsck_ffs/setup.c stable/11/sbin/fsdb/fsdb.c stable/11/sbin/iscontrol/iscontrol.c stable/11/sbin/iscontrol/iscontrol.h stable/11/stand/userboot/userboot/libuserboot.h stable/11/tests/sys/kqueue/libkqueue/common.h stable/11/tests/sys/kqueue/libkqueue/proc.c stable/11/tests/sys/kqueue/libkqueue/read.c stable/11/tests/sys/kqueue/libkqueue/signal.c stable/11/tests/sys/kqueue/libkqueue/timer.c stable/11/tests/sys/kqueue/libkqueue/user.c stable/11/tests/sys/kqueue/libkqueue/vnode.c stable/11/usr.bin/locate/locate/locate.c stable/11/usr.bin/locate/locate/locate.h stable/11/usr.bin/systat/swap.c stable/11/usr.sbin/config/config.h stable/11/usr.sbin/config/main.c stable/11/usr.sbin/rpc.yppasswdd/yppasswdd_main.c stable/11/usr.sbin/rpc.ypupdated/ypupdated_main.c stable/11/usr.sbin/rpc.ypxfrd/ypxfrd_main.c stable/11/usr.sbin/ypldap/ypldap.c stable/11/usr.sbin/ypldap/ypldap.h stable/11/usr.sbin/ypserv/yp_access.c stable/11/usr.sbin/ypserv/yp_error.c stable/11/usr.sbin/ypserv/yp_main.c Directory Properties: stable/11/ (props changed) Modified: stable/11/bin/sh/input.c ============================================================================== --- stable/11/bin/sh/input.c Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/bin/sh/input.c Thu Apr 9 20:38:36 2020 (r359754) @@ -102,8 +102,6 @@ static struct parsefile basepf = { /* top level input static struct parsefile *parsefile = &basepf; /* current input file */ int whichprompt; /* 1 == PS1, 2 == PS2 */ -EditLine *el; /* cookie for editline package */ - static void pushfile(void); static int preadfd(void); static void popstring(void); Modified: stable/11/cddl/contrib/opensolaris/cmd/zfs/zfs_util.h ============================================================================== --- stable/11/cddl/contrib/opensolaris/cmd/zfs/zfs_util.h Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/cddl/contrib/opensolaris/cmd/zfs/zfs_util.h Thu Apr 9 20:38:36 2020 (r359754) @@ -33,7 +33,7 @@ extern "C" { void * safe_malloc(size_t size); void nomem(void); -libzfs_handle_t *g_zfs; +extern libzfs_handle_t *g_zfs; #ifdef __cplusplus } Modified: stable/11/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c ============================================================================== --- stable/11/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Thu Apr 9 20:38:36 2020 (r359754) @@ -62,6 +62,8 @@ #include "statcommon.h" +libzfs_handle_t *g_zfs; + static int zpool_do_create(int, char **); static int zpool_do_destroy(int, char **); Modified: stable/11/cddl/contrib/opensolaris/cmd/zpool/zpool_util.h ============================================================================== --- stable/11/cddl/contrib/opensolaris/cmd/zpool/zpool_util.h Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/cddl/contrib/opensolaris/cmd/zpool/zpool_util.h Thu Apr 9 20:38:36 2020 (r359754) @@ -64,7 +64,7 @@ void pool_list_free(zpool_list_t *); int pool_list_count(zpool_list_t *); void pool_list_remove(zpool_list_t *, zpool_handle_t *); -libzfs_handle_t *g_zfs; +extern libzfs_handle_t *g_zfs; #ifdef __cplusplus } Modified: stable/11/contrib/bmake/main.c ============================================================================== --- stable/11/contrib/bmake/main.c Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/contrib/bmake/main.c Thu Apr 9 20:38:36 2020 (r359754) @@ -1,4 +1,4 @@ -/* $NetBSD: main.c,v 1.273 2017/10/28 21:54:54 sjg Exp $ */ +/* $NetBSD: main.c,v 1.274 2020/03/30 02:41:06 sjg Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -69,7 +69,7 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: main.c,v 1.273 2017/10/28 21:54:54 sjg Exp $"; +static char rcsid[] = "$NetBSD: main.c,v 1.274 2020/03/30 02:41:06 sjg Exp $"; #else #include #ifndef lint @@ -81,7 +81,7 @@ __COPYRIGHT("@(#) Copyright (c) 1988, 1989, 1990, 1993 #if 0 static char sccsid[] = "@(#)main.c 8.3 (Berkeley) 3/19/94"; #else -__RCSID("$NetBSD: main.c,v 1.273 2017/10/28 21:54:54 sjg Exp $"); +__RCSID("$NetBSD: main.c,v 1.274 2020/03/30 02:41:06 sjg Exp $"); #endif #endif /* not lint */ #endif @@ -198,6 +198,8 @@ char *progname; /* the program name */ char *makeDependfile; pid_t myPid; int makelevel; + +FILE *debug_file; Boolean forceJobs = FALSE; Modified: stable/11/contrib/bmake/make.h ============================================================================== --- stable/11/contrib/bmake/make.h Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/contrib/bmake/make.h Thu Apr 9 20:38:36 2020 (r359754) @@ -1,4 +1,4 @@ -/* $NetBSD: make.h,v 1.104 2018/02/12 21:38:09 sjg Exp $ */ +/* $NetBSD: make.h,v 1.105 2020/03/30 02:41:06 sjg Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -464,7 +464,7 @@ extern pid_t myPid; * There is one bit per module. It is up to the module what debug * information to print. */ -FILE *debug_file; /* Output written here - default stdout */ +extern FILE *debug_file; /* Output written here - default stdout */ extern int debug; #define DEBUG_ARCH 0x00001 #define DEBUG_COND 0x00002 Modified: stable/11/contrib/ipfilter/ipf.h ============================================================================== --- stable/11/contrib/ipfilter/ipf.h Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/contrib/ipfilter/ipf.h Thu Apr 9 20:38:36 2020 (r359754) @@ -191,7 +191,7 @@ typedef int (* addfunc_t) __P((int, ioctlfunc_t, void typedef int (* copyfunc_t) __P((void *, void *, size_t)); -extern char thishost[]; +extern char thishost[MAXHOSTNAMELEN]; extern char flagset[]; extern u_char flags[]; extern struct ipopt_names ionames[]; Modified: stable/11/contrib/ipfilter/tools/ipnat.c ============================================================================== --- stable/11/contrib/ipfilter/tools/ipnat.c Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/contrib/ipfilter/tools/ipnat.c Thu Apr 9 20:38:36 2020 (r359754) @@ -60,7 +60,6 @@ static const char rcsid[] = "@(#)$Id$"; #define bzero(a,b) memset(a,0,b) #endif int use_inet6 = 0; -char thishost[MAXHOSTNAMELEN]; extern char *optarg; Modified: stable/11/contrib/ntp/include/ntp_config.h ============================================================================== --- stable/11/contrib/ntp/include/ntp_config.h Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/contrib/ntp/include/ntp_config.h Thu Apr 9 20:38:36 2020 (r359754) @@ -280,7 +280,7 @@ typedef struct settrap_parms_tag { * Poll Skew List */ -psl_item psl[17-3+1]; /* values for polls 3-17 */ +extern psl_item psl[17-3+1]; /* values for polls 3-17 */ /* To simplify the runtime code we */ /* don't want to have to special-case */ /* dealing with a default */ Modified: stable/11/contrib/ntp/ntpd/ntp_config.c ============================================================================== --- stable/11/contrib/ntp/ntpd/ntp_config.c Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/contrib/ntp/ntpd/ntp_config.c Thu Apr 9 20:38:36 2020 (r359754) @@ -202,6 +202,8 @@ int cryptosw; /* crypto command called */ extern char *stats_drift_file; /* name of the driftfile */ +psl_item psl[17-3+1]; + #ifdef BC_LIST_FRAMEWORK_NOT_YET_USED /* * backwards compatibility flags Modified: stable/11/contrib/tcsh/tc.sig.c ============================================================================== --- stable/11/contrib/tcsh/tc.sig.c Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/contrib/tcsh/tc.sig.c Thu Apr 9 20:38:36 2020 (r359754) @@ -56,7 +56,6 @@ int alrmcatch_disabled; /* = 0; */ int phup_disabled; /* = 0; */ int pchild_disabled; /* = 0; */ int pintr_disabled; /* = 0; */ -int handle_interrupt; /* = 0; */ int handle_pending_signals(void) Modified: stable/11/contrib/telnet/telnetd/ext.h ============================================================================== --- stable/11/contrib/telnet/telnetd/ext.h Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/contrib/telnet/telnetd/ext.h Thu Apr 9 20:38:36 2020 (r359754) @@ -30,53 +30,57 @@ * $FreeBSD$ */ +#ifndef EXTERN +#define EXTERN extern +#endif + /* * Telnet server variable declarations */ -extern char options[256]; -extern char do_dont_resp[256]; -extern char will_wont_resp[256]; -extern int linemode; /* linemode on/off */ +EXTERN char options[256]; +EXTERN char do_dont_resp[256]; +EXTERN char will_wont_resp[256]; +EXTERN int linemode; /* linemode on/off */ #ifdef LINEMODE -extern int uselinemode; /* what linemode to use (on/off) */ -extern int editmode; /* edit modes in use */ -extern int useeditmode; /* edit modes to use */ -extern int alwayslinemode; /* command line option */ -extern int lmodetype; /* Client support for linemode */ +EXTERN int uselinemode; /* what linemode to use (on/off) */ +EXTERN int editmode; /* edit modes in use */ +EXTERN int useeditmode; /* edit modes to use */ +EXTERN int alwayslinemode; /* command line option */ +EXTERN int lmodetype; /* Client support for linemode */ #endif /* LINEMODE */ -extern int flowmode; /* current flow control state */ -extern int restartany; /* restart output on any character state */ +EXTERN int flowmode; /* current flow control state */ +EXTERN int restartany; /* restart output on any character state */ #ifdef DIAGNOSTICS -extern int diagnostic; /* telnet diagnostic capabilities */ +EXTERN int diagnostic; /* telnet diagnostic capabilities */ #endif /* DIAGNOSTICS */ #ifdef BFTPDAEMON -extern int bftpd; /* behave as bftp daemon */ +EXTERN int bftpd; /* behave as bftp daemon */ #endif /* BFTPDAEMON */ #ifdef AUTHENTICATION -extern int auth_level; +EXTERN int auth_level; #endif -extern slcfun slctab[NSLC + 1]; /* slc mapping table */ +EXTERN slcfun slctab[NSLC + 1]; /* slc mapping table */ -char *terminaltype; +EXTERN char *terminaltype; /* * I/O data buffers, pointers, and counters. */ -extern char ptyobuf[BUFSIZ+NETSLOP], *pfrontp, *pbackp; +EXTERN char ptyobuf[BUFSIZ+NETSLOP], *pfrontp, *pbackp; -extern char netibuf[BUFSIZ], *netip; +EXTERN char netibuf[BUFSIZ], *netip; -extern char netobuf[BUFSIZ], *nfrontp, *nbackp; -extern char *neturg; /* one past last bye of urgent data */ +EXTERN char netobuf[BUFSIZ], *nfrontp, *nbackp; +EXTERN char *neturg; /* one past last bye of urgent data */ -extern int pcc, ncc; +EXTERN int pcc, ncc; -extern int pty, net; -extern char line[32]; -extern int SYNCHing; /* we are in TELNET SYNCH mode */ +EXTERN int pty, net; +EXTERN char line[32]; +EXTERN int SYNCHing; /* we are in TELNET SYNCH mode */ -extern void +EXTERN void _termstat(void), add_slc(char, char, cc_t), check_slc(void), @@ -133,7 +137,7 @@ extern void tty_binaryin(int), tty_binaryout(int); -extern int +EXTERN int end_slc(unsigned char **), getnpty(void), #ifndef convex @@ -158,7 +162,7 @@ extern int tty_istrapsig(void), tty_linemode(void); -extern void +EXTERN void tty_rspeed(int), tty_setecho(int), tty_setedit(int), @@ -177,7 +181,7 @@ void startslave(char *, int, char *); #ifdef ENCRYPTION extern void (*encrypt_output)(unsigned char *, int); extern int (*decrypt_input)(int); -extern char *nclearto; +EXTERN char *nclearto; #endif /* ENCRYPTION */ @@ -186,7 +190,7 @@ extern char *nclearto; * the relationship between various variables. */ -extern struct { +EXTERN struct { int system, /* what the current time is */ echotoggle, /* last time user entered echo character */ Modified: stable/11/contrib/telnet/telnetd/global.c ============================================================================== --- stable/11/contrib/telnet/telnetd/global.c Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/contrib/telnet/telnetd/global.c Thu Apr 9 20:38:36 2020 (r359754) @@ -44,5 +44,5 @@ __FBSDID("$FreeBSD$"); */ #include "defs.h" -#define extern +#define EXTERN #include "ext.h" Modified: stable/11/contrib/telnet/telnetd/sys_term.c ============================================================================== --- stable/11/contrib/telnet/telnetd/sys_term.c Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/contrib/telnet/telnetd/sys_term.c Thu Apr 9 20:38:36 2020 (r359754) @@ -376,8 +376,6 @@ spcset(int func, cc_t *valp, cc_t **valpp) * * Returns the file descriptor of the opened pty. */ -char line[32]; - int getpty(int *ptynum __unused) { Modified: stable/11/contrib/telnet/telnetd/telnetd.c ============================================================================== --- stable/11/contrib/telnet/telnetd/telnetd.c Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/contrib/telnet/telnetd/telnetd.c Thu Apr 9 20:38:36 2020 (r359754) @@ -48,7 +48,6 @@ __FBSDID("$FreeBSD$"); #ifdef AUTHENTICATION #include -int auth_level = 0; #endif #ifdef ENCRYPTION #include Modified: stable/11/gnu/usr.bin/gdb/Makefile.inc ============================================================================== --- stable/11/gnu/usr.bin/gdb/Makefile.inc Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/gnu/usr.bin/gdb/Makefile.inc Thu Apr 9 20:38:36 2020 (r359754) @@ -47,6 +47,11 @@ CFLAGS+= -I${CNTRB_GDB}/include CFLAGS+= -I${CNTRB_BU}/bfd CFLAGS+= -I${OBJ_RL:H} +# Some bits here currently rely on some of the linker-merging magic that happens +# with -fcommon. While this is the default right now, explicitly set -fcommon +# so that it continues to build when the default flips. +CFLAGS+= -fcommon + GENSRCS+= nm.h tm.h .if defined(GDB_CROSS_DEBUGGER) Modified: stable/11/libexec/ypxfr/ypxfr_main.c ============================================================================== --- stable/11/libexec/ypxfr/ypxfr_main.c Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/libexec/ypxfr/ypxfr_main.c Thu Apr 9 20:38:36 2020 (r359754) @@ -51,6 +51,8 @@ __FBSDID("$FreeBSD$"); #include #include "ypxfr_extern.h" +int debug = 1; + char *progname = "ypxfr"; char *yp_dir = _PATH_YP; int _rpcpmstart = 0; @@ -173,8 +175,6 @@ main(int argc, char *argv[]) int remoteport; int interdom = 0; int secure = 0; - - debug = 1; if (!isatty(fileno(stderr))) { openlog("ypxfr", LOG_PID, LOG_DAEMON); Modified: stable/11/sbin/fsck_ffs/fsck.h ============================================================================== --- stable/11/sbin/fsck_ffs/fsck.h Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/sbin/fsck_ffs/fsck.h Thu Apr 9 20:38:36 2020 (r359754) @@ -125,7 +125,7 @@ struct inostat { * Inode state information is contained on per cylinder group lists * which are described by the following structure. */ -struct inostatlist { +extern struct inostatlist { long il_numalloced; /* number of inodes allocated in this cg */ struct inostat *il_stat;/* inostat info for this cylinder group */ } *inostathead; @@ -269,13 +269,13 @@ struct dups { struct dups *next; ufs2_daddr_t dup; }; -struct dups *duplist; /* head of dup list */ -struct dups *muldup; /* end of unique duplicate dup block numbers */ +extern struct dups *duplist; /* head of dup list */ +extern struct dups *muldup; /* end of unique duplicate dup block numbers */ /* * Inode cache data structures. */ -struct inoinfo { +extern struct inoinfo { struct inoinfo *i_nexthash; /* next entry in hash chain */ ino_t i_number; /* inode number of this entry */ ino_t i_parent; /* inode number of parent */ Modified: stable/11/sbin/fsck_ffs/gjournal.c ============================================================================== --- stable/11/sbin/fsck_ffs/gjournal.c Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/sbin/fsck_ffs/gjournal.c Thu Apr 9 20:38:36 2020 (r359754) @@ -91,7 +91,6 @@ static LIST_HEAD(, cgchain) cglist = LIST_HEAD_INITIAL static const char *devnam; static struct uufsd *disk = NULL; static struct fs *fs = NULL; -struct ufs2_dinode ufs2_zino; static void putcgs(void); Modified: stable/11/sbin/fsck_ffs/globs.c ============================================================================== --- stable/11/sbin/fsck_ffs/globs.c Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/sbin/fsck_ffs/globs.c Thu Apr 9 20:38:36 2020 (r359754) @@ -114,6 +114,10 @@ volatile sig_atomic_t got_sigalarm; /* received a SIGA struct ufs1_dinode ufs1_zino; struct ufs2_dinode ufs2_zino; +struct dups *duplist; +struct dups *muldup; +struct inostatlist *inostathead; + void fsckinit(void) { Modified: stable/11/sbin/fsck_ffs/setup.c ============================================================================== --- stable/11/sbin/fsck_ffs/setup.c Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/sbin/fsck_ffs/setup.c Thu Apr 9 20:38:36 2020 (r359754) @@ -55,6 +55,8 @@ __FBSDID("$FreeBSD$"); #include "fsck.h" +struct inoinfo **inphead, **inpsort; + struct bufarea asblk; #define altsblock (*asblk.b_un.b_fs) #define POWEROF2(num) (((num) & ((num) - 1)) == 0) Modified: stable/11/sbin/fsdb/fsdb.c ============================================================================== --- stable/11/sbin/fsdb/fsdb.c Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/sbin/fsdb/fsdb.c Thu Apr 9 20:38:36 2020 (r359754) @@ -70,9 +70,6 @@ usage(void) exit(1); } -int returntosingle; -char nflag; - /* * We suck in lots of fsck code, and just pick & choose the stuff we want. * Modified: stable/11/sbin/iscontrol/iscontrol.c ============================================================================== --- stable/11/sbin/iscontrol/iscontrol.c Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/sbin/iscontrol/iscontrol.c Thu Apr 9 20:38:36 2020 (r359754) @@ -82,6 +82,9 @@ token_t DigestMethods[] = { {0, 0} }; +int vflag; +char *iscsidev; + u_char isid[6 + 6]; /* | Default values Modified: stable/11/sbin/iscontrol/iscontrol.h ============================================================================== --- stable/11/sbin/iscontrol/iscontrol.h Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/sbin/iscontrol/iscontrol.h Thu Apr 9 20:38:36 2020 (r359754) @@ -149,8 +149,8 @@ int recvpdu(isess_t *sess, pdu_t *pp); int lookup(token_t *tbl, char *m); -int vflag; -char *iscsidev; +extern int vflag; +extern char *iscsidev; void parseArgs(int nargs, char **args, isc_opt_t *op); void parseConfig(FILE *fd, char *key, isc_opt_t *op); Modified: stable/11/stand/userboot/userboot/libuserboot.h ============================================================================== --- stable/11/stand/userboot/userboot/libuserboot.h Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/stand/userboot/userboot/libuserboot.h Thu Apr 9 20:38:36 2020 (r359754) @@ -43,7 +43,7 @@ extern int userboot_disk_maxunit; extern struct devsw host_dev; /* access to host filesystem */ -struct fs_ops host_fsops; +extern struct fs_ops host_fsops; struct bootinfo; struct preloaded_file; Modified: stable/11/tests/sys/kqueue/libkqueue/common.h ============================================================================== --- stable/11/tests/sys/kqueue/libkqueue/common.h Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/tests/sys/kqueue/libkqueue/common.h Thu Apr 9 20:38:36 2020 (r359754) @@ -41,7 +41,8 @@ #include extern char *cur_test_id; -int vnode_fd; +extern int vnode_fd; +extern int kqfd; extern char * kevent_to_str(struct kevent *); struct kevent * kevent_get(int); Modified: stable/11/tests/sys/kqueue/libkqueue/proc.c ============================================================================== --- stable/11/tests/sys/kqueue/libkqueue/proc.c Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/tests/sys/kqueue/libkqueue/proc.c Thu Apr 9 20:38:36 2020 (r359754) @@ -25,7 +25,6 @@ static int sigusr1_caught = 0; -int kqfd; static void sig_handler(int signum) Modified: stable/11/tests/sys/kqueue/libkqueue/read.c ============================================================================== --- stable/11/tests/sys/kqueue/libkqueue/read.c Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/tests/sys/kqueue/libkqueue/read.c Thu Apr 9 20:38:36 2020 (r359754) @@ -18,7 +18,6 @@ #include "common.h" -int kqfd; int sockfd[2]; static void Modified: stable/11/tests/sys/kqueue/libkqueue/signal.c ============================================================================== --- stable/11/tests/sys/kqueue/libkqueue/signal.c Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/tests/sys/kqueue/libkqueue/signal.c Thu Apr 9 20:38:36 2020 (r359754) @@ -18,7 +18,6 @@ #include "common.h" -int kqfd; void test_kevent_signal_add(void) Modified: stable/11/tests/sys/kqueue/libkqueue/timer.c ============================================================================== --- stable/11/tests/sys/kqueue/libkqueue/timer.c Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/tests/sys/kqueue/libkqueue/timer.c Thu Apr 9 20:38:36 2020 (r359754) @@ -26,7 +26,6 @@ #define MS_TO_US(t) ((t) * THOUSAND) /* Convert milliseconds to microseconds. */ #define US_TO_NS(t) ((t) * THOUSAND) /* Convert microseconds to nanoseconds. */ -int kqfd; /* Get the current time with microsecond precision. Used for * sub-second timing to make some timer tests run faster. Modified: stable/11/tests/sys/kqueue/libkqueue/user.c ============================================================================== --- stable/11/tests/sys/kqueue/libkqueue/user.c Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/tests/sys/kqueue/libkqueue/user.c Thu Apr 9 20:38:36 2020 (r359754) @@ -18,7 +18,6 @@ #include "common.h" -int kqfd; static void add_and_delete(void) Modified: stable/11/tests/sys/kqueue/libkqueue/vnode.c ============================================================================== --- stable/11/tests/sys/kqueue/libkqueue/vnode.c Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/tests/sys/kqueue/libkqueue/vnode.c Thu Apr 9 20:38:36 2020 (r359754) @@ -18,7 +18,6 @@ #include "common.h" -int kqfd; int vnode_fd; void Modified: stable/11/usr.bin/locate/locate/locate.c ============================================================================== --- stable/11/usr.bin/locate/locate/locate.c Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/usr.bin/locate/locate/locate.c Thu Apr 9 20:38:36 2020 (r359754) @@ -114,6 +114,7 @@ int f_limit; /* limit number of output line u_int counter; /* counter for matches [-c] */ char separator='\n'; /* line separator */ +u_char myctype[UCHAR_MAX + 1]; void usage(void); void statistic(FILE *, char *); Modified: stable/11/usr.bin/locate/locate/locate.h ============================================================================== --- stable/11/usr.bin/locate/locate/locate.h Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/usr.bin/locate/locate/locate.h Thu Apr 9 20:38:36 2020 (r359754) @@ -63,7 +63,7 @@ define TOLOWER(ch) tolower(ch) #else -u_char myctype[UCHAR_MAX + 1]; +extern u_char myctype[UCHAR_MAX + 1]; #define TOLOWER(ch) (myctype[ch]) #endif Modified: stable/11/usr.bin/systat/swap.c ============================================================================== --- stable/11/usr.bin/systat/swap.c Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/usr.bin/systat/swap.c Thu Apr 9 20:38:36 2020 (r359754) @@ -54,8 +54,6 @@ static const char sccsid[] = "@(#)swap.c 8.3 (Berkeley #include "systat.h" #include "extern.h" -kvm_t *kd; - static char *header; static long blocksize; static int dlen, odlen; Modified: stable/11/usr.sbin/config/config.h ============================================================================== --- stable/11/usr.sbin/config/config.h Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/usr.sbin/config/config.h Thu Apr 9 20:38:36 2020 (r359754) @@ -43,7 +43,7 @@ struct cfgfile { STAILQ_ENTRY(cfgfile) cfg_next; char *cfg_path; }; -STAILQ_HEAD(, cfgfile) cfgfiles; +extern STAILQ_HEAD(cfgfile_head, cfgfile) cfgfiles; struct file_list { STAILQ_ENTRY(file_list) f_next; @@ -100,8 +100,8 @@ struct config { * in the makerules, etc. machinearch is the global notion of the * MACHINE_ARCH for this MACHINE. */ -char *machinename; -char *machinearch; +extern char *machinename; +extern char *machinearch; /* * For each machine, a set of CPU's may be specified as supported. @@ -112,7 +112,7 @@ struct cputype { SLIST_ENTRY(cputype) cpu_next; }; -SLIST_HEAD(, cputype) cputype; +extern SLIST_HEAD(cputype_head, cputype) cputype; /* * A set of options may also be specified which are like CPU types, @@ -127,7 +127,7 @@ struct opt { SLIST_ENTRY(opt) op_append; }; -SLIST_HEAD(opt_head, opt) opt, mkopt, rmopts; +extern SLIST_HEAD(opt_head, opt) opt, mkopt, rmopts; struct opt_list { char *o_name; @@ -137,7 +137,7 @@ struct opt_list { SLIST_ENTRY(opt_list) o_next; }; -SLIST_HEAD(, opt_list) otab; +extern SLIST_HEAD(opt_list_head, opt_list) otab; struct envvar { char *env_str; @@ -145,21 +145,21 @@ struct envvar { STAILQ_ENTRY(envvar) envvar_next; }; -STAILQ_HEAD(envvar_head, envvar) envvars; +extern STAILQ_HEAD(envvar_head, envvar) envvars; struct hint { char *hint_name; STAILQ_ENTRY(hint) hint_next; }; -STAILQ_HEAD(hint_head, hint) hints; +extern STAILQ_HEAD(hint_head, hint) hints; struct includepath { char *path; SLIST_ENTRY(includepath) path_next; }; -SLIST_HEAD(, includepath) includepath; +extern SLIST_HEAD(includepath_head, includepath) includepath; /* * Tag present in the kernconf.tmpl template file. It's mandatory for those Modified: stable/11/usr.sbin/config/main.c ============================================================================== --- stable/11/usr.sbin/config/main.c Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/usr.sbin/config/main.c Thu Apr 9 20:38:36 2020 (r359754) @@ -70,6 +70,17 @@ static const char rcsid[] = #define CDIR "../compile/" +char *machinename; +char *machinearch; + +struct cfgfile_head cfgfiles; +struct cputype_head cputype; +struct opt_head opt, mkopt, rmopts; +struct opt_list_head otab; +struct envvar_head envvars; +struct hint_head hints; +struct includepath_head includepath; + char * PREFIX; char destdir[MAXPATHLEN]; char srcdir[MAXPATHLEN]; Modified: stable/11/usr.sbin/rpc.yppasswdd/yppasswdd_main.c ============================================================================== --- stable/11/usr.sbin/rpc.yppasswdd/yppasswdd_main.c Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/usr.sbin/rpc.yppasswdd/yppasswdd_main.c Thu Apr 9 20:38:36 2020 (r359754) @@ -81,6 +81,7 @@ static int _rpcfdtype; #define _IDLE 0 #define _SERVED 1 #define _SERVING 2 +int debug; static char _localhost[] = "localhost"; static char _passwd_byname[] = "passwd.byname"; @@ -170,8 +171,6 @@ main(int argc, char *argv[]) char *mastername; char myname[MAXHOSTNAMELEN + 2]; int maxrec = RPC_MAXDATASIZE; - - extern int debug; debug = 1; Modified: stable/11/usr.sbin/rpc.ypupdated/ypupdated_main.c ============================================================================== --- stable/11/usr.sbin/rpc.ypupdated/ypupdated_main.c Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/usr.sbin/rpc.ypupdated/ypupdated_main.c Thu Apr 9 20:38:36 2020 (r359754) @@ -74,6 +74,8 @@ static int _rpcfdtype; extern int _rpcsvcstate; /* Set when a request is serviced */ +int debug; + char *progname = "rpc.ypupdated"; char *yp_dir = "/var/yp/"; Modified: stable/11/usr.sbin/rpc.ypxfrd/ypxfrd_main.c ============================================================================== --- stable/11/usr.sbin/rpc.ypxfrd/ypxfrd_main.c Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/usr.sbin/rpc.ypxfrd/ypxfrd_main.c Thu Apr 9 20:38:36 2020 (r359754) @@ -76,6 +76,8 @@ static int _rpcfdtype; extern int _rpcsvcstate; /* Set when a request is serviced */ +int debug; + char *progname = "rpc.ypxfrd"; char *yp_dir = "/var/yp/"; Modified: stable/11/usr.sbin/ypldap/ypldap.c ============================================================================== --- stable/11/usr.sbin/ypldap/ypldap.c Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/usr.sbin/ypldap/ypldap.c Thu Apr 9 20:38:36 2020 (r359754) @@ -40,6 +40,8 @@ #include "ypldap.h" +enum ypldap_process_type ypldap_process; + __dead2 void usage(void); int check_child(pid_t, const char *); void main_sig_handler(int, short, void *); Modified: stable/11/usr.sbin/ypldap/ypldap.h ============================================================================== --- stable/11/usr.sbin/ypldap/ypldap.h Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/usr.sbin/ypldap/ypldap.h Thu Apr 9 20:38:36 2020 (r359754) @@ -47,10 +47,11 @@ struct ypldap_addr { }; TAILQ_HEAD(ypldap_addr_list, ypldap_addr); -enum { +enum ypldap_process_type { PROC_MAIN, PROC_CLIENT -} ypldap_process; +}; +extern enum ypldap_process_type ypldap_process; struct userent { RB_ENTRY(userent) ue_name_node; Modified: stable/11/usr.sbin/ypserv/yp_access.c ============================================================================== --- stable/11/usr.sbin/ypserv/yp_access.c Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/usr.sbin/ypserv/yp_access.c Thu Apr 9 20:38:36 2020 (r359754) @@ -55,8 +55,6 @@ __FBSDID("$FreeBSD$"); #include "tcpd.h" #endif -extern int debug; - static const char *yp_procs[] = { /* NIS v1 */ "ypoldproc_null", Modified: stable/11/usr.sbin/ypserv/yp_error.c ============================================================================== --- stable/11/usr.sbin/ypserv/yp_error.c Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/usr.sbin/ypserv/yp_error.c Thu Apr 9 20:38:36 2020 (r359754) @@ -45,8 +45,6 @@ __FBSDID("$FreeBSD$"); #include #include "yp_extern.h" -int debug; - extern int _rpcpmstart; extern char *progname; static void __verr(const char *fmt, va_list ap) __printflike(1, 0); Modified: stable/11/usr.sbin/ypserv/yp_main.c ============================================================================== --- stable/11/usr.sbin/ypserv/yp_main.c Thu Apr 9 20:35:35 2020 (r359753) +++ stable/11/usr.sbin/ypserv/yp_main.c Thu Apr 9 20:38:36 2020 (r359754) @@ -87,7 +87,7 @@ extern int _rpc_dtablesize(void); extern int _rpcsvcstate; /* Set when a request is serviced */ char *progname = "ypserv"; char *yp_dir = _PATH_YP; -/*int debug = 0;*/ +int debug; int do_dns = 0; int resfd; From owner-svn-src-all@freebsd.org Thu Apr 9 20:49:02 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 149C727EB71; Thu, 9 Apr 2020 20:49:02 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48ytXs6mCzz4GGv; Thu, 9 Apr 2020 20:49:01 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E32791AD01; Thu, 9 Apr 2020 20:49:01 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 039Kn186078351; Thu, 9 Apr 2020 20:49:01 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 039Kn1SV078350; Thu, 9 Apr 2020 20:49:01 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004092049.039Kn1SV078350@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 9 Apr 2020 20:49:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r359755 - in stable: 11/contrib/binutils/gas 12/contrib/binutils/gas X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/contrib/binutils/gas 12/contrib/binutils/gas X-SVN-Commit-Revision: 359755 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Apr 2020 20:49:02 -0000 Author: kevans Date: Thu Apr 9 20:49:01 2020 New Revision: 359755 URL: https://svnweb.freebsd.org/changeset/base/359755 Log: gas: mark dwarf2_loc_mark_labels as extern Compiling with -fno-common complains as this header's included in multiple compilation units. In fact, the proper definition of dwarf2_loc_mark_labels already exists in dwarf2dbg.c, so simply mark this declaration with extern. Modified: stable/11/contrib/binutils/gas/dwarf2dbg.h Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/contrib/binutils/gas/dwarf2dbg.h Directory Properties: stable/12/ (props changed) Modified: stable/11/contrib/binutils/gas/dwarf2dbg.h ============================================================================== --- stable/11/contrib/binutils/gas/dwarf2dbg.h Thu Apr 9 20:38:36 2020 (r359754) +++ stable/11/contrib/binutils/gas/dwarf2dbg.h Thu Apr 9 20:49:01 2020 (r359755) @@ -78,7 +78,7 @@ extern void dwarf2_emit_label (symbolS *); /* True when we're supposed to set the basic block mark whenever a label is seen. Unless the target is doing Something Weird, just call dwarf2_emit_label. */ -bfd_boolean dwarf2_loc_mark_labels; +extern bfd_boolean dwarf2_loc_mark_labels; extern void dwarf2_finish (void); From owner-svn-src-all@freebsd.org Thu Apr 9 20:49:02 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 654BB27EB77; Thu, 9 Apr 2020 20:49:02 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48ytXt25BYz4GGx; Thu, 9 Apr 2020 20:49:02 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 42F611AD02; Thu, 9 Apr 2020 20:49:02 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 039Kn28i078357; Thu, 9 Apr 2020 20:49:02 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 039Kn2qX078356; Thu, 9 Apr 2020 20:49:02 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004092049.039Kn2qX078356@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 9 Apr 2020 20:49:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359755 - in stable: 11/contrib/binutils/gas 12/contrib/binutils/gas X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/contrib/binutils/gas 12/contrib/binutils/gas X-SVN-Commit-Revision: 359755 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Apr 2020 20:49:02 -0000 Author: kevans Date: Thu Apr 9 20:49:01 2020 New Revision: 359755 URL: https://svnweb.freebsd.org/changeset/base/359755 Log: gas: mark dwarf2_loc_mark_labels as extern Compiling with -fno-common complains as this header's included in multiple compilation units. In fact, the proper definition of dwarf2_loc_mark_labels already exists in dwarf2dbg.c, so simply mark this declaration with extern. Modified: stable/12/contrib/binutils/gas/dwarf2dbg.h Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/contrib/binutils/gas/dwarf2dbg.h Directory Properties: stable/11/ (props changed) Modified: stable/12/contrib/binutils/gas/dwarf2dbg.h ============================================================================== --- stable/12/contrib/binutils/gas/dwarf2dbg.h Thu Apr 9 20:38:36 2020 (r359754) +++ stable/12/contrib/binutils/gas/dwarf2dbg.h Thu Apr 9 20:49:01 2020 (r359755) @@ -78,7 +78,7 @@ extern void dwarf2_emit_label (symbolS *); /* True when we're supposed to set the basic block mark whenever a label is seen. Unless the target is doing Something Weird, just call dwarf2_emit_label. */ -bfd_boolean dwarf2_loc_mark_labels; +extern bfd_boolean dwarf2_loc_mark_labels; extern void dwarf2_finish (void); From owner-svn-src-all@freebsd.org Thu Apr 9 21:24:18 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 84B4627F98C; Thu, 9 Apr 2020 21:24:18 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48yvKZ30G0z4JRY; Thu, 9 Apr 2020 21:24:18 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 61CCD1B4AC; Thu, 9 Apr 2020 21:24:18 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 039LOIw5002539; Thu, 9 Apr 2020 21:24:18 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 039LOHJE002537; Thu, 9 Apr 2020 21:24:17 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <202004092124.039LOHJE002537@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Thu, 9 Apr 2020 21:24:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359756 - head/sys/dev/mii X-SVN-Group: head X-SVN-Commit-Author: jhibbits X-SVN-Commit-Paths: head/sys/dev/mii X-SVN-Commit-Revision: 359756 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Apr 2020 21:24:18 -0000 Author: jhibbits Date: Thu Apr 9 21:24:17 2020 New Revision: 359756 URL: https://svnweb.freebsd.org/changeset/base/359756 Log: Add support for BCM54618SE PHY MFC after: 3 days Sponsored by: Juniper Networks, Inc Modified: head/sys/dev/mii/brgphy.c head/sys/dev/mii/miidevs Modified: head/sys/dev/mii/brgphy.c ============================================================================== --- head/sys/dev/mii/brgphy.c Thu Apr 9 20:49:01 2020 (r359755) +++ head/sys/dev/mii/brgphy.c Thu Apr 9 21:24:17 2020 (r359756) @@ -152,6 +152,7 @@ static const struct mii_phydesc brgphys[] = { #ifdef notyet /* better handled by ukphy(4) until WARs are implemented */ MII_PHY_DESC(BROADCOM2, BCM5785), #endif + MII_PHY_DESC(BROADCOM3, BCM54618SE), MII_PHY_DESC(BROADCOM3, BCM5717C), MII_PHY_DESC(BROADCOM3, BCM5719C), MII_PHY_DESC(BROADCOM3, BCM5720C), Modified: head/sys/dev/mii/miidevs ============================================================================== --- head/sys/dev/mii/miidevs Thu Apr 9 20:49:01 2020 (r359755) +++ head/sys/dev/mii/miidevs Thu Apr 9 21:24:17 2020 (r359756) @@ -190,6 +190,7 @@ model BROADCOM2 BCM5784 0x003a BCM5784 10/100/1000bas model BROADCOM2 BCM5709C 0x003c BCM5709 10/100/1000baseT PHY model BROADCOM2 BCM5761 0x003d BCM5761 10/100/1000baseT PHY model BROADCOM2 BCM5709S 0x003f BCM5709S/5720S 1000/2500baseSX PHY +model BROADCOM3 BCM54618SE 0x000d BCM54618SE 10/100/1000BASE-T PHY model BROADCOM3 BCM57780 0x0019 BCM57780 1000BASE-T media interface model BROADCOM3 BCM5717C 0x0020 BCM5717C 1000BASE-T media interface model BROADCOM3 BCM5719C 0x0022 BCM5719C 1000BASE-T media interface From owner-svn-src-all@freebsd.org Thu Apr 9 23:11:20 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 12E5B2AA310; Thu, 9 Apr 2020 23:11:20 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48yxj36nrsz4Prg; Thu, 9 Apr 2020 23:11:19 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E44E01C95C; Thu, 9 Apr 2020 23:11:19 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 039NBJwQ066528; Thu, 9 Apr 2020 23:11:19 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 039NBJQp066527; Thu, 9 Apr 2020 23:11:19 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <202004092311.039NBJQp066527@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Thu, 9 Apr 2020 23:11:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359757 - head/sys/fs/nfs X-SVN-Group: head X-SVN-Commit-Author: rmacklem X-SVN-Commit-Paths: head/sys/fs/nfs X-SVN-Commit-Revision: 359757 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Apr 2020 23:11:20 -0000 Author: rmacklem Date: Thu Apr 9 23:11:19 2020 New Revision: 359757 URL: https://svnweb.freebsd.org/changeset/base/359757 Log: Replace mbuf macros with the code they would generate in the NFS code. When the code was ported to Mac OS/X, mbuf handling functions were converted to using the Mac OS/X accessor functions. For FreeBSD, they are a simple set of macros in sys/fs/nfs/nfskpiport.h. Since porting to Mac OS/X is no longer a consideration, replacement of these macros with the code generated by them makes the code more readable. When support for external page mbufs is added as needed by the KERN_TLS, the patch becomes simpler if done without the macros. This patch should not result in any semantic change. This conversion will be committed one file at a time. Modified: head/sys/fs/nfs/nfs_commonsubs.c Modified: head/sys/fs/nfs/nfs_commonsubs.c ============================================================================== --- head/sys/fs/nfs/nfs_commonsubs.c Thu Apr 9 21:24:17 2020 (r359756) +++ head/sys/fs/nfs/nfs_commonsubs.c Thu Apr 9 23:11:19 2020 (r359757) @@ -360,9 +360,9 @@ nfscl_reqstart(struct nfsrv_descript *nd, int procnum, NFSMCLGET(mb, M_WAITOK); else NFSMGET(mb); - mbuf_setlen(mb, 0); + mb->m_len = 0; nd->nd_mreq = nd->nd_mb = mb; - nd->nd_bpos = NFSMTOD(mb, caddr_t); + nd->nd_bpos = mtod(mb, caddr_t); /* * And fill the first file handle into the request. @@ -617,7 +617,7 @@ nfsm_mbufuio(struct nfsrv_descript *nd, struct uio *ui mp = nd->nd_md; mbufcp = nd->nd_dpos; - len = NFSMTOD(mp, caddr_t) + mbuf_len(mp) - mbufcp; + len = mtod(mp, caddr_t) + mp->m_len - mbufcp; rem = NFSM_RNDUP(siz) - siz; while (siz > 0) { if (uiop->uio_iovcnt <= 0 || uiop->uio_iov == NULL) { @@ -631,13 +631,13 @@ nfsm_mbufuio(struct nfsrv_descript *nd, struct uio *ui uiosiz = left; while (left > 0) { while (len == 0) { - mp = mbuf_next(mp); + mp = mp->m_next; if (mp == NULL) { error = EBADRPC; goto out; } - mbufcp = NFSMTOD(mp, caddr_t); - len = mbuf_len(mp); + mbufcp = mtod(mp, caddr_t); + len = mp->m_len; KASSERT(len >= 0, ("len %d, corrupted mbuf?", len)); } @@ -701,18 +701,18 @@ nfsm_dissct(struct nfsrv_descript *nd, int siz, int ho caddr_t retp; retp = NULL; - left = NFSMTOD(nd->nd_md, caddr_t) + mbuf_len(nd->nd_md) - nd->nd_dpos; + left = mtod(nd->nd_md, caddr_t) + nd->nd_md->m_len - nd->nd_dpos; while (left == 0) { - nd->nd_md = mbuf_next(nd->nd_md); + nd->nd_md = nd->nd_md->m_next; if (nd->nd_md == NULL) return (retp); - left = mbuf_len(nd->nd_md); - nd->nd_dpos = NFSMTOD(nd->nd_md, caddr_t); + left = nd->nd_md->m_len; + nd->nd_dpos = mtod(nd->nd_md, caddr_t); } if (left >= siz) { retp = nd->nd_dpos; nd->nd_dpos += siz; - } else if (mbuf_next(nd->nd_md) == NULL) { + } else if (nd->nd_md->m_next == NULL) { return (retp); } else if (siz > ncl_mbuf_mhlen) { panic("nfs S too big"); @@ -720,33 +720,33 @@ nfsm_dissct(struct nfsrv_descript *nd, int siz, int ho MGET(mp2, MT_DATA, how); if (mp2 == NULL) return (NULL); - mbuf_setnext(mp2, mbuf_next(nd->nd_md)); - mbuf_setnext(nd->nd_md, mp2); - mbuf_setlen(nd->nd_md, mbuf_len(nd->nd_md) - left); + mp2->m_next = nd->nd_md->m_next; + nd->nd_md->m_next = mp2; + nd->nd_md->m_len -= left; nd->nd_md = mp2; - retp = p = NFSMTOD(mp2, caddr_t); + retp = p = mtod(mp2, caddr_t); NFSBCOPY(nd->nd_dpos, p, left); /* Copy what was left */ siz2 = siz - left; p += left; - mp2 = mbuf_next(mp2); + mp2 = mp2->m_next; /* Loop around copying up the siz2 bytes */ while (siz2 > 0) { if (mp2 == NULL) return (NULL); - xfer = (siz2 > mbuf_len(mp2)) ? mbuf_len(mp2) : siz2; + xfer = (siz2 > mp2->m_len) ? mp2->m_len : siz2; if (xfer > 0) { - NFSBCOPY(NFSMTOD(mp2, caddr_t), p, xfer); - NFSM_DATAP(mp2, xfer); - mbuf_setlen(mp2, mbuf_len(mp2) - xfer); + NFSBCOPY(mtod(mp2, caddr_t), p, xfer); + mp2->m_data += xfer; + mp2->m_len -= xfer; p += xfer; siz2 -= xfer; } if (siz2 > 0) - mp2 = mbuf_next(mp2); + mp2 = mp2->m_next; } - mbuf_setlen(nd->nd_md, siz); + nd->nd_md->m_len = siz; nd->nd_md = mp2; - nd->nd_dpos = NFSMTOD(mp2, caddr_t); + nd->nd_dpos = mtod(mp2, caddr_t); } return (retp); } @@ -778,7 +778,7 @@ nfsm_advance(struct nfsrv_descript *nd, int offs, int * If left == -1, calculate it here. */ if (left == -1) - left = NFSMTOD(nd->nd_md, caddr_t) + mbuf_len(nd->nd_md) - + left = mtod(nd->nd_md, caddr_t) + nd->nd_md->m_len - nd->nd_dpos; /* @@ -786,13 +786,13 @@ nfsm_advance(struct nfsrv_descript *nd, int offs, int */ while (offs > left) { offs -= left; - nd->nd_md = mbuf_next(nd->nd_md); + nd->nd_md = nd->nd_md->m_next; if (nd->nd_md == NULL) { error = EBADRPC; goto out; } - left = mbuf_len(nd->nd_md); - nd->nd_dpos = NFSMTOD(nd->nd_md, caddr_t); + left = nd->nd_md->m_len; + nd->nd_dpos = mtod(nd->nd_md, caddr_t); } nd->nd_dpos += offs; @@ -832,10 +832,10 @@ nfsm_strtom(struct nfsrv_descript *nd, const char *cp, NFSMCLGET(m1, M_WAITOK); else NFSMGET(m1); - mbuf_setlen(m1, 0); - mbuf_setnext(m2, m1); + m1->m_len = 0; + m2->m_next = m1; m2 = m1; - cp2 = NFSMTOD(m2, caddr_t); + cp2 = mtod(m2, caddr_t); left = M_TRAILINGSPACE(m2); } if (left >= siz) @@ -844,18 +844,18 @@ nfsm_strtom(struct nfsrv_descript *nd, const char *cp, xfer = left; NFSBCOPY(cp, cp2, xfer); cp += xfer; - mbuf_setlen(m2, mbuf_len(m2) + xfer); + m2->m_len += xfer; siz -= xfer; left -= xfer; if (siz == 0 && rem) { if (left < rem) panic("nfsm_strtom"); NFSBZERO(cp2 + xfer, rem); - mbuf_setlen(m2, mbuf_len(m2) + rem); + m2->m_len += rem; } } nd->nd_mb = m2; - nd->nd_bpos = NFSMTOD(m2, caddr_t) + mbuf_len(m2); + nd->nd_bpos = mtod(m2, caddr_t) + m2->m_len; return (bytesize); } @@ -1022,35 +1022,35 @@ newnfs_trimleading(nd) */ if (nd->nd_mrep != nd->nd_md) { m = nd->nd_mrep; - while (mbuf_next(m) != nd->nd_md) { - if (mbuf_next(m) == NULL) + while (m->m_next != nd->nd_md) { + if (m->m_next == NULL) panic("nfsm trim leading"); - m = mbuf_next(m); + m = m->m_next; } - mbuf_setnext(m, NULL); - mbuf_freem(nd->nd_mrep); + m->m_next = NULL; + m_freem(nd->nd_mrep); } m = nd->nd_md; /* * Now, adjust this mbuf, based on nd_dpos. */ - offs = nd->nd_dpos - NFSMTOD(m, caddr_t); - if (offs == mbuf_len(m)) { + offs = nd->nd_dpos - mtod(m, caddr_t); + if (offs == m->m_len) { n = m; - m = mbuf_next(m); + m = m->m_next; if (m == NULL) panic("nfsm trim leading2"); - mbuf_setnext(n, NULL); - mbuf_freem(n); + n->m_next = NULL; + m_freem(n); } else if (offs > 0) { - mbuf_setlen(m, mbuf_len(m) - offs); - NFSM_DATAP(m, offs); + m->m_len -= offs; + m->m_data += offs; } else if (offs < 0) panic("nfsm trimleading offs"); nd->nd_mrep = m; nd->nd_md = m; - nd->nd_dpos = NFSMTOD(m, caddr_t); + nd->nd_dpos = mtod(m, caddr_t); } /* @@ -1063,11 +1063,11 @@ newnfs_trimtrailing(nd, mb, bpos) caddr_t bpos; { - if (mbuf_next(mb)) { - mbuf_freem(mbuf_next(mb)); - mbuf_setnext(mb, NULL); + if (mb->m_next) { + m_freem(mb->m_next); + mb->m_next = NULL; } - mbuf_setlen(mb, bpos - NFSMTOD(mb, caddr_t)); + mb->m_len = bpos - mtod(mb, caddr_t); nd->nd_mb = mb; nd->nd_bpos = bpos; } @@ -2428,7 +2428,7 @@ nfsrv_mtostr(struct nfsrv_descript *nd, char *str, int mp = nd->nd_md; cp = nd->nd_dpos; - len = NFSMTOD(mp, caddr_t) + mbuf_len(mp) - cp; + len = mtod(mp, caddr_t) + mp->m_len - cp; rem = NFSM_RNDUP(siz) - siz; while (siz > 0) { if (len > siz) @@ -2439,13 +2439,13 @@ nfsrv_mtostr(struct nfsrv_descript *nd, char *str, int str += xfer; siz -= xfer; if (siz > 0) { - mp = mbuf_next(mp); + mp = mp->m_next; if (mp == NULL) { error = EBADRPC; goto out; } - cp = NFSMTOD(mp, caddr_t); - len = mbuf_len(mp); + cp = mtod(mp, caddr_t); + len = mp->m_len; } else { cp += xfer; len -= xfer; @@ -3728,7 +3728,7 @@ nfsrv_getuser(int procnum, uid_t uid, gid_t gid, char NFSUNLOCKNAMEID(); NFSFREECRED(cred); if (!error) { - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); error = nd->nd_repstat; } out: @@ -4452,8 +4452,8 @@ nfsrvd_rephead(struct nfsrv_descript *nd) nd->nd_mreq = mreq; nd->nd_mb = mreq; } - nd->nd_bpos = NFSMTOD(mreq, caddr_t); - mbuf_setlen(mreq, 0); + nd->nd_bpos = mtod(mreq, caddr_t); + mreq->m_len = 0; if ((nd->nd_flag & ND_GSSINITREPLY) == 0) NFSM_BUILD(nd->nd_errp, int *, NFSX_UNSIGNED); From owner-svn-src-all@freebsd.org Thu Apr 9 23:16:32 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8047C2AA567; Thu, 9 Apr 2020 23:16:32 +0000 (UTC) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: from gndrsh.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 48yxq36FqSz4QBg; Thu, 9 Apr 2020 23:16:31 +0000 (UTC) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: from gndrsh.dnsmgr.net (localhost [127.0.0.1]) by gndrsh.dnsmgr.net (8.13.3/8.13.3) with ESMTP id 039NGTMZ010457; Thu, 9 Apr 2020 16:16:29 -0700 (PDT) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: (from freebsd@localhost) by gndrsh.dnsmgr.net (8.13.3/8.13.3/Submit) id 039NGTti010456; Thu, 9 Apr 2020 16:16:29 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <202004092316.039NGTti010456@gndrsh.dnsmgr.net> Subject: Re: svn commit: r359685 - in head: . etc lib/libc/gen share/mk share/termcap usr.bin/login usr.bin/vgrind usr.sbin/services_mkdb In-Reply-To: To: Maxim Sobolev Date: Thu, 9 Apr 2020 16:16:29 -0700 (PDT) CC: "Rodney W. Grimes" , src-committers , svn-src-all , svn-src-head Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-Rspamd-Queue-Id: 48yxq36FqSz4QBg X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-5.99 / 15.00]; NEURAL_HAM_MEDIUM(-0.99)[-0.994,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-0.999,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Apr 2020 23:16:32 -0000 > Well, how many FreeBSD builds have you run in the last year, Rodney, > personally to care about 0.1s slowdown that it might have caused? We've run > at least a 1,000 here, probably 3x more. That is a non technical personal attack. > So yes, the cost is there, the > cost is well understood and found negligible versus the benefit of having a > slightly more extensible build system that is slightly easier to understand > and integrate into bigger projects. I do not see how moving 5 values adds any extensibility or any ease of use, or intergratability. It added an ease of editing the values to one file, values that *should not be edited inplace*. If these values need overridden it should always be done on the make command line, especially by projects external to FreeBSD. Your "extensible build system" is reaching into internal project build infustructure in a non-supportable way if it requires this types of change. > > -Max > > On Wed, Apr 8, 2020 at 5:12 PM Rodney W. Grimes > wrote: > > > > On Tue, Apr 7, 2020 at 3:37 AM Rodney W. Grimes < > > freebsd@gndrsh.dnsmgr.net> > > > wrote: > > > > > > > > Author: sobomax > > > > > Date: Tue Apr 7 02:46:22 2020 > > > > > New Revision: 359685 > > > > > URL: https://svnweb.freebsd.org/changeset/base/359685 > > > > > > > > > > Log: > > > > > Normalize deployment tools usage and definitions by putting into > > one > > > > place > > > > > instead of sprinkling them out over many disjoint files. This is a > > > > follow-up > > > > > to achieve the same goal in an incomplete rev.348521. > > > > > > > > I have concerns that this factoring out of 5 values that have not > > changed > > > > in 25 years is a pessimization, it is one more file that make has to > > > > open on each invocation. > > > > > > > > > > Well, luckily enough the cost of opening a file has been exponentially > > > declining over those 25 years, so we are probably many-orders of > > magnitude > > > faster than we used to be back in 1995. Or so I've heard. :) > > > > I believe we are pretty much just on par and no more than 1 > > order of magnitude on time completion of make world. > > > > > > > > Having those variables defined in a centralized manner allows us here for > > > example to convert the result of what would be > > > installworld/installkernel/distribution action into a self-extracting > > > archive (optionally signed) with automatically generated script, which > > does > > > the action in question. As such, we can now build in a completely > > sandboxed > > > environment with 0 privileges (potentially even on something completely > > > alien like GNU/Linux) and then deploy it to as many systems as we need or > > > use to create VM images / Jails. > > > > > > > > https://github.com/sobomax/sysmaker/blob/master/makeargs/distribution.sub > > > > > https://github.com/sobomax/sysmaker/blob/master/makeargs/installkernel.sub > > > > > https://github.com/sobomax/sysmaker/blob/master/makeargs/installworld.sub > > > > I do not see anything in that set of files that requires this change, > > am I missing something? > > > > All of the existing values should of been overridable from the make > > command line invocation, and it does not mater if they are in 1 > > file or 50 files. > > > > > I have very few reasons to believe that our needs to be unique in this, I > > > am pretty sure others will find some interesting use for this as well > > (e.g. > > > signing binaries being installed, etc). > > > > I do not see that your needs require this change. > > > > > > > > -Max > > > > -- > > Rod Grimes > > rgrimes@freebsd.org > > > > -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-all@freebsd.org Thu Apr 9 23:22:36 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1C4842AA77E; Thu, 9 Apr 2020 23:22:36 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48yxy373yyz4QkV; Thu, 9 Apr 2020 23:22:35 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EDE6C1CBBB; Thu, 9 Apr 2020 23:22:35 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 039NMZXB075799; Thu, 9 Apr 2020 23:22:35 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 039NMZ4Q075798; Thu, 9 Apr 2020 23:22:35 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202004092322.039NMZ4Q075798@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 9 Apr 2020 23:22:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359758 - head/lib/libc/sys X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/lib/libc/sys X-SVN-Commit-Revision: 359758 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Apr 2020 23:22:36 -0000 Author: kib Date: Thu Apr 9 23:22:35 2020 New Revision: 359758 URL: https://svnweb.freebsd.org/changeset/base/359758 Log: libc: Fix possible overflow in binuptime(). This is an application of the kernel overflow fix from r357948 to userspace, based on the algorithm developed by Bruce Evans. To keep the ABI of the vds_timekeep stable, instead of adding the large_delta member, MSB of both multipliers are added to quickly estimate the overflow. Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Modified: head/lib/libc/sys/__vdso_gettimeofday.c Modified: head/lib/libc/sys/__vdso_gettimeofday.c ============================================================================== --- head/lib/libc/sys/__vdso_gettimeofday.c Thu Apr 9 23:11:19 2020 (r359757) +++ head/lib/libc/sys/__vdso_gettimeofday.c Thu Apr 9 23:22:35 2020 (r359758) @@ -32,6 +32,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include "libc_private.h" @@ -62,7 +63,8 @@ binuptime(struct bintime *bt, struct vdso_timekeep *tk { struct vdso_timehands *th; uint32_t curr, gen; - u_int delta; + uint64_t scale, x; + u_int delta, scale_bits; int error; do { @@ -78,7 +80,19 @@ binuptime(struct bintime *bt, struct vdso_timekeep *tk continue; if (error != 0) return (error); - bintime_addx(bt, th->th_scale * delta); + scale = th->th_scale; +#ifdef _LP64 + scale_bits = ffsl(scale); +#else + scale_bits = ffsll(scale); +#endif + if (__predict_false(scale_bits + fls(delta) > 63)) { + x = (scale >> 32) * delta; + scale &= 0xffffffff; + bt->sec += x >> 32; + bintime_addx(bt, x << 32); + } + bintime_addx(bt, scale * delta); if (abs) bintime_add(bt, &th->th_boottime); From owner-svn-src-all@freebsd.org Thu Apr 9 23:42:11 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CFD812AABCC for ; Thu, 9 Apr 2020 23:42:11 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from outbound2m.ore.mailhop.org (outbound2m.ore.mailhop.org [54.149.155.156]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 48yyNg2kZmz4RKh for ; Thu, 9 Apr 2020 23:42:11 +0000 (UTC) (envelope-from ian@freebsd.org) ARC-Seal: i=1; a=rsa-sha256; t=1586475729; cv=none; d=outbound.mailhop.org; s=arc-outbound20181012; b=jNgifBC3+3/nvGiEwQ0eYbHy1uiArhxh+XNVql8aevmsWoNacghiFIIyMBZMLC/SqpehQxktC4KuO jqAyuaQ+JiZmA6dmx7B9gdLCIGqk5ee9l2VkiB7o1E4x9WHarYKGUjcArMdJBIB8sgF7sYXEDsGigO eaGx5jSG8TFphqkIwfESMDYjc3Igpa+Axal46QTcgqC2reO43lSpelOTPlsYs9I1sHC+/Mcft0kYLB 5L8Xqrie8Au2wgi0fMrihBb+CFOyZ/cqrI/UTuCK+gaJRaNjCz97xZ0dhCBAa6IU3FHuGxKDOLmyf1 ujMWzAVmiVlv/ZqAUqFGU4SdHtO3P1w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=outbound.mailhop.org; s=arc-outbound20181012; h=content-transfer-encoding:mime-version:content-type:references:in-reply-to: date:cc:to:from:subject:message-id:dkim-signature:from; bh=X5ZQIbjd9VJTayqY1aSlDPS0b08971ktiC0E3clcIHs=; b=PsRLdWa8+ycpMrsbzcD70OG4LpO5Nhlm3GjcWzYsWfnF0577U8NuwtViPDPwMxzCw0Zq2SsHrJtDR 66cHioW4YOYJXgt7y6VF3yHmA6tIUaPfl3zxnFMSd3gSTK0zTTq70YLJseE/xEmC2M+aunRdQ0qMm8 zdD5hPUQ9na1Hz5bhKHfbRwMb4TSPI4GDkbsz2XAuj8sB12wWPqmT0VPEeYwxB/oJptwjRed9QxfrM 5H4wJttzmVXte2o+V9m6yqw2GKPS+D2GAFMng3wNa3zL8pUvlX2kEricQ2O2xPw93yPj7lUee6WiRi 1ICI+52eA/m9RTRbOmqwAS4IZ2HLkNQ== ARC-Authentication-Results: i=1; outbound4.ore.mailhop.org; spf=softfail smtp.mailfrom=freebsd.org smtp.remote-ip=67.177.211.60; dmarc=none header.from=freebsd.org; arc=none header.oldest-pass=0; DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outbound.mailhop.org; s=dkim-high; h=content-transfer-encoding:mime-version:content-type:references:in-reply-to: date:cc:to:from:subject:message-id:from; bh=X5ZQIbjd9VJTayqY1aSlDPS0b08971ktiC0E3clcIHs=; b=iVaSN/VWM/tzZLMs04ST2tSEzoYGcmz/jbAJTUasWnOw4Nald5AylIPy9U2TkQOhrOOo1VJP6DRAB 018S0hGn9hFQUSmrUdkh0K3VMzc+JXzL3Goxx9JJYTpy8cAsAOg+RsB3EpeJ1xIwUc8cDDh25GLnwU mRBg/rOgRTpkTZ/gZ9rSC8Zh8zxFTcfs+PuNTvV6ytWucRudMaEtQKQ0g3OOUCr2i9+Mu9AQWXbPz+ WO+XN7oqjmllejJlpF4easC2/ndHrM2l12clGKECj9uepeYElnYOwWZrLcGqdv+ZRyMublTaX+6e1u xO3/UzlSWjiv9EvKRd8hcqM/EhGQfGA== X-MHO-RoutePath: aGlwcGll X-MHO-User: b93682ac-7abb-11ea-a065-6d02e42e573a X-Report-Abuse-To: https://support.duocircle.com/support/solutions/articles/5000540958-duocircle-standard-smtp-abuse-information X-Originating-IP: 67.177.211.60 X-Mail-Handler: DuoCircle Outbound SMTP Received: from ilsoft.org (c-67-177-211-60.hsd1.co.comcast.net [67.177.211.60]) by outbound4.ore.mailhop.org (Halon) with ESMTPSA id b93682ac-7abb-11ea-a065-6d02e42e573a; Thu, 09 Apr 2020 23:42:08 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.15.2/8.15.2) with ESMTP id 039Ng70X048348; Thu, 9 Apr 2020 17:42:07 -0600 (MDT) (envelope-from ian@freebsd.org) Message-ID: Subject: Re: svn commit: r359685 - in head: . etc lib/libc/gen share/mk share/termcap usr.bin/login usr.bin/vgrind usr.sbin/services_mkdb From: Ian Lepore To: rgrimes@freebsd.org, Maxim Sobolev Cc: src-committers , svn-src-all , svn-src-head Date: Thu, 09 Apr 2020 17:42:07 -0600 In-Reply-To: <202004092316.039NGTti010456@gndrsh.dnsmgr.net> References: <202004092316.039NGTti010456@gndrsh.dnsmgr.net> Content-Type: text/plain; charset="ASCII" X-Mailer: Evolution 3.28.5 FreeBSD GNOME Team Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 48yyNg2kZmz4RKh X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-1.95 / 15.00]; local_wl_from(0.00)[freebsd.org]; NEURAL_HAM_MEDIUM(-0.98)[-0.983,0]; ASN(0.00)[asn:16509, ipnet:54.148.0.0/15, country:US]; NEURAL_HAM_LONG(-0.97)[-0.970,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Apr 2020 23:42:11 -0000 On Thu, 2020-04-09 at 16:16 -0700, Rodney W. Grimes wrote: > > Well, how many FreeBSD builds have you run in the last year, Rodney, > > personally to care about 0.1s slowdown that it might have caused? We've run > > at least a 1,000 here, probably 3x more. > > That is a non technical personal attack. > > > So yes, the cost is there, the > > cost is well understood and found negligible versus the benefit of having a > > slightly more extensible build system that is slightly easier to understand > > and integrate into bigger projects. > > I do not see how moving 5 values adds any extensibility or any ease of use, > or intergratability. It added an ease of editing the values to one file, > values that *should not be edited inplace*. > > If these values need overridden it should always be done on the make command > line, especially by projects external to FreeBSD. Your "extensible build system" > is reaching into internal project build infustructure in a non-supportable way > if it requires this types of change. > You did not look at the changes carefully enough. This doesn't just gather some values into one place, it replaces instances of hard-coded tool names with variables. To do so, those variables need to be defined somewhere. A new src.tools.mk is a good sensible place for that. Now that you have them all in once place, it doesn't make sense to still have duplicate definitions in other places, everything should refer to the one new source. You have focused in on that last sentence and started complaining about it as if it were the entire change. It's just a minor cleanup which is the natural thing to do given the rest of the change. And the rest of the change is useful in exactly the ways Maxim is saying (I say that as someone who also maintains a large proprietary source base that uses the freebsd build infrastructure). -- Ian From owner-svn-src-all@freebsd.org Thu Apr 9 23:42:14 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 92A162AABD2; Thu, 9 Apr 2020 23:42:14 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48yyNk313Kz4RKy; Thu, 9 Apr 2020 23:42:14 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 62ADE1CF51; Thu, 9 Apr 2020 23:42:14 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 039NgER9086854; Thu, 9 Apr 2020 23:42:14 GMT (envelope-from mckusick@FreeBSD.org) Received: (from mckusick@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 039NgE26086853; Thu, 9 Apr 2020 23:42:14 GMT (envelope-from mckusick@FreeBSD.org) Message-Id: <202004092342.039NgE26086853@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mckusick set sender to mckusick@FreeBSD.org using -f From: Kirk McKusick Date: Thu, 9 Apr 2020 23:42:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359759 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: mckusick X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 359759 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Apr 2020 23:42:14 -0000 Author: mckusick Date: Thu Apr 9 23:42:13 2020 New Revision: 359759 URL: https://svnweb.freebsd.org/changeset/base/359759 Log: When running with a kernel compiled with DEBUG_LOCKS, before panic'ing for recusing on a non-recursive lock, print out the kernel stack where the lock was originally acquired. Modified: head/sys/kern/kern_lock.c Modified: head/sys/kern/kern_lock.c ============================================================================== --- head/sys/kern/kern_lock.c Thu Apr 9 23:22:35 2020 (r359758) +++ head/sys/kern/kern_lock.c Thu Apr 9 23:42:13 2020 (r359759) @@ -732,6 +732,7 @@ lockmgr_xlock_hard(struct lock *lk, u_int flags, struc class = LOCK_CLASS(ilk); class->lc_unlock(ilk); } + STACK_PRINT(lk); panic("%s: recursing on non recursive lockmgr %p " "@ %s:%d\n", __func__, lk, file, line); } From owner-svn-src-all@freebsd.org Thu Apr 9 23:51:19 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7583A2AAE65; Thu, 9 Apr 2020 23:51:19 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48yybC2c6Lz4Ryg; Thu, 9 Apr 2020 23:51:19 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 534721D0E4; Thu, 9 Apr 2020 23:51:19 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 039NpJwi091305; Thu, 9 Apr 2020 23:51:19 GMT (envelope-from mckusick@FreeBSD.org) Received: (from mckusick@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 039NpJfZ091304; Thu, 9 Apr 2020 23:51:19 GMT (envelope-from mckusick@FreeBSD.org) Message-Id: <202004092351.039NpJfZ091304@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mckusick set sender to mckusick@FreeBSD.org using -f From: Kirk McKusick Date: Thu, 9 Apr 2020 23:51:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359760 - head/sys/ufs/ffs X-SVN-Group: head X-SVN-Commit-Author: mckusick X-SVN-Commit-Paths: head/sys/ufs/ffs X-SVN-Commit-Revision: 359760 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Apr 2020 23:51:19 -0000 Author: mckusick Date: Thu Apr 9 23:51:18 2020 New Revision: 359760 URL: https://svnweb.freebsd.org/changeset/base/359760 Log: Fixing the soft update macros in -r359612 triggered a previously hidden bug in the file truncation code. Until that bug is tracked down and fixed, revert to the old behavior. Reported by: Peter Holm Reviewed by: kib, Chuck Silvers Modified: head/sys/ufs/ffs/ffs_inode.c Modified: head/sys/ufs/ffs/ffs_inode.c ============================================================================== --- head/sys/ufs/ffs/ffs_inode.c Thu Apr 9 23:42:13 2020 (r359759) +++ head/sys/ufs/ffs/ffs_inode.c Thu Apr 9 23:51:18 2020 (r359760) @@ -244,6 +244,7 @@ ffs_truncate(vp, length, flags, cred) needextclean = 0; softdeptrunc = 0; journaltrunc = DOINGSUJ(vp); + journaltrunc = 0; /* XXX temp patch until bug found */ if (journaltrunc == 0 && DOINGSOFTDEP(vp) && length == 0) softdeptrunc = !softdep_slowdown(vp); extblocks = 0; From owner-svn-src-all@freebsd.org Fri Apr 10 00:23:35 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 910702AB80F; Fri, 10 Apr 2020 00:23:35 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48yzJR3Hypz4V0x; Fri, 10 Apr 2020 00:23:35 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6C4FF1D70B; Fri, 10 Apr 2020 00:23:35 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03A0NZ6n012385; Fri, 10 Apr 2020 00:23:35 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03A0NYHG012382; Fri, 10 Apr 2020 00:23:34 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004100023.03A0NYHG012382@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 10 Apr 2020 00:23:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r359761 - in stable: 11/stand/mips/beri/loader 11/stand/powerpc/ofw 11/stand/uboot/lib 12/stand/mips/beri/loader 12/stand/powerpc/ofw 12/stand/uboot/lib X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/stand/mips/beri/loader 11/stand/powerpc/ofw 11/stand/uboot/lib 12/stand/mips/beri/loader 12/stand/powerpc/ofw 12/stand/uboot/lib X-SVN-Commit-Revision: 359761 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 00:23:35 -0000 Author: kevans Date: Fri Apr 10 00:23:34 2020 New Revision: 359761 URL: https://svnweb.freebsd.org/changeset/base/359761 Log: MFC r359688: stand: -fno-common fixes for !x86 loaders - beriloader: archsw is declared extern and defined elsewhere - ofwloader: ofw_elf{,64} are defined in elf_freebsd.c and ppc64_elf_freebsd.c respectively - ubldr: syscall_ptr is defined in start.S for whichever ubldr platform is building -fno-common will become the default in GCC10/LLVM11. Modified: stable/11/stand/mips/beri/loader/main.c stable/11/stand/powerpc/ofw/conf.c stable/11/stand/uboot/lib/glue.h Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/stand/mips/beri/loader/main.c stable/12/stand/powerpc/ofw/conf.c stable/12/stand/uboot/lib/glue.h Directory Properties: stable/12/ (props changed) Modified: stable/11/stand/mips/beri/loader/main.c ============================================================================== --- stable/11/stand/mips/beri/loader/main.c Thu Apr 9 23:51:18 2020 (r359760) +++ stable/11/stand/mips/beri/loader/main.c Fri Apr 10 00:23:34 2020 (r359761) @@ -59,8 +59,6 @@ struct devsw *devsw[] = { NULL }; -struct arch_switch archsw; - struct file_format *file_formats[] = { &beri_elf, NULL Modified: stable/11/stand/powerpc/ofw/conf.c ============================================================================== --- stable/11/stand/powerpc/ofw/conf.c Thu Apr 9 23:51:18 2020 (r359760) +++ stable/11/stand/powerpc/ofw/conf.c Fri Apr 10 00:23:34 2020 (r359761) @@ -97,8 +97,8 @@ struct netif_driver *netif_drivers[] = { * rather than reading the file go first. */ -struct file_format ofw_elf; -struct file_format ofw_elf64; +extern struct file_format ofw_elf; +extern struct file_format ofw_elf64; struct file_format *file_formats[] = { &ofw_elf, Modified: stable/11/stand/uboot/lib/glue.h ============================================================================== --- stable/11/stand/uboot/lib/glue.h Thu Apr 9 23:51:18 2020 (r359760) +++ stable/11/stand/uboot/lib/glue.h Fri Apr 10 00:23:34 2020 (r359761) @@ -56,7 +56,7 @@ #endif int syscall(int, int *, ...); -void *syscall_ptr; +extern void *syscall_ptr; int api_parse_cmdline_sig(int argc, char **argv, struct api_signature **sig); int api_search_sig(struct api_signature **sig); From owner-svn-src-all@freebsd.org Fri Apr 10 00:23:36 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6F8B32AB81B; Fri, 10 Apr 2020 00:23:36 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48yzJS2BpYz4V0y; Fri, 10 Apr 2020 00:23:36 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4698F1D70C; Fri, 10 Apr 2020 00:23:36 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03A0NaCC012393; Fri, 10 Apr 2020 00:23:36 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03A0NZ3F012391; Fri, 10 Apr 2020 00:23:35 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004100023.03A0NZ3F012391@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 10 Apr 2020 00:23:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359761 - in stable: 11/stand/mips/beri/loader 11/stand/powerpc/ofw 11/stand/uboot/lib 12/stand/mips/beri/loader 12/stand/powerpc/ofw 12/stand/uboot/lib X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/stand/mips/beri/loader 11/stand/powerpc/ofw 11/stand/uboot/lib 12/stand/mips/beri/loader 12/stand/powerpc/ofw 12/stand/uboot/lib X-SVN-Commit-Revision: 359761 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 00:23:36 -0000 Author: kevans Date: Fri Apr 10 00:23:34 2020 New Revision: 359761 URL: https://svnweb.freebsd.org/changeset/base/359761 Log: MFC r359688: stand: -fno-common fixes for !x86 loaders - beriloader: archsw is declared extern and defined elsewhere - ofwloader: ofw_elf{,64} are defined in elf_freebsd.c and ppc64_elf_freebsd.c respectively - ubldr: syscall_ptr is defined in start.S for whichever ubldr platform is building -fno-common will become the default in GCC10/LLVM11. Modified: stable/12/stand/mips/beri/loader/main.c stable/12/stand/powerpc/ofw/conf.c stable/12/stand/uboot/lib/glue.h Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/stand/mips/beri/loader/main.c stable/11/stand/powerpc/ofw/conf.c stable/11/stand/uboot/lib/glue.h Directory Properties: stable/11/ (props changed) Modified: stable/12/stand/mips/beri/loader/main.c ============================================================================== --- stable/12/stand/mips/beri/loader/main.c Thu Apr 9 23:51:18 2020 (r359760) +++ stable/12/stand/mips/beri/loader/main.c Fri Apr 10 00:23:34 2020 (r359761) @@ -59,8 +59,6 @@ struct devsw *devsw[] = { NULL }; -struct arch_switch archsw; - struct file_format *file_formats[] = { &beri_elf, NULL Modified: stable/12/stand/powerpc/ofw/conf.c ============================================================================== --- stable/12/stand/powerpc/ofw/conf.c Thu Apr 9 23:51:18 2020 (r359760) +++ stable/12/stand/powerpc/ofw/conf.c Fri Apr 10 00:23:34 2020 (r359761) @@ -97,8 +97,8 @@ struct netif_driver *netif_drivers[] = { * rather than reading the file go first. */ -struct file_format ofw_elf; -struct file_format ofw_elf64; +extern struct file_format ofw_elf; +extern struct file_format ofw_elf64; struct file_format *file_formats[] = { &ofw_elf, Modified: stable/12/stand/uboot/lib/glue.h ============================================================================== --- stable/12/stand/uboot/lib/glue.h Thu Apr 9 23:51:18 2020 (r359760) +++ stable/12/stand/uboot/lib/glue.h Fri Apr 10 00:23:34 2020 (r359761) @@ -56,7 +56,7 @@ #endif int syscall(int, int *, ...); -void *syscall_ptr; +extern void *syscall_ptr; int api_parse_cmdline_sig(int argc, char **argv, struct api_signature **sig); int api_search_sig(struct api_signature **sig); From owner-svn-src-all@freebsd.org Fri Apr 10 00:25:15 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id AD4622AB92E; Fri, 10 Apr 2020 00:25:15 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48yzLM45Fcz4VFx; Fri, 10 Apr 2020 00:25:15 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8738A1D710; Fri, 10 Apr 2020 00:25:15 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03A0PF6T012583; Fri, 10 Apr 2020 00:25:15 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03A0PFLG012582; Fri, 10 Apr 2020 00:25:15 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004100025.03A0PFLG012582@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 10 Apr 2020 00:25:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r359762 - in stable: 11/usr.sbin/config 12/usr.sbin/config X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/usr.sbin/config 12/usr.sbin/config X-SVN-Commit-Revision: 359762 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 00:25:15 -0000 Author: kevans Date: Fri Apr 10 00:25:14 2020 New Revision: 359762 URL: https://svnweb.freebsd.org/changeset/base/359762 Log: MFC r359689: config(8): "fix" a couple of buffer overflows Recently added/changed lines in various kernel configs have caused some buffer overflows that went undetected. These were detected with a config built using -fno-common as these line buffers smashed one of our arrays, then further triaged with ASAN. Double the sizes; this is really not a great fix, but addresses the immediate need until someone rewrites config. While here, add some bounds checking so that we don't need to detect this by random bus errors or other weird failures. Modified: stable/11/usr.sbin/config/main.c Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/usr.sbin/config/main.c Directory Properties: stable/12/ (props changed) Modified: stable/11/usr.sbin/config/main.c ============================================================================== --- stable/11/usr.sbin/config/main.c Fri Apr 10 00:23:34 2020 (r359761) +++ stable/11/usr.sbin/config/main.c Fri Apr 10 00:25:14 2020 (r359762) @@ -311,7 +311,7 @@ usage(void) char * get_word(FILE *fp) { - static char line[80]; + static char line[160]; int ch; char *cp; int escaped_nl = 0; @@ -341,11 +341,17 @@ begin: *cp = 0; return (line); } - while ((ch = getc(fp)) != EOF) { + while ((ch = getc(fp)) != EOF && cp < line + sizeof(line)) { if (isspace(ch)) break; *cp++ = ch; } + if (cp >= line + sizeof(line)) { + line[sizeof(line) - 1] = '\0'; + fprintf(stderr, "config: attempted overflow, partial line: `%s'", + line); + exit(2); + } *cp = 0; if (ch == EOF) return ((char *)EOF); @@ -361,7 +367,7 @@ begin: char * get_quoted_word(FILE *fp) { - static char line[256]; + static char line[512]; int ch; char *cp; int escaped_nl = 0; @@ -404,15 +410,29 @@ begin: } if (ch != quote && escaped_nl) *cp++ = '\\'; + if (cp >= line + sizeof(line)) { + line[sizeof(line) - 1] = '\0'; + printf( + "config: line buffer overflow reading partial line `%s'\n", + line); + exit(2); + } *cp++ = ch; escaped_nl = 0; } } else { *cp++ = ch; - while ((ch = getc(fp)) != EOF) { + while ((ch = getc(fp)) != EOF && cp < line + sizeof(line)) { if (isspace(ch)) break; *cp++ = ch; + } + if (cp >= line + sizeof(line)) { + line[sizeof(line) - 1] = '\0'; + printf( + "config: line buffer overflow reading partial line `%s'\n", + line); + exit(2); } if (ch != EOF) (void) ungetc(ch, fp); From owner-svn-src-all@freebsd.org Fri Apr 10 00:25:16 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0DB1F2AB933; Fri, 10 Apr 2020 00:25:16 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48yzLM6dW4z4VFy; Fri, 10 Apr 2020 00:25:15 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C4C891D711; Fri, 10 Apr 2020 00:25:15 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03A0PFNM012589; Fri, 10 Apr 2020 00:25:15 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03A0PF2A012588; Fri, 10 Apr 2020 00:25:15 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004100025.03A0PF2A012588@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 10 Apr 2020 00:25:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359762 - in stable: 11/usr.sbin/config 12/usr.sbin/config X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/usr.sbin/config 12/usr.sbin/config X-SVN-Commit-Revision: 359762 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 00:25:16 -0000 Author: kevans Date: Fri Apr 10 00:25:14 2020 New Revision: 359762 URL: https://svnweb.freebsd.org/changeset/base/359762 Log: MFC r359689: config(8): "fix" a couple of buffer overflows Recently added/changed lines in various kernel configs have caused some buffer overflows that went undetected. These were detected with a config built using -fno-common as these line buffers smashed one of our arrays, then further triaged with ASAN. Double the sizes; this is really not a great fix, but addresses the immediate need until someone rewrites config. While here, add some bounds checking so that we don't need to detect this by random bus errors or other weird failures. Modified: stable/12/usr.sbin/config/main.c Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/usr.sbin/config/main.c Directory Properties: stable/11/ (props changed) Modified: stable/12/usr.sbin/config/main.c ============================================================================== --- stable/12/usr.sbin/config/main.c Fri Apr 10 00:23:34 2020 (r359761) +++ stable/12/usr.sbin/config/main.c Fri Apr 10 00:25:14 2020 (r359762) @@ -313,7 +313,7 @@ usage(void) char * get_word(FILE *fp) { - static char line[80]; + static char line[160]; int ch; char *cp; int escaped_nl = 0; @@ -343,11 +343,17 @@ begin: *cp = 0; return (line); } - while ((ch = getc(fp)) != EOF) { + while ((ch = getc(fp)) != EOF && cp < line + sizeof(line)) { if (isspace(ch)) break; *cp++ = ch; } + if (cp >= line + sizeof(line)) { + line[sizeof(line) - 1] = '\0'; + fprintf(stderr, "config: attempted overflow, partial line: `%s'", + line); + exit(2); + } *cp = 0; if (ch == EOF) return ((char *)EOF); @@ -363,7 +369,7 @@ begin: char * get_quoted_word(FILE *fp) { - static char line[256]; + static char line[512]; int ch; char *cp; int escaped_nl = 0; @@ -406,15 +412,29 @@ begin: } if (ch != quote && escaped_nl) *cp++ = '\\'; + if (cp >= line + sizeof(line)) { + line[sizeof(line) - 1] = '\0'; + printf( + "config: line buffer overflow reading partial line `%s'\n", + line); + exit(2); + } *cp++ = ch; escaped_nl = 0; } } else { *cp++ = ch; - while ((ch = getc(fp)) != EOF) { + while ((ch = getc(fp)) != EOF && cp < line + sizeof(line)) { if (isspace(ch)) break; *cp++ = ch; + } + if (cp >= line + sizeof(line)) { + line[sizeof(line) - 1] = '\0'; + printf( + "config: line buffer overflow reading partial line `%s'\n", + line); + exit(2); } if (ch != EOF) (void) ungetc(ch, fp); From owner-svn-src-all@freebsd.org Fri Apr 10 00:27:21 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3AD342ABA43; Fri, 10 Apr 2020 00:27:21 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48yzNn17Zxz4VWd; Fri, 10 Apr 2020 00:27:21 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 07D951D716; Fri, 10 Apr 2020 00:27:21 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03A0RK7F012785; Fri, 10 Apr 2020 00:27:20 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03A0RJLU012779; Fri, 10 Apr 2020 00:27:19 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004100027.03A0RJLU012779@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 10 Apr 2020 00:27:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r359763 - in stable: 11/usr.bin/gprof 11/usr.bin/mail 11/usr.bin/tip/tip 12/usr.bin/gprof 12/usr.bin/mail 12/usr.bin/tip/tip X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/usr.bin/gprof 11/usr.bin/mail 11/usr.bin/tip/tip 12/usr.bin/gprof 12/usr.bin/mail 12/usr.bin/tip/tip X-SVN-Commit-Revision: 359763 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 00:27:21 -0000 Author: kevans Date: Fri Apr 10 00:27:19 2020 New Revision: 359763 URL: https://svnweb.freebsd.org/changeset/base/359763 Log: MFC r359680: mail/gprof/tip: tap with the ugly stick The ugly stick here is this bit in the respective headers: #ifndef EXTERN #define EXTERN extern #endif with a follow-up #define EXTERN in a single .c file to push all of their definitions into one spot. A pass should be made over these three later to push these definitions into the correct files instead, but this will suffice for now and at a more leisurely pace. Modified: stable/11/usr.bin/gprof/gprof.c stable/11/usr.bin/gprof/gprof.h stable/11/usr.bin/mail/glob.h stable/11/usr.bin/mail/main.c stable/11/usr.bin/mail/strings.c stable/11/usr.bin/tip/tip/tip.c stable/11/usr.bin/tip/tip/tip.h Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/usr.bin/gprof/gprof.c stable/12/usr.bin/gprof/gprof.h stable/12/usr.bin/mail/glob.h stable/12/usr.bin/mail/main.c stable/12/usr.bin/mail/strings.c stable/12/usr.bin/tip/tip/tip.c stable/12/usr.bin/tip/tip/tip.h Directory Properties: stable/12/ (props changed) Modified: stable/11/usr.bin/gprof/gprof.c ============================================================================== --- stable/11/usr.bin/gprof/gprof.c Fri Apr 10 00:25:14 2020 (r359762) +++ stable/11/usr.bin/gprof/gprof.c Fri Apr 10 00:27:19 2020 (r359763) @@ -47,6 +47,7 @@ __FBSDID("$FreeBSD$"); #include #include +#define EXTERN #include "gprof.h" static int valcmp(const void *, const void *); Modified: stable/11/usr.bin/gprof/gprof.h ============================================================================== --- stable/11/usr.bin/gprof/gprof.h Fri Apr 10 00:25:14 2020 (r359762) +++ stable/11/usr.bin/gprof/gprof.h Fri Apr 10 00:27:19 2020 (r359763) @@ -70,18 +70,22 @@ typedef int bool; */ #define HISTORICAL_SCALE_2 2 +#ifndef EXTERN +#define EXTERN extern +#endif + /* * ticks per second */ -long hz; +EXTERN long hz; -size_t histcounter_size; -int histcounter_type; +EXTERN size_t histcounter_size; +EXTERN int histcounter_type; -char *a_outname; +EXTERN char *a_outname; #define A_OUTNAME "a.out" -char *gmonname; +EXTERN char *gmonname; #define GMONSUM "gmon.sum" /* @@ -141,9 +145,9 @@ struct nl { }; typedef struct nl nltype; -nltype *nl; /* the whole namelist */ -nltype *npe; /* the virtual end of the namelist */ -int nname; /* the number of function names */ +EXTERN nltype *nl; /* the whole namelist */ +EXTERN nltype *npe; /* the virtual end of the namelist */ +EXTERN int nname; /* the number of function names */ #define HASCYCLEXIT 0x08 /* node has arc exiting from cycle */ #define CYCLEHEAD 0x10 /* node marked as head of a cycle */ @@ -162,9 +166,9 @@ struct cl { }; typedef struct cl cltype; -arctype *archead; /* the head of arcs in current cycle list */ -cltype *cyclehead; /* the head of the list */ -int cyclecnt; /* the number of cycles found */ +EXTERN arctype *archead; /* the head of arcs in current cycle list */ +EXTERN cltype *cyclehead; /* the head of the list */ +EXTERN int cyclecnt; /* the number of cycles found */ #define CYCLEMAX 100 /* maximum cycles before cutting one of them */ /* @@ -178,8 +182,8 @@ int cyclecnt; /* the number of cycles found */ * namelist entries for cycle headers. * the number of discovered cycles. */ -nltype *cyclenl; /* cycle header namelist */ -int ncycle; /* number of cycles discovered */ +EXTERN nltype *cyclenl; /* cycle header namelist */ +EXTERN int ncycle; /* number of cycles discovered */ /* * The header on the gmon.out file. @@ -195,43 +199,46 @@ struct ophdr { int ncnt; }; -int debug; +EXTERN int debug; /* * Each discretized pc sample has * a count of the number of samples in its range */ -double *samples; +EXTERN double *samples; -unsigned long s_lowpc; /* lowpc from the profile file */ -unsigned long s_highpc; /* highpc from the profile file */ -unsigned long lowpc, highpc; /* range profiled, in historical units */ -unsigned sampbytes; /* number of bytes of samples */ -int nsamples; /* number of samples */ -double actime; /* accumulated time thus far for putprofline */ -double totime; /* total time for all routines */ -double printtime; /* total of time being printed */ -double scale; /* scale factor converting samples to pc +EXTERN unsigned long s_lowpc; /* lowpc from the profile file */ +EXTERN unsigned long s_highpc; /* highpc from the profile file */ +/* range profiled, in historical units */ +EXTERN unsigned long lowpc, highpc; +EXTERN unsigned sampbytes; /* number of bytes of samples */ +EXTERN int nsamples; /* number of samples */ +/* accumulated time thus far for putprofline */ +EXTERN double actime; +EXTERN double totime; /* total time for all routines */ +EXTERN double printtime; /* total of time being printed */ +EXTERN double scale; /* scale factor converting samples to pc values: each sample covers scale bytes */ -unsigned char *textspace; /* text space of a.out in core */ -int cyclethreshold; /* with -C, minimum cycle size to ignore */ +EXTERN unsigned char *textspace; /* text space of a.out in core */ +/* with -C, minimum cycle size to ignore */ +EXTERN int cyclethreshold; /* * option flags, from a to z. */ -bool aflag; /* suppress static functions */ -bool bflag; /* blurbs, too */ -bool Cflag; /* find cut-set to eliminate cycles */ -bool dflag; /* debugging options */ -bool eflag; /* specific functions excluded */ -bool Eflag; /* functions excluded with time */ -bool fflag; /* specific functions requested */ -bool Fflag; /* functions requested with time */ -bool kflag; /* arcs to be deleted */ -bool Kflag; /* use the running kernel for symbols */ -bool sflag; /* sum multiple gmon.out files */ -bool uflag; /* suppress symbols hidden from C */ -bool zflag; /* zero time/called functions, too */ +EXTERN bool aflag; /* suppress static functions */ +EXTERN bool bflag; /* blurbs, too */ +EXTERN bool Cflag; /* find cut-set to eliminate cycles */ +EXTERN bool dflag; /* debugging options */ +EXTERN bool eflag; /* specific functions excluded */ +EXTERN bool Eflag; /* functions excluded with time */ +EXTERN bool fflag; /* specific functions requested */ +EXTERN bool Fflag; /* functions requested with time */ +EXTERN bool kflag; /* arcs to be deleted */ +EXTERN bool Kflag; /* use the running kernel for symbols */ +EXTERN bool sflag; /* sum multiple gmon.out files */ +EXTERN bool uflag; /* suppress symbols hidden from C */ +EXTERN bool zflag; /* zero time/called functions, too */ /* * structure for various string lists @@ -240,12 +247,12 @@ struct stringlist { struct stringlist *next; char *string; }; -struct stringlist *elist; -struct stringlist *Elist; -struct stringlist *flist; -struct stringlist *Flist; -struct stringlist *kfromlist; -struct stringlist *ktolist; +extern struct stringlist *elist; +extern struct stringlist *Elist; +extern struct stringlist *flist; +extern struct stringlist *Flist; +extern struct stringlist *kfromlist; +extern struct stringlist *ktolist; /* * function declarations Modified: stable/11/usr.bin/mail/glob.h ============================================================================== --- stable/11/usr.bin/mail/glob.h Fri Apr 10 00:25:14 2020 (r359762) +++ stable/11/usr.bin/mail/glob.h Fri Apr 10 00:27:19 2020 (r359763) @@ -36,51 +36,51 @@ * def.h must be included first. */ -int msgCount; /* Count of messages read in */ -int rcvmode; /* True if receiving mail */ -int sawcom; /* Set after first command */ -char *Tflag; /* -T temp file for netnews */ -int senderr; /* An error while checking */ -int edit; /* Indicates editing a file */ -int readonly; /* Will be unable to rewrite file */ -int noreset; /* String resets suspended */ -int sourcing; /* Currently reading variant file */ -int loading; /* Loading user definitions */ -int cond; /* Current state of conditional exc. */ -FILE *itf; /* Input temp file buffer */ -FILE *otf; /* Output temp file buffer */ -int image; /* File descriptor for image of msg */ -FILE *input; /* Current command input file */ -char mailname[PATHSIZE]; /* Name of current file */ -char prevfile[PATHSIZE]; /* Name of previous file */ -char *homedir; /* Path name of home directory */ -char *myname; /* My login name */ -off_t mailsize; /* Size of system mailbox */ -int lexnumber; /* Number of TNUMBER from scan() */ -char lexstring[STRINGLEN]; /* String from TSTRING, scan() */ -int regretp; /* Pointer to TOS of regret tokens */ -int regretstack[REGDEP]; /* Stack of regretted tokens */ -char *string_stack[REGDEP]; /* Stack of regretted strings */ -int numberstack[REGDEP]; /* Stack of regretted numbers */ -struct message *dot; /* Pointer to current message */ -struct message *message; /* The actual message structure */ -struct var *variables[HSHSIZE]; /* Pointer to active var list */ -struct grouphead *groups[HSHSIZE];/* Pointer to active groups */ -struct ignoretab ignore[2]; /* ignored and retained fields +extern int msgCount; /* Count of messages read in */ +extern int rcvmode; /* True if receiving mail */ +extern int sawcom; /* Set after first command */ +extern char *Tflag; /* -T temp file for netnews */ +extern int senderr; /* An error while checking */ +extern int edit; /* Indicates editing a file */ +extern int readonly; /* Will be unable to rewrite file */ +extern int noreset; /* String resets suspended */ +extern int sourcing; /* Currently reading variant file */ +extern int loading; /* Loading user definitions */ +extern int cond; /* Current state of conditional exc. */ +extern FILE *itf; /* Input temp file buffer */ +extern FILE *otf; /* Output temp file buffer */ +extern int image; /* File descriptor for image of msg */ +extern FILE *input; /* Current command input file */ +extern char mailname[PATHSIZE]; /* Name of current file */ +extern char prevfile[PATHSIZE]; /* Name of previous file */ +extern char *homedir; /* Path name of home directory */ +extern char *myname; /* My login name */ +extern off_t mailsize; /* Size of system mailbox */ +extern int lexnumber; /* Number of TNUMBER from scan() */ +extern char lexstring[STRINGLEN]; /* String from TSTRING, scan() */ +extern int regretp; /* Pointer to TOS of regret tokens */ +extern int regretstack[REGDEP]; /* Stack of regretted tokens */ +extern char *string_stack[REGDEP]; /* Stack of regretted strings */ +extern int numberstack[REGDEP]; /* Stack of regretted numbers */ +extern struct message *dot; /* Pointer to current message */ +extern struct message *message; /* The actual message structure */ +extern struct var *variables[HSHSIZE]; /* Pointer to active var list */ +extern struct grouphead *groups[HSHSIZE];/* Pointer to active groups */ +extern struct ignoretab ignore[2]; /* ignored and retained fields 0 is ignore, 1 is retain */ -struct ignoretab saveignore[2]; /* ignored and retained fields +extern struct ignoretab saveignore[2]; /* ignored and retained fields on save to folder */ -struct ignoretab ignoreall[2]; /* special, ignore all headers */ -char **altnames; /* List of alternate names for user */ -int debug; /* Debug flag set */ -int screenwidth; /* Screen width, or best guess */ -int screenheight; /* Screen height, or best guess, +extern struct ignoretab ignoreall[2]; /* special, ignore all headers */ +extern char **altnames; /* List of alternate names for user */ +extern int debug; /* Debug flag set */ +extern int screenwidth; /* Screen width, or best guess */ +extern int screenheight; /* Screen height, or best guess, for "header" command */ -int realscreenheight; /* the real screen height */ +extern int realscreenheight; /* the real screen height */ #include -jmp_buf srbuf; +extern jmp_buf srbuf; /* @@ -91,7 +91,7 @@ jmp_buf srbuf; */ #define NSPACE 25 /* Total number of string spaces */ -struct strings { +extern struct strings { char *s_topFree; /* Beginning of this area */ char *s_nextFree; /* Next alloctable place here */ unsigned s_nleft; /* Number of bytes left here */ Modified: stable/11/usr.bin/mail/main.c ============================================================================== --- stable/11/usr.bin/mail/main.c Fri Apr 10 00:25:14 2020 (r359762) +++ stable/11/usr.bin/mail/main.c Fri Apr 10 00:27:19 2020 (r359763) @@ -50,6 +50,49 @@ __FBSDID("$FreeBSD$"); * * Startup -- interface with user. */ +int msgCount; +int rcvmode; +int sawcom; +char *Tflag; +int senderr; +int edit; +int readonly; +int noreset; +int sourcing; +int loading; +int cond; +FILE *itf; +FILE *otf; +int image; +FILE *input; +char mailname[PATHSIZE]; +char prevfile[PATHSIZE]; +char *homedir; +char *myname; +off_t mailsize; +int lexnumber; +char lexstring[STRINGLEN]; +int regretp; +int regretstack[REGDEP]; +char *string_stack[REGDEP]; +int numberstack[REGDEP]; +struct message *dot; +struct message *message; +struct var *variables[HSHSIZE]; +struct grouphead *groups[HSHSIZE]; +struct ignoretab ignore[2]; + +struct ignoretab saveignore[2]; + +struct ignoretab ignoreall[2]; +char **altnames; +int debug; +int screenwidth; +int screenheight; + +int realscreenheight; + +jmp_buf srbuf; static jmp_buf hdrjmp; Modified: stable/11/usr.bin/mail/strings.c ============================================================================== --- stable/11/usr.bin/mail/strings.c Fri Apr 10 00:25:14 2020 (r359762) +++ stable/11/usr.bin/mail/strings.c Fri Apr 10 00:27:19 2020 (r359763) @@ -46,6 +46,8 @@ __FBSDID("$FreeBSD$"); #include "rcv.h" #include "extern.h" +struct strings stringdope[NSPACE]; + /* * Allocate size more bytes of space and return the address of the * first byte to the caller. An even number of bytes are always Modified: stable/11/usr.bin/tip/tip/tip.c ============================================================================== --- stable/11/usr.bin/tip/tip/tip.c Fri Apr 10 00:25:14 2020 (r359762) +++ stable/11/usr.bin/tip/tip/tip.c Fri Apr 10 00:27:19 2020 (r359763) @@ -52,6 +52,7 @@ static const char rcsid[] = "$OpenBSD: tip.c,v 1.30 20 * or * cu phone-number [-s speed] [-l line] [-a acu] */ +#define EXTERN #include "tip.h" #include "pathnames.h" Modified: stable/11/usr.bin/tip/tip/tip.h ============================================================================== --- stable/11/usr.bin/tip/tip/tip.h Fri Apr 10 00:25:14 2020 (r359762) +++ stable/11/usr.bin/tip/tip/tip.h Fri Apr 10 00:27:19 2020 (r359763) @@ -56,40 +56,44 @@ #include #include +#ifndef EXTERN +#define EXTERN extern +#endif + /* * Remote host attributes */ -char *DV; /* UNIX device(s) to open */ -char *EL; /* chars marking an EOL */ -char *CM; /* initial connection message */ -char *IE; /* EOT to expect on input */ -char *OE; /* EOT to send to complete FT */ -char *CU; /* call unit if making a phone call */ -char *AT; /* acu type */ -char *PN; /* phone number(s) */ -char *DI; /* disconnect string */ -char *PA; /* parity to be generated */ +EXTERN char *DV; /* UNIX device(s) to open */ +EXTERN char *EL; /* chars marking an EOL */ +EXTERN char *CM; /* initial connection message */ +EXTERN char *IE; /* EOT to expect on input */ +EXTERN char *OE; /* EOT to send to complete FT */ +EXTERN char *CU; /* call unit if making a phone call */ +EXTERN char *AT; /* acu type */ +EXTERN char *PN; /* phone number(s) */ +EXTERN char *DI; /* disconnect string */ +EXTERN char *PA; /* parity to be generated */ -char *PH; /* phone number file */ -char *RM; /* remote file name */ -char *HO; /* host name */ +EXTERN char *PH; /* phone number file */ +EXTERN char *RM; /* remote file name */ +EXTERN char *HO; /* host name */ -long BR; /* line speed for conversation */ -long FS; /* frame size for transfers */ +EXTERN long BR; /* line speed for conversation */ +EXTERN long FS; /* frame size for transfers */ -short DU; /* this host is dialed up */ -short HW; /* this device is hardwired, see hunt.c */ -char *ES; /* escape character */ -char *EX; /* exceptions */ -char *FO; /* force (literal next) char*/ -char *RC; /* raise character */ -char *RE; /* script record file */ -char *PR; /* remote prompt */ -long DL; /* line delay for file transfers to remote */ -long CL; /* char delay for file transfers to remote */ -long ET; /* echocheck timeout */ -long LD; /* line disc */ -short HD; /* this host is half duplex - do local echo */ +EXTERN short DU; /* this host is dialed up */ +EXTERN short HW; /* this device is hardwired, see hunt.c */ +EXTERN char *ES; /* escape character */ +EXTERN char *EX; /* exceptions */ +EXTERN char *FO; /* force (literal next) char*/ +EXTERN char *RC; /* raise character */ +EXTERN char *RE; /* script record file */ +EXTERN char *PR; /* remote prompt */ +EXTERN long DL; /* line delay for file transfers to remote */ +EXTERN long CL; /* char delay for file transfers to remote */ +EXTERN long ET; /* echocheck timeout */ +EXTERN long LD; /* line disc */ +EXTERN short HD; /* this host is half duplex - do local echo */ /* * String value table @@ -235,39 +239,39 @@ extern value_t vtable[]; /* variable table */ #define NOFILE ((FILE *)NULL) #define NOPWD ((struct passwd *)0) -struct termios term; /* current mode of terminal */ -struct termios defterm; /* initial mode of terminal */ -struct termios defchars; /* current mode with initial chars */ -int gotdefterm; +EXTERN struct termios term; /* current mode of terminal */ +EXTERN struct termios defterm; /* initial mode of terminal */ +EXTERN struct termios defchars; /* current mode with initial chars */ +EXTERN int gotdefterm; -FILE *fscript; /* FILE for scripting */ +EXTERN FILE *fscript; /* FILE for scripting */ -int fildes[2]; /* file transfer synchronization channel */ -int repdes[2]; /* read process sychronization channel */ -int FD; /* open file descriptor to remote host */ -int AC; /* open file descriptor to dialer (v831 only) */ -int vflag; /* print .tiprc initialization sequence */ -int noesc; /* no `~' escape char */ -int sfd; /* for ~< operation */ -pid_t tipin_pid; /* pid of tipin */ -pid_t tipout_pid; /* pid of tipout */ -uid_t uid, euid; /* real and effective user id's */ -gid_t gid, egid; /* real and effective group id's */ -int stop; /* stop transfer session flag */ -int quit; /* same; but on other end */ -int intflag; /* recognized interrupt */ -int stoprompt; /* for interrupting a prompt session */ -int timedout; /* ~> transfer timedout */ -int cumode; /* simulating the "cu" program */ -int bits8; /* terminal is 8-bit mode */ +EXTERN int fildes[2]; /* file transfer synchronization channel */ +EXTERN int repdes[2]; /* read process sychronization channel */ +EXTERN int FD; /* open file descriptor to remote host */ +EXTERN int AC; /* open file descriptor to dialer (v831 only) */ +EXTERN int vflag; /* print .tiprc initialization sequence */ +EXTERN int noesc; /* no `~' escape char */ +EXTERN int sfd; /* for ~< operation */ +EXTERN pid_t tipin_pid; /* pid of tipin */ +EXTERN pid_t tipout_pid; /* pid of tipout */ +EXTERN uid_t uid, euid; /* real and effective user id's */ +EXTERN gid_t gid, egid; /* real and effective group id's */ +EXTERN int stop; /* stop transfer session flag */ +EXTERN int quit; /* same; but on other end */ +EXTERN int intflag; /* recognized interrupt */ +EXTERN int stoprompt; /* for interrupting a prompt session */ +EXTERN int timedout; /* ~> transfer timedout */ +EXTERN int cumode; /* simulating the "cu" program */ +EXTERN int bits8; /* terminal is 8-bit mode */ #define STRIP_PAR (bits8 ? 0377 : 0177) -char fname[PATH_MAX]; /* file name buffer for ~< */ -char copyname[PATH_MAX]; /* file name buffer for ~> */ -char ccc; /* synchronization character */ -char *uucplock; /* name of lock file for uucp's */ +EXTERN char fname[PATH_MAX]; /* file name buffer for ~< */ +EXTERN char copyname[PATH_MAX]; /* file name buffer for ~> */ +EXTERN char ccc; /* synchronization character */ +EXTERN char *uucplock; /* name of lock file for uucp's */ -int odisc; /* initial tty line discipline */ +EXTERN int odisc; /* initial tty line discipline */ extern int disc; /* current tty discpline */ extern char *__progname; /* program name */ From owner-svn-src-all@freebsd.org Fri Apr 10 00:27:22 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id AAE5D2ABA57; Fri, 10 Apr 2020 00:27:22 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48yzNp4Gftz4VWf; Fri, 10 Apr 2020 00:27:22 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8B3371D717; Fri, 10 Apr 2020 00:27:22 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03A0RMKf012798; Fri, 10 Apr 2020 00:27:22 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03A0RLxe012791; Fri, 10 Apr 2020 00:27:21 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004100027.03A0RLxe012791@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 10 Apr 2020 00:27:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359763 - in stable: 11/usr.bin/gprof 11/usr.bin/mail 11/usr.bin/tip/tip 12/usr.bin/gprof 12/usr.bin/mail 12/usr.bin/tip/tip X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/usr.bin/gprof 11/usr.bin/mail 11/usr.bin/tip/tip 12/usr.bin/gprof 12/usr.bin/mail 12/usr.bin/tip/tip X-SVN-Commit-Revision: 359763 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 00:27:22 -0000 Author: kevans Date: Fri Apr 10 00:27:19 2020 New Revision: 359763 URL: https://svnweb.freebsd.org/changeset/base/359763 Log: MFC r359680: mail/gprof/tip: tap with the ugly stick The ugly stick here is this bit in the respective headers: #ifndef EXTERN #define EXTERN extern #endif with a follow-up #define EXTERN in a single .c file to push all of their definitions into one spot. A pass should be made over these three later to push these definitions into the correct files instead, but this will suffice for now and at a more leisurely pace. Modified: stable/12/usr.bin/gprof/gprof.c stable/12/usr.bin/gprof/gprof.h stable/12/usr.bin/mail/glob.h stable/12/usr.bin/mail/main.c stable/12/usr.bin/mail/strings.c stable/12/usr.bin/tip/tip/tip.c stable/12/usr.bin/tip/tip/tip.h Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/usr.bin/gprof/gprof.c stable/11/usr.bin/gprof/gprof.h stable/11/usr.bin/mail/glob.h stable/11/usr.bin/mail/main.c stable/11/usr.bin/mail/strings.c stable/11/usr.bin/tip/tip/tip.c stable/11/usr.bin/tip/tip/tip.h Directory Properties: stable/11/ (props changed) Modified: stable/12/usr.bin/gprof/gprof.c ============================================================================== --- stable/12/usr.bin/gprof/gprof.c Fri Apr 10 00:25:14 2020 (r359762) +++ stable/12/usr.bin/gprof/gprof.c Fri Apr 10 00:27:19 2020 (r359763) @@ -49,6 +49,7 @@ __FBSDID("$FreeBSD$"); #include #include +#define EXTERN #include "gprof.h" static int valcmp(const void *, const void *); Modified: stable/12/usr.bin/gprof/gprof.h ============================================================================== --- stable/12/usr.bin/gprof/gprof.h Fri Apr 10 00:25:14 2020 (r359762) +++ stable/12/usr.bin/gprof/gprof.h Fri Apr 10 00:27:19 2020 (r359763) @@ -72,18 +72,22 @@ typedef int bool; */ #define HISTORICAL_SCALE_2 2 +#ifndef EXTERN +#define EXTERN extern +#endif + /* * ticks per second */ -long hz; +EXTERN long hz; -size_t histcounter_size; -int histcounter_type; +EXTERN size_t histcounter_size; +EXTERN int histcounter_type; -char *a_outname; +EXTERN char *a_outname; #define A_OUTNAME "a.out" -char *gmonname; +EXTERN char *gmonname; #define GMONSUM "gmon.sum" /* @@ -143,9 +147,9 @@ struct nl { }; typedef struct nl nltype; -nltype *nl; /* the whole namelist */ -nltype *npe; /* the virtual end of the namelist */ -int nname; /* the number of function names */ +EXTERN nltype *nl; /* the whole namelist */ +EXTERN nltype *npe; /* the virtual end of the namelist */ +EXTERN int nname; /* the number of function names */ #define HASCYCLEXIT 0x08 /* node has arc exiting from cycle */ #define CYCLEHEAD 0x10 /* node marked as head of a cycle */ @@ -164,9 +168,9 @@ struct cl { }; typedef struct cl cltype; -arctype *archead; /* the head of arcs in current cycle list */ -cltype *cyclehead; /* the head of the list */ -int cyclecnt; /* the number of cycles found */ +EXTERN arctype *archead; /* the head of arcs in current cycle list */ +EXTERN cltype *cyclehead; /* the head of the list */ +EXTERN int cyclecnt; /* the number of cycles found */ #define CYCLEMAX 100 /* maximum cycles before cutting one of them */ /* @@ -180,8 +184,8 @@ int cyclecnt; /* the number of cycles found */ * namelist entries for cycle headers. * the number of discovered cycles. */ -nltype *cyclenl; /* cycle header namelist */ -int ncycle; /* number of cycles discovered */ +EXTERN nltype *cyclenl; /* cycle header namelist */ +EXTERN int ncycle; /* number of cycles discovered */ /* * The header on the gmon.out file. @@ -197,43 +201,46 @@ struct ophdr { int ncnt; }; -int debug; +EXTERN int debug; /* * Each discretized pc sample has * a count of the number of samples in its range */ -double *samples; +EXTERN double *samples; -unsigned long s_lowpc; /* lowpc from the profile file */ -unsigned long s_highpc; /* highpc from the profile file */ -unsigned long lowpc, highpc; /* range profiled, in historical units */ -unsigned sampbytes; /* number of bytes of samples */ -int nsamples; /* number of samples */ -double actime; /* accumulated time thus far for putprofline */ -double totime; /* total time for all routines */ -double printtime; /* total of time being printed */ -double scale; /* scale factor converting samples to pc +EXTERN unsigned long s_lowpc; /* lowpc from the profile file */ +EXTERN unsigned long s_highpc; /* highpc from the profile file */ +/* range profiled, in historical units */ +EXTERN unsigned long lowpc, highpc; +EXTERN unsigned sampbytes; /* number of bytes of samples */ +EXTERN int nsamples; /* number of samples */ +/* accumulated time thus far for putprofline */ +EXTERN double actime; +EXTERN double totime; /* total time for all routines */ +EXTERN double printtime; /* total of time being printed */ +EXTERN double scale; /* scale factor converting samples to pc values: each sample covers scale bytes */ -unsigned char *textspace; /* text space of a.out in core */ -int cyclethreshold; /* with -C, minimum cycle size to ignore */ +EXTERN unsigned char *textspace; /* text space of a.out in core */ +/* with -C, minimum cycle size to ignore */ +EXTERN int cyclethreshold; /* * option flags, from a to z. */ -bool aflag; /* suppress static functions */ -bool bflag; /* blurbs, too */ -bool Cflag; /* find cut-set to eliminate cycles */ -bool dflag; /* debugging options */ -bool eflag; /* specific functions excluded */ -bool Eflag; /* functions excluded with time */ -bool fflag; /* specific functions requested */ -bool Fflag; /* functions requested with time */ -bool kflag; /* arcs to be deleted */ -bool Kflag; /* use the running kernel for symbols */ -bool sflag; /* sum multiple gmon.out files */ -bool uflag; /* suppress symbols hidden from C */ -bool zflag; /* zero time/called functions, too */ +EXTERN bool aflag; /* suppress static functions */ +EXTERN bool bflag; /* blurbs, too */ +EXTERN bool Cflag; /* find cut-set to eliminate cycles */ +EXTERN bool dflag; /* debugging options */ +EXTERN bool eflag; /* specific functions excluded */ +EXTERN bool Eflag; /* functions excluded with time */ +EXTERN bool fflag; /* specific functions requested */ +EXTERN bool Fflag; /* functions requested with time */ +EXTERN bool kflag; /* arcs to be deleted */ +EXTERN bool Kflag; /* use the running kernel for symbols */ +EXTERN bool sflag; /* sum multiple gmon.out files */ +EXTERN bool uflag; /* suppress symbols hidden from C */ +EXTERN bool zflag; /* zero time/called functions, too */ /* * structure for various string lists @@ -242,12 +249,12 @@ struct stringlist { struct stringlist *next; char *string; }; -struct stringlist *elist; -struct stringlist *Elist; -struct stringlist *flist; -struct stringlist *Flist; -struct stringlist *kfromlist; -struct stringlist *ktolist; +extern struct stringlist *elist; +extern struct stringlist *Elist; +extern struct stringlist *flist; +extern struct stringlist *Flist; +extern struct stringlist *kfromlist; +extern struct stringlist *ktolist; /* * function declarations Modified: stable/12/usr.bin/mail/glob.h ============================================================================== --- stable/12/usr.bin/mail/glob.h Fri Apr 10 00:25:14 2020 (r359762) +++ stable/12/usr.bin/mail/glob.h Fri Apr 10 00:27:19 2020 (r359763) @@ -38,51 +38,51 @@ * def.h must be included first. */ -int msgCount; /* Count of messages read in */ -int rcvmode; /* True if receiving mail */ -int sawcom; /* Set after first command */ -char *Tflag; /* -T temp file for netnews */ -int senderr; /* An error while checking */ -int edit; /* Indicates editing a file */ -int readonly; /* Will be unable to rewrite file */ -int noreset; /* String resets suspended */ -int sourcing; /* Currently reading variant file */ -int loading; /* Loading user definitions */ -int cond; /* Current state of conditional exc. */ -FILE *itf; /* Input temp file buffer */ -FILE *otf; /* Output temp file buffer */ -int image; /* File descriptor for image of msg */ -FILE *input; /* Current command input file */ -char mailname[PATHSIZE]; /* Name of current file */ -char prevfile[PATHSIZE]; /* Name of previous file */ -char *homedir; /* Path name of home directory */ -char *myname; /* My login name */ -off_t mailsize; /* Size of system mailbox */ -int lexnumber; /* Number of TNUMBER from scan() */ -char lexstring[STRINGLEN]; /* String from TSTRING, scan() */ -int regretp; /* Pointer to TOS of regret tokens */ -int regretstack[REGDEP]; /* Stack of regretted tokens */ -char *string_stack[REGDEP]; /* Stack of regretted strings */ -int numberstack[REGDEP]; /* Stack of regretted numbers */ -struct message *dot; /* Pointer to current message */ -struct message *message; /* The actual message structure */ -struct var *variables[HSHSIZE]; /* Pointer to active var list */ -struct grouphead *groups[HSHSIZE];/* Pointer to active groups */ -struct ignoretab ignore[2]; /* ignored and retained fields +extern int msgCount; /* Count of messages read in */ +extern int rcvmode; /* True if receiving mail */ +extern int sawcom; /* Set after first command */ +extern char *Tflag; /* -T temp file for netnews */ +extern int senderr; /* An error while checking */ +extern int edit; /* Indicates editing a file */ +extern int readonly; /* Will be unable to rewrite file */ +extern int noreset; /* String resets suspended */ +extern int sourcing; /* Currently reading variant file */ +extern int loading; /* Loading user definitions */ +extern int cond; /* Current state of conditional exc. */ +extern FILE *itf; /* Input temp file buffer */ +extern FILE *otf; /* Output temp file buffer */ +extern int image; /* File descriptor for image of msg */ +extern FILE *input; /* Current command input file */ +extern char mailname[PATHSIZE]; /* Name of current file */ +extern char prevfile[PATHSIZE]; /* Name of previous file */ +extern char *homedir; /* Path name of home directory */ +extern char *myname; /* My login name */ +extern off_t mailsize; /* Size of system mailbox */ +extern int lexnumber; /* Number of TNUMBER from scan() */ +extern char lexstring[STRINGLEN]; /* String from TSTRING, scan() */ +extern int regretp; /* Pointer to TOS of regret tokens */ +extern int regretstack[REGDEP]; /* Stack of regretted tokens */ +extern char *string_stack[REGDEP]; /* Stack of regretted strings */ +extern int numberstack[REGDEP]; /* Stack of regretted numbers */ +extern struct message *dot; /* Pointer to current message */ +extern struct message *message; /* The actual message structure */ +extern struct var *variables[HSHSIZE]; /* Pointer to active var list */ +extern struct grouphead *groups[HSHSIZE];/* Pointer to active groups */ +extern struct ignoretab ignore[2]; /* ignored and retained fields 0 is ignore, 1 is retain */ -struct ignoretab saveignore[2]; /* ignored and retained fields +extern struct ignoretab saveignore[2]; /* ignored and retained fields on save to folder */ -struct ignoretab ignoreall[2]; /* special, ignore all headers */ -char **altnames; /* List of alternate names for user */ -int debug; /* Debug flag set */ -int screenwidth; /* Screen width, or best guess */ -int screenheight; /* Screen height, or best guess, +extern struct ignoretab ignoreall[2]; /* special, ignore all headers */ +extern char **altnames; /* List of alternate names for user */ +extern int debug; /* Debug flag set */ +extern int screenwidth; /* Screen width, or best guess */ +extern int screenheight; /* Screen height, or best guess, for "header" command */ -int realscreenheight; /* the real screen height */ +extern int realscreenheight; /* the real screen height */ #include -jmp_buf srbuf; +extern jmp_buf srbuf; /* @@ -93,7 +93,7 @@ jmp_buf srbuf; */ #define NSPACE 25 /* Total number of string spaces */ -struct strings { +extern struct strings { char *s_topFree; /* Beginning of this area */ char *s_nextFree; /* Next alloctable place here */ unsigned s_nleft; /* Number of bytes left here */ Modified: stable/12/usr.bin/mail/main.c ============================================================================== --- stable/12/usr.bin/mail/main.c Fri Apr 10 00:25:14 2020 (r359762) +++ stable/12/usr.bin/mail/main.c Fri Apr 10 00:27:19 2020 (r359763) @@ -52,6 +52,49 @@ __FBSDID("$FreeBSD$"); * * Startup -- interface with user. */ +int msgCount; +int rcvmode; +int sawcom; +char *Tflag; +int senderr; +int edit; +int readonly; +int noreset; +int sourcing; +int loading; +int cond; +FILE *itf; +FILE *otf; +int image; +FILE *input; +char mailname[PATHSIZE]; +char prevfile[PATHSIZE]; +char *homedir; +char *myname; +off_t mailsize; +int lexnumber; +char lexstring[STRINGLEN]; +int regretp; +int regretstack[REGDEP]; +char *string_stack[REGDEP]; +int numberstack[REGDEP]; +struct message *dot; +struct message *message; +struct var *variables[HSHSIZE]; +struct grouphead *groups[HSHSIZE]; +struct ignoretab ignore[2]; + +struct ignoretab saveignore[2]; + +struct ignoretab ignoreall[2]; +char **altnames; +int debug; +int screenwidth; +int screenheight; + +int realscreenheight; + +jmp_buf srbuf; static jmp_buf hdrjmp; Modified: stable/12/usr.bin/mail/strings.c ============================================================================== --- stable/12/usr.bin/mail/strings.c Fri Apr 10 00:25:14 2020 (r359762) +++ stable/12/usr.bin/mail/strings.c Fri Apr 10 00:27:19 2020 (r359763) @@ -48,6 +48,8 @@ __FBSDID("$FreeBSD$"); #include "rcv.h" #include "extern.h" +struct strings stringdope[NSPACE]; + /* * Allocate size more bytes of space and return the address of the * first byte to the caller. An even number of bytes are always Modified: stable/12/usr.bin/tip/tip/tip.c ============================================================================== --- stable/12/usr.bin/tip/tip/tip.c Fri Apr 10 00:25:14 2020 (r359762) +++ stable/12/usr.bin/tip/tip/tip.c Fri Apr 10 00:27:19 2020 (r359763) @@ -54,6 +54,7 @@ static const char rcsid[] = "$OpenBSD: tip.c,v 1.30 20 * or * cu phone-number [-s speed] [-l line] [-a acu] */ +#define EXTERN #include "tip.h" #include "pathnames.h" Modified: stable/12/usr.bin/tip/tip/tip.h ============================================================================== --- stable/12/usr.bin/tip/tip/tip.h Fri Apr 10 00:25:14 2020 (r359762) +++ stable/12/usr.bin/tip/tip/tip.h Fri Apr 10 00:27:19 2020 (r359763) @@ -58,40 +58,44 @@ #include #include +#ifndef EXTERN +#define EXTERN extern +#endif + /* * Remote host attributes */ -char *DV; /* UNIX device(s) to open */ -char *EL; /* chars marking an EOL */ -char *CM; /* initial connection message */ -char *IE; /* EOT to expect on input */ -char *OE; /* EOT to send to complete FT */ -char *CU; /* call unit if making a phone call */ -char *AT; /* acu type */ -char *PN; /* phone number(s) */ -char *DI; /* disconnect string */ -char *PA; /* parity to be generated */ +EXTERN char *DV; /* UNIX device(s) to open */ +EXTERN char *EL; /* chars marking an EOL */ +EXTERN char *CM; /* initial connection message */ +EXTERN char *IE; /* EOT to expect on input */ +EXTERN char *OE; /* EOT to send to complete FT */ +EXTERN char *CU; /* call unit if making a phone call */ +EXTERN char *AT; /* acu type */ +EXTERN char *PN; /* phone number(s) */ +EXTERN char *DI; /* disconnect string */ +EXTERN char *PA; /* parity to be generated */ -char *PH; /* phone number file */ -char *RM; /* remote file name */ -char *HO; /* host name */ +EXTERN char *PH; /* phone number file */ +EXTERN char *RM; /* remote file name */ +EXTERN char *HO; /* host name */ -long BR; /* line speed for conversation */ -long FS; /* frame size for transfers */ +EXTERN long BR; /* line speed for conversation */ +EXTERN long FS; /* frame size for transfers */ -short DU; /* this host is dialed up */ -short HW; /* this device is hardwired, see hunt.c */ -char *ES; /* escape character */ -char *EX; /* exceptions */ -char *FO; /* force (literal next) char*/ -char *RC; /* raise character */ -char *RE; /* script record file */ -char *PR; /* remote prompt */ -long DL; /* line delay for file transfers to remote */ -long CL; /* char delay for file transfers to remote */ -long ET; /* echocheck timeout */ -long LD; /* line disc */ -short HD; /* this host is half duplex - do local echo */ +EXTERN short DU; /* this host is dialed up */ +EXTERN short HW; /* this device is hardwired, see hunt.c */ +EXTERN char *ES; /* escape character */ +EXTERN char *EX; /* exceptions */ +EXTERN char *FO; /* force (literal next) char*/ +EXTERN char *RC; /* raise character */ +EXTERN char *RE; /* script record file */ +EXTERN char *PR; /* remote prompt */ +EXTERN long DL; /* line delay for file transfers to remote */ +EXTERN long CL; /* char delay for file transfers to remote */ +EXTERN long ET; /* echocheck timeout */ +EXTERN long LD; /* line disc */ +EXTERN short HD; /* this host is half duplex - do local echo */ /* * String value table @@ -237,39 +241,39 @@ extern value_t vtable[]; /* variable table */ #define NOFILE ((FILE *)NULL) #define NOPWD ((struct passwd *)0) -struct termios term; /* current mode of terminal */ -struct termios defterm; /* initial mode of terminal */ -struct termios defchars; /* current mode with initial chars */ -int gotdefterm; +EXTERN struct termios term; /* current mode of terminal */ +EXTERN struct termios defterm; /* initial mode of terminal */ +EXTERN struct termios defchars; /* current mode with initial chars */ +EXTERN int gotdefterm; -FILE *fscript; /* FILE for scripting */ +EXTERN FILE *fscript; /* FILE for scripting */ -int fildes[2]; /* file transfer synchronization channel */ -int repdes[2]; /* read process sychronization channel */ -int FD; /* open file descriptor to remote host */ -int AC; /* open file descriptor to dialer (v831 only) */ -int vflag; /* print .tiprc initialization sequence */ -int noesc; /* no `~' escape char */ -int sfd; /* for ~< operation */ -pid_t tipin_pid; /* pid of tipin */ -pid_t tipout_pid; /* pid of tipout */ -uid_t uid, euid; /* real and effective user id's */ -gid_t gid, egid; /* real and effective group id's */ -int stop; /* stop transfer session flag */ -int quit; /* same; but on other end */ -int intflag; /* recognized interrupt */ -int stoprompt; /* for interrupting a prompt session */ -int timedout; /* ~> transfer timedout */ -int cumode; /* simulating the "cu" program */ -int bits8; /* terminal is 8-bit mode */ +EXTERN int fildes[2]; /* file transfer synchronization channel */ +EXTERN int repdes[2]; /* read process sychronization channel */ +EXTERN int FD; /* open file descriptor to remote host */ +EXTERN int AC; /* open file descriptor to dialer (v831 only) */ +EXTERN int vflag; /* print .tiprc initialization sequence */ +EXTERN int noesc; /* no `~' escape char */ +EXTERN int sfd; /* for ~< operation */ +EXTERN pid_t tipin_pid; /* pid of tipin */ +EXTERN pid_t tipout_pid; /* pid of tipout */ +EXTERN uid_t uid, euid; /* real and effective user id's */ +EXTERN gid_t gid, egid; /* real and effective group id's */ +EXTERN int stop; /* stop transfer session flag */ +EXTERN int quit; /* same; but on other end */ +EXTERN int intflag; /* recognized interrupt */ +EXTERN int stoprompt; /* for interrupting a prompt session */ +EXTERN int timedout; /* ~> transfer timedout */ +EXTERN int cumode; /* simulating the "cu" program */ +EXTERN int bits8; /* terminal is 8-bit mode */ #define STRIP_PAR (bits8 ? 0377 : 0177) -char fname[PATH_MAX]; /* file name buffer for ~< */ -char copyname[PATH_MAX]; /* file name buffer for ~> */ -char ccc; /* synchronization character */ -char *uucplock; /* name of lock file for uucp's */ +EXTERN char fname[PATH_MAX]; /* file name buffer for ~< */ +EXTERN char copyname[PATH_MAX]; /* file name buffer for ~> */ +EXTERN char ccc; /* synchronization character */ +EXTERN char *uucplock; /* name of lock file for uucp's */ -int odisc; /* initial tty line discipline */ +EXTERN int odisc; /* initial tty line discipline */ extern int disc; /* current tty discpline */ extern char *__progname; /* program name */ From owner-svn-src-all@freebsd.org Fri Apr 10 00:31:53 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A1DF12ABDAE; Fri, 10 Apr 2020 00:31:53 +0000 (UTC) (envelope-from rscheff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48yzV13pXDz4Vtk; Fri, 10 Apr 2020 00:31:53 +0000 (UTC) (envelope-from rscheff@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7DC5F1D8CC; Fri, 10 Apr 2020 00:31:53 +0000 (UTC) (envelope-from rscheff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03A0Vr6J017901; Fri, 10 Apr 2020 00:31:53 GMT (envelope-from rscheff@FreeBSD.org) Received: (from rscheff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03A0Vra0017900; Fri, 10 Apr 2020 00:31:53 GMT (envelope-from rscheff@FreeBSD.org) Message-Id: <202004100031.03A0Vra0017900@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rscheff set sender to rscheff@FreeBSD.org using -f From: Richard Scheffenegger Date: Fri, 10 Apr 2020 00:31:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359764 - head/share/misc X-SVN-Group: head X-SVN-Commit-Author: rscheff X-SVN-Commit-Paths: head/share/misc X-SVN-Commit-Revision: 359764 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 00:31:53 -0000 Author: rscheff Date: Fri Apr 10 00:31:52 2020 New Revision: 359764 URL: https://svnweb.freebsd.org/changeset/base/359764 Log: add myself (rscheff) as a src committer. Reviewed by: rgrimes (mentor), tuexen (mentor) Approved by: rgrimes (mentor), tuexen (mentor) MFC after: 3 days Sponsored by: NetApp, Inc. Differential Revision: https://reviews.freebsd.org/D24318 Modified: head/share/misc/committers-src.dot Modified: head/share/misc/committers-src.dot ============================================================================== --- head/share/misc/committers-src.dot Fri Apr 10 00:27:19 2020 (r359763) +++ head/share/misc/committers-src.dot Fri Apr 10 00:31:52 2020 (r359764) @@ -312,6 +312,7 @@ royger [label="Roger Pau Monne\nroyger@FreeBSD.org\n20 rpaulo [label="Rui Paulo\nrpaulo@FreeBSD.org\n2007/09/25"] rpokala [label="Ravi Pokala\nrpokala@FreeBSD.org\n2015/11/19"] rrs [label="Randall R Stewart\nrrs@FreeBSD.org\n2007/02/08"] +rscheff [label="Richard Scheffenegger\nrscheff@FreeBSD.org\n2020/04/06"] rse [label="Ralf S. Engelschall\nrse@FreeBSD.org\n1997/07/31"] rstone [label="Ryan Stone\nrstone@FreeBSD.org\n2010/04/19"] ru [label="Ruslan Ermilov\nru@FreeBSD.org\n1999/05/27"] @@ -792,6 +793,7 @@ pjd -> smh pjd -> trociny rgrimes -> markm +rgrimes -> rscheff rmacklem -> jwd @@ -882,6 +884,8 @@ thompsa -> eri trasz -> jh trasz -> mjg + +tuexen -> rscheff ume -> jinmei ume -> suz From owner-svn-src-all@freebsd.org Fri Apr 10 01:23:07 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0EB742AD064; Fri, 10 Apr 2020 01:23:07 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48z0d66f8Hz4YmY; Fri, 10 Apr 2020 01:23:06 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DF3401E26C; Fri, 10 Apr 2020 01:23:06 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03A1N6qR049655; Fri, 10 Apr 2020 01:23:06 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03A1N6qL049654; Fri, 10 Apr 2020 01:23:06 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202004100123.03A1N6qL049654@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Fri, 10 Apr 2020 01:23:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359765 - stable/12/sys/geom/journal X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12/sys/geom/journal X-SVN-Commit-Revision: 359765 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 01:23:07 -0000 Author: markj Date: Fri Apr 10 01:23:06 2020 New Revision: 359765 URL: https://svnweb.freebsd.org/changeset/base/359765 Log: MFC r359595: geom_journal: Only stop the switcher process if one was started. PR: 243196 Modified: stable/12/sys/geom/journal/g_journal.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/geom/journal/g_journal.c ============================================================================== --- stable/12/sys/geom/journal/g_journal.c Fri Apr 10 00:31:52 2020 (r359764) +++ stable/12/sys/geom/journal/g_journal.c Fri Apr 10 01:23:06 2020 (r359765) @@ -2749,7 +2749,8 @@ g_journal_fini(struct g_class *mp) } if (g_journal_event_lowmem != NULL) EVENTHANDLER_DEREGISTER(vm_lowmem, g_journal_event_lowmem); - g_journal_stop_switcher(); + if (g_journal_switcher_proc != NULL) + g_journal_stop_switcher(); } DECLARE_GEOM_CLASS(g_journal_class, g_journal); From owner-svn-src-all@freebsd.org Fri Apr 10 01:24:17 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3A5632AD129; Fri, 10 Apr 2020 01:24:17 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48z0fT0nk6z4Yvq; Fri, 10 Apr 2020 01:24:17 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 165471E272; Fri, 10 Apr 2020 01:24:17 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03A1OGZY049788; Fri, 10 Apr 2020 01:24:16 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03A1OG1T049787; Fri, 10 Apr 2020 01:24:16 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202004100124.03A1OG1T049787@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Fri, 10 Apr 2020 01:24:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359766 - head/sys/ufs/ffs X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/sys/ufs/ffs X-SVN-Commit-Revision: 359766 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 01:24:17 -0000 Author: kib Date: Fri Apr 10 01:24:16 2020 New Revision: 359766 URL: https://svnweb.freebsd.org/changeset/base/359766 Log: ufs: apply suspension for non-forced rw unmounts. Forced rw unmounts and remounts from rw to ro already suspend filesystem, which closes races with writers instantiating new vnodes while unmount flushes the queue. Original intent of not including non-forced unmounts into this regime was to allow such unmounts to fail if writer was active, but this did not worked well. Similar change, but causing all unmount, even involving only ro filesystem, were proposed in D24088, but I believe that suspending ro is undesirable, and definitely spends CPU time. Reported by: markj Discussed with: chs, mckusick Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Modified: head/sys/ufs/ffs/ffs_vfsops.c Modified: head/sys/ufs/ffs/ffs_vfsops.c ============================================================================== --- head/sys/ufs/ffs/ffs_vfsops.c Fri Apr 10 01:23:06 2020 (r359765) +++ head/sys/ufs/ffs/ffs_vfsops.c Fri Apr 10 01:24:16 2020 (r359766) @@ -1247,11 +1247,9 @@ ffs_unmount(mp, mntflags) flags = 0; td = curthread; fs = ump->um_fs; - susp = 0; - if (mntflags & MNT_FORCE) { + if (mntflags & MNT_FORCE) flags |= FORCECLOSE; - susp = fs->fs_ronly == 0; - } + susp = fs->fs_ronly == 0; #ifdef UFS_EXTATTR if ((error = ufs_extattr_stop(mp, td))) { if (error != EOPNOTSUPP) From owner-svn-src-all@freebsd.org Fri Apr 10 01:28:47 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C52A52AD255; Fri, 10 Apr 2020 01:28:47 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48z0lg4Whhz4Z6W; Fri, 10 Apr 2020 01:28:47 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 968391E27E; Fri, 10 Apr 2020 01:28:47 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03A1Slor050093; Fri, 10 Apr 2020 01:28:47 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03A1SlVB050092; Fri, 10 Apr 2020 01:28:47 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202004100128.03A1SlVB050092@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Fri, 10 Apr 2020 01:28:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359767 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 359767 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 01:28:47 -0000 Author: kib Date: Fri Apr 10 01:28:47 2020 New Revision: 359767 URL: https://svnweb.freebsd.org/changeset/base/359767 Log: Do not pass bogus page to mbufs. This is a bug in r359473. Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Modified: head/sys/kern/kern_sendfile.c Modified: head/sys/kern/kern_sendfile.c ============================================================================== --- head/sys/kern/kern_sendfile.c Fri Apr 10 01:24:16 2020 (r359766) +++ head/sys/kern/kern_sendfile.c Fri Apr 10 01:28:47 2020 (r359767) @@ -649,6 +649,7 @@ vn_sendfile(struct file *fp, int sockfd, struct uio *h struct file *sock_fp; struct vnode *vp; struct vm_object *obj; + vm_page_t pga; struct socket *so; #ifdef KERN_TLS struct ktls_session *tls; @@ -948,6 +949,9 @@ retry_space: softerr = EBUSY; break; } + pga = pa[i]; + if (pga == bogus_page) + pga = vm_page_relookup(obj, sfio->pindex0 + i); if (use_ext_pgs) { off_t xfs; @@ -997,7 +1001,7 @@ retry_space: ext_pgs->nrdy++; } - ext_pgs->pa[ext_pgs_idx] = VM_PAGE_TO_PHYS(pa[i]); + ext_pgs->pa[ext_pgs_idx] = VM_PAGE_TO_PHYS(pga); ext_pgs->npgs++; xfs = xfsize(i, npages, off, space); ext_pgs->last_pg_len = xfs; @@ -1016,7 +1020,7 @@ retry_space: * threads might exhaust the buffers and then * deadlock. */ - sf = sf_buf_alloc(pa[i], + sf = sf_buf_alloc(pga, m != NULL ? SFB_NOWAIT : SFB_CATCH); if (sf == NULL) { SFSTAT_INC(sf_allocfail); From owner-svn-src-all@freebsd.org Fri Apr 10 01:32:53 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B7D452AD545; Fri, 10 Apr 2020 01:32:53 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48z0rP44BWz4ZcK; Fri, 10 Apr 2020 01:32:53 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: from mail-qt1-f182.google.com (mail-qt1-f182.google.com [209.85.160.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) (Authenticated sender: kevans) by smtp.freebsd.org (Postfix) with ESMTPSA id 7DD101CD1A; Fri, 10 Apr 2020 01:32:53 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: by mail-qt1-f182.google.com with SMTP id b10so442819qtt.9; Thu, 09 Apr 2020 18:32:53 -0700 (PDT) X-Gm-Message-State: AGi0PuYWd0Z04CNwFLmdLpioltuzQtbJrqmt62INqXn3lVNZfTJvdDGV bv0RNTgBZu9XZDD7nDE6HalxhZPKuEVv45g+TII= X-Google-Smtp-Source: APiQypIaFKHk+mX5g3tXfIxlFQVrVCYVgH/0B01yo7jP3iVVqeEnR3jVaZvgAFrMTBUkcRUE8WgqonAF9An7DvM+cy4= X-Received: by 2002:aed:2ee3:: with SMTP id k90mr2178616qtd.211.1586482372987; Thu, 09 Apr 2020 18:32:52 -0700 (PDT) MIME-Version: 1.0 References: <202003270029.02R0TX25062379@repo.freebsd.org> In-Reply-To: <202003270029.02R0TX25062379@repo.freebsd.org> From: Kyle Evans Date: Thu, 9 Apr 2020 20:32:41 -0500 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r359346 - in head/sys: amd64/vmm/amd contrib/dev/acpica contrib/dev/acpica/common contrib/dev/acpica/compiler contrib/dev/acpica/components/debugger contrib/dev/acpica/components/dispat... To: Jung-uk Kim Cc: src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 01:32:53 -0000 On Thu, Mar 26, 2020 at 7:32 PM Jung-uk Kim wrote: > > Author: jkim > Date: Fri Mar 27 00:29:33 2020 > New Revision: 359346 > URL: https://svnweb.freebsd.org/changeset/base/359346 > > Log: > Merge ACPICA 20200326. > Hello! Any projection on if/when this will get merged back to stable/12 (and 11, but it looks like it's not getting ACPICA updates anymore)? Below is, in particular, the subset of the diff I care about as it resolves -fno-common issues. Thanks, Kyle Evans universe12a% svn diff sys/contrib Index: sys/contrib/dev/acpica/compiler/aslcompiler.l =================================================================== --- sys/contrib/dev/acpica/compiler/aslcompiler.l (revision 359763) +++ sys/contrib/dev/acpica/compiler/aslcompiler.l (working copy) @@ -156,7 +156,6 @@ #include #include -YYSTYPE AslCompilerlval; /* * Generation: Use the following command line: Index: sys/contrib/dev/acpica/compiler/dtcompiler.h =================================================================== --- sys/contrib/dev/acpica/compiler/dtcompiler.h (revision 359763) +++ sys/contrib/dev/acpica/compiler/dtcompiler.h (working copy) @@ -461,7 +461,6 @@ /* dtparser - lex/yacc files */ -UINT64 DtCompilerParserResult; /* Expression return value */ int DtCompilerParserparse ( void); Index: sys/contrib/dev/acpica/compiler/dtcompilerparser.y =================================================================== --- sys/contrib/dev/acpica/compiler/dtcompilerparser.y (revision 359763) +++ sys/contrib/dev/acpica/compiler/dtcompilerparser.y (working copy) @@ -170,7 +170,6 @@ extern DT_FIELD *AslGbl_CurrentField; extern int DtLabelByteOffset; -extern UINT64 DtCompilerParserResult; /* Expression return value */ extern UINT64 DtCompilerParserlineno; /* Current line number */ extern UINT32 DtTokenFirstLine; Index: sys/contrib/dev/acpica/compiler/dtparser.l =================================================================== --- sys/contrib/dev/acpica/compiler/dtparser.l (revision 359763) +++ sys/contrib/dev/acpica/compiler/dtparser.l (working copy) @@ -208,7 +208,7 @@ /* * Local support functions */ -YY_BUFFER_STATE LexBuffer; +static YY_BUFFER_STATE LexBuffer; /****************************************************************************** * Index: sys/contrib/dev/acpica/compiler/prparser.l =================================================================== --- sys/contrib/dev/acpica/compiler/prparser.l (revision 359763) +++ sys/contrib/dev/acpica/compiler/prparser.l (working copy) @@ -224,7 +224,7 @@ /* * Local support functions */ -YY_BUFFER_STATE LexBuffer; +static YY_BUFFER_STATE LexBuffer; /****************************************************************************** From owner-svn-src-all@freebsd.org Fri Apr 10 01:37:01 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0D6052AD67E; Fri, 10 Apr 2020 01:37:01 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48z0x86fZWz4Zsm; Fri, 10 Apr 2020 01:37:00 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DFA081E47B; Fri, 10 Apr 2020 01:37:00 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03A1b0q9056496; Fri, 10 Apr 2020 01:37:00 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03A1b0oG056495; Fri, 10 Apr 2020 01:37:00 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202004100137.03A1b0oG056495@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Fri, 10 Apr 2020 01:37:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359768 - stable/12/usr.bin/xargs X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12/usr.bin/xargs X-SVN-Commit-Revision: 359768 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 01:37:01 -0000 Author: markj Date: Fri Apr 10 01:37:00 2020 New Revision: 359768 URL: https://svnweb.freebsd.org/changeset/base/359768 Log: MFC r359596: xargs: Fix exit status expression when a child process fails to exec. PR: 244327 Modified: stable/12/usr.bin/xargs/xargs.c Directory Properties: stable/12/ (props changed) Modified: stable/12/usr.bin/xargs/xargs.c ============================================================================== --- stable/12/usr.bin/xargs/xargs.c Fri Apr 10 01:28:47 2020 (r359767) +++ stable/12/usr.bin/xargs/xargs.c Fri Apr 10 01:37:00 2020 (r359768) @@ -650,7 +650,7 @@ waitchildren(const char *name, int waitall) if (childerr != 0 && cause_exit == 0) { errno = childerr; waitall = 1; - cause_exit = ENOENT ? 127 : 126; + cause_exit = errno == ENOENT ? 127 : 126; warn("%s", name); } else if (WIFSIGNALED(status)) { waitall = cause_exit = 1; From owner-svn-src-all@freebsd.org Fri Apr 10 05:13:16 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7052C2B25D9; Fri, 10 Apr 2020 05:13:16 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48z5kh2MLdz4nYj; Fri, 10 Apr 2020 05:13:16 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4BD2B20F13; Fri, 10 Apr 2020 05:13:16 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03A5DG8L090745; Fri, 10 Apr 2020 05:13:16 GMT (envelope-from sjg@FreeBSD.org) Received: (from sjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03A5DGt9090744; Fri, 10 Apr 2020 05:13:16 GMT (envelope-from sjg@FreeBSD.org) Message-Id: <202004100513.03A5DGt9090744@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sjg set sender to sjg@FreeBSD.org using -f From: "Simon J. Gerraty" Date: Fri, 10 Apr 2020 05:13:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359769 - stable/12/stand/liblua X-SVN-Group: stable-12 X-SVN-Commit-Author: sjg X-SVN-Commit-Paths: stable/12/stand/liblua X-SVN-Commit-Revision: 359769 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 05:13:16 -0000 Author: sjg Date: Fri Apr 10 05:13:15 2020 New Revision: 359769 URL: https://svnweb.freebsd.org/changeset/base/359769 Log: veloader use vectx API for kernel and modules The vectx API, computes the hash for verifying a file as it is read. This avoids the overhead of reading files twice - once to verify, then again to load. For doing an install via loader, avoiding the need to rewind large files is critical. This API is only used for modules, kernel and mdimage as these are the biggest files read by the loader. The reduction in boot time depends on how expensive the I/O is on any given platform. On a fast VM we see 6% improvement. For install via loader the first file to be verified is likely to be the kernel, so some of the prep work (finding manifest etc) done by verify_file() needs to be factored so it can be reused for vectx_open(). For missing or unrecognized fingerprint entries, we fail in vectx_open() unless verifying is disabled. Otherwise fingerprint check happens in vectx_close() and since this API is only used for files which must be verified (VE_MUST) we panic if we get an incorrect hash. MFC of r358811 Reviewed by: imp,tsoome Sponsored by: Juniper Networks Differential Revision: https://reviews.freebsd.org//D23827 Modified: stable/12/stand/liblua/lstd.c Modified: stable/12/stand/liblua/lstd.c ============================================================================== --- stable/12/stand/liblua/lstd.c Fri Apr 10 01:37:00 2020 (r359768) +++ stable/12/stand/liblua/lstd.c Fri Apr 10 05:13:15 2020 (r359769) @@ -83,7 +83,7 @@ fopen(const char *filename, const char *mode) #ifdef LOADER_VERIEXEC /* only regular files and only reading makes sense */ if (S_ISREG(st.st_mode) && !(m & O_WRONLY)) { - if (verify_file(fd, filename, 0, VE_GUESS) < 0) { + if (verify_file(fd, filename, 0, VE_GUESS, __func__) < 0) { free(f); close(fd); return (NULL); From owner-svn-src-all@freebsd.org Fri Apr 10 07:44:02 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BA13A2B5BA6; Fri, 10 Apr 2020 07:44:02 +0000 (UTC) (envelope-from tagattie@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48z94f4Rrnz3Cl5; Fri, 10 Apr 2020 07:44:02 +0000 (UTC) (envelope-from tagattie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 93DDD22B8C; Fri, 10 Apr 2020 07:44:02 +0000 (UTC) (envelope-from tagattie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03A7i2Sr083064; Fri, 10 Apr 2020 07:44:02 GMT (envelope-from tagattie@FreeBSD.org) Received: (from tagattie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03A7i2He083063; Fri, 10 Apr 2020 07:44:02 GMT (envelope-from tagattie@FreeBSD.org) Message-Id: <202004100744.03A7i2He083063@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tagattie set sender to tagattie@FreeBSD.org using -f From: Hiroki Tagato Date: Fri, 10 Apr 2020 07:44:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359770 - head/share/misc X-SVN-Group: head X-SVN-Commit-Author: tagattie X-SVN-Commit-Paths: head/share/misc X-SVN-Commit-Revision: 359770 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 07:44:02 -0000 Author: tagattie (ports committer) Date: Fri Apr 10 07:44:02 2020 New Revision: 359770 URL: https://svnweb.freebsd.org/changeset/base/359770 Log: Add myself (tagattie) as ports committer Approved by: ehaupt (mentor) Modified: head/share/misc/committers-ports.dot Modified: head/share/misc/committers-ports.dot ============================================================================== --- head/share/misc/committers-ports.dot Fri Apr 10 05:13:15 2020 (r359769) +++ head/share/misc/committers-ports.dot Fri Apr 10 07:44:02 2020 (r359770) @@ -260,6 +260,7 @@ sunpoet [label="Po-Chuan Hsieh\nsunpoet@FreeBSD.org\n2 swills [label="Steve Wills\nswills@FreeBSD.org\n2010/09/03"] sylvio [label="Sylvio Cesar Teixeira\nsylvio@FreeBSD.org\n2009/10/29"] tabthorpe [label="Thomas Abthorpe\ntabthorpe@FreeBSD.org\n2007/08/20"] +tagattie [label="Hiroki Tagato\ntagattie@FreeBSD.org\n2020/04/01"] tcberner [label="Tobias C. Berner\ntcberner@FreeBSD.org\n2016/07/06"] tdb [label="Tim Bishop\ntdb@FreeBSD.org\n2005/11/30"] thierry [label="Thierry Thomas\nthierry@FreeBSD.org\n2004/03/15"] @@ -411,6 +412,7 @@ edwin -> lx ehaupt -> db ehaupt -> martymac +ehaupt -> tagattie eik -> sem eik -> trhodes @@ -655,6 +657,8 @@ philip -> koitsu pi -> meta pi -> tz + +pizzamig -> tagattie rafan -> chinsan From owner-svn-src-all@freebsd.org Fri Apr 10 09:12:41 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id AD8B92B7B57; Fri, 10 Apr 2020 09:12:41 +0000 (UTC) (envelope-from carlavilla@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48zC2x44FJz3Hls; Fri, 10 Apr 2020 09:12:41 +0000 (UTC) (envelope-from carlavilla@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 872BF23C99; Fri, 10 Apr 2020 09:12:41 +0000 (UTC) (envelope-from carlavilla@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03A9CfmY038204; Fri, 10 Apr 2020 09:12:41 GMT (envelope-from carlavilla@FreeBSD.org) Received: (from carlavilla@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03A9CfAj038203; Fri, 10 Apr 2020 09:12:41 GMT (envelope-from carlavilla@FreeBSD.org) Message-Id: <202004100912.03A9CfAj038203@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: carlavilla set sender to carlavilla@FreeBSD.org using -f From: Sergio Carlavilla Delgado Date: Fri, 10 Apr 2020 09:12:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359771 - head/lib/libc/gen X-SVN-Group: head X-SVN-Commit-Author: carlavilla X-SVN-Commit-Paths: head/lib/libc/gen X-SVN-Commit-Revision: 359771 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 09:12:41 -0000 Author: carlavilla (doc committer) Date: Fri Apr 10 09:12:41 2020 New Revision: 359771 URL: https://svnweb.freebsd.org/changeset/base/359771 Log: arc4random(3): Expand the SEE ALSO section Submitted by: Gordon Bergling Approved by: brueffer@ Obtained from: NetBSD Differential Revision: https://reviews.freebsd.org/D23716 Modified: head/lib/libc/gen/arc4random.3 Modified: head/lib/libc/gen/arc4random.3 ============================================================================== --- head/lib/libc/gen/arc4random.3 Fri Apr 10 07:44:02 2020 (r359770) +++ head/lib/libc/gen/arc4random.3 Fri Apr 10 09:12:41 2020 (r359771) @@ -31,7 +31,7 @@ .\" Manual page, using -mandoc macros .\" $FreeBSD$ .\" -.Dd March 21, 2019 +.Dd April 10, 2020 .Dt ARC4RANDOM 3 .Os .Sh NAME @@ -121,6 +121,13 @@ functions using .Xr rand 3 , .Xr rand48 3 , .Xr random 3 +.Rs +.%A Daniel J. Bernstein +.%T ChaCha, a variant of Salsa20 +.%D 2008-01-28 +.%O Document ID: 4027b5256e17b9796842e6d0f68b0b5e +.%U http://cr.yp.to/papers.html#chacha +.Re .Sh HISTORY These functions first appeared in .Ox 2.1 . From owner-svn-src-all@freebsd.org Fri Apr 10 09:27:19 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 155CC2B8041; Fri, 10 Apr 2020 09:27:19 +0000 (UTC) (envelope-from carlavilla@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48zCMp6vD4z3JRY; Fri, 10 Apr 2020 09:27:18 +0000 (UTC) (envelope-from carlavilla@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E81EB23E96; Fri, 10 Apr 2020 09:27:18 +0000 (UTC) (envelope-from carlavilla@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03A9RIhd044375; Fri, 10 Apr 2020 09:27:18 GMT (envelope-from carlavilla@FreeBSD.org) Received: (from carlavilla@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03A9RIum044374; Fri, 10 Apr 2020 09:27:18 GMT (envelope-from carlavilla@FreeBSD.org) Message-Id: <202004100927.03A9RIum044374@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: carlavilla set sender to carlavilla@FreeBSD.org using -f From: Sergio Carlavilla Delgado Date: Fri, 10 Apr 2020 09:27:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359772 - head/lib/libc/stdlib X-SVN-Group: head X-SVN-Commit-Author: carlavilla X-SVN-Commit-Paths: head/lib/libc/stdlib X-SVN-Commit-Revision: 359772 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 09:27:19 -0000 Author: carlavilla (doc committer) Date: Fri Apr 10 09:27:18 2020 New Revision: 359772 URL: https://svnweb.freebsd.org/changeset/base/359772 Log: exit(3): Add HISTORY section PR: 240259 Submitted by: Gordon Bergling Obtained from: OpenBSD Differential Revision: https://reviews.freebsd.org/D24146 Modified: head/lib/libc/stdlib/exit.3 Modified: head/lib/libc/stdlib/exit.3 ============================================================================== --- head/lib/libc/stdlib/exit.3 Fri Apr 10 09:12:41 2020 (r359771) +++ head/lib/libc/stdlib/exit.3 Fri Apr 10 09:27:18 2020 (r359772) @@ -32,7 +32,7 @@ .\" @(#)exit.3 8.1 (Berkeley) 6/4/93 .\" $FreeBSD$ .\" -.Dd May 28, 2018 +.Dd March 22, 2020 .Dt EXIT 3 .Os .Sh NAME @@ -131,3 +131,8 @@ and .Fn _Exit functions conform to .St -isoC-99 . +.Sh HISTORY +The +.Fn exit +function appeared in +.At v1 . From owner-svn-src-all@freebsd.org Fri Apr 10 09:37:21 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2B2602B8556; Fri, 10 Apr 2020 09:37:21 +0000 (UTC) (envelope-from carlavilla@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48zCbP0MLpz3KFH; Fri, 10 Apr 2020 09:37:21 +0000 (UTC) (envelope-from carlavilla@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 07ACC240CE; Fri, 10 Apr 2020 09:37:21 +0000 (UTC) (envelope-from carlavilla@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03A9bKWB050601; Fri, 10 Apr 2020 09:37:20 GMT (envelope-from carlavilla@FreeBSD.org) Received: (from carlavilla@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03A9bKmL050600; Fri, 10 Apr 2020 09:37:20 GMT (envelope-from carlavilla@FreeBSD.org) Message-Id: <202004100937.03A9bKmL050600@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: carlavilla set sender to carlavilla@FreeBSD.org using -f From: Sergio Carlavilla Delgado Date: Fri, 10 Apr 2020 09:37:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359773 - head/lib/libc/stdio X-SVN-Group: head X-SVN-Commit-Author: carlavilla X-SVN-Commit-Paths: head/lib/libc/stdio X-SVN-Commit-Revision: 359773 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 09:37:21 -0000 Author: carlavilla (doc committer) Date: Fri Apr 10 09:37:20 2020 New Revision: 359773 URL: https://svnweb.freebsd.org/changeset/base/359773 Log: Add HISTORY section to getc(3) PR: 240269 Submitted by: Gordon Bergling Differential Revision: https://reviews.freebsd.org/D24295 Modified: head/lib/libc/stdio/getc.3 Modified: head/lib/libc/stdio/getc.3 ============================================================================== --- head/lib/libc/stdio/getc.3 Fri Apr 10 09:27:18 2020 (r359772) +++ head/lib/libc/stdio/getc.3 Fri Apr 10 09:37:20 2020 (r359773) @@ -32,7 +32,7 @@ .\" @(#)getc.3 8.1 (Berkeley) 6/4/93 .\" $FreeBSD$ .\" -.Dd January 10, 2003 +.Dd April 4, 2020 .Dt GETC 3 .Os .Sh NAME @@ -153,6 +153,22 @@ and .Fn getchar_unlocked functions conform to .St -p1003.1-2001 . +.Sh HISTORY +The +.Fn getc +and +.Fn getw +functions appeared in a similar form in +.At v1 ; +and were integrated into stdio in +.At v7 ; +.Fn getchar +in +.At v4 ; +and +.Fn fgetc +in +.At v7 . .Sh BUGS Since .Dv EOF From owner-svn-src-all@freebsd.org Fri Apr 10 14:01:08 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 927972BEA40; Fri, 10 Apr 2020 14:01:08 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48zKRm3J7Gz44xS; Fri, 10 Apr 2020 14:01:08 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6C0BD27321; Fri, 10 Apr 2020 14:01:08 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03AE18lK013627; Fri, 10 Apr 2020 14:01:08 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03AE18Ww013626; Fri, 10 Apr 2020 14:01:08 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004101401.03AE18Ww013626@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 10 Apr 2020 14:01:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359774 - in head: gnu/usr.bin/gdb share/mk X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in head: gnu/usr.bin/gdb share/mk X-SVN-Commit-Revision: 359774 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 14:01:08 -0000 Author: kevans Date: Fri Apr 10 14:01:07 2020 New Revision: 359774 URL: https://svnweb.freebsd.org/changeset/base/359774 Log: userland build: replace -fno-common with ${CFCOMMONFLAG} This change allows any downstream or otherwise consumer to easily override the new -fno-common default on a temporary basis without having to hack into src.sys.mk, and also makes it a bit easier to search for these specific cases where -fno-common must be overridden with -fcommon or else the build will fail. The gdb build, the only program requiring -fcommon on head/, is switched over as an example usage. It will need it on all branches, so this does not harm future mergability. MFC after: 3 days Modified: head/gnu/usr.bin/gdb/Makefile.inc head/share/mk/src.sys.mk Modified: head/gnu/usr.bin/gdb/Makefile.inc ============================================================================== --- head/gnu/usr.bin/gdb/Makefile.inc Fri Apr 10 09:37:20 2020 (r359773) +++ head/gnu/usr.bin/gdb/Makefile.inc Fri Apr 10 14:01:07 2020 (r359774) @@ -50,7 +50,7 @@ CFLAGS+= -I${SYSROOT:U${DESTDIR}}/${INCLUDEDIR}/edit # Some bits here currently rely on some of the linker-merging magic that happens # with -fcommon. While this is the default right now, explicitly set -fcommon # so that it continues to build when the default flips. -CFLAGS+= -fcommon +CFCOMMONFLAG= -fcommon GENSRCS+= nm.h tm.h Modified: head/share/mk/src.sys.mk ============================================================================== --- head/share/mk/src.sys.mk Fri Apr 10 09:37:20 2020 (r359773) +++ head/share/mk/src.sys.mk Fri Apr 10 14:01:07 2020 (r359774) @@ -37,7 +37,8 @@ __postrcconf_${var}:= ${MK_${var}:U-}${WITHOUT_${var}: # The following should be removed no earlier than LLVM11 being imported into the # tree, to ensure we don't regress the build. LLVM11 and GCC10 will switch the # default over to -fno-common, making this redundant. -CFLAGS+= -fno-common +CFCOMMONFLAG?= -fno-common +CFLAGS+= ${CFCOMMONFLAG} # tempting, but bsd.compiler.mk causes problems this early # probably need to remove dependence on bsd.own.mk From owner-svn-src-all@freebsd.org Fri Apr 10 16:27:28 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1714C2C1F0B; Fri, 10 Apr 2020 16:27:28 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48zNhb6xW6z4FfK; Fri, 10 Apr 2020 16:27:27 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E90E31110; Fri, 10 Apr 2020 16:27:27 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03AGRRj7004455; Fri, 10 Apr 2020 16:27:27 GMT (envelope-from melifaro@FreeBSD.org) Received: (from melifaro@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03AGRRvv004454; Fri, 10 Apr 2020 16:27:27 GMT (envelope-from melifaro@FreeBSD.org) Message-Id: <202004101627.03AGRRvv004454@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: melifaro set sender to melifaro@FreeBSD.org using -f From: "Alexander V. Chernikov" Date: Fri, 10 Apr 2020 16:27:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359775 - head/sys/net X-SVN-Group: head X-SVN-Commit-Author: melifaro X-SVN-Commit-Paths: head/sys/net X-SVN-Commit-Revision: 359775 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 16:27:28 -0000 Author: melifaro Date: Fri Apr 10 16:27:27 2020 New Revision: 359775 URL: https://svnweb.freebsd.org/changeset/base/359775 Log: Split rtrequest1_fib() into smaller manageable chunks. No functional changes. * Move route addition / route deletion code from rtrequest1_fib() to add_route() and del_route() respectively. * Rename rtrequest1_fib_change() to change_route() for consistency. * Shrink the scope of ugly info #defines. MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D24349 Modified: head/sys/net/route.c Modified: head/sys/net/route.c ============================================================================== --- head/sys/net/route.c Fri Apr 10 14:01:07 2020 (r359774) +++ head/sys/net/route.c Fri Apr 10 16:27:27 2020 (r359775) @@ -143,8 +143,6 @@ VNET_DEFINE_STATIC(uma_zone_t, rtzone); /* Routing ta EVENTHANDLER_LIST_DEFINE(rt_addrmsg); static int rt_getifa_fib(struct rt_addrinfo *, u_int); -static int rtrequest1_fib_change(struct rib_head *, struct rt_addrinfo *, - struct rtentry **, u_int); static void rt_setmetrics(const struct rt_addrinfo *, struct rtentry *); static int rt_ifdelroute(const struct rtentry *rt, void *arg); static struct rtentry *rt_unlinkrte(struct rib_head *rnh, @@ -157,6 +155,13 @@ static struct radix_node *rt_mpath_unlink(struct rib_h static int rt_exportinfo(struct rtentry *rt, struct rt_addrinfo *info, int flags); +static int add_route(struct rib_head *rnh, struct rt_addrinfo *info, + struct rtentry **ret_nrt); +static int del_route(struct rib_head *rnh, struct rt_addrinfo *info, + struct rtentry **ret_nrt); +static int change_route(struct rib_head *, struct rt_addrinfo *, + struct rtentry **); + struct if_mtuinfo { struct ifnet *ifp; @@ -1528,20 +1533,26 @@ rt_mpath_unlink(struct rib_head *rnh, struct rt_addrin } #endif +#undef dst +#undef gateway +#undef netmask +#undef ifaaddr +#undef ifpaddr +#undef flags + int rtrequest1_fib(int req, struct rt_addrinfo *info, struct rtentry **ret_nrt, u_int fibnum) { - int error = 0; - struct rtentry *rt, *rt_old; - struct radix_node *rn; + const struct sockaddr *dst; struct rib_head *rnh; - struct ifaddr *ifa; - struct sockaddr *ndst; - struct sockaddr_storage mdst; + int error; KASSERT((fibnum < rt_numfibs), ("rtrequest1_fib: bad fibnum")); - KASSERT((flags & RTF_RNH_LOCKED) == 0, ("rtrequest1_fib: locked")); + KASSERT((info->rti_flags & RTF_RNH_LOCKED) == 0, ("rtrequest1_fib: locked")); + + dst = info->rti_info[RTAX_DST]; + switch (dst->sa_family) { case AF_INET6: case AF_INET: @@ -1563,36 +1574,13 @@ rtrequest1_fib(int req, struct rt_addrinfo *info, stru * If we are adding a host route then we don't want to put * a netmask in the tree, nor do we want to clone it. */ - if (flags & RTF_HOST) - netmask = NULL; + if (info->rti_flags & RTF_HOST) + info->rti_info[RTAX_NETMASK] = NULL; + error = 0; switch (req) { case RTM_DELETE: - if (netmask) { - if (dst->sa_len > sizeof(mdst)) - return (EINVAL); - rt_maskedcopy(dst, (struct sockaddr *)&mdst, netmask); - dst = (struct sockaddr *)&mdst; - } - - RIB_WLOCK(rnh); - rt = rt_unlinkrte(rnh, info, &error); - RIB_WUNLOCK(rnh); - if (error != 0) - return (error); - - rt_notifydelete(rt, info); - - /* - * If the caller wants it, then it can have it, - * but it's up to it to free the rtentry as we won't be - * doing it. - */ - if (ret_nrt) { - *ret_nrt = rt; - RT_UNLOCK(rt); - } else - RTFREE_LOCKED(rt); + error = del_route(rnh, info, ret_nrt); break; case RTM_RESOLVE: /* @@ -1601,160 +1589,214 @@ rtrequest1_fib(int req, struct rt_addrinfo *info, stru */ break; case RTM_ADD: - if ((flags & RTF_GATEWAY) && !gateway) - return (EINVAL); - if (dst && gateway && (dst->sa_family != gateway->sa_family) && - (gateway->sa_family != AF_UNSPEC) && (gateway->sa_family != AF_LINK)) - return (EINVAL); + error = add_route(rnh, info, ret_nrt); + break; + case RTM_CHANGE: + RIB_WLOCK(rnh); + error = change_route(rnh, info, ret_nrt); + RIB_WUNLOCK(rnh); + break; + default: + error = EOPNOTSUPP; + } - if (info->rti_ifa == NULL) { - error = rt_getifa_fib(info, fibnum); - if (error) - return (error); - } else { - ifa_ref(info->rti_ifa); - } - rt = uma_zalloc(V_rtzone, M_NOWAIT); - if (rt == NULL) { - ifa_free(info->rti_ifa); - return (ENOBUFS); - } - rt->rt_flags = RTF_UP | flags; - rt->rt_fibnum = fibnum; - /* - * Add the gateway. Possibly re-malloc-ing the storage for it. - */ - if ((error = rt_setgate(rt, dst, gateway)) != 0) { - ifa_free(info->rti_ifa); - uma_zfree(V_rtzone, rt); + return (error); +} + +static int +add_route(struct rib_head *rnh, struct rt_addrinfo *info, + struct rtentry **ret_nrt) +{ + struct sockaddr *dst, *ndst, *gateway, *netmask; + struct rtentry *rt, *rt_old; + struct radix_node *rn; + struct ifaddr *ifa; + int error, flags; + + dst = info->rti_info[RTAX_DST]; + gateway = info->rti_info[RTAX_GATEWAY]; + netmask = info->rti_info[RTAX_NETMASK]; + flags = info->rti_flags; + + if ((flags & RTF_GATEWAY) && !gateway) + return (EINVAL); + if (dst && gateway && (dst->sa_family != gateway->sa_family) && + (gateway->sa_family != AF_UNSPEC) && (gateway->sa_family != AF_LINK)) + return (EINVAL); + + if (info->rti_ifa == NULL) { + error = rt_getifa_fib(info, rnh->rib_fibnum); + if (error) return (error); - } + } else { + ifa_ref(info->rti_ifa); + } + rt = uma_zalloc(V_rtzone, M_NOWAIT); + if (rt == NULL) { + ifa_free(info->rti_ifa); + return (ENOBUFS); + } + rt->rt_flags = RTF_UP | flags; + rt->rt_fibnum = rnh->rib_fibnum; + /* + * Add the gateway. Possibly re-malloc-ing the storage for it. + */ + if ((error = rt_setgate(rt, dst, gateway)) != 0) { + ifa_free(info->rti_ifa); + uma_zfree(V_rtzone, rt); + return (error); + } - /* - * point to the (possibly newly malloc'd) dest address. - */ - ndst = (struct sockaddr *)rt_key(rt); + /* + * point to the (possibly newly malloc'd) dest address. + */ + ndst = (struct sockaddr *)rt_key(rt); - /* - * make sure it contains the value we want (masked if needed). - */ - if (netmask) { - rt_maskedcopy(dst, ndst, netmask); - } else - bcopy(dst, ndst, dst->sa_len); + /* + * make sure it contains the value we want (masked if needed). + */ + if (netmask) { + rt_maskedcopy(dst, ndst, netmask); + } else + bcopy(dst, ndst, dst->sa_len); - /* - * We use the ifa reference returned by rt_getifa_fib(). - * This moved from below so that rnh->rnh_addaddr() can - * examine the ifa and ifa->ifa_ifp if it so desires. - */ - ifa = info->rti_ifa; - rt->rt_ifa = ifa; - rt->rt_ifp = ifa->ifa_ifp; - rt->rt_weight = 1; + /* + * We use the ifa reference returned by rt_getifa_fib(). + * This moved from below so that rnh->rnh_addaddr() can + * examine the ifa and ifa->ifa_ifp if it so desires. + */ + ifa = info->rti_ifa; + rt->rt_ifa = ifa; + rt->rt_ifp = ifa->ifa_ifp; + rt->rt_weight = 1; - rt_setmetrics(info, rt); + rt_setmetrics(info, rt); - RIB_WLOCK(rnh); - RT_LOCK(rt); + RIB_WLOCK(rnh); + RT_LOCK(rt); #ifdef RADIX_MPATH - /* do not permit exactly the same dst/mask/gw pair */ - if (rt_mpath_capable(rnh) && - rt_mpath_conflict(rnh, rt, netmask)) { - RIB_WUNLOCK(rnh); + /* do not permit exactly the same dst/mask/gw pair */ + if (rt_mpath_capable(rnh) && + rt_mpath_conflict(rnh, rt, netmask)) { + RIB_WUNLOCK(rnh); - ifa_free(rt->rt_ifa); - R_Free(rt_key(rt)); - uma_zfree(V_rtzone, rt); - return (EEXIST); - } + ifa_free(rt->rt_ifa); + R_Free(rt_key(rt)); + uma_zfree(V_rtzone, rt); + return (EEXIST); + } #endif - /* XXX mtu manipulation will be done in rnh_addaddr -- itojun */ - rn = rnh->rnh_addaddr(ndst, netmask, &rnh->head, rt->rt_nodes); + /* XXX mtu manipulation will be done in rnh_addaddr -- itojun */ + rn = rnh->rnh_addaddr(ndst, netmask, &rnh->head, rt->rt_nodes); - if (rn != NULL && rt->rt_expire > 0) - tmproutes_update(rnh, rt); + if (rn != NULL && rt->rt_expire > 0) + tmproutes_update(rnh, rt); - rt_old = NULL; - if (rn == NULL && (info->rti_flags & RTF_PINNED) != 0) { + rt_old = NULL; + if (rn == NULL && (info->rti_flags & RTF_PINNED) != 0) { - /* - * Force removal and re-try addition - * TODO: better multipath&pinned support - */ - struct sockaddr *info_dst = info->rti_info[RTAX_DST]; - info->rti_info[RTAX_DST] = ndst; - /* Do not delete existing PINNED(interface) routes */ - info->rti_flags &= ~RTF_PINNED; - rt_old = rt_unlinkrte(rnh, info, &error); - info->rti_flags |= RTF_PINNED; - info->rti_info[RTAX_DST] = info_dst; - if (rt_old != NULL) - rn = rnh->rnh_addaddr(ndst, netmask, &rnh->head, - rt->rt_nodes); - } - RIB_WUNLOCK(rnh); - - if (rt_old != NULL) - RT_UNLOCK(rt_old); - /* - * If it still failed to go into the tree, - * then un-make it (this should be a function) + * Force removal and re-try addition + * TODO: better multipath&pinned support */ - if (rn == NULL) { - ifa_free(rt->rt_ifa); - R_Free(rt_key(rt)); - uma_zfree(V_rtzone, rt); - return (EEXIST); - } + struct sockaddr *info_dst = info->rti_info[RTAX_DST]; + info->rti_info[RTAX_DST] = ndst; + /* Do not delete existing PINNED(interface) routes */ + info->rti_flags &= ~RTF_PINNED; + rt_old = rt_unlinkrte(rnh, info, &error); + info->rti_flags |= RTF_PINNED; + info->rti_info[RTAX_DST] = info_dst; + if (rt_old != NULL) + rn = rnh->rnh_addaddr(ndst, netmask, &rnh->head, + rt->rt_nodes); + } + RIB_WUNLOCK(rnh); - if (rt_old != NULL) { - rt_notifydelete(rt_old, info); - RTFREE(rt_old); - } + if (rt_old != NULL) + RT_UNLOCK(rt_old); - /* - * If this protocol has something to add to this then - * allow it to do that as well. - */ - if (ifa->ifa_rtrequest) - ifa->ifa_rtrequest(req, rt, info); + /* + * If it still failed to go into the tree, + * then un-make it (this should be a function) + */ + if (rn == NULL) { + ifa_free(rt->rt_ifa); + R_Free(rt_key(rt)); + uma_zfree(V_rtzone, rt); + return (EEXIST); + } - /* - * actually return a resultant rtentry and - * give the caller a single reference. - */ - if (ret_nrt) { - *ret_nrt = rt; - RT_ADDREF(rt); - } - rnh->rnh_gen++; /* Routing table updated */ - RT_UNLOCK(rt); - break; - case RTM_CHANGE: - RIB_WLOCK(rnh); - error = rtrequest1_fib_change(rnh, info, ret_nrt, fibnum); - RIB_WUNLOCK(rnh); - break; - default: - error = EOPNOTSUPP; + if (rt_old != NULL) { + rt_notifydelete(rt_old, info); + RTFREE(rt_old); } - return (error); + /* + * If this protocol has something to add to this then + * allow it to do that as well. + */ + if (ifa->ifa_rtrequest) + ifa->ifa_rtrequest(RTM_ADD, rt, info); + + /* + * actually return a resultant rtentry and + * give the caller a single reference. + */ + if (ret_nrt) { + *ret_nrt = rt; + RT_ADDREF(rt); + } + rnh->rnh_gen++; /* Routing table updated */ + RT_UNLOCK(rt); + + return (0); } -#undef dst -#undef gateway -#undef netmask -#undef ifaaddr -#undef ifpaddr -#undef flags +static int +del_route(struct rib_head *rnh, struct rt_addrinfo *info, + struct rtentry **ret_nrt) +{ + struct sockaddr *dst, *netmask; + struct sockaddr_storage mdst; + struct rtentry *rt; + int error; + dst = info->rti_info[RTAX_DST]; + netmask = info->rti_info[RTAX_NETMASK]; + + if (netmask) { + if (dst->sa_len > sizeof(mdst)) + return (EINVAL); + rt_maskedcopy(dst, (struct sockaddr *)&mdst, netmask); + dst = (struct sockaddr *)&mdst; + } + + RIB_WLOCK(rnh); + rt = rt_unlinkrte(rnh, info, &error); + RIB_WUNLOCK(rnh); + if (error != 0) + return (error); + + rt_notifydelete(rt, info); + + /* + * If the caller wants it, then it can have it, + * but it's up to it to free the rtentry as we won't be + * doing it. + */ + if (ret_nrt) { + *ret_nrt = rt; + RT_UNLOCK(rt); + } else + RTFREE_LOCKED(rt); + + return (0); +} + static int -rtrequest1_fib_change(struct rib_head *rnh, struct rt_addrinfo *info, - struct rtentry **ret_nrt, u_int fibnum) +change_route(struct rib_head *rnh, struct rt_addrinfo *info, + struct rtentry **ret_nrt) { struct rtentry *rt = NULL; int error = 0; @@ -1801,7 +1843,7 @@ rtrequest1_fib_change(struct rib_head *rnh, struct rt_ * to avoid rlock in the ifa_ifwithroute(). */ info->rti_flags |= RTF_RNH_LOCKED; - error = rt_getifa_fib(info, fibnum); + error = rt_getifa_fib(info, rnh->rib_fibnum); info->rti_flags &= ~RTF_RNH_LOCKED; if (info->rti_ifa != NULL) free_ifa = 1; From owner-svn-src-all@freebsd.org Fri Apr 10 17:26:47 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 84EF92C3605; Fri, 10 Apr 2020 17:26:47 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2610:1c1:1:6074::16:84]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "freefall.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48zQ132kFrz4KBS; Fri, 10 Apr 2020 17:26:47 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (unknown [127.0.1.132]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by freefall.freebsd.org (Postfix) with ESMTPS id 14A77257A; Fri, 10 Apr 2020 17:26:47 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [172.31.3.2]) by mail.xzibition.com (Postfix) with ESMTP id 365691D6D6; Fri, 10 Apr 2020 17:26:46 +0000 (UTC) X-Virus-Scanned: amavisd-new at mail.xzibition.com Received: from mail.xzibition.com ([172.31.3.2]) by mail.xzibition.com (mail.xzibition.com [172.31.3.2]) (amavisd-new, port 10026) with LMTP id nbYhO6NIwejq; Fri, 10 Apr 2020 17:26:43 +0000 (UTC) Subject: Re: svn commit: r359685 - in head: . etc lib/libc/gen share/mk share/termcap usr.bin/login usr.bin/vgrind usr.sbin/services_mkdb DKIM-Filter: OpenDKIM Filter v2.10.3 mail.xzibition.com BE6AC1D6CD To: rgrimes@freebsd.org, Maxim Sobolev Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <202004071037.037Abd5T091937@gndrsh.dnsmgr.net> From: Bryan Drewery Autocrypt: addr=bdrewery@FreeBSD.org; prefer-encrypt=mutual; keydata= mQENBFJphmsBCADiFgmS4bIzwZijrS31SjEMzg+n5zNellgM+HkShwehpqCiyhXdWrvH6dTZ a6u50pbUIX7doTR7W7PQHCjCTqtpwvcj0eulZva+iHFp+XrbgSFHn+VVXgkYP2MFySyZRFab D2qqzJBEJofhpv4HvY6uQI5K99pMqKr1Z/lHqsijYYu4RH2OfwB5PinId7xeldzWEonVoCr+ rfxzO/UrgA6v/3layGZcKNHFjmc3NqoN1DXtdaEHqtjIozzbndVkH6lkFvIpIrI6i5ox8pwp VxsxLCr/4Musd5CWgHiet5kSw2SzNeA8FbxdLYCpXNVu+uBACEbCUP+CSNy3NVfEUxsBABEB AAG0JEJyeWFuIERyZXdlcnkgPGJkcmV3ZXJ5QEZyZWVCU0Qub3JnPokBVwQTAQoAQQIbAwUL CQgHAwUVCgkICwUWAwIBAAIeAQIXgAIZARYhBPkXPLLDqup6XIofCTXXcbtuRpfPBQJb5hLu BQkNPvODAAoJEDXXcbtuRpfP9rMH/3f7cfX5rzyEV5QNfV/wS4jFukLoPZ4+nCM/TKxH3pEX 2bLbeQbkk6La8cueQ5Lpoht5XFZ18Y5TbMittngltrlNzoDD0h9are24OkDFGim3afJU7tkj IGQa1if+re+vI5BhzYwRhj0oKXzBi39M5oePd3L1dXfx83rg2FPyZBdIejsz6fR74T3JVkbd 6k2l5/3Zk2uiNMy+eBfDRgYE1E6CP28kV0nCeGKZgSVso0kGUUHud7voKqGVpMvbd0mE4pp4 PE5YJaFPjrll9miaDAvdU8LGIq5n6+aXPLKoQ/QNl6mg6ifgI6FfKILOkTizLW8E5PBSNnCm NapQ55yjm125AQ0EUmmGawEIAKJUU9+Q19oW1RK5jTf3m56j+szIc8Y9DaLC8REUKl4UZJBK BqCl6c0cukVApOD92XoU6hJPm2rLEyp/IcYcPPNTnVu8D8h9oag2L8EiFN7+2hk0xG+lwjc8 uOIZycme7AIJsBU4AZ1v63lxm2k104hwpiatgbe71GIGl7p1MX6ousP/wGzXCOF25Dx9w02C eRe7zEMfhnFjSUhzdCC9han2+KaVB7qIqNR3b8NfbwRNlwPmHqlhXffUow9OsQjSnTK8WKNR lx7xzVccXIvWP2wECFrmqmzMmXpSrmIuiWEpFwZ9x2a0Pva8dCNRiCVTK51IlRXKjaAxiN1u IUrMm6UAEQEAAYkBPAQYAQoAJgIbDBYhBPkXPLLDqup6XIofCTXXcbtuRpfPBQJb5hL4BQkN PvONAAoJEDXXcbtuRpfPCjcH/ivBsOpdpebpgLizSNU5/X4yWN5Aixsc9VBnQhGKAKnMINJQ VMpA55sD2JSPwloXYM/B3qyPJRS/9cwIuX5LDNKKOZU3Qp+TzleynM15/xea14orWYRGRict YHBM3Cnqp7OD8K6Q1uhs0fTxyJP7PZ/G0+7Corlf1DlHhDt6C2HldRPFvAvAgl6sR9Wzgcb7 rzub2HVtbJgl6YHbgyAG7x9NpXFqzx1JLAMdpt2DIYwoi+oMdRQlBIwNuKjQjCGzuXHandd3 kGvBAsyJpQ+coEep9UzwANaV28cXrFr2R4FSOcR50rBA2Nh/vqUYfpsvBvJlwuKAoV1djVHa ihNeL5E= Organization: FreeBSD Message-ID: <3e0a6d83-e99b-1e09-89e5-c202dbef9433@FreeBSD.org> Date: Fri, 10 Apr 2020 10:26:37 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.6.0 MIME-Version: 1.0 In-Reply-To: <202004071037.037Abd5T091937@gndrsh.dnsmgr.net> Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="UbftOwhhbNfgQ3S4B2To81yrQN1ylYFgm" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 17:26:47 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --UbftOwhhbNfgQ3S4B2To81yrQN1ylYFgm Content-Type: multipart/mixed; boundary="nQFmy8lbwr16kiTrqvEArL9KfYRtiu07u"; protected-headers="v1" From: Bryan Drewery To: rgrimes@freebsd.org, Maxim Sobolev Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Message-ID: <3e0a6d83-e99b-1e09-89e5-c202dbef9433@FreeBSD.org> Subject: Re: svn commit: r359685 - in head: . etc lib/libc/gen share/mk share/termcap usr.bin/login usr.bin/vgrind usr.sbin/services_mkdb References: <202004071037.037Abd5T091937@gndrsh.dnsmgr.net> In-Reply-To: <202004071037.037Abd5T091937@gndrsh.dnsmgr.net> --nQFmy8lbwr16kiTrqvEArL9KfYRtiu07u Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable On 4/7/2020 3:37 AM, Rodney W. Grimes wrote: >> Author: sobomax >> Date: Tue Apr 7 02:46:22 2020 >> New Revision: 359685 >> URL: https://svnweb.freebsd.org/changeset/base/359685 >> >> Log: >> Normalize deployment tools usage and definitions by putting into one= place >> instead of sprinkling them out over many disjoint files. This is a f= ollow-up >> to achieve the same goal in an incomplete rev.348521. > I have concerns that this factoring out of 5 values that have not chang= ed > in 25 years is a pessimization, it is one more file that make has to > open on each invocation. >=20 >=20 The truth is that this additional file read is on top of hundreds of new reads per directory in the past few years. It can suck on NFS but otherwise this 1 change is very minor compared to other additions. One big example is foo.o.depend for each foo.o. Or bmake doing realpath(getcwd()) on every invocation. Improving those, or the bmake job queue, or bmake's overuse of /bin/sh, would go a lot further than the hit from this commit. --=20 Regards, Bryan Drewery --nQFmy8lbwr16kiTrqvEArL9KfYRtiu07u-- --UbftOwhhbNfgQ3S4B2To81yrQN1ylYFgm Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQGTBAEBCgB9FiEE+Rc8ssOq6npcih8JNddxu25Gl88FAl6QrE1fFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEY5 MTczQ0IyQzNBQUVBN0E1QzhBMUYwOTM1RDc3MUJCNkU0Njk3Q0YACgkQNddxu25G l8/Upgf/WDWFT8iahP+M+48rdNLykOIyeSIxDSx9pfzVfw4V2pEmOVqsoxALfj/G igHbbLSI2GMn+w7A4enNh6I3aG9mPz2I4Sx/KK381V+WWkTwarhIKRtv6Dq1lwXk cRp+CSJCZnMPiZI3xin/LkHA8NJgVwKsajtlGiCyZFfCVaQVFuFgigPl1va5hJG0 21GrDBToYwEAeaj80uH36oXfHxjV81Dh+e0lZw7kMrVD6M9UCk/ov2H+MfPMB9qu QIIQsUXXKD5LxUu0QVbdUEeC0ZH37jEVd/PdmdDZesV2H/aqQuGwqdvqn03NUN1P jK1xMqk5xj2RasLuz1nmmAOZBI81cw== =BcP1 -----END PGP SIGNATURE----- --UbftOwhhbNfgQ3S4B2To81yrQN1ylYFgm-- From owner-svn-src-all@freebsd.org Fri Apr 10 17:43:29 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3D6C42C3E58; Fri, 10 Apr 2020 17:43:29 +0000 (UTC) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: from gndrsh.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 48zQNJ6Q1nz4Lb6; Fri, 10 Apr 2020 17:43:28 +0000 (UTC) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: from gndrsh.dnsmgr.net (localhost [127.0.0.1]) by gndrsh.dnsmgr.net (8.13.3/8.13.3) with ESMTP id 03AHhR4G016799; Fri, 10 Apr 2020 10:43:27 -0700 (PDT) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: (from freebsd@localhost) by gndrsh.dnsmgr.net (8.13.3/8.13.3/Submit) id 03AHhR0F016798; Fri, 10 Apr 2020 10:43:27 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <202004101743.03AHhR0F016798@gndrsh.dnsmgr.net> Subject: Re: svn commit: r359685 - in head: . etc lib/libc/gen share/mk share/termcap usr.bin/login usr.bin/vgrind usr.sbin/services_mkdb In-Reply-To: <3e0a6d83-e99b-1e09-89e5-c202dbef9433@FreeBSD.org> To: Bryan Drewery Date: Fri, 10 Apr 2020 10:43:27 -0700 (PDT) CC: rgrimes@FreeBSD.org, Maxim Sobolev , src-committers@FreeBSD.org, svn-src-all@FreeBSD.org, svn-src-head@FreeBSD.org Reply-To: rgrimes@FreeBSD.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-Rspamd-Queue-Id: 48zQNJ6Q1nz4Lb6 X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-5.99 / 15.00]; NEURAL_HAM_MEDIUM(-0.99)[-0.994,0]; NEURAL_HAM_LONG(-1.00)[-0.999,0]; REPLY(-4.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 17:43:29 -0000 > On 4/7/2020 3:37 AM, Rodney W. Grimes wrote: > >> Author: sobomax > >> Date: Tue Apr 7 02:46:22 2020 > >> New Revision: 359685 > >> URL: https://svnweb.freebsd.org/changeset/base/359685 > >> > >> Log: > >> Normalize deployment tools usage and definitions by putting into one place > >> instead of sprinkling them out over many disjoint files. This is a follow-up > >> to achieve the same goal in an incomplete rev.348521. > > I have concerns that this factoring out of 5 values that have not changed > > in 25 years is a pessimization, it is one more file that make has to > > open on each invocation. > > > > > > The truth is that this additional file read is on top of hundreds of new > reads per directory in the past few years. It can suck on NFS but > otherwise this 1 change is very minor compared to other additions. One > big example is foo.o.depend for each foo.o. Or bmake doing > realpath(getcwd()) on every invocation. Improving those, or the bmake > job queue, or bmake's overuse of /bin/sh, would go a lot further than > the hit from this commit. True, it was unfair of me to pick on this one change, there are a long slow gradual increase in the disk I/O intensity of buildworld over time. I was more raising that general issue, that we should keep an eye towards that as we make changes to the build system, we should be very careful of anything that pessimizes the build. My concerns are for people, like mdexter, that run Build Option Serveys, which is basically 240 buildwords in a single invocation with run times on the order days to complete, or for CI clusters doing 1000's of builds a week. > -- > Regards, > Bryan Drewery -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-all@freebsd.org Fri Apr 10 18:13:30 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0E9CE2C4EC4; Fri, 10 Apr 2020 18:13:30 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48zR2x6jHwz4Ngg; Fri, 10 Apr 2020 18:13:29 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DBF462690; Fri, 10 Apr 2020 18:13:29 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03AIDTZs071755; Fri, 10 Apr 2020 18:13:29 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03AIDTdZ071754; Fri, 10 Apr 2020 18:13:29 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202004101813.03AIDTdZ071754@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Fri, 10 Apr 2020 18:13:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359776 - head/sys/dev/sound/pci/hda X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/sys/dev/sound/pci/hda X-SVN-Commit-Revision: 359776 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 18:13:30 -0000 Author: emaste Date: Fri Apr 10 18:13:29 2020 New Revision: 359776 URL: https://svnweb.freebsd.org/changeset/base/359776 Log: hdac: update comment on reset duration The comment previously stated the delay must be at least 250us but that was insufficient and so should be doubled, but the delay was actually 1000. The HDA spec actually says the delay must be 521 us (25 frames) so update the comment to match. Modified: head/sys/dev/sound/pci/hda/hdac.c Modified: head/sys/dev/sound/pci/hda/hdac.c ============================================================================== --- head/sys/dev/sound/pci/hda/hdac.c Fri Apr 10 16:27:27 2020 (r359775) +++ head/sys/dev/sound/pci/hda/hdac.c Fri Apr 10 18:13:29 2020 (r359776) @@ -440,9 +440,7 @@ hdac_reset(struct hdac_softc *sc, int wakeup) /* * Wait for codecs to finish their own reset sequence. The delay here - * should be of 250us but for some reasons, it's not enough on my - * computer. Let's use twice as much as necessary to make sure that - * it's reset properly. + * must be at least 521us (HDA 1.0a section 4.3 Codec Discovery). */ DELAY(1000); From owner-svn-src-all@freebsd.org Fri Apr 10 18:38:42 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A61AA2C5AA6; Fri, 10 Apr 2020 18:38:42 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48zRc240L0z4Q8D; Fri, 10 Apr 2020 18:38:42 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8460E2AA0; Fri, 10 Apr 2020 18:38:42 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03AIcgh8084600; Fri, 10 Apr 2020 18:38:42 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03AIcgx5084599; Fri, 10 Apr 2020 18:38:42 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202004101838.03AIcgx5084599@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Fri, 10 Apr 2020 18:38:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359777 - head/sys/dev/sound/pci/hda X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/sys/dev/sound/pci/hda X-SVN-Commit-Revision: 359777 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 18:38:42 -0000 Author: emaste Date: Fri Apr 10 18:38:42 2020 New Revision: 359777 URL: https://svnweb.freebsd.org/changeset/base/359777 Log: hdac: show which command timed out There are several reports of "hdac0: Command timeout on address 2" messages emitted during playback on a variety of contemporary machines. Show the command that timed out in case it might provide a clue in finding the cause. PR: 229190 MFC after: 1 week Sponsored by: The FreeBSD Foundation Modified: head/sys/dev/sound/pci/hda/hdac.c Modified: head/sys/dev/sound/pci/hda/hdac.c ============================================================================== --- head/sys/dev/sound/pci/hda/hdac.c Fri Apr 10 18:13:29 2020 (r359776) +++ head/sys/dev/sound/pci/hda/hdac.c Fri Apr 10 18:38:42 2020 (r359777) @@ -999,7 +999,8 @@ hdac_send_command(struct hdac_softc *sc, nid_t cad, ui } while (sc->codecs[cad].pending != 0 && --timeout); if (sc->codecs[cad].pending != 0) { - device_printf(sc->dev, "Command timeout on address %d\n", cad); + device_printf(sc->dev, "Command 0x%08x timeout on address %d\n", + verb, cad); sc->codecs[cad].pending = 0; } From owner-svn-src-all@freebsd.org Fri Apr 10 20:42:00 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7E741278DBE; Fri, 10 Apr 2020 20:42:00 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48zVLJ2s0qz4Xh7; Fri, 10 Apr 2020 20:42:00 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5D3F44558; Fri, 10 Apr 2020 20:42:00 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03AKg06B060944; Fri, 10 Apr 2020 20:42:00 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03AKg0fK060943; Fri, 10 Apr 2020 20:42:00 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202004102042.03AKg0fK060943@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Fri, 10 Apr 2020 20:42:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359778 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 359778 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 20:42:00 -0000 Author: markj Date: Fri Apr 10 20:41:59 2020 New Revision: 359778 URL: https://svnweb.freebsd.org/changeset/base/359778 Log: Properly handle disconnected sockets in uipc_ready(). When transmitting over a unix socket, data is placed directly into the receiving socket's receive buffer, instead of the transmitting socket's send buffer. This means that when pru_ready is called during sendfile(), the passed socket does not contain M_NOTREADY mbufs in its buffers; uipc_ready() must locate the linked socket. Currently uipc_ready() frees the mbufs if the socket is disconnected, but this is wrong since the mbufs may still be present in the receiving socket's buffer after a disconnect. This can result in a use-after-free and potentially a double free if the receive buffer is flushed after uipc_ready() frees the mbufs. Fix the problem by trying harder to locate the correct socket buffer and calling sbready(): use the global list of SOCK_STREAM unix sockets to search for a sockbuf containing the now-ready mbufs. Only free the mbufs if we fail this search. Reviewed by: jah, kib Reported and tested by: pho MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D24332 Modified: head/sys/kern/uipc_usrreq.c Modified: head/sys/kern/uipc_usrreq.c ============================================================================== --- head/sys/kern/uipc_usrreq.c Fri Apr 10 18:38:42 2020 (r359777) +++ head/sys/kern/uipc_usrreq.c Fri Apr 10 20:41:59 2020 (r359778) @@ -775,6 +775,18 @@ uipc_detach(struct socket *so) vplock = NULL; local_unp_rights = 0; + SOCK_LOCK(so); + if (!SOLISTENING(so)) { + /* + * Once the socket is removed from the global lists, + * uipc_ready() will not be able to locate its socket buffer, so + * clear the buffer now. At this point internalized rights have + * already been disposed of. + */ + sbrelease(&so->so_rcv, so); + } + SOCK_UNLOCK(so); + UNP_LINK_WLOCK(); LIST_REMOVE(unp, unp_link); if (unp->unp_gcflag & UNPGC_DEAD) @@ -1244,19 +1256,54 @@ release: return (error); } +static bool +uipc_ready_scan(struct socket *so, struct mbuf *m, int count, int *errorp) +{ + struct mbuf *mb, *n; + struct sockbuf *sb; + + SOCK_LOCK(so); + if (SOLISTENING(so)) { + SOCK_UNLOCK(so); + return (false); + } + mb = NULL; + sb = &so->so_rcv; + SOCKBUF_LOCK(sb); + if (sb->sb_fnrdy != NULL) { + for (mb = sb->sb_mb, n = mb->m_nextpkt; mb != NULL;) { + if (mb == m) { + *errorp = sbready(sb, m, count); + break; + } + mb = mb->m_next; + if (mb == NULL) { + mb = n; + n = mb->m_nextpkt; + } + } + } + SOCKBUF_UNLOCK(sb); + SOCK_UNLOCK(so); + return (mb != NULL); +} + static int uipc_ready(struct socket *so, struct mbuf *m, int count) { struct unpcb *unp, *unp2; struct socket *so2; - int error; + int error, i; unp = sotounpcb(so); + KASSERT(so->so_type == SOCK_STREAM, + ("%s: unexpected socket type for %p", __func__, so)); + UNP_PCB_LOCK(unp); if ((unp2 = unp->unp_conn) == NULL) { UNP_PCB_UNLOCK(unp); - goto error; + goto search; } if (unp != unp2) { if (UNP_PCB_TRYLOCK(unp2) == 0) { @@ -1264,25 +1311,39 @@ uipc_ready(struct socket *so, struct mbuf *m, int coun UNP_PCB_UNLOCK(unp); UNP_PCB_LOCK(unp2); if (unp_pcb_rele(unp2)) - goto error; + goto search; } else UNP_PCB_UNLOCK(unp); } so2 = unp2->unp_socket; - SOCKBUF_LOCK(&so2->so_rcv); if ((error = sbready(&so2->so_rcv, m, count)) == 0) sorwakeup_locked(so2); else SOCKBUF_UNLOCK(&so2->so_rcv); - UNP_PCB_UNLOCK(unp2); + return (error); +search: + /* + * The receiving socket has been disconnected, but may still be valid. + * In this case, the now-ready mbufs are still present in its socket + * buffer, so perform an exhaustive search before giving up and freeing + * the mbufs. + */ + UNP_LINK_RLOCK(); + LIST_FOREACH(unp, &unp_shead, unp_link) { + if (uipc_ready_scan(unp->unp_socket, m, count, &error)) + break; + } + UNP_LINK_RUNLOCK(); + + if (unp == NULL) { + for (i = 0; i < count; i++) + m = m_free(m); + error = ECONNRESET; + } return (error); - error: - for (int i = 0; i < count; i++) - m = m_free(m); - return (ECONNRESET); } static int From owner-svn-src-all@freebsd.org Fri Apr 10 20:42:12 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 72DFB278DF0; Fri, 10 Apr 2020 20:42:12 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48zVLX2Q0Xz4Xp0; Fri, 10 Apr 2020 20:42:12 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4E0D3469E; Fri, 10 Apr 2020 20:42:12 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03AKgCmH061088; Fri, 10 Apr 2020 20:42:12 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03AKgBBF060995; Fri, 10 Apr 2020 20:42:11 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202004102042.03AKgBBF060995@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Fri, 10 Apr 2020 20:42:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359779 - in head/sys: kern sys X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: in head/sys: kern sys X-SVN-Commit-Revision: 359779 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 20:42:12 -0000 Author: markj Date: Fri Apr 10 20:42:11 2020 New Revision: 359779 URL: https://svnweb.freebsd.org/changeset/base/359779 Log: sbappendcontrol() needs to avoid clearing M_NOTREADY on data mbufs. If LOCAL_CREDS is set on a unix socket and sendfile() is called, sendfile will call uipc_send(PRUS_NOTREADY), prepending a control message to the M_NOTREADY mbufs. uipc_send() then calls sbappendcontrol() instead of sbappend(), and sbappendcontrol() would erroneously clear M_NOTREADY. Pass send flags to sbappendcontrol(), like we do for sbappend(), to preserve M_READY when necessary. Reported by: syzkaller MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D24333 Modified: head/sys/kern/uipc_sockbuf.c head/sys/kern/uipc_usrreq.c head/sys/sys/sockbuf.h Modified: head/sys/kern/uipc_sockbuf.c ============================================================================== --- head/sys/kern/uipc_sockbuf.c Fri Apr 10 20:41:59 2020 (r359778) +++ head/sys/kern/uipc_sockbuf.c Fri Apr 10 20:42:11 2020 (r359779) @@ -1101,11 +1101,11 @@ sbappendaddr(struct sockbuf *sb, const struct sockaddr void sbappendcontrol_locked(struct sockbuf *sb, struct mbuf *m0, - struct mbuf *control) + struct mbuf *control, int flags) { struct mbuf *m, *mlast; - m_clrprotoflags(m0); + sbm_clrprotoflags(m0, flags); m_last(control)->m_next = m0; SBLASTRECORDCHK(sb); @@ -1123,11 +1123,12 @@ sbappendcontrol_locked(struct sockbuf *sb, struct mbuf } void -sbappendcontrol(struct sockbuf *sb, struct mbuf *m0, struct mbuf *control) +sbappendcontrol(struct sockbuf *sb, struct mbuf *m0, struct mbuf *control, + int flags) { SOCKBUF_LOCK(sb); - sbappendcontrol_locked(sb, m0, control); + sbappendcontrol_locked(sb, m0, control, flags); SOCKBUF_UNLOCK(sb); } Modified: head/sys/kern/uipc_usrreq.c ============================================================================== --- head/sys/kern/uipc_usrreq.c Fri Apr 10 20:41:59 2020 (r359778) +++ head/sys/kern/uipc_usrreq.c Fri Apr 10 20:42:11 2020 (r359779) @@ -1192,7 +1192,7 @@ uipc_send(struct socket *so, int flags, struct mbuf *m case SOCK_STREAM: if (control != NULL) { sbappendcontrol_locked(&so2->so_rcv, m, - control); + control, flags); control = NULL; } else sbappend_locked(&so2->so_rcv, m, flags); Modified: head/sys/sys/sockbuf.h ============================================================================== --- head/sys/sys/sockbuf.h Fri Apr 10 20:41:59 2020 (r359778) +++ head/sys/sys/sockbuf.h Fri Apr 10 20:42:11 2020 (r359779) @@ -145,9 +145,9 @@ int sbappendaddr_locked(struct sockbuf *sb, const stru int sbappendaddr_nospacecheck_locked(struct sockbuf *sb, const struct sockaddr *asa, struct mbuf *m0, struct mbuf *control); void sbappendcontrol(struct sockbuf *sb, struct mbuf *m0, - struct mbuf *control); + struct mbuf *control, int flags); void sbappendcontrol_locked(struct sockbuf *sb, struct mbuf *m0, - struct mbuf *control); + struct mbuf *control, int flags); void sbappendrecord(struct sockbuf *sb, struct mbuf *m0); void sbappendrecord_locked(struct sockbuf *sb, struct mbuf *m0); void sbcompress(struct sockbuf *sb, struct mbuf *m, struct mbuf *n); From owner-svn-src-all@freebsd.org Fri Apr 10 21:25:36 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B9B5027A4A3; Fri, 10 Apr 2020 21:25:36 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48zWJc2p9Gz4Zv4; Fri, 10 Apr 2020 21:25:36 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 414074E70; Fri, 10 Apr 2020 21:25:36 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03ALPa44087348; Fri, 10 Apr 2020 21:25:36 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03ALPaWg087347; Fri, 10 Apr 2020 21:25:36 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <202004102125.03ALPaWg087347@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Fri, 10 Apr 2020 21:25:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359780 - head/sys/fs/nfsserver X-SVN-Group: head X-SVN-Commit-Author: rmacklem X-SVN-Commit-Paths: head/sys/fs/nfsserver X-SVN-Commit-Revision: 359780 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 21:25:36 -0000 Author: rmacklem Date: Fri Apr 10 21:25:35 2020 New Revision: 359780 URL: https://svnweb.freebsd.org/changeset/base/359780 Log: Replace mbuf macros with the code they would generate in the NFS code. When the code was ported to Mac OS/X, mbuf handling functions were converted to using the Mac OS/X accessor functions. For FreeBSD, they are a simple set of macros in sys/fs/nfs/nfskpiport.h. Since porting to Mac OS/X is no longer a consideration, replacement of these macros with the code generated by them makes the code more readable. When support for external page mbufs is added as needed by the KERN_TLS, the patch becomes simpler if done without the macros. This patch should not result in any semantic change. This conversion will be committed one file at a time. Modified: head/sys/fs/nfsserver/nfs_nfsdsubs.c Modified: head/sys/fs/nfsserver/nfs_nfsdsubs.c ============================================================================== --- head/sys/fs/nfsserver/nfs_nfsdsubs.c Fri Apr 10 20:42:11 2020 (r359779) +++ head/sys/fs/nfsserver/nfs_nfsdsubs.c Fri Apr 10 21:25:35 2020 (r359780) @@ -1290,15 +1290,15 @@ nfsrv_adj(mbuf_t mp, int len, int nul) count = 0; m = mp; for (;;) { - count += mbuf_len(m); - if (mbuf_next(m) == NULL) + count += m->m_len; + if (m->m_next == NULL) break; - m = mbuf_next(m); + m = m->m_next; } - if (mbuf_len(m) > len) { - mbuf_setlen(m, mbuf_len(m) - len); + if (m->m_len > len) { + m->m_len -= len; if (nul > 0) { - cp = NFSMTOD(m, caddr_t) + mbuf_len(m) - nul; + cp = mtod(m, caddr_t) + m->m_len - nul; for (i = 0; i < nul; i++) *cp++ = '\0'; } @@ -1312,20 +1312,20 @@ nfsrv_adj(mbuf_t mp, int len, int nul) * Find the mbuf with last data, adjust its length, * and toss data from remaining mbufs on chain. */ - for (m = mp; m; m = mbuf_next(m)) { - if (mbuf_len(m) >= count) { - mbuf_setlen(m, count); + for (m = mp; m; m = m->m_next) { + if (m->m_len >= count) { + m->m_len = count; if (nul > 0) { - cp = NFSMTOD(m, caddr_t) + mbuf_len(m) - nul; + cp = mtod(m, caddr_t) + m->m_len - nul; for (i = 0; i < nul; i++) *cp++ = '\0'; } break; } - count -= mbuf_len(m); + count -= m->m_len; } - for (m = mbuf_next(m); m; m = mbuf_next(m)) - mbuf_setlen(m, 0); + for (m = m->m_next; m; m = m->m_next) + m->m_len = 0; } /* @@ -1879,16 +1879,16 @@ nfsrv_parsename(struct nfsrv_descript *nd, char *bufp, */ fromcp = nd->nd_dpos; md = nd->nd_md; - rem = NFSMTOD(md, caddr_t) + mbuf_len(md) - fromcp; + rem = mtod(md, caddr_t) + md->m_len - fromcp; for (i = 0; i < len; i++) { while (rem == 0) { - md = mbuf_next(md); + md = md->m_next; if (md == NULL) { error = EBADRPC; goto nfsmout; } - fromcp = NFSMTOD(md, caddr_t); - rem = mbuf_len(md); + fromcp = mtod(md, caddr_t); + rem = md->m_len; } if (*fromcp == '\0') { nd->nd_repstat = EACCES; From owner-svn-src-all@freebsd.org Fri Apr 10 21:27:50 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2638E27A58C; Fri, 10 Apr 2020 21:27:50 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48zWMB0G4Xz4b34; Fri, 10 Apr 2020 21:27:50 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 041034E74; Fri, 10 Apr 2020 21:27:50 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03ALRnai087497; Fri, 10 Apr 2020 21:27:49 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03ALRn48087496; Fri, 10 Apr 2020 21:27:49 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202004102127.03ALRn48087496@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Fri, 10 Apr 2020 21:27:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359781 - head/sys/dev/sound/pci/hda X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/sys/dev/sound/pci/hda X-SVN-Commit-Revision: 359781 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 21:27:50 -0000 Author: emaste Date: Fri Apr 10 21:27:49 2020 New Revision: 359781 URL: https://svnweb.freebsd.org/changeset/base/359781 Log: hda: if a CODEC is not responding, report which one PR: 229190 MFC after: 1 week Modified: head/sys/dev/sound/pci/hda/hdac.c Modified: head/sys/dev/sound/pci/hda/hdac.c ============================================================================== --- head/sys/dev/sound/pci/hda/hdac.c Fri Apr 10 21:25:35 2020 (r359780) +++ head/sys/dev/sound/pci/hda/hdac.c Fri Apr 10 21:27:49 2020 (r359781) @@ -1529,7 +1529,7 @@ hdac_attach2(void *arg) if (vendorid == HDA_INVALID && revisionid == HDA_INVALID) { device_printf(sc->dev, - "CODEC is not responding!\n"); + "CODEC at address %d not responding!\n", i); continue; } sc->codecs[i].vendor_id = From owner-svn-src-all@freebsd.org Fri Apr 10 22:18:14 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8264827B825; Fri, 10 Apr 2020 22:18:14 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48zXTL2wtQz4dRX; Fri, 10 Apr 2020 22:18:14 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5B76B583A; Fri, 10 Apr 2020 22:18:14 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03AMIEhw018403; Fri, 10 Apr 2020 22:18:14 GMT (envelope-from gonzo@FreeBSD.org) Received: (from gonzo@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03AMIDLJ018399; Fri, 10 Apr 2020 22:18:13 GMT (envelope-from gonzo@FreeBSD.org) Message-Id: <202004102218.03AMIDLJ018399@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gonzo set sender to gonzo@FreeBSD.org using -f From: Oleksandr Tymoshenko Date: Fri, 10 Apr 2020 22:18:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359782 - in stable/12/usr.bin/calendar: . calendars tests X-SVN-Group: stable-12 X-SVN-Commit-Author: gonzo X-SVN-Commit-Paths: in stable/12/usr.bin/calendar: . calendars tests X-SVN-Commit-Revision: 359782 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 22:18:14 -0000 Author: gonzo Date: Fri Apr 10 22:18:13 2020 New Revision: 359782 URL: https://svnweb.freebsd.org/changeset/base/359782 Log: MFC r359585, r359587 r359585: Fix calculation of the recurring weekdays Both the result of the first_dayofweek_of_year and the target weekday are zero-based (0 fo sunday) while the target month-day or year-day is 1-based. Adjust logic accordingly. Also add testcase for this PR to the kyua test suite PR: 201062 Submitted by: Richard Narron r359587: Remove hardcoded US Election Day from calendar.usholiday calendar(1) syntax is not capable of representing the rules for the US Election Day. The hardcoded date was set in r15066 in 1996 and hasn't changed since then. PR: 173389 Reported by: Steve Ames Added: stable/12/usr.bin/calendar/tests/regress.s5.out - copied unchanged from r359585, head/usr.bin/calendar/tests/regress.s5.out Modified: stable/12/usr.bin/calendar/calendars/calendar.usholiday stable/12/usr.bin/calendar/parsedata.c stable/12/usr.bin/calendar/tests/calendar.calibrate stable/12/usr.bin/calendar/tests/regress.sh Directory Properties: stable/12/ (props changed) Modified: stable/12/usr.bin/calendar/calendars/calendar.usholiday ============================================================================== --- stable/12/usr.bin/calendar/calendars/calendar.usholiday Fri Apr 10 21:27:49 2020 (r359781) +++ stable/12/usr.bin/calendar/calendars/calendar.usholiday Fri Apr 10 22:18:13 2020 (r359782) @@ -30,7 +30,6 @@ 09/22* Autumnal Equinox 10/MonSecond Columbus Day in USA (2nd Monday of October) 10/31 All Hallows Eve (Halloween) -11/05* Election Day in USA (1st Tuesday after 1st Monday for even years) 11/SunFirst Daylight Savings Time ends in USA; clocks move back (1st Sunday of November) 11/11 Veterans' Day 11/ThuFourth Thanksgiving Day (4th Thursday in November) Modified: stable/12/usr.bin/calendar/parsedata.c ============================================================================== --- stable/12/usr.bin/calendar/parsedata.c Fri Apr 10 21:27:49 2020 (r359781) +++ stable/12/usr.bin/calendar/parsedata.c Fri Apr 10 22:18:13 2020 (r359782) @@ -578,7 +578,9 @@ parsedaymonth(char *date, int *yearp, int *monthp, int /* Every dayofweek of the year */ if (lflags == (F_DAYOFWEEK | F_VARIABLE)) { dow = first_dayofweek_of_year(year); - d = (idayofweek - dow + 8) % 7; + if (dow < 0) + continue; + d = (idayofweek - dow + 7) % 7 + 1; while (d <= 366) { if (remember_yd(year, d, &rm, &rd)) remember(&remindex, @@ -616,7 +618,9 @@ parsedaymonth(char *date, int *yearp, int *monthp, int (F_MONTH | F_DAYOFWEEK | F_MODIFIERINDEX | F_VARIABLE)) { offset = indextooffset(modifierindex); dow = first_dayofweek_of_month(year, imonth); - d = (idayofweek - dow + 8) % 7; + if (dow < 0) + continue; + d = (idayofweek - dow + 7) % 7 + 1; if (offset > 0) { while (d <= yearinfo->monthdays[imonth]) { @@ -650,7 +654,9 @@ parsedaymonth(char *date, int *yearp, int *monthp, int /* Every dayofweek of the month */ if (lflags == (F_DAYOFWEEK | F_MONTH | F_VARIABLE)) { dow = first_dayofweek_of_month(year, imonth); - d = (idayofweek - dow + 8) % 7; + if (dow < 0) + continue; + d = (idayofweek - dow + 7) % 7 + 1; while (d <= yearinfo->monthdays[imonth]) { if (remember_ymd(year, imonth, d)) remember(&remindex, Modified: stable/12/usr.bin/calendar/tests/calendar.calibrate ============================================================================== --- stable/12/usr.bin/calendar/tests/calendar.calibrate Fri Apr 10 21:27:49 2020 (r359781) +++ stable/12/usr.bin/calendar/tests/calendar.calibrate Fri Apr 10 22:18:13 2020 (r359782) @@ -188,6 +188,7 @@ LANG=C 06/28 jun 28 06/29 jun 29 06/30 jun 30 +06/SunThird sunthird 07/01 jul 1 07/02 jul 2 07/03 jul 3 Copied: stable/12/usr.bin/calendar/tests/regress.s5.out (from r359585, head/usr.bin/calendar/tests/regress.s5.out) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/usr.bin/calendar/tests/regress.s5.out Fri Apr 10 22:18:13 2020 (r359782, copy of r359585, head/usr.bin/calendar/tests/regress.s5.out) @@ -0,0 +1,3 @@ +Jun 21* sunthird +Jun 21 jun 21 +Jun 22 jun 22 Modified: stable/12/usr.bin/calendar/tests/regress.sh ============================================================================== --- stable/12/usr.bin/calendar/tests/regress.sh Fri Apr 10 21:27:49 2020 (r359781) +++ stable/12/usr.bin/calendar/tests/regress.sh Fri Apr 10 22:18:13 2020 (r359782) @@ -7,12 +7,13 @@ CALENDAR="${CALENDAR_BIN} ${CALENDAR_FILE}" REGRESSION_START($1) -echo 1..28 +echo 1..29 REGRESSION_TEST(`s1',`$CALENDAR -t 29.12.2006') REGRESSION_TEST(`s2',`$CALENDAR -t 30.12.2006') REGRESSION_TEST(`s3',`$CALENDAR -t 31.12.2006') REGRESSION_TEST(`s4',`$CALENDAR -t 01.01.2007') +REGRESSION_TEST(`s5',`$CALENDAR -t 21.06.2015') REGRESSION_TEST(`a1',`$CALENDAR -A 3 -t 28.12.2006') REGRESSION_TEST(`a2',`$CALENDAR -A 3 -t 29.12.2006') From owner-svn-src-all@freebsd.org Fri Apr 10 22:18:31 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E10AA27B899; Fri, 10 Apr 2020 22:18:31 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48zXTg5jbQz4dYj; Fri, 10 Apr 2020 22:18:31 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BF56B5843; Fri, 10 Apr 2020 22:18:31 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03AMIVeX018490; Fri, 10 Apr 2020 22:18:31 GMT (envelope-from gonzo@FreeBSD.org) Received: (from gonzo@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03AMIUeA018486; Fri, 10 Apr 2020 22:18:30 GMT (envelope-from gonzo@FreeBSD.org) Message-Id: <202004102218.03AMIUeA018486@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gonzo set sender to gonzo@FreeBSD.org using -f From: Oleksandr Tymoshenko Date: Fri, 10 Apr 2020 22:18:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r359783 - in stable/11/usr.bin/calendar: . calendars tests X-SVN-Group: stable-11 X-SVN-Commit-Author: gonzo X-SVN-Commit-Paths: in stable/11/usr.bin/calendar: . calendars tests X-SVN-Commit-Revision: 359783 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 22:18:31 -0000 Author: gonzo Date: Fri Apr 10 22:18:30 2020 New Revision: 359783 URL: https://svnweb.freebsd.org/changeset/base/359783 Log: MFC r359585, r359587 r359585: Fix calculation of the recurring weekdays Both the result of the first_dayofweek_of_year and the target weekday are zero-based (0 fo sunday) while the target month-day or year-day is 1-based. Adjust logic accordingly. Also add testcase for this PR to the kyua test suite PR: 201062 Submitted by: Richard Narron r359587: Remove hardcoded US Election Day from calendar.usholiday calendar(1) syntax is not capable of representing the rules for the US Election Day. The hardcoded date was set in r15066 in 1996 and hasn't changed since then. PR: 173389 Reported by: Steve Ames Added: stable/11/usr.bin/calendar/tests/regress.s5.out - copied unchanged from r359585, head/usr.bin/calendar/tests/regress.s5.out Modified: stable/11/usr.bin/calendar/calendars/calendar.usholiday stable/11/usr.bin/calendar/parsedata.c stable/11/usr.bin/calendar/tests/calendar.calibrate stable/11/usr.bin/calendar/tests/regress.sh Directory Properties: stable/11/ (props changed) Modified: stable/11/usr.bin/calendar/calendars/calendar.usholiday ============================================================================== --- stable/11/usr.bin/calendar/calendars/calendar.usholiday Fri Apr 10 22:18:13 2020 (r359782) +++ stable/11/usr.bin/calendar/calendars/calendar.usholiday Fri Apr 10 22:18:30 2020 (r359783) @@ -30,7 +30,6 @@ 09/22* Autumnal Equinox 10/MonSecond Columbus Day in USA (2nd Monday of October) 10/31 All Hallows Eve (Halloween) -11/05* Election Day in USA (1st Tuesday after 1st Monday for even years) 11/SunFirst Daylight Savings Time ends in USA; clocks move back (1st Sunday of November) 11/11 Veterans' Day 11/ThuFourth Thanksgiving Day (4th Thursday in November) Modified: stable/11/usr.bin/calendar/parsedata.c ============================================================================== --- stable/11/usr.bin/calendar/parsedata.c Fri Apr 10 22:18:13 2020 (r359782) +++ stable/11/usr.bin/calendar/parsedata.c Fri Apr 10 22:18:30 2020 (r359783) @@ -578,7 +578,9 @@ parsedaymonth(char *date, int *yearp, int *monthp, int /* Every dayofweek of the year */ if (lflags == (F_DAYOFWEEK | F_VARIABLE)) { dow = first_dayofweek_of_year(year); - d = (idayofweek - dow + 8) % 7; + if (dow < 0) + continue; + d = (idayofweek - dow + 7) % 7 + 1; while (d <= 366) { if (remember_yd(year, d, &rm, &rd)) remember(&remindex, @@ -616,7 +618,9 @@ parsedaymonth(char *date, int *yearp, int *monthp, int (F_MONTH | F_DAYOFWEEK | F_MODIFIERINDEX | F_VARIABLE)) { offset = indextooffset(modifierindex); dow = first_dayofweek_of_month(year, imonth); - d = (idayofweek - dow + 8) % 7; + if (dow < 0) + continue; + d = (idayofweek - dow + 7) % 7 + 1; if (offset > 0) { while (d <= yearinfo->monthdays[imonth]) { @@ -650,7 +654,9 @@ parsedaymonth(char *date, int *yearp, int *monthp, int /* Every dayofweek of the month */ if (lflags == (F_DAYOFWEEK | F_MONTH | F_VARIABLE)) { dow = first_dayofweek_of_month(year, imonth); - d = (idayofweek - dow + 8) % 7; + if (dow < 0) + continue; + d = (idayofweek - dow + 7) % 7 + 1; while (d <= yearinfo->monthdays[imonth]) { if (remember_ymd(year, imonth, d)) remember(&remindex, Modified: stable/11/usr.bin/calendar/tests/calendar.calibrate ============================================================================== --- stable/11/usr.bin/calendar/tests/calendar.calibrate Fri Apr 10 22:18:13 2020 (r359782) +++ stable/11/usr.bin/calendar/tests/calendar.calibrate Fri Apr 10 22:18:30 2020 (r359783) @@ -188,6 +188,7 @@ LANG=C 06/28 jun 28 06/29 jun 29 06/30 jun 30 +06/SunThird sunthird 07/01 jul 1 07/02 jul 2 07/03 jul 3 Copied: stable/11/usr.bin/calendar/tests/regress.s5.out (from r359585, head/usr.bin/calendar/tests/regress.s5.out) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/usr.bin/calendar/tests/regress.s5.out Fri Apr 10 22:18:30 2020 (r359783, copy of r359585, head/usr.bin/calendar/tests/regress.s5.out) @@ -0,0 +1,3 @@ +Jun 21* sunthird +Jun 21 jun 21 +Jun 22 jun 22 Modified: stable/11/usr.bin/calendar/tests/regress.sh ============================================================================== --- stable/11/usr.bin/calendar/tests/regress.sh Fri Apr 10 22:18:13 2020 (r359782) +++ stable/11/usr.bin/calendar/tests/regress.sh Fri Apr 10 22:18:30 2020 (r359783) @@ -7,12 +7,13 @@ CALENDAR="${CALENDAR_BIN} ${CALENDAR_FILE}" REGRESSION_START($1) -echo 1..28 +echo 1..29 REGRESSION_TEST(`s1',`$CALENDAR -t 29.12.2006') REGRESSION_TEST(`s2',`$CALENDAR -t 30.12.2006') REGRESSION_TEST(`s3',`$CALENDAR -t 31.12.2006') REGRESSION_TEST(`s4',`$CALENDAR -t 01.01.2007') +REGRESSION_TEST(`s5',`$CALENDAR -t 21.06.2015') REGRESSION_TEST(`a1',`$CALENDAR -A 3 -t 28.12.2006') REGRESSION_TEST(`a2',`$CALENDAR -A 3 -t 29.12.2006') From owner-svn-src-all@freebsd.org Fri Apr 10 22:27:46 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 05BC227C7B9; Fri, 10 Apr 2020 22:27:46 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48zXhK6m5Hz3F7t; Fri, 10 Apr 2020 22:27:45 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C935B5A79; Fri, 10 Apr 2020 22:27:45 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03AMRjBT029367; Fri, 10 Apr 2020 22:27:45 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03AMRjaN029365; Fri, 10 Apr 2020 22:27:45 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202004102227.03AMRjaN029365@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Fri, 10 Apr 2020 22:27:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359784 - in head/sys/dev/cxgbe: . crypto X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in head/sys/dev/cxgbe: . crypto X-SVN-Commit-Revision: 359784 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 22:27:46 -0000 Author: jhb Date: Fri Apr 10 22:27:45 2020 New Revision: 359784 URL: https://svnweb.freebsd.org/changeset/base/359784 Log: Use both crypto engines on a T6. A T6 adapter contains two crypto engines on separate channels. This commit distributes sessions between the two engines. Previously, only the first engine was used. Reviewed by: np Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D24347 Modified: head/sys/dev/cxgbe/adapter.h head/sys/dev/cxgbe/crypto/t4_crypto.c Modified: head/sys/dev/cxgbe/adapter.h ============================================================================== --- head/sys/dev/cxgbe/adapter.h Fri Apr 10 22:18:30 2020 (r359783) +++ head/sys/dev/cxgbe/adapter.h Fri Apr 10 22:27:45 2020 (r359784) @@ -600,9 +600,7 @@ struct sge_rxq { struct sge_fl fl; /* MUST follow iq */ struct ifnet *ifp; /* the interface this rxq belongs to */ -#if defined(INET) || defined(INET6) struct lro_ctrl lro; /* LRO state */ -#endif /* stats for common events first */ Modified: head/sys/dev/cxgbe/crypto/t4_crypto.c ============================================================================== --- head/sys/dev/cxgbe/crypto/t4_crypto.c Fri Apr 10 22:18:30 2020 (r359783) +++ head/sys/dev/cxgbe/crypto/t4_crypto.c Fri Apr 10 22:27:45 2020 (r359784) @@ -162,10 +162,18 @@ struct ccr_session_blkcipher { char deckey[CHCR_AES_MAX_KEY_LEN]; }; +struct ccr_port { + struct sge_wrq *txq; + struct sge_rxq *rxq; + int tx_channel_id; + u_int active_sessions; +}; + struct ccr_session { bool active; int pending; enum { HASH, HMAC, BLKCIPHER, ETA, GCM, CCM } mode; + struct ccr_port *port; union { struct ccr_session_hmac hmac; struct ccr_session_gmac gmac; @@ -178,11 +186,10 @@ struct ccr_softc { struct adapter *adapter; device_t dev; uint32_t cid; - int tx_channel_id; struct mtx lock; bool detaching; - struct sge_wrq *txq; - struct sge_rxq *rxq; + struct ccr_port ports[MAX_NPORTS]; + u_int port_mask; /* * Pre-allocate S/G lists used when preparing a work request. @@ -297,7 +304,8 @@ ccr_phys_dsgl_len(int nsegs) } static void -ccr_write_phys_dsgl(struct ccr_softc *sc, void *dst, int nsegs) +ccr_write_phys_dsgl(struct ccr_softc *sc, struct ccr_session *s, void *dst, + int nsegs) { struct sglist *sg; struct cpl_rx_phys_dsgl *cpl; @@ -316,7 +324,7 @@ ccr_write_phys_dsgl(struct ccr_softc *sc, void *dst, i V_CPL_RX_PHYS_DSGL_PCITPHNTENB(0) | V_CPL_RX_PHYS_DSGL_DCAID(0) | V_CPL_RX_PHYS_DSGL_NOOFSGENTR(nsegs)); cpl->rss_hdr_int.opcode = CPL_RX_PHYS_ADDR; - cpl->rss_hdr_int.qid = htobe16(sc->rxq->iq.abs_id); + cpl->rss_hdr_int.qid = htobe16(s->port->rxq->iq.abs_id); cpl->rss_hdr_int.hash_val = 0; sgl = (struct phys_sge_pairs *)(cpl + 1); j = 0; @@ -392,9 +400,9 @@ ccr_use_imm_data(u_int transhdr_len, u_int input_len) } static void -ccr_populate_wreq(struct ccr_softc *sc, struct chcr_wr *crwr, u_int kctx_len, - u_int wr_len, u_int imm_len, u_int sgl_len, u_int hash_size, - struct cryptop *crp) +ccr_populate_wreq(struct ccr_softc *sc, struct ccr_session *s, + struct chcr_wr *crwr, u_int kctx_len, u_int wr_len, u_int imm_len, + u_int sgl_len, u_int hash_size, struct cryptop *crp) { u_int cctx_size, idata_len; @@ -409,13 +417,13 @@ ccr_populate_wreq(struct ccr_softc *sc, struct chcr_wr V_FW_CRYPTO_LOOKASIDE_WR_LEN16(wr_len / 16)); crwr->wreq.session_id = 0; crwr->wreq.rx_chid_to_rx_q_id = htobe32( - V_FW_CRYPTO_LOOKASIDE_WR_RX_CHID(sc->tx_channel_id) | + V_FW_CRYPTO_LOOKASIDE_WR_RX_CHID(s->port->tx_channel_id) | V_FW_CRYPTO_LOOKASIDE_WR_LCB(0) | V_FW_CRYPTO_LOOKASIDE_WR_PHASH(0) | V_FW_CRYPTO_LOOKASIDE_WR_IV(IV_NOP) | V_FW_CRYPTO_LOOKASIDE_WR_FQIDX(0) | V_FW_CRYPTO_LOOKASIDE_WR_TX_CH(0) | - V_FW_CRYPTO_LOOKASIDE_WR_RX_Q_ID(sc->rxq->iq.abs_id)); + V_FW_CRYPTO_LOOKASIDE_WR_RX_Q_ID(s->port->rxq->iq.abs_id)); crwr->wreq.key_addr = 0; crwr->wreq.pld_size_hash_size = htobe32( V_FW_CRYPTO_LOOKASIDE_WR_PLD_SIZE(sgl_len) | @@ -424,8 +432,9 @@ ccr_populate_wreq(struct ccr_softc *sc, struct chcr_wr crwr->ulptx.cmd_dest = htobe32(V_ULPTX_CMD(ULP_TX_PKT) | V_ULP_TXPKT_DATAMODIFY(0) | - V_ULP_TXPKT_CHANNELID(sc->tx_channel_id) | V_ULP_TXPKT_DEST(0) | - V_ULP_TXPKT_FID(sc->rxq->iq.abs_id) | V_ULP_TXPKT_RO(1)); + V_ULP_TXPKT_CHANNELID(s->port->tx_channel_id) | + V_ULP_TXPKT_DEST(0) | + V_ULP_TXPKT_FID(s->port->rxq->iq.abs_id) | V_ULP_TXPKT_RO(1)); crwr->ulptx.len = htobe32( ((wr_len - sizeof(struct fw_crypto_lookaside_wr)) / 16)); @@ -497,7 +506,7 @@ ccr_hash(struct ccr_softc *sc, struct ccr_session *s, wr_len = roundup2(transhdr_len, 16) + roundup2(imm_len, 16) + sgl_len; if (wr_len > SGE_MAX_WR_LEN) return (EFBIG); - wr = alloc_wrqe(wr_len, sc->txq); + wr = alloc_wrqe(wr_len, s->port->txq); if (wr == NULL) { sc->stats_wr_nomem++; return (ENOMEM); @@ -505,13 +514,12 @@ ccr_hash(struct ccr_softc *sc, struct ccr_session *s, crwr = wrtod(wr); memset(crwr, 0, wr_len); - ccr_populate_wreq(sc, crwr, kctx_len, wr_len, imm_len, sgl_len, + ccr_populate_wreq(sc, s, crwr, kctx_len, wr_len, imm_len, sgl_len, hash_size_in_response, crp); - /* XXX: Hardcodes SGE loopback channel of 0. */ crwr->sec_cpl.op_ivinsrtofst = htobe32( V_CPL_TX_SEC_PDU_OPCODE(CPL_TX_SEC_PDU) | - V_CPL_TX_SEC_PDU_RXCHID(sc->tx_channel_id) | + V_CPL_TX_SEC_PDU_RXCHID(s->port->tx_channel_id) | V_CPL_TX_SEC_PDU_ACKFOLLOWS(0) | V_CPL_TX_SEC_PDU_ULPTXLPBK(1) | V_CPL_TX_SEC_PDU_CPLLEN(2) | V_CPL_TX_SEC_PDU_PLACEHOLDER(0) | V_CPL_TX_SEC_PDU_IVINSRTOFST(0)); @@ -649,7 +657,7 @@ ccr_blkcipher(struct ccr_softc *sc, struct ccr_session roundup2(imm_len, 16) + sgl_len; if (wr_len > SGE_MAX_WR_LEN) return (EFBIG); - wr = alloc_wrqe(wr_len, sc->txq); + wr = alloc_wrqe(wr_len, s->port->txq); if (wr == NULL) { sc->stats_wr_nomem++; return (ENOMEM); @@ -674,13 +682,12 @@ ccr_blkcipher(struct ccr_softc *sc, struct ccr_session /* Zero the remainder of the IV for AES-XTS. */ memset(iv + s->blkcipher.iv_len, 0, iv_len - s->blkcipher.iv_len); - ccr_populate_wreq(sc, crwr, kctx_len, wr_len, imm_len, sgl_len, 0, + ccr_populate_wreq(sc, s, crwr, kctx_len, wr_len, imm_len, sgl_len, 0, crp); - /* XXX: Hardcodes SGE loopback channel of 0. */ crwr->sec_cpl.op_ivinsrtofst = htobe32( V_CPL_TX_SEC_PDU_OPCODE(CPL_TX_SEC_PDU) | - V_CPL_TX_SEC_PDU_RXCHID(sc->tx_channel_id) | + V_CPL_TX_SEC_PDU_RXCHID(s->port->tx_channel_id) | V_CPL_TX_SEC_PDU_ACKFOLLOWS(0) | V_CPL_TX_SEC_PDU_ULPTXLPBK(1) | V_CPL_TX_SEC_PDU_CPLLEN(2) | V_CPL_TX_SEC_PDU_PLACEHOLDER(0) | V_CPL_TX_SEC_PDU_IVINSRTOFST(1)); @@ -736,7 +743,7 @@ ccr_blkcipher(struct ccr_softc *sc, struct ccr_session } dst = (char *)(crwr + 1) + kctx_len; - ccr_write_phys_dsgl(sc, dst, dsgl_nsegs); + ccr_write_phys_dsgl(sc, s, dst, dsgl_nsegs); dst += sizeof(struct cpl_rx_phys_dsgl) + dsgl_len; memcpy(dst, iv, iv_len); dst += iv_len; @@ -953,7 +960,7 @@ ccr_eta(struct ccr_softc *sc, struct ccr_session *s, s sgl_len; if (wr_len > SGE_MAX_WR_LEN) return (EFBIG); - wr = alloc_wrqe(wr_len, sc->txq); + wr = alloc_wrqe(wr_len, s->port->txq); if (wr == NULL) { sc->stats_wr_nomem++; return (ENOMEM); @@ -978,13 +985,12 @@ ccr_eta(struct ccr_softc *sc, struct ccr_session *s, s /* Zero the remainder of the IV for AES-XTS. */ memset(iv + s->blkcipher.iv_len, 0, iv_len - s->blkcipher.iv_len); - ccr_populate_wreq(sc, crwr, kctx_len, wr_len, imm_len, sgl_len, + ccr_populate_wreq(sc, s, crwr, kctx_len, wr_len, imm_len, sgl_len, op_type == CHCR_DECRYPT_OP ? hash_size_in_response : 0, crp); - /* XXX: Hardcodes SGE loopback channel of 0. */ crwr->sec_cpl.op_ivinsrtofst = htobe32( V_CPL_TX_SEC_PDU_OPCODE(CPL_TX_SEC_PDU) | - V_CPL_TX_SEC_PDU_RXCHID(sc->tx_channel_id) | + V_CPL_TX_SEC_PDU_RXCHID(s->port->tx_channel_id) | V_CPL_TX_SEC_PDU_ACKFOLLOWS(0) | V_CPL_TX_SEC_PDU_ULPTXLPBK(1) | V_CPL_TX_SEC_PDU_CPLLEN(2) | V_CPL_TX_SEC_PDU_PLACEHOLDER(0) | V_CPL_TX_SEC_PDU_IVINSRTOFST(1)); @@ -1050,7 +1056,7 @@ ccr_eta(struct ccr_softc *sc, struct ccr_session *s, s memcpy(dst, s->hmac.pads, iopad_size * 2); dst = (char *)(crwr + 1) + kctx_len; - ccr_write_phys_dsgl(sc, dst, dsgl_nsegs); + ccr_write_phys_dsgl(sc, s, dst, dsgl_nsegs); dst += sizeof(struct cpl_rx_phys_dsgl) + dsgl_len; memcpy(dst, iv, iv_len); dst += iv_len; @@ -1257,7 +1263,7 @@ ccr_gcm(struct ccr_softc *sc, struct ccr_session *s, s sgl_len; if (wr_len > SGE_MAX_WR_LEN) return (EFBIG); - wr = alloc_wrqe(wr_len, sc->txq); + wr = alloc_wrqe(wr_len, s->port->txq); if (wr == NULL) { sc->stats_wr_nomem++; return (ENOMEM); @@ -1269,13 +1275,12 @@ ccr_gcm(struct ccr_softc *sc, struct ccr_session *s, s if (s->blkcipher.iv_len == 12) *(uint32_t *)&iv[12] = htobe32(1); - ccr_populate_wreq(sc, crwr, kctx_len, wr_len, imm_len, sgl_len, 0, + ccr_populate_wreq(sc, s, crwr, kctx_len, wr_len, imm_len, sgl_len, 0, crp); - /* XXX: Hardcodes SGE loopback channel of 0. */ crwr->sec_cpl.op_ivinsrtofst = htobe32( V_CPL_TX_SEC_PDU_OPCODE(CPL_TX_SEC_PDU) | - V_CPL_TX_SEC_PDU_RXCHID(sc->tx_channel_id) | + V_CPL_TX_SEC_PDU_RXCHID(s->port->tx_channel_id) | V_CPL_TX_SEC_PDU_ACKFOLLOWS(0) | V_CPL_TX_SEC_PDU_ULPTXLPBK(1) | V_CPL_TX_SEC_PDU_CPLLEN(2) | V_CPL_TX_SEC_PDU_PLACEHOLDER(0) | V_CPL_TX_SEC_PDU_IVINSRTOFST(1)); @@ -1325,7 +1330,7 @@ ccr_gcm(struct ccr_softc *sc, struct ccr_session *s, s memcpy(dst, s->gmac.ghash_h, GMAC_BLOCK_LEN); dst = (char *)(crwr + 1) + kctx_len; - ccr_write_phys_dsgl(sc, dst, dsgl_nsegs); + ccr_write_phys_dsgl(sc, s, dst, dsgl_nsegs); dst += sizeof(struct cpl_rx_phys_dsgl) + dsgl_len; memcpy(dst, iv, iv_len); dst += iv_len; @@ -1694,7 +1699,7 @@ ccr_ccm(struct ccr_softc *sc, struct ccr_session *s, s sgl_len; if (wr_len > SGE_MAX_WR_LEN) return (EFBIG); - wr = alloc_wrqe(wr_len, sc->txq); + wr = alloc_wrqe(wr_len, s->port->txq); if (wr == NULL) { sc->stats_wr_nomem++; return (ENOMEM); @@ -1710,13 +1715,12 @@ ccr_ccm(struct ccr_softc *sc, struct ccr_session *s, s iv[0] = (15 - AES_CCM_IV_LEN) - 1; memcpy(iv + 1, crp->crp_iv, AES_CCM_IV_LEN); - ccr_populate_wreq(sc, crwr, kctx_len, wr_len, imm_len, sgl_len, 0, + ccr_populate_wreq(sc, s, crwr, kctx_len, wr_len, imm_len, sgl_len, 0, crp); - /* XXX: Hardcodes SGE loopback channel of 0. */ crwr->sec_cpl.op_ivinsrtofst = htobe32( V_CPL_TX_SEC_PDU_OPCODE(CPL_TX_SEC_PDU) | - V_CPL_TX_SEC_PDU_RXCHID(sc->tx_channel_id) | + V_CPL_TX_SEC_PDU_RXCHID(s->port->tx_channel_id) | V_CPL_TX_SEC_PDU_ACKFOLLOWS(0) | V_CPL_TX_SEC_PDU_ULPTXLPBK(1) | V_CPL_TX_SEC_PDU_CPLLEN(2) | V_CPL_TX_SEC_PDU_PLACEHOLDER(0) | V_CPL_TX_SEC_PDU_IVINSRTOFST(1)); @@ -1761,7 +1765,7 @@ ccr_ccm(struct ccr_softc *sc, struct ccr_session *s, s s->blkcipher.enckey, s->blkcipher.key_len); dst = (char *)(crwr + 1) + kctx_len; - ccr_write_phys_dsgl(sc, dst, dsgl_nsegs); + ccr_write_phys_dsgl(sc, s, dst, dsgl_nsegs); dst += sizeof(struct cpl_rx_phys_dsgl) + dsgl_len; memcpy(dst, iv, iv_len); dst += iv_len; @@ -1971,8 +1975,10 @@ static void ccr_sysctls(struct ccr_softc *sc) { struct sysctl_ctx_list *ctx; - struct sysctl_oid *oid; + struct sysctl_oid *oid, *port_oid; struct sysctl_oid_list *children; + char buf[16]; + int i; ctx = device_get_sysctl_ctx(sc->dev); @@ -1982,6 +1988,9 @@ ccr_sysctls(struct ccr_softc *sc) oid = device_get_sysctl_tree(sc->dev); children = SYSCTL_CHILDREN(oid); + SYSCTL_ADD_UINT(ctx, children, OID_AUTO, "port_mask", CTLFLAG_RW, + &sc->port_mask, 0, "Mask of enabled ports"); + /* * dev.ccr.X.stats. */ @@ -2031,19 +2040,57 @@ ccr_sysctls(struct ccr_softc *sc) SYSCTL_ADD_U64(ctx, children, OID_AUTO, "sw_fallback", CTLFLAG_RD, &sc->stats_sw_fallback, 0, "Requests processed by falling back to software"); + + /* + * dev.ccr.X.stats.port + */ + port_oid = SYSCTL_ADD_NODE(ctx, children, OID_AUTO, "port", + CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "Per-port statistics"); + + for (i = 0; i < nitems(sc->ports); i++) { + if (sc->ports[i].rxq == NULL) + continue; + + /* + * dev.ccr.X.stats.port.Y + */ + snprintf(buf, sizeof(buf), "%d", i); + oid = SYSCTL_ADD_NODE(ctx, SYSCTL_CHILDREN(port_oid), OID_AUTO, + buf, CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, buf); + children = SYSCTL_CHILDREN(oid); + + SYSCTL_ADD_UINT(ctx, children, OID_AUTO, "active_sessions", + CTLFLAG_RD, &sc->ports[i].active_sessions, 0, + "Count of active sessions"); + } } +static void +ccr_init_port(struct ccr_softc *sc, int port) +{ + + sc->ports[port].txq = &sc->adapter->sge.ctrlq[port]; + sc->ports[port].rxq = + &sc->adapter->sge.rxq[sc->adapter->port[port]->vi->first_rxq]; + sc->ports[port].tx_channel_id = port; + _Static_assert(sizeof(sc->port_mask) * NBBY >= MAX_NPORTS - 1, + "Too many ports to fit in port_mask"); + sc->port_mask |= 1u << port; +} + static int ccr_attach(device_t dev) { struct ccr_softc *sc; int32_t cid; + int i; sc = device_get_softc(dev); sc->dev = dev; sc->adapter = device_get_softc(device_get_parent(dev)); - sc->txq = &sc->adapter->sge.ctrlq[0]; - sc->rxq = &sc->adapter->sge.rxq[0]; + for_each_port(sc->adapter, i) { + ccr_init_port(sc, i); + } cid = crypto_get_driverid(dev, sizeof(struct ccr_session), CRYPTOCAP_F_HARDWARE); if (cid < 0) { @@ -2053,9 +2100,6 @@ ccr_attach(device_t dev) sc->cid = cid; sc->adapter->ccr_softc = sc; - /* XXX: TODO? */ - sc->tx_channel_id = 0; - mtx_init(&sc->lock, "ccr", NULL, MTX_DEF); sc->sg_crp = sglist_alloc(TX_SGL_SEGS, M_WAITOK); sc->sg_ulptx = sglist_alloc(TX_SGL_SEGS, M_WAITOK); @@ -2319,6 +2363,43 @@ ccr_probesession(device_t dev, const struct crypto_ses return (CRYPTODEV_PROBE_HARDWARE); } +/* + * Select an available port with the lowest number of active sessions. + */ +static struct ccr_port * +ccr_choose_port(struct ccr_softc *sc) +{ + struct ccr_port *best, *p; + int i; + + mtx_assert(&sc->lock, MA_OWNED); + best = NULL; + for (i = 0; i < nitems(sc->ports); i++) { + p = &sc->ports[i]; + + /* Ignore non-existent ports. */ + if (p->rxq == NULL) + continue; + + /* + * XXX: Ignore ports whose queues aren't initialized. + * This is racy as the rxq can be destroyed by the + * associated VI detaching. Eventually ccr should use + * dedicated queues. + */ + if (p->rxq->iq.adapter == NULL || p->txq->adapter == NULL) + continue; + + if ((sc->port_mask & (1u << i)) == 0) + continue; + + if (best == NULL || + p->active_sessions < best->active_sessions) + best = p; + } + return (best); +} + static int ccr_newsession(device_t dev, crypto_session_t cses, const struct crypto_session_params *csp) @@ -2409,15 +2490,6 @@ ccr_newsession(device_t dev, crypto_session_t cses, sc = device_get_softc(dev); - /* - * XXX: Don't create a session if the queues aren't - * initialized. This is racy as the rxq can be destroyed by - * the associated VI detaching. Eventually ccr should use - * dedicated queues. - */ - if (sc->rxq->iq.adapter == NULL || sc->txq->adapter == NULL) - return (ENXIO); - mtx_lock(&sc->lock); if (sc->detaching) { mtx_unlock(&sc->lock); @@ -2425,6 +2497,11 @@ ccr_newsession(device_t dev, crypto_session_t cses, } s = crypto_get_driver_session(cses); + s->port = ccr_choose_port(sc); + if (s->port == NULL) { + mtx_unlock(&sc->lock); + return (ENXIO); + } switch (csp->csp_mode) { case CSP_MODE_AEAD: @@ -2484,6 +2561,7 @@ ccr_newsession(device_t dev, crypto_session_t cses, } s->active = true; + s->port->active_sessions++; mtx_unlock(&sc->lock); return (0); } @@ -2502,6 +2580,7 @@ ccr_freesession(device_t dev, crypto_session_t cses) "session %p freed with %d pending requests\n", s, s->pending); s->active = false; + s->port->active_sessions--; mtx_unlock(&sc->lock); } From owner-svn-src-all@freebsd.org Fri Apr 10 22:42:15 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 726C227CF4B; Fri, 10 Apr 2020 22:42:15 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48zY132Vbpz3G0v; Fri, 10 Apr 2020 22:42:15 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4FFB65D1A; Fri, 10 Apr 2020 22:42:15 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03AMgFIA041541; Fri, 10 Apr 2020 22:42:15 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03AMgFMS041540; Fri, 10 Apr 2020 22:42:15 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <202004102242.03AMgFMS041540@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Fri, 10 Apr 2020 22:42:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359785 - head/sys/fs/nfsclient X-SVN-Group: head X-SVN-Commit-Author: rmacklem X-SVN-Commit-Paths: head/sys/fs/nfsclient X-SVN-Commit-Revision: 359785 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 22:42:15 -0000 Author: rmacklem Date: Fri Apr 10 22:42:14 2020 New Revision: 359785 URL: https://svnweb.freebsd.org/changeset/base/359785 Log: Replace mbuf macros with the code they would generate in the NFS code. When the code was ported to Mac OS/X, mbuf handling functions were converted to using the Mac OS/X accessor functions. For FreeBSD, they are a simple set of macros in sys/fs/nfs/nfskpiport.h. Since porting to Mac OS/X is no longer a consideration, replacement of these macros with the code generated by them makes the code more readable. When support for external page mbufs is added as needed by the KERN_TLS, the patch becomes simpler if done without the macros. This patch should not result in any semantic change. This conversion will be committed one file at a time. Modified: head/sys/fs/nfsclient/nfs_clcomsubs.c Modified: head/sys/fs/nfsclient/nfs_clcomsubs.c ============================================================================== --- head/sys/fs/nfsclient/nfs_clcomsubs.c Fri Apr 10 22:27:45 2020 (r359784) +++ head/sys/fs/nfsclient/nfs_clcomsubs.c Fri Apr 10 22:42:14 2020 (r359785) @@ -87,8 +87,8 @@ nfsm_uiombuf(struct nfsrv_descript *nd, struct uio *ui NFSMCLGET(mp, M_WAITOK); else NFSMGET(mp); - mbuf_setlen(mp, 0); - mbuf_setnext(mp2, mp); + mp->m_len = 0; + mp2->m_next = mp; mp2 = mp; mlen = M_TRAILINGSPACE(mp); } @@ -97,17 +97,17 @@ nfsm_uiombuf(struct nfsrv_descript *nd, struct uio *ui /* Not Yet.. */ if (uiop->uio_iov->iov_op != NULL) (*(uiop->uio_iov->iov_op)) - (uiocp, NFSMTOD(mp, caddr_t) + mbuf_len(mp), + (uiocp, mtod(mp, caddr_t) + mp->m_len, xfer); else #endif if (uiop->uio_segflg == UIO_SYSSPACE) - NFSBCOPY(uiocp, NFSMTOD(mp, caddr_t) + mbuf_len(mp), + NFSBCOPY(uiocp, mtod(mp, caddr_t) + mp->m_len, xfer); else - copyin(CAST_USER_ADDR_T(uiocp), NFSMTOD(mp, caddr_t) - + mbuf_len(mp), xfer); - mbuf_setlen(mp, mbuf_len(mp) + xfer); + copyin(CAST_USER_ADDR_T(uiocp), mtod(mp, caddr_t) + + mp->m_len, xfer); + mp->m_len += xfer; left -= xfer; uiocp += xfer; uiop->uio_offset += xfer; @@ -122,16 +122,16 @@ nfsm_uiombuf(struct nfsrv_descript *nd, struct uio *ui if (rem > 0) { if (rem > M_TRAILINGSPACE(mp)) { NFSMGET(mp); - mbuf_setlen(mp, 0); - mbuf_setnext(mp2, mp); + mp->m_len = 0; + mp2->m_next = mp; } - cp = NFSMTOD(mp, caddr_t) + mbuf_len(mp); + cp = mtod(mp, caddr_t) + mp->m_len; for (left = 0; left < rem; left++) *cp++ = '\0'; - mbuf_setlen(mp, mbuf_len(mp) + rem); + mp->m_len += rem; nd->nd_bpos = cp; } else - nd->nd_bpos = NFSMTOD(mp, caddr_t) + mbuf_len(mp); + nd->nd_bpos = mtod(mp, caddr_t) + mp->m_len; nd->nd_mb = mp; } @@ -159,7 +159,7 @@ nfsm_uiombuflist(struct uio *uiop, int siz, struct mbu NFSMCLGET(mp, M_WAITOK); else NFSMGET(mp); - mbuf_setlen(mp, 0); + mp->m_len = 0; firstmp = mp2 = mp; while (siz > 0) { left = uiop->uio_iov->iov_len; @@ -174,19 +174,19 @@ nfsm_uiombuflist(struct uio *uiop, int siz, struct mbu NFSMCLGET(mp, M_WAITOK); else NFSMGET(mp); - mbuf_setlen(mp, 0); - mbuf_setnext(mp2, mp); + mp->m_len = 0; + mp2->m_next = mp; mp2 = mp; mlen = M_TRAILINGSPACE(mp); } xfer = (left > mlen) ? mlen : left; if (uiop->uio_segflg == UIO_SYSSPACE) - NFSBCOPY(uiocp, NFSMTOD(mp, caddr_t) + - mbuf_len(mp), xfer); + NFSBCOPY(uiocp, mtod(mp, caddr_t) + + mp->m_len, xfer); else - copyin(uiocp, NFSMTOD(mp, caddr_t) + - mbuf_len(mp), xfer); - mbuf_setlen(mp, mbuf_len(mp) + xfer); + copyin(uiocp, mtod(mp, caddr_t) + + mp->m_len, xfer); + mp->m_len += xfer; left -= xfer; uiocp += xfer; uiop->uio_offset += xfer; @@ -199,7 +199,7 @@ nfsm_uiombuflist(struct uio *uiop, int siz, struct mbu siz -= uiosiz; } if (cpp != NULL) - *cpp = NFSMTOD(mp, caddr_t) + mbuf_len(mp); + *cpp = mtod(mp, caddr_t) + mp->m_len; if (mbp != NULL) *mbp = mp; return (firstmp); From owner-svn-src-all@freebsd.org Fri Apr 10 23:04:28 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 88AE327D65D; Fri, 10 Apr 2020 23:04:28 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48zYVh323Mz3H0x; Fri, 10 Apr 2020 23:04:28 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from John-Baldwins-MacBook-Pro-164.local (unknown [IPv6:2601:648:8881:1e90:79a6:7bb6:b2fc:96b0]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: jhb) by smtp.freebsd.org (Postfix) with ESMTPSA id 0A2BB7208; Fri, 10 Apr 2020 23:04:27 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Subject: Re: svn commit: r359784 - in head/sys/dev/cxgbe: . crypto From: John Baldwin To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <202004102227.03AMRjaN029365@repo.freebsd.org> Autocrypt: addr=jhb@FreeBSD.org; keydata= mQGiBETQ+XcRBADMFybiq69u+fJRy/0wzqTNS8jFfWaBTs5/OfcV7wWezVmf9sgwn8TW0Dk0 c9MBl0pz+H01dA2ZSGZ5fXlmFIsee1WEzqeJzpiwd/pejPgSzXB9ijbLHZ2/E0jhGBcVy5Yo /Tw5+U/+laeYKu2xb0XPvM0zMNls1ah5OnP9a6Ql6wCgupaoMySb7DXm2LHD1Z9jTsHcAQMD /1jzh2BoHriy/Q2s4KzzjVp/mQO5DSm2z14BvbQRcXU48oAosHA1u3Wrov6LfPY+0U1tG47X 1BGfnQH+rNAaH0livoSBQ0IPI/8WfIW7ub4qV6HYwWKVqkDkqwcpmGNDbz3gfaDht6nsie5Z pcuCcul4M9CW7Md6zzyvktjnbz61BADGDCopfZC4of0Z3Ka0u8Wik6UJOuqShBt1WcFS8ya1 oB4rc4tXfSHyMF63aPUBMxHR5DXeH+EO2edoSwViDMqWk1jTnYza51rbGY+pebLQOVOxAY7k do5Ordl3wklBPMVEPWoZ61SdbcjhHVwaC5zfiskcxj5wwXd2E9qYlBqRg7QeSm9obiBCYWxk d2luIDxqaGJARnJlZUJTRC5vcmc+iGAEExECACAFAkTQ+awCGwMGCwkIBwMCBBUCCAMEFgID AQIeAQIXgAAKCRBy3lIGd+N/BI6RAJ9S97fvbME+3hxzE3JUyUZ6vTewDACdE1stFuSfqMvM jomvZdYxIYyTUpC5Ag0ERND5ghAIAPwsO0B7BL+bz8sLlLoQktGxXwXQfS5cInvL17Dsgnr3 1AKa94j9EnXQyPEj7u0d+LmEe6CGEGDh1OcGFTMVrof2ZzkSy4+FkZwMKJpTiqeaShMh+Goj XlwIMDxyADYvBIg3eN5YdFKaPQpfgSqhT+7El7w+wSZZD8pPQuLAnie5iz9C8iKy4/cMSOrH YUK/tO+Nhw8Jjlw94Ik0T80iEhI2t+XBVjwdfjbq3HrJ0ehqdBwukyeJRYKmbn298KOFQVHO EVbHA4rF/37jzaMadK43FgJ0SAhPPF5l4l89z5oPu0b/+5e2inA3b8J3iGZxywjM+Csq1tqz hltEc7Q+E08AAwUIAL+15XH8bPbjNJdVyg2CMl10JNW2wWg2Q6qdljeaRqeR6zFus7EZTwtX sNzs5bP8y51PSUDJbeiy2RNCNKWFMndM22TZnk3GNG45nQd4OwYK0RZVrikalmJY5Q6m7Z16 4yrZgIXFdKj2t8F+x613/SJW1lIr9/bDp4U9tw0V1g3l2dFtD3p3ZrQ3hpoDtoK70ioIAjjH aIXIAcm3FGZFXy503DOA0KaTWwvOVdYCFLm3zWuSOmrX/GsEc7ovasOWwjPn878qVjbUKWwx Q4QkF4OhUV9zPtf9tDSAZ3x7QSwoKbCoRCZ/xbyTUPyQ1VvNy/mYrBcYlzHodsaqUDjHuW+I SQQYEQIACQUCRND5ggIbDAAKCRBy3lIGd+N/BCO8AJ9j1dWVQWxw/YdTbEyrRKOY8YZNwwCf afMAg8QvmOWnHx3wl8WslCaXaE8= Message-ID: <4148ddc5-ffa5-fd1c-78ea-b7e12164c5ca@FreeBSD.org> Date: Fri, 10 Apr 2020 16:04:25 -0700 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:68.0) Gecko/20100101 Thunderbird/68.6.0 MIME-Version: 1.0 In-Reply-To: <202004102227.03AMRjaN029365@repo.freebsd.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 23:04:28 -0000 On 4/10/20 3:27 PM, John Baldwin wrote: > Author: jhb > Date: Fri Apr 10 22:27:45 2020 > New Revision: 359784 > URL: https://svnweb.freebsd.org/changeset/base/359784 > > Log: > Use both crypto engines on a T6. > > A T6 adapter contains two crypto engines on separate channels. This > commit distributes sessions between the two engines. Previously, only > the first engine was used. In some simple benchmarks using KTLS with the traffic flowing over one of the ports (cc0) of the same NIC ccr0 was on, throughput increased from ~41 Gbps to 45 Gbps with this change (albeit with CPU usage increase from 70% to 80%). In addition, this commit adds a 'dev.ccr..port_mask' sysctl which controls which ports are enabled for new sessions. Setting this to '2' during this test to force all crypto requests to use the crypto engine associated with the channel for cc1 (which was not being used to send any traffic) further increased the throughput to around 48 Gbps while using the same amount of CPU. -- John Baldwin From owner-svn-src-all@freebsd.org Fri Apr 10 23:08:42 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7CEE427D7DF; Fri, 10 Apr 2020 23:08:42 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48zYbZ2k5nz3HDc; Fri, 10 Apr 2020 23:08:42 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 58A0B6217; Fri, 10 Apr 2020 23:08:42 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03AN8gIU054226; Fri, 10 Apr 2020 23:08:42 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03AN8foC054222; Fri, 10 Apr 2020 23:08:41 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202004102308.03AN8foC054222@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Fri, 10 Apr 2020 23:08:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359786 - in head/sys: conf kgssapi/krb5 modules/kgssapi_krb5 X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in head/sys: conf kgssapi/krb5 modules/kgssapi_krb5 X-SVN-Commit-Revision: 359786 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 23:08:42 -0000 Author: jhb Date: Fri Apr 10 23:08:41 2020 New Revision: 359786 URL: https://svnweb.freebsd.org/changeset/base/359786 Log: Remove support for Kernel GSS algorithms deprecated in r348875. This removes support for using DES, Triple DES, and RC4. Reviewed by: cem, kp Tested by: kp Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D24344 Deleted: head/sys/kgssapi/krb5/kcrypto_arcfour.c head/sys/kgssapi/krb5/kcrypto_des.c head/sys/kgssapi/krb5/kcrypto_des3.c Modified: head/sys/conf/files head/sys/kgssapi/krb5/kcrypto.c head/sys/kgssapi/krb5/kcrypto.h head/sys/modules/kgssapi_krb5/Makefile Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Fri Apr 10 22:42:14 2020 (r359785) +++ head/sys/conf/files Fri Apr 10 23:08:41 2020 (r359786) @@ -3945,9 +3945,6 @@ kgssapi/gssd_prot.c optional kgssapi kgssapi/krb5/krb5_mech.c optional kgssapi kgssapi/krb5/kcrypto.c optional kgssapi kgssapi/krb5/kcrypto_aes.c optional kgssapi -kgssapi/krb5/kcrypto_arcfour.c optional kgssapi -kgssapi/krb5/kcrypto_des.c optional kgssapi -kgssapi/krb5/kcrypto_des3.c optional kgssapi kgssapi/kgss_if.m optional kgssapi kgssapi/gsstest.c optional kgssapi_debug # These files in libkern/ are those needed by all architectures. Some Modified: head/sys/kgssapi/krb5/kcrypto.c ============================================================================== --- head/sys/kgssapi/krb5/kcrypto.c Fri Apr 10 22:42:14 2020 (r359785) +++ head/sys/kgssapi/krb5/kcrypto.c Fri Apr 10 23:08:41 2020 (r359786) @@ -42,19 +42,10 @@ __FBSDID("$FreeBSD$"); #include "kcrypto.h" static struct krb5_encryption_class *krb5_encryption_classes[] = { - &krb5_des_encryption_class, - &krb5_des3_encryption_class, &krb5_aes128_encryption_class, &krb5_aes256_encryption_class, - &krb5_arcfour_encryption_class, - &krb5_arcfour_56_encryption_class, NULL }; - -struct timeval krb5_warn_interval = { .tv_sec = 3600, .tv_usec = 0 }; -SYSCTL_TIMEVAL_SEC(_kern, OID_AUTO, kgssapi_warn_interval, CTLFLAG_RW, - &krb5_warn_interval, - "Delay in seconds between warnings of deprecated KGSSAPI crypto."); struct krb5_encryption_class * krb5_find_encryption_class(int etype) Modified: head/sys/kgssapi/krb5/kcrypto.h ============================================================================== --- head/sys/kgssapi/krb5/kcrypto.h Fri Apr 10 22:42:14 2020 (r359785) +++ head/sys/kgssapi/krb5/kcrypto.h Fri Apr 10 23:08:41 2020 (r359786) @@ -95,13 +95,8 @@ struct krb5_key_state { void *ks_priv; }; -extern struct krb5_encryption_class krb5_des_encryption_class; -extern struct krb5_encryption_class krb5_des3_encryption_class; extern struct krb5_encryption_class krb5_aes128_encryption_class; extern struct krb5_encryption_class krb5_aes256_encryption_class; -extern struct krb5_encryption_class krb5_arcfour_encryption_class; -extern struct krb5_encryption_class krb5_arcfour_56_encryption_class; -extern struct timeval krb5_warn_interval; static __inline void krb5_set_key(struct krb5_key_state *ks, const void *keydata) Modified: head/sys/modules/kgssapi_krb5/Makefile ============================================================================== --- head/sys/modules/kgssapi_krb5/Makefile Fri Apr 10 22:42:14 2020 (r359785) +++ head/sys/modules/kgssapi_krb5/Makefile Fri Apr 10 23:08:41 2020 (r359786) @@ -5,10 +5,7 @@ KMOD= kgssapi_krb5 SRCS= krb5_mech.c \ kcrypto.c \ - kcrypto_des.c \ - kcrypto_des3.c \ kcrypto_aes.c \ - kcrypto_arcfour.c \ opt_inet6.h SRCS+= kgss_if.h gssd.h From owner-svn-src-all@freebsd.org Fri Apr 10 23:10:29 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 219E427D88C; Fri, 10 Apr 2020 23:10:29 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48zYdd02gcz3HN0; Fri, 10 Apr 2020 23:10:29 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F02646220; Fri, 10 Apr 2020 23:10:28 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03ANAS9X054403; Fri, 10 Apr 2020 23:10:28 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03ANAS3N054402; Fri, 10 Apr 2020 23:10:28 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202004102310.03ANAS3N054402@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Fri, 10 Apr 2020 23:10:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359787 - head/usr.sbin/gssd X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head/usr.sbin/gssd X-SVN-Commit-Revision: 359787 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 23:10:29 -0000 Author: jhb Date: Fri Apr 10 23:10:28 2020 New Revision: 359787 URL: https://svnweb.freebsd.org/changeset/base/359787 Log: Remove the -o option from gssd(8). This uses DES and the kernel no longer supports DES for in-kernel GSS. Reviewed by: kp Relnotes: yes Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D24345 Modified: head/usr.sbin/gssd/gssd.8 head/usr.sbin/gssd/gssd.c Modified: head/usr.sbin/gssd/gssd.8 ============================================================================== --- head/usr.sbin/gssd/gssd.8 Fri Apr 10 23:08:41 2020 (r359786) +++ head/usr.sbin/gssd/gssd.8 Fri Apr 10 23:10:28 2020 (r359787) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 7, 2013 +.Dd April 10 2020 .Dt GSSD 8 .Os .Sh NAME @@ -35,7 +35,6 @@ .Nm .Op Fl d .Op Fl h -.Op Fl o .Op Fl v .Op Fl s Ar dir-list .Op Fl c Ar file-substring @@ -61,10 +60,6 @@ gssname option for the .Xr mount_nfs 8 command. -.It Fl o -Force use of DES and the associated old style GSS-API initialization token. -This may be required to make kerberized NFS mounts work against some -non-FreeBSD NFS servers. .It Fl v Run in verbose mode. In this mode, Modified: head/usr.sbin/gssd/gssd.c ============================================================================== --- head/usr.sbin/gssd/gssd.c Fri Apr 10 23:08:41 2020 (r359786) +++ head/usr.sbin/gssd/gssd.c Fri Apr 10 23:10:28 2020 (r359787) @@ -77,7 +77,6 @@ int debug_level; static char ccfile_dirlist[PATH_MAX + 1], ccfile_substring[NAME_MAX + 1]; static char pref_realm[1024]; static int verbose; -static int use_old_des; static int hostbased_initiator_cred; #ifndef WITHOUT_KERBEROS /* 1.2.752.43.13.14 */ @@ -125,7 +124,7 @@ main(int argc, char **argv) pref_realm[0] = '\0'; debug = 0; verbose = 0; - while ((ch = getopt(argc, argv, "dhovs:c:r:")) != -1) { + while ((ch = getopt(argc, argv, "dhvs:c:r:")) != -1) { switch (ch) { case 'd': debug_level++; @@ -142,17 +141,6 @@ main(int argc, char **argv) " without MK_KERBEROS\n"); #endif break; - case 'o': -#ifndef WITHOUT_KERBEROS - /* - * Force use of DES and the old type of GSSAPI token. - */ - use_old_des = 1; -#else - errx(1, "This option not available when built" - " without MK_KERBEROS\n"); -#endif - break; case 'v': verbose = 1; break; @@ -483,44 +471,6 @@ gssd_init_sec_context_1_svc(init_sec_context_args *arg } gotcred = 0; -#ifndef WITHOUT_KERBEROS - if (use_old_des != 0) { - if (cred == GSS_C_NO_CREDENTIAL) { - /* Acquire a credential for the uid. */ - maj_stat = gssd_get_user_cred(&min_stat, argp->uid, - &cred); - if (maj_stat == GSS_S_COMPLETE) - gotcred = 1; - else - gssd_verbose_out("gssd_init_sec_context: " - "get user cred failed uid=%d major=0x%x " - "minor=%d\n", (int)argp->uid, - (unsigned int)maj_stat, (int)min_stat); - } - if (cred != GSS_C_NO_CREDENTIAL) { - key_enctype = ETYPE_DES_CBC_CRC; - enctype[0] = (key_enctype >> 24) & 0xff; - enctype[1] = (key_enctype >> 16) & 0xff; - enctype[2] = (key_enctype >> 8) & 0xff; - enctype[3] = key_enctype & 0xff; - principal_desc.length = sizeof(enctype); - principal_desc.value = enctype; - result->major_status = gss_set_cred_option( - &result->minor_status, &cred, - GSS_KRB5_SET_ALLOWABLE_ENCTYPES_X, - &principal_desc); - gssd_verbose_out("gssd_init_sec_context: set allowable " - "enctype major=0x%x minor=%d\n", - (unsigned int)result->major_status, - (int)result->minor_status); - if (result->major_status != GSS_S_COMPLETE) { - if (gotcred != 0) - gss_release_cred(&min_stat, &cred); - return (TRUE); - } - } - } -#endif result->major_status = gss_init_sec_context(&result->minor_status, cred, &ctx, name, argp->mech_type, argp->req_flags, argp->time_req, argp->input_chan_bindings, From owner-svn-src-all@freebsd.org Fri Apr 10 23:13:29 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A337E27DB48; Fri, 10 Apr 2020 23:13:29 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48zYj53rhcz3HnK; Fri, 10 Apr 2020 23:13:29 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7EDC1641E; Fri, 10 Apr 2020 23:13:29 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03ANDTQY059963; Fri, 10 Apr 2020 23:13:29 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03ANDThv059962; Fri, 10 Apr 2020 23:13:29 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202004102313.03ANDThv059962@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Fri, 10 Apr 2020 23:13:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359788 - head X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head X-SVN-Commit-Revision: 359788 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 23:13:29 -0000 Author: jhb Date: Fri Apr 10 23:13:29 2020 New Revision: 359788 URL: https://svnweb.freebsd.org/changeset/base/359788 Log: Document removal of deprecated algorithms for in-kernel GSS. Modified: head/RELNOTES Modified: head/RELNOTES ============================================================================== --- head/RELNOTES Fri Apr 10 23:10:28 2020 (r359787) +++ head/RELNOTES Fri Apr 10 23:13:29 2020 (r359788) @@ -10,6 +10,10 @@ newline. Entries should be separated by a newline. Changes to this file should not be MFCed. +r359786-r359787: + Remove support for DES, Triple DES, and RC4 from in-kernel GSS + authentication. + r357627: remove elf2aout. From owner-svn-src-all@freebsd.org Fri Apr 10 23:49:35 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4028527E544; Fri, 10 Apr 2020 23:49:35 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48zZVl0bssz3Jyh; Fri, 10 Apr 2020 23:49:35 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E53D669B1; Fri, 10 Apr 2020 23:49:34 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03ANnYYl078543; Fri, 10 Apr 2020 23:49:34 GMT (envelope-from mckusick@FreeBSD.org) Received: (from mckusick@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03ANnYpK078542; Fri, 10 Apr 2020 23:49:34 GMT (envelope-from mckusick@FreeBSD.org) Message-Id: <202004102349.03ANnYpK078542@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mckusick set sender to mckusick@FreeBSD.org using -f From: Kirk McKusick Date: Fri, 10 Apr 2020 23:49:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359789 - head/sbin/fsck_ffs X-SVN-Group: head X-SVN-Commit-Author: mckusick X-SVN-Commit-Paths: head/sbin/fsck_ffs X-SVN-Commit-Revision: 359789 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 23:49:35 -0000 Author: mckusick Date: Fri Apr 10 23:49:34 2020 New Revision: 359789 URL: https://svnweb.freebsd.org/changeset/base/359789 Log: Add an inode check-hash verification when running the journalled soft update recovery code with the debugging (-d) option. As inode check-hash was first introduced to UFS in FreeBSD 13, there is no need to MFC this commit. Reported by: Chuck Silvers Sponsored by: Netflix Modified: head/sbin/fsck_ffs/suj.c Modified: head/sbin/fsck_ffs/suj.c ============================================================================== --- head/sbin/fsck_ffs/suj.c Fri Apr 10 23:13:29 2020 (r359788) +++ head/sbin/fsck_ffs/suj.c Fri Apr 10 23:49:34 2020 (r359789) @@ -109,6 +109,7 @@ struct ino_blk { LIST_ENTRY(ino_blk) ib_next; uint8_t *ib_buf; int ib_dirty; + ino_t ib_startinginum; ufs2_daddr_t ib_blk; }; LIST_HEAD(iblkhd, ino_blk); @@ -157,6 +158,7 @@ static void ino_adjust(struct suj_ino *); static void ino_build(struct suj_ino *); static int blk_isfree(ufs2_daddr_t); static void initsuj(void); +static void ino_dirty(ino_t); static void * errmalloc(size_t n) @@ -394,6 +396,7 @@ ino_read(ino_t ino) struct iblkhd *hd; struct suj_cg *sc; ufs2_daddr_t blk; + union dinode *dp; int off; blk = ino_to_fsba(fs, ino); @@ -412,6 +415,7 @@ ino_read(ino_t ino) bzero(iblk, sizeof(*iblk)); iblk->ib_buf = errmalloc(fs->fs_bsize); iblk->ib_blk = blk; + iblk->ib_startinginum = rounddown(ino, INOPB(fs)); LIST_INSERT_HEAD(hd, iblk, ib_next); if (bread(&disk, fsbtodb(fs, blk), iblk->ib_buf, fs->fs_bsize) == -1) err_suj("Failed to read inode block %jd\n", blk); @@ -420,8 +424,18 @@ found: off = ino_to_fsbo(fs, ino); if (fs->fs_magic == FS_UFS1_MAGIC) return (union dinode *)&((struct ufs1_dinode *)iblk->ib_buf)[off]; - else - return (union dinode *)&((struct ufs2_dinode *)iblk->ib_buf)[off]; + dp = (union dinode *)&((struct ufs2_dinode *)iblk->ib_buf)[off]; + if (debug && + ffs_verify_dinode_ckhash(fs, (struct ufs2_dinode *)dp) != 0) { + pwarn("ino_read: INODE CHECK-HASH FAILED"); + prtinode(ino, dp); + if (preen || reply("FIX") != 0) { + if (preen) + printf(" (FIXED)\n"); + ino_dirty(ino); + } + } + return (dp); } static void @@ -464,9 +478,25 @@ ino_dirty(ino_t ino) static void iblk_write(struct ino_blk *iblk) { + struct ufs2_dinode *dp; + int i; if (iblk->ib_dirty == 0) return; + if (debug && fs->fs_magic == FS_UFS2_MAGIC) { + dp = (struct ufs2_dinode *)iblk->ib_buf; + for (i = 0; i < INOPB(fs); dp++, i++) { + if (ffs_verify_dinode_ckhash(fs, dp) == 0) + continue; + pwarn("iblk_write: INODE CHECK-HASH FAILED"); + prtinode(iblk->ib_startinginum + i, (union dinode *)dp); + if (preen || reply("FIX") != 0) { + if (preen) + printf(" (FIXED)\n"); + ino_dirty(iblk->ib_startinginum + i); + } + } + } if (bwrite(&disk, fsbtodb(fs, iblk->ib_blk), iblk->ib_buf, fs->fs_bsize) == -1) err_suj("Failed to write inode block %jd\n", iblk->ib_blk); From owner-svn-src-all@freebsd.org Fri Apr 10 23:58:08 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 09B6A27EC73; Fri, 10 Apr 2020 23:58:08 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48zZhb6R3rz3KXL; Fri, 10 Apr 2020 23:58:07 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D81996BA1; Fri, 10 Apr 2020 23:58:07 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03ANw7n8084432; Fri, 10 Apr 2020 23:58:07 GMT (envelope-from mckusick@FreeBSD.org) Received: (from mckusick@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03ANw7AB084431; Fri, 10 Apr 2020 23:58:07 GMT (envelope-from mckusick@FreeBSD.org) Message-Id: <202004102358.03ANw7AB084431@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mckusick set sender to mckusick@FreeBSD.org using -f From: Kirk McKusick Date: Fri, 10 Apr 2020 23:58:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359790 - head/sbin/fsck_ffs X-SVN-Group: head X-SVN-Commit-Author: mckusick X-SVN-Commit-Paths: head/sbin/fsck_ffs X-SVN-Commit-Revision: 359790 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Apr 2020 23:58:08 -0000 Author: mckusick Date: Fri Apr 10 23:58:07 2020 New Revision: 359790 URL: https://svnweb.freebsd.org/changeset/base/359790 Log: Inode check-hash errors were being reported after system crashes. Trace the cause down to journalled soft updates recovery code in fsck failing to recompute the check-hash after updating an inode. As inode check-hash was first introduced to UFS in FreeBSD 13, there is no need to MFC this commit. Reported by: Chuck Silvers Sponsored by: Netflix Modified: head/sbin/fsck_ffs/suj.c Modified: head/sbin/fsck_ffs/suj.c ============================================================================== --- head/sbin/fsck_ffs/suj.c Fri Apr 10 23:49:34 2020 (r359789) +++ head/sbin/fsck_ffs/suj.c Fri Apr 10 23:58:07 2020 (r359790) @@ -1622,6 +1622,7 @@ ino_trunc(ino_t ino, off_t size) } DIP_SET(ip, di_blocks, fsbtodb(fs, totalfrags)); DIP_SET(ip, di_size, size); + ino_dirty(ino); /* * If we've truncated into the middle of a block or frag we have * to zero it here. Otherwise the file could extend into @@ -1959,6 +1960,7 @@ ino_unlinked(void) mode = DIP(ip, di_mode) & IFMT; inon = DIP(ip, di_freelink); DIP_SET(ip, di_freelink, 0); + ino_dirty(ino); /* * XXX Should this be an errx? */ From owner-svn-src-all@freebsd.org Sat Apr 11 00:12:36 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9751E27F1BA; Sat, 11 Apr 2020 00:12:36 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48zb1J3hrzz3LDZ; Sat, 11 Apr 2020 00:12:36 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 60C786F58; Sat, 11 Apr 2020 00:12:36 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03B0Cae2096548; Sat, 11 Apr 2020 00:12:36 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03B0CYUO096540; Sat, 11 Apr 2020 00:12:34 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <202004110012.03B0CYUO096540@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Sat, 11 Apr 2020 00:12:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359791 - in head/sys/powerpc: booke include powerpc X-SVN-Group: head X-SVN-Commit-Author: jhibbits X-SVN-Commit-Paths: in head/sys/powerpc: booke include powerpc X-SVN-Commit-Revision: 359791 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Apr 2020 00:12:36 -0000 Author: jhibbits Date: Sat Apr 11 00:12:34 2020 New Revision: 359791 URL: https://svnweb.freebsd.org/changeset/base/359791 Log: powerpc/booke: Change Book-E 64-bit pmap to 4-level table Summary: The existing page table is fraught with errors, since it creates a hole in the address space bits. Fix this by taking a cue from the POWER9 radix pmap, and make the page table 4 levels, 52 bits. Reviewed by: bdragon Differential Revision: https://reviews.freebsd.org/D24220 Modified: head/sys/powerpc/booke/pmap.c head/sys/powerpc/booke/pmap_32.c head/sys/powerpc/booke/pmap_64.c head/sys/powerpc/booke/trap_subr.S head/sys/powerpc/include/pmap.h head/sys/powerpc/include/pte.h head/sys/powerpc/include/vmparam.h head/sys/powerpc/powerpc/genassym.c Modified: head/sys/powerpc/booke/pmap.c ============================================================================== --- head/sys/powerpc/booke/pmap.c Fri Apr 10 23:58:07 2020 (r359790) +++ head/sys/powerpc/booke/pmap.c Sat Apr 11 00:12:34 2020 (r359791) @@ -182,10 +182,6 @@ static int mmu_booke_enter_locked(mmu_t, pmap_t, vm_of vm_prot_t, u_int flags, int8_t psind); unsigned int kptbl_min; /* Index of the first kernel ptbl. */ -unsigned int kernel_ptbls; /* Number of KVA ptbls. */ -#ifdef __powerpc64__ -unsigned int kernel_pdirs; -#endif static uma_zone_t ptbl_root_zone; /* @@ -267,7 +263,7 @@ static vm_paddr_t pte_vatopa(mmu_t, pmap_t, vm_offset_ static int pte_enter(mmu_t, pmap_t, vm_page_t, vm_offset_t, uint32_t, boolean_t); static int pte_remove(mmu_t, pmap_t, vm_offset_t, uint8_t); static pte_t *pte_find(mmu_t, pmap_t, vm_offset_t); -static void kernel_pte_alloc(vm_offset_t, vm_offset_t, vm_offset_t); +static void kernel_pte_alloc(vm_offset_t, vm_offset_t); static pv_entry_t pv_alloc(void); static void pv_free(pv_entry_t); @@ -639,10 +635,9 @@ mmu_booke_bootstrap(mmu_t mmu, vm_offset_t start, vm_o vm_paddr_t physsz, hwphyssz; u_int phys_avail_count; vm_size_t kstack0_sz; - vm_offset_t kernel_pdir, kstack0; vm_paddr_t kstack0_phys; + vm_offset_t kstack0; void *dpcpu; - vm_offset_t kernel_ptbl_root; debugf("mmu_booke_bootstrap: entered\n"); @@ -681,35 +676,8 @@ mmu_booke_bootstrap(mmu_t mmu, vm_offset_t start, vm_o (uintptr_t)msgbufp, data_end); data_end = round_page(data_end); + data_end = round_page(mmu_booke_alloc_kernel_pgtables(data_end)); -#ifdef __powerpc64__ - kernel_ptbl_root = data_end; - data_end += PP2D_NENTRIES * sizeof(pte_t**); -#else - /* Allocate space for ptbl_bufs. */ - ptbl_bufs = (struct ptbl_buf *)data_end; - data_end += sizeof(struct ptbl_buf) * PTBL_BUFS; - debugf(" ptbl_bufs at 0x%"PRI0ptrX" end = 0x%"PRI0ptrX"\n", - (uintptr_t)ptbl_bufs, data_end); - - data_end = round_page(data_end); - kernel_ptbl_root = data_end; - data_end += PDIR_NENTRIES * sizeof(pte_t*); -#endif - - /* Allocate PTE tables for kernel KVA. */ - kernel_pdir = data_end; - kernel_ptbls = howmany(VM_MAX_KERNEL_ADDRESS - VM_MIN_KERNEL_ADDRESS, - PDIR_SIZE); -#ifdef __powerpc64__ - kernel_pdirs = howmany(kernel_ptbls, PDIR_NENTRIES); - data_end += kernel_pdirs * PDIR_PAGES * PAGE_SIZE; -#endif - data_end += kernel_ptbls * PTBL_PAGES * PAGE_SIZE; - debugf(" kernel ptbls: %d\n", kernel_ptbls); - debugf(" kernel pdir at 0x%"PRI0ptrX" end = 0x%"PRI0ptrX"\n", - kernel_pdir, data_end); - /* Retrieve phys/avail mem regions */ mem_regions(&physmem_regions, &physmem_regions_sz, &availmem_regions, &availmem_regions_sz); @@ -751,15 +719,8 @@ mmu_booke_bootstrap(mmu_t mmu, vm_offset_t start, vm_o * possible additional TLB1 translations are in place (above) so that * all range up to the currently calculated 'data_end' is covered. */ + bzero((void *)data_start, data_end - data_start); dpcpu_init(dpcpu, 0); -#ifdef __powerpc64__ - memset((void *)kernel_pdir, 0, - kernel_pdirs * PDIR_PAGES * PAGE_SIZE + - kernel_ptbls * PTBL_PAGES * PAGE_SIZE); -#else - memset((void *)ptbl_bufs, 0, sizeof(struct ptbl_buf) * PTBL_SIZE); - memset((void *)kernel_pdir, 0, kernel_ptbls * PTBL_PAGES * PAGE_SIZE); -#endif /*******************************************************/ /* Set the start and end of kva. */ @@ -938,15 +899,9 @@ mmu_booke_bootstrap(mmu_t mmu, vm_offset_t start, vm_o /* Initialize (statically allocated) kernel pmap. */ /*******************************************************/ PMAP_LOCK_INIT(kernel_pmap); -#ifdef __powerpc64__ - kernel_pmap->pm_pp2d = (pte_t ***)kernel_ptbl_root; -#else - kptbl_min = VM_MIN_KERNEL_ADDRESS / PDIR_SIZE; - kernel_pmap->pm_pdir = (pte_t **)kernel_ptbl_root; -#endif debugf("kernel_pmap = 0x%"PRI0ptrX"\n", (uintptr_t)kernel_pmap); - kernel_pte_alloc(virtual_avail, kernstart, kernel_pdir); + kernel_pte_alloc(virtual_avail, kernstart); for (i = 0; i < MAXCPU; i++) { kernel_pmap->pm_tid[i] = TID_KERNEL; @@ -1327,7 +1282,7 @@ mmu_booke_enter_locked(mmu_t mmu, pmap_t pmap, vm_offs { pte_t *pte; vm_paddr_t pa; - uint32_t flags; + pte_t flags; int error, su, sync; pa = VM_PAGE_TO_PHYS(m); Modified: head/sys/powerpc/booke/pmap_32.c ============================================================================== --- head/sys/powerpc/booke/pmap_32.c Fri Apr 10 23:58:07 2020 (r359790) +++ head/sys/powerpc/booke/pmap_32.c Sat Apr 11 00:12:34 2020 (r359791) @@ -1,6 +1,7 @@ /*- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * + * Copyright (C) 2020 Justin Hibbits * Copyright (C) 2007-2009 Semihalf, Rafal Jaworowski * Copyright (C) 2006 Semihalf, Marian Balakowicz * All rights reserved. @@ -109,6 +110,9 @@ static vm_offset_t copy_page_src_va; static vm_offset_t copy_page_dst_va; static struct mtx copy_page_mutex; +static vm_offset_t kernel_ptbl_root; +static unsigned int kernel_ptbls; /* Number of KVA ptbls. */ + /**************************************************************************/ /* PMAP */ /**************************************************************************/ @@ -137,7 +141,6 @@ static vm_paddr_t pte_vatopa(mmu_t, pmap_t, vm_offset_ static int pte_enter(mmu_t, pmap_t, vm_page_t, vm_offset_t, uint32_t, boolean_t); static int pte_remove(mmu_t, pmap_t, vm_offset_t, uint8_t); static pte_t *pte_find(mmu_t, pmap_t, vm_offset_t); -static void kernel_pte_alloc(vm_offset_t, vm_offset_t, vm_offset_t); struct ptbl_buf { TAILQ_ENTRY(ptbl_buf) link; /* list link */ @@ -597,16 +600,23 @@ pte_find(mmu_t mmu, pmap_t pmap, vm_offset_t va) /* Set up kernel page tables. */ static void -kernel_pte_alloc(vm_offset_t data_end, vm_offset_t addr, vm_offset_t pdir) +kernel_pte_alloc(vm_offset_t data_end, vm_offset_t addr) { - int i; - vm_offset_t va; pte_t *pte; + vm_offset_t va; + vm_offset_t pdir_start; + int i; + kptbl_min = VM_MIN_KERNEL_ADDRESS / PDIR_SIZE; + kernel_pmap->pm_pdir = (pte_t **)kernel_ptbl_root; + + pdir_start = kernel_ptbl_root + PDIR_NENTRIES * sizeof(pte_t); + /* Initialize kernel pdir */ - for (i = 0; i < kernel_ptbls; i++) + for (i = 0; i < kernel_ptbls; i++) { kernel_pmap->pm_pdir[kptbl_min + i] = - (pte_t *)(pdir + (i * PAGE_SIZE * PTBL_PAGES)); + (pte_t *)(pdir_start + (i * PAGE_SIZE * PTBL_PAGES)); + } /* * Fill in PTEs covering kernel code and data. They are not required @@ -616,10 +626,36 @@ kernel_pte_alloc(vm_offset_t data_end, vm_offset_t add */ for (va = addr; va < data_end; va += PAGE_SIZE) { pte = &(kernel_pmap->pm_pdir[PDIR_IDX(va)][PTBL_IDX(va)]); + powerpc_sync(); *pte = PTE_RPN_FROM_PA(kernload + (va - kernstart)); *pte |= PTE_M | PTE_SR | PTE_SW | PTE_SX | PTE_WIRED | PTE_VALID | PTE_PS_4KB; } +} + +static vm_offset_t +mmu_booke_alloc_kernel_pgtables(vm_offset_t data_end) +{ + /* Allocate space for ptbl_bufs. */ + ptbl_bufs = (struct ptbl_buf *)data_end; + data_end += sizeof(struct ptbl_buf) * PTBL_BUFS; + debugf(" ptbl_bufs at 0x%"PRI0ptrX" end = 0x%"PRI0ptrX"\n", + (uintptr_t)ptbl_bufs, data_end); + + data_end = round_page(data_end); + + kernel_ptbl_root = data_end; + data_end += PDIR_NENTRIES * sizeof(pte_t*); + + /* Allocate PTE tables for kernel KVA. */ + kernel_ptbls = howmany(VM_MAX_KERNEL_ADDRESS - VM_MIN_KERNEL_ADDRESS, + PDIR_SIZE); + data_end += kernel_ptbls * PTBL_PAGES * PAGE_SIZE; + debugf(" kernel ptbls: %d\n", kernel_ptbls); + debugf(" kernel pdir at %#jx end = %#jx\n", + (uintmax_t)kernel_ptbl_root, (uintmax_t)data_end); + + return (data_end); } /* Modified: head/sys/powerpc/booke/pmap_64.c ============================================================================== --- head/sys/powerpc/booke/pmap_64.c Fri Apr 10 23:58:07 2020 (r359790) +++ head/sys/powerpc/booke/pmap_64.c Sat Apr 11 00:12:34 2020 (r359791) @@ -1,6 +1,7 @@ /*- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * + * Copyright (C) 2020 Justin Hibbits * Copyright (C) 2007-2009 Semihalf, Rafal Jaworowski * Copyright (C) 2006 Semihalf, Marian Balakowicz * All rights reserved. @@ -114,6 +115,7 @@ __FBSDID("$FreeBSD$"); unsigned int kernel_pdirs; static uma_zone_t ptbl_root_zone; +static pte_t ****kernel_ptbl_root; /* * Base of the pmap_mapdev() region. On 32-bit it immediately follows the @@ -133,186 +135,144 @@ static unsigned long ilog2(unsigned long); /* Page table management */ /**************************************************************************/ -static struct rwlock_padalign pvh_global_lock; - -#define PMAP_ROOT_SIZE (sizeof(pte_t***) * PP2D_NENTRIES) -static pte_t *ptbl_alloc(mmu_t, pmap_t, pte_t **, - unsigned int, boolean_t); -static void ptbl_free(mmu_t, pmap_t, pte_t **, unsigned int, vm_page_t); -static void ptbl_hold(mmu_t, pmap_t, pte_t **, unsigned int); +#define PMAP_ROOT_SIZE (sizeof(pte_t****) * PG_ROOT_NENTRIES) +static pte_t *ptbl_alloc(mmu_t mmu, pmap_t pmap, vm_offset_t va, + bool nosleep, bool *is_new); +static void ptbl_hold(mmu_t, pmap_t, pte_t *); static int ptbl_unhold(mmu_t, pmap_t, vm_offset_t); static vm_paddr_t pte_vatopa(mmu_t, pmap_t, vm_offset_t); static int pte_enter(mmu_t, pmap_t, vm_page_t, vm_offset_t, uint32_t, boolean_t); static int pte_remove(mmu_t, pmap_t, vm_offset_t, uint8_t); static pte_t *pte_find(mmu_t, pmap_t, vm_offset_t); -static void kernel_pte_alloc(vm_offset_t, vm_offset_t, vm_offset_t); +static void kernel_pte_alloc(vm_offset_t, vm_offset_t); /**************************************************************************/ /* Page table related */ /**************************************************************************/ -/* Initialize pool of kva ptbl buffers. */ -static void -ptbl_init(void) +/* Allocate a page, to be used in a page table. */ +static vm_offset_t +mmu_booke_alloc_page(mmu_t mmu, pmap_t pmap, unsigned int idx, bool nosleep) { -} - -/* Get a pointer to a PTE in a page table. */ -static __inline pte_t * -pte_find(mmu_t mmu, pmap_t pmap, vm_offset_t va) -{ - pte_t **pdir; - pte_t *ptbl; - - KASSERT((pmap != NULL), ("pte_find: invalid pmap")); - - pdir = pmap->pm_pp2d[PP2D_IDX(va)]; - if (!pdir) - return NULL; - ptbl = pdir[PDIR_IDX(va)]; - return ((ptbl != NULL) ? &ptbl[PTBL_IDX(va)] : NULL); -} - -/* - * allocate a page of pointers to page directories, do not preallocate the - * page tables - */ -static pte_t ** -pdir_alloc(mmu_t mmu, pmap_t pmap, unsigned int pp2d_idx, bool nosleep) -{ vm_page_t m; - pte_t **pdir; int req; - req = VM_ALLOC_NOOBJ | VM_ALLOC_WIRED; - while ((m = vm_page_alloc(NULL, pp2d_idx, req)) == NULL) { + req = VM_ALLOC_NOOBJ | VM_ALLOC_WIRED | VM_ALLOC_ZERO; + while ((m = vm_page_alloc(NULL, idx, req)) == NULL) { + if (nosleep) + return (0); + PMAP_UNLOCK(pmap); - if (nosleep) { - return (NULL); - } + rw_wunlock(&pvh_global_lock); vm_wait(NULL); + rw_wlock(&pvh_global_lock); PMAP_LOCK(pmap); } - /* Zero whole ptbl. */ - pdir = (pte_t **)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m)); - mmu_booke_zero_page(mmu, m); + if (!(m->flags & PG_ZERO)) + /* Zero whole ptbl. */ + mmu_booke_zero_page(mmu, m); - return (pdir); + return (PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m))); } -/* Free pdir pages and invalidate pdir entry. */ +/* Initialize pool of kva ptbl buffers. */ static void -pdir_free(mmu_t mmu, pmap_t pmap, unsigned int pp2d_idx, vm_page_t m) +ptbl_init(void) { - pte_t **pdir; - - pdir = pmap->pm_pp2d[pp2d_idx]; - - KASSERT((pdir != NULL), ("pdir_free: null pdir")); - - pmap->pm_pp2d[pp2d_idx] = NULL; - - vm_wire_sub(1); - vm_page_free_zero(m); } -/* - * Decrement pdir pages hold count and attempt to free pdir pages. Called - * when removing directory entry from pdir. - * - * Return 1 if pdir pages were freed. - */ -static int -pdir_unhold(mmu_t mmu, pmap_t pmap, u_int pp2d_idx) +/* Get a pointer to a PTE in a page table. */ +static __inline pte_t * +pte_find(mmu_t mmu, pmap_t pmap, vm_offset_t va) { + pte_t ***pdir_l1; pte_t **pdir; - vm_paddr_t pa; - vm_page_t m; + pte_t *ptbl; - KASSERT((pmap != kernel_pmap), - ("pdir_unhold: unholding kernel pdir!")); + KASSERT((pmap != NULL), ("pte_find: invalid pmap")); - pdir = pmap->pm_pp2d[pp2d_idx]; + pdir_l1 = pmap->pm_root[PG_ROOT_IDX(va)]; + if (pdir_l1 == NULL) + return (NULL); + pdir = pdir_l1[PDIR_L1_IDX(va)]; + if (pdir == NULL) + return (NULL); + ptbl = pdir[PDIR_IDX(va)]; - /* decrement hold count */ - pa = DMAP_TO_PHYS((vm_offset_t) pdir); - m = PHYS_TO_VM_PAGE(pa); + return ((ptbl != NULL) ? &ptbl[PTBL_IDX(va)] : NULL); +} - /* - * Free pdir page if there are no dir entries in this pdir. - */ +static bool +unhold_free_page(mmu_t mmu, pmap_t pmap, vm_page_t m) +{ + m->ref_count--; if (m->ref_count == 0) { - pdir_free(mmu, pmap, pp2d_idx, m); - return (1); + vm_wire_sub(1); + vm_page_free_zero(m); + return (true); } - return (0); -} -/* - * Increment hold count for pdir pages. This routine is used when new ptlb - * entry is being inserted into pdir. - */ -static void -pdir_hold(mmu_t mmu, pmap_t pmap, pte_t ** pdir) -{ - vm_page_t m; - - KASSERT((pmap != kernel_pmap), - ("pdir_hold: holding kernel pdir!")); - - KASSERT((pdir != NULL), ("pdir_hold: null pdir")); - - m = PHYS_TO_VM_PAGE(DMAP_TO_PHYS((vm_offset_t)pdir)); - m->ref_count++; + return (false); } -/* Allocate page table. */ -static pte_t * -ptbl_alloc(mmu_t mmu, pmap_t pmap, pte_t ** pdir, unsigned int pdir_idx, - boolean_t nosleep) +static vm_offset_t +alloc_or_hold_page(mmu_t mmu, pmap_t pmap, vm_offset_t *ptr_tbl, uint32_t index, + bool nosleep, bool hold, bool *isnew) { + vm_offset_t page; vm_page_t m; - pte_t *ptbl; - int req; - KASSERT((pdir[pdir_idx] == NULL), - ("%s: valid ptbl entry exists!", __func__)); + page = ptr_tbl[index]; + KASSERT(page != 0 || pmap != kernel_pmap, + ("NULL page table page found in kernel pmap!")); + if (page == 0) { + page = mmu_booke_alloc_page(mmu, pmap, index, nosleep); + if (ptr_tbl[index] == 0) { + *isnew = true; + ptr_tbl[index] = page; + return (page); + } + m = PHYS_TO_VM_PAGE(DMAP_TO_PHYS(page)); + page = ptr_tbl[index]; + vm_wire_sub(1); + vm_page_free_zero(m); + } - req = VM_ALLOC_NOOBJ | VM_ALLOC_WIRED; - while ((m = vm_page_alloc(NULL, pdir_idx, req)) == NULL) { - if (nosleep) - return (NULL); - PMAP_UNLOCK(pmap); - rw_wunlock(&pvh_global_lock); - vm_wait(NULL); - rw_wlock(&pvh_global_lock); - PMAP_LOCK(pmap); + if (hold) { + m = PHYS_TO_VM_PAGE(pmap_kextract(page)); + m->ref_count++; } + *isnew = false; - /* Zero whole ptbl. */ - ptbl = (pte_t *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m)); - mmu_booke_zero_page(mmu, m); - - return (ptbl); + return (page); } -/* Free ptbl pages and invalidate pdir entry. */ -static void -ptbl_free(mmu_t mmu, pmap_t pmap, pte_t ** pdir, unsigned int pdir_idx, vm_page_t m) +/* Allocate page table. */ +static pte_t* +ptbl_alloc(mmu_t mmu, pmap_t pmap, vm_offset_t va, bool nosleep, bool *is_new) { - pte_t *ptbl; + unsigned int pg_root_idx = PG_ROOT_IDX(va); + unsigned int pdir_l1_idx = PDIR_L1_IDX(va); + unsigned int pdir_idx = PDIR_IDX(va); + vm_offset_t pdir_l1, pdir, ptbl; + bool hold_page; - ptbl = pdir[pdir_idx]; + hold_page = (pmap != kernel_pmap); + pdir_l1 = alloc_or_hold_page(mmu, pmap, (vm_offset_t *)pmap->pm_root, + pg_root_idx, nosleep, hold_page, is_new); + if (pdir_l1 == 0) + return (NULL); + pdir = alloc_or_hold_page(mmu, pmap, (vm_offset_t *)pdir_l1, pdir_l1_idx, + nosleep, hold_page, is_new); + if (pdir == 0) + return (NULL); + ptbl = alloc_or_hold_page(mmu, pmap, (vm_offset_t *)pdir, pdir_idx, + nosleep, false, is_new); - KASSERT((ptbl != NULL), ("ptbl_free: null ptbl")); - - pdir[pdir_idx] = NULL; - - vm_wire_sub(1); - vm_page_free_zero(m); + return ((pte_t *)ptbl); } /* @@ -326,34 +286,43 @@ ptbl_unhold(mmu_t mmu, pmap_t pmap, vm_offset_t va) { pte_t *ptbl; vm_page_t m; - u_int pp2d_idx; + u_int pg_root_idx; + pte_t ***pdir_l1; + u_int pdir_l1_idx; pte_t **pdir; u_int pdir_idx; - pp2d_idx = PP2D_IDX(va); + pg_root_idx = PG_ROOT_IDX(va); + pdir_l1_idx = PDIR_L1_IDX(va); pdir_idx = PDIR_IDX(va); KASSERT((pmap != kernel_pmap), ("ptbl_unhold: unholding kernel ptbl!")); - pdir = pmap->pm_pp2d[pp2d_idx]; + pdir_l1 = pmap->pm_root[pg_root_idx]; + pdir = pdir_l1[pdir_l1_idx]; ptbl = pdir[pdir_idx]; /* decrement hold count */ m = PHYS_TO_VM_PAGE(DMAP_TO_PHYS((vm_offset_t) ptbl)); - /* - * Free ptbl pages if there are no pte entries in this ptbl. - * ref_count has the same value for all ptbl pages, so check the - * last page. - */ - m->ref_count--; - if (m->ref_count == 0) { - ptbl_free(mmu, pmap, pdir, pdir_idx, m); - pdir_unhold(mmu, pmap, pp2d_idx); + if (!unhold_free_page(mmu, pmap, m)) + return (0); + + pdir[pdir_idx] = NULL; + m = PHYS_TO_VM_PAGE(DMAP_TO_PHYS((vm_offset_t) pdir)); + + if (!unhold_free_page(mmu, pmap, m)) return (1); - } - return (0); + + pdir_l1[pdir_l1_idx] = NULL; + m = PHYS_TO_VM_PAGE(DMAP_TO_PHYS((vm_offset_t) pdir_l1)); + + if (!unhold_free_page(mmu, pmap, m)) + return (1); + pmap->pm_root[pg_root_idx] = NULL; + + return (1); } /* @@ -361,18 +330,13 @@ ptbl_unhold(mmu_t mmu, pmap_t pmap, vm_offset_t va) * entry is being inserted into ptbl. */ static void -ptbl_hold(mmu_t mmu, pmap_t pmap, pte_t ** pdir, unsigned int pdir_idx) +ptbl_hold(mmu_t mmu, pmap_t pmap, pte_t *ptbl) { - pte_t *ptbl; vm_page_t m; KASSERT((pmap != kernel_pmap), ("ptbl_hold: holding kernel ptbl!")); - ptbl = pdir[pdir_idx]; - - KASSERT((ptbl != NULL), ("ptbl_hold: null ptbl")); - m = PHYS_TO_VM_PAGE(DMAP_TO_PHYS((vm_offset_t) ptbl)); m->ref_count++; } @@ -389,7 +353,8 @@ pte_remove(mmu_t mmu, pmap_t pmap, vm_offset_t va, u_i pte_t *pte; pte = pte_find(mmu, pmap, va); - KASSERT(pte != NULL, ("%s: NULL pte", __func__)); + KASSERT(pte != NULL, ("%s: NULL pte for va %#jx, pmap %p", + __func__, (uintmax_t)va, pmap)); if (!PTE_ISVALID(pte)) return (0); @@ -442,27 +407,17 @@ static int pte_enter(mmu_t mmu, pmap_t pmap, vm_page_t m, vm_offset_t va, uint32_t flags, boolean_t nosleep) { - unsigned int pp2d_idx = PP2D_IDX(va); - unsigned int pdir_idx = PDIR_IDX(va); unsigned int ptbl_idx = PTBL_IDX(va); pte_t *ptbl, *pte, pte_tmp; - pte_t **pdir; + bool is_new; /* Get the page directory pointer. */ - pdir = pmap->pm_pp2d[pp2d_idx]; - if (pdir == NULL) - pdir = pdir_alloc(mmu, pmap, pp2d_idx, nosleep); - - /* Get the page table pointer. */ - ptbl = pdir[pdir_idx]; - + ptbl = ptbl_alloc(mmu, pmap, va, nosleep, &is_new); if (ptbl == NULL) { - /* Allocate page table pages. */ - ptbl = ptbl_alloc(mmu, pmap, pdir, pdir_idx, nosleep); - if (ptbl == NULL) { - KASSERT(nosleep, ("nosleep and NULL ptbl")); - return (ENOMEM); - } + KASSERT(nosleep, ("nosleep and NULL ptbl")); + return (ENOMEM); + } + if (is_new) { pte = &ptbl[ptbl_idx]; } else { /* @@ -478,18 +433,10 @@ pte_enter(mmu_t mmu, pmap_t pmap, vm_page_t m, vm_offs * pages. */ if (pmap != kernel_pmap) - ptbl_hold(mmu, pmap, pdir, pdir_idx); + ptbl_hold(mmu, pmap, ptbl); } } - if (pdir[pdir_idx] == NULL) { - if (pmap != kernel_pmap && pmap->pm_pp2d[pp2d_idx] != NULL) - pdir_hold(mmu, pmap, pdir); - pdir[pdir_idx] = ptbl; - } - if (pmap->pm_pp2d[pp2d_idx] == NULL) - pmap->pm_pp2d[pp2d_idx] = pdir; - /* * Insert pv_entry into pv_list for mapped page if part of managed * memory. @@ -534,25 +481,45 @@ pte_vatopa(mmu_t mmu, pmap_t pmap, vm_offset_t va) /* allocate pte entries to manage (addr & mask) to (addr & mask) + size */ static void -kernel_pte_alloc(vm_offset_t data_end, vm_offset_t addr, vm_offset_t pdir) +kernel_pte_alloc(vm_offset_t data_end, vm_offset_t addr) { - int i, j; - vm_offset_t va; pte_t *pte; + vm_size_t kva_size; + int kernel_pdirs, kernel_pgtbls, pdir_l1s; + vm_offset_t va, l1_va, pdir_va, ptbl_va; + int i, j, k; - va = addr; + kva_size = VM_MAX_KERNEL_ADDRESS - VM_MIN_KERNEL_ADDRESS; + kernel_pmap->pm_root = kernel_ptbl_root; + pdir_l1s = howmany(kva_size, PG_ROOT_SIZE); + kernel_pdirs = howmany(kva_size, PDIR_L1_SIZE); + kernel_pgtbls = howmany(kva_size, PDIR_SIZE); + /* Initialize kernel pdir */ - for (i = 0; i < kernel_pdirs; i++) { - kernel_pmap->pm_pp2d[i + PP2D_IDX(va)] = - (pte_t **)(pdir + (i * PAGE_SIZE * PDIR_PAGES)); - for (j = PDIR_IDX(va + (i * PAGE_SIZE * PDIR_NENTRIES * PTBL_NENTRIES)); - j < PDIR_NENTRIES; j++) { - kernel_pmap->pm_pp2d[i + PP2D_IDX(va)][j] = - (pte_t *)(pdir + (kernel_pdirs * PAGE_SIZE) + - (((i * PDIR_NENTRIES) + j) * PAGE_SIZE)); - } + l1_va = (vm_offset_t)kernel_ptbl_root + + round_page(PG_ROOT_NENTRIES * sizeof(pte_t ***)); + pdir_va = l1_va + pdir_l1s * PAGE_SIZE; + ptbl_va = pdir_va + kernel_pdirs * PAGE_SIZE; + if (bootverbose) { + printf("ptbl_root_va: %#lx\n", (vm_offset_t)kernel_ptbl_root); + printf("l1_va: %#lx (%d entries)\n", l1_va, pdir_l1s); + printf("pdir_va: %#lx(%d entries)\n", pdir_va, kernel_pdirs); + printf("ptbl_va: %#lx(%d entries)\n", ptbl_va, kernel_pgtbls); } + va = VM_MIN_KERNEL_ADDRESS; + for (i = 0; i < pdir_l1s; i++, l1_va += PAGE_SIZE) { + kernel_pmap->pm_root[i] = (pte_t ***)l1_va; + for (j = 0; + j < PDIR_L1_NENTRIES && va < VM_MAX_KERNEL_ADDRESS; + j++, pdir_va += PAGE_SIZE) { + kernel_pmap->pm_root[i][j] = (pte_t **)pdir_va; + for (k = 0; + k < PDIR_NENTRIES && va < VM_MAX_KERNEL_ADDRESS; + k++, va += PDIR_SIZE, ptbl_va += PAGE_SIZE) + kernel_pmap->pm_root[i][j][k] = (pte_t *)ptbl_va; + } + } /* * Fill in PTEs covering kernel code and data. They are not required * for address translation, as this area is covered by static TLB1 @@ -560,13 +527,28 @@ kernel_pte_alloc(vm_offset_t data_end, vm_offset_t add * addresses. */ for (va = addr; va < data_end; va += PAGE_SIZE) { - pte = &(kernel_pmap->pm_pp2d[PP2D_IDX(va)][PDIR_IDX(va)][PTBL_IDX(va)]); + pte = &(kernel_pmap->pm_root[PG_ROOT_IDX(va)][PDIR_L1_IDX(va)][PDIR_IDX(va)][PTBL_IDX(va)]); *pte = PTE_RPN_FROM_PA(kernload + (va - kernstart)); *pte |= PTE_M | PTE_SR | PTE_SW | PTE_SX | PTE_WIRED | PTE_VALID | PTE_PS_4KB; } } +static vm_offset_t +mmu_booke_alloc_kernel_pgtables(vm_offset_t data_end) +{ + vm_size_t kva_size = VM_MAX_KERNEL_ADDRESS - VM_MIN_KERNEL_ADDRESS; + kernel_ptbl_root = (pte_t ****)data_end; + + data_end += round_page(PG_ROOT_NENTRIES * sizeof(pte_t ***)); + data_end += howmany(kva_size, PG_ROOT_SIZE) * PAGE_SIZE; + data_end += howmany(kva_size, PDIR_L1_SIZE) * PAGE_SIZE; + data_end += howmany(kva_size, PDIR_SIZE) * PAGE_SIZE; + + return (data_end); +} + + /* * Initialize a preallocated and zeroed pmap structure, * such as one in a vmspace structure. @@ -585,8 +567,8 @@ mmu_booke_pinit(mmu_t mmu, pmap_t pmap) pmap->pm_tid[i] = TID_NONE; CPU_ZERO(&kernel_pmap->pm_active); bzero(&pmap->pm_stats, sizeof(pmap->pm_stats)); - pmap->pm_pp2d = uma_zalloc(ptbl_root_zone, M_WAITOK); - bzero(pmap->pm_pp2d, sizeof(pte_t **) * PP2D_NENTRIES); + pmap->pm_root = uma_zalloc(ptbl_root_zone, M_WAITOK); + bzero(pmap->pm_root, sizeof(pte_t **) * PG_ROOT_NENTRIES); } /* @@ -601,7 +583,7 @@ mmu_booke_release(mmu_t mmu, pmap_t pmap) KASSERT(pmap->pm_stats.resident_count == 0, ("pmap_release: pmap resident count %ld != 0", pmap->pm_stats.resident_count)); - uma_zfree(ptbl_root_zone, pmap->pm_pp2d); + uma_zfree(ptbl_root_zone, pmap->pm_root); } static void Modified: head/sys/powerpc/booke/trap_subr.S ============================================================================== --- head/sys/powerpc/booke/trap_subr.S Fri Apr 10 23:58:07 2020 (r359790) +++ head/sys/powerpc/booke/trap_subr.S Sat Apr 11 00:12:34 2020 (r359791) @@ -800,11 +800,16 @@ pte_lookup: beq 1f /* fail quickly if pmap is invalid */ #ifdef __powerpc64__ - rldicl %r21, %r31, (64 - PP2D_L_L), (64 - PP2D_L_NUM) /* pp2d offset */ - rldicl %r25, %r31, (64 - PP2D_H_L), (64 - PP2D_H_NUM) - rldimi %r21, %r25, PP2D_L_NUM, (64 - (PP2D_L_NUM + PP2D_H_NUM)) - slwi %r21, %r21, PP2D_ENTRY_SHIFT /* multiply by pp2d entry size */ - ld %r25, PM_PP2D(%r26) /* pmap pm_pp2d[] address */ + rldicl %r21, %r31, (64 - PG_ROOT_L), (64 - PG_ROOT_NUM) /* pp2d offset */ + slwi %r21, %r21, PG_ROOT_ENTRY_SHIFT /* multiply by pp2d entry size */ + ld %r25, PM_ROOT(%r26) /* pmap pm_pp2d[] address */ + ldx %r25, %r25, %r21 /* get pdir address, i.e. pmap->pm_pp2d[pp2d_idx] * */ + + cmpdi %r25, 0 + beq 2f + + rldicl %r21, %r31, (64 - PDIR_L1_L), (64 - PDIR_L1_NUM) /* pp2d offset */ + slwi %r21, %r21, PDIR_L1_ENTRY_SHIFT /* multiply by pp2d entry size */ ldx %r25, %r25, %r21 /* get pdir address, i.e. pmap->pm_pp2d[pp2d_idx] * */ cmpdi %r25, 0 Modified: head/sys/powerpc/include/pmap.h ============================================================================== --- head/sys/powerpc/include/pmap.h Fri Apr 10 23:58:07 2020 (r359790) +++ head/sys/powerpc/include/pmap.h Sat Apr 11 00:12:34 2020 (r359791) @@ -165,7 +165,7 @@ struct pmap { * Page table directory, * array of pointers to page directories. */ - pte_t ***pm_pp2d; + pte_t ****pm_root; #else /* * Page table directory, Modified: head/sys/powerpc/include/pte.h ============================================================================== --- head/sys/powerpc/include/pte.h Fri Apr 10 23:58:07 2020 (r359790) +++ head/sys/powerpc/include/pte.h Sat Apr 11 00:12:34 2020 (r359791) @@ -295,40 +295,52 @@ typedef uint64_t pte_t; * The virtual address is: * * 4K page size - * +-----+-----+-----+-------+-------------+-------------+----------------+ - * | - |p2d#h| - | p2d#l | dir# | pte# | off in 4K page | - * +-----+-----+-----+-------+-------------+-------------+----------------+ - * 63 62 61 60 59 40 39 30 29 ^ 21 20 ^ 12 11 0 + * +-----+-----------+-------+-------------+-------------+----------------+ + * | - | pg_root |pdir_l1| dir# | pte# | off in 4K page | + * +-----+-----------+-------+-------------+-------------+----------------+ + * 63 52 51 39 38 30 29 ^ 21 20 ^ 12 11 0 * | | * index in 1 page of pointers * - * 1st level - pointers to page table directory (pp2d) + * 1st level - Root page table * - * pp2d consists of PP2D_NENTRIES entries, each being a pointer to + * pp2d consists of PG_ROOT_NENTRIES entries, each being a pointer to * second level entity, i.e. the page table directory (pdir). */ -#define PP2D_H_H 61 -#define PP2D_H_L 60 -#define PP2D_L_H 39 -#define PP2D_L_L 30 /* >30 would work with no page table pool */ -#define PP2D_SIZE (1 << PP2D_L_L) /* va range mapped by pp2d */ -#define PP2D_L_SHIFT PP2D_L_L -#define PP2D_L_NUM (PP2D_L_H-PP2D_L_L+1) -#define PP2D_L_MASK ((1<> PP2D_H_SHIFT) & PP2D_H_MASK) | ((va >> PP2D_L_SHIFT) & PP2D_L_MASK)) -#define PP2D_NENTRIES (1<<(PP2D_L_NUM+PP2D_H_NUM)) -#define PP2D_ENTRY_SHIFT 3 /* log2 (sizeof(struct pte_entry **)) */ +#define PG_ROOT_H 51 +#define PG_ROOT_L 39 +#define PG_ROOT_SIZE (1UL << PG_ROOT_L) /* va range mapped by pp2d */ +#define PG_ROOT_SHIFT PG_ROOT_L +#define PG_ROOT_NUM (PG_ROOT_H - PG_ROOT_L + 1) +#define PG_ROOT_MASK ((1 << PG_ROOT_NUM) - 1) +#define PG_ROOT_IDX(va) ((va >> PG_ROOT_SHIFT) & PG_ROOT_MASK) +#define PG_ROOT_NENTRIES (1 << PG_ROOT_NUM) +#define PG_ROOT_ENTRY_SHIFT 3 /* log2 (sizeof(struct pte_entry **)) */ /* - * 2nd level - page table directory (pdir) + * 2nd level - page directory directory (pdir l1) * * pdir consists of PDIR_NENTRIES entries, each being a pointer to * second level entity, i.e. the actual page table (ptbl). */ -#define PDIR_H (PP2D_L_L-1) +#define PDIR_L1_H (PG_ROOT_L-1) +#define PDIR_L1_L 30 +#define PDIR_L1_NUM (PDIR_L1_H-PDIR_L1_L+1) +#define PDIR_L1_SIZE (1 << PDIR_L1_L) /* va range mapped by pdir */ +#define PDIR_L1_MASK ((1<> PDIR_L1_SHIFT) & PDIR_L1_MASK) +#define PDIR_L1_ENTRY_SHIFT 3 /* log2 (sizeof(struct pte_entry *)) */ +#define PDIR_L1_PAGES ((PDIR_L1_NENTRIES * (1< Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C14E127F34E; Sat, 11 Apr 2020 00:16:51 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48zb6C4pBvz3LRC; Sat, 11 Apr 2020 00:16:51 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A01196F6A; Sat, 11 Apr 2020 00:16:51 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03B0GpQd096823; Sat, 11 Apr 2020 00:16:51 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03B0GpXx096821; Sat, 11 Apr 2020 00:16:51 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <202004110016.03B0GpXx096821@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Sat, 11 Apr 2020 00:16:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359792 - head/sys/powerpc/booke X-SVN-Group: head X-SVN-Commit-Author: jhibbits X-SVN-Commit-Paths: head/sys/powerpc/booke X-SVN-Commit-Revision: 359792 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Apr 2020 00:16:51 -0000 Author: jhibbits Date: Sat Apr 11 00:16:50 2020 New Revision: 359792 URL: https://svnweb.freebsd.org/changeset/base/359792 Log: powerpc/booke: Add pte_find_next() to find the next in-use PTE Summary: Iterating over VM_MIN_ADDRESS->VM_MAXUSER_ADDRESS can take a very long time iterating one page at a time (2**(log_2(SIZE)-12) operations), yielding possibly several days or even weeks on 64-bit Book-E, even for a largely empty, which can happen when swapping out a process by vmdaemon. Speed this up by instead finding the next PTE at or equal to the given VA. Reviewed by: bdragon Differential Revision: https://reviews.freebsd.org/D24238 Modified: head/sys/powerpc/booke/pmap.c head/sys/powerpc/booke/pmap_32.c head/sys/powerpc/booke/pmap_64.c Modified: head/sys/powerpc/booke/pmap.c ============================================================================== --- head/sys/powerpc/booke/pmap.c Sat Apr 11 00:12:34 2020 (r359791) +++ head/sys/powerpc/booke/pmap.c Sat Apr 11 00:16:50 2020 (r359792) @@ -1532,9 +1532,12 @@ mmu_booke_remove(mmu_t mmu, pmap_t pmap, vm_offset_t v rw_wlock(&pvh_global_lock); PMAP_LOCK(pmap); for (; va < endva; va += PAGE_SIZE) { - pte = pte_find(mmu, pmap, va); - if ((pte != NULL) && PTE_ISVALID(pte)) - pte_remove(mmu, pmap, va, hold_flag); + pte = pte_find_next(mmu, pmap, &va); + if ((pte == NULL) || !PTE_ISVALID(pte)) + break; + if (va >= endva) + break; + pte_remove(mmu, pmap, va, hold_flag); } PMAP_UNLOCK(pmap); rw_wunlock(&pvh_global_lock); Modified: head/sys/powerpc/booke/pmap_32.c ============================================================================== --- head/sys/powerpc/booke/pmap_32.c Sat Apr 11 00:12:34 2020 (r359791) +++ head/sys/powerpc/booke/pmap_32.c Sat Apr 11 00:16:50 2020 (r359792) @@ -598,6 +598,35 @@ pte_find(mmu_t mmu, pmap_t pmap, vm_offset_t va) return (NULL); } +/* Get a pointer to a PTE in a page table, or the next closest (greater) one. */ +static __inline pte_t * +pte_find_next(mmu_t mmu, pmap_t pmap, vm_offset_t *pva) +{ + vm_offset_t va; + pte_t **pdir; + pte_t *pte; + unsigned long i, j; + + KASSERT((pmap != NULL), ("pte_find: invalid pmap")); + + va = *pva; + i = PDIR_IDX(va); + j = PTBL_IDX(va); + pdir = pmap->pm_pdir; + for (; i < PDIR_NENTRIES; i++, j = 0) { + if (pdir[i] == NULL) + continue; + for (; j < PTBL_NENTRIES; j++) { + pte = &pdir[i][j]; + if (!PTE_ISVALID(pte)) + continue; + *pva = PDIR_SIZE * i + PAGE_SIZE * j; + return (pte); + } + } + return (NULL); +} + /* Set up kernel page tables. */ static void kernel_pte_alloc(vm_offset_t data_end, vm_offset_t addr) Modified: head/sys/powerpc/booke/pmap_64.c ============================================================================== --- head/sys/powerpc/booke/pmap_64.c Sat Apr 11 00:12:34 2020 (r359791) +++ head/sys/powerpc/booke/pmap_64.c Sat Apr 11 00:16:50 2020 (r359792) @@ -145,6 +145,7 @@ static vm_paddr_t pte_vatopa(mmu_t, pmap_t, vm_offset_ static int pte_enter(mmu_t, pmap_t, vm_page_t, vm_offset_t, uint32_t, boolean_t); static int pte_remove(mmu_t, pmap_t, vm_offset_t, uint8_t); static pte_t *pte_find(mmu_t, pmap_t, vm_offset_t); +static pte_t *pte_find_next(mmu_t, pmap_t, vm_offset_t *); static void kernel_pte_alloc(vm_offset_t, vm_offset_t); /**************************************************************************/ @@ -202,6 +203,50 @@ pte_find(mmu_t mmu, pmap_t pmap, vm_offset_t va) ptbl = pdir[PDIR_IDX(va)]; return ((ptbl != NULL) ? &ptbl[PTBL_IDX(va)] : NULL); +} + +/* Get a pointer to a PTE in a page table, or the next closest (greater) one. */ +static __inline pte_t * +pte_find_next(mmu_t mmu, pmap_t pmap, vm_offset_t *pva) +{ + vm_offset_t va; + pte_t ****pm_root; + pte_t *pte; + unsigned long i, j, k, l; + + KASSERT((pmap != NULL), ("pte_find: invalid pmap")); + + va = *pva; + i = PG_ROOT_IDX(va); + j = PDIR_L1_IDX(va); + k = PDIR_IDX(va); + l = PTBL_IDX(va); + pm_root = pmap->pm_root; + /* truncate the VA for later. */ + va &= ~((1UL << (PG_ROOT_H + 1)) - 1); + for (; i < PG_ROOT_NENTRIES; i++, j = 0) { + if (pm_root[i] == 0) + continue; + for (; j < PDIR_L1_NENTRIES; j++, k = 0) { + if (pm_root[i][j] == 0) + continue; + for (; k < PDIR_NENTRIES; k++, l = 0) { + if (pm_root[i][j][k] == NULL) + continue; + for (; l < PTBL_NENTRIES; l++) { + pte = &pm_root[i][j][k][l]; + if (!PTE_ISVALID(pte)) + continue; + *pva = va + PG_ROOT_SIZE * i + + PDIR_L1_SIZE * j + + PDIR_SIZE * k + + PAGE_SIZE * l; + return (pte); + } + } + } + } + return (NULL); } static bool From owner-svn-src-all@freebsd.org Sat Apr 11 00:17:56 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6F06427F3CC; Sat, 11 Apr 2020 00:17:56 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48zb7S2Kktz3LZB; Sat, 11 Apr 2020 00:17:56 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4B2B86F74; Sat, 11 Apr 2020 00:17:56 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03B0HuqS096914; Sat, 11 Apr 2020 00:17:56 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03B0Hu4m096913; Sat, 11 Apr 2020 00:17:56 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <202004110017.03B0Hu4m096913@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Sat, 11 Apr 2020 00:17:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359793 - head/sys/powerpc/booke X-SVN-Group: head X-SVN-Commit-Author: jhibbits X-SVN-Commit-Paths: head/sys/powerpc/booke X-SVN-Commit-Revision: 359793 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Apr 2020 00:17:56 -0000 Author: jhibbits Date: Sat Apr 11 00:17:55 2020 New Revision: 359793 URL: https://svnweb.freebsd.org/changeset/base/359793 Log: powerpc/booke: Use power-of-two mappings in 64-bit pmap_mapdev Summary: This reduces the precious TLB1 entry consumption (64 possible in existing 64-bit cores), by adjusting the size and alignment of a device mapping to a power of 2, to encompass the full mapping and its surroundings. One caveat with this: If a mapping really is smaller than a power of 2, it's possible to get a machine check or hang if the 'missing' physical space is accessed. In practice this should not be an issue for users, as devices overwhelmingly have physical spaces on power-of-two sizes and alignments, and any design that includes devices which don't follow this can be addressed by undefining the POW2_MAPPINGS guard. Reviewed by: bdragon Differential Revision: https://reviews.freebsd.org/D24248 Modified: head/sys/powerpc/booke/pmap.c Modified: head/sys/powerpc/booke/pmap.c ============================================================================== --- head/sys/powerpc/booke/pmap.c Sat Apr 11 00:16:50 2020 (r359792) +++ head/sys/powerpc/booke/pmap.c Sat Apr 11 00:17:55 2020 (r359793) @@ -128,6 +128,10 @@ __FBSDID("$FreeBSD$"); #include "mmu_if.h" #define SPARSE_MAPDEV + +/* Use power-of-two mappings in mmu_booke_mapdev(), to save entries. */ +#define POW2_MAPPINGS + #ifdef DEBUG #define debugf(fmt, args...) printf(fmt, ##args) #else @@ -2211,6 +2215,8 @@ tlb1_find_pa(vm_paddr_t pa, tlb_entry_t *e) for (i = 0; i < TLB1_ENTRIES; i++) { tlb1_read_entry(e, i); if ((e->mas1 & MAS1_VALID) == 0) + continue; + if (e->phys == pa) return (i); } return (-1); @@ -2224,7 +2230,7 @@ mmu_booke_mapdev_attr(mmu_t mmu, vm_paddr_t pa, vm_siz #ifndef __powerpc64__ uintptr_t tmpva; #endif - uintptr_t va; + uintptr_t va, retva; vm_size_t sz; int i; int wimge; @@ -2245,7 +2251,7 @@ mmu_booke_mapdev_attr(mmu_t mmu, vm_paddr_t pa, vm_siz if (tmppa >= e.phys && tmppa < e.phys + e.size) { va = e.virt + (pa - e.phys); tmppa = e.phys + e.size; - sz -= MIN(sz, e.size); + sz -= MIN(sz, e.size - (pa - e.phys)); while (sz > 0 && (i = tlb1_find_pa(tmppa, &e)) != -1) { if (wimge != (e.mas2 & (MAS2_WIMGE_MASK & ~_TLB_ENTRY_SHARED))) break; @@ -2264,6 +2270,25 @@ mmu_booke_mapdev_attr(mmu_t mmu, vm_paddr_t pa, vm_siz KASSERT(pa < VM_MAPDEV_PA_MAX, ("Unsupported physical address! %lx", pa)); va = VM_MAPDEV_BASE + pa; + retva = va; +#ifdef POW2_MAPPINGS + /* + * Align the mapping to a power of 2 size, taking into account that we + * may need to increase the size multiple times to satisfy the size and + * alignment requirements. + * + * This works in the general case because it's very rare (near never?) + * to have different access properties (WIMG) within a single + * power-of-two region. If a design does call for that, POW2_MAPPINGS + * can be undefined, and exact mappings will be used instead. + */ + sz = size; + size = roundup2(size, 1 << ilog2(size)); + while (rounddown2(va, size) + size < va + sz) + size <<= 1; + va = rounddown2(va, size); + pa = rounddown2(pa, size); +#endif #else /* * The device mapping area is between VM_MAXUSER_ADDRESS and @@ -2288,14 +2313,15 @@ mmu_booke_mapdev_attr(mmu_t mmu, vm_paddr_t pa, vm_siz sz = sz ? min(roundup(sz + 3, 4), flsl(size) - 1) : flsl(size) - 1; va = roundup(tlb1_map_base, 1 << sz) | (((1 << sz) - 1) & pa); } while (!atomic_cmpset_int(&tlb1_map_base, tmpva, va + size)); +#endif va = atomic_fetchadd_int(&tlb1_map_base, size); + retva = va; #endif -#endif if (tlb1_mapin_region(va, pa, size, tlb_calc_wimg(pa, ma)) != size) return (NULL); - return ((void *)va); + return ((void *)retva); } /* @@ -2584,6 +2610,24 @@ tlb1_find_free(void) } static void +tlb1_purge_va_range(vm_offset_t va, vm_size_t size) +{ + tlb_entry_t e; + int i; + + for (i = 0; i < TLB1_ENTRIES; i++) { + tlb1_read_entry(&e, i); + if ((e.mas1 & MAS1_VALID) == 0) + continue; + if ((e.mas2 & MAS2_EPN_MASK) >= va && + (e.mas2 & MAS2_EPN_MASK) < va + size) { + mtspr(SPR_MAS1, e.mas1 & ~MAS1_VALID); + __asm __volatile("isync; tlbwe; isync; msync"); + } + } +} + +static void tlb1_write_entry_int(void *arg) { struct tlbwrite_args *args = arg; @@ -2591,6 +2635,7 @@ tlb1_write_entry_int(void *arg) idx = args->idx; if (idx == -1) { + tlb1_purge_va_range(args->e->virt, args->e->size); idx = tlb1_find_free(); if (idx == -1) panic("No free TLB1 entries!\n"); From owner-svn-src-all@freebsd.org Sat Apr 11 05:12:39 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 215B52AEDE3; Sat, 11 Apr 2020 05:12:39 +0000 (UTC) (envelope-from jah@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48zjgV73xhz48gl; Sat, 11 Apr 2020 05:12:38 +0000 (UTC) (envelope-from jah@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EDA73AC7F; Sat, 11 Apr 2020 05:12:38 +0000 (UTC) (envelope-from jah@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03B5CcJJ081878; Sat, 11 Apr 2020 05:12:38 GMT (envelope-from jah@FreeBSD.org) Received: (from jah@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03B5Ccrm081877; Sat, 11 Apr 2020 05:12:38 GMT (envelope-from jah@FreeBSD.org) Message-Id: <202004110512.03B5Ccrm081877@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jah set sender to jah@FreeBSD.org using -f From: "Jason A. Harmening" Date: Sat, 11 Apr 2020 05:12:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359794 - stable/12/sys/kern X-SVN-Group: stable-12 X-SVN-Commit-Author: jah X-SVN-Commit-Paths: stable/12/sys/kern X-SVN-Commit-Revision: 359794 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Apr 2020 05:12:39 -0000 Author: jah Date: Sat Apr 11 05:12:38 2020 New Revision: 359794 URL: https://svnweb.freebsd.org/changeset/base/359794 Log: MFC r359501: deadlkres: include thread name in panic messages Modified: stable/12/sys/kern/kern_clock.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/kern/kern_clock.c ============================================================================== --- stable/12/sys/kern/kern_clock.c Sat Apr 11 00:17:55 2020 (r359793) +++ stable/12/sys/kern/kern_clock.c Sat Apr 11 05:12:38 2020 (r359794) @@ -204,8 +204,9 @@ deadlres_td_on_lock(struct proc *p, struct thread *td, * Accordingly with provided thresholds, this thread is stuck * for too long on a turnstile. */ - panic("%s: possible deadlock detected for %p, " - "blocked for %d ticks\n", __func__, td, tticks); + panic("%s: possible deadlock detected for %p (%s), " + "blocked for %d ticks\n", __func__, + td, sched_tdname(td), tticks); } static void @@ -238,8 +239,9 @@ deadlres_td_sleep_q(struct proc *p, struct thread *td, if (!strcmp(blessed[i], td->td_wmesg)) return; - panic("%s: possible deadlock detected for %p, " - "blocked for %d ticks\n", __func__, td, tticks); + panic("%s: possible deadlock detected for %p (%s), " + "blocked for %d ticks\n", __func__, + td, sched_tdname(td), tticks); } } From owner-svn-src-all@freebsd.org Sat Apr 11 07:24:58 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 34FE02B19B3; Sat, 11 Apr 2020 07:24:58 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48zmcB0CgMz4Gm3; Sat, 11 Apr 2020 07:24:58 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F2693C6D1; Sat, 11 Apr 2020 07:24:57 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03B7OvDl061927; Sat, 11 Apr 2020 07:24:57 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03B7Ovt3061926; Sat, 11 Apr 2020 07:24:57 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <202004110724.03B7Ovt3061926@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Sat, 11 Apr 2020 07:24:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359795 - head/sys/dev/acpi_support X-SVN-Group: head X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: head/sys/dev/acpi_support X-SVN-Commit-Revision: 359795 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Apr 2020 07:24:58 -0000 Author: delphij Date: Sat Apr 11 07:24:57 2020 New Revision: 359795 URL: https://svnweb.freebsd.org/changeset/base/359795 Log: Avoid using a variable solely for sizes that are never meant to be modified runtime. No functional change. MFC after: 2 weeks Modified: head/sys/dev/acpi_support/acpi_hp.c Modified: head/sys/dev/acpi_support/acpi_hp.c ============================================================================== --- head/sys/dev/acpi_support/acpi_hp.c Sat Apr 11 05:12:38 2020 (r359794) +++ head/sys/dev/acpi_support/acpi_hp.c Sat Apr 11 07:24:57 2020 (r359795) @@ -962,10 +962,9 @@ acpi_hp_get_cmi_block(device_t wmi_dev, const char* gu ACPI_BUFFER out = { ACPI_ALLOCATE_BUFFER, NULL }; int i; int outlen; - int size = 255; int has_enums = 0; int valuebase = 0; - char string_buffer[size]; + char string_buffer[255]; int enumbase; outlen = 0; @@ -1019,18 +1018,21 @@ acpi_hp_get_cmi_block(device_t wmi_dev, const char* gu if (detail & ACPI_HP_CMI_DETAIL_PATHS) { strlcat(outbuf, acpi_hp_get_string_from_object( - &obj->Package.Elements[2], string_buffer, size), outsize); + &obj->Package.Elements[2], + string_buffer, sizeof(string_buffer)), outsize); outlen += 48; while (strlen(outbuf) < outlen) strlcat(outbuf, " ", outsize); } strlcat(outbuf, acpi_hp_get_string_from_object( - &obj->Package.Elements[0], string_buffer, size), outsize); + &obj->Package.Elements[0], + string_buffer, sizeof(string_buffer)), outsize); outlen += 43; while (strlen(outbuf) < outlen) strlcat(outbuf, " ", outsize); strlcat(outbuf, acpi_hp_get_string_from_object( - &obj->Package.Elements[valuebase], string_buffer, size), outsize); + &obj->Package.Elements[valuebase], + string_buffer, sizeof(string_buffer)), outsize); outlen += 21; while (strlen(outbuf) < outlen) strlcat(outbuf, " ", outsize); @@ -1041,7 +1043,8 @@ acpi_hp_get_cmi_block(device_t wmi_dev, const char* gu for (i = enumbase + 1; i < enumbase + 1 + obj->Package.Elements[enumbase].Integer.Value; ++i) { acpi_hp_get_string_from_object( - &obj->Package.Elements[i], string_buffer, size); + &obj->Package.Elements[i], + string_buffer, sizeof(string_buffer)); if (strlen(string_buffer) > 1 || (strlen(string_buffer) == 1 && string_buffer[0] != ' ')) { @@ -1211,8 +1214,7 @@ acpi_hp_hpcmi_read(struct cdev *dev, struct uio *buf, UINT8 instance; UINT8 maxInstance; UINT32 sequence; - int linesize = 1025; - char line[linesize]; + char line[1025]; if (dev == NULL || dev->si_drv1 == NULL) return (EBADF); @@ -1237,7 +1239,7 @@ acpi_hp_hpcmi_read(struct cdev *dev, struct uio *buf, ++instance) { if (acpi_hp_get_cmi_block(sc->wmi_dev, ACPI_HP_WMI_CMI_GUID, instance, - line, linesize, &sequence, + line, sizeof(line), &sequence, sc->cmi_detail)) { instance = maxInstance; } @@ -1270,7 +1272,7 @@ acpi_hp_hpcmi_read(struct cdev *dev, struct uio *buf, for (i=0; icmi_order_size; ++i) { if (!acpi_hp_get_cmi_block(sc->wmi_dev, ACPI_HP_WMI_CMI_GUID, - sc->cmi_order[i].instance, line, linesize, + sc->cmi_order[i].instance, line, sizeof(line), &sequence, sc->cmi_detail)) { sbuf_printf(&sc->hpcmi_sbuf, "%s\n", line); } From owner-svn-src-all@freebsd.org Sat Apr 11 07:31:17 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 057AB2B1BC5; Sat, 11 Apr 2020 07:31:17 +0000 (UTC) (envelope-from nyan@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48zmlS6RTqz4H5M; Sat, 11 Apr 2020 07:31:16 +0000 (UTC) (envelope-from nyan@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D85D7C727; Sat, 11 Apr 2020 07:31:16 +0000 (UTC) (envelope-from nyan@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03B7VGwh066159; Sat, 11 Apr 2020 07:31:16 GMT (envelope-from nyan@FreeBSD.org) Received: (from nyan@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03B7VGZq066158; Sat, 11 Apr 2020 07:31:16 GMT (envelope-from nyan@FreeBSD.org) Message-Id: <202004110731.03B7VGZq066158@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: nyan set sender to nyan@FreeBSD.org using -f From: Takahashi Yoshihiro Date: Sat, 11 Apr 2020 07:31:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359796 - stable/12/usr.bin/ruptime X-SVN-Group: stable-12 X-SVN-Commit-Author: nyan X-SVN-Commit-Paths: stable/12/usr.bin/ruptime X-SVN-Commit-Revision: 359796 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Apr 2020 07:31:17 -0000 Author: nyan Date: Sat Apr 11 07:31:16 2020 New Revision: 359796 URL: https://svnweb.freebsd.org/changeset/base/359796 Log: MFC: r359631 Remove extra spaces for the load average of machines that are down. PR: 245296 Submitted by: martin _at_ lispworks.com Modified: stable/12/usr.bin/ruptime/ruptime.c Directory Properties: stable/12/ (props changed) Modified: stable/12/usr.bin/ruptime/ruptime.c ============================================================================== --- stable/12/usr.bin/ruptime/ruptime.c Sat Apr 11 07:24:57 2020 (r359795) +++ stable/12/usr.bin/ruptime/ruptime.c Sat Apr 11 07:31:16 2020 (r359796) @@ -234,18 +234,21 @@ ruptime(const char *host, int aflg, int (*cmp)(const v if (hostnamewidth < (int)strlen(wd->wd_hostname)) hostnamewidth = (int)strlen(wd->wd_hostname); - for (i = 0; i < 3; i++) { - w = iwidth(wd->wd_loadav[i] / 100) + 3; - if (loadavwidth[i] < w) - loadavwidth[i] = w; + + if (!ISDOWN(hsp)) { + for (i = 0; i < 3; i++) { + w = iwidth(wd->wd_loadav[i] / 100) + 3; + if (loadavwidth[i] < w) + loadavwidth[i] = w; + } + for (hsp->hs_nusers = 0, we = &wd->wd_we[0]; + (char *)(we + 1) <= (char *)wd + cc; we++) + if (aflg || we->we_idle < 3600) + ++hsp->hs_nusers; + if (userswidth < iwidth(hsp->hs_nusers)) + userswidth = iwidth(hsp->hs_nusers); } - for (hsp->hs_nusers = 0, we = &wd->wd_we[0]; - (char *)(we + 1) <= (char *)wd + cc; we++) - if (aflg || we->we_idle < 3600) - ++hsp->hs_nusers; - if (userswidth < iwidth(hsp->hs_nusers)) - userswidth = iwidth(hsp->hs_nusers); ++hsp; ++nhosts; } From owner-svn-src-all@freebsd.org Sat Apr 11 07:37:09 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E6A882B1CC0; Sat, 11 Apr 2020 07:37:09 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48zmtF5qKqz4HJN; Sat, 11 Apr 2020 07:37:09 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C3046C8CC; Sat, 11 Apr 2020 07:37:09 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03B7b9jd067991; Sat, 11 Apr 2020 07:37:09 GMT (envelope-from melifaro@FreeBSD.org) Received: (from melifaro@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03B7b8cS067986; Sat, 11 Apr 2020 07:37:08 GMT (envelope-from melifaro@FreeBSD.org) Message-Id: <202004110737.03B7b8cS067986@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: melifaro set sender to melifaro@FreeBSD.org using -f From: "Alexander V. Chernikov" Date: Sat, 11 Apr 2020 07:37:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359797 - in head/sys: net netinet netinet6 X-SVN-Group: head X-SVN-Commit-Author: melifaro X-SVN-Commit-Paths: in head/sys: net netinet netinet6 X-SVN-Commit-Revision: 359797 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Apr 2020 07:37:10 -0000 Author: melifaro Date: Sat Apr 11 07:37:08 2020 New Revision: 359797 URL: https://svnweb.freebsd.org/changeset/base/359797 Log: Remove per-AF radix_mpath initializtion functions. Split their functionality by moving random seed allocation to SYSINIT and calling (new) generic multipath function from standard IPv4/IPv5 RIB init handlers. Differential Revision: https://reviews.freebsd.org/D24356 Modified: head/sys/net/radix_mpath.c head/sys/net/route_var.h head/sys/netinet/in_proto.c head/sys/netinet/in_rmx.c head/sys/netinet6/in6_proto.c head/sys/netinet6/in6_rmx.c Modified: head/sys/net/radix_mpath.c ============================================================================== --- head/sys/net/radix_mpath.c Sat Apr 11 07:31:16 2020 (r359796) +++ head/sys/net/radix_mpath.c Sat Apr 11 07:37:08 2020 (r359797) @@ -290,38 +290,18 @@ rtalloc_mpath_fib(struct route *ro, uint32_t hash, u_i RT_UNLOCK(ro->ro_rt); } -extern int in6_inithead(void **head, int off, u_int fibnum); -extern int in_inithead(void **head, int off, u_int fibnum); - -#ifdef INET -int -rn4_mpath_inithead(void **head, int off, u_int fibnum) +void +rt_mpath_init_rnh(struct rib_head *rnh) { - struct rib_head *rnh; - hashjitter = arc4random(); - if (in_inithead(head, off, fibnum) == 1) { - rnh = (struct rib_head *)*head; - rnh->rnh_multipath = 1; - return 1; - } else - return 0; + rnh->rnh_multipath = 1; } -#endif -#ifdef INET6 -int -rn6_mpath_inithead(void **head, int off, u_int fibnum) +static void +mpath_init(void) { - struct rib_head *rnh; hashjitter = arc4random(); - if (in6_inithead(head, off, fibnum) == 1) { - rnh = (struct rib_head *)*head; - rnh->rnh_multipath = 1; - return 1; - } else - return 0; } +SYSINIT(mpath_init, SI_SUB_PROTO_DOMAIN, SI_ORDER_ANY, mpath_init, NULL); -#endif Modified: head/sys/net/route_var.h ============================================================================== --- head/sys/net/route_var.h Sat Apr 11 07:31:16 2020 (r359796) +++ head/sys/net/route_var.h Sat Apr 11 07:37:08 2020 (r359797) @@ -88,6 +88,7 @@ _Static_assert(__offsetof(struct route, ro_dst) == __o "ro_dst and " #_dst_new " are at different offset") struct rib_head *rt_tables_get_rnh(int fib, int family); +void rt_mpath_init_rnh(struct rib_head *rnh); /* rte<>nhop translation */ static inline uint16_t Modified: head/sys/netinet/in_proto.c ============================================================================== --- head/sys/netinet/in_proto.c Sat Apr 11 07:31:16 2020 (r359796) +++ head/sys/netinet/in_proto.c Sat Apr 11 07:37:08 2020 (r359797) @@ -62,9 +62,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#ifdef RADIX_MPATH -#include -#endif #include #endif /* INET */ @@ -305,11 +302,7 @@ struct domain inetdomain = { .dom_name = "internet", .dom_protosw = inetsw, .dom_protoswNPROTOSW = &inetsw[nitems(inetsw)], -#ifdef RADIX_MPATH - .dom_rtattach = rn4_mpath_inithead, -#else .dom_rtattach = in_inithead, -#endif #ifdef VIMAGE .dom_rtdetach = in_detachhead, #endif Modified: head/sys/netinet/in_rmx.c ============================================================================== --- head/sys/netinet/in_rmx.c Sat Apr 11 07:31:16 2020 (r359796) +++ head/sys/netinet/in_rmx.c Sat Apr 11 07:37:08 2020 (r359797) @@ -30,6 +30,8 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_mpath.h" + #include #include #include @@ -125,6 +127,9 @@ in_inithead(void **head, int off, u_int fibnum) return (0); rh->rnh_addaddr = in_addroute; +#ifdef RADIX_MPATH + rt_mpath_init_rnh(rh); +#endif *head = (void *)rh; if (_in_rt_was_here == 0 ) { Modified: head/sys/netinet6/in6_proto.c ============================================================================== --- head/sys/netinet6/in6_proto.c Sat Apr 11 07:31:16 2020 (r359796) +++ head/sys/netinet6/in6_proto.c Sat Apr 11 07:37:08 2020 (r359797) @@ -90,9 +90,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#ifdef RADIX_MPATH -#include -#endif #include #include @@ -346,11 +343,7 @@ struct domain inet6domain = { .dom_name = "internet6", .dom_protosw = (struct protosw *)inet6sw, .dom_protoswNPROTOSW = (struct protosw *)&inet6sw[nitems(inet6sw)], -#ifdef RADIX_MPATH - .dom_rtattach = rn6_mpath_inithead, -#else .dom_rtattach = in6_inithead, -#endif #ifdef VIMAGE .dom_rtdetach = in6_detachhead, #endif Modified: head/sys/netinet6/in6_rmx.c ============================================================================== --- head/sys/netinet6/in6_rmx.c Sat Apr 11 07:31:16 2020 (r359796) +++ head/sys/netinet6/in6_rmx.c Sat Apr 11 07:37:08 2020 (r359797) @@ -64,6 +64,8 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_mpath.h" + #include #include #include @@ -167,6 +169,9 @@ in6_inithead(void **head, int off, u_int fibnum) return (0); rh->rnh_addaddr = in6_addroute; +#ifdef RADIX_MPATH + rt_mpath_init_rnh(rh); +#endif *head = (void *)rh; return (1); From owner-svn-src-all@freebsd.org Sat Apr 11 07:37:10 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BDFB62B1CD3; Sat, 11 Apr 2020 07:37:10 +0000 (UTC) (envelope-from nyan@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48zmtG4fYgz4HJP; Sat, 11 Apr 2020 07:37:10 +0000 (UTC) (envelope-from nyan@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9AF1BC8CD; Sat, 11 Apr 2020 07:37:10 +0000 (UTC) (envelope-from nyan@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03B7bAAl068031; Sat, 11 Apr 2020 07:37:10 GMT (envelope-from nyan@FreeBSD.org) Received: (from nyan@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03B7bA2w068030; Sat, 11 Apr 2020 07:37:10 GMT (envelope-from nyan@FreeBSD.org) Message-Id: <202004110737.03B7bA2w068030@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: nyan set sender to nyan@FreeBSD.org using -f From: Takahashi Yoshihiro Date: Sat, 11 Apr 2020 07:37:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r359798 - stable/11/usr.bin/ruptime X-SVN-Group: stable-11 X-SVN-Commit-Author: nyan X-SVN-Commit-Paths: stable/11/usr.bin/ruptime X-SVN-Commit-Revision: 359798 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Apr 2020 07:37:10 -0000 Author: nyan Date: Sat Apr 11 07:37:10 2020 New Revision: 359798 URL: https://svnweb.freebsd.org/changeset/base/359798 Log: MFC: r314640 (by bde) > Fix formatting. ruptime output on FreeBSD cluster machines annoyed me > by usually being double-spaced due to auto-wrap at column 80. > > r212771 increased width of the hostname field from 12 to 25. This was > supposed to allow for 80-column output with all 3 load averages taking > 5 characters each, but it actually gave width exactly 80 and thus worse > than useless auto-wrap in that case. 3 wide load average fields are > unusual, but later expansion of another field gave the auto-wrap with > just 2 wide load average fields. > > Change to dynamic field widths for all fields except the uptime. This > also fixes the formatting of high (above 9999) user counts and not > very high (above 9.99) load averages. The formatting for numbers now > breaks at 99999.99, but scientific notation should be used starting > well below that. > > The field width for the uptime remains hard-coded to work consistently > for uptimes less than 10000 days, but this gives too much space for > small uptimes. Punctuation between fields could be improved in many > ways, for example by removing it. Modified: stable/11/usr.bin/ruptime/ruptime.c Directory Properties: stable/11/ (props changed) Modified: stable/11/usr.bin/ruptime/ruptime.c ============================================================================== --- stable/11/usr.bin/ruptime/ruptime.c Sat Apr 11 07:37:08 2020 (r359797) +++ stable/11/usr.bin/ruptime/ruptime.c Sat Apr 11 07:37:10 2020 (r359798) @@ -69,6 +69,7 @@ static DIR *dirp; static int hscmp(const void *, const void *); static char *interval(time_t, const char *); +static int iwidth(int); static int lcmp(const void *, const void *); static void ruptime(const char *, int, int (*)(const void *, const void *)); static int tcmp(const void *, const void *); @@ -143,6 +144,21 @@ interval(time_t tval, const char *updown) return (resbuf); } +/* Width to print a small nonnegative integer. */ +static int +iwidth(int w) +{ + if (w < 10) + return (1); + if (w < 100) + return (2); + if (w < 1000) + return (3); + if (w < 10000) + return (4); + return (5); +} + #define HS(a) ((const struct hs *)(a)) /* Alphabetical comparison. */ @@ -176,14 +192,17 @@ ruptime(const char *host, int aflg, int (*cmp)(const v struct whod *wd; struct whoent *we; struct dirent *dp; - const char *hostname; - int fd, i, maxloadav; + int fd, hostnamewidth, i, loadavwidth[3], userswidth, w; size_t hspace; ssize_t cc; rewinddir(dirp); hsp = NULL; - maxloadav = -1; + hostnamewidth = 0; + loadavwidth[0] = 4; + loadavwidth[1] = 4; + loadavwidth[2] = 4; + userswidth = 1; (void)time(&now); for (nhosts = hspace = 0; (dp = readdir(dirp)) != NULL;) { if (dp->d_ino == 0 || strncmp(dp->d_name, "whod.", 5) != 0) @@ -206,22 +225,25 @@ ruptime(const char *host, int aflg, int (*cmp)(const v if (cc < (ssize_t)WHDRSIZE) continue; - if (host != NULL) { - hostname = wd->wd_hostname; - if (strcasecmp(hostname, host) != 0) - continue; - } + if (host != NULL && strcasecmp(wd->wd_hostname, host) != 0) + continue; if (LEFTEARTH(wd->wd_recvtime)) continue; - for (i = 0; i < 2; i++) - if (wd->wd_loadav[i] > maxloadav) - maxloadav = wd->wd_loadav[i]; + if (hostnamewidth < (int)strlen(wd->wd_hostname)) + hostnamewidth = (int)strlen(wd->wd_hostname); + for (i = 0; i < 3; i++) { + w = iwidth(wd->wd_loadav[i] / 100) + 3; + if (loadavwidth[i] < w) + loadavwidth[i] = w; + } for (hsp->hs_nusers = 0, we = &wd->wd_we[0]; (char *)(we + 1) <= (char *)wd + cc; we++) if (aflg || we->we_idle < 3600) ++hsp->hs_nusers; + if (userswidth < iwidth(hsp->hs_nusers)) + userswidth = iwidth(hsp->hs_nusers); ++hsp; ++nhosts; } @@ -233,27 +255,28 @@ ruptime(const char *host, int aflg, int (*cmp)(const v } qsort(hs, nhosts, sizeof(hs[0]), cmp); + w = userswidth + loadavwidth[0] + loadavwidth[1] + loadavwidth[2]; + if (hostnamewidth + w > 41) + hostnamewidth = 41 - w; /* limit to 79 cols */ for (i = 0; i < (int)nhosts; i++) { hsp = &hs[i]; wd = &hsp->hs_wd; if (ISDOWN(hsp)) { - (void)printf("%-25.25s%s\n", wd->wd_hostname, + (void)printf("%-*.*s%s\n", + hostnamewidth, hostnamewidth, wd->wd_hostname, interval(now - hsp->hs_wd.wd_recvtime, "down")); continue; } (void)printf( - "%-25.25s%s, %4d user%s load %*.2f, %*.2f, %*.2f\n", - wd->wd_hostname, + "%-*.*s %s, %*d user%s load %*.2f, %*.2f, %*.2f\n", + hostnamewidth, hostnamewidth, wd->wd_hostname, interval((time_t)wd->wd_sendtime - (time_t)wd->wd_boottime, " up"), - hsp->hs_nusers, + userswidth, hsp->hs_nusers, hsp->hs_nusers == 1 ? ", " : "s,", - maxloadav >= 1000 ? 5 : 4, - wd->wd_loadav[0] / 100.0, - maxloadav >= 1000 ? 5 : 4, - wd->wd_loadav[1] / 100.0, - maxloadav >= 1000 ? 5 : 4, - wd->wd_loadav[2] / 100.0); + loadavwidth[0], wd->wd_loadav[0] / 100.0, + loadavwidth[1], wd->wd_loadav[1] / 100.0, + loadavwidth[2], wd->wd_loadav[2] / 100.0); } free(hs); hs = NULL; From owner-svn-src-all@freebsd.org Sat Apr 11 07:46:39 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A64E62B1FFE; Sat, 11 Apr 2020 07:46:39 +0000 (UTC) (envelope-from nyan@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48zn5C3yssz4Hw9; Sat, 11 Apr 2020 07:46:39 +0000 (UTC) (envelope-from nyan@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7F089CAC8; Sat, 11 Apr 2020 07:46:39 +0000 (UTC) (envelope-from nyan@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03B7kdPG074541; Sat, 11 Apr 2020 07:46:39 GMT (envelope-from nyan@FreeBSD.org) Received: (from nyan@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03B7kdq7074540; Sat, 11 Apr 2020 07:46:39 GMT (envelope-from nyan@FreeBSD.org) Message-Id: <202004110746.03B7kdq7074540@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: nyan set sender to nyan@FreeBSD.org using -f From: Takahashi Yoshihiro Date: Sat, 11 Apr 2020 07:46:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r359799 - stable/11/usr.bin/ruptime X-SVN-Group: stable-11 X-SVN-Commit-Author: nyan X-SVN-Commit-Paths: stable/11/usr.bin/ruptime X-SVN-Commit-Revision: 359799 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Apr 2020 07:46:39 -0000 Author: nyan Date: Sat Apr 11 07:46:38 2020 New Revision: 359799 URL: https://svnweb.freebsd.org/changeset/base/359799 Log: MFC: r342965 > Fix indentation in ruptime command output for hosts in the "down" state. MFC: r359631 > Remove extra spaces for the load average of machines that are down. PR: 234239, 245296 Modified: stable/11/usr.bin/ruptime/ruptime.c Directory Properties: stable/11/ (props changed) Modified: stable/11/usr.bin/ruptime/ruptime.c ============================================================================== --- stable/11/usr.bin/ruptime/ruptime.c Sat Apr 11 07:37:10 2020 (r359798) +++ stable/11/usr.bin/ruptime/ruptime.c Sat Apr 11 07:46:38 2020 (r359799) @@ -232,18 +232,21 @@ ruptime(const char *host, int aflg, int (*cmp)(const v if (hostnamewidth < (int)strlen(wd->wd_hostname)) hostnamewidth = (int)strlen(wd->wd_hostname); - for (i = 0; i < 3; i++) { - w = iwidth(wd->wd_loadav[i] / 100) + 3; - if (loadavwidth[i] < w) - loadavwidth[i] = w; + + if (!ISDOWN(hsp)) { + for (i = 0; i < 3; i++) { + w = iwidth(wd->wd_loadav[i] / 100) + 3; + if (loadavwidth[i] < w) + loadavwidth[i] = w; + } + for (hsp->hs_nusers = 0, we = &wd->wd_we[0]; + (char *)(we + 1) <= (char *)wd + cc; we++) + if (aflg || we->we_idle < 3600) + ++hsp->hs_nusers; + if (userswidth < iwidth(hsp->hs_nusers)) + userswidth = iwidth(hsp->hs_nusers); } - for (hsp->hs_nusers = 0, we = &wd->wd_we[0]; - (char *)(we + 1) <= (char *)wd + cc; we++) - if (aflg || we->we_idle < 3600) - ++hsp->hs_nusers; - if (userswidth < iwidth(hsp->hs_nusers)) - userswidth = iwidth(hsp->hs_nusers); ++hsp; ++nhosts; } @@ -262,7 +265,7 @@ ruptime(const char *host, int aflg, int (*cmp)(const v hsp = &hs[i]; wd = &hsp->hs_wd; if (ISDOWN(hsp)) { - (void)printf("%-*.*s%s\n", + (void)printf("%-*.*s %s\n", hostnamewidth, hostnamewidth, wd->wd_hostname, interval(now - hsp->hs_wd.wd_recvtime, "down")); continue; From owner-svn-src-all@freebsd.org Sat Apr 11 07:56:11 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CBBD12B23B6; Sat, 11 Apr 2020 07:56:11 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48znJC51txz4JS4; Sat, 11 Apr 2020 07:56:11 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A2DCFCCAF; Sat, 11 Apr 2020 07:56:11 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03B7uBxG080386; Sat, 11 Apr 2020 07:56:11 GMT (envelope-from melifaro@FreeBSD.org) Received: (from melifaro@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03B7uB0S080385; Sat, 11 Apr 2020 07:56:11 GMT (envelope-from melifaro@FreeBSD.org) Message-Id: <202004110756.03B7uB0S080385@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: melifaro set sender to melifaro@FreeBSD.org using -f From: "Alexander V. Chernikov" Date: Sat, 11 Apr 2020 07:56:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359800 - head/sys/netinet6 X-SVN-Group: head X-SVN-Commit-Author: melifaro X-SVN-Commit-Paths: head/sys/netinet6 X-SVN-Commit-Revision: 359800 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Apr 2020 07:56:11 -0000 Author: melifaro Date: Sat Apr 11 07:56:11 2020 New Revision: 359800 URL: https://svnweb.freebsd.org/changeset/base/359800 Log: Remove RADIX_MPATH headers, they were unused since r293159. MFC after: 2 weeks Modified: head/sys/netinet6/nd6_nbr.c Modified: head/sys/netinet6/nd6_nbr.c ============================================================================== --- head/sys/netinet6/nd6_nbr.c Sat Apr 11 07:46:38 2020 (r359799) +++ head/sys/netinet6/nd6_nbr.c Sat Apr 11 07:56:11 2020 (r359800) @@ -37,7 +37,6 @@ __FBSDID("$FreeBSD$"); #include "opt_inet.h" #include "opt_inet6.h" #include "opt_ipsec.h" -#include "opt_mpath.h" #include #include @@ -63,9 +62,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#ifdef RADIX_MPATH -#include -#endif #include #include From owner-svn-src-all@freebsd.org Sat Apr 11 08:16:36 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 325E82B2F2A; Sat, 11 Apr 2020 08:16:36 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48znlm0DwVz4KXs; Sat, 11 Apr 2020 08:16:36 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F301AD087; Sat, 11 Apr 2020 08:16:35 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03B8GZBb092303; Sat, 11 Apr 2020 08:16:35 GMT (envelope-from eugen@FreeBSD.org) Received: (from eugen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03B8GZCK092302; Sat, 11 Apr 2020 08:16:35 GMT (envelope-from eugen@FreeBSD.org) Message-Id: <202004110816.03B8GZCK092302@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: eugen set sender to eugen@FreeBSD.org using -f From: Eugene Grosbein Date: Sat, 11 Apr 2020 08:16:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359801 - head/usr.bin/wc X-SVN-Group: head X-SVN-Commit-Author: eugen X-SVN-Commit-Paths: head/usr.bin/wc X-SVN-Commit-Revision: 359801 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Apr 2020 08:16:36 -0000 Author: eugen Date: Sat Apr 11 08:16:35 2020 New Revision: 359801 URL: https://svnweb.freebsd.org/changeset/base/359801 Log: wc(1): document SIGINFO handling in the manual page. MFC after: 3 days Modified: head/usr.bin/wc/wc.1 Modified: head/usr.bin/wc/wc.1 ============================================================================== --- head/usr.bin/wc/wc.1 Sat Apr 11 07:56:11 2020 (r359800) +++ head/usr.bin/wc/wc.1 Sat Apr 11 08:16:35 2020 (r359801) @@ -31,7 +31,7 @@ .\" @(#)wc.1 8.2 (Berkeley) 4/19/94 .\" $FreeBSD$ .\" -.Dd August 2, 2018 +.Dd April 11, 2020 .Dt WC 1 .Os .Sh NAME @@ -126,6 +126,18 @@ file name is displayed. The prompt will accept input until receiving EOF, or .Bq ^D in most environments. +.Pp +If +.Nm +receives a +.Dv SIGINFO +(see the +.Cm status +argument for +.Xr stty 1 ) +signal, the interim data will be written +to the standard error output in the same format +as the standard completion message. .Sh ENVIRONMENT The .Ev LANG , LC_ALL From owner-svn-src-all@freebsd.org Sat Apr 11 09:35:49 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5AE6C2B4CC8; Sat, 11 Apr 2020 09:35:49 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48zqW91myGz4PQQ; Sat, 11 Apr 2020 09:35:49 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 38279DF7B; Sat, 11 Apr 2020 09:35:49 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03B9ZnfA041164; Sat, 11 Apr 2020 09:35:49 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03B9Znlb041163; Sat, 11 Apr 2020 09:35:49 GMT (envelope-from ae@FreeBSD.org) Message-Id: <202004110935.03B9Znlb041163@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Sat, 11 Apr 2020 09:35:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r359802 - stable/12/sys/netinet6 X-SVN-Group: stable-12 X-SVN-Commit-Author: ae X-SVN-Commit-Paths: stable/12/sys/netinet6 X-SVN-Commit-Revision: 359802 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Apr 2020 09:35:49 -0000 Author: ae Date: Sat Apr 11 09:35:48 2020 New Revision: 359802 URL: https://svnweb.freebsd.org/changeset/base/359802 Log: MFC r359498: Ignore ND6 neighbor advertisement received for static link-layer entries. Previously such NA could override manually created LLE. Reported by: Martin Beran Modified: stable/12/sys/netinet6/nd6_nbr.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/netinet6/nd6_nbr.c ============================================================================== --- stable/12/sys/netinet6/nd6_nbr.c Sat Apr 11 08:16:35 2020 (r359801) +++ stable/12/sys/netinet6/nd6_nbr.c Sat Apr 11 09:35:48 2020 (r359802) @@ -753,6 +753,12 @@ nd6_na_input(struct mbuf *m, int off, int icmp6len) goto freeit; } + /* + * Do not try to override static entry. + */ + if (ln->la_flags & LLE_STATIC) + goto freeit; + if (ln->ln_state == ND6_LLINFO_INCOMPLETE) { /* * If the link-layer has address, and no lladdr option came, From owner-svn-src-all@freebsd.org Sat Apr 11 09:36:42 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 50F9F2B4D3C; Sat, 11 Apr 2020 09:36:42 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48zqXB17Zpz4PXM; Sat, 11 Apr 2020 09:36:42 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 222DBDF7D; Sat, 11 Apr 2020 09:36:42 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03B9agpa041257; Sat, 11 Apr 2020 09:36:42 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03B9agdR041256; Sat, 11 Apr 2020 09:36:42 GMT (envelope-from ae@FreeBSD.org) Message-Id: <202004110936.03B9agdR041256@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Sat, 11 Apr 2020 09:36:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r359803 - stable/11/sys/netinet6 X-SVN-Group: stable-11 X-SVN-Commit-Author: ae X-SVN-Commit-Paths: stable/11/sys/netinet6 X-SVN-Commit-Revision: 359803 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Apr 2020 09:36:42 -0000 Author: ae Date: Sat Apr 11 09:36:41 2020 New Revision: 359803 URL: https://svnweb.freebsd.org/changeset/base/359803 Log: MFC r359498: Ignore ND6 neighbor advertisement received for static link-layer entries. Previously such NA could override manually created LLE. Reported by: Martin Beran Modified: stable/11/sys/netinet6/nd6_nbr.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/netinet6/nd6_nbr.c ============================================================================== --- stable/11/sys/netinet6/nd6_nbr.c Sat Apr 11 09:35:48 2020 (r359802) +++ stable/11/sys/netinet6/nd6_nbr.c Sat Apr 11 09:36:41 2020 (r359803) @@ -745,6 +745,12 @@ nd6_na_input(struct mbuf *m, int off, int icmp6len) goto freeit; } + /* + * Do not try to override static entry. + */ + if (ln->la_flags & LLE_STATIC) + goto freeit; + if (ln->ln_state == ND6_LLINFO_INCOMPLETE) { /* * If the link-layer has address, and no lladdr option came, From owner-svn-src-all@freebsd.org Sat Apr 11 09:38:45 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A7AED2B4E27; Sat, 11 Apr 2020 09:38:45 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48zqZY3yvhz4Pgb; Sat, 11 Apr 2020 09:38:45 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 835E3DF81; Sat, 11 Apr 2020 09:38:45 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03B9cjhw041400; Sat, 11 Apr 2020 09:38:45 GMT (envelope-from melifaro@FreeBSD.org) Received: (from melifaro@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03B9cjmF041399; Sat, 11 Apr 2020 09:38:45 GMT (envelope-from melifaro@FreeBSD.org) Message-Id: <202004110938.03B9cjmF041399@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: melifaro set sender to melifaro@FreeBSD.org using -f From: "Alexander V. Chernikov" Date: Sat, 11 Apr 2020 09:38:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359804 - head/sys/net X-SVN-Group: head X-SVN-Commit-Author: melifaro X-SVN-Commit-Paths: head/sys/net X-SVN-Commit-Revision: 359804 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Apr 2020 09:38:45 -0000 Author: melifaro Date: Sat Apr 11 09:38:45 2020 New Revision: 359804 URL: https://svnweb.freebsd.org/changeset/base/359804 Log: Fix build by adding forgotten header to radix_mpath.c after r359797. Modified: head/sys/net/radix_mpath.c Modified: head/sys/net/radix_mpath.c ============================================================================== --- head/sys/net/radix_mpath.c Sat Apr 11 09:36:41 2020 (r359803) +++ head/sys/net/radix_mpath.c Sat Apr 11 09:38:45 2020 (r359804) @@ -48,6 +48,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include From owner-svn-src-all@freebsd.org Sat Apr 11 15:25:41 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 894B02BBE15; Sat, 11 Apr 2020 15:25:41 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48zzGs35T7z3GvC; Sat, 11 Apr 2020 15:25:41 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6535A1A2BF; Sat, 11 Apr 2020 15:25:41 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03BFPfpR055455; Sat, 11 Apr 2020 15:25:41 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03BFPfXK055454; Sat, 11 Apr 2020 15:25:41 GMT (envelope-from manu@FreeBSD.org) Message-Id: <202004111525.03BFPfXK055454@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Sat, 11 Apr 2020 15:25:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359805 - head/usr.sbin/gpioctl X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/usr.sbin/gpioctl X-SVN-Commit-Revision: 359805 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Apr 2020 15:25:41 -0000 Author: manu Date: Sat Apr 11 15:25:40 2020 New Revision: 359805 URL: https://svnweb.freebsd.org/changeset/base/359805 Log: gpioctl: Print interrupts capabilities GPIO drivers who supports interrupts report them in the caps (obtain via the getcaps method) but gpioctl doesn't know how to interpret this and print "UNKNOWN" for each one of them. Even if we don't have userland gpio interrupts support for now let gpioctl print the supported caps. MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D24133 Modified: head/usr.sbin/gpioctl/gpioctl.c Modified: head/usr.sbin/gpioctl/gpioctl.c ============================================================================== --- head/usr.sbin/gpioctl/gpioctl.c Sat Apr 11 09:38:45 2020 (r359804) +++ head/usr.sbin/gpioctl/gpioctl.c Sat Apr 11 15:25:40 2020 (r359805) @@ -62,6 +62,11 @@ static struct flag_desc gpio_flags[] = { { "II", GPIO_PIN_INVIN }, { "IO", GPIO_PIN_INVOUT }, { "PULSE", GPIO_PIN_PULSATE }, + { "INTRLL", GPIO_INTR_LEVEL_LOW}, + { "INTRLH", GPIO_INTR_LEVEL_HIGH}, + { "INTRER", GPIO_INTR_EDGE_RISING}, + { "INTREF", GPIO_INTR_EDGE_FALLING}, + { "INTREB", GPIO_INTR_EDGE_BOTH}, { NULL, 0 }, }; From owner-svn-src-all@freebsd.org Sat Apr 11 15:52:08 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 643622BC6DE; Sat, 11 Apr 2020 15:52:08 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48zzsN0kWwz3JWZ; Sat, 11 Apr 2020 15:52:08 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 143AB1A851; Sat, 11 Apr 2020 15:52:08 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03BFq7ij073956; Sat, 11 Apr 2020 15:52:07 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03BFq7F5073955; Sat, 11 Apr 2020 15:52:07 GMT (envelope-from manu@FreeBSD.org) Message-Id: <202004111552.03BFq7F5073955@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Sat, 11 Apr 2020 15:52:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359806 - head/sys/arm/ti/am335x X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/sys/arm/ti/am335x X-SVN-Commit-Revision: 359806 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Apr 2020 15:52:08 -0000 Author: manu Date: Sat Apr 11 15:52:07 2020 New Revision: 359806 URL: https://svnweb.freebsd.org/changeset/base/359806 Log: arm: am335x: Honor pmic option ti,pmic-shutdown-controller Honor ti,pmic-shutdown-controller option in DTS Tested on stable r359316 @ Sleep mode on custom hw, Power off on BBB and PB OFF bit [1] in status register control the pmic behaviour when PWR_EN pin is pulled low. On most AM335x hardware [beaglebone *] the desired behaviour are in fact power off due to some hardware designs - read more in the comments around pmic in sys/gnu/dts/arm/am335x-bone-common.dtsi This patch let the device-tree decide with ti,pmic-shutdown-controller[2] the state of off bit in status register. [1] 8.6.12 table 12 http://www.ti.com/lit/ds/symlink/tps65217.pdf [2] Documentation/devicetree/bindings/regulator/tps65217.txt PR: 245159 Submitted by: Oskar Holmlund MFC after: 2 weeks Modified: head/sys/arm/ti/am335x/am335x_pmic.c Modified: head/sys/arm/ti/am335x/am335x_pmic.c ============================================================================== --- head/sys/arm/ti/am335x/am335x_pmic.c Sat Apr 11 15:25:40 2020 (r359805) +++ head/sys/arm/ti/am335x/am335x_pmic.c Sat Apr 11 15:52:07 2020 (r359806) @@ -208,6 +208,7 @@ am335x_pmic_start(struct am335x_pmic_softc *sc) char name[20]; char pwr[4][11] = {"Battery", "USB", "AC", "USB and AC"}; int rv; + phandle_t node; dev = sc->sc_dev; am335x_pmic_read(dev, TPS65217_CHIPID_REG, (uint8_t *)&chipid_reg, 1); @@ -232,6 +233,16 @@ am335x_pmic_start(struct am335x_pmic_softc *sc) device_printf(dev, "%s powered by %s\n", name, pwr[status_reg.usbpwr | (status_reg.acpwr << 1)]); + /* Check devicetree for ti,pmic-shutdown-controller + * if present; PMIC will go to shutdown state on PWR_EN toggle + * if not present; PMIC will enter sleep state on PWR_EN toggle (default on reset) + */ + node = ofw_bus_get_node(dev); + if (OF_hasprop(node, "ti,pmic-shutdown-controller")) { + status_reg.off = 1; + am335x_pmic_write(dev, TPS65217_STATUS_REG, (uint8_t *)&status_reg, 1); + } + if (am335x_pmic_vo[0] != '\0') { for (vo = 0; vo < 4; vo++) { if (strcmp(tps65217_voreg_c[vo], am335x_pmic_vo) == 0) @@ -291,16 +302,9 @@ am335x_pmic_attach(device_t dev) static void am335x_pmic_shutdown(void *xdev, int howto) { - device_t dev; - struct tps65217_status_reg reg; - if (!(howto & RB_POWEROFF)) return; - dev = (device_t)xdev; - am335x_pmic_read(dev, TPS65217_STATUS_REG, (uint8_t *)®, 1); - /* Set the OFF bit on status register to start the shutdown sequence. */ - reg.off = 1; - am335x_pmic_write(dev, TPS65217_STATUS_REG, (uint8_t *)®, 1); + /* Toggle pmic_pwr_enable to shutdown the PMIC. */ am335x_rtc_pmic_pwr_toggle(); } From owner-svn-src-all@freebsd.org Sat Apr 11 17:30:34 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 859572BDFA2; Sat, 11 Apr 2020 17:30:34 +0000 (UTC) (envelope-from oshogbo@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 49022y32dFz3P11; Sat, 11 Apr 2020 17:30:34 +0000 (UTC) (envelope-from oshogbo@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 639611B9B5; Sat, 11 Apr 2020 17:30:34 +0000 (UTC) (envelope-from oshogbo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03BHUYE4029862; Sat, 11 Apr 2020 17:30:34 GMT (envelope-from oshogbo@FreeBSD.org) Received: (from oshogbo@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03BHUYZp029861; Sat, 11 Apr 2020 17:30:34 GMT (envelope-from oshogbo@FreeBSD.org) Message-Id: <202004111730.03BHUYZp029861@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: oshogbo set sender to oshogbo@FreeBSD.org using -f From: Mariusz Zaborski Date: Sat, 11 Apr 2020 17:30:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359807 - head/sbin/decryptcore X-SVN-Group: head X-SVN-Commit-Author: oshogbo X-SVN-Commit-Paths: head/sbin/decryptcore X-SVN-Commit-Revision: 359807 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Apr 2020 17:30:34 -0000 Author: oshogbo Date: Sat Apr 11 17:30:33 2020 New Revision: 359807 URL: https://svnweb.freebsd.org/changeset/base/359807 Log: decryptcore: load the nls data Load the nls data before the openssl will try to do it in the capability mode. On my machine the sa_ossl_private_decrypt is trying to do that. MFC after: 2 weeks Modified: head/sbin/decryptcore/decryptcore.c Modified: head/sbin/decryptcore/decryptcore.c ============================================================================== --- head/sbin/decryptcore/decryptcore.c Sat Apr 11 15:52:07 2020 (r359806) +++ head/sbin/decryptcore/decryptcore.c Sat Apr 11 17:30:33 2020 (r359807) @@ -170,6 +170,7 @@ decrypt(int ofd, const char *privkeyfile, const char * goto failed; } + caph_cache_catpages(); if (caph_enter() < 0) { pjdlog_errno(LOG_ERR, "Unable to enter capability mode"); goto failed; From owner-svn-src-all@freebsd.org Sat Apr 11 17:54:36 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E215C2BEC80; Sat, 11 Apr 2020 17:54:36 +0000 (UTC) (envelope-from oshogbo@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4902Zh5YDvz3R51; Sat, 11 Apr 2020 17:54:36 +0000 (UTC) (envelope-from oshogbo@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B95D61BF28; Sat, 11 Apr 2020 17:54:36 +0000 (UTC) (envelope-from oshogbo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03BHsaSr048280; Sat, 11 Apr 2020 17:54:36 GMT (envelope-from oshogbo@FreeBSD.org) Received: (from oshogbo@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03BHsZnf048276; Sat, 11 Apr 2020 17:54:35 GMT (envelope-from oshogbo@FreeBSD.org) Message-Id: <202004111754.03BHsZnf048276@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: oshogbo set sender to oshogbo@FreeBSD.org using -f From: Mariusz Zaborski Date: Sat, 11 Apr 2020 17:54:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359808 - in head/cddl/contrib/opensolaris: cmd/zfs lib/libzfs/common X-SVN-Group: head X-SVN-Commit-Author: oshogbo X-SVN-Commit-Paths: in head/cddl/contrib/opensolaris: cmd/zfs lib/libzfs/common X-SVN-Commit-Revision: 359808 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Apr 2020 17:54:36 -0000 Author: oshogbo Date: Sat Apr 11 17:54:35 2020 New Revision: 359808 URL: https://svnweb.freebsd.org/changeset/base/359808 Log: zfs: Add option for forcible unmounting dataset while receiving snapshot. Currently when the dataset is in use we can't receive snapshots. zfs send test/1@asd | zfs recv -FM test/2 cannot unmount '/test/2': Device busy This commits add option 'M' which attempts to forcibly unmount the dataset. Thanks to this we can enforce receiving snapshots in a single step. Note that this functionality is not supported on Linux because the VFS will prevent active mounted filesystems from being unmounted, even with the force option. This is the intended VFS behavior. Discussed-with: Pawel Jakub Dawidek Reviewed-by: Ryan Moeller Reviewed-by: Brian Behlendorf Reviewed-by: Allan Jude Differential Revision: https://reviews.freebsd.org/D22306 openzfs/zfs@a57d3d45d6efdff935421e2ef3f97e3dc089d93d Modified: head/cddl/contrib/opensolaris/cmd/zfs/zfs.8 head/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Modified: head/cddl/contrib/opensolaris/cmd/zfs/zfs.8 ============================================================================== --- head/cddl/contrib/opensolaris/cmd/zfs/zfs.8 Sat Apr 11 17:30:33 2020 (r359807) +++ head/cddl/contrib/opensolaris/cmd/zfs/zfs.8 Sat Apr 11 17:54:35 2020 (r359808) @@ -32,7 +32,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 16, 2019 +.Dd February 16, 2020 .Dt ZFS 8 .Os .Sh NAME @@ -201,12 +201,12 @@ .Fl t Ar receive_resume_token .Nm .Cm receive Ns | Ns Cm recv -.Op Fl vnsFu +.Op Fl vnsFMu .Op Fl o Sy origin Ns = Ns Ar snapshot .Ar filesystem Ns | Ns Ar volume Ns | Ns Ar snapshot .Nm .Cm receive Ns | Ns Cm recv -.Op Fl vnsFu +.Op Fl vnsFMu .Op Fl d | e .Op Fl o Sy origin Ns = Ns Ar snapshot .Ar filesystem @@ -2909,14 +2909,14 @@ for more details. .It Xo .Nm .Cm receive Ns | Ns Cm recv -.Op Fl vnsFu +.Op Fl vnsFMu .Op Fl o Sy origin Ns = Ns Ar snapshot .Ar filesystem Ns | Ns Ar volume Ns | Ns Ar snapshot .Xc .It Xo .Nm .Cm receive Ns | Ns Cm recv -.Op Fl vnsFu +.Op Fl vnsFMu .Op Fl d | e .Op Fl o Sy origin Ns = Ns Ar snapshot .Ar filesystem @@ -3016,6 +3016,9 @@ performing the receive operation. If receiving an incr stream (for example, one generated by .Qq Nm Cm send Fl R Bro Fl i | Fl I Brc ) , destroy snapshots and file systems that do not exist on the sending side. +.It Fl M +Force an unmount of the file system while receiving a snapshot. +This option is not supported on Linux. .It Fl s If the receive is interrupted, save the partially received state, rather than deleting it. Interruption may be due to premature termination of Modified: head/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c ============================================================================== --- head/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c Sat Apr 11 17:30:33 2020 (r359807) +++ head/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c Sat Apr 11 17:54:35 2020 (r359808) @@ -274,9 +274,9 @@ get_usage(zfs_help_t idx) case HELP_PROMOTE: return (gettext("\tpromote \n")); case HELP_RECEIVE: - return (gettext("\treceive|recv [-vnsFu] \n" - "\treceive|recv [-vnsFu] [-o origin=] [-d | -e] " + "\treceive|recv [-vnsFMu] [-o origin=] [-d | -e] " "\n" "\treceive|recv -A \n")); case HELP_RENAME: @@ -4078,7 +4078,7 @@ zfs_do_receive(int argc, char **argv) nomem(); /* check options */ - while ((c = getopt(argc, argv, ":o:denuvFsA")) != -1) { + while ((c = getopt(argc, argv, ":o:denuvMFsA")) != -1) { switch (c) { case 'o': if (parseprop(props, optarg) != 0) @@ -4105,6 +4105,9 @@ zfs_do_receive(int argc, char **argv) break; case 'F': flags.force = B_TRUE; + break; + case 'M': + flags.forceunmount = B_TRUE; break; case 'A': abort_resumable = B_TRUE; Modified: head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h ============================================================================== --- head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h Sat Apr 11 17:30:33 2020 (r359807) +++ head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h Sat Apr 11 17:54:35 2020 (r359808) @@ -737,6 +737,9 @@ typedef struct recvflags { /* do not mount file systems as they are extracted (private) */ boolean_t nomount; + + /* force unmount while recv snapshot (private) */ + boolean_t forceunmount; } recvflags_t; extern int zfs_receive(libzfs_handle_t *, const char *, nvlist_t *, Modified: head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c ============================================================================== --- head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Sat Apr 11 17:30:33 2020 (r359807) +++ head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Sat Apr 11 17:54:35 2020 (r359808) @@ -2913,7 +2913,8 @@ zfs_receive_package(libzfs_handle_t *hdl, int fd, cons ZFS_TYPE_FILESYSTEM); if (zhp != NULL) { clp = changelist_gather(zhp, - ZFS_PROP_MOUNTPOINT, 0, 0); + ZFS_PROP_MOUNTPOINT, 0, + flags->forceunmount ? MS_FORCE : 0); zfs_close(zhp); if (clp != NULL) { softerr |= @@ -3435,7 +3436,8 @@ zfs_receive_one(libzfs_handle_t *hdl, int infd, const if (!flags->dryrun && zhp->zfs_type == ZFS_TYPE_FILESYSTEM && stream_wantsnewfs) { /* We can't do online recv in this case */ - clp = changelist_gather(zhp, ZFS_PROP_NAME, 0, 0); + clp = changelist_gather(zhp, ZFS_PROP_NAME, 0, + flags->forceunmount ? MS_FORCE : 0); if (clp == NULL) { zfs_close(zhp); zcmd_free_nvlists(&zc); @@ -3881,6 +3883,7 @@ zfs_receive(libzfs_handle_t *hdl, const char *tosnap, int cleanup_fd; uint64_t action_handle = 0; char *originsnap = NULL; + if (props) { err = nvlist_lookup_string(props, "origin", &originsnap); if (err && err != ENOENT) @@ -3902,7 +3905,8 @@ zfs_receive(libzfs_handle_t *hdl, const char *tosnap, zhp = zfs_open(hdl, top_zfs, ZFS_TYPE_FILESYSTEM); if (zhp != NULL) { clp = changelist_gather(zhp, ZFS_PROP_MOUNTPOINT, - CL_GATHER_MOUNT_ALWAYS, 0); + CL_GATHER_MOUNT_ALWAYS, + flags->forceunmount ? MS_FORCE : 0); zfs_close(zhp); if (clp != NULL) { /* mount and share received datasets */ From owner-svn-src-all@freebsd.org Sat Apr 11 20:02:22 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E44932799A3; Sat, 11 Apr 2020 20:02:22 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-ot1-f66.google.com (mail-ot1-f66.google.com [209.85.210.66]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4905Q65MWBz442r; Sat, 11 Apr 2020 20:02:22 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-ot1-f66.google.com with SMTP id a49so5188773otc.11; Sat, 11 Apr 2020 13:02:22 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:reply-to :from:date:message-id:subject:to:cc:content-transfer-encoding; bh=umHgy25HIDIH7JPjsCUgdpdTF0gGqHMI9wxKpEJFmMY=; b=ZNkhHEWwFbGkmxLOWgOsDdor/5PmkCyIbCPNDWd9A464E/Zfy+1ZcWKOwSnxvRbYL9 /FamiLOhCLML9gaQGoNUpeUcK3f+UzyA1moaZ5xzhWc/ovys0fiTG9rBt1kLqEkJaEg2 6FGAzWkCyt83SbbP5xmVLqLFyNv38mgfloUbwGumDmdRUhnp/02Rg8svOiWofhpcoWAv Y5TKjmsVqGfAqjarq86JVYwrrdyrNoKAacQNlPt6nsT4K2yIbN5/D3oY5rLypyCRqdmA CydBVndUYXsu1JH42fXGaCfTCdbSQgejYyamCKjNumDSs9D2Y4yO8lsT2FjX0YBeLvfG mh5g== X-Gm-Message-State: AGi0PuaLZQFRr/KDmNiktgbQgJK+INWA2HABD5MYnz0Oek3jBaRu9BBr 1qXIVPm2iCM05dAsu+BduGpTBJer X-Google-Smtp-Source: APiQypI4VW3Zr9J+Kb+4gN4YvTyOcyc8CwKI82cCr9dNPqFZUPlWNNwFoCS8XFg9qrIWQbZXV2dtSA== X-Received: by 2002:a05:6830:1e10:: with SMTP id s16mr8602883otr.222.1586635341274; Sat, 11 Apr 2020 13:02:21 -0700 (PDT) Received: from mail-ot1-f41.google.com (mail-ot1-f41.google.com. [209.85.210.41]) by smtp.gmail.com with ESMTPSA id x82sm3403313oig.55.2020.04.11.13.02.21 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 11 Apr 2020 13:02:21 -0700 (PDT) Received: by mail-ot1-f41.google.com with SMTP id m2so5252833otr.1; Sat, 11 Apr 2020 13:02:21 -0700 (PDT) X-Received: by 2002:a4a:c3c9:: with SMTP id e9mr1797960ooq.51.1586635340731; Sat, 11 Apr 2020 13:02:20 -0700 (PDT) MIME-Version: 1.0 References: <202004110737.03B7b8cS067986@repo.freebsd.org> In-Reply-To: <202004110737.03B7b8cS067986@repo.freebsd.org> Reply-To: cem@freebsd.org From: Conrad Meyer Date: Sat, 11 Apr 2020 13:02:10 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r359797 - in head/sys: net netinet netinet6 To: "Alexander V. Chernikov" Cc: svn-src-all , svn-src-head , src-committers Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 4905Q65MWBz442r X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; REPLY(-4.00)[]; TAGGED_FROM(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Apr 2020 20:02:23 -0000 Hi Alexander, On Sat, Apr 11, 2020 at 12:37 AM Alexander V. Chernikov wrote: > > Author: melifaro > Date: Sat Apr 11 07:37:08 2020 > New Revision: 359797 > URL: https://svnweb.freebsd.org/changeset/base/359797 > > Log: > Remove per-AF radix_mpath initializtion functions. > > Split their functionality by moving random seed allocation > to SYSINIT and calling (new) generic multipath function from > standard IPv4/IPv5 RIB init handlers. > ... > --- head/sys/net/radix_mpath.c Sat Apr 11 07:31:16 2020 (r359796) > +++ head/sys/net/radix_mpath.c Sat Apr 11 07:37:08 2020 (r359797) > @@ -290,38 +290,18 @@ rtalloc_mpath_fib(struct route *ro, uint32_t hash, = u_i > ... > +static void > +mpath_init(void) > { > - struct rib_head *rnh; > > hashjitter =3D arc4random(); > - if (in6_inithead(head, off, fibnum) =3D=3D 1) { > - rnh =3D (struct rib_head *)*head; > - rnh->rnh_multipath =3D 1; > - return 1; > - } else > - return 0; > } > +SYSINIT(mpath_init, SI_SUB_PROTO_DOMAIN, SI_ORDER_ANY, mpath_init, NULL)= ; This is pretty early in boot to be asking for random numbers. We don't have interrupts yet, for example. If the system doesn't have a saved /boot/entropy loaded (PPC, or installer, or some other embedded system perhaps), we will either deadlock boot or get not especially random numbers here (depending on availability behavior of arc4random =E2=80=94 currently we err on the side of low quality random numbers). If this number is predictable to an attacker, is it easier to DoS the system? Do we need the random number before userspace starts? (I would imagine networking does not really start chatting with remote hosts prior to userspace boot, but this is just a guess.) Best, Conrad From owner-svn-src-all@freebsd.org Sat Apr 11 20:36:55 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 721A027A319; Sat, 11 Apr 2020 20:36:55 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 49069z2Pqpz45Gr; Sat, 11 Apr 2020 20:36:55 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 496D01DDB9; Sat, 11 Apr 2020 20:36:55 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03BKat4a047228; Sat, 11 Apr 2020 20:36:55 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03BKatfm047227; Sat, 11 Apr 2020 20:36:55 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <202004112036.03BKatfm047227@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Sat, 11 Apr 2020 20:36:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359809 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: tuexen X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 359809 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Apr 2020 20:36:55 -0000 Author: tuexen Date: Sat Apr 11 20:36:54 2020 New Revision: 359809 URL: https://svnweb.freebsd.org/changeset/base/359809 Log: Zero out pointers for consistency. This was found by running syzkaller on an INVARIANTS kernel. MFC after: 3 days Modified: head/sys/netinet/sctp_output.c Modified: head/sys/netinet/sctp_output.c ============================================================================== --- head/sys/netinet/sctp_output.c Sat Apr 11 17:54:35 2020 (r359808) +++ head/sys/netinet/sctp_output.c Sat Apr 11 20:36:54 2020 (r359809) @@ -12275,6 +12275,8 @@ sctp_send_str_reset_req(struct sctp_tcb *stcb, /* now anything on those queues? */ TAILQ_FOREACH_SAFE(sp, &oldstream[i].outqueue, next, nsp) { TAILQ_REMOVE(&oldstream[i].outqueue, sp, next); + sp->ss_next.tqe_next = NULL; + sp->ss_next.tqe_prev = NULL; TAILQ_INSERT_TAIL(&stcb->asoc.strmout[i].outqueue, sp, next); } From owner-svn-src-all@freebsd.org Sat Apr 11 20:45:46 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3B54527A834; Sat, 11 Apr 2020 20:45:46 +0000 (UTC) (envelope-from melifaro@ipfw.ru) Received: from forward500j.mail.yandex.net (forward500j.mail.yandex.net [5.45.198.250]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4906N96Cjnz45pP; Sat, 11 Apr 2020 20:45:45 +0000 (UTC) (envelope-from melifaro@ipfw.ru) Received: from mxback22g.mail.yandex.net (mxback22g.mail.yandex.net [IPv6:2a02:6b8:0:1472:2741:0:8b7:322]) by forward500j.mail.yandex.net (Yandex) with ESMTP id 587AE11C2166; Sat, 11 Apr 2020 23:45:42 +0300 (MSK) Received: from localhost (localhost [::1]) by mxback22g.mail.yandex.net (mxback/Yandex) with ESMTP id ZCXOxUhjsq-jfhmbsbA; Sat, 11 Apr 2020 23:45:41 +0300 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ipfw.ru; s=mail; t=1586637941; bh=8RuWnKBM570O+3jf6FgwaRlHXB1hdQwBdYypGG69ELI=; h=Message-Id:Cc:Subject:In-Reply-To:Date:References:To:From; b=XA5OWbicQi7GgNvN837OnrMicWSJk/TTxXx//szLgRfleCRPOHnp+UBhBSge//Vz+ xWFob2EAhNfsQMiPQd+OrXmjdtPM+451a7W+aZgZzW5M9gy3kPTbgdO5aFxqOHeiP3 GwkQlK2VrH7gho9hCJJe2emUKLg0MuvxTTLUclyI= Received: by sas2-2d551da8e887.qloud-c.yandex.net with HTTP; Sat, 11 Apr 2020 23:45:41 +0300 From: Alexander V. Chernikov Envelope-From: melifaro@ipfw.ru To: "cem@freebsd.org" Cc: svn-src-all , svn-src-head , src-committers In-Reply-To: References: <202004110737.03B7b8cS067986@repo.freebsd.org> Subject: Re: svn commit: r359797 - in head/sys: net netinet netinet6 MIME-Version: 1.0 X-Mailer: Yamail [ http://yandex.ru ] 5.0 Date: Sat, 11 Apr 2020 21:45:41 +0100 Message-Id: <6140881586636906@vla5-dcf36e533bf7.qloud-c.yandex.net> Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=utf-8 X-Rspamd-Queue-Id: 4906N96Cjnz45pP X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_LONG(-1.00)[-0.999,0]; REPLY(-4.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Apr 2020 20:45:46 -0000 11.04.2020, 21:02, "Conrad Meyer" : > Hi Alexander, Hi Conrad, > > On Sat, Apr 11, 2020 at 12:37 AM Alexander V. Chernikov > wrote: >>  Author: melifaro >>  Date: Sat Apr 11 07:37:08 2020 >>  New Revision: 359797 >>  URL: https://svnweb.freebsd.org/changeset/base/359797 >> >>  Log: >>    Remove per-AF radix_mpath initializtion functions. >> >>    Split their functionality by moving random seed allocation >>     to SYSINIT and calling (new) generic multipath function from >>     standard IPv4/IPv5 RIB init handlers. >>  ... >>  --- head/sys/net/radix_mpath.c Sat Apr 11 07:31:16 2020 (r359796) >>  +++ head/sys/net/radix_mpath.c Sat Apr 11 07:37:08 2020 (r359797) >>  @@ -290,38 +290,18 @@ rtalloc_mpath_fib(struct route *ro, uint32_t hash, u_i >>  ... >>  +static void >>  +mpath_init(void) >>   { >>  - struct rib_head *rnh; >> >>          hashjitter = arc4random(); >>  - if (in6_inithead(head, off, fibnum) == 1) { >>  - rnh = (struct rib_head *)*head; >>  - rnh->rnh_multipath = 1; >>  - return 1; >>  - } else >>  - return 0; >>   } >>  +SYSINIT(mpath_init, SI_SUB_PROTO_DOMAIN, SI_ORDER_ANY, mpath_init, NULL); > > This is pretty early in boot to be asking for random numbers. We > don't have interrupts yet, for example. If the system doesn't have a > saved /boot/entropy loaded (PPC, or installer, or some other embedded > system perhaps), we will either deadlock boot or get not especially > random numbers here (depending on availability behavior of arc4random > — currently we err on the side of low quality random numbers). Got it, that's a good datapoint! > > If this number is predictable to an attacker, is it easier to DoS the > system? Do we need the random number before userspace starts? (I > would imagine networking does not really start chatting with remote > hosts prior to userspace boot, but this is just a guess.) This number only affects selection of the outbound path in presence of multiple paths available for the same prefix. It means to mitigate hash polarization in the network ( https://www.cisco.com/c/en/us/support/docs/ip/express-forwarding-cef/116376-technote-cef-00.html contains somewhat relevant description). I don't think it that knowing the number make DoSing of the particular system easier. However, better quality randomness is always good. Speaking of "when" it is needed - you're right, it is needed pretty late in the boot process, after the userland starts. Will moving the order to SI_SUB_LAST help or I need to trigger number generation by different means? > > Best, > Conrad From owner-svn-src-all@freebsd.org Sat Apr 11 20:57:16 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D3C9B27ABF4; Sat, 11 Apr 2020 20:57:16 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4906dS5DZVz46YH; Sat, 11 Apr 2020 20:57:16 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AA8D41E179; Sat, 11 Apr 2020 20:57:16 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03BKvGGa059759; Sat, 11 Apr 2020 20:57:16 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03BKvFkJ059754; Sat, 11 Apr 2020 20:57:15 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <202004112057.03BKvFkJ059754@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Sat, 11 Apr 2020 20:57:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359810 - in head/sys/fs: nfs nfsserver X-SVN-Group: head X-SVN-Commit-Author: rmacklem X-SVN-Commit-Paths: in head/sys/fs: nfs nfsserver X-SVN-Commit-Revision: 359810 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Apr 2020 20:57:16 -0000 Author: rmacklem Date: Sat Apr 11 20:57:15 2020 New Revision: 359810 URL: https://svnweb.freebsd.org/changeset/base/359810 Log: Replace mbuf macros with the code they would generate in the NFS code. When the code was ported to Mac OS/X, mbuf handling functions were converted to using the Mac OS/X accessor functions. For FreeBSD, they are a simple set of macros in sys/fs/nfs/nfskpiport.h. Since porting to Mac OS/X is no longer a consideration, replacement of these macros with the code generated by them makes the code more readable. When support for external page mbufs is added as needed by the KERN_TLS, the patch becomes simpler if done without the macros. This patch should not result in any semantic change. Modified: head/sys/fs/nfs/nfs_commonkrpc.c head/sys/fs/nfs/nfsm_subs.h head/sys/fs/nfsserver/nfs_nfsdcache.c head/sys/fs/nfsserver/nfs_nfsdport.c head/sys/fs/nfsserver/nfs_nfsdserv.c head/sys/fs/nfsserver/nfs_nfsdstate.c Modified: head/sys/fs/nfs/nfs_commonkrpc.c ============================================================================== --- head/sys/fs/nfs/nfs_commonkrpc.c Sat Apr 11 20:36:54 2020 (r359809) +++ head/sys/fs/nfs/nfs_commonkrpc.c Sat Apr 11 20:57:15 2020 (r359810) @@ -1188,8 +1188,8 @@ tryagain: newnfs_restore_sigmask(td, &oldset); return (0); nfsmout: - mbuf_freem(nd->nd_mrep); - mbuf_freem(nd->nd_mreq); + m_freem(nd->nd_mrep); + m_freem(nd->nd_mreq); if (usegssname == 0) AUTH_DESTROY(auth); if (rep != NULL) Modified: head/sys/fs/nfs/nfsm_subs.h ============================================================================== --- head/sys/fs/nfs/nfsm_subs.h Sat Apr 11 20:36:54 2020 (r359809) +++ head/sys/fs/nfs/nfsm_subs.h Sat Apr 11 20:57:15 2020 (r359810) @@ -68,8 +68,8 @@ nfsm_build(struct nfsrv_descript *nd, int siz) NFSMCLGET(mb2, M_NOWAIT); if (siz > MLEN) panic("build > MLEN"); - mbuf_setlen(mb2, 0); - nd->nd_bpos = NFSMTOD(mb2, caddr_t); + mb2->m_len = 0; + nd->nd_bpos = mtod(mb2, caddr_t); nd->nd_mb->m_next = mb2; nd->nd_mb = mb2; } @@ -87,7 +87,7 @@ nfsm_dissect(struct nfsrv_descript *nd, int siz) int tt1; void *retp; - tt1 = NFSMTOD(nd->nd_md, caddr_t) + nd->nd_md->m_len - nd->nd_dpos; + tt1 = mtod(nd->nd_md, caddr_t) + nd->nd_md->m_len - nd->nd_dpos; if (tt1 >= siz) { retp = (void *)nd->nd_dpos; nd->nd_dpos += siz; @@ -103,7 +103,7 @@ nfsm_dissect_nonblock(struct nfsrv_descript *nd, int s int tt1; void *retp; - tt1 = NFSMTOD(nd->nd_md, caddr_t) + nd->nd_md->m_len - nd->nd_dpos; + tt1 = mtod(nd->nd_md, caddr_t) + nd->nd_md->m_len - nd->nd_dpos; if (tt1 >= siz) { retp = (void *)nd->nd_dpos; nd->nd_dpos += siz; Modified: head/sys/fs/nfsserver/nfs_nfsdcache.c ============================================================================== --- head/sys/fs/nfsserver/nfs_nfsdcache.c Sat Apr 11 20:36:54 2020 (r359809) +++ head/sys/fs/nfsserver/nfs_nfsdcache.c Sat Apr 11 20:57:15 2020 (r359810) @@ -486,7 +486,7 @@ nfsrvd_updatecache(struct nfsrv_descript *nd) mtx_unlock(mutex); nd->nd_repstat = 0; if (nd->nd_mreq) - mbuf_freem(nd->nd_mreq); + m_freem(nd->nd_mreq); if (!(rp->rc_flag & RC_REPMBUF)) panic("reply from cache"); nd->nd_mreq = m_copym(rp->rc_reply, 0, @@ -798,7 +798,7 @@ nfsrc_freecache(struct nfsrvcache *rp) } nfsrc_wanted(rp); if (rp->rc_flag & RC_REPMBUF) { - mbuf_freem(rp->rc_reply); + m_freem(rp->rc_reply); if (!(rp->rc_flag & RC_UDP)) atomic_add_int(&nfsrc_tcpsavedreplies, -1); } @@ -1020,8 +1020,8 @@ nfsrc_getlenandcksum(mbuf_t m1, u_int16_t *cksum) m = m1; while (m) { - len += mbuf_len(m); - m = mbuf_next(m); + len += m->m_len; + m = m->m_next; } cklen = (len > NFSRVCACHE_CHECKLEN) ? NFSRVCACHE_CHECKLEN : len; *cksum = in_cksum(m1, cklen); Modified: head/sys/fs/nfsserver/nfs_nfsdport.c ============================================================================== --- head/sys/fs/nfsserver/nfs_nfsdport.c Sat Apr 11 20:36:54 2020 (r359809) +++ head/sys/fs/nfsserver/nfs_nfsdport.c Sat Apr 11 20:57:15 2020 (r359810) @@ -903,18 +903,18 @@ nfsrv_createiovecw(int retlen, struct mbuf *m, char *c cnt = 0; len = retlen; mp = m; - i = mtod(mp, caddr_t) + mbuf_len(mp) - cp; + i = mtod(mp, caddr_t) + mp->m_len - cp; while (len > 0) { if (i > 0) { len -= i; cnt++; } - mp = mbuf_next(mp); + mp = mp->m_next; if (!mp) { if (len > 0) return (EBADRPC); } else - i = mbuf_len(mp); + i = mp->m_len; } /* Now, create the iovec. */ Modified: head/sys/fs/nfsserver/nfs_nfsdserv.c ============================================================================== --- head/sys/fs/nfsserver/nfs_nfsdserv.c Sat Apr 11 20:36:54 2020 (r359809) +++ head/sys/fs/nfsserver/nfs_nfsdserv.c Sat Apr 11 20:57:15 2020 (r359810) @@ -692,9 +692,9 @@ nfsrvd_readlink(struct nfsrv_descript *nd, __unused in goto out; NFSM_BUILD(tl, u_int32_t *, NFSX_UNSIGNED); *tl = txdr_unsigned(len); - mbuf_setnext(nd->nd_mb, mp); + nd->nd_mb->m_next = mp; nd->nd_mb = mpend; - nd->nd_bpos = NFSMTOD(mpend, caddr_t) + mbuf_len(mpend); + nd->nd_bpos = mtod(mpend, caddr_t) + mpend->m_len; out: NFSEXITCODE2(0, nd); @@ -849,7 +849,7 @@ nfsrvd_read(struct nfsrv_descript *nd, __unused int is if (nd->nd_repstat) { vput(vp); if (m3) - mbuf_freem(m3); + m_freem(m3); if (nd->nd_flag & ND_NFSV3) nfsrv_postopattr(nd, getret, &nva); goto out; @@ -873,9 +873,9 @@ nfsrvd_read(struct nfsrv_descript *nd, __unused int is } *tl = txdr_unsigned(cnt); if (m3) { - mbuf_setnext(nd->nd_mb, m3); + nd->nd_mb->m_next = m3; nd->nd_mb = m2; - nd->nd_bpos = NFSMTOD(m2, caddr_t) + mbuf_len(m2); + nd->nd_bpos = mtod(m2, caddr_t) + m2->m_len; } out: @@ -5564,9 +5564,9 @@ nfsrvd_getxattr(struct nfsrv_descript *nd, __unused in if (nd->nd_repstat == 0) { NFSM_BUILD(tl, uint32_t *, NFSX_UNSIGNED); *tl = txdr_unsigned(len); - mbuf_setnext(nd->nd_mb, mp); + nd->nd_mb->m_next = mp; nd->nd_mb = mpend; - nd->nd_bpos = NFSMTOD(mpend, caddr_t) + mbuf_len(mpend); + nd->nd_bpos = mtod(mpend, caddr_t) + mpend->m_len; } free(name, M_TEMP); Modified: head/sys/fs/nfsserver/nfs_nfsdstate.c ============================================================================== --- head/sys/fs/nfsserver/nfs_nfsdstate.c Sat Apr 11 20:36:54 2020 (r359809) +++ head/sys/fs/nfsserver/nfs_nfsdstate.c Sat Apr 11 20:57:15 2020 (r359810) @@ -4468,9 +4468,9 @@ nfsrv_docallback(struct nfsclient *clp, int procnum, n * Get the first mbuf for the request. */ MGET(m, M_WAITOK, MT_DATA); - mbuf_setlen(m, 0); + m->m_len = 0; nd->nd_mreq = nd->nd_mb = m; - nd->nd_bpos = NFSMTOD(m, caddr_t); + nd->nd_bpos = mtod(m, caddr_t); /* * and build the callback request. @@ -4480,7 +4480,7 @@ nfsrv_docallback(struct nfsclient *clp, int procnum, n error = nfsrv_cbcallargs(nd, clp, callback, NFSV4OP_CBGETATTR, "CB Getattr", &sep); if (error != 0) { - mbuf_freem(nd->nd_mreq); + m_freem(nd->nd_mreq); goto errout; } (void)nfsm_fhtom(nd, (u_int8_t *)fhp, NFSX_MYFH, 0); @@ -4490,7 +4490,7 @@ nfsrv_docallback(struct nfsclient *clp, int procnum, n error = nfsrv_cbcallargs(nd, clp, callback, NFSV4OP_CBRECALL, "CB Recall", &sep); if (error != 0) { - mbuf_freem(nd->nd_mreq); + m_freem(nd->nd_mreq); goto errout; } NFSM_BUILD(tl, u_int32_t *, NFSX_UNSIGNED + NFSX_STATEID); @@ -4510,7 +4510,7 @@ nfsrv_docallback(struct nfsclient *clp, int procnum, n NFSV4OP_CBLAYOUTRECALL, "CB Reclayout", &sep); NFSD_DEBUG(4, "aft cbcallargs=%d\n", error); if (error != 0) { - mbuf_freem(nd->nd_mreq); + m_freem(nd->nd_mreq); goto errout; } NFSM_BUILD(tl, u_int32_t *, 4 * NFSX_UNSIGNED); @@ -4536,13 +4536,13 @@ nfsrv_docallback(struct nfsclient *clp, int procnum, n if ((clp->lc_flags & LCL_NFSV41) != 0) { error = nfsv4_getcbsession(clp, &sep); if (error != 0) { - mbuf_freem(nd->nd_mreq); + m_freem(nd->nd_mreq); goto errout; } } } else { error = NFSERR_SERVERFAULT; - mbuf_freem(nd->nd_mreq); + m_freem(nd->nd_mreq); goto errout; } @@ -4626,7 +4626,7 @@ errout: error = nfsv4_loadattr(nd, NULL, nap, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, p, NULL); - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); } NFSLOCKSTATE(); clp->lc_cbref--; From owner-svn-src-all@freebsd.org Sat Apr 11 20:58:46 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6828B27AD04 for ; Sat, 11 Apr 2020 20:58:46 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from outbound2k.ore.mailhop.org (outbound2k.ore.mailhop.org [54.148.219.64]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4906g96kXPz46mH for ; Sat, 11 Apr 2020 20:58:45 +0000 (UTC) (envelope-from ian@freebsd.org) ARC-Seal: i=1; a=rsa-sha256; t=1586638724; cv=none; d=outbound.mailhop.org; s=arc-outbound20181012; b=vdmX0D5JybDdH4kThc/2nsjwpms6CfYo5uygSr2AqHFCaN7Ps7raPmgX9JBmrfDuwXnUdN6QP3MQg tVrXKoO7oxbMO+Yff3sJbKoEs80LR5WhjIB+cyvK5amjZie6A6kdJQPCNzyeZy72h+EQZqYn4tqebo uVb3BsLiawXEXXwHvYbIC3XtpoV4r6IfUA/hE5Nho/gcRZH9Jp7EqviOx6na1xJs7eihE6gB8WsJqK TIqgIvwftzbogKdGLW8nJFpIS/PhNGZb+55e8vYuZh4tz083dAL/M2EQhF4NgQ5d1fv5Dss5dfPGxA 7eHa80wIkEJWovAHncFKIK7+F41F5bg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=outbound.mailhop.org; s=arc-outbound20181012; h=content-transfer-encoding:mime-version:content-type:references:in-reply-to: date:cc:to:from:subject:message-id:dkim-signature:from; bh=osfFxKekFYqNYlwZwQtVe4mhRHeLyOdhwc8FBs4Ldo8=; b=sbgYrMiy6++3NSOLE4m4DUV+z9CP76n6sWkatcJaeX2XE6zzfAJYGDe4gJoTdPeyQWl/1x/Gkk4ho 9v4i5zW/XVqjKPFE6QTVqxZwIbPYIllLWcYUGjsmleGZti1ztCS3uT78wtGp7DBxR+D4NmATzCUTuw Sl+t9ji3Y2IAw3nBCTpQHMZT6PUKtS13oinUTicQGSU7jspc5Xqdovv9QSwihSN82z5VuoUdDsidkZ Th6v+5mis5gxnR3KQIMESUFHxg5BeBaGaniyU176W6ni2JqrAO2Aru9FlroH8pDK3zR8eZYdRG9ddN K6EJqaH0JOtRYsj0N8HzyOG3RLn5KDA== ARC-Authentication-Results: i=1; outbound4.ore.mailhop.org; spf=softfail smtp.mailfrom=freebsd.org smtp.remote-ip=67.177.211.60; dmarc=none header.from=freebsd.org; arc=none header.oldest-pass=0; DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outbound.mailhop.org; s=dkim-high; h=content-transfer-encoding:mime-version:content-type:references:in-reply-to: date:cc:to:from:subject:message-id:from; bh=osfFxKekFYqNYlwZwQtVe4mhRHeLyOdhwc8FBs4Ldo8=; b=gYaxv6N0vI4jD1XlLOf0UzeOwJE1d8/oq7oheLwtpnC2uvpEU67uCOm7Z+KtwE1XltBE8PCT+TaSN AhgxkQYuJDjzvXljfG/m8p02uoDn0umYGb0TnOzlN6yv/MAmlNrxrgDMQuUZIosqevgh8U0EkpHA0/ PfdwGSljqjjDPPdO/fmV3JeBSeoXjOabUXaMBIVYXZ0MM+z8JZ2dMmobuBKo2MnzkRpm4LR4IBJEUb 294WjsZ8ia8pv0dXiUKxsBsdtBjQf206RY/jG7Jo7FZ/HrxI12w7LSQWGcAyUjmZ6E6uh4wfzYP2yO OXZft05NrKa9j+NJrmaPmkpweV+UPoQ== X-MHO-RoutePath: aGlwcGll X-MHO-User: 394bb528-7c37-11ea-a065-6d02e42e573a X-Report-Abuse-To: https://support.duocircle.com/support/solutions/articles/5000540958-duocircle-standard-smtp-abuse-information X-Originating-IP: 67.177.211.60 X-Mail-Handler: DuoCircle Outbound SMTP Received: from ilsoft.org (c-67-177-211-60.hsd1.co.comcast.net [67.177.211.60]) by outbound4.ore.mailhop.org (Halon) with ESMTPSA id 394bb528-7c37-11ea-a065-6d02e42e573a; Sat, 11 Apr 2020 20:58:42 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.15.2/8.15.2) with ESMTP id 03BKwfo3055700; Sat, 11 Apr 2020 14:58:41 -0600 (MDT) (envelope-from ian@freebsd.org) Message-ID: <5667a66b22e18893a4d7de58f0e0fd3084a6e0f7.camel@freebsd.org> Subject: Re: svn commit: r359797 - in head/sys: net netinet netinet6 From: Ian Lepore To: cem@freebsd.org, "Alexander V. Chernikov" Cc: svn-src-all , svn-src-head , src-committers Date: Sat, 11 Apr 2020 14:58:41 -0600 In-Reply-To: References: <202004110737.03B7b8cS067986@repo.freebsd.org> Content-Type: text/plain; charset="windows-1251" X-Mailer: Evolution 3.28.5 FreeBSD GNOME Team Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 4906g96kXPz46mH X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-1.94 / 15.00]; local_wl_from(0.00)[freebsd.org]; NEURAL_HAM_MEDIUM(-0.97)[-0.971,0]; ASN(0.00)[asn:16509, ipnet:54.148.0.0/15, country:US]; NEURAL_HAM_LONG(-0.97)[-0.968,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Apr 2020 20:58:46 -0000 On Sat, 2020-04-11 at 13:02 -0700, Conrad Meyer wrote: > Hi Alexander, > > On Sat, Apr 11, 2020 at 12:37 AM Alexander V. Chernikov > wrote: > > > > Author: melifaro > > Date: Sat Apr 11 07:37:08 2020 > > New Revision: 359797 > > URL: https://svnweb.freebsd.org/changeset/base/359797 > > > > Log: > > Remove per-AF radix_mpath initializtion functions. > > > > Split their functionality by moving random seed allocation > > to SYSINIT and calling (new) generic multipath function from > > standard IPv4/IPv5 RIB init handlers. > > ... > > --- head/sys/net/radix_mpath.c Sat Apr 11 07:31:16 > > 2020 (r359796) > > +++ head/sys/net/radix_mpath.c Sat Apr 11 07:37:08 > > 2020 (r359797) > > @@ -290,38 +290,18 @@ rtalloc_mpath_fib(struct route *ro, uint32_t > > hash, u_i > > ... > > +static void > > +mpath_init(void) > > { > > - struct rib_head *rnh; > > > > hashjitter = arc4random(); > > - if (in6_inithead(head, off, fibnum) == 1) { > > - rnh = (struct rib_head *)*head; > > - rnh->rnh_multipath = 1; > > - return 1; > > - } else > > - return 0; > > } > > +SYSINIT(mpath_init, SI_SUB_PROTO_DOMAIN, SI_ORDER_ANY, mpath_init, > > NULL); > > This is pretty early in boot to be asking for random numbers. We > don't have interrupts yet, for example. If the system doesn't have a > saved /boot/entropy loaded (PPC, or installer, or some other embedded > system perhaps), we will either deadlock boot or get not especially > random numbers here (depending on availability behavior of arc4random > — currently we err on the side of low quality random numbers). > > If this number is predictable to an attacker, is it easier to DoS the > system? Do we need the random number before userspace starts? (I > would imagine networking does not really start chatting with remote > hosts prior to userspace boot, but this is just a guess.) > > Best, > Conrad > I believe the earliest use of networking during boot is for mounting the rootfs using nfs. So SI_SUB_ROOT_CONF-1 might be good. -- Ian From owner-svn-src-all@freebsd.org Sat Apr 11 21:28:33 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id AD59027BC9A; Sat, 11 Apr 2020 21:28:33 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-oi1-f174.google.com (mail-oi1-f174.google.com [209.85.167.174]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4907KY3wQTz48Nw; Sat, 11 Apr 2020 21:28:33 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-oi1-f174.google.com with SMTP id j16so4391589oih.10; Sat, 11 Apr 2020 14:28:33 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:reply-to :from:date:message-id:subject:to:cc:content-transfer-encoding; bh=HWm3WWZhQsoLI1ug9TCNPIYiX4bS2XQR4bO11hFj/1Q=; b=Zh3a01EE/5bo7M6o5Y8kEM5hJGz8Wgz9NfTwDMRyVVrlGWh9VriiQA3pWpOFtB7XBA au+gyw1cnOD0XoZ8KoWc38FJGtN+5Hbwjxip9dn7VWus20FXbNDrcovukTeAkYOi7tGL cf0jUzhPajEBdORQgGQ0y1jjwu09YTXzg1CPFMTHPxJJDjLuGkSWwF43ri9+8YU+NO3t NlypWKmxTvDO43JCrCjdgQztEXO5UwCyz9fs770wBS5AAId+CaTHtXcHvYtBpAQWfzAs Q4udONdktQ7+ddTYIULVcPD8EJpDzfjx4ZBjOO7KnvHAFslzCAbyeG3AkkDvcID522ZT Yh5g== X-Gm-Message-State: AGi0PubPoLGTtw5HCstxbEsQPx3rO8JNfQQcZVT+Ry3S2Mh9FIORQ6G7 dNmXNZIpjRYMOIzVidmYKjeZ6nTS X-Google-Smtp-Source: APiQypJorn/kqRca7fka56b+vd1efeghFVXHVRJdDJtZeZywgeX6I+YArreyAnp7zxB3mnbBQvs0XA== X-Received: by 2002:a54:481a:: with SMTP id j26mr7533899oij.172.1586640512163; Sat, 11 Apr 2020 14:28:32 -0700 (PDT) Received: from mail-ot1-f49.google.com (mail-ot1-f49.google.com. [209.85.210.49]) by smtp.gmail.com with ESMTPSA id q12sm3308753otn.43.2020.04.11.14.28.31 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 11 Apr 2020 14:28:31 -0700 (PDT) Received: by mail-ot1-f49.google.com with SMTP id i27so2466553ota.7; Sat, 11 Apr 2020 14:28:31 -0700 (PDT) X-Received: by 2002:a9d:6d98:: with SMTP id x24mr7690273otp.157.1586640511710; Sat, 11 Apr 2020 14:28:31 -0700 (PDT) MIME-Version: 1.0 References: <202004110737.03B7b8cS067986@repo.freebsd.org> <6140881586636906@vla5-dcf36e533bf7.qloud-c.yandex.net> In-Reply-To: <6140881586636906@vla5-dcf36e533bf7.qloud-c.yandex.net> Reply-To: cem@freebsd.org From: Conrad Meyer Date: Sat, 11 Apr 2020 14:28:20 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r359797 - in head/sys: net netinet netinet6 To: "Alexander V. Chernikov" Cc: svn-src-all , svn-src-head , src-committers Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 4907KY3wQTz48Nw X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[]; TAGGED_FROM(0.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Apr 2020 21:28:33 -0000 On Sat, Apr 11, 2020 at 1:45 PM Alexander V. Chernikov wrote: > This number only affects selection of the outbound path in presence of mu= ltiple paths available for the same prefix. It means to mitigate hash polar= ization in the network ( https://www.cisco.com/c/en/us/support/docs/ip/expr= ess-forwarding-cef/116376-technote-cef-00.html contains somewhat relevant d= escription). > I don't think it that knowing the number make DoSing of the particular sy= stem easier. Thanks! Does it need to be stable over time, or would it be acceptable to be updated at some point? > However, better quality randomness is always good. > Speaking of "when" it is needed - you're right, it is needed pretty late = in the boot process, after the userland starts. > Will moving the order to SI_SUB_LAST help or I need to trigger number gen= eration by different means? SI_SUB_LAST is better, sure. If you want to ensure you eventually get a random number, and changing the number at runtime is acceptable, you could have userspace induce seeding. But maybe that is unnecessarily complex. Typical x86 systems using loader will have good entropy available already at this point, outside of the installer or if there is /boot corruption. (It sounds like this application would be fine with not really random numbers, at least early in boot. We don't have a great API for that need today, unfortunately.) Cheers, Conrad From owner-svn-src-all@freebsd.org Sat Apr 11 21:36:03 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 606B827C13D; Sat, 11 Apr 2020 21:36:03 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-ot1-f42.google.com (mail-ot1-f42.google.com [209.85.210.42]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4907VC1qFhz48vQ; Sat, 11 Apr 2020 21:36:03 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-ot1-f42.google.com with SMTP id g23so5388802otq.4; Sat, 11 Apr 2020 14:36:03 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:reply-to :from:date:message-id:subject:to:cc; bh=t1SjdzkJVOBSJ3s/H7n5P8GILnXw0KODv8RQ6TtRUPM=; b=KY8Fyj0UJXmlOGWwVBYyVV1/7/em4q++qa/fXH820tuxe4D985s3PvmVi4iprvCPbI ap0ymR03DPRxHAiq3J9cHNMMD/dVFQa4PNOnPSAyXxfLt+DaTKUXALDfEWe3Wy7jvpSr Vg6ViCfSt8DYpcd13K0RlSWbQ++N3xDDWiwwdonJSn8vwrif8auqRNlJsi8A+TeJW8yL pvmXusfs9+4cOWcH79cAICVg3MAHhccmD4bvJz62gmmOa3QwC665o0Jx4QVlgfN/Bdvi TrKQyQax414Zb9y5aR8u0kv+HQQpbOXuZGC/cLsvOIrDjbESYyg6cFTewNgYknRxHzLe s34g== X-Gm-Message-State: AGi0PuYrWRTKY2ZtqpRb4QFjCbUnItctwY85WwxDCiRyeoOB4koYW8Af RkQJi7SxDgXUkLvwiarnUHhte59e X-Google-Smtp-Source: APiQypKkl4/81azWLzJdYOhYYBY4E+KnccgoWrOrsV/0t3+0k5rKLO2AOTXjy49Q7GWOl9C/m8YQTA== X-Received: by 2002:a9d:5e0d:: with SMTP id d13mr9292889oti.162.1586640961977; Sat, 11 Apr 2020 14:36:01 -0700 (PDT) Received: from mail-ot1-f50.google.com (mail-ot1-f50.google.com. [209.85.210.50]) by smtp.gmail.com with ESMTPSA id g1sm3318737otr.37.2020.04.11.14.36.01 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 11 Apr 2020 14:36:01 -0700 (PDT) Received: by mail-ot1-f50.google.com with SMTP id a49so5342888otc.11; Sat, 11 Apr 2020 14:36:01 -0700 (PDT) X-Received: by 2002:a4a:848e:: with SMTP id n14mr6329543oog.44.1586640961487; Sat, 11 Apr 2020 14:36:01 -0700 (PDT) MIME-Version: 1.0 References: <202004112036.03BKatfm047227@repo.freebsd.org> In-Reply-To: <202004112036.03BKatfm047227@repo.freebsd.org> Reply-To: cem@freebsd.org From: Conrad Meyer Date: Sat, 11 Apr 2020 14:35:50 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r359809 - head/sys/netinet To: Michael Tuexen Cc: src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 4907VC1qFhz48vQ X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; REPLY(-4.00)[]; TAGGED_FROM(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Apr 2020 21:36:03 -0000 Hi Michael, On Sat, Apr 11, 2020 at 1:37 PM Michael Tuexen wrote: > > Author: tuexen > Date: Sat Apr 11 20:36:54 2020 > New Revision: 359809 > URL: https://svnweb.freebsd.org/changeset/base/359809 > > Log: > Zero out pointers for consistency. > > This was found by running syzkaller on an INVARIANTS kernel. For consistency? If syzkaller found something due to INVARIANTS sys/queue.h debugging trashing the pointer values, masking them by writing zeroes doesn't help. Generally, defeating the kernel's INVARIANTS system is not wise or useful. In this use, consider using 'TAILQ_CONCAT(&stcb->asoc.strmout[i].outqueue, &oldstream[i].outqueue, next)' instead of the loop construct. Conrad From owner-svn-src-all@freebsd.org Sat Apr 11 22:23:37 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 560F027D5D9; Sat, 11 Apr 2020 22:23:37 +0000 (UTC) (envelope-from melifaro@ipfw.ru) Received: from forward500o.mail.yandex.net (forward500o.mail.yandex.net [IPv6:2a02:6b8:0:1a2d::610]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4908Y46wgfz4CQb; Sat, 11 Apr 2020 22:23:36 +0000 (UTC) (envelope-from melifaro@ipfw.ru) Received: from mxback25o.mail.yandex.net (mxback25o.mail.yandex.net [IPv6:2a02:6b8:0:1a2d::76]) by forward500o.mail.yandex.net (Yandex) with ESMTP id D51766030D; Sun, 12 Apr 2020 01:23:32 +0300 (MSK) Received: from localhost (localhost [::1]) by mxback25o.mail.yandex.net (mxback/Yandex) with ESMTP id a2kras6fg0-NWaKIAge; Sun, 12 Apr 2020 01:23:32 +0300 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ipfw.ru; s=mail; t=1586643812; bh=4w9v8pCLScXumRK5Ey8m4O+bVSB4FA9YV/oSlBlmBtE=; h=Message-Id:Cc:Subject:In-Reply-To:Date:References:To:From; b=p93VXC/Ug/0tCpYGtbKOvlMSgsNp6bajKNOfmmZgA5ogEOE1nDJtbg1I8ORb0AJ1e +B3vqX6bEnxKK5EUqhftKPlkXAvC6bx3yBRdXjJ60MbkhutM/lCEGFFf16xcmn/++F QzeZvietxIFHn3MqfHoN95duct4/XEZ53pnxNkbc= Received: by myt6-887fb48a9c29.qloud-c.yandex.net with HTTP; Sun, 12 Apr 2020 01:23:32 +0300 From: Alexander V. Chernikov Envelope-From: melifaro@ipfw.ru To: "cem@freebsd.org" Cc: svn-src-all , svn-src-head , src-committers In-Reply-To: References: <202004110737.03B7b8cS067986@repo.freebsd.org> <6140881586636906@vla5-dcf36e533bf7.qloud-c.yandex.net> Subject: Re: svn commit: r359797 - in head/sys: net netinet netinet6 MIME-Version: 1.0 X-Mailer: Yamail [ http://yandex.ru ] 5.0 Date: Sat, 11 Apr 2020 23:23:32 +0100 Message-Id: <6191651586642867@vla5-4a37cde0b550.qloud-c.yandex.net> Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=utf-8 X-Rspamd-Queue-Id: 4908Y46wgfz4CQb X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Apr 2020 22:23:37 -0000 11.04.2020, 22:28, "Conrad Meyer" : > On Sat, Apr 11, 2020 at 1:45 PM Alexander V. Chernikov > wrote: >>  This number only affects selection of the outbound path in presence of multiple paths available for the same prefix. It means to mitigate hash polarization in the network ( https://www.cisco.com/c/en/us/support/docs/ip/express-forwarding-cef/116376-technote-cef-00.html contains somewhat relevant description). >>  I don't think it that knowing the number make DoSing of the particular system easier. > > Thanks! Does it need to be stable over time, or would it be > acceptable to be updated at some point? If "at some point" means "after N hours/days" than the short answer is no. In the multi-layer CLOS-like networks people usually try to reduce the amount of churn, even in presence of some failures. Changing that number results in increased randomness around the traffic flow, which doesn't bring any obvious benefit. I could potentially imagine user being able to override the number, but typically vendors don't do that. > >>  However, better quality randomness is always good. >>  Speaking of "when" it is needed - you're right, it is needed pretty late in the boot process, after the userland starts. >>  Will moving the order to SI_SUB_LAST help or I need to trigger number generation by different means? > > SI_SUB_LAST is better, sure. If you want to ensure you eventually get > a random number, and changing the number at runtime is acceptable, you > could have userspace induce seeding. But maybe that is unnecessarily Yep, that's a tradeoff between the ideal solution and implementation complexity. I was thinking of an approach when first rtsock connection triggers this generation, but that looks a bit ugly. If we have a good change to get somewhat decent entropy at SI_SUB_LAST, then I guess that's "good enough". > complex. Typical x86 systems using loader will have good entropy > available already at this point, outside of the installer or if there > is /boot corruption. > > (It sounds like this application would be fine with not really random > numbers, at least early in boot. We don't have a great API for that > need today, unfortunately.) Yep, for this value to be used, one need to install multipath route towards particular destination and it has to be actually used by the outbound traffic. Even if it is, nothing exceptionally bad will happen event with 0 value. > > Cheers, > Conrad From owner-svn-src-all@freebsd.org Sat Apr 11 22:30:36 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1E00D27D7D2; Sat, 11 Apr 2020 22:30:36 +0000 (UTC) (envelope-from melifaro@ipfw.ru) Received: from forward501j.mail.yandex.net (forward501j.mail.yandex.net [IPv6:2a02:6b8:0:801:2::111]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4908j60wwqz4CdG; Sat, 11 Apr 2020 22:30:33 +0000 (UTC) (envelope-from melifaro@ipfw.ru) Received: from mxback5q.mail.yandex.net (mxback5q.mail.yandex.net [IPv6:2a02:6b8:c0e:1ba:0:640:b716:ad89]) by forward501j.mail.yandex.net (Yandex) with ESMTP id 9DD6C33800ED; Sun, 12 Apr 2020 01:30:30 +0300 (MSK) Received: from localhost (localhost [::1]) by mxback5q.mail.yandex.net (mxback/Yandex) with ESMTP id TYX1sZ6P25-UUletFlr; Sun, 12 Apr 2020 01:30:30 +0300 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ipfw.ru; s=mail; t=1586644230; bh=ob+9CUifHQHIvMvZT4roGzysvJF9eZPscEvu+LRZkDw=; h=Message-Id:Cc:Subject:In-Reply-To:Date:References:To:From; b=ZiUgXp/UqqzKHGtaYle9gjWAThGrSLYD65WKBJ53k5W1WaQBHcit5xCK+W1VhVK9j cfiq+Muv8ez+xh1zc1DxDGxfts034ffTblK31juMF8wmdL++UxDAe7u+bN8p8aNBOQ +NzdoKX56iqrr2ltYdA9ulhAltWOv+Zm2GEM5sig= Received: by vla1-89a1c81c8982.qloud-c.yandex.net with HTTP; Sun, 12 Apr 2020 01:30:29 +0300 From: Alexander V. Chernikov Envelope-From: melifaro@ipfw.ru To: Ian Lepore , "cem@freebsd.org" Cc: svn-src-all , svn-src-head , src-committers In-Reply-To: <5667a66b22e18893a4d7de58f0e0fd3084a6e0f7.camel@freebsd.org> References: <202004110737.03B7b8cS067986@repo.freebsd.org> <5667a66b22e18893a4d7de58f0e0fd3084a6e0f7.camel@freebsd.org> Subject: Re: svn commit: r359797 - in head/sys: net netinet netinet6 MIME-Version: 1.0 X-Mailer: Yamail [ http://yandex.ru ] 5.0 Date: Sat, 11 Apr 2020 23:30:29 +0100 Message-Id: <4458041586643841@myt4-42d4a9f8d9f5.qloud-c.yandex.net> Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=utf-8 X-Rspamd-Queue-Id: 4908j60wwqz4CdG X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=ipfw.ru header.s=mail header.b=ZiUgXp/U; dmarc=none; spf=pass (mx1.freebsd.org: domain of melifaro@ipfw.ru designates 2a02:6b8:0:801:2::111 as permitted sender) smtp.mailfrom=melifaro@ipfw.ru X-Spamd-Result: default: False [-5.85 / 15.00]; ARC_NA(0.00)[]; TO_DN_EQ_ADDR_SOME(0.00)[]; R_DKIM_ALLOW(-0.20)[ipfw.ru:s=mail]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2a02:6b8:0::/52]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[freebsd.org]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; RCPT_COUNT_FIVE(0.00)[5]; RCVD_COUNT_THREE(0.00)[3]; IP_SCORE(-3.65)[ip: (-9.64), ipnet: 2a02:6b8::/32(-4.77), asn: 13238(-3.85), country: RU(0.01)]; DKIM_TRACE(0.00)[ipfw.ru:+]; RCVD_IN_DNSWL_NONE(0.00)[1.1.1.0.0.0.0.0.0.0.0.0.2.0.0.0.1.0.8.0.0.0.0.0.8.b.6.0.2.0.a.2.list.dnswl.org : 127.0.5.0]; FORGED_SENDER(0.30)[melifaro@freebsd.org,melifaro@ipfw.ru]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:13238, ipnet:2a02:6b8::/32, country:RU]; FROM_NEQ_ENVFROM(0.00)[melifaro@freebsd.org,melifaro@ipfw.ru] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Apr 2020 22:30:36 -0000 11.04.2020, 21:58, "Ian Lepore" : > On Sat, 2020-04-11 at 13:02 -0700, Conrad Meyer wrote: >>  Hi Alexander, >> >>  On Sat, Apr 11, 2020 at 12:37 AM Alexander V. Chernikov >>   wrote: >>  > >>  > Author: melifaro >>  > Date: Sat Apr 11 07:37:08 2020 >>  > New Revision: 359797 >>  > URL: https://svnweb.freebsd.org/changeset/base/359797 >>  > >>  > Log: >>  > Remove per-AF radix_mpath initializtion functions. >>  > >>  > Split their functionality by moving random seed allocation >>  > to SYSINIT and calling (new) generic multipath function from >>  > standard IPv4/IPv5 RIB init handlers. >>  > ... >>  > --- head/sys/net/radix_mpath.c Sat Apr 11 07:31:16 >>  > 2020 (r359796) >>  > +++ head/sys/net/radix_mpath.c Sat Apr 11 07:37:08 >>  > 2020 (r359797) >>  > @@ -290,38 +290,18 @@ rtalloc_mpath_fib(struct route *ro, uint32_t >>  > hash, u_i >>  > ... >>  > +static void >>  > +mpath_init(void) >>  > { >>  > - struct rib_head *rnh; >>  > >>  > hashjitter = arc4random(); >>  > - if (in6_inithead(head, off, fibnum) == 1) { >>  > - rnh = (struct rib_head *)*head; >>  > - rnh->rnh_multipath = 1; >>  > - return 1; >>  > - } else >>  > - return 0; >>  > } >>  > +SYSINIT(mpath_init, SI_SUB_PROTO_DOMAIN, SI_ORDER_ANY, mpath_init, >>  > NULL); >> >>  This is pretty early in boot to be asking for random numbers. We >>  don't have interrupts yet, for example. If the system doesn't have a >>  saved /boot/entropy loaded (PPC, or installer, or some other embedded >>  system perhaps), we will either deadlock boot or get not especially >>  random numbers here (depending on availability behavior of arc4random >>  — currently we err on the side of low quality random numbers). >> >>  If this number is predictable to an attacker, is it easier to DoS the >>  system? Do we need the random number before userspace starts? (I >>  would imagine networking does not really start chatting with remote >>  hosts prior to userspace boot, but this is just a guess.) >> >>  Best, >>  Conrad > > I believe the earliest use of networking during boot is for mounting > the rootfs using nfs. So SI_SUB_ROOT_CONF-1 might be good. Yep, that's a good one. Generally you're right. In this particular case, this random value is only used when we have multiple paths to a particular destination. Such configuraition implies having either routing daemon up, or static route(8) configuration applied, which will happen at least after SI_SUB_KTHREAD_INIT. With all this in mind I'm thinking of moving it to the SI_SUB_LAST to increase the chance of getting good entropy. Does this sound good to you? > > -- Ian From owner-svn-src-all@freebsd.org Sat Apr 11 23:37:59 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CC52827F11D; Sat, 11 Apr 2020 23:37:59 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 490BBv4S8Fz4HQt; Sat, 11 Apr 2020 23:37:59 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8F7451FFEA; Sat, 11 Apr 2020 23:37:59 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03BNbxR8064390; Sat, 11 Apr 2020 23:37:59 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03BNbxob064388; Sat, 11 Apr 2020 23:37:59 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <202004112337.03BNbxob064388@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Sat, 11 Apr 2020 23:37:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359811 - in head/sys/fs: nfs nfsclient X-SVN-Group: head X-SVN-Commit-Author: rmacklem X-SVN-Commit-Paths: in head/sys/fs: nfs nfsclient X-SVN-Commit-Revision: 359811 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Apr 2020 23:37:59 -0000 Author: rmacklem Date: Sat Apr 11 23:37:58 2020 New Revision: 359811 URL: https://svnweb.freebsd.org/changeset/base/359811 Log: Replace mbuf macros with the code they would generate in the NFS code. When the code was ported to Mac OS/X, mbuf handling functions were converted to using the Mac OS/X accessor functions. For FreeBSD, they are a simple set of macros in sys/fs/nfs/nfskpiport.h. Since porting to Mac OS/X is no longer a consideration, replacement of these macros with the code generated by them makes the code more readable. When support for external page mbufs is added as needed by the KERN_TLS, the patch becomes simpler if done without the macros. This patch should not result in any semantic change. This is the final patch of this series and the macros should now be able to be deleted from the .h files in a future commit. Modified: head/sys/fs/nfs/nfs_commonkrpc.c head/sys/fs/nfsclient/nfs_clrpcops.c Modified: head/sys/fs/nfs/nfs_commonkrpc.c ============================================================================== --- head/sys/fs/nfs/nfs_commonkrpc.c Sat Apr 11 20:57:15 2020 (r359810) +++ head/sys/fs/nfs/nfs_commonkrpc.c Sat Apr 11 23:37:58 2020 (r359811) @@ -893,7 +893,7 @@ tryagain: */ newnfs_realign(&nd->nd_mrep, M_WAITOK); nd->nd_md = nd->nd_mrep; - nd->nd_dpos = NFSMTOD(nd->nd_md, caddr_t); + nd->nd_dpos = mtod(nd->nd_md, caddr_t); nd->nd_repstat = 0; if (nd->nd_procnum != NFSPROC_NULL && nd->nd_procnum != NFSV4PROC_CBNULL) { Modified: head/sys/fs/nfsclient/nfs_clrpcops.c ============================================================================== --- head/sys/fs/nfsclient/nfs_clrpcops.c Sat Apr 11 20:57:15 2020 (r359810) +++ head/sys/fs/nfsclient/nfs_clrpcops.c Sat Apr 11 23:37:58 2020 (r359811) @@ -238,7 +238,7 @@ nfsrpc_null(vnode_t vp, struct ucred *cred, NFSPROC_T error = nfscl_request(nd, vp, p, cred, NULL); if (nd->nd_repstat && !error) error = nd->nd_repstat; - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -344,7 +344,7 @@ nfsrpc_accessrpc(vnode_t vp, u_int32_t mode, struct uc } else error = nd->nd_repstat; nfsmout: - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -679,7 +679,7 @@ nfsmout: *dpp = ndp; else if (ndp != NULL) free(ndp, M_NFSCLDELEG); - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -722,7 +722,7 @@ nfsrpc_opendowngrade(vnode_t vp, u_int32_t mode, struc if (error == NFSERR_STALESTATEID) nfscl_initiate_recovery(op->nfso_own->nfsow_clp); nfsmout: - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -880,7 +880,7 @@ nfsrpc_closerpc(struct nfsrv_descript *nd, struct nfsm if (error == NFSERR_STALESTATEID) nfscl_initiate_recovery(op->nfso_own->nfsow_clp); nfsmout: - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -922,7 +922,7 @@ nfsrpc_openconfirm(vnode_t vp, u_int8_t *nfhp, int fhl if (error == NFSERR_STALESTATEID) nfscl_initiate_recovery(op->nfso_own->nfsow_clp); nfsmout: - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -1077,7 +1077,7 @@ nfsrpc_setclient(struct nfsmount *nmp, struct nfsclcli tsep->nfsess_clientid.lval[1] = *tl++; confirm.lval[0] = *tl++; confirm.lval[1] = *tl; - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); nd->nd_mrep = NULL; /* @@ -1095,7 +1095,7 @@ nfsrpc_setclient(struct nfsmount *nmp, struct nfsclcli cred, NFS_PROG, NFS_VER4, NULL, 1, NULL, NULL); if (error) return (error); - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); nd->nd_mrep = NULL; if (nd->nd_repstat == 0) { nfscl_reqstart(nd, NFSPROC_GETATTR, nmp, nmp->nm_fh, @@ -1123,7 +1123,7 @@ nfsrpc_setclient(struct nfsmount *nmp, struct nfsclcli } error = nd->nd_repstat; nfsmout: - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -1150,7 +1150,7 @@ nfsrpc_getattr(vnode_t vp, struct ucred *cred, NFSPROC error = nfsm_loadattr(nd, nap); else error = nd->nd_repstat; - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -1190,7 +1190,7 @@ nfsrpc_getattrnovp(struct nfsmount *nmp, u_int8_t *fhp error = nfsm_loadattr(nd, nap); } else error = nd->nd_repstat; - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -1315,7 +1315,7 @@ nfsrpc_setattrrpc(vnode_t vp, struct vattr *vap, error = nfsrv_getattrbits(nd, &attrbits, NULL, NULL); if (!(nd->nd_flag & ND_NFSV3) && !nd->nd_repstat && !error) error = nfscl_postop_attr(nd, rnap, attrflagp, stuff); - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); if (nd->nd_repstat && !error) error = nd->nd_repstat; return (error); @@ -1387,7 +1387,7 @@ nfsrpc_lookup(vnode_t dvp, char *name, int len, struct nfhp->nfh_len = np->n_fhp->nfh_len; NFSBCOPY(np->n_fhp->nfh_fh, nfhp->nfh_fh, nfhp->nfh_len); *nfhpp = nfhp; - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (0); } if (nd->nd_flag & ND_NFSV3) @@ -1418,7 +1418,7 @@ nfsrpc_lookup(vnode_t dvp, char *name, int len, struct if ((nd->nd_flag & ND_NFSV3) && !error) error = nfscl_postop_attr(nd, dnap, dattrflagp, stuff); nfsmout: - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); if (!error && nd->nd_repstat) error = nd->nd_repstat; return (error); @@ -1476,7 +1476,7 @@ nfsrpc_readlink(vnode_t vp, struct uio *uiop, struct u if (nd->nd_repstat && !error) error = nd->nd_repstat; nfsmout: - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -1617,7 +1617,7 @@ nfsrpc_readrpc(vnode_t vp, struct uio *uiop, struct uc error = nfsm_mbufuio(nd, uiop, retlen); if (error) goto nfsmout; - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); nd->nd_mrep = NULL; tsiz -= retlen; if (!(nd->nd_flag & ND_NFSV2)) { @@ -1629,7 +1629,7 @@ nfsrpc_readrpc(vnode_t vp, struct uio *uiop, struct uc return (0); nfsmout: if (nd->nd_mrep != NULL) - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -1885,13 +1885,13 @@ nfsrpc_writerpc(vnode_t vp, struct uio *uiop, int *iom if (error) goto nfsmout; NFSWRITERPC_SETTIME(wccflag, np, nap, (nd->nd_flag & ND_NFSV4)); - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); nd->nd_mrep = NULL; tsiz -= len; } nfsmout: if (nd->nd_mrep != NULL) - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); *iomode = committed; if (nd->nd_repstat && !error) error = nd->nd_repstat; @@ -1974,7 +1974,7 @@ nfsrpc_mknod(vnode_t dvp, char *name, int namelen, str if (!error && nd->nd_repstat) error = nd->nd_repstat; nfsmout: - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -2098,7 +2098,7 @@ nfsrpc_createv23(vnode_t dvp, char *name, int namelen, if (nd->nd_repstat != 0 && error == 0) error = nd->nd_repstat; nfsmout: - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -2343,7 +2343,7 @@ nfsmout: *dpp = dp; else if (dp != NULL) free(dp, M_NFSCLDELEG); - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -2404,7 +2404,7 @@ tryagain: * If the Delegreturn failed, try again without * it. The server will Recall, as required. */ - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); goto tryagain; } for (i = 0; i < (ret * 2); i++) { @@ -2420,7 +2420,7 @@ tryagain: if (nd->nd_repstat && !error) error = nd->nd_repstat; nfsmout: - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -2532,7 +2532,7 @@ tryagain: * If the Delegreturn failed, try again without * it. The server will Recall, as required. */ - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); goto tryagain; } for (i = 0; i < (ret * 2); i++) { @@ -2548,7 +2548,7 @@ tryagain: * If ret > 1, the first iteration of this * loop is the second DelegReturn result. */ - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); goto tryagain; } else { nd->nd_flag |= ND_NOMOREDATA; @@ -2578,7 +2578,7 @@ tryagain: if (nd->nd_repstat && !error) error = nd->nd_repstat; nfsmout: - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -2641,7 +2641,7 @@ nfsrpc_link(vnode_t dvp, vnode_t vp, char *name, int n if (nd->nd_repstat && !error) error = nd->nd_repstat; nfsmout: - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -2693,7 +2693,7 @@ nfsrpc_symlink(vnode_t dvp, char *name, int namelen, c } if (nd->nd_repstat && !error) error = nd->nd_repstat; - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); /* * Kludge: Map EEXIST => 0 assuming that it is a reply to a retry. * Only do this if vfs.nfs.ignore_eexist is set. @@ -2775,7 +2775,7 @@ nfsrpc_mkdir(vnode_t dvp, char *name, int namelen, str if (nd->nd_repstat && !error) error = nd->nd_repstat; nfsmout: - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); /* * Kludge: Map EEXIST => 0 assuming that it is a reply to a retry. * Only do this if vfs.nfs.ignore_eexist is set. @@ -2810,7 +2810,7 @@ nfsrpc_rmdir(vnode_t dvp, char *name, int namelen, str error = nfscl_wcc_data(nd, dvp, dnap, dattrflagp, NULL, dstuff); if (nd->nd_repstat && !error) error = nd->nd_repstat; - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); /* * Kludge: Map ENOENT => 0 assuming that you have a reply to a retry. */ @@ -2976,7 +2976,7 @@ nfsrpc_readdir(vnode_t vp, struct uio *uiop, nfsuint64 } else { error = nd->nd_repstat; } - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); if (error) return (error); nd->nd_mrep = NULL; @@ -3225,7 +3225,7 @@ nfsrpc_readdir(vnode_t vp, struct uio *uiop, nfsuint64 goto nfsmout; } } - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); nd->nd_mrep = NULL; } /* @@ -3276,7 +3276,7 @@ nfsrpc_readdir(vnode_t vp, struct uio *uiop, nfsuint64 nfsmout: if (nd->nd_mrep != NULL) - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -3413,7 +3413,7 @@ nfsrpc_readdirplus(vnode_t vp, struct uio *uiop, nfsui } else { error = nd->nd_repstat; } - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); if (error) return (error); nd->nd_mrep = NULL; @@ -3728,7 +3728,7 @@ nfsrpc_readdirplus(vnode_t vp, struct uio *uiop, nfsui goto nfsmout; } } - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); nd->nd_mrep = NULL; } /* @@ -3779,7 +3779,7 @@ nfsrpc_readdirplus(vnode_t vp, struct uio *uiop, nfsui nfsmout: if (nd->nd_mrep != NULL) - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } #endif /* !APPLE */ @@ -3830,7 +3830,7 @@ nfsrpc_commit(vnode_t vp, u_quad_t offset, int cnt, st nfsmout: if (!error && nd->nd_repstat) error = nd->nd_repstat; - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -4073,7 +4073,7 @@ nfsrpc_lockt(struct nfsrv_descript *nd, vnode_t vp, } else if (nd->nd_repstat == NFSERR_STALECLIENTID) nfscl_initiate_recovery(clp); nfsmout: - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -4123,7 +4123,7 @@ nfsrpc_locku(struct nfsrv_descript *nd, struct nfsmoun } else if (nd->nd_repstat == NFSERR_STALESTATEID) nfscl_initiate_recovery(lp->nfsl_open->nfso_own->nfsow_clp); nfsmout: - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -4211,7 +4211,7 @@ nfsrpc_lock(struct nfsrv_descript *nd, struct nfsmount } else if (nd->nd_repstat == NFSERR_STALESTATEID) nfscl_initiate_recovery(lp->nfsl_open->nfso_own->nfsow_clp); nfsmout: - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -4291,7 +4291,7 @@ nfsrpc_statfs(vnode_t vp, struct nfsstatfs *sbp, struc sbp->sf_bavail = fxdr_unsigned(u_int32_t, *tl); } nfsmout: - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -4352,7 +4352,7 @@ nfsrpc_pathconf(vnode_t vp, struct nfsv3_pathconf *pc, } } nfsmout: - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -4391,7 +4391,7 @@ nfsrpc_fsinfo(vnode_t vp, struct nfsfsinfo *fsp, struc fsp->fs_properties = fxdr_unsigned(u_int32_t, *tl); } nfsmout: - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -4445,7 +4445,7 @@ nfsrpc_renew(struct nfsclclient *clp, struct nfsclds * if (error) return (error); error = nd->nd_repstat; - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -4484,7 +4484,7 @@ nfsrpc_rellockown(struct nfsmount *nmp, struct nfscllo if (error) return (error); error = nd->nd_repstat; - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -4553,7 +4553,7 @@ nfsrpc_getdirpath(struct nfsmount *nmp, u_char *dirpat } error = nd->nd_repstat; nfsmout: - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -4586,7 +4586,7 @@ nfsrpc_delegreturn(struct nfscldeleg *dp, struct ucred if (error) return (error); error = nd->nd_repstat; - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -4616,7 +4616,7 @@ nfsrpc_getacl(vnode_t vp, struct ucred *cred, NFSPROC_ NULL, NULL, NULL, aclp, 0, NULL, NULL, NULL, p, cred); else error = nd->nd_repstat; - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -4660,7 +4660,7 @@ nfsrpc_setaclrpc(vnode_t vp, struct ucred *cred, NFSPR if (error) return (error); /* Don't care about the pre/postop attributes */ - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (nd->nd_repstat); } @@ -4750,7 +4750,7 @@ nfsrpc_exchangeid(struct nfsmount *nmp, struct nfsclcl } error = nd->nd_repstat; nfsmout: - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -4888,7 +4888,7 @@ nfsrpc_createsession(struct nfsmount *nmp, struct nfsc } error = nd->nd_repstat; nfsmout: - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -4916,7 +4916,7 @@ nfsrpc_destroysession(struct nfsmount *nmp, struct nfs if (error != 0) return (error); error = nd->nd_repstat; - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -4945,7 +4945,7 @@ nfsrpc_destroyclient(struct nfsmount *nmp, struct nfsc if (error != 0) return (error); error = nd->nd_repstat; - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -4977,7 +4977,7 @@ nfsrpc_layoutget(struct nfsmount *nmp, uint8_t *fhp, i flhp); if (error == 0 && nd->nd_repstat != 0) error = nd->nd_repstat; - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -5211,7 +5211,7 @@ nfsrpc_getdeviceinfo(struct nfsmount *nmp, uint8_t *de nfsmout: if (error != 0 && ndi != NULL) nfscl_freedevinfo(ndi); - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -5260,7 +5260,7 @@ nfsrpc_layoutcommit(struct nfsmount *nmp, uint8_t *fh, if (error != 0) return (error); error = nd->nd_repstat; - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -5348,7 +5348,7 @@ nfsrpc_layoutreturn(struct nfsmount *nmp, uint8_t *fh, } else error = nd->nd_repstat; nfsmout: - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -5645,7 +5645,7 @@ nfsrpc_reclaimcomplete(struct nfsmount *nmp, struct uc if (error != 0) return (error); error = nd->nd_repstat; - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -5908,10 +5908,10 @@ nfsm_copym(struct mbuf *m, int off, int xfer) while (m3->m_next != NULL) m3 = m3->m_next; NFSMGET(m4); - tl = NFSMTOD(m4, uint32_t *); + tl = mtod(m4, uint32_t *); *tl = 0; - mbuf_setlen(m4, rem); - mbuf_setnext(m3, m4); + m4->m_len = rem; + m3->m_next = m4; } return (m2); } @@ -6275,7 +6275,7 @@ nfsrpc_readds(vnode_t vp, struct uio *uiop, nfsv4state error = nfsm_mbufuio(nd, uiop, retlen); nfsmout: if (nd->nd_mrep != NULL) - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -6400,7 +6400,7 @@ nfsrpc_writeds(vnode_t vp, struct uio *uiop, int *iomo } nfsmout: if (nd->nd_mrep != NULL) - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); *iomode = committed; if (nd->nd_repstat != 0 && error == 0) error = nd->nd_repstat; @@ -6511,7 +6511,7 @@ nfsrpc_writedsmir(vnode_t vp, int *iomode, int *must_c } nfsmout: if (nd->nd_mrep != NULL) - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); *iomode = committed; if (nd->nd_repstat != 0 && error == 0) error = nd->nd_repstat; @@ -6698,7 +6698,7 @@ nfsrpc_commitds(vnode_t vp, uint64_t offset, int cnt, nfsmout: if (error == 0 && nd->nd_repstat != 0) error = nd->nd_repstat; - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -6783,7 +6783,7 @@ nfsrpc_advise(vnode_t vp, off_t offset, uint64_t cnt, return (error); if (nd->nd_repstat != 0) error = nd->nd_repstat; - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -6837,7 +6837,7 @@ nfsrpc_adviseds(vnode_t vp, uint64_t offset, int cnt, return (error); if (nd->nd_repstat != 0) error = nd->nd_repstat; - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -7001,7 +7001,7 @@ nfsrpc_allocaterpc(vnode_t vp, off_t off, off_t len, n } else error = nd->nd_repstat; nfsmout: - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -7616,7 +7616,7 @@ nfsrpc_openlayoutrpc(struct nfsmount *nmp, vnode_t vp, error = nd->nd_repstat; nfsmout: free(ndp, M_NFSCLDELEG); - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -7873,7 +7873,7 @@ nfsmout: *dpp = dp; else free(dp, M_NFSCLDELEG); - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -8190,7 +8190,7 @@ nfsrpc_copyrpc(vnode_t invp, off_t inoff, vnode_t outv if (error == 0) error = nd->nd_repstat; nfsmout: - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -8284,7 +8284,7 @@ nfsrpc_seekrpc(vnode_t vp, off_t *offp, nfsv4stateid_t } error = nd->nd_repstat; nfsmout: - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -8355,7 +8355,7 @@ nfsrpc_getextattr(vnode_t vp, const char *name, struct if (error == 0) error = nd->nd_repstat; nfsmout: - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -8376,7 +8376,7 @@ nfsrpc_setextattr(vnode_t vp, const char *name, struct NFSCL_REQSTART(nd, NFSPROC_SETEXTATTR, vp); if (uiop->uio_resid > nd->nd_maxreq) { /* nd_maxreq is set by NFSCL_REQSTART(). */ - mbuf_freem(nd->nd_mreq); + m_freem(nd->nd_mreq); return (EINVAL); } NFSM_BUILD(tl, uint32_t *, NFSX_UNSIGNED); @@ -8403,7 +8403,7 @@ nfsrpc_setextattr(vnode_t vp, const char *name, struct if (error == 0) error = nd->nd_repstat; nfsmout: - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -8441,7 +8441,7 @@ nfsrpc_rmextattr(vnode_t vp, const char *name, struct if (error == 0) error = nd->nd_repstat; nfsmout: - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); } @@ -8518,7 +8518,7 @@ nfsrpc_listextattr(vnode_t vp, uint64_t *cookiep, stru if (error == 0) error = nd->nd_repstat; nfsmout: - mbuf_freem(nd->nd_mrep); + m_freem(nd->nd_mrep); return (error); }