From owner-svn-src-all@freebsd.org Sun Apr 26 00:41: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 D20142C6554; Sun, 26 Apr 2020 00:41:30 +0000 (UTC) (envelope-from vangyzen@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 498pxk5Fymz3Hyj; Sun, 26 Apr 2020 00:41:30 +0000 (UTC) (envelope-from vangyzen@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 AFBBB187CE; Sun, 26 Apr 2020 00:41:30 +0000 (UTC) (envelope-from vangyzen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03Q0fUOg007533; Sun, 26 Apr 2020 00:41:30 GMT (envelope-from vangyzen@FreeBSD.org) Received: (from vangyzen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03Q0fUoK007530; Sun, 26 Apr 2020 00:41:30 GMT (envelope-from vangyzen@FreeBSD.org) Message-Id: <202004260041.03Q0fUoK007530@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: vangyzen set sender to vangyzen@FreeBSD.org using -f From: Eric van Gyzen Date: Sun, 26 Apr 2020 00:41:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360328 - in head/sys: kern sys x86/x86 X-SVN-Group: head X-SVN-Commit-Author: vangyzen X-SVN-Commit-Paths: in head/sys: kern sys x86/x86 X-SVN-Commit-Revision: 360328 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, 26 Apr 2020 00:41:30 -0000 Author: vangyzen Date: Sun Apr 26 00:41:29 2020 New Revision: 360328 URL: https://svnweb.freebsd.org/changeset/base/360328 Log: Fix handling of NMIs from unknown sources (BMC, hypervisor) Release kernels have no KDB backends enabled, so they discard an NMI if it is not due to a hardware failure. This includes NMIs from IPMI BMCs and hypervisors. Furthermore, the interaction of panic_on_nmi, kdb_on_nmi, and debugger_on_panic is confusing. Respond to all NMIs according to panic_on_nmi and debugger_on_panic. Remove kdb_on_nmi. Expand the meaning of panic_on_nmi by making it a bitfield. There are currently two bits: one for NMIs due to hardware failure, and one for all others. Leave room for more. If panic_on_nmi and debugger_on_panic are both true, don't actually panic, but directly enter the debugger, to allow someone to leave the debugger and [hopefully] resume normal execution. Reviewed by: kib MFC after: 2 weeks Relnotes: yes: machdep.kdb_on_nmi is gone; machdep.panic_on_nmi changed Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D24558 Modified: head/sys/kern/kern_shutdown.c head/sys/sys/kdb.h head/sys/x86/x86/cpu_machdep.c Modified: head/sys/kern/kern_shutdown.c ============================================================================== --- head/sys/kern/kern_shutdown.c Sat Apr 25 23:35:49 2020 (r360327) +++ head/sys/kern/kern_shutdown.c Sun Apr 26 00:41:29 2020 (r360328) @@ -119,9 +119,9 @@ SYSCTL_INT(_kern, OID_AUTO, panic_reboot_wait_time, CT #ifdef KDB #ifdef KDB_UNATTENDED -static int debugger_on_panic = 0; +int debugger_on_panic = 0; #else -static int debugger_on_panic = 1; +int debugger_on_panic = 1; #endif SYSCTL_INT(_debug, OID_AUTO, debugger_on_panic, CTLFLAG_RWTUN | CTLFLAG_SECURE, Modified: head/sys/sys/kdb.h ============================================================================== --- head/sys/sys/kdb.h Sat Apr 25 23:35:49 2020 (r360327) +++ head/sys/sys/kdb.h Sun Apr 26 00:41:29 2020 (r360328) @@ -65,6 +65,7 @@ struct kdb_dbbe { SET_DECLARE(kdb_dbbe_set, struct kdb_dbbe); extern u_char kdb_active; /* Non-zero while in debugger. */ +extern int debugger_on_panic; /* enter the debugger on panic. */ extern int debugger_on_trap; /* enter the debugger on trap. */ extern struct kdb_dbbe *kdb_dbbe; /* Default debugger backend or NULL. */ extern struct trapframe *kdb_frame; /* Frame to kdb_trap(). */ Modified: head/sys/x86/x86/cpu_machdep.c ============================================================================== --- head/sys/x86/x86/cpu_machdep.c Sat Apr 25 23:35:49 2020 (r360327) +++ head/sys/x86/x86/cpu_machdep.c Sun Apr 26 00:41:29 2020 (r360328) @@ -823,20 +823,14 @@ cpu_idle_tun(void *unused __unused) } SYSINIT(cpu_idle_tun, SI_SUB_CPU, SI_ORDER_MIDDLE, cpu_idle_tun, NULL); -static int panic_on_nmi = 1; +static int panic_on_nmi = 0xff; SYSCTL_INT(_machdep, OID_AUTO, panic_on_nmi, CTLFLAG_RWTUN, &panic_on_nmi, 0, - "Panic on NMI raised by hardware failure"); + "Panic on NMI: 1 = H/W failure; 2 = unknown; 0xff = all"); int nmi_is_broadcast = 1; SYSCTL_INT(_machdep, OID_AUTO, nmi_is_broadcast, CTLFLAG_RWTUN, &nmi_is_broadcast, 0, "Chipset NMI is broadcast"); -#ifdef KDB -int kdb_on_nmi = 1; -SYSCTL_INT(_machdep, OID_AUTO, kdb_on_nmi, CTLFLAG_RWTUN, - &kdb_on_nmi, 0, - "Go to KDB on NMI with unknown source"); -#endif void nmi_call_kdb(u_int cpu, u_int type, struct trapframe *frame) @@ -847,19 +841,31 @@ nmi_call_kdb(u_int cpu, u_int type, struct trapframe * /* machine/parity/power fail/"kitchen sink" faults */ if (isa_nmi(frame->tf_err)) { claimed = true; - if (panic_on_nmi) + if ((panic_on_nmi & 1) != 0) panic("NMI indicates hardware failure"); } #endif /* DEV_ISA */ + + /* + * NMIs can be useful for debugging. They can be hooked up to a + * pushbutton, usually on an ISA, PCI, or PCIe card. They can also be + * generated by an IPMI BMC, either manually or in response to a + * watchdog timeout. For example, see the "power diag" command in + * ports/sysutils/ipmitool. They can also be generated by a + * hypervisor; see "bhyvectl --inject-nmi". + */ + #ifdef KDB - if (!claimed && kdb_on_nmi) { - /* - * NMI can be hooked up to a pushbutton for debugging. - */ - printf("NMI/cpu%d ... going to debugger\n", cpu); - kdb_trap(type, 0, frame); + if (!claimed && (panic_on_nmi & 2) != 0) { + if (debugger_on_panic) { + printf("NMI/cpu%d ... going to debugger\n", cpu); + claimed = kdb_trap(type, 0, frame); + } } #endif /* KDB */ + + if (!claimed && panic_on_nmi != 0) + panic("NMI"); } void From owner-svn-src-all@freebsd.org Sun Apr 26 08:31: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 D6AE22CF5FD; Sun, 26 Apr 2020 08:31:08 +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 4991Mc5Q7vz47p0; Sun, 26 Apr 2020 08:31:08 +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 B1E6C1DFBE; Sun, 26 Apr 2020 08:31:08 +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 03Q8V8Nq098436; Sun, 26 Apr 2020 08:31:08 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03Q8V8HG098435; Sun, 26 Apr 2020 08:31:08 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202004260831.03Q8V8HG098435@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Sun, 26 Apr 2020 08:31:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360329 - head/usr.sbin/bluetooth/hccontrol X-SVN-Group: head X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: head/usr.sbin/bluetooth/hccontrol X-SVN-Commit-Revision: 360329 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, 26 Apr 2020 08:31:08 -0000 Author: hselasky Date: Sun Apr 26 08:31:08 2020 New Revision: 360329 URL: https://svnweb.freebsd.org/changeset/base/360329 Log: Properly update AD field length in hccontrol(8). While at it use strtol() instead of atoi() to support hexadecimal numbers aswell as 10-base numbers. Submitted by: Marc Veldman PR: 245899 MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/usr.sbin/bluetooth/hccontrol/le.c Modified: head/usr.sbin/bluetooth/hccontrol/le.c ============================================================================== --- head/usr.sbin/bluetooth/hccontrol/le.c Sun Apr 26 00:41:29 2020 (r360328) +++ head/usr.sbin/bluetooth/hccontrol/le.c Sun Apr 26 08:31:08 2020 (r360329) @@ -172,13 +172,13 @@ parse_param(int argc, char *argv[], char *buf, int *le goto done; curbuf[0] = 2; curbuf[1] = 1; - curbuf[2] = atoi(optarg); + curbuf[2] = (uint8_t)strtol(optarg, NULL, 16); curbuf += 3; break; case 'u': - lenpos = buf; if ((buf+2) >= buflast) goto done; + lenpos = curbuf; curbuf[1] = 2; *lenpos = 1; curbuf += 2; @@ -189,6 +189,7 @@ parse_param(int argc, char *argv[], char *buf, int *le curbuf[0] = value &0xff; curbuf[1] = (value>>8)&0xff; curbuf += 2; + *lenpos += 2; } } From owner-svn-src-all@freebsd.org Sun Apr 26 08:34: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 84B3A2CF80F; Sun, 26 Apr 2020 08:34: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 4991R02YwQz489d; Sun, 26 Apr 2020 08:34: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 532E21E15B; Sun, 26 Apr 2020 08:34: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 03Q8Y4He001603; Sun, 26 Apr 2020 08:34:04 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03Q8Y4hs001602; Sun, 26 Apr 2020 08:34:04 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202004260834.03Q8Y4hs001602@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Sun, 26 Apr 2020 08:34:04 +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: r360330 - stable/12/sys/kern X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/kern X-SVN-Commit-Revision: 360330 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, 26 Apr 2020 08:34:04 -0000 Author: hselasky Date: Sun Apr 26 08:34:03 2020 New Revision: 360330 URL: https://svnweb.freebsd.org/changeset/base/360330 Log: MFC r359968: Cast all ioctl command arguments through uint32_t internally. Hide debug print showing use of sign extended ioctl command argument under INVARIANTS. The print is available to all and can easily fill up the logs. No functional change intended. Sponsored by: Mellanox Technologies Modified: stable/12/sys/kern/sys_generic.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/kern/sys_generic.c ============================================================================== --- stable/12/sys/kern/sys_generic.c Sun Apr 26 08:31:08 2020 (r360329) +++ stable/12/sys/kern/sys_generic.c Sun Apr 26 08:34:03 2020 (r360330) @@ -655,18 +655,19 @@ int sys_ioctl(struct thread *td, struct ioctl_args *uap) { u_char smalldata[SYS_IOCTL_SMALL_SIZE] __aligned(SYS_IOCTL_SMALL_ALIGN); - u_long com; + uint32_t com; int arg, error; u_int size; caddr_t data; +#ifdef INVARIANTS if (uap->com > 0xffffffff) { printf( "WARNING pid %d (%s): ioctl sign-extension ioctl %lx\n", td->td_proc->p_pid, td->td_name, uap->com); - uap->com &= 0xffffffff; } - com = uap->com; +#endif + com = (uint32_t)uap->com; /* * Interpret high order word to find amount of data to be From owner-svn-src-all@freebsd.org Sun Apr 26 08:34: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 9253E2CF8E6; Sun, 26 Apr 2020 08:34:53 +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 4991Rx3KZyz48JM; Sun, 26 Apr 2020 08:34:53 +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 6D5641E15C; Sun, 26 Apr 2020 08:34:53 +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 03Q8YrDO001697; Sun, 26 Apr 2020 08:34:53 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03Q8Yr5J001696; Sun, 26 Apr 2020 08:34:53 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202004260834.03Q8Yr5J001696@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Sun, 26 Apr 2020 08:34:53 +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: r360331 - stable/11/sys/kern X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/kern X-SVN-Commit-Revision: 360331 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, 26 Apr 2020 08:34:53 -0000 Author: hselasky Date: Sun Apr 26 08:34:52 2020 New Revision: 360331 URL: https://svnweb.freebsd.org/changeset/base/360331 Log: MFC r359968: Cast all ioctl command arguments through uint32_t internally. Hide debug print showing use of sign extended ioctl command argument under INVARIANTS. The print is available to all and can easily fill up the logs. No functional change intended. Sponsored by: Mellanox Technologies Modified: stable/11/sys/kern/sys_generic.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/kern/sys_generic.c ============================================================================== --- stable/11/sys/kern/sys_generic.c Sun Apr 26 08:34:03 2020 (r360330) +++ stable/11/sys/kern/sys_generic.c Sun Apr 26 08:34:52 2020 (r360331) @@ -688,18 +688,19 @@ int sys_ioctl(struct thread *td, struct ioctl_args *uap) { u_char smalldata[SYS_IOCTL_SMALL_SIZE] __aligned(SYS_IOCTL_SMALL_ALIGN); - u_long com; + uint32_t com; int arg, error; u_int size; caddr_t data; +#ifdef INVARIANTS if (uap->com > 0xffffffff) { printf( "WARNING pid %d (%s): ioctl sign-extension ioctl %lx\n", td->td_proc->p_pid, td->td_name, uap->com); - uap->com &= 0xffffffff; } - com = uap->com; +#endif + com = (uint32_t)uap->com; /* * Interpret high order word to find amount of data to be From owner-svn-src-all@freebsd.org Sun Apr 26 08:35: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 1EBF12CF95C; Sun, 26 Apr 2020 08:35:33 +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 4991Sh71pkz48QJ; Sun, 26 Apr 2020 08:35: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 EC3131E15D; Sun, 26 Apr 2020 08:35: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 03Q8ZW5k001799; Sun, 26 Apr 2020 08:35:32 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03Q8ZWuD001798; Sun, 26 Apr 2020 08:35:32 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202004260835.03Q8ZWuD001798@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Sun, 26 Apr 2020 08:35:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r360332 - stable/10/sys/kern X-SVN-Group: stable-10 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/10/sys/kern X-SVN-Commit-Revision: 360332 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, 26 Apr 2020 08:35:33 -0000 Author: hselasky Date: Sun Apr 26 08:35:32 2020 New Revision: 360332 URL: https://svnweb.freebsd.org/changeset/base/360332 Log: MFC r359968: Cast all ioctl command arguments through uint32_t internally. Hide debug print showing use of sign extended ioctl command argument under INVARIANTS. The print is available to all and can easily fill up the logs. No functional change intended. Sponsored by: Mellanox Technologies Modified: stable/10/sys/kern/sys_generic.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/kern/sys_generic.c ============================================================================== --- stable/10/sys/kern/sys_generic.c Sun Apr 26 08:34:52 2020 (r360331) +++ stable/10/sys/kern/sys_generic.c Sun Apr 26 08:35:32 2020 (r360332) @@ -663,18 +663,19 @@ int sys_ioctl(struct thread *td, struct ioctl_args *uap) { u_char smalldata[SYS_IOCTL_SMALL_SIZE] __aligned(SYS_IOCTL_SMALL_ALIGN); - u_long com; + uint32_t com; int arg, error; u_int size; caddr_t data; +#ifdef INVARIANTS if (uap->com > 0xffffffff) { printf( "WARNING pid %d (%s): ioctl sign-extension ioctl %lx\n", td->td_proc->p_pid, td->td_name, uap->com); - uap->com &= 0xffffffff; } - com = uap->com; +#endif + com = (uint32_t)uap->com; /* * Interpret high order word to find amount of data to be From owner-svn-src-all@freebsd.org Sun Apr 26 08: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 8494B2CF9E9; Sun, 26 Apr 2020 08:36:55 +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 4991VH2w4Mz48XR; Sun, 26 Apr 2020 08:36:55 +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 5EC841E15E; Sun, 26 Apr 2020 08:36:55 +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 03Q8atIZ001918; Sun, 26 Apr 2020 08:36:55 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03Q8atds001917; Sun, 26 Apr 2020 08:36:55 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202004260836.03Q8atds001917@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Sun, 26 Apr 2020 08:36: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: r360333 - stable/12/sys/dev/usb/controller X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/usb/controller X-SVN-Commit-Revision: 360333 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, 26 Apr 2020 08:36:55 -0000 Author: hselasky Date: Sun Apr 26 08:36:54 2020 New Revision: 360333 URL: https://svnweb.freebsd.org/changeset/base/360333 Log: MFC r360075: Set the maximum exit latency to 0 for XHCI USB 3.0 devices, because we don't implement link power management, LPM. This fixes error code XHCI_TRB_ERROR_BANDWIDTH for isochronous USB 3.0 transactions. Submitted by: Horse Ma Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/usb/controller/xhci.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/usb/controller/xhci.c ============================================================================== --- stable/12/sys/dev/usb/controller/xhci.c Sun Apr 26 08:35:32 2020 (r360332) +++ stable/12/sys/dev/usb/controller/xhci.c Sun Apr 26 08:36:54 2020 (r360333) @@ -2664,23 +2664,6 @@ xhci_configure_device(struct usb_device *udev) sc->sc_hw.devs[index].nports); } - switch (udev->speed) { - case USB_SPEED_SUPER: - switch (sc->sc_hw.devs[index].state) { - case XHCI_ST_ADDRESSED: - case XHCI_ST_CONFIGURED: - /* enable power save */ - temp |= XHCI_SCTX_1_MAX_EL_SET(sc->sc_exit_lat_max); - break; - default: - /* disable power save */ - break; - } - break; - default: - break; - } - xhci_ctx_set_le32(sc, &pinp->ctx_slot.dwSctx1, temp); temp = XHCI_SCTX_2_IRQ_TARGET_SET(0); From owner-svn-src-all@freebsd.org Sun Apr 26 08:37: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 B12A22CFA5D; Sun, 26 Apr 2020 08:37:31 +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 4991Vz4KJyz48fG; Sun, 26 Apr 2020 08:37:31 +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 8F83F1E15F; Sun, 26 Apr 2020 08:37:31 +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 03Q8bVDU002006; Sun, 26 Apr 2020 08:37:31 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03Q8bVUt002005; Sun, 26 Apr 2020 08:37:31 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202004260837.03Q8bVUt002005@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Sun, 26 Apr 2020 08:37: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: r360334 - stable/11/sys/dev/usb/controller X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/usb/controller X-SVN-Commit-Revision: 360334 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, 26 Apr 2020 08:37:31 -0000 Author: hselasky Date: Sun Apr 26 08:37:31 2020 New Revision: 360334 URL: https://svnweb.freebsd.org/changeset/base/360334 Log: MFC r360075: Set the maximum exit latency to 0 for XHCI USB 3.0 devices, because we don't implement link power management, LPM. This fixes error code XHCI_TRB_ERROR_BANDWIDTH for isochronous USB 3.0 transactions. Submitted by: Horse Ma Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/usb/controller/xhci.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/usb/controller/xhci.c ============================================================================== --- stable/11/sys/dev/usb/controller/xhci.c Sun Apr 26 08:36:54 2020 (r360333) +++ stable/11/sys/dev/usb/controller/xhci.c Sun Apr 26 08:37:31 2020 (r360334) @@ -2662,23 +2662,6 @@ xhci_configure_device(struct usb_device *udev) sc->sc_hw.devs[index].nports); } - switch (udev->speed) { - case USB_SPEED_SUPER: - switch (sc->sc_hw.devs[index].state) { - case XHCI_ST_ADDRESSED: - case XHCI_ST_CONFIGURED: - /* enable power save */ - temp |= XHCI_SCTX_1_MAX_EL_SET(sc->sc_exit_lat_max); - break; - default: - /* disable power save */ - break; - } - break; - default: - break; - } - xhci_ctx_set_le32(sc, &pinp->ctx_slot.dwSctx1, temp); temp = XHCI_SCTX_2_IRQ_TARGET_SET(0); From owner-svn-src-all@freebsd.org Sun Apr 26 08:38: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 539382CFAC4; Sun, 26 Apr 2020 08:38:11 +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 4991Wl1WqYz48mF; Sun, 26 Apr 2020 08:38:11 +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 2F8F91E160; Sun, 26 Apr 2020 08:38:11 +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 03Q8cBOV002105; Sun, 26 Apr 2020 08:38:11 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03Q8cBuG002104; Sun, 26 Apr 2020 08:38:11 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202004260838.03Q8cBuG002104@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Sun, 26 Apr 2020 08:38:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r360335 - stable/10/sys/dev/usb/controller X-SVN-Group: stable-10 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/10/sys/dev/usb/controller X-SVN-Commit-Revision: 360335 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, 26 Apr 2020 08:38:11 -0000 Author: hselasky Date: Sun Apr 26 08:38:10 2020 New Revision: 360335 URL: https://svnweb.freebsd.org/changeset/base/360335 Log: MFC r360075: Set the maximum exit latency to 0 for XHCI USB 3.0 devices, because we don't implement link power management, LPM. This fixes error code XHCI_TRB_ERROR_BANDWIDTH for isochronous USB 3.0 transactions. Submitted by: Horse Ma Sponsored by: Mellanox Technologies Modified: stable/10/sys/dev/usb/controller/xhci.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/usb/controller/xhci.c ============================================================================== --- stable/10/sys/dev/usb/controller/xhci.c Sun Apr 26 08:37:31 2020 (r360334) +++ stable/10/sys/dev/usb/controller/xhci.c Sun Apr 26 08:38:10 2020 (r360335) @@ -2665,23 +2665,6 @@ xhci_configure_device(struct usb_device *udev) sc->sc_hw.devs[index].nports); } - switch (udev->speed) { - case USB_SPEED_SUPER: - switch (sc->sc_hw.devs[index].state) { - case XHCI_ST_ADDRESSED: - case XHCI_ST_CONFIGURED: - /* enable power save */ - temp |= XHCI_SCTX_1_MAX_EL_SET(sc->sc_exit_lat_max); - break; - default: - /* disable power save */ - break; - } - break; - default: - break; - } - xhci_ctx_set_le32(sc, &pinp->ctx_slot.dwSctx1, temp); temp = XHCI_SCTX_2_IRQ_TARGET_SET(0); From owner-svn-src-all@freebsd.org Sun Apr 26 08:38: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 9B88C2CFB62; Sun, 26 Apr 2020 08:38:54 +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 4991XZ3b8Wz48tc; Sun, 26 Apr 2020 08:38:54 +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 764991E161; Sun, 26 Apr 2020 08:38:54 +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 03Q8csav002192; Sun, 26 Apr 2020 08:38:54 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03Q8csxB002191; Sun, 26 Apr 2020 08:38:54 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202004260838.03Q8csxB002191@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Sun, 26 Apr 2020 08:38:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r360336 - stable/9/sys/dev/usb/controller X-SVN-Group: stable-9 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/9/sys/dev/usb/controller X-SVN-Commit-Revision: 360336 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, 26 Apr 2020 08:38:54 -0000 Author: hselasky Date: Sun Apr 26 08:38:53 2020 New Revision: 360336 URL: https://svnweb.freebsd.org/changeset/base/360336 Log: MFC r360075: Set the maximum exit latency to 0 for XHCI USB 3.0 devices, because we don't implement link power management, LPM. This fixes error code XHCI_TRB_ERROR_BANDWIDTH for isochronous USB 3.0 transactions. Submitted by: Horse Ma Sponsored by: Mellanox Technologies Modified: stable/9/sys/dev/usb/controller/xhci.c Directory Properties: stable/9/sys/ (props changed) Modified: stable/9/sys/dev/usb/controller/xhci.c ============================================================================== --- stable/9/sys/dev/usb/controller/xhci.c Sun Apr 26 08:38:10 2020 (r360335) +++ stable/9/sys/dev/usb/controller/xhci.c Sun Apr 26 08:38:53 2020 (r360336) @@ -2599,23 +2599,6 @@ xhci_configure_device(struct usb_device *udev) sc->sc_hw.devs[index].nports); } - switch (udev->speed) { - case USB_SPEED_SUPER: - switch (sc->sc_hw.devs[index].state) { - case XHCI_ST_ADDRESSED: - case XHCI_ST_CONFIGURED: - /* enable power save */ - temp |= XHCI_SCTX_1_MAX_EL_SET(sc->sc_exit_lat_max); - break; - default: - /* disable power save */ - break; - } - break; - default: - break; - } - xhci_ctx_set_le32(sc, &pinp->ctx_slot.dwSctx1, temp); temp = XHCI_SCTX_2_IRQ_TARGET_SET(0); From owner-svn-src-all@freebsd.org Sun Apr 26 13:02: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 414882AF205; Sun, 26 Apr 2020 13:02:43 +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 4997Nz0fJ9z4SMn; Sun, 26 Apr 2020 13:02:43 +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 117F9214D9; Sun, 26 Apr 2020 13:02:43 +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 03QD2gRp076187; Sun, 26 Apr 2020 13:02:42 GMT (envelope-from melifaro@FreeBSD.org) Received: (from melifaro@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03QD2gDE076186; Sun, 26 Apr 2020 13:02:42 GMT (envelope-from melifaro@FreeBSD.org) Message-Id: <202004261302.03QD2gDE076186@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: melifaro set sender to melifaro@FreeBSD.org using -f From: "Alexander V. Chernikov" Date: Sun, 26 Apr 2020 13:02:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360337 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: melifaro X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 360337 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, 26 Apr 2020 13:02:43 -0000 Author: melifaro Date: Sun Apr 26 13:02:42 2020 New Revision: 360337 URL: https://svnweb.freebsd.org/changeset/base/360337 Log: Fix order of arguments in fib[46]_lookup calls in SCTP. r360292 introduced the wrong order, resulting in returned nhops not being referenced, despite the fact that references were requested. That lead to random GPF after using SCTP sockets. Special defined macro like IPV[46]_SCOPE_GLOBAL will be introduced soon to reduce the chance of putting arguments in wrong order. Reported-by: syzbot+5c813c01096363174684@syzkaller.appspotmail.com Modified: head/sys/netinet/sctp_os_bsd.h Modified: head/sys/netinet/sctp_os_bsd.h ============================================================================== --- head/sys/netinet/sctp_os_bsd.h Sun Apr 26 08:38:53 2020 (r360336) +++ head/sys/netinet/sctp_os_bsd.h Sun Apr 26 13:02:42 2020 (r360337) @@ -403,9 +403,9 @@ typedef struct route sctp_route_t; { \ if ((ro)->ro_nh == NULL) { \ if ((ro)->ro_dst.sa_family == AF_INET) \ - (ro)->ro_nh = fib4_lookup(fibnum, ((struct sockaddr_in *)&(ro)->ro_dst)->sin_addr, NHR_REF, 0, 0); \ + (ro)->ro_nh = fib4_lookup(fibnum, ((struct sockaddr_in *)&(ro)->ro_dst)->sin_addr, 0, NHR_REF, 0); \ if ((ro)->ro_dst.sa_family == AF_INET6) \ - (ro)->ro_nh = fib6_lookup(fibnum, &((struct sockaddr_in6 *)&(ro)->ro_dst)->sin6_addr, NHR_REF, 0, 0); \ + (ro)->ro_nh = fib6_lookup(fibnum, &((struct sockaddr_in6 *)&(ro)->ro_dst)->sin6_addr, 0, NHR_REF, 0); \ } \ } From owner-svn-src-all@freebsd.org Sun Apr 26 15:50: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 64C432B3B6D; Sun, 26 Apr 2020 15:50:33 +0000 (UTC) (envelope-from dim@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 499C6d1wMQz4cbJ; Sun, 26 Apr 2020 15:50:33 +0000 (UTC) (envelope-from dim@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 3CFDF23454; Sun, 26 Apr 2020 15:50:33 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03QFoXTZ076807; Sun, 26 Apr 2020 15:50:33 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03QFoXXZ076806; Sun, 26 Apr 2020 15:50:33 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202004261550.03QFoXXZ076806@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 26 Apr 2020 15:50:33 +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: r360338 - in stable: 10/usr.sbin/timed 10/usr.sbin/timed/timed 11/usr.sbin/timed/timed 12/usr.sbin/timed/timed X-SVN-Group: stable-12 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable: 10/usr.sbin/timed 10/usr.sbin/timed/timed 11/usr.sbin/timed/timed 12/usr.sbin/timed/timed X-SVN-Commit-Revision: 360338 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, 26 Apr 2020 15:50:33 -0000 Author: dim Date: Sun Apr 26 15:50:32 2020 New Revision: 360338 URL: https://svnweb.freebsd.org/changeset/base/360338 Log: Add casts to work around harmless -Werror warnings from clang 10.0.0, such as: usr.sbin/timed/timed/networkdelta.c:160:13: error: implicit conversion from 'long' to 'float' changes value from 9223372036854775807 to 9223372036854775808 [-Werror,-Wimplicit-int-float-conversion] float ap = LONG_MAX; /* bounds on the median */ ~~ ^~~~~~~~ Direct commit to stable/{10,11,12}, since timed has been removed from FreeBSD 13. Modified: stable/12/usr.sbin/timed/timed/networkdelta.c Changes in other areas also in this revision: Modified: stable/10/usr.sbin/timed/Makefile stable/10/usr.sbin/timed/timed/networkdelta.c stable/11/usr.sbin/timed/timed/networkdelta.c Modified: stable/12/usr.sbin/timed/timed/networkdelta.c ============================================================================== --- stable/12/usr.sbin/timed/timed/networkdelta.c Sun Apr 26 13:02:42 2020 (r360337) +++ stable/12/usr.sbin/timed/timed/networkdelta.c Sun Apr 26 15:50:32 2020 (r360338) @@ -157,8 +157,8 @@ median(float a, float *eps_ptr, long *x, long *xlim, u /* unsigned int gnuf; */ /* good enough estimate */ { long *xptr; - float ap = LONG_MAX; /* bounds on the median */ - float am = -LONG_MAX; + float ap = (float)LONG_MAX; /* bounds on the median */ + float am = -(float)LONG_MAX; float aa; int npts; /* # of points above & below guess */ float xp; /* closet point above the guess */ @@ -180,8 +180,8 @@ median(float a, float *eps_ptr, long *x, long *xlim, u sum = 0.0; sumx = 0.0; npts = 0; - xp = LONG_MAX; - xm = -LONG_MAX; + xp = (float)LONG_MAX; + xm = -(float)LONG_MAX; for (xptr = x; xptr != xlim; xptr++) { float xx = *xptr; From owner-svn-src-all@freebsd.org Sun Apr 26 15:50: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 BD3D72B3B7F; Sun, 26 Apr 2020 15:50:33 +0000 (UTC) (envelope-from dim@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 499C6d3bRYz4cbK; Sun, 26 Apr 2020 15:50:33 +0000 (UTC) (envelope-from dim@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 7674023455; Sun, 26 Apr 2020 15:50:33 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03QFoXus076813; Sun, 26 Apr 2020 15:50:33 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03QFoXHP076812; Sun, 26 Apr 2020 15:50:33 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202004261550.03QFoXHP076812@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 26 Apr 2020 15:50:33 +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: r360338 - in stable: 10/usr.sbin/timed 10/usr.sbin/timed/timed 11/usr.sbin/timed/timed 12/usr.sbin/timed/timed X-SVN-Group: stable-11 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable: 10/usr.sbin/timed 10/usr.sbin/timed/timed 11/usr.sbin/timed/timed 12/usr.sbin/timed/timed X-SVN-Commit-Revision: 360338 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, 26 Apr 2020 15:50:33 -0000 Author: dim Date: Sun Apr 26 15:50:32 2020 New Revision: 360338 URL: https://svnweb.freebsd.org/changeset/base/360338 Log: Add casts to work around harmless -Werror warnings from clang 10.0.0, such as: usr.sbin/timed/timed/networkdelta.c:160:13: error: implicit conversion from 'long' to 'float' changes value from 9223372036854775807 to 9223372036854775808 [-Werror,-Wimplicit-int-float-conversion] float ap = LONG_MAX; /* bounds on the median */ ~~ ^~~~~~~~ Direct commit to stable/{10,11,12}, since timed has been removed from FreeBSD 13. Modified: stable/11/usr.sbin/timed/timed/networkdelta.c Changes in other areas also in this revision: Modified: stable/10/usr.sbin/timed/Makefile stable/10/usr.sbin/timed/timed/networkdelta.c stable/12/usr.sbin/timed/timed/networkdelta.c Modified: stable/11/usr.sbin/timed/timed/networkdelta.c ============================================================================== --- stable/11/usr.sbin/timed/timed/networkdelta.c Sun Apr 26 13:02:42 2020 (r360337) +++ stable/11/usr.sbin/timed/timed/networkdelta.c Sun Apr 26 15:50:32 2020 (r360338) @@ -155,8 +155,8 @@ median(float a, float *eps_ptr, long *x, long *xlim, u /* unsigned int gnuf; */ /* good enough estimate */ { long *xptr; - float ap = LONG_MAX; /* bounds on the median */ - float am = -LONG_MAX; + float ap = (float)LONG_MAX; /* bounds on the median */ + float am = -(float)LONG_MAX; float aa; int npts; /* # of points above & below guess */ float xp; /* closet point above the guess */ @@ -178,8 +178,8 @@ median(float a, float *eps_ptr, long *x, long *xlim, u sum = 0.0; sumx = 0.0; npts = 0; - xp = LONG_MAX; - xm = -LONG_MAX; + xp = (float)LONG_MAX; + xm = -(float)LONG_MAX; for (xptr = x; xptr != xlim; xptr++) { float xx = *xptr; From owner-svn-src-all@freebsd.org Sun Apr 26 15:50: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 40F912B3B92; Sun, 26 Apr 2020 15:50:34 +0000 (UTC) (envelope-from dim@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 499C6f0k4bz4cbR; Sun, 26 Apr 2020 15:50:34 +0000 (UTC) (envelope-from dim@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 0D4D323456; Sun, 26 Apr 2020 15:50:34 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03QFoXgU076820; Sun, 26 Apr 2020 15:50:33 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03QFoXqg076818; Sun, 26 Apr 2020 15:50:33 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202004261550.03QFoXqg076818@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 26 Apr 2020 15:50:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r360338 - in stable: 10/usr.sbin/timed 10/usr.sbin/timed/timed 11/usr.sbin/timed/timed 12/usr.sbin/timed/timed X-SVN-Group: stable-10 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable: 10/usr.sbin/timed 10/usr.sbin/timed/timed 11/usr.sbin/timed/timed 12/usr.sbin/timed/timed X-SVN-Commit-Revision: 360338 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, 26 Apr 2020 15:50:34 -0000 Author: dim Date: Sun Apr 26 15:50:32 2020 New Revision: 360338 URL: https://svnweb.freebsd.org/changeset/base/360338 Log: Add casts to work around harmless -Werror warnings from clang 10.0.0, such as: usr.sbin/timed/timed/networkdelta.c:160:13: error: implicit conversion from 'long' to 'float' changes value from 9223372036854775807 to 9223372036854775808 [-Werror,-Wimplicit-int-float-conversion] float ap = LONG_MAX; /* bounds on the median */ ~~ ^~~~~~~~ Direct commit to stable/{10,11,12}, since timed has been removed from FreeBSD 13. Modified: stable/10/usr.sbin/timed/Makefile stable/10/usr.sbin/timed/timed/networkdelta.c Changes in other areas also in this revision: Modified: stable/11/usr.sbin/timed/timed/networkdelta.c stable/12/usr.sbin/timed/timed/networkdelta.c Modified: stable/10/usr.sbin/timed/Makefile ============================================================================== --- stable/10/usr.sbin/timed/Makefile Sun Apr 26 13:02:42 2020 (r360337) +++ stable/10/usr.sbin/timed/Makefile Sun Apr 26 15:50:32 2020 (r360338) @@ -4,3 +4,4 @@ SUBDIR= timed timedc .include +# DO NOT DELETE Modified: stable/10/usr.sbin/timed/timed/networkdelta.c ============================================================================== --- stable/10/usr.sbin/timed/timed/networkdelta.c Sun Apr 26 13:02:42 2020 (r360337) +++ stable/10/usr.sbin/timed/timed/networkdelta.c Sun Apr 26 15:50:32 2020 (r360338) @@ -155,8 +155,8 @@ median(float a, float *eps_ptr, long *x, long *xlim, u /* unsigned int gnuf; */ /* good enough estimate */ { long *xptr; - float ap = LONG_MAX; /* bounds on the median */ - float am = -LONG_MAX; + float ap = (float)LONG_MAX; /* bounds on the median */ + float am = -(float)LONG_MAX; float aa; int npts; /* # of points above & below guess */ float xp; /* closet point above the guess */ @@ -178,8 +178,8 @@ median(float a, float *eps_ptr, long *x, long *xlim, u sum = 0.0; sumx = 0.0; npts = 0; - xp = LONG_MAX; - xm = -LONG_MAX; + xp = (float)LONG_MAX; + xm = -(float)LONG_MAX; for (xptr = x; xptr != xlim; xptr++) { float xx = *xptr; From owner-svn-src-all@freebsd.org Sun Apr 26 15:51: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 CE1972B3D11; Sun, 26 Apr 2020 15:51:46 +0000 (UTC) (envelope-from asomers@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 499C825HDkz4d1M; Sun, 26 Apr 2020 15:51:46 +0000 (UTC) (envelope-from asomers@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 B049B234B6; Sun, 26 Apr 2020 15:51:46 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03QFpkx7081616; Sun, 26 Apr 2020 15:51:46 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03QFpkPq081258; Sun, 26 Apr 2020 15:51:46 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <202004261551.03QFpkPq081258@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Sun, 26 Apr 2020 15:51:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360339 - head/tests/sys/mac/bsdextended X-SVN-Group: head X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: head/tests/sys/mac/bsdextended X-SVN-Commit-Revision: 360339 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, 26 Apr 2020 15:51:46 -0000 Author: asomers Date: Sun Apr 26 15:51:46 2020 New Revision: 360339 URL: https://svnweb.freebsd.org/changeset/base/360339 Log: mac_bsdextended: ATFify the tests The new tests have more complete setup and cleanup, are more granular, and correctly annotate expected failures and skipped tests. A follow-up commit will resolve a conflict with the fusefs tests (bug 244229). MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D24257 Modified: head/tests/sys/mac/bsdextended/Makefile head/tests/sys/mac/bsdextended/matches_test.sh Modified: head/tests/sys/mac/bsdextended/Makefile ============================================================================== --- head/tests/sys/mac/bsdextended/Makefile Sun Apr 26 15:50:32 2020 (r360338) +++ head/tests/sys/mac/bsdextended/Makefile Sun Apr 26 15:51:46 2020 (r360339) @@ -2,12 +2,14 @@ TESTSDIR= ${TESTSBASE}/sys/mac/bsdextended +ATF_TESTS_SH+= matches_test TAP_TESTS_C+= ugidfw_test -TAP_TESTS_SH+= matches_test LIBADD.ugidfw_test+= ugidfw -TEST_METADATA.matches_test+= required_user="root" TEST_METADATA.ugidfw_test+= required_user="root" +# Each test case of matches_test reuses the same ruleset number, so they cannot +# be run simultaneously +TEST_METADATA.matches_test+= is_exclusive=true .include Modified: head/tests/sys/mac/bsdextended/matches_test.sh ============================================================================== --- head/tests/sys/mac/bsdextended/matches_test.sh Sun Apr 26 15:50:32 2020 (r360338) +++ head/tests/sys/mac/bsdextended/matches_test.sh Sun Apr 26 15:51:46 2020 (r360339) @@ -10,356 +10,381 @@ uidoutrange="daemon" gidinrange="nobody" # We expect $uidinrange in this group gidoutrange="daemon" # We expect $uidinrange in this group -test_num=1 -pass() -{ - echo "ok $test_num # $@" - : $(( test_num += 1 )) -} -fail() +check_ko() { - echo "not ok $test_num # $@" - : $(( test_num += 1 )) + if ! sysctl -N security.mac.bsdextended >/dev/null 2>&1; then + atf_skip "mac_bsdextended(4) support isn't available" + fi } -# -# Setup -# - -: ${TMPDIR=/tmp} -if [ $(id -u) -ne 0 ]; then - echo "1..0 # SKIP test must be run as root" - exit 0 -fi -if ! sysctl -N security.mac.bsdextended >/dev/null 2>&1; then - echo "1..0 # SKIP mac_bsdextended(4) support isn't available" - exit 0 -fi -if [ "$TMPDIR" != "/tmp" ]; then - if ! chmod -Rf 0755 $TMPDIR; then - echo "1..0 # SKIP failed to chmod $TMPDIR" - exit 0 +setup() +{ + check_ko + mkdir mnt + mdmfs -s 25m md mnt \ + || atf_fail "failed to mount md device" + chmod a+rwx mnt + md_device=$(mount -p | grep "$PWD/mnt" | awk '{ gsub(/^\/dev\//, "", $1); print $1 }') + if [ -z "$md_device" ]; then + atf_fail "md device not properly attached to the system" fi -fi -if ! playground=$(mktemp -d $TMPDIR/tmp.XXXXXXX); then - echo "1..0 # SKIP failed to create temporary directory" - exit 0 -fi -trap "rmdir $playground" EXIT INT TERM -if ! mdmfs -s 25m md $playground; then - echo "1..0 # SKIP failed to mount md device" - exit 0 -fi -chmod a+rwx $playground -md_device=$(mount -p | grep "$playground" | awk '{ gsub(/^\/dev\//, "", $1); print $1 }') -trap "umount -f $playground; mdconfig -d -u $md_device; rmdir $playground" EXIT INT TERM -if [ -z "$md_device" ]; then - mount -p | grep $playground - echo "1..0 # SKIP md device not properly attached to the system" -fi + echo $md_device > md_device -ugidfw remove 1 + ugidfw remove 1 -file1=$playground/test-$uidinrange -file2=$playground/test-$uidoutrange -cat > $playground/test-script.sh <<'EOF' + cat > mnt/test-script.sh <<'EOF' #!/bin/sh : > $1 EOF -if [ $? -ne 0 ]; then - echo "1..0 # SKIP failed to create test script" - exit 0 -fi -echo "1..30" + if [ $? -ne 0 ]; then + atf_fail "failed to create test script" + fi -command1="sh $playground/test-script.sh $file1" -command2="sh $playground/test-script.sh $file2" + file1=mnt/test-$uidinrange + file2=mnt/test-$uidoutrange + command1="sh mnt/test-script.sh $file1" + command2="sh mnt/test-script.sh $file2" -desc="$uidinrange file" -if su -m $uidinrange -c "$command1"; then - pass $desc -else - fail $desc -fi + # $uidinrange file + atf_check -s exit:0 su -m $uidinrange -c "$command1" -chown "$uidinrange":"$gidinrange" $file1 -chmod a+w $file1 + chown "$uidinrange":"$gidinrange" $file1 + chmod a+w $file1 -desc="$uidoutrange file" -if $command2; then - pass $desc -else - fail $desc -fi + # $uidoutrange file + if ! $command2; then + atf_fail $desc + fi -chown "$uidoutrange":"$gidoutrange" $file2 -chmod a+w $file2 + chown "$uidoutrange":"$gidoutrange" $file2 + chmod a+w $file2 +} -# -# No rules -# -desc="no rules $uidinrange" -if su -fm $uidinrange -c "$command1"; then - pass $desc -else - fail $desc -fi +cleanup() +{ + ugidfw remove 1 -desc="no rules $uidoutrange" -if su -fm $uidoutrange -c "$command1"; then - pass $desc -else - fail $desc -fi + umount -f mnt + if [ -f md_device ]; then + mdconfig -d -u $( cat md_device ) + fi +} -# -# Subject Match on uid -# -ugidfw set 1 subject uid $uidrange object mode rasx -desc="subject uid in range" -if su -fm $uidinrange -c "$command1"; then - fail $desc -else - pass $desc -fi +atf_test_case no_rules cleanup +no_rules_head() +{ + atf_set "require.user" "root" +} +no_rules_body() +{ + setup -desc="subject uid out range" -if su -fm $uidoutrange -c "$command1"; then - pass $desc -else - fail $desc -fi + # no rules $uidinrange + atf_check -s exit:0 su -fm $uidinrange -c "$command1" -# -# Subject Match on gid -# -ugidfw set 1 subject gid $gidrange object mode rasx + # no rules $uidoutrange + atf_check -s exit:0 su -fm $uidoutrange -c "$command1" +} +no_rules_cleanup() +{ + cleanup +} -desc="subject gid in range" -if su -fm $uidinrange -c "$command1"; then - fail $desc -else - pass $desc -fi +atf_test_case subject_match_on_uid cleanup +subject_match_on_uid_head() +{ + atf_set "require.user" "root" +} +subject_match_on_uid_body() +{ + setup -desc="subject gid out range" -if su -fm $uidoutrange -c "$command1"; then - pass $desc -else - fail $desc -fi + atf_check -s exit:0 ugidfw set 1 subject uid $uidrange object mode rasx + # subject uid in range + atf_check -s not-exit:0 -e match:"Permission denied" \ + su -fm $uidinrange -c "$command1" -if which jail >/dev/null; then - # - # Subject Match on jail - # - rm -f $playground/test-jail + # subject uid out range + atf_check -s exit:0 su -fm $uidoutrange -c "$command1" - desc="subject matching jailid" - jailid=`jail -i / localhost 127.0.0.1 /usr/sbin/daemon -f /bin/sh -c "(sleep 5; touch $playground/test-jail) &"` - ugidfw set 1 subject jailid $jailid object mode rasx +} +subject_match_on_uid_cleanup() +{ + cleanup +} + +atf_test_case subject_match_on_gid cleanup +subject_match_on_gid_head() +{ + atf_set "require.user" "root" +} +subject_match_on_gid_body() +{ + setup + + atf_check -s exit:0 ugidfw set 1 subject gid $gidrange object mode rasx + + # subject gid in range + atf_check -s not-exit:0 -e match:"Permission denied" \ + su -fm $uidinrange -c "$command1" + + # subject gid out range + atf_check -s exit:0 su -fm $uidoutrange -c "$command1" +} +subject_match_on_gid_cleanup() +{ + cleanup +} + +atf_test_case subject_match_on_jail cleanup +subject_match_on_jail_head() +{ + atf_set "require.progs" "jail" + atf_set "require.user" "root" +} +subject_match_on_jail_body() +{ + setup + + atf_expect_fail "this testcase fails (see bug # 205481)" + # subject matching jailid + jailid=`jail -i / localhost 127.0.0.1 /usr/sbin/daemon -f /bin/sh -c "(sleep 5; touch mnt/test-jail) &"` + atf_check -s exit:0 ugidfw set 1 subject jailid $jailid object mode rasx sleep 10 - if [ -f $playground/test-jail ]; then - fail "TODO $desc: this testcase fails (see bug # 205481)" - else - pass $desc + if [ -f mnt/test-jail ]; then + atf_fail "$desc" fi - rm -f $playground/test-jail - desc="subject nonmatching jailid" - jailid=`jail -i / localhost 127.0.0.1 /usr/sbin/daemon -f /bin/sh -c "(sleep 5; touch $playground/test-jail) &"` + rm -f mnt/test-jail + # subject nonmatching jailid + jailid=`jail -i / localhost 127.0.0.1 /usr/sbin/daemon -f /bin/sh -c "(sleep 5; touch mnt/test-jail) &"` sleep 10 - if [ -f $playground/test-jail ]; then - pass $desc - else - fail $desc + if ! [ -f mnt/test-jail ]; then + atf_fail $desc fi -else - # XXX: kyua is too dumb to parse skip ranges, still.. - pass "skip jail(8) not installed" - pass "skip jail(8) not installed" -fi +} +subject_match_on_jail_cleanup() +{ + cleanup +} -# -# Object uid -# -ugidfw set 1 subject object uid $uidrange mode rasx +atf_test_case object_uid cleanup +object_uid_head() +{ + atf_set "require.user" "root" +} +object_uid_body() +{ + setup -desc="object uid in range" -if su -fm $uidinrange -c "$command1"; then - fail $desc -else - pass $desc -fi + atf_check -s exit:0 ugidfw set 1 subject object uid $uidrange mode rasx -desc="object uid out range" -if su -fm $uidinrange -c "$command2"; then - pass $desc -else - fail $desc -fi -ugidfw set 1 subject object uid $uidrange mode rasx + # object uid in range + atf_check -s not-exit:0 -e match:"Permission denied" \ + su -fm $uidinrange -c "$command1" -desc="object uid in range (different subject)" -if su -fm $uidoutrange -c "$command1"; then - fail $desc -else - pass $desc -fi + # object uid out range + atf_check -s exit:0 su -fm $uidinrange -c "$command2" + atf_check -s exit:0 ugidfw set 1 subject object uid $uidrange mode rasx -desc="object uid out range (different subject)" -if su -fm $uidoutrange -c "$command2"; then - pass $desc -else - fail $desc -fi + # object uid in range (different subject) + atf_check -s not-exit:0 -e match:"Permission denied" \ + su -fm $uidoutrange -c "$command1" -# -# Object gid -# -ugidfw set 1 subject object gid $uidrange mode rasx + # object uid out range (different subject) + atf_check -s exit:0 su -fm $uidoutrange -c "$command2" -desc="object gid in range" -if su -fm $uidinrange -c "$command1"; then - fail $desc -else - pass $desc -fi +} +object_uid_cleanup() +{ + cleanup +} -desc="object gid out range" -if su -fm $uidinrange -c "$command2"; then - pass $desc -else - fail $desc -fi -desc="object gid in range (different subject)" -if su -fm $uidoutrange -c "$command1"; then - fail $desc -else - pass $desc -fi +atf_test_case object_gid cleanup +object_gid_head() +{ + atf_set "require.user" "root" +} +object_gid_body() +{ + setup -desc="object gid out range (different subject)" -if su -fm $uidoutrange -c "$command2"; then - pass $desc -else - fail $desc -fi + atf_check -s exit:0 ugidfw set 1 subject object gid $uidrange mode rasx -# -# Object filesys -# -ugidfw set 1 subject uid $uidrange object filesys / mode rasx -desc="object out of filesys" -if su -fm $uidinrange -c "$command1"; then - pass $desc -else - fail $desc -fi + # object gid in range + atf_check -s not-exit:0 -e match:"Permission denied" \ + su -fm $uidinrange -c "$command1" -ugidfw set 1 subject uid $uidrange object filesys $playground mode rasx -desc="object in filesys" -if su -fm $uidinrange -c "$command1"; then - fail $desc -else - pass $desc -fi + # object gid out range + atf_check -s exit:0 su -fm $uidinrange -c "$command2" + # object gid in range (different subject) + atf_check -s not-exit:0 -e match:"Permission denied" \ + su -fm $uidoutrange -c "$command1" -# -# Object suid -# -ugidfw set 1 subject uid $uidrange object suid mode rasx -desc="object notsuid" -if su -fm $uidinrange -c "$command1"; then - pass $desc -else - fail $desc -fi + # object gid out range (different subject) + atf_check -s exit:0 su -fm $uidoutrange -c "$command2" +} +object_gid_cleanup() +{ + cleanup +} -chmod u+s $file1 -desc="object suid" -if su -fm $uidinrange -c "$command1"; then - fail $desc -else - pass $desc -fi -chmod u-s $file1 +atf_test_case object_filesys cleanup +object_filesys_head() +{ + atf_set "require.user" "root" +} +object_filesys_body() +{ + setup -# -# Object sgid -# -ugidfw set 1 subject uid $uidrange object sgid mode rasx -desc="object notsgid" -if su -fm $uidinrange -c "$command1"; then - pass $desc -else - fail $desc -fi + atf_check -s exit:0 ugidfw set 1 subject uid $uidrange object filesys / mode rasx + # object out of filesys + atf_check -s exit:0 su -fm $uidinrange -c "$command1" -chmod g+s $file1 -desc="object sgid" -if su -fm $uidinrange -c "$command1"; then - fail $desc -else - pass $desc -fi -chmod g-s $file1 + atf_check -s exit:0 ugidfw set 1 subject uid $uidrange object filesys mnt mode rasx + # object in filesys + atf_check -s not-exit:0 -e match:"Permission denied" \ + su -fm $uidinrange -c "$command1" +} +object_filesys_cleanup() +{ + cleanup +} -# -# Object uid matches subject -# -ugidfw set 1 subject uid $uidrange object uid_of_subject mode rasx +atf_test_case object_suid cleanup +object_suid_head() +{ + atf_set "require.user" "root" +} +object_suid_body() +{ + setup -desc="object uid notmatches subject" -if su -fm $uidinrange -c "$command2"; then - pass $desc -else - fail $desc -fi + atf_check -s exit:0 ugidfw set 1 subject uid $uidrange object suid mode rasx + # object notsuid + atf_check -s exit:0 su -fm $uidinrange -c "$command1" -desc="object uid matches subject" -if su -fm $uidinrange -c "$command1"; then - fail $desc -else - pass $desc -fi + chmod u+s $file1 + # object suid + atf_check -s not-exit:0 -e match:"Permission denied" \ + su -fm $uidinrange -c "$command1" + chmod u-s $file1 -# -# Object gid matches subject -# -ugidfw set 1 subject uid $uidrange object gid_of_subject mode rasx +} +object_suid_cleanup() +{ + cleanup +} -desc="object gid notmatches subject" -if su -fm $uidinrange -c "$command2"; then - pass $desc -else - fail $desc -fi +atf_test_case object_sgid cleanup +object_sgid_head() +{ + atf_set "require.user" "root" +} +object_sgid_body() +{ + setup -desc="object gid matches subject" -if su -fm $uidinrange -c "$command1"; then - fail $desc -else - pass $desc -fi + atf_check -s exit:0 ugidfw set 1 subject uid $uidrange object sgid mode rasx + # object notsgid + atf_check -s exit:0 su -fm $uidinrange -c "$command1" -# -# Object type -# -desc="object not type" -ugidfw set 1 subject uid $uidrange object type dbclsp mode rasx -if su -fm $uidinrange -c "$command1"; then - pass $desc -else - fail $desc -fi + chmod g+s $file1 + # object sgid + atf_check -s not-exit:0 -e match:"Permission denied" \ + su -fm $uidinrange -c "$command1" + chmod g-s $file1 +} +object_sgid_cleanup() +{ + cleanup +} -desc="object type" -ugidfw set 1 subject uid $uidrange object type r mode rasx -if su -fm $uidinrange -c "$command1"; then - fail $desc -else - pass $desc -fi +atf_test_case object_uid_matches_subject cleanup +object_uid_matches_subject_head() +{ + atf_set "require.user" "root" +} +object_uid_matches_subject_body() +{ + setup + + atf_check -s exit:0 ugidfw set 1 subject uid $uidrange object uid_of_subject mode rasx + + # object uid notmatches subject + atf_check -s exit:0 su -fm $uidinrange -c "$command2" + + # object uid matches subject + atf_check -s not-exit:0 -e match:"Permission denied" \ + su -fm $uidinrange -c "$command1" +} +object_uid_matches_subject_cleanup() +{ + cleanup +} + +atf_test_case object_gid_matches_subject cleanup +object_gid_matches_subject_head() +{ + atf_set "require.user" "root" +} +object_gid_matches_subject_body() +{ + setup + + atf_check -s exit:0 ugidfw set 1 subject uid $uidrange object gid_of_subject mode rasx + + # object gid notmatches subject + atf_check -s exit:0 su -fm $uidinrange -c "$command2" + + # object gid matches subject + atf_check -s not-exit:0 -e match:"Permission denied" \ + su -fm $uidinrange -c "$command1" + +} +object_gid_matches_subject_cleanup() +{ + cleanup +} + +atf_test_case object_type cleanup +object_type_head() +{ + atf_set "require.user" "root" +} +object_type_body() +{ + setup + + # object not type + atf_check -s exit:0 ugidfw set 1 subject uid $uidrange object type dbclsp mode rasx + atf_check -s exit:0 su -fm $uidinrange -c "$command1" + + # object type + atf_check -s exit:0 ugidfw set 1 subject uid $uidrange object type r mode rasx + atf_check -s not-exit:0 -e match:"Permission denied" \ + su -fm $uidinrange -c "$command1" +} +object_type_cleanup() +{ + cleanup +} + +atf_init_test_cases() +{ + atf_add_test_case no_rules + atf_add_test_case subject_match_on_uid + atf_add_test_case subject_match_on_gid + atf_add_test_case subject_match_on_jail + atf_add_test_case object_uid + atf_add_test_case object_gid + atf_add_test_case object_filesys + atf_add_test_case object_suid + atf_add_test_case object_sgid + atf_add_test_case object_uid_matches_subject + atf_add_test_case object_gid_matches_subject + atf_add_test_case object_type +} From owner-svn-src-all@freebsd.org Sun Apr 26 15:52: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 87F412B3F11; Sun, 26 Apr 2020 15:52:42 +0000 (UTC) (envelope-from dim@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 499C96377lz4dK0; Sun, 26 Apr 2020 15:52:42 +0000 (UTC) (envelope-from dim@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 669EC2350C; Sun, 26 Apr 2020 15:52:42 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03QFqgUv082594; Sun, 26 Apr 2020 15:52:42 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03QFqgkG082593; Sun, 26 Apr 2020 15:52:42 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202004261552.03QFqgkG082593@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 26 Apr 2020 15:52:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r360340 - stable/10/usr.sbin/timed X-SVN-Group: stable-10 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: stable/10/usr.sbin/timed X-SVN-Commit-Revision: 360340 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, 26 Apr 2020 15:52:42 -0000 Author: dim Date: Sun Apr 26 15:52:41 2020 New Revision: 360340 URL: https://svnweb.freebsd.org/changeset/base/360340 Log: Remove stray "DO NOT DELETE" line, which bmake apparently put in without my knowledge or consent. I did not intend to commit this. Modified: stable/10/usr.sbin/timed/Makefile Modified: stable/10/usr.sbin/timed/Makefile ============================================================================== --- stable/10/usr.sbin/timed/Makefile Sun Apr 26 15:51:46 2020 (r360339) +++ stable/10/usr.sbin/timed/Makefile Sun Apr 26 15:52:41 2020 (r360340) @@ -4,4 +4,3 @@ SUBDIR= timed timedc .include -# DO NOT DELETE From owner-svn-src-all@freebsd.org Sun Apr 26 16:06: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 941B92B4371; Sun, 26 Apr 2020 16:06:10 +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 499CSf3Vgnz4f2P; Sun, 26 Apr 2020 16:06:10 +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 6F15823723; Sun, 26 Apr 2020 16:06:10 +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 03QG6AjN089133; Sun, 26 Apr 2020 16:06:10 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03QG6AVf089132; Sun, 26 Apr 2020 16:06:10 GMT (envelope-from kp@FreeBSD.org) Message-Id: <202004261606.03QG6AVf089132@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Sun, 26 Apr 2020 16:06:10 +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: r360341 - stable/12/sbin/pfctl X-SVN-Group: stable-12 X-SVN-Commit-Author: kp X-SVN-Commit-Paths: stable/12/sbin/pfctl X-SVN-Commit-Revision: 360341 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, 26 Apr 2020 16:06:10 -0000 Author: kp Date: Sun Apr 26 16:06:09 2020 New Revision: 360341 URL: https://svnweb.freebsd.org/changeset/base/360341 Log: MFC r360096: pfctl: Remove unused variable Submitted by: Nick Rogers MFC after: 1 week Sponsored by: RG Nets Modified: stable/12/sbin/pfctl/pfctl_parser.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sbin/pfctl/pfctl_parser.c ============================================================================== --- stable/12/sbin/pfctl/pfctl_parser.c Sun Apr 26 15:52:41 2020 (r360340) +++ stable/12/sbin/pfctl/pfctl_parser.c Sun Apr 26 16:06:09 2020 (r360341) @@ -1370,13 +1370,11 @@ struct node_host * ifa_exists(char *ifa_name) { struct node_host *n; - int s; if (iftab == NULL) ifa_load(); /* check whether this is a group */ - s = get_query_socket(); if (is_a_group(ifa_name)) { /* fake a node_host */ if ((n = calloc(1, sizeof(*n))) == NULL) From owner-svn-src-all@freebsd.org Sun Apr 26 16:13: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 6EFA12B4656; Sun, 26 Apr 2020 16:13:51 +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 499CdW2Gf6z4fS1; Sun, 26 Apr 2020 16:13:51 +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 49192238F3; Sun, 26 Apr 2020 16:13:51 +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 03QGDpvu095252; Sun, 26 Apr 2020 16:13:51 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03QGDpbB095251; Sun, 26 Apr 2020 16:13:51 GMT (envelope-from kp@FreeBSD.org) Message-Id: <202004261613.03QGDpbB095251@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Sun, 26 Apr 2020 16:13: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: r360342 - stable/12/sys/netpfil/pf X-SVN-Group: stable-12 X-SVN-Commit-Author: kp X-SVN-Commit-Paths: stable/12/sys/netpfil/pf X-SVN-Commit-Revision: 360342 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, 26 Apr 2020 16:13:51 -0000 Author: kp Date: Sun Apr 26 16:13:50 2020 New Revision: 360342 URL: https://svnweb.freebsd.org/changeset/base/360342 Log: MFC r360098: pf: Improve ioctl() input validation Both DIOCCHANGEADDR and DIOCADDADDR take a struct pf_pooladdr from userspace. They failed to validate the dyn pointer contained in its struct pf_addr_wrap member structure. This triggered assertion failures under fuzz testing in pfi_dynaddr_setup(). Happily the dyn variable was overruled there, but we should verify that it's set to NULL anyway. Reported-by: syzbot+93e93150bc29f9b4b85f@syzkaller.appspotmail.com Modified: stable/12/sys/netpfil/pf/pf_ioctl.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/netpfil/pf/pf_ioctl.c ============================================================================== --- stable/12/sys/netpfil/pf/pf_ioctl.c Sun Apr 26 16:06:09 2020 (r360341) +++ stable/12/sys/netpfil/pf/pf_ioctl.c Sun Apr 26 16:13:50 2020 (r360342) @@ -2643,6 +2643,10 @@ DIOCGETSTATES_full: error = EINVAL; break; } + if (pp->addr.addr.p.dyn != NULL) { + error = EINVAL; + break; + } pa = malloc(sizeof(*pa), M_PFRULE, M_WAITOK); bcopy(&pp->addr, pa, sizeof(struct pf_pooladdr)); if (pa->ifname[0]) @@ -2739,6 +2743,10 @@ DIOCGETSTATES_full: if (pca->addr.addr.type != PF_ADDR_ADDRMASK && pca->addr.addr.type != PF_ADDR_DYNIFTL && pca->addr.addr.type != PF_ADDR_TABLE) { + error = EINVAL; + break; + } + if (pca->addr.addr.p.dyn != NULL) { error = EINVAL; break; } From owner-svn-src-all@freebsd.org Sun Apr 26 16:13: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 629EA2B4676; Sun, 26 Apr 2020 16:13:52 +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 499CdX23QWz4fS2; Sun, 26 Apr 2020 16:13:52 +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 41B2D238F4; Sun, 26 Apr 2020 16:13:52 +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 03QGDqY9095298; Sun, 26 Apr 2020 16:13:52 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03QGDq24095297; Sun, 26 Apr 2020 16:13:52 GMT (envelope-from kp@FreeBSD.org) Message-Id: <202004261613.03QGDq24095297@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Sun, 26 Apr 2020 16:13:52 +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: r360343 - stable/11/sys/netpfil/pf X-SVN-Group: stable-11 X-SVN-Commit-Author: kp X-SVN-Commit-Paths: stable/11/sys/netpfil/pf X-SVN-Commit-Revision: 360343 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, 26 Apr 2020 16:13:52 -0000 Author: kp Date: Sun Apr 26 16:13:51 2020 New Revision: 360343 URL: https://svnweb.freebsd.org/changeset/base/360343 Log: MFC r360098: pf: Improve ioctl() input validation Both DIOCCHANGEADDR and DIOCADDADDR take a struct pf_pooladdr from userspace. They failed to validate the dyn pointer contained in its struct pf_addr_wrap member structure. This triggered assertion failures under fuzz testing in pfi_dynaddr_setup(). Happily the dyn variable was overruled there, but we should verify that it's set to NULL anyway. Reported-by: syzbot+93e93150bc29f9b4b85f@syzkaller.appspotmail.com Modified: stable/11/sys/netpfil/pf/pf_ioctl.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/netpfil/pf/pf_ioctl.c ============================================================================== --- stable/11/sys/netpfil/pf/pf_ioctl.c Sun Apr 26 16:13:50 2020 (r360342) +++ stable/11/sys/netpfil/pf/pf_ioctl.c Sun Apr 26 16:13:51 2020 (r360343) @@ -2229,6 +2229,10 @@ DIOCGETSTATES_full: error = EINVAL; break; } + if (pp->addr.addr.p.dyn != NULL) { + error = EINVAL; + break; + } pa = malloc(sizeof(*pa), M_PFRULE, M_WAITOK); bcopy(&pp->addr, pa, sizeof(struct pf_pooladdr)); if (pa->ifname[0]) @@ -2325,6 +2329,10 @@ DIOCGETSTATES_full: if (pca->addr.addr.type != PF_ADDR_ADDRMASK && pca->addr.addr.type != PF_ADDR_DYNIFTL && pca->addr.addr.type != PF_ADDR_TABLE) { + error = EINVAL; + break; + } + if (pca->addr.addr.p.dyn != NULL) { error = EINVAL; break; } From owner-svn-src-all@freebsd.org Sun Apr 26 16:16: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 7BFFA2B47B2; Sun, 26 Apr 2020 16:16:40 +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 499Chm2jtwz4fn2; Sun, 26 Apr 2020 16:16:40 +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 3FE36238FC; Sun, 26 Apr 2020 16:16:40 +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 03QGGeGc095625; Sun, 26 Apr 2020 16:16:40 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03QGGeBf095624; Sun, 26 Apr 2020 16:16:40 GMT (envelope-from kp@FreeBSD.org) Message-Id: <202004261616.03QGGeBf095624@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Sun, 26 Apr 2020 16:16:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360344 - head/sys/netpfil/pf X-SVN-Group: head X-SVN-Commit-Author: kp X-SVN-Commit-Paths: head/sys/netpfil/pf X-SVN-Commit-Revision: 360344 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, 26 Apr 2020 16:16:40 -0000 Author: kp Date: Sun Apr 26 16:16:39 2020 New Revision: 360344 URL: https://svnweb.freebsd.org/changeset/base/360344 Log: pf: Improve input validation If we pass an anchor name which doesn't exist pfr_table_count() returns -1, which leads to an overflow in mallocarray() and thus a panic. Explicitly check that pfr_table_count() does not return an error. Reported-by: syzbot+bd09d55d897d63d5f4f4@syzkaller.appspotmail.com Reviewed by: melifaro MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D24539 Modified: head/sys/netpfil/pf/pf_ioctl.c Modified: head/sys/netpfil/pf/pf_ioctl.c ============================================================================== --- head/sys/netpfil/pf/pf_ioctl.c Sun Apr 26 16:13:51 2020 (r360343) +++ head/sys/netpfil/pf/pf_ioctl.c Sun Apr 26 16:16:39 2020 (r360344) @@ -3008,7 +3008,8 @@ DIOCCHANGEADDR_error: case DIOCRGETTABLES: { struct pfioc_table *io = (struct pfioc_table *)addr; struct pfr_table *pfrts; - size_t totlen, n; + size_t totlen; + int n; if (io->pfrio_esize != sizeof(struct pfr_table)) { error = ENODEV; @@ -3016,6 +3017,11 @@ DIOCCHANGEADDR_error: } PF_RULES_RLOCK(); n = pfr_table_count(&io->pfrio_table, io->pfrio_flags); + if (n < 0) { + PF_RULES_RUNLOCK(); + error = EINVAL; + break; + } io->pfrio_size = min(io->pfrio_size, n); totlen = io->pfrio_size * sizeof(struct pfr_table); @@ -3039,7 +3045,8 @@ DIOCCHANGEADDR_error: case DIOCRGETTSTATS: { struct pfioc_table *io = (struct pfioc_table *)addr; struct pfr_tstats *pfrtstats; - size_t totlen, n; + size_t totlen; + int n; if (io->pfrio_esize != sizeof(struct pfr_tstats)) { error = ENODEV; @@ -3047,6 +3054,11 @@ DIOCCHANGEADDR_error: } PF_RULES_WLOCK(); n = pfr_table_count(&io->pfrio_table, io->pfrio_flags); + if (n < 0) { + PF_RULES_WUNLOCK(); + error = EINVAL; + break; + } io->pfrio_size = min(io->pfrio_size, n); totlen = io->pfrio_size * sizeof(struct pfr_tstats); @@ -3069,7 +3081,8 @@ DIOCCHANGEADDR_error: case DIOCRCLRTSTATS: { struct pfioc_table *io = (struct pfioc_table *)addr; struct pfr_table *pfrts; - size_t totlen, n; + size_t totlen; + int n; if (io->pfrio_esize != sizeof(struct pfr_table)) { error = ENODEV; @@ -3078,6 +3091,11 @@ DIOCCHANGEADDR_error: PF_RULES_WLOCK(); n = pfr_table_count(&io->pfrio_table, io->pfrio_flags); + if (n < 0) { + PF_RULES_WUNLOCK(); + error = EINVAL; + break; + } io->pfrio_size = min(io->pfrio_size, n); totlen = io->pfrio_size * sizeof(struct pfr_table); @@ -3104,7 +3122,8 @@ DIOCCHANGEADDR_error: case DIOCRSETTFLAGS: { struct pfioc_table *io = (struct pfioc_table *)addr; struct pfr_table *pfrts; - size_t totlen, n; + size_t totlen; + int n; if (io->pfrio_esize != sizeof(struct pfr_table)) { error = ENODEV; @@ -3113,6 +3132,12 @@ DIOCCHANGEADDR_error: PF_RULES_RLOCK(); n = pfr_table_count(&io->pfrio_table, io->pfrio_flags); + if (n < 0) { + PF_RULES_RUNLOCK(); + error = EINVAL; + break; + } + io->pfrio_size = min(io->pfrio_size, n); PF_RULES_RUNLOCK(); From owner-svn-src-all@freebsd.org Sun Apr 26 16: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 39EBA2B4A41; Sun, 26 Apr 2020 16:22:36 +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 499Cqc0T0tz4gCl; Sun, 26 Apr 2020 16:22:36 +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 0B36723AF6; Sun, 26 Apr 2020 16:22:36 +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 03QGMZwu001812; Sun, 26 Apr 2020 16:22:35 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03QGMZWt001811; Sun, 26 Apr 2020 16:22:35 GMT (envelope-from kp@FreeBSD.org) Message-Id: <202004261622.03QGMZWt001811@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Sun, 26 Apr 2020 16:22:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360345 - head/sys/net X-SVN-Group: head X-SVN-Commit-Author: kp X-SVN-Commit-Paths: head/sys/net X-SVN-Commit-Revision: 360345 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, 26 Apr 2020 16:22:36 -0000 Author: kp Date: Sun Apr 26 16:22:35 2020 New Revision: 360345 URL: https://svnweb.freebsd.org/changeset/base/360345 Log: bridge: epoch-ification Run the bridge datapath under epoch, rather than under the BRIDGE_LOCK(). We still take the BRIDGE_LOCK() whenever we insert or delete items in the relevant lists, but we use epoch callbacks to free items so that it's safe to iterate the lists without the BRIDGE_LOCK. Tests on mercat5/6 shows this increases bridge throughput significantly, from 3.7Mpps to 18.6Mpps. Reviewed by: emaste, philip, melifaro MFC after: 2 months Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D24250 Modified: head/sys/net/if_bridge.c Modified: head/sys/net/if_bridge.c ============================================================================== --- head/sys/net/if_bridge.c Sun Apr 26 16:16:39 2020 (r360344) +++ head/sys/net/if_bridge.c Sun Apr 26 16:22:35 2020 (r360345) @@ -189,41 +189,14 @@ extern void nd6_setmtu(struct ifnet *); */ #define BRIDGE_LOCK_INIT(_sc) do { \ mtx_init(&(_sc)->sc_mtx, "if_bridge", NULL, MTX_DEF); \ - cv_init(&(_sc)->sc_cv, "if_bridge_cv"); \ } while (0) #define BRIDGE_LOCK_DESTROY(_sc) do { \ mtx_destroy(&(_sc)->sc_mtx); \ - cv_destroy(&(_sc)->sc_cv); \ } while (0) #define BRIDGE_LOCK(_sc) mtx_lock(&(_sc)->sc_mtx) #define BRIDGE_UNLOCK(_sc) mtx_unlock(&(_sc)->sc_mtx) #define BRIDGE_LOCK_ASSERT(_sc) mtx_assert(&(_sc)->sc_mtx, MA_OWNED) #define BRIDGE_UNLOCK_ASSERT(_sc) mtx_assert(&(_sc)->sc_mtx, MA_NOTOWNED) -#define BRIDGE_LOCK2REF(_sc, _err) do { \ - mtx_assert(&(_sc)->sc_mtx, MA_OWNED); \ - if ((_sc)->sc_iflist_xcnt > 0) \ - (_err) = EBUSY; \ - else \ - (_sc)->sc_iflist_ref++; \ - mtx_unlock(&(_sc)->sc_mtx); \ -} while (0) -#define BRIDGE_UNREF(_sc) do { \ - mtx_lock(&(_sc)->sc_mtx); \ - (_sc)->sc_iflist_ref--; \ - if (((_sc)->sc_iflist_xcnt > 0) && ((_sc)->sc_iflist_ref == 0)) \ - cv_broadcast(&(_sc)->sc_cv); \ - mtx_unlock(&(_sc)->sc_mtx); \ -} while (0) -#define BRIDGE_XLOCK(_sc) do { \ - mtx_assert(&(_sc)->sc_mtx, MA_OWNED); \ - (_sc)->sc_iflist_xcnt++; \ - while ((_sc)->sc_iflist_ref > 0) \ - cv_wait(&(_sc)->sc_cv, &(_sc)->sc_mtx); \ -} while (0) -#define BRIDGE_XDROP(_sc) do { \ - mtx_assert(&(_sc)->sc_mtx, MA_OWNED); \ - (_sc)->sc_iflist_xcnt--; \ -} while (0) /* * Bridge interface list entry. @@ -237,6 +210,7 @@ struct bridge_iflist { uint32_t bif_addrmax; /* max # of addresses */ uint32_t bif_addrcnt; /* cur. # of addresses */ uint32_t bif_addrexceeded;/* # of address violations */ + struct epoch_context bif_epoch_ctx; }; /* @@ -250,6 +224,8 @@ struct bridge_rtnode { uint8_t brt_flags; /* address flags */ uint8_t brt_addr[ETHER_ADDR_LEN]; uint16_t brt_vlan; /* vlan id */ + struct vnet *brt_vnet; + struct epoch_context brt_epoch_ctx; }; #define brt_ifp brt_dst->bif_ifp @@ -260,13 +236,10 @@ struct bridge_softc { struct ifnet *sc_ifp; /* make this an interface */ LIST_ENTRY(bridge_softc) sc_list; struct mtx sc_mtx; - struct cv sc_cv; uint32_t sc_brtmax; /* max # of addresses */ uint32_t sc_brtcnt; /* cur. # of addresses */ uint32_t sc_brttimeout; /* rt timeout in seconds */ struct callout sc_brcallout; /* bridge callout */ - uint32_t sc_iflist_ref; /* refcount for sc_iflist */ - uint32_t sc_iflist_xcnt; /* refcount for sc_iflist */ 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 */ @@ -276,6 +249,7 @@ struct bridge_softc { uint32_t sc_brtexceeded; /* # of cache drops */ struct ifnet *sc_ifaddr; /* member mac copied from */ struct ether_addr sc_defaddr; /* Default MAC address */ + struct epoch_context sc_epoch_ctx; }; VNET_DEFINE_STATIC(struct mtx, bridge_list_mtx); @@ -596,6 +570,10 @@ vnet_bridge_uninit(const void *unused __unused) if_clone_detach(V_bridge_cloner); V_bridge_cloner = NULL; BRIDGE_LIST_LOCK_DESTROY(); + + /* Callbacks may use the UMA zone. */ + epoch_drain_callbacks(net_epoch_preempt); + uma_zdestroy(V_bridge_rtnode_zone); } VNET_SYSUNINIT(vnet_bridge_uninit, SI_SUB_PSEUDO, SI_ORDER_ANY, @@ -722,6 +700,17 @@ bridge_clone_create(struct if_clone *ifc, int unit, ca return (0); } +static void +bridge_clone_destroy_cb(struct epoch_context *ctx) +{ + struct bridge_softc *sc; + + sc = __containerof(ctx, struct bridge_softc, sc_epoch_ctx); + + BRIDGE_LOCK_DESTROY(sc); + free(sc, M_DEVBUF); +} + /* * bridge_clone_destroy: * @@ -732,7 +721,9 @@ bridge_clone_destroy(struct ifnet *ifp) { struct bridge_softc *sc = ifp->if_softc; struct bridge_iflist *bif; + struct epoch_tracker et; + NET_EPOCH_ENTER(et); BRIDGE_LOCK(sc); bridge_stop(ifp, 1); @@ -757,11 +748,12 @@ bridge_clone_destroy(struct ifnet *ifp) BRIDGE_LIST_UNLOCK(); bstp_detach(&sc->sc_stp); + NET_EPOCH_EXIT(et); + ether_ifdetach(ifp); if_free(ifp); - BRIDGE_LOCK_DESTROY(sc); - free(sc, M_DEVBUF); + NET_EPOCH_CALL(bridge_clone_destroy_cb, &sc->sc_epoch_ctx); } /* @@ -787,7 +779,10 @@ bridge_ioctl(struct ifnet *ifp, u_long cmd, caddr_t da struct ifdrv *ifd = (struct ifdrv *) data; const struct bridge_control *bc; int error = 0, oldmtu; + struct epoch_tracker et; + NET_EPOCH_ENTER(et); + switch (cmd) { case SIOCADDMULTI: @@ -908,6 +903,8 @@ bridge_ioctl(struct ifnet *ifp, u_long cmd, caddr_t da break; } + NET_EPOCH_EXIT(et); + return (error); } @@ -922,6 +919,8 @@ bridge_mutecaps(struct bridge_softc *sc) struct bridge_iflist *bif; int enabled, mask; + BRIDGE_LOCK_ASSERT(sc); + /* Initial bitmask of capabilities to test */ mask = BRIDGE_IFCAPS_MASK; @@ -930,7 +929,6 @@ bridge_mutecaps(struct bridge_softc *sc) mask &= bif->bif_savedcaps; } - BRIDGE_XLOCK(sc); CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { enabled = bif->bif_ifp->if_capenable; enabled &= ~BRIDGE_IFCAPS_STRIP; @@ -941,8 +939,6 @@ bridge_mutecaps(struct bridge_softc *sc) bridge_set_ifcap(sc, bif, enabled); BRIDGE_LOCK(sc); } - BRIDGE_XDROP(sc); - } static void @@ -983,7 +979,7 @@ bridge_lookup_member(struct bridge_softc *sc, const ch struct bridge_iflist *bif; struct ifnet *ifp; - BRIDGE_LOCK_ASSERT(sc); + NET_EPOCH_ASSERT(); CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { ifp = bif->bif_ifp; @@ -1004,7 +1000,7 @@ bridge_lookup_member_if(struct bridge_softc *sc, struc { struct bridge_iflist *bif; - BRIDGE_LOCK_ASSERT(sc); + NET_EPOCH_ASSERT(); CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { if (bif->bif_ifp == member_ifp) @@ -1014,6 +1010,16 @@ bridge_lookup_member_if(struct bridge_softc *sc, struc return (NULL); } +static void +bridge_delete_member_cb(struct epoch_context *ctx) +{ + struct bridge_iflist *bif; + + bif = __containerof(ctx, struct bridge_iflist, bif_epoch_ctx); + + free(bif, M_DEVBUF); +} + /* * bridge_delete_member: * @@ -1033,9 +1039,7 @@ bridge_delete_member(struct bridge_softc *sc, struct b bstp_disable(&bif->bif_stp); ifs->if_bridge = NULL; - BRIDGE_XLOCK(sc); CK_LIST_REMOVE(bif, bif_next); - BRIDGE_XDROP(sc); /* * If removing the interface that gave the bridge its mac address, set @@ -1094,7 +1098,8 @@ bridge_delete_member(struct bridge_softc *sc, struct b } bstp_destroy(&bif->bif_stp); /* prepare to free */ BRIDGE_LOCK(sc); - free(bif, M_DEVBUF); + + NET_EPOCH_CALL(bridge_delete_member_cb, &bif->bif_epoch_ctx); } /* @@ -1111,7 +1116,8 @@ bridge_delete_span(struct bridge_softc *sc, struct bri ("%s: not a span interface", __func__)); CK_LIST_REMOVE(bif, bif_next); - free(bif, M_DEVBUF); + + NET_EPOCH_CALL(bridge_delete_member_cb, &bif->bif_epoch_ctx); } static int @@ -1167,7 +1173,6 @@ bridge_ioctl_add(struct bridge_softc *sc, void *arg) * If any, remove all inet6 addresses from the member * interfaces. */ - BRIDGE_XLOCK(sc); CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { if (in6ifa_llaonifp(bif->bif_ifp)) { BRIDGE_UNLOCK(sc); @@ -1180,7 +1185,6 @@ bridge_ioctl_add(struct bridge_softc *sc, void *arg) bif->bif_ifp->if_xname); } } - BRIDGE_XDROP(sc); if (in6ifa_llaonifp(ifs)) { BRIDGE_UNLOCK(sc); in6_ifdetach(ifs); @@ -1494,12 +1498,17 @@ bridge_ioctl_saddr(struct bridge_softc *sc, void *arg) struct bridge_iflist *bif; int error; + NET_EPOCH_ASSERT(); + bif = bridge_lookup_member(sc, req->ifba_ifsname); if (bif == NULL) return (ENOENT); + /* bridge_rtupdate() may acquire the lock. */ + BRIDGE_UNLOCK(sc); error = bridge_rtupdate(sc, req->ifba_dst, req->ifba_vlan, bif, 1, req->ifba_flags); + BRIDGE_LOCK(sc); return (error); } @@ -1838,6 +1847,7 @@ bridge_ifdetach(void *arg __unused, struct ifnet *ifp) { struct bridge_softc *sc = ifp->if_bridge; struct bridge_iflist *bif; + struct epoch_tracker et; if (ifp->if_flags & IFF_RENAMING) return; @@ -1848,6 +1858,7 @@ bridge_ifdetach(void *arg __unused, struct ifnet *ifp) */ return; } + NET_EPOCH_ENTER(et); /* Check if the interface is a bridge member */ if (sc != NULL) { BRIDGE_LOCK(sc); @@ -1857,6 +1868,7 @@ bridge_ifdetach(void *arg __unused, struct ifnet *ifp) bridge_delete_member(sc, bif, 1); BRIDGE_UNLOCK(sc); + NET_EPOCH_EXIT(et); return; } @@ -1873,6 +1885,7 @@ bridge_ifdetach(void *arg __unused, struct ifnet *ifp) BRIDGE_UNLOCK(sc); } BRIDGE_LIST_UNLOCK(); + NET_EPOCH_EXIT(et); } /* @@ -1909,6 +1922,7 @@ bridge_stop(struct ifnet *ifp, int disable) { struct bridge_softc *sc = ifp->if_softc; + NET_EPOCH_ASSERT(); BRIDGE_LOCK_ASSERT(sc); if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) @@ -2032,6 +2046,8 @@ bridge_output(struct ifnet *ifp, struct mbuf *m, struc struct bridge_softc *sc; uint16_t vlan; + NET_EPOCH_ASSERT(); + if (m->m_len < ETHER_HDR_LEN) { m = m_pullup(m, ETHER_HDR_LEN); if (m == NULL) @@ -2042,7 +2058,6 @@ bridge_output(struct ifnet *ifp, struct mbuf *m, struc sc = ifp->if_bridge; vlan = VLANTAGOF(m); - BRIDGE_LOCK(sc); bifp = sc->sc_ifp; /* @@ -2069,16 +2084,10 @@ bridge_output(struct ifnet *ifp, struct mbuf *m, struc if (dst_if == NULL) { struct bridge_iflist *bif; struct mbuf *mc; - int error = 0, used = 0; + int used = 0; bridge_span(sc, m); - BRIDGE_LOCK2REF(sc, error); - if (error) { - m_freem(m); - return (0); - } - CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { dst_if = bif->bif_ifp; @@ -2112,7 +2121,6 @@ bridge_output(struct ifnet *ifp, struct mbuf *m, struc } if (used == 0) m_freem(m); - BRIDGE_UNREF(sc); return (0); } @@ -2124,11 +2132,9 @@ sendunicast: bridge_span(sc, m); if ((dst_if->if_drv_flags & IFF_DRV_RUNNING) == 0) { m_freem(m); - BRIDGE_UNLOCK(sc); return (0); } - BRIDGE_UNLOCK(sc); bridge_enqueue(sc, dst_if, m); return (0); } @@ -2153,10 +2159,8 @@ bridge_transmit(struct ifnet *ifp, struct mbuf *m) eh = mtod(m, struct ether_header *); - BRIDGE_LOCK(sc); if (((m->m_flags & (M_BCAST|M_MCAST)) == 0) && (dst_if = bridge_rtlookup(sc, eh->ether_dhost, 1)) != NULL) { - BRIDGE_UNLOCK(sc); error = bridge_enqueue(sc, dst_if, m); } else bridge_broadcast(sc, ifp, m, 0); @@ -2190,6 +2194,8 @@ bridge_forward(struct bridge_softc *sc, struct bridge_ uint8_t *dst; int error; + NET_EPOCH_ASSERT(); + src_if = m->m_pkthdr.rcvif; ifp = sc->sc_ifp; @@ -2268,12 +2274,10 @@ bridge_forward(struct bridge_softc *sc, struct bridge_ || PFIL_HOOKED_IN(V_inet6_pfil_head) #endif ) { - BRIDGE_UNLOCK(sc); if (bridge_pfil(&m, ifp, src_if, PFIL_IN) != 0) return; if (m == NULL) return; - BRIDGE_LOCK(sc); } if (dst_if == NULL) { @@ -2301,8 +2305,6 @@ bridge_forward(struct bridge_softc *sc, struct bridge_ dbif->bif_stp.bp_state == BSTP_IFSTATE_DISCARDING) goto drop; - BRIDGE_UNLOCK(sc); - if (PFIL_HOOKED_OUT(V_inet_pfil_head) #ifdef INET6 || PFIL_HOOKED_OUT(V_inet6_pfil_head) @@ -2318,7 +2320,6 @@ bridge_forward(struct bridge_softc *sc, struct bridge_ return; drop: - BRIDGE_UNLOCK(sc); m_freem(m); } @@ -2339,6 +2340,8 @@ bridge_input(struct ifnet *ifp, struct mbuf *m) uint16_t vlan; int error; + NET_EPOCH_ASSERT(); + if ((sc->sc_ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) return (m); @@ -2359,10 +2362,8 @@ bridge_input(struct ifnet *ifp, struct mbuf *m) m_freem(m); return (NULL); } - BRIDGE_LOCK(sc); bif = bridge_lookup_member_if(sc, ifp); if (bif == NULL) { - BRIDGE_UNLOCK(sc); return (m); } @@ -2375,13 +2376,11 @@ bridge_input(struct ifnet *ifp, struct mbuf *m) if (memcmp(eh->ether_dhost, bstp_etheraddr, ETHER_ADDR_LEN) == 0) { bstp_input(&bif->bif_stp, ifp, m); /* consumes mbuf */ - BRIDGE_UNLOCK(sc); return (NULL); } if ((bif->bif_flags & IFBIF_STP) && bif->bif_stp.bp_state == BSTP_IFSTATE_DISCARDING) { - BRIDGE_UNLOCK(sc); return (m); } @@ -2392,7 +2391,6 @@ bridge_input(struct ifnet *ifp, struct mbuf *m) */ mc = m_dup(m, M_NOWAIT); if (mc == NULL) { - BRIDGE_UNLOCK(sc); return (m); } @@ -2424,7 +2422,6 @@ bridge_input(struct ifnet *ifp, struct mbuf *m) if ((bif->bif_flags & IFBIF_STP) && bif->bif_stp.bp_state == BSTP_IFSTATE_DISCARDING) { - BRIDGE_UNLOCK(sc); return (m); } @@ -2458,7 +2455,6 @@ bridge_input(struct ifnet *ifp, struct mbuf *m) error = bridge_rtupdate(sc, eh->ether_shost, \ vlan, bif, 0, IFBAF_DYNAMIC); \ if (error && bif->bif_addrmax) { \ - BRIDGE_UNLOCK(sc); \ m_freem(m); \ return (NULL); \ } \ @@ -2466,7 +2462,6 @@ bridge_input(struct ifnet *ifp, struct mbuf *m) m->m_pkthdr.rcvif = iface; \ if ((iface) == ifp) { \ /* Skip bridge processing... src == dest */ \ - BRIDGE_UNLOCK(sc); \ return (m); \ } \ /* It's passing over or to the bridge, locally. */ \ @@ -2478,13 +2473,11 @@ bridge_input(struct ifnet *ifp, struct mbuf *m) OR_PFIL_HOOKED_INET6)) { \ if (bridge_pfil(&m, NULL, ifp, \ PFIL_IN) != 0 || m == NULL) { \ - BRIDGE_UNLOCK(sc); \ return (NULL); \ } \ } \ if ((iface) != bifp) \ ETHER_BPF_MTAP(iface, m); \ - BRIDGE_UNLOCK(sc); \ return (m); \ } \ \ @@ -2492,7 +2485,6 @@ bridge_input(struct ifnet *ifp, struct mbuf *m) if (memcmp(IF_LLADDR((iface)), eh->ether_shost, ETHER_ADDR_LEN) == 0 \ OR_CARP_CHECK_WE_ARE_SRC((iface)) \ ) { \ - BRIDGE_UNLOCK(sc); \ m_freem(m); \ return (NULL); \ } @@ -2543,16 +2535,12 @@ bridge_broadcast(struct bridge_softc *sc, struct ifnet struct bridge_iflist *dbif, *sbif; struct mbuf *mc; struct ifnet *dst_if; - int error = 0, used = 0, i; + int used = 0, i; + NET_EPOCH_ASSERT(); + sbif = bridge_lookup_member_if(sc, src_if); - BRIDGE_LOCK2REF(sc, error); - if (error) { - m_freem(m); - return; - } - /* Filter on the bridge interface before broadcasting */ if (runfilt && (PFIL_HOOKED_OUT(V_inet_pfil_head) #ifdef INET6 @@ -2560,9 +2548,9 @@ bridge_broadcast(struct bridge_softc *sc, struct ifnet #endif )) { if (bridge_pfil(&m, sc->sc_ifp, NULL, PFIL_OUT) != 0) - goto out; + return; if (m == NULL) - goto out; + return; } CK_LIST_FOREACH(dbif, &sc->sc_iflist, bif_next) { @@ -2625,9 +2613,6 @@ bridge_broadcast(struct bridge_softc *sc, struct ifnet } if (used == 0) m_freem(m); - -out: - BRIDGE_UNREF(sc); } /* @@ -2643,6 +2628,8 @@ bridge_span(struct bridge_softc *sc, struct mbuf *m) struct ifnet *dst_if; struct mbuf *mc; + NET_EPOCH_ASSERT(); + if (CK_LIST_EMPTY(&sc->sc_spanlist)) return; @@ -2674,7 +2661,8 @@ bridge_rtupdate(struct bridge_softc *sc, const uint8_t struct bridge_rtnode *brt; int error; - BRIDGE_LOCK_ASSERT(sc); + NET_EPOCH_ASSERT(); + BRIDGE_UNLOCK_ASSERT(sc); /* Check the source address is valid and not multicast. */ if (ETHER_IS_MULTICAST(dst) || @@ -2691,13 +2679,24 @@ bridge_rtupdate(struct bridge_softc *sc, const uint8_t * update it, otherwise create a new one. */ if ((brt = bridge_rtnode_lookup(sc, dst, vlan)) == NULL) { + BRIDGE_LOCK(sc); + + /* Check again, now that we have the lock. There could have + * been a race and we only want to insert this once. */ + if ((brt = bridge_rtnode_lookup(sc, dst, vlan)) != NULL) { + BRIDGE_UNLOCK(sc); + return (0); + } + if (sc->sc_brtcnt >= sc->sc_brtmax) { sc->sc_brtexceeded++; + BRIDGE_UNLOCK(sc); return (ENOSPC); } /* Check per interface address limits (if enabled) */ if (bif->bif_addrmax && bif->bif_addrcnt >= bif->bif_addrmax) { bif->bif_addrexceeded++; + BRIDGE_UNLOCK(sc); return (ENOSPC); } @@ -2707,8 +2706,11 @@ bridge_rtupdate(struct bridge_softc *sc, const uint8_t * address. */ brt = uma_zalloc(V_bridge_rtnode_zone, M_NOWAIT | M_ZERO); - if (brt == NULL) + if (brt == NULL) { + BRIDGE_UNLOCK(sc); return (ENOMEM); + } + brt->brt_vnet = curvnet; if (bif->bif_flags & IFBIF_STICKY) brt->brt_flags = IFBAF_STICKY; @@ -2720,17 +2722,22 @@ bridge_rtupdate(struct bridge_softc *sc, const uint8_t if ((error = bridge_rtnode_insert(sc, brt)) != 0) { uma_zfree(V_bridge_rtnode_zone, brt); + BRIDGE_UNLOCK(sc); return (error); } brt->brt_dst = bif; bif->bif_addrcnt++; + + BRIDGE_UNLOCK(sc); } if ((brt->brt_flags & IFBAF_TYPEMASK) == IFBAF_DYNAMIC && brt->brt_dst != bif) { + BRIDGE_LOCK(sc); brt->brt_dst->bif_addrcnt--; brt->brt_dst = bif; brt->brt_dst->bif_addrcnt++; + BRIDGE_UNLOCK(sc); } if ((flags & IFBAF_TYPEMASK) == IFBAF_DYNAMIC) @@ -2751,7 +2758,7 @@ bridge_rtlookup(struct bridge_softc *sc, const uint8_t { struct bridge_rtnode *brt; - BRIDGE_LOCK_ASSERT(sc); + NET_EPOCH_ASSERT(); if ((brt = bridge_rtnode_lookup(sc, addr, vlan)) == NULL) return (NULL); @@ -2771,6 +2778,7 @@ bridge_rttrim(struct bridge_softc *sc) { struct bridge_rtnode *brt, *nbrt; + NET_EPOCH_ASSERT(); BRIDGE_LOCK_ASSERT(sc); /* Make sure we actually need to do this. */ @@ -2800,7 +2808,9 @@ static void bridge_timer(void *arg) { struct bridge_softc *sc = arg; + struct epoch_tracker et; + NET_EPOCH_ENTER(et); BRIDGE_LOCK_ASSERT(sc); /* Destruction of rtnodes requires a proper vnet context */ @@ -2811,6 +2821,7 @@ bridge_timer(void *arg) callout_reset(&sc->sc_brcallout, bridge_rtable_prune_period * hz, bridge_timer, sc); CURVNET_RESTORE(); + NET_EPOCH_EXIT(et); } /* @@ -2823,6 +2834,7 @@ bridge_rtage(struct bridge_softc *sc) { struct bridge_rtnode *brt, *nbrt; + NET_EPOCH_ASSERT(); BRIDGE_LOCK_ASSERT(sc); CK_LIST_FOREACH_SAFE(brt, &sc->sc_rtlist, brt_list, nbrt) { @@ -2843,6 +2855,7 @@ bridge_rtflush(struct bridge_softc *sc, int full) { struct bridge_rtnode *brt, *nbrt; + NET_EPOCH_ASSERT(); BRIDGE_LOCK_ASSERT(sc); CK_LIST_FOREACH_SAFE(brt, &sc->sc_rtlist, brt_list, nbrt) { @@ -2862,6 +2875,7 @@ bridge_rtdaddr(struct bridge_softc *sc, const uint8_t struct bridge_rtnode *brt; int found = 0; + NET_EPOCH_ASSERT(); BRIDGE_LOCK_ASSERT(sc); /* @@ -2886,6 +2900,7 @@ bridge_rtdelete(struct bridge_softc *sc, struct ifnet { struct bridge_rtnode *brt, *nbrt; + NET_EPOCH_ASSERT(); BRIDGE_LOCK_ASSERT(sc); CK_LIST_FOREACH_SAFE(brt, &sc->sc_rtlist, brt_list, nbrt) { @@ -2990,7 +3005,7 @@ bridge_rtnode_lookup(struct bridge_softc *sc, const ui uint32_t hash; int dir; - BRIDGE_LOCK_ASSERT(sc); + NET_EPOCH_ASSERT(); hash = bridge_rthash(sc, addr); CK_LIST_FOREACH(brt, &sc->sc_rthash[hash], brt_hash) { @@ -3053,6 +3068,18 @@ out: return (0); } +static void +bridge_rtnode_destroy_cb(struct epoch_context *ctx) +{ + struct bridge_rtnode *brt; + + brt = __containerof(ctx, struct bridge_rtnode, brt_epoch_ctx); + + CURVNET_SET(brt->brt_vnet); + uma_zfree(V_bridge_rtnode_zone, brt); + CURVNET_RESTORE(); +} + /* * bridge_rtnode_destroy: * @@ -3061,6 +3088,7 @@ out: static void bridge_rtnode_destroy(struct bridge_softc *sc, struct bridge_rtnode *brt) { + NET_EPOCH_ASSERT(); BRIDGE_LOCK_ASSERT(sc); CK_LIST_REMOVE(brt, brt_hash); @@ -3068,7 +3096,8 @@ bridge_rtnode_destroy(struct bridge_softc *sc, struct CK_LIST_REMOVE(brt, brt_list); sc->sc_brtcnt--; brt->brt_dst->bif_addrcnt--; - uma_zfree(V_bridge_rtnode_zone, brt); + + NET_EPOCH_CALL(bridge_rtnode_destroy_cb, &brt->brt_epoch_ctx); } /* @@ -3081,7 +3110,9 @@ bridge_rtable_expire(struct ifnet *ifp, int age) { struct bridge_softc *sc = ifp->if_bridge; struct bridge_rtnode *brt; + struct epoch_tracker et; + NET_EPOCH_ENTER(et); CURVNET_SET(ifp->if_vnet); BRIDGE_LOCK(sc); @@ -3102,6 +3133,7 @@ bridge_rtable_expire(struct ifnet *ifp, int age) } BRIDGE_UNLOCK(sc); CURVNET_RESTORE(); + NET_EPOCH_EXIT(et); } /* @@ -3607,17 +3639,20 @@ bridge_linkstate(struct ifnet *ifp) { struct bridge_softc *sc = ifp->if_bridge; struct bridge_iflist *bif; + struct epoch_tracker et; - BRIDGE_LOCK(sc); + NET_EPOCH_ENTER(et); + bif = bridge_lookup_member_if(sc, ifp); if (bif == NULL) { - BRIDGE_UNLOCK(sc); + NET_EPOCH_EXIT(et); return; } bridge_linkcheck(sc); - BRIDGE_UNLOCK(sc); bstp_linkstate(&bif->bif_stp); + + NET_EPOCH_EXIT(et); } static void @@ -3626,7 +3661,8 @@ bridge_linkcheck(struct bridge_softc *sc) struct bridge_iflist *bif; int new_link, hasls; - BRIDGE_LOCK_ASSERT(sc); + NET_EPOCH_ASSERT(); + new_link = LINK_STATE_DOWN; hasls = 0; /* Our link is considered up if at least one of our ports is active */ From owner-svn-src-all@freebsd.org Sun Apr 26 16:27: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 DC7802B4B70; Sun, 26 Apr 2020 16:27:03 +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 499Cwl5ZG4z3BqP; Sun, 26 Apr 2020 16:27:03 +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 B55DD23B27; Sun, 26 Apr 2020 16:27:03 +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 03QGR3ME002109; Sun, 26 Apr 2020 16:27:03 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03QGR3sO002108; Sun, 26 Apr 2020 16:27:03 GMT (envelope-from kp@FreeBSD.org) Message-Id: <202004261627.03QGR3sO002108@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Sun, 26 Apr 2020 16:27:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360346 - head/tests/sys/net X-SVN-Group: head X-SVN-Commit-Author: kp X-SVN-Commit-Paths: head/tests/sys/net X-SVN-Commit-Revision: 360346 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, 26 Apr 2020 16:27:03 -0000 Author: kp Date: Sun Apr 26 16:27:03 2020 New Revision: 360346 URL: https://svnweb.freebsd.org/changeset/base/360346 Log: bridge tests: Test for #216510 We used to have an issue with recursive locking with net.link.bridge.inherit_mac. This causes us to send an ARP request while we hold the BRIDGE_LOCK, which used to cause us to acquire the BRIDGE_LOCK again. We can't re-acquire it, so this caused a panic. Now that we no longer need to acquire the BRIDGE_LOCK for bridge_transmit() this should no longer panic. Test this. PR: 216510 Reviewed by: emaste, philip MFC after: 2 months Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D24251 Modified: head/tests/sys/net/if_bridge_test.sh Modified: head/tests/sys/net/if_bridge_test.sh ============================================================================== --- head/tests/sys/net/if_bridge_test.sh Sun Apr 26 16:22:35 2020 (r360345) +++ head/tests/sys/net/if_bridge_test.sh Sun Apr 26 16:27:03 2020 (r360346) @@ -309,12 +309,40 @@ mac_conflict_cleanup() vnet_cleanup } +atf_test_case "inherit_mac" "cleanup" +inherit_mac_head() +{ + atf_set descr 'Bridge inherit_mac test, #216510' + atf_set require.user root +} + +inherit_mac_body() +{ + vnet_init + + bridge=$(vnet_mkbridge) + epair=$(vnet_mkepair) + vnet_mkjail one ${bridge} ${epair}a + + jexec one sysctl net.link.bridge.inherit_mac=1 + + # Attempt to provoke the panic described in #216510 + jexec one ifconfig ${bridge} 192.0.0.1/24 up + jexec one ifconfig ${bridge} addm ${epair}a +} + +inherit_mac_cleanup() +{ + vnet_cleanup +} + atf_init_test_cases() { atf_add_test_case "bridge_transmit_ipv4_unicast" atf_add_test_case "stp" atf_add_test_case "static" atf_add_test_case "span" + atf_add_test_case "inherit_mac" atf_add_test_case "delete_with_members" atf_add_test_case "mac_conflict" } From owner-svn-src-all@freebsd.org Sun Apr 26 16:30: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 148ED2B4C36; Sun, 26 Apr 2020 16:30:01 +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 499D086lrWz3C26; Sun, 26 Apr 2020 16:30:00 +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 C4C1923B53; Sun, 26 Apr 2020 16:30:00 +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 03QGU04b002367; Sun, 26 Apr 2020 16:30:00 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03QGU0Up002366; Sun, 26 Apr 2020 16:30:00 GMT (envelope-from kp@FreeBSD.org) Message-Id: <202004261630.03QGU0Up002366@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Sun, 26 Apr 2020 16:30:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360347 - head/sys/netpfil/pf X-SVN-Group: head X-SVN-Commit-Author: kp X-SVN-Commit-Paths: head/sys/netpfil/pf X-SVN-Commit-Revision: 360347 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, 26 Apr 2020 16:30:01 -0000 Author: kp Date: Sun Apr 26 16:30:00 2020 New Revision: 360347 URL: https://svnweb.freebsd.org/changeset/base/360347 Log: pf: Virtualise pf_frag_mtx The pf_frag_mtx mutex protects the fragments queue. The fragments queue is virtualised already (i.e. per-vnet) so it makes no sense to block jail A from accessing its fragments queue while jail B is accessing its own fragments queue. Virtualise the lock for improved concurrency. Differential Revision: https://reviews.freebsd.org/D24504 Modified: head/sys/netpfil/pf/pf_norm.c Modified: head/sys/netpfil/pf/pf_norm.c ============================================================================== --- head/sys/netpfil/pf/pf_norm.c Sun Apr 26 16:27:03 2020 (r360346) +++ head/sys/netpfil/pf/pf_norm.c Sun Apr 26 16:30:00 2020 (r360347) @@ -106,11 +106,11 @@ struct pf_fragment_tag { uint32_t ft_id; /* fragment id */ }; -static struct mtx pf_frag_mtx; -MTX_SYSINIT(pf_frag_mtx, &pf_frag_mtx, "pf fragments", MTX_DEF); -#define PF_FRAG_LOCK() mtx_lock(&pf_frag_mtx) -#define PF_FRAG_UNLOCK() mtx_unlock(&pf_frag_mtx) -#define PF_FRAG_ASSERT() mtx_assert(&pf_frag_mtx, MA_OWNED) +VNET_DEFINE_STATIC(struct mtx, pf_frag_mtx); +#define V_pf_frag_mtx VNET(pf_frag_mtx) +#define PF_FRAG_LOCK() mtx_lock(&V_pf_frag_mtx) +#define PF_FRAG_UNLOCK() mtx_unlock(&V_pf_frag_mtx) +#define PF_FRAG_ASSERT() mtx_assert(&V_pf_frag_mtx, MA_OWNED) VNET_DEFINE(uma_zone_t, pf_state_scrub_z); /* XXX: shared with pfsync */ @@ -192,6 +192,8 @@ pf_normalize_init(void) sizeof(struct pf_state_scrub), NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0); + mtx_init(&V_pf_frag_mtx, "pf fragments", NULL, MTX_DEF); + V_pf_limits[PF_LIMIT_FRAGS].zone = V_pf_frent_z; V_pf_limits[PF_LIMIT_FRAGS].limit = PFFRAG_FRENT_HIWAT; uma_zone_set_max(V_pf_frent_z, PFFRAG_FRENT_HIWAT); @@ -207,6 +209,8 @@ pf_normalize_cleanup(void) uma_zdestroy(V_pf_state_scrub_z); uma_zdestroy(V_pf_frent_z); uma_zdestroy(V_pf_frag_z); + + mtx_destroy(&V_pf_frag_mtx); } static int From owner-svn-src-all@freebsd.org Sun Apr 26 18:07: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 7C9CA2B8833; Sun, 26 Apr 2020 18:07:36 +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 499G8m2lqCz3JVT; Sun, 26 Apr 2020 18:07:36 +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 5548624E8A; Sun, 26 Apr 2020 18:07:36 +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 03QI7aWR064373; Sun, 26 Apr 2020 18:07:36 GMT (envelope-from melifaro@FreeBSD.org) Received: (from melifaro@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03QI7aab064372; Sun, 26 Apr 2020 18:07:36 GMT (envelope-from melifaro@FreeBSD.org) Message-Id: <202004261807.03QI7aab064372@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: melifaro set sender to melifaro@FreeBSD.org using -f From: "Alexander V. Chernikov" Date: Sun, 26 Apr 2020 18:07:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360348 - head/sys/netinet6 X-SVN-Group: head X-SVN-Commit-Author: melifaro X-SVN-Commit-Paths: head/sys/netinet6 X-SVN-Commit-Revision: 360348 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, 26 Apr 2020 18:07:36 -0000 Author: melifaro Date: Sun Apr 26 18:07:35 2020 New Revision: 360348 URL: https://svnweb.freebsd.org/changeset/base/360348 Log: Fix IPv6 link-local operations with RADIX_MPATH. It was broken by r360292 as fib6_lookup() assumes de-embedded addresses while rtalloc_mpath_fib() requires sockaddr with embedded ones. New fib6_lookup() transparently supports multipath, hence remove old RADIX_MPATH condition. Modified: head/sys/netinet6/in6_src.c Modified: head/sys/netinet6/in6_src.c ============================================================================== --- head/sys/netinet6/in6_src.c Sun Apr 26 16:30:00 2020 (r360347) +++ head/sys/netinet6/in6_src.c Sun Apr 26 18:07:35 2020 (r360348) @@ -93,9 +93,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#ifdef RADIX_MPATH -#include -#endif #include #include @@ -773,13 +770,9 @@ selectroute(struct sockaddr_in6 *dstsock, struct ip6_p } -#ifdef RADIX_MPATH - rtalloc_mpath_fib((struct route *)ro, - ntohl(sa6->sin6_addr.s6_addr32[3]), fibnum); -#else ro->ro_nh = fib6_lookup(fibnum, &sa6->sin6_addr, scopeid, NHR_REF, flowid); -#endif + if (IN6_IS_SCOPE_LINKLOCAL(&sa6->sin6_addr)) sa6->sin6_addr.s6_addr16[1] = htons(scopeid); } From owner-svn-src-all@freebsd.org Sun Apr 26 18:42: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 CFD272B9221; Sun, 26 Apr 2020 18:42:39 +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 499GxC588gz3KtS; Sun, 26 Apr 2020 18:42:39 +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 ABE0325631; Sun, 26 Apr 2020 18:42:39 +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 03QIgd72088479; Sun, 26 Apr 2020 18:42:39 GMT (envelope-from melifaro@FreeBSD.org) Received: (from melifaro@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03QIgcfR088475; Sun, 26 Apr 2020 18:42:38 GMT (envelope-from melifaro@FreeBSD.org) Message-Id: <202004261842.03QIgcfR088475@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: melifaro set sender to melifaro@FreeBSD.org using -f From: "Alexander V. Chernikov" Date: Sun, 26 Apr 2020 18:42:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360349 - 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: 360349 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, 26 Apr 2020 18:42:39 -0000 Author: melifaro Date: Sun Apr 26 18:42:38 2020 New Revision: 360349 URL: https://svnweb.freebsd.org/changeset/base/360349 Log: Convert debugnet to the new routing KPI. Introduce new fib[46]_lookup_debugnet() functions serving as a special interface for the crash-time operations. Underlying implementation will try to return lookup result if datastructures are not corrupted, avoding locking. Convert debugnet to use fib4_lookup_debugnet() and switch it to use nexthops instead of rtentries. Reviewed by: cem Differential Revision: https://reviews.freebsd.org/D24555 Modified: head/sys/net/debugnet.c head/sys/netinet/in_fib.c head/sys/netinet/in_fib.h head/sys/netinet6/in6_fib.c head/sys/netinet6/in6_fib.h Modified: head/sys/net/debugnet.c ============================================================================== --- head/sys/net/debugnet.c Sun Apr 26 18:07:35 2020 (r360348) +++ head/sys/net/debugnet.c Sun Apr 26 18:42:38 2020 (r360349) @@ -53,8 +53,11 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include +#include #include +#include #include #include #include @@ -644,8 +647,8 @@ debugnet_connect(const struct debugnet_conn_params *dc if (pcb->dp_client == INADDR_ANY || pcb->dp_gateway == INADDR_ANY || pcb->dp_ifp == NULL) { struct sockaddr_in dest_sin, *gw_sin, *local_sin; - struct rtentry *dest_rt; struct ifnet *rt_ifp; + struct nhop_object *nh; memset(&dest_sin, 0, sizeof(dest_sin)); dest_sin = (struct sockaddr_in) { @@ -655,29 +658,29 @@ debugnet_connect(const struct debugnet_conn_params *dc }; CURVNET_SET(vnet0); - dest_rt = rtalloc1((struct sockaddr *)&dest_sin, 0, - RTF_RNH_LOCKED); + nh = fib4_lookup_debugnet(RT_DEFAULT_FIB, dest_sin.sin_addr, 0, + NHR_NONE); CURVNET_RESTORE(); - if (dest_rt == NULL) { + if (nh == NULL) { printf("%s: Could not get route for that server.\n", __func__); error = ENOENT; goto cleanup; } - if (dest_rt->rt_gateway->sa_family == AF_INET) - gw_sin = (struct sockaddr_in *)dest_rt->rt_gateway; + if (nh->gw_sa.sa_family == AF_INET) + gw_sin = &nh->gw4_sa; else { - if (dest_rt->rt_gateway->sa_family == AF_LINK) + if (nh->gw_sa.sa_family == AF_LINK) DNETDEBUG("Destination address is on link.\n"); gw_sin = NULL; } - MPASS(dest_rt->rt_ifa->ifa_addr->sa_family == AF_INET); - local_sin = (struct sockaddr_in *)dest_rt->rt_ifa->ifa_addr; + MPASS(nh->nh_ifa->ifa_addr->sa_family == AF_INET); + local_sin = (struct sockaddr_in *)nh->nh_ifa->ifa_addr; - rt_ifp = dest_rt->rt_ifp; + rt_ifp = nh->nh_ifp; if (pcb->dp_client == INADDR_ANY) pcb->dp_client = local_sin->sin_addr.s_addr; @@ -685,8 +688,6 @@ debugnet_connect(const struct debugnet_conn_params *dc pcb->dp_gateway = gw_sin->sin_addr.s_addr; if (pcb->dp_ifp == NULL) pcb->dp_ifp = rt_ifp; - - RTFREE_LOCKED(dest_rt); } ifp = pcb->dp_ifp; Modified: head/sys/netinet/in_fib.c ============================================================================== --- head/sys/netinet/in_fib.c Sun Apr 26 18:07:35 2020 (r360348) +++ head/sys/netinet/in_fib.c Sun Apr 26 18:42:38 2020 (r360349) @@ -361,4 +361,46 @@ fib4_check_urpf(uint32_t fibnum, struct in_addr dst, u return (0); } +struct nhop_object * +fib4_lookup_debugnet(uint32_t fibnum, struct in_addr dst, uint32_t scopeid, + uint32_t flags) +{ + struct rib_head *rh; + struct radix_node *rn; + struct rtentry *rt; + struct nhop_object *nh; + + KASSERT((fibnum < rt_numfibs), ("fib4_lookup_debugnet: bad fibnum")); + rh = rt_tables_get_rnh(fibnum, AF_INET); + if (rh == NULL) + return (NULL); + + /* Prepare lookup key */ + struct sockaddr_in sin4; + memset(&sin4, 0, sizeof(sin4)); + sin4.sin_family = AF_INET; + sin4.sin_len = sizeof(struct sockaddr_in); + sin4.sin_addr = dst; + + nh = NULL; + /* unlocked lookup */ + rn = rh->rnh_matchaddr((void *)&sin4, &rh->head); + if (rn != NULL && ((rn->rn_flags & RNF_ROOT) == 0)) { + rt = RNTORT(rn); +#ifdef RADIX_MPATH + if (rt_mpath_next(rt) != NULL) + rt = rt_mpath_selectrte(rt, 0); +#endif + nh = rt->rt_nhop; + /* Ensure route & ifp is UP */ + if (RT_LINK_IS_UP(nh->nh_ifp)) { + if (flags & NHR_REF) + nhop_ref_object(nh); + return (nh); + } + } + + return (NULL); +} + #endif Modified: head/sys/netinet/in_fib.h ============================================================================== --- head/sys/netinet/in_fib.h Sun Apr 26 18:07:35 2020 (r360348) +++ head/sys/netinet/in_fib.h Sun Apr 26 18:42:38 2020 (r360349) @@ -75,5 +75,7 @@ struct nhop_object *fib4_lookup(uint32_t fibnum, struc uint32_t scopeid, uint32_t flags, uint32_t flowid); int fib4_check_urpf(uint32_t fibnum, struct in_addr dst, uint32_t scopeid, uint32_t flags, const struct ifnet *src_if); +struct nhop_object *fib4_lookup_debugnet(uint32_t fibnum, struct in_addr dst, + uint32_t scopeid, uint32_t flags); #endif Modified: head/sys/netinet6/in6_fib.c ============================================================================== --- head/sys/netinet6/in6_fib.c Sun Apr 26 18:07:35 2020 (r360348) +++ head/sys/netinet6/in6_fib.c Sun Apr 26 18:42:38 2020 (r360349) @@ -397,5 +397,46 @@ fib6_check_urpf(uint32_t fibnum, const struct in6_addr return (0); } +struct nhop_object * +fib6_lookup_debugnet(uint32_t fibnum, const struct in6_addr *dst6, + uint32_t scopeid, uint32_t flags) +{ + struct rib_head *rh; + struct radix_node *rn; + struct rtentry *rt; + struct nhop_object *nh; + struct sockaddr_in6 sin6; + + KASSERT((fibnum < rt_numfibs), ("fib6_lookup: bad fibnum")); + rh = rt_tables_get_rnh(fibnum, AF_INET6); + if (rh == NULL) + return (NULL); + + /* TODO: radix changes */ + //addr = *dst6; + /* Prepare lookup key */ + memset(&sin6, 0, sizeof(sin6)); + sin6.sin6_len = sizeof(struct sockaddr_in6); + sin6.sin6_addr = *dst6; + + /* Assume scopeid is valid and embed it directly */ + if (IN6_IS_SCOPE_LINKLOCAL(dst6)) + sin6.sin6_addr.s6_addr16[1] = htons(scopeid & 0xffff); + + rn = rh->rnh_matchaddr((void *)&sin6, &rh->head); + if (rn != NULL && ((rn->rn_flags & RNF_ROOT) == 0)) { + rt = RNTORT(rn); + nh = rt->rt_nhop; + /* Ensure route & ifp is UP */ + if (RT_LINK_IS_UP(nh->nh_ifp)) { + if (flags & NHR_REF) + nhop_ref_object(nh); + return (nh); + } + } + + return (NULL); +} + #endif Modified: head/sys/netinet6/in6_fib.h ============================================================================== --- head/sys/netinet6/in6_fib.h Sun Apr 26 18:07:35 2020 (r360348) +++ head/sys/netinet6/in6_fib.h Sun Apr 26 18:42:38 2020 (r360349) @@ -64,5 +64,7 @@ struct nhop_object *fib6_lookup(uint32_t fibnum, uint32_t flowid); int fib6_check_urpf(uint32_t fibnum, const struct in6_addr *dst6, uint32_t scopeid, uint32_t flags, const struct ifnet *src_if); +struct nhop_object *fib6_lookup_debugnet(uint32_t fibnum, + const struct in6_addr *dst6, uint32_t scopeid, uint32_t flags); #endif From owner-svn-src-all@freebsd.org Sun Apr 26 19:17: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 EA0142BA09B; Sun, 26 Apr 2020 19:17:45 +0000 (UTC) (envelope-from dim@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 499Hjj5tdJz3MSL; Sun, 26 Apr 2020 19:17:45 +0000 (UTC) (envelope-from dim@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 C53A425CA5; Sun, 26 Apr 2020 19:17:45 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03QJHjYU007408; Sun, 26 Apr 2020 19:17:45 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03QJHja8007407; Sun, 26 Apr 2020 19:17:45 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202004261917.03QJHja8007407@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 26 Apr 2020 19:17:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360350 - head/contrib/llvm-project/llvm/lib/Target/ARM X-SVN-Group: head X-SVN-Commit-Author: dim X-SVN-Commit-Paths: head/contrib/llvm-project/llvm/lib/Target/ARM X-SVN-Commit-Revision: 360350 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, 26 Apr 2020 19:17:46 -0000 Author: dim Date: Sun Apr 26 19:17:45 2020 New Revision: 360350 URL: https://svnweb.freebsd.org/changeset/base/360350 Log: Tentatively apply https://reviews.llvm.org/D78877 (by Dave Green): [ARM] Only produce qadd8b under hasV6Ops When compiling for a arm5te cpu from clang, the +dsp attribute is set. This meant we could try and generate qadd8 instructions where we would end up having no pattern. I've changed the condition here to be hasV6Ops && hasDSP, which is what other parts of ARMISelLowering seem to use for similar instructions. Fixed PR45677. This fixes "fatal error: error in backend: Cannot select: t37: i32 = ARMISD::QADD8b t43, t44" when compiling sys/dev/sound/pcm/feeder_mixer.c for armv5. For some reason we do not encounter this on head, but this error popped up while building universes for stable/12. MFC after: 3 days Modified: head/contrib/llvm-project/llvm/lib/Target/ARM/ARMISelLowering.cpp Modified: head/contrib/llvm-project/llvm/lib/Target/ARM/ARMISelLowering.cpp ============================================================================== --- head/contrib/llvm-project/llvm/lib/Target/ARM/ARMISelLowering.cpp Sun Apr 26 18:42:38 2020 (r360349) +++ head/contrib/llvm-project/llvm/lib/Target/ARM/ARMISelLowering.cpp Sun Apr 26 19:17:45 2020 (r360350) @@ -4549,7 +4549,7 @@ SDValue ARMTargetLowering::LowerUnsignedALUO(SDValue O static SDValue LowerSADDSUBSAT(SDValue Op, SelectionDAG &DAG, const ARMSubtarget *Subtarget) { EVT VT = Op.getValueType(); - if (!Subtarget->hasDSP()) + if (!Subtarget->hasV6Ops() || !Subtarget->hasDSP()) return SDValue(); if (!VT.isSimple()) return SDValue(); From owner-svn-src-all@freebsd.org Sun Apr 26 19:42: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 1FE092BA945; Sun, 26 Apr 2020 19:42:41 +0000 (UTC) (envelope-from wulf@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 499JGS746Rz3NlC; Sun, 26 Apr 2020 19:42:40 +0000 (UTC) (envelope-from wulf@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 EDAA126281; Sun, 26 Apr 2020 19:42:40 +0000 (UTC) (envelope-from wulf@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03QJge7K025487; Sun, 26 Apr 2020 19:42:40 GMT (envelope-from wulf@FreeBSD.org) Received: (from wulf@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03QJgeoi025486; Sun, 26 Apr 2020 19:42:40 GMT (envelope-from wulf@FreeBSD.org) Message-Id: <202004261942.03QJgeoi025486@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: wulf set sender to wulf@FreeBSD.org using -f From: Vladimir Kondratyev Date: Sun, 26 Apr 2020 19:42: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: r360351 - stable/12/sys/dev/evdev X-SVN-Group: stable-12 X-SVN-Commit-Author: wulf X-SVN-Commit-Paths: stable/12/sys/dev/evdev X-SVN-Commit-Revision: 360351 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, 26 Apr 2020 19:42:41 -0000 Author: wulf Date: Sun Apr 26 19:42:40 2020 New Revision: 360351 URL: https://svnweb.freebsd.org/changeset/base/360351 Log: MFC r359905: [evdev] Use proper mutex reference in autorepeat callout initialization. This fixes panic occuring when evdev key autorepeat is enabled by driver which initializes evdev with external mutex. Modified: stable/12/sys/dev/evdev/evdev.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/evdev/evdev.c ============================================================================== --- stable/12/sys/dev/evdev/evdev.c Sun Apr 26 19:17:45 2020 (r360350) +++ stable/12/sys/dev/evdev/evdev.c Sun Apr 26 19:42:40 2020 (r360351) @@ -293,7 +293,7 @@ evdev_register_common(struct evdev_dev *evdev) if (evdev_event_supported(evdev, EV_REP) && bit_test(evdev->ev_flags, EVDEV_FLAG_SOFTREPEAT)) { /* Initialize callout */ - callout_init_mtx(&evdev->ev_rep_callout, &evdev->ev_mtx, 0); + callout_init_mtx(&evdev->ev_rep_callout, evdev->ev_lock, 0); if (evdev->ev_rep[REP_DELAY] == 0 && evdev->ev_rep[REP_PERIOD] == 0) { From owner-svn-src-all@freebsd.org Sun Apr 26 19:43: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 7217F2BAA11; Sun, 26 Apr 2020 19:43:28 +0000 (UTC) (envelope-from wulf@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 499JHN2F89z3Nsc; Sun, 26 Apr 2020 19:43:28 +0000 (UTC) (envelope-from wulf@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 4790326284; Sun, 26 Apr 2020 19:43:28 +0000 (UTC) (envelope-from wulf@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03QJhSUQ025568; Sun, 26 Apr 2020 19:43:28 GMT (envelope-from wulf@FreeBSD.org) Received: (from wulf@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03QJhSGO025567; Sun, 26 Apr 2020 19:43:28 GMT (envelope-from wulf@FreeBSD.org) Message-Id: <202004261943.03QJhSGO025567@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: wulf set sender to wulf@FreeBSD.org using -f From: Vladimir Kondratyev Date: Sun, 26 Apr 2020 19:43: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: r360352 - stable/11/sys/dev/evdev X-SVN-Group: stable-11 X-SVN-Commit-Author: wulf X-SVN-Commit-Paths: stable/11/sys/dev/evdev X-SVN-Commit-Revision: 360352 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, 26 Apr 2020 19:43:28 -0000 Author: wulf Date: Sun Apr 26 19:43:27 2020 New Revision: 360352 URL: https://svnweb.freebsd.org/changeset/base/360352 Log: MFC r359905: [evdev] Use proper mutex reference in autorepeat callout initialization. This fixes panic occuring when evdev key autorepeat is enabled by driver which initializes evdev with external mutex. Modified: stable/11/sys/dev/evdev/evdev.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/evdev/evdev.c ============================================================================== --- stable/11/sys/dev/evdev/evdev.c Sun Apr 26 19:42:40 2020 (r360351) +++ stable/11/sys/dev/evdev/evdev.c Sun Apr 26 19:43:27 2020 (r360352) @@ -291,7 +291,7 @@ evdev_register_common(struct evdev_dev *evdev) if (evdev_event_supported(evdev, EV_REP) && bit_test(evdev->ev_flags, EVDEV_FLAG_SOFTREPEAT)) { /* Initialize callout */ - callout_init_mtx(&evdev->ev_rep_callout, &evdev->ev_mtx, 0); + callout_init_mtx(&evdev->ev_rep_callout, evdev->ev_lock, 0); if (evdev->ev_rep[REP_DELAY] == 0 && evdev->ev_rep[REP_PERIOD] == 0) { From owner-svn-src-all@freebsd.org Sun Apr 26 20:06: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 D076F2BAF9C; Sun, 26 Apr 2020 20:06:08 +0000 (UTC) (envelope-from wulf@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 499JnX5CDwz3QYk; Sun, 26 Apr 2020 20:06:08 +0000 (UTC) (envelope-from wulf@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 A97A3266AA; Sun, 26 Apr 2020 20:06:08 +0000 (UTC) (envelope-from wulf@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03QK68Nx038475; Sun, 26 Apr 2020 20:06:08 GMT (envelope-from wulf@FreeBSD.org) Received: (from wulf@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03QK68Kl038474; Sun, 26 Apr 2020 20:06:08 GMT (envelope-from wulf@FreeBSD.org) Message-Id: <202004262006.03QK68Kl038474@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: wulf set sender to wulf@FreeBSD.org using -f From: Vladimir Kondratyev Date: Sun, 26 Apr 2020 20:06:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360353 - head/sys/dev/atkbdc X-SVN-Group: head X-SVN-Commit-Author: wulf X-SVN-Commit-Paths: head/sys/dev/atkbdc X-SVN-Commit-Revision: 360353 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, 26 Apr 2020 20:06:08 -0000 Author: wulf Date: Sun Apr 26 20:06:08 2020 New Revision: 360353 URL: https://svnweb.freebsd.org/changeset/base/360353 Log: psm(4): Fix wrong key-release event occuring after trackpoint use. Some models of laptops e.g. "X1 Carbon 3rd Gen Thinkpad" have LRM buttons wired as so called "Synaptic touchpads extended buttons" rather thah real trackpoint buttons. Handle this case with merging of events from both sources. PR: 245877 Reported by: Raichoo MFC after: 1 week Modified: head/sys/dev/atkbdc/psm.c Modified: head/sys/dev/atkbdc/psm.c ============================================================================== --- head/sys/dev/atkbdc/psm.c Sun Apr 26 19:43:27 2020 (r360352) +++ head/sys/dev/atkbdc/psm.c Sun Apr 26 20:06:08 2020 (r360353) @@ -3371,7 +3371,7 @@ proc_synaptics(struct psm_softc *sc, packetbuf_t *pb, evdev_push_rel(sc->evdev_r, REL_X, *x); evdev_push_rel(sc->evdev_r, REL_Y, -*y); evdev_push_mouse_btn(sc->evdev_r, - guest_buttons); + guest_buttons | sc->extended_buttons); evdev_sync(sc->evdev_r); } #endif From owner-svn-src-all@freebsd.org Sun Apr 26 20:08: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 AA9242BB4C7; Sun, 26 Apr 2020 20:08:59 +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 499Jrq47l0z3RFh; Sun, 26 Apr 2020 20:08:59 +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 89260266B3; Sun, 26 Apr 2020 20:08:59 +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 03QK8xae038712; Sun, 26 Apr 2020 20:08:59 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03QK8wxQ038706; Sun, 26 Apr 2020 20:08:58 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202004262008.03QK8wxQ038706@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Sun, 26 Apr 2020 20:08:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360354 - in head/sys: kern sys vm X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: in head/sys: kern sys vm X-SVN-Commit-Revision: 360354 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, 26 Apr 2020 20:08:59 -0000 Author: markj Date: Sun Apr 26 20:08:57 2020 New Revision: 360354 URL: https://svnweb.freebsd.org/changeset/base/360354 Log: Use a single VM object for kernel stacks. Previously we allocated a separate VM object for each kernel stack. However, fully constructed kernel stacks are cached by UMA, so there is no harm in using a single global object for all stacks. This reduces memory consumption and makes it easier to define a memory allocation policy for kernel stack pages, with the aim of reducing physical memory fragmentation. Add a global kstack_object, and use the stack KVA address to index into the object like we do with kernel_object. Reviewed by: kib Tested by: pho Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D24473 Modified: head/sys/kern/kern_thread.c head/sys/sys/proc.h head/sys/vm/vm_extern.h head/sys/vm/vm_glue.c head/sys/vm/vm_kern.h head/sys/vm/vm_swapout.c Modified: head/sys/kern/kern_thread.c ============================================================================== --- head/sys/kern/kern_thread.c Sun Apr 26 20:06:08 2020 (r360353) +++ head/sys/kern/kern_thread.c Sun Apr 26 20:08:57 2020 (r360354) @@ -84,7 +84,7 @@ _Static_assert(offsetof(struct thread, td_pflags) == 0 "struct thread KBI td_pflags"); _Static_assert(offsetof(struct thread, td_frame) == 0x498, "struct thread KBI td_frame"); -_Static_assert(offsetof(struct thread, td_emuldata) == 0x6b0, +_Static_assert(offsetof(struct thread, td_emuldata) == 0x6a0, "struct thread KBI td_emuldata"); _Static_assert(offsetof(struct proc, p_flag) == 0xb0, "struct proc KBI p_flag"); Modified: head/sys/sys/proc.h ============================================================================== --- head/sys/sys/proc.h Sun Apr 26 20:06:08 2020 (r360353) +++ head/sys/sys/proc.h Sun Apr 26 20:08:57 2020 (r360354) @@ -348,7 +348,6 @@ struct thread { /* LP64 hole */ struct callout td_slpcallout; /* (h) Callout for sleep. */ struct trapframe *td_frame; /* (k) */ - struct vm_object *td_kstack_obj;/* (a) Kstack object. */ vm_offset_t td_kstack; /* (a) Kernel VA of kstack. */ int td_kstack_pages; /* (a) Size of the kstack. */ volatile u_int td_critnest; /* (k*) Critical section nest level. */ Modified: head/sys/vm/vm_extern.h ============================================================================== --- head/sys/vm/vm_extern.h Sun Apr 26 20:06:08 2020 (r360353) +++ head/sys/vm/vm_extern.h Sun Apr 26 20:08:57 2020 (r360354) @@ -126,6 +126,8 @@ struct sf_buf *vm_imgact_map_page(vm_object_t object, void vm_imgact_unmap_page(struct sf_buf *sf); void vm_thread_dispose(struct thread *td); int vm_thread_new(struct thread *td, int pages); +void vm_thread_stack_back(struct domainset *ds, vm_offset_t kaddr, + vm_page_t ma[], int npages, int req_class); u_int vm_active_count(void); u_int vm_inactive_count(void); u_int vm_laundry_count(void); Modified: head/sys/vm/vm_glue.c ============================================================================== --- head/sys/vm/vm_glue.c Sun Apr 26 20:06:08 2020 (r360353) +++ head/sys/vm/vm_glue.c Sun Apr 26 20:08:57 2020 (r360354) @@ -264,9 +264,9 @@ vm_sync_icache(vm_map_t map, vm_offset_t va, vm_offset pmap_sync_icache(map->pmap, va, sz); } +vm_object_t kstack_object; static uma_zone_t kstack_cache; static int kstack_cache_size; -static int kstack_domain_iter; static int sysctl_kstack_cache_size(SYSCTL_HANDLER_ARGS) @@ -285,23 +285,15 @@ SYSCTL_PROC(_vm, OID_AUTO, kstack_cache_size, /* * Create the kernel stack (including pcb for i386) for a new thread. - * This routine directly affects the fork perf for a process and - * create performance for a thread. */ static vm_offset_t -vm_thread_stack_create(struct domainset *ds, vm_object_t *ksobjp, int pages) +vm_thread_stack_create(struct domainset *ds, int pages) { vm_page_t ma[KSTACK_MAX_PAGES]; - vm_object_t ksobj; vm_offset_t ks; int i; /* - * Allocate an object for the kstack. - */ - ksobj = vm_object_allocate(OBJT_DEFAULT, pages); - - /* * Get a kernel virtual address for this thread's kstack. */ #if defined(__mips__) @@ -319,54 +311,45 @@ vm_thread_stack_create(struct domainset *ds, vm_object #endif if (ks == 0) { printf("%s: kstack allocation failed\n", __func__); - vm_object_deallocate(ksobj); return (0); } - if (vm_ndomains > 1) { - ksobj->domain.dr_policy = ds; - ksobj->domain.dr_iter = - atomic_fetchadd_int(&kstack_domain_iter, 1); - } if (KSTACK_GUARD_PAGES != 0) { pmap_qremove(ks, KSTACK_GUARD_PAGES); ks += KSTACK_GUARD_PAGES * PAGE_SIZE; } - /* - * For the length of the stack, link in a real page of ram for each - * page of stack. + /* + * Allocate physical pages to back the stack. */ - VM_OBJECT_WLOCK(ksobj); - (void)vm_page_grab_pages(ksobj, 0, VM_ALLOC_NORMAL | VM_ALLOC_WIRED, - ma, pages); + vm_thread_stack_back(ds, ks, ma, pages, VM_ALLOC_NORMAL); for (i = 0; i < pages; i++) vm_page_valid(ma[i]); - VM_OBJECT_WUNLOCK(ksobj); pmap_qenter(ks, ma, pages); - *ksobjp = ksobj; return (ks); } static void -vm_thread_stack_dispose(vm_object_t ksobj, vm_offset_t ks, int pages) +vm_thread_stack_dispose(vm_offset_t ks, int pages) { vm_page_t m; + vm_pindex_t pindex; int i; + pindex = atop(ks - VM_MIN_KERNEL_ADDRESS); + pmap_qremove(ks, pages); - VM_OBJECT_WLOCK(ksobj); + VM_OBJECT_WLOCK(kstack_object); for (i = 0; i < pages; i++) { - m = vm_page_lookup(ksobj, i); + m = vm_page_lookup(kstack_object, pindex + i); if (m == NULL) panic("%s: kstack already missing?", __func__); vm_page_xbusy_claim(m); vm_page_unwire_noq(m); vm_page_free(m); } - VM_OBJECT_WUNLOCK(ksobj); - vm_object_deallocate(ksobj); + VM_OBJECT_WUNLOCK(kstack_object); kva_free(ks - (KSTACK_GUARD_PAGES * PAGE_SIZE), (pages + KSTACK_GUARD_PAGES) * PAGE_SIZE); } @@ -377,7 +360,6 @@ vm_thread_stack_dispose(vm_object_t ksobj, vm_offset_t int vm_thread_new(struct thread *td, int pages) { - vm_object_t ksobj; vm_offset_t ks; /* Bounds check */ @@ -387,12 +369,8 @@ vm_thread_new(struct thread *td, int pages) pages = KSTACK_MAX_PAGES; ks = 0; - ksobj = NULL; - if (pages == kstack_pages && kstack_cache != NULL) { + if (pages == kstack_pages && kstack_cache != NULL) ks = (vm_offset_t)uma_zalloc(kstack_cache, M_NOWAIT); - if (ks != 0) - ksobj = PHYS_TO_VM_PAGE(pmap_kextract(ks))->object; - } /* * Ensure that kstack objects can draw pages from any memory @@ -401,10 +379,9 @@ vm_thread_new(struct thread *td, int pages) */ if (ks == 0) ks = vm_thread_stack_create(DOMAINSET_PREF(PCPU_GET(domain)), - &ksobj, pages); + pages); if (ks == 0) return (0); - td->td_kstack_obj = ksobj; td->td_kstack = ks; td->td_kstack_pages = pages; return (1); @@ -416,26 +393,52 @@ vm_thread_new(struct thread *td, int pages) void vm_thread_dispose(struct thread *td) { - vm_object_t ksobj; vm_offset_t ks; int pages; pages = td->td_kstack_pages; - ksobj = td->td_kstack_obj; ks = td->td_kstack; td->td_kstack = 0; td->td_kstack_pages = 0; if (pages == kstack_pages) uma_zfree(kstack_cache, (void *)ks); else - vm_thread_stack_dispose(ksobj, ks, pages); + vm_thread_stack_dispose(ks, pages); } +/* + * Allocate physical pages, following the specified NUMA policy, to back a + * kernel stack. + */ +void +vm_thread_stack_back(struct domainset *ds, vm_offset_t ks, vm_page_t ma[], + int npages, int req_class) +{ + vm_pindex_t pindex; + int n; + + pindex = atop(ks - VM_MIN_KERNEL_ADDRESS); + + VM_OBJECT_WLOCK(kstack_object); + for (n = 0; n < npages;) { + if (vm_ndomains > 1) + kstack_object->domain.dr_policy = ds; + + /* + * Use WAITFAIL to force a reset of the domain selection policy + * if we had to sleep for pages. + */ + n += vm_page_grab_pages(kstack_object, pindex + n, + req_class | VM_ALLOC_WIRED | VM_ALLOC_WAITFAIL, + &ma[n], npages - n); + } + VM_OBJECT_WUNLOCK(kstack_object); +} + static int kstack_import(void *arg, void **store, int cnt, int domain, int flags) { struct domainset *ds; - vm_object_t ksobj; int i; if (domain == UMA_ANYDOMAIN) @@ -444,8 +447,7 @@ kstack_import(void *arg, void **store, int cnt, int do ds = DOMAINSET_PREF(domain); for (i = 0; i < cnt; i++) { - store[i] = (void *)vm_thread_stack_create(ds, &ksobj, - kstack_pages); + store[i] = (void *)vm_thread_stack_create(ds, kstack_pages); if (store[i] == NULL) break; } @@ -460,15 +462,15 @@ kstack_release(void *arg, void **store, int cnt) for (i = 0; i < cnt; i++) { ks = (vm_offset_t)store[i]; - vm_thread_stack_dispose( - PHYS_TO_VM_PAGE(pmap_kextract(ks))->object, - ks, kstack_pages); + vm_thread_stack_dispose(ks, kstack_pages); } } static void kstack_cache_init(void *null) { + kstack_object = vm_object_allocate(OBJT_SWAP, + atop(VM_MAX_KERNEL_ADDRESS - VM_MIN_KERNEL_ADDRESS)); kstack_cache = uma_zcache_create("kstack_cache", kstack_pages * PAGE_SIZE, NULL, NULL, NULL, NULL, kstack_import, kstack_release, NULL, @@ -476,8 +478,7 @@ kstack_cache_init(void *null) kstack_cache_size = imax(128, mp_ncpus * 4); uma_zone_set_maxcache(kstack_cache, kstack_cache_size); } - -SYSINIT(vm_kstacks, SI_SUB_KTHREAD_INIT, SI_ORDER_ANY, kstack_cache_init, NULL); +SYSINIT(vm_kstacks, SI_SUB_KMEM, SI_ORDER_ANY, kstack_cache_init, NULL); #ifdef KSTACK_USAGE_PROF /* Modified: head/sys/vm/vm_kern.h ============================================================================== --- head/sys/vm/vm_kern.h Sun Apr 26 20:06:08 2020 (r360353) +++ head/sys/vm/vm_kern.h Sun Apr 26 20:08:57 2020 (r360354) @@ -77,5 +77,6 @@ extern struct vmem *memguard_arena; extern u_long vm_kmem_size; extern u_int exec_map_entries; extern u_int exec_map_entry_size; +extern vm_object_t kstack_object; #endif /* _VM_VM_KERN_H_ */ Modified: head/sys/vm/vm_swapout.c ============================================================================== --- head/sys/vm/vm_swapout.c Sun Apr 26 20:06:08 2020 (r360353) +++ head/sys/vm/vm_swapout.c Sun Apr 26 20:08:57 2020 (r360354) @@ -104,6 +104,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -526,24 +527,26 @@ again: static void vm_thread_swapout(struct thread *td) { - vm_object_t ksobj; vm_page_t m; + vm_offset_t kaddr; + vm_pindex_t pindex; int i, pages; cpu_thread_swapout(td); + kaddr = td->td_kstack; pages = td->td_kstack_pages; - ksobj = td->td_kstack_obj; - pmap_qremove(td->td_kstack, pages); - VM_OBJECT_WLOCK(ksobj); + pindex = atop(kaddr - VM_MIN_KERNEL_ADDRESS); + pmap_qremove(kaddr, pages); + VM_OBJECT_WLOCK(kstack_object); for (i = 0; i < pages; i++) { - m = vm_page_lookup(ksobj, i); + m = vm_page_lookup(kstack_object, pindex + i); if (m == NULL) panic("vm_thread_swapout: kstack already missing?"); vm_page_dirty(m); vm_page_xunbusy_unchecked(m); vm_page_unwire(m, PQ_LAUNDRY); } - VM_OBJECT_WUNLOCK(ksobj); + VM_OBJECT_WUNLOCK(kstack_object); } /* @@ -552,38 +555,36 @@ vm_thread_swapout(struct thread *td) static void vm_thread_swapin(struct thread *td, int oom_alloc) { - vm_object_t ksobj; vm_page_t ma[KSTACK_MAX_PAGES]; + vm_offset_t kaddr; int a, count, i, j, pages, rv; + kaddr = td->td_kstack; pages = td->td_kstack_pages; - ksobj = td->td_kstack_obj; - VM_OBJECT_WLOCK(ksobj); - (void)vm_page_grab_pages(ksobj, 0, oom_alloc | VM_ALLOC_WIRED, ma, - pages); - VM_OBJECT_WUNLOCK(ksobj); + vm_thread_stack_back(td->td_domain.dr_policy, kaddr, ma, pages, + oom_alloc); for (i = 0; i < pages;) { vm_page_assert_xbusied(ma[i]); if (vm_page_all_valid(ma[i])) { i++; continue; } - vm_object_pip_add(ksobj, 1); + vm_object_pip_add(kstack_object, 1); for (j = i + 1; j < pages; j++) if (vm_page_all_valid(ma[j])) break; - VM_OBJECT_WLOCK(ksobj); - rv = vm_pager_has_page(ksobj, ma[i]->pindex, NULL, &a); - VM_OBJECT_WUNLOCK(ksobj); + VM_OBJECT_WLOCK(kstack_object); + rv = vm_pager_has_page(kstack_object, ma[i]->pindex, NULL, &a); + VM_OBJECT_WUNLOCK(kstack_object); KASSERT(rv == 1, ("%s: missing page %p", __func__, ma[i])); count = min(a + 1, j - i); - rv = vm_pager_get_pages(ksobj, ma + i, count, NULL, NULL); + rv = vm_pager_get_pages(kstack_object, ma + i, count, NULL, NULL); KASSERT(rv == VM_PAGER_OK, ("%s: cannot get kstack for proc %d", __func__, td->td_proc->p_pid)); - vm_object_pip_wakeup(ksobj); + vm_object_pip_wakeup(kstack_object); i += count; } - pmap_qenter(td->td_kstack, ma, pages); + pmap_qenter(kaddr, ma, pages); cpu_thread_swapin(td); } From owner-svn-src-all@freebsd.org Sun Apr 26 20:16: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 383282BBE5F; Sun, 26 Apr 2020 20:16:19 +0000 (UTC) (envelope-from wulf@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 499K1H0mJ9z3xCc; Sun, 26 Apr 2020 20:16:19 +0000 (UTC) (envelope-from wulf@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 155F7268A9; Sun, 26 Apr 2020 20:16:19 +0000 (UTC) (envelope-from wulf@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03QKGI4S044584; Sun, 26 Apr 2020 20:16:18 GMT (envelope-from wulf@FreeBSD.org) Received: (from wulf@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03QKGI0i044583; Sun, 26 Apr 2020 20:16:18 GMT (envelope-from wulf@FreeBSD.org) Message-Id: <202004262016.03QKGI0i044583@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: wulf set sender to wulf@FreeBSD.org using -f From: Vladimir Kondratyev Date: Sun, 26 Apr 2020 20:16:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360355 - head/sys/dev/ichiic X-SVN-Group: head X-SVN-Commit-Author: wulf X-SVN-Commit-Paths: head/sys/dev/ichiic X-SVN-Commit-Revision: 360355 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, 26 Apr 2020 20:16:19 -0000 Author: wulf Date: Sun Apr 26 20:16:18 2020 New Revision: 360355 URL: https://svnweb.freebsd.org/changeset/base/360355 Log: ig4(4): Add PCI IDs for Intel Bay Trail I2C controllers. PR: 245654 Reported by: MFC after: 1 week Modified: head/sys/dev/ichiic/ig4_pci.c Modified: head/sys/dev/ichiic/ig4_pci.c ============================================================================== --- head/sys/dev/ichiic/ig4_pci.c Sun Apr 26 20:08:57 2020 (r360354) +++ head/sys/dev/ichiic/ig4_pci.c Sun Apr 26 20:16:18 2020 (r360355) @@ -66,6 +66,13 @@ __FBSDID("$FreeBSD$"); static int ig4iic_pci_detach(device_t dev); +#define PCI_CHIP_BAYTRAIL_I2C_1 0x0f418086 +#define PCI_CHIP_BAYTRAIL_I2C_2 0x0f428086 +#define PCI_CHIP_BAYTRAIL_I2C_3 0x0f438086 +#define PCI_CHIP_BAYTRAIL_I2C_4 0x0f448086 +#define PCI_CHIP_BAYTRAIL_I2C_5 0x0f458086 +#define PCI_CHIP_BAYTRAIL_I2C_6 0x0f468086 +#define PCI_CHIP_BAYTRAIL_I2C_7 0x0f478086 #define PCI_CHIP_LYNXPT_LP_I2C_1 0x9c618086 #define PCI_CHIP_LYNXPT_LP_I2C_2 0x9c628086 #define PCI_CHIP_BRASWELL_I2C_1 0x22c18086 @@ -108,6 +115,13 @@ struct ig4iic_pci_device { }; static struct ig4iic_pci_device ig4iic_pci_devices[] = { + { PCI_CHIP_BAYTRAIL_I2C_1, "Intel BayTrail Serial I/O I2C Port 1", IG4_ATOM}, + { PCI_CHIP_BAYTRAIL_I2C_2, "Intel BayTrail Serial I/O I2C Port 2", IG4_ATOM}, + { PCI_CHIP_BAYTRAIL_I2C_3, "Intel BayTrail Serial I/O I2C Port 3", IG4_ATOM}, + { PCI_CHIP_BAYTRAIL_I2C_4, "Intel BayTrail Serial I/O I2C Port 4", IG4_ATOM}, + { PCI_CHIP_BAYTRAIL_I2C_5, "Intel BayTrail Serial I/O I2C Port 5", IG4_ATOM}, + { PCI_CHIP_BAYTRAIL_I2C_6, "Intel BayTrail Serial I/O I2C Port 6", IG4_ATOM}, + { PCI_CHIP_BAYTRAIL_I2C_7, "Intel BayTrail Serial I/O I2C Port 7", IG4_ATOM}, { PCI_CHIP_LYNXPT_LP_I2C_1, "Intel Lynx Point-LP I2C Controller-1", IG4_HASWELL}, { PCI_CHIP_LYNXPT_LP_I2C_2, "Intel Lynx Point-LP I2C Controller-2", IG4_HASWELL}, { PCI_CHIP_BRASWELL_I2C_1, "Intel Braswell Serial I/O I2C Port 1", IG4_ATOM}, From owner-svn-src-all@freebsd.org Sun Apr 26 20:55: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 830512BC701; Sun, 26 Apr 2020 20:55:12 +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 499Kt82t9tz3yY7; Sun, 26 Apr 2020 20:55:12 +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 5DD5B27034; Sun, 26 Apr 2020 20:55:12 +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 03QKtC7K068993; Sun, 26 Apr 2020 20:55:12 GMT (envelope-from freqlabs@FreeBSD.org) Received: (from freqlabs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03QKtC0i068992; Sun, 26 Apr 2020 20:55:12 GMT (envelope-from freqlabs@FreeBSD.org) Message-Id: <202004262055.03QKtC0i068992@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: freqlabs set sender to freqlabs@FreeBSD.org using -f From: Ryan Moeller Date: Sun, 26 Apr 2020 20:55:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360356 - head/usr.bin/sockstat X-SVN-Group: head X-SVN-Commit-Author: freqlabs X-SVN-Commit-Paths: head/usr.bin/sockstat X-SVN-Commit-Revision: 360356 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, 26 Apr 2020 20:55:12 -0000 Author: freqlabs Date: Sun Apr 26 20:55:11 2020 New Revision: 360356 URL: https://svnweb.freebsd.org/changeset/base/360356 Log: sockstat: Attach to jail if in new vnet Attach sockstat -j to the specified jail if the jail is in a new vnet. Otherwise we do not see all sockets belonging to the jail. Reviewed by: jamie Approved by: mmacy (mentor) MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D24413 Modified: head/usr.bin/sockstat/sockstat.c Modified: head/usr.bin/sockstat/sockstat.c ============================================================================== --- head/usr.bin/sockstat/sockstat.c Sun Apr 26 20:16:18 2020 (r360355) +++ head/usr.bin/sockstat/sockstat.c Sun Apr 26 20:55:11 2020 (r360356) @@ -32,10 +32,11 @@ __FBSDID("$FreeBSD$"); #include +#include #include #include #include -#include +#include #include #include @@ -1218,7 +1219,8 @@ display(void) } } -static int set_default_protos(void) +static int +set_default_protos(void) { struct protoent *prot; const char *pname; @@ -1237,6 +1239,38 @@ static int set_default_protos(void) return (pindex); } +/* + * Return the vnet property of the jail, or -1 on error. + */ +static int +jail_getvnet(int jid) +{ + struct iovec jiov[6]; + int vnet; + + vnet = -1; + jiov[0].iov_base = __DECONST(char *, "jid"); + jiov[0].iov_len = sizeof("jid"); + jiov[1].iov_base = &jid; + jiov[1].iov_len = sizeof(jid); + jiov[2].iov_base = __DECONST(char *, "vnet"); + jiov[2].iov_len = sizeof("vnet"); + jiov[3].iov_base = &vnet; + jiov[3].iov_len = sizeof(vnet); + jiov[4].iov_base = __DECONST(char *, "errmsg"); + jiov[4].iov_len = sizeof("errmsg"); + jiov[5].iov_base = jail_errmsg; + jiov[5].iov_len = JAIL_ERRMSGLEN; + jail_errmsg[0] = '\0'; + if (jail_get(jiov, nitems(jiov), 0) < 0) { + if (!jail_errmsg[0]) + snprintf(jail_errmsg, JAIL_ERRMSGLEN, + "jail_get: %s", strerror(errno)); + return (-1); + } + return (vnet); +} + static void usage(void) { @@ -1310,6 +1344,21 @@ main(int argc, char *argv[]) if (argc > 0) usage(); + + if (opt_j > 0) { + switch (jail_getvnet(opt_j)) { + case -1: + errx(2, "%s", jail_errmsg); + case JAIL_SYS_NEW: + if (jail_attach(opt_j) < 0) + errx(3, "%s", jail_errmsg); + /* Set back to -1 for normal output in vnet jail. */ + opt_j = -1; + break; + default: + break; + } + } if ((!opt_4 && !opt_6) && protos_defined != -1) opt_4 = opt_6 = 1; From owner-svn-src-all@freebsd.org Sun Apr 26 22:04: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 7AC4C2BEB79; Sun, 26 Apr 2020 22:04:44 +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 499MQN2kVNz43JY; Sun, 26 Apr 2020 22:04:44 +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 58CEB27EC0; Sun, 26 Apr 2020 22:04:44 +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 03QM4i1p012514; Sun, 26 Apr 2020 22:04:44 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03QM4iO9012513; Sun, 26 Apr 2020 22:04:44 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202004262204.03QM4iO9012513@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Sun, 26 Apr 2020 22:04:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360357 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 360357 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, 26 Apr 2020 22:04:44 -0000 Author: markj Date: Sun Apr 26 22:04:43 2020 New Revision: 360357 URL: https://svnweb.freebsd.org/changeset/base/360357 Log: Fix up i386 thread structure layout assertions after r360354. Reported by: Jenkins Modified: head/sys/kern/kern_thread.c Modified: head/sys/kern/kern_thread.c ============================================================================== --- head/sys/kern/kern_thread.c Sun Apr 26 20:55:11 2020 (r360356) +++ head/sys/kern/kern_thread.c Sun Apr 26 22:04:43 2020 (r360357) @@ -104,7 +104,7 @@ _Static_assert(offsetof(struct thread, td_pflags) == 0 "struct thread KBI td_pflags"); _Static_assert(offsetof(struct thread, td_frame) == 0x2fc, "struct thread KBI td_frame"); -_Static_assert(offsetof(struct thread, td_emuldata) == 0x344, +_Static_assert(offsetof(struct thread, td_emuldata) == 0x340, "struct thread KBI td_emuldata"); _Static_assert(offsetof(struct proc, p_flag) == 0x68, "struct proc KBI p_flag"); From owner-svn-src-all@freebsd.org Sun Apr 26 22:08: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 8A74B2BECF8; Sun, 26 Apr 2020 22:08:48 +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 499MW435rkz43Wr; Sun, 26 Apr 2020 22:08:48 +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 60F6827ED2; Sun, 26 Apr 2020 22:08:48 +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 03QM8mQh012798; Sun, 26 Apr 2020 22:08:48 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03QM8mtY012797; Sun, 26 Apr 2020 22:08:48 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202004262208.03QM8mtY012797@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Sun, 26 Apr 2020 22:08:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360358 - 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: 360358 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, 26 Apr 2020 22:08:48 -0000 Author: emaste Date: Sun Apr 26 22:08:47 2020 New Revision: 360358 URL: https://svnweb.freebsd.org/changeset/base/360358 Log: snd_hda: use bool for hdac_reset's boolean wakeup param 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 Sun Apr 26 22:04:43 2020 (r360357) +++ head/sys/dev/sound/pci/hda/hdac.c Sun Apr 26 22:08:47 2020 (r360358) @@ -204,7 +204,7 @@ static const struct { * Function prototypes ****************************************************************************/ static void hdac_intr_handler(void *); -static int hdac_reset(struct hdac_softc *, int); +static int hdac_reset(struct hdac_softc *, bool); static int hdac_get_capabilities(struct hdac_softc *); static void hdac_dma_cb(void *, bus_dma_segment_t *, int, int); static int hdac_dma_alloc(struct hdac_softc *, @@ -364,12 +364,12 @@ hdac_poll_callback(void *arg) } /**************************************************************************** - * int hdac_reset(hdac_softc *, int) + * int hdac_reset(hdac_softc *, bool) * * Reset the hdac to a quiescent and known state. ****************************************************************************/ static int -hdac_reset(struct hdac_softc *sc, int wakeup) +hdac_reset(struct hdac_softc *sc, bool wakeup) { uint32_t gctl; int count, i; @@ -1286,7 +1286,7 @@ hdac_attach(device_t dev) HDA_BOOTHVERBOSE( device_printf(dev, "Reset controller...\n"); ); - hdac_reset(sc, 1); + hdac_reset(sc, true); /* Initialize the CORB and RIRB */ hdac_corb_init(sc); @@ -1573,7 +1573,7 @@ hdac_suspend(device_t dev) device_printf(dev, "Reset controller...\n"); ); callout_stop(&sc->poll_callout); - hdac_reset(sc, 0); + hdac_reset(sc, false); hdac_unlock(sc); callout_drain(&sc->poll_callout); taskqueue_drain(taskqueue_thread, &sc->unsolq_task); @@ -1603,7 +1603,7 @@ hdac_resume(device_t dev) HDA_BOOTHVERBOSE( device_printf(dev, "Reset controller...\n"); ); - hdac_reset(sc, 1); + hdac_reset(sc, true); /* Initialize the CORB and RIRB */ hdac_corb_init(sc); @@ -1659,7 +1659,7 @@ hdac_detach(device_t dev) free(devlist, M_TEMP); hdac_lock(sc); - hdac_reset(sc, 0); + hdac_reset(sc, false); hdac_unlock(sc); taskqueue_drain(taskqueue_thread, &sc->unsolq_task); hdac_irq_free(sc); From owner-svn-src-all@freebsd.org Mon Apr 27 02:01: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 870262C429B; Mon, 27 Apr 2020 02:01:49 +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 499Sgx34zKz4FVd; Mon, 27 Apr 2020 02:01:49 +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 651FD2B8B; Mon, 27 Apr 2020 02:01:49 +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 03R21nss058860; Mon, 27 Apr 2020 02:01:49 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03R21mdA058857; Mon, 27 Apr 2020 02:01:48 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <202004270201.03R21mdA058857@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Mon, 27 Apr 2020 02:01:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360359 - head/sbin/fsck_msdosfs X-SVN-Group: head X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: head/sbin/fsck_msdosfs X-SVN-Commit-Revision: 360359 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, 27 Apr 2020 02:01:49 -0000 Author: delphij Date: Mon Apr 27 02:01:48 2020 New Revision: 360359 URL: https://svnweb.freebsd.org/changeset/base/360359 Log: Fix a bug with dirty file system handling. r356313 broke handling of dirty file system because we have restricted the correction of "odd" byte sequences to checkfat(), and as a result the dirty bit is never cleared. The old fsck_msdosfs code would write FAT twice to fix the dirty bit, which is also not ideal. Fix this by introducing a new rountine, cleardirty() which will perform the set of clean bit only, and use it in checkfilesys() if we thought the file system was dirty. Reviewed by: cem, emaste MFC after: 3 day Differential Revision: https://reviews.freebsd.org/D24581 Modified: head/sbin/fsck_msdosfs/check.c head/sbin/fsck_msdosfs/ext.h head/sbin/fsck_msdosfs/fat.c Modified: head/sbin/fsck_msdosfs/check.c ============================================================================== --- head/sbin/fsck_msdosfs/check.c Sun Apr 26 22:08:47 2020 (r360358) +++ head/sbin/fsck_msdosfs/check.c Mon Apr 27 02:01:48 2020 (r360359) @@ -169,7 +169,7 @@ checkfilesys(const char *fname) if (mod & FSDIRTY) { pwarn("MARKING FILE SYSTEM CLEAN\n"); - mod |= writefat(fat); + mod |= cleardirty(fat); } else { pwarn("\n***** FILE SYSTEM IS LEFT MARKED AS DIRTY *****\n"); mod |= FSERROR; /* file system not clean */ Modified: head/sbin/fsck_msdosfs/ext.h ============================================================================== --- head/sbin/fsck_msdosfs/ext.h Sun Apr 26 22:08:47 2020 (r360358) +++ head/sbin/fsck_msdosfs/ext.h Mon Apr 27 02:01:48 2020 (r360359) @@ -90,6 +90,8 @@ int writefsinfo(int, struct bootblock *); /* Opaque type */ struct fat_descriptor; +int cleardirty(struct fat_descriptor *); + void fat_clear_cl_head(struct fat_descriptor *, cl_t); bool fat_is_cl_head(struct fat_descriptor *, cl_t); Modified: head/sbin/fsck_msdosfs/fat.c ============================================================================== --- head/sbin/fsck_msdosfs/fat.c Sun Apr 26 22:08:47 2020 (r360358) +++ head/sbin/fsck_msdosfs/fat.c Mon Apr 27 02:01:48 2020 (r360359) @@ -578,7 +578,6 @@ valid_cl(struct fat_descriptor *fat, cl_t cl) * h = hard error flag (1 = ok; 0 = I/O error) * x = any value ok */ - int checkdirty(int fs, struct bootblock *boot) { @@ -636,6 +635,53 @@ checkdirty(int fs, struct bootblock *boot) if ((buffer[7] & 0x0c) == 0x0c) ret = 1; } + +err: + free(buffer); + return ret; +} + +int +cleardirty(struct fat_descriptor *fat) +{ + int fd, ret = FSERROR; + struct bootblock *boot; + u_char *buffer; + size_t len; + off_t off; + + boot = boot_of_(fat); + fd = fd_of_(fat); + + if (boot->ClustMask != CLUST16_MASK && boot->ClustMask != CLUST32_MASK) + return 0; + + off = boot->bpbResSectors; + off *= boot->bpbBytesPerSec; + + buffer = malloc(len = boot->bpbBytesPerSec); + if (buffer == NULL) { + perr("No memory for FAT sectors (%zu)", len); + return 1; + } + + if ((size_t)pread(fd, buffer, len, off) != len) { + perr("Unable to read FAT"); + goto err; + } + + if (boot->ClustMask == CLUST16_MASK) { + buffer[3] |= 0x80; + } else { + buffer[7] |= 0x08; + } + + if ((size_t)pwrite(fd, buffer, len, off) != len) { + perr("Unable to write FAT"); + goto err; + } + + ret = FSOK; err: free(buffer); From owner-svn-src-all@freebsd.org Mon Apr 27 02:48: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 98A7F2C5365; Mon, 27 Apr 2020 02:48:50 +0000 (UTC) (envelope-from takawata@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 499TkB3DClz4HP9; Mon, 27 Apr 2020 02:48:50 +0000 (UTC) (envelope-from takawata@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 657273461; Mon, 27 Apr 2020 02:48:50 +0000 (UTC) (envelope-from takawata@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03R2moBg085097; Mon, 27 Apr 2020 02:48:50 GMT (envelope-from takawata@FreeBSD.org) Received: (from takawata@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03R2mo4S085096; Mon, 27 Apr 2020 02:48:50 GMT (envelope-from takawata@FreeBSD.org) Message-Id: <202004270248.03R2mo4S085096@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: takawata set sender to takawata@FreeBSD.org using -f From: Takanori Watanabe Date: Mon, 27 Apr 2020 02:48:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360360 - head/usr.sbin/bluetooth/hccontrol X-SVN-Group: head X-SVN-Commit-Author: takawata X-SVN-Commit-Paths: head/usr.sbin/bluetooth/hccontrol X-SVN-Commit-Revision: 360360 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, 27 Apr 2020 02:48:50 -0000 Author: takawata Date: Mon Apr 27 02:48:49 2020 New Revision: 360360 URL: https://svnweb.freebsd.org/changeset/base/360360 Log: Fix advertise packet parsing. Differential Revision: https://reviews.freebsd.org/D21779 Modified: head/usr.sbin/bluetooth/hccontrol/node.c Modified: head/usr.sbin/bluetooth/hccontrol/node.c ============================================================================== --- head/usr.sbin/bluetooth/hccontrol/node.c Mon Apr 27 02:01:48 2020 (r360359) +++ head/usr.sbin/bluetooth/hccontrol/node.c Mon Apr 27 02:48:49 2020 (r360360) @@ -40,6 +40,7 @@ #include #include #include +#include #include "hccontrol.h" /* Send Read_Node_State command to the node */ @@ -222,23 +223,53 @@ static int hci_dump_adv(uint8_t *data, int length) elemlen = *data; data++; length --; - elemlen--; if(length<=0) break; type = *data; data++; length --; elemlen--; - if(length<=0) + if(length <= 0) break; switch(type){ case 0x1: printf("NDflag:%x\n", *data); break; + case 0x8: case 0x9: printf("LocalName:"); for(i = 0; i < MIN(length,elemlen); i++){ putchar(data[i]); + } + printf("\n"); + break; + case 0x6: + case 0x7: + { + uuid_t uuid; + char *uuidstr; + uint32_t ustatus; + if (elemlen < 16) + break; + uuid.time_low = le32dec(data+12); + uuid.time_mid = le16dec(data+10); + uuid.time_hi_and_version = le16dec(data+8); + uuid.clock_seq_hi_and_reserved = data[7]; + uuid.clock_seq_low = data[6]; + for(i = 0; i < _UUID_NODE_LEN; i++){ + uuid.node[i] = data[5 - i]; + } + uuid_to_string(&uuid, &uuidstr, &ustatus); + + printf("ServiceUUID: %s\n", uuidstr); + break; + } + case 0xff: + if (elemlen < 2) + break; + printf("Vendor:%04x:", data[0]|data[1]<<8); + for (i = 2; i < MIN(length,elemlen); i++) { + printf("%02x ",data[i]); } printf("\n"); break; From owner-svn-src-all@freebsd.org Mon Apr 27 03:56: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 085132C65BA; Mon, 27 Apr 2020 03:56:51 +0000 (UTC) (envelope-from philip@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 499WDf6dClz4LBT; Mon, 27 Apr 2020 03:56:50 +0000 (UTC) (envelope-from philip@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 DDE5044B8; Mon, 27 Apr 2020 03:56:50 +0000 (UTC) (envelope-from philip@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03R3uoBu029191; Mon, 27 Apr 2020 03:56:50 GMT (envelope-from philip@FreeBSD.org) Received: (from philip@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03R3uls1029176; Mon, 27 Apr 2020 03:56:48 GMT (envelope-from philip@FreeBSD.org) Message-Id: <202004270356.03R3uls1029176@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: philip set sender to philip@FreeBSD.org using -f From: Philip Paeps Date: Mon, 27 Apr 2020 03:56:47 +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: r360361 - stable/12/contrib/tzdata X-SVN-Group: stable-12 X-SVN-Commit-Author: philip X-SVN-Commit-Paths: stable/12/contrib/tzdata X-SVN-Commit-Revision: 360361 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, 27 Apr 2020 03:56:51 -0000 Author: philip Date: Mon Apr 27 03:56:47 2020 New Revision: 360361 URL: https://svnweb.freebsd.org/changeset/base/360361 Log: MFC r360240: Import tzdata 2020a Modified: stable/12/contrib/tzdata/Makefile stable/12/contrib/tzdata/NEWS stable/12/contrib/tzdata/africa stable/12/contrib/tzdata/asia stable/12/contrib/tzdata/backward stable/12/contrib/tzdata/backzone stable/12/contrib/tzdata/europe stable/12/contrib/tzdata/leap-seconds.list stable/12/contrib/tzdata/leapseconds stable/12/contrib/tzdata/leapseconds.awk stable/12/contrib/tzdata/northamerica stable/12/contrib/tzdata/theory.html stable/12/contrib/tzdata/version stable/12/contrib/tzdata/zone.tab stable/12/contrib/tzdata/zone1970.tab Directory Properties: stable/12/ (props changed) Modified: stable/12/contrib/tzdata/Makefile ============================================================================== --- stable/12/contrib/tzdata/Makefile Mon Apr 27 02:48:49 2020 (r360360) +++ stable/12/contrib/tzdata/Makefile Mon Apr 27 03:56:47 2020 (r360361) @@ -150,6 +150,15 @@ TIME_T_ALTERNATIVES_TAIL = int32_t uint32_t uint64_t REDO= posix_right +# Whether to put an "Expires" line in the leapseconds file. +# Use EXPIRES_LINE=1 to put the line in, 0 to omit it. +# The EXPIRES_LINE value matters only if REDO's value contains "right". +# If you change EXPIRES_LINE, remove the leapseconds file before running "make". +# zic's support for the Expires line was introduced in tzdb 2020a, +# and EXPIRES_LINE defaults to 0 for now so that the leapseconds file +# can be given to older zic implementations. +EXPIRES_LINE= 0 + # To install data in text form that has all the information of the TZif data, # (optionally incorporating leap second information), use # TZDATA_TEXT= tzdata.zi leapseconds @@ -295,8 +304,9 @@ GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fno-common \ # than TM_GMTOFF and TM_ZONE. However, most of them are standardized. # # # # To omit or support the external variable "tzname", add one of: -# # -DHAVE_TZNAME=0 -# # -DHAVE_TZNAME=1 +# # -DHAVE_TZNAME=0 # do not support "tzname" +# # -DHAVE_TZNAME=1 # support "tzname", which is defined by system library +# # -DHAVE_TZNAME=2 # support and define "tzname" # # to the "CFLAGS=" line. "tzname" is required by POSIX 1988 and later. # # If not defined, the code attempts to guess HAVE_TZNAME from other macros. # # Warning: unless time_tz is also defined, HAVE_TZNAME=1 can cause @@ -304,16 +314,20 @@ GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fno-common \ # # presumably due to memory allocation issues. # # # # To omit or support the external variables "timezone" and "daylight", add -# # -DUSG_COMPAT=0 -# # -DUSG_COMPAT=1 +# # -DUSG_COMPAT=0 # do not support +# # -DUSG_COMPAT=1 # support, and variables are defined by system library +# # -DUSG_COMPAT=2 # support and define variables # # to the "CFLAGS=" line; "timezone" and "daylight" are inspired by # # Unix Systems Group code and are required by POSIX 2008 (with XSI) and later. # # If not defined, the code attempts to guess USG_COMPAT from other macros. # # # # To support the external variable "altzone", add -# # -DALTZONE +# # -DALTZONE=0 # do not support +# # -DALTZONE=1 # support "altzone", which is defined by system library +# # -DALTZONE=2 # support and define "altzone" # # to the end of the "CFLAGS=" line; although "altzone" appeared in # # System V Release 3.1 it has not been standardized. +# # If not defined, the code attempts to guess ALTZONE from other macros. # # If you want functions that were inspired by early versions of X3J11's work, # add @@ -321,9 +335,7 @@ GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fno-common \ # to the end of the "CFLAGS=" line. This arranges for the functions # "tzsetwall", "offtime", "timelocal", "timegm", "timeoff", # "posix2time", and "time2posix" to be added to the time conversion library. -# "tzsetwall" is like "tzset" except that it arranges for local wall clock -# time (rather than the timezone specified in the TZ environment variable) -# to be used. +# "tzsetwall" is deprecated and is intended to be removed soon; see NEWS. # "offtime" is like "gmtime" except that it accepts a second (long) argument # that gives an offset to add to the time_t when converting it. # "timelocal" is equivalent to "mktime". @@ -333,7 +345,6 @@ GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fno-common \ # that gives an offset to use when converting to a time_t. # "posix2time" and "time2posix" are described in an included manual page. # X3J11's work does not describe any of these functions. -# Sun has provided "tzsetwall", "timelocal", and "timegm" in SunOS 4.0. # These functions may well disappear in future releases of the time # conversion package. # @@ -505,11 +516,11 @@ RANLIB= : TZCOBJS= zic.o TZDOBJS= zdump.o localtime.o asctime.o strftime.o DATEOBJS= date.o localtime.o strftime.o asctime.o -LIBSRCS= localtime.c asctime.c difftime.c -LIBOBJS= localtime.o asctime.o difftime.o +LIBSRCS= localtime.c asctime.c difftime.c strftime.c +LIBOBJS= localtime.o asctime.o difftime.o strftime.o HEADERS= tzfile.h private.h NONLIBSRCS= zic.c zdump.c -NEWUCBSRCS= date.c strftime.c +NEWUCBSRCS= date.c SOURCES= $(HEADERS) $(LIBSRCS) $(NONLIBSRCS) $(NEWUCBSRCS) \ tzselect.ksh workman.sh MANS= newctime.3 newstrftime.3 newtzset.3 time2posix.3 \ @@ -651,7 +662,8 @@ yearistype: yearistype.sh chmod +x yearistype leapseconds: $(LEAP_DEPS) - $(AWK) -f leapseconds.awk leap-seconds.list >$@.out + $(AWK) -v EXPIRES_LINE=$(EXPIRES_LINE) \ + -f leapseconds.awk leap-seconds.list >$@.out mv $@.out $@ # Arguments to pass to submakes of install_data. Modified: stable/12/contrib/tzdata/NEWS ============================================================================== --- stable/12/contrib/tzdata/NEWS Mon Apr 27 02:48:49 2020 (r360360) +++ stable/12/contrib/tzdata/NEWS Mon Apr 27 03:56:47 2020 (r360361) @@ -1,5 +1,87 @@ News for the tz database +Release 2020a - 2020-04-23 16:03:47 -0700 + + Briefly: + Morocco springs forward on 2020-05-31, not 2020-05-24. + Canada's Yukon advanced to -07 year-round on 2020-03-08. + America/Nuuk renamed from America/Godthab. + zic now supports expiration dates for leap second lists. + + Changes to future timestamps + + Morocco's second spring-forward transition in 2020 will be May 31, + not May 24 as predicted earlier. (Thanks to Semlali Naoufal.) + Adjust future-year predictions to use the first Sunday after the + day after Ramadan, not the first Sunday after Ramadan. + + Canada's Yukon, represented by America/Whitehorse and + America/Dawson, advanced to -07 year-round, beginning with its + spring-forward transition on 2020-03-08, and will not fall back on + 2020-11-01. Although a government press release calls this + "permanent Pacific Daylight Saving Time", we prefer MST for + consistency with nearby Dawson Creek, Creston, and Fort Nelson. + (Thanks to Tim Parenti.) + + Changes to past timestamps + + Shanghai observed DST in 1919. (Thanks to Phake Nick.) + + Changes to timezone identifiers + + To reflect current usage in English better, America/Godthab has + been renamed to America/Nuuk. A backwards-compatibility link + remains for the old name. + + Changes to code + + localtime.c no longer mishandles timestamps after the last + transition in a TZif file with leap seconds and with daylight + saving time transitions projected into the indefinite future. + For example, with TZ='America/Los_Angeles' with leap seconds, + zdump formerly reported a DST transition on 2038-03-14 + from 01:59:32.999... to 02:59:33 instead of the correct transition + from 01:59:59.999... to 03:00:00. + + zic -L now supports an Expires line in the leapseconds file, and + truncates the TZif output accordingly. This propagates leap + second expiration information into the TZif file, and avoids the + abovementioned localtime.c bug as well as similar bugs present in + many client implementations. If no Expires line is present, zic + -L instead truncates the TZif output based on the #expires comment + present in leapseconds files distributed by tzdb 2018f and later; + however, this usage is obsolescent. For now, the distributed + leapseconds file has an Expires line that is commented out, so + that the file can be fed to older versions of zic which ignore the + commented-out line. Future tzdb distributions are planned to + contain a leapseconds file with an Expires line. + + The configuration macros HAVE_TZNAME and USG_COMPAT should now be + set to 1 if the system library supports the feature, and 2 if not. + As before, these macros are nonzero if tzcode should support the + feature, zero otherwise. + + The configuration macro ALTZONE now has the same values with the + same meaning as HAVE_TZNAME and USG_COMPAT. + + The code's defense against CRLF in leap-seconds.list is now + portable to POSIX awk. (Problem reported by Deborah Goldsmith.) + + Although the undocumented tzsetwall function is not changed in + this release, it is now deprecated in preparation for removal in + future releases. Due to POSIX requirements, tzsetwall has not + worked for some time. Any code that uses it should instead use + tzalloc(NULL) or, if portability trumps thread-safety, should + unset the TZ environment variable. + + Changes to commentary + + The ÃŽles-de-la-Madeleine and the Listuguj reserve are noted as + following America/Halifax, and comments about Yukon's "south" and + "north" have been corrected to say "east" and "west". (Thanks to + Jeffery Nichols.) + + Release 2019c - 2019-09-11 08:59:48 -0700 Briefly: Modified: stable/12/contrib/tzdata/africa ============================================================================== --- stable/12/contrib/tzdata/africa Mon Apr 27 02:48:49 2020 (r360360) +++ stable/12/contrib/tzdata/africa Mon Apr 27 03:56:47 2020 (r360361) @@ -867,19 +867,25 @@ Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis # Morocco will be on GMT starting from Sunday, May 5th 2019 at 3am. # The switch to GMT+1 will occur on Sunday, June 9th 2019 at 2am.... # http://fr.le360.ma/societe/voici-la-date-du-retour-a-lheure-legale-au-maroc-188222 + +# From Semlali Naoufal (2020-04-14): +# Following the announcement by the Moroccan government, the switch to +# GMT time will take place on Sunday, April 19, 2020 from 3 a.m. and +# the return to GMT+1 time will take place on Sunday, May 31, 2020 at 2 a.m.... +# https://maroc-diplomatique.net/maroc-le-retour-a-lheure-gmt-est-prevu-dimanche-prochain/ +# http://aujourdhui.ma/actualite/gmt1-retour-a-lheure-normale-dimanche-prochain-1 # -# From Paul Eggert (2019-05-20): -# This agrees with our 2018-11-01 guess that the Moroccan government -# would continue the practice of falling back at 03:00 the last Sunday -# before Ramadan, and of springing forward at 02:00 the first Sunday after -# Ramadan, as this has been the practice since 2012. To implement this, -# transition dates for 2019 through 2087 were determined by running the -# following program under GNU Emacs 26.2. -# (let ((islamic-year 1440)) +# From Paul Eggert (2020-04-14): +# For now, guess that in the future Morocco will fall back at 03:00 +# the last Sunday before Ramadan, and spring forward at 02:00 the +# first Sunday after the day after Ramadan. To implement this, +# transition dates for 2021 through 2087 were determined by running +# the following program under GNU Emacs 26.3. +# (let ((islamic-year 1442)) # (require 'cal-islam) # (while (< islamic-year 1511) # (let ((a (calendar-islamic-to-absolute (list 9 1 islamic-year))) -# (b (calendar-islamic-to-absolute (list 10 1 islamic-year))) +# (b (1+ (calendar-islamic-to-absolute (list 10 1 islamic-year)))) # (sunday 0)) # (while (/= sunday (mod (setq a (1- a)) 7))) # (while (/= sunday (mod b 7)) @@ -939,7 +945,7 @@ Rule Morocco 2018 only - Jun 17 2:00 1:00 - Rule Morocco 2019 only - May 5 3:00 -1:00 - Rule Morocco 2019 only - Jun 9 2:00 0 - Rule Morocco 2020 only - Apr 19 3:00 -1:00 - -Rule Morocco 2020 only - May 24 2:00 0 - +Rule Morocco 2020 only - May 31 2:00 0 - Rule Morocco 2021 only - Apr 11 3:00 -1:00 - Rule Morocco 2021 only - May 16 2:00 0 - Rule Morocco 2022 only - Mar 27 3:00 -1:00 - @@ -955,7 +961,7 @@ Rule Morocco 2026 only - Mar 22 2:00 0 - Rule Morocco 2027 only - Feb 7 3:00 -1:00 - Rule Morocco 2027 only - Mar 14 2:00 0 - Rule Morocco 2028 only - Jan 23 3:00 -1:00 - -Rule Morocco 2028 only - Feb 27 2:00 0 - +Rule Morocco 2028 only - Mar 5 2:00 0 - Rule Morocco 2029 only - Jan 14 3:00 -1:00 - Rule Morocco 2029 only - Feb 18 2:00 0 - Rule Morocco 2029 only - Dec 30 3:00 -1:00 - @@ -971,7 +977,7 @@ Rule Morocco 2033 only - Dec 25 2:00 0 - Rule Morocco 2034 only - Nov 5 3:00 -1:00 - Rule Morocco 2034 only - Dec 17 2:00 0 - Rule Morocco 2035 only - Oct 28 3:00 -1:00 - -Rule Morocco 2035 only - Dec 2 2:00 0 - +Rule Morocco 2035 only - Dec 9 2:00 0 - Rule Morocco 2036 only - Oct 19 3:00 -1:00 - Rule Morocco 2036 only - Nov 23 2:00 0 - Rule Morocco 2037 only - Oct 4 3:00 -1:00 - @@ -987,7 +993,7 @@ Rule Morocco 2041 only - Sep 29 2:00 0 - Rule Morocco 2042 only - Aug 10 3:00 -1:00 - Rule Morocco 2042 only - Sep 21 2:00 0 - Rule Morocco 2043 only - Aug 2 3:00 -1:00 - -Rule Morocco 2043 only - Sep 6 2:00 0 - +Rule Morocco 2043 only - Sep 13 2:00 0 - Rule Morocco 2044 only - Jul 24 3:00 -1:00 - Rule Morocco 2044 only - Aug 28 2:00 0 - Rule Morocco 2045 only - Jul 9 3:00 -1:00 - @@ -1003,7 +1009,7 @@ Rule Morocco 2049 only - Jul 4 2:00 0 - Rule Morocco 2050 only - May 15 3:00 -1:00 - Rule Morocco 2050 only - Jun 26 2:00 0 - Rule Morocco 2051 only - May 7 3:00 -1:00 - -Rule Morocco 2051 only - Jun 11 2:00 0 - +Rule Morocco 2051 only - Jun 18 2:00 0 - Rule Morocco 2052 only - Apr 28 3:00 -1:00 - Rule Morocco 2052 only - Jun 2 2:00 0 - Rule Morocco 2053 only - Apr 13 3:00 -1:00 - @@ -1019,7 +1025,7 @@ Rule Morocco 2057 only - Apr 8 2:00 0 - Rule Morocco 2058 only - Feb 17 3:00 -1:00 - Rule Morocco 2058 only - Mar 31 2:00 0 - Rule Morocco 2059 only - Feb 9 3:00 -1:00 - -Rule Morocco 2059 only - Mar 16 2:00 0 - +Rule Morocco 2059 only - Mar 23 2:00 0 - Rule Morocco 2060 only - Feb 1 3:00 -1:00 - Rule Morocco 2060 only - Mar 7 2:00 0 - Rule Morocco 2061 only - Jan 16 3:00 -1:00 - @@ -1029,13 +1035,13 @@ Rule Morocco 2062 only - Feb 12 2:00 0 - Rule Morocco 2062 only - Dec 31 3:00 -1:00 - Rule Morocco 2063 only - Feb 4 2:00 0 - Rule Morocco 2063 only - Dec 16 3:00 -1:00 - -Rule Morocco 2064 only - Jan 20 2:00 0 - +Rule Morocco 2064 only - Jan 27 2:00 0 - Rule Morocco 2064 only - Dec 7 3:00 -1:00 - Rule Morocco 2065 only - Jan 11 2:00 0 - Rule Morocco 2065 only - Nov 22 3:00 -1:00 - Rule Morocco 2066 only - Jan 3 2:00 0 - Rule Morocco 2066 only - Nov 14 3:00 -1:00 - -Rule Morocco 2066 only - Dec 19 2:00 0 - +Rule Morocco 2066 only - Dec 26 2:00 0 - Rule Morocco 2067 only - Nov 6 3:00 -1:00 - Rule Morocco 2067 only - Dec 11 2:00 0 - Rule Morocco 2068 only - Oct 21 3:00 -1:00 - @@ -1045,13 +1051,13 @@ Rule Morocco 2069 only - Nov 17 2:00 0 - Rule Morocco 2070 only - Oct 5 3:00 -1:00 - Rule Morocco 2070 only - Nov 9 2:00 0 - Rule Morocco 2071 only - Sep 20 3:00 -1:00 - -Rule Morocco 2071 only - Oct 25 2:00 0 - +Rule Morocco 2071 only - Nov 1 2:00 0 - Rule Morocco 2072 only - Sep 11 3:00 -1:00 - Rule Morocco 2072 only - Oct 16 2:00 0 - Rule Morocco 2073 only - Aug 27 3:00 -1:00 - Rule Morocco 2073 only - Oct 8 2:00 0 - Rule Morocco 2074 only - Aug 19 3:00 -1:00 - -Rule Morocco 2074 only - Sep 23 2:00 0 - +Rule Morocco 2074 only - Sep 30 2:00 0 - Rule Morocco 2075 only - Aug 11 3:00 -1:00 - Rule Morocco 2075 only - Sep 15 2:00 0 - Rule Morocco 2076 only - Jul 26 3:00 -1:00 - @@ -1061,7 +1067,7 @@ Rule Morocco 2077 only - Aug 22 2:00 0 - Rule Morocco 2078 only - Jul 10 3:00 -1:00 - Rule Morocco 2078 only - Aug 14 2:00 0 - Rule Morocco 2079 only - Jun 25 3:00 -1:00 - -Rule Morocco 2079 only - Jul 30 2:00 0 - +Rule Morocco 2079 only - Aug 6 2:00 0 - Rule Morocco 2080 only - Jun 16 3:00 -1:00 - Rule Morocco 2080 only - Jul 21 2:00 0 - Rule Morocco 2081 only - Jun 1 3:00 -1:00 - @@ -1077,7 +1083,7 @@ Rule Morocco 2085 only - May 27 2:00 0 - Rule Morocco 2086 only - Apr 14 3:00 -1:00 - Rule Morocco 2086 only - May 19 2:00 0 - Rule Morocco 2087 only - Mar 30 3:00 -1:00 - -Rule Morocco 2087 only - May 4 2:00 0 - +Rule Morocco 2087 only - May 11 2:00 0 - # For dates after the somewhat-arbitrary cutoff of 2087, assume that # Morocco will no longer observe DST. At some point this table will # need to be extended, though quite possibly Morocco will change the @@ -1179,7 +1185,7 @@ Link Africa/Maputo Africa/Lusaka # Zambia Rule Namibia 1994 only - Mar 21 0:00 -1:00 WAT Rule Namibia 1994 2017 - Sep Sun>=1 2:00 0 CAT Rule Namibia 1995 2017 - Apr Sun>=1 2:00 -1:00 WAT -# Rearguard section, for parsers that do not support negative DST. +# Rearguard section, for parsers lacking negative DST; see ziguard.awk. #Rule Namibia 1994 only - Mar 21 0:00 0 WAT #Rule Namibia 1994 2017 - Sep Sun>=1 2:00 1:00 CAT #Rule Namibia 1995 2017 - Apr Sun>=1 2:00 0 WAT @@ -1193,7 +1199,7 @@ Zone Africa/Windhoek 1:08:24 - LMT 1892 Feb 8 2:00 - SAST 1990 Mar 21 # independence # Vanguard section, for zic and other parsers that support negative DST. 2:00 Namibia %s -# Rearguard section, for parsers that do not support negative DST. +# Rearguard section, for parsers lacking negative DST; see ziguard.awk. # 2:00 - CAT 1994 Mar 21 0:00 # From Paul Eggert (2017-04-07): # The official date of the 2017 rule change was 2017-10-24. See: Modified: stable/12/contrib/tzdata/asia ============================================================================== --- stable/12/contrib/tzdata/asia Mon Apr 27 02:48:49 2020 (r360360) +++ stable/12/contrib/tzdata/asia Mon Apr 27 03:56:47 2020 (r360361) @@ -286,6 +286,27 @@ Zone Asia/Yangon 6:24:47 - LMT 1880 # or Rangoo # China +# From Phake Nick (2020-04-15): +# According to this news report: +# http://news.sina.com.cn/c/2004-09-01/19524201403.shtml +# on April 11, 1919, newspaper in Shanghai said clocks in Shanghai will spring +# forward for an hour starting from midnight of that Saturday. The report did +# not mention what happened in Shanghai thereafter, but it mentioned that a +# similar trial in Tianjin which ended at October 1st as citizens are told to +# recede the clock on September 30 from 12:00pm to 11:00pm. The trial at +# Tianjin got terminated in 1920. +# +# From Paul Eggert (2020-04-15): +# The Returns of Trade and Trade Reports, page 711, says "Daylight saving was +# given a trial during the year, and from the 12th April to the 1st October +# the clocks were all set one hour ahead of sun time. Though the scheme was +# generally esteemed a success, it was announced early in 1920 that it would +# not be repeated." +# +# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S +Rule Shang 1919 only - Apr 12 24:00 1:00 D +Rule Shang 1919 only - Sep 30 24:00 0 S + # From Paul Eggert (2018-10-02): # The following comes from Table 1 of: # Li Yu. Research on the daylight saving movement in 1940s Shanghai. @@ -294,7 +315,90 @@ Zone Asia/Yangon 6:24:47 - LMT 1880 # or Rangoo # The table lists dates only; I am guessing 00:00 and 24:00 transition times. # Also, the table lists the planned end of DST in 1949, but the corresponding # zone line cuts this off on May 28, when the Communists took power. + +# From Phake Nick (2020-04-15): # +# For the history of time in Shanghai between 1940-1942, the situation is +# actually slightly more complex than the table [below].... At the time, +# there were three different authorities in Shanghai, including Shanghai +# International Settlement, a settlement established by western countries with +# its own westernized form of government, Shanghai French Concession, similar +# to the international settlement but is controlled by French, and then the +# rest of the city of Shanghai, which have already been controlled by Japanese +# force through a puppet local government (Wang Jingwei regime). It was +# additionally complicated by the circumstances that, according to the 1940s +# Shanghai summer time essay cited in the database, some +# departments/businesses/people in the Shanghai city itself during that time +# period, refused to change their clock and instead only changed their opening +# hours. +# +# For example, as quoted in the article, in 1940, other than the authority +# itself, power, tram, bus companies, cinema, department stores, and other +# public service organizations have all decided to follow the summer time and +# spring forward the clock. On the other hand, the custom office refused to +# spring forward the clock because of worry on mechanical wear to the physical +# clock, postal office refused to spring forward because of disruption to +# business and log-keeping, although they did changed their office hour to +# match rest of the city. So is travel agents, and also weather +# observatory. It is said both time standards had their own supporters in the +# city at the time, those who prefer new time standard would have moved their +# clock while those who prefer the old time standard would keep their clock +# unchange, and there were different clocks that use different time standard +# in the city at the time for people who use different time standard to adjust +# their clock to their preferred time. +# +# a. For the 1940 May 31 spring forward, the essay claim that it was +# coordinared between the international settlement authority and the French +# concession authority and have gathered support from Hong Kong and Xiamen, +# that it would spring forward an hour from May 31 "midnight", and the essay +# claim "Hong Kong government implemented the spring forward in the same time +# on the same date as Shanghai". +# +# b. For the 1940 fall back, it was said that they initially intended to do +# so on September 30 00:59 at night, however they postponed it to October 12 +# after discussion with relevant parties. However schools restored to the +# original schedule ten days earlier. +# +# c. For the 1941 spring forward, it is said to start from March 15 +# "following the previous year's method", and in addition to that the essay +# cited an announcement in 1941 from the Wang regime which said the Special +# City of Shanghai under Wang regime control will follow the DST rule set by +# the Settlements, irrespective of the original DST plan announced by the Wang +# regime for other area under its control(April 1 to September 30). (no idea +# to situation before that announcement) +# +# d. For the 1941 fall back, it was said that the fall back would occurs at +# the end of September (A newspaper headline cited by the essay, published on +# October 1, 1941, have the headlines which said "French Concession would +# rewind to the old clock this morning), but it ultimately didn't happen due +# to disagreement between the international settlement authority and the +# French concession authority, and the fall back ultimately occurred on +# November 1. +# +# e. In 1941 December, Japan have officially started war with the United +# States and the United Kingdom, and in Shanghai they have marched into the +# international settlement, taken over its control +# +# f. For the 1942 spring forward, the essay said that the spring forward +# started on January 31. It said this time the custom office and postal +# department will also change their clocks, unlike before. +# +# g. The essay itself didn't cover any specific changes thereafter until the +# end of the war, it quoted a November 1942 command from the government of the +# Wang regime, which claim the daylight saving time applies year round during +# the war. However, the essay ambiguously said the period is "February 1 to +# September 30", which I don't really understand what is the meaning of such +# period in the context of year round implementation here.. More researches +# might be needed to show exactly what happened during that period of time. + +# From Phake Nick (2020-04-15): +# According to a Japanese tour bus pamphlet in Nanjing area believed to be +# from around year 1941: http://www.tt-museum.jp/tairiku_0280_nan1941.html , +# the schedule listed was in the format of Japanese time. Which indicate some +# use of the Japanese time (instead of syncing by DST) might have occurred in +# the Yangtze river delta area during that period of time although the scope +# of such use will need to be investigated to determine. +# # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Shang 1940 only - Jun 1 0:00 1:00 D Rule Shang 1940 only - Oct 12 24:00 0 S @@ -572,7 +676,7 @@ Zone Asia/Urumqi 5:50:20 - LMT 1928 6:00 - +06 -# Hong Kong (Xianggang) +# Hong Kong # Milne gives 7:36:41.7; round this. @@ -582,9 +686,7 @@ Zone Asia/Urumqi 5:50:20 - LMT 1928 # it is not [an] observatory, but the official meteorological agency of HK, # and also serves as the official timing agency), there are some missing # and incorrect rules. Although the exact switch over time is missing, I -# think 3:30 is correct. The official DST record for Hong Kong can be -# obtained from -# http://www.hko.gov.hk/gts/time/Summertime.htm +# think 3:30 is correct. # From Phake Nick (2018-10-27): # According to Singaporean newspaper @@ -695,10 +797,10 @@ Zone Asia/Urumqi 5:50:20 - LMT 1928 # Resolution of the Legislative Council passed on 9 May 1979 # https://www.legco.gov.hk/yr78-79/english/lc_sitg/hansard/h790509.pdf#page=39 -# From Paul Eggert (2019-05-31): +# From Paul Eggert (2020-04-15): # Here are the dates given at -# https://www.hko.gov.hk/gts/time/Summertime.htm -# as of 2014-06-19: +# https://www.hko.gov.hk/en/gts/time/Summertime.htm +# as of 2020-02-10: # Year Period # 1941 15 Jun to 30 Sep # 1942 Whole year @@ -1828,6 +1930,47 @@ Zone Asia/Jerusalem 2:20:54 - LMT 1880 # '9:00' and 'JST' is from Guy Harris. +# From Paul Eggert (2020-01-19): +# Starting in the 7th century, Japan generally followed an ancient Chinese +# timekeeping system that divided night and day into six hours each, +# with hour length depending on season. In 1873 the government +# started requiring the use of a Western style 24-hour clock. See: +# Yulia Frumer, "Making Time: Astronomical Time Measurement in Tokugawa Japan" +# . As the tzdb code and +# data support only 24-hour clocks, its tables model timestamps before +# 1873 using Western-style local mean time. + +# From Hideyuki Suzuki (1998-11-09): +# 'Tokyo' usually stands for the former location of Tokyo Astronomical +# Observatory: 139° 44' 40.90" E (9h 18m 58.727s), 35° 39' 16.0" N. +# This data is from 'Rika Nenpyou (Chronological Scientific Tables) 1996' +# edited by National Astronomical Observatory of Japan.... +# JST (Japan Standard Time) has been used since 1888-01-01 00:00 (JST). +# The law is enacted on 1886-07-07. + +# From Hideyuki Suzuki (1998-11-16): +# The ordinance No. 51 (1886) established "standard time" in Japan, +# which stands for the time on 135° E. +# In the ordinance No. 167 (1895), "standard time" was renamed to "central +# standard time". And the same ordinance also established "western standard +# time", which stands for the time on 120° E.... But "western standard +# time" was abolished in the ordinance No. 529 (1937). In the ordinance No. +# 167, there is no mention regarding for what place western standard time is +# standard.... +# +# I wrote "ordinance" above, but I don't know how to translate. +# In Japanese it's "chokurei", which means ordinance from emperor. + +# From Yu-Cheng Chuang (2013-07-12): +# ...the Meiji Emperor announced Ordinance No. 167 of Meiji Year 28 "The clause +# about standard time" ... The adoption began from Jan 1, 1896. +# https://ja.wikisource.org/wiki/標準時ニ關スル件_(公布時) +# +# ...the Showa Emperor announced Ordinance No. 529 of Showa Year 12 ... which +# means the whole Japan territory, including later occupations, adopt Japan +# Central Time (UT+9). The adoption began on Oct 1, 1937. +# https://ja.wikisource.org/wiki/明治二å八年勅令第百六å七號標準時ニ關スル件中改正ノ件 + # From Paul Eggert (1995-03-06): # Today's _Asahi Evening News_ (page 4) reports that Japan had # daylight saving between 1948 and 1951, but "the system was discontinued @@ -1876,37 +2019,6 @@ Rule Japan 1948 1951 - Sep Sat>=8 25:00 0 S Rule Japan 1949 only - Apr Sat>=1 24:00 1:00 D Rule Japan 1950 1951 - May Sat>=1 24:00 1:00 D -# From Hideyuki Suzuki (1998-11-09): -# 'Tokyo' usually stands for the former location of Tokyo Astronomical -# Observatory: 139° 44' 40.90" E (9h 18m 58.727s), 35° 39' 16.0" N. -# This data is from 'Rika Nenpyou (Chronological Scientific Tables) 1996' -# edited by National Astronomical Observatory of Japan.... -# JST (Japan Standard Time) has been used since 1888-01-01 00:00 (JST). -# The law is enacted on 1886-07-07. - -# From Hideyuki Suzuki (1998-11-16): -# The ordinance No. 51 (1886) established "standard time" in Japan, -# which stands for the time on 135° E. -# In the ordinance No. 167 (1895), "standard time" was renamed to "central -# standard time". And the same ordinance also established "western standard -# time", which stands for the time on 120° E.... But "western standard -# time" was abolished in the ordinance No. 529 (1937). In the ordinance No. -# 167, there is no mention regarding for what place western standard time is -# standard.... -# -# I wrote "ordinance" above, but I don't know how to translate. -# In Japanese it's "chokurei", which means ordinance from emperor. - -# From Yu-Cheng Chuang (2013-07-12): -# ...the Meiji Emperor announced Ordinance No. 167 of Meiji Year 28 "The clause -# about standard time" ... The adoption began from Jan 1, 1896. -# https://ja.wikisource.org/wiki/標準時ニ關スル件_(公布時) -# -# ...the Showa Emperor announced Ordinance No. 529 of Showa Year 12 ... which -# means the whole Japan territory, including later occupations, adopt Japan -# Central Time (UT+9). The adoption began on Oct 1, 1937. -# https://ja.wikisource.org/wiki/明治二å八年勅令第百六å七號標準時ニ關スル件中改正ノ件 - # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Tokyo 9:18:59 - LMT 1887 Dec 31 15:00u 9:00 Japan J%sT @@ -3086,22 +3198,9 @@ Zone Asia/Karachi 4:28:12 - LMT 1907 # [T]he Palestinian cabinet decision (Mar 8th 2016) published on # http://www.palestinecabinet.gov.ps/WebSite/Upload/Decree/GOV_17/16032016134830.pdf # states that summer time will end on Oct 29th at 01:00. -# -# From Tim Parenti (2016-10-19): -# Predict fall transitions on October's last Saturday at 01:00 from now on. -# This is consistent with the 2016 transition as well as our spring -# predictions. -# -# From Paul Eggert (2016-10-19): -# It's also consistent with predictions in the following URLs today: -# https://www.timeanddate.com/time/change/gaza-strip/gaza -# https://www.timeanddate.com/time/change/west-bank/hebron # From Sharef Mustafa (2018-03-16): -# Palestine summer time will start on Mar 24th 2018 by advancing the -# clock by 60 minutes as per Palestinian cabinet decision published on -# the official website, though the decree did not specify the exact -# time of the time shift. +# Palestine summer time will start on Mar 24th 2018 ... # http://www.palestinecabinet.gov.ps/Website/AR/NDecrees/ViewFile.ashx?ID=e7a42ab7-ee23-435a-b9c8-a4f7e81f3817 # From Even Scharning (2019-03-23): @@ -3111,15 +3210,20 @@ Zone Asia/Karachi 4:28:12 - LMT 1907 # From Sharif Mustafa (2019-03-26): # The Palestinian cabinet announced today that the switch to DST will # be on Fri Mar 29th 2019 by advancing the clock by 60 minutes. -# The decree signing date is Mar 12th but it was not published till today. -# The decree does not specify the exact time of switch. # http://palestinecabinet.gov.ps/Website/AR/NDecrees/ViewFile.ashx?ID=e54e9ea1-50ee-4137-84df-0d6c78da259b # # From Even Scharning (2019-04-10): # Our source in Palestine said it happened Friday 29 at 00:00 local time.... + +# From Sharef Mustafa (2019-10-18): +# Palestine summer time will end on midnight Oct 26th 2019 ... +# http://www.palestinecabinet.gov.ps/website/ar/ViewDetails?ID=43948 # # From Paul Eggert (2019-04-10): # For now, guess spring-ahead transitions are March's last Friday at 00:00. +# +# From Tim Parenti (2016-10-19): +# Predict fall transitions on October's last Saturday at 01:00 from now on. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule EgyptAsia 1957 only - May 10 0:00 1:00 S Modified: stable/12/contrib/tzdata/backward ============================================================================== --- stable/12/contrib/tzdata/backward Mon Apr 27 02:48:49 2020 (r360360) +++ stable/12/contrib/tzdata/backward Mon Apr 27 03:56:47 2020 (r360361) @@ -17,6 +17,7 @@ Link America/Atikokan America/Coral_Harbour Link America/Argentina/Cordoba America/Cordoba Link America/Tijuana America/Ensenada Link America/Indiana/Indianapolis America/Fort_Wayne +Link America/Nuuk America/Godthab Link America/Indiana/Indianapolis America/Indianapolis Link America/Argentina/Jujuy America/Jujuy Link America/Indiana/Knox America/Knox_IN Modified: stable/12/contrib/tzdata/backzone ============================================================================== --- stable/12/contrib/tzdata/backzone Mon Apr 27 02:48:49 2020 (r360360) +++ stable/12/contrib/tzdata/backzone Mon Apr 27 03:56:47 2020 (r360361) @@ -33,6 +33,35 @@ # assumes rules from other files. In the tz distribution, use # 'make PACKRATDATA=backzone zones' to compile and install this file. + +# From Paul Eggert (2020-04-15): +# The following remarks should be incorporated into this table sometime. +# Patches in 'git format-patch' format would be welcome. +# +# From Phake Nick (2020-04-15): +# ... the historical timezone data for those China zones seems to be +# incorrect. The transition to GMT+8 date given there for these zones +# were 1980 which also contradict the file description that they do +# not disagree with normal zone after 1970. According to sources that +# have also been cited in the asia file, except Xinjiang and Tibet, +# they should have adopted the Beijing Time from around 1949/1950 +# depends on exactly when each of those cities were taken over by the +# communist army. And they should also follow the DST setting of +# Asia/Shanghai after that point of time. In addition, +# http://gaz.ncl.edu.tw/detail.jsp?sysid=E1091792 the document from +# Chongqing Nationalist government say in year 1945 all of China +# should adopt summer time due to the war (not sure whether it +# continued after WWII ends)(Probably only enforced in area under +# their rule at the time?) The Asia/Harbin's 1932 and 1940 entry +# should also be incorrect. As per sources recorded at +# https://wiki.suikawiki.org/n/%E6%BA%80%E5%B7%9E%E5%9B%BD%E3%81%AE%E6%A8%99%E6%BA%96%E6%99%82 +# , in 1932 Harbin should have adopted UTC+8:00 instead of data +# currently listed in the tz database according to official +# announcement from Manchuko. And they should have adopted GMT+9 in +# 1937 January 1st according to official announcement at the time +# being cited on the webpage. + + # Zones are sorted by zone name. Each zone is preceded by the # name of the country that the zone is in, along with any other # commentary and rules associated with the entry. Modified: stable/12/contrib/tzdata/europe ============================================================================== --- stable/12/contrib/tzdata/europe Mon Apr 27 02:48:49 2020 (r360360) +++ stable/12/contrib/tzdata/europe Mon Apr 27 03:56:47 2020 (r360361) @@ -549,12 +549,13 @@ Zone Europe/Dublin -0:25:00 - LMT 1880 Aug 2 0:00 1:00 IST 1947 Nov 2 2:00s 0:00 - GMT 1948 Apr 18 2:00s 0:00 GB-Eire GMT/IST 1968 Oct 27 -# The next line is for when negative SAVE values are used. +# Vanguard section, for zic and other parsers that support negative DST. 1:00 Eire IST/GMT -# These three lines are for when SAVE values are always nonnegative. +# Rearguard section, for parsers lacking negative DST; see ziguard.awk. # 1:00 - IST 1971 Oct 31 2:00u # 0:00 GB-Eire GMT/IST 1996 # 0:00 EU GMT/IST +# End of rearguard section. ############################################################################### @@ -1018,7 +1019,7 @@ Zone Europe/Prague 0:57:44 - LMT 1850 1:00 Czech CE%sT 1946 Dec 1 3:00 # Vanguard section, for zic and other parsers that support negative DST. 1:00 -1:00 GMT 1947 Feb 23 2:00 -# Rearguard section, for parsers that do not support negative DST. +# Rearguard section, for parsers lacking negative DST; see ziguard.awk. # 0:00 - GMT 1947 Feb 23 2:00 # End of rearguard section. 1:00 Czech CE%sT 1979 @@ -1175,14 +1176,17 @@ Zone America/Danmarkshavn -1:14:40 - LMT 1916 Jul 28 -3:00 - -03 1980 Apr 6 2:00 -3:00 EU -03/-02 1996 0:00 - GMT +# +# Use the old name Scoresbysund, as the current name Ittoqqortoormiit +# exceeds tzdb's 14-letter limit and has no common English abbreviation. Zone America/Scoresbysund -1:27:52 - LMT 1916 Jul 28 # Ittoqqortoormiit -2:00 - -02 1980 Apr 6 2:00 -2:00 C-Eur -02/-01 1981 Mar 29 -1:00 EU -01/+00 -Zone America/Godthab -3:26:56 - LMT 1916 Jul 28 # Nuuk +Zone America/Nuuk -3:26:56 - LMT 1916 Jul 28 # GodthÃ¥b -3:00 - -03 1980 Apr 6 2:00 -3:00 EU -03/-02 -Zone America/Thule -4:35:08 - LMT 1916 Jul 28 # Pituffik air base +Zone America/Thule -4:35:08 - LMT 1916 Jul 28 # Pituffik -4:00 Thule A%sT # Estonia @@ -1552,7 +1556,7 @@ Zone Europe/Budapest 1:16:20 - LMT 1890 Oct # # From January 1st, 1908 the whole of Iceland was standardised at 1 hour # behind GMT. Previously, local mean solar time was used in different parts -# of Iceland, the almanak had been based on Reykjavik mean solar time which +# of Iceland, the almanak had been based on Reykjavík mean solar time which # was 1 hour and 28 minutes behind GMT. # # "first day of winter" referred to [below] means the first day of the 26 weeks Modified: stable/12/contrib/tzdata/leap-seconds.list ============================================================================== --- stable/12/contrib/tzdata/leap-seconds.list Mon Apr 27 02:48:49 2020 (r360360) +++ stable/12/contrib/tzdata/leap-seconds.list Mon Apr 27 03:56:47 2020 (r360361) @@ -62,7 +62,7 @@ # Terry Quinn, "The BIPM and the Accurate Measurement # of Time," Proc. of the IEEE, Vol. 79, pp. 894-905, # July, 1991. -# reprinted in: +# reprinted in: # Christine Hackman and Donald B Sullivan (eds.) # Time and Frequency Measurement # American Association of Physics Teachers (1996) @@ -204,10 +204,10 @@ # current -- the update time stamp, the data and the name of the file # will not change. # -# Updated through IERS Bulletin C58 -# File expires on: 28 June 2020 +# Updated through IERS Bulletin C59 +# File expires on: 28 December 2020 # -#@ 3802291200 +#@ 3818102400 # 2272060800 10 # 1 Jan 1972 2287785600 11 # 1 Jul 1972 @@ -252,4 +252,4 @@ # the hash line is also ignored in the # computation. # -#h f28827d2 f263b6c3 ec0f19eb a3e0dbf0 97f3fa30 +#h a1c168ae 27c79a7d 9dddcfc3 bcfe616b 2e2c44ea Modified: stable/12/contrib/tzdata/leapseconds ============================================================================== --- stable/12/contrib/tzdata/leapseconds Mon Apr 27 02:48:49 2020 (r360360) +++ stable/12/contrib/tzdata/leapseconds Mon Apr 27 03:56:47 2020 (r360361) @@ -64,9 +64,15 @@ Leap 2012 Jun 30 23:59:60 + S Leap 2015 Jun 30 23:59:60 + S Leap 2016 Dec 31 23:59:60 + S +# UTC timestamp when this leap second list expires. +# Any additional leap seconds will come after this. +# This Expires line is commented out for now, +# so that pre-2020a zic implementations do not reject this file. +#Expires 2020 Dec 28 00:00:00 + # POSIX timestamps for the data in this file: #updated 1467936000 (2016-07-08 00:00:00 UTC) -#expires 1593302400 (2020-06-28 00:00:00 UTC) +#expires 1609113600 (2020-12-28 00:00:00 UTC) -# Updated through IERS Bulletin C58 -# File expires on: 28 June 2020 +# Updated through IERS Bulletin C59 +# File expires on: 28 December 2020 Modified: stable/12/contrib/tzdata/leapseconds.awk ============================================================================== --- stable/12/contrib/tzdata/leapseconds.awk Mon Apr 27 02:48:49 2020 (r360360) +++ stable/12/contrib/tzdata/leapseconds.awk Mon Apr 27 03:56:47 2020 (r360361) @@ -68,12 +68,12 @@ BEGIN { monthabbr[11] = "Nov" monthabbr[12] = "Dec" - # Strip trailing CR, in case the input has CRLF form a la NIST. - RS = "\r?\n" - sstamp_init() } +# In case the input has CRLF form a la NIST. +{ sub(/\r$/, "") } + /^#[ \t]*[Uu]pdated through/ || /^#[ \t]*[Ff]ile expires on/ { last_lines = last_lines $0 "\n" } @@ -100,6 +100,17 @@ BEGIN { } END { + sstamp_to_ymdhMs(expires, ss_NTP) + + print "" + print "# UTC timestamp when this leap second list expires." + print "# Any additional leap seconds will come after this." + print "# This Expires line is commented out for now," + print "# so that pre-2020a zic implementations do not reject this file." + printf "%sExpires %.4d\t%s\t%.2d\t%.2d:%.2d:%.2d\n", \ + EXPIRES_LINE ? "" : "#", \ + ss_year, monthabbr[ss_month], ss_mday, ss_hour, ss_min, ss_sec + # The difference between the NTP and POSIX epochs is 70 years # (including 17 leap days), each 24 hours of 60 minutes of 60 # seconds each. Modified: stable/12/contrib/tzdata/northamerica ============================================================================== --- stable/12/contrib/tzdata/northamerica Mon Apr 27 02:48:49 2020 (r360360) +++ stable/12/contrib/tzdata/northamerica Mon Apr 27 03:56:47 2020 (r360361) @@ -86,7 +86,7 @@ # For more about the first ten years of DST in the United States, see # Robert Garland, Ten years of daylight saving from the Pittsburgh standpoint # (Carnegie Library of Pittsburgh, 1927). -# http://www.clpgh.org/exhibit/dst.html +# https://web.archive.org/web/20160517155308/http://www.clpgh.org/exhibit/dst.html # # Shanks says that DST was called "War Time" in the US in 1918 and 1919. # However, DST was imposed by the Standard Time Act of 1918, which @@ -1470,7 +1470,8 @@ Zone America/Goose_Bay -4:01:40 - LMT 1884 # Happy Val -4:00 Canada A%sT -# west Labrador, Nova Scotia, Prince Edward I +# west Labrador, Nova Scotia, Prince Edward I, +# ÃŽles-de-la-Madeleine, Listuguj reserve # From Brian Inglis (2015-07-20): # From the historical weather station records available at: @@ -1489,6 +1490,13 @@ Zone America/Goose_Bay -4:01:40 - LMT 1884 # Happy Val # in Canada to observe DST in 1971 but not 1970; for now we'll assume # this is a typo. +# From Jeffery Nichols (2020-01-09): +# America/Halifax ... also applies to ÃŽles-de-la-Madeleine and the Listuguj +# reserve in Quebec. Officially, this came into effect on January 1, 2007 +# (Legal Time Act, CQLR c T-5.1), but the legislative debates surrounding that +# bill say that it is "accommodating the customs and practices" of those +# regions, which suggests that they have always been in-line with Halifax. + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Halifax 1916 only - Apr 1 0:00 1:00 D Rule Halifax 1916 only - Oct 1 0:00 0 S @@ -1582,19 +1590,20 @@ Zone America/Moncton -4:19:08 - LMT 1883 Dec 9 # Quebec -# From Paul Eggert (2015-03-24): +# From Paul Eggert (2020-01-10): # See America/Toronto for most of Quebec, including Montreal. +# See America/Halifax for the ÃŽles de la Madeleine and the Listuguj reserve. # # Matthews and Vincent (1998) also write that Quebec east of the -63 # meridian is supposed to observe AST, but residents as far east as # Natashquan use EST/EDT, and residents east of Natashquan use AST. # The Quebec department of justice writes in # "The situation in Minganie and Basse-Côte-Nord" -# http://www.justice.gouv.qc.ca/english/publications/generale/temps-minganie-a.htm +# https://www.justice.gouv.qc.ca/en/department/ministre/functions-and-responsabilities/legal-time-in-quebec/the-situation-in-minganie-and-basse-cote-nord/ # that the coastal strip from just east of Natashquan to Blanc-Sablon # observes Atlantic standard time all year round. -# https://www.assnat.qc.ca/Media/Process.aspx?MediaId=ANQ.Vigie.Bll.DocumentGenerique_8845en -# says this common practice was codified into law as of 2007. +# This common practice was codified into law as of 2007; see Legal Time Act, +# CQLR c T-5.1 . # For lack of better info, guess this practice began around 1970, contra to # Shanks & Pottenger who have this region observing AST/ADT. @@ -1613,6 +1622,15 @@ Zone America/Blanc-Sablon -3:48:28 - LMT 1884 # Nipigon (EST) and Rainy River (CST) are the largest that we know of. # Far west Ontario is like Winnipeg; far east Quebec is like Halifax. +# From Jeffery Nichols (2020-02-06): +# According to the [Shanks] atlas, those western Ontario zones are huge, +# covering most of Ontario northwest of Sault Ste Marie and Timmins. +# The zones seem to include towns bigger than the ones they're named after, +# like Dryden in America/Rainy_River and Wawa (and maybe Attawapiskat) in +# America/Nipigon. I assume it's too much trouble to change the name of the +# zone (like when you found out that America/Glace_Bay includes Sydney, Nova +# Scotia).... + # From Mark Brader (2003-07-26): # [According to the Toronto Star] Orillia, Ontario, adopted DST # effective Saturday, 1912-06-22, 22:00; the article mentions that @@ -2419,6 +2437,18 @@ Zone America/Creston -7:46:04 - LMT 1884 # obtained in November 2008 should be ignored... # I apologize for reporting incorrect information in 2008. +# From Tim Parenti (2020-03-05): +# The government of Yukon announced [yesterday] the cessation of seasonal time +# changes. "After clocks are pushed ahead one hour on March 8, the territory +# will remain on [UTC-07]. ... [The government] found 93 per cent of +# respondents wanted to end seasonal time changes and, of that group, 70 per +# cent wanted 'permanent Pacific Daylight Saving Time.'" +# https://www.cbc.ca/news/canada/north/yukon-end-daylight-saving-time-1.5486358 +# +# Although the government press release prefers PDT, we prefer MST for +# consistency with nearby Dawson Creek, Creston, and Fort Nelson. +# https://yukon.ca/en/news/yukon-end-seasonal-time-change + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule NT_YK 1918 only - Apr 14 2:00 1:00 D Rule NT_YK 1918 only - Oct 27 2:00 0 S @@ -2473,11 +2503,13 @@ Zone America/Inuvik 0 - -00 1953 # Inuvik founded Zone America/Whitehorse -9:00:12 - LMT 1900 Aug 20 -9:00 NT_YK Y%sT 1967 May 28 0:00 -8:00 NT_YK P%sT 1980 - -8:00 Canada P%sT + -8:00 Canada P%sT 2020 Mar 8 2:00 + -7:00 - MST Zone America/Dawson -9:17:40 - LMT 1900 Aug 20 -9:00 NT_YK Y%sT 1973 Oct 28 0:00 -8:00 NT_YK P%sT 1980 - -8:00 Canada P%sT + -8:00 Canada P%sT 2020 Mar 8 2:00 + -7:00 - MST ############################################################################### Modified: stable/12/contrib/tzdata/theory.html ============================================================================== --- stable/12/contrib/tzdata/theory.html Mon Apr 27 02:48:49 2020 (r360360) +++ stable/12/contrib/tzdata/theory.html Mon Apr 27 03:56:47 2020 (r360361) @@ -298,6 +298,10 @@ in decreasing order of importance: If a name is changed, put its old spelling in the 'backward' file. This means old spellings will continue to work. + Ordinarily a name change should occur only in the rare case when + a location's consensus English-language spelling changes; for example, + in 2008 Asia/Calcutta was renamed to Asia/Kolkata + due to long-time widespread use of the new city name instead of the old. @@ -1054,23 +1058,6 @@ an older zic. The functions were inspired by NetBSD.
  • - A function tzsetwall has been added to arrange for the - system's best approximation to local (wall clock) time to be delivered - by subsequent calls to localtime. - Source code for portable applications that "must" run on local - time should call tzsetwall; - if such code is moved to "old" systems that do not - provide tzsetwall, you will not be able to generate an - executable program. - (These functions also arrange for local time to - be used if tzset is called – directly or - indirectly – and there is no TZ environment - variable; portable applications should not, however, rely on this - behavior since it is not the way SVR2 - systems behave.) -
  • -
  • Negative time_t values are supported, on systems where time_t is signed.
  • @@ -1137,7 +1124,7 @@ The vestigial APIs are: may now examine localtime(&clock)->tm_zone (if TM_ZONE is defined) or tzname[localtime(&clock)->tm_isdst] - (if HAVE_TZNAME is defined) to learn the correct time + (if HAVE_TZNAME is nonzero) to learn the correct time zone abbreviation to use.
  • Modified: stable/12/contrib/tzdata/version ============================================================================== --- stable/12/contrib/tzdata/version Mon Apr 27 02:48:49 2020 (r360360) +++ stable/12/contrib/tzdata/version Mon Apr 27 03:56:47 2020 (r360361) @@ -1 +1 @@ -2019c +2020a Modified: stable/12/contrib/tzdata/zone.tab ============================================================================== --- stable/12/contrib/tzdata/zone.tab Mon Apr 27 02:48:49 2020 (r360360) +++ stable/12/contrib/tzdata/zone.tab Mon Apr 27 03:56:47 2020 (r360361) @@ -131,8 +131,8 @@ CA +4906-11631 America/Creston MST - BC (Creston) CA +5946-12014 America/Dawson_Creek MST - BC (Dawson Cr, Ft St John) CA +5848-12242 America/Fort_Nelson MST - BC (Ft Nelson) CA +4916-12307 America/Vancouver Pacific - BC (most areas) -CA +6043-13503 America/Whitehorse Pacific - Yukon (south) -CA +6404-13925 America/Dawson Pacific - Yukon (north) +CA +6043-13503 America/Whitehorse Pacific - Yukon (east) +CA +6404-13925 America/Dawson Pacific - Yukon (west) CC -1210+09655 Indian/Cocos *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Mon Apr 27 03:57: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 031572C6627; Mon, 27 Apr 2020 03:57:21 +0000 (UTC) (envelope-from philip@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 499WFD6fXqz4LJG; Mon, 27 Apr 2020 03:57:20 +0000 (UTC) (envelope-from philip@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 DF18644BA; Mon, 27 Apr 2020 03:57:20 +0000 (UTC) (envelope-from philip@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03R3vKwe029269; Mon, 27 Apr 2020 03:57:20 GMT (envelope-from philip@FreeBSD.org) Received: (from philip@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03R3vI3A029254; Mon, 27 Apr 2020 03:57:18 GMT (envelope-from philip@FreeBSD.org) Message-Id: <202004270357.03R3vI3A029254@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: philip set sender to philip@FreeBSD.org using -f From: Philip Paeps Date: Mon, 27 Apr 2020 03:57: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: r360362 - stable/11/contrib/tzdata X-SVN-Group: stable-11 X-SVN-Commit-Author: philip X-SVN-Commit-Paths: stable/11/contrib/tzdata X-SVN-Commit-Revision: 360362 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, 27 Apr 2020 03:57:21 -0000 Author: philip Date: Mon Apr 27 03:57:17 2020 New Revision: 360362 URL: https://svnweb.freebsd.org/changeset/base/360362 Log: MFC r360240: Import tzdata 2020a Modified: stable/11/contrib/tzdata/Makefile stable/11/contrib/tzdata/NEWS stable/11/contrib/tzdata/africa stable/11/contrib/tzdata/asia stable/11/contrib/tzdata/backward stable/11/contrib/tzdata/backzone stable/11/contrib/tzdata/europe stable/11/contrib/tzdata/leap-seconds.list stable/11/contrib/tzdata/leapseconds stable/11/contrib/tzdata/leapseconds.awk stable/11/contrib/tzdata/northamerica stable/11/contrib/tzdata/theory.html stable/11/contrib/tzdata/version stable/11/contrib/tzdata/zone.tab stable/11/contrib/tzdata/zone1970.tab Directory Properties: stable/11/ (props changed) Modified: stable/11/contrib/tzdata/Makefile ============================================================================== --- stable/11/contrib/tzdata/Makefile Mon Apr 27 03:56:47 2020 (r360361) +++ stable/11/contrib/tzdata/Makefile Mon Apr 27 03:57:17 2020 (r360362) @@ -150,6 +150,15 @@ TIME_T_ALTERNATIVES_TAIL = int32_t uint32_t uint64_t REDO= posix_right +# Whether to put an "Expires" line in the leapseconds file. +# Use EXPIRES_LINE=1 to put the line in, 0 to omit it. +# The EXPIRES_LINE value matters only if REDO's value contains "right". +# If you change EXPIRES_LINE, remove the leapseconds file before running "make". +# zic's support for the Expires line was introduced in tzdb 2020a, +# and EXPIRES_LINE defaults to 0 for now so that the leapseconds file +# can be given to older zic implementations. +EXPIRES_LINE= 0 + # To install data in text form that has all the information of the TZif data, # (optionally incorporating leap second information), use # TZDATA_TEXT= tzdata.zi leapseconds @@ -295,8 +304,9 @@ GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fno-common \ # than TM_GMTOFF and TM_ZONE. However, most of them are standardized. # # # # To omit or support the external variable "tzname", add one of: -# # -DHAVE_TZNAME=0 -# # -DHAVE_TZNAME=1 +# # -DHAVE_TZNAME=0 # do not support "tzname" +# # -DHAVE_TZNAME=1 # support "tzname", which is defined by system library +# # -DHAVE_TZNAME=2 # support and define "tzname" # # to the "CFLAGS=" line. "tzname" is required by POSIX 1988 and later. # # If not defined, the code attempts to guess HAVE_TZNAME from other macros. # # Warning: unless time_tz is also defined, HAVE_TZNAME=1 can cause @@ -304,16 +314,20 @@ GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fno-common \ # # presumably due to memory allocation issues. # # # # To omit or support the external variables "timezone" and "daylight", add -# # -DUSG_COMPAT=0 -# # -DUSG_COMPAT=1 +# # -DUSG_COMPAT=0 # do not support +# # -DUSG_COMPAT=1 # support, and variables are defined by system library +# # -DUSG_COMPAT=2 # support and define variables # # to the "CFLAGS=" line; "timezone" and "daylight" are inspired by # # Unix Systems Group code and are required by POSIX 2008 (with XSI) and later. # # If not defined, the code attempts to guess USG_COMPAT from other macros. # # # # To support the external variable "altzone", add -# # -DALTZONE +# # -DALTZONE=0 # do not support +# # -DALTZONE=1 # support "altzone", which is defined by system library +# # -DALTZONE=2 # support and define "altzone" # # to the end of the "CFLAGS=" line; although "altzone" appeared in # # System V Release 3.1 it has not been standardized. +# # If not defined, the code attempts to guess ALTZONE from other macros. # # If you want functions that were inspired by early versions of X3J11's work, # add @@ -321,9 +335,7 @@ GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fno-common \ # to the end of the "CFLAGS=" line. This arranges for the functions # "tzsetwall", "offtime", "timelocal", "timegm", "timeoff", # "posix2time", and "time2posix" to be added to the time conversion library. -# "tzsetwall" is like "tzset" except that it arranges for local wall clock -# time (rather than the timezone specified in the TZ environment variable) -# to be used. +# "tzsetwall" is deprecated and is intended to be removed soon; see NEWS. # "offtime" is like "gmtime" except that it accepts a second (long) argument # that gives an offset to add to the time_t when converting it. # "timelocal" is equivalent to "mktime". @@ -333,7 +345,6 @@ GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fno-common \ # that gives an offset to use when converting to a time_t. # "posix2time" and "time2posix" are described in an included manual page. # X3J11's work does not describe any of these functions. -# Sun has provided "tzsetwall", "timelocal", and "timegm" in SunOS 4.0. # These functions may well disappear in future releases of the time # conversion package. # @@ -505,11 +516,11 @@ RANLIB= : TZCOBJS= zic.o TZDOBJS= zdump.o localtime.o asctime.o strftime.o DATEOBJS= date.o localtime.o strftime.o asctime.o -LIBSRCS= localtime.c asctime.c difftime.c -LIBOBJS= localtime.o asctime.o difftime.o +LIBSRCS= localtime.c asctime.c difftime.c strftime.c +LIBOBJS= localtime.o asctime.o difftime.o strftime.o HEADERS= tzfile.h private.h NONLIBSRCS= zic.c zdump.c -NEWUCBSRCS= date.c strftime.c +NEWUCBSRCS= date.c SOURCES= $(HEADERS) $(LIBSRCS) $(NONLIBSRCS) $(NEWUCBSRCS) \ tzselect.ksh workman.sh MANS= newctime.3 newstrftime.3 newtzset.3 time2posix.3 \ @@ -651,7 +662,8 @@ yearistype: yearistype.sh chmod +x yearistype leapseconds: $(LEAP_DEPS) - $(AWK) -f leapseconds.awk leap-seconds.list >$@.out + $(AWK) -v EXPIRES_LINE=$(EXPIRES_LINE) \ + -f leapseconds.awk leap-seconds.list >$@.out mv $@.out $@ # Arguments to pass to submakes of install_data. Modified: stable/11/contrib/tzdata/NEWS ============================================================================== --- stable/11/contrib/tzdata/NEWS Mon Apr 27 03:56:47 2020 (r360361) +++ stable/11/contrib/tzdata/NEWS Mon Apr 27 03:57:17 2020 (r360362) @@ -1,5 +1,87 @@ News for the tz database +Release 2020a - 2020-04-23 16:03:47 -0700 + + Briefly: + Morocco springs forward on 2020-05-31, not 2020-05-24. + Canada's Yukon advanced to -07 year-round on 2020-03-08. + America/Nuuk renamed from America/Godthab. + zic now supports expiration dates for leap second lists. + + Changes to future timestamps + + Morocco's second spring-forward transition in 2020 will be May 31, + not May 24 as predicted earlier. (Thanks to Semlali Naoufal.) + Adjust future-year predictions to use the first Sunday after the + day after Ramadan, not the first Sunday after Ramadan. + + Canada's Yukon, represented by America/Whitehorse and + America/Dawson, advanced to -07 year-round, beginning with its + spring-forward transition on 2020-03-08, and will not fall back on + 2020-11-01. Although a government press release calls this + "permanent Pacific Daylight Saving Time", we prefer MST for + consistency with nearby Dawson Creek, Creston, and Fort Nelson. + (Thanks to Tim Parenti.) + + Changes to past timestamps + + Shanghai observed DST in 1919. (Thanks to Phake Nick.) + + Changes to timezone identifiers + + To reflect current usage in English better, America/Godthab has + been renamed to America/Nuuk. A backwards-compatibility link + remains for the old name. + + Changes to code + + localtime.c no longer mishandles timestamps after the last + transition in a TZif file with leap seconds and with daylight + saving time transitions projected into the indefinite future. + For example, with TZ='America/Los_Angeles' with leap seconds, + zdump formerly reported a DST transition on 2038-03-14 + from 01:59:32.999... to 02:59:33 instead of the correct transition + from 01:59:59.999... to 03:00:00. + + zic -L now supports an Expires line in the leapseconds file, and + truncates the TZif output accordingly. This propagates leap + second expiration information into the TZif file, and avoids the + abovementioned localtime.c bug as well as similar bugs present in + many client implementations. If no Expires line is present, zic + -L instead truncates the TZif output based on the #expires comment + present in leapseconds files distributed by tzdb 2018f and later; + however, this usage is obsolescent. For now, the distributed + leapseconds file has an Expires line that is commented out, so + that the file can be fed to older versions of zic which ignore the + commented-out line. Future tzdb distributions are planned to + contain a leapseconds file with an Expires line. + + The configuration macros HAVE_TZNAME and USG_COMPAT should now be + set to 1 if the system library supports the feature, and 2 if not. + As before, these macros are nonzero if tzcode should support the + feature, zero otherwise. + + The configuration macro ALTZONE now has the same values with the + same meaning as HAVE_TZNAME and USG_COMPAT. + + The code's defense against CRLF in leap-seconds.list is now + portable to POSIX awk. (Problem reported by Deborah Goldsmith.) + + Although the undocumented tzsetwall function is not changed in + this release, it is now deprecated in preparation for removal in + future releases. Due to POSIX requirements, tzsetwall has not + worked for some time. Any code that uses it should instead use + tzalloc(NULL) or, if portability trumps thread-safety, should + unset the TZ environment variable. + + Changes to commentary + + The ÃŽles-de-la-Madeleine and the Listuguj reserve are noted as + following America/Halifax, and comments about Yukon's "south" and + "north" have been corrected to say "east" and "west". (Thanks to + Jeffery Nichols.) + + Release 2019c - 2019-09-11 08:59:48 -0700 Briefly: Modified: stable/11/contrib/tzdata/africa ============================================================================== --- stable/11/contrib/tzdata/africa Mon Apr 27 03:56:47 2020 (r360361) +++ stable/11/contrib/tzdata/africa Mon Apr 27 03:57:17 2020 (r360362) @@ -867,19 +867,25 @@ Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis # Morocco will be on GMT starting from Sunday, May 5th 2019 at 3am. # The switch to GMT+1 will occur on Sunday, June 9th 2019 at 2am.... # http://fr.le360.ma/societe/voici-la-date-du-retour-a-lheure-legale-au-maroc-188222 + +# From Semlali Naoufal (2020-04-14): +# Following the announcement by the Moroccan government, the switch to +# GMT time will take place on Sunday, April 19, 2020 from 3 a.m. and +# the return to GMT+1 time will take place on Sunday, May 31, 2020 at 2 a.m.... +# https://maroc-diplomatique.net/maroc-le-retour-a-lheure-gmt-est-prevu-dimanche-prochain/ +# http://aujourdhui.ma/actualite/gmt1-retour-a-lheure-normale-dimanche-prochain-1 # -# From Paul Eggert (2019-05-20): -# This agrees with our 2018-11-01 guess that the Moroccan government -# would continue the practice of falling back at 03:00 the last Sunday -# before Ramadan, and of springing forward at 02:00 the first Sunday after -# Ramadan, as this has been the practice since 2012. To implement this, -# transition dates for 2019 through 2087 were determined by running the -# following program under GNU Emacs 26.2. -# (let ((islamic-year 1440)) +# From Paul Eggert (2020-04-14): +# For now, guess that in the future Morocco will fall back at 03:00 +# the last Sunday before Ramadan, and spring forward at 02:00 the +# first Sunday after the day after Ramadan. To implement this, +# transition dates for 2021 through 2087 were determined by running +# the following program under GNU Emacs 26.3. +# (let ((islamic-year 1442)) # (require 'cal-islam) # (while (< islamic-year 1511) # (let ((a (calendar-islamic-to-absolute (list 9 1 islamic-year))) -# (b (calendar-islamic-to-absolute (list 10 1 islamic-year))) +# (b (1+ (calendar-islamic-to-absolute (list 10 1 islamic-year)))) # (sunday 0)) # (while (/= sunday (mod (setq a (1- a)) 7))) # (while (/= sunday (mod b 7)) @@ -939,7 +945,7 @@ Rule Morocco 2018 only - Jun 17 2:00 1:00 - Rule Morocco 2019 only - May 5 3:00 -1:00 - Rule Morocco 2019 only - Jun 9 2:00 0 - Rule Morocco 2020 only - Apr 19 3:00 -1:00 - -Rule Morocco 2020 only - May 24 2:00 0 - +Rule Morocco 2020 only - May 31 2:00 0 - Rule Morocco 2021 only - Apr 11 3:00 -1:00 - Rule Morocco 2021 only - May 16 2:00 0 - Rule Morocco 2022 only - Mar 27 3:00 -1:00 - @@ -955,7 +961,7 @@ Rule Morocco 2026 only - Mar 22 2:00 0 - Rule Morocco 2027 only - Feb 7 3:00 -1:00 - Rule Morocco 2027 only - Mar 14 2:00 0 - Rule Morocco 2028 only - Jan 23 3:00 -1:00 - -Rule Morocco 2028 only - Feb 27 2:00 0 - +Rule Morocco 2028 only - Mar 5 2:00 0 - Rule Morocco 2029 only - Jan 14 3:00 -1:00 - Rule Morocco 2029 only - Feb 18 2:00 0 - Rule Morocco 2029 only - Dec 30 3:00 -1:00 - @@ -971,7 +977,7 @@ Rule Morocco 2033 only - Dec 25 2:00 0 - Rule Morocco 2034 only - Nov 5 3:00 -1:00 - Rule Morocco 2034 only - Dec 17 2:00 0 - Rule Morocco 2035 only - Oct 28 3:00 -1:00 - -Rule Morocco 2035 only - Dec 2 2:00 0 - +Rule Morocco 2035 only - Dec 9 2:00 0 - Rule Morocco 2036 only - Oct 19 3:00 -1:00 - Rule Morocco 2036 only - Nov 23 2:00 0 - Rule Morocco 2037 only - Oct 4 3:00 -1:00 - @@ -987,7 +993,7 @@ Rule Morocco 2041 only - Sep 29 2:00 0 - Rule Morocco 2042 only - Aug 10 3:00 -1:00 - Rule Morocco 2042 only - Sep 21 2:00 0 - Rule Morocco 2043 only - Aug 2 3:00 -1:00 - -Rule Morocco 2043 only - Sep 6 2:00 0 - +Rule Morocco 2043 only - Sep 13 2:00 0 - Rule Morocco 2044 only - Jul 24 3:00 -1:00 - Rule Morocco 2044 only - Aug 28 2:00 0 - Rule Morocco 2045 only - Jul 9 3:00 -1:00 - @@ -1003,7 +1009,7 @@ Rule Morocco 2049 only - Jul 4 2:00 0 - Rule Morocco 2050 only - May 15 3:00 -1:00 - Rule Morocco 2050 only - Jun 26 2:00 0 - Rule Morocco 2051 only - May 7 3:00 -1:00 - -Rule Morocco 2051 only - Jun 11 2:00 0 - +Rule Morocco 2051 only - Jun 18 2:00 0 - Rule Morocco 2052 only - Apr 28 3:00 -1:00 - Rule Morocco 2052 only - Jun 2 2:00 0 - Rule Morocco 2053 only - Apr 13 3:00 -1:00 - @@ -1019,7 +1025,7 @@ Rule Morocco 2057 only - Apr 8 2:00 0 - Rule Morocco 2058 only - Feb 17 3:00 -1:00 - Rule Morocco 2058 only - Mar 31 2:00 0 - Rule Morocco 2059 only - Feb 9 3:00 -1:00 - -Rule Morocco 2059 only - Mar 16 2:00 0 - +Rule Morocco 2059 only - Mar 23 2:00 0 - Rule Morocco 2060 only - Feb 1 3:00 -1:00 - Rule Morocco 2060 only - Mar 7 2:00 0 - Rule Morocco 2061 only - Jan 16 3:00 -1:00 - @@ -1029,13 +1035,13 @@ Rule Morocco 2062 only - Feb 12 2:00 0 - Rule Morocco 2062 only - Dec 31 3:00 -1:00 - Rule Morocco 2063 only - Feb 4 2:00 0 - Rule Morocco 2063 only - Dec 16 3:00 -1:00 - -Rule Morocco 2064 only - Jan 20 2:00 0 - +Rule Morocco 2064 only - Jan 27 2:00 0 - Rule Morocco 2064 only - Dec 7 3:00 -1:00 - Rule Morocco 2065 only - Jan 11 2:00 0 - Rule Morocco 2065 only - Nov 22 3:00 -1:00 - Rule Morocco 2066 only - Jan 3 2:00 0 - Rule Morocco 2066 only - Nov 14 3:00 -1:00 - -Rule Morocco 2066 only - Dec 19 2:00 0 - +Rule Morocco 2066 only - Dec 26 2:00 0 - Rule Morocco 2067 only - Nov 6 3:00 -1:00 - Rule Morocco 2067 only - Dec 11 2:00 0 - Rule Morocco 2068 only - Oct 21 3:00 -1:00 - @@ -1045,13 +1051,13 @@ Rule Morocco 2069 only - Nov 17 2:00 0 - Rule Morocco 2070 only - Oct 5 3:00 -1:00 - Rule Morocco 2070 only - Nov 9 2:00 0 - Rule Morocco 2071 only - Sep 20 3:00 -1:00 - -Rule Morocco 2071 only - Oct 25 2:00 0 - +Rule Morocco 2071 only - Nov 1 2:00 0 - Rule Morocco 2072 only - Sep 11 3:00 -1:00 - Rule Morocco 2072 only - Oct 16 2:00 0 - Rule Morocco 2073 only - Aug 27 3:00 -1:00 - Rule Morocco 2073 only - Oct 8 2:00 0 - Rule Morocco 2074 only - Aug 19 3:00 -1:00 - -Rule Morocco 2074 only - Sep 23 2:00 0 - +Rule Morocco 2074 only - Sep 30 2:00 0 - Rule Morocco 2075 only - Aug 11 3:00 -1:00 - Rule Morocco 2075 only - Sep 15 2:00 0 - Rule Morocco 2076 only - Jul 26 3:00 -1:00 - @@ -1061,7 +1067,7 @@ Rule Morocco 2077 only - Aug 22 2:00 0 - Rule Morocco 2078 only - Jul 10 3:00 -1:00 - Rule Morocco 2078 only - Aug 14 2:00 0 - Rule Morocco 2079 only - Jun 25 3:00 -1:00 - -Rule Morocco 2079 only - Jul 30 2:00 0 - +Rule Morocco 2079 only - Aug 6 2:00 0 - Rule Morocco 2080 only - Jun 16 3:00 -1:00 - Rule Morocco 2080 only - Jul 21 2:00 0 - Rule Morocco 2081 only - Jun 1 3:00 -1:00 - @@ -1077,7 +1083,7 @@ Rule Morocco 2085 only - May 27 2:00 0 - Rule Morocco 2086 only - Apr 14 3:00 -1:00 - Rule Morocco 2086 only - May 19 2:00 0 - Rule Morocco 2087 only - Mar 30 3:00 -1:00 - -Rule Morocco 2087 only - May 4 2:00 0 - +Rule Morocco 2087 only - May 11 2:00 0 - # For dates after the somewhat-arbitrary cutoff of 2087, assume that # Morocco will no longer observe DST. At some point this table will # need to be extended, though quite possibly Morocco will change the @@ -1179,7 +1185,7 @@ Link Africa/Maputo Africa/Lusaka # Zambia Rule Namibia 1994 only - Mar 21 0:00 -1:00 WAT Rule Namibia 1994 2017 - Sep Sun>=1 2:00 0 CAT Rule Namibia 1995 2017 - Apr Sun>=1 2:00 -1:00 WAT -# Rearguard section, for parsers that do not support negative DST. +# Rearguard section, for parsers lacking negative DST; see ziguard.awk. #Rule Namibia 1994 only - Mar 21 0:00 0 WAT #Rule Namibia 1994 2017 - Sep Sun>=1 2:00 1:00 CAT #Rule Namibia 1995 2017 - Apr Sun>=1 2:00 0 WAT @@ -1193,7 +1199,7 @@ Zone Africa/Windhoek 1:08:24 - LMT 1892 Feb 8 2:00 - SAST 1990 Mar 21 # independence # Vanguard section, for zic and other parsers that support negative DST. 2:00 Namibia %s -# Rearguard section, for parsers that do not support negative DST. +# Rearguard section, for parsers lacking negative DST; see ziguard.awk. # 2:00 - CAT 1994 Mar 21 0:00 # From Paul Eggert (2017-04-07): # The official date of the 2017 rule change was 2017-10-24. See: Modified: stable/11/contrib/tzdata/asia ============================================================================== --- stable/11/contrib/tzdata/asia Mon Apr 27 03:56:47 2020 (r360361) +++ stable/11/contrib/tzdata/asia Mon Apr 27 03:57:17 2020 (r360362) @@ -286,6 +286,27 @@ Zone Asia/Yangon 6:24:47 - LMT 1880 # or Rangoo # China +# From Phake Nick (2020-04-15): +# According to this news report: +# http://news.sina.com.cn/c/2004-09-01/19524201403.shtml +# on April 11, 1919, newspaper in Shanghai said clocks in Shanghai will spring +# forward for an hour starting from midnight of that Saturday. The report did +# not mention what happened in Shanghai thereafter, but it mentioned that a +# similar trial in Tianjin which ended at October 1st as citizens are told to +# recede the clock on September 30 from 12:00pm to 11:00pm. The trial at +# Tianjin got terminated in 1920. +# +# From Paul Eggert (2020-04-15): +# The Returns of Trade and Trade Reports, page 711, says "Daylight saving was +# given a trial during the year, and from the 12th April to the 1st October +# the clocks were all set one hour ahead of sun time. Though the scheme was +# generally esteemed a success, it was announced early in 1920 that it would +# not be repeated." +# +# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S +Rule Shang 1919 only - Apr 12 24:00 1:00 D +Rule Shang 1919 only - Sep 30 24:00 0 S + # From Paul Eggert (2018-10-02): # The following comes from Table 1 of: # Li Yu. Research on the daylight saving movement in 1940s Shanghai. @@ -294,7 +315,90 @@ Zone Asia/Yangon 6:24:47 - LMT 1880 # or Rangoo # The table lists dates only; I am guessing 00:00 and 24:00 transition times. # Also, the table lists the planned end of DST in 1949, but the corresponding # zone line cuts this off on May 28, when the Communists took power. + +# From Phake Nick (2020-04-15): # +# For the history of time in Shanghai between 1940-1942, the situation is +# actually slightly more complex than the table [below].... At the time, +# there were three different authorities in Shanghai, including Shanghai +# International Settlement, a settlement established by western countries with +# its own westernized form of government, Shanghai French Concession, similar +# to the international settlement but is controlled by French, and then the +# rest of the city of Shanghai, which have already been controlled by Japanese +# force through a puppet local government (Wang Jingwei regime). It was +# additionally complicated by the circumstances that, according to the 1940s +# Shanghai summer time essay cited in the database, some +# departments/businesses/people in the Shanghai city itself during that time +# period, refused to change their clock and instead only changed their opening +# hours. +# +# For example, as quoted in the article, in 1940, other than the authority +# itself, power, tram, bus companies, cinema, department stores, and other +# public service organizations have all decided to follow the summer time and +# spring forward the clock. On the other hand, the custom office refused to +# spring forward the clock because of worry on mechanical wear to the physical +# clock, postal office refused to spring forward because of disruption to +# business and log-keeping, although they did changed their office hour to +# match rest of the city. So is travel agents, and also weather +# observatory. It is said both time standards had their own supporters in the +# city at the time, those who prefer new time standard would have moved their +# clock while those who prefer the old time standard would keep their clock +# unchange, and there were different clocks that use different time standard +# in the city at the time for people who use different time standard to adjust +# their clock to their preferred time. +# +# a. For the 1940 May 31 spring forward, the essay claim that it was +# coordinared between the international settlement authority and the French +# concession authority and have gathered support from Hong Kong and Xiamen, +# that it would spring forward an hour from May 31 "midnight", and the essay +# claim "Hong Kong government implemented the spring forward in the same time +# on the same date as Shanghai". +# +# b. For the 1940 fall back, it was said that they initially intended to do +# so on September 30 00:59 at night, however they postponed it to October 12 +# after discussion with relevant parties. However schools restored to the +# original schedule ten days earlier. +# +# c. For the 1941 spring forward, it is said to start from March 15 +# "following the previous year's method", and in addition to that the essay +# cited an announcement in 1941 from the Wang regime which said the Special +# City of Shanghai under Wang regime control will follow the DST rule set by +# the Settlements, irrespective of the original DST plan announced by the Wang +# regime for other area under its control(April 1 to September 30). (no idea +# to situation before that announcement) +# +# d. For the 1941 fall back, it was said that the fall back would occurs at +# the end of September (A newspaper headline cited by the essay, published on +# October 1, 1941, have the headlines which said "French Concession would +# rewind to the old clock this morning), but it ultimately didn't happen due +# to disagreement between the international settlement authority and the +# French concession authority, and the fall back ultimately occurred on +# November 1. +# +# e. In 1941 December, Japan have officially started war with the United +# States and the United Kingdom, and in Shanghai they have marched into the +# international settlement, taken over its control +# +# f. For the 1942 spring forward, the essay said that the spring forward +# started on January 31. It said this time the custom office and postal +# department will also change their clocks, unlike before. +# +# g. The essay itself didn't cover any specific changes thereafter until the +# end of the war, it quoted a November 1942 command from the government of the +# Wang regime, which claim the daylight saving time applies year round during +# the war. However, the essay ambiguously said the period is "February 1 to +# September 30", which I don't really understand what is the meaning of such +# period in the context of year round implementation here.. More researches +# might be needed to show exactly what happened during that period of time. + +# From Phake Nick (2020-04-15): +# According to a Japanese tour bus pamphlet in Nanjing area believed to be +# from around year 1941: http://www.tt-museum.jp/tairiku_0280_nan1941.html , +# the schedule listed was in the format of Japanese time. Which indicate some +# use of the Japanese time (instead of syncing by DST) might have occurred in +# the Yangtze river delta area during that period of time although the scope +# of such use will need to be investigated to determine. +# # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Shang 1940 only - Jun 1 0:00 1:00 D Rule Shang 1940 only - Oct 12 24:00 0 S @@ -572,7 +676,7 @@ Zone Asia/Urumqi 5:50:20 - LMT 1928 6:00 - +06 -# Hong Kong (Xianggang) +# Hong Kong # Milne gives 7:36:41.7; round this. @@ -582,9 +686,7 @@ Zone Asia/Urumqi 5:50:20 - LMT 1928 # it is not [an] observatory, but the official meteorological agency of HK, # and also serves as the official timing agency), there are some missing # and incorrect rules. Although the exact switch over time is missing, I -# think 3:30 is correct. The official DST record for Hong Kong can be -# obtained from -# http://www.hko.gov.hk/gts/time/Summertime.htm +# think 3:30 is correct. # From Phake Nick (2018-10-27): # According to Singaporean newspaper @@ -695,10 +797,10 @@ Zone Asia/Urumqi 5:50:20 - LMT 1928 # Resolution of the Legislative Council passed on 9 May 1979 # https://www.legco.gov.hk/yr78-79/english/lc_sitg/hansard/h790509.pdf#page=39 -# From Paul Eggert (2019-05-31): +# From Paul Eggert (2020-04-15): # Here are the dates given at -# https://www.hko.gov.hk/gts/time/Summertime.htm -# as of 2014-06-19: +# https://www.hko.gov.hk/en/gts/time/Summertime.htm +# as of 2020-02-10: # Year Period # 1941 15 Jun to 30 Sep # 1942 Whole year @@ -1828,6 +1930,47 @@ Zone Asia/Jerusalem 2:20:54 - LMT 1880 # '9:00' and 'JST' is from Guy Harris. +# From Paul Eggert (2020-01-19): +# Starting in the 7th century, Japan generally followed an ancient Chinese +# timekeeping system that divided night and day into six hours each, +# with hour length depending on season. In 1873 the government +# started requiring the use of a Western style 24-hour clock. See: +# Yulia Frumer, "Making Time: Astronomical Time Measurement in Tokugawa Japan" +# . As the tzdb code and +# data support only 24-hour clocks, its tables model timestamps before +# 1873 using Western-style local mean time. + +# From Hideyuki Suzuki (1998-11-09): +# 'Tokyo' usually stands for the former location of Tokyo Astronomical +# Observatory: 139° 44' 40.90" E (9h 18m 58.727s), 35° 39' 16.0" N. +# This data is from 'Rika Nenpyou (Chronological Scientific Tables) 1996' +# edited by National Astronomical Observatory of Japan.... +# JST (Japan Standard Time) has been used since 1888-01-01 00:00 (JST). +# The law is enacted on 1886-07-07. + +# From Hideyuki Suzuki (1998-11-16): +# The ordinance No. 51 (1886) established "standard time" in Japan, +# which stands for the time on 135° E. +# In the ordinance No. 167 (1895), "standard time" was renamed to "central +# standard time". And the same ordinance also established "western standard +# time", which stands for the time on 120° E.... But "western standard +# time" was abolished in the ordinance No. 529 (1937). In the ordinance No. +# 167, there is no mention regarding for what place western standard time is +# standard.... +# +# I wrote "ordinance" above, but I don't know how to translate. +# In Japanese it's "chokurei", which means ordinance from emperor. + +# From Yu-Cheng Chuang (2013-07-12): +# ...the Meiji Emperor announced Ordinance No. 167 of Meiji Year 28 "The clause +# about standard time" ... The adoption began from Jan 1, 1896. +# https://ja.wikisource.org/wiki/標準時ニ關スル件_(公布時) +# +# ...the Showa Emperor announced Ordinance No. 529 of Showa Year 12 ... which +# means the whole Japan territory, including later occupations, adopt Japan +# Central Time (UT+9). The adoption began on Oct 1, 1937. +# https://ja.wikisource.org/wiki/明治二å八年勅令第百六å七號標準時ニ關スル件中改正ノ件 + # From Paul Eggert (1995-03-06): # Today's _Asahi Evening News_ (page 4) reports that Japan had # daylight saving between 1948 and 1951, but "the system was discontinued @@ -1876,37 +2019,6 @@ Rule Japan 1948 1951 - Sep Sat>=8 25:00 0 S Rule Japan 1949 only - Apr Sat>=1 24:00 1:00 D Rule Japan 1950 1951 - May Sat>=1 24:00 1:00 D -# From Hideyuki Suzuki (1998-11-09): -# 'Tokyo' usually stands for the former location of Tokyo Astronomical -# Observatory: 139° 44' 40.90" E (9h 18m 58.727s), 35° 39' 16.0" N. -# This data is from 'Rika Nenpyou (Chronological Scientific Tables) 1996' -# edited by National Astronomical Observatory of Japan.... -# JST (Japan Standard Time) has been used since 1888-01-01 00:00 (JST). -# The law is enacted on 1886-07-07. - -# From Hideyuki Suzuki (1998-11-16): -# The ordinance No. 51 (1886) established "standard time" in Japan, -# which stands for the time on 135° E. -# In the ordinance No. 167 (1895), "standard time" was renamed to "central -# standard time". And the same ordinance also established "western standard -# time", which stands for the time on 120° E.... But "western standard -# time" was abolished in the ordinance No. 529 (1937). In the ordinance No. -# 167, there is no mention regarding for what place western standard time is -# standard.... -# -# I wrote "ordinance" above, but I don't know how to translate. -# In Japanese it's "chokurei", which means ordinance from emperor. - -# From Yu-Cheng Chuang (2013-07-12): -# ...the Meiji Emperor announced Ordinance No. 167 of Meiji Year 28 "The clause -# about standard time" ... The adoption began from Jan 1, 1896. -# https://ja.wikisource.org/wiki/標準時ニ關スル件_(公布時) -# -# ...the Showa Emperor announced Ordinance No. 529 of Showa Year 12 ... which -# means the whole Japan territory, including later occupations, adopt Japan -# Central Time (UT+9). The adoption began on Oct 1, 1937. -# https://ja.wikisource.org/wiki/明治二å八年勅令第百六å七號標準時ニ關スル件中改正ノ件 - # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Tokyo 9:18:59 - LMT 1887 Dec 31 15:00u 9:00 Japan J%sT @@ -3086,22 +3198,9 @@ Zone Asia/Karachi 4:28:12 - LMT 1907 # [T]he Palestinian cabinet decision (Mar 8th 2016) published on # http://www.palestinecabinet.gov.ps/WebSite/Upload/Decree/GOV_17/16032016134830.pdf # states that summer time will end on Oct 29th at 01:00. -# -# From Tim Parenti (2016-10-19): -# Predict fall transitions on October's last Saturday at 01:00 from now on. -# This is consistent with the 2016 transition as well as our spring -# predictions. -# -# From Paul Eggert (2016-10-19): -# It's also consistent with predictions in the following URLs today: -# https://www.timeanddate.com/time/change/gaza-strip/gaza -# https://www.timeanddate.com/time/change/west-bank/hebron # From Sharef Mustafa (2018-03-16): -# Palestine summer time will start on Mar 24th 2018 by advancing the -# clock by 60 minutes as per Palestinian cabinet decision published on -# the official website, though the decree did not specify the exact -# time of the time shift. +# Palestine summer time will start on Mar 24th 2018 ... # http://www.palestinecabinet.gov.ps/Website/AR/NDecrees/ViewFile.ashx?ID=e7a42ab7-ee23-435a-b9c8-a4f7e81f3817 # From Even Scharning (2019-03-23): @@ -3111,15 +3210,20 @@ Zone Asia/Karachi 4:28:12 - LMT 1907 # From Sharif Mustafa (2019-03-26): # The Palestinian cabinet announced today that the switch to DST will # be on Fri Mar 29th 2019 by advancing the clock by 60 minutes. -# The decree signing date is Mar 12th but it was not published till today. -# The decree does not specify the exact time of switch. # http://palestinecabinet.gov.ps/Website/AR/NDecrees/ViewFile.ashx?ID=e54e9ea1-50ee-4137-84df-0d6c78da259b # # From Even Scharning (2019-04-10): # Our source in Palestine said it happened Friday 29 at 00:00 local time.... + +# From Sharef Mustafa (2019-10-18): +# Palestine summer time will end on midnight Oct 26th 2019 ... +# http://www.palestinecabinet.gov.ps/website/ar/ViewDetails?ID=43948 # # From Paul Eggert (2019-04-10): # For now, guess spring-ahead transitions are March's last Friday at 00:00. +# +# From Tim Parenti (2016-10-19): +# Predict fall transitions on October's last Saturday at 01:00 from now on. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule EgyptAsia 1957 only - May 10 0:00 1:00 S Modified: stable/11/contrib/tzdata/backward ============================================================================== --- stable/11/contrib/tzdata/backward Mon Apr 27 03:56:47 2020 (r360361) +++ stable/11/contrib/tzdata/backward Mon Apr 27 03:57:17 2020 (r360362) @@ -17,6 +17,7 @@ Link America/Atikokan America/Coral_Harbour Link America/Argentina/Cordoba America/Cordoba Link America/Tijuana America/Ensenada Link America/Indiana/Indianapolis America/Fort_Wayne +Link America/Nuuk America/Godthab Link America/Indiana/Indianapolis America/Indianapolis Link America/Argentina/Jujuy America/Jujuy Link America/Indiana/Knox America/Knox_IN Modified: stable/11/contrib/tzdata/backzone ============================================================================== --- stable/11/contrib/tzdata/backzone Mon Apr 27 03:56:47 2020 (r360361) +++ stable/11/contrib/tzdata/backzone Mon Apr 27 03:57:17 2020 (r360362) @@ -33,6 +33,35 @@ # assumes rules from other files. In the tz distribution, use # 'make PACKRATDATA=backzone zones' to compile and install this file. + +# From Paul Eggert (2020-04-15): +# The following remarks should be incorporated into this table sometime. +# Patches in 'git format-patch' format would be welcome. +# +# From Phake Nick (2020-04-15): +# ... the historical timezone data for those China zones seems to be +# incorrect. The transition to GMT+8 date given there for these zones +# were 1980 which also contradict the file description that they do +# not disagree with normal zone after 1970. According to sources that +# have also been cited in the asia file, except Xinjiang and Tibet, +# they should have adopted the Beijing Time from around 1949/1950 +# depends on exactly when each of those cities were taken over by the +# communist army. And they should also follow the DST setting of +# Asia/Shanghai after that point of time. In addition, +# http://gaz.ncl.edu.tw/detail.jsp?sysid=E1091792 the document from +# Chongqing Nationalist government say in year 1945 all of China +# should adopt summer time due to the war (not sure whether it +# continued after WWII ends)(Probably only enforced in area under +# their rule at the time?) The Asia/Harbin's 1932 and 1940 entry +# should also be incorrect. As per sources recorded at +# https://wiki.suikawiki.org/n/%E6%BA%80%E5%B7%9E%E5%9B%BD%E3%81%AE%E6%A8%99%E6%BA%96%E6%99%82 +# , in 1932 Harbin should have adopted UTC+8:00 instead of data +# currently listed in the tz database according to official +# announcement from Manchuko. And they should have adopted GMT+9 in +# 1937 January 1st according to official announcement at the time +# being cited on the webpage. + + # Zones are sorted by zone name. Each zone is preceded by the # name of the country that the zone is in, along with any other # commentary and rules associated with the entry. Modified: stable/11/contrib/tzdata/europe ============================================================================== --- stable/11/contrib/tzdata/europe Mon Apr 27 03:56:47 2020 (r360361) +++ stable/11/contrib/tzdata/europe Mon Apr 27 03:57:17 2020 (r360362) @@ -549,12 +549,13 @@ Zone Europe/Dublin -0:25:00 - LMT 1880 Aug 2 0:00 1:00 IST 1947 Nov 2 2:00s 0:00 - GMT 1948 Apr 18 2:00s 0:00 GB-Eire GMT/IST 1968 Oct 27 -# The next line is for when negative SAVE values are used. +# Vanguard section, for zic and other parsers that support negative DST. 1:00 Eire IST/GMT -# These three lines are for when SAVE values are always nonnegative. +# Rearguard section, for parsers lacking negative DST; see ziguard.awk. # 1:00 - IST 1971 Oct 31 2:00u # 0:00 GB-Eire GMT/IST 1996 # 0:00 EU GMT/IST +# End of rearguard section. ############################################################################### @@ -1018,7 +1019,7 @@ Zone Europe/Prague 0:57:44 - LMT 1850 1:00 Czech CE%sT 1946 Dec 1 3:00 # Vanguard section, for zic and other parsers that support negative DST. 1:00 -1:00 GMT 1947 Feb 23 2:00 -# Rearguard section, for parsers that do not support negative DST. +# Rearguard section, for parsers lacking negative DST; see ziguard.awk. # 0:00 - GMT 1947 Feb 23 2:00 # End of rearguard section. 1:00 Czech CE%sT 1979 @@ -1175,14 +1176,17 @@ Zone America/Danmarkshavn -1:14:40 - LMT 1916 Jul 28 -3:00 - -03 1980 Apr 6 2:00 -3:00 EU -03/-02 1996 0:00 - GMT +# +# Use the old name Scoresbysund, as the current name Ittoqqortoormiit +# exceeds tzdb's 14-letter limit and has no common English abbreviation. Zone America/Scoresbysund -1:27:52 - LMT 1916 Jul 28 # Ittoqqortoormiit -2:00 - -02 1980 Apr 6 2:00 -2:00 C-Eur -02/-01 1981 Mar 29 -1:00 EU -01/+00 -Zone America/Godthab -3:26:56 - LMT 1916 Jul 28 # Nuuk +Zone America/Nuuk -3:26:56 - LMT 1916 Jul 28 # GodthÃ¥b -3:00 - -03 1980 Apr 6 2:00 -3:00 EU -03/-02 -Zone America/Thule -4:35:08 - LMT 1916 Jul 28 # Pituffik air base +Zone America/Thule -4:35:08 - LMT 1916 Jul 28 # Pituffik -4:00 Thule A%sT # Estonia @@ -1552,7 +1556,7 @@ Zone Europe/Budapest 1:16:20 - LMT 1890 Oct # # From January 1st, 1908 the whole of Iceland was standardised at 1 hour # behind GMT. Previously, local mean solar time was used in different parts -# of Iceland, the almanak had been based on Reykjavik mean solar time which +# of Iceland, the almanak had been based on Reykjavík mean solar time which # was 1 hour and 28 minutes behind GMT. # # "first day of winter" referred to [below] means the first day of the 26 weeks Modified: stable/11/contrib/tzdata/leap-seconds.list ============================================================================== --- stable/11/contrib/tzdata/leap-seconds.list Mon Apr 27 03:56:47 2020 (r360361) +++ stable/11/contrib/tzdata/leap-seconds.list Mon Apr 27 03:57:17 2020 (r360362) @@ -62,7 +62,7 @@ # Terry Quinn, "The BIPM and the Accurate Measurement # of Time," Proc. of the IEEE, Vol. 79, pp. 894-905, # July, 1991. -# reprinted in: +# reprinted in: # Christine Hackman and Donald B Sullivan (eds.) # Time and Frequency Measurement # American Association of Physics Teachers (1996) @@ -204,10 +204,10 @@ # current -- the update time stamp, the data and the name of the file # will not change. # -# Updated through IERS Bulletin C58 -# File expires on: 28 June 2020 +# Updated through IERS Bulletin C59 +# File expires on: 28 December 2020 # -#@ 3802291200 +#@ 3818102400 # 2272060800 10 # 1 Jan 1972 2287785600 11 # 1 Jul 1972 @@ -252,4 +252,4 @@ # the hash line is also ignored in the # computation. # -#h f28827d2 f263b6c3 ec0f19eb a3e0dbf0 97f3fa30 +#h a1c168ae 27c79a7d 9dddcfc3 bcfe616b 2e2c44ea Modified: stable/11/contrib/tzdata/leapseconds ============================================================================== --- stable/11/contrib/tzdata/leapseconds Mon Apr 27 03:56:47 2020 (r360361) +++ stable/11/contrib/tzdata/leapseconds Mon Apr 27 03:57:17 2020 (r360362) @@ -64,9 +64,15 @@ Leap 2012 Jun 30 23:59:60 + S Leap 2015 Jun 30 23:59:60 + S Leap 2016 Dec 31 23:59:60 + S +# UTC timestamp when this leap second list expires. +# Any additional leap seconds will come after this. +# This Expires line is commented out for now, +# so that pre-2020a zic implementations do not reject this file. +#Expires 2020 Dec 28 00:00:00 + # POSIX timestamps for the data in this file: #updated 1467936000 (2016-07-08 00:00:00 UTC) -#expires 1593302400 (2020-06-28 00:00:00 UTC) +#expires 1609113600 (2020-12-28 00:00:00 UTC) -# Updated through IERS Bulletin C58 -# File expires on: 28 June 2020 +# Updated through IERS Bulletin C59 +# File expires on: 28 December 2020 Modified: stable/11/contrib/tzdata/leapseconds.awk ============================================================================== --- stable/11/contrib/tzdata/leapseconds.awk Mon Apr 27 03:56:47 2020 (r360361) +++ stable/11/contrib/tzdata/leapseconds.awk Mon Apr 27 03:57:17 2020 (r360362) @@ -68,12 +68,12 @@ BEGIN { monthabbr[11] = "Nov" monthabbr[12] = "Dec" - # Strip trailing CR, in case the input has CRLF form a la NIST. - RS = "\r?\n" - sstamp_init() } +# In case the input has CRLF form a la NIST. +{ sub(/\r$/, "") } + /^#[ \t]*[Uu]pdated through/ || /^#[ \t]*[Ff]ile expires on/ { last_lines = last_lines $0 "\n" } @@ -100,6 +100,17 @@ BEGIN { } END { + sstamp_to_ymdhMs(expires, ss_NTP) + + print "" + print "# UTC timestamp when this leap second list expires." + print "# Any additional leap seconds will come after this." + print "# This Expires line is commented out for now," + print "# so that pre-2020a zic implementations do not reject this file." + printf "%sExpires %.4d\t%s\t%.2d\t%.2d:%.2d:%.2d\n", \ + EXPIRES_LINE ? "" : "#", \ + ss_year, monthabbr[ss_month], ss_mday, ss_hour, ss_min, ss_sec + # The difference between the NTP and POSIX epochs is 70 years # (including 17 leap days), each 24 hours of 60 minutes of 60 # seconds each. Modified: stable/11/contrib/tzdata/northamerica ============================================================================== --- stable/11/contrib/tzdata/northamerica Mon Apr 27 03:56:47 2020 (r360361) +++ stable/11/contrib/tzdata/northamerica Mon Apr 27 03:57:17 2020 (r360362) @@ -86,7 +86,7 @@ # For more about the first ten years of DST in the United States, see # Robert Garland, Ten years of daylight saving from the Pittsburgh standpoint # (Carnegie Library of Pittsburgh, 1927). -# http://www.clpgh.org/exhibit/dst.html +# https://web.archive.org/web/20160517155308/http://www.clpgh.org/exhibit/dst.html # # Shanks says that DST was called "War Time" in the US in 1918 and 1919. # However, DST was imposed by the Standard Time Act of 1918, which @@ -1470,7 +1470,8 @@ Zone America/Goose_Bay -4:01:40 - LMT 1884 # Happy Val -4:00 Canada A%sT -# west Labrador, Nova Scotia, Prince Edward I +# west Labrador, Nova Scotia, Prince Edward I, +# ÃŽles-de-la-Madeleine, Listuguj reserve # From Brian Inglis (2015-07-20): # From the historical weather station records available at: @@ -1489,6 +1490,13 @@ Zone America/Goose_Bay -4:01:40 - LMT 1884 # Happy Val # in Canada to observe DST in 1971 but not 1970; for now we'll assume # this is a typo. +# From Jeffery Nichols (2020-01-09): +# America/Halifax ... also applies to ÃŽles-de-la-Madeleine and the Listuguj +# reserve in Quebec. Officially, this came into effect on January 1, 2007 +# (Legal Time Act, CQLR c T-5.1), but the legislative debates surrounding that +# bill say that it is "accommodating the customs and practices" of those +# regions, which suggests that they have always been in-line with Halifax. + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Halifax 1916 only - Apr 1 0:00 1:00 D Rule Halifax 1916 only - Oct 1 0:00 0 S @@ -1582,19 +1590,20 @@ Zone America/Moncton -4:19:08 - LMT 1883 Dec 9 # Quebec -# From Paul Eggert (2015-03-24): +# From Paul Eggert (2020-01-10): # See America/Toronto for most of Quebec, including Montreal. +# See America/Halifax for the ÃŽles de la Madeleine and the Listuguj reserve. # # Matthews and Vincent (1998) also write that Quebec east of the -63 # meridian is supposed to observe AST, but residents as far east as # Natashquan use EST/EDT, and residents east of Natashquan use AST. # The Quebec department of justice writes in # "The situation in Minganie and Basse-Côte-Nord" -# http://www.justice.gouv.qc.ca/english/publications/generale/temps-minganie-a.htm +# https://www.justice.gouv.qc.ca/en/department/ministre/functions-and-responsabilities/legal-time-in-quebec/the-situation-in-minganie-and-basse-cote-nord/ # that the coastal strip from just east of Natashquan to Blanc-Sablon # observes Atlantic standard time all year round. -# https://www.assnat.qc.ca/Media/Process.aspx?MediaId=ANQ.Vigie.Bll.DocumentGenerique_8845en -# says this common practice was codified into law as of 2007. +# This common practice was codified into law as of 2007; see Legal Time Act, +# CQLR c T-5.1 . # For lack of better info, guess this practice began around 1970, contra to # Shanks & Pottenger who have this region observing AST/ADT. @@ -1613,6 +1622,15 @@ Zone America/Blanc-Sablon -3:48:28 - LMT 1884 # Nipigon (EST) and Rainy River (CST) are the largest that we know of. # Far west Ontario is like Winnipeg; far east Quebec is like Halifax. +# From Jeffery Nichols (2020-02-06): +# According to the [Shanks] atlas, those western Ontario zones are huge, +# covering most of Ontario northwest of Sault Ste Marie and Timmins. +# The zones seem to include towns bigger than the ones they're named after, +# like Dryden in America/Rainy_River and Wawa (and maybe Attawapiskat) in +# America/Nipigon. I assume it's too much trouble to change the name of the +# zone (like when you found out that America/Glace_Bay includes Sydney, Nova +# Scotia).... + # From Mark Brader (2003-07-26): # [According to the Toronto Star] Orillia, Ontario, adopted DST # effective Saturday, 1912-06-22, 22:00; the article mentions that @@ -2419,6 +2437,18 @@ Zone America/Creston -7:46:04 - LMT 1884 # obtained in November 2008 should be ignored... # I apologize for reporting incorrect information in 2008. +# From Tim Parenti (2020-03-05): +# The government of Yukon announced [yesterday] the cessation of seasonal time +# changes. "After clocks are pushed ahead one hour on March 8, the territory +# will remain on [UTC-07]. ... [The government] found 93 per cent of +# respondents wanted to end seasonal time changes and, of that group, 70 per +# cent wanted 'permanent Pacific Daylight Saving Time.'" +# https://www.cbc.ca/news/canada/north/yukon-end-daylight-saving-time-1.5486358 +# +# Although the government press release prefers PDT, we prefer MST for +# consistency with nearby Dawson Creek, Creston, and Fort Nelson. +# https://yukon.ca/en/news/yukon-end-seasonal-time-change + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule NT_YK 1918 only - Apr 14 2:00 1:00 D Rule NT_YK 1918 only - Oct 27 2:00 0 S @@ -2473,11 +2503,13 @@ Zone America/Inuvik 0 - -00 1953 # Inuvik founded Zone America/Whitehorse -9:00:12 - LMT 1900 Aug 20 -9:00 NT_YK Y%sT 1967 May 28 0:00 -8:00 NT_YK P%sT 1980 - -8:00 Canada P%sT + -8:00 Canada P%sT 2020 Mar 8 2:00 + -7:00 - MST Zone America/Dawson -9:17:40 - LMT 1900 Aug 20 -9:00 NT_YK Y%sT 1973 Oct 28 0:00 -8:00 NT_YK P%sT 1980 - -8:00 Canada P%sT + -8:00 Canada P%sT 2020 Mar 8 2:00 + -7:00 - MST ############################################################################### Modified: stable/11/contrib/tzdata/theory.html ============================================================================== --- stable/11/contrib/tzdata/theory.html Mon Apr 27 03:56:47 2020 (r360361) +++ stable/11/contrib/tzdata/theory.html Mon Apr 27 03:57:17 2020 (r360362) @@ -298,6 +298,10 @@ in decreasing order of importance: If a name is changed, put its old spelling in the 'backward' file. This means old spellings will continue to work. + Ordinarily a name change should occur only in the rare case when + a location's consensus English-language spelling changes; for example, + in 2008 Asia/Calcutta was renamed to Asia/Kolkata + due to long-time widespread use of the new city name instead of the old.
  • @@ -1054,23 +1058,6 @@ an older zic. The functions were inspired by NetBSD.
  • - A function tzsetwall has been added to arrange for the - system's best approximation to local (wall clock) time to be delivered - by subsequent calls to localtime. - Source code for portable applications that "must" run on local - time should call tzsetwall; - if such code is moved to "old" systems that do not - provide tzsetwall, you will not be able to generate an - executable program. - (These functions also arrange for local time to - be used if tzset is called – directly or - indirectly – and there is no TZ environment - variable; portable applications should not, however, rely on this - behavior since it is not the way SVR2 - systems behave.) -
  • -
  • Negative time_t values are supported, on systems where time_t is signed.
  • @@ -1137,7 +1124,7 @@ The vestigial APIs are: may now examine localtime(&clock)->tm_zone (if TM_ZONE is defined) or tzname[localtime(&clock)->tm_isdst] - (if HAVE_TZNAME is defined) to learn the correct time + (if HAVE_TZNAME is nonzero) to learn the correct time zone abbreviation to use.
  • Modified: stable/11/contrib/tzdata/version ============================================================================== --- stable/11/contrib/tzdata/version Mon Apr 27 03:56:47 2020 (r360361) +++ stable/11/contrib/tzdata/version Mon Apr 27 03:57:17 2020 (r360362) @@ -1 +1 @@ -2019c +2020a Modified: stable/11/contrib/tzdata/zone.tab ============================================================================== --- stable/11/contrib/tzdata/zone.tab Mon Apr 27 03:56:47 2020 (r360361) +++ stable/11/contrib/tzdata/zone.tab Mon Apr 27 03:57:17 2020 (r360362) @@ -131,8 +131,8 @@ CA +4906-11631 America/Creston MST - BC (Creston) CA +5946-12014 America/Dawson_Creek MST - BC (Dawson Cr, Ft St John) CA +5848-12242 America/Fort_Nelson MST - BC (Ft Nelson) CA +4916-12307 America/Vancouver Pacific - BC (most areas) -CA +6043-13503 America/Whitehorse Pacific - Yukon (south) -CA +6404-13925 America/Dawson Pacific - Yukon (north) +CA +6043-13503 America/Whitehorse Pacific - Yukon (east) +CA +6404-13925 America/Dawson Pacific - Yukon (west) CC -1210+09655 Indian/Cocos *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Mon Apr 27 04:47: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 AF1152C775F; Mon, 27 Apr 2020 04:47:03 +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 499XLb44wJz4NZN; Mon, 27 Apr 2020 04:47:03 +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 82DCC4E0D; Mon, 27 Apr 2020 04:47:03 +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 03R4l3do060583; Mon, 27 Apr 2020 04:47:03 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03R4l2nB060579; Mon, 27 Apr 2020 04:47:02 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202004270447.03R4l2nB060579@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Mon, 27 Apr 2020 04:47: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: r360363 - in stable/12/sys: compat/linux kern X-SVN-Group: stable-12 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in stable/12/sys: compat/linux kern X-SVN-Commit-Revision: 360363 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, 27 Apr 2020 04:47:03 -0000 Author: jhb Date: Mon Apr 27 04:47:02 2020 New Revision: 360363 URL: https://svnweb.freebsd.org/changeset/base/360363 Log: MFC 350012: Always set td_errno to the error value of a system call. Early errors prior to a system call did not set td_errno. This commit sets td_errno for all errors during syscallenter(). As a result, syscallret() can now always use td_errno without checking TDP_NERRNO. Compared to the original commit, this change preserves the ABI of struct thread and instead adds explicit zero'ing of td_errno. Modified: stable/12/sys/compat/linux/linux_fork.c stable/12/sys/kern/kern_fork.c stable/12/sys/kern/kern_kthread.c stable/12/sys/kern/kern_thr.c stable/12/sys/kern/subr_syscall.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/compat/linux/linux_fork.c ============================================================================== --- stable/12/sys/compat/linux/linux_fork.c Mon Apr 27 03:57:17 2020 (r360362) +++ stable/12/sys/compat/linux/linux_fork.c Mon Apr 27 04:47:02 2020 (r360363) @@ -310,6 +310,7 @@ linux_clone_thread(struct thread *td, struct linux_clo bzero(&newtd->td_startzero, __rangeof(struct thread, td_startzero, td_endzero)); newtd->td_pflags2 = 0; + newtd->td_errno = 0; bcopy(&td->td_startcopy, &newtd->td_startcopy, __rangeof(struct thread, td_startcopy, td_endcopy)); Modified: stable/12/sys/kern/kern_fork.c ============================================================================== --- stable/12/sys/kern/kern_fork.c Mon Apr 27 03:57:17 2020 (r360362) +++ stable/12/sys/kern/kern_fork.c Mon Apr 27 04:47:02 2020 (r360363) @@ -490,6 +490,7 @@ do_fork(struct thread *td, struct fork_req *fr, struct bzero(&td2->td_startzero, __rangeof(struct thread, td_startzero, td_endzero)); td2->td_pflags2 = 0; + td2->td_errno = 0; bcopy(&td->td_startcopy, &td2->td_startcopy, __rangeof(struct thread, td_startcopy, td_endcopy)); Modified: stable/12/sys/kern/kern_kthread.c ============================================================================== --- stable/12/sys/kern/kern_kthread.c Mon Apr 27 03:57:17 2020 (r360362) +++ stable/12/sys/kern/kern_kthread.c Mon Apr 27 04:47:02 2020 (r360363) @@ -284,6 +284,7 @@ kthread_add(void (*func)(void *), void *arg, struct pr bzero(&newtd->td_startzero, __rangeof(struct thread, td_startzero, td_endzero)); newtd->td_pflags2 = 0; + newtd->td_errno = 0; bcopy(&oldtd->td_startcopy, &newtd->td_startcopy, __rangeof(struct thread, td_startcopy, td_endcopy)); Modified: stable/12/sys/kern/kern_thr.c ============================================================================== --- stable/12/sys/kern/kern_thr.c Mon Apr 27 03:57:17 2020 (r360362) +++ stable/12/sys/kern/kern_thr.c Mon Apr 27 04:47:02 2020 (r360363) @@ -236,6 +236,7 @@ thread_create(struct thread *td, struct rtprio *rtp, bzero(&newtd->td_startzero, __rangeof(struct thread, td_startzero, td_endzero)); newtd->td_pflags2 = 0; + newtd->td_errno = 0; bcopy(&td->td_startcopy, &newtd->td_startcopy, __rangeof(struct thread, td_startcopy, td_endcopy)); newtd->td_proc = td->td_proc; Modified: stable/12/sys/kern/subr_syscall.c ============================================================================== --- stable/12/sys/kern/subr_syscall.c Mon Apr 27 03:57:17 2020 (r360362) +++ stable/12/sys/kern/subr_syscall.c Mon Apr 27 04:47:02 2020 (r360363) @@ -85,8 +85,10 @@ syscallenter(struct thread *td) (uintptr_t)td, "pid:%d", td->td_proc->p_pid, "arg0:%p", sa->args[0], "arg1:%p", sa->args[1], "arg2:%p", sa->args[2]); - if (error != 0) + if (error != 0) { + td->td_errno = error; goto retval; + } STOPEVENT(p, S_SCE, sa->narg); if ((p->p_flag & P_TRACED) != 0) { @@ -105,8 +107,10 @@ syscallenter(struct thread *td) if (KTRPOINT(td, KTR_SYSCALL)) ktrsyscall(sa->code, sa->narg, sa->args); #endif - if (error != 0) + if (error != 0) { + td->td_errno = error; goto retval; + } } #ifdef CAPABILITY_MODE @@ -116,14 +120,16 @@ syscallenter(struct thread *td) */ if (IN_CAPABILITY_MODE(td) && !(sa->callp->sy_flags & SYF_CAPENABLED)) { - error = ECAPMODE; + td->td_errno = error = ECAPMODE; goto retval; } #endif error = syscall_thread_enter(td, sa->callp); - if (error != 0) + if (error != 0) { + td->td_errno = error; goto retval; + } #ifdef KDTRACE_HOOKS /* Give the syscall:::entry DTrace probe a chance to fire. */ @@ -131,6 +137,9 @@ syscallenter(struct thread *td) (*systrace_probe_func)(sa, SYSTRACE_ENTRY, 0); #endif + /* Let system calls set td_errno directly. */ + td->td_pflags &= ~TDP_NERRNO; + AUDIT_SYSCALL_ENTER(sa->code, td); error = (sa->callp->sy_call)(td, sa->args); AUDIT_SYSCALL_EXIT(error, td); @@ -162,12 +171,12 @@ syscallenter(struct thread *td) } static inline void -syscallret(struct thread *td, int error) +syscallret(struct thread *td, int error __unused) { struct proc *p, *p2; struct syscall_args *sa; ksiginfo_t ksi; - int traced, error1; + int traced; KASSERT((td->td_pflags & TDP_FORKING) == 0, ("fork() did not clear TDP_FORKING upon completion")); @@ -176,12 +185,10 @@ syscallret(struct thread *td, int error) sa = &td->td_sa; if ((trap_enotcap || (p->p_flag2 & P2_TRAPCAP) != 0) && IN_CAPABILITY_MODE(td)) { - error1 = (td->td_pflags & TDP_NERRNO) == 0 ? error : - td->td_errno; - if (error1 == ENOTCAPABLE || error1 == ECAPMODE) { + if (td->td_errno == ENOTCAPABLE || td->td_errno == ECAPMODE) { ksiginfo_init_trap(&ksi); ksi.ksi_signo = SIGTRAP; - ksi.ksi_errno = error1; + ksi.ksi_errno = td->td_errno; ksi.ksi_code = TRAP_CAP; trapsignal(td, &ksi); } @@ -194,11 +201,9 @@ syscallret(struct thread *td, int error) #ifdef KTRACE if (KTRPOINT(td, KTR_SYSRET)) { - ktrsysret(sa->code, (td->td_pflags & TDP_NERRNO) == 0 ? - error : td->td_errno, td->td_retval[0]); + ktrsysret(sa->code, td->td_errno, td->td_retval[0]); } #endif - td->td_pflags &= ~TDP_NERRNO; if (p->p_flag & P_TRACED) { traced = 1; From owner-svn-src-all@freebsd.org Mon Apr 27 05:35: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 104D22A8554; Mon, 27 Apr 2020 05:35:29 +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 499YQS16wJz4Qs2; Mon, 27 Apr 2020 05:35:28 +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 1391F5774; Mon, 27 Apr 2020 05:35:27 +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 03R5ZQK5091340; Mon, 27 Apr 2020 05:35:26 GMT (envelope-from jah@FreeBSD.org) Received: (from jah@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03R5ZQdj091339; Mon, 27 Apr 2020 05:35:26 GMT (envelope-from jah@FreeBSD.org) Message-Id: <202004270535.03R5ZQdj091339@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jah set sender to jah@FreeBSD.org using -f From: "Jason A. Harmening" Date: Mon, 27 Apr 2020 05:35:26 +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: r360368 - stable/12/usr.sbin/config X-SVN-Group: stable-12 X-SVN-Commit-Author: jah X-SVN-Commit-Paths: stable/12/usr.sbin/config X-SVN-Commit-Revision: 360368 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, 27 Apr 2020 05:35:29 -0000 Author: jah Date: Mon Apr 27 05:35:26 2020 New Revision: 360368 URL: https://svnweb.freebsd.org/changeset/base/360368 Log: MFC r359815: config(8): use sbuf to manage line buffers Modified: stable/12/usr.sbin/config/main.c Directory Properties: stable/12/ (props changed) Modified: stable/12/usr.sbin/config/main.c ============================================================================== --- stable/12/usr.sbin/config/main.c Mon Apr 27 05:27:39 2020 (r360367) +++ stable/12/usr.sbin/config/main.c Mon Apr 27 05:35:26 2020 (r360368) @@ -113,6 +113,8 @@ struct hdr_list { struct hdr_list *h_next; } *htab; +static struct sbuf *line_buf = NULL; + /* * Config builds a set of files for building a UNIX * system given a description of the desired system. @@ -304,6 +306,29 @@ usage(void) exit(EX_USAGE); } +static void +init_line_buf(void) +{ + if (line_buf == NULL) { + line_buf = sbuf_new(NULL, NULL, 80, SBUF_AUTOEXTEND); + if (line_buf == NULL) { + errx(EXIT_FAILURE, "failed to allocate line buffer"); + } + } else { + sbuf_clear(line_buf); + } +} + +static char * +get_line_buf(void) +{ + if (sbuf_finish(line_buf) != 0) { + errx(EXIT_FAILURE, "failed to generate line buffer, " + "partial line = %s", sbuf_data(line_buf)); + } + return sbuf_data(line_buf); +} + /* * get_word * returns EOF on end of file @@ -313,11 +338,10 @@ usage(void) char * get_word(FILE *fp) { - static char line[160]; int ch; - char *cp; int escaped_nl = 0; + init_line_buf(); begin: while ((ch = getc(fp)) != EOF) if (ch != ' ' && ch != '\t') @@ -336,29 +360,20 @@ begin: else return (NULL); } - cp = line; - *cp++ = ch; + sbuf_putc(line_buf, ch); /* Negation operator is a word by itself. */ if (ch == '!') { - *cp = 0; - return (line); + return get_line_buf(); } - while ((ch = getc(fp)) != EOF && cp < line + sizeof(line)) { + while ((ch = getc(fp)) != EOF) { if (isspace(ch)) break; - *cp++ = ch; + sbuf_putc(line_buf, 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); (void) ungetc(ch, fp); - return (line); + return (get_line_buf()); } /* @@ -369,11 +384,10 @@ begin: char * get_quoted_word(FILE *fp) { - static char line[512]; int ch; - char *cp; int escaped_nl = 0; + init_line_buf(); begin: while ((ch = getc(fp)) != EOF) if (ch != ' ' && ch != '\t') @@ -392,7 +406,6 @@ begin: else return (NULL); } - cp = line; if (ch == '"' || ch == '\'') { int quote = ch; @@ -401,9 +414,8 @@ begin: if (ch == quote && !escaped_nl) break; if (ch == '\n' && !escaped_nl) { - *cp = 0; printf("config: missing quote reading `%s'\n", - line); + get_line_buf()); exit(2); } if (ch == '\\' && !escaped_nl) { @@ -411,38 +423,23 @@ begin: continue; } 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; + sbuf_putc(line_buf, '\\'); + sbuf_putc(line_buf, ch); escaped_nl = 0; } } else { - *cp++ = ch; - while ((ch = getc(fp)) != EOF && cp < line + sizeof(line)) { + sbuf_putc(line_buf, ch); + while ((ch = getc(fp)) != EOF) { if (isspace(ch)) break; - *cp++ = ch; + sbuf_putc(line_buf, 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); } - *cp = 0; if (ch == EOF) return ((char *)EOF); - return (line); + return (get_line_buf()); } /* From owner-svn-src-all@freebsd.org Mon Apr 27 09:13: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 8C4032B02A5; Mon, 27 Apr 2020 09:13:22 +0000 (UTC) (envelope-from takawata@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 499fFt3DVNz3Crh; Mon, 27 Apr 2020 09:13:22 +0000 (UTC) (envelope-from takawata@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 69BD680A0; Mon, 27 Apr 2020 09:13:22 +0000 (UTC) (envelope-from takawata@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03R9DMvZ027730; Mon, 27 Apr 2020 09:13:22 GMT (envelope-from takawata@FreeBSD.org) Received: (from takawata@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03R9DMnA027729; Mon, 27 Apr 2020 09:13:22 GMT (envelope-from takawata@FreeBSD.org) Message-Id: <202004270913.03R9DMnA027729@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: takawata set sender to takawata@FreeBSD.org using -f From: Takanori Watanabe Date: Mon, 27 Apr 2020 09:13:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360369 - head/usr.sbin/bluetooth/hccontrol X-SVN-Group: head X-SVN-Commit-Author: takawata X-SVN-Commit-Paths: head/usr.sbin/bluetooth/hccontrol X-SVN-Commit-Revision: 360369 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, 27 Apr 2020 09:13:22 -0000 Author: takawata Date: Mon Apr 27 09:13:22 2020 New Revision: 360369 URL: https://svnweb.freebsd.org/changeset/base/360369 Log: Resolve vendor id to string. Modified: head/usr.sbin/bluetooth/hccontrol/node.c Modified: head/usr.sbin/bluetooth/hccontrol/node.c ============================================================================== --- head/usr.sbin/bluetooth/hccontrol/node.c Mon Apr 27 05:35:26 2020 (r360368) +++ head/usr.sbin/bluetooth/hccontrol/node.c Mon Apr 27 09:13:22 2020 (r360369) @@ -267,7 +267,8 @@ static int hci_dump_adv(uint8_t *data, int length) case 0xff: if (elemlen < 2) break; - printf("Vendor:%04x:", data[0]|data[1]<<8); + printf("Vendor:%s:", + hci_manufacturer2str(data[0]|data[1]<<8)); for (i = 2; i < MIN(length,elemlen); i++) { printf("%02x ",data[i]); } From owner-svn-src-all@freebsd.org Mon Apr 27 09: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 5E7072B15A6; Mon, 27 Apr 2020 09:44:38 +0000 (UTC) (envelope-from 0mp@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 499fxy1h46z3GDQ; Mon, 27 Apr 2020 09:44:38 +0000 (UTC) (envelope-from 0mp@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 34E38863C; Mon, 27 Apr 2020 09:44:38 +0000 (UTC) (envelope-from 0mp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03R9icZJ046432; Mon, 27 Apr 2020 09:44:38 GMT (envelope-from 0mp@FreeBSD.org) Received: (from 0mp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03R9icwv046431; Mon, 27 Apr 2020 09:44:38 GMT (envelope-from 0mp@FreeBSD.org) Message-Id: <202004270944.03R9icwv046431@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: 0mp set sender to 0mp@FreeBSD.org using -f From: Mateusz Piotrowski <0mp@FreeBSD.org> Date: Mon, 27 Apr 2020 09:44:38 +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: r360370 - stable/11/lib/libc/sys X-SVN-Group: stable-11 X-SVN-Commit-Author: 0mp X-SVN-Commit-Paths: stable/11/lib/libc/sys X-SVN-Commit-Revision: 360370 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, 27 Apr 2020 09:44:38 -0000 Author: 0mp (doc,ports committer) Date: Mon Apr 27 09:44:37 2020 New Revision: 360370 URL: https://svnweb.freebsd.org/changeset/base/360370 Log: MFC 360284: Fix a typo Reported by: pstef Modified: stable/11/lib/libc/sys/procctl.2 Directory Properties: stable/11/ (props changed) Modified: stable/11/lib/libc/sys/procctl.2 ============================================================================== --- stable/11/lib/libc/sys/procctl.2 Mon Apr 27 09:13:22 2020 (r360369) +++ stable/11/lib/libc/sys/procctl.2 Mon Apr 27 09:44:37 2020 (r360370) @@ -29,7 +29,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 31, 2019 +.Dd April 25, 2020 .Dt PROCCTL 2 .Os .Sh NAME @@ -591,7 +591,7 @@ or invalid signal number. .El .Sh SEE ALSO .Xr dtrace 1 , -.Xr cap_enter 2, +.Xr cap_enter 2 , .Xr kill 2 , .Xr ktrace 2 , .Xr ptrace 2 , From owner-svn-src-all@freebsd.org Mon Apr 27 09:45: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 1034A2B1629; Mon, 27 Apr 2020 09:45:20 +0000 (UTC) (envelope-from 0mp@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 499fyl6gFXz3GPq; Mon, 27 Apr 2020 09:45:19 +0000 (UTC) (envelope-from 0mp@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 E01F1863E; Mon, 27 Apr 2020 09:45:19 +0000 (UTC) (envelope-from 0mp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03R9jJY9046523; Mon, 27 Apr 2020 09:45:19 GMT (envelope-from 0mp@FreeBSD.org) Received: (from 0mp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03R9jJXe046522; Mon, 27 Apr 2020 09:45:19 GMT (envelope-from 0mp@FreeBSD.org) Message-Id: <202004270945.03R9jJXe046522@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: 0mp set sender to 0mp@FreeBSD.org using -f From: Mateusz Piotrowski <0mp@FreeBSD.org> Date: Mon, 27 Apr 2020 09:45: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: r360371 - stable/12/lib/libc/sys X-SVN-Group: stable-12 X-SVN-Commit-Author: 0mp X-SVN-Commit-Paths: stable/12/lib/libc/sys X-SVN-Commit-Revision: 360371 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, 27 Apr 2020 09:45:20 -0000 Author: 0mp (doc,ports committer) Date: Mon Apr 27 09:45:19 2020 New Revision: 360371 URL: https://svnweb.freebsd.org/changeset/base/360371 Log: MFC 360284: Fix a typo Reported by: pstef Modified: stable/12/lib/libc/sys/procctl.2 Directory Properties: stable/12/ (props changed) Modified: stable/12/lib/libc/sys/procctl.2 ============================================================================== --- stable/12/lib/libc/sys/procctl.2 Mon Apr 27 09:44:37 2020 (r360370) +++ stable/12/lib/libc/sys/procctl.2 Mon Apr 27 09:45:19 2020 (r360371) @@ -29,7 +29,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 31, 2019 +.Dd April 25, 2020 .Dt PROCCTL 2 .Os .Sh NAME @@ -631,7 +631,7 @@ or invalid signal number. .El .Sh SEE ALSO .Xr dtrace 1 , -.Xr cap_enter 2, +.Xr cap_enter 2 , .Xr kill 2 , .Xr ktrace 2 , .Xr ptrace 2 , From owner-svn-src-all@freebsd.org Mon Apr 27 10:00: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 939E02B1B7E; Mon, 27 Apr 2020 10:00:46 +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 499gJZ3S5pz3HB2; Mon, 27 Apr 2020 10:00:46 +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 71D6D884C; Mon, 27 Apr 2020 10:00:46 +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 03RA0kTY052943; Mon, 27 Apr 2020 10:00:46 GMT (envelope-from afedorov@FreeBSD.org) Received: (from afedorov@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RA0kXK052942; Mon, 27 Apr 2020 10:00:46 GMT (envelope-from afedorov@FreeBSD.org) Message-Id: <202004271000.03RA0kXK052942@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: afedorov set sender to afedorov@FreeBSD.org using -f From: Aleksandr Fedorov Date: Mon, 27 Apr 2020 10:00:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360372 - head/sys/netgraph X-SVN-Group: head X-SVN-Commit-Author: afedorov X-SVN-Commit-Paths: head/sys/netgraph X-SVN-Commit-Revision: 360372 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, 27 Apr 2020 10:00:46 -0000 Author: afedorov Date: Mon Apr 27 10:00:46 2020 New Revision: 360372 URL: https://svnweb.freebsd.org/changeset/base/360372 Log: ng_eiface: fix kernel panic due to the racecondition in ng_eiface shutdown. PR: 244247 Reported by: Vladislav V. Prodan Reviewed by: vmaffione, lutz_donnerhacke.de Approved by: vmaffione (mentor) Sponsored by: vstack.com Differential Revision: https://reviews.freebsd.org/D24557 Modified: head/sys/netgraph/ng_eiface.c Modified: head/sys/netgraph/ng_eiface.c ============================================================================== --- head/sys/netgraph/ng_eiface.c Mon Apr 27 09:45:19 2020 (r360371) +++ head/sys/netgraph/ng_eiface.c Mon Apr 27 10:00:46 2020 (r360372) @@ -623,8 +623,8 @@ ng_eiface_rmnode(node_p node) * hence we have to change the current vnet context here. */ CURVNET_SET_QUIET(ifp->if_vnet); - ifmedia_removeall(&priv->media); ether_ifdetach(ifp); + ifmedia_removeall(&priv->media); if_free(ifp); CURVNET_RESTORE(); free_unr(V_ng_eiface_unit, priv->unit); From owner-svn-src-all@freebsd.org Mon Apr 27 13:26: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 BC2412B841C; Mon, 27 Apr 2020 13:26:43 +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 499ltC4fLkz42Bb; Mon, 27 Apr 2020 13:26:43 +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 98A0BB0A0; Mon, 27 Apr 2020 13:26:43 +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 03RDQhJU083385; Mon, 27 Apr 2020 13:26:43 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RDQhw8083384; Mon, 27 Apr 2020 13:26:43 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202004271326.03RDQhw8083384@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 27 Apr 2020 13:26:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360373 - head/sys/dev/iwm X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/dev/iwm X-SVN-Commit-Revision: 360373 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, 27 Apr 2020 13:26:43 -0000 Author: markj Date: Mon Apr 27 13:26:43 2020 New Revision: 360373 URL: https://svnweb.freebsd.org/changeset/base/360373 Log: iwm: Print the command code for any unhandled commands. Reported by: Marc Veldman MFC after: 1 week Modified: head/sys/dev/iwm/if_iwm.c Modified: head/sys/dev/iwm/if_iwm.c ============================================================================== --- head/sys/dev/iwm/if_iwm.c Mon Apr 27 10:00:46 2020 (r360372) +++ head/sys/dev/iwm/if_iwm.c Mon Apr 27 13:26:43 2020 (r360373) @@ -5623,9 +5623,8 @@ iwm_handle_rxb(struct iwm_softc *sc, struct mbuf *m) default: device_printf(sc->sc_dev, - "frame %d/%d %x UNHANDLED (this should " - "not happen)\n", qid & ~0x80, idx, - pkt->len_n_flags); + "code %x, frame %d/%d %x unhandled\n", + code, qid & ~0x80, idx, pkt->len_n_flags); break; } From owner-svn-src-all@freebsd.org Mon Apr 27 13:54: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 2E8B92B96B4; Mon, 27 Apr 2020 13:54:01 +0000 (UTC) (envelope-from mjg@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 499mTj0TtSz44Jp; Mon, 27 Apr 2020 13:54:01 +0000 (UTC) (envelope-from mjg@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 0BC5AB65B; Mon, 27 Apr 2020 13:54:01 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03RDs0aU002275; Mon, 27 Apr 2020 13:54:00 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RDs0bP002272; Mon, 27 Apr 2020 13:54:00 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202004271354.03RDs0bP002272@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Mon, 27 Apr 2020 13:54:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360374 - in head/sys: kern sys X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: in head/sys: kern sys X-SVN-Commit-Revision: 360374 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, 27 Apr 2020 13:54:01 -0000 Author: mjg Date: Mon Apr 27 13:54:00 2020 New Revision: 360374 URL: https://svnweb.freebsd.org/changeset/base/360374 Log: pwd: unbreak repeated calls to set_rootvnode Prior to the change the once set pointer would never be updated. Unbreaks reboot -r. Reported by: Ross Gohlke Modified: head/sys/kern/kern_descrip.c head/sys/kern/vfs_mountroot.c head/sys/sys/filedesc.h Modified: head/sys/kern/kern_descrip.c ============================================================================== --- head/sys/kern/kern_descrip.c Mon Apr 27 13:26:43 2020 (r360373) +++ head/sys/kern/kern_descrip.c Mon Apr 27 13:54:00 2020 (r360374) @@ -3475,6 +3475,27 @@ pwd_ensure_dirs(void) pwd_drop(oldpwd); } +void +pwd_set_rootvnode(void) +{ + struct filedesc *fdp; + struct pwd *oldpwd, *newpwd; + + fdp = curproc->p_fd; + + newpwd = pwd_alloc(); + FILEDESC_XLOCK(fdp); + oldpwd = FILEDESC_XLOCKED_LOAD_PWD(fdp); + vrefact(rootvnode); + newpwd->pwd_cdir = rootvnode; + vrefact(rootvnode); + newpwd->pwd_rdir = rootvnode; + pwd_fill(oldpwd, newpwd); + pwd_set(fdp, newpwd); + FILEDESC_XUNLOCK(fdp); + pwd_drop(oldpwd); +} + /* * Scan all active processes and prisons to see if any of them have a current * or root directory of `olddp'. If so, replace them with the new mount point. Modified: head/sys/kern/vfs_mountroot.c ============================================================================== --- head/sys/kern/vfs_mountroot.c Mon Apr 27 13:26:43 2020 (r360373) +++ head/sys/kern/vfs_mountroot.c Mon Apr 27 13:54:00 2020 (r360374) @@ -243,7 +243,7 @@ set_rootvnode(void) VOP_UNLOCK(rootvnode); - pwd_ensure_dirs(); + pwd_set_rootvnode(); } static int Modified: head/sys/sys/filedesc.h ============================================================================== --- head/sys/sys/filedesc.h Mon Apr 27 13:26:43 2020 (r360373) +++ head/sys/sys/filedesc.h Mon Apr 27 13:54:00 2020 (r360374) @@ -298,6 +298,7 @@ fd_modified(struct filedesc *fdp, int fd, seqc_t seqc) void pwd_chdir(struct thread *td, struct vnode *vp); int pwd_chroot(struct thread *td, struct vnode *vp); void pwd_ensure_dirs(void); +void pwd_set_rootvnode(void); struct pwd *pwd_hold_filedesc(struct filedesc *fdp); struct pwd *pwd_hold(struct thread *td); From owner-svn-src-all@freebsd.org Mon Apr 27 14:02: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 5FACB2B9C01; Mon, 27 Apr 2020 14:02:26 +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 499mgQ1sl2z454W; Mon, 27 Apr 2020 14:02:26 +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 3B5C0B836; Mon, 27 Apr 2020 14:02:26 +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 03RE2QwE008304; Mon, 27 Apr 2020 14:02:26 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RE2Okl008298; Mon, 27 Apr 2020 14:02:24 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202004271402.03RE2Okl008298@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Mon, 27 Apr 2020 14:02: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: r360375 - stable/12/sbin/nvmecontrol X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/12/sbin/nvmecontrol X-SVN-Commit-Revision: 360375 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, 27 Apr 2020 14:02:26 -0000 Author: mav Date: Mon Apr 27 14:02:24 2020 New Revision: 360375 URL: https://svnweb.freebsd.org/changeset/base/360375 Log: MFC r360117: Open device with O_RDONLY when command is non-invasive. This allows to use some of the subcommands against mounted nvd devices. Modified: stable/12/sbin/nvmecontrol/identify.c stable/12/sbin/nvmecontrol/logpage.c stable/12/sbin/nvmecontrol/ns.c stable/12/sbin/nvmecontrol/nsid.c stable/12/sbin/nvmecontrol/nvmecontrol.c stable/12/sbin/nvmecontrol/nvmecontrol.h stable/12/sbin/nvmecontrol/resv.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sbin/nvmecontrol/identify.c ============================================================================== --- stable/12/sbin/nvmecontrol/identify.c Mon Apr 27 13:54:00 2020 (r360374) +++ stable/12/sbin/nvmecontrol/identify.c Mon Apr 27 14:02:24 2020 (r360375) @@ -241,7 +241,7 @@ identify(const struct cmd *f, int argc, char *argv[]) if (arg_parse(argc, argv, f)) return; - open_dev(opt.dev, &fd, 1, 1); + open_dev(opt.dev, &fd, 0, 1); get_nsid(fd, &path, &nsid); if (nsid != 0) { /* @@ -251,7 +251,7 @@ identify(const struct cmd *f, int argc, char *argv[]) * the IDENTIFY command itself. */ close(fd); - open_dev(path, &fd, 1, 1); + open_dev(path, &fd, 0, 1); } free(path); if (opt.nsid != NONE) Modified: stable/12/sbin/nvmecontrol/logpage.c ============================================================================== --- stable/12/sbin/nvmecontrol/logpage.c Mon Apr 27 13:54:00 2020 (r360374) +++ stable/12/sbin/nvmecontrol/logpage.c Mon Apr 27 14:02:24 2020 (r360375) @@ -687,13 +687,13 @@ logpage(const struct cmd *f, int argc, char *argv[]) fprintf(stderr, "Missing page_id (-p).\n"); arg_help(argc, argv, f); } - open_dev(opt.dev, &fd, 1, 1); + open_dev(opt.dev, &fd, 0, 1); get_nsid(fd, &path, &nsid); if (nsid == 0) { nsid = NVME_GLOBAL_NAMESPACE_TAG; } else { close(fd); - open_dev(path, &fd, 1, 1); + open_dev(path, &fd, 0, 1); } free(path); Modified: stable/12/sbin/nvmecontrol/ns.c ============================================================================== --- stable/12/sbin/nvmecontrol/ns.c Mon Apr 27 13:54:00 2020 (r360374) +++ stable/12/sbin/nvmecontrol/ns.c Mon Apr 27 14:02:24 2020 (r360375) @@ -404,7 +404,7 @@ nsactive(const struct cmd *f, int argc, char *argv[]) if (arg_parse(argc, argv, f)) return; - open_dev(active_opt.dev, &fd, 1, 1); + open_dev(active_opt.dev, &fd, 0, 1); memset(&pt, 0, sizeof(pt)); pt.cmd.opc = NVME_OPC_IDENTIFY; @@ -435,7 +435,7 @@ nsallocated(const struct cmd *f, int argc, char *argv[ if (arg_parse(argc, argv, f)) return; - open_dev(active_opt.dev, &fd, 1, 1); + open_dev(active_opt.dev, &fd, 0, 1); read_controller_data(fd, &cd); /* Check that controller can execute this command. */ @@ -472,7 +472,7 @@ nscontrollers(const struct cmd *f, int argc, char *arg if (arg_parse(argc, argv, f)) return; - open_dev(controllers_opt.dev, &fd, 1, 1); + open_dev(controllers_opt.dev, &fd, 0, 1); read_controller_data(fd, &cd); /* Check that controller can execute this command. */ @@ -781,7 +781,7 @@ nsattached(const struct cmd *f, int argc, char *argv[] fprintf(stderr, "No valid NSID specified\n"); arg_help(argc, argv, f); } - open_dev(attached_opt.dev, &fd, 1, 1); + open_dev(attached_opt.dev, &fd, 0, 1); read_controller_data(fd, &cd); /* Check that controller can execute this command. */ @@ -825,7 +825,7 @@ nsidentify(const struct cmd *f, int argc, char *argv[] fprintf(stderr, "No valid NSID specified\n"); arg_help(argc, argv, f); } - open_dev(identify_opt.dev, &fd, 1, 1); + open_dev(identify_opt.dev, &fd, 0, 1); read_controller_data(fd, &cd); /* Check that controller can execute this command. */ Modified: stable/12/sbin/nvmecontrol/nsid.c ============================================================================== --- stable/12/sbin/nvmecontrol/nsid.c Mon Apr 27 13:54:00 2020 (r360374) +++ stable/12/sbin/nvmecontrol/nsid.c Mon Apr 27 14:02:24 2020 (r360375) @@ -73,7 +73,7 @@ gnsid(const struct cmd *f, int argc, char *argv[]) if (arg_parse(argc, argv, f)) return; - open_dev(nsid_opt.dev, &fd, 1, 1); + open_dev(nsid_opt.dev, &fd, 0, 1); get_nsid(fd, &path, &nsid); close(fd); printf("%s\t%u\n", path, nsid); Modified: stable/12/sbin/nvmecontrol/nvmecontrol.c ============================================================================== --- stable/12/sbin/nvmecontrol/nvmecontrol.c Mon Apr 27 13:54:00 2020 (r360374) +++ stable/12/sbin/nvmecontrol/nvmecontrol.c Mon Apr 27 14:02:24 2020 (r360375) @@ -142,18 +142,17 @@ read_namespace_data(int fd, uint32_t nsid, struct nvme } int -open_dev(const char *str, int *fd, int show_error, int exit_on_error) +open_dev(const char *str, int *fd, int write, int exit_on_error) { char full_path[64]; snprintf(full_path, sizeof(full_path), _PATH_DEV"%s", str); - *fd = open(full_path, O_RDWR); + *fd = open(full_path, write ? O_RDWR : O_RDONLY); if (*fd < 0) { - if (show_error) - warn("could not open %s", full_path); - if (exit_on_error) - exit(1); - else + if (exit_on_error) { + err(1, "could not open %s%s", full_path, + write ? " for write" : ""); + } else return (errno); } Modified: stable/12/sbin/nvmecontrol/nvmecontrol.h ============================================================================== --- stable/12/sbin/nvmecontrol/nvmecontrol.h Mon Apr 27 13:54:00 2020 (r360374) +++ stable/12/sbin/nvmecontrol/nvmecontrol.h Mon Apr 27 14:02:24 2020 (r360375) @@ -68,7 +68,7 @@ void logpage_register(struct logpage_function *p); #define NVME_CTRLR_PREFIX "nvme" #define NVME_NS_PREFIX "ns" -int open_dev(const char *str, int *fd, int show_error, int exit_on_error); +int open_dev(const char *str, int *fd, int write, int exit_on_error); void get_nsid(int fd, char **ctrlr_str, uint32_t *nsid); void read_controller_data(int fd, struct nvme_controller_data *cdata); void read_namespace_data(int fd, uint32_t nsid, struct nvme_namespace_data *nsdata); Modified: stable/12/sbin/nvmecontrol/resv.c ============================================================================== --- stable/12/sbin/nvmecontrol/resv.c Mon Apr 27 13:54:00 2020 (r360374) +++ stable/12/sbin/nvmecontrol/resv.c Mon Apr 27 14:02:24 2020 (r360375) @@ -242,7 +242,7 @@ resvacquire(const struct cmd *f, int argc, char *argv[ if (arg_parse(argc, argv, f)) return; - open_dev(acquire_opt.dev, &fd, 1, 1); + open_dev(acquire_opt.dev, &fd, 0, 1); get_nsid(fd, NULL, &nsid); if (nsid == 0) { fprintf(stderr, "This command require namespace-id\n"); @@ -280,7 +280,7 @@ resvregister(const struct cmd *f, int argc, char *argv if (arg_parse(argc, argv, f)) return; - open_dev(register_opt.dev, &fd, 1, 1); + open_dev(register_opt.dev, &fd, 0, 1); get_nsid(fd, NULL, &nsid); if (nsid == 0) { fprintf(stderr, "This command require namespace-id\n"); @@ -318,7 +318,7 @@ resvrelease(const struct cmd *f, int argc, char *argv[ if (arg_parse(argc, argv, f)) return; - open_dev(release_opt.dev, &fd, 1, 1); + open_dev(release_opt.dev, &fd, 0, 1); get_nsid(fd, NULL, &nsid); if (nsid == 0) { fprintf(stderr, "This command require namespace-id\n"); @@ -358,7 +358,7 @@ resvreport(const struct cmd *f, int argc, char *argv[] if (arg_parse(argc, argv, f)) return; - open_dev(report_opt.dev, &fd, 1, 1); + open_dev(report_opt.dev, &fd, 0, 1); get_nsid(fd, NULL, &nsid); if (nsid == 0) { fprintf(stderr, "This command require namespace-id\n"); From owner-svn-src-all@freebsd.org Mon Apr 27 14:03: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 3FB542B9C9F; Mon, 27 Apr 2020 14:03:25 +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 499mhY1Ngvz45Cd; Mon, 27 Apr 2020 14:03:25 +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 2A787B843; Mon, 27 Apr 2020 14:03:25 +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 03RE3PL8008408; Mon, 27 Apr 2020 14:03:25 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RE3Ouc008404; Mon, 27 Apr 2020 14:03:24 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202004271403.03RE3Ouc008404@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Mon, 27 Apr 2020 14:03: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: r360376 - stable/12/sbin/nvmecontrol X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/12/sbin/nvmecontrol X-SVN-Commit-Revision: 360376 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, 27 Apr 2020 14:03:25 -0000 Author: mav Date: Mon Apr 27 14:03:24 2020 New Revision: 360376 URL: https://svnweb.freebsd.org/changeset/base/360376 Log: MFC r360123: Allow namespace-id specification where it makes sense. It makes tool more convenient to not require user to explicitly convert namespace device name into controller device name. There should be no changes to already existing syntaxes. Modified: stable/12/sbin/nvmecontrol/firmware.c stable/12/sbin/nvmecontrol/ns.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 Mon Apr 27 14:02:24 2020 (r360375) +++ stable/12/sbin/nvmecontrol/firmware.c Mon Apr 27 14:03:24 2020 (r360376) @@ -80,7 +80,7 @@ static const struct opts firmware_opts[] = { #undef OPT static const struct args firmware_args[] = { - { arg_string, &opt.dev, "controller-id" }, + { arg_string, &opt.dev, "controller-id|namespace-id" }, { arg_none, NULL, NULL }, }; @@ -226,6 +226,7 @@ firmware(const struct cmd *f, int argc, char *argv[]) int activate_action, reboot_required; char prompt[64]; void *buf = NULL; + char *path; int32_t size = 0, nsid; uint16_t oacs_fw; uint8_t fw_slot1_ro, fw_num_slots; @@ -262,13 +263,12 @@ firmware(const struct cmd *f, int argc, char *argv[]) } open_dev(opt.dev, &fd, 1, 1); - - /* Check that a controller (and not a namespace) was specified. */ - get_nsid(fd, NULL, &nsid); + get_nsid(fd, &path, &nsid); if (nsid != 0) { close(fd); - arg_help(argc, argv, f); + open_dev(path, &fd, 1, 1); } + free(path); read_controller_data(fd, &cdata); Modified: stable/12/sbin/nvmecontrol/ns.c ============================================================================== --- stable/12/sbin/nvmecontrol/ns.c Mon Apr 27 14:02:24 2020 (r360375) +++ stable/12/sbin/nvmecontrol/ns.c Mon Apr 27 14:03:24 2020 (r360376) @@ -79,7 +79,7 @@ static struct active_options { }; static const struct args active_args[] = { - { arg_string, &active_opt.dev, "controller-id" }, + { arg_string, &active_opt.dev, "controller-id|namespace-id" }, { arg_none, NULL, NULL }, }; @@ -112,7 +112,7 @@ static struct controllers_options { }; static const struct args controllers_args[] = { - { arg_string, &controllers_opt.dev, "controller-id" }, + { arg_string, &controllers_opt.dev, "controller-id|namespace-id" }, { arg_none, NULL, NULL }, }; @@ -178,7 +178,7 @@ static const struct opts create_opts[] = { }; static const struct args create_args[] = { - { arg_string, &create_opt.dev, "controller-id" }, + { arg_string, &create_opt.dev, "controller-id|namespace-id" }, { arg_none, NULL, NULL }, }; @@ -208,7 +208,7 @@ static const struct opts delete_opts[] = { }; static const struct args delete_args[] = { - { arg_string, &delete_opt.dev, "controller-id" }, + { arg_string, &delete_opt.dev, "controller-id|namespace-id" }, { arg_none, NULL, NULL }, }; @@ -242,7 +242,7 @@ static const struct opts attach_opts[] = { }; static const struct args attach_args[] = { - { arg_string, &attach_opt.dev, "controller-id" }, + { arg_string, &attach_opt.dev, "controller-id|namespace-id" }, { arg_none, NULL, NULL }, }; @@ -272,7 +272,7 @@ static const struct opts attached_opts[] = { }; static const struct args attached_args[] = { - { arg_string, &attached_opt.dev, "controller-id" }, + { arg_string, &attached_opt.dev, "controller-id|namespace-id" }, { arg_none, NULL, NULL }, }; @@ -306,7 +306,7 @@ static const struct opts detach_opts[] = { }; static const struct args detach_args[] = { - { arg_string, &detach_opt.dev, "controller-id" }, + { arg_string, &detach_opt.dev, "controller-id|namespace-id" }, { arg_none, NULL, NULL }, }; @@ -344,7 +344,7 @@ static const struct opts identify_opts[] = { }; static const struct args identify_args[] = { - { arg_string, &identify_opt.dev, "controller-id" }, + { arg_string, &identify_opt.dev, "controller-id|namespace-id" }, { arg_none, NULL, NULL }, }; @@ -399,13 +399,28 @@ static void nsactive(const struct cmd *f, int argc, char *argv[]) { struct nvme_pt_command pt; + struct nvme_controller_data cd; int fd, i; + char *path; + uint32_t nsid; uint32_t list[1024]; if (arg_parse(argc, argv, f)) return; open_dev(active_opt.dev, &fd, 0, 1); + get_nsid(fd, &path, &nsid); + if (nsid != 0) { + close(fd); + open_dev(path, &fd, 0, 1); + } + free(path); + read_controller_data(fd, &cd); + /* Check that controller can execute this command. */ + if (((cd.oacs >> NVME_CTRLR_DATA_OACS_NSMGMT_SHIFT) & + NVME_CTRLR_DATA_OACS_NSMGMT_MASK) == 0) + errx(1, "controller does not support namespace management"); + memset(&pt, 0, sizeof(pt)); pt.cmd.opc = NVME_OPC_IDENTIFY; pt.cmd.nsid = htole32(0); @@ -431,11 +446,19 @@ nsallocated(const struct cmd *f, int argc, char *argv[ struct nvme_pt_command pt; struct nvme_controller_data cd; int fd, i; + char *path; + uint32_t nsid; uint32_t list[1024]; if (arg_parse(argc, argv, f)) return; open_dev(active_opt.dev, &fd, 0, 1); + get_nsid(fd, &path, &nsid); + if (nsid != 0) { + close(fd); + open_dev(path, &fd, 0, 1); + } + free(path); read_controller_data(fd, &cd); /* Check that controller can execute this command. */ @@ -468,11 +491,19 @@ nscontrollers(const struct cmd *f, int argc, char *arg struct nvme_pt_command pt; struct nvme_controller_data cd; int fd, i, n; + char *path; + uint32_t nsid; uint16_t clist[2048]; if (arg_parse(argc, argv, f)) return; open_dev(controllers_opt.dev, &fd, 0, 1); + get_nsid(fd, &path, &nsid); + if (nsid != 0) { + close(fd); + open_dev(path, &fd, 0, 1); + } + free(path); read_controller_data(fd, &cd); /* Check that controller can execute this command. */ @@ -513,6 +544,8 @@ nscreate(const struct cmd *f, int argc, char *argv[]) struct nvme_controller_data cd; struct nvme_namespace_data nsdata; int fd, result; + char *path; + uint32_t nsid; if (arg_parse(argc, argv, f)) return; @@ -526,6 +559,12 @@ nscreate(const struct cmd *f, int argc, char *argv[]) } open_dev(create_opt.dev, &fd, 1, 1); + get_nsid(fd, &path, &nsid); + if (nsid != 0) { + close(fd); + open_dev(path, &fd, 1, 1); + } + free(path); read_controller_data(fd, &cd); /* Check that controller can execute this command. */ @@ -583,17 +622,26 @@ nsdelete(const struct cmd *f, int argc, char *argv[]) struct nvme_pt_command pt; struct nvme_controller_data cd; int fd, result; + char *path; + uint32_t nsid; char buf[2]; if (arg_parse(argc, argv, f)) return; - if (delete_opt.nsid == NONE) { - fprintf(stderr, - "No NSID specified"); - arg_help(argc, argv, f); - } open_dev(delete_opt.dev, &fd, 1, 1); + get_nsid(fd, &path, &nsid); + if (nsid != 0) { + close(fd); + open_dev(path, &fd, 1, 1); + } else if (delete_opt.nsid == NONE) { + close(fd); + fprintf(stderr, "No NSID specified"); + arg_help(argc, argv, f); + } + if (delete_opt.nsid != NONE) + nsid = delete_opt.nsid; + free(path); read_controller_data(fd, &cd); /* Check that controller can execute this command. */ @@ -607,7 +655,7 @@ nsdelete(const struct cmd *f, int argc, char *argv[]) pt.buf = buf; pt.len = sizeof(buf); pt.is_read = 1; - pt.cmd.nsid = delete_opt.nsid; + pt.cmd.nsid = nsid; if ((result = ioctl(fd, NVME_PASSTHROUGH_CMD, &pt)) < 0) errx(1, "ioctl request to %s failed: %d", delete_opt.dev, result); @@ -617,7 +665,7 @@ nsdelete(const struct cmd *f, int argc, char *argv[]) get_res_str((pt.cpl.status >> NVME_STATUS_SC_SHIFT) & NVME_STATUS_SC_MASK)); } - printf("namespace %d deleted\n", delete_opt.nsid); + printf("namespace %d deleted\n", nsid); exit(0); } @@ -642,15 +690,24 @@ nsattach(const struct cmd *f, int argc, char *argv[]) struct nvme_pt_command pt; struct nvme_controller_data cd; int fd, result; + char *path; + uint32_t nsid; uint16_t clist[2048]; if (arg_parse(argc, argv, f)) return; - if (attach_opt.nsid == NONE) { - fprintf(stderr, "No valid NSID specified\n"); + open_dev(attach_opt.dev, &fd, 1, 1); + get_nsid(fd, &path, &nsid); + if (nsid != 0) { + close(fd); + open_dev(path, &fd, 1, 1); + } else if (attach_opt.nsid == NONE) { + close(fd); + fprintf(stderr, "No NSID specified"); arg_help(argc, argv, f); } - open_dev(attach_opt.dev, &fd, 1, 1); + if (attach_opt.nsid != NONE) + nsid = attach_opt.nsid; read_controller_data(fd, &cd); /* Check that controller can execute this command. */ @@ -682,7 +739,7 @@ nsattach(const struct cmd *f, int argc, char *argv[]) memset(&pt, 0, sizeof(pt)); pt.cmd.opc = NVME_OPC_NAMESPACE_ATTACHMENT; pt.cmd.cdw10 = htole32(0); /* attach */ - pt.cmd.nsid = attach_opt.nsid; + pt.cmd.nsid = nsid; pt.buf = &clist; pt.len = sizeof(clist); @@ -694,7 +751,7 @@ nsattach(const struct cmd *f, int argc, char *argv[]) get_res_str((pt.cpl.status >> NVME_STATUS_SC_SHIFT) & NVME_STATUS_SC_MASK)); } - printf("namespace %d attached\n", attach_opt.nsid); + printf("namespace %d attached\n", nsid); exit(0); } @@ -704,15 +761,24 @@ nsdetach(const struct cmd *f, int argc, char *argv[]) struct nvme_pt_command pt; struct nvme_controller_data cd; int fd, result; + char *path; + uint32_t nsid; uint16_t clist[2048]; if (arg_parse(argc, argv, f)) return; - if (detach_opt.nsid == NONE) { - fprintf(stderr, "No valid NSID specified\n"); + open_dev(detach_opt.dev, &fd, 1, 1); + get_nsid(fd, &path, &nsid); + if (nsid != 0) { + close(fd); + open_dev(path, &fd, 1, 1); + } else if (detach_opt.nsid == NONE) { + close(fd); + fprintf(stderr, "No NSID specified"); arg_help(argc, argv, f); } - open_dev(detach_opt.dev, &fd, 1, 1); + if (detach_opt.nsid != NONE) + nsid = detach_opt.nsid; read_controller_data(fd, &cd); /* Check that controller can execute this command. */ @@ -724,7 +790,7 @@ nsdetach(const struct cmd *f, int argc, char *argv[]) /* Get list of controllers this namespace attached to. */ memset(&pt, 0, sizeof(pt)); pt.cmd.opc = NVME_OPC_IDENTIFY; - pt.cmd.nsid = htole32(detach_opt.nsid); + pt.cmd.nsid = htole32(nsid); pt.cmd.cdw10 = htole32(0x12); pt.buf = clist; pt.len = sizeof(clist); @@ -751,7 +817,7 @@ nsdetach(const struct cmd *f, int argc, char *argv[]) memset(&pt, 0, sizeof(pt)); pt.cmd.opc = NVME_OPC_NAMESPACE_ATTACHMENT; pt.cmd.cdw10 = htole32(1); /* detach */ - pt.cmd.nsid = detach_opt.nsid; + pt.cmd.nsid = nsid; pt.buf = &clist; pt.len = sizeof(clist); @@ -763,7 +829,7 @@ nsdetach(const struct cmd *f, int argc, char *argv[]) get_res_str((pt.cpl.status >> NVME_STATUS_SC_SHIFT) & NVME_STATUS_SC_MASK)); } - printf("namespace %d detached\n", detach_opt.nsid); + printf("namespace %d detached\n", nsid); exit(0); } @@ -773,15 +839,24 @@ nsattached(const struct cmd *f, int argc, char *argv[] struct nvme_pt_command pt; struct nvme_controller_data cd; int fd, i, n; + char *path; + uint32_t nsid; uint16_t clist[2048]; if (arg_parse(argc, argv, f)) return; - if (attached_opt.nsid == NONE) { - fprintf(stderr, "No valid NSID specified\n"); + open_dev(attached_opt.dev, &fd, 0, 1); + get_nsid(fd, &path, &nsid); + if (nsid != 0) { + close(fd); + open_dev(path, &fd, 1, 1); + } else if (attached_opt.nsid == NONE) { + close(fd); + fprintf(stderr, "No NSID specified"); arg_help(argc, argv, f); } - open_dev(attached_opt.dev, &fd, 0, 1); + if (attached_opt.nsid != NONE) + nsid = attached_opt.nsid; read_controller_data(fd, &cd); /* Check that controller can execute this command. */ @@ -791,7 +866,7 @@ nsattached(const struct cmd *f, int argc, char *argv[] memset(&pt, 0, sizeof(pt)); pt.cmd.opc = NVME_OPC_IDENTIFY; - pt.cmd.nsid = htole32(attached_opt.nsid); + pt.cmd.nsid = htole32(nsid); pt.cmd.cdw10 = htole32(0x12); pt.buf = clist; pt.len = sizeof(clist); @@ -817,15 +892,24 @@ nsidentify(const struct cmd *f, int argc, char *argv[] struct nvme_namespace_data nsdata; uint8_t *data; int fd; + char *path; + uint32_t nsid; u_int i; if (arg_parse(argc, argv, f)) return; - if (identify_opt.nsid == NONE) { - fprintf(stderr, "No valid NSID specified\n"); + open_dev(identify_opt.dev, &fd, 0, 1); + get_nsid(fd, &path, &nsid); + if (nsid != 0) { + close(fd); + open_dev(path, &fd, 1, 1); + } else if (identify_opt.nsid == NONE) { + close(fd); + fprintf(stderr, "No NSID specified"); arg_help(argc, argv, f); } - open_dev(identify_opt.dev, &fd, 0, 1); + if (identify_opt.nsid != NONE) + nsid = identify_opt.nsid; read_controller_data(fd, &cd); /* Check that controller can execute this command. */ @@ -835,7 +919,7 @@ nsidentify(const struct cmd *f, int argc, char *argv[] memset(&pt, 0, sizeof(pt)); pt.cmd.opc = NVME_OPC_IDENTIFY; - pt.cmd.nsid = htole32(identify_opt.nsid); + pt.cmd.nsid = htole32(nsid); pt.cmd.cdw10 = htole32(0x11); pt.buf = &nsdata; pt.len = sizeof(nsdata); @@ -855,7 +939,7 @@ nsidentify(const struct cmd *f, int argc, char *argv[] break; } if (i == sizeof(nsdata)) - errx(1, "namespace %d is not allocated", identify_opt.nsid); + errx(1, "namespace %d is not allocated", nsid); /* Convert data to host endian */ nvme_namespace_data_swapbytes(&nsdata); Modified: stable/12/sbin/nvmecontrol/power.c ============================================================================== --- stable/12/sbin/nvmecontrol/power.c Mon Apr 27 14:02:24 2020 (r360375) +++ stable/12/sbin/nvmecontrol/power.c Mon Apr 27 14:03:24 2020 (r360376) @@ -144,6 +144,8 @@ power(const struct cmd *f, int argc, char *argv[]) { struct nvme_controller_data cdata; int fd; + char *path; + uint32_t nsid; if (arg_parse(argc, argv, f)) return; @@ -154,6 +156,12 @@ power(const struct cmd *f, int argc, char *argv[]) } open_dev(opt.dev, &fd, 1, 1); + get_nsid(fd, &path, &nsid); + if (nsid != 0) { + close(fd); + open_dev(path, &fd, 1, 1); + } + free(path); if (opt.list) { read_controller_data(fd, &cdata); @@ -185,7 +193,7 @@ static const struct opts power_opts[] = { #undef OPT static const struct args power_args[] = { - { arg_string, &opt.dev, "controller-id" }, + { arg_string, &opt.dev, "controller-id|namespace-id" }, { arg_none, NULL, NULL }, }; Modified: stable/12/sbin/nvmecontrol/reset.c ============================================================================== --- stable/12/sbin/nvmecontrol/reset.c Mon Apr 27 14:02:24 2020 (r360375) +++ stable/12/sbin/nvmecontrol/reset.c Mon Apr 27 14:03:24 2020 (r360376) @@ -48,7 +48,7 @@ static struct options { }; static const struct args args[] = { - { arg_string, &opt.dev, "controller-id" }, + { arg_string, &opt.dev, "controller-id|namespace-id" }, { arg_none, NULL, NULL }, }; @@ -56,10 +56,18 @@ static void reset(const struct cmd *f, int argc, char *argv[]) { int fd; + char *path; + uint32_t nsid; if (arg_parse(argc, argv, f)) return; open_dev(opt.dev, &fd, 1, 1); + get_nsid(fd, &path, &nsid); + if (nsid != 0) { + close(fd); + open_dev(path, &fd, 1, 1); + } + free(path); if (ioctl(fd, NVME_RESET_CONTROLLER) < 0) err(1, "reset request to %s failed", argv[optind]); From owner-svn-src-all@freebsd.org Mon Apr 27 14:35: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 3E32B2BA6B8; Mon, 27 Apr 2020 14:35:41 +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 499nPn0sh9z4731; Mon, 27 Apr 2020 14:35:41 +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 1894EBFEF; Mon, 27 Apr 2020 14:35:41 +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 03REZeup027216; Mon, 27 Apr 2020 14:35:40 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03REZegW027212; Mon, 27 Apr 2020 14:35:40 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202004271435.03REZegW027212@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 27 Apr 2020 14:35:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360377 - in head/sys/dev/mlx5: . mlx5_en X-SVN-Group: head X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in head/sys/dev/mlx5: . mlx5_en X-SVN-Commit-Revision: 360377 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, 27 Apr 2020 14:35:41 -0000 Author: hselasky Date: Mon Apr 27 14:35:39 2020 New Revision: 360377 URL: https://svnweb.freebsd.org/changeset/base/360377 Log: Add support for reading temperature in mlx5en(4). 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_ethtool.c head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c head/sys/dev/mlx5/mlx5_ifc.h Modified: head/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- head/sys/dev/mlx5/mlx5_en/en.h Mon Apr 27 14:03:24 2020 (r360376) +++ head/sys/dev/mlx5/mlx5_en/en.h Mon Apr 27 14:35:39 2020 (r360377) @@ -728,6 +728,8 @@ struct mlx5e_params_ethtool { u16 fec_avail_50x[MLX5E_MAX_FEC_50X]; u32 fec_mode_active; u32 hw_mtu_msb; + s32 hw_val_temp[MLX5_MAX_TEMPERATURE]; + u32 hw_num_temp; }; struct mlx5e_cq { @@ -1199,6 +1201,7 @@ void mlx5e_update_sq_inline(struct mlx5e_sq *sq); void mlx5e_refresh_sq_inline(struct mlx5e_priv *priv); int mlx5e_update_buf_lossy(struct mlx5e_priv *priv); int mlx5e_fec_update(struct mlx5e_priv *priv); +int mlx5e_hw_temperature_update(struct mlx5e_priv *priv); if_snd_tag_alloc_t mlx5e_ul_snd_tag_alloc; if_snd_tag_modify_t mlx5e_ul_snd_tag_modify; Modified: head/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c ============================================================================== --- head/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Apr 27 14:03:24 2020 (r360376) +++ head/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Apr 27 14:35:39 2020 (r360377) @@ -821,6 +821,65 @@ mlx5e_cable_length_handler(SYSCTL_HANDLER_ARGS) return (error); } +static int +mlx5e_hw_temperature_handler(SYSCTL_HANDLER_ARGS) +{ + struct mlx5e_priv *priv = arg1; + int err; + + PRIV_LOCK(priv); + err = SYSCTL_OUT(req, priv->params_ethtool.hw_val_temp, + sizeof(priv->params_ethtool.hw_val_temp[0]) * + priv->params_ethtool.hw_num_temp); + if (err == 0 && req->newptr != NULL) + err = EOPNOTSUPP; + PRIV_UNLOCK(priv); + return (err); +} + +int +mlx5e_hw_temperature_update(struct mlx5e_priv *priv) +{ + int err; + u32 x; + + if (priv->params_ethtool.hw_num_temp == 0) { + u32 out_cap[MLX5_ST_SZ_DW(mtcap)] = {}; + const int sz_cap = MLX5_ST_SZ_BYTES(mtcap); + u32 value; + + err = -mlx5_core_access_reg(priv->mdev, NULL, 0, out_cap, sz_cap, + MLX5_ACCESS_REG_SUMMARY_CTRL_ID_MTCAP, 0, 0); + if (err) + goto done; + value = MLX5_GET(mtcap, out_cap, sensor_count); + if (value == 0) + return (0); + if (value > MLX5_MAX_TEMPERATURE) + value = MLX5_MAX_TEMPERATURE; + /* update number of temperature sensors */ + priv->params_ethtool.hw_num_temp = value; + } + + for (x = 0; x != priv->params_ethtool.hw_num_temp; x++) { + u32 out_sensor[MLX5_ST_SZ_DW(mtmp_reg)] = {}; + const int sz_sensor = MLX5_ST_SZ_BYTES(mtmp_reg); + + MLX5_SET(mtmp_reg, out_sensor, sensor_index, x); + + err = -mlx5_core_access_reg(priv->mdev, out_sensor, sz_sensor, + out_sensor, sz_sensor, + MLX5_ACCESS_REG_SUMMARY_CTRL_ID_MTMP, 0, 0); + if (err) + goto done; + /* convert from 0.125 celcius to millicelcius */ + priv->params_ethtool.hw_val_temp[x] = + (s16)MLX5_GET(mtmp_reg, out_sensor, temperature) * 125; + } +done: + return (err); +} + #define MLX5_PARAM_OFFSET(n) \ __offsetof(struct mlx5e_priv, params_ethtool.n) @@ -1562,5 +1621,13 @@ mlx5e_create_ethtool(struct mlx5e_priv *priv) CTLTYPE_UINT | CTLFLAG_RWTUN | CTLFLAG_MPSAFE, priv, 0, mlx5e_cable_length_handler, "IU", "Set cable length in meters for xoff threshold calculation"); + } + + if (mlx5e_hw_temperature_update(priv) == 0) { + SYSCTL_ADD_PROC(&priv->sysctl_ctx, SYSCTL_CHILDREN(priv->sysctl_ifnet), + OID_AUTO, "hw_temperature", + CTLTYPE_S32 | CTLFLAG_RD | CTLFLAG_MPSAFE, + priv, 0, mlx5e_hw_temperature_handler, "I", + "HW temperature in millicelcius"); } } Modified: head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Apr 27 14:03:24 2020 (r360376) +++ head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Apr 27 14:35:39 2020 (r360377) @@ -1042,6 +1042,15 @@ free_out: mlx5_en_err(priv->ifp, "Updating FEC failed: %d\n", error); } + + /* Update temperature, if any */ + if (priv->params_ethtool.hw_num_temp != 0) { + error = mlx5e_hw_temperature_update(priv); + if (error != 0 && error != EOPNOTSUPP) { + mlx5_en_err(priv->ifp, + "Updating temperature failed: %d\n", error); + } + } } static void Modified: head/sys/dev/mlx5/mlx5_ifc.h ============================================================================== --- head/sys/dev/mlx5/mlx5_ifc.h Mon Apr 27 14:03:24 2020 (r360376) +++ head/sys/dev/mlx5/mlx5_ifc.h Mon Apr 27 14:35:39 2020 (r360377) @@ -10607,4 +10607,163 @@ struct mlx5_ifc_mfrl_reg_bits { u8 reset_level[0x8]; }; +enum { + MLX5_ACCESS_REG_SUMMARY_CTRL_ID_MTCAP = 0x9009, + MLX5_ACCESS_REG_SUMMARY_CTRL_ID_MTECR = 0x9109, + MLX5_ACCESS_REG_SUMMARY_CTRL_ID_MTMP = 0x900a, + MLX5_ACCESS_REG_SUMMARY_CTRL_ID_MTWE = 0x900b, + MLX5_ACCESS_REG_SUMMARY_CTRL_ID_MTBR = 0x900f, + MLX5_ACCESS_REG_SUMMARY_CTRL_ID_MTEWE = 0x910b, + MLX5_MAX_TEMPERATURE = 16, +}; + +struct mlx5_ifc_mtbr_temp_record_bits { + u8 max_temperature[0x10]; + u8 temperature[0x10]; +}; + +struct mlx5_ifc_mtbr_reg_bits { + u8 reserved_at_0[0x14]; + u8 base_sensor_index[0xc]; + + u8 reserved_at_20[0x18]; + u8 num_rec[0x8]; + + u8 reserved_at_40[0x40]; + + struct mlx5_ifc_mtbr_temp_record_bits temperature_record[MLX5_MAX_TEMPERATURE]; +}; + +struct mlx5_ifc_mtbr_reg_ext_bits { + u8 reserved_at_0[0x14]; + u8 base_sensor_index[0xc]; + + u8 reserved_at_20[0x18]; + u8 num_rec[0x8]; + + u8 reserved_at_40[0x40]; + + struct mlx5_ifc_mtbr_temp_record_bits temperature_record[MLX5_MAX_TEMPERATURE]; +}; + +struct mlx5_ifc_mtcap_bits { + u8 reserved_at_0[0x19]; + u8 sensor_count[0x7]; + + u8 reserved_at_20[0x19]; + u8 internal_sensor_count[0x7]; + + u8 sensor_map[0x40]; +}; + +struct mlx5_ifc_mtcap_ext_bits { + u8 reserved_at_0[0x19]; + u8 sensor_count[0x7]; + + u8 reserved_at_20[0x20]; + + u8 sensor_map[0x40]; +}; + +struct mlx5_ifc_mtecr_bits { + u8 reserved_at_0[0x4]; + u8 last_sensor[0xc]; + u8 reserved_at_10[0x4]; + u8 sensor_count[0xc]; + + u8 reserved_at_20[0x19]; + u8 internal_sensor_count[0x7]; + + u8 sensor_map_0[0x20]; + + u8 reserved_at_60[0x2a0]; +}; + +struct mlx5_ifc_mtecr_ext_bits { + u8 reserved_at_0[0x4]; + u8 last_sensor[0xc]; + u8 reserved_at_10[0x4]; + u8 sensor_count[0xc]; + + u8 reserved_at_20[0x20]; + + u8 sensor_map_0[0x20]; + + u8 reserved_at_60[0x2a0]; +}; + +struct mlx5_ifc_mtewe_bits { + u8 reserved_at_0[0x4]; + u8 last_sensor[0xc]; + u8 reserved_at_10[0x4]; + u8 sensor_count[0xc]; + + u8 sensor_warning_0[0x20]; + + u8 reserved_at_40[0x2a0]; +}; + +struct mlx5_ifc_mtewe_ext_bits { + u8 reserved_at_0[0x4]; + u8 last_sensor[0xc]; + u8 reserved_at_10[0x4]; + u8 sensor_count[0xc]; + + u8 sensor_warning_0[0x20]; + + u8 reserved_at_40[0x2a0]; +}; + +struct mlx5_ifc_mtmp_bits { + u8 reserved_at_0[0x14]; + u8 sensor_index[0xc]; + + u8 reserved_at_20[0x10]; + u8 temperature[0x10]; + + u8 mte[0x1]; + u8 mtr[0x1]; + u8 reserved_at_42[0xe]; + u8 max_temperature[0x10]; + + u8 tee[0x2]; + u8 reserved_at_62[0xe]; + u8 temperature_threshold_hi[0x10]; + + u8 reserved_at_80[0x10]; + u8 temperature_threshold_lo[0x10]; + + u8 reserved_at_a0[0x20]; + + u8 sensor_name_hi[0x20]; + + u8 sensor_name_lo[0x20]; +}; + +struct mlx5_ifc_mtmp_ext_bits { + u8 reserved_at_0[0x14]; + u8 sensor_index[0xc]; + + u8 reserved_at_20[0x10]; + u8 temperature[0x10]; + + u8 mte[0x1]; + u8 mtr[0x1]; + u8 reserved_at_42[0xe]; + u8 max_temperature[0x10]; + + u8 tee[0x2]; + u8 reserved_at_62[0xe]; + u8 temperature_threshold_hi[0x10]; + + u8 reserved_at_80[0x10]; + u8 temperature_threshold_lo[0x10]; + + u8 reserved_at_a0[0x20]; + + u8 sensor_name_hi[0x20]; + + u8 sensor_name_lo[0x20]; +}; + #endif /* MLX5_IFC_H */ From owner-svn-src-all@freebsd.org Mon Apr 27 15:58: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 619392BD6D2; Mon, 27 Apr 2020 15:58:56 +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 499qFr1yV1z4F2C; Mon, 27 Apr 2020 15:58:56 +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 3E776CF7B; Mon, 27 Apr 2020 15:58:56 +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 03RFwuw5076622; Mon, 27 Apr 2020 15:58:56 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RFwuti076621; Mon, 27 Apr 2020 15:58:56 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202004271558.03RFwuti076621@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 27 Apr 2020 15:58:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360378 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 360378 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, 27 Apr 2020 15:58:56 -0000 Author: markj Date: Mon Apr 27 15:58:55 2020 New Revision: 360378 URL: https://svnweb.freebsd.org/changeset/base/360378 Log: Avoid returning POLLIN if the pipe descriptor is not open for reading. Submitted by: Jan Kokemüller MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D24528 Modified: head/sys/kern/sys_pipe.c Modified: head/sys/kern/sys_pipe.c ============================================================================== --- head/sys/kern/sys_pipe.c Mon Apr 27 14:35:39 2020 (r360377) +++ head/sys/kern/sys_pipe.c Mon Apr 27 15:58:55 2020 (r360378) @@ -1430,7 +1430,8 @@ pipe_poll(struct file *fp, int events, struct ucred *a if ((events & POLLINIGNEOF) == 0) { if (rpipe->pipe_state & PIPE_EOF) { - revents |= (events & (POLLIN | POLLRDNORM)); + if (fp->f_flag & FREAD) + revents |= (events & (POLLIN | POLLRDNORM)); if (wpipe->pipe_present != PIPE_ACTIVE || (wpipe->pipe_state & PIPE_EOF)) revents |= POLLHUP; From owner-svn-src-all@freebsd.org Mon Apr 27 15:59: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 5B4FE2BD721; Mon, 27 Apr 2020 15:59:08 +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 499qG41rqYz4F8K; Mon, 27 Apr 2020 15:59:08 +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 3AA94CF7C; Mon, 27 Apr 2020 15:59:08 +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 03RFx8OA076680; Mon, 27 Apr 2020 15:59:08 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RFx7i3076678; Mon, 27 Apr 2020 15:59:07 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202004271559.03RFx7i3076678@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 27 Apr 2020 15:59:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360379 - in head/sys: fs/fifofs kern X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: in head/sys: fs/fifofs kern X-SVN-Commit-Revision: 360379 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, 27 Apr 2020 15:59:08 -0000 Author: markj Date: Mon Apr 27 15:59:07 2020 New Revision: 360379 URL: https://svnweb.freebsd.org/changeset/base/360379 Log: Call pipeselwakeup() after toggling PIPE_EOF. This ensures that pipe_poll() and the pipe kqueue filters observe PIPE_EOF and set EV_EOF accordingly. As a result an extra call to knote() after setting PIPE_EOF is unnecessary. Submitted by: Jan Kokemüller MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D24528 Modified: head/sys/fs/fifofs/fifo_vnops.c head/sys/kern/sys_pipe.c Modified: head/sys/fs/fifofs/fifo_vnops.c ============================================================================== --- head/sys/fs/fifofs/fifo_vnops.c Mon Apr 27 15:58:55 2020 (r360378) +++ head/sys/fs/fifofs/fifo_vnops.c Mon Apr 27 15:59:07 2020 (r360379) @@ -174,8 +174,10 @@ fifo_open(ap) fip->fi_rgen++; if (fip->fi_readers == 1) { fpipe->pipe_state &= ~PIPE_EOF; - if (fip->fi_writers > 0) + if (fip->fi_writers > 0) { wakeup(&fip->fi_writers); + pipeselwakeup(fpipe); + } } fp->f_pipegen = fpipe->pipe_wgen - fip->fi_writers; } @@ -190,8 +192,10 @@ fifo_open(ap) fip->fi_wgen++; if (fip->fi_writers == 1) { fpipe->pipe_state &= ~PIPE_EOF; - if (fip->fi_readers > 0) + if (fip->fi_readers > 0) { wakeup(&fip->fi_readers); + pipeselwakeup(fpipe); + } } } if ((ap->a_mode & O_NONBLOCK) == 0) { @@ -210,6 +214,7 @@ fifo_open(ap) fpipe->pipe_state |= PIPE_EOF; if (fpipe->pipe_state & PIPE_WANTW) wakeup(fpipe); + pipeselwakeup(fpipe); PIPE_UNLOCK(fpipe); fifo_cleanup(vp); } @@ -238,6 +243,7 @@ fifo_open(ap) if (fpipe->pipe_state & PIPE_WANTR) wakeup(fpipe); fpipe->pipe_wgen++; + pipeselwakeup(fpipe); PIPE_UNLOCK(fpipe); fifo_cleanup(vp); } Modified: head/sys/kern/sys_pipe.c ============================================================================== --- head/sys/kern/sys_pipe.c Mon Apr 27 15:58:55 2020 (r360378) +++ head/sys/kern/sys_pipe.c Mon Apr 27 15:59:07 2020 (r360379) @@ -1606,8 +1606,6 @@ pipeclose(struct pipe *cpipe) pipelock(cpipe, 0); pp = cpipe->pipe_pair; - pipeselwakeup(cpipe); - /* * If the other side is blocked, wake it up saying that * we want to close it down. @@ -1621,16 +1619,16 @@ pipeclose(struct pipe *cpipe) pipelock(cpipe, 0); } + pipeselwakeup(cpipe); + /* * Disconnect from peer, if any. */ ppipe = cpipe->pipe_peer; if (ppipe->pipe_present == PIPE_ACTIVE) { - pipeselwakeup(ppipe); - ppipe->pipe_state |= PIPE_EOF; wakeup(ppipe); - KNOTE_LOCKED(&ppipe->pipe_sel.si_note, 0); + pipeselwakeup(ppipe); } /* From owner-svn-src-all@freebsd.org Mon Apr 27 15: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 3CE0F2BD782; Mon, 27 Apr 2020 15:59:21 +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 499qGJ2P1wz4FGS; Mon, 27 Apr 2020 15:59:20 +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 4D7A9CF7D; Mon, 27 Apr 2020 15:59:20 +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 03RFxKvR076732; Mon, 27 Apr 2020 15:59:20 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RFxJ9N076730; Mon, 27 Apr 2020 15:59:19 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202004271559.03RFxJ9N076730@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 27 Apr 2020 15:59:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360380 - in head: lib/libc/sys sys/kern X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: in head: lib/libc/sys sys/kern X-SVN-Commit-Revision: 360380 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, 27 Apr 2020 15:59:21 -0000 Author: markj Date: Mon Apr 27 15:59:19 2020 New Revision: 360380 URL: https://svnweb.freebsd.org/changeset/base/360380 Log: Fix handling of EV_EOF for named pipes. Contrary to the kevent man page, EV_EOF on a fifo is not cleared by EV_CLEAR. Modify the read and write filters to clear EV_EOF when the fifo's PIPE_EOF flag is clear, and update the man page to document the new behaviour. Modify the write filter to return the amount of buffer space available even if no readers are present. This matches the behaviour for sockets. When reading from a pipe, only call pipeselwakeup() if some data was actually read. This prevents the continuous re-triggering of a EVFILT_READ event on EOF when in edge-triggered mode. PR: 203366, 224615 Submitted by: Jan Kokemüller MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D24528 Modified: head/lib/libc/sys/kqueue.2 head/sys/kern/sys_pipe.c Modified: head/lib/libc/sys/kqueue.2 ============================================================================== --- head/lib/libc/sys/kqueue.2 Mon Apr 27 15:59:07 2020 (r360379) +++ head/lib/libc/sys/kqueue.2 Mon Apr 27 15:59:19 2020 (r360380) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 21, 2020 +.Dd April 27, 2020 .Dt KQUEUE 2 .Os .Sh NAME @@ -323,8 +323,7 @@ When the last writer disconnects, the filter will set .Dv EV_EOF in .Va flags . -This may be cleared by passing in -.Dv EV_CLEAR , +This will be cleared by the filter when a new writer connects, at which point the filter will resume waiting for data to become available before returning. @@ -343,9 +342,10 @@ For sockets, pipes and fifos, .Va data will contain the amount of space remaining in the write buffer. -The filter will set EV_EOF when the reader disconnects, and for -the fifo case, this may be cleared by use of -.Dv EV_CLEAR . +The filter will set +.Dv EV_EOF +when the reader disconnects, and for the fifo case, this will be cleared +when a new reader connects. Note that this filter is not supported for vnodes or BPF devices. .Pp For sockets, the low water mark and socket error handling is Modified: head/sys/kern/sys_pipe.c ============================================================================== --- head/sys/kern/sys_pipe.c Mon Apr 27 15:59:07 2020 (r360379) +++ head/sys/kern/sys_pipe.c Mon Apr 27 15:59:19 2020 (r360380) @@ -824,7 +824,12 @@ unlocked_error: } } - if ((rpipe->pipe_buffer.size - rpipe->pipe_buffer.cnt) >= PIPE_BUF) + /* + * Only wake up writers if there was actually something read. + * Otherwise, when calling read(2) at EOF, a spurious wakeup occurs. + */ + if (nread > 0 && + rpipe->pipe_buffer.size - rpipe->pipe_buffer.cnt >= PIPE_BUF) pipeselwakeup(rpipe); PIPE_UNLOCK(rpipe); @@ -1726,48 +1731,54 @@ filt_pipedetach(struct knote *kn) static int filt_piperead(struct knote *kn, long hint) { + struct file *fp = kn->kn_fp; struct pipe *rpipe = kn->kn_hook; - struct pipe *wpipe = rpipe->pipe_peer; - int ret; PIPE_LOCK_ASSERT(rpipe, MA_OWNED); kn->kn_data = rpipe->pipe_buffer.cnt; if (kn->kn_data == 0) kn->kn_data = rpipe->pipe_map.cnt; - if ((rpipe->pipe_state & PIPE_EOF) || - wpipe->pipe_present != PIPE_ACTIVE || - (wpipe->pipe_state & PIPE_EOF)) { + if ((rpipe->pipe_state & PIPE_EOF) != 0 && + ((rpipe->pipe_state & PIPE_NAMED) == 0 || + fp->f_pipegen != rpipe->pipe_wgen)) { kn->kn_flags |= EV_EOF; return (1); } - ret = kn->kn_data > 0; - return ret; + kn->kn_flags &= ~EV_EOF; + return (kn->kn_data > 0); } /*ARGSUSED*/ static int filt_pipewrite(struct knote *kn, long hint) { - struct pipe *wpipe; + struct pipe *wpipe = kn->kn_hook; /* * If this end of the pipe is closed, the knote was removed from the * knlist and the list lock (i.e., the pipe lock) is therefore not held. */ - wpipe = kn->kn_hook; + if (wpipe->pipe_present == PIPE_ACTIVE || + (wpipe->pipe_state & PIPE_NAMED) != 0) { + PIPE_LOCK_ASSERT(wpipe, MA_OWNED); + + if (wpipe->pipe_state & PIPE_DIRECTW) { + kn->kn_data = 0; + } else if (wpipe->pipe_buffer.size > 0) { + kn->kn_data = wpipe->pipe_buffer.size - + wpipe->pipe_buffer.cnt; + } else { + kn->kn_data = PIPE_BUF; + } + } + if (wpipe->pipe_present != PIPE_ACTIVE || (wpipe->pipe_state & PIPE_EOF)) { - kn->kn_data = 0; kn->kn_flags |= EV_EOF; return (1); } - PIPE_LOCK_ASSERT(wpipe, MA_OWNED); - kn->kn_data = (wpipe->pipe_buffer.size > 0) ? - (wpipe->pipe_buffer.size - wpipe->pipe_buffer.cnt) : PIPE_BUF; - if (wpipe->pipe_state & PIPE_DIRECTW) - kn->kn_data = 0; - + kn->kn_flags &= ~EV_EOF; return (kn->kn_data >= PIPE_BUF); } From owner-svn-src-all@freebsd.org Mon Apr 27 15:59: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 0BE542BD809; Mon, 27 Apr 2020 15:59:36 +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 499qGb4CxSz4FP1; Mon, 27 Apr 2020 15:59: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 8BF6BCF80; Mon, 27 Apr 2020 15:59: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 03RFxZON076812; Mon, 27 Apr 2020 15:59:35 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RFxYhB076807; Mon, 27 Apr 2020 15:59:34 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202004271559.03RFxYhB076807@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 27 Apr 2020 15:59:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360381 - in head/tests/sys: fifo kern/pipe X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: in head/tests/sys: fifo kern/pipe X-SVN-Commit-Revision: 360381 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, 27 Apr 2020 15:59:36 -0000 Author: markj Date: Mon Apr 27 15:59:34 2020 New Revision: 360381 URL: https://svnweb.freebsd.org/changeset/base/360381 Log: Add some regression tests for read and write kevents on pipes. Submitted by: Jan Kokemüller MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D24528 Added: head/tests/sys/fifo/fifo_kqueue.c (contents, props changed) head/tests/sys/kern/pipe/pipe_kqueue_test.c (contents, props changed) Modified: head/tests/sys/fifo/Makefile head/tests/sys/kern/pipe/Makefile Modified: head/tests/sys/fifo/Makefile ============================================================================== --- head/tests/sys/fifo/Makefile Mon Apr 27 15:59:19 2020 (r360380) +++ head/tests/sys/fifo/Makefile Mon Apr 27 15:59:34 2020 (r360381) @@ -4,6 +4,7 @@ TESTSDIR= ${TESTSBASE}/sys/fifo PLAIN_TESTS_C+= fifo_create PLAIN_TESTS_C+= fifo_io +ATF_TESTS_C+= fifo_kqueue PLAIN_TESTS_C+= fifo_misc PLAIN_TESTS_C+= fifo_open Added: head/tests/sys/fifo/fifo_kqueue.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tests/sys/fifo/fifo_kqueue.c Mon Apr 27 15:59:34 2020 (r360381) @@ -0,0 +1,430 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2020 Jan Kokemüller + * + * 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. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +ATF_TC_WITHOUT_HEAD(fifo_kqueue__writes); +ATF_TC_BODY(fifo_kqueue__writes, tc) +{ + int p[2] = { -1, -1 }; + + ATF_REQUIRE(mkfifo("testfifo", 0600) == 0); + + ATF_REQUIRE((p[0] = open("testfifo", + O_RDONLY | O_CLOEXEC | O_NONBLOCK)) >= 0); + ATF_REQUIRE((p[1] = open("testfifo", + O_WRONLY | O_CLOEXEC | O_NONBLOCK)) >= 0); + + int kq = kqueue(); + ATF_REQUIRE(kq >= 0); + + struct kevent kev[32]; + EV_SET(&kev[0], p[1], EVFILT_WRITE, EV_ADD | EV_CLEAR, 0, 0, 0); + EV_SET(&kev[1], p[1], EVFILT_READ, EV_ADD | EV_CLEAR, 0, 0, 0); + + ATF_REQUIRE(kevent(kq, kev, 2, NULL, 0, NULL) == 0); + + /* A new writer should immediately get a EVFILT_WRITE event. */ + + ATF_REQUIRE(kevent(kq, NULL, 0, kev, nitems(kev), + &(struct timespec) { 0, 0 }) == 1); + ATF_REQUIRE(kev[0].ident == (uintptr_t)p[1]); + ATF_REQUIRE(kev[0].filter == EVFILT_WRITE); + ATF_REQUIRE(kev[0].flags == EV_CLEAR); + ATF_REQUIRE(kev[0].fflags == 0); + ATF_REQUIRE(kev[0].data == 16384); + ATF_REQUIRE(kev[0].udata == 0); + + /* Filling up the pipe should make the EVFILT_WRITE disappear. */ + + char c = 0; + ssize_t r; + while ((r = write(p[1], &c, 1)) == 1) { + } + ATF_REQUIRE(r < 0); + ATF_REQUIRE(errno == EAGAIN || errno == EWOULDBLOCK); + + ATF_REQUIRE(kevent(kq, NULL, 0, kev, nitems(kev), + &(struct timespec) { 0, 0 }) == 0); + + /* Reading (PIPE_BUF - 1) bytes will not trigger a EVFILT_WRITE yet. */ + + for (int i = 0; i < PIPE_BUF - 1; ++i) { + ATF_REQUIRE(read(p[0], &c, 1) == 1); + } + + ATF_REQUIRE(kevent(kq, NULL, 0, kev, nitems(kev), + &(struct timespec) { 0, 0 }) == 0); + + /* Reading one additional byte triggers the EVFILT_WRITE. */ + + ATF_REQUIRE(read(p[0], &c, 1) == 1); + + ATF_REQUIRE(kevent(kq, NULL, 0, kev, nitems(kev), + &(struct timespec) { 0, 0 }) == 1); + ATF_REQUIRE(kev[0].ident == (uintptr_t)p[1]); + ATF_REQUIRE(kev[0].filter == EVFILT_WRITE); + ATF_REQUIRE(kev[0].flags == EV_CLEAR); + ATF_REQUIRE(kev[0].fflags == 0); + ATF_REQUIRE(kev[0].data == PIPE_BUF); + ATF_REQUIRE(kev[0].udata == 0); + + /* + * Reading another byte triggers the EVFILT_WRITE again with a changed + * 'data' field. + */ + + ATF_REQUIRE(read(p[0], &c, 1) == 1); + + ATF_REQUIRE(kevent(kq, NULL, 0, kev, nitems(kev), + &(struct timespec) { 0, 0 }) == 1); + ATF_REQUIRE(kev[0].ident == (uintptr_t)p[1]); + ATF_REQUIRE(kev[0].filter == EVFILT_WRITE); + ATF_REQUIRE(kev[0].flags == EV_CLEAR); + ATF_REQUIRE(kev[0].fflags == 0); + ATF_REQUIRE(kev[0].data == PIPE_BUF + 1); + ATF_REQUIRE(kev[0].udata == 0); + + /* + * Closing the read end should make a EV_EOF appear but leave the 'data' + * field unchanged. + */ + + ATF_REQUIRE(close(p[0]) == 0); + + ATF_REQUIRE(kevent(kq, NULL, 0, kev, nitems(kev), NULL) == 1); + ATF_REQUIRE(kev[0].ident == (uintptr_t)p[1]); + ATF_REQUIRE(kev[0].filter == EVFILT_WRITE); + ATF_REQUIRE(kev[0].flags == (EV_CLEAR | EV_EOF)); + ATF_REQUIRE(kev[0].fflags == 0); + ATF_REQUIRE(kev[0].data == PIPE_BUF + 1); + ATF_REQUIRE(kev[0].udata == 0); + + ATF_REQUIRE(close(kq) == 0); + ATF_REQUIRE(close(p[1]) == 0); +} + +ATF_TC_WITHOUT_HEAD(fifo_kqueue__connecting_reader); +ATF_TC_BODY(fifo_kqueue__connecting_reader, tc) +{ + int p[2] = { -1, -1 }; + + ATF_REQUIRE(mkfifo("testfifo", 0600) == 0); + + ATF_REQUIRE((p[0] = open("testfifo", + O_RDONLY | O_CLOEXEC | O_NONBLOCK)) >= 0); + ATF_REQUIRE((p[1] = open("testfifo", + O_WRONLY | O_CLOEXEC | O_NONBLOCK)) >= 0); + + int kq = kqueue(); + ATF_REQUIRE(kq >= 0); + + struct kevent kev[32]; + EV_SET(&kev[0], p[1], EVFILT_WRITE, EV_ADD | EV_CLEAR, 0, 0, 0); + EV_SET(&kev[1], p[1], EVFILT_READ, EV_ADD | EV_CLEAR, 0, 0, 0); + + ATF_REQUIRE(kevent(kq, kev, 2, NULL, 0, NULL) == 0); + + /* A new writer should immediately get a EVFILT_WRITE event. */ + + ATF_REQUIRE(kevent(kq, NULL, 0, kev, nitems(kev), + &(struct timespec) { 0, 0 }) == 1); + ATF_REQUIRE(kev[0].ident == (uintptr_t)p[1]); + ATF_REQUIRE(kev[0].filter == EVFILT_WRITE); + ATF_REQUIRE(kevent(kq, NULL, 0, kev, nitems(kev), + &(struct timespec) { 0, 0 }) == 0); + + /* + * Filling the pipe, reading (PIPE_BUF + 1) bytes, then closing the + * read end leads to a EVFILT_WRITE with EV_EOF set. + */ + + char c = 0; + ssize_t r; + while ((r = write(p[1], &c, 1)) == 1) { + } + ATF_REQUIRE(r < 0); + ATF_REQUIRE(errno == EAGAIN || errno == EWOULDBLOCK); + + for (int i = 0; i < PIPE_BUF + 1; ++i) { + ATF_REQUIRE(read(p[0], &c, 1) == 1); + } + + ATF_REQUIRE(close(p[0]) == 0); + + ATF_REQUIRE(kevent(kq, NULL, 0, kev, nitems(kev), NULL) == 1); + ATF_REQUIRE(kev[0].filter == EVFILT_WRITE); + ATF_REQUIRE((kev[0].flags & EV_EOF) != 0); + ATF_REQUIRE(kevent(kq, NULL, 0, kev, nitems(kev), + &(struct timespec) { 0, 0 }) == 0); + + /* Opening the reader again must trigger the EVFILT_WRITE. */ + + ATF_REQUIRE((p[0] = open("testfifo", + O_RDONLY | O_CLOEXEC | O_NONBLOCK)) >= 0); + + r = kevent(kq, NULL, 0, kev, nitems(kev), &(struct timespec) { 1, 0 }); + ATF_REQUIRE(r == 1); + ATF_REQUIRE(kev[0].ident == (uintptr_t)p[1]); + ATF_REQUIRE(kev[0].filter == EVFILT_WRITE); + ATF_REQUIRE(kev[0].flags == EV_CLEAR); + ATF_REQUIRE(kev[0].fflags == 0); + ATF_REQUIRE(kev[0].data == PIPE_BUF + 1); + ATF_REQUIRE(kev[0].udata == 0); + ATF_REQUIRE(kevent(kq, NULL, 0, kev, nitems(kev), + &(struct timespec) { 0, 0 }) == 0); + + ATF_REQUIRE(close(kq) == 0); + ATF_REQUIRE(close(p[0]) == 0); + ATF_REQUIRE(close(p[1]) == 0); +} + +ATF_TC_WITHOUT_HEAD(fifo_kqueue__reads); +ATF_TC_BODY(fifo_kqueue__reads, tc) +{ + int p[2] = { -1, -1 }; + + ATF_REQUIRE(mkfifo("testfifo", 0600) == 0); + + ATF_REQUIRE((p[0] = open("testfifo", + O_RDONLY | O_CLOEXEC | O_NONBLOCK)) >= 0); + ATF_REQUIRE((p[1] = open("testfifo", + O_WRONLY | O_CLOEXEC | O_NONBLOCK)) >= 0); + + /* Check that EVFILT_READ behaves sensibly on a FIFO reader. */ + + char c = 0; + ssize_t r; + while ((r = write(p[1], &c, 1)) == 1) { + } + ATF_REQUIRE(r < 0); + ATF_REQUIRE(errno == EAGAIN || errno == EWOULDBLOCK); + + for (int i = 0; i < PIPE_BUF + 1; ++i) { + ATF_REQUIRE(read(p[0], &c, 1) == 1); + } + + int kq = kqueue(); + ATF_REQUIRE(kq >= 0); + + struct kevent kev[32]; + EV_SET(&kev[0], p[0], EVFILT_READ, EV_ADD | EV_CLEAR, 0, 0, 0); + + ATF_REQUIRE(kevent(kq, kev, 1, NULL, 0, NULL) == 0); + + ATF_REQUIRE(kevent(kq, NULL, 0, kev, nitems(kev), + &(struct timespec) { 0, 0 }) == 1); + ATF_REQUIRE(kev[0].ident == (uintptr_t)p[0]); + ATF_REQUIRE(kev[0].filter == EVFILT_READ); + ATF_REQUIRE(kev[0].flags == EV_CLEAR); + ATF_REQUIRE(kev[0].fflags == 0); + ATF_REQUIRE(kev[0].data == 65023); + ATF_REQUIRE(kev[0].udata == 0); + + while ((r = read(p[0], &c, 1)) == 1) { + } + ATF_REQUIRE(r < 0); + ATF_REQUIRE(errno == EAGAIN || errno == EWOULDBLOCK); + + ATF_REQUIRE(kevent(kq, NULL, 0, kev, nitems(kev), + &(struct timespec) { 0, 0 }) == 0); + + ATF_REQUIRE(close(kq) == 0); + ATF_REQUIRE(close(p[0]) == 0); + ATF_REQUIRE(close(p[1]) == 0); +} + +ATF_TC_WITHOUT_HEAD(fifo_kqueue__read_eof_wakeups); +ATF_TC_BODY(fifo_kqueue__read_eof_wakeups, tc) +{ + int p[2] = { -1, -1 }; + + ATF_REQUIRE(mkfifo("testfifo", 0600) == 0); + + ATF_REQUIRE((p[0] = open("testfifo", + O_RDONLY | O_CLOEXEC | O_NONBLOCK)) >= 0); + ATF_REQUIRE((p[1] = open("testfifo", + O_WRONLY | O_CLOEXEC | O_NONBLOCK)) >= 0); + + int kq = kqueue(); + ATF_REQUIRE(kq >= 0); + + struct kevent kev[32]; + + EV_SET(&kev[0], p[0], EVFILT_READ, EV_ADD | EV_CLEAR, 0, 0, 0); + ATF_REQUIRE(kevent(kq, kev, 1, NULL, 0, NULL) == 0); + + ATF_REQUIRE(kevent(kq, NULL, 0, kev, nitems(kev), + &(struct timespec) { 0, 0 }) == 0); + + /* + * Closing the writer must trigger a EVFILT_READ edge with EV_EOF set. + */ + + ATF_REQUIRE(close(p[1]) == 0); + + ATF_REQUIRE(kevent(kq, NULL, 0, kev, nitems(kev), + &(struct timespec) { 0, 0 }) == 1); + ATF_REQUIRE(kev[0].ident == (uintptr_t)p[0]); + ATF_REQUIRE(kev[0].filter == EVFILT_READ); + ATF_REQUIRE(kev[0].flags == (EV_EOF | EV_CLEAR)); + ATF_REQUIRE(kev[0].fflags == 0); + ATF_REQUIRE(kev[0].data == 0); + ATF_REQUIRE(kev[0].udata == 0); + + /* + * Trying to read from a closed pipe should not trigger EVFILT_READ + * edges. + */ + + char c; + ATF_REQUIRE(read(p[0], &c, 1) == 0); + + ATF_REQUIRE(kevent(kq, NULL, 0, kev, nitems(kev), + &(struct timespec) { 0, 0 }) == 0); + + ATF_REQUIRE(close(kq) == 0); + ATF_REQUIRE(close(p[0]) == 0); +} + +ATF_TC_WITHOUT_HEAD(fifo_kqueue__read_eof_state_when_reconnecting); +ATF_TC_BODY(fifo_kqueue__read_eof_state_when_reconnecting, tc) +{ + int p[2] = { -1, -1 }; + + ATF_REQUIRE(mkfifo("testfifo", 0600) == 0); + + ATF_REQUIRE((p[0] = open("testfifo", + O_RDONLY | O_CLOEXEC | O_NONBLOCK)) >= 0); + ATF_REQUIRE((p[1] = open("testfifo", + O_WRONLY | O_CLOEXEC | O_NONBLOCK)) >= 0); + + int kq = kqueue(); + ATF_REQUIRE(kq >= 0); + + struct kevent kev[32]; + + EV_SET(&kev[0], p[0], EVFILT_READ, EV_ADD | EV_CLEAR, 0, 0, 0); + ATF_REQUIRE(kevent(kq, kev, 1, NULL, 0, NULL) == 0); + + ATF_REQUIRE(kevent(kq, NULL, 0, kev, nitems(kev), + &(struct timespec) { 0, 0 }) == 0); + + /* + * Closing the writer must trigger a EVFILT_READ edge with EV_EOF set. + */ + + ATF_REQUIRE(close(p[1]) == 0); + + ATF_REQUIRE(kevent(kq, NULL, 0, kev, nitems(kev), + &(struct timespec) { 0, 0 }) == 1); + ATF_REQUIRE(kev[0].ident == (uintptr_t)p[0]); + ATF_REQUIRE(kev[0].filter == EVFILT_READ); + ATF_REQUIRE(kev[0].flags == (EV_EOF | EV_CLEAR)); + ATF_REQUIRE(kev[0].fflags == 0); + ATF_REQUIRE(kev[0].data == 0); + ATF_REQUIRE(kev[0].udata == 0); + + /* A new reader shouldn't see the EOF flag. */ + + { + int new_reader; + ATF_REQUIRE((new_reader = open("testfifo", + O_RDONLY | O_CLOEXEC | O_NONBLOCK)) >= 0); + + int new_kq = kqueue(); + ATF_REQUIRE(new_kq >= 0); + + struct kevent new_kev[32]; + EV_SET(&new_kev[0], new_reader, EVFILT_READ, EV_ADD | EV_CLEAR, + 0, 0, 0); + ATF_REQUIRE(kevent(new_kq, new_kev, 1, NULL, 0, NULL) == 0); + + ATF_REQUIRE(kevent(new_kq, NULL, 0, new_kev, nitems(new_kev), + &(struct timespec) { 0, 0 }) == 0); + + ATF_REQUIRE(close(new_kq) == 0); + ATF_REQUIRE(close(new_reader) == 0); + } + + /* + * Simply reopening the writer does not trigger the EVFILT_READ again -- + * EV_EOF should be cleared, but there is no data yet so the filter + * does not trigger. + */ + + ATF_REQUIRE((p[1] = open("testfifo", + O_WRONLY | O_CLOEXEC | O_NONBLOCK)) >= 0); + + ATF_REQUIRE(kevent(kq, NULL, 0, kev, nitems(kev), + &(struct timespec) { 0, 0 }) == 0); + + /* Writing a byte should trigger a EVFILT_READ. */ + + char c = 0; + ATF_REQUIRE(write(p[1], &c, 1) == 1); + + ATF_REQUIRE(kevent(kq, NULL, 0, kev, nitems(kev), + &(struct timespec) { 0, 0 }) == 1); + ATF_REQUIRE(kev[0].ident == (uintptr_t)p[0]); + ATF_REQUIRE(kev[0].filter == EVFILT_READ); + ATF_REQUIRE(kev[0].flags == EV_CLEAR); + ATF_REQUIRE(kev[0].fflags == 0); + ATF_REQUIRE(kev[0].data == 1); + ATF_REQUIRE(kev[0].udata == 0); + + ATF_REQUIRE(close(kq) == 0); + ATF_REQUIRE(close(p[0]) == 0); + ATF_REQUIRE(close(p[1]) == 0); +} + +ATF_TP_ADD_TCS(tp) +{ + ATF_TP_ADD_TC(tp, fifo_kqueue__writes); + ATF_TP_ADD_TC(tp, fifo_kqueue__connecting_reader); + ATF_TP_ADD_TC(tp, fifo_kqueue__reads); + ATF_TP_ADD_TC(tp, fifo_kqueue__read_eof_wakeups); + ATF_TP_ADD_TC(tp, fifo_kqueue__read_eof_state_when_reconnecting); + + return atf_no_error(); +} Modified: head/tests/sys/kern/pipe/Makefile ============================================================================== --- head/tests/sys/kern/pipe/Makefile Mon Apr 27 15:59:19 2020 (r360380) +++ head/tests/sys/kern/pipe/Makefile Mon Apr 27 15:59:34 2020 (r360381) @@ -5,6 +5,7 @@ TESTSDIR= ${TESTSBASE}/sys/kern/pipe PLAIN_TESTS_C+= big_pipe_test PLAIN_TESTS_C+= pipe_fstat_bug_test PLAIN_TESTS_C+= pipe_ino_test +ATF_TESTS_C+= pipe_kqueue_test PLAIN_TESTS_C+= pipe_overcommit1_test PLAIN_TESTS_C+= pipe_overcommit2_test PLAIN_TESTS_C+= pipe_reverse2_test Added: head/tests/sys/kern/pipe/pipe_kqueue_test.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tests/sys/kern/pipe/pipe_kqueue_test.c Mon Apr 27 15:59:34 2020 (r360381) @@ -0,0 +1,366 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2020 Jan Kokemüller + * + * 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. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +ATF_TC_WITHOUT_HEAD(pipe_kqueue__write_end); +ATF_TC_BODY(pipe_kqueue__write_end, tc) +{ + int p[2] = { -1, -1 }; + + ATF_REQUIRE(pipe2(p, O_CLOEXEC | O_NONBLOCK) == 0); + ATF_REQUIRE(p[0] >= 0); + ATF_REQUIRE(p[1] >= 0); + + int kq = kqueue(); + ATF_REQUIRE(kq >= 0); + + struct kevent kev[32]; + EV_SET(&kev[0], p[1], EVFILT_WRITE, EV_ADD | EV_CLEAR, 0, 0, 0); + + ATF_REQUIRE(kevent(kq, kev, 1, NULL, 0, NULL) == 0); + + /* Test that EVFILT_WRITE behaves sensibly on the write end. */ + + ATF_REQUIRE(kevent(kq, NULL, 0, kev, nitems(kev), + &(struct timespec) { 0, 0 }) == 1); + ATF_REQUIRE(kev[0].ident == (uintptr_t)p[1]); + ATF_REQUIRE(kev[0].filter == EVFILT_WRITE); + ATF_REQUIRE(kev[0].flags == EV_CLEAR); + ATF_REQUIRE(kev[0].fflags == 0); + ATF_REQUIRE(kev[0].data == 16384); + ATF_REQUIRE(kev[0].udata == 0); + + /* Filling up the pipe should make the EVFILT_WRITE disappear. */ + + char c = 0; + ssize_t r; + while ((r = write(p[1], &c, 1)) == 1) { + } + ATF_REQUIRE(r < 0); + ATF_REQUIRE(errno == EAGAIN || errno == EWOULDBLOCK); + + ATF_REQUIRE(kevent(kq, NULL, 0, kev, nitems(kev), + &(struct timespec) { 0, 0 }) == 0); + + /* Reading (PIPE_BUF - 1) bytes will not trigger a EVFILT_WRITE yet. */ + + for (int i = 0; i < PIPE_BUF - 1; ++i) { + ATF_REQUIRE(read(p[0], &c, 1) == 1); + } + + ATF_REQUIRE(kevent(kq, NULL, 0, kev, nitems(kev), + &(struct timespec) { 0, 0 }) == 0); + + /* Reading one additional byte triggers the EVFILT_WRITE. */ + + ATF_REQUIRE(read(p[0], &c, 1) == 1); + + r = kevent(kq, NULL, 0, kev, nitems(kev), &(struct timespec) { 0, 0 }); + ATF_REQUIRE(r == 1); + ATF_REQUIRE(kev[0].ident == (uintptr_t)p[1]); + ATF_REQUIRE(kev[0].filter == EVFILT_WRITE); + ATF_REQUIRE(kev[0].flags == EV_CLEAR); + ATF_REQUIRE(kev[0].fflags == 0); + ATF_REQUIRE(kev[0].data == PIPE_BUF); + ATF_REQUIRE(kev[0].udata == 0); + + /* + * Reading another byte triggers the EVFILT_WRITE again with a changed + * 'data' field. + */ + + ATF_REQUIRE(read(p[0], &c, 1) == 1); + + ATF_REQUIRE(kevent(kq, NULL, 0, kev, nitems(kev), + &(struct timespec) { 0, 0 }) == 1); + ATF_REQUIRE(kev[0].ident == (uintptr_t)p[1]); + ATF_REQUIRE(kev[0].filter == EVFILT_WRITE); + ATF_REQUIRE(kev[0].flags == EV_CLEAR); + ATF_REQUIRE(kev[0].fflags == 0); + ATF_REQUIRE(kev[0].data == PIPE_BUF + 1); + ATF_REQUIRE(kev[0].udata == 0); + + /* + * Closing the read end should make a EV_EOF appear but leave the 'data' + * field unchanged. + */ + + ATF_REQUIRE(close(p[0]) == 0); + + ATF_REQUIRE(kevent(kq, NULL, 0, kev, nitems(kev), + &(struct timespec) { 0, 0 }) == 1); + ATF_REQUIRE(kev[0].ident == (uintptr_t)p[1]); + ATF_REQUIRE(kev[0].filter == EVFILT_WRITE); + ATF_REQUIRE(kev[0].flags == (EV_CLEAR | EV_EOF | EV_ONESHOT)); + ATF_REQUIRE(kev[0].fflags == 0); + ATF_REQUIRE(kev[0].data == PIPE_BUF + 1); + ATF_REQUIRE(kev[0].udata == 0); + + ATF_REQUIRE(close(kq) == 0); + ATF_REQUIRE(close(p[1]) == 0); +} + +ATF_TC_WITHOUT_HEAD(pipe_kqueue__closed_read_end); +ATF_TC_BODY(pipe_kqueue__closed_read_end, tc) +{ + int p[2] = { -1, -1 }; + + ATF_REQUIRE(pipe2(p, O_CLOEXEC | O_NONBLOCK) == 0); + ATF_REQUIRE(p[0] >= 0); + ATF_REQUIRE(p[1] >= 0); + + ATF_REQUIRE(close(p[0]) == 0); + + int kq = kqueue(); + ATF_REQUIRE(kq >= 0); + + struct kevent kev[32]; + EV_SET(&kev[0], p[1], EVFILT_READ, EV_ADD | EV_CLEAR | EV_RECEIPT, /**/ + 0, 0, 0); + EV_SET(&kev[1], p[1], EVFILT_WRITE, EV_ADD | EV_CLEAR | EV_RECEIPT, /**/ + 0, 0, 0); + + /* + * Trying to register EVFILT_WRITE when the pipe is closed leads to an + * EPIPE error. + */ + + ATF_REQUIRE(kevent(kq, kev, 2, kev, 2, NULL) == 2); + ATF_REQUIRE((kev[0].flags & EV_ERROR) != 0); + ATF_REQUIRE(kev[0].data == 0); + ATF_REQUIRE((kev[1].flags & EV_ERROR) != 0); + ATF_REQUIRE(kev[1].data == EPIPE); + + ATF_REQUIRE(kevent(kq, NULL, 0, kev, nitems(kev), + &(struct timespec) { 0, 0 }) == 1); + ATF_REQUIRE(kev[0].ident == (uintptr_t)p[1]); + ATF_REQUIRE(kev[0].filter == EVFILT_READ); + ATF_REQUIRE(kev[0].flags == (EV_EOF | EV_CLEAR | EV_RECEIPT)); + ATF_REQUIRE(kev[0].fflags == 0); + ATF_REQUIRE(kev[0].data == 0); + ATF_REQUIRE(kev[0].udata == 0); + + ATF_REQUIRE(close(kq) == 0); + ATF_REQUIRE(close(p[1]) == 0); +} + +ATF_TC_WITHOUT_HEAD(pipe_kqueue__closed_read_end_register_before_close); +ATF_TC_BODY(pipe_kqueue__closed_read_end_register_before_close, tc) +{ + int p[2] = { -1, -1 }; + + ATF_REQUIRE(pipe2(p, O_CLOEXEC | O_NONBLOCK) == 0); + ATF_REQUIRE(p[0] >= 0); + ATF_REQUIRE(p[1] >= 0); + + int kq = kqueue(); + ATF_REQUIRE(kq >= 0); + + struct kevent kev[32]; + EV_SET(&kev[0], p[1], EVFILT_READ, EV_ADD | EV_CLEAR | EV_RECEIPT, /**/ + 0, 0, 0); + EV_SET(&kev[1], p[1], EVFILT_WRITE, EV_ADD | EV_CLEAR | EV_RECEIPT, /**/ + 0, 0, 0); + + /* + * Registering EVFILT_WRITE before the pipe is closed leads to a + * EVFILT_WRITE event with EV_EOF set. + */ + + ATF_REQUIRE(kevent(kq, kev, 2, kev, 2, NULL) == 2); + ATF_REQUIRE((kev[0].flags & EV_ERROR) != 0); + ATF_REQUIRE(kev[0].data == 0); + ATF_REQUIRE((kev[1].flags & EV_ERROR) != 0); + ATF_REQUIRE(kev[1].data == 0); + + ATF_REQUIRE(close(p[0]) == 0); + + ATF_REQUIRE(kevent(kq, NULL, 0, kev, nitems(kev), + &(struct timespec) { 0, 0 }) == 2); + { + ATF_REQUIRE(kev[0].ident == (uintptr_t)p[1]); + ATF_REQUIRE(kev[0].filter == EVFILT_WRITE); + ATF_REQUIRE(kev[0].flags == + (EV_EOF | EV_CLEAR | EV_ONESHOT | EV_RECEIPT)); + ATF_REQUIRE(kev[0].fflags == 0); + ATF_REQUIRE(kev[0].data == 16384); + ATF_REQUIRE(kev[0].udata == 0); + } + { + ATF_REQUIRE(kev[1].ident == (uintptr_t)p[1]); + ATF_REQUIRE(kev[1].filter == EVFILT_READ); + ATF_REQUIRE(kev[1].flags == (EV_EOF | EV_CLEAR | EV_RECEIPT)); + ATF_REQUIRE(kev[1].fflags == 0); + ATF_REQUIRE(kev[1].data == 0); + ATF_REQUIRE(kev[1].udata == 0); + } + + ATF_REQUIRE(close(kq) == 0); + ATF_REQUIRE(close(p[1]) == 0); +} + +ATF_TC_WITHOUT_HEAD(pipe_kqueue__closed_write_end); +ATF_TC_BODY(pipe_kqueue__closed_write_end, tc) +{ + int p[2] = { -1, -1 }; + + ATF_REQUIRE(pipe2(p, O_CLOEXEC | O_NONBLOCK) == 0); + ATF_REQUIRE(p[0] >= 0); + ATF_REQUIRE(p[1] >= 0); + + char c = 0; + ssize_t r; + while ((r = write(p[1], &c, 1)) == 1) { + } + ATF_REQUIRE(r < 0); + ATF_REQUIRE(errno == EAGAIN || errno == EWOULDBLOCK); + + ATF_REQUIRE(close(p[1]) == 0); + + int kq = kqueue(); + ATF_REQUIRE(kq >= 0); + + struct kevent kev[32]; + EV_SET(&kev[0], p[0], EVFILT_READ, EV_ADD | EV_CLEAR | EV_RECEIPT, /**/ + 0, 0, 0); + EV_SET(&kev[1], p[0], EVFILT_WRITE, EV_ADD | EV_CLEAR | EV_RECEIPT, /**/ + 0, 0, 0); + + /* + * Trying to register EVFILT_WRITE when the pipe is closed leads to an + * EPIPE error. + */ + + ATF_REQUIRE(kevent(kq, kev, 2, kev, 2, NULL) == 2); + ATF_REQUIRE((kev[0].flags & EV_ERROR) != 0); + ATF_REQUIRE(kev[0].data == 0); + ATF_REQUIRE((kev[1].flags & EV_ERROR) != 0); + ATF_REQUIRE(kev[1].data == EPIPE); + + ATF_REQUIRE(kevent(kq, NULL, 0, kev, nitems(kev), + &(struct timespec) { 0, 0 }) == 1); + ATF_REQUIRE(kev[0].ident == (uintptr_t)p[0]); + ATF_REQUIRE(kev[0].filter == EVFILT_READ); + ATF_REQUIRE(kev[0].flags == (EV_EOF | EV_CLEAR | EV_RECEIPT)); + ATF_REQUIRE(kev[0].fflags == 0); + ATF_REQUIRE(kev[0].data == 65536); + ATF_REQUIRE(kev[0].udata == 0); + + ATF_REQUIRE(close(kq) == 0); + ATF_REQUIRE(close(p[0]) == 0); +} + +ATF_TC_WITHOUT_HEAD(pipe_kqueue__closed_write_end_register_before_close); +ATF_TC_BODY(pipe_kqueue__closed_write_end_register_before_close, tc) +{ + int p[2] = { -1, -1 }; + + ATF_REQUIRE(pipe2(p, O_CLOEXEC | O_NONBLOCK) == 0); + ATF_REQUIRE(p[0] >= 0); + ATF_REQUIRE(p[1] >= 0); + + int kq = kqueue(); + ATF_REQUIRE(kq >= 0); + + struct kevent kev[32]; + EV_SET(&kev[0], p[0], EVFILT_READ, EV_ADD | EV_CLEAR | EV_RECEIPT, /**/ + 0, 0, 0); + EV_SET(&kev[1], p[0], EVFILT_WRITE, EV_ADD | EV_CLEAR | EV_RECEIPT, /**/ + 0, 0, 0); + + /* + * Registering EVFILT_WRITE before the pipe is closed leads to a + * EVFILT_WRITE event with EV_EOF set. + */ + + ATF_REQUIRE(kevent(kq, kev, 2, kev, 2, NULL) == 2); + ATF_REQUIRE((kev[0].flags & EV_ERROR) != 0); + ATF_REQUIRE(kev[0].data == 0); + ATF_REQUIRE((kev[1].flags & EV_ERROR) != 0); + ATF_REQUIRE(kev[1].data == 0); + + char c = 0; + ssize_t r; + while ((r = write(p[1], &c, 1)) == 1) { + } + ATF_REQUIRE(r < 0); + ATF_REQUIRE(errno == EAGAIN || errno == EWOULDBLOCK); + + ATF_REQUIRE(close(p[1]) == 0); + + ATF_REQUIRE(kevent(kq, NULL, 0, kev, nitems(kev), + &(struct timespec) { 0, 0 }) == 2); + { + ATF_REQUIRE(kev[0].ident == (uintptr_t)p[0]); + ATF_REQUIRE(kev[0].filter == EVFILT_WRITE); + ATF_REQUIRE(kev[0].flags == + (EV_EOF | EV_CLEAR | EV_ONESHOT | EV_RECEIPT)); + ATF_REQUIRE(kev[0].fflags == 0); + ATF_REQUIRE(kev[0].data == 4096 || + kev[0].data == 512 /* on FreeBSD 11.3 */); + ATF_REQUIRE(kev[0].udata == 0); + } + { + ATF_REQUIRE(kev[1].ident == (uintptr_t)p[0]); + ATF_REQUIRE(kev[1].filter == EVFILT_READ); + ATF_REQUIRE(kev[1].flags == (EV_EOF | EV_CLEAR | EV_RECEIPT)); + ATF_REQUIRE(kev[1].fflags == 0); + ATF_REQUIRE(kev[1].data == 65536); + ATF_REQUIRE(kev[1].udata == 0); + } + + ATF_REQUIRE(close(kq) == 0); + ATF_REQUIRE(close(p[0]) == 0); +} + +ATF_TP_ADD_TCS(tp) +{ + ATF_TP_ADD_TC(tp, pipe_kqueue__write_end); + ATF_TP_ADD_TC(tp, pipe_kqueue__closed_read_end); + ATF_TP_ADD_TC(tp, pipe_kqueue__closed_read_end_register_before_close); + ATF_TP_ADD_TC(tp, pipe_kqueue__closed_write_end); + ATF_TP_ADD_TC(tp, pipe_kqueue__closed_write_end_register_before_close); + + return atf_no_error(); +} From owner-svn-src-all@freebsd.org Mon Apr 27 16:09: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 E4FA92BDF3C; Mon, 27 Apr 2020 16:09:03 +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 499qTW5mkgz4GHX; Mon, 27 Apr 2020 16:09:03 +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 C14BCD18C; Mon, 27 Apr 2020 16:09: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 03RG931P083280; Mon, 27 Apr 2020 16:09:03 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RG93Fs083279; Mon, 27 Apr 2020 16:09:03 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004271609.03RG93Fs083279@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 27 Apr 2020 16:09:03 +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: r360382 - stable/12/contrib/dtc X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: stable/12/contrib/dtc X-SVN-Commit-Revision: 360382 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, 27 Apr 2020 16:09:04 -0000 Author: kevans Date: Mon Apr 27 16:09:03 2020 New Revision: 360382 URL: https://svnweb.freebsd.org/changeset/base/360382 Log: dtc: fix the -fno-common build This is a direct commit to stable/12, as GPL dtc has been removed in head. -fno-common will become the default in GCC10/LLVM11. Modified: stable/12/contrib/dtc/dtc-lexer.l Modified: stable/12/contrib/dtc/dtc-lexer.l ============================================================================== --- stable/12/contrib/dtc/dtc-lexer.l Mon Apr 27 15:59:34 2020 (r360381) +++ stable/12/contrib/dtc/dtc-lexer.l Mon Apr 27 16:09:03 2020 (r360382) @@ -42,7 +42,7 @@ LINECOMMENT "//".*\n YY_BUFFER_STATE include_stack[MAX_INCLUDE_NESTING]; int include_stack_pointer = 0; -YYLTYPE yylloc; +extern YYLTYPE yylloc; extern bool treesource_error; /* CAUTION: this will stop working if we ever use yyless() or yyunput() */ From owner-svn-src-all@freebsd.org Mon Apr 27 16:12: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 0252F2BE21E; Mon, 27 Apr 2020 16:12:01 +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 499qXw6X0Sz4Gkm; Mon, 27 Apr 2020 16:12:00 +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 DADBDD218; Mon, 27 Apr 2020 16:12:00 +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 03RGC0WF087621; Mon, 27 Apr 2020 16:12:00 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RGBxlC087609; Mon, 27 Apr 2020 16:11:59 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004271611.03RGBxlC087609@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 27 Apr 2020 16:11:59 +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: r360383 - stable/12/usr.bin/systat X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: stable/12/usr.bin/systat X-SVN-Commit-Revision: 360383 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, 27 Apr 2020 16:12:01 -0000 Author: kevans Date: Mon Apr 27 16:11:59 2020 New Revision: 360383 URL: https://svnweb.freebsd.org/changeset/base/360383 Log: MFC r340361, r345804: catch up on systat in head/ [Neither of these originally mine, but the latter commit referenced fixes an -fno-common issue and the former is a bugfix] r340361: Fix printing of 64-bit counters on 32-bit ppc platforms. Several statistic counters are uint64_t values and are printed by systat using %lu. This results in displaying wrong numbers. Use PRIu64 instead. While there, print variables of size_t using %zd. r345804: systat -zarc to display disk activities like -vm PR: 213310 Modified: stable/12/usr.bin/systat/devs.c stable/12/usr.bin/systat/devs.h stable/12/usr.bin/systat/iostat.c stable/12/usr.bin/systat/swap.c stable/12/usr.bin/systat/systat.h stable/12/usr.bin/systat/vmstat.c stable/12/usr.bin/systat/zarc.c Directory Properties: stable/12/ (props changed) Modified: stable/12/usr.bin/systat/devs.c ============================================================================== --- stable/12/usr.bin/systat/devs.c Mon Apr 27 16:09:03 2020 (r360382) +++ stable/12/usr.bin/systat/devs.c Mon Apr 27 16:11:59 2020 (r360383) @@ -2,6 +2,7 @@ * SPDX-License-Identifier: BSD-3-Clause * * Copyright (c) 1998 Kenneth D. Merry. + * 2015 Yoshihiro Ota * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -69,7 +70,6 @@ static const char sccsid[] = "@(#)disks.c 8.1 (Berkele #include #include -#include #include #include #include @@ -84,6 +84,8 @@ typedef enum { DS_MATCHTYPE_PATTERN } last_match_type; +struct statinfo cur_dev, last_dev, run_dev; + last_match_type last_type; struct device_selection *dev_select; long generation; @@ -101,10 +103,8 @@ static int dsselect(const char *args, devstat_select_m int maxshowdevs, struct statinfo *s1); int -dsinit(int maxshowdevs, struct statinfo *s1, struct statinfo *s2 __unused, - struct statinfo *s3 __unused) +dsinit(int maxshowdevs) { - /* * Make sure that the userland devstat version matches the kernel * devstat version. If not, exit and print a message informing @@ -113,6 +113,18 @@ dsinit(int maxshowdevs, struct statinfo *s1, struct st if (devstat_checkversion(NULL) < 0) errx(1, "%s", devstat_errbuf); + if( cur_dev.dinfo ) // init was alreay ran + return(1); + + if ((num_devices = devstat_getnumdevs(NULL)) < 0) { + warnx("%s", devstat_errbuf); + return(0); + } + + cur_dev.dinfo = calloc(1, sizeof(struct devinfo)); + last_dev.dinfo = calloc(1, sizeof(struct devinfo)); + run_dev.dinfo = calloc(1, sizeof(struct devinfo)); + generation = 0; num_devices = 0; num_selected = 0; @@ -120,11 +132,11 @@ dsinit(int maxshowdevs, struct statinfo *s1, struct st select_generation = 0; last_type = DS_MATCHTYPE_NONE; - if (devstat_getdevs(NULL, s1) == -1) + if (devstat_getdevs(NULL, &cur_dev) == -1) errx(1, "%s", devstat_errbuf); - num_devices = s1->dinfo->numdevs; - generation = s1->dinfo->generation; + num_devices = cur_dev.dinfo->numdevs; + generation = cur_dev.dinfo->generation; dev_select = NULL; @@ -134,13 +146,31 @@ dsinit(int maxshowdevs, struct statinfo *s1, struct st * or 1. If we get back -1, though, there is an error. */ if (devstat_selectdevs(&dev_select, &num_selected, &num_selections, - &select_generation, generation, s1->dinfo->devices, num_devices, + &select_generation, generation, cur_dev.dinfo->devices, num_devices, NULL, 0, NULL, 0, DS_SELECT_ADD, maxshowdevs, 0) == -1) errx(1, "%d %s", __LINE__, devstat_errbuf); return(1); } + +void +dsgetinfo(struct statinfo* dev) +{ + switch (devstat_getdevs(NULL, dev)) { + case -1: + errx(1, "%s", devstat_errbuf); + break; + case 1: + num_devices = dev->dinfo->numdevs; + generation = dev->dinfo->generation; + cmdkre("refresh", NULL); + break; + default: + break; + } +} + int dscmd(const char *cmd, const char *args, int maxshowdevs, struct statinfo *s1) { @@ -330,4 +360,84 @@ dsselect(const char *args, devstat_select_mode select_ return(2); } return(1); +} + + +void +dslabel(int maxdrives, int diskcol, int diskrow) +{ + int i, j; + + mvprintw(diskrow, diskcol, "Disks"); + mvprintw(diskrow + 1, diskcol, "KB/t"); + mvprintw(diskrow + 2, diskcol, "tps"); + mvprintw(diskrow + 3, diskcol, "MB/s"); + mvprintw(diskrow + 4, diskcol, "%%busy"); + /* + * For now, we don't support a fourth disk statistic. So there's + * no point in providing a label for it. If someone can think of a + * fourth useful disk statistic, there is room to add it. + */ + /* mvprintw(diskrow + 4, diskcol, " msps"); */ + j = 0; + for (i = 0; i < num_devices && j < maxdrives; i++) + if (dev_select[i].selected) { + char tmpstr[80]; + sprintf(tmpstr, "%s%d", dev_select[i].device_name, + dev_select[i].unit_number); + mvprintw(diskrow, diskcol + 5 + 6 * j, + " %5.5s", tmpstr); + j++; + } +} + +static void +dsshow2(int diskcol, int diskrow, int dn, int lc, struct statinfo *now, struct statinfo *then) +{ + long double transfers_per_second; + long double kb_per_transfer, mb_per_second; + long double elapsed_time, device_busy; + int di; + + di = dev_select[dn].position; + + if (then != NULL) { + /* Calculate relative to previous sample */ + elapsed_time = now->snap_time - then->snap_time; + } else { + /* Calculate relative to device creation */ + elapsed_time = now->snap_time - devstat_compute_etime( + &now->dinfo->devices[di].creation_time, NULL); + } + + if (devstat_compute_statistics(&now->dinfo->devices[di], then ? + &then->dinfo->devices[di] : NULL, elapsed_time, + DSM_KB_PER_TRANSFER, &kb_per_transfer, + DSM_TRANSFERS_PER_SECOND, &transfers_per_second, + DSM_MB_PER_SECOND, &mb_per_second, + DSM_BUSY_PCT, &device_busy, + DSM_NONE) != 0) + errx(1, "%s", devstat_errbuf); + + lc = diskcol + lc * 6; + putlongdouble(kb_per_transfer, diskrow + 1, lc, 5, 2, 0); + putlongdouble(transfers_per_second, diskrow + 2, lc, 5, 0, 0); + putlongdouble(mb_per_second, diskrow + 3, lc, 5, 2, 0); + putlongdouble(device_busy, diskrow + 4, lc, 5, 0, 0); +} + +static void +dsshow3(int diskcol, int diskrow, int dn, int lc, struct statinfo *now, struct statinfo *then) +{ + dsshow2(diskcol, diskrow, dn, lc, now, then); +} + +void +dsshow(int maxdrives, int diskcol, int diskrow, struct statinfo *now, struct statinfo *then) +{ + int i, lc; + + for (i = 0, lc = 0; i < num_devices && lc < maxdrives; i++) + if (dev_select[i].selected) + dsshow3(diskcol, diskrow, i, ++lc, now, then); } Modified: stable/12/usr.bin/systat/devs.h ============================================================================== --- stable/12/usr.bin/systat/devs.h Mon Apr 27 16:09:03 2020 (r360382) +++ stable/12/usr.bin/systat/devs.h Mon Apr 27 16:11:59 2020 (r360383) @@ -2,6 +2,7 @@ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * * Copyright (c) 1998 David E. O'Brien + * 2015 Yoshihiro Ota * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -28,5 +29,18 @@ * $FreeBSD$ */ -int dsinit(int, struct statinfo *, struct statinfo *, struct statinfo *); +#ifndef DEVS_H +#define DEVS_H + +#include + +int dsinit(int); +void dsgetinfo(struct statinfo *); int dscmd(const char *, const char *, int, struct statinfo *); + +void dslabel(int, int, int); +void dsshow(int, int, int, struct statinfo *, struct statinfo *); + +extern struct statinfo cur_dev, last_dev, run_dev; + +#endif Modified: stable/12/usr.bin/systat/iostat.c ============================================================================== --- stable/12/usr.bin/systat/iostat.c Mon Apr 27 16:09:03 2020 (r360382) +++ stable/12/usr.bin/systat/iostat.c Mon Apr 27 16:11:59 2020 (r360383) @@ -79,8 +79,6 @@ static const char sccsid[] = "@(#)iostat.c 8.1 (Berkel #include "extern.h" #include "devs.h" -struct statinfo cur, last; - static int linesperregion; static double etime; static int numbers = 0; /* default display bar graphs */ @@ -111,17 +109,11 @@ closeiostat(WINDOW *w) int initiostat(void) { - if ((num_devices = devstat_getnumdevs(NULL)) < 0) - return(0); - - cur.dinfo = calloc(1, sizeof(struct devinfo)); - last.dinfo = calloc(1, sizeof(struct devinfo)); - /* * This value for maxshowdevs (100) is bogus. I'm not sure exactly * how to calculate it, though. */ - if (dsinit(100, &cur, &last, NULL) != 1) + if (dsinit(7) != 1) return(0); return(1); @@ -133,17 +125,17 @@ fetchiostat(void) struct devinfo *tmp_dinfo; size_t len; - len = sizeof(cur.cp_time); - if (sysctlbyname("kern.cp_time", &cur.cp_time, &len, NULL, 0) - || len != sizeof(cur.cp_time)) { + len = sizeof(cur_dev.cp_time); + if (sysctlbyname("kern.cp_time", &cur_dev.cp_time, &len, NULL, 0) + || len != sizeof(cur_dev.cp_time)) { perror("kern.cp_time"); exit (1); } - tmp_dinfo = last.dinfo; - last.dinfo = cur.dinfo; - cur.dinfo = tmp_dinfo; + tmp_dinfo = last_dev.dinfo; + last_dev.dinfo = cur_dev.dinfo; + cur_dev.dinfo = tmp_dinfo; - last.snap_time = cur.snap_time; + last_dev.snap_time = cur_dev.snap_time; /* * Here what we want to do is refresh our device stats. @@ -152,7 +144,7 @@ fetchiostat(void) * the selection process again, in case a device that we * were previously displaying has gone away. */ - switch (devstat_getdevs(NULL, &cur)) { + switch (devstat_getdevs(NULL, &cur_dev)) { case -1: errx(1, "%s", devstat_errbuf); break; @@ -162,8 +154,8 @@ fetchiostat(void) default: break; } - num_devices = cur.dinfo->numdevs; - generation = cur.dinfo->generation; + num_devices = cur_dev.dinfo->numdevs; + generation = cur_dev.dinfo->generation; } @@ -260,11 +252,11 @@ showiostat(void) long t; int i, row, _col; -#define X(fld) t = cur.fld[i]; cur.fld[i] -= last.fld[i]; last.fld[i] = t +#define X(fld) t = cur_dev.fld[i]; cur_dev.fld[i] -= last_dev.fld[i]; last_dev.fld[i] = t etime = 0; for(i = 0; i < CPUSTATES; i++) { X(cp_time); - etime += cur.cp_time[i]; + etime += cur_dev.cp_time[i]; } if (etime == 0.0) etime = 1.0; @@ -313,10 +305,10 @@ devstats(int row, int _col, int dn) di = dev_select[dn].position; - busy_seconds = cur.snap_time - last.snap_time; + busy_seconds = cur_dev.snap_time - last_dev.snap_time; - if (devstat_compute_statistics(&cur.dinfo->devices[di], - &last.dinfo->devices[di], busy_seconds, + if (devstat_compute_statistics(&cur_dev.dinfo->devices[di], + &last_dev.dinfo->devices[di], busy_seconds, DSM_KB_PER_TRANSFER, &kb_per_transfer, DSM_TRANSFERS_PER_SECOND, &transfers_per_second, DSM_MB_PER_SECOND, &mb_per_second, DSM_NONE) != 0) @@ -349,12 +341,12 @@ stat1(int row, int o) dtime = 0.0; for (i = 0; i < CPUSTATES; i++) - dtime += cur.cp_time[i]; + dtime += cur_dev.cp_time[i]; if (dtime == 0.0) dtime = 1.0; wmove(wnd, row, INSET); #define CPUSCALE 0.5 - histogram(100.0 * cur.cp_time[o] / dtime, 50, CPUSCALE); + histogram(100.0 * cur_dev.cp_time[o] / dtime, 50, CPUSCALE); } static void @@ -388,7 +380,7 @@ cmdiostat(const char *cmd, const char *args) numbers = 1; else if (prefix(cmd, "bars")) numbers = 0; - else if (!dscmd(cmd, args, 100, &cur)) + else if (!dscmd(cmd, args, 100, &cur_dev)) return (0); wclear(wnd); labeliostat(); Modified: stable/12/usr.bin/systat/swap.c ============================================================================== --- stable/12/usr.bin/systat/swap.c Mon Apr 27 16:09:03 2020 (r360382) +++ stable/12/usr.bin/systat/swap.c Mon Apr 27 16:11:59 2020 (r360383) @@ -3,6 +3,7 @@ * * Copyright (c) 1980, 1992, 1993 * The Regents of the University of California. All rights reserved. + * Copyright (c) 2017 Yoshihiro Ota * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -55,6 +56,7 @@ static const char sccsid[] = "@(#)swap.c 8.3 (Berkeley #include "systat.h" #include "extern.h" +#include "devs.h" static char *header; static long blocksize; @@ -135,13 +137,15 @@ initswap(void) oulen = ulen; once = 1; + + dsinit(12); + return (1); } void fetchswap(void) { - okvnsw = kvnsw; if ((kvnsw = kvm_getswapinfo(kd, kvmsw, NSWAP, 0)) < 0) { error("systat: kvm_getswapinfo failed"); @@ -151,6 +155,15 @@ fetchswap(void) odlen = dlen; oulen = ulen; calclens(); + + struct devinfo *tmp_dinfo; + + tmp_dinfo = last_dev.dinfo; + last_dev.dinfo = cur_dev.dinfo; + cur_dev.dinfo = tmp_dinfo; + + last_dev.snap_time = cur_dev.snap_time; + dsgetinfo( &cur_dev ); } void @@ -176,6 +189,7 @@ labelswap(void) name = kvmsw[i].ksw_devname; mvwprintw(wnd, i + 1, 0, "%*s", -dlen, name); } + dslabel(12, 0, 18); } void @@ -215,4 +229,5 @@ showswap(void) waddch(wnd, 'X'); wclrtoeol(wnd); } + dsshow(12, 0, 18, &cur_dev, &last_dev); } Modified: stable/12/usr.bin/systat/systat.h ============================================================================== --- stable/12/usr.bin/systat/systat.h Mon Apr 27 16:09:03 2020 (r360382) +++ stable/12/usr.bin/systat/systat.h Mon Apr 27 16:11:59 2020 (r360383) @@ -68,3 +68,7 @@ extern int use_kvm; #define NVAL(indx) namelist[(indx)].n_value #define NPTR(indx) (void *)NVAL((indx)) #define NREAD(indx, buf, len) kvm_ckread(NPTR((indx)), (buf), (len)) + +extern void putint(int, int, int, int); +extern void putfloat(double, int, int, int, int, int); +extern void putlongdouble(long double, int, int, int, int, int); Modified: stable/12/usr.bin/systat/vmstat.c ============================================================================== --- stable/12/usr.bin/systat/vmstat.c Mon Apr 27 16:09:03 2020 (r360382) +++ stable/12/usr.bin/systat/vmstat.c Mon Apr 27 16:11:59 2020 (r360383) @@ -66,7 +66,6 @@ static const char sccsid[] = "@(#)vmstat.c 8.2 (Berkel #include #include #include -#include #include "systat.h" #include "extern.h" #include "devs.h" @@ -125,7 +124,6 @@ static struct Info { static u_long kmem_size; static u_int v_page_count; -struct statinfo cur, last, run; #define total s.Total #define nchtotal s.nchstats @@ -137,13 +135,9 @@ enum divisor { IEC = 0, SI = HN_DIVISOR_1000 }; static void allocinfo(struct Info *); static void copyinfo(struct Info *, struct Info *); static float cputime(int); -static void dinfo(int, int, struct statinfo *, struct statinfo *); static void do_putuint64(uint64_t, int, int, int, int); static void getinfo(struct Info *); -static void putint(int, int, int, int); static void putuint64(uint64_t, int, int, int); -static void putfloat(double, int, int, int, int, int); -static void putlongdouble(long double, int, int, int, int, int); static int ucount(void); static int ncpu; @@ -209,18 +203,9 @@ initkre(void) int i; size_t sz; - if ((num_devices = devstat_getnumdevs(NULL)) < 0) { - warnx("%s", devstat_errbuf); + if (dsinit(MAXDRIVES) != 1) return(0); - } - cur.dinfo = calloc(1, sizeof(struct devinfo)); - last.dinfo = calloc(1, sizeof(struct devinfo)); - run.dinfo = calloc(1, sizeof(struct devinfo)); - - if (dsinit(MAXDRIVES, &cur, &last, &run) != 1) - return(0); - if (nintr == 0) { if (sysctlbyname("hw.intrcnt", NULL, &sz, NULL, 0) == -1) { error("sysctl(hw.intrcnt...) failed: %s", @@ -371,27 +356,7 @@ labelkre(void) mvprintw(NAMEIROW, NAMEICOL, "Namei Name-cache Dir-cache"); mvprintw(NAMEIROW + 1, NAMEICOL, " Calls hits %% hits %%"); - mvprintw(DISKROW, DISKCOL, "Disks"); - mvprintw(DISKROW + 1, DISKCOL, "KB/t"); - mvprintw(DISKROW + 2, DISKCOL, "tps"); - mvprintw(DISKROW + 3, DISKCOL, "MB/s"); - mvprintw(DISKROW + 4, DISKCOL, "%%busy"); - /* - * For now, we don't support a fourth disk statistic. So there's - * no point in providing a label for it. If someone can think of a - * fourth useful disk statistic, there is room to add it. - */ - /* mvprintw(DISKROW + 4, DISKCOL, " msps"); */ - j = 0; - for (i = 0; i < num_devices && j < MAXDRIVES; i++) - if (dev_select[i].selected) { - char tmpstr[80]; - sprintf(tmpstr, "%s%d", dev_select[i].device_name, - dev_select[i].unit_number); - mvprintw(DISKROW, DISKCOL + 5 + 6 * j, - " %5.5s", tmpstr); - j++; - } + dslabel(MAXDRIVES, DISKCOL, DISKROW); for (i = 0; i < nintr; i++) { if (intrloc[i] == 0) @@ -401,7 +366,7 @@ labelkre(void) } #define X(fld) {t=s.fld[i]; s.fld[i]-=s1.fld[i]; if(state==TIME) s1.fld[i]=t;} -#define Q(fld) {t=cur.fld[i]; cur.fld[i]-=last.fld[i]; if(state==TIME) last.fld[i]=t;} +#define Q(fld) {t=cur_dev.fld[i]; cur_dev.fld[i]-=last_dev.fld[i]; if(state==TIME) last_dev.fld[i]=t;} #define Y(fld) {t = s.fld; s.fld -= s1.fld; if(state == TIME) s1.fld = t;} #define Z(fld) {t = s.nchstats.fld; s.nchstats.fld -= s1.nchstats.fld; \ if(state == TIME) s1.nchstats.fld = t;} @@ -543,20 +508,17 @@ showkre(void) PUTRATE(v_intr, GENSTATROW + 1, GENSTATCOL + 15, 4); PUTRATE(v_soft, GENSTATROW + 1, GENSTATCOL + 20, 4); PUTRATE(v_vm_faults, GENSTATROW + 1, GENSTATCOL + 25, 4); - for (i = 0, lc = 0; i < num_devices && lc < MAXDRIVES; i++) - if (dev_select[i].selected) { - switch(state) { - case TIME: - dinfo(i, ++lc, &cur, &last); - break; - case RUN: - dinfo(i, ++lc, &cur, &run); - break; - case BOOT: - dinfo(i, ++lc, &cur, NULL); - break; - } - } + switch(state) { + case TIME: + dsshow(MAXDRIVES, DISKCOL, DISKROW, &cur_dev, &last_dev); + break; + case RUN: + dsshow(MAXDRIVES, DISKCOL, DISKROW, &cur_dev, &run_dev); + break; + case BOOT: + dsshow(MAXDRIVES, DISKCOL, DISKROW, &cur_dev, NULL); + break; + } putint(s.numdirtybuffers, VNSTATROW, VNSTATCOL, 7); putint(s.desiredvnodes, VNSTATROW + 1, VNSTATCOL, 7); putint(s.numvnodes, VNSTATROW + 2, VNSTATCOL, 7); @@ -582,14 +544,14 @@ cmdkre(const char *cmd, const char *args) if (prefix(cmd, "run")) { retval = 1; copyinfo(&s2, &s1); - switch (devstat_getdevs(NULL, &run)) { + switch (devstat_getdevs(NULL, &run_dev)) { case -1: errx(1, "%s", devstat_errbuf); break; case 1: - num_devices = run.dinfo->numdevs; - generation = run.dinfo->generation; - retval = dscmd("refresh", NULL, MAXDRIVES, &cur); + num_devices = run_dev.dinfo->numdevs; + generation = run_dev.dinfo->generation; + retval = dscmd("refresh", NULL, MAXDRIVES, &cur_dev); if (retval == 2) labelkre(); break; @@ -612,14 +574,14 @@ cmdkre(const char *cmd, const char *args) retval = 1; if (state == RUN) { getinfo(&s1); - switch (devstat_getdevs(NULL, &run)) { + switch (devstat_getdevs(NULL, &run_dev)) { case -1: errx(1, "%s", devstat_errbuf); break; case 1: - num_devices = run.dinfo->numdevs; - generation = run.dinfo->generation; - retval = dscmd("refresh",NULL, MAXDRIVES, &cur); + num_devices = run_dev.dinfo->numdevs; + generation = run_dev.dinfo->generation; + retval = dscmd("refresh",NULL, MAXDRIVES, &cur_dev); if (retval == 2) labelkre(); break; @@ -629,7 +591,7 @@ cmdkre(const char *cmd, const char *args) } return (retval); } - retval = dscmd(cmd, args, MAXDRIVES, &cur); + retval = dscmd(cmd, args, MAXDRIVES, &cur_dev); if (retval == 2) labelkre(); @@ -667,7 +629,7 @@ cputime(int indx) return (s.time[indx] * 100.0 / lt); } -static void +void putint(int n, int l, int lc, int w) { @@ -713,7 +675,7 @@ do_putuint64(uint64_t n, int l, int lc, int w, int div addstr(b); } -static void +void putfloat(double f, int l, int lc, int w, int d, int nz) { int snr; @@ -745,7 +707,7 @@ putfloat(double f, int l, int lc, int w, int d, int nz addstr(b); } -static void +void putlongdouble(long double f, int l, int lc, int w, int d, int nz) { int snr; @@ -785,7 +747,7 @@ getinfo(struct Info *ls) int mib[2]; GETSYSCTL("kern.cp_time", ls->time); - GETSYSCTL("kern.cp_time", cur.cp_time); + GETSYSCTL("kern.cp_time", cur_dev.cp_time); GETSYSCTL("vm.stats.sys.v_swtch", ls->v_swtch); GETSYSCTL("vm.stats.sys.v_trap", ls->v_trap); GETSYSCTL("vm.stats.sys.v_syscall", ls->v_syscall); @@ -838,23 +800,12 @@ getinfo(struct Info *ls) size != sizeof(ncpu)) ncpu = 1; - tmp_dinfo = last.dinfo; - last.dinfo = cur.dinfo; - cur.dinfo = tmp_dinfo; + tmp_dinfo = last_dev.dinfo; + last_dev.dinfo = cur_dev.dinfo; + cur_dev.dinfo = tmp_dinfo; - last.snap_time = cur.snap_time; - switch (devstat_getdevs(NULL, &cur)) { - case -1: - errx(1, "%s", devstat_errbuf); - break; - case 1: - num_devices = cur.dinfo->numdevs; - generation = cur.dinfo->generation; - cmdkre("refresh", NULL); - break; - default: - break; - } + last_dev.snap_time = cur_dev.snap_time; + dsgetinfo(&cur_dev); } static void @@ -880,39 +831,4 @@ copyinfo(struct Info *from, struct Info *to) *to = *from; bcopy(from->intrcnt, to->intrcnt = intrcnt, nintr * sizeof (int)); -} - -static void -dinfo(int dn, int lc, struct statinfo *now, struct statinfo *then) -{ - long double transfers_per_second; - long double kb_per_transfer, mb_per_second; - long double elapsed_time, device_busy; - int di; - - di = dev_select[dn].position; - - if (then != NULL) { - /* Calculate relative to previous sample */ - elapsed_time = now->snap_time - then->snap_time; - } else { - /* Calculate relative to device creation */ - elapsed_time = now->snap_time - devstat_compute_etime( - &now->dinfo->devices[di].creation_time, NULL); - } - - if (devstat_compute_statistics(&now->dinfo->devices[di], then ? - &then->dinfo->devices[di] : NULL, elapsed_time, - DSM_KB_PER_TRANSFER, &kb_per_transfer, - DSM_TRANSFERS_PER_SECOND, &transfers_per_second, - DSM_MB_PER_SECOND, &mb_per_second, - DSM_BUSY_PCT, &device_busy, - DSM_NONE) != 0) - errx(1, "%s", devstat_errbuf); - - lc = DISKCOL + lc * 6; - putlongdouble(kb_per_transfer, DISKROW + 1, lc, 5, 2, 0); - putlongdouble(transfers_per_second, DISKROW + 2, lc, 5, 0, 0); - putlongdouble(mb_per_second, DISKROW + 3, lc, 5, 2, 0); - putlongdouble(device_busy, DISKROW + 4, lc, 5, 0, 0); } Modified: stable/12/usr.bin/systat/zarc.c ============================================================================== --- stable/12/usr.bin/systat/zarc.c Mon Apr 27 16:09:03 2020 (r360382) +++ stable/12/usr.bin/systat/zarc.c Mon Apr 27 16:11:59 2020 (r360383) @@ -1,6 +1,5 @@ /*- - * Copyright (c) 2014 - * The Regents of the University of California. All rights reserved. + * Copyright (c) 2014 - 2017 Yoshihiro Ota * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -33,11 +32,14 @@ __FBSDID("$FreeBSD$"); #include #include +/* #include */ #include #include +#include #include "systat.h" #include "extern.h" +#include "devs.h" struct zfield{ uint64_t arcstats; @@ -77,21 +79,23 @@ closezarc(WINDOW *w) void labelzarc(void) { + int row = 1; wmove(wnd, 0, 0); wclrtoeol(wnd); mvwprintw(wnd, 0, 31+1, "%4.4s %7.7s %7.7s %12.12s %12.12s", "rate", "hits", "misses", "total hits", "total misses"); -#define L(row, str) mvwprintw(wnd, row, 5, str); \ +#define L(str) mvwprintw(wnd, row, 5, #str); \ mvwprintw(wnd, row, 31, ":"); \ - mvwprintw(wnd, row, 31+4, "%%") - L(1, "arcstats"); - L(2, "arcstats.demand_data"); - L(3, "arcstats.demand_metadata"); - L(4, "arcstats.prefetch_data"); - L(5, "arcstats.prefetch_metadata"); - L(6, "zfetchstats"); - L(7, "arcstats.l2"); - L(8, "vdev_cache_stats"); + mvwprintw(wnd, row, 31+4, "%%"); ++row + L(arcstats); + L(arcstats.demand_data); + L(arcstats.demand_metadata); + L(arcstats.prefetch_data); + L(arcstats.prefetch_metadata); + L(zfetchstats); + L(arcstats.l2); + L(vdev_cache_stats); #undef L + dslabel(12, 0, 18); } static int calc(uint64_t hits, uint64_t misses) @@ -131,6 +135,7 @@ domode(struct zarcstats *delta, struct zarcstats *rate void showzarc(void) { + int row = 1; struct zarcstats delta, rate; memset(&delta, 0, sizeof delta); @@ -138,34 +143,37 @@ showzarc(void) domode(&delta, &rate); -#define DO(stat, row, col, fmt) \ +#define DO(stat, col, fmt) \ mvwprintw(wnd, row, col, fmt, stat) -#define R(row, stat) DO(rate.hits.stat, row, 31+1, "%3"PRIu64) -#define H(row, stat) DO(delta.hits.stat, row, 31+1+5, "%7"PRIu64); \ - DO(curstat.hits.stat, row, 31+1+5+8+8, "%12"PRIu64) -#define M(row, stat) DO(delta.misses.stat, row, 31+1+5+8, "%7"PRIu64); \ - DO(curstat.misses.stat, row, 31+1+5+8+8+13, "%12"PRIu64) -#define E(row, stat) R(row, stat); H(row, stat); M(row, stat); - E(1, arcstats); - E(2, arcstats_demand_data); - E(3, arcstats_demand_metadata); - E(4, arcstats_prefetch_data); - E(5, arcstats_prefetch_metadata); - E(6, zfetchstats); - E(7, arcstats_l2); - E(8, vdev_cache_stats); +#define R(stat) DO(rate.hits.stat, 31+1, "%3"PRIu64) +#define H(stat) DO(delta.hits.stat, 31+1+5, "%7"PRIu64); \ + DO(curstat.hits.stat, 31+1+5+8+8, "%12"PRIu64) +#define M(stat) DO(delta.misses.stat, 31+1+5+8, "%7"PRIu64); \ + DO(curstat.misses.stat, 31+1+5+8+8+13, "%12"PRIu64) +#define E(stat) R(stat); H(stat); M(stat); ++row + E(arcstats); + E(arcstats_demand_data); + E(arcstats_demand_metadata); + E(arcstats_prefetch_data); + E(arcstats_prefetch_metadata); + E(zfetchstats); + E(arcstats_l2); + E(vdev_cache_stats); #undef DO #undef E #undef M #undef H #undef R + dsshow(12, 0, 18, &cur_dev, &last_dev); } int initzarc(void) { + dsinit(12); getinfo(&initstat); curstat = oldstat = initstat; + return 1; } @@ -178,6 +186,15 @@ resetzarc(void) static void getinfo(struct zarcstats *ls) { + struct devinfo *tmp_dinfo; + + tmp_dinfo = last_dev.dinfo; + last_dev.dinfo = cur_dev.dinfo; + cur_dev.dinfo = tmp_dinfo; + + last_dev.snap_time = cur_dev.snap_time; + dsgetinfo( &cur_dev ); + size_t size = sizeof( ls->hits.arcstats ); if ( sysctlbyname("kstat.zfs.misc.arcstats.hits", &ls->hits.arcstats, &size, NULL, 0 ) != 0 ) From owner-svn-src-all@freebsd.org Mon Apr 27 16: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 6B3BD2BE29E; Mon, 27 Apr 2020 16:12:33 +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 499qYY2HJhz4GtV; Mon, 27 Apr 2020 16:12:33 +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 4923FD35D; Mon, 27 Apr 2020 16:12:33 +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 03RGCXY4089434; Mon, 27 Apr 2020 16:12:33 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RGCX2E089433; Mon, 27 Apr 2020 16:12:33 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202004271612.03RGCX2E089433@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 27 Apr 2020 16:12:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360384 - head/lib/libc/sys X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/lib/libc/sys X-SVN-Commit-Revision: 360384 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, 27 Apr 2020 16:12:33 -0000 Author: markj Date: Mon Apr 27 16:12:32 2020 New Revision: 360384 URL: https://svnweb.freebsd.org/changeset/base/360384 Log: Document handling of connection-mode sockets by sendto(2). sendto(2), sendmsg(2) and sendmmsg(2) return ENOTCONN if a destination address is specified and the socket is not connected and the socket protocol does not automatically connect ("implied connect"). Document that. Also document the fact that the destination address is ignored for connection-mode sockets if the socket is already connected. PR: 245817 Submitted by: Erik Inge Bolsø MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D24530 Modified: head/lib/libc/sys/send.2 Modified: head/lib/libc/sys/send.2 ============================================================================== --- head/lib/libc/sys/send.2 Mon Apr 27 16:11:59 2020 (r360383) +++ head/lib/libc/sys/send.2 Mon Apr 27 16:12:32 2020 (r360384) @@ -28,7 +28,7 @@ .\" From: @(#)send.2 8.2 (Berkeley) 2/21/94 .\" $FreeBSD$ .\" -.Dd January 4, 2019 +.Dd April 27, 2020 .Dt SEND 2 .Os .Sh NAME @@ -69,18 +69,35 @@ The function may be used only when the socket is in a .Em connected -state, while +state. +The functions .Fn sendto , .Fn sendmsg and .Fn sendmmsg -may be used at any time. +may be used at any time if the socket is connectionless-mode. +If the socket is connection-mode, the protocol +must support implied connect (currently +.Xr tcp 4 +is the only protocol with support) or the socket must be in a +connected state before use. .Pp The address of the target is given by .Fa to with .Fa tolen -specifying its size. +specifying its size, or the equivalent +.Fa msg_name +and +.Fa msg_namelen +in +.Fa struct msghdr . +If the socket is in a connected state, the target address passed to +.Fn sendto , +.Fn sendmsg +or +.Fn sendmmsg +is ignored. The length of the message is given by .Fa len . If the message is too long to pass atomically through the @@ -195,6 +212,8 @@ An invalid descriptor was specified. The destination address is a broadcast address, and .Dv SO_BROADCAST has not been set on the socket. +.It Bq Er ENOTCONN +The socket is connection-mode but is not connected. .It Bq Er ENOTSOCK The argument .Fa s @@ -242,6 +261,7 @@ This typically means that the socket is not connected. .El .Sh SEE ALSO +.Xr connect 2 , .Xr fcntl 2 , .Xr getsockopt 2 , .Xr recv 2 , From owner-svn-src-all@freebsd.org Mon Apr 27 16:30: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 A97AD2BEEE9; Mon, 27 Apr 2020 16:30:30 +0000 (UTC) (envelope-from rrs@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 499qyG46zpz4JP4; Mon, 27 Apr 2020 16:30:30 +0000 (UTC) (envelope-from rrs@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 8848CD5DB; Mon, 27 Apr 2020 16:30:30 +0000 (UTC) (envelope-from rrs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03RGUUds096037; Mon, 27 Apr 2020 16:30:30 GMT (envelope-from rrs@FreeBSD.org) Received: (from rrs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RGUTdu096033; Mon, 27 Apr 2020 16:30:29 GMT (envelope-from rrs@FreeBSD.org) Message-Id: <202004271630.03RGUTdu096033@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rrs set sender to rrs@FreeBSD.org using -f From: Randall Stewart Date: Mon, 27 Apr 2020 16:30:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360385 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: rrs X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 360385 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, 27 Apr 2020 16:30:30 -0000 Author: rrs Date: Mon Apr 27 16:30:29 2020 New Revision: 360385 URL: https://svnweb.freebsd.org/changeset/base/360385 Log: This change does a small prepratory step in getting the latest rack and bbr in from the NF repo. When those come in the OOB data handling will be fixed where Skyzaller crashes. Differential Revision: https://reviews.freebsd.org/D24575 Modified: head/sys/netinet/tcp.h head/sys/netinet/tcp_log_buf.h head/sys/netinet/tcp_subr.c head/sys/netinet/tcp_var.h Modified: head/sys/netinet/tcp.h ============================================================================== --- head/sys/netinet/tcp.h Mon Apr 27 16:12:32 2020 (r360384) +++ head/sys/netinet/tcp.h Mon Apr 27 16:30:29 2020 (r360385) @@ -181,6 +181,9 @@ struct tcphdr { #define TCP_CONGESTION 64 /* get/set congestion control algorithm */ #define TCP_CCALGOOPT 65 /* get/set cc algorithm specific options */ #define TCP_DELACK 72 /* socket option for delayed ack */ +#define TCP_FIN_IS_RST 73 /* A fin from the peer is treated has a RST */ +#define TCP_LOG_LIMIT 74 /* Limit to number of records in tcp-log */ +#define TCP_SHARED_CWND_ALLOWED 75 /* Use of a shared cwnd is allowed */ #define TCP_KEEPINIT 128 /* N, time to establish connection */ #define TCP_KEEPIDLE 256 /* L,N,X start keeplives after this period */ #define TCP_KEEPINTVL 512 /* L,N interval between keepalives */ @@ -190,10 +193,11 @@ struct tcphdr { #define TCP_PCAP_IN 4096 /* number of input packets to keep */ #define TCP_FUNCTION_BLK 8192 /* Set the tcp function pointers to the specified stack */ /* Options for Rack and BBR */ +#define TCP_RACK_MBUF_QUEUE 1050 /* Do we allow mbuf queuing if supported */ #define TCP_RACK_PROP 1051 /* RACK proportional rate reduction (bool) */ #define TCP_RACK_TLP_REDUCE 1052 /* RACK TLP cwnd reduction (bool) */ #define TCP_RACK_PACE_REDUCE 1053 /* RACK Pacing reduction factor (divisor) */ -#define TCP_RACK_PACE_MAX_SEG 1054 /* Max segments in a pace */ +#define TCP_RACK_PACE_MAX_SEG 1054 /* Max TSO size we will send */ #define TCP_RACK_PACE_ALWAYS 1055 /* Use the always pace method */ #define TCP_RACK_PROP_RATE 1056 /* The proportional reduction rate */ #define TCP_RACK_PRR_SENDALOT 1057 /* Allow PRR to send more than one seg */ @@ -236,7 +240,7 @@ struct tcphdr { #define TCP_RACK_IDLE_REDUCE_HIGH 1092 /* Reduce the highest cwnd seen to IW on idle */ #define TCP_RACK_MIN_PACE 1093 /* Do we enforce rack min pace time */ #define TCP_RACK_MIN_PACE_SEG 1094 /* If so what is the seg threshould */ -#define TCP_RACK_GP_INCREASE 1094 /* After 4.1 its the GP increase */ +#define TCP_RACK_GP_INCREASE 1094 /* After 4.1 its the GP increase in older rack */ #define TCP_RACK_TLP_USE 1095 #define TCP_BBR_ACK_COMP_ALG 1096 /* Not used */ #define TCP_BBR_TMR_PACE_OH 1096 /* Recycled in 4.2 */ @@ -248,7 +252,8 @@ struct tcphdr { #define TCP_BBR_PROBE_RTT_GAIN 1101 #define TCP_BBR_PROBE_RTT_LEN 1102 #define TCP_BBR_SEND_IWND_IN_TSO 1103 /* Do we burst out whole iwin size chunks at start? */ -#define TCP_BBR_USE_RACK_CHEAT 1104 /* Do we use the rack cheat for pacing rxt's */ +#define TCP_BBR_USE_RACK_RR 1104 /* Do we use the rack rapid recovery for pacing rxt's */ +#define TCP_BBR_USE_RACK_CHEAT TCP_BBR_USE_RACK_RR /* Compat. */ #define TCP_BBR_HDWR_PACE 1105 /* Enable/disable hardware pacing */ #define TCP_BBR_UTTER_MAX_TSO 1106 /* Do we enforce an utter max TSO size */ #define TCP_BBR_EXTRA_STATE 1107 /* Special exit-persist catch up */ @@ -256,6 +261,24 @@ struct tcphdr { #define TCP_BBR_MIN_TOPACEOUT 1109 /* Do we suspend pacing until */ #define TCP_BBR_TSTMP_RAISES 1110 /* Can a timestamp measurement raise the b/w */ #define TCP_BBR_POLICER_DETECT 1111 /* Turn on/off google mode policer detection */ +#define TCP_BBR_RACK_INIT_RATE 1112 /* Set an initial pacing rate for when we have no b/w in kbits per sec */ +#define TCP_RACK_RR_CONF 1113 /* Rack rapid recovery configuration control*/ +#define TCP_RACK_CHEAT_NOT_CONF_RATE TCP_RACK_RR_CONF +#define TCP_RACK_GP_INCREASE_CA 1114 /* GP increase for Congestion Avoidance */ +#define TCP_RACK_GP_INCREASE_SS 1115 /* GP increase for Slow Start */ +#define TCP_RACK_GP_INCREASE_REC 1116 /* GP increase for Recovery */ +#define TCP_RACK_FORCE_MSEG 1117 /* Override to use the user set max-seg value */ +#define TCP_RACK_PACE_RATE_CA 1118 /* Pacing rate for Congestion Avoidance */ +#define TCP_RACK_PACE_RATE_SS 1119 /* Pacing rate for Slow Start */ +#define TCP_RACK_PACE_RATE_REC 1120 /* Pacing rate for Recovery */ +#define TCP_NO_PRR 1122 /* If pacing, don't use prr */ +#define TCP_RACK_NONRXT_CFG_RATE 1123 /* In recovery does a non-rxt use the cfg rate */ +#define TCP_SHARED_CWND_ENABLE 1124 /* Use a shared cwnd if allowed */ +#define TCP_TIMELY_DYN_ADJ 1125 /* Do we attempt dynamic multipler adjustment with timely. */ +#define TCP_RACK_NO_PUSH_AT_MAX 1126 /* For timely do not push if we are over max rtt */ +#define TCP_RACK_PACE_TO_FILL 1127 /* If we are not in recovery, always pace to fill the cwnd in 1 RTT */ +#define TCP_SHARED_CWND_TIME_LIMIT 1128 /* we should limit to low time values the scwnd life */ +#define TCP_RACK_PROFILE 1129 /* Select a profile that sets multiple options */ /* Start of reserved space for third-party user-settable options. */ Modified: head/sys/netinet/tcp_log_buf.h ============================================================================== --- head/sys/netinet/tcp_log_buf.h Mon Apr 27 16:12:32 2020 (r360384) +++ head/sys/netinet/tcp_log_buf.h Mon Apr 27 16:30:29 2020 (r360385) @@ -225,7 +225,11 @@ enum tcp_log_events { TCP_LOG_LRO, /* LRO entry 55 */ TCP_SACK_FILTER_RES, /* Results of SACK Filter 56 */ TCP_SAD_DETECTION, /* Sack Attack Detection 57 */ - TCP_LOG_END /* End (keep at end) 58 */ + TCP_TIMELY_WORK, /* Logs regarding Timely CC tweaks 58 */ + TCP_LOG_USER_EVENT, /* User space event data 59 */ + TCP_LOG_SENDFILE, /* sendfile() logging for TCP connections 60 */ + TCP_LOG_HTTP_T, /* logging of http request tracking 61 */ + TCP_LOG_END /* End (keep at end) 62 */ }; enum tcp_log_states { Modified: head/sys/netinet/tcp_subr.c ============================================================================== --- head/sys/netinet/tcp_subr.c Mon Apr 27 16:12:32 2020 (r360384) +++ head/sys/netinet/tcp_subr.c Mon Apr 27 16:30:29 2020 (r360385) @@ -3465,3 +3465,32 @@ tcp_inptoxtp(const struct inpcb *inp, struct xtcpcb *x if (inp->inp_socket == NULL) xt->xt_inp.xi_socket.xso_protocol = IPPROTO_TCP; } + +void +tcp_log_end_status(struct tcpcb *tp, uint8_t status) +{ + uint32_t bit, i; + + if ((tp == NULL) || + (status > TCP_EI_STATUS_MAX_VALUE) || + (status == 0)) { + /* Invalid */ + return; + } + if (status > (sizeof(uint32_t) * 8)) { + /* Should this be a KASSERT? */ + return; + } + bit = 1U << (status - 1); + if (bit & tp->t_end_info_status) { + /* already logged */ + return; + } + for (i = 0; i < TCP_END_BYTE_INFO; i++) { + if (tp->t_end_info_bytes[i] == TCP_EI_EMPTY_SLOT) { + tp->t_end_info_bytes[i] = status; + tp->t_end_info_status |= bit; + break; + } + } +} Modified: head/sys/netinet/tcp_var.h ============================================================================== --- head/sys/netinet/tcp_var.h Mon Apr 27 16:12:32 2020 (r360384) +++ head/sys/netinet/tcp_var.h Mon Apr 27 16:30:29 2020 (r360385) @@ -43,6 +43,41 @@ #include #endif +#define TCP_END_BYTE_INFO 8 /* Bytes that makeup the "end information array" */ +/* Types of ending byte info */ +#define TCP_EI_EMPTY_SLOT 0 +#define TCP_EI_STATUS_CLIENT_FIN 0x1 +#define TCP_EI_STATUS_CLIENT_RST 0x2 +#define TCP_EI_STATUS_SERVER_FIN 0x3 +#define TCP_EI_STATUS_SERVER_RST 0x4 +#define TCP_EI_STATUS_RETRAN 0x5 +#define TCP_EI_STATUS_PROGRESS 0x6 +#define TCP_EI_STATUS_PERSIST_MAX 0x7 +#define TCP_EI_STATUS_KEEP_MAX 0x8 +#define TCP_EI_STATUS_DATA_A_CLOSE 0x9 +#define TCP_EI_STATUS_RST_IN_FRONT 0xa +#define TCP_EI_STATUS_2MSL 0xb +#define TCP_EI_STATUS_MAX_VALUE 0xb + +/************************************************/ +/* Status bits we track to assure no duplicates, + * the bits here are not used by the code but + * for human representation. To check a bit we + * take and shift over by 1 minus the value (1-8). + */ +/************************************************/ +#define TCP_EI_BITS_CLIENT_FIN 0x001 +#define TCP_EI_BITS_CLIENT_RST 0x002 +#define TCP_EI_BITS_SERVER_FIN 0x004 +#define TCP_EI_BITS_SERVER_RST 0x008 +#define TCP_EI_BITS_RETRAN 0x010 +#define TCP_EI_BITS_PROGRESS 0x020 +#define TCP_EI_BITS_PRESIST_MAX 0x040 +#define TCP_EI_BITS_KEEP_MAX 0x080 +#define TCP_EI_BITS_DATA_A_CLO 0x100 +#define TCP_EI_BITS_RST_IN_FR 0x200 /* a front state reset */ +#define TCP_EI_BITS_2MS_TIMER 0x400 /* 2 MSL timer expired */ + #if defined(_KERNEL) || defined(_WANT_TCPCB) /* TCP segment queue entry */ struct tseg_qent { @@ -219,11 +254,16 @@ struct tcpcb { tcp_seq gput_ack; /* Inbound measurement ack */ int32_t t_stats_gput_prev; /* XXXLAS: Prev gput measurement */ uint8_t t_tfo_client_cookie_len; /* TCP Fast Open client cookie length */ + uint32_t t_end_info_status; /* Status flag of end info */ unsigned int *t_tfo_pending; /* TCP Fast Open server pending counter */ union { uint8_t client[TCP_FASTOPEN_MAX_COOKIE_LEN]; uint64_t server; } t_tfo_cookie; /* TCP Fast Open cookie to send */ + union { + uint8_t t_end_info_bytes[TCP_END_BYTE_INFO]; + uint64_t t_end_info; + }; #ifdef TCPPCAP struct mbufq t_inpkts; /* List of saved input packets. */ struct mbufq t_outpkts; /* List of saved output packets. */ @@ -1010,6 +1050,7 @@ struct mbuf * int32_t seglimit, int32_t segsize, struct sockbuf *sb, bool hw_tls); int tcp_stats_init(void); +void tcp_log_end_status(struct tcpcb *tp, uint8_t status); static inline void tcp_fields_to_host(struct tcphdr *th) From owner-svn-src-all@freebsd.org Mon Apr 27 17:53: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 0FC592C11B2; Mon, 27 Apr 2020 17:53:39 +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 499spB6DCYz4PWk; Mon, 27 Apr 2020 17:53:38 +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 D0DAFE874; Mon, 27 Apr 2020 17:53:38 +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 03RHrcRC052006; Mon, 27 Apr 2020 17:53:38 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RHrciw052004; Mon, 27 Apr 2020 17:53:38 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202004271753.03RHrciw052004@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Mon, 27 Apr 2020 17:53:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360386 - in head/sys: kern sys X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in head/sys: kern sys X-SVN-Commit-Revision: 360386 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, 27 Apr 2020 17:53:39 -0000 Author: jhb Date: Mon Apr 27 17:53:38 2020 New Revision: 360386 URL: https://svnweb.freebsd.org/changeset/base/360386 Log: Extend support in sysctls for supporting multiple native ABIs. This extends some of the changes in place to support reporting support for 32-bit ABIs to permit reporting hard-float vs soft-float ABIs. Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D24542 Modified: head/sys/kern/kern_mib.c head/sys/sys/sysent.h Modified: head/sys/kern/kern_mib.c ============================================================================== --- head/sys/kern/kern_mib.c Mon Apr 27 16:30:29 2020 (r360385) +++ head/sys/kern/kern_mib.c Mon Apr 27 17:53:38 2020 (r360386) @@ -55,6 +55,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -252,39 +253,49 @@ SYSCTL_PROC(_hw, OID_AUTO, pagesizes, sysctl_hw_pagesizes, "LU", "Supported page sizes"); -#ifdef SCTL_MASK32 int adaptive_machine_arch = 1; SYSCTL_INT(_debug, OID_AUTO, adaptive_machine_arch, CTLFLAG_RW, &adaptive_machine_arch, 1, "Adapt reported machine architecture to the ABI of the binary"); + +static const char * +proc_machine_arch(struct proc *p) +{ + + if (p->p_sysent->sv_machine_arch != NULL) + return (p->p_sysent->sv_machine_arch(p)); +#ifdef COMPAT_FREEBSD32 + if (SV_PROC_FLAG(p, SV_ILP32)) + return (MACHINE_ARCH32); #endif + return (MACHINE_ARCH); +} static int sysctl_hw_machine_arch(SYSCTL_HANDLER_ARGS) { - int error; - static const char machine_arch[] = MACHINE_ARCH; -#ifdef SCTL_MASK32 - static const char machine_arch32[] = MACHINE_ARCH32; + const char *machine_arch; - if ((req->flags & SCTL_MASK32) != 0 && adaptive_machine_arch) - error = SYSCTL_OUT(req, machine_arch32, sizeof(machine_arch32)); + if (adaptive_machine_arch) + machine_arch = proc_machine_arch(curproc); else -#endif - error = SYSCTL_OUT(req, machine_arch, sizeof(machine_arch)); - return (error); - + machine_arch = MACHINE_ARCH; + return (SYSCTL_OUT(req, machine_arch, strlen(machine_arch) + 1)); } SYSCTL_PROC(_hw, HW_MACHINE_ARCH, machine_arch, CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, 0, sysctl_hw_machine_arch, "A", "System architecture"); -SYSCTL_STRING(_kern, OID_AUTO, supported_archs, CTLFLAG_RD | CTLFLAG_MPSAFE, +#ifndef MACHINE_ARCHES #ifdef COMPAT_FREEBSD32 - MACHINE_ARCH " " MACHINE_ARCH32, 0, "Supported architectures for binaries"); +#define MACHINE_ARCHES MACHINE_ARCH " " MACHINE_ARCH32 #else - MACHINE_ARCH, 0, "Supported architectures for binaries"); +#define MACHINE_ARCHES MACHINE_ARCH #endif +#endif + +SYSCTL_STRING(_kern, OID_AUTO, supported_archs, CTLFLAG_RD | CTLFLAG_MPSAFE, + MACHINE_ARCHES, 0, "Supported architectures for binaries"); static int sysctl_hostname(SYSCTL_HANDLER_ARGS) Modified: head/sys/sys/sysent.h ============================================================================== --- head/sys/sys/sysent.h Mon Apr 27 16:30:29 2020 (r360385) +++ head/sys/sys/sysent.h Mon Apr 27 17:53:38 2020 (r360386) @@ -94,6 +94,7 @@ struct sysent { /* system call table */ #endif struct image_params; +struct proc; struct __sigset; struct trapframe; struct vnode; @@ -144,6 +145,7 @@ struct sysentvec { int (*sv_trap)(struct thread *); u_long *sv_hwcap; /* Value passed in AT_HWCAP. */ u_long *sv_hwcap2; /* Value passed in AT_HWCAP2. */ + const char *(*sv_machine_arch)(struct proc *); }; #define SV_ILP32 0x000100 /* 32-bit executable. */ From owner-svn-src-all@freebsd.org Mon Apr 27 17:55: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 17C0A2C1260; Mon, 27 Apr 2020 17:55: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 499srY6xwfz4PgM; Mon, 27 Apr 2020 17:55:41 +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 D06F4E87E; Mon, 27 Apr 2020 17:55:41 +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 03RHtfBu052198; Mon, 27 Apr 2020 17:55:41 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RHtfKp052195; Mon, 27 Apr 2020 17:55:41 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202004271755.03RHtfKp052195@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Mon, 27 Apr 2020 17:55:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360387 - in head/sys: kern riscv/include riscv/riscv X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in head/sys: kern riscv/include riscv/riscv X-SVN-Commit-Revision: 360387 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, 27 Apr 2020 17:55:42 -0000 Author: jhb Date: Mon Apr 27 17:55:40 2020 New Revision: 360387 URL: https://svnweb.freebsd.org/changeset/base/360387 Log: Improve MACHINE_ARCH handling for hard vs soft-float on RISC-V. For userland, MACHINE_ARCH reflects the current ABI via preprocessor directives. For the kernel, the hw.machine_arch sysctl uses the ELF header flags of the current process to select the correct MACHINE_ARCH value. Reviewed by: imp, kp Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D24543 Modified: head/sys/kern/kern_mib.c head/sys/riscv/include/param.h head/sys/riscv/riscv/elf_machdep.c Modified: head/sys/kern/kern_mib.c ============================================================================== --- head/sys/kern/kern_mib.c Mon Apr 27 17:53:38 2020 (r360386) +++ head/sys/kern/kern_mib.c Mon Apr 27 17:55:40 2020 (r360387) @@ -45,6 +45,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include Modified: head/sys/riscv/include/param.h ============================================================================== --- head/sys/riscv/include/param.h Mon Apr 27 17:53:38 2020 (r360386) +++ head/sys/riscv/include/param.h Mon Apr 27 17:55:40 2020 (r360387) @@ -46,18 +46,16 @@ #define MACHINE "riscv" #endif #ifndef MACHINE_ARCH -/* - * Check to see if we're building with hardware floating instructions - * allowed. We check this instead of hard vs soft float ABI because we build the - * kernel with soft float ABI to avoid hard float instruction generation. If - * we ever allow a 'soft ABI but with hard floats' userland, then we'll need - * to rethink this. - */ -#ifdef __riscv_flen -#define MACHINE_ARCH "riscv64" -#else + +/* Always use the hard-float arch for the kernel. */ +#if !defined(_KERNEL) && defined(__riscv_float_abi_soft) #define MACHINE_ARCH "riscv64sf" +#else +#define MACHINE_ARCH "riscv64" #endif +#endif +#ifdef _KERNEL +#define MACHINE_ARCHES "riscv64 riscv64sf" #endif #ifdef SMP Modified: head/sys/riscv/riscv/elf_machdep.c ============================================================================== --- head/sys/riscv/riscv/elf_machdep.c Mon Apr 27 17:53:38 2020 (r360386) +++ head/sys/riscv/riscv/elf_machdep.c Mon Apr 27 17:55:40 2020 (r360387) @@ -58,6 +58,8 @@ __FBSDID("$FreeBSD$"); #include #include +static const char *riscv_machine_arch(struct proc *p); + u_long elf_hwcap; struct sysentvec elf64_freebsd_sysvec = { @@ -94,8 +96,19 @@ struct sysentvec elf64_freebsd_sysvec = { .sv_thread_detach = NULL, .sv_trap = NULL, .sv_hwcap = &elf_hwcap, + .sv_machine_arch = riscv_machine_arch, }; INIT_SYSENTVEC(elf64_sysvec, &elf64_freebsd_sysvec); + +static const char * +riscv_machine_arch(struct proc *p) +{ + + if ((p->p_elf_flags & EF_RISCV_FLOAT_ABI_MASK) == + EF_RISCV_FLOAT_ABI_SOFT) + return (MACHINE_ARCH "sf"); + return (MACHINE_ARCH); +} static Elf64_Brandinfo freebsd_brand_info = { .brand = ELFOSABI_FREEBSD, From owner-svn-src-all@freebsd.org Mon Apr 27 18:04: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 0D8352C14C8; Mon, 27 Apr 2020 18:04:43 +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 499t2y6Rc1z4Q8s; Mon, 27 Apr 2020 18:04: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 D86A3EA8A; Mon, 27 Apr 2020 18:04: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 03RI4gjJ058503; Mon, 27 Apr 2020 18:04:42 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RI4g3j058502; Mon, 27 Apr 2020 18:04:42 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202004271804.03RI4g3j058502@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Mon, 27 Apr 2020 18:04:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360388 - head/sys/dev/iscsi_initiator X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head/sys/dev/iscsi_initiator X-SVN-Commit-Revision: 360388 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, 27 Apr 2020 18:04:43 -0000 Author: jhb Date: Mon Apr 27 18:04:42 2020 New Revision: 360388 URL: https://svnweb.freebsd.org/changeset/base/360388 Log: Don't run strcmp() against strings stored in user memory. Instead, copy the strings into a temporary buffer on the stack and run strcmp on the copies. Reviewed by: brooks, kib Obtained from: CheriBSD MFC after: 1 week Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D24567 Modified: head/sys/dev/iscsi_initiator/isc_subr.c Modified: head/sys/dev/iscsi_initiator/isc_subr.c ============================================================================== --- head/sys/dev/iscsi_initiator/isc_subr.c Mon Apr 27 17:55:40 2020 (r360387) +++ head/sys/dev/iscsi_initiator/isc_subr.c Mon Apr 27 18:04:42 2020 (r360388) @@ -97,6 +97,9 @@ i_crc32c(const void *buf, size_t size, uint32_t crc) int i_setopt(isc_session_t *sp, isc_opt_t *opt) { + char buf[16]; + int error; + if(opt->maxRecvDataSegmentLength > 0) { sp->opt.maxRecvDataSegmentLength = opt->maxRecvDataSegmentLength; sdebug(2, "maxRecvDataSegmentLength=%d", sp->opt.maxRecvDataSegmentLength); @@ -138,15 +141,21 @@ i_setopt(isc_session_t *sp, isc_opt_t *opt) } if(opt->headerDigest != NULL) { - sdebug(2, "opt.headerDigest='%s'", opt->headerDigest); - if(strcmp(opt->headerDigest, "CRC32C") == 0) { + error = copyinstr(opt->headerDigest, buf, sizeof(buf), NULL); + if (error != 0) + return (error); + sdebug(2, "opt.headerDigest='%s'", buf); + if(strcmp(buf, "CRC32C") == 0) { sp->hdrDigest = (digest_t *)i_crc32c; sdebug(2, "opt.headerDigest set"); } } if(opt->dataDigest != NULL) { - sdebug(2, "opt.dataDigest='%s'", opt->headerDigest); - if(strcmp(opt->dataDigest, "CRC32C") == 0) { + error = copyinstr(opt->dataDigest, buf, sizeof(buf), NULL); + if (error != 0) + return (error); + sdebug(2, "opt.dataDigest='%s'", opt->dataDigest); + if(strcmp(buf, "CRC32C") == 0) { sp->dataDigest = (digest_t *)i_crc32c; sdebug(2, "opt.dataDigest set"); } From owner-svn-src-all@freebsd.org Mon Apr 27 19:29: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 D4D412C3802; Mon, 27 Apr 2020 19:29:48 +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 499vx85HSKz4VrQ; Mon, 27 Apr 2020 19:29:48 +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 AC272FADC; Mon, 27 Apr 2020 19:29:48 +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 03RJTmsC009342; Mon, 27 Apr 2020 19:29:48 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RJTmOS009341; Mon, 27 Apr 2020 19:29:48 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004271929.03RJTmOS009341@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 27 Apr 2020 19:29:48 +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: r360390 - in stable: 11/usr.sbin/adduser 12/usr.sbin/adduser X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/usr.sbin/adduser 12/usr.sbin/adduser X-SVN-Commit-Revision: 360390 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, 27 Apr 2020 19:29:48 -0000 Author: kevans Date: Mon Apr 27 19:29:48 2020 New Revision: 360390 URL: https://svnweb.freebsd.org/changeset/base/360390 Log: MFC r359642: 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 Modified: stable/11/usr.sbin/adduser/adduser.sh Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/usr.sbin/adduser/adduser.sh Directory Properties: stable/12/ (props changed) Modified: stable/11/usr.sbin/adduser/adduser.sh ============================================================================== --- stable/11/usr.sbin/adduser/adduser.sh Mon Apr 27 18:07:38 2020 (r360389) +++ stable/11/usr.sbin/adduser/adduser.sh Mon Apr 27 19:29:48 2020 (r360390) @@ -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 Mon Apr 27 19:29: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 099B92C3806; Mon, 27 Apr 2020 19:29:49 +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 499vx86XFHz4VrR; Mon, 27 Apr 2020 19:29:48 +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 D8E33FADD; Mon, 27 Apr 2020 19:29:48 +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 03RJTmaF009350; Mon, 27 Apr 2020 19:29:48 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RJTm0W009349; Mon, 27 Apr 2020 19:29:48 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004271929.03RJTm0W009349@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 27 Apr 2020 19:29:48 +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: r360390 - in stable: 11/usr.sbin/adduser 12/usr.sbin/adduser X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/usr.sbin/adduser 12/usr.sbin/adduser X-SVN-Commit-Revision: 360390 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, 27 Apr 2020 19:29:49 -0000 Author: kevans Date: Mon Apr 27 19:29:48 2020 New Revision: 360390 URL: https://svnweb.freebsd.org/changeset/base/360390 Log: MFC r359642: 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 Modified: stable/12/usr.sbin/adduser/adduser.sh Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/usr.sbin/adduser/adduser.sh Directory Properties: stable/11/ (props changed) Modified: stable/12/usr.sbin/adduser/adduser.sh ============================================================================== --- stable/12/usr.sbin/adduser/adduser.sh Mon Apr 27 18:07:38 2020 (r360389) +++ stable/12/usr.sbin/adduser/adduser.sh Mon Apr 27 19:29:48 2020 (r360390) @@ -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 Mon Apr 27 19:49: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 A5F922C3F6C; Mon, 27 Apr 2020 19:49: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 499wN03sVGz4X12; Mon, 27 Apr 2020 19:49: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 671E6FEEC; Mon, 27 Apr 2020 19:49: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 03RJnaDf021741; Mon, 27 Apr 2020 19:49:36 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RJnZjB021735; Mon, 27 Apr 2020 19:49:35 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004271949.03RJnZjB021735@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 27 Apr 2020 19:49: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: r360391 - in stable/12: gnu/usr.bin/gdb share/mk sys/conf X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable/12: gnu/usr.bin/gdb share/mk sys/conf X-SVN-Commit-Revision: 360391 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, 27 Apr 2020 19:49:36 -0000 Author: kevans Date: Mon Apr 27 19:49:35 2020 New Revision: 360391 URL: https://svnweb.freebsd.org/changeset/base/360391 Log: MFC r359702, r359774: enforce -fno-common for userland/kernel src builds r359702: 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. r359774: 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. Modified: stable/12/gnu/usr.bin/gdb/Makefile.inc stable/12/share/mk/src.sys.mk stable/12/sys/conf/kern.pre.mk stable/12/sys/conf/kmod.mk Directory Properties: stable/12/ (props changed) Modified: stable/12/gnu/usr.bin/gdb/Makefile.inc ============================================================================== --- stable/12/gnu/usr.bin/gdb/Makefile.inc Mon Apr 27 19:29:48 2020 (r360390) +++ stable/12/gnu/usr.bin/gdb/Makefile.inc Mon Apr 27 19:49:35 2020 (r360391) @@ -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: stable/12/share/mk/src.sys.mk ============================================================================== --- stable/12/share/mk/src.sys.mk Mon Apr 27 19:29:48 2020 (r360390) +++ stable/12/share/mk/src.sys.mk Mon Apr 27 19:49:35 2020 (r360391) @@ -34,6 +34,12 @@ __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. +CFCOMMONFLAG?= -fno-common +CFLAGS+= ${CFCOMMONFLAG} + # tempting, but bsd.compiler.mk causes problems this early # probably need to remove dependence on bsd.own.mk #.include "src.opts.mk" Modified: stable/12/sys/conf/kern.pre.mk ============================================================================== --- stable/12/sys/conf/kern.pre.mk Mon Apr 27 19:29:48 2020 (r360390) +++ stable/12/sys/conf/kern.pre.mk Mon Apr 27 19:49:35 2020 (r360391) @@ -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: stable/12/sys/conf/kmod.mk ============================================================================== --- stable/12/sys/conf/kmod.mk Mon Apr 27 19:29:48 2020 (r360390) +++ stable/12/sys/conf/kmod.mk Mon Apr 27 19:49:35 2020 (r360391) @@ -149,6 +149,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 Mon Apr 27 20:37: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 D554A2C5318; Mon, 27 Apr 2020 20:37:13 +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 499xQx5JsZz4Zwd; Mon, 27 Apr 2020 20:37:13 +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 B18031888E; Mon, 27 Apr 2020 20:37:13 +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 03RKbDmv052523; Mon, 27 Apr 2020 20:37:13 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RKbB5d052513; Mon, 27 Apr 2020 20:37:11 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202004272037.03RKbB5d052513@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Mon, 27 Apr 2020 20:37: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: r360392 - in stable/12/sys: amd64/amd64 amd64/ia32 arm/arm arm64/arm64 i386/i386 kern mips/mips powerpc/powerpc riscv/riscv sparc64/sparc64 X-SVN-Group: stable-12 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in stable/12/sys: amd64/amd64 amd64/ia32 arm/arm arm64/arm64 i386/i386 kern mips/mips powerpc/powerpc riscv/riscv sparc64/sparc64 X-SVN-Commit-Revision: 360392 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, 27 Apr 2020 20:37:13 -0000 Author: jhb Date: Mon Apr 27 20:37:11 2020 New Revision: 360392 URL: https://svnweb.freebsd.org/changeset/base/360392 Log: MFC 350013: Don't pass error from syscallenter() to syscallret(). syscallret() doesn't use error anymore. Fix a few other places to permit removing the return value from syscallenter() entirely. - Remove a duplicated assertion from arm's syscall(). - Use td_errno for amd64_syscall_ret_flush_l1d. Modified: stable/12/sys/amd64/amd64/trap.c stable/12/sys/amd64/ia32/ia32_syscall.c stable/12/sys/arm/arm/syscall.c stable/12/sys/arm64/arm64/trap.c stable/12/sys/i386/i386/trap.c stable/12/sys/kern/subr_syscall.c stable/12/sys/mips/mips/trap.c stable/12/sys/powerpc/powerpc/trap.c stable/12/sys/riscv/riscv/trap.c stable/12/sys/sparc64/sparc64/trap.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/amd64/amd64/trap.c ============================================================================== --- stable/12/sys/amd64/amd64/trap.c Mon Apr 27 19:49:35 2020 (r360391) +++ stable/12/sys/amd64/amd64/trap.c Mon Apr 27 20:37:11 2020 (r360392) @@ -1156,7 +1156,6 @@ SYSCTL_PROC(_machdep, OID_AUTO, syscall_ret_flush_l1d, void amd64_syscall(struct thread *td, int traced) { - int error; ksiginfo_t ksi; #ifdef DIAGNOSTIC @@ -1165,7 +1164,7 @@ amd64_syscall(struct thread *td, int traced) /* NOT REACHED */ } #endif - error = syscallenter(td); + syscallenter(td); /* * Traced syscall. @@ -1190,7 +1189,7 @@ amd64_syscall(struct thread *td, int traced) syscallname(td->td_proc, td->td_sa.code), td->td_md.md_invl_gen.gen)); - syscallret(td, error); + syscallret(td); /* * If the user-supplied value of %rip is not a canonical @@ -1203,5 +1202,5 @@ amd64_syscall(struct thread *td, int traced) if (__predict_false(td->td_frame->tf_rip >= VM_MAXUSER_ADDRESS)) set_pcb_flags(td->td_pcb, PCB_FULL_IRET); - amd64_syscall_ret_flush_l1d_inline(error); + amd64_syscall_ret_flush_l1d_inline(td->td_errno); } Modified: stable/12/sys/amd64/ia32/ia32_syscall.c ============================================================================== --- stable/12/sys/amd64/ia32/ia32_syscall.c Mon Apr 27 19:49:35 2020 (r360391) +++ stable/12/sys/amd64/ia32/ia32_syscall.c Mon Apr 27 20:37:11 2020 (r360392) @@ -209,14 +209,13 @@ ia32_syscall(struct trapframe *frame) { struct thread *td; register_t orig_tf_rflags; - int error; ksiginfo_t ksi; orig_tf_rflags = frame->tf_rflags; td = curthread; td->td_frame = frame; - error = syscallenter(td); + syscallenter(td); /* * Traced syscall. @@ -230,8 +229,8 @@ ia32_syscall(struct trapframe *frame) trapsignal(td, &ksi); } - syscallret(td, error); - amd64_syscall_ret_flush_l1d(error); + syscallret(td); + amd64_syscall_ret_flush_l1d(td->td_errno); } static void Modified: stable/12/sys/arm/arm/syscall.c ============================================================================== --- stable/12/sys/arm/arm/syscall.c Mon Apr 27 19:49:35 2020 (r360391) +++ stable/12/sys/arm/arm/syscall.c Mon Apr 27 20:37:11 2020 (r360392) @@ -143,14 +143,10 @@ cpu_fetch_syscall_args(struct thread *td) static void syscall(struct thread *td, struct trapframe *frame) { - int error; td->td_sa.nap = 4; - - error = syscallenter(td); - KASSERT(error != 0 || td->td_ar == NULL, - ("returning from syscall with td_ar set!")); - syscallret(td, error); + syscallenter(td); + syscallret(td); } void Modified: stable/12/sys/arm64/arm64/trap.c ============================================================================== --- stable/12/sys/arm64/arm64/trap.c Mon Apr 27 19:49:35 2020 (r360391) +++ stable/12/sys/arm64/arm64/trap.c Mon Apr 27 20:37:11 2020 (r360392) @@ -138,11 +138,10 @@ cpu_fetch_syscall_args(struct thread *td) static void svc_handler(struct thread *td, struct trapframe *frame) { - int error; if ((frame->tf_esr & ESR_ELx_ISS_MASK) == 0) { - error = syscallenter(td); - syscallret(td, error); + syscallenter(td); + syscallret(td); } else { call_trapsignal(td, SIGILL, ILL_ILLOPN, (void *)frame->tf_elr); userret(td, frame); Modified: stable/12/sys/i386/i386/trap.c ============================================================================== --- stable/12/sys/i386/i386/trap.c Mon Apr 27 19:49:35 2020 (r360391) +++ stable/12/sys/i386/i386/trap.c Mon Apr 27 20:37:11 2020 (r360392) @@ -1127,7 +1127,6 @@ syscall(struct trapframe *frame) { struct thread *td; register_t orig_tf_eflags; - int error; ksiginfo_t ksi; #ifdef DIAGNOSTIC @@ -1142,7 +1141,7 @@ syscall(struct trapframe *frame) td = curthread; td->td_frame = frame; - error = syscallenter(td); + syscallenter(td); /* * Traced syscall. @@ -1163,5 +1162,5 @@ syscall(struct trapframe *frame) ("System call %s returning with mangled pcb_save", syscallname(td->td_proc, td->td_sa.code))); - syscallret(td, error); + syscallret(td); } Modified: stable/12/sys/kern/subr_syscall.c ============================================================================== --- stable/12/sys/kern/subr_syscall.c Mon Apr 27 19:49:35 2020 (r360391) +++ stable/12/sys/kern/subr_syscall.c Mon Apr 27 20:37:11 2020 (r360392) @@ -54,7 +54,7 @@ __FBSDID("$FreeBSD$"); #endif #include -static inline int +static inline void syscallenter(struct thread *td) { struct proc *p; @@ -167,11 +167,10 @@ syscallenter(struct thread *td) PROC_UNLOCK(p); } (p->p_sysent->sv_set_syscall_retval)(td, error); - return (error); } static inline void -syscallret(struct thread *td, int error __unused) +syscallret(struct thread *td) { struct proc *p, *p2; struct syscall_args *sa; Modified: stable/12/sys/mips/mips/trap.c ============================================================================== --- stable/12/sys/mips/mips/trap.c Mon Apr 27 19:49:35 2020 (r360391) +++ stable/12/sys/mips/mips/trap.c Mon Apr 27 20:37:11 2020 (r360392) @@ -785,10 +785,8 @@ dofault: case T_SYSCALL + T_USER: { - int error; - td->td_sa.trapframe = trapframe; - error = syscallenter(td); + syscallenter(td); #if !defined(SMP) && (defined(DDB) || defined(DEBUG)) if (trp == trapdebug) @@ -804,7 +802,7 @@ dofault: * instead of being done here under a special check * for SYS_ptrace(). */ - syscallret(td, error); + syscallret(td); return (trapframe->pc); } Modified: stable/12/sys/powerpc/powerpc/trap.c ============================================================================== --- stable/12/sys/powerpc/powerpc/trap.c Mon Apr 27 19:49:35 2020 (r360391) +++ stable/12/sys/powerpc/powerpc/trap.c Mon Apr 27 20:37:11 2020 (r360392) @@ -661,7 +661,6 @@ void syscall(struct trapframe *frame) { struct thread *td; - int error; td = curthread; td->td_frame = frame; @@ -676,8 +675,8 @@ syscall(struct trapframe *frame) "r"(td->td_pcb->pcb_cpu.aim.usr_vsid), "r"(USER_SLB_SLBE)); #endif - error = syscallenter(td); - syscallret(td, error); + syscallenter(td); + syscallret(td); } #if defined(__powerpc64__) && defined(AIM) Modified: stable/12/sys/riscv/riscv/trap.c ============================================================================== --- stable/12/sys/riscv/riscv/trap.c Mon Apr 27 19:49:35 2020 (r360391) +++ stable/12/sys/riscv/riscv/trap.c Mon Apr 27 20:37:11 2020 (r360392) @@ -157,13 +157,12 @@ static void svc_handler(struct trapframe *frame) { struct thread *td; - int error; td = curthread; td->td_frame = frame; - error = syscallenter(td); - syscallret(td, error); + syscallenter(td); + syscallret(td); } static void Modified: stable/12/sys/sparc64/sparc64/trap.c ============================================================================== --- stable/12/sys/sparc64/sparc64/trap.c Mon Apr 27 19:49:35 2020 (r360391) +++ stable/12/sys/sparc64/sparc64/trap.c Mon Apr 27 20:37:11 2020 (r360392) @@ -597,7 +597,6 @@ void syscall(struct trapframe *tf) { struct thread *td; - int error; td = curthread; td->td_frame = tf; @@ -612,6 +611,6 @@ syscall(struct trapframe *tf) td->td_pcb->pcb_tpc = tf->tf_tpc; TF_DONE(tf); - error = syscallenter(td); - syscallret(td, error); + syscallenter(td); + syscallret(td); } From owner-svn-src-all@freebsd.org Mon Apr 27 21:19: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 17AD42C6747; Mon, 27 Apr 2020 21:19:47 +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 499yN26tWRz3C28; Mon, 27 Apr 2020 21:19:46 +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 E32941905F; Mon, 27 Apr 2020 21:19:46 +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 03RLJkQq081751; Mon, 27 Apr 2020 21:19:46 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RLJkBt081750; Mon, 27 Apr 2020 21:19:46 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202004272119.03RLJkBt081750@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Mon, 27 Apr 2020 21:19:46 +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: r360393 - stable/12/tests/sys/kern X-SVN-Group: stable-12 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: stable/12/tests/sys/kern X-SVN-Commit-Revision: 360393 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, 27 Apr 2020 21:19:47 -0000 Author: jhb Date: Mon Apr 27 21:19:46 2020 New Revision: 360393 URL: https://svnweb.freebsd.org/changeset/base/360393 Log: MFC 350014: Add a test for PT_GET_SC_ARGS. Modified: stable/12/tests/sys/kern/ptrace_test.c Directory Properties: stable/12/ (props changed) Modified: stable/12/tests/sys/kern/ptrace_test.c ============================================================================== --- stable/12/tests/sys/kern/ptrace_test.c Mon Apr 27 20:37:11 2020 (r360392) +++ stable/12/tests/sys/kern/ptrace_test.c Mon Apr 27 21:19:46 2020 (r360393) @@ -3927,6 +3927,86 @@ ATF_TC_BODY(ptrace__PT_LWPINFO_stale_siginfo, tc) } /* + * A simple test of PT_GET_SC_ARGS. + */ +ATF_TC_WITHOUT_HEAD(ptrace__syscall_args); +ATF_TC_BODY(ptrace__syscall_args, tc) +{ + struct ptrace_lwpinfo pl; + pid_t fpid, wpid; + register_t args[2]; + int events, status; + + ATF_REQUIRE((fpid = fork()) != -1); + if (fpid == 0) { + trace_me(); + kill(getpid(), 0); + exit(1); + } + + /* The first wait() should report the stop from SIGSTOP. */ + wpid = waitpid(fpid, &status, 0); + ATF_REQUIRE(wpid == fpid); + ATF_REQUIRE(WIFSTOPPED(status)); + ATF_REQUIRE(WSTOPSIG(status) == SIGSTOP); + + /* + * Continue the process ignoring the signal, but enabling + * syscall entry traps. + */ + ATF_REQUIRE(ptrace(PT_TO_SCE, fpid, (caddr_t)1, 0) == 0); + + /* + * The next stop should be the syscall entry from getpid(). + */ + wpid = waitpid(fpid, &status, 0); + ATF_REQUIRE(wpid == fpid); + ATF_REQUIRE(WIFSTOPPED(status)); + ATF_REQUIRE(WSTOPSIG(status) == SIGTRAP); + + ATF_REQUIRE(ptrace(PT_LWPINFO, wpid, (caddr_t)&pl, sizeof(pl)) != -1); + ATF_REQUIRE(pl.pl_flags & PL_FLAG_SCE); + ATF_REQUIRE(pl.pl_syscall_code == SYS_getpid); + + ATF_REQUIRE(ptrace(PT_CONTINUE, fpid, (caddr_t)1, 0) == 0); + + /* + * The next stop should be the syscall entry from kill(). + */ + wpid = waitpid(fpid, &status, 0); + ATF_REQUIRE(wpid == fpid); + ATF_REQUIRE(WIFSTOPPED(status)); + ATF_REQUIRE(WSTOPSIG(status) == SIGTRAP); + + ATF_REQUIRE(ptrace(PT_LWPINFO, wpid, (caddr_t)&pl, sizeof(pl)) != -1); + ATF_REQUIRE(pl.pl_flags & PL_FLAG_SCE); + ATF_REQUIRE(pl.pl_syscall_code == SYS_kill); + ATF_REQUIRE(pl.pl_syscall_narg == 2); + + ATF_REQUIRE(ptrace(PT_GET_SC_ARGS, wpid, (caddr_t)args, + sizeof(args)) != -1); + ATF_REQUIRE(args[0] == wpid); + ATF_REQUIRE(args[1] == 0); + + /* Disable syscall tracing and continue the child to let it exit. */ + ATF_REQUIRE(ptrace(PT_GET_EVENT_MASK, fpid, (caddr_t)&events, + sizeof(events)) == 0); + events &= ~PTRACE_SYSCALL; + ATF_REQUIRE(ptrace(PT_SET_EVENT_MASK, fpid, (caddr_t)&events, + sizeof(events)) == 0); + ATF_REQUIRE(ptrace(PT_CONTINUE, fpid, (caddr_t)1, 0) == 0); + + /* The last event should be for the child process's exit. */ + wpid = waitpid(fpid, &status, 0); + ATF_REQUIRE(WIFEXITED(status)); + ATF_REQUIRE(WEXITSTATUS(status) == 1); + + wpid = wait(&status); + ATF_REQUIRE(wpid == -1); + ATF_REQUIRE(errno == ECHILD); +} + +/* * Verify that when the process is traced that it isn't reparent * to the init process when we close all process descriptors. */ @@ -4041,6 +4121,7 @@ ATF_TP_ADD_TCS(tp) ATF_TP_ADD_TC(tp, ptrace__PT_CONTINUE_different_thread); #endif ATF_TP_ADD_TC(tp, ptrace__PT_LWPINFO_stale_siginfo); + ATF_TP_ADD_TC(tp, ptrace__syscall_args); ATF_TP_ADD_TC(tp, ptrace__proc_reparent); return (atf_no_error()); From owner-svn-src-all@freebsd.org Mon Apr 27 21:39: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 844F72C6D8C; Mon, 27 Apr 2020 21:39: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 499ypG30SMz3D7s; Mon, 27 Apr 2020 21:39: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 623011944E; Mon, 27 Apr 2020 21:39: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 03RLd2LR094358; Mon, 27 Apr 2020 21:39:02 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RLd2hQ094357; Mon, 27 Apr 2020 21:39:02 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004272139.03RLd2hQ094357@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 27 Apr 2020 21:39: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: r360394 - in stable: 11/usr.sbin/freebsd-update 12/usr.sbin/freebsd-update X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/usr.sbin/freebsd-update 12/usr.sbin/freebsd-update X-SVN-Commit-Revision: 360394 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, 27 Apr 2020 21:39:02 -0000 Author: kevans Date: Mon Apr 27 21:39:01 2020 New Revision: 360394 URL: https://svnweb.freebsd.org/changeset/base/360394 Log: MFC r360287: freebsd-update: rehash certs With the inclusion of caroot bits, we'll need to also rehash on update as we do in mergemaster/etcupdate. If certctl's installed on the system, just unconditionally rehash. This isn't an expensive operation, and we can refine it to compare INDEX-{OLD,NEW} later if we really want to. Modified: stable/12/usr.sbin/freebsd-update/freebsd-update.sh Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/usr.sbin/freebsd-update/freebsd-update.sh Directory Properties: stable/11/ (props changed) Modified: stable/12/usr.sbin/freebsd-update/freebsd-update.sh ============================================================================== --- stable/12/usr.sbin/freebsd-update/freebsd-update.sh Mon Apr 27 21:19:46 2020 (r360393) +++ stable/12/usr.sbin/freebsd-update/freebsd-update.sh Mon Apr 27 21:39:01 2020 (r360394) @@ -2876,7 +2876,7 @@ install_delete () { rm newfiles killfiles } -# Install new files, delete old files, and update linker.hints +# Install new files, delete old files, and update generated files install_files () { # If we haven't already dealt with the kernel, deal with it. if ! [ -f $1/kerneldone ]; then @@ -2943,6 +2943,11 @@ Kernel updates have been installed. Please reboot and grep -vE '^[^|]*/lib/[^|]*\.so\.[0-9]+\|' > INDEX-NEW install_from_index INDEX-NEW || return 1 install_delete INDEX-OLD INDEX-NEW || return 1 + + # Rehash certs if we actually have certctl installed. + if which certctl>/dev/null; then + env DESTDIR=${BASEDIR} certctl rehash + fi # Rebuild generated pwd files. if [ ${BASEDIR}/etc/master.passwd -nt ${BASEDIR}/etc/spwd.db ] || From owner-svn-src-all@freebsd.org Mon Apr 27 21:39: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 19F2A2C6D83; Mon, 27 Apr 2020 21:39: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 499ypF70jMz3D7r; Mon, 27 Apr 2020 21:39: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 EB1C21944D; Mon, 27 Apr 2020 21:39: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 03RLd1eG094352; Mon, 27 Apr 2020 21:39:01 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RLd1S4094351; Mon, 27 Apr 2020 21:39:01 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004272139.03RLd1S4094351@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 27 Apr 2020 21:39: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: r360394 - in stable: 11/usr.sbin/freebsd-update 12/usr.sbin/freebsd-update X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/usr.sbin/freebsd-update 12/usr.sbin/freebsd-update X-SVN-Commit-Revision: 360394 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, 27 Apr 2020 21:39:02 -0000 Author: kevans Date: Mon Apr 27 21:39:01 2020 New Revision: 360394 URL: https://svnweb.freebsd.org/changeset/base/360394 Log: MFC r360287: freebsd-update: rehash certs With the inclusion of caroot bits, we'll need to also rehash on update as we do in mergemaster/etcupdate. If certctl's installed on the system, just unconditionally rehash. This isn't an expensive operation, and we can refine it to compare INDEX-{OLD,NEW} later if we really want to. Modified: stable/11/usr.sbin/freebsd-update/freebsd-update.sh Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/usr.sbin/freebsd-update/freebsd-update.sh Directory Properties: stable/12/ (props changed) Modified: stable/11/usr.sbin/freebsd-update/freebsd-update.sh ============================================================================== --- stable/11/usr.sbin/freebsd-update/freebsd-update.sh Mon Apr 27 21:19:46 2020 (r360393) +++ stable/11/usr.sbin/freebsd-update/freebsd-update.sh Mon Apr 27 21:39:01 2020 (r360394) @@ -2876,7 +2876,7 @@ install_delete () { rm newfiles killfiles } -# Install new files, delete old files, and update linker.hints +# Install new files, delete old files, and update generated files install_files () { # If we haven't already dealt with the kernel, deal with it. if ! [ -f $1/kerneldone ]; then @@ -2943,6 +2943,11 @@ Kernel updates have been installed. Please reboot and grep -vE '^[^|]*/lib/[^|]*\.so\.[0-9]+\|' > INDEX-NEW install_from_index INDEX-NEW || return 1 install_delete INDEX-OLD INDEX-NEW || return 1 + + # Rehash certs if we actually have certctl installed. + if which certctl>/dev/null; then + env DESTDIR=${BASEDIR} certctl rehash + fi # Rebuild generated pwd files. if [ ${BASEDIR}/etc/master.passwd -nt ${BASEDIR}/etc/spwd.db ] || From owner-svn-src-all@freebsd.org Mon Apr 27 21:41: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 7FA242C6F98; Mon, 27 Apr 2020 21:41: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 499yrZ2ShYz3Dgp; Mon, 27 Apr 2020 21:41: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 4F3791949A; Mon, 27 Apr 2020 21:41: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 03RLf2mk096286; Mon, 27 Apr 2020 21:41:02 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RLf0cH096274; Mon, 27 Apr 2020 21:41:00 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004272141.03RLf0cH096274@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 27 Apr 2020 21:41:00 +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: r360395 - in stable: 11/secure/caroot/trusted 12/secure/caroot/trusted X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/secure/caroot/trusted 12/secure/caroot/trusted X-SVN-Commit-Revision: 360395 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, 27 Apr 2020 21:41:02 -0000 Author: kevans Date: Mon Apr 27 21:41:00 2020 New Revision: 360395 URL: https://svnweb.freebsd.org/changeset/base/360395 Log: MFC r353095, r355376: add root bundle r353095: caroot: commit initial bundle Interested users can blacklist any/all of these with certctl(8), examples: - mv /usr/share/certs/trusted/... /usr/share/certs/blacklisted/...; \ certctl rehash - certctl blacklist /usr/share/certs/trusted/*; \ certctl rehash Certs can be easily examined after installation with `certctl list`, and certctl blacklist will accept the hashed filename as output by list or as seen in /etc/ssl/certs r355376: caroot update to latest tip: one (1) addition, none (0) removed Added: - Entrust Root Certification Authority - G4 Relnotes: yes, please Added: stable/11/secure/caroot/trusted/ACCVRAIZ1.pem - copied unchanged from r353095, head/secure/caroot/trusted/ACCVRAIZ1.pem stable/11/secure/caroot/trusted/AC_RAIZ_FNMT-RCM.pem - copied unchanged from r353095, head/secure/caroot/trusted/AC_RAIZ_FNMT-RCM.pem stable/11/secure/caroot/trusted/Actalis_Authentication_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Actalis_Authentication_Root_CA.pem stable/11/secure/caroot/trusted/AddTrust_External_Root.pem - copied unchanged from r353095, head/secure/caroot/trusted/AddTrust_External_Root.pem stable/11/secure/caroot/trusted/AddTrust_Low-Value_Services_Root.pem - copied unchanged from r353095, head/secure/caroot/trusted/AddTrust_Low-Value_Services_Root.pem stable/11/secure/caroot/trusted/AffirmTrust_Commercial.pem - copied unchanged from r353095, head/secure/caroot/trusted/AffirmTrust_Commercial.pem stable/11/secure/caroot/trusted/AffirmTrust_Networking.pem - copied unchanged from r353095, head/secure/caroot/trusted/AffirmTrust_Networking.pem stable/11/secure/caroot/trusted/AffirmTrust_Premium.pem - copied unchanged from r353095, head/secure/caroot/trusted/AffirmTrust_Premium.pem stable/11/secure/caroot/trusted/AffirmTrust_Premium_ECC.pem - copied unchanged from r353095, head/secure/caroot/trusted/AffirmTrust_Premium_ECC.pem stable/11/secure/caroot/trusted/Amazon_Root_CA_1.pem - copied unchanged from r353095, head/secure/caroot/trusted/Amazon_Root_CA_1.pem stable/11/secure/caroot/trusted/Amazon_Root_CA_2.pem - copied unchanged from r353095, head/secure/caroot/trusted/Amazon_Root_CA_2.pem stable/11/secure/caroot/trusted/Amazon_Root_CA_3.pem - copied unchanged from r353095, head/secure/caroot/trusted/Amazon_Root_CA_3.pem stable/11/secure/caroot/trusted/Amazon_Root_CA_4.pem - copied unchanged from r353095, head/secure/caroot/trusted/Amazon_Root_CA_4.pem stable/11/secure/caroot/trusted/Atos_TrustedRoot_2011.pem - copied unchanged from r353095, head/secure/caroot/trusted/Atos_TrustedRoot_2011.pem stable/11/secure/caroot/trusted/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.pem - copied unchanged from r353095, head/secure/caroot/trusted/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.pem stable/11/secure/caroot/trusted/Baltimore_CyberTrust_Root.pem - copied unchanged from r353095, head/secure/caroot/trusted/Baltimore_CyberTrust_Root.pem stable/11/secure/caroot/trusted/Buypass_Class_2_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Buypass_Class_2_Root_CA.pem stable/11/secure/caroot/trusted/Buypass_Class_3_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Buypass_Class_3_Root_CA.pem stable/11/secure/caroot/trusted/CA_Disig_Root_R2.pem - copied unchanged from r353095, head/secure/caroot/trusted/CA_Disig_Root_R2.pem stable/11/secure/caroot/trusted/CFCA_EV_ROOT.pem - copied unchanged from r353095, head/secure/caroot/trusted/CFCA_EV_ROOT.pem stable/11/secure/caroot/trusted/COMODO_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/COMODO_Certification_Authority.pem stable/11/secure/caroot/trusted/COMODO_ECC_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/COMODO_ECC_Certification_Authority.pem stable/11/secure/caroot/trusted/COMODO_RSA_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/COMODO_RSA_Certification_Authority.pem stable/11/secure/caroot/trusted/Camerfirma_Chambers_of_Commerce_Root.pem - copied unchanged from r353095, head/secure/caroot/trusted/Camerfirma_Chambers_of_Commerce_Root.pem stable/11/secure/caroot/trusted/Camerfirma_Global_Chambersign_Root.pem - copied unchanged from r353095, head/secure/caroot/trusted/Camerfirma_Global_Chambersign_Root.pem stable/11/secure/caroot/trusted/Certigna.pem - copied unchanged from r353095, head/secure/caroot/trusted/Certigna.pem stable/11/secure/caroot/trusted/Certigna_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Certigna_Root_CA.pem stable/11/secure/caroot/trusted/Certum_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Certum_Root_CA.pem stable/11/secure/caroot/trusted/Certum_Trusted_Network_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Certum_Trusted_Network_CA.pem stable/11/secure/caroot/trusted/Certum_Trusted_Network_CA_2.pem - copied unchanged from r353095, head/secure/caroot/trusted/Certum_Trusted_Network_CA_2.pem stable/11/secure/caroot/trusted/Chambers_of_Commerce_Root_-_2008.pem - copied unchanged from r353095, head/secure/caroot/trusted/Chambers_of_Commerce_Root_-_2008.pem stable/11/secure/caroot/trusted/Comodo_AAA_Services_root.pem - copied unchanged from r353095, head/secure/caroot/trusted/Comodo_AAA_Services_root.pem stable/11/secure/caroot/trusted/Cybertrust_Global_Root.pem - copied unchanged from r353095, head/secure/caroot/trusted/Cybertrust_Global_Root.pem stable/11/secure/caroot/trusted/D-TRUST_Root_CA_3_2013.pem - copied unchanged from r353095, head/secure/caroot/trusted/D-TRUST_Root_CA_3_2013.pem stable/11/secure/caroot/trusted/D-TRUST_Root_Class_3_CA_2_2009.pem - copied unchanged from r353095, head/secure/caroot/trusted/D-TRUST_Root_Class_3_CA_2_2009.pem stable/11/secure/caroot/trusted/D-TRUST_Root_Class_3_CA_2_EV_2009.pem - copied unchanged from r353095, head/secure/caroot/trusted/D-TRUST_Root_Class_3_CA_2_EV_2009.pem stable/11/secure/caroot/trusted/DST_Root_CA_X3.pem - copied unchanged from r353095, head/secure/caroot/trusted/DST_Root_CA_X3.pem stable/11/secure/caroot/trusted/DigiCert_Assured_ID_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/DigiCert_Assured_ID_Root_CA.pem stable/11/secure/caroot/trusted/DigiCert_Assured_ID_Root_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/DigiCert_Assured_ID_Root_G2.pem stable/11/secure/caroot/trusted/DigiCert_Assured_ID_Root_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/DigiCert_Assured_ID_Root_G3.pem stable/11/secure/caroot/trusted/DigiCert_Global_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/DigiCert_Global_Root_CA.pem stable/11/secure/caroot/trusted/DigiCert_Global_Root_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/DigiCert_Global_Root_G2.pem stable/11/secure/caroot/trusted/DigiCert_Global_Root_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/DigiCert_Global_Root_G3.pem stable/11/secure/caroot/trusted/DigiCert_High_Assurance_EV_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/DigiCert_High_Assurance_EV_Root_CA.pem stable/11/secure/caroot/trusted/DigiCert_Trusted_Root_G4.pem - copied unchanged from r353095, head/secure/caroot/trusted/DigiCert_Trusted_Root_G4.pem stable/11/secure/caroot/trusted/E-Tugra_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/E-Tugra_Certification_Authority.pem stable/11/secure/caroot/trusted/EC-ACC.pem - copied unchanged from r353095, head/secure/caroot/trusted/EC-ACC.pem stable/11/secure/caroot/trusted/EE_Certification_Centre_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/EE_Certification_Centre_Root_CA.pem stable/11/secure/caroot/trusted/Entrust_Root_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/Entrust_Root_Certification_Authority.pem stable/11/secure/caroot/trusted/Entrust_Root_Certification_Authority_-_EC1.pem - copied unchanged from r353095, head/secure/caroot/trusted/Entrust_Root_Certification_Authority_-_EC1.pem stable/11/secure/caroot/trusted/Entrust_Root_Certification_Authority_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/Entrust_Root_Certification_Authority_-_G2.pem stable/11/secure/caroot/trusted/Entrust_Root_Certification_Authority_-_G4.pem - copied unchanged from r355376, head/secure/caroot/trusted/Entrust_Root_Certification_Authority_-_G4.pem stable/11/secure/caroot/trusted/Entrust_net_Premium_2048_Secure_Server_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Entrust_net_Premium_2048_Secure_Server_CA.pem stable/11/secure/caroot/trusted/GDCA_TrustAUTH_R5_ROOT.pem - copied unchanged from r353095, head/secure/caroot/trusted/GDCA_TrustAUTH_R5_ROOT.pem stable/11/secure/caroot/trusted/GTS_Root_R1.pem - copied unchanged from r353095, head/secure/caroot/trusted/GTS_Root_R1.pem stable/11/secure/caroot/trusted/GTS_Root_R2.pem - copied unchanged from r353095, head/secure/caroot/trusted/GTS_Root_R2.pem stable/11/secure/caroot/trusted/GTS_Root_R3.pem - copied unchanged from r353095, head/secure/caroot/trusted/GTS_Root_R3.pem stable/11/secure/caroot/trusted/GTS_Root_R4.pem - copied unchanged from r353095, head/secure/caroot/trusted/GTS_Root_R4.pem stable/11/secure/caroot/trusted/GeoTrust_Global_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/GeoTrust_Global_CA.pem stable/11/secure/caroot/trusted/GeoTrust_Primary_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/GeoTrust_Primary_Certification_Authority.pem stable/11/secure/caroot/trusted/GeoTrust_Primary_Certification_Authority_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/GeoTrust_Primary_Certification_Authority_-_G2.pem stable/11/secure/caroot/trusted/GeoTrust_Primary_Certification_Authority_-_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/GeoTrust_Primary_Certification_Authority_-_G3.pem stable/11/secure/caroot/trusted/GeoTrust_Universal_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/GeoTrust_Universal_CA.pem stable/11/secure/caroot/trusted/GeoTrust_Universal_CA_2.pem - copied unchanged from r353095, head/secure/caroot/trusted/GeoTrust_Universal_CA_2.pem stable/11/secure/caroot/trusted/GlobalSign_ECC_Root_CA_-_R4.pem - copied unchanged from r353095, head/secure/caroot/trusted/GlobalSign_ECC_Root_CA_-_R4.pem stable/11/secure/caroot/trusted/GlobalSign_ECC_Root_CA_-_R5.pem - copied unchanged from r353095, head/secure/caroot/trusted/GlobalSign_ECC_Root_CA_-_R5.pem stable/11/secure/caroot/trusted/GlobalSign_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/GlobalSign_Root_CA.pem stable/11/secure/caroot/trusted/GlobalSign_Root_CA_-_R2.pem - copied unchanged from r353095, head/secure/caroot/trusted/GlobalSign_Root_CA_-_R2.pem stable/11/secure/caroot/trusted/GlobalSign_Root_CA_-_R3.pem - copied unchanged from r353095, head/secure/caroot/trusted/GlobalSign_Root_CA_-_R3.pem stable/11/secure/caroot/trusted/GlobalSign_Root_CA_-_R6.pem - copied unchanged from r353095, head/secure/caroot/trusted/GlobalSign_Root_CA_-_R6.pem stable/11/secure/caroot/trusted/Global_Chambersign_Root_-_2008.pem - copied unchanged from r353095, head/secure/caroot/trusted/Global_Chambersign_Root_-_2008.pem stable/11/secure/caroot/trusted/Go_Daddy_Class_2_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Go_Daddy_Class_2_CA.pem stable/11/secure/caroot/trusted/Go_Daddy_Root_Certificate_Authority_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/Go_Daddy_Root_Certificate_Authority_-_G2.pem stable/11/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.pem - copied unchanged from r353095, head/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.pem stable/11/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_RootCA_2011.pem - copied unchanged from r353095, head/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_RootCA_2011.pem stable/11/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_RootCA_2015.pem - copied unchanged from r353095, head/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_RootCA_2015.pem stable/11/secure/caroot/trusted/Hongkong_Post_Root_CA_1.pem - copied unchanged from r353095, head/secure/caroot/trusted/Hongkong_Post_Root_CA_1.pem stable/11/secure/caroot/trusted/Hongkong_Post_Root_CA_3.pem - copied unchanged from r353095, head/secure/caroot/trusted/Hongkong_Post_Root_CA_3.pem stable/11/secure/caroot/trusted/ISRG_Root_X1.pem - copied unchanged from r353095, head/secure/caroot/trusted/ISRG_Root_X1.pem stable/11/secure/caroot/trusted/IdenTrust_Commercial_Root_CA_1.pem - copied unchanged from r353095, head/secure/caroot/trusted/IdenTrust_Commercial_Root_CA_1.pem stable/11/secure/caroot/trusted/IdenTrust_Public_Sector_Root_CA_1.pem - copied unchanged from r353095, head/secure/caroot/trusted/IdenTrust_Public_Sector_Root_CA_1.pem stable/11/secure/caroot/trusted/Izenpe_com.pem - copied unchanged from r353095, head/secure/caroot/trusted/Izenpe_com.pem stable/11/secure/caroot/trusted/LuxTrust_Global_Root_2.pem - copied unchanged from r353095, head/secure/caroot/trusted/LuxTrust_Global_Root_2.pem stable/11/secure/caroot/trusted/Microsec_e-Szigno_Root_CA_2009.pem - copied unchanged from r353095, head/secure/caroot/trusted/Microsec_e-Szigno_Root_CA_2009.pem stable/11/secure/caroot/trusted/NetLock_Arany__Class_Gold__F__tan__s__tv__ny.pem - copied unchanged from r353095, head/secure/caroot/trusted/NetLock_Arany__Class_Gold__F__tan__s__tv__ny.pem stable/11/secure/caroot/trusted/Network_Solutions_Certificate_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/Network_Solutions_Certificate_Authority.pem stable/11/secure/caroot/trusted/OISTE_WISeKey_Global_Root_GA_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/OISTE_WISeKey_Global_Root_GA_CA.pem stable/11/secure/caroot/trusted/OISTE_WISeKey_Global_Root_GB_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/OISTE_WISeKey_Global_Root_GB_CA.pem stable/11/secure/caroot/trusted/OISTE_WISeKey_Global_Root_GC_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/OISTE_WISeKey_Global_Root_GC_CA.pem stable/11/secure/caroot/trusted/QuoVadis_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/QuoVadis_Root_CA.pem stable/11/secure/caroot/trusted/QuoVadis_Root_CA_1_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/QuoVadis_Root_CA_1_G3.pem stable/11/secure/caroot/trusted/QuoVadis_Root_CA_2.pem - copied unchanged from r353095, head/secure/caroot/trusted/QuoVadis_Root_CA_2.pem stable/11/secure/caroot/trusted/QuoVadis_Root_CA_2_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/QuoVadis_Root_CA_2_G3.pem stable/11/secure/caroot/trusted/QuoVadis_Root_CA_3.pem - copied unchanged from r353095, head/secure/caroot/trusted/QuoVadis_Root_CA_3.pem stable/11/secure/caroot/trusted/QuoVadis_Root_CA_3_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/QuoVadis_Root_CA_3_G3.pem stable/11/secure/caroot/trusted/SSL_com_EV_Root_Certification_Authority_ECC.pem - copied unchanged from r353095, head/secure/caroot/trusted/SSL_com_EV_Root_Certification_Authority_ECC.pem stable/11/secure/caroot/trusted/SSL_com_EV_Root_Certification_Authority_RSA_R2.pem - copied unchanged from r353095, head/secure/caroot/trusted/SSL_com_EV_Root_Certification_Authority_RSA_R2.pem stable/11/secure/caroot/trusted/SSL_com_Root_Certification_Authority_ECC.pem - copied unchanged from r353095, head/secure/caroot/trusted/SSL_com_Root_Certification_Authority_ECC.pem stable/11/secure/caroot/trusted/SSL_com_Root_Certification_Authority_RSA.pem - copied unchanged from r353095, head/secure/caroot/trusted/SSL_com_Root_Certification_Authority_RSA.pem stable/11/secure/caroot/trusted/SZAFIR_ROOT_CA2.pem - copied unchanged from r353095, head/secure/caroot/trusted/SZAFIR_ROOT_CA2.pem stable/11/secure/caroot/trusted/SecureSign_RootCA11.pem - copied unchanged from r353095, head/secure/caroot/trusted/SecureSign_RootCA11.pem stable/11/secure/caroot/trusted/SecureTrust_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/SecureTrust_CA.pem stable/11/secure/caroot/trusted/Secure_Global_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Secure_Global_CA.pem stable/11/secure/caroot/trusted/Security_Communication_RootCA2.pem - copied unchanged from r353095, head/secure/caroot/trusted/Security_Communication_RootCA2.pem stable/11/secure/caroot/trusted/Security_Communication_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Security_Communication_Root_CA.pem stable/11/secure/caroot/trusted/Sonera_Class_2_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Sonera_Class_2_Root_CA.pem stable/11/secure/caroot/trusted/Staat_der_Nederlanden_EV_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Staat_der_Nederlanden_EV_Root_CA.pem stable/11/secure/caroot/trusted/Staat_der_Nederlanden_Root_CA_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/Staat_der_Nederlanden_Root_CA_-_G2.pem stable/11/secure/caroot/trusted/Staat_der_Nederlanden_Root_CA_-_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/Staat_der_Nederlanden_Root_CA_-_G3.pem stable/11/secure/caroot/trusted/Starfield_Class_2_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Starfield_Class_2_CA.pem stable/11/secure/caroot/trusted/Starfield_Root_Certificate_Authority_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/Starfield_Root_Certificate_Authority_-_G2.pem stable/11/secure/caroot/trusted/Starfield_Services_Root_Certificate_Authority_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/Starfield_Services_Root_Certificate_Authority_-_G2.pem stable/11/secure/caroot/trusted/SwissSign_Gold_CA_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/SwissSign_Gold_CA_-_G2.pem stable/11/secure/caroot/trusted/SwissSign_Platinum_CA_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/SwissSign_Platinum_CA_-_G2.pem stable/11/secure/caroot/trusted/SwissSign_Silver_CA_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/SwissSign_Silver_CA_-_G2.pem stable/11/secure/caroot/trusted/Symantec_Class_1_Public_Primary_Certification_Authority_-_G4.pem - copied unchanged from r353095, head/secure/caroot/trusted/Symantec_Class_1_Public_Primary_Certification_Authority_-_G4.pem stable/11/secure/caroot/trusted/Symantec_Class_1_Public_Primary_Certification_Authority_-_G6.pem - copied unchanged from r353095, head/secure/caroot/trusted/Symantec_Class_1_Public_Primary_Certification_Authority_-_G6.pem stable/11/secure/caroot/trusted/Symantec_Class_2_Public_Primary_Certification_Authority_-_G4.pem - copied unchanged from r353095, head/secure/caroot/trusted/Symantec_Class_2_Public_Primary_Certification_Authority_-_G4.pem stable/11/secure/caroot/trusted/Symantec_Class_2_Public_Primary_Certification_Authority_-_G6.pem - copied unchanged from r353095, head/secure/caroot/trusted/Symantec_Class_2_Public_Primary_Certification_Authority_-_G6.pem stable/11/secure/caroot/trusted/T-TeleSec_GlobalRoot_Class_2.pem - copied unchanged from r353095, head/secure/caroot/trusted/T-TeleSec_GlobalRoot_Class_2.pem stable/11/secure/caroot/trusted/T-TeleSec_GlobalRoot_Class_3.pem - copied unchanged from r353095, head/secure/caroot/trusted/T-TeleSec_GlobalRoot_Class_3.pem stable/11/secure/caroot/trusted/TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.pem - copied unchanged from r353095, head/secure/caroot/trusted/TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.pem stable/11/secure/caroot/trusted/TWCA_Global_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/TWCA_Global_Root_CA.pem stable/11/secure/caroot/trusted/TWCA_Root_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/TWCA_Root_Certification_Authority.pem stable/11/secure/caroot/trusted/Taiwan_GRCA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Taiwan_GRCA.pem stable/11/secure/caroot/trusted/TeliaSonera_Root_CA_v1.pem - copied unchanged from r353095, head/secure/caroot/trusted/TeliaSonera_Root_CA_v1.pem stable/11/secure/caroot/trusted/TrustCor_ECA-1.pem - copied unchanged from r353095, head/secure/caroot/trusted/TrustCor_ECA-1.pem stable/11/secure/caroot/trusted/TrustCor_RootCert_CA-1.pem - copied unchanged from r353095, head/secure/caroot/trusted/TrustCor_RootCert_CA-1.pem stable/11/secure/caroot/trusted/TrustCor_RootCert_CA-2.pem - copied unchanged from r353095, head/secure/caroot/trusted/TrustCor_RootCert_CA-2.pem stable/11/secure/caroot/trusted/Trustis_FPS_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Trustis_FPS_Root_CA.pem stable/11/secure/caroot/trusted/UCA_Extended_Validation_Root.pem - copied unchanged from r353095, head/secure/caroot/trusted/UCA_Extended_Validation_Root.pem stable/11/secure/caroot/trusted/UCA_Global_G2_Root.pem - copied unchanged from r353095, head/secure/caroot/trusted/UCA_Global_G2_Root.pem stable/11/secure/caroot/trusted/USERTrust_ECC_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/USERTrust_ECC_Certification_Authority.pem stable/11/secure/caroot/trusted/USERTrust_RSA_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/USERTrust_RSA_Certification_Authority.pem stable/11/secure/caroot/trusted/VeriSign_Class_3_Public_Primary_Certification_Authority_-_G4.pem - copied unchanged from r353095, head/secure/caroot/trusted/VeriSign_Class_3_Public_Primary_Certification_Authority_-_G4.pem stable/11/secure/caroot/trusted/VeriSign_Class_3_Public_Primary_Certification_Authority_-_G5.pem - copied unchanged from r353095, head/secure/caroot/trusted/VeriSign_Class_3_Public_Primary_Certification_Authority_-_G5.pem stable/11/secure/caroot/trusted/VeriSign_Universal_Root_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/VeriSign_Universal_Root_Certification_Authority.pem stable/11/secure/caroot/trusted/Verisign_Class_1_Public_Primary_Certification_Authority_-_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/Verisign_Class_1_Public_Primary_Certification_Authority_-_G3.pem stable/11/secure/caroot/trusted/Verisign_Class_2_Public_Primary_Certification_Authority_-_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/Verisign_Class_2_Public_Primary_Certification_Authority_-_G3.pem stable/11/secure/caroot/trusted/Verisign_Class_3_Public_Primary_Certification_Authority_-_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/Verisign_Class_3_Public_Primary_Certification_Authority_-_G3.pem stable/11/secure/caroot/trusted/XRamp_Global_CA_Root.pem - copied unchanged from r353095, head/secure/caroot/trusted/XRamp_Global_CA_Root.pem stable/11/secure/caroot/trusted/certSIGN_ROOT_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/certSIGN_ROOT_CA.pem stable/11/secure/caroot/trusted/ePKI_Root_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/ePKI_Root_Certification_Authority.pem stable/11/secure/caroot/trusted/emSign_ECC_Root_CA_-_C3.pem - copied unchanged from r353095, head/secure/caroot/trusted/emSign_ECC_Root_CA_-_C3.pem stable/11/secure/caroot/trusted/emSign_ECC_Root_CA_-_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/emSign_ECC_Root_CA_-_G3.pem stable/11/secure/caroot/trusted/emSign_Root_CA_-_C1.pem - copied unchanged from r353095, head/secure/caroot/trusted/emSign_Root_CA_-_C1.pem stable/11/secure/caroot/trusted/emSign_Root_CA_-_G1.pem - copied unchanged from r353095, head/secure/caroot/trusted/emSign_Root_CA_-_G1.pem stable/11/secure/caroot/trusted/thawte_Primary_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/thawte_Primary_Root_CA.pem stable/11/secure/caroot/trusted/thawte_Primary_Root_CA_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/thawte_Primary_Root_CA_-_G2.pem stable/11/secure/caroot/trusted/thawte_Primary_Root_CA_-_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/thawte_Primary_Root_CA_-_G3.pem Modified: Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Added: stable/12/secure/caroot/trusted/ACCVRAIZ1.pem - copied unchanged from r353095, head/secure/caroot/trusted/ACCVRAIZ1.pem stable/12/secure/caroot/trusted/AC_RAIZ_FNMT-RCM.pem - copied unchanged from r353095, head/secure/caroot/trusted/AC_RAIZ_FNMT-RCM.pem stable/12/secure/caroot/trusted/Actalis_Authentication_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Actalis_Authentication_Root_CA.pem stable/12/secure/caroot/trusted/AddTrust_External_Root.pem - copied unchanged from r353095, head/secure/caroot/trusted/AddTrust_External_Root.pem stable/12/secure/caroot/trusted/AddTrust_Low-Value_Services_Root.pem - copied unchanged from r353095, head/secure/caroot/trusted/AddTrust_Low-Value_Services_Root.pem stable/12/secure/caroot/trusted/AffirmTrust_Commercial.pem - copied unchanged from r353095, head/secure/caroot/trusted/AffirmTrust_Commercial.pem stable/12/secure/caroot/trusted/AffirmTrust_Networking.pem - copied unchanged from r353095, head/secure/caroot/trusted/AffirmTrust_Networking.pem stable/12/secure/caroot/trusted/AffirmTrust_Premium.pem - copied unchanged from r353095, head/secure/caroot/trusted/AffirmTrust_Premium.pem stable/12/secure/caroot/trusted/AffirmTrust_Premium_ECC.pem - copied unchanged from r353095, head/secure/caroot/trusted/AffirmTrust_Premium_ECC.pem stable/12/secure/caroot/trusted/Amazon_Root_CA_1.pem - copied unchanged from r353095, head/secure/caroot/trusted/Amazon_Root_CA_1.pem stable/12/secure/caroot/trusted/Amazon_Root_CA_2.pem - copied unchanged from r353095, head/secure/caroot/trusted/Amazon_Root_CA_2.pem stable/12/secure/caroot/trusted/Amazon_Root_CA_3.pem - copied unchanged from r353095, head/secure/caroot/trusted/Amazon_Root_CA_3.pem stable/12/secure/caroot/trusted/Amazon_Root_CA_4.pem - copied unchanged from r353095, head/secure/caroot/trusted/Amazon_Root_CA_4.pem stable/12/secure/caroot/trusted/Atos_TrustedRoot_2011.pem - copied unchanged from r353095, head/secure/caroot/trusted/Atos_TrustedRoot_2011.pem stable/12/secure/caroot/trusted/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.pem - copied unchanged from r353095, head/secure/caroot/trusted/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.pem stable/12/secure/caroot/trusted/Baltimore_CyberTrust_Root.pem - copied unchanged from r353095, head/secure/caroot/trusted/Baltimore_CyberTrust_Root.pem stable/12/secure/caroot/trusted/Buypass_Class_2_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Buypass_Class_2_Root_CA.pem stable/12/secure/caroot/trusted/Buypass_Class_3_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Buypass_Class_3_Root_CA.pem stable/12/secure/caroot/trusted/CA_Disig_Root_R2.pem - copied unchanged from r353095, head/secure/caroot/trusted/CA_Disig_Root_R2.pem stable/12/secure/caroot/trusted/CFCA_EV_ROOT.pem - copied unchanged from r353095, head/secure/caroot/trusted/CFCA_EV_ROOT.pem stable/12/secure/caroot/trusted/COMODO_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/COMODO_Certification_Authority.pem stable/12/secure/caroot/trusted/COMODO_ECC_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/COMODO_ECC_Certification_Authority.pem stable/12/secure/caroot/trusted/COMODO_RSA_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/COMODO_RSA_Certification_Authority.pem stable/12/secure/caroot/trusted/Camerfirma_Chambers_of_Commerce_Root.pem - copied unchanged from r353095, head/secure/caroot/trusted/Camerfirma_Chambers_of_Commerce_Root.pem stable/12/secure/caroot/trusted/Camerfirma_Global_Chambersign_Root.pem - copied unchanged from r353095, head/secure/caroot/trusted/Camerfirma_Global_Chambersign_Root.pem stable/12/secure/caroot/trusted/Certigna.pem - copied unchanged from r353095, head/secure/caroot/trusted/Certigna.pem stable/12/secure/caroot/trusted/Certigna_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Certigna_Root_CA.pem stable/12/secure/caroot/trusted/Certum_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Certum_Root_CA.pem stable/12/secure/caroot/trusted/Certum_Trusted_Network_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Certum_Trusted_Network_CA.pem stable/12/secure/caroot/trusted/Certum_Trusted_Network_CA_2.pem - copied unchanged from r353095, head/secure/caroot/trusted/Certum_Trusted_Network_CA_2.pem stable/12/secure/caroot/trusted/Chambers_of_Commerce_Root_-_2008.pem - copied unchanged from r353095, head/secure/caroot/trusted/Chambers_of_Commerce_Root_-_2008.pem stable/12/secure/caroot/trusted/Comodo_AAA_Services_root.pem - copied unchanged from r353095, head/secure/caroot/trusted/Comodo_AAA_Services_root.pem stable/12/secure/caroot/trusted/Cybertrust_Global_Root.pem - copied unchanged from r353095, head/secure/caroot/trusted/Cybertrust_Global_Root.pem stable/12/secure/caroot/trusted/D-TRUST_Root_CA_3_2013.pem - copied unchanged from r353095, head/secure/caroot/trusted/D-TRUST_Root_CA_3_2013.pem stable/12/secure/caroot/trusted/D-TRUST_Root_Class_3_CA_2_2009.pem - copied unchanged from r353095, head/secure/caroot/trusted/D-TRUST_Root_Class_3_CA_2_2009.pem stable/12/secure/caroot/trusted/D-TRUST_Root_Class_3_CA_2_EV_2009.pem - copied unchanged from r353095, head/secure/caroot/trusted/D-TRUST_Root_Class_3_CA_2_EV_2009.pem stable/12/secure/caroot/trusted/DST_Root_CA_X3.pem - copied unchanged from r353095, head/secure/caroot/trusted/DST_Root_CA_X3.pem stable/12/secure/caroot/trusted/DigiCert_Assured_ID_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/DigiCert_Assured_ID_Root_CA.pem stable/12/secure/caroot/trusted/DigiCert_Assured_ID_Root_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/DigiCert_Assured_ID_Root_G2.pem stable/12/secure/caroot/trusted/DigiCert_Assured_ID_Root_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/DigiCert_Assured_ID_Root_G3.pem stable/12/secure/caroot/trusted/DigiCert_Global_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/DigiCert_Global_Root_CA.pem stable/12/secure/caroot/trusted/DigiCert_Global_Root_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/DigiCert_Global_Root_G2.pem stable/12/secure/caroot/trusted/DigiCert_Global_Root_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/DigiCert_Global_Root_G3.pem stable/12/secure/caroot/trusted/DigiCert_High_Assurance_EV_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/DigiCert_High_Assurance_EV_Root_CA.pem stable/12/secure/caroot/trusted/DigiCert_Trusted_Root_G4.pem - copied unchanged from r353095, head/secure/caroot/trusted/DigiCert_Trusted_Root_G4.pem stable/12/secure/caroot/trusted/E-Tugra_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/E-Tugra_Certification_Authority.pem stable/12/secure/caroot/trusted/EC-ACC.pem - copied unchanged from r353095, head/secure/caroot/trusted/EC-ACC.pem stable/12/secure/caroot/trusted/EE_Certification_Centre_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/EE_Certification_Centre_Root_CA.pem stable/12/secure/caroot/trusted/Entrust_Root_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/Entrust_Root_Certification_Authority.pem stable/12/secure/caroot/trusted/Entrust_Root_Certification_Authority_-_EC1.pem - copied unchanged from r353095, head/secure/caroot/trusted/Entrust_Root_Certification_Authority_-_EC1.pem stable/12/secure/caroot/trusted/Entrust_Root_Certification_Authority_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/Entrust_Root_Certification_Authority_-_G2.pem stable/12/secure/caroot/trusted/Entrust_Root_Certification_Authority_-_G4.pem - copied unchanged from r355376, head/secure/caroot/trusted/Entrust_Root_Certification_Authority_-_G4.pem stable/12/secure/caroot/trusted/Entrust_net_Premium_2048_Secure_Server_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Entrust_net_Premium_2048_Secure_Server_CA.pem stable/12/secure/caroot/trusted/GDCA_TrustAUTH_R5_ROOT.pem - copied unchanged from r353095, head/secure/caroot/trusted/GDCA_TrustAUTH_R5_ROOT.pem stable/12/secure/caroot/trusted/GTS_Root_R1.pem - copied unchanged from r353095, head/secure/caroot/trusted/GTS_Root_R1.pem stable/12/secure/caroot/trusted/GTS_Root_R2.pem - copied unchanged from r353095, head/secure/caroot/trusted/GTS_Root_R2.pem stable/12/secure/caroot/trusted/GTS_Root_R3.pem - copied unchanged from r353095, head/secure/caroot/trusted/GTS_Root_R3.pem stable/12/secure/caroot/trusted/GTS_Root_R4.pem - copied unchanged from r353095, head/secure/caroot/trusted/GTS_Root_R4.pem stable/12/secure/caroot/trusted/GeoTrust_Global_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/GeoTrust_Global_CA.pem stable/12/secure/caroot/trusted/GeoTrust_Primary_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/GeoTrust_Primary_Certification_Authority.pem stable/12/secure/caroot/trusted/GeoTrust_Primary_Certification_Authority_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/GeoTrust_Primary_Certification_Authority_-_G2.pem stable/12/secure/caroot/trusted/GeoTrust_Primary_Certification_Authority_-_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/GeoTrust_Primary_Certification_Authority_-_G3.pem stable/12/secure/caroot/trusted/GeoTrust_Universal_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/GeoTrust_Universal_CA.pem stable/12/secure/caroot/trusted/GeoTrust_Universal_CA_2.pem - copied unchanged from r353095, head/secure/caroot/trusted/GeoTrust_Universal_CA_2.pem stable/12/secure/caroot/trusted/GlobalSign_ECC_Root_CA_-_R4.pem - copied unchanged from r353095, head/secure/caroot/trusted/GlobalSign_ECC_Root_CA_-_R4.pem stable/12/secure/caroot/trusted/GlobalSign_ECC_Root_CA_-_R5.pem - copied unchanged from r353095, head/secure/caroot/trusted/GlobalSign_ECC_Root_CA_-_R5.pem stable/12/secure/caroot/trusted/GlobalSign_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/GlobalSign_Root_CA.pem stable/12/secure/caroot/trusted/GlobalSign_Root_CA_-_R2.pem - copied unchanged from r353095, head/secure/caroot/trusted/GlobalSign_Root_CA_-_R2.pem stable/12/secure/caroot/trusted/GlobalSign_Root_CA_-_R3.pem - copied unchanged from r353095, head/secure/caroot/trusted/GlobalSign_Root_CA_-_R3.pem stable/12/secure/caroot/trusted/GlobalSign_Root_CA_-_R6.pem - copied unchanged from r353095, head/secure/caroot/trusted/GlobalSign_Root_CA_-_R6.pem stable/12/secure/caroot/trusted/Global_Chambersign_Root_-_2008.pem - copied unchanged from r353095, head/secure/caroot/trusted/Global_Chambersign_Root_-_2008.pem stable/12/secure/caroot/trusted/Go_Daddy_Class_2_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Go_Daddy_Class_2_CA.pem stable/12/secure/caroot/trusted/Go_Daddy_Root_Certificate_Authority_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/Go_Daddy_Root_Certificate_Authority_-_G2.pem stable/12/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.pem - copied unchanged from r353095, head/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.pem stable/12/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_RootCA_2011.pem - copied unchanged from r353095, head/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_RootCA_2011.pem stable/12/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_RootCA_2015.pem - copied unchanged from r353095, head/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_RootCA_2015.pem stable/12/secure/caroot/trusted/Hongkong_Post_Root_CA_1.pem - copied unchanged from r353095, head/secure/caroot/trusted/Hongkong_Post_Root_CA_1.pem stable/12/secure/caroot/trusted/Hongkong_Post_Root_CA_3.pem - copied unchanged from r353095, head/secure/caroot/trusted/Hongkong_Post_Root_CA_3.pem stable/12/secure/caroot/trusted/ISRG_Root_X1.pem - copied unchanged from r353095, head/secure/caroot/trusted/ISRG_Root_X1.pem stable/12/secure/caroot/trusted/IdenTrust_Commercial_Root_CA_1.pem - copied unchanged from r353095, head/secure/caroot/trusted/IdenTrust_Commercial_Root_CA_1.pem stable/12/secure/caroot/trusted/IdenTrust_Public_Sector_Root_CA_1.pem - copied unchanged from r353095, head/secure/caroot/trusted/IdenTrust_Public_Sector_Root_CA_1.pem stable/12/secure/caroot/trusted/Izenpe_com.pem - copied unchanged from r353095, head/secure/caroot/trusted/Izenpe_com.pem stable/12/secure/caroot/trusted/LuxTrust_Global_Root_2.pem - copied unchanged from r353095, head/secure/caroot/trusted/LuxTrust_Global_Root_2.pem stable/12/secure/caroot/trusted/Microsec_e-Szigno_Root_CA_2009.pem - copied unchanged from r353095, head/secure/caroot/trusted/Microsec_e-Szigno_Root_CA_2009.pem stable/12/secure/caroot/trusted/NetLock_Arany__Class_Gold__F__tan__s__tv__ny.pem - copied unchanged from r353095, head/secure/caroot/trusted/NetLock_Arany__Class_Gold__F__tan__s__tv__ny.pem stable/12/secure/caroot/trusted/Network_Solutions_Certificate_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/Network_Solutions_Certificate_Authority.pem stable/12/secure/caroot/trusted/OISTE_WISeKey_Global_Root_GA_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/OISTE_WISeKey_Global_Root_GA_CA.pem stable/12/secure/caroot/trusted/OISTE_WISeKey_Global_Root_GB_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/OISTE_WISeKey_Global_Root_GB_CA.pem stable/12/secure/caroot/trusted/OISTE_WISeKey_Global_Root_GC_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/OISTE_WISeKey_Global_Root_GC_CA.pem stable/12/secure/caroot/trusted/QuoVadis_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/QuoVadis_Root_CA.pem stable/12/secure/caroot/trusted/QuoVadis_Root_CA_1_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/QuoVadis_Root_CA_1_G3.pem stable/12/secure/caroot/trusted/QuoVadis_Root_CA_2.pem - copied unchanged from r353095, head/secure/caroot/trusted/QuoVadis_Root_CA_2.pem stable/12/secure/caroot/trusted/QuoVadis_Root_CA_2_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/QuoVadis_Root_CA_2_G3.pem stable/12/secure/caroot/trusted/QuoVadis_Root_CA_3.pem - copied unchanged from r353095, head/secure/caroot/trusted/QuoVadis_Root_CA_3.pem stable/12/secure/caroot/trusted/QuoVadis_Root_CA_3_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/QuoVadis_Root_CA_3_G3.pem stable/12/secure/caroot/trusted/SSL_com_EV_Root_Certification_Authority_ECC.pem - copied unchanged from r353095, head/secure/caroot/trusted/SSL_com_EV_Root_Certification_Authority_ECC.pem stable/12/secure/caroot/trusted/SSL_com_EV_Root_Certification_Authority_RSA_R2.pem - copied unchanged from r353095, head/secure/caroot/trusted/SSL_com_EV_Root_Certification_Authority_RSA_R2.pem stable/12/secure/caroot/trusted/SSL_com_Root_Certification_Authority_ECC.pem - copied unchanged from r353095, head/secure/caroot/trusted/SSL_com_Root_Certification_Authority_ECC.pem stable/12/secure/caroot/trusted/SSL_com_Root_Certification_Authority_RSA.pem - copied unchanged from r353095, head/secure/caroot/trusted/SSL_com_Root_Certification_Authority_RSA.pem stable/12/secure/caroot/trusted/SZAFIR_ROOT_CA2.pem - copied unchanged from r353095, head/secure/caroot/trusted/SZAFIR_ROOT_CA2.pem stable/12/secure/caroot/trusted/SecureSign_RootCA11.pem - copied unchanged from r353095, head/secure/caroot/trusted/SecureSign_RootCA11.pem stable/12/secure/caroot/trusted/SecureTrust_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/SecureTrust_CA.pem stable/12/secure/caroot/trusted/Secure_Global_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Secure_Global_CA.pem stable/12/secure/caroot/trusted/Security_Communication_RootCA2.pem - copied unchanged from r353095, head/secure/caroot/trusted/Security_Communication_RootCA2.pem stable/12/secure/caroot/trusted/Security_Communication_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Security_Communication_Root_CA.pem stable/12/secure/caroot/trusted/Sonera_Class_2_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Sonera_Class_2_Root_CA.pem stable/12/secure/caroot/trusted/Staat_der_Nederlanden_EV_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Staat_der_Nederlanden_EV_Root_CA.pem stable/12/secure/caroot/trusted/Staat_der_Nederlanden_Root_CA_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/Staat_der_Nederlanden_Root_CA_-_G2.pem stable/12/secure/caroot/trusted/Staat_der_Nederlanden_Root_CA_-_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/Staat_der_Nederlanden_Root_CA_-_G3.pem stable/12/secure/caroot/trusted/Starfield_Class_2_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Starfield_Class_2_CA.pem stable/12/secure/caroot/trusted/Starfield_Root_Certificate_Authority_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/Starfield_Root_Certificate_Authority_-_G2.pem stable/12/secure/caroot/trusted/Starfield_Services_Root_Certificate_Authority_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/Starfield_Services_Root_Certificate_Authority_-_G2.pem stable/12/secure/caroot/trusted/SwissSign_Gold_CA_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/SwissSign_Gold_CA_-_G2.pem stable/12/secure/caroot/trusted/SwissSign_Platinum_CA_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/SwissSign_Platinum_CA_-_G2.pem stable/12/secure/caroot/trusted/SwissSign_Silver_CA_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/SwissSign_Silver_CA_-_G2.pem stable/12/secure/caroot/trusted/Symantec_Class_1_Public_Primary_Certification_Authority_-_G4.pem - copied unchanged from r353095, head/secure/caroot/trusted/Symantec_Class_1_Public_Primary_Certification_Authority_-_G4.pem stable/12/secure/caroot/trusted/Symantec_Class_1_Public_Primary_Certification_Authority_-_G6.pem - copied unchanged from r353095, head/secure/caroot/trusted/Symantec_Class_1_Public_Primary_Certification_Authority_-_G6.pem stable/12/secure/caroot/trusted/Symantec_Class_2_Public_Primary_Certification_Authority_-_G4.pem - copied unchanged from r353095, head/secure/caroot/trusted/Symantec_Class_2_Public_Primary_Certification_Authority_-_G4.pem stable/12/secure/caroot/trusted/Symantec_Class_2_Public_Primary_Certification_Authority_-_G6.pem - copied unchanged from r353095, head/secure/caroot/trusted/Symantec_Class_2_Public_Primary_Certification_Authority_-_G6.pem stable/12/secure/caroot/trusted/T-TeleSec_GlobalRoot_Class_2.pem - copied unchanged from r353095, head/secure/caroot/trusted/T-TeleSec_GlobalRoot_Class_2.pem stable/12/secure/caroot/trusted/T-TeleSec_GlobalRoot_Class_3.pem - copied unchanged from r353095, head/secure/caroot/trusted/T-TeleSec_GlobalRoot_Class_3.pem stable/12/secure/caroot/trusted/TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.pem - copied unchanged from r353095, head/secure/caroot/trusted/TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.pem stable/12/secure/caroot/trusted/TWCA_Global_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/TWCA_Global_Root_CA.pem stable/12/secure/caroot/trusted/TWCA_Root_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/TWCA_Root_Certification_Authority.pem stable/12/secure/caroot/trusted/Taiwan_GRCA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Taiwan_GRCA.pem stable/12/secure/caroot/trusted/TeliaSonera_Root_CA_v1.pem - copied unchanged from r353095, head/secure/caroot/trusted/TeliaSonera_Root_CA_v1.pem stable/12/secure/caroot/trusted/TrustCor_ECA-1.pem - copied unchanged from r353095, head/secure/caroot/trusted/TrustCor_ECA-1.pem stable/12/secure/caroot/trusted/TrustCor_RootCert_CA-1.pem - copied unchanged from r353095, head/secure/caroot/trusted/TrustCor_RootCert_CA-1.pem stable/12/secure/caroot/trusted/TrustCor_RootCert_CA-2.pem - copied unchanged from r353095, head/secure/caroot/trusted/TrustCor_RootCert_CA-2.pem stable/12/secure/caroot/trusted/Trustis_FPS_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Trustis_FPS_Root_CA.pem stable/12/secure/caroot/trusted/UCA_Extended_Validation_Root.pem - copied unchanged from r353095, head/secure/caroot/trusted/UCA_Extended_Validation_Root.pem stable/12/secure/caroot/trusted/UCA_Global_G2_Root.pem - copied unchanged from r353095, head/secure/caroot/trusted/UCA_Global_G2_Root.pem stable/12/secure/caroot/trusted/USERTrust_ECC_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/USERTrust_ECC_Certification_Authority.pem stable/12/secure/caroot/trusted/USERTrust_RSA_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/USERTrust_RSA_Certification_Authority.pem stable/12/secure/caroot/trusted/VeriSign_Class_3_Public_Primary_Certification_Authority_-_G4.pem - copied unchanged from r353095, head/secure/caroot/trusted/VeriSign_Class_3_Public_Primary_Certification_Authority_-_G4.pem stable/12/secure/caroot/trusted/VeriSign_Class_3_Public_Primary_Certification_Authority_-_G5.pem - copied unchanged from r353095, head/secure/caroot/trusted/VeriSign_Class_3_Public_Primary_Certification_Authority_-_G5.pem stable/12/secure/caroot/trusted/VeriSign_Universal_Root_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/VeriSign_Universal_Root_Certification_Authority.pem stable/12/secure/caroot/trusted/Verisign_Class_1_Public_Primary_Certification_Authority_-_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/Verisign_Class_1_Public_Primary_Certification_Authority_-_G3.pem stable/12/secure/caroot/trusted/Verisign_Class_2_Public_Primary_Certification_Authority_-_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/Verisign_Class_2_Public_Primary_Certification_Authority_-_G3.pem stable/12/secure/caroot/trusted/Verisign_Class_3_Public_Primary_Certification_Authority_-_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/Verisign_Class_3_Public_Primary_Certification_Authority_-_G3.pem stable/12/secure/caroot/trusted/XRamp_Global_CA_Root.pem - copied unchanged from r353095, head/secure/caroot/trusted/XRamp_Global_CA_Root.pem stable/12/secure/caroot/trusted/certSIGN_ROOT_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/certSIGN_ROOT_CA.pem stable/12/secure/caroot/trusted/ePKI_Root_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/ePKI_Root_Certification_Authority.pem stable/12/secure/caroot/trusted/emSign_ECC_Root_CA_-_C3.pem - copied unchanged from r353095, head/secure/caroot/trusted/emSign_ECC_Root_CA_-_C3.pem stable/12/secure/caroot/trusted/emSign_ECC_Root_CA_-_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/emSign_ECC_Root_CA_-_G3.pem stable/12/secure/caroot/trusted/emSign_Root_CA_-_C1.pem - copied unchanged from r353095, head/secure/caroot/trusted/emSign_Root_CA_-_C1.pem stable/12/secure/caroot/trusted/emSign_Root_CA_-_G1.pem - copied unchanged from r353095, head/secure/caroot/trusted/emSign_Root_CA_-_G1.pem stable/12/secure/caroot/trusted/thawte_Primary_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/thawte_Primary_Root_CA.pem stable/12/secure/caroot/trusted/thawte_Primary_Root_CA_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/thawte_Primary_Root_CA_-_G2.pem stable/12/secure/caroot/trusted/thawte_Primary_Root_CA_-_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/thawte_Primary_Root_CA_-_G3.pem Modified: Directory Properties: stable/12/ (props changed) Copied: stable/11/secure/caroot/trusted/ACCVRAIZ1.pem (from r353095, head/secure/caroot/trusted/ACCVRAIZ1.pem) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/secure/caroot/trusted/ACCVRAIZ1.pem Mon Apr 27 21:41:00 2020 (r360395, copy of r353095, head/secure/caroot/trusted/ACCVRAIZ1.pem) @@ -0,0 +1,164 @@ +## +## ACCVRAIZ1 +## +## This is a single X.509 certificate for a public Certificate +## Authority (CA). It was automatically extracted from Mozilla's +## root CA list (the file `certdata.txt' in security/nss). +## +## Extracted from nss +## with $FreeBSD: head/secure/caroot/MAca-bundle.pl 352951 2019-10-02 01:27:50Z kevans $ +## +## @generated +## +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 6828503384748696800 (0x5ec3b7a6437fa4e0) + Signature Algorithm: sha1WithRSAEncryption + Issuer: CN = ACCVRAIZ1, OU = PKIACCV, O = ACCV, C = ES + Validity + Not Before: May 5 09:37:37 2011 GMT + Not After : Dec 31 09:37:37 2030 GMT + Subject: CN = ACCVRAIZ1, OU = PKIACCV, O = ACCV, C = ES + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + RSA Public-Key: (4096 bit) + Modulus: + 00:9b:a9:ab:bf:61:4a:97:af:2f:97:66:9a:74:5f: + d0:d9:96:fd:cf:e2:e4:66:ef:1f:1f:47:33:c2:44: + a3:df:9a:de:1f:b5:54:dd:15:7c:69:35:11:6f:bb: + c8:0c:8e:6a:18:1e:d8:8f:d9:16:bc:10:48:36:5c: + f0:63:b3:90:5a:5c:24:37:d7:a3:d6:cb:09:71:b9: + f1:01:72:84:b0:7d:db:4d:80:cd:fc:d3:6f:c9:f8: + da:b6:0e:82:d2:45:85:a8:1b:68:a8:3d:e8:f4:44: + 6c:bd:a1:c2:cb:03:be:8c:3e:13:00:84:df:4a:48: + c0:e3:22:0a:e8:e9:37:a7:18:4c:b1:09:0d:23:56: + 7f:04:4d:d9:17:84:18:a5:c8:da:40:94:73:eb:ce: + 0e:57:3c:03:81:3a:9d:0a:a1:57:43:69:ac:57:6d: + 79:90:78:e5:b5:b4:3b:d8:bc:4c:8d:28:a1:a7:a3: + a7:ba:02:4e:25:d1:2a:ae:ed:ae:03:22:b8:6b:20: + 0f:30:28:54:95:7f:e0:ee:ce:0a:66:9d:d1:40:2d: + 6e:22:af:9d:1a:c1:05:19:d2:6f:c0:f2:9f:f8:7b: + b3:02:42:fb:50:a9:1d:2d:93:0f:23:ab:c6:c1:0f: + 92:ff:d0:a2:15:f5:53:09:71:1c:ff:45:13:84:e6: + 26:5e:f8:e0:88:1c:0a:fc:16:b6:a8:73:06:b8:f0: + 63:84:02:a0:c6:5a:ec:e7:74:df:70:ae:a3:83:25: + ea:d6:c7:97:87:93:a7:c6:8a:8a:33:97:60:37:10: + 3e:97:3e:6e:29:15:d6:a1:0f:d1:88:2c:12:9f:6f: + aa:a4:c6:42:eb:41:a2:e3:95:43:d3:01:85:6d:8e: + bb:3b:f3:23:36:c7:fe:3b:e0:a1:25:07:48:ab:c9: + 89:74:ff:08:8f:80:bf:c0:96:65:f3:ee:ec:4b:68: + bd:9d:88:c3:31:b3:40:f1:e8:cf:f6:38:bb:9c:e4: + d1:7f:d4:e5:58:9b:7c:fa:d4:f3:0e:9b:75:91:e4: + ba:52:2e:19:7e:d1:f5:cd:5a:19:fc:ba:06:f6:fb: + 52:a8:4b:99:04:dd:f8:f9:b4:8b:50:a3:4e:62:89: + f0:87:24:fa:83:42:c1:87:fa:d5:2d:29:2a:5a:71: + 7a:64:6a:d7:27:60:63:0d:db:ce:49:f5:8d:1f:90: + 89:32:17:f8:73:43:b8:d2:5a:93:86:61:d6:e1:75: + 0a:ea:79:66:76:88:4f:71:eb:04:25:d6:0a:5a:7a: + 93:e5:b9:4b:17:40:0f:b1:b6:b9:f5:de:4f:dc:e0: + b3:ac:3b:11:70:60:84:4a:43:6e:99:20:c0:29:71: + 0a:c0:65 + Exponent: 65537 (0x10001) + X509v3 extensions: + Authority Information Access: + CA Issuers - URI:http://www.accv.es/fileadmin/Archivos/certificados/raizaccv1.crt + OCSP - URI:http://ocsp.accv.es + + X509v3 Subject Key Identifier: + D2:87:B4:E3:DF:37:27:93:55:F6:56:EA:81:E5:36:CC:8C:1E:3F:BD + X509v3 Basic Constraints: critical + CA:TRUE + X509v3 Authority Key Identifier: + keyid:D2:87:B4:E3:DF:37:27:93:55:F6:56:EA:81:E5:36:CC:8C:1E:3F:BD + + X509v3 Certificate Policies: + Policy: X509v3 Any Policy + User Notice: + Explicit Text: + CPS: http://www.accv.es/legislacion_c.htm + + X509v3 CRL Distribution Points: + + Full Name: + URI:http://www.accv.es/fileadmin/Archivos/certificados/raizaccv1_der.crl + + X509v3 Key Usage: critical + Certificate Sign, CRL Sign + X509v3 Subject Alternative Name: + email:accv@accv.es + Signature Algorithm: sha1WithRSAEncryption + 97:31:02:9f:e7:fd:43:67:48:44:14:e4:29:87:ed:4c:28:66: + d0:8f:35:da:4d:61:b7:4a:97:4d:b5:db:90:e0:05:2e:0e:c6: + 79:d0:f2:97:69:0f:bd:04:47:d9:be:db:b5:29:da:9b:d9:ae: + a9:99:d5:d3:3c:30:93:f5:8d:a1:a8:fc:06:8d:44:f4:ca:16: + 95:7c:33:dc:62:8b:a8:37:f8:27:d8:09:2d:1b:ef:c8:14:27: + 20:a9:64:44:ff:2e:d6:75:aa:6c:4d:60:40:19:49:43:54:63: + da:e2:cc:ba:66:e5:4f:44:7a:5b:d9:6a:81:2b:40:d5:7f:f9: + 01:27:58:2c:c8:ed:48:91:7c:3f:a6:00:cf:c4:29:73:11:36: + de:86:19:3e:9d:ee:19:8a:1b:d5:b0:ed:8e:3d:9c:2a:c0:0d: + d8:3d:66:e3:3c:0d:bd:d5:94:5c:e2:e2:a7:35:1b:04:00:f6: + 3f:5a:8d:ea:43:bd:5f:89:1d:a9:c1:b0:cc:99:e2:4d:00:0a: + da:c9:27:5b:e7:13:90:5c:e4:f5:33:a2:55:6d:dc:e0:09:4d: + 2f:b1:26:5b:27:75:00:09:c4:62:77:29:08:5f:9e:59:ac:b6: + 7e:ad:9f:54:30:22:03:c1:1e:71:64:fe:f9:38:0a:96:18:dd: + 02:14:ac:23:cb:06:1c:1e:a4:7d:8d:0d:de:27:41:e8:ad:da: + 15:b7:b0:23:dd:2b:a8:d3:da:25:87:ed:e8:55:44:4d:88:f4: + 36:7e:84:9a:78:ac:f7:0e:56:49:0e:d6:33:25:d6:84:50:42: + 6c:20:12:1d:2a:d5:be:bc:f2:70:81:a4:70:60:be:05:b5:9b: + 9e:04:44:be:61:23:ac:e9:a5:24:8c:11:80:94:5a:a2:a2:b9: + 49:d2:c1:dc:d1:a7:ed:31:11:2c:9e:19:a6:ee:e1:55:e1:c0: + ea:cf:0d:84:e4:17:b7:a2:7c:a5:de:55:25:06:ee:cc:c0:87: + 5c:40:da:cc:95:3f:55:e0:35:c7:b8:84:be:b4:5d:cd:7a:83: + 01:72:ee:87:e6:5f:1d:ae:b5:85:c6:26:df:e6:c1:9a:e9:1e: + 02:47:9f:2a:a8:6d:a9:5b:cf:ec:45:77:7f:98:27:9a:32:5d: + 2a:e3:84:ee:c5:98:66:2f:96:20:1d:dd:d8:c3:27:d7:b0:f9: + fe:d9:7d:cd:d0:9f:8f:0b:14:58:51:9f:2f:8b:c3:38:2d:de: + e8:8f:d6:8d:87:a4:f5:56:43:16:99:2c:f4:a4:56:b4:34:b8: + 61:37:c9:c2:58:80:1b:a0:97:a1:fc:59:8d:e9:11:f6:d1:0f: + 4b:55:34:46:2a:8b:86:3b +SHA1 Fingerprint=93:05:7A:88:15:C6:4F:CE:88:2F:FA:91:16:52:28:78:BC:53:64:17 +-----BEGIN CERTIFICATE----- +MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UE +AwwJQUNDVlJBSVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQsw +CQYDVQQGEwJFUzAeFw0xMTA1MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQ +BgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwHUEtJQUNDVjENMAsGA1UECgwEQUND +VjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCb +qau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gMjmoY +HtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWo +G2ioPej0RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpA +lHPrzg5XPAOBOp0KoVdDaaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhr +IA8wKFSVf+DuzgpmndFALW4ir50awQUZ0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/ +0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDGWuzndN9wrqODJerWx5eH +k6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs78yM2x/47 +4KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMO +m3WR5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpa +cXpkatcnYGMN285J9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPl +uUsXQA+xtrn13k/c4LOsOxFwYIRKQ26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYI +KwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRwOi8vd3d3LmFjY3YuZXMvZmls +ZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEuY3J0MB8GCCsG +AQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2 +VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeT +VfZW6oHlNsyMHj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIG +CCsGAQUFBwICMIIBFB6CARAAQQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUA +cgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBhAO0AegAgAGQAZQAgAGwAYQAgAEEA +QwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUAYwBuAG8AbABvAGcA +7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBjAHQA +cgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAA +QwBQAFMAIABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUA +czAwBggrBgEFBQcCARYkaHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2Mu +aHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRt +aW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2MV9kZXIuY3JsMA4GA1Ud +DwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZIhvcNAQEF +BQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdp +D70ER9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gU +JyCpZET/LtZ1qmxNYEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+m +AM/EKXMRNt6GGT6d7hmKG9Ww7Y49nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepD +vV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJTS+xJlsndQAJxGJ3KQhfnlms +tn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3sCPdK6jT2iWH +7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h +I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szA +h1xA2syVP1XgNce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xF +d3+YJ5oyXSrjhO7FmGYvliAd3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2H +pPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3pEfbRD0tVNEYqi4Y7 +-----END CERTIFICATE----- Copied: stable/11/secure/caroot/trusted/AC_RAIZ_FNMT-RCM.pem (from r353095, head/secure/caroot/trusted/AC_RAIZ_FNMT-RCM.pem) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/secure/caroot/trusted/AC_RAIZ_FNMT-RCM.pem Mon Apr 27 21:41:00 2020 (r360395, copy of r353095, head/secure/caroot/trusted/AC_RAIZ_FNMT-RCM.pem) @@ -0,0 +1,137 @@ +## +## AC RAIZ FNMT-RCM +## +## This is a single X.509 certificate for a public Certificate +## Authority (CA). It was automatically extracted from Mozilla's +## root CA list (the file `certdata.txt' in security/nss). +## +## Extracted from nss +## with $FreeBSD: head/secure/caroot/MAca-bundle.pl 352951 2019-10-02 01:27:50Z kevans $ +## +## @generated +## +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 5d:93:8d:30:67:36:c8:06:1d:1a:c7:54:84:69:07 + Signature Algorithm: sha256WithRSAEncryption + Issuer: C = ES, O = FNMT-RCM, OU = AC RAIZ FNMT-RCM + Validity + Not Before: Oct 29 15:59:56 2008 GMT + Not After : Jan 1 00:00:00 2030 GMT + Subject: C = ES, O = FNMT-RCM, OU = AC RAIZ FNMT-RCM + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + RSA Public-Key: (4096 bit) + Modulus: + 00:ba:71:80:7a:4c:86:6e:7f:c8:13:6d:c0:c6:7d: + 1c:00:97:8f:2c:0c:23:bb:10:9a:40:a9:1a:b7:87: + 88:f8:9b:56:6a:fb:e6:7b:8e:8b:92:8e:a7:25:5d: + 59:11:db:36:2e:b7:51:17:1f:a9:08:1f:04:17:24: + 58:aa:37:4a:18:df:e5:39:d4:57:fd:d7:c1:2c:91: + 01:91:e2:22:d4:03:c0:58:fc:77:47:ec:8f:3e:74: + 43:ba:ac:34:8d:4d:38:76:67:8e:b0:c8:6f:30:33: + 58:71:5c:b4:f5:6b:6e:d4:01:50:b8:13:7e:6c:4a: + a3:49:d1:20:19:ee:bc:c0:29:18:65:a7:de:fe:ef: + dd:0a:90:21:e7:1a:67:92:42:10:98:5f:4f:30:bc: + 3e:1c:45:b4:10:d7:68:40:14:c0:40:fa:e7:77:17: + 7a:e6:0b:8f:65:5b:3c:d9:9a:52:db:b5:bd:9e:46: + cf:3d:eb:91:05:02:c0:96:b2:76:4c:4d:10:96:3b: + 92:fa:9c:7f:0f:99:df:be:23:35:45:1e:02:5c:fe: + b5:a8:9b:99:25:da:5e:f3:22:c3:39:f5:e4:2a:2e: + d3:c6:1f:c4:6c:aa:c5:1c:6a:01:05:4a:2f:d2:c5: + c1:a8:34:26:5d:66:a5:d2:02:21:f9:18:b7:06:f5: + 4e:99:6f:a8:ab:4c:51:e8:cf:50:18:c5:77:c8:39: + 09:2c:49:92:32:99:a8:bb:17:17:79:b0:5a:c5:e6: + a3:c4:59:65:47:35:83:5e:a9:e8:35:0b:99:bb:e4: + cd:20:c6:9b:4a:06:39:b5:68:fc:22:ba:ee:55:8c: + 2b:4e:ea:f3:b1:e3:fc:b6:99:9a:d5:42:fa:71:4d: + 08:cf:87:1e:6a:71:7d:f9:d3:b4:e9:a5:71:81:7b: + c2:4e:47:96:a5:f6:76:85:a3:28:8f:e9:80:6e:81: + 53:a5:6d:5f:b8:48:f9:c2:f9:36:a6:2e:49:ff:b8: + 96:c2:8c:07:b3:9b:88:58:fc:eb:1b:1c:de:2d:70: + e2:97:92:30:a1:89:e3:bc:55:a8:27:d6:4b:ed:90: + ad:8b:fa:63:25:59:2d:a8:35:dd:ca:97:33:bc:e5: + cd:c7:9d:d1:ec:ef:5e:0e:4a:90:06:26:63:ad:b9: + d9:35:2d:07:ba:76:65:2c:ac:57:8f:7d:f4:07:94: + d7:81:02:96:5d:a3:07:49:d5:7a:d0:57:f9:1b:e7: + 53:46:75:aa:b0:79:42:cb:68:71:08:e9:60:bd:39: + 69:ce:f4:af:c3:56:40:c7:ad:52:a2:09:e4:6f:86: + 47:8a:1f:eb:28:27:5d:83:20:af:04:c9:6c:56:9a: + 8b:46:f5 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: critical + CA:TRUE + X509v3 Key Usage: critical + Certificate Sign, CRL Sign + X509v3 Subject Key Identifier: + F7:7D:C5:FD:C4:E8:9A:1B:77:64:A7:F5:1D:A0:CC:BF:87:60:9A:6D + X509v3 Certificate Policies: + Policy: X509v3 Any Policy + CPS: http://www.cert.fnmt.es/dpcs/ + + Signature Algorithm: sha256WithRSAEncryption + 07:90:4a:df:f3:23:4e:f0:c3:9c:51:65:9b:9c:22:a2:8a:0c: + 85:f3:73:29:6b:4d:fe:01:e2:a9:0c:63:01:bf:04:67:a5:9d: + 98:5f:fd:01:13:fa:ec:9a:62:e9:86:fe:b6:62:d2:6e:4c:94: + fb:c0:75:45:7c:65:0c:f8:b2:37:cf:ac:0f:cf:8d:6f:f9:19: + f7:8f:ec:1e:f2:70:9e:f0:ca:b8:ef:b7:ff:76:37:76:5b:f6: + 6e:88:f3:af:62:32:22:93:0d:3a:6a:8e:14:66:0c:2d:53:74: + 57:65:1e:d5:b2:dd:23:81:3b:a5:66:23:27:67:09:8f:e1:77: + aa:43:cd:65:51:08:ed:51:58:fe:e6:39:f9:cb:47:84:a4:15: + f1:76:bb:a4:ee:a4:3b:c4:5f:ef:b2:33:96:11:18:b7:c9:65: + be:18:e1:a3:a4:dc:fa:18:f9:d3:bc:13:9b:39:7a:34:ba:d3: + 41:fb:fa:32:8a:2a:b7:2b:86:0b:69:83:38:be:cd:8a:2e:0b: + 70:ad:8d:26:92:ee:1e:f5:01:2b:0a:d9:d6:97:9b:6e:e0:a8: + 19:1c:3a:21:8b:0c:1e:40:ad:03:e7:dd:66:7e:f5:b9:20:0d: + 03:e8:96:f9:82:45:d4:39:e0:a0:00:5d:d7:98:e6:7d:9e:67: + 73:c3:9a:2a:f7:ab:8b:a1:3a:14:ef:34:bc:52:0e:89:98:9a: + 04:40:84:1d:7e:45:69:93:57:ce:eb:ce:f8:50:7c:4f:1c:6e: + 04:43:9b:f9:d6:3b:23:18:e9:ea:8e:d1:4d:46:8d:f1:3b:e4: + 6a:ca:ba:fb:23:b7:9b:fa:99:01:29:5a:58:5a:2d:e3:f9:d4: + 6d:0e:26:ad:c1:6e:34:bc:32:f8:0c:05:fa:65:a3:db:3b:37: + 83:22:e9:d6:dc:72:33:fd:5d:f2:20:bd:76:3c:23:da:28:f7: + f9:1b:eb:59:64:d5:dc:5f:72:7e:20:fc:cd:89:b5:90:67:4d: + 62:7a:3f:4e:ad:1d:c3:39:fe:7a:f4:28:16:df:41:f6:48:80: + 05:d7:0f:51:79:ac:10:ab:d4:ec:03:66:e6:6a:b0:ba:31:92: + 42:40:6a:be:3a:d3:72:e1:6a:37:55:bc:ac:1d:95:b7:69:61: + f2:43:91:74:e6:a0:d3:0a:24:46:a1:08:af:d6:da:45:19:96: + d4:53:1d:5b:84:79:f0:c0:f7:47:ef:8b:8f:c5:06:ae:9d:4c: + 62:9d:ff:46:04:f8:d3:c9:b6:10:25:40:75:fe:16:aa:c9:4a: + 60:86:2f:ba:ef:30:77:e4:54:e2:b8:84:99:58:80:aa:13:8b: + 51:3a:4f:48:f6:8b:b6:b3 +SHA1 Fingerprint=EC:50:35:07:B2:15:C4:95:62:19:E2:A8:9A:5B:42:99:2C:4C:2C:20 +-----BEGIN CERTIFICATE----- +MIIFgzCCA2ugAwIBAgIPXZONMGc2yAYdGsdUhGkHMA0GCSqGSIb3DQEBCwUAMDsx +CzAJBgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJ +WiBGTk1ULVJDTTAeFw0wODEwMjkxNTU5NTZaFw0zMDAxMDEwMDAwMDBaMDsxCzAJ +BgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJWiBG +Tk1ULVJDTTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALpxgHpMhm5/ +yBNtwMZ9HACXjywMI7sQmkCpGreHiPibVmr75nuOi5KOpyVdWRHbNi63URcfqQgf +BBckWKo3Shjf5TnUV/3XwSyRAZHiItQDwFj8d0fsjz50Q7qsNI1NOHZnjrDIbzAz +WHFctPVrbtQBULgTfmxKo0nRIBnuvMApGGWn3v7v3QqQIecaZ5JCEJhfTzC8PhxF +tBDXaEAUwED653cXeuYLj2VbPNmaUtu1vZ5Gzz3rkQUCwJaydkxNEJY7kvqcfw+Z +374jNUUeAlz+taibmSXaXvMiwzn15Cou08YfxGyqxRxqAQVKL9LFwag0Jl1mpdIC +IfkYtwb1TplvqKtMUejPUBjFd8g5CSxJkjKZqLsXF3mwWsXmo8RZZUc1g16p6DUL +mbvkzSDGm0oGObVo/CK67lWMK07q87Hj/LaZmtVC+nFNCM+HHmpxffnTtOmlcYF7 +wk5HlqX2doWjKI/pgG6BU6VtX7hI+cL5NqYuSf+4lsKMB7ObiFj86xsc3i1w4peS +MKGJ47xVqCfWS+2QrYv6YyVZLag13cqXM7zlzced0ezvXg5KkAYmY6252TUtB7p2 +ZSysV4999AeU14ECll2jB0nVetBX+RvnU0Z1qrB5QstocQjpYL05ac70r8NWQMet +UqIJ5G+GR4of6ygnXYMgrwTJbFaai0b1AgMBAAGjgYMwgYAwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFPd9xf3E6Jobd2Sn9R2gzL+H +YJptMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1odHRwOi8vd3d3 +LmNlcnQuZm5tdC5lcy9kcGNzLzANBgkqhkiG9w0BAQsFAAOCAgEAB5BK3/MjTvDD +nFFlm5wioooMhfNzKWtN/gHiqQxjAb8EZ6WdmF/9ARP67Jpi6Yb+tmLSbkyU+8B1 +RXxlDPiyN8+sD8+Nb/kZ94/sHvJwnvDKuO+3/3Y3dlv2bojzr2IyIpMNOmqOFGYM +LVN0V2Ue1bLdI4E7pWYjJ2cJj+F3qkPNZVEI7VFY/uY5+ctHhKQV8Xa7pO6kO8Rf +77IzlhEYt8llvhjho6Tc+hj507wTmzl6NLrTQfv6MooqtyuGC2mDOL7Nii4LcK2N +JpLuHvUBKwrZ1pebbuCoGRw6IYsMHkCtA+fdZn71uSANA+iW+YJF1DngoABd15jm +fZ5nc8OaKveri6E6FO80vFIOiZiaBECEHX5FaZNXzuvO+FB8TxxuBEOb+dY7Ixjp +6o7RTUaN8Tvkasq6+yO3m/qZASlaWFot4/nUbQ4mrcFuNLwy+AwF+mWj2zs3gyLp +1txyM/1d8iC9djwj2ij3+RvrWWTV3F9yfiD8zYm1kGdNYno/Tq0dwzn+evQoFt9B +9kiABdcPUXmsEKvU7ANm5mqwujGSQkBqvjrTcuFqN1W8rB2Vt2lh8kORdOag0wok +RqEIr9baRRmW1FMdW4R58MD3R++Lj8UGrp1MYp3/RgT408m2ECVAdf4WqslKYIYv +uu8wd+RU4riEmViAqhOLUTpPSPaLtrM= +-----END CERTIFICATE----- Copied: stable/11/secure/caroot/trusted/Actalis_Authentication_Root_CA.pem (from r353095, head/secure/caroot/trusted/Actalis_Authentication_Root_CA.pem) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/secure/caroot/trusted/Actalis_Authentication_Root_CA.pem Mon Apr 27 21:41:00 2020 (r360395, copy of r353095, head/secure/caroot/trusted/Actalis_Authentication_Root_CA.pem) @@ -0,0 +1,136 @@ +## +## Actalis Authentication Root CA +## +## This is a single X.509 certificate for a public Certificate +## Authority (CA). It was automatically extracted from Mozilla's +## root CA list (the file `certdata.txt' in security/nss). +## +## Extracted from nss +## with $FreeBSD: head/secure/caroot/MAca-bundle.pl 352951 2019-10-02 01:27:50Z kevans $ +## +## @generated +## +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 6271844772424770508 (0x570a119742c4e3cc) + Signature Algorithm: sha256WithRSAEncryption + Issuer: C = IT, L = Milan, O = Actalis S.p.A./03358520967, CN = Actalis Authentication Root CA + Validity + Not Before: Sep 22 11:22:02 2011 GMT + Not After : Sep 22 11:22:02 2030 GMT + Subject: C = IT, L = Milan, O = Actalis S.p.A./03358520967, CN = Actalis Authentication Root CA + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + RSA Public-Key: (4096 bit) + Modulus: + 00:a7:c6:c4:a5:29:a4:2c:ef:e5:18:c5:b0:50:a3: + 6f:51:3b:9f:0a:5a:c9:c2:48:38:0a:c2:1c:a0:18: + 7f:91:b5:87:b9:40:3f:dd:1d:68:1f:08:83:d5:2d: + 1e:88:a0:f8:8f:56:8f:6d:99:02:92:90:16:d5:5f: + 08:6c:89:d7:e1:ac:bc:20:c2:b1:e0:83:51:8a:69: + 4d:00:96:5a:6f:2f:c0:44:7e:a3:0e:e4:91:cd:58: + ee:dc:fb:c7:1e:45:47:dd:27:b9:08:01:9f:a6:21: + 1d:f5:41:2d:2f:4c:fd:28:ad:e0:8a:ad:22:b4:56: + 65:8e:86:54:8f:93:43:29:de:39:46:78:a3:30:23: + ba:cd:f0:7d:13:57:c0:5d:d2:83:6b:48:4c:c4:ab: + 9f:80:5a:5b:3a:bd:c9:a7:22:3f:80:27:33:5b:0e: + b7:8a:0c:5d:07:37:08:cb:6c:d2:7a:47:22:44:35: + c5:cc:cc:2e:8e:dd:2a:ed:b7:7d:66:0d:5f:61:51: + 22:55:1b:e3:46:e3:e3:3d:d0:35:62:9a:db:af:14: + c8:5b:a1:cc:89:1b:e1:30:26:fc:a0:9b:1f:81:a7: + 47:1f:04:eb:a3:39:92:06:9f:99:d3:bf:d3:ea:4f: + 50:9c:19:fe:96:87:1e:3c:65:f6:a3:18:24:83:86: + 10:e7:54:3e:a8:3a:76:24:4f:81:21:c5:e3:0f:02: + f8:93:94:47:20:bb:fe:d4:0e:d3:68:b9:dd:c4:7a: + 84:82:e3:53:54:79:dd:db:9c:d2:f2:07:9b:2e:b6: + bc:3e:ed:85:6d:ef:25:11:f2:97:1a:42:61:f7:4a: + 97:e8:8b:b1:10:07:fa:65:81:b2:a2:39:cf:f7:3c: + ff:18:fb:c6:f1:5a:8b:59:e2:02:ac:7b:92:d0:4e: + 14:4f:59:45:f6:0c:5e:28:5f:b0:e8:3f:45:cf:cf: + af:9b:6f:fb:84:d3:77:5a:95:6f:ac:94:84:9e:ee: + bc:c0:4a:8f:4a:93:f8:44:21:e2:31:45:61:50:4e: + 10:d8:e3:35:7c:4c:19:b4:de:05:bf:a3:06:9f:c8: + b5:cd:e4:1f:d7:17:06:0d:7a:95:74:55:0d:68:1a: + fc:10:1b:62:64:9d:6d:e0:95:a0:c3:94:07:57:0d: + 14:e6:bd:05:fb:b8:9f:e6:df:8b:e2:c6:e7:7e:96: + f6:53:c5:80:34:50:28:58:f0:12:50:71:17:30:ba: + e6:78:63:bc:f4:b2:ad:9b:2b:b2:fe:e1:39:8c:5e: + ba:0b:20:94:de:7b:83:b8:ff:e3:56:8d:b7:11:e9: + 3b:8c:f2:b1:c1:5d:9d:a4:0b:4c:2b:d9:b2:18:f5: + b5:9f:4b + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Subject Key Identifier: + 52:D8:88:3A:C8:9F:78:66:ED:89:F3:7B:38:70:94:C9:02:02:36:D0 + X509v3 Basic Constraints: critical + CA:TRUE + X509v3 Authority Key Identifier: + keyid:52:D8:88:3A:C8:9F:78:66:ED:89:F3:7B:38:70:94:C9:02:02:36:D0 + + X509v3 Key Usage: critical + Certificate Sign, CRL Sign + Signature Algorithm: sha256WithRSAEncryption + 0b:7b:72:87:c0:60:a6:49:4c:88:58:e6:1d:88:f7:14:64:48: + a6:d8:58:0a:0e:4f:13:35:df:35:1d:d4:ed:06:31:c8:81:3e: + 6a:d5:dd:3b:1a:32:ee:90:3d:11:d2:2e:f4:8e:c3:63:2e:23: + 66:b0:67:be:6f:b6:c0:13:39:60:aa:a2:34:25:93:75:52:de: + a7:9d:ad:0e:87:89:52:71:6a:16:3c:19:1d:83:f8:9a:29:65: + be:f4:3f:9a:d9:f0:f3:5a:87:21:71:80:4d:cb:e0:38:9b:3f: + bb:fa:e0:30:4d:cf:86:d3:65:10:19:18:d1:97:02:b1:2b:72: + 42:68:ac:a0:bd:4e:5a:da:18:bf:6b:98:81:d0:fd:9a:be:5e: + 15:48:cd:11:15:b9:c0:29:5c:b4:e8:88:f7:3e:36:ae:b7:62: + fd:1e:62:de:70:78:10:1c:48:5b:da:bc:a4:38:ba:67:ed:55: + 3e:5e:57:df:d4:03:40:4c:81:a4:d2:4f:63:a7:09:42:09:14: + fc:00:a9:c2:80:73:4f:2e:c0:40:d9:11:7b:48:ea:7a:02:c0: + d3:eb:28:01:26:58:74:c1:c0:73:22:6d:93:95:fd:39:7d:bb: + 2a:e3:f6:82:e3:2c:97:5f:4e:1f:91:94:fa:fe:2c:a3:d8:76: + 1a:b8:4d:b2:38:4f:9b:fa:1d:48:60:79:26:e2:f3:fd:a9:d0: + 9a:e8:70:8f:49:7a:d6:e5:bd:0a:0e:db:2d:f3:8d:bf:eb:e3: + a4:7d:cb:c7:95:71:e8:da:a3:7c:c5:c2:f8:74:92:04:1b:86: + ac:a4:22:53:40:b6:ac:fe:4c:76:cf:fb:94:32:c0:35:9f:76: + 3f:6e:e5:90:6e:a0:a6:26:a2:b8:2c:be:d1:2b:85:fd:a7:68: + c8:ba:01:2b:b1:6c:74:1d:b8:73:95:e7:ee:b7:c7:25:f0:00: + 4c:00:b2:7e:b6:0b:8b:1c:f3:c0:50:9e:25:b9:e0:08:de:36: + 66:ff:37:a5:d1:bb:54:64:2c:c9:27:b5:4b:92:7e:65:ff:d3: + 2d:e1:b9:4e:bc:7f:a4:41:21:90:41:77:a6:39:1f:ea:9e:e3: + 9f:d0:66:6f:05:ec:aa:76:7e:bf:6b:16:a0:eb:b5:c7:fc:92: + 54:2f:2b:11:27:25:37:78:4c:51:6a:b0:f3:cc:58:5d:14:f1: + 6a:48:15:ff:c2:07:b6:b1:8d:0f:8e:5c:50:46:b3:3d:bf:01: + 98:4f:b2:59:54:47:3e:34:7b:78:6d:56:93:2e:73:ea:66:28: + 78:cd:1d:14:bf:a0:8f:2f:2e:b8:2e:8e:f2:14:8a:cc:e9:b5: + 7c:fb:6c:9d:0c:a5:e1:96 +SHA1 Fingerprint=F3:73:B3:87:06:5A:28:84:8A:F2:F3:4A:CE:19:2B:DD:C7:8E:9C:AC +-----BEGIN CERTIFICATE----- +MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UE +BhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8w +MzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290 +IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDkyMjExMjIwMlowazELMAkGA1UEBhMC +SVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1 +ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENB +MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNv +UTufClrJwkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX +4ay8IMKx4INRimlNAJZaby/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9 +KK3giq0itFZljoZUj5NDKd45RnijMCO6zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/ +gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1fYVEiVRvjRuPjPdA1Yprb +rxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2oxgkg4YQ +51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2F +be8lEfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxe +KF+w6D9Fz8+vm2/7hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4F +v6MGn8i1zeQf1xcGDXqVdFUNaBr8EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbn +fpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5jF66CyCU3nuDuP/jVo23Eek7 +jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLYiDrIn3hm7Ynz +ezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt +ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAL +e3KHwGCmSUyIWOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70 +jsNjLiNmsGe+b7bAEzlgqqI0JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDz +WochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKxK3JCaKygvU5a2hi/a5iB0P2avl4V +SM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+Xlff1ANATIGk0k9j +pwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC4yyX +X04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+Ok +fcvHlXHo2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7R +K4X9p2jIugErsWx0Hbhzlefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btU +ZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXemOR/qnuOf0GZvBeyqdn6/axag67XH/JJU +LysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9vwGYT7JZVEc+NHt4bVaT +LnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg== +-----END CERTIFICATE----- Copied: stable/11/secure/caroot/trusted/AddTrust_External_Root.pem (from r353095, head/secure/caroot/trusted/AddTrust_External_Root.pem) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/secure/caroot/trusted/AddTrust_External_Root.pem Mon Apr 27 21:41:00 2020 (r360395, copy of r353095, head/secure/caroot/trusted/AddTrust_External_Root.pem) @@ -0,0 +1,99 @@ +## +## AddTrust External Root +## +## This is a single X.509 certificate for a public Certificate +## Authority (CA). It was automatically extracted from Mozilla's +## root CA list (the file `certdata.txt' in security/nss). +## +## Extracted from nss +## with $FreeBSD: head/secure/caroot/MAca-bundle.pl 352951 2019-10-02 01:27:50Z kevans $ +## +## @generated +## +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 1 (0x1) + Signature Algorithm: sha1WithRSAEncryption + Issuer: C = SE, O = AddTrust AB, OU = AddTrust External TTP Network, CN = AddTrust External CA Root + Validity + Not Before: May 30 10:48:38 2000 GMT + Not After : May 30 10:48:38 2020 GMT + Subject: C = SE, O = AddTrust AB, OU = AddTrust External TTP Network, CN = AddTrust External CA Root + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + RSA Public-Key: (2048 bit) + Modulus: + 00:b7:f7:1a:33:e6:f2:00:04:2d:39:e0:4e:5b:ed: + 1f:bc:6c:0f:cd:b5:fa:23:b6:ce:de:9b:11:33:97: + a4:29:4c:7d:93:9f:bd:4a:bc:93:ed:03:1a:e3:8f: + cf:e5:6d:50:5a:d6:97:29:94:5a:80:b0:49:7a:db: + 2e:95:fd:b8:ca:bf:37:38:2d:1e:3e:91:41:ad:70: + 56:c7:f0:4f:3f:e8:32:9e:74:ca:c8:90:54:e9:c6: + 5f:0f:78:9d:9a:40:3c:0e:ac:61:aa:5e:14:8f:9e: + 87:a1:6a:50:dc:d7:9a:4e:af:05:b3:a6:71:94:9c: + 71:b3:50:60:0a:c7:13:9d:38:07:86:02:a8:e9:a8: + 69:26:18:90:ab:4c:b0:4f:23:ab:3a:4f:84:d8:df: + ce:9f:e1:69:6f:bb:d7:42:d7:6b:44:e4:c7:ad:ee: + 6d:41:5f:72:5a:71:08:37:b3:79:65:a4:59:a0:94: + 37:f7:00:2f:0d:c2:92:72:da:d0:38:72:db:14:a8: + 45:c4:5d:2a:7d:b7:b4:d6:c4:ee:ac:cd:13:44:b7: + c9:2b:dd:43:00:25:fa:61:b9:69:6a:58:23:11:b7: + a7:33:8f:56:75:59:f5:cd:29:d7:46:b7:0a:2b:65: + b6:d3:42:6f:15:b2:b8:7b:fb:ef:e9:5d:53:d5:34: + 5a:27 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Subject Key Identifier: + AD:BD:98:7A:34:B4:26:F7:FA:C4:26:54:EF:03:BD:E0:24:CB:54:1A + X509v3 Key Usage: + Certificate Sign, CRL Sign + X509v3 Basic Constraints: critical + CA:TRUE + X509v3 Authority Key Identifier: + keyid:AD:BD:98:7A:34:B4:26:F7:FA:C4:26:54:EF:03:BD:E0:24:CB:54:1A + DirName:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root + serial:01 + + Signature Algorithm: sha1WithRSAEncryption + b0:9b:e0:85:25:c2:d6:23:e2:0f:96:06:92:9d:41:98:9c:d9: + 84:79:81:d9:1e:5b:14:07:23:36:65:8f:b0:d8:77:bb:ac:41: + 6c:47:60:83:51:b0:f9:32:3d:e7:fc:f6:26:13:c7:80:16:a5: + bf:5a:fc:87:cf:78:79:89:21:9a:e2:4c:07:0a:86:35:bc:f2: + de:51:c4:d2:96:b7:dc:7e:4e:ee:70:fd:1c:39:eb:0c:02:51: + 14:2d:8e:bd:16:e0:c1:df:46:75:e7:24:ad:ec:f4:42:b4:85: + 93:70:10:67:ba:9d:06:35:4a:18:d3:2b:7a:cc:51:42:a1:7a: + 63:d1:e6:bb:a1:c5:2b:c2:36:be:13:0d:e6:bd:63:7e:79:7b: + a7:09:0d:40:ab:6a:dd:8f:8a:c3:f6:f6:8c:1a:42:05:51:d4: + 45:f5:9f:a7:62:21:68:15:20:43:3c:99:e7:7c:bd:24:d8:a9: + 91:17:73:88:3f:56:1b:31:38:18:b4:71:0f:9a:cd:c8:0e:9e: + 8e:2e:1b:e1:8c:98:83:cb:1f:31:f1:44:4c:c6:04:73:49:76: + 60:0f:c7:f8:bd:17:80:6b:2e:e9:cc:4c:0e:5a:9a:79:0f:20: + 0a:2e:d5:9e:63:26:1e:55:92:94:d8:82:17:5a:7b:d0:bc:c7: + 8f:4e:86:04 +SHA1 Fingerprint=02:FA:F3:E2:91:43:54:68:60:78:57:69:4D:F5:E4:5B:68:85:18:68 +-----BEGIN CERTIFICATE----- +MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU +MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs +IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290 +MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux +FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h +bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v +dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt +H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9 +uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX +mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX +a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN +E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0 +WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD +VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0 +Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU +cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx +IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN +AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH +YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5 +6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC +Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX +c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a +mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ= +-----END CERTIFICATE----- Copied: stable/11/secure/caroot/trusted/AddTrust_Low-Value_Services_Root.pem (from r353095, head/secure/caroot/trusted/AddTrust_Low-Value_Services_Root.pem) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/secure/caroot/trusted/AddTrust_Low-Value_Services_Root.pem Mon Apr 27 21:41:00 2020 (r360395, copy of r353095, head/secure/caroot/trusted/AddTrust_Low-Value_Services_Root.pem) @@ -0,0 +1,98 @@ +## +## AddTrust Low-Value Services Root +## +## This is a single X.509 certificate for a public Certificate +## Authority (CA). It was automatically extracted from Mozilla's +## root CA list (the file `certdata.txt' in security/nss). +## +## Extracted from nss +## with $FreeBSD: head/secure/caroot/MAca-bundle.pl 352951 2019-10-02 01:27:50Z kevans $ +## +## @generated +## +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 1 (0x1) + Signature Algorithm: sha1WithRSAEncryption + Issuer: C = SE, O = AddTrust AB, OU = AddTrust TTP Network, CN = AddTrust Class 1 CA Root + Validity + Not Before: May 30 10:38:31 2000 GMT + Not After : May 30 10:38:31 2020 GMT + Subject: C = SE, O = AddTrust AB, OU = AddTrust TTP Network, CN = AddTrust Class 1 CA Root + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + RSA Public-Key: (2048 bit) + Modulus: + 00:96:96:d4:21:49:60:e2:6b:e8:41:07:0c:de:c4: + e0:dc:13:23:cd:c1:35:c7:fb:d6:4e:11:0a:67:5e: + f5:06:5b:6b:a5:08:3b:5b:29:16:3a:e7:87:b2:34: + 06:c5:bc:05:a5:03:7c:82:cb:29:10:ae:e1:88:81: + bd:d6:9e:d3:fe:2d:56:c1:15:ce:e3:26:9d:15:2e: + 10:fb:06:8f:30:04:de:a7:b4:63:b4:ff:b1:9c:ae: + 3c:af:77:b6:56:c5:b5:ab:a2:e9:69:3a:3d:0e:33: + 79:32:3f:70:82:92:99:61:6d:8d:30:08:8f:71:3f: + a6:48:57:19:f8:25:dc:4b:66:5c:a5:74:8f:98:ae: + c8:f9:c0:06:22:e7:ac:73:df:a5:2e:fb:52:dc:b1: + 15:65:20:fa:35:66:69:de:df:2c:f1:6e:bc:30:db: + 2c:24:12:db:eb:35:35:68:90:cb:00:b0:97:21:3d: + 74:21:23:65:34:2b:bb:78:59:a3:d6:e1:76:39:9a: + a4:49:8e:8c:74:af:6e:a4:9a:a3:d9:9b:d2:38:5c: + 9b:a2:18:cc:75:23:84:be:eb:e2:4d:33:71:8e:1a: + f0:c2:f8:c7:1d:a2:ad:03:97:2c:f8:cf:25:c6:f6: + b8:24:31:b1:63:5d:92:7f:63:f0:25:c9:53:2e:1f: + bf:4d + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Subject Key Identifier: + 95:B1:B4:F0:94:B6:BD:C7:DA:D1:11:09:21:BE:C1:AF:49:FD:10:7B + X509v3 Key Usage: + Certificate Sign, CRL Sign + X509v3 Basic Constraints: critical + CA:TRUE + X509v3 Authority Key Identifier: + keyid:95:B1:B4:F0:94:B6:BD:C7:DA:D1:11:09:21:BE:C1:AF:49:FD:10:7B + DirName:/C=SE/O=AddTrust AB/OU=AddTrust TTP Network/CN=AddTrust Class 1 CA Root + serial:01 + + Signature Algorithm: sha1WithRSAEncryption + 2c:6d:64:1b:1f:cd:0d:dd:b9:01:fa:96:63:34:32:48:47:99: + ae:97:ed:fd:72:16:a6:73:47:5a:f4:eb:dd:e9:f5:d6:fb:45: + cc:29:89:44:5d:bf:46:39:3d:e8:ee:bc:4d:54:86:1e:1d:6c: + e3:17:27:43:e1:89:56:2b:a9:6f:72:4e:49:33:e3:72:7c:2a: + 23:9a:bc:3e:ff:28:2a:ed:a3:ff:1c:23:ba:43:57:09:67:4d: + 4b:62:06:2d:f8:ff:6c:9d:60:1e:d8:1c:4b:7d:b5:31:2f:d9: + d0:7c:5d:f8:de:6b:83:18:78:37:57:2f:e8:33:07:67:df:1e: + c7:6b:2a:95:76:ae:8f:57:a3:f0:f4:52:b4:a9:53:08:cf:e0: + 4f:d3:7a:53:8b:fd:bb:1c:56:36:f2:fe:b2:b6:e5:76:bb:d5: + 22:65:a7:3f:fe:d1:66:ad:0b:bc:6b:99:86:ef:3f:7d:f3:18: + 32:ca:7b:c6:e3:ab:64:46:95:f8:26:69:d9:55:83:7b:2c:96: + 07:ff:59:2c:44:a3:c6:e5:e9:a9:dc:a1:63:80:5a:21:5e:21: + cf:53:54:f0:ba:6f:89:db:a8:aa:95:cf:8b:e3:71:cc:1e:1b: + 20:44:08:c0:7a:b6:40:fd:c4:e4:35:e1:1d:16:1c:d0:bc:2b: + 8e:d6:71:d9 +SHA1 Fingerprint=CC:AB:0E:A0:4C:23:01:D6:69:7B:DD:37:9F:CD:12:EB:24:E3:94:9D +-----BEGIN CERTIFICATE----- +MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEU +MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3 +b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMw +MTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML +QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYD +VQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUA +A4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ul +CDtbKRY654eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6n +tGO0/7Gcrjyvd7ZWxbWroulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyl +dI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1Zmne3yzxbrww2ywkEtvrNTVokMsAsJch +PXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJuiGMx1I4S+6+JNM3GOGvDC ++Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8wHQYDVR0O +BBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8E +BTADAQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBl +MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFk +ZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENB +IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxtZBsfzQ3duQH6lmM0MkhHma6X +7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0PhiVYrqW9yTkkz +43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY +eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJl +pz/+0WatC7xrmYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOA +WiFeIc9TVPC6b4nbqKqVz4vjccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk= +-----END CERTIFICATE----- Copied: stable/11/secure/caroot/trusted/AffirmTrust_Commercial.pem (from r353095, head/secure/caroot/trusted/AffirmTrust_Commercial.pem) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/secure/caroot/trusted/AffirmTrust_Commercial.pem Mon Apr 27 21:41:00 2020 (r360395, copy of r353095, head/secure/caroot/trusted/AffirmTrust_Commercial.pem) @@ -0,0 +1,89 @@ +## +## AffirmTrust Commercial +## +## This is a single X.509 certificate for a public Certificate +## Authority (CA). It was automatically extracted from Mozilla's +## root CA list (the file `certdata.txt' in security/nss). +## +## Extracted from nss +## with $FreeBSD: head/secure/caroot/MAca-bundle.pl 352951 2019-10-02 01:27:50Z kevans $ +## +## @generated +## +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 8608355977964138876 (0x7777062726a9b17c) + Signature Algorithm: sha256WithRSAEncryption + Issuer: C = US, O = AffirmTrust, CN = AffirmTrust Commercial + Validity + Not Before: Jan 29 14:06:06 2010 GMT + Not After : Dec 31 14:06:06 2030 GMT + Subject: C = US, O = AffirmTrust, CN = AffirmTrust Commercial + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + RSA Public-Key: (2048 bit) + Modulus: + 00:f6:1b:4f:67:07:2b:a1:15:f5:06:22:cb:1f:01: + b2:e3:73:45:06:44:49:2c:bb:49:25:14:d6:ce:c3: + b7:ab:2c:4f:c6:41:32:94:57:fa:12:a7:5b:0e:e2: + 8f:1f:1e:86:19:a7:aa:b5:2d:b9:5f:0d:8a:c2:af: + 85:35:79:32:2d:bb:1c:62:37:f2:b1:5b:4a:3d:ca: + cd:71:5f:e9:42:be:94:e8:c8:de:f9:22:48:64:c6: + e5:ab:c6:2b:6d:ad:05:f0:fa:d5:0b:cf:9a:e5:f0: + 50:a4:8b:3b:47:a5:23:5b:7a:7a:f8:33:3f:b8:ef: + 99:97:e3:20:c1:d6:28:89:cf:94:fb:b9:45:ed:e3: + 40:17:11:d4:74:f0:0b:31:e2:2b:26:6a:9b:4c:57: + ae:ac:20:3e:ba:45:7a:05:f3:bd:9b:69:15:ae:7d: + 4e:20:63:c4:35:76:3a:07:02:c9:37:fd:c7:47:ee: + e8:f1:76:1d:73:15:f2:97:a4:b5:c8:7a:79:d9:42: + aa:2b:7f:5c:fe:ce:26:4f:a3:66:81:35:af:44:ba: + 54:1e:1c:30:32:65:9d:e6:3c:93:5e:50:4e:7a:e3: + 3a:d4:6e:cc:1a:fb:f9:d2:37:ae:24:2a:ab:57:03: + 22:28:0d:49:75:7f:b7:28:da:75:bf:8e:e3:dc:0e: + 79:31 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Subject Key Identifier: + 9D:93:C6:53:8B:5E:CA:AF:3F:9F:1E:0F:E5:99:95:BC:24:F6:94:8F + X509v3 Basic Constraints: critical + CA:TRUE + X509v3 Key Usage: critical + Certificate Sign, CRL Sign + Signature Algorithm: sha256WithRSAEncryption + 58:ac:f4:04:0e:cd:c0:0d:ff:0a:fd:d4:ba:16:5f:29:bd:7b: + 68:99:58:49:d2:b4:1d:37:4d:7f:27:7d:46:06:5d:43:c6:86: + 2e:3e:73:b2:26:7d:4f:93:a9:b6:c4:2a:9a:ab:21:97:14:b1: + de:8c:d3:ab:89:15:d8:6b:24:d4:f1:16:ae:d8:a4:5c:d4:7f: + 51:8e:ed:18:01:b1:93:63:bd:bc:f8:61:80:9a:9e:b1:ce:42: + 70:e2:a9:7d:06:25:7d:27:a1:fe:6f:ec:b3:1e:24:da:e3:4b: + 55:1a:00:3b:35:b4:3b:d9:d7:5d:30:fd:81:13:89:f2:c2:06: + 2b:ed:67:c4:8e:c9:43:b2:5c:6b:15:89:02:bc:62:fc:4e:f2: + b5:33:aa:b2:6f:d3:0a:a2:50:e3:f6:3b:e8:2e:44:c2:db:66: + 38:a9:33:56:48:f1:6d:1b:33:8d:0d:8c:3f:60:37:9d:d3:ca: + 6d:7e:34:7e:0d:9f:72:76:8b:1b:9f:72:fd:52:35:41:45:02: + 96:2f:1c:b2:9a:73:49:21:b1:49:47:45:47:b4:ef:6a:34:11: + c9:4d:9a:cc:59:b7:d6:02:9e:5a:4e:65:b5:94:ae:1b:df:29: + b0:16:f1:bf:00:9e:07:3a:17:64:b5:04:b5:23:21:99:0a:95: + 3b:97:7c:ef +SHA1 Fingerprint=F9:B5:B6:32:45:5F:9C:BE:EC:57:5F:80:DC:E9:6E:2C:C7:B2:78:B7 +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UE +BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz +dCBDb21tZXJjaWFsMB4XDTEwMDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDEL +MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp +cm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6EqdbDuKP +Hx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yr +ba0F8PrVC8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPAL +MeIrJmqbTFeurCA+ukV6BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1 +yHp52UKqK39c/s4mT6NmgTWvRLpUHhwwMmWd5jyTXlBOeuM61G7MGvv50jeuJCqr +VwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNVHQ4EFgQUnZPGU4teyq8/ +nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ +KoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYG +XUPGhi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNj +vbz4YYCanrHOQnDiqX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivt +Z8SOyUOyXGsViQK8YvxO8rUzqrJv0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9g +N53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0khsUlHRUe072o0EclNmsxZt9YC +nlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8= +-----END CERTIFICATE----- Copied: stable/11/secure/caroot/trusted/AffirmTrust_Networking.pem (from r353095, head/secure/caroot/trusted/AffirmTrust_Networking.pem) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/secure/caroot/trusted/AffirmTrust_Networking.pem Mon Apr 27 21:41:00 2020 (r360395, copy of r353095, head/secure/caroot/trusted/AffirmTrust_Networking.pem) @@ -0,0 +1,89 @@ +## +## AffirmTrust Networking +## +## This is a single X.509 certificate for a public Certificate +## Authority (CA). It was automatically extracted from Mozilla's +## root CA list (the file `certdata.txt' in security/nss). +## +## Extracted from nss +## with $FreeBSD: head/secure/caroot/MAca-bundle.pl 352951 2019-10-02 01:27:50Z kevans $ +## +## @generated +## +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 8957382827206547757 (0x7c4f04391cd4992d) + Signature Algorithm: sha1WithRSAEncryption + Issuer: C = US, O = AffirmTrust, CN = AffirmTrust Networking + Validity + Not Before: Jan 29 14:08:24 2010 GMT + Not After : Dec 31 14:08:24 2030 GMT + Subject: C = US, O = AffirmTrust, CN = AffirmTrust Networking + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + RSA Public-Key: (2048 bit) + Modulus: + 00:b4:84:cc:33:17:2e:6b:94:6c:6b:61:52:a0:eb: + a3:cf:79:94:4c:e5:94:80:99:cb:55:64:44:65:8f: + 67:64:e2:06:e3:5c:37:49:f6:2f:9b:84:84:1e:2d: + f2:60:9d:30:4e:cc:84:85:e2:2c:cf:1e:9e:fe:36: + ab:33:77:35:44:d8:35:96:1a:3d:36:e8:7a:0e:d8: + d5:47:a1:6a:69:8b:d9:fc:bb:3a:ae:79:5a:d5:f4: + d6:71:bb:9a:90:23:6b:9a:b7:88:74:87:0c:1e:5f: + b9:9e:2d:fa:ab:53:2b:dc:bb:76:3e:93:4c:08:08: + 8c:1e:a2:23:1c:d4:6a:ad:22:ba:99:01:2e:6d:65: + cb:be:24:66:55:24:4b:40:44:b1:1b:d7:e1:c2:85: + c0:de:10:3f:3d:ed:b8:fc:f1:f1:23:53:dc:bf:65: + 97:6f:d9:f9:40:71:8d:7d:bd:95:d4:ce:be:a0:5e: + 27:23:de:fd:a6:d0:26:0e:00:29:eb:3c:46:f0:3d: + 60:bf:3f:50:d2:dc:26:41:51:9e:14:37:42:04:a3: + 70:57:a8:1b:87:ed:2d:fa:7b:ee:8c:0a:e3:a9:66: + 89:19:cb:41:f9:dd:44:36:61:cf:e2:77:46:c8:7d: + f6:f4:92:81:36:fd:db:34:f1:72:7e:f3:0c:16:bd: + b4:15 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Subject Key Identifier: + 07:1F:D2:E7:9C:DA:C2:6E:A2:40:B4:B0:7A:50:10:50:74:C4:C8:BD + X509v3 Basic Constraints: critical + CA:TRUE + X509v3 Key Usage: critical + Certificate Sign, CRL Sign + Signature Algorithm: sha1WithRSAEncryption + 89:57:b2:16:7a:a8:c2:fd:d6:d9:9b:9b:34:c2:9c:b4:32:14: + 4d:a7:a4:df:ec:be:a7:be:f8:43:db:91:37:ce:b4:32:2e:50: + 55:1a:35:4e:76:43:71:20:ef:93:77:4e:15:70:2e:87:c3:c1: + 1d:6d:dc:cb:b5:27:d4:2c:56:d1:52:53:3a:44:d2:73:c8:c4: + 1b:05:65:5a:62:92:9c:ee:41:8d:31:db:e7:34:ea:59:21:d5: + 01:7a:d7:64:b8:64:39:cd:c9:ed:af:ed:4b:03:48:a7:a0:99: + 01:80:dc:65:a3:36:ae:65:59:48:4f:82:4b:c8:65:f1:57:1d: + e5:59:2e:0a:3f:6c:d8:d1:f5:e5:09:b4:6c:54:00:0a:e0:15: + 4d:87:75:6d:b7:58:96:5a:dd:6d:d2:00:a0:f4:9b:48:be:c3: + 37:a4:ba:36:e0:7c:87:85:97:1a:15:a2:de:2e:a2:5b:bd:af: + 18:f9:90:50:cd:70:59:f8:27:67:47:cb:c7:a0:07:3a:7d:d1: + 2c:5d:6c:19:3a:66:b5:7d:fd:91:6f:82:b1:be:08:93:db:14: + 47:f1:a2:37:c7:45:9e:3c:c7:77:af:64:a8:93:df:f6:69:83: + 82:60:f2:49:42:34:ed:5a:00:54:85:1c:16:36:92:0c:5c:fa: + a6:ad:bf:db +SHA1 Fingerprint=29:36:21:02:8B:20:ED:02:F5:66:C5:32:D1:D6:ED:90:9F:45:00:2F +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UE +BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz +dCBOZXR3b3JraW5nMB4XDTEwMDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDEL +MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp +cm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SEHi3y +YJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbua +kCNrmreIdIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRL +QESxG9fhwoXA3hA/Pe24/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp +6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gbh+0t+nvujArjqWaJGctB+d1ENmHP4ndG +yH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNVHQ4EFgQUBx/S55zawm6i +QLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ +KoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfO +tDIuUFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzu +QY0x2+c06lkh1QF612S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZ +Lgo/bNjR9eUJtGxUAArgFU2HdW23WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4u +olu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9/ZFvgrG+CJPbFEfxojfHRZ48 +x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s= +-----END CERTIFICATE----- Copied: stable/11/secure/caroot/trusted/AffirmTrust_Premium.pem (from r353095, head/secure/caroot/trusted/AffirmTrust_Premium.pem) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/secure/caroot/trusted/AffirmTrust_Premium.pem Mon Apr 27 21:41:00 2020 (r360395, copy of r353095, head/secure/caroot/trusted/AffirmTrust_Premium.pem) @@ -0,0 +1,131 @@ +## +## AffirmTrust Premium +## +## This is a single X.509 certificate for a public Certificate +## Authority (CA). It was automatically extracted from Mozilla's +## root CA list (the file `certdata.txt' in security/nss). +## +## Extracted from nss +## with $FreeBSD: head/secure/caroot/MAca-bundle.pl 352951 2019-10-02 01:27:50Z kevans $ +## +## @generated +## +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 7893706540734352110 (0x6d8c1446b1a60aee) + Signature Algorithm: sha384WithRSAEncryption + Issuer: C = US, O = AffirmTrust, CN = AffirmTrust Premium + Validity + Not Before: Jan 29 14:10:36 2010 GMT + Not After : Dec 31 14:10:36 2040 GMT + Subject: C = US, O = AffirmTrust, CN = AffirmTrust Premium + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + RSA Public-Key: (4096 bit) + Modulus: + 00:c4:12:df:a9:5f:fe:41:dd:dd:f5:9f:8a:e3:f6: + ac:e1:3c:78:9a:bc:d8:f0:7f:7a:a0:33:2a:dc:8d: + 20:5b:ae:2d:6f:e7:93:d9:36:70:6a:68:cf:8e:51: + a3:85:5b:67:04:a0:10:24:6f:5d:28:82:c1:97:57: + d8:48:29:13:b6:e1:be:91:4d:df:85:0c:53:18:9a: + 1e:24:a2:4f:8f:f0:a2:85:0b:cb:f4:29:7f:d2:a4: + 58:ee:26:4d:c9:aa:a8:7b:9a:d9:fa:38:de:44:57: + 15:e5:f8:8c:c8:d9:48:e2:0d:16:27:1d:1e:c8:83: + 85:25:b7:ba:aa:55:41:cc:03:22:4b:2d:91:8d:8b: + e6:89:af:66:c7:e9:ff:2b:e9:3c:ac:da:d2:b3:c3: + e1:68:9c:89:f8:7a:00:56:de:f4:55:95:6c:fb:ba: + 64:dd:62:8b:df:0b:77:32:eb:62:cc:26:9a:9b:bb: + aa:62:83:4c:b4:06:7a:30:c8:29:bf:ed:06:4d:97: + b9:1c:c4:31:2b:d5:5f:bc:53:12:17:9c:99:57:29: + 66:77:61:21:31:07:2e:25:49:9d:18:f2:ee:f3:2b: + 71:8c:b5:ba:39:07:49:77:fc:ef:2e:92:90:05:8d: + 2d:2f:77:7b:ef:43:bf:35:bb:9a:d8:f9:73:a7:2c: + f2:d0:57:ee:28:4e:26:5f:8f:90:68:09:2f:b8:f8: + dc:06:e9:2e:9a:3e:51:a7:d1:22:c4:0a:a7:38:48: + 6c:b3:f9:ff:7d:ab:86:57:e3:ba:d6:85:78:77:ba: + 43:ea:48:7f:f6:d8:be:23:6d:1e:bf:d1:36:6c:58: + 5c:f1:ee:a4:19:54:1a:f5:03:d2:76:e6:e1:8c:bd: + 3c:b3:d3:48:4b:e2:c8:f8:7f:92:a8:76:46:9c:42: + 65:3e:a4:1e:c1:07:03:5a:46:2d:b8:97:f3:b7:d5: + b2:55:21:ef:ba:dc:4c:00:97:fb:14:95:27:33:bf: + e8:43:47:46:d2:08:99:16:60:3b:9a:7e:d2:e6:ed: + 38:ea:ec:01:1e:3c:48:56:49:09:c7:4c:37:00:9e: + 88:0e:c0:73:e1:6f:66:e9:72:47:30:3e:10:e5:0b: + 03:c9:9a:42:00:6c:c5:94:7e:61:c4:8a:df:7f:82: + 1a:0b:59:c4:59:32:77:b3:bc:60:69:56:39:fd:b4: + 06:7b:2c:d6:64:36:d9:bd:48:ed:84:1f:7e:a5:22: + 8f:2a:b8:42:f4:82:b7:d4:53:90:78:4e:2d:1a:fd: + 81:6f:44:d7:3b:01:74:96:42:e0:00:e2:2e:6b:ea: + c5:ee:72:ac:bb:bf:fe:ea:aa:a8:f8:dc:f6:b2:79: + 8a:b6:67 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Subject Key Identifier: + 9D:C0:67:A6:0C:22:D9:26:F5:45:AB:A6:65:52:11:27:D8:45:AC:63 + X509v3 Basic Constraints: critical + CA:TRUE + X509v3 Key Usage: critical + Certificate Sign, CRL Sign + Signature Algorithm: sha384WithRSAEncryption + b3:57:4d:10:62:4e:3a:e4:ac:ea:b8:1c:af:32:23:c8:b3:49: + 5a:51:9c:76:28:8d:79:aa:57:46:17:d5:f5:52:f6:b7:44:e8: + 08:44:bf:18:84:d2:0b:80:cd:c5:12:fd:00:55:05:61:87:41: + dc:b5:24:9e:3c:c4:d8:c8:fb:70:9e:2f:78:96:83:20:36:de: + 7c:0f:69:13:88:a5:75:36:98:08:a6:c6:df:ac:ce:e3:58:d6: + b7:3e:de:ba:f3:eb:34:40:d8:a2:81:f5:78:3f:2f:d5:a5:fc: + d9:a2:d4:5e:04:0e:17:ad:fe:41:f0:e5:b2:72:fa:44:82:33: + 42:e8:2d:58:f7:56:8c:62:3f:ba:42:b0:9c:0c:5c:7e:2e:65: + 26:5c:53:4f:00:b2:78:7e:a1:0d:99:2d:8d:b8:1d:8e:a2:c4: + b0:fd:60:d0:30:a4:8e:c8:04:62:a9:c4:ed:35:de:7a:97:ed: + 0e:38:5e:92:2f:93:70:a5:a9:9c:6f:a7:7d:13:1d:7e:c6:08: + 48:b1:5e:67:eb:51:08:25:e9:e6:25:6b:52:29:91:9c:d2:39: + 73:08:57:de:99:06:b4:5b:9d:10:06:e1:c2:00:a8:b8:1c:4a: + 02:0a:14:d0:c1:41:ca:fb:8c:35:21:7d:82:38:f2:a9:54:91: + 19:35:93:94:6d:6a:3a:c5:b2:d0:bb:89:86:93:e8:9b:c9:0f: + 3a:a7:7a:b8:a1:f0:78:46:fa:fc:37:2f:e5:8a:84:f3:df:fe: + 04:d9:a1:68:a0:2f:24:e2:09:95:06:d5:95:ca:e1:24:96:eb: + 7c:f6:93:05:bb:ed:73:e9:2d:d1:75:39:d7:e7:24:db:d8:4e: + 5f:43:8f:9e:d0:14:39:bf:55:70:48:99:57:31:b4:9c:ee:4a: + 98:03:96:30:1f:60:06:ee:1b:23:fe:81:60:23:1a:47:62:85: + a5:cc:19:34:80:6f:b3:ac:1a:e3:9f:f0:7b:48:ad:d5:01:d9: + 67:b6:a9:72:93:ea:2d:66:b5:b2:b8:e4:3d:3c:b2:ef:4c:8c: + ea:eb:07:bf:ab:35:9a:55:86:bc:18:a6:b5:a8:5e:b4:83:6c: + 6b:69:40:d3:9f:dc:f1:c3:69:6b:b9:e1:6d:09:f4:f1:aa:50: + 76:0a:7a:7d:7a:17:a1:55:96:42:99:31:09:dd:60:11:8d:05: + 30:7e:e6:8e:46:d1:9d:14:da:c7:17:e4:05:96:8c:c4:24:b5: + 1b:cf:14:07:b2:40:f8:a3:9e:41:86:bc:04:d0:6b:96:c8:2a: + 80:34:fd:bf:ef:06:a3:dd:58:c5:85:3d:3e:8f:fe:9e:29:e0: + b6:b8:09:68:19:1c:18:43 +SHA1 Fingerprint=D8:A6:33:2C:E0:03:6F:B1:85:F6:63:4F:7D:6A:06:65:26:32:28:27 +-----BEGIN CERTIFICATE----- +MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UE +BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVz +dCBQcmVtaXVtMB4XDTEwMDEyOTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkG +A1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1U +cnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxBLf +qV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtnBKAQ +JG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ ++jjeRFcV5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrS +s8PhaJyJ+HoAVt70VZVs+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5 +HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmdGPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d7 +70O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5Rp9EixAqnOEhss/n/fauG +V+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NIS+LI+H+S +qHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S +5u046uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4Ia +C1nEWTJ3s7xgaVY5/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TX +OwF0lkLgAOIua+rF7nKsu7/+6qqo+Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYE +FJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByvMiPIs0laUZx2 +KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg +Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B +8OWycvpEgjNC6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQ +MKSOyARiqcTtNd56l+0OOF6SL5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc +0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK+4w1IX2COPKpVJEZNZOUbWo6xbLQ +u4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmVBtWVyuEklut89pMF +u+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFgIxpH +YoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8 +GKa1qF60g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaO +RtGdFNrHF+QFlozEJLUbzxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6e +KeC2uAloGRwYQw== +-----END CERTIFICATE----- Copied: stable/11/secure/caroot/trusted/AffirmTrust_Premium_ECC.pem (from r353095, head/secure/caroot/trusted/AffirmTrust_Premium_ECC.pem) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/secure/caroot/trusted/AffirmTrust_Premium_ECC.pem Mon Apr 27 21:41:00 2020 (r360395, copy of r353095, head/secure/caroot/trusted/AffirmTrust_Premium_ECC.pem) @@ -0,0 +1,63 @@ +## +## AffirmTrust Premium ECC +## +## This is a single X.509 certificate for a public Certificate +## Authority (CA). It was automatically extracted from Mozilla's +## root CA list (the file `certdata.txt' in security/nss). +## +## Extracted from nss +## with $FreeBSD: head/secure/caroot/MAca-bundle.pl 352951 2019-10-02 01:27:50Z kevans $ +## +## @generated +## +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 8401224907861490260 (0x7497258ac73f7a54) + Signature Algorithm: ecdsa-with-SHA384 + Issuer: C = US, O = AffirmTrust, CN = AffirmTrust Premium ECC + Validity + Not Before: Jan 29 14:20:24 2010 GMT + Not After : Dec 31 14:20:24 2040 GMT + Subject: C = US, O = AffirmTrust, CN = AffirmTrust Premium ECC + Subject Public Key Info: + Public Key Algorithm: id-ecPublicKey + Public-Key: (384 bit) + pub: + 04:0d:30:5e:1b:15:9d:03:d0:a1:79:35:b7:3a:3c: + 92:7a:ca:15:1c:cd:62:f3:9c:26:5c:07:3d:e5:54: + fa:a3:d6:cc:12:ea:f4:14:5f:e8:8e:19:ab:2f:2e: + 48:e6:ac:18:43:78:ac:d0:37:c3:bd:b2:cd:2c:e6: *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Mon Apr 27 21:41: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 4D0452C6F9E; Mon, 27 Apr 2020 21:41: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 499yrc0ylKz3Dgx; Mon, 27 Apr 2020 21:41: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 1B80E1949F; Mon, 27 Apr 2020 21:41: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 03RLf4Ge096301; Mon, 27 Apr 2020 21:41:04 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RLf2Xm096292; Mon, 27 Apr 2020 21:41:02 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004272141.03RLf2Xm096292@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 27 Apr 2020 21:41: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: r360395 - in stable: 11/secure/caroot/trusted 12/secure/caroot/trusted X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/secure/caroot/trusted 12/secure/caroot/trusted X-SVN-Commit-Revision: 360395 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, 27 Apr 2020 21:41:04 -0000 Author: kevans Date: Mon Apr 27 21:41:00 2020 New Revision: 360395 URL: https://svnweb.freebsd.org/changeset/base/360395 Log: MFC r353095, r355376: add root bundle r353095: caroot: commit initial bundle Interested users can blacklist any/all of these with certctl(8), examples: - mv /usr/share/certs/trusted/... /usr/share/certs/blacklisted/...; \ certctl rehash - certctl blacklist /usr/share/certs/trusted/*; \ certctl rehash Certs can be easily examined after installation with `certctl list`, and certctl blacklist will accept the hashed filename as output by list or as seen in /etc/ssl/certs r355376: caroot update to latest tip: one (1) addition, none (0) removed Added: - Entrust Root Certification Authority - G4 Relnotes: yes, please Added: stable/12/secure/caroot/trusted/ACCVRAIZ1.pem - copied unchanged from r353095, head/secure/caroot/trusted/ACCVRAIZ1.pem stable/12/secure/caroot/trusted/AC_RAIZ_FNMT-RCM.pem - copied unchanged from r353095, head/secure/caroot/trusted/AC_RAIZ_FNMT-RCM.pem stable/12/secure/caroot/trusted/Actalis_Authentication_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Actalis_Authentication_Root_CA.pem stable/12/secure/caroot/trusted/AddTrust_External_Root.pem - copied unchanged from r353095, head/secure/caroot/trusted/AddTrust_External_Root.pem stable/12/secure/caroot/trusted/AddTrust_Low-Value_Services_Root.pem - copied unchanged from r353095, head/secure/caroot/trusted/AddTrust_Low-Value_Services_Root.pem stable/12/secure/caroot/trusted/AffirmTrust_Commercial.pem - copied unchanged from r353095, head/secure/caroot/trusted/AffirmTrust_Commercial.pem stable/12/secure/caroot/trusted/AffirmTrust_Networking.pem - copied unchanged from r353095, head/secure/caroot/trusted/AffirmTrust_Networking.pem stable/12/secure/caroot/trusted/AffirmTrust_Premium.pem - copied unchanged from r353095, head/secure/caroot/trusted/AffirmTrust_Premium.pem stable/12/secure/caroot/trusted/AffirmTrust_Premium_ECC.pem - copied unchanged from r353095, head/secure/caroot/trusted/AffirmTrust_Premium_ECC.pem stable/12/secure/caroot/trusted/Amazon_Root_CA_1.pem - copied unchanged from r353095, head/secure/caroot/trusted/Amazon_Root_CA_1.pem stable/12/secure/caroot/trusted/Amazon_Root_CA_2.pem - copied unchanged from r353095, head/secure/caroot/trusted/Amazon_Root_CA_2.pem stable/12/secure/caroot/trusted/Amazon_Root_CA_3.pem - copied unchanged from r353095, head/secure/caroot/trusted/Amazon_Root_CA_3.pem stable/12/secure/caroot/trusted/Amazon_Root_CA_4.pem - copied unchanged from r353095, head/secure/caroot/trusted/Amazon_Root_CA_4.pem stable/12/secure/caroot/trusted/Atos_TrustedRoot_2011.pem - copied unchanged from r353095, head/secure/caroot/trusted/Atos_TrustedRoot_2011.pem stable/12/secure/caroot/trusted/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.pem - copied unchanged from r353095, head/secure/caroot/trusted/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.pem stable/12/secure/caroot/trusted/Baltimore_CyberTrust_Root.pem - copied unchanged from r353095, head/secure/caroot/trusted/Baltimore_CyberTrust_Root.pem stable/12/secure/caroot/trusted/Buypass_Class_2_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Buypass_Class_2_Root_CA.pem stable/12/secure/caroot/trusted/Buypass_Class_3_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Buypass_Class_3_Root_CA.pem stable/12/secure/caroot/trusted/CA_Disig_Root_R2.pem - copied unchanged from r353095, head/secure/caroot/trusted/CA_Disig_Root_R2.pem stable/12/secure/caroot/trusted/CFCA_EV_ROOT.pem - copied unchanged from r353095, head/secure/caroot/trusted/CFCA_EV_ROOT.pem stable/12/secure/caroot/trusted/COMODO_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/COMODO_Certification_Authority.pem stable/12/secure/caroot/trusted/COMODO_ECC_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/COMODO_ECC_Certification_Authority.pem stable/12/secure/caroot/trusted/COMODO_RSA_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/COMODO_RSA_Certification_Authority.pem stable/12/secure/caroot/trusted/Camerfirma_Chambers_of_Commerce_Root.pem - copied unchanged from r353095, head/secure/caroot/trusted/Camerfirma_Chambers_of_Commerce_Root.pem stable/12/secure/caroot/trusted/Camerfirma_Global_Chambersign_Root.pem - copied unchanged from r353095, head/secure/caroot/trusted/Camerfirma_Global_Chambersign_Root.pem stable/12/secure/caroot/trusted/Certigna.pem - copied unchanged from r353095, head/secure/caroot/trusted/Certigna.pem stable/12/secure/caroot/trusted/Certigna_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Certigna_Root_CA.pem stable/12/secure/caroot/trusted/Certum_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Certum_Root_CA.pem stable/12/secure/caroot/trusted/Certum_Trusted_Network_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Certum_Trusted_Network_CA.pem stable/12/secure/caroot/trusted/Certum_Trusted_Network_CA_2.pem - copied unchanged from r353095, head/secure/caroot/trusted/Certum_Trusted_Network_CA_2.pem stable/12/secure/caroot/trusted/Chambers_of_Commerce_Root_-_2008.pem - copied unchanged from r353095, head/secure/caroot/trusted/Chambers_of_Commerce_Root_-_2008.pem stable/12/secure/caroot/trusted/Comodo_AAA_Services_root.pem - copied unchanged from r353095, head/secure/caroot/trusted/Comodo_AAA_Services_root.pem stable/12/secure/caroot/trusted/Cybertrust_Global_Root.pem - copied unchanged from r353095, head/secure/caroot/trusted/Cybertrust_Global_Root.pem stable/12/secure/caroot/trusted/D-TRUST_Root_CA_3_2013.pem - copied unchanged from r353095, head/secure/caroot/trusted/D-TRUST_Root_CA_3_2013.pem stable/12/secure/caroot/trusted/D-TRUST_Root_Class_3_CA_2_2009.pem - copied unchanged from r353095, head/secure/caroot/trusted/D-TRUST_Root_Class_3_CA_2_2009.pem stable/12/secure/caroot/trusted/D-TRUST_Root_Class_3_CA_2_EV_2009.pem - copied unchanged from r353095, head/secure/caroot/trusted/D-TRUST_Root_Class_3_CA_2_EV_2009.pem stable/12/secure/caroot/trusted/DST_Root_CA_X3.pem - copied unchanged from r353095, head/secure/caroot/trusted/DST_Root_CA_X3.pem stable/12/secure/caroot/trusted/DigiCert_Assured_ID_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/DigiCert_Assured_ID_Root_CA.pem stable/12/secure/caroot/trusted/DigiCert_Assured_ID_Root_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/DigiCert_Assured_ID_Root_G2.pem stable/12/secure/caroot/trusted/DigiCert_Assured_ID_Root_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/DigiCert_Assured_ID_Root_G3.pem stable/12/secure/caroot/trusted/DigiCert_Global_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/DigiCert_Global_Root_CA.pem stable/12/secure/caroot/trusted/DigiCert_Global_Root_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/DigiCert_Global_Root_G2.pem stable/12/secure/caroot/trusted/DigiCert_Global_Root_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/DigiCert_Global_Root_G3.pem stable/12/secure/caroot/trusted/DigiCert_High_Assurance_EV_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/DigiCert_High_Assurance_EV_Root_CA.pem stable/12/secure/caroot/trusted/DigiCert_Trusted_Root_G4.pem - copied unchanged from r353095, head/secure/caroot/trusted/DigiCert_Trusted_Root_G4.pem stable/12/secure/caroot/trusted/E-Tugra_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/E-Tugra_Certification_Authority.pem stable/12/secure/caroot/trusted/EC-ACC.pem - copied unchanged from r353095, head/secure/caroot/trusted/EC-ACC.pem stable/12/secure/caroot/trusted/EE_Certification_Centre_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/EE_Certification_Centre_Root_CA.pem stable/12/secure/caroot/trusted/Entrust_Root_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/Entrust_Root_Certification_Authority.pem stable/12/secure/caroot/trusted/Entrust_Root_Certification_Authority_-_EC1.pem - copied unchanged from r353095, head/secure/caroot/trusted/Entrust_Root_Certification_Authority_-_EC1.pem stable/12/secure/caroot/trusted/Entrust_Root_Certification_Authority_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/Entrust_Root_Certification_Authority_-_G2.pem stable/12/secure/caroot/trusted/Entrust_Root_Certification_Authority_-_G4.pem - copied unchanged from r355376, head/secure/caroot/trusted/Entrust_Root_Certification_Authority_-_G4.pem stable/12/secure/caroot/trusted/Entrust_net_Premium_2048_Secure_Server_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Entrust_net_Premium_2048_Secure_Server_CA.pem stable/12/secure/caroot/trusted/GDCA_TrustAUTH_R5_ROOT.pem - copied unchanged from r353095, head/secure/caroot/trusted/GDCA_TrustAUTH_R5_ROOT.pem stable/12/secure/caroot/trusted/GTS_Root_R1.pem - copied unchanged from r353095, head/secure/caroot/trusted/GTS_Root_R1.pem stable/12/secure/caroot/trusted/GTS_Root_R2.pem - copied unchanged from r353095, head/secure/caroot/trusted/GTS_Root_R2.pem stable/12/secure/caroot/trusted/GTS_Root_R3.pem - copied unchanged from r353095, head/secure/caroot/trusted/GTS_Root_R3.pem stable/12/secure/caroot/trusted/GTS_Root_R4.pem - copied unchanged from r353095, head/secure/caroot/trusted/GTS_Root_R4.pem stable/12/secure/caroot/trusted/GeoTrust_Global_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/GeoTrust_Global_CA.pem stable/12/secure/caroot/trusted/GeoTrust_Primary_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/GeoTrust_Primary_Certification_Authority.pem stable/12/secure/caroot/trusted/GeoTrust_Primary_Certification_Authority_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/GeoTrust_Primary_Certification_Authority_-_G2.pem stable/12/secure/caroot/trusted/GeoTrust_Primary_Certification_Authority_-_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/GeoTrust_Primary_Certification_Authority_-_G3.pem stable/12/secure/caroot/trusted/GeoTrust_Universal_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/GeoTrust_Universal_CA.pem stable/12/secure/caroot/trusted/GeoTrust_Universal_CA_2.pem - copied unchanged from r353095, head/secure/caroot/trusted/GeoTrust_Universal_CA_2.pem stable/12/secure/caroot/trusted/GlobalSign_ECC_Root_CA_-_R4.pem - copied unchanged from r353095, head/secure/caroot/trusted/GlobalSign_ECC_Root_CA_-_R4.pem stable/12/secure/caroot/trusted/GlobalSign_ECC_Root_CA_-_R5.pem - copied unchanged from r353095, head/secure/caroot/trusted/GlobalSign_ECC_Root_CA_-_R5.pem stable/12/secure/caroot/trusted/GlobalSign_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/GlobalSign_Root_CA.pem stable/12/secure/caroot/trusted/GlobalSign_Root_CA_-_R2.pem - copied unchanged from r353095, head/secure/caroot/trusted/GlobalSign_Root_CA_-_R2.pem stable/12/secure/caroot/trusted/GlobalSign_Root_CA_-_R3.pem - copied unchanged from r353095, head/secure/caroot/trusted/GlobalSign_Root_CA_-_R3.pem stable/12/secure/caroot/trusted/GlobalSign_Root_CA_-_R6.pem - copied unchanged from r353095, head/secure/caroot/trusted/GlobalSign_Root_CA_-_R6.pem stable/12/secure/caroot/trusted/Global_Chambersign_Root_-_2008.pem - copied unchanged from r353095, head/secure/caroot/trusted/Global_Chambersign_Root_-_2008.pem stable/12/secure/caroot/trusted/Go_Daddy_Class_2_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Go_Daddy_Class_2_CA.pem stable/12/secure/caroot/trusted/Go_Daddy_Root_Certificate_Authority_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/Go_Daddy_Root_Certificate_Authority_-_G2.pem stable/12/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.pem - copied unchanged from r353095, head/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.pem stable/12/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_RootCA_2011.pem - copied unchanged from r353095, head/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_RootCA_2011.pem stable/12/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_RootCA_2015.pem - copied unchanged from r353095, head/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_RootCA_2015.pem stable/12/secure/caroot/trusted/Hongkong_Post_Root_CA_1.pem - copied unchanged from r353095, head/secure/caroot/trusted/Hongkong_Post_Root_CA_1.pem stable/12/secure/caroot/trusted/Hongkong_Post_Root_CA_3.pem - copied unchanged from r353095, head/secure/caroot/trusted/Hongkong_Post_Root_CA_3.pem stable/12/secure/caroot/trusted/ISRG_Root_X1.pem - copied unchanged from r353095, head/secure/caroot/trusted/ISRG_Root_X1.pem stable/12/secure/caroot/trusted/IdenTrust_Commercial_Root_CA_1.pem - copied unchanged from r353095, head/secure/caroot/trusted/IdenTrust_Commercial_Root_CA_1.pem stable/12/secure/caroot/trusted/IdenTrust_Public_Sector_Root_CA_1.pem - copied unchanged from r353095, head/secure/caroot/trusted/IdenTrust_Public_Sector_Root_CA_1.pem stable/12/secure/caroot/trusted/Izenpe_com.pem - copied unchanged from r353095, head/secure/caroot/trusted/Izenpe_com.pem stable/12/secure/caroot/trusted/LuxTrust_Global_Root_2.pem - copied unchanged from r353095, head/secure/caroot/trusted/LuxTrust_Global_Root_2.pem stable/12/secure/caroot/trusted/Microsec_e-Szigno_Root_CA_2009.pem - copied unchanged from r353095, head/secure/caroot/trusted/Microsec_e-Szigno_Root_CA_2009.pem stable/12/secure/caroot/trusted/NetLock_Arany__Class_Gold__F__tan__s__tv__ny.pem - copied unchanged from r353095, head/secure/caroot/trusted/NetLock_Arany__Class_Gold__F__tan__s__tv__ny.pem stable/12/secure/caroot/trusted/Network_Solutions_Certificate_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/Network_Solutions_Certificate_Authority.pem stable/12/secure/caroot/trusted/OISTE_WISeKey_Global_Root_GA_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/OISTE_WISeKey_Global_Root_GA_CA.pem stable/12/secure/caroot/trusted/OISTE_WISeKey_Global_Root_GB_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/OISTE_WISeKey_Global_Root_GB_CA.pem stable/12/secure/caroot/trusted/OISTE_WISeKey_Global_Root_GC_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/OISTE_WISeKey_Global_Root_GC_CA.pem stable/12/secure/caroot/trusted/QuoVadis_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/QuoVadis_Root_CA.pem stable/12/secure/caroot/trusted/QuoVadis_Root_CA_1_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/QuoVadis_Root_CA_1_G3.pem stable/12/secure/caroot/trusted/QuoVadis_Root_CA_2.pem - copied unchanged from r353095, head/secure/caroot/trusted/QuoVadis_Root_CA_2.pem stable/12/secure/caroot/trusted/QuoVadis_Root_CA_2_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/QuoVadis_Root_CA_2_G3.pem stable/12/secure/caroot/trusted/QuoVadis_Root_CA_3.pem - copied unchanged from r353095, head/secure/caroot/trusted/QuoVadis_Root_CA_3.pem stable/12/secure/caroot/trusted/QuoVadis_Root_CA_3_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/QuoVadis_Root_CA_3_G3.pem stable/12/secure/caroot/trusted/SSL_com_EV_Root_Certification_Authority_ECC.pem - copied unchanged from r353095, head/secure/caroot/trusted/SSL_com_EV_Root_Certification_Authority_ECC.pem stable/12/secure/caroot/trusted/SSL_com_EV_Root_Certification_Authority_RSA_R2.pem - copied unchanged from r353095, head/secure/caroot/trusted/SSL_com_EV_Root_Certification_Authority_RSA_R2.pem stable/12/secure/caroot/trusted/SSL_com_Root_Certification_Authority_ECC.pem - copied unchanged from r353095, head/secure/caroot/trusted/SSL_com_Root_Certification_Authority_ECC.pem stable/12/secure/caroot/trusted/SSL_com_Root_Certification_Authority_RSA.pem - copied unchanged from r353095, head/secure/caroot/trusted/SSL_com_Root_Certification_Authority_RSA.pem stable/12/secure/caroot/trusted/SZAFIR_ROOT_CA2.pem - copied unchanged from r353095, head/secure/caroot/trusted/SZAFIR_ROOT_CA2.pem stable/12/secure/caroot/trusted/SecureSign_RootCA11.pem - copied unchanged from r353095, head/secure/caroot/trusted/SecureSign_RootCA11.pem stable/12/secure/caroot/trusted/SecureTrust_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/SecureTrust_CA.pem stable/12/secure/caroot/trusted/Secure_Global_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Secure_Global_CA.pem stable/12/secure/caroot/trusted/Security_Communication_RootCA2.pem - copied unchanged from r353095, head/secure/caroot/trusted/Security_Communication_RootCA2.pem stable/12/secure/caroot/trusted/Security_Communication_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Security_Communication_Root_CA.pem stable/12/secure/caroot/trusted/Sonera_Class_2_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Sonera_Class_2_Root_CA.pem stable/12/secure/caroot/trusted/Staat_der_Nederlanden_EV_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Staat_der_Nederlanden_EV_Root_CA.pem stable/12/secure/caroot/trusted/Staat_der_Nederlanden_Root_CA_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/Staat_der_Nederlanden_Root_CA_-_G2.pem stable/12/secure/caroot/trusted/Staat_der_Nederlanden_Root_CA_-_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/Staat_der_Nederlanden_Root_CA_-_G3.pem stable/12/secure/caroot/trusted/Starfield_Class_2_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Starfield_Class_2_CA.pem stable/12/secure/caroot/trusted/Starfield_Root_Certificate_Authority_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/Starfield_Root_Certificate_Authority_-_G2.pem stable/12/secure/caroot/trusted/Starfield_Services_Root_Certificate_Authority_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/Starfield_Services_Root_Certificate_Authority_-_G2.pem stable/12/secure/caroot/trusted/SwissSign_Gold_CA_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/SwissSign_Gold_CA_-_G2.pem stable/12/secure/caroot/trusted/SwissSign_Platinum_CA_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/SwissSign_Platinum_CA_-_G2.pem stable/12/secure/caroot/trusted/SwissSign_Silver_CA_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/SwissSign_Silver_CA_-_G2.pem stable/12/secure/caroot/trusted/Symantec_Class_1_Public_Primary_Certification_Authority_-_G4.pem - copied unchanged from r353095, head/secure/caroot/trusted/Symantec_Class_1_Public_Primary_Certification_Authority_-_G4.pem stable/12/secure/caroot/trusted/Symantec_Class_1_Public_Primary_Certification_Authority_-_G6.pem - copied unchanged from r353095, head/secure/caroot/trusted/Symantec_Class_1_Public_Primary_Certification_Authority_-_G6.pem stable/12/secure/caroot/trusted/Symantec_Class_2_Public_Primary_Certification_Authority_-_G4.pem - copied unchanged from r353095, head/secure/caroot/trusted/Symantec_Class_2_Public_Primary_Certification_Authority_-_G4.pem stable/12/secure/caroot/trusted/Symantec_Class_2_Public_Primary_Certification_Authority_-_G6.pem - copied unchanged from r353095, head/secure/caroot/trusted/Symantec_Class_2_Public_Primary_Certification_Authority_-_G6.pem stable/12/secure/caroot/trusted/T-TeleSec_GlobalRoot_Class_2.pem - copied unchanged from r353095, head/secure/caroot/trusted/T-TeleSec_GlobalRoot_Class_2.pem stable/12/secure/caroot/trusted/T-TeleSec_GlobalRoot_Class_3.pem - copied unchanged from r353095, head/secure/caroot/trusted/T-TeleSec_GlobalRoot_Class_3.pem stable/12/secure/caroot/trusted/TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.pem - copied unchanged from r353095, head/secure/caroot/trusted/TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.pem stable/12/secure/caroot/trusted/TWCA_Global_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/TWCA_Global_Root_CA.pem stable/12/secure/caroot/trusted/TWCA_Root_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/TWCA_Root_Certification_Authority.pem stable/12/secure/caroot/trusted/Taiwan_GRCA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Taiwan_GRCA.pem stable/12/secure/caroot/trusted/TeliaSonera_Root_CA_v1.pem - copied unchanged from r353095, head/secure/caroot/trusted/TeliaSonera_Root_CA_v1.pem stable/12/secure/caroot/trusted/TrustCor_ECA-1.pem - copied unchanged from r353095, head/secure/caroot/trusted/TrustCor_ECA-1.pem stable/12/secure/caroot/trusted/TrustCor_RootCert_CA-1.pem - copied unchanged from r353095, head/secure/caroot/trusted/TrustCor_RootCert_CA-1.pem stable/12/secure/caroot/trusted/TrustCor_RootCert_CA-2.pem - copied unchanged from r353095, head/secure/caroot/trusted/TrustCor_RootCert_CA-2.pem stable/12/secure/caroot/trusted/Trustis_FPS_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Trustis_FPS_Root_CA.pem stable/12/secure/caroot/trusted/UCA_Extended_Validation_Root.pem - copied unchanged from r353095, head/secure/caroot/trusted/UCA_Extended_Validation_Root.pem stable/12/secure/caroot/trusted/UCA_Global_G2_Root.pem - copied unchanged from r353095, head/secure/caroot/trusted/UCA_Global_G2_Root.pem stable/12/secure/caroot/trusted/USERTrust_ECC_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/USERTrust_ECC_Certification_Authority.pem stable/12/secure/caroot/trusted/USERTrust_RSA_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/USERTrust_RSA_Certification_Authority.pem stable/12/secure/caroot/trusted/VeriSign_Class_3_Public_Primary_Certification_Authority_-_G4.pem - copied unchanged from r353095, head/secure/caroot/trusted/VeriSign_Class_3_Public_Primary_Certification_Authority_-_G4.pem stable/12/secure/caroot/trusted/VeriSign_Class_3_Public_Primary_Certification_Authority_-_G5.pem - copied unchanged from r353095, head/secure/caroot/trusted/VeriSign_Class_3_Public_Primary_Certification_Authority_-_G5.pem stable/12/secure/caroot/trusted/VeriSign_Universal_Root_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/VeriSign_Universal_Root_Certification_Authority.pem stable/12/secure/caroot/trusted/Verisign_Class_1_Public_Primary_Certification_Authority_-_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/Verisign_Class_1_Public_Primary_Certification_Authority_-_G3.pem stable/12/secure/caroot/trusted/Verisign_Class_2_Public_Primary_Certification_Authority_-_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/Verisign_Class_2_Public_Primary_Certification_Authority_-_G3.pem stable/12/secure/caroot/trusted/Verisign_Class_3_Public_Primary_Certification_Authority_-_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/Verisign_Class_3_Public_Primary_Certification_Authority_-_G3.pem stable/12/secure/caroot/trusted/XRamp_Global_CA_Root.pem - copied unchanged from r353095, head/secure/caroot/trusted/XRamp_Global_CA_Root.pem stable/12/secure/caroot/trusted/certSIGN_ROOT_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/certSIGN_ROOT_CA.pem stable/12/secure/caroot/trusted/ePKI_Root_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/ePKI_Root_Certification_Authority.pem stable/12/secure/caroot/trusted/emSign_ECC_Root_CA_-_C3.pem - copied unchanged from r353095, head/secure/caroot/trusted/emSign_ECC_Root_CA_-_C3.pem stable/12/secure/caroot/trusted/emSign_ECC_Root_CA_-_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/emSign_ECC_Root_CA_-_G3.pem stable/12/secure/caroot/trusted/emSign_Root_CA_-_C1.pem - copied unchanged from r353095, head/secure/caroot/trusted/emSign_Root_CA_-_C1.pem stable/12/secure/caroot/trusted/emSign_Root_CA_-_G1.pem - copied unchanged from r353095, head/secure/caroot/trusted/emSign_Root_CA_-_G1.pem stable/12/secure/caroot/trusted/thawte_Primary_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/thawte_Primary_Root_CA.pem stable/12/secure/caroot/trusted/thawte_Primary_Root_CA_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/thawte_Primary_Root_CA_-_G2.pem stable/12/secure/caroot/trusted/thawte_Primary_Root_CA_-_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/thawte_Primary_Root_CA_-_G3.pem Modified: Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Added: stable/11/secure/caroot/trusted/ACCVRAIZ1.pem - copied unchanged from r353095, head/secure/caroot/trusted/ACCVRAIZ1.pem stable/11/secure/caroot/trusted/AC_RAIZ_FNMT-RCM.pem - copied unchanged from r353095, head/secure/caroot/trusted/AC_RAIZ_FNMT-RCM.pem stable/11/secure/caroot/trusted/Actalis_Authentication_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Actalis_Authentication_Root_CA.pem stable/11/secure/caroot/trusted/AddTrust_External_Root.pem - copied unchanged from r353095, head/secure/caroot/trusted/AddTrust_External_Root.pem stable/11/secure/caroot/trusted/AddTrust_Low-Value_Services_Root.pem - copied unchanged from r353095, head/secure/caroot/trusted/AddTrust_Low-Value_Services_Root.pem stable/11/secure/caroot/trusted/AffirmTrust_Commercial.pem - copied unchanged from r353095, head/secure/caroot/trusted/AffirmTrust_Commercial.pem stable/11/secure/caroot/trusted/AffirmTrust_Networking.pem - copied unchanged from r353095, head/secure/caroot/trusted/AffirmTrust_Networking.pem stable/11/secure/caroot/trusted/AffirmTrust_Premium.pem - copied unchanged from r353095, head/secure/caroot/trusted/AffirmTrust_Premium.pem stable/11/secure/caroot/trusted/AffirmTrust_Premium_ECC.pem - copied unchanged from r353095, head/secure/caroot/trusted/AffirmTrust_Premium_ECC.pem stable/11/secure/caroot/trusted/Amazon_Root_CA_1.pem - copied unchanged from r353095, head/secure/caroot/trusted/Amazon_Root_CA_1.pem stable/11/secure/caroot/trusted/Amazon_Root_CA_2.pem - copied unchanged from r353095, head/secure/caroot/trusted/Amazon_Root_CA_2.pem stable/11/secure/caroot/trusted/Amazon_Root_CA_3.pem - copied unchanged from r353095, head/secure/caroot/trusted/Amazon_Root_CA_3.pem stable/11/secure/caroot/trusted/Amazon_Root_CA_4.pem - copied unchanged from r353095, head/secure/caroot/trusted/Amazon_Root_CA_4.pem stable/11/secure/caroot/trusted/Atos_TrustedRoot_2011.pem - copied unchanged from r353095, head/secure/caroot/trusted/Atos_TrustedRoot_2011.pem stable/11/secure/caroot/trusted/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.pem - copied unchanged from r353095, head/secure/caroot/trusted/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.pem stable/11/secure/caroot/trusted/Baltimore_CyberTrust_Root.pem - copied unchanged from r353095, head/secure/caroot/trusted/Baltimore_CyberTrust_Root.pem stable/11/secure/caroot/trusted/Buypass_Class_2_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Buypass_Class_2_Root_CA.pem stable/11/secure/caroot/trusted/Buypass_Class_3_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Buypass_Class_3_Root_CA.pem stable/11/secure/caroot/trusted/CA_Disig_Root_R2.pem - copied unchanged from r353095, head/secure/caroot/trusted/CA_Disig_Root_R2.pem stable/11/secure/caroot/trusted/CFCA_EV_ROOT.pem - copied unchanged from r353095, head/secure/caroot/trusted/CFCA_EV_ROOT.pem stable/11/secure/caroot/trusted/COMODO_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/COMODO_Certification_Authority.pem stable/11/secure/caroot/trusted/COMODO_ECC_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/COMODO_ECC_Certification_Authority.pem stable/11/secure/caroot/trusted/COMODO_RSA_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/COMODO_RSA_Certification_Authority.pem stable/11/secure/caroot/trusted/Camerfirma_Chambers_of_Commerce_Root.pem - copied unchanged from r353095, head/secure/caroot/trusted/Camerfirma_Chambers_of_Commerce_Root.pem stable/11/secure/caroot/trusted/Camerfirma_Global_Chambersign_Root.pem - copied unchanged from r353095, head/secure/caroot/trusted/Camerfirma_Global_Chambersign_Root.pem stable/11/secure/caroot/trusted/Certigna.pem - copied unchanged from r353095, head/secure/caroot/trusted/Certigna.pem stable/11/secure/caroot/trusted/Certigna_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Certigna_Root_CA.pem stable/11/secure/caroot/trusted/Certum_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Certum_Root_CA.pem stable/11/secure/caroot/trusted/Certum_Trusted_Network_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Certum_Trusted_Network_CA.pem stable/11/secure/caroot/trusted/Certum_Trusted_Network_CA_2.pem - copied unchanged from r353095, head/secure/caroot/trusted/Certum_Trusted_Network_CA_2.pem stable/11/secure/caroot/trusted/Chambers_of_Commerce_Root_-_2008.pem - copied unchanged from r353095, head/secure/caroot/trusted/Chambers_of_Commerce_Root_-_2008.pem stable/11/secure/caroot/trusted/Comodo_AAA_Services_root.pem - copied unchanged from r353095, head/secure/caroot/trusted/Comodo_AAA_Services_root.pem stable/11/secure/caroot/trusted/Cybertrust_Global_Root.pem - copied unchanged from r353095, head/secure/caroot/trusted/Cybertrust_Global_Root.pem stable/11/secure/caroot/trusted/D-TRUST_Root_CA_3_2013.pem - copied unchanged from r353095, head/secure/caroot/trusted/D-TRUST_Root_CA_3_2013.pem stable/11/secure/caroot/trusted/D-TRUST_Root_Class_3_CA_2_2009.pem - copied unchanged from r353095, head/secure/caroot/trusted/D-TRUST_Root_Class_3_CA_2_2009.pem stable/11/secure/caroot/trusted/D-TRUST_Root_Class_3_CA_2_EV_2009.pem - copied unchanged from r353095, head/secure/caroot/trusted/D-TRUST_Root_Class_3_CA_2_EV_2009.pem stable/11/secure/caroot/trusted/DST_Root_CA_X3.pem - copied unchanged from r353095, head/secure/caroot/trusted/DST_Root_CA_X3.pem stable/11/secure/caroot/trusted/DigiCert_Assured_ID_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/DigiCert_Assured_ID_Root_CA.pem stable/11/secure/caroot/trusted/DigiCert_Assured_ID_Root_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/DigiCert_Assured_ID_Root_G2.pem stable/11/secure/caroot/trusted/DigiCert_Assured_ID_Root_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/DigiCert_Assured_ID_Root_G3.pem stable/11/secure/caroot/trusted/DigiCert_Global_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/DigiCert_Global_Root_CA.pem stable/11/secure/caroot/trusted/DigiCert_Global_Root_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/DigiCert_Global_Root_G2.pem stable/11/secure/caroot/trusted/DigiCert_Global_Root_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/DigiCert_Global_Root_G3.pem stable/11/secure/caroot/trusted/DigiCert_High_Assurance_EV_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/DigiCert_High_Assurance_EV_Root_CA.pem stable/11/secure/caroot/trusted/DigiCert_Trusted_Root_G4.pem - copied unchanged from r353095, head/secure/caroot/trusted/DigiCert_Trusted_Root_G4.pem stable/11/secure/caroot/trusted/E-Tugra_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/E-Tugra_Certification_Authority.pem stable/11/secure/caroot/trusted/EC-ACC.pem - copied unchanged from r353095, head/secure/caroot/trusted/EC-ACC.pem stable/11/secure/caroot/trusted/EE_Certification_Centre_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/EE_Certification_Centre_Root_CA.pem stable/11/secure/caroot/trusted/Entrust_Root_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/Entrust_Root_Certification_Authority.pem stable/11/secure/caroot/trusted/Entrust_Root_Certification_Authority_-_EC1.pem - copied unchanged from r353095, head/secure/caroot/trusted/Entrust_Root_Certification_Authority_-_EC1.pem stable/11/secure/caroot/trusted/Entrust_Root_Certification_Authority_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/Entrust_Root_Certification_Authority_-_G2.pem stable/11/secure/caroot/trusted/Entrust_Root_Certification_Authority_-_G4.pem - copied unchanged from r355376, head/secure/caroot/trusted/Entrust_Root_Certification_Authority_-_G4.pem stable/11/secure/caroot/trusted/Entrust_net_Premium_2048_Secure_Server_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Entrust_net_Premium_2048_Secure_Server_CA.pem stable/11/secure/caroot/trusted/GDCA_TrustAUTH_R5_ROOT.pem - copied unchanged from r353095, head/secure/caroot/trusted/GDCA_TrustAUTH_R5_ROOT.pem stable/11/secure/caroot/trusted/GTS_Root_R1.pem - copied unchanged from r353095, head/secure/caroot/trusted/GTS_Root_R1.pem stable/11/secure/caroot/trusted/GTS_Root_R2.pem - copied unchanged from r353095, head/secure/caroot/trusted/GTS_Root_R2.pem stable/11/secure/caroot/trusted/GTS_Root_R3.pem - copied unchanged from r353095, head/secure/caroot/trusted/GTS_Root_R3.pem stable/11/secure/caroot/trusted/GTS_Root_R4.pem - copied unchanged from r353095, head/secure/caroot/trusted/GTS_Root_R4.pem stable/11/secure/caroot/trusted/GeoTrust_Global_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/GeoTrust_Global_CA.pem stable/11/secure/caroot/trusted/GeoTrust_Primary_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/GeoTrust_Primary_Certification_Authority.pem stable/11/secure/caroot/trusted/GeoTrust_Primary_Certification_Authority_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/GeoTrust_Primary_Certification_Authority_-_G2.pem stable/11/secure/caroot/trusted/GeoTrust_Primary_Certification_Authority_-_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/GeoTrust_Primary_Certification_Authority_-_G3.pem stable/11/secure/caroot/trusted/GeoTrust_Universal_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/GeoTrust_Universal_CA.pem stable/11/secure/caroot/trusted/GeoTrust_Universal_CA_2.pem - copied unchanged from r353095, head/secure/caroot/trusted/GeoTrust_Universal_CA_2.pem stable/11/secure/caroot/trusted/GlobalSign_ECC_Root_CA_-_R4.pem - copied unchanged from r353095, head/secure/caroot/trusted/GlobalSign_ECC_Root_CA_-_R4.pem stable/11/secure/caroot/trusted/GlobalSign_ECC_Root_CA_-_R5.pem - copied unchanged from r353095, head/secure/caroot/trusted/GlobalSign_ECC_Root_CA_-_R5.pem stable/11/secure/caroot/trusted/GlobalSign_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/GlobalSign_Root_CA.pem stable/11/secure/caroot/trusted/GlobalSign_Root_CA_-_R2.pem - copied unchanged from r353095, head/secure/caroot/trusted/GlobalSign_Root_CA_-_R2.pem stable/11/secure/caroot/trusted/GlobalSign_Root_CA_-_R3.pem - copied unchanged from r353095, head/secure/caroot/trusted/GlobalSign_Root_CA_-_R3.pem stable/11/secure/caroot/trusted/GlobalSign_Root_CA_-_R6.pem - copied unchanged from r353095, head/secure/caroot/trusted/GlobalSign_Root_CA_-_R6.pem stable/11/secure/caroot/trusted/Global_Chambersign_Root_-_2008.pem - copied unchanged from r353095, head/secure/caroot/trusted/Global_Chambersign_Root_-_2008.pem stable/11/secure/caroot/trusted/Go_Daddy_Class_2_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Go_Daddy_Class_2_CA.pem stable/11/secure/caroot/trusted/Go_Daddy_Root_Certificate_Authority_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/Go_Daddy_Root_Certificate_Authority_-_G2.pem stable/11/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.pem - copied unchanged from r353095, head/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.pem stable/11/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_RootCA_2011.pem - copied unchanged from r353095, head/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_RootCA_2011.pem stable/11/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_RootCA_2015.pem - copied unchanged from r353095, head/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_RootCA_2015.pem stable/11/secure/caroot/trusted/Hongkong_Post_Root_CA_1.pem - copied unchanged from r353095, head/secure/caroot/trusted/Hongkong_Post_Root_CA_1.pem stable/11/secure/caroot/trusted/Hongkong_Post_Root_CA_3.pem - copied unchanged from r353095, head/secure/caroot/trusted/Hongkong_Post_Root_CA_3.pem stable/11/secure/caroot/trusted/ISRG_Root_X1.pem - copied unchanged from r353095, head/secure/caroot/trusted/ISRG_Root_X1.pem stable/11/secure/caroot/trusted/IdenTrust_Commercial_Root_CA_1.pem - copied unchanged from r353095, head/secure/caroot/trusted/IdenTrust_Commercial_Root_CA_1.pem stable/11/secure/caroot/trusted/IdenTrust_Public_Sector_Root_CA_1.pem - copied unchanged from r353095, head/secure/caroot/trusted/IdenTrust_Public_Sector_Root_CA_1.pem stable/11/secure/caroot/trusted/Izenpe_com.pem - copied unchanged from r353095, head/secure/caroot/trusted/Izenpe_com.pem stable/11/secure/caroot/trusted/LuxTrust_Global_Root_2.pem - copied unchanged from r353095, head/secure/caroot/trusted/LuxTrust_Global_Root_2.pem stable/11/secure/caroot/trusted/Microsec_e-Szigno_Root_CA_2009.pem - copied unchanged from r353095, head/secure/caroot/trusted/Microsec_e-Szigno_Root_CA_2009.pem stable/11/secure/caroot/trusted/NetLock_Arany__Class_Gold__F__tan__s__tv__ny.pem - copied unchanged from r353095, head/secure/caroot/trusted/NetLock_Arany__Class_Gold__F__tan__s__tv__ny.pem stable/11/secure/caroot/trusted/Network_Solutions_Certificate_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/Network_Solutions_Certificate_Authority.pem stable/11/secure/caroot/trusted/OISTE_WISeKey_Global_Root_GA_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/OISTE_WISeKey_Global_Root_GA_CA.pem stable/11/secure/caroot/trusted/OISTE_WISeKey_Global_Root_GB_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/OISTE_WISeKey_Global_Root_GB_CA.pem stable/11/secure/caroot/trusted/OISTE_WISeKey_Global_Root_GC_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/OISTE_WISeKey_Global_Root_GC_CA.pem stable/11/secure/caroot/trusted/QuoVadis_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/QuoVadis_Root_CA.pem stable/11/secure/caroot/trusted/QuoVadis_Root_CA_1_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/QuoVadis_Root_CA_1_G3.pem stable/11/secure/caroot/trusted/QuoVadis_Root_CA_2.pem - copied unchanged from r353095, head/secure/caroot/trusted/QuoVadis_Root_CA_2.pem stable/11/secure/caroot/trusted/QuoVadis_Root_CA_2_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/QuoVadis_Root_CA_2_G3.pem stable/11/secure/caroot/trusted/QuoVadis_Root_CA_3.pem - copied unchanged from r353095, head/secure/caroot/trusted/QuoVadis_Root_CA_3.pem stable/11/secure/caroot/trusted/QuoVadis_Root_CA_3_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/QuoVadis_Root_CA_3_G3.pem stable/11/secure/caroot/trusted/SSL_com_EV_Root_Certification_Authority_ECC.pem - copied unchanged from r353095, head/secure/caroot/trusted/SSL_com_EV_Root_Certification_Authority_ECC.pem stable/11/secure/caroot/trusted/SSL_com_EV_Root_Certification_Authority_RSA_R2.pem - copied unchanged from r353095, head/secure/caroot/trusted/SSL_com_EV_Root_Certification_Authority_RSA_R2.pem stable/11/secure/caroot/trusted/SSL_com_Root_Certification_Authority_ECC.pem - copied unchanged from r353095, head/secure/caroot/trusted/SSL_com_Root_Certification_Authority_ECC.pem stable/11/secure/caroot/trusted/SSL_com_Root_Certification_Authority_RSA.pem - copied unchanged from r353095, head/secure/caroot/trusted/SSL_com_Root_Certification_Authority_RSA.pem stable/11/secure/caroot/trusted/SZAFIR_ROOT_CA2.pem - copied unchanged from r353095, head/secure/caroot/trusted/SZAFIR_ROOT_CA2.pem stable/11/secure/caroot/trusted/SecureSign_RootCA11.pem - copied unchanged from r353095, head/secure/caroot/trusted/SecureSign_RootCA11.pem stable/11/secure/caroot/trusted/SecureTrust_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/SecureTrust_CA.pem stable/11/secure/caroot/trusted/Secure_Global_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Secure_Global_CA.pem stable/11/secure/caroot/trusted/Security_Communication_RootCA2.pem - copied unchanged from r353095, head/secure/caroot/trusted/Security_Communication_RootCA2.pem stable/11/secure/caroot/trusted/Security_Communication_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Security_Communication_Root_CA.pem stable/11/secure/caroot/trusted/Sonera_Class_2_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Sonera_Class_2_Root_CA.pem stable/11/secure/caroot/trusted/Staat_der_Nederlanden_EV_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Staat_der_Nederlanden_EV_Root_CA.pem stable/11/secure/caroot/trusted/Staat_der_Nederlanden_Root_CA_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/Staat_der_Nederlanden_Root_CA_-_G2.pem stable/11/secure/caroot/trusted/Staat_der_Nederlanden_Root_CA_-_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/Staat_der_Nederlanden_Root_CA_-_G3.pem stable/11/secure/caroot/trusted/Starfield_Class_2_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Starfield_Class_2_CA.pem stable/11/secure/caroot/trusted/Starfield_Root_Certificate_Authority_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/Starfield_Root_Certificate_Authority_-_G2.pem stable/11/secure/caroot/trusted/Starfield_Services_Root_Certificate_Authority_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/Starfield_Services_Root_Certificate_Authority_-_G2.pem stable/11/secure/caroot/trusted/SwissSign_Gold_CA_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/SwissSign_Gold_CA_-_G2.pem stable/11/secure/caroot/trusted/SwissSign_Platinum_CA_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/SwissSign_Platinum_CA_-_G2.pem stable/11/secure/caroot/trusted/SwissSign_Silver_CA_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/SwissSign_Silver_CA_-_G2.pem stable/11/secure/caroot/trusted/Symantec_Class_1_Public_Primary_Certification_Authority_-_G4.pem - copied unchanged from r353095, head/secure/caroot/trusted/Symantec_Class_1_Public_Primary_Certification_Authority_-_G4.pem stable/11/secure/caroot/trusted/Symantec_Class_1_Public_Primary_Certification_Authority_-_G6.pem - copied unchanged from r353095, head/secure/caroot/trusted/Symantec_Class_1_Public_Primary_Certification_Authority_-_G6.pem stable/11/secure/caroot/trusted/Symantec_Class_2_Public_Primary_Certification_Authority_-_G4.pem - copied unchanged from r353095, head/secure/caroot/trusted/Symantec_Class_2_Public_Primary_Certification_Authority_-_G4.pem stable/11/secure/caroot/trusted/Symantec_Class_2_Public_Primary_Certification_Authority_-_G6.pem - copied unchanged from r353095, head/secure/caroot/trusted/Symantec_Class_2_Public_Primary_Certification_Authority_-_G6.pem stable/11/secure/caroot/trusted/T-TeleSec_GlobalRoot_Class_2.pem - copied unchanged from r353095, head/secure/caroot/trusted/T-TeleSec_GlobalRoot_Class_2.pem stable/11/secure/caroot/trusted/T-TeleSec_GlobalRoot_Class_3.pem - copied unchanged from r353095, head/secure/caroot/trusted/T-TeleSec_GlobalRoot_Class_3.pem stable/11/secure/caroot/trusted/TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.pem - copied unchanged from r353095, head/secure/caroot/trusted/TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.pem stable/11/secure/caroot/trusted/TWCA_Global_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/TWCA_Global_Root_CA.pem stable/11/secure/caroot/trusted/TWCA_Root_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/TWCA_Root_Certification_Authority.pem stable/11/secure/caroot/trusted/Taiwan_GRCA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Taiwan_GRCA.pem stable/11/secure/caroot/trusted/TeliaSonera_Root_CA_v1.pem - copied unchanged from r353095, head/secure/caroot/trusted/TeliaSonera_Root_CA_v1.pem stable/11/secure/caroot/trusted/TrustCor_ECA-1.pem - copied unchanged from r353095, head/secure/caroot/trusted/TrustCor_ECA-1.pem stable/11/secure/caroot/trusted/TrustCor_RootCert_CA-1.pem - copied unchanged from r353095, head/secure/caroot/trusted/TrustCor_RootCert_CA-1.pem stable/11/secure/caroot/trusted/TrustCor_RootCert_CA-2.pem - copied unchanged from r353095, head/secure/caroot/trusted/TrustCor_RootCert_CA-2.pem stable/11/secure/caroot/trusted/Trustis_FPS_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/Trustis_FPS_Root_CA.pem stable/11/secure/caroot/trusted/UCA_Extended_Validation_Root.pem - copied unchanged from r353095, head/secure/caroot/trusted/UCA_Extended_Validation_Root.pem stable/11/secure/caroot/trusted/UCA_Global_G2_Root.pem - copied unchanged from r353095, head/secure/caroot/trusted/UCA_Global_G2_Root.pem stable/11/secure/caroot/trusted/USERTrust_ECC_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/USERTrust_ECC_Certification_Authority.pem stable/11/secure/caroot/trusted/USERTrust_RSA_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/USERTrust_RSA_Certification_Authority.pem stable/11/secure/caroot/trusted/VeriSign_Class_3_Public_Primary_Certification_Authority_-_G4.pem - copied unchanged from r353095, head/secure/caroot/trusted/VeriSign_Class_3_Public_Primary_Certification_Authority_-_G4.pem stable/11/secure/caroot/trusted/VeriSign_Class_3_Public_Primary_Certification_Authority_-_G5.pem - copied unchanged from r353095, head/secure/caroot/trusted/VeriSign_Class_3_Public_Primary_Certification_Authority_-_G5.pem stable/11/secure/caroot/trusted/VeriSign_Universal_Root_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/VeriSign_Universal_Root_Certification_Authority.pem stable/11/secure/caroot/trusted/Verisign_Class_1_Public_Primary_Certification_Authority_-_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/Verisign_Class_1_Public_Primary_Certification_Authority_-_G3.pem stable/11/secure/caroot/trusted/Verisign_Class_2_Public_Primary_Certification_Authority_-_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/Verisign_Class_2_Public_Primary_Certification_Authority_-_G3.pem stable/11/secure/caroot/trusted/Verisign_Class_3_Public_Primary_Certification_Authority_-_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/Verisign_Class_3_Public_Primary_Certification_Authority_-_G3.pem stable/11/secure/caroot/trusted/XRamp_Global_CA_Root.pem - copied unchanged from r353095, head/secure/caroot/trusted/XRamp_Global_CA_Root.pem stable/11/secure/caroot/trusted/certSIGN_ROOT_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/certSIGN_ROOT_CA.pem stable/11/secure/caroot/trusted/ePKI_Root_Certification_Authority.pem - copied unchanged from r353095, head/secure/caroot/trusted/ePKI_Root_Certification_Authority.pem stable/11/secure/caroot/trusted/emSign_ECC_Root_CA_-_C3.pem - copied unchanged from r353095, head/secure/caroot/trusted/emSign_ECC_Root_CA_-_C3.pem stable/11/secure/caroot/trusted/emSign_ECC_Root_CA_-_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/emSign_ECC_Root_CA_-_G3.pem stable/11/secure/caroot/trusted/emSign_Root_CA_-_C1.pem - copied unchanged from r353095, head/secure/caroot/trusted/emSign_Root_CA_-_C1.pem stable/11/secure/caroot/trusted/emSign_Root_CA_-_G1.pem - copied unchanged from r353095, head/secure/caroot/trusted/emSign_Root_CA_-_G1.pem stable/11/secure/caroot/trusted/thawte_Primary_Root_CA.pem - copied unchanged from r353095, head/secure/caroot/trusted/thawte_Primary_Root_CA.pem stable/11/secure/caroot/trusted/thawte_Primary_Root_CA_-_G2.pem - copied unchanged from r353095, head/secure/caroot/trusted/thawte_Primary_Root_CA_-_G2.pem stable/11/secure/caroot/trusted/thawte_Primary_Root_CA_-_G3.pem - copied unchanged from r353095, head/secure/caroot/trusted/thawte_Primary_Root_CA_-_G3.pem Modified: Directory Properties: stable/11/ (props changed) Copied: stable/12/secure/caroot/trusted/ACCVRAIZ1.pem (from r353095, head/secure/caroot/trusted/ACCVRAIZ1.pem) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/secure/caroot/trusted/ACCVRAIZ1.pem Mon Apr 27 21:41:00 2020 (r360395, copy of r353095, head/secure/caroot/trusted/ACCVRAIZ1.pem) @@ -0,0 +1,164 @@ +## +## ACCVRAIZ1 +## +## This is a single X.509 certificate for a public Certificate +## Authority (CA). It was automatically extracted from Mozilla's +## root CA list (the file `certdata.txt' in security/nss). +## +## Extracted from nss +## with $FreeBSD: head/secure/caroot/MAca-bundle.pl 352951 2019-10-02 01:27:50Z kevans $ +## +## @generated +## +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 6828503384748696800 (0x5ec3b7a6437fa4e0) + Signature Algorithm: sha1WithRSAEncryption + Issuer: CN = ACCVRAIZ1, OU = PKIACCV, O = ACCV, C = ES + Validity + Not Before: May 5 09:37:37 2011 GMT + Not After : Dec 31 09:37:37 2030 GMT + Subject: CN = ACCVRAIZ1, OU = PKIACCV, O = ACCV, C = ES + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + RSA Public-Key: (4096 bit) + Modulus: + 00:9b:a9:ab:bf:61:4a:97:af:2f:97:66:9a:74:5f: + d0:d9:96:fd:cf:e2:e4:66:ef:1f:1f:47:33:c2:44: + a3:df:9a:de:1f:b5:54:dd:15:7c:69:35:11:6f:bb: + c8:0c:8e:6a:18:1e:d8:8f:d9:16:bc:10:48:36:5c: + f0:63:b3:90:5a:5c:24:37:d7:a3:d6:cb:09:71:b9: + f1:01:72:84:b0:7d:db:4d:80:cd:fc:d3:6f:c9:f8: + da:b6:0e:82:d2:45:85:a8:1b:68:a8:3d:e8:f4:44: + 6c:bd:a1:c2:cb:03:be:8c:3e:13:00:84:df:4a:48: + c0:e3:22:0a:e8:e9:37:a7:18:4c:b1:09:0d:23:56: + 7f:04:4d:d9:17:84:18:a5:c8:da:40:94:73:eb:ce: + 0e:57:3c:03:81:3a:9d:0a:a1:57:43:69:ac:57:6d: + 79:90:78:e5:b5:b4:3b:d8:bc:4c:8d:28:a1:a7:a3: + a7:ba:02:4e:25:d1:2a:ae:ed:ae:03:22:b8:6b:20: + 0f:30:28:54:95:7f:e0:ee:ce:0a:66:9d:d1:40:2d: + 6e:22:af:9d:1a:c1:05:19:d2:6f:c0:f2:9f:f8:7b: + b3:02:42:fb:50:a9:1d:2d:93:0f:23:ab:c6:c1:0f: + 92:ff:d0:a2:15:f5:53:09:71:1c:ff:45:13:84:e6: + 26:5e:f8:e0:88:1c:0a:fc:16:b6:a8:73:06:b8:f0: + 63:84:02:a0:c6:5a:ec:e7:74:df:70:ae:a3:83:25: + ea:d6:c7:97:87:93:a7:c6:8a:8a:33:97:60:37:10: + 3e:97:3e:6e:29:15:d6:a1:0f:d1:88:2c:12:9f:6f: + aa:a4:c6:42:eb:41:a2:e3:95:43:d3:01:85:6d:8e: + bb:3b:f3:23:36:c7:fe:3b:e0:a1:25:07:48:ab:c9: + 89:74:ff:08:8f:80:bf:c0:96:65:f3:ee:ec:4b:68: + bd:9d:88:c3:31:b3:40:f1:e8:cf:f6:38:bb:9c:e4: + d1:7f:d4:e5:58:9b:7c:fa:d4:f3:0e:9b:75:91:e4: + ba:52:2e:19:7e:d1:f5:cd:5a:19:fc:ba:06:f6:fb: + 52:a8:4b:99:04:dd:f8:f9:b4:8b:50:a3:4e:62:89: + f0:87:24:fa:83:42:c1:87:fa:d5:2d:29:2a:5a:71: + 7a:64:6a:d7:27:60:63:0d:db:ce:49:f5:8d:1f:90: + 89:32:17:f8:73:43:b8:d2:5a:93:86:61:d6:e1:75: + 0a:ea:79:66:76:88:4f:71:eb:04:25:d6:0a:5a:7a: + 93:e5:b9:4b:17:40:0f:b1:b6:b9:f5:de:4f:dc:e0: + b3:ac:3b:11:70:60:84:4a:43:6e:99:20:c0:29:71: + 0a:c0:65 + Exponent: 65537 (0x10001) + X509v3 extensions: + Authority Information Access: + CA Issuers - URI:http://www.accv.es/fileadmin/Archivos/certificados/raizaccv1.crt + OCSP - URI:http://ocsp.accv.es + + X509v3 Subject Key Identifier: + D2:87:B4:E3:DF:37:27:93:55:F6:56:EA:81:E5:36:CC:8C:1E:3F:BD + X509v3 Basic Constraints: critical + CA:TRUE + X509v3 Authority Key Identifier: + keyid:D2:87:B4:E3:DF:37:27:93:55:F6:56:EA:81:E5:36:CC:8C:1E:3F:BD + + X509v3 Certificate Policies: + Policy: X509v3 Any Policy + User Notice: + Explicit Text: + CPS: http://www.accv.es/legislacion_c.htm + + X509v3 CRL Distribution Points: + + Full Name: + URI:http://www.accv.es/fileadmin/Archivos/certificados/raizaccv1_der.crl + + X509v3 Key Usage: critical + Certificate Sign, CRL Sign + X509v3 Subject Alternative Name: + email:accv@accv.es + Signature Algorithm: sha1WithRSAEncryption + 97:31:02:9f:e7:fd:43:67:48:44:14:e4:29:87:ed:4c:28:66: + d0:8f:35:da:4d:61:b7:4a:97:4d:b5:db:90:e0:05:2e:0e:c6: + 79:d0:f2:97:69:0f:bd:04:47:d9:be:db:b5:29:da:9b:d9:ae: + a9:99:d5:d3:3c:30:93:f5:8d:a1:a8:fc:06:8d:44:f4:ca:16: + 95:7c:33:dc:62:8b:a8:37:f8:27:d8:09:2d:1b:ef:c8:14:27: + 20:a9:64:44:ff:2e:d6:75:aa:6c:4d:60:40:19:49:43:54:63: + da:e2:cc:ba:66:e5:4f:44:7a:5b:d9:6a:81:2b:40:d5:7f:f9: + 01:27:58:2c:c8:ed:48:91:7c:3f:a6:00:cf:c4:29:73:11:36: + de:86:19:3e:9d:ee:19:8a:1b:d5:b0:ed:8e:3d:9c:2a:c0:0d: + d8:3d:66:e3:3c:0d:bd:d5:94:5c:e2:e2:a7:35:1b:04:00:f6: + 3f:5a:8d:ea:43:bd:5f:89:1d:a9:c1:b0:cc:99:e2:4d:00:0a: + da:c9:27:5b:e7:13:90:5c:e4:f5:33:a2:55:6d:dc:e0:09:4d: + 2f:b1:26:5b:27:75:00:09:c4:62:77:29:08:5f:9e:59:ac:b6: + 7e:ad:9f:54:30:22:03:c1:1e:71:64:fe:f9:38:0a:96:18:dd: + 02:14:ac:23:cb:06:1c:1e:a4:7d:8d:0d:de:27:41:e8:ad:da: + 15:b7:b0:23:dd:2b:a8:d3:da:25:87:ed:e8:55:44:4d:88:f4: + 36:7e:84:9a:78:ac:f7:0e:56:49:0e:d6:33:25:d6:84:50:42: + 6c:20:12:1d:2a:d5:be:bc:f2:70:81:a4:70:60:be:05:b5:9b: + 9e:04:44:be:61:23:ac:e9:a5:24:8c:11:80:94:5a:a2:a2:b9: + 49:d2:c1:dc:d1:a7:ed:31:11:2c:9e:19:a6:ee:e1:55:e1:c0: + ea:cf:0d:84:e4:17:b7:a2:7c:a5:de:55:25:06:ee:cc:c0:87: + 5c:40:da:cc:95:3f:55:e0:35:c7:b8:84:be:b4:5d:cd:7a:83: + 01:72:ee:87:e6:5f:1d:ae:b5:85:c6:26:df:e6:c1:9a:e9:1e: + 02:47:9f:2a:a8:6d:a9:5b:cf:ec:45:77:7f:98:27:9a:32:5d: + 2a:e3:84:ee:c5:98:66:2f:96:20:1d:dd:d8:c3:27:d7:b0:f9: + fe:d9:7d:cd:d0:9f:8f:0b:14:58:51:9f:2f:8b:c3:38:2d:de: + e8:8f:d6:8d:87:a4:f5:56:43:16:99:2c:f4:a4:56:b4:34:b8: + 61:37:c9:c2:58:80:1b:a0:97:a1:fc:59:8d:e9:11:f6:d1:0f: + 4b:55:34:46:2a:8b:86:3b +SHA1 Fingerprint=93:05:7A:88:15:C6:4F:CE:88:2F:FA:91:16:52:28:78:BC:53:64:17 +-----BEGIN CERTIFICATE----- +MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UE +AwwJQUNDVlJBSVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQsw +CQYDVQQGEwJFUzAeFw0xMTA1MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQ +BgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwHUEtJQUNDVjENMAsGA1UECgwEQUND +VjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCb +qau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gMjmoY +HtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWo +G2ioPej0RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpA +lHPrzg5XPAOBOp0KoVdDaaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhr +IA8wKFSVf+DuzgpmndFALW4ir50awQUZ0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/ +0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDGWuzndN9wrqODJerWx5eH +k6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs78yM2x/47 +4KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMO +m3WR5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpa +cXpkatcnYGMN285J9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPl +uUsXQA+xtrn13k/c4LOsOxFwYIRKQ26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYI +KwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRwOi8vd3d3LmFjY3YuZXMvZmls +ZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEuY3J0MB8GCCsG +AQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2 +VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeT +VfZW6oHlNsyMHj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIG +CCsGAQUFBwICMIIBFB6CARAAQQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUA +cgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBhAO0AegAgAGQAZQAgAGwAYQAgAEEA +QwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUAYwBuAG8AbABvAGcA +7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBjAHQA +cgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAA +QwBQAFMAIABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUA +czAwBggrBgEFBQcCARYkaHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2Mu +aHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRt +aW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2MV9kZXIuY3JsMA4GA1Ud +DwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZIhvcNAQEF +BQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdp +D70ER9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gU +JyCpZET/LtZ1qmxNYEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+m +AM/EKXMRNt6GGT6d7hmKG9Ww7Y49nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepD +vV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJTS+xJlsndQAJxGJ3KQhfnlms +tn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3sCPdK6jT2iWH +7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h +I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szA +h1xA2syVP1XgNce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xF +d3+YJ5oyXSrjhO7FmGYvliAd3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2H +pPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3pEfbRD0tVNEYqi4Y7 +-----END CERTIFICATE----- Copied: stable/12/secure/caroot/trusted/AC_RAIZ_FNMT-RCM.pem (from r353095, head/secure/caroot/trusted/AC_RAIZ_FNMT-RCM.pem) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/secure/caroot/trusted/AC_RAIZ_FNMT-RCM.pem Mon Apr 27 21:41:00 2020 (r360395, copy of r353095, head/secure/caroot/trusted/AC_RAIZ_FNMT-RCM.pem) @@ -0,0 +1,137 @@ +## +## AC RAIZ FNMT-RCM +## +## This is a single X.509 certificate for a public Certificate +## Authority (CA). It was automatically extracted from Mozilla's +## root CA list (the file `certdata.txt' in security/nss). +## +## Extracted from nss +## with $FreeBSD: head/secure/caroot/MAca-bundle.pl 352951 2019-10-02 01:27:50Z kevans $ +## +## @generated +## +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 5d:93:8d:30:67:36:c8:06:1d:1a:c7:54:84:69:07 + Signature Algorithm: sha256WithRSAEncryption + Issuer: C = ES, O = FNMT-RCM, OU = AC RAIZ FNMT-RCM + Validity + Not Before: Oct 29 15:59:56 2008 GMT + Not After : Jan 1 00:00:00 2030 GMT + Subject: C = ES, O = FNMT-RCM, OU = AC RAIZ FNMT-RCM + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + RSA Public-Key: (4096 bit) + Modulus: + 00:ba:71:80:7a:4c:86:6e:7f:c8:13:6d:c0:c6:7d: + 1c:00:97:8f:2c:0c:23:bb:10:9a:40:a9:1a:b7:87: + 88:f8:9b:56:6a:fb:e6:7b:8e:8b:92:8e:a7:25:5d: + 59:11:db:36:2e:b7:51:17:1f:a9:08:1f:04:17:24: + 58:aa:37:4a:18:df:e5:39:d4:57:fd:d7:c1:2c:91: + 01:91:e2:22:d4:03:c0:58:fc:77:47:ec:8f:3e:74: + 43:ba:ac:34:8d:4d:38:76:67:8e:b0:c8:6f:30:33: + 58:71:5c:b4:f5:6b:6e:d4:01:50:b8:13:7e:6c:4a: + a3:49:d1:20:19:ee:bc:c0:29:18:65:a7:de:fe:ef: + dd:0a:90:21:e7:1a:67:92:42:10:98:5f:4f:30:bc: + 3e:1c:45:b4:10:d7:68:40:14:c0:40:fa:e7:77:17: + 7a:e6:0b:8f:65:5b:3c:d9:9a:52:db:b5:bd:9e:46: + cf:3d:eb:91:05:02:c0:96:b2:76:4c:4d:10:96:3b: + 92:fa:9c:7f:0f:99:df:be:23:35:45:1e:02:5c:fe: + b5:a8:9b:99:25:da:5e:f3:22:c3:39:f5:e4:2a:2e: + d3:c6:1f:c4:6c:aa:c5:1c:6a:01:05:4a:2f:d2:c5: + c1:a8:34:26:5d:66:a5:d2:02:21:f9:18:b7:06:f5: + 4e:99:6f:a8:ab:4c:51:e8:cf:50:18:c5:77:c8:39: + 09:2c:49:92:32:99:a8:bb:17:17:79:b0:5a:c5:e6: + a3:c4:59:65:47:35:83:5e:a9:e8:35:0b:99:bb:e4: + cd:20:c6:9b:4a:06:39:b5:68:fc:22:ba:ee:55:8c: + 2b:4e:ea:f3:b1:e3:fc:b6:99:9a:d5:42:fa:71:4d: + 08:cf:87:1e:6a:71:7d:f9:d3:b4:e9:a5:71:81:7b: + c2:4e:47:96:a5:f6:76:85:a3:28:8f:e9:80:6e:81: + 53:a5:6d:5f:b8:48:f9:c2:f9:36:a6:2e:49:ff:b8: + 96:c2:8c:07:b3:9b:88:58:fc:eb:1b:1c:de:2d:70: + e2:97:92:30:a1:89:e3:bc:55:a8:27:d6:4b:ed:90: + ad:8b:fa:63:25:59:2d:a8:35:dd:ca:97:33:bc:e5: + cd:c7:9d:d1:ec:ef:5e:0e:4a:90:06:26:63:ad:b9: + d9:35:2d:07:ba:76:65:2c:ac:57:8f:7d:f4:07:94: + d7:81:02:96:5d:a3:07:49:d5:7a:d0:57:f9:1b:e7: + 53:46:75:aa:b0:79:42:cb:68:71:08:e9:60:bd:39: + 69:ce:f4:af:c3:56:40:c7:ad:52:a2:09:e4:6f:86: + 47:8a:1f:eb:28:27:5d:83:20:af:04:c9:6c:56:9a: + 8b:46:f5 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: critical + CA:TRUE + X509v3 Key Usage: critical + Certificate Sign, CRL Sign + X509v3 Subject Key Identifier: + F7:7D:C5:FD:C4:E8:9A:1B:77:64:A7:F5:1D:A0:CC:BF:87:60:9A:6D + X509v3 Certificate Policies: + Policy: X509v3 Any Policy + CPS: http://www.cert.fnmt.es/dpcs/ + + Signature Algorithm: sha256WithRSAEncryption + 07:90:4a:df:f3:23:4e:f0:c3:9c:51:65:9b:9c:22:a2:8a:0c: + 85:f3:73:29:6b:4d:fe:01:e2:a9:0c:63:01:bf:04:67:a5:9d: + 98:5f:fd:01:13:fa:ec:9a:62:e9:86:fe:b6:62:d2:6e:4c:94: + fb:c0:75:45:7c:65:0c:f8:b2:37:cf:ac:0f:cf:8d:6f:f9:19: + f7:8f:ec:1e:f2:70:9e:f0:ca:b8:ef:b7:ff:76:37:76:5b:f6: + 6e:88:f3:af:62:32:22:93:0d:3a:6a:8e:14:66:0c:2d:53:74: + 57:65:1e:d5:b2:dd:23:81:3b:a5:66:23:27:67:09:8f:e1:77: + aa:43:cd:65:51:08:ed:51:58:fe:e6:39:f9:cb:47:84:a4:15: + f1:76:bb:a4:ee:a4:3b:c4:5f:ef:b2:33:96:11:18:b7:c9:65: + be:18:e1:a3:a4:dc:fa:18:f9:d3:bc:13:9b:39:7a:34:ba:d3: + 41:fb:fa:32:8a:2a:b7:2b:86:0b:69:83:38:be:cd:8a:2e:0b: + 70:ad:8d:26:92:ee:1e:f5:01:2b:0a:d9:d6:97:9b:6e:e0:a8: + 19:1c:3a:21:8b:0c:1e:40:ad:03:e7:dd:66:7e:f5:b9:20:0d: + 03:e8:96:f9:82:45:d4:39:e0:a0:00:5d:d7:98:e6:7d:9e:67: + 73:c3:9a:2a:f7:ab:8b:a1:3a:14:ef:34:bc:52:0e:89:98:9a: + 04:40:84:1d:7e:45:69:93:57:ce:eb:ce:f8:50:7c:4f:1c:6e: + 04:43:9b:f9:d6:3b:23:18:e9:ea:8e:d1:4d:46:8d:f1:3b:e4: + 6a:ca:ba:fb:23:b7:9b:fa:99:01:29:5a:58:5a:2d:e3:f9:d4: + 6d:0e:26:ad:c1:6e:34:bc:32:f8:0c:05:fa:65:a3:db:3b:37: + 83:22:e9:d6:dc:72:33:fd:5d:f2:20:bd:76:3c:23:da:28:f7: + f9:1b:eb:59:64:d5:dc:5f:72:7e:20:fc:cd:89:b5:90:67:4d: + 62:7a:3f:4e:ad:1d:c3:39:fe:7a:f4:28:16:df:41:f6:48:80: + 05:d7:0f:51:79:ac:10:ab:d4:ec:03:66:e6:6a:b0:ba:31:92: + 42:40:6a:be:3a:d3:72:e1:6a:37:55:bc:ac:1d:95:b7:69:61: + f2:43:91:74:e6:a0:d3:0a:24:46:a1:08:af:d6:da:45:19:96: + d4:53:1d:5b:84:79:f0:c0:f7:47:ef:8b:8f:c5:06:ae:9d:4c: + 62:9d:ff:46:04:f8:d3:c9:b6:10:25:40:75:fe:16:aa:c9:4a: + 60:86:2f:ba:ef:30:77:e4:54:e2:b8:84:99:58:80:aa:13:8b: + 51:3a:4f:48:f6:8b:b6:b3 +SHA1 Fingerprint=EC:50:35:07:B2:15:C4:95:62:19:E2:A8:9A:5B:42:99:2C:4C:2C:20 +-----BEGIN CERTIFICATE----- +MIIFgzCCA2ugAwIBAgIPXZONMGc2yAYdGsdUhGkHMA0GCSqGSIb3DQEBCwUAMDsx +CzAJBgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJ +WiBGTk1ULVJDTTAeFw0wODEwMjkxNTU5NTZaFw0zMDAxMDEwMDAwMDBaMDsxCzAJ +BgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJWiBG +Tk1ULVJDTTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALpxgHpMhm5/ +yBNtwMZ9HACXjywMI7sQmkCpGreHiPibVmr75nuOi5KOpyVdWRHbNi63URcfqQgf +BBckWKo3Shjf5TnUV/3XwSyRAZHiItQDwFj8d0fsjz50Q7qsNI1NOHZnjrDIbzAz +WHFctPVrbtQBULgTfmxKo0nRIBnuvMApGGWn3v7v3QqQIecaZ5JCEJhfTzC8PhxF +tBDXaEAUwED653cXeuYLj2VbPNmaUtu1vZ5Gzz3rkQUCwJaydkxNEJY7kvqcfw+Z +374jNUUeAlz+taibmSXaXvMiwzn15Cou08YfxGyqxRxqAQVKL9LFwag0Jl1mpdIC +IfkYtwb1TplvqKtMUejPUBjFd8g5CSxJkjKZqLsXF3mwWsXmo8RZZUc1g16p6DUL +mbvkzSDGm0oGObVo/CK67lWMK07q87Hj/LaZmtVC+nFNCM+HHmpxffnTtOmlcYF7 +wk5HlqX2doWjKI/pgG6BU6VtX7hI+cL5NqYuSf+4lsKMB7ObiFj86xsc3i1w4peS +MKGJ47xVqCfWS+2QrYv6YyVZLag13cqXM7zlzced0ezvXg5KkAYmY6252TUtB7p2 +ZSysV4999AeU14ECll2jB0nVetBX+RvnU0Z1qrB5QstocQjpYL05ac70r8NWQMet +UqIJ5G+GR4of6ygnXYMgrwTJbFaai0b1AgMBAAGjgYMwgYAwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFPd9xf3E6Jobd2Sn9R2gzL+H +YJptMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1odHRwOi8vd3d3 +LmNlcnQuZm5tdC5lcy9kcGNzLzANBgkqhkiG9w0BAQsFAAOCAgEAB5BK3/MjTvDD +nFFlm5wioooMhfNzKWtN/gHiqQxjAb8EZ6WdmF/9ARP67Jpi6Yb+tmLSbkyU+8B1 +RXxlDPiyN8+sD8+Nb/kZ94/sHvJwnvDKuO+3/3Y3dlv2bojzr2IyIpMNOmqOFGYM +LVN0V2Ue1bLdI4E7pWYjJ2cJj+F3qkPNZVEI7VFY/uY5+ctHhKQV8Xa7pO6kO8Rf +77IzlhEYt8llvhjho6Tc+hj507wTmzl6NLrTQfv6MooqtyuGC2mDOL7Nii4LcK2N +JpLuHvUBKwrZ1pebbuCoGRw6IYsMHkCtA+fdZn71uSANA+iW+YJF1DngoABd15jm +fZ5nc8OaKveri6E6FO80vFIOiZiaBECEHX5FaZNXzuvO+FB8TxxuBEOb+dY7Ixjp +6o7RTUaN8Tvkasq6+yO3m/qZASlaWFot4/nUbQ4mrcFuNLwy+AwF+mWj2zs3gyLp +1txyM/1d8iC9djwj2ij3+RvrWWTV3F9yfiD8zYm1kGdNYno/Tq0dwzn+evQoFt9B +9kiABdcPUXmsEKvU7ANm5mqwujGSQkBqvjrTcuFqN1W8rB2Vt2lh8kORdOag0wok +RqEIr9baRRmW1FMdW4R58MD3R++Lj8UGrp1MYp3/RgT408m2ECVAdf4WqslKYIYv +uu8wd+RU4riEmViAqhOLUTpPSPaLtrM= +-----END CERTIFICATE----- Copied: stable/12/secure/caroot/trusted/Actalis_Authentication_Root_CA.pem (from r353095, head/secure/caroot/trusted/Actalis_Authentication_Root_CA.pem) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/secure/caroot/trusted/Actalis_Authentication_Root_CA.pem Mon Apr 27 21:41:00 2020 (r360395, copy of r353095, head/secure/caroot/trusted/Actalis_Authentication_Root_CA.pem) @@ -0,0 +1,136 @@ +## +## Actalis Authentication Root CA +## +## This is a single X.509 certificate for a public Certificate +## Authority (CA). It was automatically extracted from Mozilla's +## root CA list (the file `certdata.txt' in security/nss). +## +## Extracted from nss +## with $FreeBSD: head/secure/caroot/MAca-bundle.pl 352951 2019-10-02 01:27:50Z kevans $ +## +## @generated +## +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 6271844772424770508 (0x570a119742c4e3cc) + Signature Algorithm: sha256WithRSAEncryption + Issuer: C = IT, L = Milan, O = Actalis S.p.A./03358520967, CN = Actalis Authentication Root CA + Validity + Not Before: Sep 22 11:22:02 2011 GMT + Not After : Sep 22 11:22:02 2030 GMT + Subject: C = IT, L = Milan, O = Actalis S.p.A./03358520967, CN = Actalis Authentication Root CA + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + RSA Public-Key: (4096 bit) + Modulus: + 00:a7:c6:c4:a5:29:a4:2c:ef:e5:18:c5:b0:50:a3: + 6f:51:3b:9f:0a:5a:c9:c2:48:38:0a:c2:1c:a0:18: + 7f:91:b5:87:b9:40:3f:dd:1d:68:1f:08:83:d5:2d: + 1e:88:a0:f8:8f:56:8f:6d:99:02:92:90:16:d5:5f: + 08:6c:89:d7:e1:ac:bc:20:c2:b1:e0:83:51:8a:69: + 4d:00:96:5a:6f:2f:c0:44:7e:a3:0e:e4:91:cd:58: + ee:dc:fb:c7:1e:45:47:dd:27:b9:08:01:9f:a6:21: + 1d:f5:41:2d:2f:4c:fd:28:ad:e0:8a:ad:22:b4:56: + 65:8e:86:54:8f:93:43:29:de:39:46:78:a3:30:23: + ba:cd:f0:7d:13:57:c0:5d:d2:83:6b:48:4c:c4:ab: + 9f:80:5a:5b:3a:bd:c9:a7:22:3f:80:27:33:5b:0e: + b7:8a:0c:5d:07:37:08:cb:6c:d2:7a:47:22:44:35: + c5:cc:cc:2e:8e:dd:2a:ed:b7:7d:66:0d:5f:61:51: + 22:55:1b:e3:46:e3:e3:3d:d0:35:62:9a:db:af:14: + c8:5b:a1:cc:89:1b:e1:30:26:fc:a0:9b:1f:81:a7: + 47:1f:04:eb:a3:39:92:06:9f:99:d3:bf:d3:ea:4f: + 50:9c:19:fe:96:87:1e:3c:65:f6:a3:18:24:83:86: + 10:e7:54:3e:a8:3a:76:24:4f:81:21:c5:e3:0f:02: + f8:93:94:47:20:bb:fe:d4:0e:d3:68:b9:dd:c4:7a: + 84:82:e3:53:54:79:dd:db:9c:d2:f2:07:9b:2e:b6: + bc:3e:ed:85:6d:ef:25:11:f2:97:1a:42:61:f7:4a: + 97:e8:8b:b1:10:07:fa:65:81:b2:a2:39:cf:f7:3c: + ff:18:fb:c6:f1:5a:8b:59:e2:02:ac:7b:92:d0:4e: + 14:4f:59:45:f6:0c:5e:28:5f:b0:e8:3f:45:cf:cf: + af:9b:6f:fb:84:d3:77:5a:95:6f:ac:94:84:9e:ee: + bc:c0:4a:8f:4a:93:f8:44:21:e2:31:45:61:50:4e: + 10:d8:e3:35:7c:4c:19:b4:de:05:bf:a3:06:9f:c8: + b5:cd:e4:1f:d7:17:06:0d:7a:95:74:55:0d:68:1a: + fc:10:1b:62:64:9d:6d:e0:95:a0:c3:94:07:57:0d: + 14:e6:bd:05:fb:b8:9f:e6:df:8b:e2:c6:e7:7e:96: + f6:53:c5:80:34:50:28:58:f0:12:50:71:17:30:ba: + e6:78:63:bc:f4:b2:ad:9b:2b:b2:fe:e1:39:8c:5e: + ba:0b:20:94:de:7b:83:b8:ff:e3:56:8d:b7:11:e9: + 3b:8c:f2:b1:c1:5d:9d:a4:0b:4c:2b:d9:b2:18:f5: + b5:9f:4b + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Subject Key Identifier: + 52:D8:88:3A:C8:9F:78:66:ED:89:F3:7B:38:70:94:C9:02:02:36:D0 + X509v3 Basic Constraints: critical + CA:TRUE + X509v3 Authority Key Identifier: + keyid:52:D8:88:3A:C8:9F:78:66:ED:89:F3:7B:38:70:94:C9:02:02:36:D0 + + X509v3 Key Usage: critical + Certificate Sign, CRL Sign + Signature Algorithm: sha256WithRSAEncryption + 0b:7b:72:87:c0:60:a6:49:4c:88:58:e6:1d:88:f7:14:64:48: + a6:d8:58:0a:0e:4f:13:35:df:35:1d:d4:ed:06:31:c8:81:3e: + 6a:d5:dd:3b:1a:32:ee:90:3d:11:d2:2e:f4:8e:c3:63:2e:23: + 66:b0:67:be:6f:b6:c0:13:39:60:aa:a2:34:25:93:75:52:de: + a7:9d:ad:0e:87:89:52:71:6a:16:3c:19:1d:83:f8:9a:29:65: + be:f4:3f:9a:d9:f0:f3:5a:87:21:71:80:4d:cb:e0:38:9b:3f: + bb:fa:e0:30:4d:cf:86:d3:65:10:19:18:d1:97:02:b1:2b:72: + 42:68:ac:a0:bd:4e:5a:da:18:bf:6b:98:81:d0:fd:9a:be:5e: + 15:48:cd:11:15:b9:c0:29:5c:b4:e8:88:f7:3e:36:ae:b7:62: + fd:1e:62:de:70:78:10:1c:48:5b:da:bc:a4:38:ba:67:ed:55: + 3e:5e:57:df:d4:03:40:4c:81:a4:d2:4f:63:a7:09:42:09:14: + fc:00:a9:c2:80:73:4f:2e:c0:40:d9:11:7b:48:ea:7a:02:c0: + d3:eb:28:01:26:58:74:c1:c0:73:22:6d:93:95:fd:39:7d:bb: + 2a:e3:f6:82:e3:2c:97:5f:4e:1f:91:94:fa:fe:2c:a3:d8:76: + 1a:b8:4d:b2:38:4f:9b:fa:1d:48:60:79:26:e2:f3:fd:a9:d0: + 9a:e8:70:8f:49:7a:d6:e5:bd:0a:0e:db:2d:f3:8d:bf:eb:e3: + a4:7d:cb:c7:95:71:e8:da:a3:7c:c5:c2:f8:74:92:04:1b:86: + ac:a4:22:53:40:b6:ac:fe:4c:76:cf:fb:94:32:c0:35:9f:76: + 3f:6e:e5:90:6e:a0:a6:26:a2:b8:2c:be:d1:2b:85:fd:a7:68: + c8:ba:01:2b:b1:6c:74:1d:b8:73:95:e7:ee:b7:c7:25:f0:00: + 4c:00:b2:7e:b6:0b:8b:1c:f3:c0:50:9e:25:b9:e0:08:de:36: + 66:ff:37:a5:d1:bb:54:64:2c:c9:27:b5:4b:92:7e:65:ff:d3: + 2d:e1:b9:4e:bc:7f:a4:41:21:90:41:77:a6:39:1f:ea:9e:e3: + 9f:d0:66:6f:05:ec:aa:76:7e:bf:6b:16:a0:eb:b5:c7:fc:92: + 54:2f:2b:11:27:25:37:78:4c:51:6a:b0:f3:cc:58:5d:14:f1: + 6a:48:15:ff:c2:07:b6:b1:8d:0f:8e:5c:50:46:b3:3d:bf:01: + 98:4f:b2:59:54:47:3e:34:7b:78:6d:56:93:2e:73:ea:66:28: + 78:cd:1d:14:bf:a0:8f:2f:2e:b8:2e:8e:f2:14:8a:cc:e9:b5: + 7c:fb:6c:9d:0c:a5:e1:96 +SHA1 Fingerprint=F3:73:B3:87:06:5A:28:84:8A:F2:F3:4A:CE:19:2B:DD:C7:8E:9C:AC +-----BEGIN CERTIFICATE----- +MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UE +BhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8w +MzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290 +IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDkyMjExMjIwMlowazELMAkGA1UEBhMC +SVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1 +ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENB +MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNv +UTufClrJwkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX +4ay8IMKx4INRimlNAJZaby/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9 +KK3giq0itFZljoZUj5NDKd45RnijMCO6zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/ +gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1fYVEiVRvjRuPjPdA1Yprb +rxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2oxgkg4YQ +51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2F +be8lEfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxe +KF+w6D9Fz8+vm2/7hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4F +v6MGn8i1zeQf1xcGDXqVdFUNaBr8EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbn +fpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5jF66CyCU3nuDuP/jVo23Eek7 +jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLYiDrIn3hm7Ynz +ezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt +ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAL +e3KHwGCmSUyIWOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70 +jsNjLiNmsGe+b7bAEzlgqqI0JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDz +WochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKxK3JCaKygvU5a2hi/a5iB0P2avl4V +SM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+Xlff1ANATIGk0k9j +pwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC4yyX +X04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+Ok +fcvHlXHo2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7R +K4X9p2jIugErsWx0Hbhzlefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btU +ZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXemOR/qnuOf0GZvBeyqdn6/axag67XH/JJU +LysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9vwGYT7JZVEc+NHt4bVaT +LnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg== +-----END CERTIFICATE----- Copied: stable/12/secure/caroot/trusted/AddTrust_External_Root.pem (from r353095, head/secure/caroot/trusted/AddTrust_External_Root.pem) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/secure/caroot/trusted/AddTrust_External_Root.pem Mon Apr 27 21:41:00 2020 (r360395, copy of r353095, head/secure/caroot/trusted/AddTrust_External_Root.pem) @@ -0,0 +1,99 @@ +## +## AddTrust External Root +## +## This is a single X.509 certificate for a public Certificate +## Authority (CA). It was automatically extracted from Mozilla's +## root CA list (the file `certdata.txt' in security/nss). +## +## Extracted from nss +## with $FreeBSD: head/secure/caroot/MAca-bundle.pl 352951 2019-10-02 01:27:50Z kevans $ +## +## @generated +## +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 1 (0x1) + Signature Algorithm: sha1WithRSAEncryption + Issuer: C = SE, O = AddTrust AB, OU = AddTrust External TTP Network, CN = AddTrust External CA Root + Validity + Not Before: May 30 10:48:38 2000 GMT + Not After : May 30 10:48:38 2020 GMT + Subject: C = SE, O = AddTrust AB, OU = AddTrust External TTP Network, CN = AddTrust External CA Root + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + RSA Public-Key: (2048 bit) + Modulus: + 00:b7:f7:1a:33:e6:f2:00:04:2d:39:e0:4e:5b:ed: + 1f:bc:6c:0f:cd:b5:fa:23:b6:ce:de:9b:11:33:97: + a4:29:4c:7d:93:9f:bd:4a:bc:93:ed:03:1a:e3:8f: + cf:e5:6d:50:5a:d6:97:29:94:5a:80:b0:49:7a:db: + 2e:95:fd:b8:ca:bf:37:38:2d:1e:3e:91:41:ad:70: + 56:c7:f0:4f:3f:e8:32:9e:74:ca:c8:90:54:e9:c6: + 5f:0f:78:9d:9a:40:3c:0e:ac:61:aa:5e:14:8f:9e: + 87:a1:6a:50:dc:d7:9a:4e:af:05:b3:a6:71:94:9c: + 71:b3:50:60:0a:c7:13:9d:38:07:86:02:a8:e9:a8: + 69:26:18:90:ab:4c:b0:4f:23:ab:3a:4f:84:d8:df: + ce:9f:e1:69:6f:bb:d7:42:d7:6b:44:e4:c7:ad:ee: + 6d:41:5f:72:5a:71:08:37:b3:79:65:a4:59:a0:94: + 37:f7:00:2f:0d:c2:92:72:da:d0:38:72:db:14:a8: + 45:c4:5d:2a:7d:b7:b4:d6:c4:ee:ac:cd:13:44:b7: + c9:2b:dd:43:00:25:fa:61:b9:69:6a:58:23:11:b7: + a7:33:8f:56:75:59:f5:cd:29:d7:46:b7:0a:2b:65: + b6:d3:42:6f:15:b2:b8:7b:fb:ef:e9:5d:53:d5:34: + 5a:27 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Subject Key Identifier: + AD:BD:98:7A:34:B4:26:F7:FA:C4:26:54:EF:03:BD:E0:24:CB:54:1A + X509v3 Key Usage: + Certificate Sign, CRL Sign + X509v3 Basic Constraints: critical + CA:TRUE + X509v3 Authority Key Identifier: + keyid:AD:BD:98:7A:34:B4:26:F7:FA:C4:26:54:EF:03:BD:E0:24:CB:54:1A + DirName:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root + serial:01 + + Signature Algorithm: sha1WithRSAEncryption + b0:9b:e0:85:25:c2:d6:23:e2:0f:96:06:92:9d:41:98:9c:d9: + 84:79:81:d9:1e:5b:14:07:23:36:65:8f:b0:d8:77:bb:ac:41: + 6c:47:60:83:51:b0:f9:32:3d:e7:fc:f6:26:13:c7:80:16:a5: + bf:5a:fc:87:cf:78:79:89:21:9a:e2:4c:07:0a:86:35:bc:f2: + de:51:c4:d2:96:b7:dc:7e:4e:ee:70:fd:1c:39:eb:0c:02:51: + 14:2d:8e:bd:16:e0:c1:df:46:75:e7:24:ad:ec:f4:42:b4:85: + 93:70:10:67:ba:9d:06:35:4a:18:d3:2b:7a:cc:51:42:a1:7a: + 63:d1:e6:bb:a1:c5:2b:c2:36:be:13:0d:e6:bd:63:7e:79:7b: + a7:09:0d:40:ab:6a:dd:8f:8a:c3:f6:f6:8c:1a:42:05:51:d4: + 45:f5:9f:a7:62:21:68:15:20:43:3c:99:e7:7c:bd:24:d8:a9: + 91:17:73:88:3f:56:1b:31:38:18:b4:71:0f:9a:cd:c8:0e:9e: + 8e:2e:1b:e1:8c:98:83:cb:1f:31:f1:44:4c:c6:04:73:49:76: + 60:0f:c7:f8:bd:17:80:6b:2e:e9:cc:4c:0e:5a:9a:79:0f:20: + 0a:2e:d5:9e:63:26:1e:55:92:94:d8:82:17:5a:7b:d0:bc:c7: + 8f:4e:86:04 +SHA1 Fingerprint=02:FA:F3:E2:91:43:54:68:60:78:57:69:4D:F5:E4:5B:68:85:18:68 +-----BEGIN CERTIFICATE----- +MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU +MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs +IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290 +MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux +FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h +bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v +dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt +H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9 +uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX +mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX +a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN +E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0 +WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD +VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0 +Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU +cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx +IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN +AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH +YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5 +6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC +Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX +c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a +mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ= +-----END CERTIFICATE----- Copied: stable/12/secure/caroot/trusted/AddTrust_Low-Value_Services_Root.pem (from r353095, head/secure/caroot/trusted/AddTrust_Low-Value_Services_Root.pem) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/secure/caroot/trusted/AddTrust_Low-Value_Services_Root.pem Mon Apr 27 21:41:00 2020 (r360395, copy of r353095, head/secure/caroot/trusted/AddTrust_Low-Value_Services_Root.pem) @@ -0,0 +1,98 @@ +## +## AddTrust Low-Value Services Root +## +## This is a single X.509 certificate for a public Certificate +## Authority (CA). It was automatically extracted from Mozilla's +## root CA list (the file `certdata.txt' in security/nss). +## +## Extracted from nss +## with $FreeBSD: head/secure/caroot/MAca-bundle.pl 352951 2019-10-02 01:27:50Z kevans $ +## +## @generated +## +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 1 (0x1) + Signature Algorithm: sha1WithRSAEncryption + Issuer: C = SE, O = AddTrust AB, OU = AddTrust TTP Network, CN = AddTrust Class 1 CA Root + Validity + Not Before: May 30 10:38:31 2000 GMT + Not After : May 30 10:38:31 2020 GMT + Subject: C = SE, O = AddTrust AB, OU = AddTrust TTP Network, CN = AddTrust Class 1 CA Root + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + RSA Public-Key: (2048 bit) + Modulus: + 00:96:96:d4:21:49:60:e2:6b:e8:41:07:0c:de:c4: + e0:dc:13:23:cd:c1:35:c7:fb:d6:4e:11:0a:67:5e: + f5:06:5b:6b:a5:08:3b:5b:29:16:3a:e7:87:b2:34: + 06:c5:bc:05:a5:03:7c:82:cb:29:10:ae:e1:88:81: + bd:d6:9e:d3:fe:2d:56:c1:15:ce:e3:26:9d:15:2e: + 10:fb:06:8f:30:04:de:a7:b4:63:b4:ff:b1:9c:ae: + 3c:af:77:b6:56:c5:b5:ab:a2:e9:69:3a:3d:0e:33: + 79:32:3f:70:82:92:99:61:6d:8d:30:08:8f:71:3f: + a6:48:57:19:f8:25:dc:4b:66:5c:a5:74:8f:98:ae: + c8:f9:c0:06:22:e7:ac:73:df:a5:2e:fb:52:dc:b1: + 15:65:20:fa:35:66:69:de:df:2c:f1:6e:bc:30:db: + 2c:24:12:db:eb:35:35:68:90:cb:00:b0:97:21:3d: + 74:21:23:65:34:2b:bb:78:59:a3:d6:e1:76:39:9a: + a4:49:8e:8c:74:af:6e:a4:9a:a3:d9:9b:d2:38:5c: + 9b:a2:18:cc:75:23:84:be:eb:e2:4d:33:71:8e:1a: + f0:c2:f8:c7:1d:a2:ad:03:97:2c:f8:cf:25:c6:f6: + b8:24:31:b1:63:5d:92:7f:63:f0:25:c9:53:2e:1f: + bf:4d + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Subject Key Identifier: + 95:B1:B4:F0:94:B6:BD:C7:DA:D1:11:09:21:BE:C1:AF:49:FD:10:7B + X509v3 Key Usage: + Certificate Sign, CRL Sign + X509v3 Basic Constraints: critical + CA:TRUE + X509v3 Authority Key Identifier: + keyid:95:B1:B4:F0:94:B6:BD:C7:DA:D1:11:09:21:BE:C1:AF:49:FD:10:7B + DirName:/C=SE/O=AddTrust AB/OU=AddTrust TTP Network/CN=AddTrust Class 1 CA Root + serial:01 + + Signature Algorithm: sha1WithRSAEncryption + 2c:6d:64:1b:1f:cd:0d:dd:b9:01:fa:96:63:34:32:48:47:99: + ae:97:ed:fd:72:16:a6:73:47:5a:f4:eb:dd:e9:f5:d6:fb:45: + cc:29:89:44:5d:bf:46:39:3d:e8:ee:bc:4d:54:86:1e:1d:6c: + e3:17:27:43:e1:89:56:2b:a9:6f:72:4e:49:33:e3:72:7c:2a: + 23:9a:bc:3e:ff:28:2a:ed:a3:ff:1c:23:ba:43:57:09:67:4d: + 4b:62:06:2d:f8:ff:6c:9d:60:1e:d8:1c:4b:7d:b5:31:2f:d9: + d0:7c:5d:f8:de:6b:83:18:78:37:57:2f:e8:33:07:67:df:1e: + c7:6b:2a:95:76:ae:8f:57:a3:f0:f4:52:b4:a9:53:08:cf:e0: + 4f:d3:7a:53:8b:fd:bb:1c:56:36:f2:fe:b2:b6:e5:76:bb:d5: + 22:65:a7:3f:fe:d1:66:ad:0b:bc:6b:99:86:ef:3f:7d:f3:18: + 32:ca:7b:c6:e3:ab:64:46:95:f8:26:69:d9:55:83:7b:2c:96: + 07:ff:59:2c:44:a3:c6:e5:e9:a9:dc:a1:63:80:5a:21:5e:21: + cf:53:54:f0:ba:6f:89:db:a8:aa:95:cf:8b:e3:71:cc:1e:1b: + 20:44:08:c0:7a:b6:40:fd:c4:e4:35:e1:1d:16:1c:d0:bc:2b: + 8e:d6:71:d9 +SHA1 Fingerprint=CC:AB:0E:A0:4C:23:01:D6:69:7B:DD:37:9F:CD:12:EB:24:E3:94:9D +-----BEGIN CERTIFICATE----- +MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEU +MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3 +b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMw +MTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML +QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYD +VQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUA +A4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ul +CDtbKRY654eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6n +tGO0/7Gcrjyvd7ZWxbWroulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyl +dI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1Zmne3yzxbrww2ywkEtvrNTVokMsAsJch +PXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJuiGMx1I4S+6+JNM3GOGvDC ++Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8wHQYDVR0O +BBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8E +BTADAQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBl +MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFk +ZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENB +IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxtZBsfzQ3duQH6lmM0MkhHma6X +7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0PhiVYrqW9yTkkz +43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY +eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJl +pz/+0WatC7xrmYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOA +WiFeIc9TVPC6b4nbqKqVz4vjccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk= +-----END CERTIFICATE----- Copied: stable/12/secure/caroot/trusted/AffirmTrust_Commercial.pem (from r353095, head/secure/caroot/trusted/AffirmTrust_Commercial.pem) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/secure/caroot/trusted/AffirmTrust_Commercial.pem Mon Apr 27 21:41:00 2020 (r360395, copy of r353095, head/secure/caroot/trusted/AffirmTrust_Commercial.pem) @@ -0,0 +1,89 @@ +## +## AffirmTrust Commercial +## +## This is a single X.509 certificate for a public Certificate +## Authority (CA). It was automatically extracted from Mozilla's +## root CA list (the file `certdata.txt' in security/nss). +## +## Extracted from nss +## with $FreeBSD: head/secure/caroot/MAca-bundle.pl 352951 2019-10-02 01:27:50Z kevans $ +## +## @generated +## +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 8608355977964138876 (0x7777062726a9b17c) + Signature Algorithm: sha256WithRSAEncryption + Issuer: C = US, O = AffirmTrust, CN = AffirmTrust Commercial + Validity + Not Before: Jan 29 14:06:06 2010 GMT + Not After : Dec 31 14:06:06 2030 GMT + Subject: C = US, O = AffirmTrust, CN = AffirmTrust Commercial + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + RSA Public-Key: (2048 bit) + Modulus: + 00:f6:1b:4f:67:07:2b:a1:15:f5:06:22:cb:1f:01: + b2:e3:73:45:06:44:49:2c:bb:49:25:14:d6:ce:c3: + b7:ab:2c:4f:c6:41:32:94:57:fa:12:a7:5b:0e:e2: + 8f:1f:1e:86:19:a7:aa:b5:2d:b9:5f:0d:8a:c2:af: + 85:35:79:32:2d:bb:1c:62:37:f2:b1:5b:4a:3d:ca: + cd:71:5f:e9:42:be:94:e8:c8:de:f9:22:48:64:c6: + e5:ab:c6:2b:6d:ad:05:f0:fa:d5:0b:cf:9a:e5:f0: + 50:a4:8b:3b:47:a5:23:5b:7a:7a:f8:33:3f:b8:ef: + 99:97:e3:20:c1:d6:28:89:cf:94:fb:b9:45:ed:e3: + 40:17:11:d4:74:f0:0b:31:e2:2b:26:6a:9b:4c:57: + ae:ac:20:3e:ba:45:7a:05:f3:bd:9b:69:15:ae:7d: + 4e:20:63:c4:35:76:3a:07:02:c9:37:fd:c7:47:ee: + e8:f1:76:1d:73:15:f2:97:a4:b5:c8:7a:79:d9:42: + aa:2b:7f:5c:fe:ce:26:4f:a3:66:81:35:af:44:ba: + 54:1e:1c:30:32:65:9d:e6:3c:93:5e:50:4e:7a:e3: + 3a:d4:6e:cc:1a:fb:f9:d2:37:ae:24:2a:ab:57:03: + 22:28:0d:49:75:7f:b7:28:da:75:bf:8e:e3:dc:0e: + 79:31 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Subject Key Identifier: + 9D:93:C6:53:8B:5E:CA:AF:3F:9F:1E:0F:E5:99:95:BC:24:F6:94:8F + X509v3 Basic Constraints: critical + CA:TRUE + X509v3 Key Usage: critical + Certificate Sign, CRL Sign + Signature Algorithm: sha256WithRSAEncryption + 58:ac:f4:04:0e:cd:c0:0d:ff:0a:fd:d4:ba:16:5f:29:bd:7b: + 68:99:58:49:d2:b4:1d:37:4d:7f:27:7d:46:06:5d:43:c6:86: + 2e:3e:73:b2:26:7d:4f:93:a9:b6:c4:2a:9a:ab:21:97:14:b1: + de:8c:d3:ab:89:15:d8:6b:24:d4:f1:16:ae:d8:a4:5c:d4:7f: + 51:8e:ed:18:01:b1:93:63:bd:bc:f8:61:80:9a:9e:b1:ce:42: + 70:e2:a9:7d:06:25:7d:27:a1:fe:6f:ec:b3:1e:24:da:e3:4b: + 55:1a:00:3b:35:b4:3b:d9:d7:5d:30:fd:81:13:89:f2:c2:06: + 2b:ed:67:c4:8e:c9:43:b2:5c:6b:15:89:02:bc:62:fc:4e:f2: + b5:33:aa:b2:6f:d3:0a:a2:50:e3:f6:3b:e8:2e:44:c2:db:66: + 38:a9:33:56:48:f1:6d:1b:33:8d:0d:8c:3f:60:37:9d:d3:ca: + 6d:7e:34:7e:0d:9f:72:76:8b:1b:9f:72:fd:52:35:41:45:02: + 96:2f:1c:b2:9a:73:49:21:b1:49:47:45:47:b4:ef:6a:34:11: + c9:4d:9a:cc:59:b7:d6:02:9e:5a:4e:65:b5:94:ae:1b:df:29: + b0:16:f1:bf:00:9e:07:3a:17:64:b5:04:b5:23:21:99:0a:95: + 3b:97:7c:ef +SHA1 Fingerprint=F9:B5:B6:32:45:5F:9C:BE:EC:57:5F:80:DC:E9:6E:2C:C7:B2:78:B7 +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UE +BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz +dCBDb21tZXJjaWFsMB4XDTEwMDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDEL +MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp +cm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6EqdbDuKP +Hx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yr +ba0F8PrVC8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPAL +MeIrJmqbTFeurCA+ukV6BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1 +yHp52UKqK39c/s4mT6NmgTWvRLpUHhwwMmWd5jyTXlBOeuM61G7MGvv50jeuJCqr +VwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNVHQ4EFgQUnZPGU4teyq8/ +nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ +KoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYG +XUPGhi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNj +vbz4YYCanrHOQnDiqX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivt +Z8SOyUOyXGsViQK8YvxO8rUzqrJv0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9g +N53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0khsUlHRUe072o0EclNmsxZt9YC +nlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8= +-----END CERTIFICATE----- Copied: stable/12/secure/caroot/trusted/AffirmTrust_Networking.pem (from r353095, head/secure/caroot/trusted/AffirmTrust_Networking.pem) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/secure/caroot/trusted/AffirmTrust_Networking.pem Mon Apr 27 21:41:00 2020 (r360395, copy of r353095, head/secure/caroot/trusted/AffirmTrust_Networking.pem) @@ -0,0 +1,89 @@ +## +## AffirmTrust Networking +## +## This is a single X.509 certificate for a public Certificate +## Authority (CA). It was automatically extracted from Mozilla's +## root CA list (the file `certdata.txt' in security/nss). +## +## Extracted from nss +## with $FreeBSD: head/secure/caroot/MAca-bundle.pl 352951 2019-10-02 01:27:50Z kevans $ +## +## @generated +## +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 8957382827206547757 (0x7c4f04391cd4992d) + Signature Algorithm: sha1WithRSAEncryption + Issuer: C = US, O = AffirmTrust, CN = AffirmTrust Networking + Validity + Not Before: Jan 29 14:08:24 2010 GMT + Not After : Dec 31 14:08:24 2030 GMT + Subject: C = US, O = AffirmTrust, CN = AffirmTrust Networking + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + RSA Public-Key: (2048 bit) + Modulus: + 00:b4:84:cc:33:17:2e:6b:94:6c:6b:61:52:a0:eb: + a3:cf:79:94:4c:e5:94:80:99:cb:55:64:44:65:8f: + 67:64:e2:06:e3:5c:37:49:f6:2f:9b:84:84:1e:2d: + f2:60:9d:30:4e:cc:84:85:e2:2c:cf:1e:9e:fe:36: + ab:33:77:35:44:d8:35:96:1a:3d:36:e8:7a:0e:d8: + d5:47:a1:6a:69:8b:d9:fc:bb:3a:ae:79:5a:d5:f4: + d6:71:bb:9a:90:23:6b:9a:b7:88:74:87:0c:1e:5f: + b9:9e:2d:fa:ab:53:2b:dc:bb:76:3e:93:4c:08:08: + 8c:1e:a2:23:1c:d4:6a:ad:22:ba:99:01:2e:6d:65: + cb:be:24:66:55:24:4b:40:44:b1:1b:d7:e1:c2:85: + c0:de:10:3f:3d:ed:b8:fc:f1:f1:23:53:dc:bf:65: + 97:6f:d9:f9:40:71:8d:7d:bd:95:d4:ce:be:a0:5e: + 27:23:de:fd:a6:d0:26:0e:00:29:eb:3c:46:f0:3d: + 60:bf:3f:50:d2:dc:26:41:51:9e:14:37:42:04:a3: + 70:57:a8:1b:87:ed:2d:fa:7b:ee:8c:0a:e3:a9:66: + 89:19:cb:41:f9:dd:44:36:61:cf:e2:77:46:c8:7d: + f6:f4:92:81:36:fd:db:34:f1:72:7e:f3:0c:16:bd: + b4:15 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Subject Key Identifier: + 07:1F:D2:E7:9C:DA:C2:6E:A2:40:B4:B0:7A:50:10:50:74:C4:C8:BD + X509v3 Basic Constraints: critical + CA:TRUE + X509v3 Key Usage: critical + Certificate Sign, CRL Sign + Signature Algorithm: sha1WithRSAEncryption + 89:57:b2:16:7a:a8:c2:fd:d6:d9:9b:9b:34:c2:9c:b4:32:14: + 4d:a7:a4:df:ec:be:a7:be:f8:43:db:91:37:ce:b4:32:2e:50: + 55:1a:35:4e:76:43:71:20:ef:93:77:4e:15:70:2e:87:c3:c1: + 1d:6d:dc:cb:b5:27:d4:2c:56:d1:52:53:3a:44:d2:73:c8:c4: + 1b:05:65:5a:62:92:9c:ee:41:8d:31:db:e7:34:ea:59:21:d5: + 01:7a:d7:64:b8:64:39:cd:c9:ed:af:ed:4b:03:48:a7:a0:99: + 01:80:dc:65:a3:36:ae:65:59:48:4f:82:4b:c8:65:f1:57:1d: + e5:59:2e:0a:3f:6c:d8:d1:f5:e5:09:b4:6c:54:00:0a:e0:15: + 4d:87:75:6d:b7:58:96:5a:dd:6d:d2:00:a0:f4:9b:48:be:c3: + 37:a4:ba:36:e0:7c:87:85:97:1a:15:a2:de:2e:a2:5b:bd:af: + 18:f9:90:50:cd:70:59:f8:27:67:47:cb:c7:a0:07:3a:7d:d1: + 2c:5d:6c:19:3a:66:b5:7d:fd:91:6f:82:b1:be:08:93:db:14: + 47:f1:a2:37:c7:45:9e:3c:c7:77:af:64:a8:93:df:f6:69:83: + 82:60:f2:49:42:34:ed:5a:00:54:85:1c:16:36:92:0c:5c:fa: + a6:ad:bf:db +SHA1 Fingerprint=29:36:21:02:8B:20:ED:02:F5:66:C5:32:D1:D6:ED:90:9F:45:00:2F +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UE +BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz +dCBOZXR3b3JraW5nMB4XDTEwMDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDEL +MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp +cm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SEHi3y +YJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbua +kCNrmreIdIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRL +QESxG9fhwoXA3hA/Pe24/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp +6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gbh+0t+nvujArjqWaJGctB+d1ENmHP4ndG +yH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNVHQ4EFgQUBx/S55zawm6i +QLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ +KoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfO +tDIuUFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzu +QY0x2+c06lkh1QF612S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZ +Lgo/bNjR9eUJtGxUAArgFU2HdW23WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4u +olu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9/ZFvgrG+CJPbFEfxojfHRZ48 +x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s= +-----END CERTIFICATE----- Copied: stable/12/secure/caroot/trusted/AffirmTrust_Premium.pem (from r353095, head/secure/caroot/trusted/AffirmTrust_Premium.pem) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/secure/caroot/trusted/AffirmTrust_Premium.pem Mon Apr 27 21:41:00 2020 (r360395, copy of r353095, head/secure/caroot/trusted/AffirmTrust_Premium.pem) @@ -0,0 +1,131 @@ +## +## AffirmTrust Premium +## +## This is a single X.509 certificate for a public Certificate +## Authority (CA). It was automatically extracted from Mozilla's +## root CA list (the file `certdata.txt' in security/nss). +## +## Extracted from nss +## with $FreeBSD: head/secure/caroot/MAca-bundle.pl 352951 2019-10-02 01:27:50Z kevans $ +## +## @generated +## +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 7893706540734352110 (0x6d8c1446b1a60aee) + Signature Algorithm: sha384WithRSAEncryption + Issuer: C = US, O = AffirmTrust, CN = AffirmTrust Premium + Validity + Not Before: Jan 29 14:10:36 2010 GMT + Not After : Dec 31 14:10:36 2040 GMT + Subject: C = US, O = AffirmTrust, CN = AffirmTrust Premium + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + RSA Public-Key: (4096 bit) + Modulus: + 00:c4:12:df:a9:5f:fe:41:dd:dd:f5:9f:8a:e3:f6: + ac:e1:3c:78:9a:bc:d8:f0:7f:7a:a0:33:2a:dc:8d: + 20:5b:ae:2d:6f:e7:93:d9:36:70:6a:68:cf:8e:51: + a3:85:5b:67:04:a0:10:24:6f:5d:28:82:c1:97:57: + d8:48:29:13:b6:e1:be:91:4d:df:85:0c:53:18:9a: + 1e:24:a2:4f:8f:f0:a2:85:0b:cb:f4:29:7f:d2:a4: + 58:ee:26:4d:c9:aa:a8:7b:9a:d9:fa:38:de:44:57: + 15:e5:f8:8c:c8:d9:48:e2:0d:16:27:1d:1e:c8:83: + 85:25:b7:ba:aa:55:41:cc:03:22:4b:2d:91:8d:8b: + e6:89:af:66:c7:e9:ff:2b:e9:3c:ac:da:d2:b3:c3: + e1:68:9c:89:f8:7a:00:56:de:f4:55:95:6c:fb:ba: + 64:dd:62:8b:df:0b:77:32:eb:62:cc:26:9a:9b:bb: + aa:62:83:4c:b4:06:7a:30:c8:29:bf:ed:06:4d:97: + b9:1c:c4:31:2b:d5:5f:bc:53:12:17:9c:99:57:29: + 66:77:61:21:31:07:2e:25:49:9d:18:f2:ee:f3:2b: + 71:8c:b5:ba:39:07:49:77:fc:ef:2e:92:90:05:8d: + 2d:2f:77:7b:ef:43:bf:35:bb:9a:d8:f9:73:a7:2c: + f2:d0:57:ee:28:4e:26:5f:8f:90:68:09:2f:b8:f8: + dc:06:e9:2e:9a:3e:51:a7:d1:22:c4:0a:a7:38:48: + 6c:b3:f9:ff:7d:ab:86:57:e3:ba:d6:85:78:77:ba: + 43:ea:48:7f:f6:d8:be:23:6d:1e:bf:d1:36:6c:58: + 5c:f1:ee:a4:19:54:1a:f5:03:d2:76:e6:e1:8c:bd: + 3c:b3:d3:48:4b:e2:c8:f8:7f:92:a8:76:46:9c:42: + 65:3e:a4:1e:c1:07:03:5a:46:2d:b8:97:f3:b7:d5: + b2:55:21:ef:ba:dc:4c:00:97:fb:14:95:27:33:bf: + e8:43:47:46:d2:08:99:16:60:3b:9a:7e:d2:e6:ed: + 38:ea:ec:01:1e:3c:48:56:49:09:c7:4c:37:00:9e: + 88:0e:c0:73:e1:6f:66:e9:72:47:30:3e:10:e5:0b: + 03:c9:9a:42:00:6c:c5:94:7e:61:c4:8a:df:7f:82: + 1a:0b:59:c4:59:32:77:b3:bc:60:69:56:39:fd:b4: + 06:7b:2c:d6:64:36:d9:bd:48:ed:84:1f:7e:a5:22: + 8f:2a:b8:42:f4:82:b7:d4:53:90:78:4e:2d:1a:fd: + 81:6f:44:d7:3b:01:74:96:42:e0:00:e2:2e:6b:ea: + c5:ee:72:ac:bb:bf:fe:ea:aa:a8:f8:dc:f6:b2:79: + 8a:b6:67 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Subject Key Identifier: + 9D:C0:67:A6:0C:22:D9:26:F5:45:AB:A6:65:52:11:27:D8:45:AC:63 + X509v3 Basic Constraints: critical + CA:TRUE + X509v3 Key Usage: critical + Certificate Sign, CRL Sign + Signature Algorithm: sha384WithRSAEncryption + b3:57:4d:10:62:4e:3a:e4:ac:ea:b8:1c:af:32:23:c8:b3:49: + 5a:51:9c:76:28:8d:79:aa:57:46:17:d5:f5:52:f6:b7:44:e8: + 08:44:bf:18:84:d2:0b:80:cd:c5:12:fd:00:55:05:61:87:41: + dc:b5:24:9e:3c:c4:d8:c8:fb:70:9e:2f:78:96:83:20:36:de: + 7c:0f:69:13:88:a5:75:36:98:08:a6:c6:df:ac:ce:e3:58:d6: + b7:3e:de:ba:f3:eb:34:40:d8:a2:81:f5:78:3f:2f:d5:a5:fc: + d9:a2:d4:5e:04:0e:17:ad:fe:41:f0:e5:b2:72:fa:44:82:33: + 42:e8:2d:58:f7:56:8c:62:3f:ba:42:b0:9c:0c:5c:7e:2e:65: + 26:5c:53:4f:00:b2:78:7e:a1:0d:99:2d:8d:b8:1d:8e:a2:c4: + b0:fd:60:d0:30:a4:8e:c8:04:62:a9:c4:ed:35:de:7a:97:ed: + 0e:38:5e:92:2f:93:70:a5:a9:9c:6f:a7:7d:13:1d:7e:c6:08: + 48:b1:5e:67:eb:51:08:25:e9:e6:25:6b:52:29:91:9c:d2:39: + 73:08:57:de:99:06:b4:5b:9d:10:06:e1:c2:00:a8:b8:1c:4a: + 02:0a:14:d0:c1:41:ca:fb:8c:35:21:7d:82:38:f2:a9:54:91: + 19:35:93:94:6d:6a:3a:c5:b2:d0:bb:89:86:93:e8:9b:c9:0f: + 3a:a7:7a:b8:a1:f0:78:46:fa:fc:37:2f:e5:8a:84:f3:df:fe: + 04:d9:a1:68:a0:2f:24:e2:09:95:06:d5:95:ca:e1:24:96:eb: + 7c:f6:93:05:bb:ed:73:e9:2d:d1:75:39:d7:e7:24:db:d8:4e: + 5f:43:8f:9e:d0:14:39:bf:55:70:48:99:57:31:b4:9c:ee:4a: + 98:03:96:30:1f:60:06:ee:1b:23:fe:81:60:23:1a:47:62:85: + a5:cc:19:34:80:6f:b3:ac:1a:e3:9f:f0:7b:48:ad:d5:01:d9: + 67:b6:a9:72:93:ea:2d:66:b5:b2:b8:e4:3d:3c:b2:ef:4c:8c: + ea:eb:07:bf:ab:35:9a:55:86:bc:18:a6:b5:a8:5e:b4:83:6c: + 6b:69:40:d3:9f:dc:f1:c3:69:6b:b9:e1:6d:09:f4:f1:aa:50: + 76:0a:7a:7d:7a:17:a1:55:96:42:99:31:09:dd:60:11:8d:05: + 30:7e:e6:8e:46:d1:9d:14:da:c7:17:e4:05:96:8c:c4:24:b5: + 1b:cf:14:07:b2:40:f8:a3:9e:41:86:bc:04:d0:6b:96:c8:2a: + 80:34:fd:bf:ef:06:a3:dd:58:c5:85:3d:3e:8f:fe:9e:29:e0: + b6:b8:09:68:19:1c:18:43 +SHA1 Fingerprint=D8:A6:33:2C:E0:03:6F:B1:85:F6:63:4F:7D:6A:06:65:26:32:28:27 +-----BEGIN CERTIFICATE----- +MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UE +BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVz +dCBQcmVtaXVtMB4XDTEwMDEyOTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkG +A1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1U +cnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxBLf +qV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtnBKAQ +JG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ ++jjeRFcV5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrS +s8PhaJyJ+HoAVt70VZVs+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5 +HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmdGPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d7 +70O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5Rp9EixAqnOEhss/n/fauG +V+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NIS+LI+H+S +qHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S +5u046uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4Ia +C1nEWTJ3s7xgaVY5/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TX +OwF0lkLgAOIua+rF7nKsu7/+6qqo+Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYE +FJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByvMiPIs0laUZx2 +KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg +Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B +8OWycvpEgjNC6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQ +MKSOyARiqcTtNd56l+0OOF6SL5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc +0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK+4w1IX2COPKpVJEZNZOUbWo6xbLQ +u4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmVBtWVyuEklut89pMF +u+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFgIxpH +YoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8 +GKa1qF60g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaO +RtGdFNrHF+QFlozEJLUbzxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6e +KeC2uAloGRwYQw== +-----END CERTIFICATE----- Copied: stable/12/secure/caroot/trusted/AffirmTrust_Premium_ECC.pem (from r353095, head/secure/caroot/trusted/AffirmTrust_Premium_ECC.pem) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/secure/caroot/trusted/AffirmTrust_Premium_ECC.pem Mon Apr 27 21:41:00 2020 (r360395, copy of r353095, head/secure/caroot/trusted/AffirmTrust_Premium_ECC.pem) @@ -0,0 +1,63 @@ +## +## AffirmTrust Premium ECC +## +## This is a single X.509 certificate for a public Certificate +## Authority (CA). It was automatically extracted from Mozilla's +## root CA list (the file `certdata.txt' in security/nss). +## +## Extracted from nss +## with $FreeBSD: head/secure/caroot/MAca-bundle.pl 352951 2019-10-02 01:27:50Z kevans $ +## +## @generated +## +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 8401224907861490260 (0x7497258ac73f7a54) + Signature Algorithm: ecdsa-with-SHA384 + Issuer: C = US, O = AffirmTrust, CN = AffirmTrust Premium ECC + Validity + Not Before: Jan 29 14:20:24 2010 GMT + Not After : Dec 31 14:20:24 2040 GMT + Subject: C = US, O = AffirmTrust, CN = AffirmTrust Premium ECC + Subject Public Key Info: + Public Key Algorithm: id-ecPublicKey + Public-Key: (384 bit) + pub: + 04:0d:30:5e:1b:15:9d:03:d0:a1:79:35:b7:3a:3c: + 92:7a:ca:15:1c:cd:62:f3:9c:26:5c:07:3d:e5:54: + fa:a3:d6:cc:12:ea:f4:14:5f:e8:8e:19:ab:2f:2e: + 48:e6:ac:18:43:78:ac:d0:37:c3:bd:b2:cd:2c:e6: *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Mon Apr 27 21: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 CD9672C7865; Mon, 27 Apr 2020 21:44:02 +0000 (UTC) (envelope-from cperciva@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 499yw24tFMz3FSb; Mon, 27 Apr 2020 21:44:02 +0000 (UTC) (envelope-from cperciva@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 A2B7D1962F; Mon, 27 Apr 2020 21:44:02 +0000 (UTC) (envelope-from cperciva@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03RLi2LD000352; Mon, 27 Apr 2020 21:44:02 GMT (envelope-from cperciva@FreeBSD.org) Received: (from cperciva@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RLi2F7000351; Mon, 27 Apr 2020 21:44:02 GMT (envelope-from cperciva@FreeBSD.org) Message-Id: <202004272144.03RLi2F7000351@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cperciva set sender to cperciva@FreeBSD.org using -f From: Colin Percival Date: Mon, 27 Apr 2020 21:44:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360396 - head/release/tools X-SVN-Group: head X-SVN-Commit-Author: cperciva X-SVN-Commit-Paths: head/release/tools X-SVN-Commit-Revision: 360396 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, 27 Apr 2020 21:44:02 -0000 Author: cperciva Date: Mon Apr 27 21:44:02 2020 New Revision: 360396 URL: https://svnweb.freebsd.org/changeset/base/360396 Log: Set use_nvd=0 in EC2 AMIs. FreeBSD is in the process of switching from nvd(4) to nda(4) as the disk device front-end to NVMe. Changing the default in the kernel is tricky since existing systems may have /dev/nvd* hard-coded e.g. in /etc/fstab; however, there's no reason to not change the default in HEAD for *new* systems. At present I have no intention of MFCing this to stable branches, since someone might reasonably expect scripts they use for launching and configuring FreeBSD 12.1 instances to work with FreeBSD 12.2 AMIs, for example. Reviewed by: gjb, imp Relnotes: NVMe disks in EC2 instances launched from 13.0 and later now show up as nda(4) devices. Differential Revision: https://reviews.freebsd.org/D24583 Modified: head/release/tools/ec2.conf Modified: head/release/tools/ec2.conf ============================================================================== --- head/release/tools/ec2.conf Mon Apr 27 21:41:00 2020 (r360395) +++ head/release/tools/ec2.conf Mon Apr 27 21:44:02 2020 (r360396) @@ -98,6 +98,10 @@ vm_extra_pre_umount() { # Load the kernel module for the Amazon "Elastic Network Adapter" echo 'if_ena_load="YES"' >> ${DESTDIR}/boot/loader.conf + # Use the "nda" driver for accessing NVMe disks rather than the + # historical "nvd" driver. + echo 'hw.nvme.use_nvd="0"' >> ${DESTDIR}/boot/loader.conf + # Disable ChallengeResponseAuthentication according to EC2 # requirements. sed -i '' -e \ From owner-svn-src-all@freebsd.org Mon Apr 27 21:51: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 A0F482C7A70; Mon, 27 Apr 2020 21:51:23 +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 499z4W3ghdz3FtL; Mon, 27 Apr 2020 21:51:23 +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 7972619795; Mon, 27 Apr 2020 21:51:23 +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 03RLpN4P002294; Mon, 27 Apr 2020 21:51:23 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RLpNLG002293; Mon, 27 Apr 2020 21:51:23 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202004272151.03RLpNLG002293@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Mon, 27 Apr 2020 21:51:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360397 - in head/sys: conf riscv/conf X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in head/sys: conf riscv/conf X-SVN-Commit-Revision: 360397 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, 27 Apr 2020 21:51:23 -0000 Author: jhb Date: Mon Apr 27 21:51:22 2020 New Revision: 360397 URL: https://svnweb.freebsd.org/changeset/base/360397 Log: Retire the GENERICSF kernel config. Now that hw.machine_arch handles soft-float vs hard-float there is no longer a reason for this config. Submitted by: mhorne (kern.mk hunk) Reviewed by: imp (earlier version), kp Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D24544 Deleted: head/sys/riscv/conf/GENERICSF Modified: head/sys/conf/Makefile.riscv head/sys/conf/kern.mk Modified: head/sys/conf/Makefile.riscv ============================================================================== --- head/sys/conf/Makefile.riscv Mon Apr 27 21:44:02 2020 (r360396) +++ head/sys/conf/Makefile.riscv Mon Apr 27 21:51:22 2020 (r360397) @@ -19,7 +19,7 @@ # # Which version of config(8) is required. -%VERSREQ= 600017 +%VERSREQ= 600012 .if !defined(S) S= ../../.. Modified: head/sys/conf/kern.mk ============================================================================== --- head/sys/conf/kern.mk Mon Apr 27 21:44:02 2020 (r360396) +++ head/sys/conf/kern.mk Mon Apr 27 21:51:22 2020 (r360397) @@ -150,11 +150,7 @@ INLINE_LIMIT?= 8000 # code model as "medium" and "medany" respectively. # .if ${MACHINE_CPUARCH} == "riscv" -.if ${MACHINE_ARCH:Mriscv*sf} -CFLAGS+= -march=rv64imac -.else CFLAGS+= -march=rv64imafdc -.endif CFLAGS+= -mabi=lp64 CFLAGS.clang+= -mcmodel=medium CFLAGS.gcc+= -mcmodel=medany From owner-svn-src-all@freebsd.org Mon Apr 27 22:02: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 24DB22C8067; Mon, 27 Apr 2020 22:02:45 +0000 (UTC) (envelope-from erj@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 499zKd0C1Bz3GgM; Mon, 27 Apr 2020 22:02:45 +0000 (UTC) (envelope-from erj@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 0219219A09; Mon, 27 Apr 2020 22:02:45 +0000 (UTC) (envelope-from erj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03RM2iU2012759; Mon, 27 Apr 2020 22:02:44 GMT (envelope-from erj@FreeBSD.org) Received: (from erj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RM2iR2012757; Mon, 27 Apr 2020 22:02:44 GMT (envelope-from erj@FreeBSD.org) Message-Id: <202004272202.03RM2iR2012757@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: erj set sender to erj@FreeBSD.org using -f From: Eric Joyner Date: Mon, 27 Apr 2020 22:02:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360398 - head/sys/net X-SVN-Group: head X-SVN-Commit-Author: erj X-SVN-Commit-Paths: head/sys/net X-SVN-Commit-Revision: 360398 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, 27 Apr 2020 22:02:45 -0000 Author: erj Date: Mon Apr 27 22:02:44 2020 New Revision: 360398 URL: https://svnweb.freebsd.org/changeset/base/360398 Log: iflib: Stop interface before (un)registering VLAN This patch is intended to solve a specific problem that iavf(4) encounters, but what it does can be extended to solve other issues. To summarize the iavf(4) issue, if the PF driver configures VLAN anti-spoof, then the VF driver needs to make sure no untagged traffic is sent if a VLAN is configured, and vice-versa. This can be an issue when a VLAN is being registered or unregistered, e.g. when a packet may be on the ring with a VLAN in it, but the VLANs are being unregistered. This can cause that tagged packet to go out and cause an MDD event. To fix this, include a new interface-dependent function that drivers can implement named IFDI_NEEDS_RESTART(). Right now, this function is called in iflib_vlan_unregister/register() to determine whether the interface needs to be stopped and started when a VLAN is registered or unregistered. The default return value of IFDI_NEEDS_RESTART() is true, so this fixes the MDD problem that iavf(4) encounters, since the interface rings are flushed during a stop/init. A future change to iavf(4) will implement that function just in case the default value changes, and to make it explicit that this interface reset is required when a VLAN is added or removed. Reviewed by: gallatin@ MFC after: 1 week Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D22086 Modified: head/sys/net/ifdi_if.m head/sys/net/iflib.c head/sys/net/iflib.h Modified: head/sys/net/ifdi_if.m ============================================================================== --- head/sys/net/ifdi_if.m Mon Apr 27 21:51:22 2020 (r360397) +++ head/sys/net/ifdi_if.m Mon Apr 27 22:02:44 2020 (r360398) @@ -169,6 +169,12 @@ CODE { } return (0); } + + static bool + null_needs_restart(if_ctx_t _ctx __unused, enum iflib_restart_event _event __unused) + { + return (true); + } }; # @@ -456,3 +462,8 @@ METHOD int sysctl_int_delay { METHOD void debug { if_ctx_t _ctx; } DEFAULT null_void_op; + +METHOD bool needs_restart { + if_ctx_t _ctx; + enum iflib_restart_event _event; +} DEFAULT null_needs_restart; Modified: head/sys/net/iflib.c ============================================================================== --- head/sys/net/iflib.c Mon Apr 27 21:51:22 2020 (r360397) +++ head/sys/net/iflib.c Mon Apr 27 22:02:44 2020 (r360398) @@ -4308,10 +4308,13 @@ iflib_vlan_register(void *arg, if_t ifp, uint16_t vtag return; CTX_LOCK(ctx); + /* Driver may need all untagged packets to be flushed */ + if (IFDI_NEEDS_RESTART(ctx, IFLIB_RESTART_VLAN_CONFIG)) + iflib_stop(ctx); IFDI_VLAN_REGISTER(ctx, vtag); - /* Re-init to load the changes */ - if (if_getcapenable(ifp) & IFCAP_VLAN_HWFILTER) - iflib_if_init_locked(ctx); + /* Re-init to load the changes, if required */ + if (IFDI_NEEDS_RESTART(ctx, IFLIB_RESTART_VLAN_CONFIG)) + iflib_init_locked(ctx); CTX_UNLOCK(ctx); } @@ -4327,10 +4330,13 @@ iflib_vlan_unregister(void *arg, if_t ifp, uint16_t vt return; CTX_LOCK(ctx); + /* Driver may need all tagged packets to be flushed */ + if (IFDI_NEEDS_RESTART(ctx, IFLIB_RESTART_VLAN_CONFIG)) + iflib_stop(ctx); IFDI_VLAN_UNREGISTER(ctx, vtag); - /* Re-init to load the changes */ - if (if_getcapenable(ifp) & IFCAP_VLAN_HWFILTER) - iflib_if_init_locked(ctx); + /* Re-init to load the changes, if required */ + if (IFDI_NEEDS_RESTART(ctx, IFLIB_RESTART_VLAN_CONFIG)) + iflib_init_locked(ctx); CTX_UNLOCK(ctx); } Modified: head/sys/net/iflib.h ============================================================================== --- head/sys/net/iflib.h Mon Apr 27 21:51:22 2020 (r360397) +++ head/sys/net/iflib.h Mon Apr 27 22:02:44 2020 (r360398) @@ -377,6 +377,15 @@ typedef enum { #define IFLIB_SINGLE_IRQ_RX_ONLY 0x40000 /* + * These enum values are used in iflib_needs_restart to indicate to iflib + * functions whether or not the interface needs restarting when certain events + * happen. + */ +enum iflib_restart_event { + IFLIB_RESTART_VLAN_CONFIG, +}; + +/* * field accessors */ void *iflib_get_softc(if_ctx_t ctx); From owner-svn-src-all@freebsd.org Mon Apr 27 22:27: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 48B172C8664; Mon, 27 Apr 2020 22:27:36 +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 499ztJ1Cc3z3HqN; Mon, 27 Apr 2020 22:27:36 +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 0AB5E19E03; Mon, 27 Apr 2020 22:27:36 +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 03RMRZkg025515; Mon, 27 Apr 2020 22:27:35 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RMRZOf025514; Mon, 27 Apr 2020 22:27:35 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202004272227.03RMRZOf025514@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Mon, 27 Apr 2020 22:27:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360399 - head/usr.sbin/bhyve X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head/usr.sbin/bhyve X-SVN-Commit-Revision: 360399 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, 27 Apr 2020 22:27:36 -0000 Author: jhb Date: Mon Apr 27 22:27:35 2020 New Revision: 360399 URL: https://svnweb.freebsd.org/changeset/base/360399 Log: Update the cached MSI state when any MSI capability register is written. bhyve uses cached copies of the MSI capability registers to generate MSI interrupts for device models. Previously, these cached fields were only set when the MSI capability control register was updated. The Linux kernel recently adopted a change to deal with races in MSI interrupt delivery that writes to the MSI capability address and data registers to alter the destination of MSI interrupts without writing to the MSI capability control register. bhyve was not updating its cached registers for these writes and continued to send interrupts with the old data value to the old address. Fix this by recomputing the cached values for every write to any MSI capability register. Reported by: Jason Tubnor, Ryan Moeller Reported by: Marc Dionne (bisected the Linux kernel commit) Reviewed by: grehan MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D24593 Modified: head/usr.sbin/bhyve/pci_emul.c Modified: head/usr.sbin/bhyve/pci_emul.c ============================================================================== --- head/usr.sbin/bhyve/pci_emul.c Mon Apr 27 22:02:44 2020 (r360398) +++ head/usr.sbin/bhyve/pci_emul.c Mon Apr 27 22:27:35 2020 (r360399) @@ -915,26 +915,26 @@ msicap_cfgwrite(struct pci_devinst *pi, int capoff, in msgctrl &= ~rwmask; msgctrl |= val & rwmask; val = msgctrl; + } + CFGWRITE(pi, offset, val, bytes); - addrlo = pci_get_cfgdata32(pi, capoff + 4); - if (msgctrl & PCIM_MSICTRL_64BIT) - msgdata = pci_get_cfgdata16(pi, capoff + 12); - else - msgdata = pci_get_cfgdata16(pi, capoff + 8); + msgctrl = pci_get_cfgdata16(pi, capoff + 2); + addrlo = pci_get_cfgdata32(pi, capoff + 4); + if (msgctrl & PCIM_MSICTRL_64BIT) + msgdata = pci_get_cfgdata16(pi, capoff + 12); + else + msgdata = pci_get_cfgdata16(pi, capoff + 8); - mme = msgctrl & PCIM_MSICTRL_MME_MASK; - pi->pi_msi.enabled = msgctrl & PCIM_MSICTRL_MSI_ENABLE ? 1 : 0; - if (pi->pi_msi.enabled) { - pi->pi_msi.addr = addrlo; - pi->pi_msi.msg_data = msgdata; - pi->pi_msi.maxmsgnum = 1 << (mme >> 4); - } else { - pi->pi_msi.maxmsgnum = 0; - } - pci_lintr_update(pi); + mme = msgctrl & PCIM_MSICTRL_MME_MASK; + pi->pi_msi.enabled = msgctrl & PCIM_MSICTRL_MSI_ENABLE ? 1 : 0; + if (pi->pi_msi.enabled) { + pi->pi_msi.addr = addrlo; + pi->pi_msi.msg_data = msgdata; + pi->pi_msi.maxmsgnum = 1 << (mme >> 4); + } else { + pi->pi_msi.maxmsgnum = 0; } - - CFGWRITE(pi, offset, val, bytes); + pci_lintr_update(pi); } void From owner-svn-src-all@freebsd.org Mon Apr 27 22:27: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 212362C869F; Mon, 27 Apr 2020 22:27: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 499ztW07x3z3Hxj; Mon, 27 Apr 2020 22:27:47 +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 EF57019E05; Mon, 27 Apr 2020 22:27: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 03RMRkbb025574; Mon, 27 Apr 2020 22:27:46 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RMRkOl025573; Mon, 27 Apr 2020 22:27:46 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004272227.03RMRkOl025573@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 27 Apr 2020 22:27:46 +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: r360400 - in stable: 11/sys/sys 12/sys/sys X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/sys/sys 12/sys/sys X-SVN-Commit-Revision: 360400 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, 27 Apr 2020 22:27:47 -0000 Author: kevans Date: Mon Apr 27 22:27:46 2020 New Revision: 360400 URL: https://svnweb.freebsd.org/changeset/base/360400 Log: MFC r359954: sys/types.h: adjust #endif comment to match reality Modified: stable/11/sys/sys/types.h Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/sys/sys/types.h Directory Properties: stable/12/ (props changed) Modified: stable/11/sys/sys/types.h ============================================================================== --- stable/11/sys/sys/types.h Mon Apr 27 22:27:35 2020 (r360399) +++ stable/11/sys/sys/types.h Mon Apr 27 22:27:46 2020 (r360400) @@ -291,7 +291,7 @@ typedef _Bool bool; #define offsetof(type, field) __offsetof(type, field) -#endif /* !_KERNEL */ +#endif /* _KERNEL */ /* * The following are all things that really shouldn't exist in this header, From owner-svn-src-all@freebsd.org Mon Apr 27 22:27: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 07DAC2C86AE; Mon, 27 Apr 2020 22:27:48 +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 499ztW2NRqz3Hxm; Mon, 27 Apr 2020 22:27:47 +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 4C64719E06; Mon, 27 Apr 2020 22:27:47 +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 03RMRlZx025580; Mon, 27 Apr 2020 22:27:47 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RMRlUF025579; Mon, 27 Apr 2020 22:27:47 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004272227.03RMRlUF025579@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 27 Apr 2020 22:27:47 +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: r360400 - in stable: 11/sys/sys 12/sys/sys X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/sys/sys 12/sys/sys X-SVN-Commit-Revision: 360400 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, 27 Apr 2020 22:27:48 -0000 Author: kevans Date: Mon Apr 27 22:27:46 2020 New Revision: 360400 URL: https://svnweb.freebsd.org/changeset/base/360400 Log: MFC r359954: sys/types.h: adjust #endif comment to match reality Modified: stable/12/sys/sys/types.h Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/sys/sys/types.h Directory Properties: stable/11/ (props changed) Modified: stable/12/sys/sys/types.h ============================================================================== --- stable/12/sys/sys/types.h Mon Apr 27 22:27:35 2020 (r360399) +++ stable/12/sys/sys/types.h Mon Apr 27 22:27:46 2020 (r360400) @@ -302,7 +302,7 @@ typedef _Bool bool; #define offsetof(type, field) __offsetof(type, field) -#endif /* !_KERNEL */ +#endif /* _KERNEL */ /* * The following are all things that really shouldn't exist in this header, From owner-svn-src-all@freebsd.org Mon Apr 27 22:29: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 B13612C8883; Mon, 27 Apr 2020 22:29: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 499zwP4CdDz3JFF; Mon, 27 Apr 2020 22:29: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 8B32E19E23; Mon, 27 Apr 2020 22:29: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 03RMTPvX025739; Mon, 27 Apr 2020 22:29:25 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RMTODh025735; Mon, 27 Apr 2020 22:29:24 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004272229.03RMTODh025735@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 27 Apr 2020 22:29: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: r360401 - in stable/12: stand/defaults sys/kern sys/sys X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable/12: stand/defaults sys/kern sys/sys X-SVN-Commit-Revision: 360401 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, 27 Apr 2020 22:29:25 -0000 Author: kevans Date: Mon Apr 27 22:29:24 2020 New Revision: 360401 URL: https://svnweb.freebsd.org/changeset/base/360401 Log: MFC r359953, r359980, r359999: hostuuid preload r359953: kern uuid: break format validation out into a separate KPI This new KPI, validate_uuid, strictly validates the formatting of the input UUID and, optionally, populates a given struct uuid. As noted in the header, the key differences are that the new KPI won't recognize an empty string as a nil UUID and it won't do any kind of semantic validation on it. Also key is that populating a struct uuid is optional, so the caller doesn't necessarily need to allocate a bogus one on the stack just to validate the string. This KPI has specifically been broken out in support of D24288, which will preload /etc/hostid in loader so that early boot hostuuid users (e.g. anything that calls ether_gen_addr) can have a valid hostuuid to work with once it's been stashed in /etc/hostid. r359980: validate_uuid: absorb the rest of parse_uuid with a flags arg This makes the naming annoyance (validate_uuid vs. parse_uuid) less of an issue and centralizes all of the functionality into the new KPI while still making the extra validation optional. The end-result is all the same as far as hostuuid validation-only goes. r359999: Preload hostuuid for early-boot use prison0's hostuuid will get set by the hostid rc script, either after generating it and saving it to /etc/hostid or by simply reading /etc/hostid. Some things (e.g. arbitrary MAC address generation) may use the hostuuid as a factor in early boot, so providing a way to read /etc/hostid (if it's available) and using it before userland starts up is desirable. The code is written such that the preload doesn't *have* to be /etc/hostid, thus not assuming that there will be newline at the end of the buffer or even the exact shape of the newline. White trailing whitespace/non-printables trimmed, the result will be validated as a valid uuid before it's used for early boot purposes. The preload can be turned off with hostuuid_load="NO" in /boot/loader.conf, just as other preloads; it's worth noting that this is a 37-byte file, the overhead is believed to be generally minimal. It doesn't seem necessary at this time to be concerned with kern.hostid. One does wonder if we should consider validating hostuuids coming in via jail_set(2); some bits seem to care about uuid form and we bother validating format of smbios-provided uuid and in-fact whatever uuid comes from /etc/hostid. Modified: stable/12/stand/defaults/loader.conf stable/12/sys/kern/kern_jail.c stable/12/sys/kern/kern_uuid.c stable/12/sys/sys/uuid.h Directory Properties: stable/12/ (props changed) Modified: stable/12/stand/defaults/loader.conf ============================================================================== --- stable/12/stand/defaults/loader.conf Mon Apr 27 22:27:46 2020 (r360400) +++ stable/12/stand/defaults/loader.conf Mon Apr 27 22:29:24 2020 (r360401) @@ -33,6 +33,11 @@ bitmap_type="splash_image_data" # and place it on the screensave_load="NO" # Set to YES to load a screensaver module screensave_name="green_saver" # Set to the name of the screensaver module +### Early hostid configuration ############################ +hostuuid_load="YES" +hostuuid_name="/etc/hostid" +hostuuid_type="hostuuid" + ### Random number generator configuration ################## # See rc.conf(5). The entropy_boot_file config variable must agree with the # settings below. Modified: stable/12/sys/kern/kern_jail.c ============================================================================== --- stable/12/sys/kern/kern_jail.c Mon Apr 27 22:27:46 2020 (r360400) +++ stable/12/sys/kern/kern_jail.c Mon Apr 27 22:29:24 2020 (r360401) @@ -48,6 +48,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -61,6 +62,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -75,6 +77,7 @@ __FBSDID("$FreeBSD$"); #include #define DEFAULT_HOSTUUID "00000000-0000-0000-0000-000000000000" +#define PRISON0_HOSTUUID_MODULE "hostuuid" MALLOC_DEFINE(M_PRISON, "prison", "Prison structures"); static MALLOC_DEFINE(M_PRISON_RACCT, "prison_racct", "Prison racct structures"); @@ -214,10 +217,38 @@ static unsigned jail_max_af_ips = 255; void prison0_init(void) { + uint8_t *file, *data; + size_t size; prison0.pr_cpuset = cpuset_ref(thread0.td_cpuset); prison0.pr_osreldate = osreldate; strlcpy(prison0.pr_osrelease, osrelease, sizeof(prison0.pr_osrelease)); + + /* If we have a preloaded hostuuid, use it. */ + file = preload_search_by_type(PRISON0_HOSTUUID_MODULE); + if (file != NULL) { + data = preload_fetch_addr(file); + size = preload_fetch_size(file); + if (data != NULL) { + /* + * The preloaded data may include trailing whitespace, almost + * certainly a newline; skip over any whitespace or + * non-printable characters to be safe. + */ + while (size > 0 && data[size - 1] <= 0x20) { + data[size--] = '\0'; + } + if (validate_uuid(data, size, NULL, 0) == 0) { + (void)strlcpy(prison0.pr_hostuuid, data, + size + 1); + } else if (bootverbose) { + printf("hostuuid: preload data malformed: '%s'", + data); + } + } + } + if (bootverbose) + printf("hostuuid: using %s\n", prison0.pr_hostuuid); } /* Modified: stable/12/sys/kern/kern_uuid.c ============================================================================== --- stable/12/sys/kern/kern_uuid.c Mon Apr 27 22:27:46 2020 (r360400) +++ stable/12/sys/kern/kern_uuid.c Mon Apr 27 22:29:24 2020 (r360401) @@ -382,19 +382,24 @@ be_uuid_dec(void const *buf, struct uuid *uuid) } int -parse_uuid(const char *str, struct uuid *uuid) +validate_uuid(const char *str, size_t size, struct uuid *uuid, int flags) { u_int c[11]; int n; - /* An empty string represents a nil UUID. */ - if (*str == '\0') { - bzero(uuid, sizeof(*uuid)); - return (0); + if (size == 0 || *str == '\0') { + /* An empty string may represent a nil UUID. */ + if ((flags & VUUIDF_EMPTYOK) != 0) { + if (uuid != NULL) + bzero(uuid, sizeof(*uuid)); + return (0); + } + + return (EINVAL); } /* The UUID string representation has a fixed length. */ - if (strlen(str) != 36) + if (size != 36) return (EINVAL); /* @@ -406,25 +411,39 @@ parse_uuid(const char *str, struct uuid *uuid) if (str[8] != '-') return (EINVAL); + /* Now check the format. */ n = sscanf(str, "%8x-%4x-%4x-%2x%2x-%2x%2x%2x%2x%2x%2x", c + 0, c + 1, c + 2, c + 3, c + 4, c + 5, c + 6, c + 7, c + 8, c + 9, c + 10); /* Make sure we have all conversions. */ if (n != 11) return (EINVAL); - /* Successful scan. Build the UUID. */ - uuid->time_low = c[0]; - uuid->time_mid = c[1]; - uuid->time_hi_and_version = c[2]; - uuid->clock_seq_hi_and_reserved = c[3]; - uuid->clock_seq_low = c[4]; - for (n = 0; n < 6; n++) - uuid->node[n] = c[n + 5]; + /* Successful scan. Build the UUID if requested. */ + if (uuid != NULL) { + uuid->time_low = c[0]; + uuid->time_mid = c[1]; + uuid->time_hi_and_version = c[2]; + uuid->clock_seq_hi_and_reserved = c[3]; + uuid->clock_seq_low = c[4]; + for (n = 0; n < 6; n++) + uuid->node[n] = c[n + 5]; + } - /* Check semantics... */ + if ((flags & VUUIDF_CHECKSEMANTICS) == 0) + return (0); + return (((c[3] & 0x80) != 0x00 && /* variant 0? */ (c[3] & 0xc0) != 0x80 && /* variant 1? */ (c[3] & 0xe0) != 0xc0) ? EINVAL : 0); /* variant 2? */ +} + +#define VUUIDF_PARSEFLAGS (VUUIDF_EMPTYOK | VUUIDF_CHECKSEMANTICS) + +int +parse_uuid(const char *str, struct uuid *uuid) +{ + + return (validate_uuid(str, strlen(str), uuid, VUUIDF_PARSEFLAGS)); } int Modified: stable/12/sys/sys/uuid.h ============================================================================== --- stable/12/sys/sys/uuid.h Mon Apr 27 22:27:46 2020 (r360400) +++ stable/12/sys/sys/uuid.h Mon Apr 27 22:29:24 2020 (r360401) @@ -66,7 +66,20 @@ int uuid_ether_del(const uint8_t *); int snprintf_uuid(char *, size_t, struct uuid *); int printf_uuid(struct uuid *); int sbuf_printf_uuid(struct sbuf *, struct uuid *); + +/* + * validate_uuid will, with no flags passed, validate only the format of the + * passed in UUID. Flags below are available to give it part of or all of the + * functionality that parse_uuid has traditionally had: acknowledging an empty + * string as valid, and checking the semantics of the UUID as well. + */ +int validate_uuid(const char *, size_t, struct uuid *, int); int parse_uuid(const char *, struct uuid *); + +/* Flags to validate_uuid(). */ +#define VUUIDF_EMPTYOK 0x0001 +#define VUUIDF_CHECKSEMANTICS 0x0002 + int uuidcmp(const struct uuid *, const struct uuid *); void be_uuid_dec(void const *buf, struct uuid *uuid); From owner-svn-src-all@freebsd.org Mon Apr 27 22:31: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 56F6E2C8AB4; Mon, 27 Apr 2020 22:31:43 +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 499zz31gzXz3JS4; Mon, 27 Apr 2020 22:31:43 +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 34EDC19E91; Mon, 27 Apr 2020 22:31:43 +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 03RMVhQJ028694; Mon, 27 Apr 2020 22:31:43 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RMVgeR028690; Mon, 27 Apr 2020 22:31:42 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202004272231.03RMVgeR028690@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Mon, 27 Apr 2020 22:31:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360402 - in head/sys: kern netinet sys X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in head/sys: kern netinet sys X-SVN-Commit-Revision: 360402 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, 27 Apr 2020 22:31:43 -0000 Author: jhb Date: Mon Apr 27 22:31:42 2020 New Revision: 360402 URL: https://svnweb.freebsd.org/changeset/base/360402 Log: Add the initial sequence number to the TLS enable socket option. This will be needed for KTLS RX. Reviewed by: gallatin Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D24451 Modified: head/sys/kern/uipc_ktls.c head/sys/netinet/tcp_usrreq.c head/sys/sys/ktls.h Modified: head/sys/kern/uipc_ktls.c ============================================================================== --- head/sys/kern/uipc_ktls.c Mon Apr 27 22:29:24 2020 (r360401) +++ head/sys/kern/uipc_ktls.c Mon Apr 27 22:31:42 2020 (r360402) @@ -957,6 +957,7 @@ ktls_enable_tx(struct socket *so, struct tls_enable *e } SOCKBUF_LOCK(&so->so_snd); + so->so_snd.sb_tls_seqno = be64dec(en->rec_seq); so->so_snd.sb_tls_info = tls; if (tls->mode != TCP_TLS_MODE_SW) so->so_snd.sb_flags |= SB_TLS_IFNET; Modified: head/sys/netinet/tcp_usrreq.c ============================================================================== --- head/sys/netinet/tcp_usrreq.c Mon Apr 27 22:29:24 2020 (r360401) +++ head/sys/netinet/tcp_usrreq.c Mon Apr 27 22:31:42 2020 (r360402) @@ -1823,6 +1823,37 @@ CTASSERT(TCP_CA_NAME_MAX <= TCP_LOG_ID_LEN); CTASSERT(TCP_LOG_REASON_LEN <= TCP_LOG_ID_LEN); #endif +#ifdef KERN_TLS +static int +copyin_tls_enable(struct sockopt *sopt, struct tls_enable *tls) +{ + struct tls_enable_v0 tls_v0; + int error; + + if (sopt->sopt_valsize == sizeof(tls_v0)) { + error = sooptcopyin(sopt, &tls_v0, sizeof(tls_v0), + sizeof(tls_v0)); + if (error) + return (error); + memset(tls, 0, sizeof(*tls)); + tls->cipher_key = tls_v0.cipher_key; + tls->iv = tls_v0.iv; + tls->auth_key = tls_v0.auth_key; + tls->cipher_algorithm = tls_v0.cipher_algorithm; + tls->cipher_key_len = tls_v0.cipher_key_len; + tls->iv_len = tls_v0.iv_len; + tls->auth_algorithm = tls_v0.auth_algorithm; + tls->auth_key_len = tls_v0.auth_key_len; + tls->flags = tls_v0.flags; + tls->tls_vmajor = tls_v0.tls_vmajor; + tls->tls_vminor = tls_v0.tls_vminor; + return (0); + } + + return (sooptcopyin(sopt, tls, sizeof(*tls), sizeof(*tls))); +} +#endif + int tcp_default_ctloutput(struct socket *so, struct sockopt *sopt, struct inpcb *inp, struct tcpcb *tp) { @@ -2034,8 +2065,7 @@ unlock_and_done: #ifdef KERN_TLS case TCP_TXTLS_ENABLE: INP_WUNLOCK(inp); - error = sooptcopyin(sopt, &tls, sizeof(tls), - sizeof(tls)); + error = copyin_tls_enable(sopt, &tls); if (error) break; error = ktls_enable_tx(so, &tls); Modified: head/sys/sys/ktls.h ============================================================================== --- head/sys/sys/ktls.h Mon Apr 27 22:29:24 2020 (r360401) +++ head/sys/sys/ktls.h Mon Apr 27 22:31:42 2020 (r360402) @@ -99,6 +99,22 @@ struct tls_mac_data { #define TLS_MINOR_VER_THREE 4 /* 3, 4 */ /* For TCP_TXTLS_ENABLE */ +#ifdef _KERNEL +struct tls_enable_v0 { + const uint8_t *cipher_key; + const uint8_t *iv; /* Implicit IV. */ + const uint8_t *auth_key; + int cipher_algorithm; /* e.g. CRYPTO_AES_CBC */ + int cipher_key_len; + int iv_len; + int auth_algorithm; /* e.g. CRYPTO_SHA2_256_HMAC */ + int auth_key_len; + int flags; + uint8_t tls_vmajor; + uint8_t tls_vminor; +}; +#endif + struct tls_enable { const uint8_t *cipher_key; const uint8_t *iv; /* Implicit IV. */ @@ -111,6 +127,7 @@ struct tls_enable { int flags; uint8_t tls_vmajor; uint8_t tls_vminor; + uint8_t rec_seq[8]; }; struct tls_session_params { From owner-svn-src-all@freebsd.org Mon Apr 27 22:32: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 EB8B12C8B33; Mon, 27 Apr 2020 22:32: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 499zzh602Zz3Jlr; Mon, 27 Apr 2020 22:32: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 C8B5B19FFC; Mon, 27 Apr 2020 22:32: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 03RMWG8s031759; Mon, 27 Apr 2020 22:32:16 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RMWGef031757; Mon, 27 Apr 2020 22:32:16 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004272232.03RMWGef031757@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 27 Apr 2020 22:32: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: r360403 - in stable/12/usr.bin/diff: . tests X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable/12/usr.bin/diff: . tests X-SVN-Commit-Revision: 360403 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, 27 Apr 2020 22:32:17 -0000 Author: kevans Date: Mon Apr 27 22:32:16 2020 New Revision: 360403 URL: https://svnweb.freebsd.org/changeset/base/360403 Log: MFC r360125: diff(1): reject conflicting formatting options This matches GNU diff(1) behavior and, more importantly, eliminates any source of confusion if multiple formatting options are specified. Note that the committed diff differs slightly from the submitted: I've modified it so that we initialize diff_format to something that isn't an accepted format option so that we can also reject --normal -c and -c --normal, which would've otherwise been accepted because the default was --normal. After option parsing we default it to D_NORMAL if it's still unset. PR: 243975 Modified: stable/12/usr.bin/diff/diff.c stable/12/usr.bin/diff/diff.h stable/12/usr.bin/diff/tests/diff_test.sh Directory Properties: stable/12/ (props changed) Modified: stable/12/usr.bin/diff/diff.c ============================================================================== --- stable/12/usr.bin/diff/diff.c Mon Apr 27 22:31:42 2020 (r360402) +++ stable/12/usr.bin/diff/diff.c Mon Apr 27 22:32:16 2020 (r360403) @@ -100,6 +100,7 @@ static struct option longopts[] = { }; void usage(void) __dead2; +void conflicting_format(void) __dead2; void push_excludes(char *); void push_ignore_pats(char *); void read_excludes_file(char *file); @@ -120,7 +121,7 @@ main(int argc, char **argv) prevoptind = 1; newarg = 1; diff_context = 3; - diff_format = 0; + diff_format = D_UNSET; while ((ch = getopt_long(argc, argv, OPTIONS, longopts, NULL)) != -1) { switch (ch) { case '0': case '1': case '2': case '3': case '4': @@ -141,6 +142,8 @@ main(int argc, char **argv) break; case 'C': case 'c': + if (diff_format != D_UNSET) + conflicting_format(); cflag = 1; diff_format = D_CONTEXT; if (optarg != NULL) { @@ -154,13 +157,19 @@ main(int argc, char **argv) dflags |= D_MINIMAL; break; case 'D': + if (diff_format != D_UNSET) + conflicting_format(); diff_format = D_IFDEF; ifdefname = optarg; break; case 'e': + if (diff_format != D_UNSET) + conflicting_format(); diff_format = D_EDIT; break; case 'f': + if (diff_format != D_UNSET) + conflicting_format(); diff_format = D_REVERSE; break; case 'H': @@ -193,10 +202,12 @@ main(int argc, char **argv) Nflag = 1; break; case 'n': + if (diff_format != D_UNSET) + conflicting_format(); diff_format = D_NREVERSE; break; case 'p': - if (diff_format == 0) + if (diff_format == D_UNSET) diff_format = D_CONTEXT; dflags |= D_PROTOTYPE; break; @@ -207,6 +218,8 @@ main(int argc, char **argv) rflag = 1; break; case 'q': + if (diff_format != D_UNSET) + conflicting_format(); diff_format = D_BRIEF; break; case 'S': @@ -223,6 +236,8 @@ main(int argc, char **argv) break; case 'U': case 'u': + if (diff_format != D_UNSET) + conflicting_format(); diff_format = D_UNIFIED; if (optarg != NULL) { l = strtol(optarg, &ep, 10); @@ -249,9 +264,13 @@ main(int argc, char **argv) push_excludes(optarg); break; case 'y': + if (diff_format != D_UNSET) + conflicting_format(); diff_format = D_SIDEBYSIDE; break; case OPT_CHANGED_GROUP_FORMAT: + if (diff_format != D_UNSET) + conflicting_format(); diff_format = D_GFORMAT; group_format = optarg; break; @@ -264,6 +283,8 @@ main(int argc, char **argv) ignore_file_case = 0; break; case OPT_NORMAL: + if (diff_format != D_UNSET) + conflicting_format(); diff_format = D_NORMAL; break; case OPT_TSIZE: @@ -287,6 +308,8 @@ main(int argc, char **argv) newarg = optind != prevoptind; prevoptind = optind; } + if (diff_format == D_UNSET) + diff_format = D_NORMAL; argc -= optind; argv += optind; @@ -490,4 +513,12 @@ usage(void) " -y | --side-by-side file1 file2\n"); exit(2); +} + +void +conflicting_format(void) +{ + + fprintf(stderr, "error: conflicting output format options.\n"); + usage(); } Modified: stable/12/usr.bin/diff/diff.h ============================================================================== --- stable/12/usr.bin/diff/diff.h Mon Apr 27 22:31:42 2020 (r360402) +++ stable/12/usr.bin/diff/diff.h Mon Apr 27 22:32:16 2020 (r360403) @@ -50,6 +50,9 @@ #define D_GFORMAT 7 /* Diff with defined changed group format */ #define D_SIDEBYSIDE 8 /* Side by side */ +#define D_UNSET -2 + + /* * Output flags */ Modified: stable/12/usr.bin/diff/tests/diff_test.sh ============================================================================== --- stable/12/usr.bin/diff/tests/diff_test.sh Mon Apr 27 22:31:42 2020 (r360402) +++ stable/12/usr.bin/diff/tests/diff_test.sh Mon Apr 27 22:32:16 2020 (r360403) @@ -10,6 +10,7 @@ atf_test_case side_by_side atf_test_case brief_format atf_test_case b230049 atf_test_case Bflag +atf_test_case conflicting_format simple_body() { @@ -48,8 +49,6 @@ unified_body() { atf_check -o file:$(atf_get_srcdir)/unified_p.out -s eq:1 \ diff -up -L input_c1.in -L input_c2.in "$(atf_get_srcdir)/input_c1.in" "$(atf_get_srcdir)/input_c2.in" - atf_check -o file:$(atf_get_srcdir)/unified_c9999.out -s eq:1 \ - diff -u -c9999 -L input_c1.in -L input_c2.in "$(atf_get_srcdir)/input_c1.in" "$(atf_get_srcdir)/input_c2.in" atf_check -o file:$(atf_get_srcdir)/unified_9999.out -s eq:1 \ diff -u9999 -L input_c1.in -L input_c2.in "$(atf_get_srcdir)/input_c1.in" "$(atf_get_srcdir)/input_c2.in" } @@ -164,6 +163,20 @@ Bflag_body() atf_check -s exit:1 -o file:"$(atf_get_srcdir)/Bflag_F.out" diff -B E F } +conflicting_format_body() +{ + printf "\tA\n" > A + printf "\tB\n" > B + + atf_check -s exit:2 -e ignore diff -c -u A B + atf_check -s exit:2 -e ignore diff -e -f A B + atf_check -s exit:2 -e ignore diff -y -q A B + atf_check -s exit:2 -e ignore diff -q -u A B + atf_check -s exit:2 -e ignore diff -q -c A B + atf_check -s exit:2 -e ignore diff --normal -c A B + atf_check -s exit:2 -e ignore diff -c --normal A B +} + atf_init_test_cases() { atf_add_test_case simple @@ -176,4 +189,5 @@ atf_init_test_cases() atf_add_test_case brief_format atf_add_test_case b230049 atf_add_test_case Bflag + atf_add_test_case conflicting_format } From owner-svn-src-all@freebsd.org Mon Apr 27 22:33: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 D50A22C8C6B; Mon, 27 Apr 2020 22:33:33 +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 49B0195Kzsz3JyR; Mon, 27 Apr 2020 22:33:33 +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 B26BB1A01C; Mon, 27 Apr 2020 22:33:33 +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 03RMXXvR031925; Mon, 27 Apr 2020 22:33:33 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RMXWgA031919; Mon, 27 Apr 2020 22:33:32 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004272233.03RMXWgA031919@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 27 Apr 2020 22:33:32 +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: r360404 - stable/12/usr.bin/diff X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: stable/12/usr.bin/diff X-SVN-Commit-Revision: 360404 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, 27 Apr 2020 22:33:33 -0000 Author: kevans Date: Mon Apr 27 22:33:32 2020 New Revision: 360404 URL: https://svnweb.freebsd.org/changeset/base/360404 Log: MFC r356723-r356725, r357649, r357652: diff(1) catch-up r356723: mkstemp returns -1 r356724: asprintf returns -1, not an arbitrary value < 0. Also upon error the (very sloppy specification) leaves an undefined value in *ret, so it is wrong to inspect it, the error condition is enough. r356725: When system calls indicate an error they return -1, not some arbitrary value < 0. errno is only updated in this case. r357649: Update diff(1) TODO removing what has been implemented r357652: Fix most of the style warnings Modified: stable/12/usr.bin/diff/TODO stable/12/usr.bin/diff/diff.1 stable/12/usr.bin/diff/diff.c stable/12/usr.bin/diff/diffreg.c stable/12/usr.bin/diff/xmalloc.c Directory Properties: stable/12/ (props changed) Modified: stable/12/usr.bin/diff/TODO ============================================================================== --- stable/12/usr.bin/diff/TODO Mon Apr 27 22:32:16 2020 (r360403) +++ stable/12/usr.bin/diff/TODO Mon Apr 27 22:33:32 2020 (r360404) @@ -1,9 +1,3 @@ --y: - * soc implemented it via calling sdiff directly, but some options are - incompatible so it is fragile - * just recommend the user to run sdiff directly and do not implement it - * make a libsdiff and use that directly to avoid duplicating the code - to be implemented: --horizon-lines --ignore-tab-expansion @@ -13,5 +7,3 @@ Will probably be not implemented: --GTYPE-group-format (partially implement - minimal) --LTYPE-line-format --help (We have a manpage already) ---suppress-common-lines: depends on -y (won't be implemented, as it conflicts -the way sdiff expects it and in any case we have sdiff for that feature) Modified: stable/12/usr.bin/diff/diff.1 ============================================================================== --- stable/12/usr.bin/diff/diff.1 Mon Apr 27 22:32:16 2020 (r360403) +++ stable/12/usr.bin/diff/diff.1 Mon Apr 27 22:33:32 2020 (r360404) @@ -30,7 +30,7 @@ .\" @(#)diff.1 8.1 (Berkeley) 6/30/93 .\" $FreeBSD$ .\" -.Dd February 07, 2020 +.Dd February 7, 2020 .Dt DIFF 1 .Os .Sh NAME @@ -232,7 +232,7 @@ are marked with those added to .Ar file2 are marked -.Sq \+\ \& . +.Sq +\ \& . Lines which are changed from one file to the other are marked in both files with .Sq !\ \& . @@ -300,11 +300,12 @@ However, unlike with all lines to be changed (added and/or removed) are present in a single section. .It Fl y Fl -side-by-side -Output in two columns with a marker between them. The marker can be one +Output in two columns with a marker between them. +The marker can be one of the following: .Pp .Bl -tag -width Ds -offset indent -compact -.It space +.It space Corresponding lines are identical. .It '|' Corresponding lines are different. @@ -318,9 +319,7 @@ Files differ and only the second file contains the lin Comparison options: .Bl -tag -width Ds .It Fl a -text -Treat all files as -.Tn ASCII -text. +Treat all files as ASCII text. Normally .Nm will simply print @@ -394,7 +393,8 @@ will compare equal to .It Fl W Ar number Fl -width Ar number Output at most .Ar number -columns when using side by side format. The default value is 130. +columns when using side by side format. +The default value is 130. .It Fl -changed-group-format Ar GFMT Format input groups in the provided .Pp @@ -473,9 +473,8 @@ Binary files which differ, common subdirectories, and files which appear in only one directory are described as such. In directory mode only regular files and directories are compared. -If a non-regular file such as a device special file or -.Tn FIFO -is encountered, a diagnostic message is printed. +If a non-regular file such as a device special file or FIFO is encountered, +a diagnostic message is printed. .Pp If only one of .Ar file1 @@ -596,7 +595,7 @@ pairs (where num1 = num2) are abbreviated as a single number. .Sh FILES .Bl -tag -width /tmp/diff.XXXXXXXX -compact -.It Pa /tmp/diff. Ns Ar XXXXXXXX +.It Pa /tmp/diff.XXXXXXXX Temporary file used when comparing a device or the standard input. Note that the temporary file is unlinked as soon as it is created so it will not show up in a directory listing. Modified: stable/12/usr.bin/diff/diff.c ============================================================================== --- stable/12/usr.bin/diff/diff.c Mon Apr 27 22:32:16 2020 (r360403) +++ stable/12/usr.bin/diff/diff.c Mon Apr 27 22:33:32 2020 (r360404) @@ -1,4 +1,4 @@ -/* $OpenBSD: diff.c,v 1.65 2015/12/29 19:04:46 gsoares Exp $ */ +/* $OpenBSD: diff.c,v 1.67 2019/06/28 13:35:00 deraadt Exp $ */ /* * Copyright (c) 2003 Todd C. Miller @@ -357,12 +357,12 @@ main(int argc, char **argv) } else { if (S_ISDIR(stb1.st_mode)) { argv[0] = splice(argv[0], argv[1]); - if (stat(argv[0], &stb1) < 0) + if (stat(argv[0], &stb1) == -1) err(2, "%s", argv[0]); } if (S_ISDIR(stb2.st_mode)) { argv[1] = splice(argv[1], argv[0]); - if (stat(argv[1], &stb2) < 0) + if (stat(argv[1], &stb2) == -1) err(2, "%s", argv[1]); } print_status(diffreg(argv[0], argv[1], dflags, 1), argv[0], Modified: stable/12/usr.bin/diff/diffreg.c ============================================================================== --- stable/12/usr.bin/diff/diffreg.c Mon Apr 27 22:32:16 2020 (r360403) +++ stable/12/usr.bin/diff/diffreg.c Mon Apr 27 22:33:32 2020 (r360404) @@ -1,4 +1,4 @@ -/* $OpenBSD: diffreg.c,v 1.91 2016/03/01 20:57:35 natano Exp $ */ +/* $OpenBSD: diffreg.c,v 1.93 2019/06/28 13:35:00 deraadt Exp $ */ /*- * SPDX-License-Identifier: BSD-4-Clause @@ -297,7 +297,7 @@ diffreg(char *file1, char *file2, int flags, int capsi else { if (!S_ISREG(stb1.st_mode)) { if ((f1 = opentemp(file1)) == NULL || - fstat(fileno(f1), &stb1) < 0) { + fstat(fileno(f1), &stb1) == -1) { warn("%s", file1); status |= 2; goto closem; @@ -318,7 +318,7 @@ diffreg(char *file1, char *file2, int flags, int capsi else { if (!S_ISREG(stb2.st_mode)) { if ((f2 = opentemp(file2)) == NULL || - fstat(fileno(f2), &stb2) < 0) { + fstat(fileno(f2), &stb2) == -1) { warn("%s", file2); status |= 2; goto closem; @@ -466,12 +466,12 @@ opentemp(const char *f) if (strcmp(f, "-") == 0) ifd = STDIN_FILENO; - else if ((ifd = open(f, O_RDONLY, 0644)) < 0) + else if ((ifd = open(f, O_RDONLY, 0644)) == -1) return (NULL); (void)strlcpy(tempfile, _PATH_TMP "/diff.XXXXXXXX", sizeof(tempfile)); - if ((ofd = mkstemp(tempfile)) < 0) { + if ((ofd = mkstemp(tempfile)) == -1) { close(ifd); return (NULL); } @@ -1002,7 +1002,7 @@ preadline(int fd, size_t rlen, off_t off) ssize_t nr; line = xmalloc(rlen + 1); - if ((nr = pread(fd, line, rlen, off)) < 0) + if ((nr = pread(fd, line, rlen, off)) == -1) err(2, "preadline"); if (nr > 0 && line[nr-1] == '\n') nr--; Modified: stable/12/usr.bin/diff/xmalloc.c ============================================================================== --- stable/12/usr.bin/diff/xmalloc.c Mon Apr 27 22:32:16 2020 (r360403) +++ stable/12/usr.bin/diff/xmalloc.c Mon Apr 27 22:33:32 2020 (r360404) @@ -1,4 +1,4 @@ -/* $OpenBSD: xmalloc.c,v 1.9 2015/11/17 18:25:02 tobias Exp $ */ +/* $OpenBSD: xmalloc.c,v 1.10 2019/06/28 05:44:09 deraadt Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -81,7 +81,7 @@ xasprintf(char **ret, const char *fmt, ...) i = vasprintf(ret, fmt, ap); va_end(ap); - if (i < 0 || *ret == NULL) + if (i == -1) err(2, "xasprintf"); return i; From owner-svn-src-all@freebsd.org Mon Apr 27 22: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 453F02C8D38; Mon, 27 Apr 2020 22:34:46 +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 49B02Z14cPz3K7M; Mon, 27 Apr 2020 22:34: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 1FFF41A020; Mon, 27 Apr 2020 22:34: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 03RMYk70032035; Mon, 27 Apr 2020 22:34:46 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RMYjJM032032; Mon, 27 Apr 2020 22:34:45 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004272234.03RMYjJM032032@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 27 Apr 2020 22:34:45 +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: r360405 - stable/11/usr.bin/diff X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: stable/11/usr.bin/diff X-SVN-Commit-Revision: 360405 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, 27 Apr 2020 22:34:46 -0000 Author: kevans Date: Mon Apr 27 22:34:45 2020 New Revision: 360405 URL: https://svnweb.freebsd.org/changeset/base/360405 Log: MFC r356723-r356725: diff(1) return value checks r356723: mkstemp returns -1 r356724: asprintf returns -1, not an arbitrary value < 0. Also upon error the (very sloppy specification) leaves an undefined value in *ret, so it is wrong to inspect it, the error condition is enough. r356725: When system calls indicate an error they return -1, not some arbitrary value < 0. errno is only updated in this case. Modified: stable/11/usr.bin/diff/diff.c stable/11/usr.bin/diff/diffreg.c stable/11/usr.bin/diff/xmalloc.c Directory Properties: stable/11/ (props changed) Modified: stable/11/usr.bin/diff/diff.c ============================================================================== --- stable/11/usr.bin/diff/diff.c Mon Apr 27 22:33:32 2020 (r360404) +++ stable/11/usr.bin/diff/diff.c Mon Apr 27 22:34:45 2020 (r360405) @@ -1,4 +1,4 @@ -/* $OpenBSD: diff.c,v 1.65 2015/12/29 19:04:46 gsoares Exp $ */ +/* $OpenBSD: diff.c,v 1.67 2019/06/28 13:35:00 deraadt Exp $ */ /* * Copyright (c) 2003 Todd C. Miller @@ -316,12 +316,12 @@ main(int argc, char **argv) } else { if (S_ISDIR(stb1.st_mode)) { argv[0] = splice(argv[0], argv[1]); - if (stat(argv[0], &stb1) < 0) + if (stat(argv[0], &stb1) == -1) err(2, "%s", argv[0]); } if (S_ISDIR(stb2.st_mode)) { argv[1] = splice(argv[1], argv[0]); - if (stat(argv[1], &stb2) < 0) + if (stat(argv[1], &stb2) == -1) err(2, "%s", argv[1]); } print_status(diffreg(argv[0], argv[1], dflags, 1), argv[0], Modified: stable/11/usr.bin/diff/diffreg.c ============================================================================== --- stable/11/usr.bin/diff/diffreg.c Mon Apr 27 22:33:32 2020 (r360404) +++ stable/11/usr.bin/diff/diffreg.c Mon Apr 27 22:34:45 2020 (r360405) @@ -1,4 +1,4 @@ -/* $OpenBSD: diffreg.c,v 1.91 2016/03/01 20:57:35 natano Exp $ */ +/* $OpenBSD: diffreg.c,v 1.93 2019/06/28 13:35:00 deraadt Exp $ */ /* * Copyright (C) Caldera International Inc. 2001-2002. @@ -287,7 +287,7 @@ diffreg(char *file1, char *file2, int flags, int capsi else { if (!S_ISREG(stb1.st_mode)) { if ((f1 = opentemp(file1)) == NULL || - fstat(fileno(f1), &stb1) < 0) { + fstat(fileno(f1), &stb1) == -1) { warn("%s", file1); status |= 2; goto closem; @@ -308,7 +308,7 @@ diffreg(char *file1, char *file2, int flags, int capsi else { if (!S_ISREG(stb2.st_mode)) { if ((f2 = opentemp(file2)) == NULL || - fstat(fileno(f2), &stb2) < 0) { + fstat(fileno(f2), &stb2) == -1) { warn("%s", file2); status |= 2; goto closem; @@ -515,12 +515,12 @@ opentemp(const char *f) if (strcmp(f, "-") == 0) ifd = STDIN_FILENO; - else if ((ifd = open(f, O_RDONLY, 0644)) < 0) + else if ((ifd = open(f, O_RDONLY, 0644)) == -1) return (NULL); (void)strlcpy(tempfile, _PATH_TMP "/diff.XXXXXXXX", sizeof(tempfile)); - if ((ofd = mkstemp(tempfile)) < 0) { + if ((ofd = mkstemp(tempfile)) == -1) { close(ifd); return (NULL); } @@ -1011,7 +1011,7 @@ preadline(int fd, size_t rlen, off_t off) ssize_t nr; line = xmalloc(rlen + 1); - if ((nr = pread(fd, line, rlen, off)) < 0) + if ((nr = pread(fd, line, rlen, off)) == -1) err(2, "preadline"); if (nr > 0 && line[nr-1] == '\n') nr--; Modified: stable/11/usr.bin/diff/xmalloc.c ============================================================================== --- stable/11/usr.bin/diff/xmalloc.c Mon Apr 27 22:33:32 2020 (r360404) +++ stable/11/usr.bin/diff/xmalloc.c Mon Apr 27 22:34:45 2020 (r360405) @@ -1,4 +1,4 @@ -/* $OpenBSD: xmalloc.c,v 1.9 2015/11/17 18:25:02 tobias Exp $ */ +/* $OpenBSD: xmalloc.c,v 1.10 2019/06/28 05:44:09 deraadt Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -81,7 +81,7 @@ xasprintf(char **ret, const char *fmt, ...) i = vasprintf(ret, fmt, ap); va_end(ap); - if (i < 0 || *ret == NULL) + if (i == -1) err(2, "xasprintf"); return i; From owner-svn-src-all@freebsd.org Mon Apr 27 22:43: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 8C4DA2C9121; Mon, 27 Apr 2020 22:43: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 49B0DY36j3z3Khc; Mon, 27 Apr 2020 22:43: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 663331A220; Mon, 27 Apr 2020 22:43: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 03RMhPWo037856; Mon, 27 Apr 2020 22:43:25 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RMhPuO037855; Mon, 27 Apr 2020 22:43:25 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004272243.03RMhPuO037855@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 27 Apr 2020 22:43:25 +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: r360406 - in stable: 11/lib/libc/sys 12/lib/libc/sys X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/lib/libc/sys 12/lib/libc/sys X-SVN-Commit-Revision: 360406 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, 27 Apr 2020 22:43:25 -0000 Author: kevans Date: Mon Apr 27 22:43:24 2020 New Revision: 360406 URL: https://svnweb.freebsd.org/changeset/base/360406 Log: MFC r360182-r360183: kqueue(2): add note about EV_RECEIPT r360182: kqueue(2): add a note about EV_RECEIPT In the below-referenced PR, a case is attached of a simple reproducer that exhibits suboptimal behavior: EVFILT_READ and EVFILT_WRITE being set in the same kevent(2) call will only honor the first one. This is, in-fact, how it's supposed to work. A read of the manpage leads me to believe we could be more clear about this; right now there's a logical leap to make in the relevant statement: "When passed as input, it forces EV_ERROR to always be returned." -- the logical leap being that this indicates the caller should have allocated space for the change to be returned with EV_ERROR indicated in the events, or subsequent filters will get dropped on the floor. Another possible workaround that accomplishes similar effect without needing space for all events is just setting EV_RECEIPT on the final change being passed in; if any errored before it, the kqueue would not be drained. If we made it to the final change with EV_RECEIPT set, then we would return that one with EV_ERROR and still not drain the kqueue. This would seem to not be all that advisable. r360183: kqueue(2): de-vandalize the random sentence in the middle A last minute change appears to have inadvertently vandalized unrelated parts of the manpage with the date. =-( PR: 229741 Modified: stable/11/lib/libc/sys/kqueue.2 Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/lib/libc/sys/kqueue.2 Directory Properties: stable/12/ (props changed) Modified: stable/11/lib/libc/sys/kqueue.2 ============================================================================== --- stable/11/lib/libc/sys/kqueue.2 Mon Apr 27 22:34:45 2020 (r360405) +++ stable/11/lib/libc/sys/kqueue.2 Mon Apr 27 22:43:24 2020 (r360406) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 27, 2018 +.Dd April 21, 2020 .Dt KQUEUE 2 .Os .Sh NAME @@ -220,6 +220,11 @@ to always be returned. When a filter is successfully added the .Va data field will be zero. +Note that if this flag is encountered and there is no remaining space in +.Fa eventlist +to hold the +.Dv EV_ERROR +event, then subsequent changes will not get processed. .It Dv EV_ONESHOT Causes the event to return only the first occurrence of the filter being triggered. From owner-svn-src-all@freebsd.org Mon Apr 27 22:43: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 F3C492C9134; Mon, 27 Apr 2020 22:43: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 49B0DY6H52z3Khd; Mon, 27 Apr 2020 22:43: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 D26D31A221; Mon, 27 Apr 2020 22:43: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 03RMhPjg037862; Mon, 27 Apr 2020 22:43:25 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RMhP6P037861; Mon, 27 Apr 2020 22:43:25 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004272243.03RMhP6P037861@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 27 Apr 2020 22:43:25 +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: r360406 - in stable: 11/lib/libc/sys 12/lib/libc/sys X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/lib/libc/sys 12/lib/libc/sys X-SVN-Commit-Revision: 360406 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, 27 Apr 2020 22:43:26 -0000 Author: kevans Date: Mon Apr 27 22:43:24 2020 New Revision: 360406 URL: https://svnweb.freebsd.org/changeset/base/360406 Log: MFC r360182-r360183: kqueue(2): add note about EV_RECEIPT r360182: kqueue(2): add a note about EV_RECEIPT In the below-referenced PR, a case is attached of a simple reproducer that exhibits suboptimal behavior: EVFILT_READ and EVFILT_WRITE being set in the same kevent(2) call will only honor the first one. This is, in-fact, how it's supposed to work. A read of the manpage leads me to believe we could be more clear about this; right now there's a logical leap to make in the relevant statement: "When passed as input, it forces EV_ERROR to always be returned." -- the logical leap being that this indicates the caller should have allocated space for the change to be returned with EV_ERROR indicated in the events, or subsequent filters will get dropped on the floor. Another possible workaround that accomplishes similar effect without needing space for all events is just setting EV_RECEIPT on the final change being passed in; if any errored before it, the kqueue would not be drained. If we made it to the final change with EV_RECEIPT set, then we would return that one with EV_ERROR and still not drain the kqueue. This would seem to not be all that advisable. r360183: kqueue(2): de-vandalize the random sentence in the middle A last minute change appears to have inadvertently vandalized unrelated parts of the manpage with the date. =-( PR: 229741 Modified: stable/12/lib/libc/sys/kqueue.2 Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/lib/libc/sys/kqueue.2 Directory Properties: stable/11/ (props changed) Modified: stable/12/lib/libc/sys/kqueue.2 ============================================================================== --- stable/12/lib/libc/sys/kqueue.2 Mon Apr 27 22:34:45 2020 (r360405) +++ stable/12/lib/libc/sys/kqueue.2 Mon Apr 27 22:43:24 2020 (r360406) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 27, 2018 +.Dd April 21, 2020 .Dt KQUEUE 2 .Os .Sh NAME @@ -233,6 +233,11 @@ to always be returned. When a filter is successfully added the .Va data field will be zero. +Note that if this flag is encountered and there is no remaining space in +.Fa eventlist +to hold the +.Dv EV_ERROR +event, then subsequent changes will not get processed. .It Dv EV_ONESHOT Causes the event to return only the first occurrence of the filter being triggered. From owner-svn-src-all@freebsd.org Mon Apr 27 22:50: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 8C42E2C9404; Mon, 27 Apr 2020 22:50: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 49B0NK386Xz3L5J; Mon, 27 Apr 2020 22:50:09 +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 62C011A232; Mon, 27 Apr 2020 22:50:09 +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 03RMo9cW038302; Mon, 27 Apr 2020 22:50:09 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RMo8UG038299; Mon, 27 Apr 2020 22:50:08 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004272250.03RMo8UG038299@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 27 Apr 2020 22:50:08 +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: r360407 - in stable: 11/usr.bin/diff 11/usr.bin/diff/tests 12/usr.bin/diff 12/usr.bin/diff/tests X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/usr.bin/diff 11/usr.bin/diff/tests 12/usr.bin/diff 12/usr.bin/diff/tests X-SVN-Commit-Revision: 360407 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, 27 Apr 2020 22:50:09 -0000 Author: kevans Date: Mon Apr 27 22:50:08 2020 New Revision: 360407 URL: https://svnweb.freebsd.org/changeset/base/360407 Log: MFC r357875: diff: fix segfault with --tabsize and no/malformed argument --tabsize was previously listed as optional_argument, but didn't account for the optionality of it in the argument handling. This is irrelevant -- the manpage doesn't indicate that the argument is optional, and indeed there's no clear interpretation of omitting the argument because there's no other side effect of --tabsize. The "malformed" argument part of the header on this message is simply referring to usage like this: % diff --tabsize 4 A B With an optional_argument, the argument must be attached to the parameter directly (e.g. --tabsize=4), so the argument is effectively NULL with the above invocation as if no argument had been passed. PR: 243974 Modified: stable/11/usr.bin/diff/diff.1 stable/11/usr.bin/diff/diff.c stable/11/usr.bin/diff/tests/diff_test.sh Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/usr.bin/diff/diff.1 stable/12/usr.bin/diff/diff.c stable/12/usr.bin/diff/tests/diff_test.sh Directory Properties: stable/12/ (props changed) Modified: stable/11/usr.bin/diff/diff.1 ============================================================================== --- stable/11/usr.bin/diff/diff.1 Mon Apr 27 22:43:24 2020 (r360406) +++ stable/11/usr.bin/diff/diff.1 Mon Apr 27 22:50:08 2020 (r360407) @@ -30,7 +30,7 @@ .\" @(#)diff.1 8.1 (Berkeley) 6/30/93 .\" $FreeBSD$ .\" -.Dd August 18, 2018 +.Dd April 27, 2020 .Dt DIFF 1 .Os .Sh NAME @@ -60,7 +60,7 @@ .Op Fl -starting-file .Op Fl -speed-large-files .Op Fl -strip-trailing-cr -.Op Fl -tabsize +.Op Fl -tabsize Ar number .Op Fl -text .Op Fl -unified .Op Fl I Ar pattern | Fl -ignore-matching-lines Ar pattern @@ -88,7 +88,7 @@ .Op Fl -speed-large-files .Op Fl -starting-file .Op Fl -strip-trailing-cr -.Op Fl -tabsize +.Op Fl -tabsize Ar number .Op Fl -text .Fl C Ar number | -context Ar number .Ar file1 file2 @@ -113,7 +113,7 @@ .Op Fl -speed-large-files .Op Fl -starting-file .Op Fl -strip-trailing-cr -.Op Fl -tabsize +.Op Fl -tabsize Ar number .Op Fl -text .Fl D Ar string | Fl -ifdef Ar string .Ar file1 file2 @@ -139,7 +139,7 @@ .Op Fl -speed-large-files .Op Fl -starting-file .Op Fl -strip-trailing-cr -.Op Fl -tabsize +.Op Fl -tabsize Ar number .Op Fl -text .Fl U Ar number | Fl -unified Ar number .Ar file1 file2 @@ -170,7 +170,7 @@ .Op Fl -show-c-function .Op Fl -speed-large-files .Op Fl -strip-trailing-cr -.Op Fl -tabsize +.Op Fl -tabsize Ar number .Op Fl -text .Op Fl -unidirectional-new-file .Op Fl -unified Modified: stable/11/usr.bin/diff/diff.c ============================================================================== --- stable/11/usr.bin/diff/diff.c Mon Apr 27 22:43:24 2020 (r360406) +++ stable/11/usr.bin/diff/diff.c Mon Apr 27 22:50:08 2020 (r360407) @@ -90,7 +90,7 @@ static struct option longopts[] = { { "no-ignore-file-name-case", no_argument, NULL, OPT_NO_IGN_FN_CASE }, { "normal", no_argument, NULL, OPT_NORMAL }, { "strip-trailing-cr", no_argument, NULL, OPT_STRIPCR }, - { "tabsize", optional_argument, NULL, OPT_TSIZE }, + { "tabsize", required_argument, NULL, OPT_TSIZE }, { "changed-group-format", required_argument, NULL, OPT_CHANGED_GROUP_FORMAT}, { NULL, 0, 0, '\0'} }; Modified: stable/11/usr.bin/diff/tests/diff_test.sh ============================================================================== --- stable/11/usr.bin/diff/tests/diff_test.sh Mon Apr 27 22:43:24 2020 (r360406) +++ stable/11/usr.bin/diff/tests/diff_test.sh Mon Apr 27 22:50:08 2020 (r360407) @@ -10,6 +10,7 @@ atf_test_case side_by_side atf_test_case brief_format atf_test_case b230049 atf_test_case Bflag +atf_test_case tabsize simple_body() { @@ -166,6 +167,16 @@ Bflag_body() atf_check -s exit:1 -o file:"$(atf_get_srcdir)/Bflag_F.out" diff -B E F } +tabsize_body() +{ + printf "\tA\n" > A + printf "\tB\n" > B + + atf_check -s exit:1 \ + -o inline:"1c1\n< A\n---\n> B\n" \ + diff -t --tabsize 1 A B +} + atf_init_test_cases() { atf_add_test_case simple @@ -178,4 +189,5 @@ atf_init_test_cases() atf_add_test_case brief_format atf_add_test_case b230049 atf_add_test_case Bflag + atf_add_test_case tabsize } From owner-svn-src-all@freebsd.org Mon Apr 27 22:50: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 3CF702C9413; Mon, 27 Apr 2020 22:50:10 +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 49B0NL0tSTz3L5K; Mon, 27 Apr 2020 22:50:10 +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 195CF1A233; Mon, 27 Apr 2020 22:50:10 +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 03RMo9Pq038312; Mon, 27 Apr 2020 22:50:09 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RMo91n038308; Mon, 27 Apr 2020 22:50:09 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004272250.03RMo91n038308@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 27 Apr 2020 22:50: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: r360407 - in stable: 11/usr.bin/diff 11/usr.bin/diff/tests 12/usr.bin/diff 12/usr.bin/diff/tests X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/usr.bin/diff 11/usr.bin/diff/tests 12/usr.bin/diff 12/usr.bin/diff/tests X-SVN-Commit-Revision: 360407 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, 27 Apr 2020 22:50:10 -0000 Author: kevans Date: Mon Apr 27 22:50:08 2020 New Revision: 360407 URL: https://svnweb.freebsd.org/changeset/base/360407 Log: MFC r357875: diff: fix segfault with --tabsize and no/malformed argument --tabsize was previously listed as optional_argument, but didn't account for the optionality of it in the argument handling. This is irrelevant -- the manpage doesn't indicate that the argument is optional, and indeed there's no clear interpretation of omitting the argument because there's no other side effect of --tabsize. The "malformed" argument part of the header on this message is simply referring to usage like this: % diff --tabsize 4 A B With an optional_argument, the argument must be attached to the parameter directly (e.g. --tabsize=4), so the argument is effectively NULL with the above invocation as if no argument had been passed. PR: 243974 Modified: stable/12/usr.bin/diff/diff.1 stable/12/usr.bin/diff/diff.c stable/12/usr.bin/diff/tests/diff_test.sh Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/usr.bin/diff/diff.1 stable/11/usr.bin/diff/diff.c stable/11/usr.bin/diff/tests/diff_test.sh Directory Properties: stable/11/ (props changed) Modified: stable/12/usr.bin/diff/diff.1 ============================================================================== --- stable/12/usr.bin/diff/diff.1 Mon Apr 27 22:43:24 2020 (r360406) +++ stable/12/usr.bin/diff/diff.1 Mon Apr 27 22:50:08 2020 (r360407) @@ -30,7 +30,7 @@ .\" @(#)diff.1 8.1 (Berkeley) 6/30/93 .\" $FreeBSD$ .\" -.Dd February 7, 2020 +.Dd April 27, 2020 .Dt DIFF 1 .Os .Sh NAME @@ -60,7 +60,7 @@ .Op Fl -starting-file .Op Fl -speed-large-files .Op Fl -strip-trailing-cr -.Op Fl -tabsize +.Op Fl -tabsize Ar number .Op Fl -text .Op Fl -unified .Op Fl I Ar pattern | Fl -ignore-matching-lines Ar pattern @@ -88,7 +88,7 @@ .Op Fl -speed-large-files .Op Fl -starting-file .Op Fl -strip-trailing-cr -.Op Fl -tabsize +.Op Fl -tabsize Ar number .Op Fl -text .Fl C Ar number | -context Ar number .Ar file1 file2 @@ -113,7 +113,7 @@ .Op Fl -speed-large-files .Op Fl -starting-file .Op Fl -strip-trailing-cr -.Op Fl -tabsize +.Op Fl -tabsize Ar number .Op Fl -text .Fl D Ar string | Fl -ifdef Ar string .Ar file1 file2 @@ -139,7 +139,7 @@ .Op Fl -speed-large-files .Op Fl -starting-file .Op Fl -strip-trailing-cr -.Op Fl -tabsize +.Op Fl -tabsize Ar number .Op Fl -text .Fl U Ar number | Fl -unified Ar number .Ar file1 file2 @@ -170,7 +170,7 @@ .Op Fl -show-c-function .Op Fl -speed-large-files .Op Fl -strip-trailing-cr -.Op Fl -tabsize +.Op Fl -tabsize Ar number .Op Fl -text .Op Fl -unidirectional-new-file .Op Fl -unified @@ -192,7 +192,7 @@ .Op --no-ignore-file-name-case .Op --strip-trailing-cr .Op --suppress-common-lines -.Op --tabsize +.Op --tabsize Ar number .Op --text .Op --width .Fl y | Fl -side-by-side Modified: stable/12/usr.bin/diff/diff.c ============================================================================== --- stable/12/usr.bin/diff/diff.c Mon Apr 27 22:43:24 2020 (r360406) +++ stable/12/usr.bin/diff/diff.c Mon Apr 27 22:50:08 2020 (r360407) @@ -93,7 +93,7 @@ static struct option longopts[] = { { "no-ignore-file-name-case", no_argument, NULL, OPT_NO_IGN_FN_CASE }, { "normal", no_argument, NULL, OPT_NORMAL }, { "strip-trailing-cr", no_argument, NULL, OPT_STRIPCR }, - { "tabsize", optional_argument, NULL, OPT_TSIZE }, + { "tabsize", required_argument, NULL, OPT_TSIZE }, { "changed-group-format", required_argument, NULL, OPT_CHANGED_GROUP_FORMAT}, { "suppress-common-lines", no_argument, NULL, OPT_SUPPRESS_COMMON }, { NULL, 0, 0, '\0'} Modified: stable/12/usr.bin/diff/tests/diff_test.sh ============================================================================== --- stable/12/usr.bin/diff/tests/diff_test.sh Mon Apr 27 22:43:24 2020 (r360406) +++ stable/12/usr.bin/diff/tests/diff_test.sh Mon Apr 27 22:50:08 2020 (r360407) @@ -10,6 +10,7 @@ atf_test_case side_by_side atf_test_case brief_format atf_test_case b230049 atf_test_case Bflag +atf_test_case tabsize atf_test_case conflicting_format simple_body() @@ -163,6 +164,16 @@ Bflag_body() atf_check -s exit:1 -o file:"$(atf_get_srcdir)/Bflag_F.out" diff -B E F } +tabsize_body() +{ + printf "\tA\n" > A + printf "\tB\n" > B + + atf_check -s exit:1 \ + -o inline:"1c1\n< A\n---\n> B\n" \ + diff -t --tabsize 1 A B +} + conflicting_format_body() { printf "\tA\n" > A @@ -189,5 +200,6 @@ atf_init_test_cases() atf_add_test_case brief_format atf_add_test_case b230049 atf_add_test_case Bflag + atf_add_test_case tabsize atf_add_test_case conflicting_format } From owner-svn-src-all@freebsd.org Mon Apr 27 23:17: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 F39BA2C9E90; Mon, 27 Apr 2020 23:17:21 +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 49B0zj6XkBz3MmW; Mon, 27 Apr 2020 23:17:21 +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 D71801A7D8; Mon, 27 Apr 2020 23:17:21 +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 03RNHL8i057379; Mon, 27 Apr 2020 23:17:21 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RNHJ8G057366; Mon, 27 Apr 2020 23:17:19 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202004272317.03RNHJ8G057366@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Mon, 27 Apr 2020 23:17:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360408 - in head: share/man/man4 sys/dev/cxgbe/tom sys/kern sys/netinet sys/sys X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in head: share/man/man4 sys/dev/cxgbe/tom sys/kern sys/netinet sys/sys X-SVN-Commit-Revision: 360408 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, 27 Apr 2020 23:17:22 -0000 Author: jhb Date: Mon Apr 27 23:17:19 2020 New Revision: 360408 URL: https://svnweb.freebsd.org/changeset/base/360408 Log: Initial support for kernel offload of TLS receive. - Add a new TCP_RXTLS_ENABLE socket option to set the encryption and authentication algorithms and keys as well as the initial sequence number. - When reading from a socket using KTLS receive, applications must use recvmsg(). Each successful call to recvmsg() will return a single TLS record. A new TCP control message, TLS_GET_RECORD, will contain the TLS record header of the decrypted record. The regular message buffer passed to recvmsg() will receive the decrypted payload. This is similar to the interface used by Linux's KTLS RX except that Linux does not return the full TLS header in the control message. - Add plumbing to the TOE KTLS interface to request either transmit or receive KTLS sessions. - When a socket is using receive KTLS, redirect reads from soreceive_stream() into soreceive_generic(). - Note that this interface is currently only defined for TLS 1.1 and 1.2, though I believe we will be able to reuse the same interface and structures for 1.3. Modified: head/share/man/man4/tcp.4 head/sys/dev/cxgbe/tom/t4_tom.c head/sys/kern/uipc_ktls.c head/sys/kern/uipc_socket.c head/sys/netinet/tcp.h head/sys/netinet/tcp_offload.c head/sys/netinet/tcp_offload.h head/sys/netinet/tcp_usrreq.c head/sys/netinet/toecore.c head/sys/netinet/toecore.h head/sys/sys/ktls.h Modified: head/share/man/man4/tcp.4 ============================================================================== --- head/share/man/man4/tcp.4 Mon Apr 27 22:50:08 2020 (r360407) +++ head/share/man/man4/tcp.4 Mon Apr 27 23:17:19 2020 (r360408) @@ -34,7 +34,7 @@ .\" From: @(#)tcp.4 8.1 (Berkeley) 6/5/93 .\" $FreeBSD$ .\" -.Dd April 16, 2020 +.Dd April 27, 2020 .Dt TCP 4 .Os .Sh NAME @@ -319,14 +319,11 @@ control message. The payload of this control message is a single byte holding the desired TLS record type. .Pp -Data read from this socket will still be encrypted and must be parsed by -a TLS-aware consumer. -.Pp -At present, only a single key may be set on a socket. +At present, only a single transmit key may be set on a socket. As such, users of this option must disable rekeying. .It Dv TCP_TXTLS_MODE -The integer argument can be used to get or set the current TLS mode of a -socket. +The integer argument can be used to get or set the current TLS transmit mode +of a socket. Setting the mode can only used to toggle between software and NIC TLS after TLS has been initially enabled via the .Dv TCP_TXTLS_ENABLE @@ -344,6 +341,33 @@ TLS records are encrypted by the network interface car .It Dv TCP_TLS_MODE_TOE TLS records are encrypted by the NIC using a TCP offload engine (TOE). .El +.It Dv TCP_RXTLS_ENABLE +Enable in-kernel TLS for data read from this socket. +The +.Vt struct tls_so_enable +argument defines the encryption and authentication algorithms and keys +used to decrypt the socket data. +.Pp +Each received TLS record must be read from the socket using +.Xr recvmsg 2 . +Each received TLS record will contain a +.Dv TLS_GET_RECORD +control message along with the decrypted payload. +The control message contains a +.Vt struct tls_get_record +which includes fields from the TLS record header. +If a corrupted TLS record is received, +recvmsg 2 +will fail with +.Dv EBADMSG . +.Pp +At present, only a single receive key may be set on a socket. +As such, users of this option must disable rekeying. +.It Dv TCP_RXTLS_MODE +The integer argument can be used to get the current TLS receive mode +of a socket. +The available modes are the same as for +.Dv TCP_TXTLS_MODE . .El .Pp The option level for the Modified: head/sys/dev/cxgbe/tom/t4_tom.c ============================================================================== --- head/sys/dev/cxgbe/tom/t4_tom.c Mon Apr 27 22:50:08 2020 (r360407) +++ head/sys/dev/cxgbe/tom/t4_tom.c Mon Apr 27 23:17:19 2020 (r360408) @@ -40,6 +40,9 @@ __FBSDID("$FreeBSD$"); #include #include #include +#ifdef KERN_TLS +#include +#endif #include #include #include @@ -814,12 +817,15 @@ t4_tcp_info(struct toedev *tod, struct tcpcb *tp, stru #ifdef KERN_TLS static int t4_alloc_tls_session(struct toedev *tod, struct tcpcb *tp, - struct ktls_session *tls) + struct ktls_session *tls, int direction) { struct toepcb *toep = tp->t_toe; INP_WLOCK_ASSERT(tp->t_inpcb); MPASS(tls != NULL); + + if (direction != KTLS_TX) + return (EOPNOTSUPP); return (tls_alloc_ktls(toep, tls)); } Modified: head/sys/kern/uipc_ktls.c ============================================================================== --- head/sys/kern/uipc_ktls.c Mon Apr 27 22:50:08 2020 (r360407) +++ head/sys/kern/uipc_ktls.c Mon Apr 27 23:17:19 2020 (r360408) @@ -702,7 +702,7 @@ ktls_cleanup(struct ktls_session *tls) #ifdef TCP_OFFLOAD static int -ktls_try_toe(struct socket *so, struct ktls_session *tls) +ktls_try_toe(struct socket *so, struct ktls_session *tls, int direction) { struct inpcb *inp; struct tcpcb *tp; @@ -728,7 +728,7 @@ ktls_try_toe(struct socket *so, struct ktls_session *t return (EOPNOTSUPP); } - error = tcp_offload_alloc_tls_session(tp, tls); + error = tcp_offload_alloc_tls_session(tp, tls, direction); INP_WUNLOCK(inp); if (error == 0) { tls->mode = TCP_TLS_MODE_TOE; @@ -901,6 +901,60 @@ ktls_try_sw(struct socket *so, struct ktls_session *tl } int +ktls_enable_rx(struct socket *so, struct tls_enable *en) +{ + struct ktls_session *tls; + int error; + + if (!ktls_offload_enable) + return (ENOTSUP); + + counter_u64_add(ktls_offload_enable_calls, 1); + + /* + * This should always be true since only the TCP socket option + * invokes this function. + */ + if (so->so_proto->pr_protocol != IPPROTO_TCP) + return (EINVAL); + + /* + * XXX: Don't overwrite existing sessions. We should permit + * this to support rekeying in the future. + */ + if (so->so_rcv.sb_tls_info != NULL) + return (EALREADY); + + if (en->cipher_algorithm == CRYPTO_AES_CBC && !ktls_cbc_enable) + return (ENOTSUP); + + error = ktls_create_session(so, en, &tls); + if (error) + return (error); + + /* TLS RX offload is only supported on TOE currently. */ +#ifdef TCP_OFFLOAD + error = ktls_try_toe(so, tls, KTLS_RX); +#else + error = EOPNOTSUPP; +#endif + + if (error) { + ktls_cleanup(tls); + return (error); + } + + /* Mark the socket as using TLS offload. */ + SOCKBUF_LOCK(&so->so_rcv); + so->so_rcv.sb_tls_info = tls; + SOCKBUF_UNLOCK(&so->so_rcv); + + counter_u64_add(ktls_offload_total, 1); + + return (0); +} + +int ktls_enable_tx(struct socket *so, struct tls_enable *en) { struct ktls_session *tls; @@ -938,7 +992,7 @@ ktls_enable_tx(struct socket *so, struct tls_enable *e /* Prefer TOE -> ifnet TLS -> software TLS. */ #ifdef TCP_OFFLOAD - error = ktls_try_toe(so, tls); + error = ktls_try_toe(so, tls, KTLS_TX); if (error) #endif error = ktls_try_ifnet(so, tls, false); @@ -967,6 +1021,25 @@ ktls_enable_tx(struct socket *so, struct tls_enable *e counter_u64_add(ktls_offload_total, 1); return (0); +} + +int +ktls_get_rx_mode(struct socket *so) +{ + struct ktls_session *tls; + struct inpcb *inp; + int mode; + + inp = so->so_pcb; + INP_WLOCK_ASSERT(inp); + SOCKBUF_LOCK(&so->so_rcv); + tls = so->so_rcv.sb_tls_info; + if (tls == NULL) + mode = TCP_TLS_MODE_NONE; + else + mode = tls->mode; + SOCKBUF_UNLOCK(&so->so_rcv); + return (mode); } int Modified: head/sys/kern/uipc_socket.c ============================================================================== --- head/sys/kern/uipc_socket.c Mon Apr 27 22:50:08 2020 (r360407) +++ head/sys/kern/uipc_socket.c Mon Apr 27 23:17:19 2020 (r360408) @@ -2372,11 +2372,33 @@ soreceive_stream(struct socket *so, struct sockaddr ** sb = &so->so_rcv; +#ifdef KERN_TLS + /* + * KTLS store TLS records as records with a control message to + * describe the framing. + * + * We check once here before acquiring locks to optimize the + * common case. + */ + if (sb->sb_tls_info != NULL) + return (soreceive_generic(so, psa, uio, mp0, controlp, + flagsp)); +#endif + /* Prevent other readers from entering the socket. */ error = sblock(sb, SBLOCKWAIT(flags)); if (error) return (error); SOCKBUF_LOCK(sb); + +#ifdef KERN_TLS + if (sb->sb_tls_info != NULL) { + SOCKBUF_UNLOCK(sb); + sbunlock(sb); + return (soreceive_generic(so, psa, uio, mp0, controlp, + flagsp)); + } +#endif /* Easy one, no space to copyout anything. */ if (uio->uio_resid == 0) { Modified: head/sys/netinet/tcp.h ============================================================================== --- head/sys/netinet/tcp.h Mon Apr 27 22:50:08 2020 (r360407) +++ head/sys/netinet/tcp.h Mon Apr 27 23:17:19 2020 (r360408) @@ -178,6 +178,8 @@ struct tcphdr { device */ #define TCP_TXTLS_ENABLE 39 /* TLS framing and encryption for transmit */ #define TCP_TXTLS_MODE 40 /* Transmit TLS mode */ +#define TCP_RXTLS_ENABLE 41 /* TLS framing and encryption for receive */ +#define TCP_RXTLS_MODE 42 /* Receive TLS mode */ #define TCP_CONGESTION 64 /* get/set congestion control algorithm */ #define TCP_CCALGOOPT 65 /* get/set cc algorithm specific options */ #define TCP_DELACK 72 /* socket option for delayed ack */ @@ -388,6 +390,7 @@ struct tcp_function_set { * TCP Control message types */ #define TLS_SET_RECORD_TYPE 1 +#define TLS_GET_RECORD 2 /* * TCP specific variables of interest for tp->t_stats stats(9) accounting. Modified: head/sys/netinet/tcp_offload.c ============================================================================== --- head/sys/netinet/tcp_offload.c Mon Apr 27 22:50:08 2020 (r360407) +++ head/sys/netinet/tcp_offload.c Mon Apr 27 23:17:19 2020 (r360408) @@ -198,14 +198,15 @@ tcp_offload_tcp_info(struct tcpcb *tp, struct tcp_info } int -tcp_offload_alloc_tls_session(struct tcpcb *tp, struct ktls_session *tls) +tcp_offload_alloc_tls_session(struct tcpcb *tp, struct ktls_session *tls, + int direction) { struct toedev *tod = tp->tod; KASSERT(tod != NULL, ("%s: tp->tod is NULL, tp %p", __func__, tp)); INP_WLOCK_ASSERT(tp->t_inpcb); - return (tod->tod_alloc_tls_session(tod, tp, tls)); + return (tod->tod_alloc_tls_session(tod, tp, tls, direction)); } void Modified: head/sys/netinet/tcp_offload.h ============================================================================== --- head/sys/netinet/tcp_offload.h Mon Apr 27 22:50:08 2020 (r360407) +++ head/sys/netinet/tcp_offload.h Mon Apr 27 23:17:19 2020 (r360408) @@ -46,7 +46,7 @@ int tcp_offload_output(struct tcpcb *); void tcp_offload_rcvd(struct tcpcb *); void tcp_offload_ctloutput(struct tcpcb *, int, int); void tcp_offload_tcp_info(struct tcpcb *, struct tcp_info *); -int tcp_offload_alloc_tls_session(struct tcpcb *, struct ktls_session *); +int tcp_offload_alloc_tls_session(struct tcpcb *, struct ktls_session *, int); void tcp_offload_detach(struct tcpcb *); #endif Modified: head/sys/netinet/tcp_usrreq.c ============================================================================== --- head/sys/netinet/tcp_usrreq.c Mon Apr 27 22:50:08 2020 (r360407) +++ head/sys/netinet/tcp_usrreq.c Mon Apr 27 23:17:19 2020 (r360408) @@ -2080,6 +2080,14 @@ unlock_and_done: error = ktls_set_tx_mode(so, ui); INP_WUNLOCK(inp); break; + case TCP_RXTLS_ENABLE: + INP_WUNLOCK(inp); + error = sooptcopyin(sopt, &tls, sizeof(tls), + sizeof(tls)); + if (error) + break; + error = ktls_enable_rx(so, &tls); + break; #endif case TCP_KEEPIDLE: @@ -2415,6 +2423,11 @@ unhold: #ifdef KERN_TLS case TCP_TXTLS_MODE: optval = ktls_get_tx_mode(so); + INP_WUNLOCK(inp); + error = sooptcopyout(sopt, &optval, sizeof(optval)); + break; + case TCP_RXTLS_MODE: + optval = ktls_get_rx_mode(so); INP_WUNLOCK(inp); error = sooptcopyout(sopt, &optval, sizeof(optval)); break; Modified: head/sys/netinet/toecore.c ============================================================================== --- head/sys/netinet/toecore.c Mon Apr 27 22:50:08 2020 (r360407) +++ head/sys/netinet/toecore.c Mon Apr 27 23:17:19 2020 (r360408) @@ -193,7 +193,7 @@ toedev_tcp_info(struct toedev *tod __unused, struct tc static int toedev_alloc_tls_session(struct toedev *tod __unused, struct tcpcb *tp __unused, - struct ktls_session *tls __unused) + struct ktls_session *tls __unused, int direction __unused) { return (EINVAL); Modified: head/sys/netinet/toecore.h ============================================================================== --- head/sys/netinet/toecore.h Mon Apr 27 22:50:08 2020 (r360407) +++ head/sys/netinet/toecore.h Mon Apr 27 23:17:19 2020 (r360408) @@ -113,7 +113,7 @@ struct toedev { /* Create a TLS session */ int (*tod_alloc_tls_session)(struct toedev *, struct tcpcb *, - struct ktls_session *); + struct ktls_session *, int); }; typedef void (*tcp_offload_listen_start_fn)(void *, struct tcpcb *); Modified: head/sys/sys/ktls.h ============================================================================== --- head/sys/sys/ktls.h Mon Apr 27 22:50:08 2020 (r360407) +++ head/sys/sys/ktls.h Mon Apr 27 23:17:19 2020 (r360408) @@ -98,7 +98,7 @@ struct tls_mac_data { #define TLS_MINOR_VER_TWO 3 /* 3, 3 */ #define TLS_MINOR_VER_THREE 4 /* 3, 4 */ -/* For TCP_TXTLS_ENABLE */ +/* For TCP_TXTLS_ENABLE and TCP_RXTLS_ENABLE. */ #ifdef _KERNEL struct tls_enable_v0 { const uint8_t *cipher_key; @@ -130,6 +130,17 @@ struct tls_enable { uint8_t rec_seq[8]; }; +/* Structure for TLS_GET_RECORD. */ +struct tls_get_record { + /* TLS record header. */ + uint8_t tls_type; + uint8_t tls_vmajor; + uint8_t tls_vminor; + uint16_t tls_length; +}; + +#ifdef _KERNEL + struct tls_session_params { uint8_t *cipher_key; uint8_t *auth_key; @@ -148,7 +159,9 @@ struct tls_session_params { uint8_t flags; }; -#ifdef _KERNEL +/* Used in APIs to request RX vs TX sessions. */ +#define KTLS_TX 1 +#define KTLS_RX 2 #define KTLS_API_VERSION 6 @@ -192,6 +205,7 @@ struct ktls_session { int ktls_crypto_backend_register(struct ktls_crypto_backend *be); int ktls_crypto_backend_deregister(struct ktls_crypto_backend *be); +int ktls_enable_rx(struct socket *so, struct tls_enable *en); int ktls_enable_tx(struct socket *so, struct tls_enable *en); void ktls_destroy(struct ktls_session *tls); void ktls_frame(struct mbuf *m, struct ktls_session *tls, int *enqueue_cnt, @@ -199,6 +213,7 @@ void ktls_frame(struct mbuf *m, struct ktls_session *t void ktls_seq(struct sockbuf *sb, struct mbuf *m); void ktls_enqueue(struct mbuf *m, struct socket *so, int page_count); void ktls_enqueue_to_free(struct mbuf_ext_pgs *pgs); +int ktls_get_rx_mode(struct socket *so); int ktls_set_tx_mode(struct socket *so, int mode); int ktls_get_tx_mode(struct socket *so); int ktls_output_eagain(struct inpcb *inp, struct ktls_session *tls); From owner-svn-src-all@freebsd.org Mon Apr 27 23:39: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 49F8F2CA529; Mon, 27 Apr 2020 23:39:33 +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 49B1TK1Cdpz3Npm; Mon, 27 Apr 2020 23:39:33 +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 24F2A1ABAA; Mon, 27 Apr 2020 23:39:33 +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 03RNdXiV069688; Mon, 27 Apr 2020 23:39:33 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RNdX1P069687; Mon, 27 Apr 2020 23:39:33 GMT (envelope-from imp@FreeBSD.org) Message-Id: <202004272339.03RNdX1P069687@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Mon, 27 Apr 2020 23:39:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360409 - head/sys/cam/scsi X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/cam/scsi X-SVN-Commit-Revision: 360409 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, 27 Apr 2020 23:39:33 -0000 Author: imp Date: Mon Apr 27 23:39:32 2020 New Revision: 360409 URL: https://svnweb.freebsd.org/changeset/base/360409 Log: Change the flags back to an enum This was changed in the review process for the flags sysctl. The reasons for the change are no longer valid as the code changed after that. Cast the one place where it might make a difference (but I don't think it does). This restores the ability to see flags for softc in gdb. Modified: head/sys/cam/scsi/scsi_da.c Modified: head/sys/cam/scsi/scsi_da.c ============================================================================== --- head/sys/cam/scsi/scsi_da.c Mon Apr 27 23:17:19 2020 (r360408) +++ head/sys/cam/scsi/scsi_da.c Mon Apr 27 23:39:32 2020 (r360409) @@ -342,7 +342,7 @@ struct da_softc { LIST_HEAD(, ccb_hdr) pending_ccbs; int refcount; /* Active xpt_action() calls */ da_state state; - u_int flags; + da_flags flags; da_quirks quirks; int minimum_cmd_size; int error_inject; @@ -2646,7 +2646,7 @@ daflagssysctl(SYSCTL_HANDLER_ARGS) sbuf_new_for_sysctl(&sbuf, NULL, 0, req); if (softc->flags != 0) - sbuf_printf(&sbuf, "0x%b", softc->flags, DA_FLAG_STRING); + sbuf_printf(&sbuf, "0x%b", (unsigned)softc->flags, DA_FLAG_STRING); else sbuf_printf(&sbuf, "0"); error = sbuf_finish(&sbuf); From owner-svn-src-all@freebsd.org Mon Apr 27 23:43: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 9D74C2CA722; Mon, 27 Apr 2020 23:43:04 +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 49B1YN3hpsz3PCX; Mon, 27 Apr 2020 23:43:04 +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 7A2181AD82; Mon, 27 Apr 2020 23:43:04 +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 03RNh4a5075561; Mon, 27 Apr 2020 23:43:04 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RNh425075560; Mon, 27 Apr 2020 23:43:04 GMT (envelope-from imp@FreeBSD.org) Message-Id: <202004272343.03RNh425075560@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Mon, 27 Apr 2020 23:43:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360410 - head/sys/cam/ata X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/cam/ata X-SVN-Commit-Revision: 360410 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, 27 Apr 2020 23:43:04 -0000 Author: imp Date: Mon Apr 27 23:43:04 2020 New Revision: 360410 URL: https://svnweb.freebsd.org/changeset/base/360410 Log: Add flags sysctl to ada Report the ada device flags like we do the da devices. No booleans have (yet) been converted, but iomapped and rotating are planned. Modified: head/sys/cam/ata/ata_da.c Modified: head/sys/cam/ata/ata_da.c ============================================================================== --- head/sys/cam/ata/ata_da.c Mon Apr 27 23:39:32 2020 (r360409) +++ head/sys/cam/ata/ata_da.c Mon Apr 27 23:43:04 2020 (r360410) @@ -111,6 +111,31 @@ typedef enum { ADA_FLAG_CAN_NCQ_TRIM = 0x00400000, /* CAN_TRIM also set */ ADA_FLAG_PIM_ATA_EXT = 0x00800000 } ada_flags; +#define ADA_FLAG_STRING \ + "\020" \ + "\002CAN_48BIT" \ + "\003CAN_FLUSHCACHE" \ + "\004CAN_NCQ" \ + "\005CAN_DMA" \ + "\006NEED_OTAG" \ + "\007WAS_OTAG" \ + "\010CAN_TRIM" \ + "\011OPEN" \ + "\012SCTX_INIT" \ + "\013CAN_CFA" \ + "\014CAN_POWERMGT" \ + "\015CAN_DMA48" \ + "\016CAN_LOG" \ + "\017CAN_IDLOG" \ + "\020CAN_SUPCAP" \ + "\021CAN_ZONE" \ + "\022CAN_WCACHE" \ + "\023CAN_RAHEAD" \ + "\024PROBED" \ + "\025ANNOUNCED" \ + "\026DIRTY" \ + "\027CAN_NCQ_TRIM" \ + "\030PIM_ATA_EXT" typedef enum { ADA_Q_NONE = 0x00, @@ -806,8 +831,9 @@ static periph_oninv_t adaoninvalidate; static periph_dtor_t adacleanup; static void adaasync(void *callback_arg, u_int32_t code, struct cam_path *path, void *arg); -static int adazonemodesysctl(SYSCTL_HANDLER_ARGS); +static int adaflagssysctl(SYSCTL_HANDLER_ARGS); static int adazonesupsysctl(SYSCTL_HANDLER_ARGS); +static int adazonesupsysctl(SYSCTL_HANDLER_ARGS); static void adasysctlinit(void *context, int pending); static int adagetattr(struct bio *bp); static void adasetflags(struct ada_softc *softc, @@ -1518,6 +1544,10 @@ adasysctlinit(void *context, int pending) SYSCTL_CHILDREN(softc->sysctl_tree), OID_AUTO, "max_seq_zones", CTLFLAG_RD, &softc->max_seq_zones, "Maximum Number of Open Sequential Write Required Zones"); + SYSCTL_ADD_PROC(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), + OID_AUTO, "flags", CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE, + softc, 0, adaflagssysctl, "A", + "Flags for drive"); #ifdef CAM_TEST_FAILURE /* @@ -1624,6 +1654,24 @@ adadeletemethodsysctl(SYSCTL_HANDLER_ARGS) return (0); } return (EINVAL); +} + +static int +adaflagssysctl(SYSCTL_HANDLER_ARGS) +{ + struct sbuf sbuf; + struct ada_softc *softc = arg1; + int error; + + sbuf_new_for_sysctl(&sbuf, NULL, 0, req); + if (softc->flags != 0) + sbuf_printf(&sbuf, "0x%b", (unsigned)softc->flags, ADA_FLAG_STRING); + else + sbuf_printf(&sbuf, "0"); + error = sbuf_finish(&sbuf); + sbuf_delete(&sbuf); + + return (error); } static void From owner-svn-src-all@freebsd.org Mon Apr 27 23:43: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 817552CA746; Mon, 27 Apr 2020 23:43:11 +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 49B1YV1TBCz3PGn; Mon, 27 Apr 2020 23:43:10 +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 646B81AD83; Mon, 27 Apr 2020 23:43:09 +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 03RNh9ug075621; Mon, 27 Apr 2020 23:43:09 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RNh9QS075620; Mon, 27 Apr 2020 23:43:09 GMT (envelope-from imp@FreeBSD.org) Message-Id: <202004272343.03RNh9QS075620@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Mon, 27 Apr 2020 23:43:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360411 - head/sys/cam/ata X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/cam/ata X-SVN-Commit-Revision: 360411 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, 27 Apr 2020 23:43:13 -0000 Author: imp Date: Mon Apr 27 23:43:08 2020 New Revision: 360411 URL: https://svnweb.freebsd.org/changeset/base/360411 Log: Convert unmappedio over to a flag. Make unmappedio a flag. Move it to the flags definition. Add compat sysctl for it. Modified: head/sys/cam/ata/ata_da.c Modified: head/sys/cam/ata/ata_da.c ============================================================================== --- head/sys/cam/ata/ata_da.c Mon Apr 27 23:43:04 2020 (r360410) +++ head/sys/cam/ata/ata_da.c Mon Apr 27 23:43:08 2020 (r360411) @@ -109,7 +109,8 @@ typedef enum { ADA_FLAG_ANNOUNCED = 0x00100000, ADA_FLAG_DIRTY = 0x00200000, ADA_FLAG_CAN_NCQ_TRIM = 0x00400000, /* CAN_TRIM also set */ - ADA_FLAG_PIM_ATA_EXT = 0x00800000 + ADA_FLAG_PIM_ATA_EXT = 0x00800000, + ADA_FLAG_UNMAPPEDIO = 0x01000000 } ada_flags; #define ADA_FLAG_STRING \ "\020" \ @@ -135,7 +136,8 @@ typedef enum { "\025ANNOUNCED" \ "\026DIRTY" \ "\027CAN_NCQ_TRIM" \ - "\030PIM_ATA_EXT" + "\030PIM_ATA_EXT" \ + "\031UNMAPPEDIO" typedef enum { ADA_Q_NONE = 0x00, @@ -264,7 +266,6 @@ struct ada_softc { int trim_max_ranges; int read_ahead; int write_cache; - int unmappedio; int rotating; #ifdef CAM_TEST_FAILURE int force_read_error; @@ -831,6 +832,7 @@ static periph_oninv_t adaoninvalidate; static periph_dtor_t adacleanup; static void adaasync(void *callback_arg, u_int32_t code, struct cam_path *path, void *arg); +static int adabitsysctl(SYSCTL_HANDLER_ARGS); static int adaflagssysctl(SYSCTL_HANDLER_ARGS); static int adazonesupsysctl(SYSCTL_HANDLER_ARGS); static int adazonesupsysctl(SYSCTL_HANDLER_ARGS); @@ -1515,9 +1517,6 @@ adasysctlinit(void *context, int pending) OID_AUTO, "write_cache", CTLFLAG_RW | CTLFLAG_MPSAFE, &softc->write_cache, 0, "Enable disk write cache."); SYSCTL_ADD_INT(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), - OID_AUTO, "unmapped_io", CTLFLAG_RD | CTLFLAG_MPSAFE, - &softc->unmappedio, 0, "Unmapped I/O leaf"); - SYSCTL_ADD_INT(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), OID_AUTO, "rotating", CTLFLAG_RD | CTLFLAG_MPSAFE, &softc->rotating, 0, "Rotating media"); SYSCTL_ADD_PROC(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), @@ -1548,6 +1547,10 @@ adasysctlinit(void *context, int pending) OID_AUTO, "flags", CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE, softc, 0, adaflagssysctl, "A", "Flags for drive"); + SYSCTL_ADD_PROC(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), + OID_AUTO, "unmapped_io", CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_MPSAFE, + &softc->flags, (u_int)ADA_FLAG_UNMAPPEDIO, adabitsysctl, "I", + "Unmapped I/O support *DEPRECATED* gone in FreeBSD 14"); #ifdef CAM_TEST_FAILURE /* @@ -1657,6 +1660,21 @@ adadeletemethodsysctl(SYSCTL_HANDLER_ARGS) } static int +adabitsysctl(SYSCTL_HANDLER_ARGS) +{ + u_int *flags = arg1; + u_int test = arg2; + int tmpout, error; + + tmpout = !!(*flags & test); + error = SYSCTL_OUT(req, &tmpout, sizeof(tmpout)); + if (error || !req->newptr) + return (error); + + return (EPERM); +} + +static int adaflagssysctl(SYSCTL_HANDLER_ARGS) { struct sbuf sbuf; @@ -3459,7 +3477,7 @@ adasetgeom(struct ada_softc *softc, struct ccb_getdev softc->disk->d_delmaxsize = maxio; if ((softc->cpi.hba_misc & PIM_UNMAPPED) != 0) { d_flags |= DISKFLAG_UNMAPPED_BIO; - softc->unmappedio = 1; + softc->flags |= ADA_FLAG_UNMAPPEDIO; } softc->disk->d_flags = d_flags; strlcpy(softc->disk->d_descr, cgd->ident_data.model, From owner-svn-src-all@freebsd.org Mon Apr 27 23:43: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 A02112CA750; Mon, 27 Apr 2020 23:43:13 +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 49B1YY3XRKz3PK7; Mon, 27 Apr 2020 23:43:13 +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 677D41AD84; Mon, 27 Apr 2020 23:43:13 +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 03RNhDW7075677; Mon, 27 Apr 2020 23:43:13 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RNhDj4075676; Mon, 27 Apr 2020 23:43:13 GMT (envelope-from imp@FreeBSD.org) Message-Id: <202004272343.03RNhDj4075676@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Mon, 27 Apr 2020 23:43:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360412 - head/sys/cam/ata X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/cam/ata X-SVN-Commit-Revision: 360412 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, 27 Apr 2020 23:43:13 -0000 Author: imp Date: Mon Apr 27 23:43:12 2020 New Revision: 360412 URL: https://svnweb.freebsd.org/changeset/base/360412 Log: Convert rotating to a flag bit. Move rotating to a flag bit. Add bit definitions for it. Create a compat sysctl for it. Modified: head/sys/cam/ata/ata_da.c Modified: head/sys/cam/ata/ata_da.c ============================================================================== --- head/sys/cam/ata/ata_da.c Mon Apr 27 23:43:08 2020 (r360411) +++ head/sys/cam/ata/ata_da.c Mon Apr 27 23:43:12 2020 (r360412) @@ -110,7 +110,8 @@ typedef enum { ADA_FLAG_DIRTY = 0x00200000, ADA_FLAG_CAN_NCQ_TRIM = 0x00400000, /* CAN_TRIM also set */ ADA_FLAG_PIM_ATA_EXT = 0x00800000, - ADA_FLAG_UNMAPPEDIO = 0x01000000 + ADA_FLAG_UNMAPPEDIO = 0x01000000, + ADA_FLAG_ROTATING = 0x02000000 } ada_flags; #define ADA_FLAG_STRING \ "\020" \ @@ -137,7 +138,8 @@ typedef enum { "\026DIRTY" \ "\027CAN_NCQ_TRIM" \ "\030PIM_ATA_EXT" \ - "\031UNMAPPEDIO" + "\031UNMAPPEDIO" \ + "\032ROTATING" typedef enum { ADA_Q_NONE = 0x00, @@ -266,7 +268,6 @@ struct ada_softc { int trim_max_ranges; int read_ahead; int write_cache; - int rotating; #ifdef CAM_TEST_FAILURE int force_read_error; int force_write_error; @@ -1516,9 +1517,6 @@ adasysctlinit(void *context, int pending) SYSCTL_ADD_INT(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), OID_AUTO, "write_cache", CTLFLAG_RW | CTLFLAG_MPSAFE, &softc->write_cache, 0, "Enable disk write cache."); - SYSCTL_ADD_INT(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), - OID_AUTO, "rotating", CTLFLAG_RD | CTLFLAG_MPSAFE, - &softc->rotating, 0, "Rotating media"); SYSCTL_ADD_PROC(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), OID_AUTO, "zone_mode", CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT, @@ -1551,6 +1549,10 @@ adasysctlinit(void *context, int pending) OID_AUTO, "unmapped_io", CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_MPSAFE, &softc->flags, (u_int)ADA_FLAG_UNMAPPEDIO, adabitsysctl, "I", "Unmapped I/O support *DEPRECATED* gone in FreeBSD 14"); + SYSCTL_ADD_PROC(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), + OID_AUTO, "rotating", CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_MPSAFE, + &softc->flags, (u_int)ADA_FLAG_ROTATING, adabitsysctl, "I", + "Rotating media *DEPRECATED* gone in FreeBSD 14"); #ifdef CAM_TEST_FAILURE /* @@ -1873,11 +1875,12 @@ adaregister(struct cam_periph *periph, void *arg) /* Disable queue sorting for non-rotational media by default. */ if (cgd->ident_data.media_rotation_rate == ATA_RATE_NON_ROTATING) { - softc->rotating = 0; + softc->flags &= ~ADA_FLAG_ROTATING; } else { - softc->rotating = 1; + softc->flags |= ADA_FLAG_ROTATING; } - cam_iosched_set_sort_queue(softc->cam_iosched, softc->rotating ? -1 : 0); + cam_iosched_set_sort_queue(softc->cam_iosched, + (softc->flags & ADA_FLAG_ROTATING) ? -1 : 0); softc->disk = disk_alloc(); adasetgeom(softc, cgd); softc->disk->d_devstat = devstat_new_entry(periph->periph_name, From owner-svn-src-all@freebsd.org Mon Apr 27 23:43: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 E55742CA7B4; Mon, 27 Apr 2020 23:43:18 +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 49B1Yf3Rh5z3PN5; Mon, 27 Apr 2020 23:43:18 +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 752D01AD85; Mon, 27 Apr 2020 23:43:17 +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 03RNhHj0075731; Mon, 27 Apr 2020 23:43:17 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RNhHW7075730; Mon, 27 Apr 2020 23:43:17 GMT (envelope-from imp@FreeBSD.org) Message-Id: <202004272343.03RNhHW7075730@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Mon, 27 Apr 2020 23:43:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360413 - head/sys/cam/nvme X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/cam/nvme X-SVN-Commit-Revision: 360413 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, 27 Apr 2020 23:43:20 -0000 Author: imp Date: Mon Apr 27 23:43:17 2020 New Revision: 360413 URL: https://svnweb.freebsd.org/changeset/base/360413 Log: Export the nda device's flags as a sysctl. Modified: head/sys/cam/nvme/nvme_da.c Modified: head/sys/cam/nvme/nvme_da.c ============================================================================== --- head/sys/cam/nvme/nvme_da.c Mon Apr 27 23:43:12 2020 (r360412) +++ head/sys/cam/nvme/nvme_da.c Mon Apr 27 23:43:17 2020 (r360413) @@ -48,6 +48,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #endif /* _KERNEL */ @@ -75,6 +76,11 @@ typedef enum { NDA_FLAG_DIRTY = 0x0002, NDA_FLAG_SCTX_INIT = 0x0004, } nda_flags; +#define NDA_FLAG_STRING \ + "\020" \ + "\001OPEN" \ + "\002DIRTY" \ + "\003SCTX_INIT" typedef enum { NDA_Q_4K = 0x01, @@ -144,6 +150,7 @@ static periph_init_t ndainit; static void ndaasync(void *callback_arg, u_int32_t code, struct cam_path *path, void *arg); static void ndasysctlinit(void *context, int pending); +static int ndaflagssysctl(SYSCTL_HANDLER_ARGS); static periph_ctor_t ndaregister; static periph_dtor_t ndacleanup; static periph_start_t ndastart; @@ -659,6 +666,11 @@ ndasysctlinit(void *context, int pending) OID_AUTO, "rotating", CTLFLAG_RD, &nda_rotating_media, 1, "Rotating media"); + SYSCTL_ADD_PROC(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), + OID_AUTO, "flags", CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE, + softc, 0, ndaflagssysctl, "A", + "Flags for drive"); + #ifdef CAM_IO_STATS softc->sysctl_stats_tree = SYSCTL_ADD_NODE(&softc->sysctl_stats_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), OID_AUTO, "stats", @@ -696,6 +708,24 @@ ndasysctlinit(void *context, int pending) softc->sysctl_tree); cam_periph_release(periph); +} + +static int +ndaflagssysctl(SYSCTL_HANDLER_ARGS) +{ + struct sbuf sbuf; + struct nda_softc *softc = arg1; + int error; + + sbuf_new_for_sysctl(&sbuf, NULL, 0, req); + if (softc->flags != 0) + sbuf_printf(&sbuf, "0x%b", (unsigned)softc->flags, NDA_FLAG_STRING); + else + sbuf_printf(&sbuf, "0"); + error = sbuf_finish(&sbuf); + sbuf_delete(&sbuf); + + return (error); } static int From owner-svn-src-all@freebsd.org Mon Apr 27 23:47: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 E0FAC2CA9F0; Mon, 27 Apr 2020 23:47:42 +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 49B1fk5yZHz3PtB; Mon, 27 Apr 2020 23:47:42 +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 C78AB1AD96; Mon, 27 Apr 2020 23:47:42 +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 03RNlgbq076516; Mon, 27 Apr 2020 23:47:42 GMT (envelope-from brooks@FreeBSD.org) Received: (from brooks@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RNleZm076507; Mon, 27 Apr 2020 23:47:40 GMT (envelope-from brooks@FreeBSD.org) Message-Id: <202004272347.03RNleZm076507@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brooks set sender to brooks@FreeBSD.org using -f From: Brooks Davis Date: Mon, 27 Apr 2020 23:47: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: r360414 - in stable/12: lib/libc/gen lib/libc/net lib/libc/rpc sys/dev/ocs_fc sys/net80211 X-SVN-Group: stable-12 X-SVN-Commit-Author: brooks X-SVN-Commit-Paths: in stable/12: lib/libc/gen lib/libc/net lib/libc/rpc sys/dev/ocs_fc sys/net80211 X-SVN-Commit-Revision: 360414 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, 27 Apr 2020 23:47:42 -0000 Author: brooks Date: Mon Apr 27 23:47:40 2020 New Revision: 360414 URL: https://svnweb.freebsd.org/changeset/base/360414 Log: MFC r359978: Fix -Wvoid-pointer-to-enum-cast warnings. This pattern is used in callbacks with void * data arguments and seems both relatively uncommon and relatively harmless. Silence the warning by casting through uintptr_t. This warning is on by default in Clang 11. Reviewed by: arichardson Obtained from: CheriBSD (partial) Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D24425 Modified: stable/12/lib/libc/gen/getgrent.c stable/12/lib/libc/gen/getpwent.c stable/12/lib/libc/net/gethostnamadr.c stable/12/lib/libc/net/getnetnamadr.c stable/12/lib/libc/net/getprotoent.c stable/12/lib/libc/net/getservent.c stable/12/lib/libc/rpc/getrpcent.c stable/12/sys/dev/ocs_fc/ocs_device.c stable/12/sys/net80211/ieee80211_output.c Directory Properties: stable/12/ (props changed) Modified: stable/12/lib/libc/gen/getgrent.c ============================================================================== --- stable/12/lib/libc/gen/getgrent.c Mon Apr 27 23:43:17 2020 (r360413) +++ stable/12/lib/libc/gen/getgrent.c Mon Apr 27 23:47:40 2020 (r360414) @@ -166,7 +166,7 @@ grp_id_func(char *buffer, size_t *buffer_size, va_list enum nss_lookup_type lookup_type; - lookup_type = (enum nss_lookup_type)cache_mdata; + lookup_type = (enum nss_lookup_type)(uintptr_t)cache_mdata; switch (lookup_type) { case nss_lt_name: name = va_arg(ap, char *); @@ -220,7 +220,7 @@ grp_marshal_func(char *buffer, size_t *buffer_size, vo size_t desired_size, size, mem_size; char *p, **mem; - switch ((enum nss_lookup_type)cache_mdata) { + switch ((enum nss_lookup_type)(uintptr_t)cache_mdata) { case nss_lt_name: name = va_arg(ap, char *); break; @@ -315,7 +315,7 @@ grp_unmarshal_func(char *buffer, size_t buffer_size, v char *p; char **mem; - switch ((enum nss_lookup_type)cache_mdata) { + switch ((enum nss_lookup_type)(uintptr_t)cache_mdata) { case nss_lt_name: name = va_arg(ap, char *); break; @@ -804,7 +804,7 @@ files_setgrent(void *retval, void *mdata, va_list ap) rv = files_getstate(&st); if (rv != 0) return (NS_UNAVAIL); - switch ((enum constants)mdata) { + switch ((enum constants)(uintptr_t)mdata) { case SETGRENT: stayopen = va_arg(ap, int); if (st->fp != NULL) @@ -841,7 +841,7 @@ files_group(void *retval, void *mdata, va_list ap) fresh = 0; name = NULL; gid = (gid_t)-1; - how = (enum nss_lookup_type)mdata; + how = (enum nss_lookup_type)(uintptr_t)mdata; switch (how) { case nss_lt_name: name = va_arg(ap, const char *); @@ -1094,7 +1094,7 @@ nis_group(void *retval, void *mdata, va_list ap) name = NULL; gid = (gid_t)-1; - how = (enum nss_lookup_type)mdata; + how = (enum nss_lookup_type)(uintptr_t)mdata; switch (how) { case nss_lt_name: name = va_arg(ap, const char *); @@ -1253,7 +1253,7 @@ compat_setgrent(void *retval, void *mdata, va_list ap) rv = compat_getstate(&st); if (rv != 0) return (NS_UNAVAIL); - switch ((enum constants)mdata) { + switch ((enum constants)(uintptr_t)mdata) { case SETGRENT: stayopen = va_arg(ap, int); if (st->fp != NULL) @@ -1322,7 +1322,7 @@ compat_group(void *retval, void *mdata, va_list ap) fresh = 0; name = NULL; gid = (gid_t)-1; - how = (enum nss_lookup_type)mdata; + how = (enum nss_lookup_type)(uintptr_t)mdata; switch (how) { case nss_lt_name: name = va_arg(ap, const char *); Modified: stable/12/lib/libc/gen/getpwent.c ============================================================================== --- stable/12/lib/libc/gen/getpwent.c Mon Apr 27 23:43:17 2020 (r360413) +++ stable/12/lib/libc/gen/getpwent.c Mon Apr 27 23:47:40 2020 (r360414) @@ -213,7 +213,7 @@ pwd_id_func(char *buffer, size_t *buffer_size, va_list int res = NS_UNAVAIL; enum nss_lookup_type lookup_type; - lookup_type = (enum nss_lookup_type)cache_mdata; + lookup_type = (enum nss_lookup_type)(uintptr_t)cache_mdata; switch (lookup_type) { case nss_lt_name: name = va_arg(ap, char *); @@ -267,7 +267,7 @@ pwd_marshal_func(char *buffer, size_t *buffer_size, vo size_t desired_size, size; char *p; - switch ((enum nss_lookup_type)cache_mdata) { + switch ((enum nss_lookup_type)(uintptr_t)cache_mdata) { case nss_lt_name: name = va_arg(ap, char *); break; @@ -370,7 +370,7 @@ pwd_unmarshal_func(char *buffer, size_t buffer_size, v char *p; - switch ((enum nss_lookup_type)cache_mdata) { + switch ((enum nss_lookup_type)(uintptr_t)cache_mdata) { case nss_lt_name: name = va_arg(ap, char *); break; @@ -764,7 +764,7 @@ files_setpwent(void *retval, void *mdata, va_list ap) rv = files_getstate(&st); if (rv != 0) return (NS_UNAVAIL); - switch ((enum constants)mdata) { + switch ((enum constants)(uintptr_t)mdata) { case SETPWENT: stayopen = va_arg(ap, int); st->keynum = 0; @@ -802,7 +802,7 @@ files_passwd(void *retval, void *mdata, va_list ap) name = NULL; uid = (uid_t)-1; - how = (enum nss_lookup_type)mdata; + how = (enum nss_lookup_type)(uintptr_t)mdata; switch (how) { case nss_lt_name: name = va_arg(ap, const char *); @@ -1294,7 +1294,7 @@ nis_passwd(void *retval, void *mdata, va_list ap) name = NULL; uid = (uid_t)-1; - how = (enum nss_lookup_type)mdata; + how = (enum nss_lookup_type)(uintptr_t)mdata; switch (how) { case nss_lt_name: name = va_arg(ap, const char *); @@ -1693,7 +1693,7 @@ compat_setpwent(void *retval, void *mdata, va_list ap) rv = compat_getstate(&st); if (rv != 0) return (NS_UNAVAIL); - switch ((enum constants)mdata) { + switch ((enum constants)(uintptr_t)mdata) { case SETPWENT: stayopen = va_arg(ap, int); st->keynum = 0; @@ -1740,7 +1740,7 @@ compat_passwd(void *retval, void *mdata, va_list ap) from_compat = 0; name = NULL; uid = (uid_t)-1; - how = (enum nss_lookup_type)mdata; + how = (enum nss_lookup_type)(uintptr_t)mdata; switch (how) { case nss_lt_name: name = va_arg(ap, const char *); Modified: stable/12/lib/libc/net/gethostnamadr.c ============================================================================== --- stable/12/lib/libc/net/gethostnamadr.c Mon Apr 27 23:43:17 2020 (r360413) +++ stable/12/lib/libc/net/gethostnamadr.c Mon Apr 27 23:47:40 2020 (r360414) @@ -177,7 +177,7 @@ host_id_func(char *buffer, size_t *buffer_size, va_lis res_options = statp->options & (RES_RECURSE | RES_DEFNAMES | RES_DNSRCH | RES_NOALIASES | RES_USE_INET6); - lookup_type = (enum nss_lookup_type)cache_mdata; + lookup_type = (enum nss_lookup_type)(uintptr_t)cache_mdata; switch (lookup_type) { case nss_lt_name: str = va_arg(ap, char *); @@ -268,7 +268,7 @@ host_marshal_func(char *buffer, size_t *buffer_size, v size_t desired_size, aliases_size, addr_size, size; char *p, **iter; - switch ((enum nss_lookup_type)cache_mdata) { + switch ((enum nss_lookup_type)(uintptr_t)cache_mdata) { case nss_lt_name: str = va_arg(ap, char *); type = va_arg(ap, int); @@ -375,7 +375,7 @@ host_unmarshal_func(char *buffer, size_t buffer_size, char *orig_buf; size_t orig_buf_size; - switch ((enum nss_lookup_type)cache_mdata) { + switch ((enum nss_lookup_type)(uintptr_t)cache_mdata) { case nss_lt_name: str = va_arg(ap, char *); type = va_arg(ap, int); Modified: stable/12/lib/libc/net/getnetnamadr.c ============================================================================== --- stable/12/lib/libc/net/getnetnamadr.c Mon Apr 27 23:43:17 2020 (r360413) +++ stable/12/lib/libc/net/getnetnamadr.c Mon Apr 27 23:47:40 2020 (r360414) @@ -70,7 +70,7 @@ net_id_func(char *buffer, size_t *buffer_size, va_list enum nss_lookup_type lookup_type; int res = NS_UNAVAIL; - lookup_type = (enum nss_lookup_type)cache_mdata; + lookup_type = (enum nss_lookup_type)(uintptr_t)cache_mdata; switch (lookup_type) { case nss_lt_name: name = va_arg(ap, char *); @@ -133,7 +133,7 @@ net_marshal_func(char *buffer, size_t *buffer_size, vo char *p; char **alias; - switch ((enum nss_lookup_type)cache_mdata) { + switch ((enum nss_lookup_type)(uintptr_t)cache_mdata) { case nss_lt_name: name = va_arg(ap, char *); break; @@ -221,7 +221,7 @@ net_unmarshal_func(char *buffer, size_t buffer_size, v char *p; char **alias; - switch ((enum nss_lookup_type)cache_mdata) { + switch ((enum nss_lookup_type)(uintptr_t)cache_mdata) { case nss_lt_name: name = va_arg(ap, char *); break; Modified: stable/12/lib/libc/net/getprotoent.c ============================================================================== --- stable/12/lib/libc/net/getprotoent.c Mon Apr 27 23:43:17 2020 (r360413) +++ stable/12/lib/libc/net/getprotoent.c Mon Apr 27 23:47:40 2020 (r360414) @@ -97,7 +97,7 @@ __proto_id_func(char *buffer, size_t *buffer_size, va_ enum nss_lookup_type lookup_type; int res = NS_UNAVAIL; - lookup_type = (enum nss_lookup_type)cache_mdata; + lookup_type = (enum nss_lookup_type)(uintptr_t)cache_mdata; switch (lookup_type) { case nss_lt_name: name = va_arg(ap, char *); @@ -155,7 +155,7 @@ __proto_marshal_func(char *buffer, size_t *buffer_size char *p; char **alias; - switch ((enum nss_lookup_type)cache_mdata) { + switch ((enum nss_lookup_type)(uintptr_t)cache_mdata) { case nss_lt_name: name = va_arg(ap, char *); break; @@ -241,7 +241,7 @@ __proto_unmarshal_func(char *buffer, size_t buffer_siz char *p; char **alias; - switch ((enum nss_lookup_type)cache_mdata) { + switch ((enum nss_lookup_type)(uintptr_t)cache_mdata) { case nss_lt_name: name = va_arg(ap, char *); break; Modified: stable/12/lib/libc/net/getservent.c ============================================================================== --- stable/12/lib/libc/net/getservent.c Mon Apr 27 23:43:17 2020 (r360413) +++ stable/12/lib/libc/net/getservent.c Mon Apr 27 23:47:40 2020 (r360414) @@ -446,7 +446,7 @@ files_setservent(void *retval, void *mdata, va_list ap if (rv != 0) return (NS_UNAVAIL); - switch ((enum constants)mdata) { + switch ((enum constants)(uintptr_t)mdata) { case SETSERVENT: f = va_arg(ap,int); if (st->fp == NULL) @@ -509,7 +509,7 @@ db_servent(void *retval, void *mdata, va_list ap) name = NULL; proto = NULL; - how = (enum nss_lookup_type)mdata; + how = (enum nss_lookup_type)(uintptr_t)mdata; switch (how) { case nss_lt_name: name = va_arg(ap, char *); @@ -626,7 +626,7 @@ db_setservent(void *retval, void *mdata, va_list ap) if (rv != 0) return (NS_UNAVAIL); - switch ((enum constants)mdata) { + switch ((enum constants)(uintptr_t)mdata) { case SETSERVENT: f = va_arg(ap, int); st->stayopen |= f; @@ -682,7 +682,7 @@ nis_servent(void *retval, void *mdata, va_list ap) name = NULL; proto = NULL; buf = NULL; - how = (enum nss_lookup_type)mdata; + how = (enum nss_lookup_type)(uintptr_t)mdata; switch (how) { case nss_lt_name: name = va_arg(ap, char *); @@ -814,7 +814,7 @@ nis_setservent(void *result, void *mdata, va_list ap) if (rv != 0) return (NS_UNAVAIL); - switch ((enum constants)mdata) { + switch ((enum constants)(uintptr_t)mdata) { case SETSERVENT: case ENDSERVENT: free(st->yp_key); @@ -850,7 +850,7 @@ compat_setservent(void *retval, void *mdata, va_list a (void)files_setservent(retval, mdata, ap); - switch ((enum constants)mdata) { + switch ((enum constants)(uintptr_t)mdata) { case SETSERVENT: f = va_arg(ap,int); (void)nsdispatch(retval, compat_dtab, NSDB_SERVICES_COMPAT, @@ -879,7 +879,7 @@ serv_id_func(char *buffer, size_t *buffer_size, va_lis enum nss_lookup_type lookup_type; int res = NS_UNAVAIL; - lookup_type = (enum nss_lookup_type)cache_mdata; + lookup_type = (enum nss_lookup_type)(uintptr_t)cache_mdata; switch (lookup_type) { case nss_lt_name: name = va_arg(ap, char *); @@ -961,7 +961,7 @@ serv_marshal_func(char *buffer, size_t *buffer_size, v size_t size; size_t aliases_size; - switch ((enum nss_lookup_type)cache_mdata) { + switch ((enum nss_lookup_type)(uintptr_t)cache_mdata) { case nss_lt_name: name = va_arg(ap, char *); proto = va_arg(ap, char *); @@ -1058,7 +1058,7 @@ serv_unmarshal_func(char *buffer, size_t buffer_size, size_t orig_buf_size; int *ret_errno; - switch ((enum nss_lookup_type)cache_mdata) { + switch ((enum nss_lookup_type)(uintptr_t)cache_mdata) { case nss_lt_name: name = va_arg(ap, char *); proto = va_arg(ap, char *); Modified: stable/12/lib/libc/rpc/getrpcent.c ============================================================================== --- stable/12/lib/libc/rpc/getrpcent.c Mon Apr 27 23:43:17 2020 (r360413) +++ stable/12/lib/libc/rpc/getrpcent.c Mon Apr 27 23:47:40 2020 (r360414) @@ -227,7 +227,7 @@ files_rpcent(void *retval, void *mdata, va_list ap) int stayopen; enum nss_lookup_type how; - how = (enum nss_lookup_type)mdata; + how = (enum nss_lookup_type)(uintptr_t)mdata; switch (how) { case nss_lt_name: @@ -347,7 +347,7 @@ files_setrpcent(void *retval, void *mdata, va_list ap) if (rv != 0) return (NS_UNAVAIL); - switch ((enum constants)mdata) + switch ((enum constants)(uintptr_t)mdata) { case SETRPCENT: f = va_arg(ap,int); @@ -407,7 +407,7 @@ nis_rpcent(void *retval, void *mdata, va_list ap) enum nss_lookup_type how; int no_name_active; - how = (enum nss_lookup_type)mdata; + how = (enum nss_lookup_type)(uintptr_t)mdata; switch (how) { case nss_lt_name: @@ -584,7 +584,7 @@ nis_setrpcent(void *retval, void *mdata, va_list ap) if (rv != 0) return (NS_UNAVAIL); - switch ((enum constants)mdata) + switch ((enum constants)(uintptr_t)mdata) { case SETRPCENT: case ENDRPCENT: @@ -611,7 +611,7 @@ rpc_id_func(char *buffer, size_t *buffer_size, va_list enum nss_lookup_type lookup_type; int res = NS_UNAVAIL; - lookup_type = (enum nss_lookup_type)cache_mdata; + lookup_type = (enum nss_lookup_type)(uintptr_t)cache_mdata; switch (lookup_type) { case nss_lt_name: name = va_arg(ap, char *); @@ -668,7 +668,7 @@ rpc_marshal_func(char *buffer, size_t *buffer_size, vo char *p; char **alias; - switch ((enum nss_lookup_type)cache_mdata) { + switch ((enum nss_lookup_type)(uintptr_t)cache_mdata) { case nss_lt_name: name = va_arg(ap, char *); break; @@ -754,7 +754,7 @@ rpc_unmarshal_func(char *buffer, size_t buffer_size, v char *p; char **alias; - switch ((enum nss_lookup_type)cache_mdata) { + switch ((enum nss_lookup_type)(uintptr_t)cache_mdata) { case nss_lt_name: name = va_arg(ap, char *); break; Modified: stable/12/sys/dev/ocs_fc/ocs_device.c ============================================================================== --- stable/12/sys/dev/ocs_fc/ocs_device.c Mon Apr 27 23:43:17 2020 (r360413) +++ stable/12/sys/dev/ocs_fc/ocs_device.c Mon Apr 27 23:47:40 2020 (r360414) @@ -1238,7 +1238,7 @@ __ocs_d_wait_topology_notify(ocs_sm_ctx_t *ctx, ocs_sm break; case OCS_EVT_SPORT_TOPOLOGY_NOTIFY: { - ocs_sport_topology_e topology = (ocs_sport_topology_e)arg; + ocs_sport_topology_e topology = (ocs_sport_topology_e)(uintptr_t)arg; ocs_assert(!node->sport->domain->attached, NULL); ocs_assert(node->send_ls_acc == OCS_NODE_SEND_LS_ACC_PLOGI, NULL); node_printf(node, "topology notification, topology=%d\n", topology); Modified: stable/12/sys/net80211/ieee80211_output.c ============================================================================== --- stable/12/sys/net80211/ieee80211_output.c Mon Apr 27 23:43:17 2020 (r360413) +++ stable/12/sys/net80211/ieee80211_output.c Mon Apr 27 23:47:40 2020 (r360414) @@ -3245,7 +3245,7 @@ static void ieee80211_tx_mgt_cb(struct ieee80211_node *ni, void *arg, int status) { struct ieee80211vap *vap = ni->ni_vap; - enum ieee80211_state ostate = (enum ieee80211_state) arg; + enum ieee80211_state ostate = (enum ieee80211_state)(uintptr_t)arg; /* * Frame transmit completed; arrange timer callback. If From owner-svn-src-all@freebsd.org Mon Apr 27 23:49: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 C24CB2CAA65; Mon, 27 Apr 2020 23:49:15 +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 49B1hW52jNz3Q1J; Mon, 27 Apr 2020 23:49:15 +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 A7EBF1AD9B; Mon, 27 Apr 2020 23:49:15 +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 03RNnFZ8076643; Mon, 27 Apr 2020 23:49:15 GMT (envelope-from brooks@FreeBSD.org) Received: (from brooks@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RNnDKR076634; Mon, 27 Apr 2020 23:49:13 GMT (envelope-from brooks@FreeBSD.org) Message-Id: <202004272349.03RNnDKR076634@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brooks set sender to brooks@FreeBSD.org using -f From: Brooks Davis Date: Mon, 27 Apr 2020 23:49:13 +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: r360415 - in stable/11: lib/libc/gen lib/libc/net lib/libc/rpc sys/dev/ocs_fc sys/net80211 X-SVN-Group: stable-11 X-SVN-Commit-Author: brooks X-SVN-Commit-Paths: in stable/11: lib/libc/gen lib/libc/net lib/libc/rpc sys/dev/ocs_fc sys/net80211 X-SVN-Commit-Revision: 360415 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, 27 Apr 2020 23:49:15 -0000 Author: brooks Date: Mon Apr 27 23:49:13 2020 New Revision: 360415 URL: https://svnweb.freebsd.org/changeset/base/360415 Log: MFC r359978: Fix -Wvoid-pointer-to-enum-cast warnings. This pattern is used in callbacks with void * data arguments and seems both relatively uncommon and relatively harmless. Silence the warning by casting through uintptr_t. This warning is on by default in Clang 11. Reviewed by: arichardson Obtained from: CheriBSD (partial) Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D24425 Modified: stable/11/lib/libc/gen/getgrent.c stable/11/lib/libc/gen/getpwent.c stable/11/lib/libc/net/gethostnamadr.c stable/11/lib/libc/net/getnetnamadr.c stable/11/lib/libc/net/getprotoent.c stable/11/lib/libc/net/getservent.c stable/11/lib/libc/rpc/getrpcent.c stable/11/sys/dev/ocs_fc/ocs_device.c stable/11/sys/net80211/ieee80211_output.c Directory Properties: stable/11/ (props changed) Modified: stable/11/lib/libc/gen/getgrent.c ============================================================================== --- stable/11/lib/libc/gen/getgrent.c Mon Apr 27 23:47:40 2020 (r360414) +++ stable/11/lib/libc/gen/getgrent.c Mon Apr 27 23:49:13 2020 (r360415) @@ -164,7 +164,7 @@ grp_id_func(char *buffer, size_t *buffer_size, va_list enum nss_lookup_type lookup_type; - lookup_type = (enum nss_lookup_type)cache_mdata; + lookup_type = (enum nss_lookup_type)(uintptr_t)cache_mdata; switch (lookup_type) { case nss_lt_name: name = va_arg(ap, char *); @@ -218,7 +218,7 @@ grp_marshal_func(char *buffer, size_t *buffer_size, vo size_t desired_size, size, mem_size; char *p, **mem; - switch ((enum nss_lookup_type)cache_mdata) { + switch ((enum nss_lookup_type)(uintptr_t)cache_mdata) { case nss_lt_name: name = va_arg(ap, char *); break; @@ -313,7 +313,7 @@ grp_unmarshal_func(char *buffer, size_t buffer_size, v char *p; char **mem; - switch ((enum nss_lookup_type)cache_mdata) { + switch ((enum nss_lookup_type)(uintptr_t)cache_mdata) { case nss_lt_name: name = va_arg(ap, char *); break; @@ -804,7 +804,7 @@ files_setgrent(void *retval, void *mdata, va_list ap) rv = files_getstate(&st); if (rv != 0) return (NS_UNAVAIL); - switch ((enum constants)mdata) { + switch ((enum constants)(uintptr_t)mdata) { case SETGRENT: stayopen = va_arg(ap, int); if (st->fp != NULL) @@ -840,7 +840,7 @@ files_group(void *retval, void *mdata, va_list ap) name = NULL; gid = (gid_t)-1; - how = (enum nss_lookup_type)mdata; + how = (enum nss_lookup_type)(uintptr_t)mdata; switch (how) { case nss_lt_name: name = va_arg(ap, const char *); @@ -1087,7 +1087,7 @@ nis_group(void *retval, void *mdata, va_list ap) name = NULL; gid = (gid_t)-1; - how = (enum nss_lookup_type)mdata; + how = (enum nss_lookup_type)(uintptr_t)mdata; switch (how) { case nss_lt_name: name = va_arg(ap, const char *); @@ -1246,7 +1246,7 @@ compat_setgrent(void *retval, void *mdata, va_list ap) rv = compat_getstate(&st); if (rv != 0) return (NS_UNAVAIL); - switch ((enum constants)mdata) { + switch ((enum constants)(uintptr_t)mdata) { case SETGRENT: stayopen = va_arg(ap, int); if (st->fp != NULL) @@ -1314,7 +1314,7 @@ compat_group(void *retval, void *mdata, va_list ap) name = NULL; gid = (gid_t)-1; - how = (enum nss_lookup_type)mdata; + how = (enum nss_lookup_type)(uintptr_t)mdata; switch (how) { case nss_lt_name: name = va_arg(ap, const char *); Modified: stable/11/lib/libc/gen/getpwent.c ============================================================================== --- stable/11/lib/libc/gen/getpwent.c Mon Apr 27 23:47:40 2020 (r360414) +++ stable/11/lib/libc/gen/getpwent.c Mon Apr 27 23:49:13 2020 (r360415) @@ -211,7 +211,7 @@ pwd_id_func(char *buffer, size_t *buffer_size, va_list int res = NS_UNAVAIL; enum nss_lookup_type lookup_type; - lookup_type = (enum nss_lookup_type)cache_mdata; + lookup_type = (enum nss_lookup_type)(uintptr_t)cache_mdata; switch (lookup_type) { case nss_lt_name: name = va_arg(ap, char *); @@ -265,7 +265,7 @@ pwd_marshal_func(char *buffer, size_t *buffer_size, vo size_t desired_size, size; char *p; - switch ((enum nss_lookup_type)cache_mdata) { + switch ((enum nss_lookup_type)(uintptr_t)cache_mdata) { case nss_lt_name: name = va_arg(ap, char *); break; @@ -368,7 +368,7 @@ pwd_unmarshal_func(char *buffer, size_t buffer_size, v char *p; - switch ((enum nss_lookup_type)cache_mdata) { + switch ((enum nss_lookup_type)(uintptr_t)cache_mdata) { case nss_lt_name: name = va_arg(ap, char *); break; @@ -762,7 +762,7 @@ files_setpwent(void *retval, void *mdata, va_list ap) rv = files_getstate(&st); if (rv != 0) return (NS_UNAVAIL); - switch ((enum constants)mdata) { + switch ((enum constants)(uintptr_t)mdata) { case SETPWENT: stayopen = va_arg(ap, int); st->keynum = 0; @@ -800,7 +800,7 @@ files_passwd(void *retval, void *mdata, va_list ap) name = NULL; uid = (uid_t)-1; - how = (enum nss_lookup_type)mdata; + how = (enum nss_lookup_type)(uintptr_t)mdata; switch (how) { case nss_lt_name: name = va_arg(ap, const char *); @@ -1292,7 +1292,7 @@ nis_passwd(void *retval, void *mdata, va_list ap) name = NULL; uid = (uid_t)-1; - how = (enum nss_lookup_type)mdata; + how = (enum nss_lookup_type)(uintptr_t)mdata; switch (how) { case nss_lt_name: name = va_arg(ap, const char *); @@ -1691,7 +1691,7 @@ compat_setpwent(void *retval, void *mdata, va_list ap) rv = compat_getstate(&st); if (rv != 0) return (NS_UNAVAIL); - switch ((enum constants)mdata) { + switch ((enum constants)(uintptr_t)mdata) { case SETPWENT: stayopen = va_arg(ap, int); st->keynum = 0; @@ -1738,7 +1738,7 @@ compat_passwd(void *retval, void *mdata, va_list ap) from_compat = 0; name = NULL; uid = (uid_t)-1; - how = (enum nss_lookup_type)mdata; + how = (enum nss_lookup_type)(uintptr_t)mdata; switch (how) { case nss_lt_name: name = va_arg(ap, const char *); Modified: stable/11/lib/libc/net/gethostnamadr.c ============================================================================== --- stable/11/lib/libc/net/gethostnamadr.c Mon Apr 27 23:47:40 2020 (r360414) +++ stable/11/lib/libc/net/gethostnamadr.c Mon Apr 27 23:49:13 2020 (r360415) @@ -175,7 +175,7 @@ host_id_func(char *buffer, size_t *buffer_size, va_lis res_options = statp->options & (RES_RECURSE | RES_DEFNAMES | RES_DNSRCH | RES_NOALIASES | RES_USE_INET6); - lookup_type = (enum nss_lookup_type)cache_mdata; + lookup_type = (enum nss_lookup_type)(uintptr_t)cache_mdata; switch (lookup_type) { case nss_lt_name: str = va_arg(ap, char *); @@ -266,7 +266,7 @@ host_marshal_func(char *buffer, size_t *buffer_size, v size_t desired_size, aliases_size, addr_size, size; char *p, **iter; - switch ((enum nss_lookup_type)cache_mdata) { + switch ((enum nss_lookup_type)(uintptr_t)cache_mdata) { case nss_lt_name: str = va_arg(ap, char *); type = va_arg(ap, int); @@ -373,7 +373,7 @@ host_unmarshal_func(char *buffer, size_t buffer_size, char *orig_buf; size_t orig_buf_size; - switch ((enum nss_lookup_type)cache_mdata) { + switch ((enum nss_lookup_type)(uintptr_t)cache_mdata) { case nss_lt_name: str = va_arg(ap, char *); type = va_arg(ap, int); Modified: stable/11/lib/libc/net/getnetnamadr.c ============================================================================== --- stable/11/lib/libc/net/getnetnamadr.c Mon Apr 27 23:47:40 2020 (r360414) +++ stable/11/lib/libc/net/getnetnamadr.c Mon Apr 27 23:49:13 2020 (r360415) @@ -68,7 +68,7 @@ net_id_func(char *buffer, size_t *buffer_size, va_list enum nss_lookup_type lookup_type; int res = NS_UNAVAIL; - lookup_type = (enum nss_lookup_type)cache_mdata; + lookup_type = (enum nss_lookup_type)(uintptr_t)cache_mdata; switch (lookup_type) { case nss_lt_name: name = va_arg(ap, char *); @@ -131,7 +131,7 @@ net_marshal_func(char *buffer, size_t *buffer_size, vo char *p; char **alias; - switch ((enum nss_lookup_type)cache_mdata) { + switch ((enum nss_lookup_type)(uintptr_t)cache_mdata) { case nss_lt_name: name = va_arg(ap, char *); break; @@ -219,7 +219,7 @@ net_unmarshal_func(char *buffer, size_t buffer_size, v char *p; char **alias; - switch ((enum nss_lookup_type)cache_mdata) { + switch ((enum nss_lookup_type)(uintptr_t)cache_mdata) { case nss_lt_name: name = va_arg(ap, char *); break; Modified: stable/11/lib/libc/net/getprotoent.c ============================================================================== --- stable/11/lib/libc/net/getprotoent.c Mon Apr 27 23:47:40 2020 (r360414) +++ stable/11/lib/libc/net/getprotoent.c Mon Apr 27 23:49:13 2020 (r360415) @@ -95,7 +95,7 @@ __proto_id_func(char *buffer, size_t *buffer_size, va_ enum nss_lookup_type lookup_type; int res = NS_UNAVAIL; - lookup_type = (enum nss_lookup_type)cache_mdata; + lookup_type = (enum nss_lookup_type)(uintptr_t)cache_mdata; switch (lookup_type) { case nss_lt_name: name = va_arg(ap, char *); @@ -153,7 +153,7 @@ __proto_marshal_func(char *buffer, size_t *buffer_size char *p; char **alias; - switch ((enum nss_lookup_type)cache_mdata) { + switch ((enum nss_lookup_type)(uintptr_t)cache_mdata) { case nss_lt_name: name = va_arg(ap, char *); break; @@ -239,7 +239,7 @@ __proto_unmarshal_func(char *buffer, size_t buffer_siz char *p; char **alias; - switch ((enum nss_lookup_type)cache_mdata) { + switch ((enum nss_lookup_type)(uintptr_t)cache_mdata) { case nss_lt_name: name = va_arg(ap, char *); break; Modified: stable/11/lib/libc/net/getservent.c ============================================================================== --- stable/11/lib/libc/net/getservent.c Mon Apr 27 23:47:40 2020 (r360414) +++ stable/11/lib/libc/net/getservent.c Mon Apr 27 23:49:13 2020 (r360415) @@ -444,7 +444,7 @@ files_setservent(void *retval, void *mdata, va_list ap if (rv != 0) return (NS_UNAVAIL); - switch ((enum constants)mdata) { + switch ((enum constants)(uintptr_t)mdata) { case SETSERVENT: f = va_arg(ap,int); if (st->fp == NULL) @@ -507,7 +507,7 @@ db_servent(void *retval, void *mdata, va_list ap) name = NULL; proto = NULL; - how = (enum nss_lookup_type)mdata; + how = (enum nss_lookup_type)(uintptr_t)mdata; switch (how) { case nss_lt_name: name = va_arg(ap, char *); @@ -624,7 +624,7 @@ db_setservent(void *retval, void *mdata, va_list ap) if (rv != 0) return (NS_UNAVAIL); - switch ((enum constants)mdata) { + switch ((enum constants)(uintptr_t)mdata) { case SETSERVENT: f = va_arg(ap, int); st->stayopen |= f; @@ -680,7 +680,7 @@ nis_servent(void *retval, void *mdata, va_list ap) name = NULL; proto = NULL; buf = NULL; - how = (enum nss_lookup_type)mdata; + how = (enum nss_lookup_type)(uintptr_t)mdata; switch (how) { case nss_lt_name: name = va_arg(ap, char *); @@ -812,7 +812,7 @@ nis_setservent(void *result, void *mdata, va_list ap) if (rv != 0) return (NS_UNAVAIL); - switch ((enum constants)mdata) { + switch ((enum constants)(uintptr_t)mdata) { case SETSERVENT: case ENDSERVENT: free(st->yp_key); @@ -848,7 +848,7 @@ compat_setservent(void *retval, void *mdata, va_list a (void)files_setservent(retval, mdata, ap); - switch ((enum constants)mdata) { + switch ((enum constants)(uintptr_t)mdata) { case SETSERVENT: f = va_arg(ap,int); (void)nsdispatch(retval, compat_dtab, NSDB_SERVICES_COMPAT, @@ -877,7 +877,7 @@ serv_id_func(char *buffer, size_t *buffer_size, va_lis enum nss_lookup_type lookup_type; int res = NS_UNAVAIL; - lookup_type = (enum nss_lookup_type)cache_mdata; + lookup_type = (enum nss_lookup_type)(uintptr_t)cache_mdata; switch (lookup_type) { case nss_lt_name: name = va_arg(ap, char *); @@ -959,7 +959,7 @@ serv_marshal_func(char *buffer, size_t *buffer_size, v size_t size; size_t aliases_size; - switch ((enum nss_lookup_type)cache_mdata) { + switch ((enum nss_lookup_type)(uintptr_t)cache_mdata) { case nss_lt_name: name = va_arg(ap, char *); proto = va_arg(ap, char *); @@ -1056,7 +1056,7 @@ serv_unmarshal_func(char *buffer, size_t buffer_size, size_t orig_buf_size; int *ret_errno; - switch ((enum nss_lookup_type)cache_mdata) { + switch ((enum nss_lookup_type)(uintptr_t)cache_mdata) { case nss_lt_name: name = va_arg(ap, char *); proto = va_arg(ap, char *); Modified: stable/11/lib/libc/rpc/getrpcent.c ============================================================================== --- stable/11/lib/libc/rpc/getrpcent.c Mon Apr 27 23:47:40 2020 (r360414) +++ stable/11/lib/libc/rpc/getrpcent.c Mon Apr 27 23:49:13 2020 (r360415) @@ -225,7 +225,7 @@ files_rpcent(void *retval, void *mdata, va_list ap) int stayopen; enum nss_lookup_type how; - how = (enum nss_lookup_type)mdata; + how = (enum nss_lookup_type)(uintptr_t)mdata; switch (how) { case nss_lt_name: @@ -345,7 +345,7 @@ files_setrpcent(void *retval, void *mdata, va_list ap) if (rv != 0) return (NS_UNAVAIL); - switch ((enum constants)mdata) + switch ((enum constants)(uintptr_t)mdata) { case SETRPCENT: f = va_arg(ap,int); @@ -405,7 +405,7 @@ nis_rpcent(void *retval, void *mdata, va_list ap) enum nss_lookup_type how; int no_name_active; - how = (enum nss_lookup_type)mdata; + how = (enum nss_lookup_type)(uintptr_t)mdata; switch (how) { case nss_lt_name: @@ -582,7 +582,7 @@ nis_setrpcent(void *retval, void *mdata, va_list ap) if (rv != 0) return (NS_UNAVAIL); - switch ((enum constants)mdata) + switch ((enum constants)(uintptr_t)mdata) { case SETRPCENT: case ENDRPCENT: @@ -609,7 +609,7 @@ rpc_id_func(char *buffer, size_t *buffer_size, va_list enum nss_lookup_type lookup_type; int res = NS_UNAVAIL; - lookup_type = (enum nss_lookup_type)cache_mdata; + lookup_type = (enum nss_lookup_type)(uintptr_t)cache_mdata; switch (lookup_type) { case nss_lt_name: name = va_arg(ap, char *); @@ -666,7 +666,7 @@ rpc_marshal_func(char *buffer, size_t *buffer_size, vo char *p; char **alias; - switch ((enum nss_lookup_type)cache_mdata) { + switch ((enum nss_lookup_type)(uintptr_t)cache_mdata) { case nss_lt_name: name = va_arg(ap, char *); break; @@ -752,7 +752,7 @@ rpc_unmarshal_func(char *buffer, size_t buffer_size, v char *p; char **alias; - switch ((enum nss_lookup_type)cache_mdata) { + switch ((enum nss_lookup_type)(uintptr_t)cache_mdata) { case nss_lt_name: name = va_arg(ap, char *); break; Modified: stable/11/sys/dev/ocs_fc/ocs_device.c ============================================================================== --- stable/11/sys/dev/ocs_fc/ocs_device.c Mon Apr 27 23:47:40 2020 (r360414) +++ stable/11/sys/dev/ocs_fc/ocs_device.c Mon Apr 27 23:49:13 2020 (r360415) @@ -1238,7 +1238,7 @@ __ocs_d_wait_topology_notify(ocs_sm_ctx_t *ctx, ocs_sm break; case OCS_EVT_SPORT_TOPOLOGY_NOTIFY: { - ocs_sport_topology_e topology = (ocs_sport_topology_e)arg; + ocs_sport_topology_e topology = (ocs_sport_topology_e)(uintptr_t)arg; ocs_assert(!node->sport->domain->attached, NULL); ocs_assert(node->send_ls_acc == OCS_NODE_SEND_LS_ACC_PLOGI, NULL); node_printf(node, "topology notification, topology=%d\n", topology); Modified: stable/11/sys/net80211/ieee80211_output.c ============================================================================== --- stable/11/sys/net80211/ieee80211_output.c Mon Apr 27 23:47:40 2020 (r360414) +++ stable/11/sys/net80211/ieee80211_output.c Mon Apr 27 23:49:13 2020 (r360415) @@ -2874,7 +2874,7 @@ static void ieee80211_tx_mgt_cb(struct ieee80211_node *ni, void *arg, int status) { struct ieee80211vap *vap = ni->ni_vap; - enum ieee80211_state ostate = (enum ieee80211_state) arg; + enum ieee80211_state ostate = (enum ieee80211_state)(uintptr_t)arg; /* * Frame transmit completed; arrange timer callback. If From owner-svn-src-all@freebsd.org Mon Apr 27 23:55: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 9A0B92CADA2; Mon, 27 Apr 2020 23:55:10 +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 49B1qL3RGVz3Qbg; Mon, 27 Apr 2020 23:55:10 +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 6CDBE1AFB9; Mon, 27 Apr 2020 23:55:10 +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 03RNtAKe082948; Mon, 27 Apr 2020 23:55:10 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RNtADW082947; Mon, 27 Apr 2020 23:55:10 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <202004272355.03RNtADW082947@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Mon, 27 Apr 2020 23:55:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360416 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: rmacklem X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 360416 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, 27 Apr 2020 23:55:10 -0000 Author: rmacklem Date: Mon Apr 27 23:55:09 2020 New Revision: 360416 URL: https://svnweb.freebsd.org/changeset/base/360416 Log: Fix sosend_generic() so that it can handle a list of ext_pgs mbufs. Without this patch, sosend_generic() will try to use top->m_pkthdr.len, assuming that the first mbuf has a pkthdr. When a list of ext_pgs mbufs is passed in, the first mbuf is not a pkthdr and cannot be post-r359919. As such, the value of top->m_pkthdr.len is bogus (0 for my testing). This patch fixes sosend_generic() to handle this case, calculating the total length via m_length() for this case. There is currently nothing that hands a list of ext_pgs mbufs to sosend_generic(), but the nfs-over-tls kernel RPC code in projects/nfs-over-tls will do that and was used to test this patch. Reviewed by: gallatin Differential Revision: https://reviews.freebsd.org/D24568 Modified: head/sys/kern/uipc_socket.c Modified: head/sys/kern/uipc_socket.c ============================================================================== --- head/sys/kern/uipc_socket.c Mon Apr 27 23:49:13 2020 (r360415) +++ head/sys/kern/uipc_socket.c Mon Apr 27 23:55:09 2020 (r360416) @@ -1557,8 +1557,10 @@ sosend_generic(struct socket *so, struct sockaddr *add #endif if (uio != NULL) resid = uio->uio_resid; - else + else if ((top->m_flags & M_PKTHDR) != 0) resid = top->m_pkthdr.len; + else + resid = m_length(top, NULL); /* * In theory resid should be unsigned. However, space must be * signed, as it might be less than 0 if we over-committed, and we From owner-svn-src-all@freebsd.org Mon Apr 27 23:59: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 F152F2CB0C1; Mon, 27 Apr 2020 23:59: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 49B1wZ6YKKz3Qpc; Mon, 27 Apr 2020 23:59: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 D60241AFBD; Mon, 27 Apr 2020 23:59: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 03RNxgwX083177; Mon, 27 Apr 2020 23:59:42 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03RNxggs083175; Mon, 27 Apr 2020 23:59:42 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202004272359.03RNxggs083175@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Mon, 27 Apr 2020 23:59:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360417 - head/sys/dev/cxgbe/tom X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head/sys/dev/cxgbe/tom X-SVN-Commit-Revision: 360417 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, 27 Apr 2020 23:59:43 -0000 Author: jhb Date: Mon Apr 27 23:59:42 2020 New Revision: 360417 URL: https://svnweb.freebsd.org/changeset/base/360417 Log: Add support for KTLS RX over TOE to T6. This largely reuses the TLS TOE support added in r330884. However, this uses the KTLS framework in upstream OpenSSL rather than requiring Chelsio-specific patches to OpenSSL. As with the existing TLS TOE support, use of RX offload requires setting the tls_rx_ports sysctl. Reviewed by: np Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D24453 Modified: head/sys/dev/cxgbe/tom/t4_tls.c head/sys/dev/cxgbe/tom/t4_tom.c head/sys/dev/cxgbe/tom/t4_tom.h Modified: head/sys/dev/cxgbe/tom/t4_tls.c ============================================================================== --- head/sys/dev/cxgbe/tom/t4_tls.c Mon Apr 27 23:55:09 2020 (r360416) +++ head/sys/dev/cxgbe/tom/t4_tls.c Mon Apr 27 23:59:42 2020 (r360417) @@ -379,7 +379,7 @@ prepare_rxkey_wr(struct tls_keyctx *kwr, struct tls_ke int proto_ver = kctx->proto_ver; kwr->u.rxhdr.flitcnt_hmacctrl = - ((kctx->tx_key_info_size >> 4) << 3) | kctx->hmac_ctrl; + ((kctx->rx_key_info_size >> 4) << 3) | kctx->hmac_ctrl; kwr->u.rxhdr.protover_ciphmode = V_TLS_KEYCTX_TX_WR_PROTOVER(get_proto_ver(proto_ver)) | @@ -408,7 +408,7 @@ prepare_rxkey_wr(struct tls_keyctx *kwr, struct tls_ke (IPAD_SIZE + OPAD_SIZE)); } else { memcpy(kwr->keys.edkey, kctx->rx.key, - (kctx->tx_key_info_size - SALT_SIZE)); + (kctx->rx_key_info_size - SALT_SIZE)); memcpy(kwr->u.rxhdr.rxsalt, kctx->rx.salt, SALT_SIZE); } } @@ -674,6 +674,13 @@ program_key_context(struct tcpcb *tp, struct toepcb *t if ((G_KEY_GET_LOC(k_ctx->l_p_key) == KEY_WRITE_RX) || (tls_ofld->key_location == TLS_SFO_WR_CONTEXTLOC_DDR)) { + + /* + * XXX: The userland library sets tx_key_info_size, not + * rx_key_info_size. + */ + k_ctx->rx_key_info_size = k_ctx->tx_key_info_size; + error = tls_program_key_id(toep, k_ctx); if (error) { /* XXX: Only clear quiesce for KEY_WRITE_RX? */ @@ -866,31 +873,37 @@ t4_ctloutput_tls(struct socket *so, struct sockopt *so #ifdef KERN_TLS static void -init_ktls_key_context(struct ktls_session *tls, struct tls_key_context *k_ctx) +init_ktls_key_context(struct ktls_session *tls, struct tls_key_context *k_ctx, + int direction) { struct auth_hash *axf; - u_int mac_key_size; - char *hash; + u_int key_info_size, mac_key_size; + char *hash, *key; - k_ctx->l_p_key = V_KEY_GET_LOC(KEY_WRITE_TX); - if (tls->params.tls_vminor == TLS_MINOR_VER_ONE) - k_ctx->proto_ver = SCMD_PROTO_VERSION_TLS_1_1; - else - k_ctx->proto_ver = SCMD_PROTO_VERSION_TLS_1_2; + k_ctx->l_p_key = V_KEY_GET_LOC(direction == KTLS_TX ? KEY_WRITE_TX : + KEY_WRITE_RX); + k_ctx->proto_ver = tls->params.tls_vmajor << 8 | tls->params.tls_vminor; k_ctx->cipher_secret_size = tls->params.cipher_key_len; - k_ctx->tx_key_info_size = sizeof(struct tx_keyctx_hdr) + + key_info_size = sizeof(struct tx_keyctx_hdr) + k_ctx->cipher_secret_size; - memcpy(k_ctx->tx.key, tls->params.cipher_key, - tls->params.cipher_key_len); - hash = k_ctx->tx.key + tls->params.cipher_key_len; + if (direction == KTLS_TX) + key = k_ctx->tx.key; + else + key = k_ctx->rx.key; + memcpy(key, tls->params.cipher_key, tls->params.cipher_key_len); + hash = key + tls->params.cipher_key_len; if (tls->params.cipher_algorithm == CRYPTO_AES_NIST_GCM_16) { k_ctx->state.auth_mode = SCMD_AUTH_MODE_GHASH; k_ctx->state.enc_mode = SCMD_CIPH_MODE_AES_GCM; k_ctx->iv_size = 4; k_ctx->mac_first = 0; k_ctx->hmac_ctrl = SCMD_HMAC_CTRL_NOP; - k_ctx->tx_key_info_size += GMAC_BLOCK_LEN; - memcpy(k_ctx->tx.salt, tls->params.iv, SALT_SIZE); + key_info_size += GMAC_BLOCK_LEN; + k_ctx->mac_secret_size = 0; + if (direction == KTLS_TX) + memcpy(k_ctx->tx.salt, tls->params.iv, SALT_SIZE); + else + memcpy(k_ctx->rx.salt, tls->params.iv, SALT_SIZE); t4_init_gmac_hash(tls->params.cipher_key, tls->params.cipher_key_len, hash); } else { @@ -917,29 +930,38 @@ init_ktls_key_context(struct ktls_session *tls, struct k_ctx->iv_size = 8; /* for CBC, iv is 16B, unit of 2B */ k_ctx->mac_first = 1; k_ctx->hmac_ctrl = SCMD_HMAC_CTRL_NO_TRUNC; - k_ctx->tx_key_info_size += roundup2(mac_key_size, 16) * 2; + key_info_size += roundup2(mac_key_size, 16) * 2; k_ctx->mac_secret_size = mac_key_size; t4_init_hmac_digest(axf, mac_key_size, tls->params.auth_key, tls->params.auth_key_len, hash); } + if (direction == KTLS_TX) + k_ctx->tx_key_info_size = key_info_size; + else + k_ctx->rx_key_info_size = key_info_size; k_ctx->frag_size = tls->params.max_frame_len; k_ctx->iv_ctrl = 1; } int -tls_alloc_ktls(struct toepcb *toep, struct ktls_session *tls) +tls_alloc_ktls(struct toepcb *toep, struct ktls_session *tls, int direction) { + struct adapter *sc = td_adapter(toep->td); struct tls_key_context *k_ctx; - int error; + int error, key_offset; if (toep->tls.mode == TLS_MODE_TLSOM) return (EINVAL); if (!can_tls_offload(td_adapter(toep->td))) return (EINVAL); switch (ulp_mode(toep)) { + case ULP_MODE_TLS: + break; case ULP_MODE_NONE: case ULP_MODE_TCPDDP: + if (direction != KTLS_TX) + return (EINVAL); break; default: return (EINVAL); @@ -987,48 +1009,81 @@ tls_alloc_ktls(struct toepcb *toep, struct ktls_sessio tls->params.tls_vminor > TLS_MINOR_VER_TWO) return (EPROTONOSUPPORT); + /* Bail if we already have a key. */ + if (direction == KTLS_TX) { + if (toep->tls.tx_key_addr != -1) + return (EOPNOTSUPP); + } else { + if (toep->tls.rx_key_addr != -1) + return (EOPNOTSUPP); + } + /* * XXX: This assumes no key renegotation. If KTLS ever supports * that we will want to allocate TLS sessions dynamically rather * than as a static member of toep. */ k_ctx = &toep->tls.k_ctx; - init_ktls_key_context(tls, k_ctx); + init_ktls_key_context(tls, k_ctx, direction); - toep->tls.scmd0.seqno_numivs = - (V_SCMD_SEQ_NO_CTRL(3) | - V_SCMD_PROTO_VERSION(k_ctx->proto_ver) | - V_SCMD_ENC_DEC_CTRL(SCMD_ENCDECCTRL_ENCRYPT) | - V_SCMD_CIPH_AUTH_SEQ_CTRL((k_ctx->mac_first == 0)) | - V_SCMD_CIPH_MODE(k_ctx->state.enc_mode) | - V_SCMD_AUTH_MODE(k_ctx->state.auth_mode) | - V_SCMD_HMAC_CTRL(k_ctx->hmac_ctrl) | - V_SCMD_IV_SIZE(k_ctx->iv_size)); + error = tls_program_key_id(toep, k_ctx); + if (error) + return (error); - toep->tls.scmd0.ivgen_hdrlen = - (V_SCMD_IV_GEN_CTRL(k_ctx->iv_ctrl) | - V_SCMD_KEY_CTX_INLINE(0) | - V_SCMD_TLS_FRAG_ENABLE(1)); + if (direction == KTLS_TX) { + toep->tls.scmd0.seqno_numivs = + (V_SCMD_SEQ_NO_CTRL(3) | + V_SCMD_PROTO_VERSION(get_proto_ver(k_ctx->proto_ver)) | + V_SCMD_ENC_DEC_CTRL(SCMD_ENCDECCTRL_ENCRYPT) | + V_SCMD_CIPH_AUTH_SEQ_CTRL((k_ctx->mac_first == 0)) | + V_SCMD_CIPH_MODE(k_ctx->state.enc_mode) | + V_SCMD_AUTH_MODE(k_ctx->state.auth_mode) | + V_SCMD_HMAC_CTRL(k_ctx->hmac_ctrl) | + V_SCMD_IV_SIZE(k_ctx->iv_size)); - if (tls->params.cipher_algorithm == CRYPTO_AES_NIST_GCM_16) - toep->tls.iv_len = 8; - else - toep->tls.iv_len = AES_BLOCK_LEN; + toep->tls.scmd0.ivgen_hdrlen = + (V_SCMD_IV_GEN_CTRL(k_ctx->iv_ctrl) | + V_SCMD_KEY_CTX_INLINE(0) | + V_SCMD_TLS_FRAG_ENABLE(1)); - toep->tls.mac_length = k_ctx->mac_secret_size; + if (tls->params.cipher_algorithm == CRYPTO_AES_NIST_GCM_16) + toep->tls.iv_len = 8; + else + toep->tls.iv_len = AES_BLOCK_LEN; - toep->tls.tx_key_addr = -1; + toep->tls.mac_length = k_ctx->mac_secret_size; - error = tls_program_key_id(toep, k_ctx); - if (error) - return (error); + toep->tls.fcplenmax = get_tp_plen_max(&toep->tls); + toep->tls.expn_per_ulp = tls->params.tls_hlen + + tls->params.tls_tlen; + toep->tls.pdus_per_ulp = 1; + toep->tls.adjusted_plen = toep->tls.expn_per_ulp + + toep->tls.k_ctx.frag_size; + } else { + /* Stop timer on handshake completion */ + tls_stop_handshake_timer(toep); - toep->tls.fcplenmax = get_tp_plen_max(&toep->tls); - toep->tls.expn_per_ulp = tls->params.tls_hlen + tls->params.tls_tlen; - toep->tls.pdus_per_ulp = 1; - toep->tls.adjusted_plen = toep->tls.expn_per_ulp + - toep->tls.k_ctx.frag_size; + toep->flags &= ~TPF_FORCE_CREDITS; + /* + * RX key tags are an index into the key portion of MA + * memory stored as an offset from the base address in + * units of 64 bytes. + */ + key_offset = toep->tls.rx_key_addr - sc->vres.key.start; + t4_set_tls_keyid(toep, key_offset / 64); + t4_set_tls_tcb_field(toep, W_TCB_ULP_RAW, + V_TCB_ULP_RAW(M_TCB_ULP_RAW), + V_TCB_ULP_RAW((V_TF_TLS_KEY_SIZE(3) | + V_TF_TLS_CONTROL(1) | + V_TF_TLS_ACTIVE(1) | + V_TF_TLS_ENABLE(1)))); + t4_set_tls_tcb_field(toep, W_TCB_TLS_SEQ, + V_TCB_TLS_SEQ(M_TCB_TLS_SEQ), + V_TCB_TLS_SEQ(0)); + t4_clear_rx_quiesce(toep); + } + toep->tls.mode = TLS_MODE_KTLS; return (0); @@ -1671,7 +1726,7 @@ t4_push_ktls(struct adapter *sc, struct toepcb *toep, ("%s: flowc_wr not sent for tid %u.", __func__, toep->tid)); KASSERT(ulp_mode(toep) == ULP_MODE_NONE || - ulp_mode(toep) == ULP_MODE_TCPDDP, + ulp_mode(toep) == ULP_MODE_TCPDDP || ulp_mode(toep) == ULP_MODE_TLS, ("%s: ulp_mode %u for toep %p", __func__, ulp_mode(toep), toep)); KASSERT(tls_tx_key(toep), ("%s: TX key not set for toep %p", __func__, toep)); @@ -1956,6 +2011,10 @@ do_rx_tls_cmp(struct sge_iq *iq, const struct rss_head struct socket *so; struct sockbuf *sb; struct mbuf *tls_data; +#ifdef KERN_TLS + struct tls_get_record *tgr; + struct mbuf *control; +#endif int len, pdu_length, rx_credits; KASSERT(toep->tid == tid, ("%s: toep tid/atid mismatch", __func__)); @@ -1982,6 +2041,7 @@ do_rx_tls_cmp(struct sge_iq *iq, const struct rss_head pdu_length = G_CPL_RX_TLS_CMP_PDULENGTH(be32toh(cpl->pdulength_length)); + so = inp_inpcbtosocket(inp); tp = intotcpcb(inp); #ifdef VERBOSE_TRACES @@ -2006,35 +2066,94 @@ do_rx_tls_cmp(struct sge_iq *iq, const struct rss_head ("%s: payload too small", __func__)); tls_hdr_pkt = mtod(m, void *); - /* - * Only the TLS header is sent to OpenSSL, so report errors by - * altering the record type. - */ - if ((tls_hdr_pkt->res_to_mac_error & M_TLSRX_HDR_PKT_ERROR) != 0) - tls_hdr_pkt->type = CONTENT_TYPE_ERROR; - - /* Trim this CPL's mbuf to only include the TLS header. */ - KASSERT(m->m_len == len && m->m_next == NULL, - ("%s: CPL spans multiple mbufs", __func__)); - m->m_len = TLS_HEADER_LENGTH; - m->m_pkthdr.len = TLS_HEADER_LENGTH; - tls_data = mbufq_dequeue(&toep->ulp_pdu_reclaimq); if (tls_data != NULL) { KASSERT(be32toh(cpl->seq) == tls_data->m_pkthdr.tls_tcp_seq, ("%s: sequence mismatch", __func__)); + } +#ifdef KERN_TLS + if (toep->tls.mode == TLS_MODE_KTLS) { + /* Report decryption errors as EBADMSG. */ + if ((tls_hdr_pkt->res_to_mac_error & M_TLSRX_HDR_PKT_ERROR) != + 0) { + m_freem(m); + m_freem(tls_data); + + CURVNET_SET(toep->vnet); + so->so_error = EBADMSG; + sorwakeup(so); + + INP_WUNLOCK(inp); + CURVNET_RESTORE(); + + return (0); + } + + /* Allocate the control message mbuf. */ + control = sbcreatecontrol(NULL, sizeof(*tgr), TLS_GET_RECORD, + IPPROTO_TCP); + if (control == NULL) { + m_freem(m); + m_freem(tls_data); + + CURVNET_SET(toep->vnet); + so->so_error = ENOBUFS; + sorwakeup(so); + + INP_WUNLOCK(inp); + CURVNET_RESTORE(); + + return (0); + } + + tgr = (struct tls_get_record *) + CMSG_DATA(mtod(control, struct cmsghdr *)); + tgr->tls_type = tls_hdr_pkt->type; + tgr->tls_vmajor = be16toh(tls_hdr_pkt->version) >> 8; + tgr->tls_vminor = be16toh(tls_hdr_pkt->version) & 0xff; + + m_freem(m); + + if (tls_data != NULL) { + m_last(tls_data)->m_flags |= M_EOR; + tgr->tls_length = htobe16(tls_data->m_pkthdr.len); + } else + tgr->tls_length = 0; + m = tls_data; + } else +#endif + { /* - * Update the TLS header length to be the length of - * the payload data. + * Only the TLS header is sent to OpenSSL, so report + * errors by altering the record type. */ - tls_hdr_pkt->length = htobe16(tls_data->m_pkthdr.len); + if ((tls_hdr_pkt->res_to_mac_error & M_TLSRX_HDR_PKT_ERROR) != + 0) + tls_hdr_pkt->type = CONTENT_TYPE_ERROR; - m->m_next = tls_data; - m->m_pkthdr.len += tls_data->m_len; + /* Trim this CPL's mbuf to only include the TLS header. */ + KASSERT(m->m_len == len && m->m_next == NULL, + ("%s: CPL spans multiple mbufs", __func__)); + m->m_len = TLS_HEADER_LENGTH; + m->m_pkthdr.len = TLS_HEADER_LENGTH; + + if (tls_data != NULL) { + /* + * Update the TLS header length to be the length of + * the payload data. + */ + tls_hdr_pkt->length = htobe16(tls_data->m_pkthdr.len); + + m->m_next = tls_data; + m->m_pkthdr.len += tls_data->m_len; + } + +#ifdef KERN_TLS + control = NULL; +#endif } - so = inp_inpcbtosocket(inp); sb = &so->so_rcv; SOCKBUF_LOCK(sb); @@ -2044,6 +2163,9 @@ do_rx_tls_cmp(struct sge_iq *iq, const struct rss_head CTR3(KTR_CXGBE, "%s: tid %u, excess rx (%d bytes)", __func__, tid, pdu_length); m_freem(m); +#ifdef KERN_TLS + m_freem(control); +#endif SOCKBUF_UNLOCK(sb); INP_WUNLOCK(inp); @@ -2080,7 +2202,12 @@ do_rx_tls_cmp(struct sge_iq *iq, const struct rss_head sb->sb_flags &= ~SB_AUTOSIZE; } - sbappendstream_locked(sb, m, 0); +#ifdef KERN_TLS + if (control != NULL) + sbappendcontrol_locked(sb, m, control, 0); + else +#endif + sbappendstream_locked(sb, m, 0); rx_credits = sbspace(sb) > tp->rcv_wnd ? sbspace(sb) - tp->rcv_wnd : 0; #ifdef VERBOSE_TRACES CTR4(KTR_CXGBE, "%s: tid %u rx_credits %u rcv_wnd %u", Modified: head/sys/dev/cxgbe/tom/t4_tom.c ============================================================================== --- head/sys/dev/cxgbe/tom/t4_tom.c Mon Apr 27 23:55:09 2020 (r360416) +++ head/sys/dev/cxgbe/tom/t4_tom.c Mon Apr 27 23:59:42 2020 (r360417) @@ -40,9 +40,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#ifdef KERN_TLS -#include -#endif #include #include #include @@ -824,10 +821,7 @@ t4_alloc_tls_session(struct toedev *tod, struct tcpcb INP_WLOCK_ASSERT(tp->t_inpcb); MPASS(tls != NULL); - if (direction != KTLS_TX) - return (EOPNOTSUPP); - - return (tls_alloc_ktls(toep, tls)); + return (tls_alloc_ktls(toep, tls, direction)); } #endif Modified: head/sys/dev/cxgbe/tom/t4_tom.h ============================================================================== --- head/sys/dev/cxgbe/tom/t4_tom.h Mon Apr 27 23:55:09 2020 (r360416) +++ head/sys/dev/cxgbe/tom/t4_tom.h Mon Apr 27 23:59:42 2020 (r360417) @@ -452,6 +452,6 @@ int tls_rx_key(struct toepcb *); void tls_stop_handshake_timer(struct toepcb *); int tls_tx_key(struct toepcb *); void tls_uninit_toep(struct toepcb *); -int tls_alloc_ktls(struct toepcb *, struct ktls_session *); +int tls_alloc_ktls(struct toepcb *, struct ktls_session *, int); #endif From owner-svn-src-all@freebsd.org Tue Apr 28 00:06: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 078DD2CB701; Tue, 28 Apr 2020 00:06:50 +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 49B24n6PjWz3whm; Tue, 28 Apr 2020 00:06:49 +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 CFCA61B1B1; Tue, 28 Apr 2020 00:06:49 +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 03S06nxZ089354; Tue, 28 Apr 2020 00:06:49 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03S06n0t089353; Tue, 28 Apr 2020 00:06:49 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202004280006.03S06n0t089353@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Tue, 28 Apr 2020 00:06:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360418 - head/sys/sys X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head/sys/sys X-SVN-Commit-Revision: 360418 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, 28 Apr 2020 00:06:50 -0000 Author: jhb Date: Tue Apr 28 00:06:49 2020 New Revision: 360418 URL: https://svnweb.freebsd.org/changeset/base/360418 Log: Bump __FreeBSD_version for KTLS RX support. Modified: head/sys/sys/param.h Modified: head/sys/sys/param.h ============================================================================== --- head/sys/sys/param.h Mon Apr 27 23:59:42 2020 (r360417) +++ head/sys/sys/param.h Tue Apr 28 00:06:49 2020 (r360418) @@ -60,7 +60,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1300092 /* Master, propagated to newvers */ +#define __FreeBSD_version 1300093 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From owner-svn-src-all@freebsd.org Tue Apr 28 01:39: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 08E822CE93B; Tue, 28 Apr 2020 01:39: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 49B47p6ShJz436T; Tue, 28 Apr 2020 01:39:34 +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 D913E1C3A5; Tue, 28 Apr 2020 01:39:34 +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 03S1dYqP045878; Tue, 28 Apr 2020 01:39:34 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03S1dYCG045877; Tue, 28 Apr 2020 01:39:34 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004280139.03S1dYCG045877@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Tue, 28 Apr 2020 01:39:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360420 - head/stand/lua X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/stand/lua X-SVN-Commit-Revision: 360420 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, 28 Apr 2020 01:39:35 -0000 Author: kevans Date: Tue Apr 28 01:39:34 2020 New Revision: 360420 URL: https://svnweb.freebsd.org/changeset/base/360420 Log: lualoader config: don't call loader.getenv() as much We don't actually need to fetch loader_conf_files as much as we do; we've already fetched it once at the beginning, we only really need to fetch it again after each file we've processed. If it changes, then we can stash that off into our local prefiles. While here, drop a note about the recursion so that I stop trying to change it. It may very well make redundant some of the work we're doing, but that's OK. MFC after: 3 days Modified: head/stand/lua/config.lua Modified: head/stand/lua/config.lua ============================================================================== --- head/stand/lua/config.lua Tue Apr 28 00:44:05 2020 (r360419) +++ head/stand/lua/config.lua Tue Apr 28 01:39:34 2020 (r360420) @@ -343,13 +343,12 @@ end local function readConfFiles(loaded_files) local f = loader.getenv("loader_conf_files") if f ~= nil then + local prefiles = f for name in f:gmatch("([%w%p]+)%s*") do if loaded_files[name] ~= nil then goto continue end - local prefiles = loader.getenv("loader_conf_files") - print("Loading " .. name) -- These may or may not exist, and that's ok. Do a -- silent parse so that we complain on parse errors but @@ -361,7 +360,12 @@ local function readConfFiles(loaded_files) loaded_files[name] = true local newfiles = loader.getenv("loader_conf_files") if prefiles ~= newfiles then + -- Recurse; process the new files immediately. + -- If we come back and it turns out we've + -- already loaded the rest of what was in the + -- original loader_conf_files, no big deal. readConfFiles(loaded_files) + prefiles = newfiles end ::continue:: end From owner-svn-src-all@freebsd.org Tue Apr 28 02:03: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 6B6272CF445; Tue, 28 Apr 2020 02:03: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 49B4fw28dYz44SZ; Tue, 28 Apr 2020 02:03: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 452971C9E6; Tue, 28 Apr 2020 02:03: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 03S234DI063540; Tue, 28 Apr 2020 02:03:04 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03S233NJ063538; Tue, 28 Apr 2020 02:03:03 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004280203.03S233NJ063538@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Tue, 28 Apr 2020 02:03:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360421 - head/stand/lua X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/stand/lua X-SVN-Commit-Revision: 360421 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, 28 Apr 2020 02:03:04 -0000 Author: kevans Date: Tue Apr 28 02:03:03 2020 New Revision: 360421 URL: https://svnweb.freebsd.org/changeset/base/360421 Log: lualoader: config: start exporting readConfFiles In the process, change it slightly: readConfFiles will take a string like loader_conf_files in addition to the loaded_files table that it normally takes. This is to facilitate the addition of a read-conf CLI command, which will just pass in the single file to read and an empty table. MFC after: 3 days Modified: head/stand/lua/config.lua head/stand/lua/config.lua.8 Modified: head/stand/lua/config.lua ============================================================================== --- head/stand/lua/config.lua Tue Apr 28 01:39:34 2020 (r360420) +++ head/stand/lua/config.lua Tue Apr 28 02:03:03 2020 (r360421) @@ -340,38 +340,6 @@ local function loadModule(mod, silent) return status end -local function readConfFiles(loaded_files) - local f = loader.getenv("loader_conf_files") - if f ~= nil then - local prefiles = f - for name in f:gmatch("([%w%p]+)%s*") do - if loaded_files[name] ~= nil then - goto continue - end - - print("Loading " .. name) - -- These may or may not exist, and that's ok. Do a - -- silent parse so that we complain on parse errors but - -- not for them simply not existing. - if not config.processFile(name, true) then - print(MSG_FAILPARSECFG:format(name)) - end - - loaded_files[name] = true - local newfiles = loader.getenv("loader_conf_files") - if prefiles ~= newfiles then - -- Recurse; process the new files immediately. - -- If we come back and it turns out we've - -- already loaded the rest of what was in the - -- original loader_conf_files, no big deal. - readConfFiles(loaded_files) - prefiles = newfiles - end - ::continue:: - end - end -end - local function readFile(name, silent) local f = io.open(name) if f == nil then @@ -492,6 +460,40 @@ function config.parse(text) return status end +function config.readConfFiles(files, loaded_files) + if files ~= nil then + -- The caller may not have passed in loader_conf_files; we could + -- have instead gotten some other string of files. We don't + -- want to trigger any redundant re-read/loads based on this. + local prefiles = loader.getenv("loader_conf_files") + for name in files:gmatch("([%w%p]+)%s*") do + if loaded_files[name] ~= nil then + goto continue + end + + print("Loading " .. name) + -- These may or may not exist, and that's ok. Do a + -- silent parse so that we complain on parse errors but + -- not for them simply not existing. + if not config.processFile(name, true) then + print(MSG_FAILPARSECFG:format(name)) + end + + loaded_files[name] = true + local newfiles = loader.getenv("loader_conf_files") + if prefiles ~= newfiles then + -- Recurse; process the new files immediately. + -- If we come back and it turns out we've + -- already loaded the rest of what was in the + -- original loader_conf_files, no big deal. + config.readConfFiles(newfiles, loaded_files) + prefiles = newfiles + end + ::continue:: + end + end +end + -- other_kernel is optionally the name of a kernel to load, if not the default -- or autoloaded default from the module_path function config.loadKernel(other_kernel) @@ -605,7 +607,7 @@ function config.load(file, reloading) end local loaded_files = {file = true} - readConfFiles(loaded_files) + config.readConfFiles(loader.getenv("loader_conf_files"), loaded_files) checkNextboot() Modified: head/stand/lua/config.lua.8 ============================================================================== --- head/stand/lua/config.lua.8 Tue Apr 28 01:39:34 2020 (r360420) +++ head/stand/lua/config.lua.8 Tue Apr 28 02:03:03 2020 (r360421) @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd June 9, 2018 +.Dd April 27, 2020 .Dt CONFIG.LUA 8 .Os .Sh NAME @@ -59,6 +59,15 @@ to A lookup will be done as needed to determine what value .Ev idx actually corresponds to. +.It Fn config.readConfFiles files loaded_files +Process +.Ev files +as if it were +.Ev loader_conf_files . +The caller may should pass in a table as the +.Ev loaded_files +argument, which uses filenames as keys and any non-nil value to indicate that +the file named by the key has been loaded. .It Fn config.processFile name silent Process and parse .Ev name From owner-svn-src-all@freebsd.org Tue Apr 28 02:04: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 7F3192CF5BB; Tue, 28 Apr 2020 02:04:52 +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 49B4j02nyLz44fV; Tue, 28 Apr 2020 02:04:52 +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 5B3361C9F5; Tue, 28 Apr 2020 02:04:52 +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 03S24qnl063663; Tue, 28 Apr 2020 02:04:52 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03S24qZ9063662; Tue, 28 Apr 2020 02:04:52 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004280204.03S24qZ9063662@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Tue, 28 Apr 2020 02:04:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360422 - head/stand/lua X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/stand/lua X-SVN-Commit-Revision: 360422 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, 28 Apr 2020 02:04:52 -0000 Author: kevans Date: Tue Apr 28 02:04:51 2020 New Revision: 360422 URL: https://svnweb.freebsd.org/changeset/base/360422 Log: lualoader: cli: add read-conf This is a straightforward match to the command used by many in forthloader; it uses the newly-exported config.readConfFiles() to make sure that any loader_conf_files gets done as appropriate. PR: 244640 Submitted by: Olivier Certner MFC after: 3 days Modified: head/stand/lua/cli.lua Modified: head/stand/lua/cli.lua ============================================================================== --- head/stand/lua/cli.lua Tue Apr 28 02:03:03 2020 (r360421) +++ head/stand/lua/cli.lua Tue Apr 28 02:04:51 2020 (r360422) @@ -125,6 +125,11 @@ cli['boot-conf'] = function(...) core.autoboot(argstr) end +cli['read-conf'] = function(...) + local _, argv = cli.arguments(...) + config.readConfFiles(assert(core.popFrontTable(argv)), {}) +end + cli['reload-conf'] = function(...) config.reload() end From owner-svn-src-all@freebsd.org Tue Apr 28 02:08: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 C94142CF9D9; Tue, 28 Apr 2020 02:08: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 49B4ng4s2dz44wv; Tue, 28 Apr 2020 02:08: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 A1D341CA0E; Tue, 28 Apr 2020 02:08:55 +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 03S28tW0063901; Tue, 28 Apr 2020 02:08:55 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03S28t2s063900; Tue, 28 Apr 2020 02:08:55 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004280208.03S28t2s063900@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Tue, 28 Apr 2020 02:08:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360423 - head/stand/lua X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/stand/lua X-SVN-Commit-Revision: 360423 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, 28 Apr 2020 02:08:55 -0000 Author: kevans Date: Tue Apr 28 02:08:55 2020 New Revision: 360423 URL: https://svnweb.freebsd.org/changeset/base/360423 Log: lualoader: cli: clobber loader_conf_files before proceeding This makes sure that config.readConfFiles doesn't see a stale loader_conf_files from before, in case the newly loaded file doesn't set it. MFC after: 3 days Modified: head/stand/lua/cli.lua Modified: head/stand/lua/cli.lua ============================================================================== --- head/stand/lua/cli.lua Tue Apr 28 02:04:51 2020 (r360422) +++ head/stand/lua/cli.lua Tue Apr 28 02:08:55 2020 (r360423) @@ -127,6 +127,9 @@ end cli['read-conf'] = function(...) local _, argv = cli.arguments(...) + -- Don't trigger a reload of previously loaded loader_conf_files, in + -- case this config file doesn't set it. + loader.setenv("loader_conf_files", "") config.readConfFiles(assert(core.popFrontTable(argv)), {}) end From owner-svn-src-all@freebsd.org Tue Apr 28 02:11: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 191FD2CFBCA; Tue, 28 Apr 2020 02:11:03 +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 49B4r66vgNz45BK; Tue, 28 Apr 2020 02:11:02 +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 CDF6B1CA53; Tue, 28 Apr 2020 02:11:02 +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 03S2B2nM066697; Tue, 28 Apr 2020 02:11:02 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03S2B2fJ066696; Tue, 28 Apr 2020 02:11:02 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <202004280211.03S2B2fJ066696@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Tue, 28 Apr 2020 02:11:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360424 - 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: 360424 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, 28 Apr 2020 02:11:03 -0000 Author: rmacklem Date: Tue Apr 28 02:11:02 2020 New Revision: 360424 URL: https://svnweb.freebsd.org/changeset/base/360424 Log: Get rid of uio_XXX macros used for the Mac OS/X port. The NFS code had a bunch of Mac OS/X accessor functions named uio_XXX left over from the port to Mac OS/X. Since that port is long forgotten, replace the calls with the code generated by the FreeBSD macros for these in nfskpiport.h. This allows the macros to be deleted from nfskpiport.h and I think makes the code more readable. This patch should not result in any semantic change. Modified: head/sys/fs/nfs/nfskpiport.h head/sys/fs/nfsclient/nfs_clrpcops.c Modified: head/sys/fs/nfs/nfskpiport.h ============================================================================== --- head/sys/fs/nfs/nfskpiport.h Tue Apr 28 02:08:55 2020 (r360423) +++ head/sys/fs/nfs/nfskpiport.h Tue Apr 28 02:11:02 2020 (r360424) @@ -43,20 +43,4 @@ typedef struct vnode * vnode_t; #define vnode_mount(v) ((v)->v_mount) #define vnode_vtype(v) ((v)->v_type) -/* - * This stuff is needed by Darwin for handling the uio structure. - */ -#define uio_uio_resid(p) ((p)->uio_resid) -#define uio_uio_resid_add(p, v) ((p)->uio_resid += (v)) -#define uio_uio_resid_set(p, v) ((p)->uio_resid = (v)) -#define uio_iov_base(p) ((p)->uio_iov->iov_base) -#define uio_iov_base_add(p, v) do { \ - char *pp; \ - pp = (char *)(p)->uio_iov->iov_base; \ - pp += (v); \ - (p)->uio_iov->iov_base = (void *)pp; \ - } while (0) -#define uio_iov_len(p) ((p)->uio_iov->iov_len) -#define uio_iov_len_add(p, v) ((p)->uio_iov->iov_len += (v)) - #endif /* _NFS_NFSKPIPORT_H */ Modified: head/sys/fs/nfsclient/nfs_clrpcops.c ============================================================================== --- head/sys/fs/nfsclient/nfs_clrpcops.c Tue Apr 28 02:08:55 2020 (r360423) +++ head/sys/fs/nfsclient/nfs_clrpcops.c Tue Apr 28 02:11:02 2020 (r360424) @@ -1617,7 +1617,7 @@ nfsrpc_readrpc(vnode_t vp, struct uio *uiop, struct uc off_t tmp_off; *attrflagp = 0; - tsiz = uio_uio_resid(uiop); + tsiz = uiop->uio_resid; tmp_off = uiop->uio_offset + tsiz; NFSLOCKMNT(nmp); if (tmp_off > nmp->nm_maxfilesize || tmp_off < uiop->uio_offset) { @@ -1793,7 +1793,7 @@ nfsrpc_writerpc(vnode_t vp, struct uio *uiop, int *iom KASSERT(uiop->uio_iovcnt == 1, ("nfs: writerpc iovcnt > 1")); *attrflagp = 0; - tsiz = uio_uio_resid(uiop); + tsiz = uiop->uio_resid; tmp_off = uiop->uio_offset + tsiz; NFSLOCKMNT(nmp); if (tmp_off > nmp->nm_maxfilesize || tmp_off < uiop->uio_offset) { @@ -1878,9 +1878,10 @@ nfsrpc_writerpc(vnode_t vp, struct uio *uiop, int *iom * back. */ uiop->uio_offset -= len; - uio_uio_resid_add(uiop, len); - uio_iov_base_add(uiop, -len); - uio_iov_len_add(uiop, len); + uiop->uio_resid += len; + uiop->uio_iov->iov_base = + (char *)uiop->uio_iov->iov_base - len; + uiop->uio_iov->iov_len += len; } if (nd->nd_flag & (ND_NFSV3 | ND_NFSV4)) { error = nfscl_wcc_data(nd, vp, nap, attrflagp, @@ -1898,10 +1899,12 @@ nfsrpc_writerpc(vnode_t vp, struct uio *uiop, int *iom goto nfsmout; } else if (rlen < len) { backup = len - rlen; - uio_iov_base_add(uiop, -(backup)); - uio_iov_len_add(uiop, backup); + uiop->uio_iov->iov_base = + (char *)uiop->uio_iov->iov_base - + backup; + uiop->uio_iov->iov_len += backup; uiop->uio_offset -= backup; - uio_uio_resid_add(uiop, backup); + uiop->uio_resid += backup; len = rlen; } commit = fxdr_unsigned(int, *tl++); @@ -2925,7 +2928,7 @@ nfsrpc_readdir(vnode_t vp, struct uio *uiop, nfsuint64 size_t tresid; KASSERT(uiop->uio_iovcnt == 1 && - (uio_uio_resid(uiop) & (DIRBLKSIZ - 1)) == 0, + (uiop->uio_resid & (DIRBLKSIZ - 1)) == 0, ("nfs readdirrpc bad uio")); ncookie.lval[0] = ncookie.lval[1] = 0; /* @@ -2935,13 +2938,13 @@ nfsrpc_readdir(vnode_t vp, struct uio *uiop, nfsuint64 * will never make readsize > nm_readdirsize. */ readsize = nmp->nm_readdirsize; - if (readsize > uio_uio_resid(uiop)) - readsize = uio_uio_resid(uiop) + DIRBLKSIZ; + if (readsize > uiop->uio_resid) + readsize = uiop->uio_resid + DIRBLKSIZ; *attrflagp = 0; if (eofp) *eofp = 0; - tresid = uio_uio_resid(uiop); + tresid = uiop->uio_resid; cookie.lval[0] = cookiep->nfsuquad[0]; cookie.lval[1] = cookiep->nfsuquad[1]; nd->nd_mrep = NULL; @@ -3036,7 +3039,7 @@ nfsrpc_readdir(vnode_t vp, struct uio *uiop, nfsuint64 if (error) return (error); nd->nd_mrep = NULL; - dp = (struct dirent *)uio_iov_base(uiop); + dp = (struct dirent *)uiop->uio_iov->iov_base; dp->d_pad0 = dp->d_pad1 = 0; dp->d_off = 0; dp->d_type = DT_DIR; @@ -3052,11 +3055,12 @@ nfsrpc_readdir(vnode_t vp, struct uio *uiop, nfsuint64 *tl++ = 0; *tl = 0; blksiz += dp->d_reclen; - uio_uio_resid_add(uiop, -(dp->d_reclen)); + uiop->uio_resid -= dp->d_reclen; uiop->uio_offset += dp->d_reclen; - uio_iov_base_add(uiop, dp->d_reclen); - uio_iov_len_add(uiop, -(dp->d_reclen)); - dp = (struct dirent *)uio_iov_base(uiop); + uiop->uio_iov->iov_base = + (char *)uiop->uio_iov->iov_base + dp->d_reclen; + uiop->uio_iov->iov_len -= dp->d_reclen; + dp = (struct dirent *)uiop->uio_iov->iov_base; dp->d_pad0 = dp->d_pad1 = 0; dp->d_off = 0; dp->d_type = DT_DIR; @@ -3073,10 +3077,11 @@ nfsrpc_readdir(vnode_t vp, struct uio *uiop, nfsuint64 *tl++ = 0; *tl = 0; blksiz += dp->d_reclen; - uio_uio_resid_add(uiop, -(dp->d_reclen)); + uiop->uio_resid -= dp->d_reclen; uiop->uio_offset += dp->d_reclen; - uio_iov_base_add(uiop, dp->d_reclen); - uio_iov_len_add(uiop, -(dp->d_reclen)); + uiop->uio_iov->iov_base = + (char *)uiop->uio_iov->iov_base + dp->d_reclen; + uiop->uio_iov->iov_len -= dp->d_reclen; } NFSSETBIT_ATTRBIT(&attrbits, NFSATTRBIT_RDATTRERROR); } else { @@ -3171,19 +3176,20 @@ nfsrpc_readdir(vnode_t vp, struct uio *uiop, nfsuint64 tlen += 8; /* To ensure null termination. */ left = DIRBLKSIZ - blksiz; if (_GENERIC_DIRLEN(len) + NFSX_HYPER > left) { - NFSBZERO(uio_iov_base(uiop), left); + NFSBZERO(uiop->uio_iov->iov_base, left); dp->d_reclen += left; - uio_iov_base_add(uiop, left); - uio_iov_len_add(uiop, -(left)); - uio_uio_resid_add(uiop, -(left)); + uiop->uio_iov->iov_base = + (char *)uiop->uio_iov->iov_base + left; + uiop->uio_iov->iov_len -= left; + uiop->uio_resid -= left; uiop->uio_offset += left; blksiz = 0; } if (_GENERIC_DIRLEN(len) + NFSX_HYPER > - uio_uio_resid(uiop)) + uiop->uio_resid) bigenough = 0; if (bigenough) { - dp = (struct dirent *)uio_iov_base(uiop); + dp = (struct dirent *)uiop->uio_iov->iov_base; dp->d_pad0 = dp->d_pad1 = 0; dp->d_off = 0; dp->d_namlen = len; @@ -3193,21 +3199,24 @@ nfsrpc_readdir(vnode_t vp, struct uio *uiop, nfsuint64 blksiz += dp->d_reclen; if (blksiz == DIRBLKSIZ) blksiz = 0; - uio_uio_resid_add(uiop, -(DIRHDSIZ)); + uiop->uio_resid -= DIRHDSIZ; uiop->uio_offset += DIRHDSIZ; - uio_iov_base_add(uiop, DIRHDSIZ); - uio_iov_len_add(uiop, -(DIRHDSIZ)); + uiop->uio_iov->iov_base = + (char *)uiop->uio_iov->iov_base + DIRHDSIZ; + uiop->uio_iov->iov_len -= DIRHDSIZ; error = nfsm_mbufuio(nd, uiop, len); if (error) goto nfsmout; - cp = uio_iov_base(uiop); + cp = uiop->uio_iov->iov_base; tlen -= len; NFSBZERO(cp, tlen); cp += tlen; /* points to cookie storage */ tl2 = (u_int32_t *)cp; - uio_iov_base_add(uiop, (tlen + NFSX_HYPER)); - uio_iov_len_add(uiop, -(tlen + NFSX_HYPER)); - uio_uio_resid_add(uiop, -(tlen + NFSX_HYPER)); + uiop->uio_iov->iov_base = + (char *)uiop->uio_iov->iov_base + tlen + + NFSX_HYPER; + uiop->uio_iov->iov_len -= tlen + NFSX_HYPER; + uiop->uio_resid -= tlen + NFSX_HYPER; uiop->uio_offset += (tlen + NFSX_HYPER); } else { error = nfsm_advance(nd, NFSM_RNDUP(len), -1); @@ -3290,11 +3299,12 @@ nfsrpc_readdir(vnode_t vp, struct uio *uiop, nfsuint64 */ if (blksiz > 0) { left = DIRBLKSIZ - blksiz; - NFSBZERO(uio_iov_base(uiop), left); + NFSBZERO(uiop->uio_iov->iov_base, left); dp->d_reclen += left; - uio_iov_base_add(uiop, left); - uio_iov_len_add(uiop, -(left)); - uio_uio_resid_add(uiop, -(left)); + uiop->uio_iov->iov_base = (char *)uiop->uio_iov->iov_base + + left; + uiop->uio_iov->iov_len -= left; + uiop->uio_resid -= left; uiop->uio_offset += left; } @@ -3305,7 +3315,7 @@ nfsrpc_readdir(vnode_t vp, struct uio *uiop, nfsuint64 * Otherwise, return the eof flag from the server. */ if (eofp) { - if (tresid == ((size_t)(uio_uio_resid(uiop)))) + if (tresid == ((size_t)(uiop->uio_resid))) *eofp = 1; else if (!bigenough) *eofp = 0; @@ -3316,17 +3326,18 @@ nfsrpc_readdir(vnode_t vp, struct uio *uiop, nfsuint64 /* * Add extra empty records to any remaining DIRBLKSIZ chunks. */ - while (uio_uio_resid(uiop) > 0 && uio_uio_resid(uiop) != tresid) { - dp = (struct dirent *)uio_iov_base(uiop); + while (uiop->uio_resid > 0 && uiop->uio_resid != tresid) { + dp = (struct dirent *)uiop->uio_iov->iov_base; NFSBZERO(dp, DIRBLKSIZ); dp->d_type = DT_UNKNOWN; tl = (u_int32_t *)&dp->d_name[4]; *tl++ = cookie.lval[0]; *tl = cookie.lval[1]; dp->d_reclen = DIRBLKSIZ; - uio_iov_base_add(uiop, DIRBLKSIZ); - uio_iov_len_add(uiop, -(DIRBLKSIZ)); - uio_uio_resid_add(uiop, -(DIRBLKSIZ)); + uiop->uio_iov->iov_base = (char *)uiop->uio_iov->iov_base + + DIRBLKSIZ; + uiop->uio_iov->iov_len -= DIRBLKSIZ; + uiop->uio_resid -= DIRBLKSIZ; uiop->uio_offset += DIRBLKSIZ; } @@ -3371,7 +3382,7 @@ nfsrpc_readdirplus(vnode_t vp, struct uio *uiop, nfsui struct timespec dctime; KASSERT(uiop->uio_iovcnt == 1 && - (uio_uio_resid(uiop) & (DIRBLKSIZ - 1)) == 0, + (uiop->uio_resid & (DIRBLKSIZ - 1)) == 0, ("nfs readdirplusrpc bad uio")); ncookie.lval[0] = ncookie.lval[1] = 0; timespecclear(&dctime); @@ -3382,7 +3393,7 @@ nfsrpc_readdirplus(vnode_t vp, struct uio *uiop, nfsui nd->nd_mrep = NULL; cookie.lval[0] = cookiep->nfsuquad[0]; cookie.lval[1] = cookiep->nfsuquad[1]; - tresid = uio_uio_resid(uiop); + tresid = uiop->uio_resid; /* * For NFSv4, first create the "." and ".." entries. @@ -3473,7 +3484,7 @@ nfsrpc_readdirplus(vnode_t vp, struct uio *uiop, nfsui if (error) return (error); nd->nd_mrep = NULL; - dp = (struct dirent *)uio_iov_base(uiop); + dp = (struct dirent *)uiop->uio_iov->iov_base; dp->d_pad0 = dp->d_pad1 = 0; dp->d_off = 0; dp->d_type = DT_DIR; @@ -3489,11 +3500,12 @@ nfsrpc_readdirplus(vnode_t vp, struct uio *uiop, nfsui *tl++ = 0; *tl = 0; blksiz += dp->d_reclen; - uio_uio_resid_add(uiop, -(dp->d_reclen)); + uiop->uio_resid -= dp->d_reclen; uiop->uio_offset += dp->d_reclen; - uio_iov_base_add(uiop, dp->d_reclen); - uio_iov_len_add(uiop, -(dp->d_reclen)); - dp = (struct dirent *)uio_iov_base(uiop); + uiop->uio_iov->iov_base = + (char *)uiop->uio_iov->iov_base + dp->d_reclen; + uiop->uio_iov->iov_len -= dp->d_reclen; + dp = (struct dirent *)uiop->uio_iov->iov_base; dp->d_pad0 = dp->d_pad1 = 0; dp->d_off = 0; dp->d_type = DT_DIR; @@ -3510,10 +3522,11 @@ nfsrpc_readdirplus(vnode_t vp, struct uio *uiop, nfsui *tl++ = 0; *tl = 0; blksiz += dp->d_reclen; - uio_uio_resid_add(uiop, -(dp->d_reclen)); + uiop->uio_resid -= dp->d_reclen; uiop->uio_offset += dp->d_reclen; - uio_iov_base_add(uiop, dp->d_reclen); - uio_iov_len_add(uiop, -(dp->d_reclen)); + uiop->uio_iov->iov_base = + (char *)uiop->uio_iov->iov_base + dp->d_reclen; + uiop->uio_iov->iov_len -= dp->d_reclen; } NFSREADDIRPLUS_ATTRBIT(&attrbits); if (gotmnton) @@ -3589,19 +3602,20 @@ nfsrpc_readdirplus(vnode_t vp, struct uio *uiop, nfsui tlen += 8; /* To ensure null termination. */ left = DIRBLKSIZ - blksiz; if (_GENERIC_DIRLEN(len) + NFSX_HYPER > left) { - NFSBZERO(uio_iov_base(uiop), left); + NFSBZERO(uiop->uio_iov->iov_base, left); dp->d_reclen += left; - uio_iov_base_add(uiop, left); - uio_iov_len_add(uiop, -(left)); - uio_uio_resid_add(uiop, -(left)); + uiop->uio_iov->iov_base = + (char *)uiop->uio_iov->iov_base + left; + uiop->uio_iov->iov_len -= left; + uiop->uio_resid -= left; uiop->uio_offset += left; blksiz = 0; } if (_GENERIC_DIRLEN(len) + NFSX_HYPER > - uio_uio_resid(uiop)) + uiop->uio_resid) bigenough = 0; if (bigenough) { - dp = (struct dirent *)uio_iov_base(uiop); + dp = (struct dirent *)uiop->uio_iov->iov_base; dp->d_pad0 = dp->d_pad1 = 0; dp->d_off = 0; dp->d_namlen = len; @@ -3611,17 +3625,18 @@ nfsrpc_readdirplus(vnode_t vp, struct uio *uiop, nfsui blksiz += dp->d_reclen; if (blksiz == DIRBLKSIZ) blksiz = 0; - uio_uio_resid_add(uiop, -(DIRHDSIZ)); + uiop->uio_resid -= DIRHDSIZ; uiop->uio_offset += DIRHDSIZ; - uio_iov_base_add(uiop, DIRHDSIZ); - uio_iov_len_add(uiop, -(DIRHDSIZ)); - cnp->cn_nameptr = uio_iov_base(uiop); + uiop->uio_iov->iov_base = + (char *)uiop->uio_iov->iov_base + DIRHDSIZ; + uiop->uio_iov->iov_len -= DIRHDSIZ; + cnp->cn_nameptr = uiop->uio_iov->iov_base; cnp->cn_namelen = len; NFSCNHASHZERO(cnp); error = nfsm_mbufuio(nd, uiop, len); if (error) goto nfsmout; - cp = uio_iov_base(uiop); + cp = uiop->uio_iov->iov_base; tlen -= len; NFSBZERO(cp, tlen); cp += tlen; /* points to cookie storage */ @@ -3631,9 +3646,11 @@ nfsrpc_readdirplus(vnode_t vp, struct uio *uiop, nfsui isdotdot = 1; else isdotdot = 0; - uio_iov_base_add(uiop, (tlen + NFSX_HYPER)); - uio_iov_len_add(uiop, -(tlen + NFSX_HYPER)); - uio_uio_resid_add(uiop, -(tlen + NFSX_HYPER)); + uiop->uio_iov->iov_base = + (char *)uiop->uio_iov->iov_base + tlen + + NFSX_HYPER; + uiop->uio_iov->iov_len -= tlen + NFSX_HYPER; + uiop->uio_resid -= tlen + NFSX_HYPER; uiop->uio_offset += (tlen + NFSX_HYPER); } else { error = nfsm_advance(nd, NFSM_RNDUP(len), -1); @@ -3793,11 +3810,12 @@ nfsrpc_readdirplus(vnode_t vp, struct uio *uiop, nfsui */ if (blksiz > 0) { left = DIRBLKSIZ - blksiz; - NFSBZERO(uio_iov_base(uiop), left); + NFSBZERO(uiop->uio_iov->iov_base, left); dp->d_reclen += left; - uio_iov_base_add(uiop, left); - uio_iov_len_add(uiop, -(left)); - uio_uio_resid_add(uiop, -(left)); + uiop->uio_iov->iov_base = (char *)uiop->uio_iov->iov_base + + left; + uiop->uio_iov->iov_len -= left; + uiop->uio_resid -= left; uiop->uio_offset += left; } @@ -3808,7 +3826,7 @@ nfsrpc_readdirplus(vnode_t vp, struct uio *uiop, nfsui * Otherwise, return the eof flag from the server. */ if (eofp != NULL) { - if (tresid == uio_uio_resid(uiop)) + if (tresid == uiop->uio_resid) *eofp = 1; else if (!bigenough) *eofp = 0; @@ -3819,17 +3837,18 @@ nfsrpc_readdirplus(vnode_t vp, struct uio *uiop, nfsui /* * Add extra empty records to any remaining DIRBLKSIZ chunks. */ - while (uio_uio_resid(uiop) > 0 && uio_uio_resid(uiop) != tresid) { - dp = (struct dirent *)uio_iov_base(uiop); + while (uiop->uio_resid > 0 && uiop->uio_resid != tresid) { + dp = (struct dirent *)uiop->uio_iov->iov_base; NFSBZERO(dp, DIRBLKSIZ); dp->d_type = DT_UNKNOWN; tl = (u_int32_t *)&dp->d_name[4]; *tl++ = cookie.lval[0]; *tl = cookie.lval[1]; dp->d_reclen = DIRBLKSIZ; - uio_iov_base_add(uiop, DIRBLKSIZ); - uio_iov_len_add(uiop, -(DIRBLKSIZ)); - uio_uio_resid_add(uiop, -(DIRBLKSIZ)); + uiop->uio_iov->iov_base = (char *)uiop->uio_iov->iov_base + + DIRBLKSIZ; + uiop->uio_iov->iov_len -= DIRBLKSIZ; + uiop->uio_resid -= DIRBLKSIZ; uiop->uio_offset += DIRBLKSIZ; } @@ -6395,9 +6414,9 @@ nfsrpc_writeds(vnode_t vp, struct uio *uiop, int *iomo * back. */ uiop->uio_offset -= len; - uio_uio_resid_add(uiop, len); - uio_iov_base_add(uiop, -len); - uio_iov_len_add(uiop, len); + uiop->uio_resid += len; + uiop->uio_iov->iov_base = (char *)uiop->uio_iov->iov_base - len; + uiop->uio_iov->iov_len += len; error = nd->nd_repstat; } else { if (vers == NFS_VER3) { @@ -6415,10 +6434,11 @@ nfsrpc_writeds(vnode_t vp, struct uio *uiop, int *iomo goto nfsmout; } else if (rlen < len) { backup = len - rlen; - uio_iov_base_add(uiop, -(backup)); - uio_iov_len_add(uiop, backup); + uiop->uio_iov->iov_base = + (char *)uiop->uio_iov->iov_base - backup; + uiop->uio_iov->iov_len += backup; uiop->uio_offset -= backup; - uio_uio_resid_add(uiop, backup); + uiop->uio_resid += backup; len = rlen; } commit = fxdr_unsigned(int, *tl++); From owner-svn-src-all@freebsd.org Tue Apr 28 02:13: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 4E9D12CFEED; Tue, 28 Apr 2020 02:13:18 +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 49B4tk1R9yz45cL; Tue, 28 Apr 2020 02:13:18 +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 2C6841CC38; Tue, 28 Apr 2020 02:13:18 +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 03S2DIhW070121; Tue, 28 Apr 2020 02:13:18 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03S2DI0k070120; Tue, 28 Apr 2020 02:13:18 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004280213.03S2DI0k070120@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Tue, 28 Apr 2020 02:13:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360425 - head/stand/lua X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/stand/lua X-SVN-Commit-Revision: 360425 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, 28 Apr 2020 02:13:18 -0000 Author: kevans Date: Tue Apr 28 02:13:17 2020 New Revision: 360425 URL: https://svnweb.freebsd.org/changeset/base/360425 Log: config.lua(8): "may should" is not proper grammar Reported by: rpokala X-MFC-With: r360421 Modified: head/stand/lua/config.lua.8 Modified: head/stand/lua/config.lua.8 ============================================================================== --- head/stand/lua/config.lua.8 Tue Apr 28 02:11:02 2020 (r360424) +++ head/stand/lua/config.lua.8 Tue Apr 28 02:13:17 2020 (r360425) @@ -64,7 +64,7 @@ Process .Ev files as if it were .Ev loader_conf_files . -The caller may should pass in a table as the +The caller should pass in a table as the .Ev loaded_files argument, which uses filenames as keys and any non-nil value to indicate that the file named by the key has been loaded. From owner-svn-src-all@freebsd.org Tue Apr 28 03:43: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 D552F2AA5A2; Tue, 28 Apr 2020 03:43: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 49B6vH5G2Cz4Bhs; Tue, 28 Apr 2020 03:43: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 AFCFD1DDF5; Tue, 28 Apr 2020 03:43:55 +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 03S3htTk027111; Tue, 28 Apr 2020 03:43:55 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03S3htVq027110; Tue, 28 Apr 2020 03:43:55 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004280343.03S3htVq027110@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Tue, 28 Apr 2020 03:43:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360427 - head/stand/lua X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/stand/lua X-SVN-Commit-Revision: 360427 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, 28 Apr 2020 03:43:55 -0000 Author: kevans Date: Tue Apr 28 03:43:55 2020 New Revision: 360427 URL: https://svnweb.freebsd.org/changeset/base/360427 Log: config.lua(8): catch up to recently added hooks While we're here, let's stylize these as functions instead of just raw text. A future change may allow arbitrary data arguments to be passed some of these, and the distinction is useful. Modified: head/stand/lua/config.lua.8 Modified: head/stand/lua/config.lua.8 ============================================================================== --- head/stand/lua/config.lua.8 Tue Apr 28 02:13:59 2020 (r360426) +++ head/stand/lua/config.lua.8 Tue Apr 28 03:43:55 2020 (r360427) @@ -180,8 +180,10 @@ commands. The following hooks are defined in .Nm : .Bl -tag -width "config.reloaded" -offset indent -.It config.loaded -.It config.reloaded +.It Fn config.loaded +.It Fn config.reloaded +.It Fn kernel.loaded +.It Fn modules.loaded .El .Sh SEE ALSO .Xr loader.conf 5 , From owner-svn-src-all@freebsd.org Tue Apr 28 05:10: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 CBFCB2AC064; Tue, 28 Apr 2020 05:10:34 +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 49B8qG5213z4G4J; Tue, 28 Apr 2020 05:10:34 +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 A7CF91ED68; Tue, 28 Apr 2020 05:10:34 +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 03S5AYvC076661; Tue, 28 Apr 2020 05:10:34 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03S5AYuJ076660; Tue, 28 Apr 2020 05:10:34 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <202004280510.03S5AYuJ076660@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Tue, 28 Apr 2020 05:10:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360428 - head/sbin/fsck_msdosfs X-SVN-Group: head X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: head/sbin/fsck_msdosfs X-SVN-Commit-Revision: 360428 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, 28 Apr 2020 05:10:34 -0000 Author: delphij Date: Tue Apr 28 05:10:34 2020 New Revision: 360428 URL: https://svnweb.freebsd.org/changeset/base/360428 Log: Do not overflow when calculating file system size. Reported by: Hyeongseok Kim Reviewed by: cem, Hyeongseok Kim MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D24603 Modified: head/sbin/fsck_msdosfs/check.c Modified: head/sbin/fsck_msdosfs/check.c ============================================================================== --- head/sbin/fsck_msdosfs/check.c Tue Apr 28 03:43:55 2020 (r360427) +++ head/sbin/fsck_msdosfs/check.c Tue Apr 28 05:10:34 2020 (r360428) @@ -54,6 +54,8 @@ checkfilesys(const char *fname) int finish_dosdirsection=0; int mod = 0; int ret = 8; + int64_t freebytes; + int64_t badbytes; rdonly = alwaysno; if (!preen) @@ -129,37 +131,33 @@ checkfilesys(const char *fname) mod |= FSERROR; } + freebytes = (int64_t)boot.NumFree * boot.ClusterSize; + badbytes = (int64_t)boot.NumBad * boot.ClusterSize; + #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, + boot.NumFiles, freestr, boot.NumFree, badstr, boot.NumBad); } else { pwarn("%d files, %sB free (%d clusters)\n", - boot.NumFiles, - freestr, boot.NumFree); + boot.NumFiles, freestr, boot.NumFree); } #else if (boot.NumBad) - 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); + pwarn("%d files, %jd KiB free (%d clusters), %jd KiB bad (%d clusters)\n", + boot.NumFiles, (intmax_t)freebytes / 1024, boot.NumFree, + (intmax_t)badbytes / 1024, boot.NumBad); else - pwarn("%d files, %d KiB free (%d clusters)\n", - boot.NumFiles, - boot.NumFree * boot.ClusterSize / 1024, boot.NumFree); + pwarn("%d files, %jd KiB free (%d clusters)\n", + boot.NumFiles, (intmax_t)freebytes / 1024, boot.NumFree); #endif if (mod && (mod & FSERROR) == 0) { From owner-svn-src-all@freebsd.org Tue Apr 28 07:23: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 B42DE2AF0E2; Tue, 28 Apr 2020 07:23:41 +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 49BCms4MVnz4MdC; Tue, 28 Apr 2020 07:23:41 +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 90FA720802; Tue, 28 Apr 2020 07:23:41 +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 03S7NfBa062889; Tue, 28 Apr 2020 07:23:41 GMT (envelope-from melifaro@FreeBSD.org) Received: (from melifaro@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03S7NfZO062888; Tue, 28 Apr 2020 07:23:41 GMT (envelope-from melifaro@FreeBSD.org) Message-Id: <202004280723.03S7NfZO062888@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: melifaro set sender to melifaro@FreeBSD.org using -f From: "Alexander V. Chernikov" Date: Tue, 28 Apr 2020 07:23:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360429 - head/sys/nfs X-SVN-Group: head X-SVN-Commit-Author: melifaro X-SVN-Commit-Paths: head/sys/nfs X-SVN-Commit-Revision: 360429 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, 28 Apr 2020 07:23:41 -0000 Author: melifaro Date: Tue Apr 28 07:23:41 2020 New Revision: 360429 URL: https://svnweb.freebsd.org/changeset/base/360429 Log: Remove rtable dumping code from bootp. This debugging code printing routing table data was introduced in rS25723, 22+ years ago. The last functional commit to this code was rS67534, 19 years ago. The code has been turned off by default all this time. Lastly, this code directly iterates radix tree and rtentries, which is not not a proper interaction with routing system. Differential Revision: https://reviews.freebsd.org/D24554 Modified: head/sys/nfs/bootp_subr.c Modified: head/sys/nfs/bootp_subr.c ============================================================================== --- head/sys/nfs/bootp_subr.c Tue Apr 28 05:10:34 2020 (r360428) +++ head/sys/nfs/bootp_subr.c Tue Apr 28 07:23:41 2020 (r360429) @@ -68,9 +68,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#ifdef BOOTP_DEBUG -#include -#endif #include #include @@ -263,10 +260,6 @@ static void bootpc_tag_helper(struct bootpc_tagcontext unsigned char *start, int len, int tag); #ifdef BOOTP_DEBUG -void bootpboot_p_sa(struct sockaddr *sa, struct sockaddr *ma); -void bootpboot_p_rtentry(struct rtentry *rt); -void bootpboot_p_tree(struct radix_node *rn); -void bootpboot_p_rtlist(void); void bootpboot_p_if(struct ifnet *ifp, struct ifaddr *ifa); void bootpboot_p_iflist(void); #endif @@ -299,95 +292,6 @@ static __inline int bootpc_ifctx_isfailed(struct bootp */ #ifdef BOOTP_DEBUG -void -bootpboot_p_sa(struct sockaddr *sa, struct sockaddr *ma) -{ - - if (sa == NULL) { - printf("(sockaddr *) "); - return; - } - switch (sa->sa_family) { - case AF_INET: - { - struct sockaddr_in *sin; - - sin = (struct sockaddr_in *) sa; - printf("inet "); - print_sin_addr(sin); - if (ma != NULL) { - sin = (struct sockaddr_in *) ma; - printf(" mask "); - print_sin_addr(sin); - } - } - break; - case AF_LINK: - { - struct sockaddr_dl *sli; - int i; - - sli = (struct sockaddr_dl *) sa; - printf("link %.*s ", sli->sdl_nlen, sli->sdl_data); - for (i = 0; i < sli->sdl_alen; i++) { - if (i > 0) - printf(":"); - printf("%x", ((unsigned char *) LLADDR(sli))[i]); - } - } - break; - default: - printf("af%d", sa->sa_family); - } -} - -void -bootpboot_p_rtentry(struct rtentry *rt) -{ - - bootpboot_p_sa(rt_key(rt), rt_mask(rt)); - printf(" "); - bootpboot_p_sa(rt->rt_gateway, NULL); - printf(" "); - printf("flags %x", (unsigned short) rt->rt_flags); - printf(" %d", (int) rt->rt_expire); - printf(" %s\n", rt->rt_ifp->if_xname); -} - -void -bootpboot_p_tree(struct radix_node *rn) -{ - - while (rn != NULL) { - if (rn->rn_bit < 0) { - if ((rn->rn_flags & RNF_ROOT) != 0) { - } else { - bootpboot_p_rtentry((struct rtentry *) rn); - } - rn = rn->rn_dupedkey; - } else { - bootpboot_p_tree(rn->rn_left); - bootpboot_p_tree(rn->rn_right); - return; - } - } -} - -void -bootpboot_p_rtlist(void) -{ - RIB_RLOCK_TRACKER; - struct rib_head *rnh; - - printf("Routing table:\n"); - rnh = rt_tables_get_rnh(0, AF_INET); - if (rnh == NULL) - return; - RIB_RLOCK(rnh); /* could sleep XXX */ - bootpboot_p_tree(rnh->rnh_treetop); - RIB_RUNLOCK(rnh); -} - void bootpboot_p_if(struct ifnet *ifp, struct ifaddr *ifa) { From owner-svn-src-all@freebsd.org Tue Apr 28 07: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 5D1AF2AF34D; Tue, 28 Apr 2020 07:25:36 +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 49BCq41svkz4Mw2; Tue, 28 Apr 2020 07:25:36 +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 3B4982082D; Tue, 28 Apr 2020 07:25:36 +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 03S7Pa76063026; Tue, 28 Apr 2020 07:25:36 GMT (envelope-from melifaro@FreeBSD.org) Received: (from melifaro@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03S7PZmV063021; Tue, 28 Apr 2020 07:25:35 GMT (envelope-from melifaro@FreeBSD.org) Message-Id: <202004280725.03S7PZmV063021@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: melifaro set sender to melifaro@FreeBSD.org using -f From: "Alexander V. Chernikov" Date: Tue, 28 Apr 2020 07:25:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360430 - 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: 360430 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, 28 Apr 2020 07:25:36 -0000 Author: melifaro Date: Tue Apr 28 07:25:34 2020 New Revision: 360430 URL: https://svnweb.freebsd.org/changeset/base/360430 Log: Eliminate now-unused parts of old routing KPI. r360292 switched most of the remaining routing customers to a new KPI, leaving a bunch of wrappers for old routing lookup functions unused. Remove them from the tree as a part of routing cleanup. Differential Revision: https://reviews.freebsd.org/D24569 Modified: head/sys/net/route.c head/sys/net/route.h head/sys/netinet/in_rmx.c head/sys/netinet/in_var.h head/sys/netinet6/in6_rmx.c head/sys/netinet6/in6_var.h Modified: head/sys/net/route.c ============================================================================== --- head/sys/net/route.c Tue Apr 28 07:23:41 2020 (r360429) +++ head/sys/net/route.c Tue Apr 28 07:25:34 2020 (r360430) @@ -434,28 +434,6 @@ sys_setfib(struct thread *td, struct setfib_args *uap) } /* - * Packet routing routines. - */ -void -rtalloc_ign_fib(struct route *ro, u_long ignore, u_int fibnum) -{ - struct rtentry *rt; - - if (ro->ro_nh != NULL) { - if (NH_IS_VALID(ro->ro_nh)) - return; - NH_FREE(ro->ro_nh); - ro->ro_nh = NULL; - } - rt = rtalloc1_fib(&ro->ro_dst, 1, ignore, fibnum); - if (rt != NULL) { - ro->ro_nh = rt->rt_nhop; - nhop_ref_object(rt->rt_nhop); - RT_UNLOCK(rt); - } -} - -/* * Look up the route that matches the address given * Or, at least try.. Create a cloned route if needed. * Modified: head/sys/net/route.h ============================================================================== --- head/sys/net/route.h Tue Apr 28 07:23:41 2020 (r360429) +++ head/sys/net/route.h Tue Apr 28 07:25:34 2020 (r360430) @@ -503,7 +503,6 @@ int rtinit(struct ifaddr *, int, int); * For now the protocol indepedent versions are the same as the AF_INET ones * but this will change.. */ -void rtalloc_ign_fib(struct route *ro, u_long ignflags, u_int fibnum); struct rtentry *rtalloc1_fib(struct sockaddr *, int, u_long, u_int); int rtioctl_fib(u_long, caddr_t, u_int); int rtrequest_fib(int, struct sockaddr *, Modified: head/sys/netinet/in_rmx.c ============================================================================== --- head/sys/netinet/in_rmx.c Tue Apr 28 07:23:41 2020 (r360429) +++ head/sys/netinet/in_rmx.c Tue Apr 28 07:25:34 2020 (r360430) @@ -257,14 +257,3 @@ in_ifadown(struct ifaddr *ifa, int delete) ifa->ifa_flags &= ~IFA_ROUTE; /* XXXlocking? */ } -/* - * inet versions of rt functions. These have fib extensions and - * for now will just reference the _fib variants. - * eventually this order will be reversed, - */ -void -in_rtalloc_ign(struct route *ro, u_long ignflags, u_int fibnum) -{ - rtalloc_ign_fib(ro, ignflags, fibnum); -} - Modified: head/sys/netinet/in_var.h ============================================================================== --- head/sys/netinet/in_var.h Tue Apr 28 07:23:41 2020 (r360429) +++ head/sys/netinet/in_var.h Tue Apr 28 07:25:34 2020 (r360430) @@ -471,9 +471,6 @@ struct mbuf *ip_tryforward(struct mbuf *); void *in_domifattach(struct ifnet *); void in_domifdetach(struct ifnet *, void *); - -/* XXX */ -void in_rtalloc_ign(struct route *ro, u_long ignflags, u_int fibnum); #endif /* _KERNEL */ /* INET6 stuff */ Modified: head/sys/netinet6/in6_rmx.c ============================================================================== --- head/sys/netinet6/in6_rmx.c Tue Apr 28 07:23:41 2020 (r360429) +++ head/sys/netinet6/in6_rmx.c Tue Apr 28 07:25:34 2020 (r360430) @@ -239,23 +239,3 @@ in6_rtrequest(int req, struct sockaddr *dst, struct so return (rtrequest_fib(req, dst, gw, mask, flags, ret_nrt, fibnum)); } -void -in6_rtalloc(struct route_in6 *ro, u_int fibnum) -{ - - rtalloc_ign_fib((struct route *)ro, 0ul, fibnum); -} - -void -in6_rtalloc_ign(struct route_in6 *ro, u_long ignflags, u_int fibnum) -{ - - rtalloc_ign_fib((struct route *)ro, ignflags, fibnum); -} - -struct rtentry * -in6_rtalloc1(struct sockaddr *dst, int report, u_long ignflags, u_int fibnum) -{ - - return (rtalloc1_fib(dst, report, ignflags, fibnum)); -} Modified: head/sys/netinet6/in6_var.h ============================================================================== --- head/sys/netinet6/in6_var.h Tue Apr 28 07:23:41 2020 (r360429) +++ head/sys/netinet6/in6_var.h Tue Apr 28 07:25:34 2020 (r360430) @@ -917,9 +917,6 @@ void in6_newaddrmsg(struct in6_ifaddr *, int); struct mbuf *ip6_tryforward(struct mbuf *); int in6_rtrequest(int, struct sockaddr *, struct sockaddr *, struct sockaddr *, int, struct rtentry **, u_int); -void in6_rtalloc(struct route_in6 *, u_int); -void in6_rtalloc_ign(struct route_in6 *, u_long, u_int); -struct rtentry *in6_rtalloc1(struct sockaddr *, int, u_long, u_int); #endif /* _KERNEL */ #endif /* _NETINET6_IN6_VAR_H_ */ From owner-svn-src-all@freebsd.org Tue Apr 28 08:06: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 2F87A2B0C00; Tue, 28 Apr 2020 08:06:58 +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 49BDkp0RbFz4QD2; Tue, 28 Apr 2020 08:06:58 +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 0A5BD21025; Tue, 28 Apr 2020 08:06:58 +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 03S86vx1087711; Tue, 28 Apr 2020 08:06:57 GMT (envelope-from melifaro@FreeBSD.org) Received: (from melifaro@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03S86vQC087708; Tue, 28 Apr 2020 08:06:57 GMT (envelope-from melifaro@FreeBSD.org) Message-Id: <202004280806.03S86vQC087708@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: melifaro set sender to melifaro@FreeBSD.org using -f From: "Alexander V. Chernikov" Date: Tue, 28 Apr 2020 08:06:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360431 - in head/sys: net netinet X-SVN-Group: head X-SVN-Commit-Author: melifaro X-SVN-Commit-Paths: in head/sys: net netinet X-SVN-Commit-Revision: 360431 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, 28 Apr 2020 08:06:58 -0000 Author: melifaro Date: Tue Apr 28 08:06:56 2020 New Revision: 360431 URL: https://svnweb.freebsd.org/changeset/base/360431 Log: Convert rtalloc_mpath_fib() users to the new KPI. New fib[46]_lookup() functions support multipath transparently. Given that, switch the last rtalloc_mpath_fib() calls to dib4_lookup() and eliminate the function itself. Note: proper flowid generation (especially for the outbound traffic) is a bigger topic and will be handled in a separate review. This change leaves flowid generation intact. Differential Revision: https://reviews.freebsd.org/D24595 Modified: head/sys/net/radix_mpath.c head/sys/net/radix_mpath.h head/sys/netinet/ip_input.c head/sys/netinet/ip_output.c Modified: head/sys/net/radix_mpath.c ============================================================================== --- head/sys/net/radix_mpath.c Tue Apr 28 07:25:34 2020 (r360430) +++ head/sys/net/radix_mpath.c Tue Apr 28 08:06:56 2020 (r360431) @@ -257,46 +257,6 @@ rt_mpath_select(struct rtentry *rte, uint32_t hash) } void -rtalloc_mpath_fib(struct route *ro, uint32_t hash, u_int fibnum) -{ - struct rtentry *rt, *rt_tmp; - - /* - * XXX we don't attempt to lookup cached route again; what should - * be done for sendto(3) case? - */ - if (ro->ro_nh && RT_LINK_IS_UP(ro->ro_nh->nh_ifp)) - return; - ro->ro_nh = NULL; - rt_tmp = rtalloc1_fib(&ro->ro_dst, 1, 0, fibnum); - - /* if the route does not exist or it is not multipath, don't care */ - if (rt_tmp == NULL) - return; - if (rn_mpath_next((struct radix_node *)rt_tmp) == NULL) { - ro->ro_nh = rt_tmp->rt_nhop; - nhop_ref_object(ro->ro_nh); - RT_UNLOCK(rt_tmp); - return; - } - - rt = rt_mpath_selectrte(rt_tmp, hash); - /* XXX try filling rt_gwroute and avoid unreachable gw */ - - /* gw selection has failed - there must be only zero weight routes */ - if (!rt) { - RT_UNLOCK(rt_tmp); - return; - } - if (rt_tmp != rt) { - RTFREE_LOCKED(rt_tmp); - ro->ro_nh = rt->rt_nhop; - nhop_ref_object(ro->ro_nh); - } else - RT_UNLOCK(rt_tmp); -} - -void rt_mpath_init_rnh(struct rib_head *rnh) { Modified: head/sys/net/radix_mpath.h ============================================================================== --- head/sys/net/radix_mpath.h Tue Apr 28 07:25:34 2020 (r360430) +++ head/sys/net/radix_mpath.h Tue Apr 28 08:06:56 2020 (r360431) @@ -54,7 +54,6 @@ u_int32_t rn_mpath_count(struct radix_node *); struct rtentry *rt_mpath_matchgate(struct rtentry *, struct sockaddr *); int rt_mpath_conflict(struct rib_head *, struct rtentry *, struct sockaddr *); -void rtalloc_mpath_fib(struct route *, u_int32_t, u_int); struct rtentry *rt_mpath_select(struct rtentry *, uint32_t); struct rtentry *rt_mpath_selectrte(struct rtentry *, uint32_t); int rt_mpath_deldup(struct rtentry *, struct rtentry *); Modified: head/sys/netinet/ip_input.c ============================================================================== --- head/sys/netinet/ip_input.c Tue Apr 28 07:25:34 2020 (r360430) +++ head/sys/netinet/ip_input.c Tue Apr 28 08:06:56 2020 (r360431) @@ -954,6 +954,7 @@ ip_forward(struct mbuf *m, int srcrt) struct sockaddr_in *sin; struct in_addr dest; struct route ro; + uint32_t flowid; int error, type = 0, code = 0, mtu = 0; NET_EPOCH_ASSERT(); @@ -978,13 +979,11 @@ ip_forward(struct mbuf *m, int srcrt) sin->sin_len = sizeof(*sin); sin->sin_addr = ip->ip_dst; #ifdef RADIX_MPATH - rtalloc_mpath_fib(&ro, - ntohl(ip->ip_src.s_addr ^ ip->ip_dst.s_addr), - M_GETFIB(m)); + flowid = ntohl(ip->ip_src.s_addr ^ ip->ip_dst.s_addr); #else - ro.ro_nh = fib4_lookup(M_GETFIB(m), ip->ip_dst, 0, NHR_REF, - m->m_pkthdr.flowid); + flowid = m->m_pkthdr.flowid; #endif + ro.ro_nh = fib4_lookup(M_GETFIB(m), ip->ip_dst, 0, NHR_REF, flowid); if (ro.ro_nh != NULL) { ia = ifatoia(ro.ro_nh->nh_ifa); } else Modified: head/sys/netinet/ip_output.c ============================================================================== --- head/sys/netinet/ip_output.c Tue Apr 28 07:25:34 2020 (r360430) +++ head/sys/netinet/ip_output.c Tue Apr 28 08:06:56 2020 (r360431) @@ -68,9 +68,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#ifdef RADIX_MPATH -#include -#endif #include #include @@ -470,14 +467,15 @@ again: * layer, as this is probably required in all cases * for correct operation (as it is for ARP). */ + uint32_t flowid; #ifdef RADIX_MPATH - rtalloc_mpath_fib(ro, - ntohl(ip->ip_src.s_addr ^ ip->ip_dst.s_addr), - fibnum); + flowid = ntohl(ip->ip_src.s_addr ^ ip->ip_dst.s_addr); #else - ro->ro_nh = fib4_lookup(fibnum, dst->sin_addr, 0, - NHR_REF, m->m_pkthdr.flowid); + flowid = m->m_pkthdr.flowid; #endif + ro->ro_nh = fib4_lookup(fibnum, dst->sin_addr, 0, + NHR_REF, flowid); + if (ro->ro_nh == NULL || (!NH_IS_VALID(ro->ro_nh)) || !RT_LINK_IS_UP(ro->ro_nh->nh_ifp)) { #if defined(IPSEC) || defined(IPSEC_SUPPORT) From owner-svn-src-all@freebsd.org Tue Apr 28 08:28: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 1DE952B14D8; Tue, 28 Apr 2020 08:28:15 +0000 (UTC) (envelope-from grehan@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 49BFCM03dtz4R9w; Tue, 28 Apr 2020 08:28:15 +0000 (UTC) (envelope-from grehan@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 F0E7C213F7; Tue, 28 Apr 2020 08:28:14 +0000 (UTC) (envelope-from grehan@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03S8SElI099580; Tue, 28 Apr 2020 08:28:14 GMT (envelope-from grehan@FreeBSD.org) Received: (from grehan@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03S8SEqM099577; Tue, 28 Apr 2020 08:28:14 GMT (envelope-from grehan@FreeBSD.org) Message-Id: <202004280828.03S8SEqM099577@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: grehan set sender to grehan@FreeBSD.org using -f From: Peter Grehan Date: Tue, 28 Apr 2020 08:28: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: r360432 - in stable/11/sys/amd64/vmm: intel io X-SVN-Group: stable-11 X-SVN-Commit-Author: grehan X-SVN-Commit-Paths: in stable/11/sys/amd64/vmm: intel io X-SVN-Commit-Revision: 360432 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, 28 Apr 2020 08:28:15 -0000 Author: grehan Date: Tue Apr 28 08:28:13 2020 New Revision: 360432 URL: https://svnweb.freebsd.org/changeset/base/360432 Log: MFC r358848: Untangle TPR shadowing and APIC virtualization. This speeds up Windows guests tremendously. The patch does: Add a new tuneable 'hw.vmm.vmx.use_tpr_shadowing' to disable TLP shadowing. Also add 'hw.vmm.vmx.cap.tpr_shadowing' to be able to query if TPR shadowing is used. Detach the initialization of TPR shadowing from the initialization of APIC virtualization. APIC virtualization still needs TPR shadowing, but not vice versa. Any CPU that supports APIC virtualization should also support TPR shadowing. When TPR shadowing is used, the APIC page of each vCPU is written to the VMCS_VIRTUAL_APIC field of the VMCS so that the CPU can write directly to the page without intercept. On vm exit, vlapic_update_ppr() is called to update the PPR. Submitted by: Yamagi Burmeister Reviewed by: grehan Differential Revision: https://reviews.freebsd.org/D22942 Approved by: bz (mentor) Tested by: Jason Tubnor Modified: stable/11/sys/amd64/vmm/intel/vmx.c stable/11/sys/amd64/vmm/io/vlapic.c stable/11/sys/amd64/vmm/io/vlapic.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/amd64/vmm/intel/vmx.c ============================================================================== --- stable/11/sys/amd64/vmm/intel/vmx.c Tue Apr 28 08:06:56 2020 (r360431) +++ stable/11/sys/amd64/vmm/intel/vmx.c Tue Apr 28 08:28:13 2020 (r360432) @@ -170,6 +170,10 @@ static int cap_invpcid; SYSCTL_INT(_hw_vmm_vmx_cap, OID_AUTO, invpcid, CTLFLAG_RD, &cap_invpcid, 0, "Guests are allowed to use INVPCID"); +static int tpr_shadowing; +SYSCTL_INT(_hw_vmm_vmx_cap, OID_AUTO, tpr_shadowing, CTLFLAG_RD, + &tpr_shadowing, 0, "TPR shadowing support"); + static int virtual_interrupt_delivery; SYSCTL_INT(_hw_vmm_vmx_cap, OID_AUTO, virtual_interrupt_delivery, CTLFLAG_RD, &virtual_interrupt_delivery, 0, "APICv virtual interrupt delivery support"); @@ -625,7 +629,7 @@ vmx_restore(void) static int vmx_init(int ipinum) { - int error, use_tpr_shadow; + int error; uint64_t basic, fixed0, fixed1, feature_control; uint32_t tmp, procbased2_vid_bits; @@ -749,6 +753,24 @@ vmx_init(int ipinum) &tmp) == 0); /* + * Check support for TPR shadow. + */ + error = vmx_set_ctlreg(MSR_VMX_PROCBASED_CTLS, + MSR_VMX_TRUE_PROCBASED_CTLS, PROCBASED_USE_TPR_SHADOW, 0, + &tmp); + if (error == 0) { + tpr_shadowing = 1; + TUNABLE_INT_FETCH("hw.vmm.vmx.use_tpr_shadowing", + &tpr_shadowing); + } + + if (tpr_shadowing) { + procbased_ctls |= PROCBASED_USE_TPR_SHADOW; + procbased_ctls &= ~PROCBASED_CR8_LOAD_EXITING; + procbased_ctls &= ~PROCBASED_CR8_STORE_EXITING; + } + + /* * Check support for virtual interrupt delivery. */ procbased2_vid_bits = (PROCBASED2_VIRTUALIZE_APIC_ACCESSES | @@ -756,13 +778,9 @@ vmx_init(int ipinum) PROCBASED2_APIC_REGISTER_VIRTUALIZATION | PROCBASED2_VIRTUAL_INTERRUPT_DELIVERY); - use_tpr_shadow = (vmx_set_ctlreg(MSR_VMX_PROCBASED_CTLS, - MSR_VMX_TRUE_PROCBASED_CTLS, PROCBASED_USE_TPR_SHADOW, 0, - &tmp) == 0); - error = vmx_set_ctlreg(MSR_VMX_PROCBASED_CTLS2, MSR_VMX_PROCBASED_CTLS2, procbased2_vid_bits, 0, &tmp); - if (error == 0 && use_tpr_shadow) { + if (error == 0 && tpr_shadowing) { virtual_interrupt_delivery = 1; TUNABLE_INT_FETCH("hw.vmm.vmx.use_apic_vid", &virtual_interrupt_delivery); @@ -774,13 +792,6 @@ vmx_init(int ipinum) procbased_ctls2 &= ~PROCBASED2_VIRTUALIZE_X2APIC_MODE; /* - * No need to emulate accesses to %CR8 if virtual - * interrupt delivery is enabled. - */ - procbased_ctls &= ~PROCBASED_CR8_LOAD_EXITING; - procbased_ctls &= ~PROCBASED_CR8_STORE_EXITING; - - /* * Check for Posted Interrupts only if Virtual Interrupt * Delivery is enabled. */ @@ -1049,10 +1060,13 @@ vmx_vminit(struct vm *vm, pmap_t pmap) vmx->ctx[i].guest_dr6 = DBREG_DR6_RESERVED1; error += vmwrite(VMCS_GUEST_DR7, DBREG_DR7_RESERVED1); - if (virtual_interrupt_delivery) { - error += vmwrite(VMCS_APIC_ACCESS, APIC_ACCESS_ADDRESS); + if (tpr_shadowing) { error += vmwrite(VMCS_VIRTUAL_APIC, vtophys(&vmx->apic_page[i])); + } + + if (virtual_interrupt_delivery) { + error += vmwrite(VMCS_APIC_ACCESS, APIC_ACCESS_ADDRESS); error += vmwrite(VMCS_EOI_EXIT0, 0); error += vmwrite(VMCS_EOI_EXIT1, 0); error += vmwrite(VMCS_EOI_EXIT2, 0); @@ -2643,6 +2657,12 @@ vmx_exit_process(struct vmx *vmx, int vcpu, struct vm_ SDT_PROBE3(vmm, vmx, exit, mwait, vmx, vcpu, vmexit); vmexit->exitcode = VM_EXITCODE_MWAIT; break; + case EXIT_REASON_TPR: + vlapic = vm_lapic(vmx->vm, vcpu); + vlapic_sync_tpr(vlapic); + vmexit->inst_length = 0; + handled = HANDLED; + break; case EXIT_REASON_VMCALL: case EXIT_REASON_VMCLEAR: case EXIT_REASON_VMLAUNCH: @@ -2923,6 +2943,16 @@ vmx_run(void *arg, int vcpu, register_t rip, pmap_t pm } /* + * If TPR Shadowing is enabled, the TPR Threshold + * must be updated right before entering the guest. + */ + if (tpr_shadowing && !virtual_interrupt_delivery) { + if ((vmx->cap[vcpu].proc_ctls & PROCBASED_USE_TPR_SHADOW) != 0) { + vmcs_write(VMCS_TPR_THRESHOLD, vlapic_get_cr8(vlapic)); + } + } + + /* * VM exits restore the base address but not the * limits of GDTR and IDTR. The VMCS only stores the * base address, so VM exits set the limits to 0xffff. @@ -3596,10 +3626,33 @@ vmx_set_tmr(struct vlapic *vlapic, int vector, bool le } static void -vmx_enable_x2apic_mode(struct vlapic *vlapic) +vmx_enable_x2apic_mode_ts(struct vlapic *vlapic) { struct vmx *vmx; struct vmcs *vmcs; + uint32_t proc_ctls; + int vcpuid; + + vcpuid = vlapic->vcpuid; + vmx = ((struct vlapic_vtx *)vlapic)->vmx; + vmcs = &vmx->vmcs[vcpuid]; + + proc_ctls = vmx->cap[vcpuid].proc_ctls; + proc_ctls &= ~PROCBASED_USE_TPR_SHADOW; + proc_ctls |= PROCBASED_CR8_LOAD_EXITING; + proc_ctls |= PROCBASED_CR8_STORE_EXITING; + vmx->cap[vcpuid].proc_ctls = proc_ctls; + + VMPTRLD(vmcs); + vmcs_write(VMCS_PRI_PROC_BASED_CTLS, proc_ctls); + VMCLEAR(vmcs); +} + +static void +vmx_enable_x2apic_mode_vid(struct vlapic *vlapic) +{ + struct vmx *vmx; + struct vmcs *vmcs; uint32_t proc_ctls2; int vcpuid, error; @@ -3757,12 +3810,16 @@ vmx_vlapic_init(void *arg, int vcpuid) vlapic_vtx->pir_desc = &vmx->pir_desc[vcpuid]; vlapic_vtx->vmx = vmx; + if (tpr_shadowing) { + vlapic->ops.enable_x2apic_mode = vmx_enable_x2apic_mode_ts; + } + if (virtual_interrupt_delivery) { vlapic->ops.set_intr_ready = vmx_set_intr_ready; vlapic->ops.pending_intr = vmx_pending_intr; vlapic->ops.intr_accepted = vmx_intr_accepted; vlapic->ops.set_tmr = vmx_set_tmr; - vlapic->ops.enable_x2apic_mode = vmx_enable_x2apic_mode; + vlapic->ops.enable_x2apic_mode = vmx_enable_x2apic_mode_vid; } if (posted_interrupts) Modified: stable/11/sys/amd64/vmm/io/vlapic.c ============================================================================== --- stable/11/sys/amd64/vmm/io/vlapic.c Tue Apr 28 08:06:56 2020 (r360431) +++ stable/11/sys/amd64/vmm/io/vlapic.c Tue Apr 28 08:28:13 2020 (r360432) @@ -547,6 +547,12 @@ vlapic_update_ppr(struct vlapic *vlapic) VLAPIC_CTR1(vlapic, "vlapic_update_ppr 0x%02x", ppr); } +void +vlapic_sync_tpr(struct vlapic *vlapic) +{ + vlapic_update_ppr(vlapic); +} + static VMM_STAT(VLAPIC_GRATUITOUS_EOI, "EOI without any in-service interrupt"); static void @@ -1092,6 +1098,8 @@ vlapic_pending_intr(struct vlapic *vlapic, int *vecptr int idx, i, bitpos, vector; uint32_t *irrptr, val; + vlapic_update_ppr(vlapic); + if (vlapic->ops.pending_intr) return ((*vlapic->ops.pending_intr)(vlapic, vecptr)); @@ -1149,7 +1157,6 @@ vlapic_intr_accepted(struct vlapic *vlapic, int vector panic("isrvec_stk_top overflow %d", stk_top); vlapic->isrvec_stk[stk_top] = vector; - vlapic_update_ppr(vlapic); } void Modified: stable/11/sys/amd64/vmm/io/vlapic.h ============================================================================== --- stable/11/sys/amd64/vmm/io/vlapic.h Tue Apr 28 08:06:56 2020 (r360431) +++ stable/11/sys/amd64/vmm/io/vlapic.h Tue Apr 28 08:28:13 2020 (r360432) @@ -73,6 +73,8 @@ void vlapic_set_error(struct vlapic *vlapic, uint32_t void vlapic_fire_cmci(struct vlapic *vlapic); int vlapic_trigger_lvt(struct vlapic *vlapic, int vector); +void vlapic_sync_tpr(struct vlapic *vlapic); + uint64_t vlapic_get_apicbase(struct vlapic *vlapic); int vlapic_set_apicbase(struct vlapic *vlapic, uint64_t val); void vlapic_set_x2apic_state(struct vm *vm, int vcpuid, enum x2apic_state s); From owner-svn-src-all@freebsd.org Tue Apr 28 11: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 17C152B622B; Tue, 28 Apr 2020 11:52:35 +0000 (UTC) (envelope-from jbeich@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 49BKl66q1Xz4c0F; Tue, 28 Apr 2020 11:52:34 +0000 (UTC) (envelope-from jbeich@freebsd.org) Received: by freefall.freebsd.org (Postfix, from userid 1354) id E242B13EAF; Tue, 28 Apr 2020 11:52:34 +0000 (UTC) From: Jan Beich To: Kyle Evans Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r360125 - in head/usr.bin/diff: . tests References: <202004201614.03KGEitC073880@repo.freebsd.org> Date: Tue, 28 Apr 2020 13:52:31 +0200 In-Reply-To: <202004201614.03KGEitC073880@repo.freebsd.org> (Kyle Evans's message of "Mon, 20 Apr 2020 16:14:44 +0000 (UTC)") Message-ID: MIME-Version: 1.0 Content-Type: text/plain 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, 28 Apr 2020 11:52:35 -0000 Kyle Evans writes: > Author: kevans > Date: Mon Apr 20 16:14:44 2020 > New Revision: 360125 > URL: https://svnweb.freebsd.org/changeset/base/360125 > > Log: > diff(1): reject conflicting formatting options > > This matches GNU diff(1) behavior and, more importantly, eliminates any > source of confusion if multiple formatting options are specified. > > Note that the committed diff differs slightly from the submitted: I've > modified it so that we initialize diff_format to something that isn't an > accepted format option so that we can also reject --normal -c and -c > --normal, which would've otherwise been accepted because the default was > --normal. After option parsing we default it to D_NORMAL if it's still > unset. > > PR: 243975 > Submitted by: fehmi noyan isi > MFC after: 1 week Appears to break ability to specify number of context lines e.g., $ diff -U999 /usr/include/sha256.h /usr/include/sha512.h error: conflicting output format options. usage: diff [-aBbdilpTtw] [-c | -e | -f | -n | -q | -u] [--ignore-case] [...] From owner-svn-src-all@freebsd.org Tue Apr 28 12:25: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 E8A372B807A; Tue, 28 Apr 2020 12:25:31 +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 49BLT75rlKz4f5l; Tue, 28 Apr 2020 12:25:31 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: from mail-qt1-f174.google.com (mail-qt1-f174.google.com [209.85.160.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 B806810C9; Tue, 28 Apr 2020 12:25:31 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: by mail-qt1-f174.google.com with SMTP id e17so13627498qtp.7; Tue, 28 Apr 2020 05:25:31 -0700 (PDT) X-Gm-Message-State: AGi0PuYXXnyJe6ZQm6YvKRzQhdan+cyKi6kdBCNS1bo39itTljJc5Oeu tdxprVnWr0A82HfthDEXfnK3vbfdvGCOaeWKXyg= X-Google-Smtp-Source: APiQypJHcEOn7Z2c4J9nt2KFfihOPMw+WIImv35BL572rfblas11UkgYX451vmRjYZbIBZ5kEZRFzy6pKZAovhlffB4= X-Received: by 2002:ac8:7301:: with SMTP id x1mr28981090qto.53.1588076731052; Tue, 28 Apr 2020 05:25:31 -0700 (PDT) MIME-Version: 1.0 References: <202004201614.03KGEitC073880@repo.freebsd.org> In-Reply-To: From: Kyle Evans Date: Tue, 28 Apr 2020 07:25:18 -0500 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r360125 - in head/usr.bin/diff: . tests To: Jan Beich 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: Tue, 28 Apr 2020 12:25:32 -0000 On Tue, Apr 28, 2020 at 6:52 AM Jan Beich wrote: > > Kyle Evans writes: > > > Author: kevans > > Date: Mon Apr 20 16:14:44 2020 > > New Revision: 360125 > > URL: https://svnweb.freebsd.org/changeset/base/360125 > > > > Log: > > diff(1): reject conflicting formatting options > > > > This matches GNU diff(1) behavior and, more importantly, eliminates any > > source of confusion if multiple formatting options are specified. > > > > Note that the committed diff differs slightly from the submitted: I've > > modified it so that we initialize diff_format to something that isn't an > > accepted format option so that we can also reject --normal -c and -c > > --normal, which would've otherwise been accepted because the default was > > --normal. After option parsing we default it to D_NORMAL if it's still > > unset. > > > > PR: 243975 > > Submitted by: fehmi noyan isi > > MFC after: 1 week > > Appears to break ability to specify number of context lines e.g., > > $ diff -U999 /usr/include/sha256.h /usr/include/sha512.h > error: conflicting output format options. > usage: diff [-aBbdilpTtw] [-c | -e | -f | -n | -q | -u] [--ignore-case] > [...] Hmm, bizarre. =-\ This example works on my machine, and I don't see off-hand what would be preventing it for you: root@viper:/usr/src/usr.bin/diff# diff -U999 /usr/include/sha256.h /usr/include/sha512.h --- /usr/include/sha256.h 2020-04-22 21:38:54.000000000 -0500 +++ /usr/include/sha512.h 2020-04-22 21:38:54.000000000 -0500 @@ -1,99 +1,99 @@ /*- * Copyright 2005 Colin Percival * All rights reserved. * [... omitted ...] root@viper:/usr/src/usr.bin/diff# strings /usr/bin/diff | grep 'conflicting' error: conflicting output format options. Thanks, Kyle Evans From owner-svn-src-all@freebsd.org Tue Apr 28 12:43: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 32A822B86DA; Tue, 28 Apr 2020 12:43:00 +0000 (UTC) (envelope-from gljennjohn@gmail.com) Received: from mail-wm1-x343.google.com (mail-wm1-x343.google.com [IPv6:2a00:1450:4864:20::343]) (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 49BLsJ09Mhz4g1X; Tue, 28 Apr 2020 12:42:59 +0000 (UTC) (envelope-from gljennjohn@gmail.com) Received: by mail-wm1-x343.google.com with SMTP id r26so2716902wmh.0; Tue, 28 Apr 2020 05:42:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:in-reply-to:references:reply-to :mime-version:content-transfer-encoding; bh=+AGVnDbmsgROvhJymkcfikIqQmonKbKjKB5hiAYmdUo=; b=FZaM2RyxRx7vj+a+IGmZjUsGvx8bQ3CRwgLQCnmkGSf+4pe3EL+0A+VAw1GC1Ij8dY W90r2SWQoYZdWjMfawJ52B517VzN81pJ2khuILSUfoVPqeAODZzHYHYbgC2htjKXZ/Bg up8LEq4S2KDx89HhxdWqgaWLMjjfQEsFZDFSpOyPTQCMWmbGyuUp5r5P2diX8fv7+QhU bTNvXpunHb/F8BZvJDPKwPN24mhlGwCPQoRoL2PFsEUNX0p2RisMPjcGF5tUuYb8TzGB h5JImHCcWMMqLPE/1uEHWlWvCQkUVCubIFHTorC3FXS91vvHa6UOlPLXO6BmzqX5yspQ dTYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:in-reply-to :references:reply-to:mime-version:content-transfer-encoding; bh=+AGVnDbmsgROvhJymkcfikIqQmonKbKjKB5hiAYmdUo=; b=SDf+5y7BEJ57G1Uwpru2Upo/yDH//NqJ00WCu+cIRLYeUqnIAwu2OXi5eR7RKjTUaK zCoDAp6RdQ7YZR91p/zR6AVi4UtMqIN+/ez5pC+86K6BN4MkKQzPjDqkx7MW9r75ad9y XV+HMXiO4L/UKNxBuwrTOQDnLq2EPjvy97pRnDoHpqGx/fmEDJ35zBLaESRjKU0NDOxi WWFnlFzYTieZzPX/OKCJ1wuwBwDy9hp2+eu2Iy1OS1+VW2599m03PgjR3uVPDMEUoUp+ z0rhSpM2W7EdNGBks/Qmc1RMhe7mNsk/rukWhdG505nTiJtCx6JbULE/+r0NwzDsUmJr xOBQ== X-Gm-Message-State: AGi0PuYYcWfcaJcQYhDogfqYcSWX1Me6EcchDmE3Y7QrL9wyjJPmej9K 0tl7qHaAroKSX76L4/P1bAYrQvmT X-Google-Smtp-Source: APiQypLjxDTGH8u6zjcTHP/pE7KF3F+PXmkzpH3HRUvMTaRyVwcPARPPFlvsorixgXkGcsn7rFtUvg== X-Received: by 2002:a1c:bb08:: with SMTP id l8mr4865515wmf.168.1588077778053; Tue, 28 Apr 2020 05:42:58 -0700 (PDT) Received: from ernst.home (p5B3BE186.dip0.t-ipconnect.de. [91.59.225.134]) by smtp.gmail.com with ESMTPSA id w10sm26477778wrg.52.2020.04.28.05.42.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Apr 2020 05:42:57 -0700 (PDT) Date: Tue, 28 Apr 2020 14:42:55 +0200 From: Gary Jennejohn To: Kyle Evans Cc: Jan Beich , svn-src-head , svn-src-all , src-committers Subject: Re: svn commit: r360125 - in head/usr.bin/diff: . tests Message-ID: <20200428144255.1b75d9b5@ernst.home> In-Reply-To: References: <202004201614.03KGEitC073880@repo.freebsd.org> Reply-To: gljennjohn@gmail.com X-Mailer: Claws Mail 3.17.4 (GTK+ 2.24.32; amd64-portbld-freebsd13.0) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 49BLsJ09Mhz4g1X 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)[] 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, 28 Apr 2020 12:43:00 -0000 On Tue, 28 Apr 2020 07:25:18 -0500 Kyle Evans wrote: > On Tue, Apr 28, 2020 at 6:52 AM Jan Beich wrote: > > > > Kyle Evans writes: > > > > > Author: kevans > > > Date: Mon Apr 20 16:14:44 2020 > > > New Revision: 360125 > > > URL: https://svnweb.freebsd.org/changeset/base/360125 > > > > > > Log: > > > diff(1): reject conflicting formatting options > > > > > > This matches GNU diff(1) behavior and, more importantly, eliminates any > > > source of confusion if multiple formatting options are specified. > > > > > > Note that the committed diff differs slightly from the submitted: I've > > > modified it so that we initialize diff_format to something that isn't an > > > accepted format option so that we can also reject --normal -c and -c > > > --normal, which would've otherwise been accepted because the default was > > > --normal. After option parsing we default it to D_NORMAL if it's still > > > unset. > > > > > > PR: 243975 > > > Submitted by: fehmi noyan isi > > > MFC after: 1 week > > > > Appears to break ability to specify number of context lines e.g., > > > > $ diff -U999 /usr/include/sha256.h /usr/include/sha512.h > > error: conflicting output format options. > > usage: diff [-aBbdilpTtw] [-c | -e | -f | -n | -q | -u] [--ignore-case] > > [...] > > Hmm, bizarre. =-\ This example works on my machine, and I don't see > off-hand what would be preventing it for you: > > root@viper:/usr/src/usr.bin/diff# diff -U999 /usr/include/sha256.h > /usr/include/sha512.h > --- /usr/include/sha256.h 2020-04-22 21:38:54.000000000 -0500 > +++ /usr/include/sha512.h 2020-04-22 21:38:54.000000000 -0500 > @@ -1,99 +1,99 @@ > /*- > * Copyright 2005 Colin Percival > * All rights reserved. > * > [... omitted ...] > > root@viper:/usr/src/usr.bin/diff# strings /usr/bin/diff | grep 'conflicting' > error: conflicting output format options. > My /usr/bin/diff was built and installed on April 26, after this commit, and I don't see the error either. -- Gary Jennejohn From owner-svn-src-all@freebsd.org Tue Apr 28 12:55: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 D616E2B89CC; Tue, 28 Apr 2020 12:55:48 +0000 (UTC) (envelope-from jbeich@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 49BM845Jp7z3BvP; Tue, 28 Apr 2020 12:55:48 +0000 (UTC) (envelope-from jbeich@freebsd.org) Received: by freefall.freebsd.org (Postfix, from userid 1354) id AAE7C14C2A; Tue, 28 Apr 2020 12:55:48 +0000 (UTC) From: Jan Beich To: Gary Jennejohn Cc: Kyle Evans , svn-src-head , svn-src-all , src-committers Subject: Re: svn commit: r360125 - in head/usr.bin/diff: . tests References: <202004201614.03KGEitC073880@repo.freebsd.org> <20200428144255.1b75d9b5@ernst.home> Date: Tue, 28 Apr 2020 14:55:44 +0200 In-Reply-To: <20200428144255.1b75d9b5@ernst.home> (Gary Jennejohn's message of "Tue, 28 Apr 2020 14:42:55 +0200") Message-ID: MIME-Version: 1.0 Content-Type: text/plain 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, 28 Apr 2020 12:55:48 -0000 Gary Jennejohn writes: > On Tue, 28 Apr 2020 07:25:18 -0500 > Kyle Evans wrote: > >> On Tue, Apr 28, 2020 at 6:52 AM Jan Beich wrote: >> > >> > Kyle Evans writes: >> > >> > > Author: kevans >> > > Date: Mon Apr 20 16:14:44 2020 >> > > New Revision: 360125 >> > > URL: https://svnweb.freebsd.org/changeset/base/360125 >> > > >> > > Log: >> > > diff(1): reject conflicting formatting options >> > > >> > > This matches GNU diff(1) behavior and, more importantly, eliminates any >> > > source of confusion if multiple formatting options are specified. >> > > >> > > Note that the committed diff differs slightly from the submitted: I've >> > > modified it so that we initialize diff_format to something that isn't an >> > > accepted format option so that we can also reject --normal -c and -c >> > > --normal, which would've otherwise been accepted because the default was >> > > --normal. After option parsing we default it to D_NORMAL if it's still >> > > unset. >> > > >> > > PR: 243975 >> > > Submitted by: fehmi noyan isi >> > > MFC after: 1 week >> > >> > Appears to break ability to specify number of context lines e.g., >> > >> > $ diff -U999 /usr/include/sha256.h /usr/include/sha512.h >> > error: conflicting output format options. >> > usage: diff [-aBbdilpTtw] [-c | -e | -f | -n | -q | -u] [--ignore-case] >> > [...] >> >> Hmm, bizarre. =-\ This example works on my machine, and I don't see >> off-hand what would be preventing it for you: >> >> root@viper:/usr/src/usr.bin/diff# diff -U999 /usr/include/sha256.h >> /usr/include/sha512.h >> --- /usr/include/sha256.h 2020-04-22 21:38:54.000000000 -0500 >> +++ /usr/include/sha512.h 2020-04-22 21:38:54.000000000 -0500 >> @@ -1,99 +1,99 @@ >> /*- >> * Copyright 2005 Colin Percival >> * All rights reserved. >> * >> [... omitted ...] >> >> root@viper:/usr/src/usr.bin/diff# strings /usr/bin/diff | grep 'conflicting' >> error: conflicting output format options. >> > > My /usr/bin/diff was built and installed on April 26, after this > commit, and I don't see the error either. Thanks for confirming. Looks like my "diff" was aliased to "diff -up". Indeed, -u and -U are no longer compatible unlike GNU diff. From owner-svn-src-all@freebsd.org Tue Apr 28 12:58: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 C7A7A2B8A69; Tue, 28 Apr 2020 12:58:17 +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 49BMBx4zZqz3C45; Tue, 28 Apr 2020 12:58:17 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: from mail-qv1-f54.google.com (mail-qv1-f54.google.com [209.85.219.54]) (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 9824F147F; Tue, 28 Apr 2020 12:58:17 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: by mail-qv1-f54.google.com with SMTP id q2so10287275qvd.1; Tue, 28 Apr 2020 05:58:17 -0700 (PDT) X-Gm-Message-State: AGi0PubK5ZBTjtr70JDhg708hmG9Ao3V1THKWKAOe6CbDGpBH5X4E84F ahScy9iVEVdynevkPzwsmthERHpAKx2kjnJVK+U= X-Google-Smtp-Source: APiQypIA6zVJvuri6dDpSgJNtg7/mD8mdUGgzuhC2QqMNi/qvYyZl6tm2GwH1HH30TIPG0NgsJJUddz6+0ImL1LvZTg= X-Received: by 2002:a05:6214:1853:: with SMTP id d19mr26983014qvy.150.1588078697114; Tue, 28 Apr 2020 05:58:17 -0700 (PDT) MIME-Version: 1.0 References: <202004201614.03KGEitC073880@repo.freebsd.org> <20200428144255.1b75d9b5@ernst.home> In-Reply-To: From: Kyle Evans Date: Tue, 28 Apr 2020 07:58:04 -0500 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r360125 - in head/usr.bin/diff: . tests To: Jan Beich Cc: Gary Jennejohn , svn-src-head , svn-src-all , src-committers 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: Tue, 28 Apr 2020 12:58:17 -0000 On Tue, Apr 28, 2020 at 7:55 AM Jan Beich wrote: > > Gary Jennejohn writes: > > > On Tue, 28 Apr 2020 07:25:18 -0500 > > Kyle Evans wrote: > > > >> On Tue, Apr 28, 2020 at 6:52 AM Jan Beich wrote: > >> > > >> > Kyle Evans writes: > >> > > >> > > Author: kevans > >> > > Date: Mon Apr 20 16:14:44 2020 > >> > > New Revision: 360125 > >> > > URL: https://svnweb.freebsd.org/changeset/base/360125 > >> > > > >> > > Log: > >> > > diff(1): reject conflicting formatting options > >> > > > >> > > This matches GNU diff(1) behavior and, more importantly, eliminates any > >> > > source of confusion if multiple formatting options are specified. > >> > > > >> > > Note that the committed diff differs slightly from the submitted: I've > >> > > modified it so that we initialize diff_format to something that isn't an > >> > > accepted format option so that we can also reject --normal -c and -c > >> > > --normal, which would've otherwise been accepted because the default was > >> > > --normal. After option parsing we default it to D_NORMAL if it's still > >> > > unset. > >> > > > >> > > PR: 243975 > >> > > Submitted by: fehmi noyan isi > >> > > MFC after: 1 week > >> > > >> > Appears to break ability to specify number of context lines e.g., > >> > > >> > $ diff -U999 /usr/include/sha256.h /usr/include/sha512.h > >> > error: conflicting output format options. > >> > usage: diff [-aBbdilpTtw] [-c | -e | -f | -n | -q | -u] [--ignore-case] > >> > [...] > >> > >> Hmm, bizarre. =-\ This example works on my machine, and I don't see > >> off-hand what would be preventing it for you: > >> > >> root@viper:/usr/src/usr.bin/diff# diff -U999 /usr/include/sha256.h > >> /usr/include/sha512.h > >> --- /usr/include/sha256.h 2020-04-22 21:38:54.000000000 -0500 > >> +++ /usr/include/sha512.h 2020-04-22 21:38:54.000000000 -0500 > >> @@ -1,99 +1,99 @@ > >> /*- > >> * Copyright 2005 Colin Percival > >> * All rights reserved. > >> * > >> [... omitted ...] > >> > >> root@viper:/usr/src/usr.bin/diff# strings /usr/bin/diff | grep 'conflicting' > >> error: conflicting output format options. > >> > > > > My /usr/bin/diff was built and installed on April 26, after this > > commit, and I don't see the error either. > > Thanks for confirming. Looks like my "diff" was aliased to "diff -up". > Indeed, -u and -U are no longer compatible unlike GNU diff. Whoops, *facepalm*, you certainly shouldn't be restricted from specifying the same output style multiple times. Will fix ASAP. Thanks, Kyle Evans From owner-svn-src-all@freebsd.org Tue Apr 28 13:16: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 D43D32B9116; Tue, 28 Apr 2020 13:16:15 +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 49BMbg589Xz3D3w; Tue, 28 Apr 2020 13:16:15 +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 8CF2E24AFF; Tue, 28 Apr 2020 13:16:15 +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 03SDGFmd006046; Tue, 28 Apr 2020 13:16:15 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03SDGF22006045; Tue, 28 Apr 2020 13:16:15 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202004281316.03SDGF22006045@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Tue, 28 Apr 2020 13:16: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: r360433 - stable/12/sys/vm X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12/sys/vm X-SVN-Commit-Revision: 360433 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, 28 Apr 2020 13:16:15 -0000 Author: markj Date: Tue Apr 28 13:16:15 2020 New Revision: 360433 URL: https://svnweb.freebsd.org/changeset/base/360433 Log: MFC r360153: Minimize conditional compilation for handling of M_EXEC. Modified: stable/12/sys/vm/vm_kern.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/vm/vm_kern.c ============================================================================== --- stable/12/sys/vm/vm_kern.c Tue Apr 28 08:28:13 2020 (r360432) +++ stable/12/sys/vm/vm_kern.c Tue Apr 28 13:16:15 2020 (r360433) @@ -400,14 +400,10 @@ kmem_malloc_domain(int domain, vm_size_t size, int fla vm_offset_t addr; int rv; -#if VM_NRESERVLEVEL > 0 if (__predict_true((flags & M_EXEC) == 0)) arena = vm_dom[domain].vmd_kernel_arena; else arena = vm_dom[domain].vmd_kernel_rwx_arena; -#else - arena = vm_dom[domain].vmd_kernel_arena; -#endif size = round_page(size); if (vmem_alloc(arena, size, flags | M_BESTFIT, &addr)) return (0); @@ -499,10 +495,8 @@ retry: m->valid = VM_PAGE_BITS_ALL; pmap_enter(kernel_pmap, addr + i, m, prot, prot | PMAP_ENTER_WIRED, 0); -#if VM_NRESERVLEVEL > 0 if (__predict_false((prot & VM_PROT_EXECUTE) != 0)) m->oflags |= VPO_KMEM_EXEC; -#endif } VM_OBJECT_WUNLOCK(object); @@ -576,14 +570,10 @@ _kmem_unback(vm_object_t object, vm_offset_t addr, vm_ VM_OBJECT_WLOCK(object); m = vm_page_lookup(object, atop(offset)); domain = vm_phys_domain(m); -#if VM_NRESERVLEVEL > 0 if (__predict_true((m->oflags & VPO_KMEM_EXEC) == 0)) arena = vm_dom[domain].vmd_kernel_arena; else arena = vm_dom[domain].vmd_kernel_rwx_arena; -#else - arena = vm_dom[domain].vmd_kernel_arena; -#endif for (; offset < end; offset += PAGE_SIZE, m = next) { next = vm_page_next(m); vm_page_unwire_noq(m); @@ -799,6 +789,9 @@ kmem_init(vm_offset_t start, vm_offset_t end) vmem_set_import(vm_dom[domain].vmd_kernel_rwx_arena, kva_import_domain, (vmem_release_t *)vmem_xfree, kernel_arena, KVA_QUANTUM); +#else + vm_dom[domain].vmd_kernel_rwx_arena = + vm_dom[domain].vmd_kernel_arena; #endif } } From owner-svn-src-all@freebsd.org Tue Apr 28 13: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 F381B2B9180; Tue, 28 Apr 2020 13:16: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 49BMc35LxJz3D9p; Tue, 28 Apr 2020 13:16: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 B314024B04; Tue, 28 Apr 2020 13:16: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 03SDGZA6006109; Tue, 28 Apr 2020 13:16:35 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03SDGZxm006108; Tue, 28 Apr 2020 13:16:35 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202004281316.03SDGZxm006108@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Tue, 28 Apr 2020 13:16: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: r360434 - stable/12/sys/vm X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12/sys/vm X-SVN-Commit-Revision: 360434 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, 28 Apr 2020 13:16:36 -0000 Author: markj Date: Tue Apr 28 13:16:35 2020 New Revision: 360434 URL: https://svnweb.freebsd.org/changeset/base/360434 Log: MFC r360154: Factor out the kmem contig page alloc and reclamation code. Modified: stable/12/sys/vm/vm_kern.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/vm/vm_kern.c ============================================================================== --- stable/12/sys/vm/vm_kern.c Tue Apr 28 13:16:15 2020 (r360433) +++ stable/12/sys/vm/vm_kern.c Tue Apr 28 13:16:35 2020 (r360434) @@ -167,6 +167,35 @@ kva_free(vm_offset_t addr, vm_size_t size) vmem_free(kernel_arena, addr, size); } +static vm_page_t +kmem_alloc_contig_pages(vm_object_t object, vm_pindex_t pindex, int domain, + int pflags, u_long npages, vm_paddr_t low, vm_paddr_t high, + u_long alignment, vm_paddr_t boundary, vm_memattr_t memattr) +{ + vm_page_t m; + int tries; + bool wait; + + VM_OBJECT_ASSERT_WLOCKED(object); + + wait = (pflags & VM_ALLOC_WAITOK) != 0; + pflags &= ~(VM_ALLOC_NOWAIT | VM_ALLOC_WAITOK | VM_ALLOC_WAITFAIL); + pflags |= VM_ALLOC_NOWAIT; + for (tries = wait ? 3 : 1;; tries--) { + m = vm_page_alloc_contig_domain(object, pindex, domain, pflags, + npages, low, high, alignment, boundary, memattr); + if (m != NULL || tries == 0) + break; + + VM_OBJECT_WUNLOCK(object); + if (!vm_page_reclaim_contig_domain(domain, pflags, npages, + low, high, alignment, boundary) && wait) + vm_wait_domain(domain); + VM_OBJECT_WLOCK(object); + } + return (m); +} + /* * Allocates a region from the kernel address map and physical pages * within the specified address range to the kernel object. Creates a @@ -180,38 +209,26 @@ kmem_alloc_attr_domain(int domain, vm_size_t size, int vm_paddr_t high, vm_memattr_t memattr) { vmem_t *vmem; - vm_object_t object = kernel_object; + vm_object_t object; vm_offset_t addr, i, offset; vm_page_t m; - int pflags, tries; + int pflags; vm_prot_t prot; + object = kernel_object; size = round_page(size); vmem = vm_dom[domain].vmd_kernel_arena; if (vmem_alloc(vmem, size, M_BESTFIT | flags, &addr)) return (0); offset = addr - VM_MIN_KERNEL_ADDRESS; pflags = malloc2vm_flags(flags) | VM_ALLOC_NOBUSY | VM_ALLOC_WIRED; - pflags &= ~(VM_ALLOC_NOWAIT | VM_ALLOC_WAITOK | VM_ALLOC_WAITFAIL); - pflags |= VM_ALLOC_NOWAIT; prot = (flags & M_EXEC) != 0 ? VM_PROT_ALL : VM_PROT_RW; VM_OBJECT_WLOCK(object); for (i = 0; i < size; i += PAGE_SIZE) { - tries = 0; -retry: - m = vm_page_alloc_contig_domain(object, atop(offset + i), + m = kmem_alloc_contig_pages(object, atop(offset + i), domain, pflags, 1, low, high, PAGE_SIZE, 0, memattr); if (m == NULL) { VM_OBJECT_WUNLOCK(object); - if (tries < ((flags & M_NOWAIT) != 0 ? 1 : 3)) { - if (!vm_page_reclaim_contig_domain(domain, - pflags, 1, low, high, PAGE_SIZE, 0) && - (flags & M_WAITOK) != 0) - vm_wait_domain(domain); - VM_OBJECT_WLOCK(object); - tries++; - goto retry; - } kmem_unback(object, addr, i); vmem_free(vmem, addr, size); return (0); @@ -271,37 +288,25 @@ kmem_alloc_contig_domain(int domain, vm_size_t size, i vm_memattr_t memattr) { vmem_t *vmem; - vm_object_t object = kernel_object; + vm_object_t object; vm_offset_t addr, offset, tmp; vm_page_t end_m, m; u_long npages; - int pflags, tries; - + int pflags; + + object = kernel_object; size = round_page(size); vmem = vm_dom[domain].vmd_kernel_arena; if (vmem_alloc(vmem, size, flags | M_BESTFIT, &addr)) return (0); offset = addr - VM_MIN_KERNEL_ADDRESS; pflags = malloc2vm_flags(flags) | VM_ALLOC_NOBUSY | VM_ALLOC_WIRED; - pflags &= ~(VM_ALLOC_NOWAIT | VM_ALLOC_WAITOK | VM_ALLOC_WAITFAIL); - pflags |= VM_ALLOC_NOWAIT; npages = atop(size); VM_OBJECT_WLOCK(object); - tries = 0; -retry: - m = vm_page_alloc_contig_domain(object, atop(offset), domain, pflags, - npages, low, high, alignment, boundary, memattr); + m = kmem_alloc_contig_pages(object, atop(offset), domain, + pflags, npages, low, high, alignment, boundary, memattr); if (m == NULL) { VM_OBJECT_WUNLOCK(object); - if (tries < ((flags & M_NOWAIT) != 0 ? 1 : 3)) { - if (!vm_page_reclaim_contig_domain(domain, pflags, - npages, low, high, alignment, boundary) && - (flags & M_WAITOK) != 0) - vm_wait_domain(domain); - VM_OBJECT_WLOCK(object); - tries++; - goto retry; - } vmem_free(vmem, addr, size); return (0); } From owner-svn-src-all@freebsd.org Tue Apr 28 13:28: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 5E35F2B961F; Tue, 28 Apr 2020 13:28:59 +0000 (UTC) (envelope-from takawata@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 49BMtM1r1Mz3DqL; Tue, 28 Apr 2020 13:28:59 +0000 (UTC) (envelope-from takawata@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 35C6F24CFA; Tue, 28 Apr 2020 13:28:59 +0000 (UTC) (envelope-from takawata@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03SDSx6D012770; Tue, 28 Apr 2020 13:28:59 GMT (envelope-from takawata@FreeBSD.org) Received: (from takawata@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03SDSx8A012769; Tue, 28 Apr 2020 13:28:59 GMT (envelope-from takawata@FreeBSD.org) Message-Id: <202004281328.03SDSx8A012769@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: takawata set sender to takawata@FreeBSD.org using -f From: Takanori Watanabe Date: Tue, 28 Apr 2020 13:28:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360435 - head/usr.sbin/bluetooth/hccontrol X-SVN-Group: head X-SVN-Commit-Author: takawata X-SVN-Commit-Paths: head/usr.sbin/bluetooth/hccontrol X-SVN-Commit-Revision: 360435 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, 28 Apr 2020 13:28:59 -0000 Author: takawata Date: Tue Apr 28 13:28:58 2020 New Revision: 360435 URL: https://svnweb.freebsd.org/changeset/base/360435 Log: Improve error handling Check return values from hci_request() Check rp.status Print error messages with hci_status2str() PR: 245769 Submitted by: Marc Veldman Modified: head/usr.sbin/bluetooth/hccontrol/le.c Modified: head/usr.sbin/bluetooth/hccontrol/le.c ============================================================================== --- head/usr.sbin/bluetooth/hccontrol/le.c Tue Apr 28 13:16:35 2020 (r360434) +++ head/usr.sbin/bluetooth/hccontrol/le.c Tue Apr 28 13:28:58 2020 (r360435) @@ -69,20 +69,20 @@ le_set_scan_param(int s, int argc, char *argv[]) int window; int adrtype; int policy; - int e, n; + int n; ng_hci_le_set_scan_parameters_cp cp; ng_hci_le_set_scan_parameters_rp rp; if (argc != 5) - return USAGE; + return (USAGE); if (strcmp(argv[0], "active") == 0) type = 1; else if (strcmp(argv[0], "passive") == 0) type = 0; else - return USAGE; + return (USAGE); interval = (int)(atof(argv[1])/0.625); interval = (interval < 4)? 4: interval; @@ -94,14 +94,14 @@ le_set_scan_param(int s, int argc, char *argv[]) else if (strcmp(argv[3], "random") == 0) adrtype = 1; else - return USAGE; + return (USAGE); if (strcmp(argv[4], "all") == 0) policy = 0; else if (strcmp(argv[4], "whitelist") == 0) policy = 1; else - return USAGE; + return (USAGE); cp.le_scan_type = type; cp.le_scan_interval = interval; @@ -109,11 +109,19 @@ le_set_scan_param(int s, int argc, char *argv[]) cp.le_scan_window = window; cp.scanning_filter_policy = policy; n = sizeof(rp); - e = hci_request(s, NG_HCI_OPCODE(NG_HCI_OGF_LE, + + if (hci_request(s, NG_HCI_OPCODE(NG_HCI_OGF_LE, NG_HCI_OCF_LE_SET_SCAN_PARAMETERS), - (void *)&cp, sizeof(cp), (void *)&rp, &n); + (void *)&cp, sizeof(cp), (void *)&rp, &n) == ERROR) + return (ERROR); - return 0; + if (rp.status != 0x00) { + fprintf(stdout, "Status: %s [%#02x]\n", + hci_status2str(rp.status), rp.status); + return (FAILED); + } + + return (OK); } static int @@ -121,27 +129,35 @@ le_set_scan_enable(int s, int argc, char *argv[]) { ng_hci_le_set_scan_enable_cp cp; ng_hci_le_set_scan_enable_rp rp; - int e, n, enable = 0; + int n, enable = 0; if (argc != 1) - return USAGE; + return (USAGE); if (strcmp(argv[0], "enable") == 0) enable = 1; else if (strcmp(argv[0], "disable") != 0) - return USAGE; + return (USAGE); n = sizeof(rp); cp.le_scan_enable = enable; cp.filter_duplicates = 0; - e = hci_request(s, NG_HCI_OPCODE(NG_HCI_OGF_LE, + if (hci_request(s, NG_HCI_OPCODE(NG_HCI_OGF_LE, NG_HCI_OCF_LE_SET_SCAN_ENABLE), - (void *)&cp, sizeof(cp), (void *)&rp, &n); + (void *)&cp, sizeof(cp), + (void *)&rp, &n) == ERROR) + return (ERROR); - if (e != 0 || rp.status != 0) - return ERROR; + if (rp.status != 0x00) { + fprintf(stdout, "Status: %s [%#02x]\n", + hci_status2str(rp.status), rp.status); + return (FAILED); + } - return OK; + fprintf(stdout, "LE Scan: %s\n", + enable? "Enabled" : "Disabled"); + + return (OK); } static int @@ -197,7 +213,7 @@ parse_param(int argc, char *argv[], char *buf, int *le done: *len = curbuf - buf; - return OK; + return (OK); } static int @@ -206,7 +222,6 @@ le_set_scan_response(int s, int argc, char *argv[]) ng_hci_le_set_scan_response_data_cp cp; ng_hci_le_set_scan_response_data_rp rp; int n; - int e; int len; char buf[NG_HCI_ADVERTISING_DATA_SIZE]; @@ -216,13 +231,19 @@ le_set_scan_response(int s, int argc, char *argv[]) cp.scan_response_data_length = len; memcpy(cp.scan_response_data, buf, len); n = sizeof(rp); - e = hci_request(s, NG_HCI_OPCODE(NG_HCI_OGF_LE, + if (hci_request(s, NG_HCI_OPCODE(NG_HCI_OGF_LE, NG_HCI_OCF_LE_SET_SCAN_RESPONSE_DATA), - (void *)&cp, sizeof(cp), (void *)&rp, &n); + (void *)&cp, sizeof(cp), + (void *)&rp, &n) == ERROR) + return (ERROR); - printf("SET SCAN RESPONSE %d %d %d\n", e, rp.status, n); + if (rp.status != 0x00) { + fprintf(stdout, "Status: %s [%#02x]\n", + hci_status2str(rp.status), rp.status); + return (FAILED); + } - return OK; + return (OK); } static int @@ -259,7 +280,7 @@ le_read_local_supported_features(int s, int argc ,char buffer, sizeof(buffer))); fprintf(stdout, "\n"); - return OK; + return (OK); } static int @@ -290,7 +311,7 @@ set_le_event_mask(int s, uint64_t mask) { ng_hci_le_set_event_mask_cp semc; ng_hci_le_set_event_mask_rp rp; - int i, n ,e; + int i, n; n = sizeof(rp); @@ -298,11 +319,18 @@ set_le_event_mask(int s, uint64_t mask) semc.event_mask[i] = mask&0xff; mask >>= 8; } - e = hci_request(s, NG_HCI_OPCODE(NG_HCI_OGF_LE, + if(hci_request(s, NG_HCI_OPCODE(NG_HCI_OGF_LE, NG_HCI_OCF_LE_SET_EVENT_MASK), - (void *)&semc, sizeof(semc), (void *)&rp, &n); + (void *)&semc, sizeof(semc), (void *)&rp, &n) == ERROR) + return (ERROR); + + if (rp.status != 0x00) { + fprintf(stdout, "Status: %s [%#02x]\n", + hci_status2str(rp.status), rp.status); + return (FAILED); + } - return 0; + return (OK); } static int @@ -310,7 +338,7 @@ set_event_mask(int s, uint64_t mask) { ng_hci_set_event_mask_cp semc; ng_hci_set_event_mask_rp rp; - int i, n, e; + int i, n; n = sizeof(rp); @@ -318,29 +346,48 @@ set_event_mask(int s, uint64_t mask) semc.event_mask[i] = mask&0xff; mask >>= 8; } - e = hci_request(s, NG_HCI_OPCODE(NG_HCI_OGF_HC_BASEBAND, + if (hci_request(s, NG_HCI_OPCODE(NG_HCI_OGF_HC_BASEBAND, NG_HCI_OCF_SET_EVENT_MASK), - (void *)&semc, sizeof(semc), (void *)&rp, &n); + (void *)&semc, sizeof(semc), (void *)&rp, &n) == ERROR) + return (ERROR); + + if (rp.status != 0x00) { + fprintf(stdout, "Status: %s [%#02x]\n", + hci_status2str(rp.status), rp.status); + return (FAILED); + } - return 0; + return (OK); } static int le_enable(int s, int argc, char *argv[]) { + int result; + if (argc != 1) - return USAGE; + return (USAGE); if (strcasecmp(argv[0], "enable") == 0) { - set_event_mask(s, NG_HCI_EVENT_MASK_DEFAULT | + result = set_event_mask(s, NG_HCI_EVENT_MASK_DEFAULT | NG_HCI_EVENT_MASK_LE); - set_le_event_mask(s, NG_HCI_LE_EVENT_MASK_ALL); - } else if (strcasecmp(argv[0], "disable") == 0) - set_event_mask(s, NG_HCI_EVENT_MASK_DEFAULT); - else - return USAGE; - - return OK; + if (result != OK) + return result; + result = set_le_event_mask(s, NG_HCI_LE_EVENT_MASK_ALL); + if (result == OK) { + fprintf(stdout, "LE enabled\n"); + return (OK); + } else + return result; + } else if (strcasecmp(argv[0], "disable") == 0) { + result = set_event_mask(s, NG_HCI_EVENT_MASK_DEFAULT); + if (result == OK) { + fprintf(stdout, "LE disabled\n"); + return (OK); + } else + return result; + } else + return (USAGE); } static int From owner-svn-src-all@freebsd.org Tue Apr 28 13:51: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 237082BA011; Tue, 28 Apr 2020 13:51:42 +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 49BNNZ03DPz3GDj; Tue, 28 Apr 2020 13:51:42 +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 F13282528F; Tue, 28 Apr 2020 13:51:41 +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 03SDpfWl028430; Tue, 28 Apr 2020 13:51:41 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03SDpfv7028428; Tue, 28 Apr 2020 13:51:41 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202004281351.03SDpfv7028428@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Tue, 28 Apr 2020 13:51:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360436 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 360436 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, 28 Apr 2020 13:51:42 -0000 Author: markj Date: Tue Apr 28 13:51:41 2020 New Revision: 360436 URL: https://svnweb.freebsd.org/changeset/base/360436 Log: Re-check for wirings after busying the page in vm_page_release_locked(). A concurrent unlocked lookup can wire the page after vm_page_release_locked() releases the last wiring, in which case vm_page_release_locked() must not free the page. Once the xbusy lock is acquired, that, the object lock and the fact that the page is unmapped ensure that the wire count cannot increase, so re-check for new wirings after the page is xbusied. Update the comment above vm_page_wired() to reflect the new synchronization rules. Reported by: glebius Reviewed by: alc, jeff, kib Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D24592 Modified: head/sys/vm/vm_page.c head/sys/vm/vm_page.h Modified: head/sys/vm/vm_page.c ============================================================================== --- head/sys/vm/vm_page.c Tue Apr 28 13:28:58 2020 (r360435) +++ head/sys/vm/vm_page.c Tue Apr 28 13:51:41 2020 (r360436) @@ -4165,7 +4165,16 @@ vm_page_release_locked(vm_page_t m, int flags) if ((flags & VPR_TRYFREE) != 0 && (m->object->ref_count == 0 || !pmap_page_is_mapped(m)) && m->dirty == 0 && vm_page_tryxbusy(m)) { - vm_page_free(m); + /* + * An unlocked lookup may have wired the page before the + * busy lock was acquired, in which case the page must + * not be freed. + */ + if (__predict_true(!vm_page_wired(m))) { + vm_page_free(m); + return; + } + vm_page_xunbusy(m); } else { vm_page_release_toq(m, PQ_INACTIVE, flags != 0); } Modified: head/sys/vm/vm_page.h ============================================================================== --- head/sys/vm/vm_page.h Tue Apr 28 13:28:58 2020 (r360435) +++ head/sys/vm/vm_page.h Tue Apr 28 13:51:41 2020 (r360436) @@ -958,8 +958,8 @@ vm_page_drop(vm_page_t m, u_int val) * * Perform a racy check to determine whether a reference prevents the page * from being reclaimable. If the page's object is locked, and the page is - * unmapped and unbusied or exclusively busied by the current thread, no - * new wirings may be created. + * unmapped and exclusively busied by the current thread, no new wirings + * may be created. */ static inline bool vm_page_wired(vm_page_t m) From owner-svn-src-all@freebsd.org Tue Apr 28 14:33: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 7253F2BADC0; Tue, 28 Apr 2020 14:33:34 +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 49BPJt2K8Pz3JJ7; Tue, 28 Apr 2020 14:33:34 +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 4AD4625A7E; Tue, 28 Apr 2020 14:33:34 +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 03SEXYlA056469; Tue, 28 Apr 2020 14:33:34 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03SEXXj1056467; Tue, 28 Apr 2020 14:33:33 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004281433.03SEXXj1056467@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Tue, 28 Apr 2020 14:33:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360437 - in head/usr.bin/diff: . tests X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in head/usr.bin/diff: . tests X-SVN-Commit-Revision: 360437 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, 28 Apr 2020 14:33:34 -0000 Author: kevans Date: Tue Apr 28 14:33:33 2020 New Revision: 360437 URL: https://svnweb.freebsd.org/changeset/base/360437 Log: diff(1): don't reject specifying the same format multiple times This may happen, for instance, if one happens to have an alias of diff to diff -up and attempts to specify the amount of context on top of that. Aliases like this may cause other problems, but if they're really not ever generating non-unified diffs then we should at least not break that use-case. In addition, we'll now pick up a format mismatch if -p is specified with !contextual && !unified && !unset. Fix up a small trailing whitespace nit in the tests while we're here, and add tests to make sure that we can double up all the formatting options. Reported by: jbeich MFC after: 3 days Modified: head/usr.bin/diff/diff.c head/usr.bin/diff/tests/diff_test.sh Modified: head/usr.bin/diff/diff.c ============================================================================== --- head/usr.bin/diff/diff.c Tue Apr 28 13:51:41 2020 (r360436) +++ head/usr.bin/diff/diff.c Tue Apr 28 14:33:33 2020 (r360437) @@ -122,6 +122,8 @@ main(int argc, char **argv) newarg = 1; diff_context = 3; diff_format = D_UNSET; +#define FORMAT_MISMATCHED(type) \ + (diff_format != D_UNSET && diff_format != (type)) while ((ch = getopt_long(argc, argv, OPTIONS, longopts, NULL)) != -1) { switch (ch) { case '0': case '1': case '2': case '3': case '4': @@ -142,7 +144,7 @@ main(int argc, char **argv) break; case 'C': case 'c': - if (diff_format != D_UNSET) + if (FORMAT_MISMATCHED(D_CONTEXT)) conflicting_format(); cflag = 1; diff_format = D_CONTEXT; @@ -157,18 +159,18 @@ main(int argc, char **argv) dflags |= D_MINIMAL; break; case 'D': - if (diff_format != D_UNSET) + if (FORMAT_MISMATCHED(D_IFDEF)) conflicting_format(); diff_format = D_IFDEF; ifdefname = optarg; break; case 'e': - if (diff_format != D_UNSET) + if (FORMAT_MISMATCHED(D_EDIT)) conflicting_format(); diff_format = D_EDIT; break; case 'f': - if (diff_format != D_UNSET) + if (FORMAT_MISMATCHED(D_REVERSE)) conflicting_format(); diff_format = D_REVERSE; break; @@ -202,11 +204,20 @@ main(int argc, char **argv) Nflag = 1; break; case 'n': - if (diff_format != D_UNSET) + if (FORMAT_MISMATCHED(D_NREVERSE)) conflicting_format(); diff_format = D_NREVERSE; break; case 'p': + /* + * If it's not unset and it's not set to context or + * unified, we'll error out here as a conflicting + * format. If it's unset, we'll go ahead and set it to + * context. + */ + if (FORMAT_MISMATCHED(D_CONTEXT) && + FORMAT_MISMATCHED(D_UNIFIED)) + conflicting_format(); if (diff_format == D_UNSET) diff_format = D_CONTEXT; dflags |= D_PROTOTYPE; @@ -218,7 +229,7 @@ main(int argc, char **argv) rflag = 1; break; case 'q': - if (diff_format != D_UNSET) + if (FORMAT_MISMATCHED(D_BRIEF)) conflicting_format(); diff_format = D_BRIEF; break; @@ -236,7 +247,7 @@ main(int argc, char **argv) break; case 'U': case 'u': - if (diff_format != D_UNSET) + if (FORMAT_MISMATCHED(D_UNIFIED)) conflicting_format(); diff_format = D_UNIFIED; if (optarg != NULL) { @@ -264,12 +275,12 @@ main(int argc, char **argv) push_excludes(optarg); break; case 'y': - if (diff_format != D_UNSET) + if (FORMAT_MISMATCHED(D_SIDEBYSIDE)) conflicting_format(); diff_format = D_SIDEBYSIDE; break; case OPT_CHANGED_GROUP_FORMAT: - if (diff_format != D_UNSET) + if (FORMAT_MISMATCHED(D_GFORMAT)) conflicting_format(); diff_format = D_GFORMAT; group_format = optarg; @@ -283,7 +294,7 @@ main(int argc, char **argv) ignore_file_case = 0; break; case OPT_NORMAL: - if (diff_format != D_UNSET) + if (FORMAT_MISMATCHED(D_NORMAL)) conflicting_format(); diff_format = D_NORMAL; break; Modified: head/usr.bin/diff/tests/diff_test.sh ============================================================================== --- head/usr.bin/diff/tests/diff_test.sh Tue Apr 28 13:51:41 2020 (r360436) +++ head/usr.bin/diff/tests/diff_test.sh Tue Apr 28 14:33:33 2020 (r360437) @@ -186,6 +186,13 @@ conflicting_format_body() atf_check -s exit:2 -e ignore diff -q -c A B atf_check -s exit:2 -e ignore diff --normal -c A B atf_check -s exit:2 -e ignore diff -c --normal A B + + atf_check -s exit:1 -o ignore -e ignore diff -u -u A B + atf_check -s exit:1 -o ignore -e ignore diff -e -e A B + atf_check -s exit:1 -o ignore -e ignore diff -y -y A B + atf_check -s exit:1 -o ignore -e ignore diff -q -q A B + atf_check -s exit:1 -o ignore -e ignore diff -c -c A B + atf_check -s exit:1 -o ignore -e ignore diff --normal --normal A B } atf_init_test_cases() @@ -201,5 +208,5 @@ atf_init_test_cases() atf_add_test_case b230049 atf_add_test_case Bflag atf_add_test_case tabsize - atf_add_test_case conflicting_format + atf_add_test_case conflicting_format } From owner-svn-src-all@freebsd.org Tue Apr 28 14:34: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 074052BAE9F for ; Tue, 28 Apr 2020 14:34:55 +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 49BPLQ6F99z3JVV for ; Tue, 28 Apr 2020 14:34:54 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: from mail-qv1-f41.google.com (mail-qv1-f41.google.com [209.85.219.41]) (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 C6BFA20D9 for ; Tue, 28 Apr 2020 14:34:54 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: by mail-qv1-f41.google.com with SMTP id y19so10447930qvv.4 for ; Tue, 28 Apr 2020 07:34:54 -0700 (PDT) X-Gm-Message-State: AGi0PuZjHLzxOpRlnFwue/q3rU6IP5MnQ5JGcieqW1g4rw+92+cfLooV xiQNBxUEm9EzDlsLC6cmFX6vKur5Bk01TV7Ep+U= X-Received: by 2002:a05:6214:1853:: with SMTP id d19mt28359565qvy.150.1588084494312; Tue, 28 Apr 2020 07:34:54 -0700 (PDT) MIME-Version: 1.0 References: <202004201614.03KGEitC073880@repo.freebsd.org> <20200428144255.1b75d9b5@ernst.home> In-Reply-To: From: Kyle Evans Date: Tue, 28 Apr 2020 09:34:41 -0500 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r360125 - in head/usr.bin/diff: . tests Cc: Jan Beich , Gary Jennejohn , svn-src-head , svn-src-all , src-committers 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: Tue, 28 Apr 2020 14:34:55 -0000 On Tue, Apr 28, 2020 at 7:58 AM Kyle Evans wrote: > > On Tue, Apr 28, 2020 at 7:55 AM Jan Beich wrote: > > > > Gary Jennejohn writes: > > > > > On Tue, 28 Apr 2020 07:25:18 -0500 > > > Kyle Evans wrote: > > > > > >> On Tue, Apr 28, 2020 at 6:52 AM Jan Beich wrote: > > >> > > > >> > Kyle Evans writes: > > >> > > > >> > > Author: kevans > > >> > > Date: Mon Apr 20 16:14:44 2020 > > >> > > New Revision: 360125 > > >> > > URL: https://svnweb.freebsd.org/changeset/base/360125 > > >> > > > > >> > > Log: > > >> > > diff(1): reject conflicting formatting options > > >> > > > > >> > > This matches GNU diff(1) behavior and, more importantly, eliminates any > > >> > > source of confusion if multiple formatting options are specified. > > >> > > > > >> > > Note that the committed diff differs slightly from the submitted: I've > > >> > > modified it so that we initialize diff_format to something that isn't an > > >> > > accepted format option so that we can also reject --normal -c and -c > > >> > > --normal, which would've otherwise been accepted because the default was > > >> > > --normal. After option parsing we default it to D_NORMAL if it's still > > >> > > unset. > > >> > > > > >> > > PR: 243975 > > >> > > Submitted by: fehmi noyan isi > > >> > > MFC after: 1 week > > >> > > > >> > Appears to break ability to specify number of context lines e.g., > > >> > > > >> > $ diff -U999 /usr/include/sha256.h /usr/include/sha512.h > > >> > error: conflicting output format options. > > >> > usage: diff [-aBbdilpTtw] [-c | -e | -f | -n | -q | -u] [--ignore-case] > > >> > [...] > > >> > > >> Hmm, bizarre. =-\ This example works on my machine, and I don't see > > >> off-hand what would be preventing it for you: > > >> > > >> root@viper:/usr/src/usr.bin/diff# diff -U999 /usr/include/sha256.h > > >> /usr/include/sha512.h > > >> --- /usr/include/sha256.h 2020-04-22 21:38:54.000000000 -0500 > > >> +++ /usr/include/sha512.h 2020-04-22 21:38:54.000000000 -0500 > > >> @@ -1,99 +1,99 @@ > > >> /*- > > >> * Copyright 2005 Colin Percival > > >> * All rights reserved. > > >> * > > >> [... omitted ...] > > >> > > >> root@viper:/usr/src/usr.bin/diff# strings /usr/bin/diff | grep 'conflicting' > > >> error: conflicting output format options. > > >> > > > > > > My /usr/bin/diff was built and installed on April 26, after this > > > commit, and I don't see the error either. > > > > Thanks for confirming. Looks like my "diff" was aliased to "diff -up". > > Indeed, -u and -U are no longer compatible unlike GNU diff. > > Whoops, *facepalm*, you certainly shouldn't be restricted from > specifying the same output style multiple times. Will fix ASAP. > As of r360437, this is no longer an issue and the test case has been amended. Apologies for the hassle. =-) From owner-svn-src-all@freebsd.org Tue Apr 28 15:02: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 B6BBE2BBF74; Tue, 28 Apr 2020 15:02:44 +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 49BPyX4MkLz3LWb; Tue, 28 Apr 2020 15:02:44 +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 914CF2607B; Tue, 28 Apr 2020 15:02:44 +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 03SF2iXI075266; Tue, 28 Apr 2020 15:02:44 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03SF2iFP075265; Tue, 28 Apr 2020 15:02:44 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202004281502.03SF2iFP075265@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Tue, 28 Apr 2020 15:02:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360438 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 360438 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, 28 Apr 2020 15:02:44 -0000 Author: markj Date: Tue Apr 28 15:02:44 2020 New Revision: 360438 URL: https://svnweb.freebsd.org/changeset/base/360438 Log: Make sendfile(SF_SYNC)'s CV wait interruptible. Otherwise, since the CV is not signalled until data is drained from the socket, it is trivial to create an unkillable process using sendfile(SF_SYNC) and a process-private PF_LOCAL socket pair. In particular, the cv_wait() in sendfile() does not get interrupted until data is drained from the receiving socket buffer. Reported by: pho Discussed with: kib MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Modified: head/sys/kern/kern_sendfile.c Modified: head/sys/kern/kern_sendfile.c ============================================================================== --- head/sys/kern/kern_sendfile.c Tue Apr 28 14:33:33 2020 (r360437) +++ head/sys/kern/kern_sendfile.c Tue Apr 28 15:02:44 2020 (r360438) @@ -106,8 +106,36 @@ struct sendfile_sync { struct mtx mtx; struct cv cv; unsigned count; + bool waiting; }; +static void +sendfile_sync_destroy(struct sendfile_sync *sfs) +{ + KASSERT(sfs->count == 0, ("sendfile sync %p still busy", sfs)); + + cv_destroy(&sfs->cv); + mtx_destroy(&sfs->mtx); + free(sfs, M_SENDFILE); +} + +static void +sendfile_sync_signal(struct sendfile_sync *sfs) +{ + mtx_lock(&sfs->mtx); + KASSERT(sfs->count > 0, ("sendfile sync %p not busy", sfs)); + if (--sfs->count == 0) { + if (!sfs->waiting) { + /* The sendfile() waiter was interrupted by a signal. */ + sendfile_sync_destroy(sfs); + return; + } else { + cv_signal(&sfs->cv); + } + } + mtx_unlock(&sfs->mtx); +} + counter_u64_t sfstat[sizeof(struct sfstat) / sizeof(uint64_t)]; static void @@ -153,12 +181,7 @@ sendfile_free_mext(struct mbuf *m) if (m->m_ext.ext_flags & EXT_FLAG_SYNC) { struct sendfile_sync *sfs = m->m_ext.ext_arg2; - - mtx_lock(&sfs->mtx); - KASSERT(sfs->count > 0, ("Sendfile sync botchup count == 0")); - if (--sfs->count == 0) - cv_signal(&sfs->cv); - mtx_unlock(&sfs->mtx); + sendfile_sync_signal(sfs); } } @@ -186,12 +209,7 @@ sendfile_free_mext_pg(struct mbuf *m) if (m->m_ext.ext_flags & EXT_FLAG_SYNC) { struct sendfile_sync *sfs = m->m_ext.ext_arg1; - - mtx_lock(&sfs->mtx); - KASSERT(sfs->count > 0, ("Sendfile sync botchup count == 0")); - if (--sfs->count == 0) - cv_signal(&sfs->cv); - mtx_unlock(&sfs->mtx); + sendfile_sync_signal(sfs); } } @@ -719,6 +737,7 @@ vn_sendfile(struct file *fp, int sockfd, struct uio *h sfs = malloc(sizeof(*sfs), M_SENDFILE, M_WAITOK | M_ZERO); mtx_init(&sfs->mtx, "sendfile", NULL, MTX_DEF); cv_init(&sfs->cv, "sendfile"); + sfs->waiting = true; } rem = nbytes ? omin(nbytes, obj_size - offset) : obj_size - offset; @@ -1221,11 +1240,13 @@ out: if (sfs != NULL) { mtx_lock(&sfs->mtx); if (sfs->count != 0) - cv_wait(&sfs->cv, &sfs->mtx); - KASSERT(sfs->count == 0, ("sendfile sync still busy")); - cv_destroy(&sfs->cv); - mtx_destroy(&sfs->mtx); - free(sfs, M_SENDFILE); + error = cv_wait_sig(&sfs->cv, &sfs->mtx); + if (sfs->count == 0) { + sendfile_sync_destroy(sfs); + } else { + sfs->waiting = false; + mtx_unlock(&sfs->mtx); + } } #ifdef KERN_TLS if (tls != NULL) From owner-svn-src-all@freebsd.org Tue Apr 28 15: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 D44B62BD1F8; Tue, 28 Apr 2020 15:44:40 +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 49BQtw5HcRz3NyQ; Tue, 28 Apr 2020 15:44:40 +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 AC71B2683C; Tue, 28 Apr 2020 15:44:40 +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 03SFiep0000356; Tue, 28 Apr 2020 15:44:40 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03SFiduq000352; Tue, 28 Apr 2020 15:44:39 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202004281544.03SFiduq000352@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Tue, 28 Apr 2020 15:44:39 +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: r360439 - in stable/12: lib/libc/sys sys/kern sys/sys tests/sys/kern X-SVN-Group: stable-12 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in stable/12: lib/libc/sys sys/kern sys/sys tests/sys/kern X-SVN-Commit-Revision: 360439 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, 28 Apr 2020 15:44:40 -0000 Author: jhb Date: Tue Apr 28 15:44:39 2020 New Revision: 360439 URL: https://svnweb.freebsd.org/changeset/base/360439 Log: MFC 350017: Add ptrace op PT_GET_SC_RET. This ptrace operation returns a structure containing the error and return values from the current system call. It is only valid when a thread is stopped during a system call exit (PL_FLAG_SCX is set). The sr_error member holds the error value from the system call. Note that this error value is the native FreeBSD error value that has _not_ been translated to an ABI-specific error value similar to the values logged to ktrace. If sr_error is zero, then the return values of the system call will be set in sr_retval[0] and sr_retval[1]. Modified: stable/12/lib/libc/sys/ptrace.2 stable/12/sys/kern/sys_process.c stable/12/sys/sys/ptrace.h stable/12/tests/sys/kern/ptrace_test.c Directory Properties: stable/12/ (props changed) Modified: stable/12/lib/libc/sys/ptrace.2 ============================================================================== --- stable/12/lib/libc/sys/ptrace.2 Tue Apr 28 15:02:44 2020 (r360438) +++ stable/12/lib/libc/sys/ptrace.2 Tue Apr 28 15:44:39 2020 (r360439) @@ -2,7 +2,7 @@ .\" $NetBSD: ptrace.2,v 1.2 1995/02/27 12:35:37 cgd Exp $ .\" .\" This file is in the public domain. -.Dd June 2, 2018 +.Dd July 15, 2019 .Dt PTRACE 2 .Os .Sh NAME @@ -664,6 +664,52 @@ member of the but not more than the .Fa data bytes in total are copied. +.It Dv PT_GET_SC_RET +Fetch the system call return values on exit from a syscall. +This request is only valid for threads stopped in a syscall +exit (the +.Dv PL_FLAG_SCX +state). +The +.Fa addr +argument specifies a pointer to a +.Vt "struct ptrace_sc_ret" , +which is defined as follows: +.Bd -literal +struct ptrace_sc_ret { + register_t sr_retval[2]; + int sr_error; +}; +.Ed +.Pp +The +.Fa data +argument is set to the size of the structure. +.Pp +If the system call completed successfully, +.Va sr_error +is set to zero and the return values of the system call are saved in +.Va sr_retval . +If the system call failed to execute, +.Va sr_error +field is set to a positive +.Xr errno 2 +value. +If the system call completed in an unusual fashion, +.Va sr_error +is set to a negative value: +.Pp +.Bl -tag -width Dv EJUSTRETURN -compact +.It Dv ERESTART +System call will be restarted. +.It Dv EJUSTRETURN +System call completed sucessfully but did not set a return value +.Po for example, +.Xr setcontext 2 +and +.Xr sigreturn 2 +.Pc . +.El .It Dv PT_FOLLOW_FORK This request controls tracing for new child processes of a traced process. If Modified: stable/12/sys/kern/sys_process.c ============================================================================== --- stable/12/sys/kern/sys_process.c Tue Apr 28 15:02:44 2020 (r360438) +++ stable/12/sys/kern/sys_process.c Tue Apr 28 15:44:39 2020 (r360439) @@ -76,6 +76,11 @@ struct ptrace_io_desc32 { uint32_t piod_len; }; +struct ptrace_sc_ret32 { + uint32_t sr_retval[2]; + int sr_error; +}; + struct ptrace_vm_entry32 { int pve_entry; int pve_timestamp; @@ -517,6 +522,17 @@ ptrace_lwpinfo_to32(const struct ptrace_lwpinfo *pl, pl32->pl_syscall_code = pl->pl_syscall_code; pl32->pl_syscall_narg = pl->pl_syscall_narg; } + +static void +ptrace_sc_ret_to32(const struct ptrace_sc_ret *psr, + struct ptrace_sc_ret32 *psr32) +{ + + bzero(psr32, sizeof(*psr32)); + psr32->sr_retval[0] = psr->sr_retval[0]; + psr32->sr_retval[1] = psr->sr_retval[1]; + psr32->sr_error = psr->sr_error; +} #endif /* COMPAT_FREEBSD32 */ /* @@ -579,6 +595,7 @@ sys_ptrace(struct thread *td, struct ptrace_args *uap) struct ptrace_vm_entry32 pve32; #endif char args[sizeof(td->td_sa.args)]; + struct ptrace_sc_ret psr; int ptevents; } r; void *addr; @@ -597,6 +614,7 @@ sys_ptrace(struct thread *td, struct ptrace_args *uap) case PT_GET_EVENT_MASK: case PT_LWPINFO: case PT_GET_SC_ARGS: + case PT_GET_SC_RET: break; case PT_GETREGS: BZERO(&r.reg, sizeof r.reg); @@ -667,6 +685,10 @@ sys_ptrace(struct thread *td, struct ptrace_args *uap) error = copyout(r.args, uap->addr, MIN(uap->data, sizeof(r.args))); break; + case PT_GET_SC_RET: + error = copyout(&r.psr, uap->addr, MIN(uap->data, + sizeof(r.psr))); + break; } return (error); @@ -718,6 +740,7 @@ kern_ptrace(struct thread *td, int req, pid_t pid, voi struct thread *td2 = NULL, *td3; struct ptrace_io_desc *piod = NULL; struct ptrace_lwpinfo *pl; + struct ptrace_sc_ret *psr; int error, num, tmp; int proctree_locked = 0; lwpid_t tid = 0, *buf; @@ -725,7 +748,11 @@ kern_ptrace(struct thread *td, int req, pid_t pid, voi int wrap32 = 0, safe = 0; struct ptrace_io_desc32 *piod32 = NULL; struct ptrace_lwpinfo32 *pl32 = NULL; - struct ptrace_lwpinfo plr; + struct ptrace_sc_ret32 *psr32 = NULL; + union { + struct ptrace_lwpinfo pl; + struct ptrace_sc_ret psr; + } r; #endif curp = td->td_proc; @@ -1047,6 +1074,38 @@ kern_ptrace(struct thread *td, int req, pid_t pid, voi sizeof(register_t)); break; + case PT_GET_SC_RET: + if ((td2->td_dbgflags & (TDB_SCX)) == 0 +#ifdef COMPAT_FREEBSD32 + || (wrap32 && !safe) +#endif + ) { + error = EINVAL; + break; + } +#ifdef COMPAT_FREEBSD32 + if (wrap32) { + psr = &r.psr; + psr32 = addr; + } else +#endif + psr = addr; + bzero(psr, sizeof(*psr)); + psr->sr_error = td2->td_errno; + if (psr->sr_error == 0) { + psr->sr_retval[0] = td2->td_retval[0]; + psr->sr_retval[1] = td2->td_retval[1]; + } +#ifdef COMPAT_FREEBSD32 + if (wrap32) + ptrace_sc_ret_to32(psr, psr32); +#endif + CTR4(KTR_PTRACE, + "PT_GET_SC_RET: pid %d error %d retval %#lx,%#lx", + p->p_pid, psr->sr_error, psr->sr_retval[0], + psr->sr_retval[1]); + break; + case PT_STEP: case PT_CONTINUE: case PT_TO_SCE: @@ -1332,7 +1391,7 @@ kern_ptrace(struct thread *td, int req, pid_t pid, voi } #ifdef COMPAT_FREEBSD32 if (wrap32) { - pl = &plr; + pl = &r.pl; pl32 = addr; } else #endif Modified: stable/12/sys/sys/ptrace.h ============================================================================== --- stable/12/sys/sys/ptrace.h Tue Apr 28 15:02:44 2020 (r360438) +++ stable/12/sys/sys/ptrace.h Tue Apr 28 15:44:39 2020 (r360439) @@ -72,6 +72,7 @@ #define PT_SET_EVENT_MASK 26 /* set mask of optional events */ #define PT_GET_SC_ARGS 27 /* fetch syscall args */ +#define PT_GET_SC_RET 28 /* fetch syscall results */ #define PT_GETREGS 33 /* get general-purpose registers */ #define PT_SETREGS 34 /* set general-purpose registers */ @@ -154,6 +155,12 @@ struct ptrace_lwpinfo32 { u_int pl_syscall_narg; }; #endif + +/* Argument structure for PT_GET_SC_RET. */ +struct ptrace_sc_ret { + register_t sr_retval[2]; /* Only valid if sr_error == 0. */ + int sr_error; +}; /* Argument structure for PT_VM_ENTRY. */ struct ptrace_vm_entry { Modified: stable/12/tests/sys/kern/ptrace_test.c ============================================================================== --- stable/12/tests/sys/kern/ptrace_test.c Tue Apr 28 15:02:44 2020 (r360438) +++ stable/12/tests/sys/kern/ptrace_test.c Tue Apr 28 15:44:39 2020 (r360439) @@ -3927,12 +3927,13 @@ ATF_TC_BODY(ptrace__PT_LWPINFO_stale_siginfo, tc) } /* - * A simple test of PT_GET_SC_ARGS. + * A simple test of PT_GET_SC_ARGS and PT_GET_SC_RET. */ ATF_TC_WITHOUT_HEAD(ptrace__syscall_args); ATF_TC_BODY(ptrace__syscall_args, tc) { struct ptrace_lwpinfo pl; + struct ptrace_sc_ret psr; pid_t fpid, wpid; register_t args[2]; int events, status; @@ -3941,6 +3942,7 @@ ATF_TC_BODY(ptrace__syscall_args, tc) if (fpid == 0) { trace_me(); kill(getpid(), 0); + close(3); exit(1); } @@ -3952,9 +3954,9 @@ ATF_TC_BODY(ptrace__syscall_args, tc) /* * Continue the process ignoring the signal, but enabling - * syscall entry traps. + * syscall traps. */ - ATF_REQUIRE(ptrace(PT_TO_SCE, fpid, (caddr_t)1, 0) == 0); + ATF_REQUIRE(ptrace(PT_SYSCALL, fpid, (caddr_t)1, 0) == 0); /* * The next stop should be the syscall entry from getpid(). @@ -3971,6 +3973,25 @@ ATF_TC_BODY(ptrace__syscall_args, tc) ATF_REQUIRE(ptrace(PT_CONTINUE, fpid, (caddr_t)1, 0) == 0); /* + * The next stop should be the syscall exit from getpid(). + */ + wpid = waitpid(fpid, &status, 0); + ATF_REQUIRE(wpid == fpid); + ATF_REQUIRE(WIFSTOPPED(status)); + ATF_REQUIRE(WSTOPSIG(status) == SIGTRAP); + + ATF_REQUIRE(ptrace(PT_LWPINFO, wpid, (caddr_t)&pl, sizeof(pl)) != -1); + ATF_REQUIRE(pl.pl_flags & PL_FLAG_SCX); + ATF_REQUIRE(pl.pl_syscall_code == SYS_getpid); + + ATF_REQUIRE(ptrace(PT_GET_SC_RET, wpid, (caddr_t)&psr, + sizeof(psr)) != -1); + ATF_REQUIRE(psr.sr_error == 0); + ATF_REQUIRE(psr.sr_retval[0] == wpid); + + ATF_REQUIRE(ptrace(PT_CONTINUE, fpid, (caddr_t)1, 0) == 0); + + /* * The next stop should be the syscall entry from kill(). */ wpid = waitpid(fpid, &status, 0); @@ -3987,6 +4008,61 @@ ATF_TC_BODY(ptrace__syscall_args, tc) sizeof(args)) != -1); ATF_REQUIRE(args[0] == wpid); ATF_REQUIRE(args[1] == 0); + + ATF_REQUIRE(ptrace(PT_CONTINUE, fpid, (caddr_t)1, 0) == 0); + + /* + * The next stop should be the syscall exit from kill(). + */ + wpid = waitpid(fpid, &status, 0); + ATF_REQUIRE(wpid == fpid); + ATF_REQUIRE(WIFSTOPPED(status)); + ATF_REQUIRE(WSTOPSIG(status) == SIGTRAP); + + ATF_REQUIRE(ptrace(PT_LWPINFO, wpid, (caddr_t)&pl, sizeof(pl)) != -1); + ATF_REQUIRE(pl.pl_flags & PL_FLAG_SCX); + ATF_REQUIRE(pl.pl_syscall_code == SYS_kill); + + ATF_REQUIRE(ptrace(PT_GET_SC_RET, wpid, (caddr_t)&psr, + sizeof(psr)) != -1); + ATF_REQUIRE(psr.sr_error == 0); + + ATF_REQUIRE(ptrace(PT_CONTINUE, fpid, (caddr_t)1, 0) == 0); + + /* + * The next stop should be the syscall entry from close(). + */ + wpid = waitpid(fpid, &status, 0); + ATF_REQUIRE(wpid == fpid); + ATF_REQUIRE(WIFSTOPPED(status)); + ATF_REQUIRE(WSTOPSIG(status) == SIGTRAP); + + ATF_REQUIRE(ptrace(PT_LWPINFO, wpid, (caddr_t)&pl, sizeof(pl)) != -1); + ATF_REQUIRE(pl.pl_flags & PL_FLAG_SCE); + ATF_REQUIRE(pl.pl_syscall_code == SYS_close); + ATF_REQUIRE(pl.pl_syscall_narg == 1); + + ATF_REQUIRE(ptrace(PT_GET_SC_ARGS, wpid, (caddr_t)args, + sizeof(args)) != -1); + ATF_REQUIRE(args[0] == 3); + + ATF_REQUIRE(ptrace(PT_CONTINUE, fpid, (caddr_t)1, 0) == 0); + + /* + * The next stop should be the syscall exit from close(). + */ + wpid = waitpid(fpid, &status, 0); + ATF_REQUIRE(wpid == fpid); + ATF_REQUIRE(WIFSTOPPED(status)); + ATF_REQUIRE(WSTOPSIG(status) == SIGTRAP); + + ATF_REQUIRE(ptrace(PT_LWPINFO, wpid, (caddr_t)&pl, sizeof(pl)) != -1); + ATF_REQUIRE(pl.pl_flags & PL_FLAG_SCX); + ATF_REQUIRE(pl.pl_syscall_code == SYS_close); + + ATF_REQUIRE(ptrace(PT_GET_SC_RET, wpid, (caddr_t)&psr, + sizeof(psr)) != -1); + ATF_REQUIRE(psr.sr_error == EBADF); /* Disable syscall tracing and continue the child to let it exit. */ ATF_REQUIRE(ptrace(PT_GET_EVENT_MASK, fpid, (caddr_t)&events, From owner-svn-src-all@freebsd.org Tue Apr 28 16:00: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 801AB2BDCFA; Tue, 28 Apr 2020 16:00:35 +0000 (UTC) (envelope-from takawata@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 49BRFH2xhcz3QG8; Tue, 28 Apr 2020 16:00:35 +0000 (UTC) (envelope-from takawata@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 602D526A4C; Tue, 28 Apr 2020 16:00:35 +0000 (UTC) (envelope-from takawata@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03SG0ZJm007226; Tue, 28 Apr 2020 16:00:35 GMT (envelope-from takawata@FreeBSD.org) Received: (from takawata@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03SG0YJQ007221; Tue, 28 Apr 2020 16:00:34 GMT (envelope-from takawata@FreeBSD.org) Message-Id: <202004281600.03SG0YJQ007221@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: takawata set sender to takawata@FreeBSD.org using -f From: Takanori Watanabe Date: Tue, 28 Apr 2020 16:00:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360440 - in head: sys/netgraph/bluetooth/include usr.sbin/bluetooth/hccontrol X-SVN-Group: head X-SVN-Commit-Author: takawata X-SVN-Commit-Paths: in head: sys/netgraph/bluetooth/include usr.sbin/bluetooth/hccontrol X-SVN-Commit-Revision: 360440 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, 28 Apr 2020 16:00:35 -0000 Author: takawata Date: Tue Apr 28 16:00:34 2020 New Revision: 360440 URL: https://svnweb.freebsd.org/changeset/base/360440 Log: Add le_read_buffer_size command and manpage. It supports both v1 and v2 command. PR:245964 Submitted by: Marc Veldman Modified: head/sys/netgraph/bluetooth/include/ng_hci.h head/usr.sbin/bluetooth/hccontrol/hccontrol.8 head/usr.sbin/bluetooth/hccontrol/le.c Modified: head/sys/netgraph/bluetooth/include/ng_hci.h ============================================================================== --- head/sys/netgraph/bluetooth/include/ng_hci.h Tue Apr 28 15:44:39 2020 (r360439) +++ head/sys/netgraph/bluetooth/include/ng_hci.h Tue Apr 28 16:00:34 2020 (r360440) @@ -1672,6 +1672,15 @@ typedef struct { u_int16_t connection_handle; }__attribute__ ((packed)) ng_hci_le_long_term_key_request_negative_reply_rp; +#define NG_HCI_OCF_LE_READ_BUFFER_SIZE_V2 0x0060 +/*No command parameter */ +typedef struct { + u_int8_t status; + u_int16_t hc_le_data_packet_length; + u_int8_t hc_total_num_le_data_packets; + u_int16_t hc_iso_data_packet_length; + u_int8_t hc_total_num_iso_data_packets; +} __attribute__ ((packed)) ng_hci_le_read_buffer_size_rp_v2; #define NG_HCI_OCF_LE_READ_SUPPORTED_STATES 0x001c /*No command parameter*/ Modified: head/usr.sbin/bluetooth/hccontrol/hccontrol.8 ============================================================================== --- head/usr.sbin/bluetooth/hccontrol/hccontrol.8 Tue Apr 28 15:44:39 2020 (r360439) +++ head/usr.sbin/bluetooth/hccontrol/hccontrol.8 Tue Apr 28 16:00:34 2020 (r360440) @@ -25,7 +25,7 @@ .\" $Id: hccontrol.8,v 1.6 2003/08/06 21:26:38 max Exp $ .\" $FreeBSD$ .\" -.Dd April 24, 2020 +.Dd April 27, 2020 .Dt HCCONTROL 8 .Os .Sh NAME @@ -154,6 +154,7 @@ are: .It Cm LE_Set_Scan_Parameters .It Cm LE_Set_Scan_Enable .It Cm LE_Read_Supported_States +.It Cm LE_Read_Buffer_Size .El .Pp The currently supported node commands in Modified: head/usr.sbin/bluetooth/hccontrol/le.c ============================================================================== --- head/usr.sbin/bluetooth/hccontrol/le.c Tue Apr 28 15:44:39 2020 (r360439) +++ head/usr.sbin/bluetooth/hccontrol/le.c Tue Apr 28 16:00:34 2020 (r360440) @@ -554,7 +554,65 @@ le_set_advertising_data(int s, int argc, char *argv[]) return (OK); } +static int +le_read_buffer_size(int s, int argc, char *argv[]) +{ + union { + ng_hci_le_read_buffer_size_rp v1; + ng_hci_le_read_buffer_size_rp_v2 v2; + } rp; + int n, ch; + uint8_t v; + uint16_t cmd; + + optreset = 1; + optind = 0; + + /* Default to version 1*/ + v = 1; + cmd = NG_HCI_OCF_LE_READ_BUFFER_SIZE; + + while ((ch = getopt(argc, argv , "v:")) != -1) { + switch(ch) { + case 'v': + v = (uint8_t)strtol(optarg, NULL, 16); + if (v == 2) + cmd = NG_HCI_OCF_LE_READ_BUFFER_SIZE_V2; + else if (v > 2) + return (USAGE); + break; + default: + v = 1; + } + } + + n = sizeof(rp); + if (hci_simple_request(s, NG_HCI_OPCODE(NG_HCI_OGF_LE, cmd), + (void *)&rp, &n) == ERROR) + return (ERROR); + + if (rp.v1.status != 0x00) { + fprintf(stdout, "Status: %s [%#02x]\n", + hci_status2str(rp.v1.status), rp.v1.status); + return (FAILED); + } + + fprintf(stdout, "ACL data packet length: %d\n", + rp.v1.hc_le_data_packet_length); + fprintf(stdout, "Number of ACL data packets: %d\n", + rp.v1.hc_total_num_le_data_packets); + + if (v == 2) { + fprintf(stdout, "ISO data packet length: %d\n", + rp.v2.hc_iso_data_packet_length); + fprintf(stdout, "Number of ISO data packets: %d\n", + rp.v2.hc_total_num_iso_data_packets); + } + + return (OK); +} + struct hci_command le_commands[] = { { "le_enable", @@ -620,5 +678,11 @@ struct hci_command le_commands[] = { "le_set_advertising_data -n $name -f $flag -u $uuid16,$uuid16 \n" "set LE device advertising packed data", &le_set_advertising_data + }, + { + "le_read_buffer_size", + "le_read_buffer_size [-v 1|2]\n" + "Read the maximum size of ACL and ISO data packets", + &le_read_buffer_size }, }; From owner-svn-src-all@freebsd.org Tue Apr 28 16:07: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 7ED7D2BE048; Tue, 28 Apr 2020 16:07:16 +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 49BRP02q3Vz3R1B; Tue, 28 Apr 2020 16:07:16 +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 4244A26C66; Tue, 28 Apr 2020 16:07:16 +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 03SG7Gp9012940; Tue, 28 Apr 2020 16:07:16 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03SG7GZY012939; Tue, 28 Apr 2020 16:07:16 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <202004281607.03SG7GZY012939@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Tue, 28 Apr 2020 16:07:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360441 - head/usr.sbin/syslogd X-SVN-Group: head X-SVN-Commit-Author: bdrewery X-SVN-Commit-Paths: head/usr.sbin/syslogd X-SVN-Commit-Revision: 360441 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, 28 Apr 2020 16:07:16 -0000 Author: bdrewery Date: Tue Apr 28 16:07:15 2020 New Revision: 360441 URL: https://svnweb.freebsd.org/changeset/base/360441 Log: Restore local kernel "prog" filtering lost in r332099. This behavior is most relevant for ipfw(4) as documented in syslog.conf(5). The recent addition of property-based regex filters in r359327 is a fine workaround for this but the behavior was present since 1997 and documented. This only fixes local matching of the "kernel program". It does not change the forwarded format at all. On the remote side it will still be "kernel: ipfw:" and not be parsed as a kernel message. This matches old behavior. MFC after: 2 weeks Reviewed by: markj Relnotes: yes Differential Revision: https://reviews.freebsd.org/D24286 Modified: head/usr.sbin/syslogd/syslogd.c Modified: head/usr.sbin/syslogd/syslogd.c ============================================================================== --- head/usr.sbin/syslogd/syslogd.c Tue Apr 28 16:00:34 2020 (r360440) +++ head/usr.sbin/syslogd/syslogd.c Tue Apr 28 16:07:15 2020 (r360441) @@ -137,6 +137,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -206,6 +207,7 @@ static STAILQ_HEAD(, socklist) shead = STAILQ_HEAD_INI #define IGN_CONS 0x001 /* don't print on console */ #define SYNC_FILE 0x002 /* do fsync on file after printing */ #define MARK 0x008 /* this message is a mark */ +#define ISKERNEL 0x010 /* kernel generated message */ /* Timestamps of log entries. */ struct logtime { @@ -1151,19 +1153,19 @@ parsemsg_rfc5424(const char *from, int pri, char *msg) } /* - * Trims the application name ("TAG" in RFC 3164 terminology) and - * process ID from a message if present. + * Returns the length of the application name ("TAG" in RFC 3164 + * terminology) and process ID from a message if present. */ static void -parsemsg_rfc3164_app_name_procid(char **msg, const char **app_name, - const char **procid) { - char *m, *app_name_begin, *procid_begin; +parsemsg_rfc3164_get_app_name_procid(const char *msg, size_t *app_name_length_p, + ptrdiff_t *procid_begin_offset_p, size_t *procid_length_p) +{ + const char *m, *procid_begin; size_t app_name_length, procid_length; - m = *msg; + m = msg; /* Application name. */ - app_name_begin = m; app_name_length = strspn(m, "abcdefghijklmnopqrstuvwxyz" "ABCDEFGHIJKLMNOPQRSTUVWXYZ" @@ -1191,12 +1193,52 @@ parsemsg_rfc3164_app_name_procid(char **msg, const cha if (m[0] != ':' || m[1] != ' ') goto bad; + *app_name_length_p = app_name_length; + if (procid_begin_offset_p != NULL) + *procid_begin_offset_p = + procid_begin == NULL ? 0 : procid_begin - msg; + if (procid_length_p != NULL) + *procid_length_p = procid_length; + return; +bad: + *app_name_length_p = 0; + if (procid_begin_offset_p != NULL) + *procid_begin_offset_p = 0; + if (procid_length_p != NULL) + *procid_length_p = 0; +} + +/* + * Trims the application name ("TAG" in RFC 3164 terminology) and + * process ID from a message if present. + */ +static void +parsemsg_rfc3164_app_name_procid(char **msg, const char **app_name, + const char **procid) +{ + char *m, *app_name_begin, *procid_begin; + size_t app_name_length, procid_length; + ptrdiff_t procid_begin_offset; + + m = *msg; + app_name_begin = m; + + parsemsg_rfc3164_get_app_name_procid(app_name_begin, &app_name_length, + &procid_begin_offset, &procid_length); + if (app_name_length == 0) + goto bad; + procid_begin = procid_begin_offset == 0 ? NULL : + app_name_begin + procid_begin_offset; + /* Split strings from input. */ app_name_begin[app_name_length] = '\0'; - if (procid_begin != 0) + m += app_name_length + 1; + if (procid_begin != NULL) { procid_begin[procid_length] = '\0'; + m += procid_length + 2; + } - *msg = m + 2; + *msg = m + 1; *app_name = app_name_begin; *procid = procid_begin; return; @@ -1401,7 +1443,7 @@ printsys(char *msg) long n; int flags, isprintf, pri; - flags = SYNC_FILE; /* fsync after write */ + flags = ISKERNEL | SYNC_FILE; /* fsync after write */ p = msg; pri = DEFSPRI; isprintf = 1; @@ -1551,7 +1593,7 @@ logmsg(int pri, const struct logtime *timestamp, const struct filed *f; size_t savedlen; int fac, prilev; - char saved[MAXSVLINE]; + char saved[MAXSVLINE], kernel_app_name[100]; dprintf("logmsg: pri %o, flags %x, from %s, msg %s\n", pri, flags, hostname, msg); @@ -1576,6 +1618,23 @@ logmsg(int pri, const struct logtime *timestamp, const prilev = LOG_PRI(pri); + /* + * Lookup kernel app name from log prefix if present. + * This is only used for local program specification matching. + */ + if (flags & ISKERNEL) { + size_t kernel_app_name_length; + + parsemsg_rfc3164_get_app_name_procid(msg, + &kernel_app_name_length, NULL, NULL); + if (kernel_app_name_length != 0) { + strlcpy(kernel_app_name, msg, + MIN(sizeof(kernel_app_name), + kernel_app_name_length + 1)); + } else + kernel_app_name[0] = '\0'; + } + /* log the message to the particular outputs */ if (!Initialized) { f = &consfile; @@ -1622,7 +1681,10 @@ logmsg(int pri, const struct logtime *timestamp, const continue; /* skip messages with the incorrect program name */ - if (skip_message(app_name == NULL ? "" : app_name, + if (flags & ISKERNEL && kernel_app_name[0] != '\0') { + if (skip_message(kernel_app_name, f->f_program, 1)) + continue; + } else if (skip_message(app_name == NULL ? "" : app_name, f->f_program, 1)) continue; From owner-svn-src-all@freebsd.org Tue Apr 28 16:09: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 DC8612BE14C; Tue, 28 Apr 2020 16:09:19 +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 49BRRM5ZfTz3RFc; Tue, 28 Apr 2020 16:09:19 +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 A1F8326C6B; Tue, 28 Apr 2020 16:09:19 +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 03SG9JiU013183; Tue, 28 Apr 2020 16:09:19 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03SG9Isv013179; Tue, 28 Apr 2020 16:09:18 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <202004281609.03SG9Isv013179@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Tue, 28 Apr 2020 16:09:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360442 - in head/sys/modules: cxgb/cxgb cxgbe/iw_cxgbe rdma/krping sfxge X-SVN-Group: head X-SVN-Commit-Author: bdrewery X-SVN-Commit-Paths: in head/sys/modules: cxgb/cxgb cxgbe/iw_cxgbe rdma/krping sfxge X-SVN-Commit-Revision: 360442 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, 28 Apr 2020 16:09:19 -0000 Author: bdrewery Date: Tue Apr 28 16:09:18 2020 New Revision: 360442 URL: https://svnweb.freebsd.org/changeset/base/360442 Log: None of these use opt_sched.h Modified: head/sys/modules/cxgb/cxgb/Makefile head/sys/modules/cxgbe/iw_cxgbe/Makefile head/sys/modules/rdma/krping/Makefile head/sys/modules/sfxge/Makefile Modified: head/sys/modules/cxgb/cxgb/Makefile ============================================================================== --- head/sys/modules/cxgb/cxgb/Makefile Tue Apr 28 16:07:15 2020 (r360441) +++ head/sys/modules/cxgb/cxgb/Makefile Tue Apr 28 16:09:18 2020 (r360442) @@ -8,7 +8,7 @@ SRCS= cxgb_mc5.c cxgb_vsc8211.c cxgb_ael1002.c cxgb_mv SRCS+= cxgb_xgmac.c cxgb_vsc7323.c cxgb_t3_hw.c cxgb_main.c cxgb_aq100x.c SRCS+= cxgb_sge.c cxgb_tn1010.c SRCS+= device_if.h bus_if.h pci_if.h -SRCS+= opt_inet.h opt_inet6.h opt_sched.h +SRCS+= opt_inet.h opt_inet6.h SRCS+= uipc_mvec.c CFLAGS+= -g -DDEFAULT_JUMBO -I${CXGB} Modified: head/sys/modules/cxgbe/iw_cxgbe/Makefile ============================================================================== --- head/sys/modules/cxgbe/iw_cxgbe/Makefile Tue Apr 28 16:07:15 2020 (r360441) +++ head/sys/modules/cxgbe/iw_cxgbe/Makefile Tue Apr 28 16:09:18 2020 (r360442) @@ -14,7 +14,7 @@ SRCS+= provider.c SRCS+= qp.c SRCS+= resource.c SRCS+= ${LINUXKPI_GENSRCS} -SRCS+= opt_inet.h opt_inet6.h opt_ktr.h opt_ofed.h opt_sched.h +SRCS+= opt_inet.h opt_inet6.h opt_ktr.h opt_ofed.h CFLAGS+= -I${CXGBE} -I${SRCTOP}/sys/ofed/include -DLINUX_TYPES_DEFINED CFLAGS+= -I${SRCTOP}/sys/ofed/include/uapi Modified: head/sys/modules/rdma/krping/Makefile ============================================================================== --- head/sys/modules/rdma/krping/Makefile Tue Apr 28 16:07:15 2020 (r360441) +++ head/sys/modules/rdma/krping/Makefile Tue Apr 28 16:09:18 2020 (r360442) @@ -4,7 +4,7 @@ KMOD= krping SRCS= krping.c krping_dev.c getopt.c SRCS+= ${LINUXKPI_GENSRCS} -SRCS+= opt_sched.h opt_inet.h opt_inet6.h +SRCS+= opt_inet.h opt_inet6.h CFLAGS+= -I${SRCTOP}/sys/ofed/include CFLAGS+= -I${SRCTOP}/sys/ofed/include/uapi CFLAGS+= -I${SRCTOP}/sys/compat/linuxkpi/common/include Modified: head/sys/modules/sfxge/Makefile ============================================================================== --- head/sys/modules/sfxge/Makefile Tue Apr 28 16:07:15 2020 (r360441) +++ head/sys/modules/sfxge/Makefile Tue Apr 28 16:09:18 2020 (r360442) @@ -5,7 +5,7 @@ KMOD= sfxge SFXGE= ${SRCTOP}/sys/dev/sfxge SRCS= device_if.h bus_if.h pci_if.h -SRCS+= opt_inet.h opt_inet6.h opt_sched.h opt_rss.h +SRCS+= opt_inet.h opt_inet6.h opt_rss.h .PATH: ${SRCTOP}/sys/dev/sfxge SRCS+= sfxge.c sfxge_dma.c sfxge_ev.c From owner-svn-src-all@freebsd.org Tue Apr 28 16:09: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 F00632BE16E; Tue, 28 Apr 2020 16:09:22 +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 49BRRQ6BdJz3RGT; Tue, 28 Apr 2020 16:09:22 +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 CFE9C26C6C; Tue, 28 Apr 2020 16:09:22 +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 03SG9MMZ013231; Tue, 28 Apr 2020 16:09:22 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03SG9MgM013228; Tue, 28 Apr 2020 16:09:22 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <202004281609.03SG9MgM013228@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Tue, 28 Apr 2020 16:09:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360443 - head/usr.sbin/config X-SVN-Group: head X-SVN-Commit-Author: bdrewery X-SVN-Commit-Paths: head/usr.sbin/config X-SVN-Commit-Revision: 360443 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, 28 Apr 2020 16:09:23 -0000 Author: bdrewery Date: Tue Apr 28 16:09:22 2020 New Revision: 360443 URL: https://svnweb.freebsd.org/changeset/base/360443 Log: config: Add no-ctfconvert support. Bump CONFIGVERS to 600018 for this support. Some files may purposely have debug info disabled or are *source files* that attempt to run ctfconvert on them. Currently ctfconvert ignores these errors but I have a change to make the errors real so we can catch real problems like exceeding type limits. Sponsored by: Dell EMC Reviewed by: imp, cem, kevans Differential Revision: https://reviews.freebsd.org/D24535 Modified: head/usr.sbin/config/config.h head/usr.sbin/config/configvers.h head/usr.sbin/config/mkmakefile.c Modified: head/usr.sbin/config/config.h ============================================================================== --- head/usr.sbin/config/config.h Tue Apr 28 16:09:18 2020 (r360442) +++ head/usr.sbin/config/config.h Tue Apr 28 16:09:22 2020 (r360443) @@ -82,6 +82,7 @@ struct files_name { #define NO_OBJ 2 #define BEFORE_DEPEND 4 #define NOWERROR 16 +#define NO_CTFCONVERT 32 struct device { int d_done; /* processed */ Modified: head/usr.sbin/config/configvers.h ============================================================================== --- head/usr.sbin/config/configvers.h Tue Apr 28 16:09:18 2020 (r360442) +++ head/usr.sbin/config/configvers.h Tue Apr 28 16:09:22 2020 (r360443) @@ -49,7 +49,7 @@ * * $FreeBSD$ */ -#define CONFIGVERS 600017 +#define CONFIGVERS 600018 #define MAJOR_VERS(x) ((x) / 100000) /* Last config(8) version to require envmode/hintmode */ Modified: head/usr.sbin/config/mkmakefile.c ============================================================================== --- head/usr.sbin/config/mkmakefile.c Tue Apr 28 16:09:18 2020 (r360442) +++ head/usr.sbin/config/mkmakefile.c Tue Apr 28 16:09:22 2020 (r360443) @@ -397,7 +397,7 @@ read_file(char *fname) char *wd, *this, *compilewith, *depends, *clean, *warning; const char *objprefix; int compile, match, nreqs, std, filetype, not, - imp_rule, no_obj, before_depend, nowerror; + imp_rule, no_ctfconvert, no_obj, before_depend, nowerror; fp = fopen(fname, "r"); if (fp == NULL) @@ -452,6 +452,7 @@ next: warning = 0; std = 0; imp_rule = 0; + no_ctfconvert = 0; no_obj = 0; before_depend = 0; nowerror = 0; @@ -479,6 +480,10 @@ next: nreqs = 0; continue; } + if (eq(wd, "no-ctfconvert")) { + no_ctfconvert++; + continue; + } if (eq(wd, "no-obj")) { no_obj++; continue; @@ -591,8 +596,10 @@ nextparam:; tp->f_srcprefix = "$S/"; if (imp_rule) tp->f_flags |= NO_IMPLCT_RULE; + if (no_ctfconvert) + tp->f_flags |= NO_CTFCONVERT; if (no_obj) - tp->f_flags |= NO_OBJ; + tp->f_flags |= NO_OBJ | NO_CTFCONVERT; if (before_depend) tp->f_flags |= BEFORE_DEPEND; if (nowerror) @@ -805,7 +812,7 @@ do_rules(FILE *f) else fprintf(f, "\t%s\n", compilewith); - if (!(ftp->f_flags & NO_OBJ)) + if (!(ftp->f_flags & NO_CTFCONVERT)) fprintf(f, "\t${NORMAL_CTFCONVERT}\n\n"); else fprintf(f, "\n"); From owner-svn-src-all@freebsd.org Tue Apr 28 16:09: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 BD1B02BE199; Tue, 28 Apr 2020 16:09:28 +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 49BRRW0dR0z3RK9; Tue, 28 Apr 2020 16:09:26 +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 E321C26C6D; Tue, 28 Apr 2020 16:09:25 +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 03SG9Pko013279; Tue, 28 Apr 2020 16:09:25 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03SG9PHU013278; Tue, 28 Apr 2020 16:09:25 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <202004281609.03SG9PHU013278@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Tue, 28 Apr 2020 16:09:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360444 - head/sys/conf X-SVN-Group: head X-SVN-Commit-Author: bdrewery X-SVN-Commit-Paths: head/sys/conf X-SVN-Commit-Revision: 360444 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, 28 Apr 2020 16:09:28 -0000 Author: bdrewery Date: Tue Apr 28 16:09:25 2020 New Revision: 360444 URL: https://svnweb.freebsd.org/changeset/base/360444 Log: Don't try ctfconvert on file without debug info. This was currently an ignored error but will change to a hard error eventually. Differential Revision: https://reviews.freebsd.org/D24536 Modified: head/sys/conf/Makefile.amd64 head/sys/conf/files.amd64 Modified: head/sys/conf/Makefile.amd64 ============================================================================== --- head/sys/conf/Makefile.amd64 Tue Apr 28 16:09:22 2020 (r360443) +++ head/sys/conf/Makefile.amd64 Tue Apr 28 16:09:25 2020 (r360444) @@ -18,7 +18,7 @@ # # Which version of config(8) is required. -%VERSREQ= 600012 +%VERSREQ= 600018 STD8X16FONT?= iso Modified: head/sys/conf/files.amd64 ============================================================================== --- head/sys/conf/files.amd64 Tue Apr 28 16:09:22 2020 (r360443) +++ head/sys/conf/files.amd64 Tue Apr 28 16:09:25 2020 (r360444) @@ -113,7 +113,8 @@ amd64/amd64/initcpu.c standard amd64/amd64/io.c optional io amd64/amd64/locore.S standard no-obj amd64/amd64/xen-locore.S optional xenhvm \ - compile-with "${NORMAL_S} -g0" + compile-with "${NORMAL_S} -g0" \ + no-ctfconvert amd64/amd64/machdep.c standard amd64/amd64/mem.c optional mem amd64/amd64/minidump_machdep.c standard From owner-svn-src-all@freebsd.org Tue Apr 28 16:09: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 095702BE1A2; Tue, 28 Apr 2020 16:09:30 +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 49BRRY0p4Vz3RLk; Tue, 28 Apr 2020 16:09:29 +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 EE94926C6E; Tue, 28 Apr 2020 16:09:28 +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 03SG9S7v013326; Tue, 28 Apr 2020 16:09:28 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03SG9S3n013323; Tue, 28 Apr 2020 16:09:28 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <202004281609.03SG9S3n013323@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Tue, 28 Apr 2020 16:09:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360445 - head/cddl/contrib/opensolaris/tools/ctf/cvt X-SVN-Group: head X-SVN-Commit-Author: bdrewery X-SVN-Commit-Paths: head/cddl/contrib/opensolaris/tools/ctf/cvt X-SVN-Commit-Revision: 360445 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, 28 Apr 2020 16:09:30 -0000 Author: bdrewery Date: Tue Apr 28 16:09:28 2020 New Revision: 360445 URL: https://svnweb.freebsd.org/changeset/base/360445 Log: ctfmerge: Assert that there is enough room for types. Sponsord by: Dell EMC Differential Revision: https://reviews.freebsd.org/D24537 Modified: head/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c head/cddl/contrib/opensolaris/tools/ctf/cvt/util.c Modified: head/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c ============================================================================== --- head/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c Tue Apr 28 16:09:25 2020 (r360444) +++ head/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c Tue Apr 28 16:09:28 2020 (r360445) @@ -452,6 +452,10 @@ map_td_tree_post(tdesc_t *ctdp, tdesc_t **ctdpp __unus if (ed.ed_tgt->t_type == FORWARD && ctdp->t_type != FORWARD) { int id = mcd->md_tgt->td_nextid++; +#ifdef __FreeBSD__ + if (CTF_TYPE_ISCHILD(id)) + terminate("No room for additional types\n"); +#endif debug(3, "Creating new defn type %d <%x>\n", id, id); add_mapping(mcd->md_ta, ctdp->t_id, id); alist_add(mcd->md_fdida, (void *)(ulong_t)ed.ed_tgt, @@ -473,6 +477,10 @@ map_td_tree_post(tdesc_t *ctdp, tdesc_t **ctdpp __unus } else { int id = mcd->md_tgt->td_nextid++; +#ifdef __FreeBSD__ + if (CTF_TYPE_ISCHILD(id)) + terminate("No room for additional types\n"); +#endif debug(3, "Creating new type %d <%x>\n", id, id); add_mapping(mcd->md_ta, ctdp->t_id, id); hash_add(mcd->md_tdtba, ctdp); Modified: head/cddl/contrib/opensolaris/tools/ctf/cvt/util.c ============================================================================== --- head/cddl/contrib/opensolaris/tools/ctf/cvt/util.c Tue Apr 28 16:09:25 2020 (r360444) +++ head/cddl/contrib/opensolaris/tools/ctf/cvt/util.c Tue Apr 28 16:09:28 2020 (r360445) @@ -148,17 +148,7 @@ terminate(const char *format, ...) if (getenv("CTF_ABORT_ON_TERMINATE") != NULL) abort(); -#if defined(__FreeBSD__) -/* - * For the time being just output the termination message, but don't - * return an exit status that would cause the build to fail. We need - * to get as much stuff built as possible before going back and - * figuring out what is wrong with certain files. - */ - exit(0); -#else exit(1); -#endif } /*PRINTFLIKE1*/ From owner-svn-src-all@freebsd.org Tue Apr 28 16:18: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 F3D2E2BEA08; Tue, 28 Apr 2020 16:18:51 +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 49BRfM68dqz3xmv; Tue, 28 Apr 2020 16:18:51 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from John-Baldwins-MacBook-Pro-164.local (unknown [IPv6:2601:648:8203:2990:d41f:e4dd:90e3:84fb]) (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 64A832D37; Tue, 28 Apr 2020 16:18:51 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Subject: Re: svn commit: r360408 - in head: share/man/man4 sys/dev/cxgbe/tom sys/kern sys/netinet sys/sys From: John Baldwin To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <202004272317.03RNHJ8G057366@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: <938fc390-316e-ae01-eae9-c17a0dd65fbe@FreeBSD.org> Date: Tue, 28 Apr 2020 09:18:49 -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: <202004272317.03RNHJ8G057366@repo.freebsd.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit 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, 28 Apr 2020 16:18:52 -0000 On 4/27/20 4:17 PM, John Baldwin wrote: > Author: jhb > Date: Mon Apr 27 23:17:19 2020 > New Revision: 360408 > URL: https://svnweb.freebsd.org/changeset/base/360408 > > Log: > Initial support for kernel offload of TLS receive. > > - Add a new TCP_RXTLS_ENABLE socket option to set the encryption and > authentication algorithms and keys as well as the initial sequence > number. > > - When reading from a socket using KTLS receive, applications must use > recvmsg(). Each successful call to recvmsg() will return a single > TLS record. A new TCP control message, TLS_GET_RECORD, will contain > the TLS record header of the decrypted record. The regular message > buffer passed to recvmsg() will receive the decrypted payload. This > is similar to the interface used by Linux's KTLS RX except that > Linux does not return the full TLS header in the control message. > > - Add plumbing to the TOE KTLS interface to request either transmit > or receive KTLS sessions. > > - When a socket is using receive KTLS, redirect reads from > soreceive_stream() into soreceive_generic(). > > - Note that this interface is currently only defined for TLS 1.1 and > 1.2, though I believe we will be able to reuse the same interface > and structures for 1.3. The OpenSSL changes required for RX support are not yet upstream, but I hope to open the pull request for those later today after retesting them against latest OpenSSL master. -- John Baldwin From owner-svn-src-all@freebsd.org Tue Apr 28 17:59: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 1E2532C0A19; Tue, 28 Apr 2020 17:59:40 +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 49BTth0Kvgz449W; Tue, 28 Apr 2020 17:59:40 +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 0663A28200; Tue, 28 Apr 2020 17:59:40 +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 03SHxeFA081196; Tue, 28 Apr 2020 17:59:40 GMT (envelope-from brooks@FreeBSD.org) Received: (from brooks@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03SHxbs6081183; Tue, 28 Apr 2020 17:59:37 GMT (envelope-from brooks@FreeBSD.org) Message-Id: <202004281759.03SHxbs6081183@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brooks set sender to brooks@FreeBSD.org using -f From: Brooks Davis Date: Tue, 28 Apr 2020 17:59: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: r360446 - in stable/12/sys: amd64/linux amd64/linux32 arm64/linux compat/freebsd32 compat/linux dev/ipmi dev/mpr dev/mps dev/mpt i386/linux kern sys X-SVN-Group: stable-12 X-SVN-Commit-Author: brooks X-SVN-Commit-Paths: in stable/12/sys: amd64/linux amd64/linux32 arm64/linux compat/freebsd32 compat/linux dev/ipmi dev/mpr dev/mps dev/mpt i386/linux kern sys X-SVN-Commit-Revision: 360446 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, 28 Apr 2020 17:59:40 -0000 Author: brooks Date: Tue Apr 28 17:59:37 2020 New Revision: 360446 URL: https://svnweb.freebsd.org/changeset/base/360446 Log: MFC r359937: Centralize compatability translation macros. Copy the CP, PTRIN, etc macros from freebsd32.h into a sys/abi_compat.h and replace existing definitation with includes where required. This eliminates duplicate code and allows Linux and FreeBSD compatability headers to be included in the same files. Obtained from: CheriBSD Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D24275 Added: stable/12/sys/sys/abi_compat.h - copied unchanged from r359937, head/sys/sys/abi_compat.h Modified: stable/12/sys/amd64/linux/linux.h stable/12/sys/amd64/linux32/linux.h stable/12/sys/arm64/linux/linux.h stable/12/sys/compat/freebsd32/freebsd32.h stable/12/sys/compat/linux/linux_ioctl.c stable/12/sys/compat/linux/linux_timer.h stable/12/sys/dev/ipmi/ipmi.c stable/12/sys/dev/mpr/mpr_user.c stable/12/sys/dev/mps/mps_user.c stable/12/sys/dev/mpt/mpt_user.c stable/12/sys/i386/linux/linux.h stable/12/sys/kern/sysv_sem.c stable/12/sys/kern/sysv_shm.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/amd64/linux/linux.h ============================================================================== --- stable/12/sys/amd64/linux/linux.h Tue Apr 28 16:09:28 2020 (r360445) +++ stable/12/sys/amd64/linux/linux.h Tue Apr 28 17:59:37 2020 (r360446) @@ -32,6 +32,8 @@ #ifndef _AMD64_LINUX_H_ #define _AMD64_LINUX_H_ +#include + #include #include @@ -47,14 +49,6 @@ extern u_char linux_debug_map[]; #define LMSG(fmt) "linux(%ld/%ld): "fmt"\n", \ (long)td->td_proc->p_pid, (long)td->td_tid #define LINUX_DTRACE linuxulator - -#define PTRIN(v) (void *)(v) -#define PTROUT(v) (uintptr_t)(v) - -#define CP(src,dst,fld) do { (dst).fld = (src).fld; } while (0) -#define CP2(src,dst,sfld,dfld) do { (dst).dfld = (src).sfld; } while (0) -#define PTRIN_CP(src,dst,fld) \ - do { (dst).fld = PTRIN((src).fld); } while (0) /* * Provide a separate set of types for the Linux types. Modified: stable/12/sys/amd64/linux32/linux.h ============================================================================== --- stable/12/sys/amd64/linux32/linux.h Tue Apr 28 16:09:28 2020 (r360445) +++ stable/12/sys/amd64/linux32/linux.h Tue Apr 28 17:59:37 2020 (r360446) @@ -35,6 +35,8 @@ #ifndef _AMD64_LINUX_H_ #define _AMD64_LINUX_H_ +#include + #include #include @@ -60,14 +62,6 @@ extern u_char linux_debug_map[]; #define LINUX32_MAXDSIZ (512 * 1024 * 1024) /* 512MB */ #define LINUX32_MAXSSIZ (64 * 1024 * 1024) /* 64MB */ #define LINUX32_MAXVMEM 0 /* Unlimited */ - -#define PTRIN(v) (void *)(uintptr_t)(v) -#define PTROUT(v) (l_uintptr_t)(uintptr_t)(v) - -#define CP(src,dst,fld) do { (dst).fld = (src).fld; } while (0) -#define CP2(src,dst,sfld,dfld) do { (dst).dfld = (src).sfld; } while (0) -#define PTRIN_CP(src,dst,fld) \ - do { (dst).fld = PTRIN((src).fld); } while (0) /* * Provide a separate set of types for the Linux types. Modified: stable/12/sys/arm64/linux/linux.h ============================================================================== --- stable/12/sys/arm64/linux/linux.h Tue Apr 28 16:09:28 2020 (r360445) +++ stable/12/sys/arm64/linux/linux.h Tue Apr 28 17:59:37 2020 (r360446) @@ -31,6 +31,8 @@ #ifndef _ARM64_LINUX_H_ #define _ARM64_LINUX_H_ +#include + #include #include @@ -43,14 +45,6 @@ extern u_char linux_debug_map[]; #define LMSG(fmt) "linux(%ld/%ld): "fmt"\n", \ (long)td->td_proc->p_pid, (long)td->td_tid #define LINUX_DTRACE linuxulator - -#define PTRIN(v) (void *)(v) -#define PTROUT(v) (uintptr_t)(v) - -#define CP(src,dst,fld) do { (dst).fld = (src).fld; } while (0) -#define CP2(src,dst,sfld,dfld) do { (dst).dfld = (src).sfld; } while (0) -#define PTRIN_CP(src,dst,fld) \ - do { (dst).fld = PTRIN((src).fld); } while (0) /* Provide a separate set of types for the Linux types */ typedef int32_t l_int; Modified: stable/12/sys/compat/freebsd32/freebsd32.h ============================================================================== --- stable/12/sys/compat/freebsd32/freebsd32.h Tue Apr 28 16:09:28 2020 (r360445) +++ stable/12/sys/compat/freebsd32/freebsd32.h Tue Apr 28 17:59:37 2020 (r360446) @@ -31,19 +31,11 @@ #ifndef _COMPAT_FREEBSD32_FREEBSD32_H_ #define _COMPAT_FREEBSD32_FREEBSD32_H_ +#include #include #include #include -#define PTRIN(v) (void *)(uintptr_t) (v) -#define PTROUT(v) (u_int32_t)(uintptr_t) (v) - -#define CP(src,dst,fld) do { (dst).fld = (src).fld; } while (0) -#define PTRIN_CP(src,dst,fld) \ - do { (dst).fld = PTRIN((src).fld); } while (0) -#define PTROUT_CP(src,dst,fld) \ - do { (dst).fld = PTROUT((src).fld); } while (0) - /* * i386 is the only arch with a 32-bit time_t */ @@ -57,37 +49,21 @@ struct timeval32 { time32_t tv_sec; int32_t tv_usec; }; -#define TV_CP(src,dst,fld) do { \ - CP((src).fld,(dst).fld,tv_sec); \ - CP((src).fld,(dst).fld,tv_usec); \ -} while (0) struct timespec32 { time32_t tv_sec; int32_t tv_nsec; }; -#define TS_CP(src,dst,fld) do { \ - CP((src).fld,(dst).fld,tv_sec); \ - CP((src).fld,(dst).fld,tv_nsec); \ -} while (0) struct itimerspec32 { struct timespec32 it_interval; struct timespec32 it_value; }; -#define ITS_CP(src, dst) do { \ - TS_CP((src), (dst), it_interval); \ - TS_CP((src), (dst), it_value); \ -} while (0) struct bintime32 { time32_t sec; uint32_t frac[2]; }; -#define BT_CP(src, dst, fld) do { \ - CP((src).fld, (dst).fld, sec); \ - *(uint64_t *)&(dst).fld.frac[0] = (src).fld.frac; \ -} while (0) struct rusage32 { struct timeval32 ru_utime; Modified: stable/12/sys/compat/linux/linux_ioctl.c ============================================================================== --- stable/12/sys/compat/linux/linux_ioctl.c Tue Apr 28 16:09:28 2020 (r360445) +++ stable/12/sys/compat/linux/linux_ioctl.c Tue Apr 28 17:59:37 2020 (r360446) @@ -34,6 +34,9 @@ __FBSDID("$FreeBSD$"); #include #include #include +#ifdef COMPAT_LINUX32 +#include +#endif #include #include #include @@ -2601,12 +2604,6 @@ linux_ioctl_drm(struct thread *td, struct linux_ioctl_ } #ifdef COMPAT_LINUX32 -#define CP(src,dst,fld) do { (dst).fld = (src).fld; } while (0) -#define PTRIN_CP(src,dst,fld) \ - do { (dst).fld = PTRIN((src).fld); } while (0) -#define PTROUT_CP(src,dst,fld) \ - do { (dst).fld = PTROUT((src).fld); } while (0) - static int linux_ioctl_sg_io(struct thread *td, struct linux_ioctl_args *args) { Modified: stable/12/sys/compat/linux/linux_timer.h ============================================================================== --- stable/12/sys/compat/linux/linux_timer.h Tue Apr 28 16:09:28 2020 (r360445) +++ stable/12/sys/compat/linux/linux_timer.h Tue Apr 28 17:59:37 2020 (r360446) @@ -33,6 +33,8 @@ #ifndef _LINUX_TIMER_H #define _LINUX_TIMER_H +#include + #ifndef __LINUX_ARCH_SIGEV_PREAMBLE_SIZE #define __LINUX_ARCH_SIGEV_PREAMBLE_SIZE \ (sizeof(l_int) * 2 + sizeof(l_sigval_t)) @@ -78,16 +80,6 @@ #define L_SIGEV_NONE 1 #define L_SIGEV_THREAD 2 #define L_SIGEV_THREAD_ID 4 - -#define TS_CP(src,dst,fld) do { \ - CP((src).fld,(dst).fld,tv_sec); \ - CP((src).fld,(dst).fld,tv_nsec); \ -} while (0) - -#define ITS_CP(src, dst) do { \ - TS_CP((src), (dst), it_interval); \ - TS_CP((src), (dst), it_value); \ -} while (0) struct l_sigevent { l_sigval_t sigev_value; Modified: stable/12/sys/dev/ipmi/ipmi.c ============================================================================== --- stable/12/sys/dev/ipmi/ipmi.c Tue Apr 28 16:09:28 2020 (r360445) +++ stable/12/sys/dev/ipmi/ipmi.c Tue Apr 28 17:59:37 2020 (r360446) @@ -52,6 +52,10 @@ __FBSDID("$FreeBSD$"); #include #endif +#ifdef IPMICTL_SEND_COMMAND_32 +#include +#endif + /* * Driver request structures are allocated on the stack via alloca() to * avoid calling malloc(), especially for the watchdog handler. @@ -310,11 +314,6 @@ ipmi_handle_attn(struct ipmi_softc *sc) return (error); } -#endif - -#ifdef IPMICTL_SEND_COMMAND_32 -#define PTRIN(p) ((void *)(uintptr_t)(p)) -#define PTROUT(p) ((uintptr_t)(p)) #endif static int Modified: stable/12/sys/dev/mpr/mpr_user.c ============================================================================== --- stable/12/sys/dev/mpr/mpr_user.c Tue Apr 28 16:09:28 2020 (r360445) +++ stable/12/sys/dev/mpr/mpr_user.c Tue Apr 28 17:59:37 2020 (r360446) @@ -74,6 +74,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -177,16 +178,6 @@ static int mpr_user_reg_access(struct mpr_softc *sc, m static int mpr_user_btdh(struct mpr_softc *sc, mpr_btdh_mapping_t *data); static MALLOC_DEFINE(M_MPRUSER, "mpr_user", "Buffers for mpr(4) ioctls"); - -/* Macros from compat/freebsd32/freebsd32.h */ -#define PTRIN(v) (void *)(uintptr_t)(v) -#define PTROUT(v) (uint32_t)(uintptr_t)(v) - -#define CP(src,dst,fld) do { (dst).fld = (src).fld; } while (0) -#define PTRIN_CP(src,dst,fld) \ - do { (dst).fld = PTRIN((src).fld); } while (0) -#define PTROUT_CP(src,dst,fld) \ - do { (dst).fld = PTROUT((src).fld); } while (0) /* * MPI functions that support IEEE SGLs for SAS3. Modified: stable/12/sys/dev/mps/mps_user.c ============================================================================== --- stable/12/sys/dev/mps/mps_user.c Tue Apr 28 16:09:28 2020 (r360445) +++ stable/12/sys/dev/mps/mps_user.c Tue Apr 28 17:59:37 2020 (r360446) @@ -75,6 +75,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -179,16 +180,6 @@ static int mps_user_reg_access(struct mps_softc *sc, m static int mps_user_btdh(struct mps_softc *sc, mps_btdh_mapping_t *data); MALLOC_DEFINE(M_MPSUSER, "mps_user", "Buffers for mps(4) ioctls"); - -/* Macros from compat/freebsd32/freebsd32.h */ -#define PTRIN(v) (void *)(uintptr_t)(v) -#define PTROUT(v) (uint32_t)(uintptr_t)(v) - -#define CP(src,dst,fld) do { (dst).fld = (src).fld; } while (0) -#define PTRIN_CP(src,dst,fld) \ - do { (dst).fld = PTRIN((src).fld); } while (0) -#define PTROUT_CP(src,dst,fld) \ - do { (dst).fld = PTROUT((src).fld); } while (0) int mps_attach_user(struct mps_softc *sc) Modified: stable/12/sys/dev/mpt/mpt_user.c ============================================================================== --- stable/12/sys/dev/mpt/mpt_user.c Tue Apr 28 16:09:28 2020 (r360445) +++ stable/12/sys/dev/mpt/mpt_user.c Tue Apr 28 17:59:37 2020 (r360446) @@ -36,6 +36,9 @@ __FBSDID("$FreeBSD$"); #include +#ifdef __amd64__ +#include +#endif #include #include #include @@ -587,11 +590,6 @@ mpt_user_raid_action(struct mpt_softc *mpt, struct mpt mpt_free_request(mpt, req); return (0); } - -#ifdef __amd64__ -#define PTRIN(p) ((void *)(uintptr_t)(p)) -#define PTROUT(v) ((u_int32_t)(uintptr_t)(v)) -#endif static int mpt_ioctl(struct cdev *dev, u_long cmd, caddr_t arg, int flag, struct thread *td) Modified: stable/12/sys/i386/linux/linux.h ============================================================================== --- stable/12/sys/i386/linux/linux.h Tue Apr 28 16:09:28 2020 (r360445) +++ stable/12/sys/i386/linux/linux.h Tue Apr 28 17:59:37 2020 (r360446) @@ -30,6 +30,7 @@ #ifndef _I386_LINUX_H_ #define _I386_LINUX_H_ +#include #include /* for sigval union */ #include @@ -50,14 +51,6 @@ extern u_char linux_debug_map[]; #define LINUX_SHAREDPAGE (VM_MAXUSER_ADDRESS - PAGE_SIZE) #define LINUX_USRSTACK LINUX_SHAREDPAGE - -#define PTRIN(v) (void *)(v) -#define PTROUT(v) (l_uintptr_t)(v) - -#define CP(src,dst,fld) do { (dst).fld = (src).fld; } while (0) -#define CP2(src,dst,sfld,dfld) do { (dst).dfld = (src).sfld; } while (0) -#define PTRIN_CP(src,dst,fld) \ - do { (dst).fld = PTRIN((src).fld); } while (0) /* * Provide a separate set of types for the Linux types. Modified: stable/12/sys/kern/sysv_sem.c ============================================================================== --- stable/12/sys/kern/sysv_sem.c Tue Apr 28 16:09:28 2020 (r360445) +++ stable/12/sys/kern/sysv_sem.c Tue Apr 28 17:59:37 2020 (r360446) @@ -52,6 +52,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -1751,10 +1752,6 @@ sys_semsys(td, uap) error = (*semcalls[uap->which])(td, &uap->a2); return (error); } - -#ifndef CP -#define CP(src, dst, fld) do { (dst).fld = (src).fld; } while (0) -#endif #ifndef _SYS_SYSPROTO_H_ struct freebsd7___semctl_args { Modified: stable/12/sys/kern/sysv_shm.c ============================================================================== --- stable/12/sys/kern/sysv_shm.c Tue Apr 28 16:09:28 2020 (r360445) +++ stable/12/sys/kern/sysv_shm.c Tue Apr 28 17:59:37 2020 (r360446) @@ -75,6 +75,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -1583,10 +1584,6 @@ done: #if defined(COMPAT_FREEBSD4) || defined(COMPAT_FREEBSD5) || \ defined(COMPAT_FREEBSD6) || defined(COMPAT_FREEBSD7) - -#ifndef CP -#define CP(src, dst, fld) do { (dst).fld = (src).fld; } while (0) -#endif #ifndef _SYS_SYSPROTO_H_ struct freebsd7_shmctl_args { Copied: stable/12/sys/sys/abi_compat.h (from r359937, head/sys/sys/abi_compat.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/sys/sys/abi_compat.h Tue Apr 28 17:59:37 2020 (r360446, copy of r359937, head/sys/sys/abi_compat.h) @@ -0,0 +1,77 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2001 Doug Rabson + * 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 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 _COMPAT_H_ +#define _COMPAT_H_ + +/* + * Helper macros for translating objects between different ABIs. + */ + +#define PTRIN(v) (void *)(uintptr_t)(v) +#define PTROUT(v) (uintptr_t)(v) + +#define CP(src, dst, fld) do { \ + (dst).fld = (src).fld; \ +} while (0) + +#define CP2(src, dst, sfld, dfld) do { \ + (dst).dfld = (src).sfld; \ +} while (0) + +#define PTRIN_CP(src, dst, fld) do { \ + (dst).fld = PTRIN((src).fld); \ +} while (0) + +#define PTROUT_CP(src, dst, fld) do { \ + (dst).fld = PTROUT((src).fld); \ +} while (0) + +#define TV_CP(src, dst, fld) do { \ + CP((src).fld, (dst).fld, tv_sec); \ + CP((src).fld, (dst).fld, tv_usec); \ +} while (0) + +#define TS_CP(src, dst, fld) do { \ + CP((src).fld, (dst).fld, tv_sec); \ + CP((src).fld, (dst).fld, tv_nsec); \ +} while (0) + +#define ITS_CP(src, dst) do { \ + TS_CP((src), (dst), it_interval); \ + TS_CP((src), (dst), it_value); \ +} while (0) + +#define BT_CP(src, dst, fld) do { \ + CP((src).fld, (dst).fld, sec); \ + *(uint64_t *)&(dst).fld.frac[0] = (src).fld.frac; \ +} while (0) + +#endif /* !_COMPAT_H_ */ From owner-svn-src-all@freebsd.org Tue Apr 28 18:42: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 8D5662C1BA0; Tue, 28 Apr 2020 18:42:31 +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 49BVr731tlz476W; Tue, 28 Apr 2020 18:42:31 +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 6331B28B8B; Tue, 28 Apr 2020 18:42:31 +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 03SIgVLf012112; Tue, 28 Apr 2020 18:42:31 GMT (envelope-from melifaro@FreeBSD.org) Received: (from melifaro@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03SIgU3D012109; Tue, 28 Apr 2020 18:42:30 GMT (envelope-from melifaro@FreeBSD.org) Message-Id: <202004281842.03SIgU3D012109@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: melifaro set sender to melifaro@FreeBSD.org using -f From: "Alexander V. Chernikov" Date: Tue, 28 Apr 2020 18:42:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360447 - in head/sys: net netinet6 X-SVN-Group: head X-SVN-Commit-Author: melifaro X-SVN-Commit-Paths: in head/sys: net netinet6 X-SVN-Commit-Revision: 360447 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, 28 Apr 2020 18:42:31 -0000 Author: melifaro Date: Tue Apr 28 18:42:30 2020 New Revision: 360447 URL: https://svnweb.freebsd.org/changeset/base/360447 Log: Move struct rtentry definition to nhop_var.h. One of the goals of the new routing KPI defined in r359823 is to entirely hide`struct rtentry` from the consumers. It will allow to improve routing subsystem internals and deliver features much faster. This is one of the last changes, effectively moving struct rtentry definition to a net/route_var.h header, internal to the routing subsystem. Differential Revision: https://reviews.freebsd.org/D24580 Modified: head/sys/net/route.h head/sys/net/route_var.h head/sys/netinet6/nd6.c Modified: head/sys/net/route.h ============================================================================== --- head/sys/net/route.h Tue Apr 28 17:59:37 2020 (r360446) +++ head/sys/net/route.h Tue Apr 28 18:42:30 2020 (r360447) @@ -35,7 +35,6 @@ #ifndef _NET_ROUTE_H_ #define _NET_ROUTE_H_ -#include #include /* @@ -129,42 +128,6 @@ VNET_DECLARE(u_int, rt_add_addr_allfibs); /* Announce * gateways are marked so that the output routines know to address the * gateway rather than the ultimate destination. */ -#ifndef RNF_NORMAL -#include -#ifdef RADIX_MPATH -#include -#endif -#endif - -#if defined(_KERNEL) -struct rtentry { - struct radix_node rt_nodes[2]; /* tree glue, and other values */ - /* - * XXX struct rtentry must begin with a struct radix_node (or two!) - * because the code does some casts of a 'struct radix_node *' - * to a 'struct rtentry *' - */ -#define rt_key(r) (*((struct sockaddr **)(&(r)->rt_nodes->rn_key))) -#define rt_mask(r) (*((struct sockaddr **)(&(r)->rt_nodes->rn_mask))) -#define rt_key_const(r) (*((const struct sockaddr * const *)(&(r)->rt_nodes->rn_key))) -#define rt_mask_const(r) (*((const struct sockaddr * const *)(&(r)->rt_nodes->rn_mask))) - struct sockaddr *rt_gateway; /* value */ - struct ifnet *rt_ifp; /* the answer: interface to use */ - struct ifaddr *rt_ifa; /* the answer: interface address to use */ - struct nhop_object *rt_nhop; /* nexthop data */ - int rt_flags; /* up/down?, host/net */ - int rt_refcnt; /* # held references */ - u_int rt_fibnum; /* which FIB */ - u_long rt_mtu; /* MTU for this path */ - u_long rt_weight; /* absolute weight */ - u_long rt_expire; /* lifetime for route, e.g. redirect */ -#define rt_endzero rt_pksent - counter_u64_t rt_pksent; /* packets sent using this route */ - struct mtx rt_mtx; /* mutex for routing entry */ - struct rtentry *rt_chain; /* pointer to next rtentry to delete */ -}; -#endif /* _KERNEL */ - #define RTF_UP 0x1 /* route usable */ #define RTF_GATEWAY 0x2 /* destination is a gateway */ #define RTF_HOST 0x4 /* host entry (net otherwise) */ @@ -369,53 +332,7 @@ struct rt_addrinfo { #define RT_LINK_IS_UP(ifp) (!((ifp)->if_capabilities & IFCAP_LINKSTATE) \ || (ifp)->if_link_state == LINK_STATE_UP) -#define RT_LOCK_INIT(_rt) \ - mtx_init(&(_rt)->rt_mtx, "rtentry", NULL, MTX_DEF | MTX_DUPOK | MTX_NEW) -#define RT_LOCK(_rt) mtx_lock(&(_rt)->rt_mtx) -#define RT_UNLOCK(_rt) mtx_unlock(&(_rt)->rt_mtx) -#define RT_LOCK_DESTROY(_rt) mtx_destroy(&(_rt)->rt_mtx) -#define RT_LOCK_ASSERT(_rt) mtx_assert(&(_rt)->rt_mtx, MA_OWNED) -#define RT_UNLOCK_COND(_rt) do { \ - if (mtx_owned(&(_rt)->rt_mtx)) \ - mtx_unlock(&(_rt)->rt_mtx); \ -} while (0) - -#define RT_ADDREF(_rt) do { \ - RT_LOCK_ASSERT(_rt); \ - KASSERT((_rt)->rt_refcnt >= 0, \ - ("negative refcnt %d", (_rt)->rt_refcnt)); \ - (_rt)->rt_refcnt++; \ -} while (0) - -#define RT_REMREF(_rt) do { \ - RT_LOCK_ASSERT(_rt); \ - KASSERT((_rt)->rt_refcnt > 0, \ - ("bogus refcnt %d", (_rt)->rt_refcnt)); \ - (_rt)->rt_refcnt--; \ -} while (0) - -#define RTFREE_LOCKED(_rt) do { \ - if ((_rt)->rt_refcnt <= 1) \ - rtfree(_rt); \ - else { \ - RT_REMREF(_rt); \ - RT_UNLOCK(_rt); \ - } \ - /* guard against invalid refs */ \ - _rt = 0; \ -} while (0) - -#define RTFREE(_rt) do { \ - RT_LOCK(_rt); \ - RTFREE_LOCKED(_rt); \ -} while (0) - #define RTFREE_FUNC(_rt) rtfree_func(_rt) - -#define RO_RTFREE(_ro) do { \ - if ((_ro)->ro_rt) \ - RTFREE((_ro)->ro_rt); \ -} while (0) #define RO_NHFREE(_ro) do { \ if ((_ro)->ro_nh) { \ Modified: head/sys/net/route_var.h ============================================================================== --- head/sys/net/route_var.h Tue Apr 28 17:59:37 2020 (r360446) +++ head/sys/net/route_var.h Tue Apr 28 18:42:30 2020 (r360447) @@ -32,6 +32,11 @@ #ifndef _NET_ROUTE_VAR_H_ #define _NET_ROUTE_VAR_H_ +#ifndef RNF_NORMAL +#include +#endif +#include + struct nh_control; typedef int rnh_preadd_entry_f_t(u_int fibnum, const struct sockaddr *addr, const struct sockaddr *mask, struct nhop_object *nh); @@ -100,6 +105,74 @@ VNET_PCPUSTAT_DECLARE(struct rtstat, rtstat); #define RTSTAT_ADD(name, val) \ VNET_PCPUSTAT_ADD(struct rtstat, rtstat, name, (val)) #define RTSTAT_INC(name) RTSTAT_ADD(name, 1) + +struct rtentry { + struct radix_node rt_nodes[2]; /* tree glue, and other values */ + /* + * XXX struct rtentry must begin with a struct radix_node (or two!) + * because the code does some casts of a 'struct radix_node *' + * to a 'struct rtentry *' + */ +#define rt_key(r) (*((struct sockaddr **)(&(r)->rt_nodes->rn_key))) +#define rt_mask(r) (*((struct sockaddr **)(&(r)->rt_nodes->rn_mask))) +#define rt_key_const(r) (*((const struct sockaddr * const *)(&(r)->rt_nodes->rn_key))) +#define rt_mask_const(r) (*((const struct sockaddr * const *)(&(r)->rt_nodes->rn_mask))) + struct sockaddr *rt_gateway; /* value */ + struct ifnet *rt_ifp; /* the answer: interface to use */ + struct ifaddr *rt_ifa; /* the answer: interface address to use */ + struct nhop_object *rt_nhop; /* nexthop data */ + int rt_flags; /* up/down?, host/net */ + int rt_refcnt; /* # held references */ + u_int rt_fibnum; /* which FIB */ + u_long rt_mtu; /* MTU for this path */ + u_long rt_weight; /* absolute weight */ + u_long rt_expire; /* lifetime for route, e.g. redirect */ +#define rt_endzero rt_pksent + counter_u64_t rt_pksent; /* packets sent using this route */ + struct mtx rt_mtx; /* mutex for routing entry */ + struct rtentry *rt_chain; /* pointer to next rtentry to delete */ +}; + +#define RT_LOCK_INIT(_rt) \ + mtx_init(&(_rt)->rt_mtx, "rtentry", NULL, MTX_DEF | MTX_DUPOK | MTX_NEW) +#define RT_LOCK(_rt) mtx_lock(&(_rt)->rt_mtx) +#define RT_UNLOCK(_rt) mtx_unlock(&(_rt)->rt_mtx) +#define RT_LOCK_DESTROY(_rt) mtx_destroy(&(_rt)->rt_mtx) +#define RT_LOCK_ASSERT(_rt) mtx_assert(&(_rt)->rt_mtx, MA_OWNED) +#define RT_UNLOCK_COND(_rt) do { \ + if (mtx_owned(&(_rt)->rt_mtx)) \ + mtx_unlock(&(_rt)->rt_mtx); \ +} while (0) + +#define RT_ADDREF(_rt) do { \ + RT_LOCK_ASSERT(_rt); \ + KASSERT((_rt)->rt_refcnt >= 0, \ + ("negative refcnt %d", (_rt)->rt_refcnt)); \ + (_rt)->rt_refcnt++; \ +} while (0) + +#define RT_REMREF(_rt) do { \ + RT_LOCK_ASSERT(_rt); \ + KASSERT((_rt)->rt_refcnt > 0, \ + ("bogus refcnt %d", (_rt)->rt_refcnt)); \ + (_rt)->rt_refcnt--; \ +} while (0) + +#define RTFREE_LOCKED(_rt) do { \ + if ((_rt)->rt_refcnt <= 1) \ + rtfree(_rt); \ + else { \ + RT_REMREF(_rt); \ + RT_UNLOCK(_rt); \ + } \ + /* guard against invalid refs */ \ + _rt = 0; \ +} while (0) + +#define RTFREE(_rt) do { \ + RT_LOCK(_rt); \ + RTFREE_LOCKED(_rt); \ +} while (0) /* * With the split between the routing entry and the nexthop, Modified: head/sys/netinet6/nd6.c ============================================================================== --- head/sys/netinet6/nd6.c Tue Apr 28 17:59:37 2020 (r360446) +++ head/sys/netinet6/nd6.c Tue Apr 28 18:42:30 2020 (r360447) @@ -62,6 +62,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include From owner-svn-src-all@freebsd.org Tue Apr 28 18:53: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 E61FA2C1F2C; Tue, 28 Apr 2020 18:53:49 +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 49BW595pXWz47tG; Tue, 28 Apr 2020 18:53:49 +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 C2A5928D95; Tue, 28 Apr 2020 18:53:49 +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 03SIrntA018133; Tue, 28 Apr 2020 18:53:49 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03SIrn4t018131; Tue, 28 Apr 2020 18:53:49 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <202004281853.03SIrn4t018131@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Tue, 28 Apr 2020 18:53:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360448 - head/cddl/contrib/opensolaris/tools/ctf/cvt X-SVN-Group: head X-SVN-Commit-Author: bdrewery X-SVN-Commit-Paths: head/cddl/contrib/opensolaris/tools/ctf/cvt X-SVN-Commit-Revision: 360448 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, 28 Apr 2020 18:53:50 -0000 Author: bdrewery Date: Tue Apr 28 18:53:49 2020 New Revision: 360448 URL: https://svnweb.freebsd.org/changeset/base/360448 Log: Revert r360445 I did not intend to commit this yet as more work is needed for non-amd64 kernels. Modified: head/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c head/cddl/contrib/opensolaris/tools/ctf/cvt/util.c Modified: head/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c ============================================================================== --- head/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c Tue Apr 28 18:42:30 2020 (r360447) +++ head/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c Tue Apr 28 18:53:49 2020 (r360448) @@ -452,10 +452,6 @@ map_td_tree_post(tdesc_t *ctdp, tdesc_t **ctdpp __unus if (ed.ed_tgt->t_type == FORWARD && ctdp->t_type != FORWARD) { int id = mcd->md_tgt->td_nextid++; -#ifdef __FreeBSD__ - if (CTF_TYPE_ISCHILD(id)) - terminate("No room for additional types\n"); -#endif debug(3, "Creating new defn type %d <%x>\n", id, id); add_mapping(mcd->md_ta, ctdp->t_id, id); alist_add(mcd->md_fdida, (void *)(ulong_t)ed.ed_tgt, @@ -477,10 +473,6 @@ map_td_tree_post(tdesc_t *ctdp, tdesc_t **ctdpp __unus } else { int id = mcd->md_tgt->td_nextid++; -#ifdef __FreeBSD__ - if (CTF_TYPE_ISCHILD(id)) - terminate("No room for additional types\n"); -#endif debug(3, "Creating new type %d <%x>\n", id, id); add_mapping(mcd->md_ta, ctdp->t_id, id); hash_add(mcd->md_tdtba, ctdp); Modified: head/cddl/contrib/opensolaris/tools/ctf/cvt/util.c ============================================================================== --- head/cddl/contrib/opensolaris/tools/ctf/cvt/util.c Tue Apr 28 18:42:30 2020 (r360447) +++ head/cddl/contrib/opensolaris/tools/ctf/cvt/util.c Tue Apr 28 18:53:49 2020 (r360448) @@ -148,7 +148,17 @@ terminate(const char *format, ...) if (getenv("CTF_ABORT_ON_TERMINATE") != NULL) abort(); +#if defined(__FreeBSD__) +/* + * For the time being just output the termination message, but don't + * return an exit status that would cause the build to fail. We need + * to get as much stuff built as possible before going back and + * figuring out what is wrong with certain files. + */ + exit(0); +#else exit(1); +#endif } /*PRINTFLIKE1*/ From owner-svn-src-all@freebsd.org Tue Apr 28 18:55: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 1B3912C1FBD; Tue, 28 Apr 2020 18:55:49 +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 49BW7S6t2hz483g; Tue, 28 Apr 2020 18:55:48 +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 8A0061B67C; Tue, 28 Apr 2020 18:55:48 +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 5418A19448; Tue, 28 Apr 2020 18:55: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 3nfo7k7LdyBz; Tue, 28 Apr 2020 18:52:54 +0000 (UTC) Subject: Re: svn commit: r360445 - head/cddl/contrib/opensolaris/tools/ctf/cvt DKIM-Filter: OpenDKIM Filter v2.10.3 mail.xzibition.com 559D919444 From: Bryan Drewery To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <202004281609.03SG9S3n013323@repo.freebsd.org> 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: Date: Tue, 28 Apr 2020 11:52:53 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 In-Reply-To: <202004281609.03SG9S3n013323@repo.freebsd.org> Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="OMaE395LHfPqSyIQOD11KOTheku1TM6Oo" 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, 28 Apr 2020 18:55:49 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --OMaE395LHfPqSyIQOD11KOTheku1TM6Oo Content-Type: multipart/mixed; boundary="niQeSCGkoXtvW3djFDeK7EIa8mM8RHYlP"; protected-headers="v1" From: Bryan Drewery To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Message-ID: Subject: Re: svn commit: r360445 - head/cddl/contrib/opensolaris/tools/ctf/cvt References: <202004281609.03SG9S3n013323@repo.freebsd.org> In-Reply-To: <202004281609.03SG9S3n013323@repo.freebsd.org> --niQeSCGkoXtvW3djFDeK7EIa8mM8RHYlP Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable I did not mean to commit this yet. Likely broke non-x86. Reverting now. On 4/28/2020 9:09 AM, Bryan Drewery wrote: > Author: bdrewery > Date: Tue Apr 28 16:09:28 2020 > New Revision: 360445 > URL: https://svnweb.freebsd.org/changeset/base/360445 >=20 > Log: > ctfmerge: Assert that there is enough room for types. > =20 > Sponsord by: Dell EMC > Differential Revision: https://reviews.freebsd.org/D24537 >=20 > Modified: > head/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c > head/cddl/contrib/opensolaris/tools/ctf/cvt/util.c >=20 > Modified: head/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c > =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/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c Tue Apr 28 16:0= 9:25 2020 (r360444) > +++ head/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c Tue Apr 28 16:0= 9:28 2020 (r360445) > @@ -452,6 +452,10 @@ map_td_tree_post(tdesc_t *ctdp, tdesc_t **ctdpp __= unus > if (ed.ed_tgt->t_type =3D=3D FORWARD && ctdp->t_type !=3D FORWARD) {= > int id =3D mcd->md_tgt->td_nextid++; > =20 > +#ifdef __FreeBSD__ > + if (CTF_TYPE_ISCHILD(id)) > + terminate("No room for additional types\n"); > +#endif > debug(3, "Creating new defn type %d <%x>\n", id, id); > add_mapping(mcd->md_ta, ctdp->t_id, id); > alist_add(mcd->md_fdida, (void *)(ulong_t)ed.ed_tgt, > @@ -473,6 +477,10 @@ map_td_tree_post(tdesc_t *ctdp, tdesc_t **ctdpp __= unus > } else { > int id =3D mcd->md_tgt->td_nextid++; > =20 > +#ifdef __FreeBSD__ > + if (CTF_TYPE_ISCHILD(id)) > + terminate("No room for additional types\n"); > +#endif > debug(3, "Creating new type %d <%x>\n", id, id); > add_mapping(mcd->md_ta, ctdp->t_id, id); > hash_add(mcd->md_tdtba, ctdp); >=20 > Modified: head/cddl/contrib/opensolaris/tools/ctf/cvt/util.c > =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/cddl/contrib/opensolaris/tools/ctf/cvt/util.c Tue Apr 28 16:09= :25 2020 (r360444) > +++ head/cddl/contrib/opensolaris/tools/ctf/cvt/util.c Tue Apr 28 16:09= :28 2020 (r360445) > @@ -148,17 +148,7 @@ terminate(const char *format, ...) > =20 > if (getenv("CTF_ABORT_ON_TERMINATE") !=3D NULL) > abort(); > -#if defined(__FreeBSD__) > -/* > - * For the time being just output the termination message, but don't > - * return an exit status that would cause the build to fail. We need > - * to get as much stuff built as possible before going back and > - * figuring out what is wrong with certain files. > - */ > - exit(0); > -#else > exit(1); > -#endif > } > =20 > /*PRINTFLIKE1*/ >=20 --=20 Regards, Bryan Drewery --niQeSCGkoXtvW3djFDeK7EIa8mM8RHYlP-- --OMaE395LHfPqSyIQOD11KOTheku1TM6Oo Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQGTBAEBCgB9FiEE+Rc8ssOq6npcih8JNddxu25Gl88FAl6oe4VfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEY5 MTczQ0IyQzNBQUVBN0E1QzhBMUYwOTM1RDc3MUJCNkU0Njk3Q0YACgkQNddxu25G l8/s5wf9HFUP4e6xZZlGo/Ev6tkzn0rvy4hvgmIK/r3On9j8A1br7o6aSov9xCkL fG9PgYDbyoVOgpKvWyRXMLoQFmtepYg7k8E6FjQKk51fs21IhR1ky7/pVHp1ac6j WXoCN4npjSY2zK4C5U7iRTEpyDxRLOh/RAf2UR7gC2BaWkC7fZwS9OCP0MrwfRpY OnhS8lBlJ7+UFMauIPv29EebObmwmaybVeNeoyG3pxGfGVZA9X8Swtsa+DKaxd0/ iWPHLVcsuh8dTPNSMQyA1o4pMzh8acEdrGdG/Xru09nD1nfC52xkCwq4K7I6UyMW agfghLiTsKbuSeuZdxQeorTKZkD3Sg== =sC6G -----END PGP SIGNATURE----- --OMaE395LHfPqSyIQOD11KOTheku1TM6Oo-- From owner-svn-src-all@freebsd.org Tue Apr 28 19:14: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 C42532C26E6; Tue, 28 Apr 2020 19:14:13 +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 49BWXj57Npz49MP; Tue, 28 Apr 2020 19:14:13 +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 AB52829176; Tue, 28 Apr 2020 19:14:13 +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 03SJEDBN030916; Tue, 28 Apr 2020 19:14:13 GMT (envelope-from melifaro@FreeBSD.org) Received: (from melifaro@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03SJEA7I030898; Tue, 28 Apr 2020 19:14:10 GMT (envelope-from melifaro@FreeBSD.org) Message-Id: <202004281914.03SJEA7I030898@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: melifaro set sender to melifaro@FreeBSD.org using -f From: "Alexander V. Chernikov" Date: Tue, 28 Apr 2020 19:14:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360449 - in head/sys: conf net net/route netinet netinet6 netpfil/ipfw X-SVN-Group: head X-SVN-Commit-Author: melifaro X-SVN-Commit-Paths: in head/sys: conf net net/route netinet netinet6 netpfil/ipfw X-SVN-Commit-Revision: 360449 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, 28 Apr 2020 19:14:13 -0000 Author: melifaro Date: Tue Apr 28 19:14:09 2020 New Revision: 360449 URL: https://svnweb.freebsd.org/changeset/base/360449 Log: Move route_temporal.c and route_var.h to net/route. Nexthop objects implementation, defined in r359823, introduced sys/net/route directory intended to hold all routing-related code. Move recently-introduced route_temporal.c and private route_var.h header there. Differential Revision: https://reviews.freebsd.org/D24597 Added: head/sys/net/route/route_temporal.c - copied, changed from r360430, head/sys/net/route_temporal.c head/sys/net/route/route_var.h - copied unchanged from r360447, head/sys/net/route_var.h Deleted: head/sys/net/route_temporal.c head/sys/net/route_var.h Modified: head/sys/conf/files head/sys/net/radix_mpath.c head/sys/net/route.c head/sys/net/route/nhop.c head/sys/net/route/nhop_ctl.c head/sys/net/route/route_ctl.c head/sys/net/route/route_helpers.c head/sys/net/rtsock.c head/sys/netinet/in_fib.c head/sys/netinet/in_rmx.c head/sys/netinet6/in6_fib.c head/sys/netinet6/in6_rmx.c head/sys/netinet6/nd6.c head/sys/netinet6/nd6_rtr.c head/sys/netpfil/ipfw/ip_fw_table_algo.c Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Tue Apr 28 18:53:49 2020 (r360448) +++ head/sys/conf/files Tue Apr 28 19:14:09 2020 (r360449) @@ -4091,12 +4091,12 @@ net/radix_mpath.c standard net/raw_cb.c standard net/raw_usrreq.c standard net/route.c standard -net/route_temporal.c standard net/route/nhop.c standard net/route/nhop_ctl.c standard net/route/nhop_utils.c standard net/route/route_ctl.c standard net/route/route_helpers.c standard +net/route/route_temporal.c standard net/rss_config.c optional inet rss | inet6 rss net/rtsock.c standard net/slcompress.c optional netgraph_vjc | sppp | \ Modified: head/sys/net/radix_mpath.c ============================================================================== --- head/sys/net/radix_mpath.c Tue Apr 28 18:53:49 2020 (r360448) +++ head/sys/net/radix_mpath.c Tue Apr 28 19:14:09 2020 (r360449) @@ -57,7 +57,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include #include #include Modified: head/sys/net/route.c ============================================================================== --- head/sys/net/route.c Tue Apr 28 18:53:49 2020 (r360448) +++ head/sys/net/route.c Tue Apr 28 19:14:09 2020 (r360449) @@ -61,7 +61,7 @@ #include #include #include -#include +#include #include #include #include Modified: head/sys/net/route/nhop.c ============================================================================== --- head/sys/net/route/nhop.c Tue Apr 28 18:53:49 2020 (r360448) +++ head/sys/net/route/nhop.c Tue Apr 28 19:14:09 2020 (r360449) @@ -42,7 +42,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include #include #include Modified: head/sys/net/route/nhop_ctl.c ============================================================================== --- head/sys/net/route/nhop_ctl.c Tue Apr 28 18:53:49 2020 (r360448) +++ head/sys/net/route/nhop_ctl.c Tue Apr 28 19:14:09 2020 (r360449) @@ -44,7 +44,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include #include #include Modified: head/sys/net/route/route_ctl.c ============================================================================== --- head/sys/net/route/route_ctl.c Tue Apr 28 18:53:49 2020 (r360448) +++ head/sys/net/route/route_ctl.c Tue Apr 28 19:14:09 2020 (r360449) @@ -46,7 +46,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include #include #include Modified: head/sys/net/route/route_helpers.c ============================================================================== --- head/sys/net/route/route_helpers.c Tue Apr 28 18:53:49 2020 (r360448) +++ head/sys/net/route/route_helpers.c Tue Apr 28 19:14:09 2020 (r360449) @@ -50,7 +50,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include #include #include Copied and modified: head/sys/net/route/route_temporal.c (from r360430, head/sys/net/route_temporal.c) ============================================================================== --- head/sys/net/route_temporal.c Tue Apr 28 07:25:34 2020 (r360430, copy source) +++ head/sys/net/route/route_temporal.c Tue Apr 28 19:14:09 2020 (r360449) @@ -43,7 +43,7 @@ __FBSDID("$FreeBSD$"); #include #include -#include +#include #include /* Copied: head/sys/net/route/route_var.h (from r360447, head/sys/net/route_var.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/net/route/route_var.h Tue Apr 28 19:14:09 2020 (r360449, copy of r360447, head/sys/net/route_var.h) @@ -0,0 +1,230 @@ +/*- + * Copyright (c) 2015-2016 + * Alexander V. Chernikov + * + * 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. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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 _NET_ROUTE_VAR_H_ +#define _NET_ROUTE_VAR_H_ + +#ifndef RNF_NORMAL +#include +#endif +#include + +struct nh_control; +typedef int rnh_preadd_entry_f_t(u_int fibnum, const struct sockaddr *addr, + const struct sockaddr *mask, struct nhop_object *nh); + +struct rib_head { + struct radix_head head; + rn_matchaddr_f_t *rnh_matchaddr; /* longest match for sockaddr */ + rn_addaddr_f_t *rnh_addaddr; /* add based on sockaddr*/ + rn_deladdr_f_t *rnh_deladdr; /* remove based on sockaddr */ + rn_lookup_f_t *rnh_lookup; /* exact match for sockaddr */ + rn_walktree_t *rnh_walktree; /* traverse tree */ + rn_walktree_from_t *rnh_walktree_from; /* traverse tree below a */ + rn_close_t *rnh_close; /*do something when the last ref drops*/ + rnh_preadd_entry_f_t *rnh_preadd; /* hook to alter record prior to insertion */ + rt_gen_t rnh_gen; /* generation counter */ + int rnh_multipath; /* multipath capable ? */ + struct radix_node rnh_nodes[3]; /* empty tree for common case */ + struct rmlock rib_lock; /* config/data path lock */ + struct radix_mask_head rmhead; /* masks radix head */ + struct vnet *rib_vnet; /* vnet pointer */ + int rib_family; /* AF of the rtable */ + u_int rib_fibnum; /* fib number */ + struct callout expire_callout; /* Callout for expiring dynamic routes */ + time_t next_expire; /* Next expire run ts */ + struct nh_control *nh_control; /* nexthop subsystem data */ +}; + +#define RIB_RLOCK_TRACKER struct rm_priotracker _rib_tracker +#define RIB_LOCK_INIT(rh) rm_init(&(rh)->rib_lock, "rib head lock") +#define RIB_LOCK_DESTROY(rh) rm_destroy(&(rh)->rib_lock) +#define RIB_RLOCK(rh) rm_rlock(&(rh)->rib_lock, &_rib_tracker) +#define RIB_RUNLOCK(rh) rm_runlock(&(rh)->rib_lock, &_rib_tracker) +#define RIB_WLOCK(rh) rm_wlock(&(rh)->rib_lock) +#define RIB_WUNLOCK(rh) rm_wunlock(&(rh)->rib_lock) +#define RIB_LOCK_ASSERT(rh) rm_assert(&(rh)->rib_lock, RA_LOCKED) +#define RIB_WLOCK_ASSERT(rh) rm_assert(&(rh)->rib_lock, RA_WLOCKED) + +/* Macro for verifying fields in af-specific 'struct route' structures */ +#define CHK_STRUCT_FIELD_GENERIC(_s1, _f1, _s2, _f2) \ +_Static_assert(sizeof(((_s1 *)0)->_f1) == sizeof(((_s2 *)0)->_f2), \ + "Fields " #_f1 " and " #_f2 " size differs"); \ +_Static_assert(__offsetof(_s1, _f1) == __offsetof(_s2, _f2), \ + "Fields " #_f1 " and " #_f2 " offset differs"); + +#define _CHK_ROUTE_FIELD(_route_new, _field) \ + CHK_STRUCT_FIELD_GENERIC(struct route, _field, _route_new, _field) + +#define CHK_STRUCT_ROUTE_FIELDS(_route_new) \ + _CHK_ROUTE_FIELD(_route_new, ro_nh) \ + _CHK_ROUTE_FIELD(_route_new, ro_lle) \ + _CHK_ROUTE_FIELD(_route_new, ro_prepend)\ + _CHK_ROUTE_FIELD(_route_new, ro_plen) \ + _CHK_ROUTE_FIELD(_route_new, ro_flags) \ + _CHK_ROUTE_FIELD(_route_new, ro_mtu) \ + _CHK_ROUTE_FIELD(_route_new, spare) + +#define CHK_STRUCT_ROUTE_COMPAT(_ro_new, _dst_new) \ +CHK_STRUCT_ROUTE_FIELDS(_ro_new); \ +_Static_assert(__offsetof(struct route, ro_dst) == __offsetof(_ro_new, _dst_new),\ + "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); + +VNET_PCPUSTAT_DECLARE(struct rtstat, rtstat); +#define RTSTAT_ADD(name, val) \ + VNET_PCPUSTAT_ADD(struct rtstat, rtstat, name, (val)) +#define RTSTAT_INC(name) RTSTAT_ADD(name, 1) + +struct rtentry { + struct radix_node rt_nodes[2]; /* tree glue, and other values */ + /* + * XXX struct rtentry must begin with a struct radix_node (or two!) + * because the code does some casts of a 'struct radix_node *' + * to a 'struct rtentry *' + */ +#define rt_key(r) (*((struct sockaddr **)(&(r)->rt_nodes->rn_key))) +#define rt_mask(r) (*((struct sockaddr **)(&(r)->rt_nodes->rn_mask))) +#define rt_key_const(r) (*((const struct sockaddr * const *)(&(r)->rt_nodes->rn_key))) +#define rt_mask_const(r) (*((const struct sockaddr * const *)(&(r)->rt_nodes->rn_mask))) + struct sockaddr *rt_gateway; /* value */ + struct ifnet *rt_ifp; /* the answer: interface to use */ + struct ifaddr *rt_ifa; /* the answer: interface address to use */ + struct nhop_object *rt_nhop; /* nexthop data */ + int rt_flags; /* up/down?, host/net */ + int rt_refcnt; /* # held references */ + u_int rt_fibnum; /* which FIB */ + u_long rt_mtu; /* MTU for this path */ + u_long rt_weight; /* absolute weight */ + u_long rt_expire; /* lifetime for route, e.g. redirect */ +#define rt_endzero rt_pksent + counter_u64_t rt_pksent; /* packets sent using this route */ + struct mtx rt_mtx; /* mutex for routing entry */ + struct rtentry *rt_chain; /* pointer to next rtentry to delete */ +}; + +#define RT_LOCK_INIT(_rt) \ + mtx_init(&(_rt)->rt_mtx, "rtentry", NULL, MTX_DEF | MTX_DUPOK | MTX_NEW) +#define RT_LOCK(_rt) mtx_lock(&(_rt)->rt_mtx) +#define RT_UNLOCK(_rt) mtx_unlock(&(_rt)->rt_mtx) +#define RT_LOCK_DESTROY(_rt) mtx_destroy(&(_rt)->rt_mtx) +#define RT_LOCK_ASSERT(_rt) mtx_assert(&(_rt)->rt_mtx, MA_OWNED) +#define RT_UNLOCK_COND(_rt) do { \ + if (mtx_owned(&(_rt)->rt_mtx)) \ + mtx_unlock(&(_rt)->rt_mtx); \ +} while (0) + +#define RT_ADDREF(_rt) do { \ + RT_LOCK_ASSERT(_rt); \ + KASSERT((_rt)->rt_refcnt >= 0, \ + ("negative refcnt %d", (_rt)->rt_refcnt)); \ + (_rt)->rt_refcnt++; \ +} while (0) + +#define RT_REMREF(_rt) do { \ + RT_LOCK_ASSERT(_rt); \ + KASSERT((_rt)->rt_refcnt > 0, \ + ("bogus refcnt %d", (_rt)->rt_refcnt)); \ + (_rt)->rt_refcnt--; \ +} while (0) + +#define RTFREE_LOCKED(_rt) do { \ + if ((_rt)->rt_refcnt <= 1) \ + rtfree(_rt); \ + else { \ + RT_REMREF(_rt); \ + RT_UNLOCK(_rt); \ + } \ + /* guard against invalid refs */ \ + _rt = 0; \ +} while (0) + +#define RTFREE(_rt) do { \ + RT_LOCK(_rt); \ + RTFREE_LOCKED(_rt); \ +} while (0) + +/* + * With the split between the routing entry and the nexthop, + * rt_flags has to be split between these 2 entries. As rtentry + * mostly contains prefix data and is thought to be generic enough + * so one can transparently change the nexthop pointer w/o requiring + * any other rtentry changes, most of rt_flags shifts to the particular nexthop. + * / + * + * RTF_UP: rtentry, as an indication that it is linked. + * RTF_HOST: rtentry, nhop. The latter indication is needed for the datapath + * RTF_DYNAMIC: nhop, to make rtentry generic. + * RTF_MODIFIED: nhop, to make rtentry generic. (legacy) + * -- "native" path (nhop) properties: + * RTF_GATEWAY, RTF_STATIC, RTF_PROTO1, RTF_PROTO2, RTF_PROTO3, RTF_FIXEDMTU, + * RTF_PINNED, RTF_REJECT, RTF_BLACKHOLE, RTF_BROADCAST + */ + +/* Nexthop rt flags mask */ +#define NHOP_RT_FLAG_MASK (RTF_GATEWAY | RTF_HOST | RTF_REJECT | RTF_DYNAMIC | \ + RTF_MODIFIED | RTF_STATIC | RTF_BLACKHOLE | RTF_PROTO1 | RTF_PROTO2 | \ + RTF_PROTO3 | RTF_FIXEDMTU | RTF_PINNED | RTF_BROADCAST) + +/* rtentry rt flag mask */ +#define RTE_RT_FLAG_MASK (RTF_UP | RTF_HOST) + +/* Nexthop selection */ +#define _NH2MP(_nh) ((struct nhgrp_object *)(_nh)) +#define _SELECT_NHOP(_nh, _flowid) \ + (_NH2MP(_nh))->nhops[(_flowid) % (_NH2MP(_nh))->mp_size] +#define _RT_SELECT_NHOP(_nh, _flowid) \ + ((!NH_IS_MULTIPATH(_nh)) ? (_nh) : _SELECT_NHOP(_nh, _flowid)) +#define RT_SELECT_NHOP(_rt, _flowid) _RT_SELECT_NHOP((_rt)->rt_nhop, _flowid) + +/* rte<>nhop translation */ +static inline uint16_t +fib_rte_to_nh_flags(int rt_flags) +{ + uint16_t res; + + res = (rt_flags & RTF_REJECT) ? NHF_REJECT : 0; + res |= (rt_flags & RTF_HOST) ? NHF_HOST : 0; + res |= (rt_flags & RTF_BLACKHOLE) ? NHF_BLACKHOLE : 0; + res |= (rt_flags & (RTF_DYNAMIC|RTF_MODIFIED)) ? NHF_REDIRECT : 0; + res |= (rt_flags & RTF_BROADCAST) ? NHF_BROADCAST : 0; + res |= (rt_flags & RTF_GATEWAY) ? NHF_GATEWAY : 0; + + return (res); +} + +void tmproutes_update(struct rib_head *rnh, struct rtentry *rt); +void tmproutes_init(struct rib_head *rh); +void tmproutes_destroy(struct rib_head *rh); + +#endif Modified: head/sys/net/rtsock.c ============================================================================== --- head/sys/net/rtsock.c Tue Apr 28 18:53:49 2020 (r360448) +++ head/sys/net/rtsock.c Tue Apr 28 19:14:09 2020 (r360449) @@ -67,7 +67,7 @@ #include #include #include -#include +#include #include #include Modified: head/sys/netinet/in_fib.c ============================================================================== --- head/sys/netinet/in_fib.c Tue Apr 28 18:53:49 2020 (r360448) +++ head/sys/netinet/in_fib.c Tue Apr 28 19:14:09 2020 (r360449) @@ -48,7 +48,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include #include #include Modified: head/sys/netinet/in_rmx.c ============================================================================== --- head/sys/netinet/in_rmx.c Tue Apr 28 18:53:49 2020 (r360448) +++ head/sys/netinet/in_rmx.c Tue Apr 28 19:14:09 2020 (r360449) @@ -42,7 +42,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include #include #include Modified: head/sys/netinet6/in6_fib.c ============================================================================== --- head/sys/netinet6/in6_fib.c Tue Apr 28 18:53:49 2020 (r360448) +++ head/sys/netinet6/in6_fib.c Tue Apr 28 19:14:09 2020 (r360449) @@ -49,7 +49,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include #include #include Modified: head/sys/netinet6/in6_rmx.c ============================================================================== --- head/sys/netinet6/in6_rmx.c Tue Apr 28 18:53:49 2020 (r360448) +++ head/sys/netinet6/in6_rmx.c Tue Apr 28 19:14:09 2020 (r360449) @@ -81,7 +81,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include #include Modified: head/sys/netinet6/nd6.c ============================================================================== --- head/sys/netinet6/nd6.c Tue Apr 28 18:53:49 2020 (r360448) +++ head/sys/netinet6/nd6.c Tue Apr 28 19:14:09 2020 (r360449) @@ -62,7 +62,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include #include Modified: head/sys/netinet6/nd6_rtr.c ============================================================================== --- head/sys/netinet6/nd6_rtr.c Tue Apr 28 18:53:49 2020 (r360448) +++ head/sys/netinet6/nd6_rtr.c Tue Apr 28 19:14:09 2020 (r360449) @@ -60,7 +60,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include #include Modified: head/sys/netpfil/ipfw/ip_fw_table_algo.c ============================================================================== --- head/sys/netpfil/ipfw/ip_fw_table_algo.c Tue Apr 28 18:53:49 2020 (r360448) +++ head/sys/netpfil/ipfw/ip_fw_table_algo.c Tue Apr 28 19:14:09 2020 (r360449) @@ -51,7 +51,7 @@ __FBSDID("$FreeBSD$"); #include /* ip_fw.h requires IFNAMSIZ */ #include #include -#include +#include #include #include From owner-svn-src-all@freebsd.org Tue Apr 28 20:00: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 5674D2C38CE; Tue, 28 Apr 2020 20:00:18 +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 49BXYt1tXgz4DQj; Tue, 28 Apr 2020 20:00:18 +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 3BADC29948; Tue, 28 Apr 2020 20:00:18 +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 03SK0Idm055985; Tue, 28 Apr 2020 20:00:18 GMT (envelope-from melifaro@FreeBSD.org) Received: (from melifaro@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03SK0HK1055981; Tue, 28 Apr 2020 20:00:17 GMT (envelope-from melifaro@FreeBSD.org) Message-Id: <202004282000.03SK0HK1055981@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: melifaro set sender to melifaro@FreeBSD.org using -f From: "Alexander V. Chernikov" Date: Tue, 28 Apr 2020 20:00:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360450 - in head/sys: conf net net/route X-SVN-Group: head X-SVN-Commit-Author: melifaro X-SVN-Commit-Paths: in head/sys: conf net net/route X-SVN-Commit-Revision: 360450 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, 28 Apr 2020 20:00:18 -0000 Author: melifaro Date: Tue Apr 28 20:00:17 2020 New Revision: 360450 URL: https://svnweb.freebsd.org/changeset/base/360450 Log: Move route-specific ddb commands to route/route_ddb.c Currently functionality resides in rtsock.c, which is a controlling interface, partially external to the routing subsystem. Additionally, DDB-supporting functionality is > 100SLOC, which deserves a separate file. Given that, move this functionality to a newly-created net/route/ subdir. Reviewed by: cem Differential Revision: https://reviews.freebsd.org/D24561 Added: head/sys/net/route/route_ddb.c (contents, props changed) Modified: head/sys/conf/files head/sys/net/route.h head/sys/net/rtsock.c Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Tue Apr 28 19:14:09 2020 (r360449) +++ head/sys/conf/files Tue Apr 28 20:00:17 2020 (r360450) @@ -4095,6 +4095,7 @@ net/route/nhop.c standard net/route/nhop_ctl.c standard net/route/nhop_utils.c standard net/route/route_ctl.c standard +net/route/route_ddb.c optional ddb net/route/route_helpers.c standard net/route/route_temporal.c standard net/rss_config.c optional inet rss | inet6 rss Modified: head/sys/net/route.h ============================================================================== --- head/sys/net/route.h Tue Apr 28 19:14:09 2020 (r360449) +++ head/sys/net/route.h Tue Apr 28 20:00:17 2020 (r360450) @@ -388,6 +388,8 @@ int rtsock_addrmsg(int, struct ifaddr *, int); int rtsock_routemsg(int, struct rtentry *, struct ifnet *ifp, int, int); int rtsock_routemsg_info(int, struct rt_addrinfo *, int); +struct sockaddr *rtsock_fix_netmask(const struct sockaddr *dst, + const struct sockaddr *smask, struct sockaddr_storage *dmask); /* * Note the following locking behavior: * Added: head/sys/net/route/route_ddb.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/net/route/route_ddb.c Tue Apr 28 20:00:17 2020 (r360450) @@ -0,0 +1,458 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright 2019 Conrad Meyer + * + * 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. + */ + +#include +__FBSDID("$FreeBSD$"); +#include "opt_inet.h" +#include "opt_inet6.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * Unfortunately, RTF_ values are expressed as raw masks rather than powers of + * 2, so we cannot use them as nice C99 initializer indices below. + */ +static const char * const rtf_flag_strings[] = { + "UP", + "GATEWAY", + "HOST", + "REJECT", + "DYNAMIC", + "MODIFIED", + "DONE", + "UNUSED_0x80", + "UNUSED_0x100", + "XRESOLVE", + "LLDATA", + "STATIC", + "BLACKHOLE", + "UNUSED_0x2000", + "PROTO2", + "PROTO1", + "UNUSED_0x10000", + "UNUSED_0x20000", + "PROTO3", + "FIXEDMTU", + "PINNED", + "LOCAL", + "BROADCAST", + "MULTICAST", + /* Big gap. */ + [28] = "STICKY", + [30] = "RNH_LOCKED", + [31] = "GWFLAG_COMPAT", +}; + +static const char * __pure +rt_flag_name(unsigned idx) +{ + if (idx >= nitems(rtf_flag_strings)) + return ("INVALID_FLAG"); + if (rtf_flag_strings[idx] == NULL) + return ("UNKNOWN"); + return (rtf_flag_strings[idx]); +} + +static void +rt_dumpaddr_ddb(const char *name, const struct sockaddr *sa) +{ + char buf[INET6_ADDRSTRLEN], *res; + + res = NULL; + if (sa == NULL) + res = "NULL"; + else if (sa->sa_family == AF_INET) { + res = inet_ntop(AF_INET, + &((const struct sockaddr_in *)sa)->sin_addr, + buf, sizeof(buf)); + } else if (sa->sa_family == AF_INET6) { + res = inet_ntop(AF_INET6, + &((const struct sockaddr_in6 *)sa)->sin6_addr, + buf, sizeof(buf)); + } else if (sa->sa_family == AF_LINK) { + res = "on link"; + } + + if (res != NULL) { + db_printf("%s <%s> ", name, res); + return; + } + + db_printf("%s ", name, sa->sa_family); +} + +static int +rt_dumpentry_ddb(struct radix_node *rn, void *arg __unused) +{ + struct sockaddr_storage ss; + struct rtentry *rt; + int flags, idx; + + /* If RNTORT is important, put it in a header. */ + rt = (void *)rn; + + rt_dumpaddr_ddb("dst", rt_key(rt)); + rt_dumpaddr_ddb("gateway", &rt->rt_nhop->gw_sa); + rt_dumpaddr_ddb("netmask", rtsock_fix_netmask(rt_key(rt), rt_mask(rt), + &ss)); + if (rt->rt_ifp != NULL && (rt->rt_ifp->if_flags & IFF_DYING) == 0) { + rt_dumpaddr_ddb("ifp", rt->rt_ifp->if_addr->ifa_addr); + rt_dumpaddr_ddb("ifa", rt->rt_ifa->ifa_addr); + } + + db_printf("flags "); + flags = rt->rt_flags; + if (flags == 0) + db_printf("none"); + + while ((idx = ffs(flags)) > 0) { + idx--; + + if (flags != rt->rt_flags) + db_printf(","); + db_printf("%s", rt_flag_name(idx)); + + flags &= ~(1ul << idx); + } + + db_printf("\n"); + return (0); +} + +DB_SHOW_COMMAND(routetable, db_show_routetable_cmd) +{ + struct rib_head *rnh; + int error, i, lim; + + if (have_addr) + i = lim = addr; + else { + i = 1; + lim = AF_MAX; + } + + for (; i <= lim; i++) { + rnh = rt_tables_get_rnh(0, i); + if (rnh == NULL) { + if (have_addr) { + db_printf("%s: AF %d not supported?\n", + __func__, i); + break; + } + continue; + } + + if (!have_addr && i > 1) + db_printf("\n"); + + db_printf("Route table for AF %d%s%s%s:\n", i, + (i == AF_INET || i == AF_INET6) ? " (" : "", + (i == AF_INET) ? "INET" : (i == AF_INET6) ? "INET6" : "", + (i == AF_INET || i == AF_INET6) ? ")" : ""); + + error = rnh->rnh_walktree(&rnh->head, rt_dumpentry_ddb, NULL); + if (error != 0) + db_printf("%s: walktree(%d): %d\n", __func__, i, + error); + } +} + +_DB_FUNC(_show, route, db_show_route_cmd, db_show_table, CS_OWN, NULL) +{ + char buf[INET6_ADDRSTRLEN], *bp; + const void *dst_addrp; + struct sockaddr *dstp; + struct rtentry *rt; + union { + struct sockaddr_in dest_sin; + struct sockaddr_in6 dest_sin6; + } u; + uint16_t hextets[8]; + unsigned i, tets; + int t, af, exp, tokflags; + + /* + * Undecoded address family. No double-colon expansion seen yet. + */ + af = -1; + exp = -1; + /* Assume INET6 to start; we can work back if guess was wrong. */ + tokflags = DRT_WSPACE | DRT_HEX | DRT_HEXADECIMAL; + + /* + * db_command has lexed 'show route' for us. + */ + t = db_read_token_flags(tokflags); + if (t == tWSPACE) + t = db_read_token_flags(tokflags); + + /* + * tEOL: Just 'show route' isn't a valid mode. + * tMINUS: It's either '-h' or some invalid option. Regardless, usage. + */ + if (t == tEOL || t == tMINUS) + goto usage; + + db_unread_token(t); + + tets = nitems(hextets); + + /* + * Each loop iteration, we expect to read one octet (v4) or hextet + * (v6), followed by an appropriate field separator ('.' or ':' or + * '::'). + * + * At the start of each loop, we're looking for a number (octet or + * hextet). + * + * INET6 addresses have a special case where they may begin with '::'. + */ + for (i = 0; i < tets; i++) { + t = db_read_token_flags(tokflags); + + if (t == tCOLONCOLON) { + /* INET6 with leading '::' or invalid. */ + if (i != 0) { + db_printf("Parse error: unexpected extra " + "colons.\n"); + goto exit; + } + + af = AF_INET6; + exp = i; + hextets[i] = 0; + continue; + } else if (t == tNUMBER) { + /* + * Lexer separates out '-' as tMINUS, but make the + * assumption explicit here. + */ + MPASS(db_tok_number >= 0); + + if (af == AF_INET && db_tok_number > UINT8_MAX) { + db_printf("Not a valid v4 octet: %ld\n", + (long)db_tok_number); + goto exit; + } + hextets[i] = db_tok_number; + } else if (t == tEOL) { + /* + * We can only detect the end of an IPv6 address in + * compact representation with EOL. + */ + if (af != AF_INET6 || exp < 0) { + db_printf("Parse failed. Got unexpected EOF " + "when the address is not a compact-" + "representation IPv6 address.\n"); + goto exit; + } + break; + } else { + db_printf("Parse failed. Unexpected token %d.\n", t); + goto exit; + } + + /* Next, look for a separator, if appropriate. */ + if (i == tets - 1) + continue; + + t = db_read_token_flags(tokflags); + if (af < 0) { + if (t == tCOLON) { + af = AF_INET6; + continue; + } + if (t == tCOLONCOLON) { + af = AF_INET6; + i++; + hextets[i] = 0; + exp = i; + continue; + } + if (t == tDOT) { + unsigned hn, dn; + + af = AF_INET; + /* Need to fixup the first parsed number. */ + if (hextets[0] > 0x255 || + (hextets[0] & 0xf0) > 0x90 || + (hextets[0] & 0xf) > 9) { + db_printf("Not a valid v4 octet: %x\n", + hextets[0]); + goto exit; + } + + hn = hextets[0]; + dn = (hn >> 8) * 100 + + ((hn >> 4) & 0xf) * 10 + + (hn & 0xf); + + hextets[0] = dn; + + /* Switch to decimal for remaining octets. */ + tokflags &= ~DRT_RADIX_MASK; + tokflags |= DRT_DECIMAL; + + tets = 4; + continue; + } + + db_printf("Parse error. Unexpected token %d.\n", t); + goto exit; + } else if (af == AF_INET) { + if (t == tDOT) + continue; + db_printf("Expected '.' (%d) between octets but got " + "(%d).\n", tDOT, t); + goto exit; + + } else if (af == AF_INET6) { + if (t == tCOLON) + continue; + if (t == tCOLONCOLON) { + if (exp < 0) { + i++; + hextets[i] = 0; + exp = i; + continue; + } + db_printf("Got bogus second '::' in v6 " + "address.\n"); + goto exit; + } + if (t == tEOL) { + /* + * Handle in the earlier part of the loop + * because we need to handle trailing :: too. + */ + db_unread_token(t); + continue; + } + + db_printf("Expected ':' (%d) or '::' (%d) between " + "hextets but got (%d).\n", tCOLON, tCOLONCOLON, t); + goto exit; + } + } + + /* Check for trailing garbage. */ + if (i == tets) { + t = db_read_token_flags(tokflags); + if (t != tEOL) { + db_printf("Got unexpected garbage after address " + "(%d).\n", t); + goto exit; + } + } + + /* + * Need to expand compact INET6 addresses. + * + * Technically '::' for a single ':0:' is MUST NOT but just in case, + * don't bother expanding that form (exp >= 0 && i == tets case). + */ + if (af == AF_INET6 && exp >= 0 && i < tets) { + if (exp + 1 < i) { + memmove(&hextets[exp + 1 + (nitems(hextets) - i)], + &hextets[exp + 1], + (i - (exp + 1)) * sizeof(hextets[0])); + } + memset(&hextets[exp + 1], 0, (nitems(hextets) - i) * + sizeof(hextets[0])); + } + + memset(&u, 0, sizeof(u)); + if (af == AF_INET) { + u.dest_sin.sin_family = AF_INET; + u.dest_sin.sin_len = sizeof(u.dest_sin); + u.dest_sin.sin_addr.s_addr = htonl( + ((uint32_t)hextets[0] << 24) | + ((uint32_t)hextets[1] << 16) | + ((uint32_t)hextets[2] << 8) | + (uint32_t)hextets[3]); + dstp = (void *)&u.dest_sin; + dst_addrp = &u.dest_sin.sin_addr; + } else if (af == AF_INET6) { + u.dest_sin6.sin6_family = AF_INET6; + u.dest_sin6.sin6_len = sizeof(u.dest_sin6); + for (i = 0; i < nitems(hextets); i++) + u.dest_sin6.sin6_addr.s6_addr16[i] = htons(hextets[i]); + dstp = (void *)&u.dest_sin6; + dst_addrp = &u.dest_sin6.sin6_addr; + } else { + MPASS(false); + /* UNREACHABLE */ + /* Appease Clang false positive: */ + dstp = NULL; + } + + bp = inet_ntop(af, dst_addrp, buf, sizeof(buf)); + if (bp != NULL) + db_printf("Looking up route to destination '%s'\n", bp); + + CURVNET_SET(vnet0); + rt = rtalloc1(dstp, 0, RTF_RNH_LOCKED); + CURVNET_RESTORE(); + + if (rt == NULL) { + db_printf("Could not get route for that server.\n"); + return; + } + + rt_dumpentry_ddb((void *)rt, NULL); + RTFREE_LOCKED(rt); + + return; +usage: + db_printf("Usage: 'show route
    '\n" + " Currently accepts only dotted-decimal INET or colon-separated\n" + " hextet INET6 addresses.\n"); +exit: + db_skip_to_eol(); +} + Modified: head/sys/net/rtsock.c ============================================================================== --- head/sys/net/rtsock.c Tue Apr 28 19:14:09 2020 (r360449) +++ head/sys/net/rtsock.c Tue Apr 28 20:00:17 2020 (r360450) @@ -54,11 +54,6 @@ #include #include -#ifdef DDB -#include -#include -#endif - #include #include #include @@ -68,6 +63,9 @@ #include #include #include +#ifdef RADIX_MPATH +#include +#endif #include #include @@ -182,8 +180,6 @@ static int sysctl_ifmalist(int af, struct walkarg *w); static int route_output(struct mbuf *m, struct socket *so, ...); static void rt_getmetrics(const struct rtentry *rt, struct rt_metrics *out); static void rt_dispatch(struct mbuf *, sa_family_t); -static struct sockaddr *rtsock_fix_netmask(struct sockaddr *dst, - struct sockaddr *smask, struct sockaddr_storage *dmask); static int handle_rtm_get(struct rt_addrinfo *info, u_int fibnum, struct rt_msghdr *rtm, struct rtentry **ret_nrt); static int update_rtm_from_rte(struct rt_addrinfo *info, @@ -1136,8 +1132,8 @@ rt_xaddrs(caddr_t cp, caddr_t cplim, struct rt_addrinf * Fill in @dmask with valid netmask leaving original @smask * intact. Mostly used with radix netmasks. */ -static struct sockaddr * -rtsock_fix_netmask(struct sockaddr *dst, struct sockaddr *smask, +struct sockaddr * +rtsock_fix_netmask(const struct sockaddr *dst, const struct sockaddr *smask, struct sockaddr_storage *dmask) { if (dst == NULL || smask == NULL) @@ -2164,407 +2160,3 @@ static struct domain routedomain = { VNET_DOMAIN_SET(route); -#ifdef DDB -/* - * Unfortunately, RTF_ values are expressed as raw masks rather than powers of - * 2, so we cannot use them as nice C99 initializer indices below. - */ -static const char * const rtf_flag_strings[] = { - "UP", - "GATEWAY", - "HOST", - "REJECT", - "DYNAMIC", - "MODIFIED", - "DONE", - "UNUSED_0x80", - "UNUSED_0x100", - "XRESOLVE", - "LLDATA", - "STATIC", - "BLACKHOLE", - "UNUSED_0x2000", - "PROTO2", - "PROTO1", - "UNUSED_0x10000", - "UNUSED_0x20000", - "PROTO3", - "FIXEDMTU", - "PINNED", - "LOCAL", - "BROADCAST", - "MULTICAST", - /* Big gap. */ - [28] = "STICKY", - [30] = "RNH_LOCKED", - [31] = "GWFLAG_COMPAT", -}; - -static const char * __pure -rt_flag_name(unsigned idx) -{ - if (idx >= nitems(rtf_flag_strings)) - return ("INVALID_FLAG"); - if (rtf_flag_strings[idx] == NULL) - return ("UNKNOWN"); - return (rtf_flag_strings[idx]); -} - -static void -rt_dumpaddr_ddb(const char *name, const struct sockaddr *sa) -{ - char buf[INET6_ADDRSTRLEN], *res; - - res = NULL; - if (sa == NULL) - res = "NULL"; - else if (sa->sa_family == AF_INET) { - res = inet_ntop(AF_INET, - &((const struct sockaddr_in *)sa)->sin_addr, - buf, sizeof(buf)); - } else if (sa->sa_family == AF_INET6) { - res = inet_ntop(AF_INET6, - &((const struct sockaddr_in6 *)sa)->sin6_addr, - buf, sizeof(buf)); - } else if (sa->sa_family == AF_LINK) { - res = "on link"; - } - - if (res != NULL) { - db_printf("%s <%s> ", name, res); - return; - } - - db_printf("%s ", name, sa->sa_family); -} - -static int -rt_dumpentry_ddb(struct radix_node *rn, void *arg __unused) -{ - struct sockaddr_storage ss; - struct rtentry *rt; - int flags, idx; - - /* If RNTORT is important, put it in a header. */ - rt = (void *)rn; - - rt_dumpaddr_ddb("dst", rt_key(rt)); - rt_dumpaddr_ddb("gateway", &rt->rt_nhop->gw_sa); - rt_dumpaddr_ddb("netmask", rtsock_fix_netmask(rt_key(rt), rt_mask(rt), - &ss)); - if (rt->rt_ifp != NULL && (rt->rt_ifp->if_flags & IFF_DYING) == 0) { - rt_dumpaddr_ddb("ifp", rt->rt_ifp->if_addr->ifa_addr); - rt_dumpaddr_ddb("ifa", rt->rt_ifa->ifa_addr); - } - - db_printf("flags "); - flags = rt->rt_flags; - if (flags == 0) - db_printf("none"); - - while ((idx = ffs(flags)) > 0) { - idx--; - - if (flags != rt->rt_flags) - db_printf(","); - db_printf("%s", rt_flag_name(idx)); - - flags &= ~(1ul << idx); - } - - db_printf("\n"); - return (0); -} - -DB_SHOW_COMMAND(routetable, db_show_routetable_cmd) -{ - struct rib_head *rnh; - int error, i, lim; - - if (have_addr) - i = lim = addr; - else { - i = 1; - lim = AF_MAX; - } - - for (; i <= lim; i++) { - rnh = rt_tables_get_rnh(0, i); - if (rnh == NULL) { - if (have_addr) { - db_printf("%s: AF %d not supported?\n", - __func__, i); - break; - } - continue; - } - - if (!have_addr && i > 1) - db_printf("\n"); - - db_printf("Route table for AF %d%s%s%s:\n", i, - (i == AF_INET || i == AF_INET6) ? " (" : "", - (i == AF_INET) ? "INET" : (i == AF_INET6) ? "INET6" : "", - (i == AF_INET || i == AF_INET6) ? ")" : ""); - - error = rnh->rnh_walktree(&rnh->head, rt_dumpentry_ddb, NULL); - if (error != 0) - db_printf("%s: walktree(%d): %d\n", __func__, i, - error); - } -} - -_DB_FUNC(_show, route, db_show_route_cmd, db_show_table, CS_OWN, NULL) -{ - char buf[INET6_ADDRSTRLEN], *bp; - const void *dst_addrp; - struct sockaddr *dstp; - struct rtentry *rt; - union { - struct sockaddr_in dest_sin; - struct sockaddr_in6 dest_sin6; - } u; - uint16_t hextets[8]; - unsigned i, tets; - int t, af, exp, tokflags; - - /* - * Undecoded address family. No double-colon expansion seen yet. - */ - af = -1; - exp = -1; - /* Assume INET6 to start; we can work back if guess was wrong. */ - tokflags = DRT_WSPACE | DRT_HEX | DRT_HEXADECIMAL; - - /* - * db_command has lexed 'show route' for us. - */ - t = db_read_token_flags(tokflags); - if (t == tWSPACE) - t = db_read_token_flags(tokflags); - - /* - * tEOL: Just 'show route' isn't a valid mode. - * tMINUS: It's either '-h' or some invalid option. Regardless, usage. - */ - if (t == tEOL || t == tMINUS) - goto usage; - - db_unread_token(t); - - tets = nitems(hextets); - - /* - * Each loop iteration, we expect to read one octet (v4) or hextet - * (v6), followed by an appropriate field separator ('.' or ':' or - * '::'). - * - * At the start of each loop, we're looking for a number (octet or - * hextet). - * - * INET6 addresses have a special case where they may begin with '::'. - */ - for (i = 0; i < tets; i++) { - t = db_read_token_flags(tokflags); - - if (t == tCOLONCOLON) { - /* INET6 with leading '::' or invalid. */ - if (i != 0) { - db_printf("Parse error: unexpected extra " - "colons.\n"); - goto exit; - } - - af = AF_INET6; - exp = i; - hextets[i] = 0; - continue; - } else if (t == tNUMBER) { - /* - * Lexer separates out '-' as tMINUS, but make the - * assumption explicit here. - */ - MPASS(db_tok_number >= 0); - - if (af == AF_INET && db_tok_number > UINT8_MAX) { - db_printf("Not a valid v4 octet: %ld\n", - (long)db_tok_number); - goto exit; - } - hextets[i] = db_tok_number; - } else if (t == tEOL) { - /* - * We can only detect the end of an IPv6 address in - * compact representation with EOL. - */ - if (af != AF_INET6 || exp < 0) { - db_printf("Parse failed. Got unexpected EOF " - "when the address is not a compact-" - "representation IPv6 address.\n"); - goto exit; - } - break; - } else { - db_printf("Parse failed. Unexpected token %d.\n", t); - goto exit; - } - - /* Next, look for a separator, if appropriate. */ - if (i == tets - 1) - continue; - - t = db_read_token_flags(tokflags); - if (af < 0) { - if (t == tCOLON) { - af = AF_INET6; - continue; - } - if (t == tCOLONCOLON) { - af = AF_INET6; - i++; - hextets[i] = 0; - exp = i; - continue; - } - if (t == tDOT) { - unsigned hn, dn; - - af = AF_INET; - /* Need to fixup the first parsed number. */ - if (hextets[0] > 0x255 || - (hextets[0] & 0xf0) > 0x90 || - (hextets[0] & 0xf) > 9) { - db_printf("Not a valid v4 octet: %x\n", - hextets[0]); - goto exit; - } - - hn = hextets[0]; - dn = (hn >> 8) * 100 + - ((hn >> 4) & 0xf) * 10 + - (hn & 0xf); - - hextets[0] = dn; - - /* Switch to decimal for remaining octets. */ - tokflags &= ~DRT_RADIX_MASK; - tokflags |= DRT_DECIMAL; - - tets = 4; - continue; - } - - db_printf("Parse error. Unexpected token %d.\n", t); - goto exit; - } else if (af == AF_INET) { - if (t == tDOT) - continue; - db_printf("Expected '.' (%d) between octets but got " - "(%d).\n", tDOT, t); - goto exit; - - } else if (af == AF_INET6) { - if (t == tCOLON) - continue; - if (t == tCOLONCOLON) { - if (exp < 0) { - i++; - hextets[i] = 0; - exp = i; - continue; - } - db_printf("Got bogus second '::' in v6 " - "address.\n"); - goto exit; - } - if (t == tEOL) { - /* - * Handle in the earlier part of the loop - * because we need to handle trailing :: too. - */ - db_unread_token(t); - continue; - } - - db_printf("Expected ':' (%d) or '::' (%d) between " - "hextets but got (%d).\n", tCOLON, tCOLONCOLON, t); - goto exit; - } - } - - /* Check for trailing garbage. */ - if (i == tets) { - t = db_read_token_flags(tokflags); - if (t != tEOL) { - db_printf("Got unexpected garbage after address " - "(%d).\n", t); - goto exit; - } - } - - /* - * Need to expand compact INET6 addresses. - * - * Technically '::' for a single ':0:' is MUST NOT but just in case, - * don't bother expanding that form (exp >= 0 && i == tets case). - */ - if (af == AF_INET6 && exp >= 0 && i < tets) { - if (exp + 1 < i) { - memmove(&hextets[exp + 1 + (nitems(hextets) - i)], - &hextets[exp + 1], - (i - (exp + 1)) * sizeof(hextets[0])); - } - memset(&hextets[exp + 1], 0, (nitems(hextets) - i) * - sizeof(hextets[0])); - } - - memset(&u, 0, sizeof(u)); - if (af == AF_INET) { - u.dest_sin.sin_family = AF_INET; - u.dest_sin.sin_len = sizeof(u.dest_sin); - u.dest_sin.sin_addr.s_addr = htonl( - ((uint32_t)hextets[0] << 24) | - ((uint32_t)hextets[1] << 16) | - ((uint32_t)hextets[2] << 8) | - (uint32_t)hextets[3]); - dstp = (void *)&u.dest_sin; - dst_addrp = &u.dest_sin.sin_addr; - } else if (af == AF_INET6) { - u.dest_sin6.sin6_family = AF_INET6; - u.dest_sin6.sin6_len = sizeof(u.dest_sin6); - for (i = 0; i < nitems(hextets); i++) - u.dest_sin6.sin6_addr.s6_addr16[i] = htons(hextets[i]); - dstp = (void *)&u.dest_sin6; - dst_addrp = &u.dest_sin6.sin6_addr; - } else { - MPASS(false); - /* UNREACHABLE */ - /* Appease Clang false positive: */ - dstp = NULL; - } - - bp = inet_ntop(af, dst_addrp, buf, sizeof(buf)); - if (bp != NULL) - db_printf("Looking up route to destination '%s'\n", bp); - - CURVNET_SET(vnet0); - rt = rtalloc1(dstp, 0, RTF_RNH_LOCKED); - CURVNET_RESTORE(); - - if (rt == NULL) { - db_printf("Could not get route for that server.\n"); - return; - } - - rt_dumpentry_ddb((void *)rt, NULL); - RTFREE_LOCKED(rt); - - return; -usage: - db_printf("Usage: 'show route
    '\n" - " Currently accepts only dotted-decimal INET or colon-separated\n" - " hextet INET6 addresses.\n"); -exit: - db_skip_to_eol(); -} -#endif From owner-svn-src-all@freebsd.org Tue Apr 28 20:14: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 46AC72C400D; Tue, 28 Apr 2020 20:14:42 +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 49BXtV1M0yz4Ff8; Tue, 28 Apr 2020 20:14:42 +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 0B81A29D19; Tue, 28 Apr 2020 20:14:42 +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 03SKEffS067672; Tue, 28 Apr 2020 20:14:41 GMT (envelope-from brooks@FreeBSD.org) Received: (from brooks@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03SKEdNU067658; Tue, 28 Apr 2020 20:14:39 GMT (envelope-from brooks@FreeBSD.org) Message-Id: <202004282014.03SKEdNU067658@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brooks set sender to brooks@FreeBSD.org using -f From: Brooks Davis Date: Tue, 28 Apr 2020 20:14: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: r360451 - in stable/11/sys: amd64/linux amd64/linux32 compat/freebsd32 compat/linux dev/ipmi dev/mpr dev/mps dev/mpt i386/linux kern sys X-SVN-Group: stable-11 X-SVN-Commit-Author: brooks X-SVN-Commit-Paths: in stable/11/sys: amd64/linux amd64/linux32 compat/freebsd32 compat/linux dev/ipmi dev/mpr dev/mps dev/mpt i386/linux kern sys X-SVN-Commit-Revision: 360451 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, 28 Apr 2020 20:14:42 -0000 Author: brooks Date: Tue Apr 28 20:14:38 2020 New Revision: 360451 URL: https://svnweb.freebsd.org/changeset/base/360451 Log: MFC r359937: Centralize compatability translation macros. Copy the CP, PTRIN, etc macros from freebsd32.h into a sys/abi_compat.h and replace existing definitation with includes where required. This eliminates duplicate code and allows Linux and FreeBSD compatability headers to be included in the same files. Obtained from: CheriBSD Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D24275 Added: stable/11/sys/sys/abi_compat.h - copied unchanged from r359937, head/sys/sys/abi_compat.h Modified: stable/11/sys/amd64/linux/linux.h stable/11/sys/amd64/linux32/linux.h stable/11/sys/compat/freebsd32/freebsd32.h stable/11/sys/compat/linux/linux_ioctl.c stable/11/sys/compat/linux/linux_timer.h stable/11/sys/dev/ipmi/ipmi.c stable/11/sys/dev/mpr/mpr_user.c stable/11/sys/dev/mps/mps_user.c stable/11/sys/dev/mpt/mpt_user.c stable/11/sys/i386/linux/linux.h stable/11/sys/kern/sysv_sem.c stable/11/sys/kern/sysv_shm.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/amd64/linux/linux.h ============================================================================== --- stable/11/sys/amd64/linux/linux.h Tue Apr 28 20:00:17 2020 (r360450) +++ stable/11/sys/amd64/linux/linux.h Tue Apr 28 20:14:38 2020 (r360451) @@ -32,6 +32,8 @@ #ifndef _AMD64_LINUX_H_ #define _AMD64_LINUX_H_ +#include + #include #include @@ -47,14 +49,6 @@ extern u_char linux_debug_map[]; #define LMSG(fmt) "linux(%ld/%ld): "fmt"\n", \ (long)td->td_proc->p_pid, (long)td->td_tid #define LINUX_DTRACE linuxulator - -#define PTRIN(v) (void *)(v) -#define PTROUT(v) (uintptr_t)(v) - -#define CP(src,dst,fld) do { (dst).fld = (src).fld; } while (0) -#define CP2(src,dst,sfld,dfld) do { (dst).dfld = (src).sfld; } while (0) -#define PTRIN_CP(src,dst,fld) \ - do { (dst).fld = PTRIN((src).fld); } while (0) /* * Provide a separate set of types for the Linux types. Modified: stable/11/sys/amd64/linux32/linux.h ============================================================================== --- stable/11/sys/amd64/linux32/linux.h Tue Apr 28 20:00:17 2020 (r360450) +++ stable/11/sys/amd64/linux32/linux.h Tue Apr 28 20:14:38 2020 (r360451) @@ -33,6 +33,8 @@ #ifndef _AMD64_LINUX_H_ #define _AMD64_LINUX_H_ +#include + #include #include @@ -58,14 +60,6 @@ extern u_char linux_debug_map[]; #define LINUX32_MAXDSIZ (512 * 1024 * 1024) /* 512MB */ #define LINUX32_MAXSSIZ (64 * 1024 * 1024) /* 64MB */ #define LINUX32_MAXVMEM 0 /* Unlimited */ - -#define PTRIN(v) (void *)(uintptr_t)(v) -#define PTROUT(v) (l_uintptr_t)(uintptr_t)(v) - -#define CP(src,dst,fld) do { (dst).fld = (src).fld; } while (0) -#define CP2(src,dst,sfld,dfld) do { (dst).dfld = (src).sfld; } while (0) -#define PTRIN_CP(src,dst,fld) \ - do { (dst).fld = PTRIN((src).fld); } while (0) /* * Provide a separate set of types for the Linux types. Modified: stable/11/sys/compat/freebsd32/freebsd32.h ============================================================================== --- stable/11/sys/compat/freebsd32/freebsd32.h Tue Apr 28 20:00:17 2020 (r360450) +++ stable/11/sys/compat/freebsd32/freebsd32.h Tue Apr 28 20:14:38 2020 (r360451) @@ -29,19 +29,11 @@ #ifndef _COMPAT_FREEBSD32_FREEBSD32_H_ #define _COMPAT_FREEBSD32_FREEBSD32_H_ +#include #include #include #include -#define PTRIN(v) (void *)(uintptr_t) (v) -#define PTROUT(v) (u_int32_t)(uintptr_t) (v) - -#define CP(src,dst,fld) do { (dst).fld = (src).fld; } while (0) -#define PTRIN_CP(src,dst,fld) \ - do { (dst).fld = PTRIN((src).fld); } while (0) -#define PTROUT_CP(src,dst,fld) \ - do { (dst).fld = PTROUT((src).fld); } while (0) - /* * Being a newer port, 32-bit FreeBSD/MIPS uses 64-bit time_t. */ @@ -55,37 +47,21 @@ struct timeval32 { time32_t tv_sec; int32_t tv_usec; }; -#define TV_CP(src,dst,fld) do { \ - CP((src).fld,(dst).fld,tv_sec); \ - CP((src).fld,(dst).fld,tv_usec); \ -} while (0) struct timespec32 { time32_t tv_sec; int32_t tv_nsec; }; -#define TS_CP(src,dst,fld) do { \ - CP((src).fld,(dst).fld,tv_sec); \ - CP((src).fld,(dst).fld,tv_nsec); \ -} while (0) struct itimerspec32 { struct timespec32 it_interval; struct timespec32 it_value; }; -#define ITS_CP(src, dst) do { \ - TS_CP((src), (dst), it_interval); \ - TS_CP((src), (dst), it_value); \ -} while (0) struct bintime32 { uint32_t sec; uint32_t frac[2]; }; -#define BT_CP(src, dst, fld) do { \ - CP((src).fld, (dst).fld, sec); \ - *(uint64_t *)&(dst).fld.frac[0] = (src).fld.frac; \ -} while (0) struct rusage32 { struct timeval32 ru_utime; Modified: stable/11/sys/compat/linux/linux_ioctl.c ============================================================================== --- stable/11/sys/compat/linux/linux_ioctl.c Tue Apr 28 20:00:17 2020 (r360450) +++ stable/11/sys/compat/linux/linux_ioctl.c Tue Apr 28 20:14:38 2020 (r360451) @@ -34,6 +34,9 @@ __FBSDID("$FreeBSD$"); #include #include #include +#ifdef COMPAT_LINUX32 +#include +#endif #include #include #include @@ -2687,12 +2690,6 @@ linux_ioctl_drm(struct thread *td, struct linux_ioctl_ } #ifdef COMPAT_LINUX32 -#define CP(src,dst,fld) do { (dst).fld = (src).fld; } while (0) -#define PTRIN_CP(src,dst,fld) \ - do { (dst).fld = PTRIN((src).fld); } while (0) -#define PTROUT_CP(src,dst,fld) \ - do { (dst).fld = PTROUT((src).fld); } while (0) - static int linux_ioctl_sg_io(struct thread *td, struct linux_ioctl_args *args) { Modified: stable/11/sys/compat/linux/linux_timer.h ============================================================================== --- stable/11/sys/compat/linux/linux_timer.h Tue Apr 28 20:00:17 2020 (r360450) +++ stable/11/sys/compat/linux/linux_timer.h Tue Apr 28 20:14:38 2020 (r360451) @@ -33,6 +33,8 @@ #ifndef _LINUX_TIMER_H #define _LINUX_TIMER_H +#include + #ifndef __LINUX_ARCH_SIGEV_PREAMBLE_SIZE #define __LINUX_ARCH_SIGEV_PREAMBLE_SIZE \ (sizeof(l_int) * 2 + sizeof(l_sigval_t)) @@ -78,16 +80,6 @@ #define L_SIGEV_NONE 1 #define L_SIGEV_THREAD 2 #define L_SIGEV_THREAD_ID 4 - -#define TS_CP(src,dst,fld) do { \ - CP((src).fld,(dst).fld,tv_sec); \ - CP((src).fld,(dst).fld,tv_nsec); \ -} while (0) - -#define ITS_CP(src, dst) do { \ - TS_CP((src), (dst), it_interval); \ - TS_CP((src), (dst), it_value); \ -} while (0) struct l_sigevent { l_sigval_t sigev_value; Modified: stable/11/sys/dev/ipmi/ipmi.c ============================================================================== --- stable/11/sys/dev/ipmi/ipmi.c Tue Apr 28 20:00:17 2020 (r360450) +++ stable/11/sys/dev/ipmi/ipmi.c Tue Apr 28 20:14:38 2020 (r360451) @@ -49,6 +49,10 @@ __FBSDID("$FreeBSD$"); #include #endif +#ifdef IPMICTL_SEND_COMMAND_32 +#include +#endif + /* * Driver request structures are allocated on the stack via alloca() to * avoid calling malloc(), especially for the watchdog handler. @@ -285,11 +289,6 @@ ipmi_handle_attn(struct ipmi_softc *sc) return (error); } -#endif - -#ifdef IPMICTL_SEND_COMMAND_32 -#define PTRIN(p) ((void *)(uintptr_t)(p)) -#define PTROUT(p) ((uintptr_t)(p)) #endif static int Modified: stable/11/sys/dev/mpr/mpr_user.c ============================================================================== --- stable/11/sys/dev/mpr/mpr_user.c Tue Apr 28 20:00:17 2020 (r360450) +++ stable/11/sys/dev/mpr/mpr_user.c Tue Apr 28 20:14:38 2020 (r360451) @@ -75,6 +75,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -178,16 +179,6 @@ static int mpr_user_reg_access(struct mpr_softc *sc, m static int mpr_user_btdh(struct mpr_softc *sc, mpr_btdh_mapping_t *data); static MALLOC_DEFINE(M_MPRUSER, "mpr_user", "Buffers for mpr(4) ioctls"); - -/* Macros from compat/freebsd32/freebsd32.h */ -#define PTRIN(v) (void *)(uintptr_t)(v) -#define PTROUT(v) (uint32_t)(uintptr_t)(v) - -#define CP(src,dst,fld) do { (dst).fld = (src).fld; } while (0) -#define PTRIN_CP(src,dst,fld) \ - do { (dst).fld = PTRIN((src).fld); } while (0) -#define PTROUT_CP(src,dst,fld) \ - do { (dst).fld = PTROUT((src).fld); } while (0) /* * MPI functions that support IEEE SGLs for SAS3. Modified: stable/11/sys/dev/mps/mps_user.c ============================================================================== --- stable/11/sys/dev/mps/mps_user.c Tue Apr 28 20:00:17 2020 (r360450) +++ stable/11/sys/dev/mps/mps_user.c Tue Apr 28 20:14:38 2020 (r360451) @@ -75,6 +75,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -179,16 +180,6 @@ static int mps_user_reg_access(struct mps_softc *sc, m static int mps_user_btdh(struct mps_softc *sc, mps_btdh_mapping_t *data); static MALLOC_DEFINE(M_MPSUSER, "mps_user", "Buffers for mps(4) ioctls"); - -/* Macros from compat/freebsd32/freebsd32.h */ -#define PTRIN(v) (void *)(uintptr_t)(v) -#define PTROUT(v) (uint32_t)(uintptr_t)(v) - -#define CP(src,dst,fld) do { (dst).fld = (src).fld; } while (0) -#define PTRIN_CP(src,dst,fld) \ - do { (dst).fld = PTRIN((src).fld); } while (0) -#define PTROUT_CP(src,dst,fld) \ - do { (dst).fld = PTROUT((src).fld); } while (0) int mps_attach_user(struct mps_softc *sc) Modified: stable/11/sys/dev/mpt/mpt_user.c ============================================================================== --- stable/11/sys/dev/mpt/mpt_user.c Tue Apr 28 20:00:17 2020 (r360450) +++ stable/11/sys/dev/mpt/mpt_user.c Tue Apr 28 20:14:38 2020 (r360451) @@ -34,6 +34,9 @@ __FBSDID("$FreeBSD$"); #include +#ifdef __amd64__ +#include +#endif #include #include #include @@ -585,11 +588,6 @@ mpt_user_raid_action(struct mpt_softc *mpt, struct mpt mpt_free_request(mpt, req); return (0); } - -#ifdef __amd64__ -#define PTRIN(p) ((void *)(uintptr_t)(p)) -#define PTROUT(v) ((u_int32_t)(uintptr_t)(v)) -#endif static int mpt_ioctl(struct cdev *dev, u_long cmd, caddr_t arg, int flag, struct thread *td) Modified: stable/11/sys/i386/linux/linux.h ============================================================================== --- stable/11/sys/i386/linux/linux.h Tue Apr 28 20:00:17 2020 (r360450) +++ stable/11/sys/i386/linux/linux.h Tue Apr 28 20:14:38 2020 (r360451) @@ -31,6 +31,7 @@ #ifndef _I386_LINUX_H_ #define _I386_LINUX_H_ +#include #include /* for sigval union */ #include @@ -51,14 +52,6 @@ extern u_char linux_debug_map[]; #define LINUX_SHAREDPAGE (VM_MAXUSER_ADDRESS - PAGE_SIZE) #define LINUX_USRSTACK LINUX_SHAREDPAGE - -#define PTRIN(v) (void *)(v) -#define PTROUT(v) (l_uintptr_t)(v) - -#define CP(src,dst,fld) do { (dst).fld = (src).fld; } while (0) -#define CP2(src,dst,sfld,dfld) do { (dst).dfld = (src).sfld; } while (0) -#define PTRIN_CP(src,dst,fld) \ - do { (dst).fld = PTRIN((src).fld); } while (0) /* * Provide a separate set of types for the Linux types. Modified: stable/11/sys/kern/sysv_sem.c ============================================================================== --- stable/11/sys/kern/sysv_sem.c Tue Apr 28 20:00:17 2020 (r360450) +++ stable/11/sys/kern/sysv_sem.c Tue Apr 28 20:14:38 2020 (r360451) @@ -45,6 +45,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -1731,10 +1732,6 @@ sys_semsys(td, uap) error = (*semcalls[uap->which])(td, &uap->a2); return (error); } - -#ifndef CP -#define CP(src, dst, fld) do { (dst).fld = (src).fld; } while (0) -#endif #ifndef _SYS_SYSPROTO_H_ struct freebsd7___semctl_args { Modified: stable/11/sys/kern/sysv_shm.c ============================================================================== --- stable/11/sys/kern/sysv_shm.c Tue Apr 28 20:00:17 2020 (r360450) +++ stable/11/sys/kern/sysv_shm.c Tue Apr 28 20:14:38 2020 (r360451) @@ -67,6 +67,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -1565,10 +1566,6 @@ done: #if defined(COMPAT_FREEBSD4) || defined(COMPAT_FREEBSD5) || \ defined(COMPAT_FREEBSD6) || defined(COMPAT_FREEBSD7) - -#ifndef CP -#define CP(src, dst, fld) do { (dst).fld = (src).fld; } while (0) -#endif #ifndef _SYS_SYSPROTO_H_ struct freebsd7_shmctl_args { Copied: stable/11/sys/sys/abi_compat.h (from r359937, head/sys/sys/abi_compat.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/sys/sys/abi_compat.h Tue Apr 28 20:14:38 2020 (r360451, copy of r359937, head/sys/sys/abi_compat.h) @@ -0,0 +1,77 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2001 Doug Rabson + * 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 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 _COMPAT_H_ +#define _COMPAT_H_ + +/* + * Helper macros for translating objects between different ABIs. + */ + +#define PTRIN(v) (void *)(uintptr_t)(v) +#define PTROUT(v) (uintptr_t)(v) + +#define CP(src, dst, fld) do { \ + (dst).fld = (src).fld; \ +} while (0) + +#define CP2(src, dst, sfld, dfld) do { \ + (dst).dfld = (src).sfld; \ +} while (0) + +#define PTRIN_CP(src, dst, fld) do { \ + (dst).fld = PTRIN((src).fld); \ +} while (0) + +#define PTROUT_CP(src, dst, fld) do { \ + (dst).fld = PTROUT((src).fld); \ +} while (0) + +#define TV_CP(src, dst, fld) do { \ + CP((src).fld, (dst).fld, tv_sec); \ + CP((src).fld, (dst).fld, tv_usec); \ +} while (0) + +#define TS_CP(src, dst, fld) do { \ + CP((src).fld, (dst).fld, tv_sec); \ + CP((src).fld, (dst).fld, tv_nsec); \ +} while (0) + +#define ITS_CP(src, dst) do { \ + TS_CP((src), (dst), it_interval); \ + TS_CP((src), (dst), it_value); \ +} while (0) + +#define BT_CP(src, dst, fld) do { \ + CP((src).fld, (dst).fld, sec); \ + *(uint64_t *)&(dst).fld.frac[0] = (src).fld.frac; \ +} while (0) + +#endif /* !_COMPAT_H_ */ From owner-svn-src-all@freebsd.org Tue Apr 28 20:34: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 C16DE2C480D; Tue, 28 Apr 2020 20:34:27 +0000 (UTC) (envelope-from jilles@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 49BYKH4mg2z4GbK; Tue, 28 Apr 2020 20:34:27 +0000 (UTC) (envelope-from jilles@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 9E8D82A0D4; Tue, 28 Apr 2020 20:34:27 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03SKYRFx079945; Tue, 28 Apr 2020 20:34:27 GMT (envelope-from jilles@FreeBSD.org) Received: (from jilles@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03SKYRNb079944; Tue, 28 Apr 2020 20:34:27 GMT (envelope-from jilles@FreeBSD.org) Message-Id: <202004282034.03SKYRNb079944@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jilles set sender to jilles@FreeBSD.org using -f From: Jilles Tjoelker Date: Tue, 28 Apr 2020 20:34:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360452 - head/bin/sh X-SVN-Group: head X-SVN-Commit-Author: jilles X-SVN-Commit-Paths: head/bin/sh X-SVN-Commit-Revision: 360452 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, 28 Apr 2020 20:34:27 -0000 Author: jilles Date: Tue Apr 28 20:34:27 2020 New Revision: 360452 URL: https://svnweb.freebsd.org/changeset/base/360452 Log: sh: Assert INTOFF rather than applying it in ck* As I noted in https://reviews.freebsd.org/D22756, INTOFF should be in effect when calling ckmalloc/ckrealloc/ckfree to avoid memory leaks and double frees. Therefore, change the functions to check if INTOFF is in effect instead of applying it. Reviewed by: bdrewery Differential Revision: https://reviews.freebsd.org/D24599 Modified: head/bin/sh/memalloc.c Modified: head/bin/sh/memalloc.c ============================================================================== --- head/bin/sh/memalloc.c Tue Apr 28 20:14:38 2020 (r360451) +++ head/bin/sh/memalloc.c Tue Apr 28 20:34:27 2020 (r360452) @@ -50,6 +50,13 @@ __FBSDID("$FreeBSD$"); #include #include +static void +badalloc(const char *message) +{ + write(2, message, strlen(message)); + abort(); +} + /* * Like malloc, but returns an error when out of space. */ @@ -59,9 +66,9 @@ ckmalloc(size_t nbytes) { pointer p; - INTOFF; + if (!is_int_on()) + badalloc("Unsafe ckmalloc() call\n"); p = malloc(nbytes); - INTON; if (p == NULL) error("Out of space"); return p; @@ -75,9 +82,9 @@ ckmalloc(size_t nbytes) pointer ckrealloc(pointer p, int nbytes) { - INTOFF; + if (!is_int_on()) + badalloc("Unsafe ckrealloc() call\n"); p = realloc(p, nbytes); - INTON; if (p == NULL) error("Out of space"); return p; @@ -86,9 +93,9 @@ ckrealloc(pointer p, int nbytes) void ckfree(pointer p) { - INTOFF; + if (!is_int_on()) + badalloc("Unsafe ckfree() call\n"); free(p); - INTON; } From owner-svn-src-all@freebsd.org Tue Apr 28 22:30: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 37A2B2C6EED; Tue, 28 Apr 2020 22:30:54 +0000 (UTC) (envelope-from jhb@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 49Bbvf0GLXz4NGr; Tue, 28 Apr 2020 22:30:54 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from John-Baldwins-MacBook-Pro-164.local (unknown [IPv6:2601:648:8203:2990:d41f:e4dd:90e3:84fb]) (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 75AD55CA4; Tue, 28 Apr 2020 22:30:53 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Subject: Re: svn commit: r360444 - head/sys/conf To: Bryan Drewery , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <202004281609.03SG9PHU013278@repo.freebsd.org> From: John Baldwin 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: Date: Tue, 28 Apr 2020 15:30:50 -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: <202004281609.03SG9PHU013278@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: Tue, 28 Apr 2020 22:30:54 -0000 On 4/28/20 9:09 AM, Bryan Drewery wrote: > Author: bdrewery > Date: Tue Apr 28 16:09:25 2020 > New Revision: 360444 > URL: https://svnweb.freebsd.org/changeset/base/360444 > > Log: > Don't try ctfconvert on file without debug info. > > This was currently an ignored error but will change to a hard error > eventually. > > Differential Revision: https://reviews.freebsd.org/D24536 FYI, this just broke make tinderbox entirely for building head on older head or stable/12. The issue is that 'make tinderbox' uses the host's config binary to run 'config -m' against each kernel config file to determine it's MACHINE_ARCH, and when it gets an error make tinderbox just dies, e.g.: > make tinderbox NO_CLEAN=yes JFLAG=-j2 -------------------------------------------------------------- >>> make universe started on Tue Apr 28 09:27:36 PDT 2020 -------------------------------------------------------------- -------------------------------------------------------------- > Toolchain bootstrap started on Tue Apr 28 09:27:36 PDT 2020 -------------------------------------------------------------- -------------------------------------------------------------- > Toolchain bootstrap completed on Tue Apr 28 09:59:35 PDT 2020 -------------------------------------------------------------- >> amd64 started on Tue Apr 28 09:59:35 PDT 2020 >> amd64.amd64 buildworld started on Tue Apr 28 09:59:35 PDT 2020 >> amd64.amd64 buildworld completed on Tue Apr 28 15:28:31 PDT 2020 make[2]: "/usr/home/john/work/freebsd/clean/Makefile" line 717: "Target architecture for amd64/conf/GENERIC unknown. config(8) likely too old." *** Error code 1 The real fix is we somehow need to build a config binary as a build tool and use that instead of the host config binary. I'm not quite sure where to start on fixing that though. Previously riscv broke this when it bumped the config version for GENERICSF, but I just reverted that bump yesterday, however riscv dying meant you still built most of tinderbox before it dies compared to now. -- John Baldwin From owner-svn-src-all@freebsd.org Tue Apr 28 22:39: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 B5C9B2C7281; Tue, 28 Apr 2020 22:39:46 +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 49Bc5t4PsZz4Nhd; Tue, 28 Apr 2020 22:39:46 +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)) (Client did not present a certificate) by freefall.freebsd.org (Postfix) with ESMTPS id 603581F05E; Tue, 28 Apr 2020 22:39:46 +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 889A419542; Tue, 28 Apr 2020 22:39:45 +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 OhCiv_H_IuRG; Tue, 28 Apr 2020 22:38:45 +0000 (UTC) Subject: Re: svn commit: r360444 - head/sys/conf DKIM-Filter: OpenDKIM Filter v2.10.3 mail.xzibition.com 8530819541 To: John Baldwin , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <202004281609.03SG9PHU013278@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: Date: Tue, 28 Apr 2020 15:38:45 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit 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, 28 Apr 2020 22:39:46 -0000 On 4/28/2020 3:30 PM, John Baldwin wrote: > On 4/28/20 9:09 AM, Bryan Drewery wrote: >> Author: bdrewery >> Date: Tue Apr 28 16:09:25 2020 >> New Revision: 360444 >> URL: https://svnweb.freebsd.org/changeset/base/360444 >> >> Log: >> Don't try ctfconvert on file without debug info. >> >> This was currently an ignored error but will change to a hard error >> eventually. >> >> Differential Revision: https://reviews.freebsd.org/D24536 > > FYI, this just broke make tinderbox entirely for building head on > older head or stable/12. The issue is that 'make tinderbox' uses > the host's config binary to run 'config -m' against each kernel > config file to determine it's MACHINE_ARCH, and when it gets an error > make tinderbox just dies, e.g.: > >> make tinderbox NO_CLEAN=yes JFLAG=-j2 > -------------------------------------------------------------- >>>> make universe started on Tue Apr 28 09:27:36 PDT 2020 > -------------------------------------------------------------- > -------------------------------------------------------------- >> Toolchain bootstrap started on Tue Apr 28 09:27:36 PDT 2020 > -------------------------------------------------------------- > -------------------------------------------------------------- >> Toolchain bootstrap completed on Tue Apr 28 09:59:35 PDT 2020 > -------------------------------------------------------------- >>> amd64 started on Tue Apr 28 09:59:35 PDT 2020 >>> amd64.amd64 buildworld started on Tue Apr 28 09:59:35 PDT 2020 >>> amd64.amd64 buildworld completed on Tue Apr 28 15:28:31 PDT 2020 > make[2]: "/usr/home/john/work/freebsd/clean/Makefile" line 717: "Target architecture for amd64/conf/GENERIC unknown. config(8) likely too old." > *** Error code 1 > > The real fix is we somehow need to build a config binary as a build > tool and use that instead of the host config binary. I'm not quite > sure where to start on fixing that though. It's already in bootstrap-tools. Ah I see the problem is Makefile. Why isn't this already solved by now? The "universe-toolchain" target should be building it already. Just need to get the PATH right. I'm working on a fix. > > Previously riscv broke this when it bumped the config version for > GENERICSF, but I just reverted that bump yesterday, however riscv > dying meant you still built most of tinderbox before it dies compared > to now. > -- Regards, Bryan Drewery From owner-svn-src-all@freebsd.org Wed Apr 29 02:18: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 F35382CB83C; Wed, 29 Apr 2020 02:18:39 +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 49BhyR5t3zz4ZkJ; Wed, 29 Apr 2020 02:18:39 +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 C07AF2E052; Wed, 29 Apr 2020 02:18:39 +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 03T2IdZj091900; Wed, 29 Apr 2020 02:18:39 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03T2IdZM091899; Wed, 29 Apr 2020 02:18:39 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <202004290218.03T2IdZM091899@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Wed, 29 Apr 2020 02:18:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360453 - head X-SVN-Group: head X-SVN-Commit-Author: bdrewery X-SVN-Commit-Paths: head X-SVN-Commit-Revision: 360453 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, 29 Apr 2020 02:18:40 -0000 Author: bdrewery Date: Wed Apr 29 02:18:39 2020 New Revision: 360453 URL: https://svnweb.freebsd.org/changeset/base/360453 Log: Use universe-toolchain config(8) This is a temporary hack to aid with config(8) changing in r360443. It will not work for all cases. env PATH is used because universe-toolchain is only built when worlds are built, and then only if clang is needed, so it may not exist. universe-toolchain needs to be expanded to always be built, inspected to remove non-cross-build-safe tools, used for buildworld/buildkernel, and potentially incremental build support. Sponsored by: Dell EMC Modified: head/Makefile Modified: head/Makefile ============================================================================== --- head/Makefile Tue Apr 28 20:34:27 2020 (r360452) +++ head/Makefile Wed Apr 29 02:18:39 2020 (r360453) @@ -711,6 +711,7 @@ KERNCONFS!= cd ${KERNSRCDIR}/${TARGET}/conf && \ universe_kernconfs: universe_kernels_prologue .PHONY .for kernel in ${KERNCONFS} TARGET_ARCH_${kernel}!= cd ${KERNSRCDIR}/${TARGET}/conf && \ + env PATH=${HOST_OBJTOP}/tmp/legacy/bin:${PATH:Q} \ config -m ${KERNSRCDIR}/${TARGET}/conf/${kernel} 2> /dev/null | \ grep -v WARNING: | cut -f 2 .if empty(TARGET_ARCH_${kernel}) From owner-svn-src-all@freebsd.org Wed Apr 29 05:11: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 DF8242CEB6E; Wed, 29 Apr 2020 05:11:17 +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 49Bmnd5dQyz3F8m; Wed, 29 Apr 2020 05:11:17 +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 BC9EC25E; Wed, 29 Apr 2020 05:11:17 +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 03T5BHBk099310; Wed, 29 Apr 2020 05:11:17 GMT (envelope-from freqlabs@FreeBSD.org) Received: (from freqlabs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03T5BHff099309; Wed, 29 Apr 2020 05:11:17 GMT (envelope-from freqlabs@FreeBSD.org) Message-Id: <202004290511.03T5BHff099309@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: freqlabs set sender to freqlabs@FreeBSD.org using -f From: Ryan Moeller Date: Wed, 29 Apr 2020 05:11: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: r360454 - stable/12/stand/lua X-SVN-Group: stable-12 X-SVN-Commit-Author: freqlabs X-SVN-Commit-Paths: stable/12/stand/lua X-SVN-Commit-Revision: 360454 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, 29 Apr 2020 05:11:17 -0000 Author: freqlabs Date: Wed Apr 29 05:11:17 2020 New Revision: 360454 URL: https://svnweb.freebsd.org/changeset/base/360454 Log: MFC r360199 menu.lua: Give names to menu entries Make menu customizations easier by naming the entries and using the names to build the table entries. Reviewed by: kevans Approved by: mav (mentor) Sponsored by: iXsystems, Inc. Differential Revision: https://reviews.freebsd.org/D24527 Modified: stable/12/stand/lua/menu.lua Directory Properties: stable/12/ (props changed) Modified: stable/12/stand/lua/menu.lua ============================================================================== --- stable/12/stand/lua/menu.lua Wed Apr 29 02:18:39 2020 (r360453) +++ stable/12/stand/lua/menu.lua Wed Apr 29 05:11:17 2020 (r360454) @@ -212,30 +212,50 @@ menu.boot_options = { menu.welcome = { entries = function() local menu_entries = menu.welcome.all_entries - -- Swap the first two menu items on single user boot + local multi_user = menu_entries.multi_user + local single_user = menu_entries.single_user + local boot_entry_1, boot_entry_2 if core.isSingleUserBoot() then - -- We'll cache the swapped menu, for performance - if menu.welcome.swapped_menu ~= nil then - return menu.welcome.swapped_menu + -- Swap the first two menu items on single user boot. + -- We'll cache the alternate entries for performance. + local alts = menu_entries.alts + if alts == nil then + single_user = core.deepCopyTable(single_user) + multi_user = core.deepCopyTable(multi_user) + single_user.name = single_user.alternate_name + multi_user.name = multi_user.alternate_name + menu_entries.alts = { + single_user = single_user, + multi_user = multi_user, + } + else + single_user = alts.single_user + multi_user = alts.multi_user end - -- Shallow copy the table - menu_entries = core.deepCopyTable(menu_entries) - - -- Swap the first two menu entries - menu_entries[1], menu_entries[2] = - menu_entries[2], menu_entries[1] - - -- Then set their names to their alternate names - menu_entries[1].name, menu_entries[2].name = - menu_entries[1].alternate_name, - menu_entries[2].alternate_name - menu.welcome.swapped_menu = menu_entries + boot_entry_1, boot_entry_2 = single_user, multi_user + else + boot_entry_1, boot_entry_2 = multi_user, single_user end - return menu_entries + return { + boot_entry_1, + boot_entry_2, + menu_entries.prompt, + menu_entries.reboot, + { + entry_type = core.MENU_SEPARATOR, + }, + { + entry_type = core.MENU_SEPARATOR, + name = "Options:", + }, + menu_entries.kernel_options, + menu_entries.boot_options, + menu_entries.boot_envs, + menu_entries.chainload, + } end, all_entries = { - -- boot multi user - { + multi_user = { entry_type = core.MENU_ENTRY, name = color.highlight("B") .. "oot Multi user " .. color.highlight("[Enter]"), @@ -248,8 +268,7 @@ menu.welcome = { end, alias = {"b", "B"}, }, - -- boot single user - { + single_user = { entry_type = core.MENU_ENTRY, name = "Boot " .. color.highlight("S") .. "ingle user", -- Not a standard menu entry function! @@ -261,8 +280,7 @@ menu.welcome = { end, alias = {"s", "S"}, }, - -- escape to interpreter - { + prompt = { entry_type = core.MENU_RETURN, name = color.highlight("Esc") .. "ape to loader prompt", func = function() @@ -270,8 +288,7 @@ menu.welcome = { end, alias = {core.KEYSTR_ESCAPE}, }, - -- reboot - { + reboot = { entry_type = core.MENU_ENTRY, name = color.highlight("R") .. "eboot", func = function() @@ -279,15 +296,7 @@ menu.welcome = { end, alias = {"r", "R"}, }, - { - entry_type = core.MENU_SEPARATOR, - }, - { - entry_type = core.MENU_SEPARATOR, - name = "Options:", - }, - -- kernel options - { + kernel_options = { entry_type = core.MENU_CAROUSEL_ENTRY, carousel_id = "kernel", items = core.kernelList, @@ -319,15 +328,13 @@ menu.welcome = { end, alias = {"k", "K"}, }, - -- boot options - { + boot_options = { entry_type = core.MENU_SUBMENU, name = "Boot " .. color.highlight("O") .. "ptions", submenu = menu.boot_options, alias = {"o", "O"}, }, - -- boot environments - { + boot_envs = { entry_type = core.MENU_SUBMENU, visible = function() return core.isZFSBoot() and @@ -337,8 +344,7 @@ menu.welcome = { submenu = menu.boot_environments, alias = {"e", "E"}, }, - -- chainload - { + chainload = { entry_type = core.MENU_ENTRY, name = function() return 'Chain' .. color.highlight("L") .. From owner-svn-src-all@freebsd.org Wed Apr 29 08:27: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 AF8DA2AC2D4; Wed, 29 Apr 2020 08:27:42 +0000 (UTC) (envelope-from wigneddoom@yandex.ru) Received: from forward500j.mail.yandex.net (forward500j.mail.yandex.net [IPv6:2a02:6b8:0:801:2::110]) (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 49Bs8F07MJz3Qr7; Wed, 29 Apr 2020 08:27:40 +0000 (UTC) (envelope-from wigneddoom@yandex.ru) Received: from mxback24o.mail.yandex.net (mxback24o.mail.yandex.net [IPv6:2a02:6b8:0:1a2d::75]) by forward500j.mail.yandex.net (Yandex) with ESMTP id E5F3711C11D8; Wed, 29 Apr 2020 11:27:36 +0300 (MSK) Received: from localhost (localhost [::1]) by mxback24o.mail.yandex.net (mxback/Yandex) with ESMTP id MtI3WYdPkY-Rak8jC4l; Wed, 29 Apr 2020 11:27:36 +0300 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1588148856; bh=zX4FeCt+201HfNRjTWR7nYLiRq3s1ttq9DEGgnuXzDA=; h=References:Date:Message-Id:Subject:In-Reply-To:To:From; b=Gv70QT7Oyt12U4lYxAc/Hl/BZG1Y4EcYtoA5GKslHJdiKovGlZDk95YT3xnCB0bSU AYFXaTcgBXTZrrHyU/1OvtuALXyNWUljdaHG3oIB/Qj/nm2+hNHEcwO3Wzn9cMcKU9 LrrxLQQR9V77meJtT46yO8VAo5ZEyPyYTY1EACMk= Received: by iva1-b50b8ed859e3.qloud-c.yandex.net with HTTP; Wed, 29 Apr 2020 11:27:36 +0300 From: Aleksandr Fedorov To: Eric Joyner , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" In-Reply-To: <202004272202.03RM2iR2012757@repo.freebsd.org> References: <202004272202.03RM2iR2012757@repo.freebsd.org> Subject: Re: svn commit: r360398 - head/sys/net X-Mailer: Yamail [ http://yandex.ru ] 5.0 Date: Wed, 29 Apr 2020 11:27:36 +0300 Message-Id: <122841588148797@mail.yandex.ru> X-Rspamd-Queue-Id: 49Bs8F07MJz3Qr7 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=yandex.ru header.s=mail header.b=Gv70QT7O; dmarc=pass (policy=none) header.from=yandex.ru; spf=pass (mx1.freebsd.org: domain of wigneddoom@yandex.ru designates 2a02:6b8:0:801:2::110 as permitted sender) smtp.mailfrom=wigneddoom@yandex.ru X-Spamd-Result: default: False [-2.80 / 15.00]; ARC_NA(0.00)[]; TO_DN_EQ_ADDR_SOME(0.00)[]; R_DKIM_ALLOW(-0.20)[yandex.ru:s=mail]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; R_SPF_ALLOW(-0.20)[+ip6:2a02:6b8:0::/52]; FREEMAIL_FROM(0.00)[yandex.ru]; TO_DN_SOME(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; IP_SCORE_FREEMAIL(0.00)[]; RCVD_COUNT_THREE(0.00)[3]; RCVD_TLS_LAST(0.00)[]; DKIM_TRACE(0.00)[yandex.ru:+]; DMARC_POLICY_ALLOW(-0.50)[yandex.ru,none]; MIME_HTML_ONLY(0.20)[]; IP_SCORE(0.00)[ip: (-9.36), ipnet: 2a02:6b8::/32(-4.77), asn: 13238(-3.85), country: RU(0.01)]; RCVD_IN_DNSWL_LOW(-0.10)[0.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.1]; FROM_EQ_ENVFROM(0.00)[]; FREEMAIL_ENVFROM(0.00)[yandex.ru]; ASN(0.00)[asn:13238, ipnet:2a02:6b8::/32, country:RU]; MIME_TRACE(0.00)[0:~]; DWL_DNSWL_NONE(0.00)[yandex.ru.dwl.dnswl.org : 127.0.5.0] MIME-Version: 1.0 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, 29 Apr 2020 08:27:42 -0000 From owner-svn-src-all@freebsd.org Wed Apr 29 10:53: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 E7C1B2AFEA0; Wed, 29 Apr 2020 10:53:35 +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 49BwNb5rZBz43j7; Wed, 29 Apr 2020 10:53: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 C3CDA4569; Wed, 29 Apr 2020 10:53: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 03TArZ0E014625; Wed, 29 Apr 2020 10:53:35 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03TArZen014624; Wed, 29 Apr 2020 10:53:35 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202004291053.03TArZen014624@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Wed, 29 Apr 2020 10:53: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: r360455 - stable/12/sys/x86/x86 X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/12/sys/x86/x86 X-SVN-Commit-Revision: 360455 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, 29 Apr 2020 10:53:36 -0000 Author: kib Date: Wed Apr 29 10:53:35 2020 New Revision: 360455 URL: https://svnweb.freebsd.org/changeset/base/360455 Log: MFC r359997: Improve TSC calibration logic. Modified: stable/12/sys/x86/x86/tsc.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/x86/x86/tsc.c ============================================================================== --- stable/12/sys/x86/x86/tsc.c Wed Apr 29 05:11:17 2020 (r360454) +++ stable/12/sys/x86/x86/tsc.c Wed Apr 29 10:53:35 2020 (r360455) @@ -82,8 +82,8 @@ SYSCTL_INT(_machdep, OID_AUTO, disable_tsc, CTLFLAG_RD "Disable x86 Time Stamp Counter"); static int tsc_skip_calibration; -SYSCTL_INT(_machdep, OID_AUTO, disable_tsc_calibration, CTLFLAG_RDTUN | - CTLFLAG_NOFETCH, &tsc_skip_calibration, 0, +SYSCTL_INT(_machdep, OID_AUTO, disable_tsc_calibration, CTLFLAG_RDTUN, + &tsc_skip_calibration, 0, "Disable TSC frequency calibration"); static void tsc_freq_changed(void *arg, const struct cf_level *level, @@ -230,7 +230,6 @@ probe_tsc_freq(void) u_int regs[4]; uint64_t tmp_freq, tsc1, tsc2; int no_cpuid_override; - uint16_t bootflags; if (cpu_high >= 6) { do_cpuid(6, regs); @@ -291,30 +290,13 @@ probe_tsc_freq(void) break; } - if (!TUNABLE_INT_FETCH("machdep.disable_tsc_calibration", - &tsc_skip_calibration)) { - /* - * User did not give the order about calibration. - * If he did, we do not try to guess. - * - * Otherwise, if ACPI FADT reports that the platform - * is legacy-free and CPUID provides TSC frequency, - * use it. The calibration could fail anyway since - * ISA timer can be absent or power gated. - */ - if (acpi_get_fadt_bootflags(&bootflags) && - (bootflags & ACPI_FADT_LEGACY_DEVICES) == 0 && - tsc_freq_cpuid(&tmp_freq)) { - printf("Skipping TSC calibration since no legacy " - "devices reported by FADT and CPUID works\n"); - tsc_skip_calibration = 1; - } - } if (tsc_skip_calibration) { if (tsc_freq_cpuid(&tmp_freq)) tsc_freq = tmp_freq; else if (cpu_vendor_id == CPU_VENDOR_INTEL) tsc_freq_intel(); + if (tsc_freq == 0) + tsc_disabled = 1; } else { if (bootverbose) printf("Calibrating TSC clock ... "); @@ -328,8 +310,9 @@ probe_tsc_freq(void) * the frequency reported by CPUID 0x15/0x16 leafs * differ significantly, this probably means that * calibration is bogus. It happens on machines - * without 8254 timer and with BIOS not properly - * reporting it in FADT boot flags. + * without 8254 timer. The BIOS rarely properly + * reports it in FADT boot flags, so just compare the + * frequencies directly. */ if (tsc_freq_cpuid(&tmp_freq) && qabs(tsc_freq - tmp_freq) > uqmin(tsc_freq, tmp_freq)) { From owner-svn-src-all@freebsd.org Wed Apr 29 10:54: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 3A1FB2AFF3D; Wed, 29 Apr 2020 10:54:59 +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 49BwQC0nWqz43qk; Wed, 29 Apr 2020 10:54:59 +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 163AA456A; Wed, 29 Apr 2020 10:54:59 +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 03TAswhw014750; Wed, 29 Apr 2020 10:54:58 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03TAswbq014748; Wed, 29 Apr 2020 10:54:58 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202004291054.03TAswbq014748@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Wed, 29 Apr 2020 10:54: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: r360456 - stable/12/libexec/rtld-elf X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/12/libexec/rtld-elf X-SVN-Commit-Revision: 360456 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, 29 Apr 2020 10:54:59 -0000 Author: kib Date: Wed Apr 29 10:54:58 2020 New Revision: 360456 URL: https://svnweb.freebsd.org/changeset/base/360456 Log: MFC r360201: rtld: ignore static TLS segments when tracing. Modified: stable/12/libexec/rtld-elf/rtld.c stable/12/libexec/rtld-elf/rtld.h Directory Properties: stable/12/ (props changed) Modified: stable/12/libexec/rtld-elf/rtld.c ============================================================================== --- stable/12/libexec/rtld-elf/rtld.c Wed Apr 29 10:53:35 2020 (r360455) +++ stable/12/libexec/rtld-elf/rtld.c Wed Apr 29 10:54:58 2020 (r360456) @@ -3320,7 +3320,7 @@ rtld_dlopen(const char *name, int fd, int mode) if (mode & RTLD_NOLOAD) lo_flags |= RTLD_LO_NOLOAD; if (ld_tracing != NULL) - lo_flags |= RTLD_LO_TRACE; + lo_flags |= RTLD_LO_TRACE | RTLD_LO_IGNSTLS; return (dlopen_object(name, fd, obj_main, lo_flags, mode & (RTLD_MODEMASK | RTLD_GLOBAL), NULL)); @@ -3371,15 +3371,15 @@ dlopen_object(const char *name, int fd, Obj_Entry *ref /* We loaded something new. */ assert(globallist_next(old_obj_tail) == obj); result = 0; - if ((lo_flags & RTLD_LO_EARLY) == 0 && obj->static_tls && - !allocate_tls_offset(obj)) { + if ((lo_flags & (RTLD_LO_EARLY | RTLD_LO_IGNSTLS)) == 0 && + obj->static_tls && !allocate_tls_offset(obj)) { _rtld_error("%s: No space available " "for static Thread Local Storage", obj->path); result = -1; } if (result != -1) result = load_needed_objects(obj, lo_flags & (RTLD_LO_DLOPEN | - RTLD_LO_EARLY)); + RTLD_LO_EARLY | RTLD_LO_IGNSTLS)); init_dag(obj); ref_dag(obj); if (result != -1) Modified: stable/12/libexec/rtld-elf/rtld.h ============================================================================== --- stable/12/libexec/rtld-elf/rtld.h Wed Apr 29 10:53:35 2020 (r360455) +++ stable/12/libexec/rtld-elf/rtld.h Wed Apr 29 10:54:58 2020 (r360456) @@ -309,6 +309,7 @@ TAILQ_HEAD(obj_entry_q, Struct_Obj_Entry); #define RTLD_LO_FILTEES 0x10 /* Loading filtee. */ #define RTLD_LO_EARLY 0x20 /* Do not call ctors, postpone it to the initialization during the image start. */ +#define RTLD_LO_IGNSTLS 0x40 /* Do not allocate static TLS */ /* * Symbol cache entry used during relocation to avoid multiple lookups From owner-svn-src-all@freebsd.org Wed Apr 29 10:57: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 295B32AFFE4; Wed, 29 Apr 2020 10:57:25 +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 49BwT10HXbz43yj; Wed, 29 Apr 2020 10:57:25 +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 DA68E456B; Wed, 29 Apr 2020 10:57:24 +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 03TAvOLq014951; Wed, 29 Apr 2020 10:57:24 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03TAvMuJ014937; Wed, 29 Apr 2020 10:57:22 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202004291057.03TAvMuJ014937@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Wed, 29 Apr 2020 10:57:22 +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: r360457 - in stable/12/libexec/rtld-elf: . aarch64 amd64 arm i386 mips powerpc powerpc64 riscv sparc64 X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: in stable/12/libexec/rtld-elf: . aarch64 amd64 arm i386 mips powerpc powerpc64 riscv sparc64 X-SVN-Commit-Revision: 360457 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, 29 Apr 2020 10:57:25 -0000 Author: kib Date: Wed Apr 29 10:57:21 2020 New Revision: 360457 URL: https://svnweb.freebsd.org/changeset/base/360457 Log: MFC r360091: Align initial-exec TLS segments to the p_vaddr % align. Modified: stable/12/libexec/rtld-elf/aarch64/rtld_machdep.h stable/12/libexec/rtld-elf/amd64/reloc.c stable/12/libexec/rtld-elf/amd64/rtld_machdep.h stable/12/libexec/rtld-elf/arm/rtld_machdep.h stable/12/libexec/rtld-elf/i386/reloc.c stable/12/libexec/rtld-elf/i386/rtld_machdep.h stable/12/libexec/rtld-elf/mips/rtld_machdep.h stable/12/libexec/rtld-elf/powerpc/rtld_machdep.h stable/12/libexec/rtld-elf/powerpc64/rtld_machdep.h stable/12/libexec/rtld-elf/riscv/rtld_machdep.h stable/12/libexec/rtld-elf/rtld.c stable/12/libexec/rtld-elf/sparc64/rtld_machdep.h Directory Properties: stable/12/ (props changed) Modified: stable/12/libexec/rtld-elf/aarch64/rtld_machdep.h ============================================================================== --- stable/12/libexec/rtld-elf/aarch64/rtld_machdep.h Wed Apr 29 10:54:58 2020 (r360456) +++ stable/12/libexec/rtld-elf/aarch64/rtld_machdep.h Wed Apr 29 10:57:21 2020 (r360457) @@ -72,9 +72,9 @@ Elf_Addr reloc_jmpslot(Elf_Addr *where, Elf_Addr targe #define round(size, align) \ (((size) + (align) - 1) & ~((align) - 1)) -#define calculate_first_tls_offset(size, align) \ +#define calculate_first_tls_offset(size, align, offset) \ round(16, align) -#define calculate_tls_offset(prev_offset, prev_size, size, align) \ +#define calculate_tls_offset(prev_offset, prev_size, size, align, offset) \ round(prev_offset + prev_size, align) #define calculate_tls_end(off, size) ((off) + (size)) #define calculate_tls_post_size(align) \ Modified: stable/12/libexec/rtld-elf/amd64/reloc.c ============================================================================== --- stable/12/libexec/rtld-elf/amd64/reloc.c Wed Apr 29 10:54:58 2020 (r360456) +++ stable/12/libexec/rtld-elf/amd64/reloc.c Wed Apr 29 10:57:21 2020 (r360457) @@ -552,3 +552,33 @@ void *__tls_get_addr(tls_index *ti) return tls_get_addr_common(&segbase[1], ti->ti_module, ti->ti_offset); } + +size_t +calculate_first_tls_offset(size_t size, size_t align, size_t offset) +{ + size_t res; + + res = roundup(size, align); + offset &= align - 1; + if (offset != 0) + res += align - offset; + return (res); +} + +size_t +calculate_tls_offset(size_t prev_offset, size_t prev_size __unused, size_t size, + size_t align, size_t offset) +{ + size_t res; + + res = roundup(prev_offset + size, align); + offset &= align - 1; + if (offset != 0) + res += align - offset; + return (res); +} +size_t +calculate_tls_end(size_t off, size_t size __unused) +{ + return (off); +} Modified: stable/12/libexec/rtld-elf/amd64/rtld_machdep.h ============================================================================== --- stable/12/libexec/rtld-elf/amd64/rtld_machdep.h Wed Apr 29 10:54:58 2020 (r360456) +++ stable/12/libexec/rtld-elf/amd64/rtld_machdep.h Wed Apr 29 10:57:21 2020 (r360457) @@ -61,14 +61,6 @@ extern uint32_t cpu_stdext_feature2; (((Elf_Addr (*)(uint32_t, uint32_t, uint32_t, uint32_t))ptr)( \ cpu_feature, cpu_feature2, cpu_stdext_feature, cpu_stdext_feature2)) -#define round(size, align) \ - (((size) + (align) - 1) & ~((align) - 1)) -#define calculate_first_tls_offset(size, align) \ - round(size, align) -#define calculate_tls_offset(prev_offset, prev_size, size, align) \ - round((prev_offset) + (size), align) -#define calculate_tls_end(off, size) (off) - typedef struct { unsigned long ti_module; unsigned long ti_offset; @@ -81,4 +73,8 @@ void *__tls_get_addr(tls_index *ti) __exported; #define md_abi_variant_hook(x) +size_t calculate_first_tls_offset(size_t size, size_t align, size_t offset); +size_t calculate_tls_offset(size_t prev_offset, size_t prev_size, size_t size, + size_t align, size_t offset); +size_t calculate_tls_end(size_t off, size_t size); #endif Modified: stable/12/libexec/rtld-elf/arm/rtld_machdep.h ============================================================================== --- stable/12/libexec/rtld-elf/arm/rtld_machdep.h Wed Apr 29 10:54:58 2020 (r360456) +++ stable/12/libexec/rtld-elf/arm/rtld_machdep.h Wed Apr 29 10:57:21 2020 (r360457) @@ -64,9 +64,9 @@ typedef struct { #define round(size, align) \ (((size) + (align) - 1) & ~((align) - 1)) -#define calculate_first_tls_offset(size, align) \ +#define calculate_first_tls_offset(size, align, offset) \ round(8, align) -#define calculate_tls_offset(prev_offset, prev_size, size, align) \ +#define calculate_tls_offset(prev_offset, prev_size, size, align, offset) \ round(prev_offset + prev_size, align) #define calculate_tls_end(off, size) ((off) + (size)) #define calculate_tls_post_size(align) \ Modified: stable/12/libexec/rtld-elf/i386/reloc.c ============================================================================== --- stable/12/libexec/rtld-elf/i386/reloc.c Wed Apr 29 10:54:58 2020 (r360456) +++ stable/12/libexec/rtld-elf/i386/reloc.c Wed Apr 29 10:57:21 2020 (r360457) @@ -539,3 +539,33 @@ void *__tls_get_addr(tls_index *ti) return tls_get_addr_common(&segbase[1], ti->ti_module, ti->ti_offset); } + +size_t +calculate_first_tls_offset(size_t size, size_t align, size_t offset) +{ + size_t res; + + res = roundup(size, align); + offset &= align - 1; + if (offset != 0) + res += align - offset; + return (res); +} + +size_t +calculate_tls_offset(size_t prev_offset, size_t prev_size __unused, size_t size, + size_t align, size_t offset) +{ + size_t res; + + res = roundup(prev_offset + size, align); + offset &= align - 1; + if (offset != 0) + res += align - offset; + return (res); +} +size_t +calculate_tls_end(size_t off, size_t size __unused) +{ + return (off); +} Modified: stable/12/libexec/rtld-elf/i386/rtld_machdep.h ============================================================================== --- stable/12/libexec/rtld-elf/i386/rtld_machdep.h Wed Apr 29 10:54:58 2020 (r360456) +++ stable/12/libexec/rtld-elf/i386/rtld_machdep.h Wed Apr 29 10:57:21 2020 (r360457) @@ -61,14 +61,6 @@ extern uint32_t cpu_stdext_feature2; (((Elf_Addr (*)(uint32_t, uint32_t, uint32_t, uint32_t))(ptr))( \ cpu_feature, cpu_feature2, cpu_stdext_feature, cpu_stdext_feature2)) -#define round(size, align) \ - (((size) + (align) - 1) & ~((align) - 1)) -#define calculate_first_tls_offset(size, align) \ - round(size, align) -#define calculate_tls_offset(prev_offset, prev_size, size, align) \ - round((prev_offset) + (size), align) -#define calculate_tls_end(off, size) (off) - typedef struct { unsigned long ti_module; unsigned long ti_offset; @@ -82,4 +74,8 @@ void *__tls_get_addr(tls_index *ti) __exported; #define md_abi_variant_hook(x) +size_t calculate_first_tls_offset(size_t size, size_t align, size_t offset); +size_t calculate_tls_offset(size_t prev_offset, size_t prev_size, size_t size, + size_t align, size_t offset); +size_t calculate_tls_end(size_t off, size_t size); #endif Modified: stable/12/libexec/rtld-elf/mips/rtld_machdep.h ============================================================================== --- stable/12/libexec/rtld-elf/mips/rtld_machdep.h Wed Apr 29 10:54:58 2020 (r360456) +++ stable/12/libexec/rtld-elf/mips/rtld_machdep.h Wed Apr 29 10:57:21 2020 (r360457) @@ -66,9 +66,9 @@ typedef struct { #define round(size, align) \ (((size) + (align) - 1) & ~((align) - 1)) -#define calculate_first_tls_offset(size, align) \ +#define calculate_first_tls_offset(size, align, offset) \ TLS_TCB_SIZE -#define calculate_tls_offset(prev_offset, prev_size, size, align) \ +#define calculate_tls_offset(prev_offset, prev_size, size, align, offset) \ round(prev_offset + prev_size, align) #define calculate_tls_end(off, size) ((off) + (size)) #define calculate_tls_post_size(align) 0 Modified: stable/12/libexec/rtld-elf/powerpc/rtld_machdep.h ============================================================================== --- stable/12/libexec/rtld-elf/powerpc/rtld_machdep.h Wed Apr 29 10:54:58 2020 (r360456) +++ stable/12/libexec/rtld-elf/powerpc/rtld_machdep.h Wed Apr 29 10:57:21 2020 (r360457) @@ -74,9 +74,9 @@ void _rtld_powerpc_pltcall(void); #define round(size, align) \ (((size) + (align) - 1) & ~((align) - 1)) -#define calculate_first_tls_offset(size, align) \ +#define calculate_first_tls_offset(size, align, offset) \ TLS_TCB_SIZE -#define calculate_tls_offset(prev_offset, prev_size, size, align) \ +#define calculate_tls_offset(prev_offset, prev_size, size, align, offset) \ round(prev_offset + prev_size, align) #define calculate_tls_end(off, size) ((off) + (size)) #define calculate_tls_post_size(align) 0 Modified: stable/12/libexec/rtld-elf/powerpc64/rtld_machdep.h ============================================================================== --- stable/12/libexec/rtld-elf/powerpc64/rtld_machdep.h Wed Apr 29 10:54:58 2020 (r360456) +++ stable/12/libexec/rtld-elf/powerpc64/rtld_machdep.h Wed Apr 29 10:57:21 2020 (r360457) @@ -66,9 +66,9 @@ void reloc_non_plt_self(Elf_Dyn *dynp, Elf_Addr relocb #define round(size, align) \ (((size) + (align) - 1) & ~((align) - 1)) -#define calculate_first_tls_offset(size, align) \ +#define calculate_first_tls_offset(size, align, offset) \ TLS_TCB_SIZE -#define calculate_tls_offset(prev_offset, prev_size, size, align) \ +#define calculate_tls_offset(prev_offset, prev_size, size, align, offset) \ round(prev_offset + prev_size, align) #define calculate_tls_end(off, size) ((off) + (size)) #define calculate_tls_post_size(align) 0 Modified: stable/12/libexec/rtld-elf/riscv/rtld_machdep.h ============================================================================== --- stable/12/libexec/rtld-elf/riscv/rtld_machdep.h Wed Apr 29 10:54:58 2020 (r360456) +++ stable/12/libexec/rtld-elf/riscv/rtld_machdep.h Wed Apr 29 10:57:21 2020 (r360457) @@ -88,9 +88,9 @@ Elf_Addr reloc_jmpslot(Elf_Addr *where, Elf_Addr targe #define round(size, align) \ (((size) + (align) - 1) & ~((align) - 1)) -#define calculate_first_tls_offset(size, align) \ +#define calculate_first_tls_offset(size, align, offset) \ TLS_TCB_SIZE -#define calculate_tls_offset(prev_offset, prev_size, size, align) \ +#define calculate_tls_offset(prev_offset, prev_size, size, align, offset) \ round(prev_offset + prev_size, align) #define calculate_tls_end(off, size) ((off) + (size)) #define calculate_tls_post_size(align) 0 Modified: stable/12/libexec/rtld-elf/rtld.c ============================================================================== --- stable/12/libexec/rtld-elf/rtld.c Wed Apr 29 10:54:58 2020 (r360456) +++ stable/12/libexec/rtld-elf/rtld.c Wed Apr 29 10:57:21 2020 (r360457) @@ -4932,13 +4932,13 @@ allocate_tls(Obj_Entry *objs, void *oldtls, size_t tcb ralign = tcbalign; if (tls_static_max_align > ralign) ralign = tls_static_max_align; - size = round(tls_static_space, ralign) + round(tcbsize, ralign); + size = roundup(tls_static_space, ralign) + roundup(tcbsize, ralign); assert(tcbsize >= 2*sizeof(Elf_Addr)); tls = malloc_aligned(size, ralign, 0 /* XXX */); dtv = xcalloc(tls_max_index + 2, sizeof(Elf_Addr)); - segbase = (Elf_Addr)(tls + round(tls_static_space, ralign)); + segbase = (Elf_Addr)(tls + roundup(tls_static_space, ralign)); ((Elf_Addr*)segbase)[0] = segbase; ((Elf_Addr*)segbase)[1] = (Elf_Addr) dtv; @@ -5004,7 +5004,7 @@ free_tls(void *tls, size_t tcbsize __unused, size_t t ralign = tcbalign; if (tls_static_max_align > ralign) ralign = tls_static_max_align; - size = round(tls_static_space, ralign); + size = roundup(tls_static_space, ralign); dtv = ((Elf_Addr**)tls)[1]; dtvsize = dtv[1]; @@ -5062,10 +5062,11 @@ allocate_tls_offset(Obj_Entry *obj) } if (tls_last_offset == 0) - off = calculate_first_tls_offset(obj->tlssize, obj->tlsalign); + off = calculate_first_tls_offset(obj->tlssize, obj->tlsalign, + obj->tlspoffset); else off = calculate_tls_offset(tls_last_offset, tls_last_size, - obj->tlssize, obj->tlsalign); + obj->tlssize, obj->tlsalign, obj->tlspoffset); /* * If we have already fixed the size of the static TLS block, we Modified: stable/12/libexec/rtld-elf/sparc64/rtld_machdep.h ============================================================================== --- stable/12/libexec/rtld-elf/sparc64/rtld_machdep.h Wed Apr 29 10:54:58 2020 (r360456) +++ stable/12/libexec/rtld-elf/sparc64/rtld_machdep.h Wed Apr 29 10:57:21 2020 (r360457) @@ -58,9 +58,9 @@ Elf_Addr reloc_jmpslot(Elf_Addr *, Elf_Addr, #define round(size, align) \ (((size) + (align) - 1) & ~((align) - 1)) -#define calculate_first_tls_offset(size, align) \ +#define calculate_first_tls_offset(size, align, offset) \ round(size, align) -#define calculate_tls_offset(prev_offset, prev_size, size, align) \ +#define calculate_tls_offset(prev_offset, prev_size, size, align, offset) \ round((prev_offset) + (size), align) #define calculate_tls_end(off, size) ((off) + (size)) From owner-svn-src-all@freebsd.org Wed Apr 29 11:25: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 8161D2B0989; Wed, 29 Apr 2020 11:25:05 +0000 (UTC) (envelope-from bcr@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 49Bx4x2qFQz459H; Wed, 29 Apr 2020 11:25:05 +0000 (UTC) (envelope-from bcr@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 5BFC04AF0; Wed, 29 Apr 2020 11:25:05 +0000 (UTC) (envelope-from bcr@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03TBP5rq033202; Wed, 29 Apr 2020 11:25:05 GMT (envelope-from bcr@FreeBSD.org) Received: (from bcr@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03TBP52c033201; Wed, 29 Apr 2020 11:25:05 GMT (envelope-from bcr@FreeBSD.org) Message-Id: <202004291125.03TBP52c033201@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bcr set sender to bcr@FreeBSD.org using -f From: Benedict Reuschling Date: Wed, 29 Apr 2020 11:25:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360458 - head/share/man/man4 X-SVN-Group: head X-SVN-Commit-Author: bcr X-SVN-Commit-Paths: head/share/man/man4 X-SVN-Commit-Revision: 360458 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, 29 Apr 2020 11:25:05 -0000 Author: bcr (doc committer) Date: Wed Apr 29 11:25:04 2020 New Revision: 360458 URL: https://svnweb.freebsd.org/changeset/base/360458 Log: When copying and pasting the code in the EXAMPLE section, it would result in the following error: "ngctl: send msg: Invalid argument" The reason for this is the missing whitespace to separate the arguments. When adding the whitespace, the example works as intended. Submitted by: lutz_donnerhacke.de Approved by: bcr Differential Revision: https://reviews.freebsd.org/D23773 Modified: head/share/man/man4/ng_bpf.4 Modified: head/share/man/man4/ng_bpf.4 ============================================================================== --- head/share/man/man4/ng_bpf.4 Wed Apr 29 10:57:21 2020 (r360457) +++ head/share/man/man4/ng_bpf.4 Wed Apr 29 11:25:04 2020 (r360458) @@ -35,7 +35,7 @@ .\" $FreeBSD$ .\" $Whistle: ng_bpf.8,v 1.2 1999/12/03 01:57:12 archie Exp $ .\" -.Dd November 13, 2012 +.Dd April 29, 2020 .Dt NG_BPF 4 .Os .Sh NAME @@ -158,7 +158,7 @@ NOTMATCHHOOK="hook3" BPFPROG=$( tcpdump -s 8192 -p -ddd ${PATTERN} | \\ ( read len ; \\ - echo -n "bpf_prog_len=$len" ; \\ + echo -n "bpf_prog_len=$len " ; \\ echo -n "bpf_prog=[" ; \\ while read code jt jf k ; do \\ echo -n " { code=$code jt=$jt jf=$jf k=$k }" ; \\ From owner-svn-src-all@freebsd.org Wed Apr 29 11:46: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 706122B104E; Wed, 29 Apr 2020 11:46:02 +0000 (UTC) (envelope-from bcr@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 49BxY62NTWz46Mr; Wed, 29 Apr 2020 11:46:02 +0000 (UTC) (envelope-from bcr@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 4D05D4F2E; Wed, 29 Apr 2020 11:46:02 +0000 (UTC) (envelope-from bcr@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03TBk2Ml045490; Wed, 29 Apr 2020 11:46:02 GMT (envelope-from bcr@FreeBSD.org) Received: (from bcr@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03TBk2JB045489; Wed, 29 Apr 2020 11:46:02 GMT (envelope-from bcr@FreeBSD.org) Message-Id: <202004291146.03TBk2JB045489@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bcr set sender to bcr@FreeBSD.org using -f From: Benedict Reuschling Date: Wed, 29 Apr 2020 11:46:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360459 - head/share/man/man9 X-SVN-Group: head X-SVN-Commit-Author: bcr X-SVN-Commit-Paths: head/share/man/man9 X-SVN-Commit-Revision: 360459 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, 29 Apr 2020 11:46:02 -0000 Author: bcr (doc committer) Date: Wed Apr 29 11:46:01 2020 New Revision: 360459 URL: https://svnweb.freebsd.org/changeset/base/360459 Log: Add HISTORY section to domain(9). Submitted by: gbergling_gmail.com Approved by: bcr Differential Revision: https://reviews.freebsd.org/D24150 Modified: head/share/man/man9/domain.9 Modified: head/share/man/man9/domain.9 ============================================================================== --- head/share/man/man9/domain.9 Wed Apr 29 11:25:04 2020 (r360458) +++ head/share/man/man9/domain.9 Wed Apr 29 11:46:01 2020 (r360459) @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd June 1, 2016 +.Dd April 29, 2020 .Dt DOMAIN 9 .Os .Sh NAME @@ -236,6 +236,18 @@ the default protocol may be returned for types if the domain has a default raw protocol. .Sh SEE ALSO .Xr socket 2 +.Sh HISTORY +The functions +.Fn domain_add , +.Fn pfctlinput , +.Fn pfctlinput2 , +.Fn pffinddomain , +.Fn pffindproto , +.Fn pffindtype +and +.Fn DOMAIN_SET +first appeared in +.Fx 4.4 . .Sh AUTHORS This manual page was written by .An Chad David Aq Mt davidc@acns.ab.ca . From owner-svn-src-all@freebsd.org Wed Apr 29 13:41: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 8598B2B4CA3; Wed, 29 Apr 2020 13:41:33 +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 49C06P2k9Yz4DMt; Wed, 29 Apr 2020 13:41:33 +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 58A0C655A; Wed, 29 Apr 2020 13:41:33 +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 03TDfXo0019046; Wed, 29 Apr 2020 13:41:33 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03TDfWV4019044; Wed, 29 Apr 2020 13:41:32 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202004291341.03TDfWV4019044@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 29 Apr 2020 13:41:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360460 - head/lib/liblua X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/lib/liblua X-SVN-Commit-Revision: 360460 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, 29 Apr 2020 13:41:33 -0000 Author: emaste Date: Wed Apr 29 13:41:32 2020 New Revision: 360460 URL: https://svnweb.freebsd.org/changeset/base/360460 Log: liblua: ensure that "require" will fail in bootstrap flua We do not want to support bootstrapping lua modules, so ensure that require will fail by providing a nonexistent path. Reviewed by: kevans MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D24610 Modified: head/lib/liblua/Makefile head/lib/liblua/luaconf.h Modified: head/lib/liblua/Makefile ============================================================================== --- head/lib/liblua/Makefile Wed Apr 29 11:46:01 2020 (r360459) +++ head/lib/liblua/Makefile Wed Apr 29 13:41:32 2020 (r360460) @@ -26,4 +26,9 @@ SRCS+= lauxlib.c lbaselib.c lbitlib.c lcorolib.c ldbli CFLAGS+= -I${.CURDIR} -I${.CURDIR}/modules -I${LUASRC} CFLAGS+= -DLUA_PROGNAME="\"${PROG}\"" +.if defined(BOOTSTRAPPING) +CFLAGS+= -DLUA_PATH_DEFAULT="\"/nonexistent/?.lua\"" +CFLAGS+= -DLUA_CPATH_DEFAULT="\"/nonexistent/?.so\"" +.endif + .include Modified: head/lib/liblua/luaconf.h ============================================================================== --- head/lib/liblua/luaconf.h Wed Apr 29 11:46:01 2020 (r360459) +++ head/lib/liblua/luaconf.h Wed Apr 29 13:41:32 2020 (r360460) @@ -208,12 +208,16 @@ #define LUA_ROOT "/usr/local/" #define LUA_LDIR LUA_ROOT "share/lua/" LUA_VDIR "/" #define LUA_CDIR LUA_ROOT "lib/lua/" LUA_VDIR "/" +#if !defined(LUA_PATH_DEFAULT) #define LUA_PATH_DEFAULT \ LUA_LDIR"?.lua;" LUA_LDIR"?/init.lua;" \ LUA_CDIR"?.lua;" LUA_CDIR"?/init.lua;" \ "./?.lua;" "./?/init.lua" +#endif +#if !defined(LUA_CPATH_DEFAULT) #define LUA_CPATH_DEFAULT \ LUA_CDIR"?.so;" LUA_CDIR"loadall.so;" "./?.so" +#endif #endif /* } */ From owner-svn-src-all@freebsd.org Wed Apr 29 13:43: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 D361A2B4D9A; Wed, 29 Apr 2020 13:43:15 +0000 (UTC) (envelope-from mmel@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 49C08M5H1Rz4DbS; Wed, 29 Apr 2020 13:43:15 +0000 (UTC) (envelope-from mmel@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 B060C65C2; Wed, 29 Apr 2020 13:43:15 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03TDhFka019157; Wed, 29 Apr 2020 13:43:15 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03TDhFfN019156; Wed, 29 Apr 2020 13:43:15 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <202004291343.03TDhFfN019156@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Wed, 29 Apr 2020 13:43:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360461 - head/sys/arm64/rockchip X-SVN-Group: head X-SVN-Commit-Author: mmel X-SVN-Commit-Paths: head/sys/arm64/rockchip X-SVN-Commit-Revision: 360461 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, 29 Apr 2020 13:43:15 -0000 Author: mmel Date: Wed Apr 29 13:43:15 2020 New Revision: 360461 URL: https://svnweb.freebsd.org/changeset/base/360461 Log: Multiple fixes for rockchip iodomain driver: - always initialize selector of voltage signaling standard. Various versions of U-boot leaves voltage signaling standard settings for PMUIO2 domain in different state. Always initialize it into expected state. - start the driver as early as possible, the IO domains should be initialized before other drivers are attached. - rename RK3399 register to its name founds in TRM. This is the second part of fixes for serial port corruption observed after DT 5.6 import. Reviewed by: manu MFC after: 1 week Modified: head/sys/arm64/rockchip/rk_iodomain.c Modified: head/sys/arm64/rockchip/rk_iodomain.c ============================================================================== --- head/sys/arm64/rockchip/rk_iodomain.c Wed Apr 29 13:41:32 2020 (r360460) +++ head/sys/arm64/rockchip/rk_iodomain.c Wed Apr 29 13:43:15 2020 (r360461) @@ -45,17 +45,20 @@ __FBSDID("$FreeBSD$"); #define RK3288_GRF_IO_VSEL 0x380 #define RK3399_GRF_IO_VSEL 0xe640 -#define RK3399_PMUGRF_IO_VSEL 0x180 +#define RK3399_PMUGRF_SOC_CON0 0x180 struct rk_iodomain_supply { char *name; uint32_t bit; }; +struct rk_iodomain_softc; + struct rk_iodomain_conf { struct rk_iodomain_supply *supply; int nsupply; uint32_t grf_reg; + void (*init)(struct rk_iodomain_softc *sc); }; struct rk_iodomain_softc { @@ -101,10 +104,12 @@ static struct rk_iodomain_supply rk3399_pmu_supply[] = {"pmu1830-supply", 9}, }; +static void rk3399_pmu_init(struct rk_iodomain_softc *sc); static struct rk_iodomain_conf rk3399_pmu_conf = { .supply = rk3399_pmu_supply, .nsupply = nitems(rk3399_pmu_supply), - .grf_reg = RK3399_PMUGRF_IO_VSEL, + .grf_reg = RK3399_PMUGRF_SOC_CON0, + .init = rk3399_pmu_init, }; static struct ofw_compat_data compat_data[] = { @@ -115,6 +120,14 @@ static struct ofw_compat_data compat_data[] = { }; static void +rk3399_pmu_init(struct rk_iodomain_softc *sc) +{ + + SYSCON_WRITE_4(sc->grf, RK3399_PMUGRF_SOC_CON0, + (1 << 8) | (1 << (8 + 16))); /* set pmu1830_volsel */ +} + +static void rk_iodomain_set(struct rk_iodomain_softc *sc) { regulator_t supply; @@ -141,6 +154,8 @@ rk_iodomain_set(struct rk_iodomain_softc *sc) } SYSCON_WRITE_4(sc->grf, sc->conf->grf_reg, reg | mask); + if (sc->conf->init != NULL) + sc->conf->init(sc); } static int @@ -204,4 +219,4 @@ static driver_t rk_iodomain_driver = { static devclass_t rk_iodomain_devclass; EARLY_DRIVER_MODULE(rk_iodomain, simplebus, rk_iodomain_driver, - rk_iodomain_devclass, 0, 0, BUS_PASS_SUPPORTDEV + BUS_PASS_ORDER_MIDDLE); + rk_iodomain_devclass, 0, 0, BUS_PASS_INTERRUPT + BUS_PASS_ORDER_MIDDLE); From owner-svn-src-all@freebsd.org Wed Apr 29 13:45: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 B32AD2B4EEF; Wed, 29 Apr 2020 13:45:21 +0000 (UTC) (envelope-from mmel@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 49C0Bn4J9zz4DmR; Wed, 29 Apr 2020 13:45:21 +0000 (UTC) (envelope-from mmel@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 8EC4D65C9; Wed, 29 Apr 2020 13:45:21 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03TDjLWJ019339; Wed, 29 Apr 2020 13:45:21 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03TDjLwQ019338; Wed, 29 Apr 2020 13:45:21 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <202004291345.03TDjLwQ019338@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Wed, 29 Apr 2020 13:45:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360462 - head/sys/arm64/rockchip X-SVN-Group: head X-SVN-Commit-Author: mmel X-SVN-Commit-Paths: head/sys/arm64/rockchip X-SVN-Commit-Revision: 360462 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, 29 Apr 2020 13:45:21 -0000 Author: mmel Date: Wed Apr 29 13:45:21 2020 New Revision: 360462 URL: https://svnweb.freebsd.org/changeset/base/360462 Log: Don't try to re-initialize already preseted regulator. Don't set initial voltage for regulators having their voltage already in allowed range. As side effect of this change, we don't try to set initial voltage for fixed voltage regulators - these don't have impemented voltage set method so their initialization has always failed. MFC after: 3 weeks Modified: head/sys/arm64/rockchip/rk805.c Modified: head/sys/arm64/rockchip/rk805.c ============================================================================== --- head/sys/arm64/rockchip/rk805.c Wed Apr 29 13:43:15 2020 (r360461) +++ head/sys/arm64/rockchip/rk805.c Wed Apr 29 13:45:21 2020 (r360462) @@ -105,6 +105,7 @@ struct rk805_softc { static int rk805_regnode_status(struct regnode *regnode, int *status); static int rk805_regnode_set_voltage(struct regnode *regnode, int min_uvolt, int max_uvolt, int *udelay); +static int rk805_regnode_get_voltage(struct regnode *regnode, int *uvolt); static struct rk805_regdef rk805_regdefs[] = { { @@ -366,13 +367,21 @@ rk805_regnode_init(struct regnode *regnode) { struct rk805_reg_sc *sc; struct regnode_std_param *param; - int rv, udelay, status; + int rv, udelay, uvolt, status; sc = regnode_get_softc(regnode); + dprintf(sc, "Regulator %s init called\n", sc->def->name); param = regnode_get_stdparam(regnode); if (param->min_uvolt == 0) return (0); + /* Check that the regulator is preset to the correct voltage */ + rv = rk805_regnode_get_voltage(regnode, &uvolt); + if (rv != 0) + return(rv); + + if (uvolt >= param->min_uvolt && uvolt <= param->max_uvolt) + return(0); /* * Set the regulator at the correct voltage if it is not enabled. * Do not enable it, this is will be done either by a From owner-svn-src-all@freebsd.org Wed Apr 29 14:06: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 F047F2B59B4; Wed, 29 Apr 2020 14:06:42 +0000 (UTC) (envelope-from mmel@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 49C0gQ683dz4G0D; Wed, 29 Apr 2020 14:06:42 +0000 (UTC) (envelope-from mmel@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 CE35569C1; Wed, 29 Apr 2020 14:06:42 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03TE6gpG031339; Wed, 29 Apr 2020 14:06:42 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03TE6g1c031338; Wed, 29 Apr 2020 14:06:42 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <202004291406.03TE6g1c031338@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Wed, 29 Apr 2020 14:06:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360463 - head/libexec/rtld-elf X-SVN-Group: head X-SVN-Commit-Author: mmel X-SVN-Commit-Paths: head/libexec/rtld-elf X-SVN-Commit-Revision: 360463 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, 29 Apr 2020 14:06:43 -0000 Author: mmel Date: Wed Apr 29 14:06:42 2020 New Revision: 360463 URL: https://svnweb.freebsd.org/changeset/base/360463 Log: Don't allow to use FPU inside of rtld library. Clang10 may use FPU instructions for optimizing operations with memory blocks. But we don't want to do lengthy save/restore of all FPU registers across each rtld_start() call. MFC after: 3 week Modified: head/libexec/rtld-elf/Makefile Modified: head/libexec/rtld-elf/Makefile ============================================================================== --- head/libexec/rtld-elf/Makefile Wed Apr 29 13:45:21 2020 (r360462) +++ head/libexec/rtld-elf/Makefile Wed Apr 29 14:06:42 2020 (r360463) @@ -48,6 +48,9 @@ MLINKS?= rtld.1 ld-elf.so.1.1 \ rtld.1 ld.so.1 CFLAGS+= -fpic -DPIC $(DEBUG) +CFLAGS.armv6+= -mfpu=none +CFLAGS.armv7+= -mfpu=none + LDFLAGS+= -shared -Wl,-Bsymbolic -Wl,-z,defs -nostdlib -e ${RTLD_ENTRY} # Pull in the dependencies that we use from libc .include "rtld-libc/Makefile.inc" From owner-svn-src-all@freebsd.org Wed Apr 29 14:14: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 B8A5E2B5C48; Wed, 29 Apr 2020 14:14:15 +0000 (UTC) (envelope-from mmel@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 49C0r74T34z4GTM; Wed, 29 Apr 2020 14:14:15 +0000 (UTC) (envelope-from mmel@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 94B346B93; Wed, 29 Apr 2020 14:14:15 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03TEEF9l038052; Wed, 29 Apr 2020 14:14:15 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03TEEFnl038051; Wed, 29 Apr 2020 14:14:15 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <202004291414.03TEEFnl038051@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Wed, 29 Apr 2020 14:14:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360464 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: mmel X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 360464 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, 29 Apr 2020 14:14:15 -0000 Author: mmel Date: Wed Apr 29 14:14:15 2020 New Revision: 360464 URL: https://svnweb.freebsd.org/changeset/base/360464 Log: Don't try to set frequendcy for enumerated but newer started CPUs. Openfirmare enumerates and installs the driver for all processors, regardless of whether they will be started later (because of power constrains for example). MFC after: 3 weeks Modified: head/sys/kern/kern_cpu.c Modified: head/sys/kern/kern_cpu.c ============================================================================== --- head/sys/kern/kern_cpu.c Wed Apr 29 14:06:42 2020 (r360463) +++ head/sys/kern/kern_cpu.c Wed Apr 29 14:14:15 2020 (r360464) @@ -325,6 +325,12 @@ cf_set_method(device_t dev, const struct cf_level *lev /* Bind to the target CPU before switching. */ pc = cpu_get_pcpu(set->dev); + + /* Skip settings if CPU is not started. */ + if (pc == NULL) { + error = 0; + goto out; + } thread_lock(curthread); pri = curthread->td_priority; sched_prio(curthread, PRI_MIN); From owner-svn-src-all@freebsd.org Wed Apr 29 14:15: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 2B9582B5CF1; Wed, 29 Apr 2020 14:15:22 +0000 (UTC) (envelope-from olivier@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 49C0sQ0Mf2z4Gc5; Wed, 29 Apr 2020 14:15:22 +0000 (UTC) (envelope-from olivier@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 07D156B95; Wed, 29 Apr 2020 14:15:22 +0000 (UTC) (envelope-from olivier@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03TEFLWx038162; Wed, 29 Apr 2020 14:15:21 GMT (envelope-from olivier@FreeBSD.org) Received: (from olivier@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03TEFLYU038161; Wed, 29 Apr 2020 14:15:21 GMT (envelope-from olivier@FreeBSD.org) Message-Id: <202004291415.03TEFLYU038161@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: olivier set sender to olivier@FreeBSD.org using -f From: Olivier Cochard Date: Wed, 29 Apr 2020 14:15:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360465 - head/sbin/bectl/tests X-SVN-Group: head X-SVN-Commit-Author: olivier X-SVN-Commit-Paths: head/sbin/bectl/tests X-SVN-Commit-Revision: 360465 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, 29 Apr 2020 14:15:22 -0000 Author: olivier (ports committer) Date: Wed Apr 29 14:15:21 2020 New Revision: 360465 URL: https://svnweb.freebsd.org/changeset/base/360465 Log: Skip bectl jail test if jail not installed (WITHOUT_JAIL). Approved by: kevans Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D24613 Modified: head/sbin/bectl/tests/bectl_test.sh Modified: head/sbin/bectl/tests/bectl_test.sh ============================================================================== --- head/sbin/bectl/tests/bectl_test.sh Wed Apr 29 14:14:15 2020 (r360464) +++ head/sbin/bectl/tests/bectl_test.sh Wed Apr 29 14:15:21 2020 (r360465) @@ -343,6 +343,7 @@ bectl_jail_head() atf_set "descr" "Check bectl rename" atf_set "require.user" root + atf_set "require.progs" jail } bectl_jail_body() { From owner-svn-src-all@freebsd.org Wed Apr 29 14:31: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 1EC782B631A; Wed, 29 Apr 2020 14:31:26 +0000 (UTC) (envelope-from mmel@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 49C1Cy02kfz4HP8; Wed, 29 Apr 2020 14:31:26 +0000 (UTC) (envelope-from mmel@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 F0C006E1D; Wed, 29 Apr 2020 14:31:25 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03TEVPeg046978; Wed, 29 Apr 2020 14:31:25 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03TEVPgr046976; Wed, 29 Apr 2020 14:31:25 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <202004291431.03TEVPgr046976@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Wed, 29 Apr 2020 14:31:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360466 - head/sys/arm64/arm64 X-SVN-Group: head X-SVN-Commit-Author: mmel X-SVN-Commit-Paths: head/sys/arm64/arm64 X-SVN-Commit-Revision: 360466 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, 29 Apr 2020 14:31:26 -0000 Author: mmel Date: Wed Apr 29 14:31:25 2020 New Revision: 360466 URL: https://svnweb.freebsd.org/changeset/base/360466 Log: Export tracing facility of GIC500 ITS block. Possibility of tracing of processing message based interrupts is very useful for debugging of PCIe driver, mainly for its MSI part. MFC after: 1 week Modified: head/sys/arm64/arm64/gic_v3_reg.h head/sys/arm64/arm64/gicv3_its.c Modified: head/sys/arm64/arm64/gic_v3_reg.h ============================================================================== --- head/sys/arm64/arm64/gic_v3_reg.h Wed Apr 29 14:15:21 2020 (r360465) +++ head/sys/arm64/arm64/gic_v3_reg.h Wed Apr 29 14:31:25 2020 (r360466) @@ -220,6 +220,8 @@ (rev) << GITS_IIDR_REVISION_SHIFT | \ (impl) << GITS_IIDR_IMPLEMENTOR_SHIFT) +#define GITS_IIDR_IMPL_ARM (0x43B) +#define GITS_IIDR_PROD_GIC500 (0x0) #define GITS_IIDR_IMPL_CAVIUM (0x34c) #define GITS_IIDR_PROD_THUNDER (0xa1) #define GITS_IIDR_VAR_THUNDER_1 (0x0) @@ -359,6 +361,18 @@ #define LPI_CONF_PRIO_MASK (0xFC) #define LPI_CONF_GROUP1 (1 << 1) #define LPI_CONF_ENABLE (1 << 0) + +/* + * GIC 500 ITS tracking facility + */ +#define GITS_TRKCTLR 0xC000 +#define GITS_TRKR 0xC004 +#define GITS_TRKDIDR 0xC008 +#define GITS_TRKPIDR 0xC00C +#define GITS_TRKVIDR 0xC010 +#define GITS_TRKTGTR 0xC014 +#define GITS_TRKICR 0xC018 +#define GITS_TRKLCR 0xC018 /* * CPU interface Modified: head/sys/arm64/arm64/gicv3_its.c ============================================================================== --- head/sys/arm64/arm64/gicv3_its.c Wed Apr 29 14:15:21 2020 (r360465) +++ head/sys/arm64/arm64/gicv3_its.c Wed Apr 29 14:31:25 2020 (r360466) @@ -49,7 +49,9 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include +#include #include #include @@ -229,6 +231,7 @@ struct gicv3_its_irqsrc { }; struct gicv3_its_softc { + device_t dev; struct intr_pic *sc_pic; struct resource *sc_its_res; @@ -262,6 +265,7 @@ struct gicv3_its_softc { #define ITS_FLAGS_LPI_CONF_FLUSH 0x00000002 #define ITS_FLAGS_ERRATA_CAVIUM_22375 0x00000004 u_int sc_its_flags; + bool trace_enable; }; static void *conf_base; @@ -713,6 +717,86 @@ its_init_cpu(device_t dev, struct gicv3_its_softc *sc) } static int +gicv3_its_sysctl_trace_enable(SYSCTL_HANDLER_ARGS) +{ + struct gicv3_its_softc *sc; + int rv; + + sc = arg1; + + rv = sysctl_handle_bool(oidp, &sc->trace_enable, 0, req); + if (rv != 0 || req->newptr == NULL) + return (rv); + if (sc->trace_enable) + gic_its_write_8(sc, GITS_TRKCTLR, 3); + else + gic_its_write_8(sc, GITS_TRKCTLR, 0); + + return (0); +} + +static int +gicv3_its_sysctl_trace_regs(SYSCTL_HANDLER_ARGS) +{ + struct gicv3_its_softc *sc; + struct sbuf *sb; + int err; + + sc = arg1; + sb = sbuf_new_for_sysctl(NULL, NULL, 128, req); + if (sb == NULL) { + device_printf(sc->dev, "Could not allocate sbuf for output.\n"); + return (ENOMEM); + } + sbuf_cat(sb, "\n"); + sbuf_printf(sb, "GITS_TRKCTLR: 0x%08X\n", + gic_its_read_4(sc, GITS_TRKCTLR)); + sbuf_printf(sb, "GITS_TRKR: 0x%08X\n", + gic_its_read_4(sc, GITS_TRKR)); + sbuf_printf(sb, "GITS_TRKDIDR: 0x%08X\n", + gic_its_read_4(sc, GITS_TRKDIDR)); + sbuf_printf(sb, "GITS_TRKPIDR: 0x%08X\n", + gic_its_read_4(sc, GITS_TRKPIDR)); + sbuf_printf(sb, "GITS_TRKVIDR: 0x%08X\n", + gic_its_read_4(sc, GITS_TRKVIDR)); + sbuf_printf(sb, "GITS_TRKTGTR: 0x%08X\n", + gic_its_read_4(sc, GITS_TRKTGTR)); + + err = sbuf_finish(sb); + if (err) + device_printf(sc->dev, "Error finishing sbuf: %d\n", err); + sbuf_delete(sb); + return(err); +} + +static int +gicv3_its_init_sysctl(struct gicv3_its_softc *sc) +{ + struct sysctl_oid *oid, *child; + struct sysctl_ctx_list *ctx_list; + + ctx_list = device_get_sysctl_ctx(sc->dev); + child = device_get_sysctl_tree(sc->dev); + oid = SYSCTL_ADD_NODE(ctx_list, + SYSCTL_CHILDREN(child), OID_AUTO, "tracing", + CTLFLAG_RD| CTLFLAG_MPSAFE, NULL, "Messages tracing"); + if (oid == NULL) + return (ENXIO); + + /* Add registers */ + SYSCTL_ADD_PROC(ctx_list, + SYSCTL_CHILDREN(oid), OID_AUTO, "enable", + CTLTYPE_U8 | CTLFLAG_RW | CTLFLAG_MPSAFE, sc, 0, + gicv3_its_sysctl_trace_enable, "CU", "Enable tracing"); + SYSCTL_ADD_PROC(ctx_list, + SYSCTL_CHILDREN(oid), OID_AUTO, "capture", + CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_MPSAFE, sc, 0, + gicv3_its_sysctl_trace_regs, "", "Captured tracing registers."); + + return (0); +} + +static int gicv3_its_attach(device_t dev) { struct gicv3_its_softc *sc; @@ -811,6 +895,11 @@ gicv3_its_attach(device_t dev) "%s,%u", name, i); } + /* For GIC-500 install tracking sysctls. */ + if ((iidr & (GITS_IIDR_PRODUCT_MASK | GITS_IIDR_IMPLEMENTOR_MASK)) == + GITS_IIDR_RAW(GITS_IIDR_IMPL_ARM, GITS_IIDR_PROD_GIC500, 0, 0)) + gicv3_its_init_sysctl(sc); + return (0); } @@ -1717,6 +1806,7 @@ gicv3_its_fdt_attach(device_t dev) int err; sc = device_get_softc(dev); + sc->dev = dev; err = gicv3_its_attach(dev); if (err != 0) return (err); @@ -1778,6 +1868,7 @@ gicv3_its_acpi_attach(device_t dev) int err; sc = device_get_softc(dev); + sc->dev = dev; err = gicv3_its_attach(dev); if (err != 0) return (err); From owner-svn-src-all@freebsd.org Wed Apr 29 14:36: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 6FAD32B658E; Wed, 29 Apr 2020 14:36:51 +0000 (UTC) (envelope-from mmel@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 49C1LC2QcMz4HnY; Wed, 29 Apr 2020 14:36:51 +0000 (UTC) (envelope-from mmel@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 4E8FD6FA4; Wed, 29 Apr 2020 14:36:51 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03TEapCn050861; Wed, 29 Apr 2020 14:36:51 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03TEaoZl050859; Wed, 29 Apr 2020 14:36:50 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <202004291436.03TEaoZl050859@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Wed, 29 Apr 2020 14:36:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360467 - head/sys/dev/dwc X-SVN-Group: head X-SVN-Commit-Author: mmel X-SVN-Commit-Paths: head/sys/dev/dwc X-SVN-Commit-Revision: 360467 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, 29 Apr 2020 14:36:51 -0000 Author: mmel Date: Wed Apr 29 14:36:50 2020 New Revision: 360467 URL: https://svnweb.freebsd.org/changeset/base/360467 Log: Fix style(9). Strip write only variables. Not a functional change. MFC after: 1 week Modified: head/sys/dev/dwc/if_dwc.c head/sys/dev/dwc/if_dwcvar.h Modified: head/sys/dev/dwc/if_dwc.c ============================================================================== --- head/sys/dev/dwc/if_dwc.c Wed Apr 29 14:31:25 2020 (r360466) +++ head/sys/dev/dwc/if_dwc.c Wed Apr 29 14:36:50 2020 (r360467) @@ -252,14 +252,13 @@ dwc_txstart_locked(struct dwc_softc *sc) ifp = sc->ifp; - if (ifp->if_drv_flags & IFF_DRV_OACTIVE) { + if (ifp->if_drv_flags & IFF_DRV_OACTIVE) return; - } enqueued = 0; for (;;) { - if (sc->txcount == (TX_DESC_COUNT-1)) { + if (sc->txcount == (TX_DESC_COUNT - 1)) { ifp->if_drv_flags |= IFF_DRV_OACTIVE; break; } @@ -268,7 +267,7 @@ dwc_txstart_locked(struct dwc_softc *sc) if (m == NULL) break; if (dwc_setup_txbuf(sc, sc->tx_idx_head, &m) != 0) { - IFQ_DRV_PREPEND(&ifp->if_snd, m); + IFQ_DRV_PREPEND(&ifp->if_snd, m); break; } BPF_MTAP(ifp, m); @@ -469,7 +468,7 @@ dwc_setup_rxdesc(struct dwc_softc *sc, int idx, bus_ad sc->rxdesc_ring[idx].addr = (uint32_t)paddr; nidx = next_rxidx(sc, idx); - sc->rxdesc_ring[idx].addr_next = sc->rxdesc_ring_paddr + \ + sc->rxdesc_ring[idx].addr_next = sc->rxdesc_ring_paddr + (nidx * sizeof(struct dwc_hwdesc)); if (sc->mactype == DWC_GMAC_ALT_DESC) sc->rxdesc_ring[idx].tdes1 = DDESC_CNTL_CHAINED | RX_MAX_PACKET; @@ -493,9 +492,8 @@ dwc_setup_rxbuf(struct dwc_softc *sc, int idx, struct error = bus_dmamap_load_mbuf_sg(sc->rxbuf_tag, sc->rxbuf_map[idx].map, m, &seg, &nsegs, 0); - if (error != 0) { + if (error != 0) return (error); - } KASSERT(nsegs == 1, ("%s: %d segments returned!", __func__, nsegs)); @@ -1167,10 +1165,6 @@ dwc_attach(device_t dev) device_printf(dev, "could not allocate resources\n"); return (ENXIO); } - - /* Memory interface */ - sc->bst = rman_get_bustag(sc->res[0]); - sc->bsh = rman_get_bushandle(sc->res[0]); /* Read MAC before reset */ if (dwc_get_hwaddr(sc, macaddr)) { Modified: head/sys/dev/dwc/if_dwcvar.h ============================================================================== --- head/sys/dev/dwc/if_dwcvar.h Wed Apr 29 14:31:25 2020 (r360466) +++ head/sys/dev/dwc/if_dwcvar.h Wed Apr 29 14:36:50 2020 (r360467) @@ -57,8 +57,6 @@ struct dwc_bufmap { struct dwc_softc { struct resource *res[2]; - bus_space_tag_t bst; - bus_space_handle_t bsh; device_t dev; int mactype; int mii_clk; From owner-svn-src-all@freebsd.org Wed Apr 29 14:47: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 340EB2B7256; Wed, 29 Apr 2020 14:47:20 +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 49C1ZJ0ZgNz4Jpx; Wed, 29 Apr 2020 14:47:20 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from John-Baldwins-MacBook-Pro-164.local (unknown [IPv6:2601:648:8203:2990:ed41:5f4c:f27e:76f5]) (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 98B07D360; Wed, 29 Apr 2020 14:47:19 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Subject: Re: svn commit: r360453 - head To: Bryan Drewery , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <202004290218.03T2IdZM091899@repo.freebsd.org> From: John Baldwin 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: Date: Wed, 29 Apr 2020 07:47:18 -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: <202004290218.03T2IdZM091899@repo.freebsd.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit 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, 29 Apr 2020 14:47:20 -0000 On 4/28/20 7:18 PM, Bryan Drewery wrote: > Author: bdrewery > Date: Wed Apr 29 02:18:39 2020 > New Revision: 360453 > URL: https://svnweb.freebsd.org/changeset/base/360453 > > Log: > Use universe-toolchain config(8) > > This is a temporary hack to aid with config(8) changing in r360443. > It will not work for all cases. > > env PATH is used because universe-toolchain is only built when worlds > are built, and then only if clang is needed, so it may not exist. > > universe-toolchain needs to be expanded to always be built, inspected to > remove non-cross-build-safe tools, used for buildworld/buildkernel, > and potentially incremental build support. > > Sponsored by: Dell EMC Thanks for the quick fix! -- John Baldwin From owner-svn-src-all@freebsd.org Wed Apr 29 15:20: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 891142B8238; Wed, 29 Apr 2020 15:20:46 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (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 49C2Jt1yGcz4M29; Wed, 29 Apr 2020 15:20:46 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kib@localhost [127.0.0.1]) by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id 03TFKU3L016674 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Wed, 29 Apr 2020 18:20:33 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua 03TFKU3L016674 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id 03TFKU28016673; Wed, 29 Apr 2020 18:20:30 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Wed, 29 Apr 2020 18:20:30 +0300 From: Konstantin Belousov To: Michal Meloun Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r360463 - head/libexec/rtld-elf Message-ID: <20200429152030.GB2522@kib.kiev.ua> References: <202004291406.03TE6g1c031338@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <202004291406.03TE6g1c031338@repo.freebsd.org> X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FORGED_GMAIL_RCVD,FREEMAIL_FROM, NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on tom.home X-Rspamd-Queue-Id: 49C2Jt1yGcz4M29 X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-5.99 / 15.00]; NEURAL_HAM_MEDIUM(-0.99)[-0.990,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: Wed, 29 Apr 2020 15:20:46 -0000 On Wed, Apr 29, 2020 at 02:06:42PM +0000, Michal Meloun wrote: > Author: mmel > Date: Wed Apr 29 14:06:42 2020 > New Revision: 360463 > URL: https://svnweb.freebsd.org/changeset/base/360463 > > Log: > Don't allow to use FPU inside of rtld library. > Clang10 may use FPU instructions for optimizing operations with > memory blocks. But we don't want to do lengthy save/restore of all > FPU registers across each rtld_start() call. > > MFC after: 3 week > > Modified: > head/libexec/rtld-elf/Makefile > > Modified: head/libexec/rtld-elf/Makefile > ============================================================================== > --- head/libexec/rtld-elf/Makefile Wed Apr 29 13:45:21 2020 (r360462) > +++ head/libexec/rtld-elf/Makefile Wed Apr 29 14:06:42 2020 (r360463) > @@ -48,6 +48,9 @@ MLINKS?= rtld.1 ld-elf.so.1.1 \ > rtld.1 ld.so.1 > > CFLAGS+= -fpic -DPIC $(DEBUG) > +CFLAGS.armv6+= -mfpu=none > +CFLAGS.armv7+= -mfpu=none I cleaned rtld-elf/Makefile of all MD bits, please move this to arm/Makefile.inc. > + > LDFLAGS+= -shared -Wl,-Bsymbolic -Wl,-z,defs -nostdlib -e ${RTLD_ENTRY} > # Pull in the dependencies that we use from libc > .include "rtld-libc/Makefile.inc" From owner-svn-src-all@freebsd.org Wed Apr 29 16:05: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 1B96B2BA3F0; Wed, 29 Apr 2020 16:05:01 +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 49C3Hw6n9Jz4SW3; Wed, 29 Apr 2020 16:05:00 +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 E3BB281C9; Wed, 29 Apr 2020 16:05:00 +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 03TG50dK011121; Wed, 29 Apr 2020 16:05:00 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03TG4xGu011102; Wed, 29 Apr 2020 16:04:59 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202004291604.03TG4xGu011102@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Wed, 29 Apr 2020 16:04:59 +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: r360468 - stable/12/usr.bin/truss X-SVN-Group: stable-12 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: stable/12/usr.bin/truss X-SVN-Commit-Revision: 360468 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, 29 Apr 2020 16:05:01 -0000 Author: jhb Date: Wed Apr 29 16:04:59 2020 New Revision: 360468 URL: https://svnweb.freebsd.org/changeset/base/360468 Log: MFC 350069: Use PT_GET_SC_ARGS and PT_GET_SC_RET in truss. This removes all of the architecture-specific functions from truss. A per-ABI structure is still needed to map syscall numbers to names and FreeBSD errno values to ABI error values as well as hold syscall counters. However, the linker set of ABI structures is now replaced with a simple table mapping ABI names to structures. This approach permits sharing the same ABI structure among separate names such as i386 a.out and ELF binaries as well as ELF v1 vs ELF v2 for powerpc64. A few differences are visible due to using PT_GET_SC_RET to fetch the error value of a system call. Note that ktrace/kdump have had the "new" behaviors for a long time already: - System calls that return with EJUSTRETURN or ERESTART will now be noticed and logged as such. Previously sigreturn (which uses EJUSTRETURN) would report whatever random value was in the register holding errno from the previous system call for example. Now it reports EJUSTRETURN. - System calls that return errno as their error value such as posix_fallocate() and posix_fadvise() now report non-zero return values as errors instead of success with a non-zero return value. Deleted: stable/12/usr.bin/truss/aarch64-cloudabi32.c stable/12/usr.bin/truss/aarch64-cloudabi64.c stable/12/usr.bin/truss/aarch64-freebsd.c stable/12/usr.bin/truss/amd64-cloudabi32.c stable/12/usr.bin/truss/amd64-cloudabi64.c stable/12/usr.bin/truss/amd64-freebsd.c stable/12/usr.bin/truss/amd64-freebsd32.c stable/12/usr.bin/truss/amd64-linux.c stable/12/usr.bin/truss/amd64-linux32.c stable/12/usr.bin/truss/arm-freebsd.c stable/12/usr.bin/truss/i386-cloudabi32.c stable/12/usr.bin/truss/i386-freebsd.c stable/12/usr.bin/truss/i386-linux.c stable/12/usr.bin/truss/mips-freebsd.c stable/12/usr.bin/truss/powerpc-freebsd.c stable/12/usr.bin/truss/powerpc64-freebsd.c stable/12/usr.bin/truss/powerpc64-freebsd32.c stable/12/usr.bin/truss/riscv64-freebsd.c stable/12/usr.bin/truss/sparc64-freebsd.c Modified: stable/12/usr.bin/truss/Makefile stable/12/usr.bin/truss/setup.c stable/12/usr.bin/truss/syscall.h stable/12/usr.bin/truss/syscalls.c stable/12/usr.bin/truss/truss.h Directory Properties: stable/12/ (props changed) Modified: stable/12/usr.bin/truss/Makefile ============================================================================== --- stable/12/usr.bin/truss/Makefile Wed Apr 29 14:36:50 2020 (r360467) +++ stable/12/usr.bin/truss/Makefile Wed Apr 29 16:04:59 2020 (r360468) @@ -9,38 +9,4 @@ LIBADD= sysdecode #CFLAGS+= -I${.CURDIR} -I. -I${SRCTOP}/sys CFLAGS+= -I${SRCTOP}/sys -ABIS+= freebsd -# Each ABI is expected to have an ABI.c, MACHINE_ARCH-ABI.c or -# MACHINE_CPUARCH-ABI.c file that will be used to map the syscall arguments. -.if ${MACHINE_ARCH} == "aarch64" -ABIS+= cloudabi32 -ABIS+= cloudabi64 -.endif -.if ${MACHINE_CPUARCH} == "i386" -ABIS+= i386-linux -ABIS+= cloudabi32 -.endif -.if ${MACHINE_CPUARCH} == "amd64" -ABIS+= amd64-linux -ABIS+= amd64-linux32 -ABIS+= freebsd32 -ABIS+= cloudabi32 -ABIS+= cloudabi64 -.endif -.if ${MACHINE_ARCH} == "powerpc64" -ABIS+= freebsd32 -.endif - -.for abi in ${ABIS} -# Find the right file to handle this ABI. -abi_src= -ABI_SRCS= ${abi}.c ${MACHINE_ARCH}-${abi}.c ${MACHINE_CPUARCH}-${abi}.c -.for f in ${ABI_SRCS} -.if exists(${.CURDIR}/${f}) && empty(abi_src) -abi_src= ${f} -.endif -.endfor -SRCS:= ${SRCS} ${abi_src} -.endfor - .include Modified: stable/12/usr.bin/truss/setup.c ============================================================================== --- stable/12/usr.bin/truss/setup.c Wed Apr 29 14:36:50 2020 (r360467) +++ stable/12/usr.bin/truss/setup.c Wed Apr 29 16:04:59 2020 (r360468) @@ -61,7 +61,10 @@ __FBSDID("$FreeBSD$"); #include "syscall.h" #include "extern.h" -SET_DECLARE(procabi, struct procabi); +struct procabi_table { + const char *name; + struct procabi *abi; +}; static sig_atomic_t detaching; @@ -69,6 +72,79 @@ static void enter_syscall(struct trussinfo *, struct t struct ptrace_lwpinfo *); static void new_proc(struct trussinfo *, pid_t, lwpid_t); + +static struct procabi cloudabi32 = { + "CloudABI32", + SYSDECODE_ABI_CLOUDABI32, + STAILQ_HEAD_INITIALIZER(cloudabi32.extra_syscalls), + { NULL } +}; + +static struct procabi cloudabi64 = { + "CloudABI64", + SYSDECODE_ABI_CLOUDABI64, + STAILQ_HEAD_INITIALIZER(cloudabi64.extra_syscalls), + { NULL } +}; + +static struct procabi freebsd = { + "FreeBSD", + SYSDECODE_ABI_FREEBSD, + STAILQ_HEAD_INITIALIZER(freebsd.extra_syscalls), + { NULL } +}; + +#ifdef __LP64__ +static struct procabi freebsd32 = { + "FreeBSD32", + SYSDECODE_ABI_FREEBSD32, + STAILQ_HEAD_INITIALIZER(freebsd32.extra_syscalls), + { NULL } +}; +#endif + +static struct procabi linux = { + "Linux", + SYSDECODE_ABI_LINUX, + STAILQ_HEAD_INITIALIZER(linux.extra_syscalls), + { NULL } +}; + +#ifdef __LP64__ +static struct procabi linux32 = { + "Linux32", + SYSDECODE_ABI_LINUX32, + STAILQ_HEAD_INITIALIZER(linux32.extra_syscalls), + { NULL } +}; +#endif + +static struct procabi_table abis[] = { + { "CloudABI ELF32", &cloudabi32 }, + { "CloudABI ELF64", &cloudabi64 }, +#ifdef __LP64__ + { "FreeBSD ELF64", &freebsd }, + { "FreeBSD ELF32", &freebsd32 }, +#else + { "FreeBSD ELF32", &freebsd }, +#endif +#if defined(__powerpc64__) + { "FreeBSD ELF64 V2", &freebsd }, +#endif +#if defined(__amd64__) + { "FreeBSD a.out", &freebsd32 }, +#endif +#if defined(__i386__) + { "FreeBSD a.out", &freebsd }, +#endif +#ifdef __LP64__ + { "Linux ELF64", &linux }, + { "Linux ELF32", &linux32 }, +#else + { "Linux ELF", &linux }, +#endif +}; + /* * setup_and_wait() is called to start a process. All it really does * is fork(), enable tracing in the child, and then exec the given @@ -153,8 +229,8 @@ detach_proc(pid_t pid) static struct procabi * find_abi(pid_t pid) { - struct procabi **pabi; size_t len; + unsigned int i; int error; int mib[4]; char progt[32]; @@ -168,9 +244,9 @@ find_abi(pid_t pid) if (error != 0) err(2, "can not get sysvec name"); - SET_FOREACH(pabi, procabi) { - if (strcmp((*pabi)->type, progt) == 0) - return (*pabi); + for (i = 0; i < nitems(abis); i++) { + if (strcmp(abis[i].name, progt) == 0) + return (abis[i].abi); } warnx("ABI %s for pid %ld is not supported", progt, (long)pid); return (NULL); @@ -376,7 +452,8 @@ enter_syscall(struct trussinfo *info, struct threadinf alloc_syscall(t, pl); narg = MIN(pl->pl_syscall_narg, nitems(t->cs.args)); - if (narg != 0 && t->proc->abi->fetch_args(info, narg) != 0) { + if (narg != 0 && ptrace(PT_GET_SC_ARGS, t->tid, (caddr_t)t->cs.args, + sizeof(t->cs.args)) != 0) { free_syscall(t); return; } @@ -408,7 +485,7 @@ enter_syscall(struct trussinfo *info, struct threadinf #endif if (!(sc->args[i].type & OUT)) { t->cs.s_args[i] = print_arg(&sc->args[i], - t->cs.args, 0, info); + t->cs.args, NULL, info); } } #if DEBUG @@ -446,9 +523,8 @@ exit_syscall(struct trussinfo *info, struct ptrace_lwp struct threadinfo *t; struct procinfo *p; struct syscall *sc; - long retval[2]; + struct ptrace_sc_ret psr; u_int i; - int errorp; t = info->curthread; if (!t->in_syscall) @@ -456,7 +532,7 @@ exit_syscall(struct trussinfo *info, struct ptrace_lwp clock_gettime(CLOCK_REALTIME, &t->after); p = t->proc; - if (p->abi->fetch_retval(info, retval, &errorp) < 0) { + if (ptrace(PT_GET_SC_RET, t->tid, (caddr_t)&psr, sizeof(psr)) != 0) { free_syscall(t); return; } @@ -474,18 +550,18 @@ exit_syscall(struct trussinfo *info, struct ptrace_lwp * If an error occurred, then don't bother * getting the data; it may not be valid. */ - if (errorp) { + if (psr.sr_error != 0) { asprintf(&temp, "0x%lx", t->cs.args[sc->args[i].offset]); } else { temp = print_arg(&sc->args[i], - t->cs.args, retval, info); + t->cs.args, psr.sr_retval, info); } t->cs.s_args[i] = temp; } } - print_syscall_ret(info, errorp, retval); + print_syscall_ret(info, psr.sr_error, psr.sr_retval); free_syscall(t); /* Modified: stable/12/usr.bin/truss/syscall.h ============================================================================== --- stable/12/usr.bin/truss/syscall.h Wed Apr 29 14:36:50 2020 (r360467) +++ stable/12/usr.bin/truss/syscall.h Wed Apr 29 16:04:59 2020 (r360468) @@ -227,7 +227,8 @@ struct syscall { }; struct syscall *get_syscall(struct threadinfo *, u_int, u_int); -char *print_arg(struct syscall_args *, unsigned long*, long *, struct trussinfo *); +char *print_arg(struct syscall_args *, unsigned long*, register_t *, + struct trussinfo *); /* * Linux Socket defines @@ -271,5 +272,5 @@ struct linux_socketcall_args { void init_syscalls(void); void print_syscall(struct trussinfo *); -void print_syscall_ret(struct trussinfo *, int, long *); +void print_syscall_ret(struct trussinfo *, int, register_t *); void print_summary(struct trussinfo *trussinfo); Modified: stable/12/usr.bin/truss/syscalls.c ============================================================================== --- stable/12/usr.bin/truss/syscalls.c Wed Apr 29 14:36:50 2020 (r360467) +++ stable/12/usr.bin/truss/syscalls.c Wed Apr 29 16:04:59 2020 (r360468) @@ -61,6 +61,8 @@ __FBSDID("$FreeBSD$"); #include #include #include +#define _WANT_KERNEL_ERRNO +#include #include #include #include @@ -1567,7 +1569,7 @@ print_sysctl_oid(FILE *fp, int *oid, int len) * an array of all of the system call arguments. */ char * -print_arg(struct syscall_args *sc, unsigned long *args, long *retval, +print_arg(struct syscall_args *sc, unsigned long *args, register_t *retval, struct trussinfo *trussinfo) { FILE *fp; @@ -2337,7 +2339,7 @@ print_arg(struct syscall_args *sc, unsigned long *args * Overwrite the first retval to signal a successful * return as well. */ - fprintf(fp, "{ %ld, %ld }", retval[0], retval[1]); + fprintf(fp, "{ %d, %d }", (int)retval[0], (int)retval[1]); retval[0] = 0; break; case Utrace: { @@ -2706,12 +2708,11 @@ print_syscall(struct trussinfo *trussinfo) } void -print_syscall_ret(struct trussinfo *trussinfo, int errorp, long *retval) +print_syscall_ret(struct trussinfo *trussinfo, int error, register_t *retval) { struct timespec timediff; struct threadinfo *t; struct syscall *sc; - int error; t = trussinfo->curthread; sc = t->cs.sc; @@ -2719,7 +2720,7 @@ print_syscall_ret(struct trussinfo *trussinfo, int err timespecsub(&t->after, &t->before, &timediff); timespecadd(&sc->time, &timediff, &sc->time); sc->ncalls++; - if (errorp) + if (error != 0) sc->nerror++; return; } @@ -2736,11 +2737,14 @@ print_syscall_ret(struct trussinfo *trussinfo, int err return; } - if (errorp) { - error = sysdecode_abi_to_freebsd_errno(t->proc->abi->abi, - retval[0]); - fprintf(trussinfo->outfile, " ERR#%ld '%s'\n", retval[0], - error == INT_MAX ? "Unknown error" : strerror(error)); + if (error == ERESTART) + fprintf(trussinfo->outfile, " ERESTART\n"); + else if (error == EJUSTRETURN) + fprintf(trussinfo->outfile, " EJUSTRETURN\n"); + else if (error != 0) { + fprintf(trussinfo->outfile, " ERR#%d '%s'\n", + sysdecode_freebsd_to_abi_errno(t->proc->abi->abi, error), + strerror(error)); } #ifndef __LP64__ else if (sc->ret_type == 2) { @@ -2756,8 +2760,8 @@ print_syscall_ret(struct trussinfo *trussinfo, int err } #endif else - fprintf(trussinfo->outfile, " = %ld (0x%lx)\n", retval[0], - retval[0]); + fprintf(trussinfo->outfile, " = %jd (0x%jx)\n", + (intmax_t)retval[0], (intmax_t)retval[0]); } void Modified: stable/12/usr.bin/truss/truss.h ============================================================================== --- stable/12/usr.bin/truss/truss.h Wed Apr 29 14:36:50 2020 (r360467) +++ stable/12/usr.bin/truss/truss.h Wed Apr 29 16:04:59 2020 (r360468) @@ -27,7 +27,6 @@ * $FreeBSD$ */ -#include #include #define FOLLOWFORKS 0x00000001 @@ -59,13 +58,9 @@ struct extra_syscall { struct procabi { const char *type; enum sysdecode_abi abi; - int (*fetch_args)(struct trussinfo *, u_int); - int (*fetch_retval)(struct trussinfo *, long *, int *); STAILQ_HEAD(, extra_syscall) extra_syscalls; struct syscall *syscalls[SYSCALL_NORMAL_COUNT]; }; - -#define PROCABI(abi) DATA_SET(procabi, abi) /* * This is confusingly named. It holds per-thread state about the From owner-svn-src-all@freebsd.org Wed Apr 29 16:05: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 454362BA474; Wed, 29 Apr 2020 16:05:51 +0000 (UTC) (envelope-from mmel@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 49C3Jv0k5Pz4SdS; Wed, 29 Apr 2020 16:05:51 +0000 (UTC) (envelope-from mmel@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 1403781D1; Wed, 29 Apr 2020 16:05:51 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03TG5oEc011214; Wed, 29 Apr 2020 16:05:50 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03TG5oxN011201; Wed, 29 Apr 2020 16:05:50 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <202004291605.03TG5oxN011201@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Wed, 29 Apr 2020 16:05:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360469 - in head/libexec/rtld-elf: . arm X-SVN-Group: head X-SVN-Commit-Author: mmel X-SVN-Commit-Paths: in head/libexec/rtld-elf: . arm X-SVN-Commit-Revision: 360469 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, 29 Apr 2020 16:05:51 -0000 Author: mmel Date: Wed Apr 29 16:05:50 2020 New Revision: 360469 URL: https://svnweb.freebsd.org/changeset/base/360469 Log: Move ARM specific flags to arm/Makefile.inc Requested by: kib MFC with: r360463 Modified: head/libexec/rtld-elf/Makefile head/libexec/rtld-elf/arm/Makefile.inc Modified: head/libexec/rtld-elf/Makefile ============================================================================== --- head/libexec/rtld-elf/Makefile Wed Apr 29 16:04:59 2020 (r360468) +++ head/libexec/rtld-elf/Makefile Wed Apr 29 16:05:50 2020 (r360469) @@ -48,9 +48,7 @@ MLINKS?= rtld.1 ld-elf.so.1.1 \ rtld.1 ld.so.1 CFLAGS+= -fpic -DPIC $(DEBUG) -CFLAGS.armv6+= -mfpu=none -CFLAGS.armv7+= -mfpu=none - + LDFLAGS+= -shared -Wl,-Bsymbolic -Wl,-z,defs -nostdlib -e ${RTLD_ENTRY} # Pull in the dependencies that we use from libc .include "rtld-libc/Makefile.inc" Modified: head/libexec/rtld-elf/arm/Makefile.inc ============================================================================== --- head/libexec/rtld-elf/arm/Makefile.inc Wed Apr 29 16:04:59 2020 (r360468) +++ head/libexec/rtld-elf/arm/Makefile.inc Wed Apr 29 16:05:50 2020 (r360469) @@ -5,3 +5,4 @@ # correctly linked. As some of the functions are used before we have # shared libraries. LIBADD+= compiler_rt +CFLAGS+= -mfpu=none From owner-svn-src-all@freebsd.org Wed Apr 29 16:19: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 9F9402BA8C9; Wed, 29 Apr 2020 16:19:14 +0000 (UTC) (envelope-from melounmichal@gmail.com) Received: from mail-wr1-x441.google.com (mail-wr1-x441.google.com [IPv6:2a00:1450:4864:20::441]) (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 49C3cK5xBrz4TNl; Wed, 29 Apr 2020 16:19:13 +0000 (UTC) (envelope-from melounmichal@gmail.com) Received: by mail-wr1-x441.google.com with SMTP id x18so3277217wrq.2; Wed, 29 Apr 2020 09:19:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:reply-to:subject:to:cc:references:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=pwsqVopy8MV9a7r+fbaj0LnmP4A5NJ3Cp+flWmeuY3k=; b=XIVxuH4LuVoGM9DMHGu9esG42b/qdVyFHtasVS0p+c7hHgMH0MQ7AHw8obXW9uzYnZ Q0TQQjSVwQnSSnRzN6S3OhKcFmYZlVBHg4RZyCVAzN7TVnhOIEAVzykMJZb0Ky64Uyd+ 39zVnQFhlWkinmC8wo9616it5jnaVRDf7MqnyhshppD4rvlmf3vPE2F9nbi2DWJnTDdn YE/wg1nJpRXs0YlXcQIrSnE+VmnTSUZpGoomzuiAoL0GH7qNxuQ4ZsLLPl4kISmvwMHx M7AFEUfyW81IVZTzHXZMLfIE5XUkOSKeB7YxeE+yAKECNBEDTo+xr3gWEP+LRrGiXoL8 /ZdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:reply-to:subject:to:cc:references :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=pwsqVopy8MV9a7r+fbaj0LnmP4A5NJ3Cp+flWmeuY3k=; b=CBuvbkj/7acqLxUhe/AMLkVM/wwNYIWaFuGBq+q3+9BpAb3OEe3xL4bSNHFv5Rp2g+ pkUvKv2ophgTT5rM74bsiigi/OLga00He0KTwYtvEhzZJlWF8Viz28ZOkFLIMLKSD3Vb XRRoaEisN3f9yMlyYZltzdsvlyJcHLqxTUsCq+mFwbtOry/1PtNZmUmWmA5UH2HxNA5+ 1ftwoAtSgaaJ/Le5o9NSqHKN4nLbGf6juVXK0ZZ5CQ8u4LgeyepvX8xuodcDIIJ4TH4D 9MxCVxvLnAifmF1Tg3FWrhMxdioIdAfhUZKRmyEONanzY4uJbEpIOzQkDXT4SjVO+LvD usaQ== X-Gm-Message-State: AGi0PuZIqd3fkG+Dwf3Mq0vbTco1ZARL4z1EDf7CKteyqMAx+3kkds0j Y1gozMG6kXwHaQc1HZLL6389OhX1 X-Google-Smtp-Source: APiQypJEDOIdejT9A582LOEE3fZJ4mlDahhSkgMCZ7cIE40QwJF/2acfEKvOXvEKeyvrGQ7UCyaTsg== X-Received: by 2002:a5d:5651:: with SMTP id j17mr39117436wrw.406.1588177152075; Wed, 29 Apr 2020 09:19:12 -0700 (PDT) Received: from [88.208.79.100] (halouny.humusoft.cz. [88.208.79.100]) by smtp.gmail.com with ESMTPSA id d13sm8292585wmb.39.2020.04.29.09.19.11 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 29 Apr 2020 09:19:11 -0700 (PDT) Sender: Michal Meloun From: Michal Meloun X-Google-Original-From: Michal Meloun Reply-To: mmel@freebsd.org Subject: Re: svn commit: r360463 - head/libexec/rtld-elf To: Konstantin Belousov Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <202004291406.03TE6g1c031338@repo.freebsd.org> <20200429152030.GB2522@kib.kiev.ua> Message-ID: <254296a0-dfde-e562-fc45-d819c41f75ca@freebsd.org> Date: Wed, 29 Apr 2020 18:19:12 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 In-Reply-To: <20200429152030.GB2522@kib.kiev.ua> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 49C3cK5xBrz4TNl X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=XIVxuH4L; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of melounmichal@gmail.com designates 2a00:1450:4864:20::441 as permitted sender) smtp.mailfrom=melounmichal@gmail.com X-Spamd-Result: default: False [-3.00 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; HAS_REPLYTO(0.00)[mmel@freebsd.org]; TO_DN_SOME(0.00)[]; FREEMAIL_FROM(0.00)[gmail.com]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4000::/36]; RCVD_COUNT_THREE(0.00)[3]; DKIM_TRACE(0.00)[gmail.com:+]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; FREEMAIL_TO(0.00)[gmail.com]; FROM_EQ_ENVFROM(0.00)[]; IP_SCORE(0.00)[ip: (2.36), ipnet: 2a00:1450::/32(-2.32), asn: 15169(-0.43), country: US(-0.05)]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; TAGGED_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)[-0.999,0]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; REPLYTO_DOM_NEQ_FROM_DOM(0.00)[]; IP_SCORE_FREEMAIL(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[1.4.4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.5.4.1.0.0.a.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, 29 Apr 2020 16:19:14 -0000 On 29.04.2020 17:20, Konstantin Belousov wrote: > On Wed, Apr 29, 2020 at 02:06:42PM +0000, Michal Meloun wrote: >> Author: mmel >> Date: Wed Apr 29 14:06:42 2020 >> New Revision: 360463 >> URL: https://svnweb.freebsd.org/changeset/base/360463 >> >> Log: >> Don't allow to use FPU inside of rtld library. >> Clang10 may use FPU instructions for optimizing operations with >> memory blocks. But we don't want to do lengthy save/restore of all >> FPU registers across each rtld_start() call. >> >> MFC after: 3 week >> >> Modified: >> head/libexec/rtld-elf/Makefile >> >> Modified: head/libexec/rtld-elf/Makefile >> ============================================================================== >> --- head/libexec/rtld-elf/Makefile Wed Apr 29 13:45:21 2020 (r360462) >> +++ head/libexec/rtld-elf/Makefile Wed Apr 29 14:06:42 2020 (r360463) >> @@ -48,6 +48,9 @@ MLINKS?= rtld.1 ld-elf.so.1.1 \ >> rtld.1 ld.so.1 >> >> CFLAGS+= -fpic -DPIC $(DEBUG) >> +CFLAGS.armv6+= -mfpu=none >> +CFLAGS.armv7+= -mfpu=none > I cleaned rtld-elf/Makefile of all MD bits, please move this to > arm/Makefile.inc. > Done in r360469. arm/Makefile.inc is, of course, much better place for these flags. Thanks for pointing me me on this. Michal >> + >> LDFLAGS+= -shared -Wl,-Bsymbolic -Wl,-z,defs -nostdlib -e ${RTLD_ENTRY} >> # Pull in the dependencies that we use from libc >> .include "rtld-libc/Makefile.inc" From owner-svn-src-all@freebsd.org Wed Apr 29 16:24: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 998102BAC71; Wed, 29 Apr 2020 16:24:34 +0000 (UTC) (envelope-from jceel@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 49C3kV3vfZz4Tqm; Wed, 29 Apr 2020 16:24:34 +0000 (UTC) (envelope-from jceel@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 80C668595; Wed, 29 Apr 2020 16:24:34 +0000 (UTC) (envelope-from jceel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03TGOYkN023540; Wed, 29 Apr 2020 16:24:34 GMT (envelope-from jceel@FreeBSD.org) Received: (from jceel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03TGOXsf023532; Wed, 29 Apr 2020 16:24:33 GMT (envelope-from jceel@FreeBSD.org) Message-Id: <202004291624.03TGOXsf023532@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jceel set sender to jceel@FreeBSD.org using -f From: Jakub Wojciech Klama Date: Wed, 29 Apr 2020 16:24:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r360470 - in vendor/lib9p: . dist dist/backend dist/example dist/pytest dist/sbuf dist/transport X-SVN-Group: vendor X-SVN-Commit-Author: jceel X-SVN-Commit-Paths: in vendor/lib9p: . dist dist/backend dist/example dist/pytest dist/sbuf dist/transport X-SVN-Commit-Revision: 360470 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, 29 Apr 2020 16:24:34 -0000 Author: jceel Date: Wed Apr 29 16:24:32 2020 New Revision: 360470 URL: https://svnweb.freebsd.org/changeset/base/360470 Log: Import lib9p 7ddb1164407da19b9b1afb83df83ae65a71a9a66. Approved by: trasz (mentor) MFC after: 1 month Sponsored by: Conclusive Engineering Added: vendor/lib9p/ vendor/lib9p/dist/ vendor/lib9p/dist/.gitignore vendor/lib9p/dist/COPYRIGHT vendor/lib9p/dist/GNUmakefile vendor/lib9p/dist/Makefile (contents, props changed) vendor/lib9p/dist/README.md vendor/lib9p/dist/apple_endian.h (contents, props changed) vendor/lib9p/dist/backend/ vendor/lib9p/dist/backend/backend.h (contents, props changed) vendor/lib9p/dist/backend/fs.c (contents, props changed) vendor/lib9p/dist/backend/fs.h (contents, props changed) vendor/lib9p/dist/connection.c (contents, props changed) vendor/lib9p/dist/example/ vendor/lib9p/dist/example/Makefile (contents, props changed) vendor/lib9p/dist/example/server.c (contents, props changed) vendor/lib9p/dist/fcall.h (contents, props changed) vendor/lib9p/dist/fid.h (contents, props changed) vendor/lib9p/dist/genacl.c (contents, props changed) vendor/lib9p/dist/genacl.h (contents, props changed) vendor/lib9p/dist/hashtable.c (contents, props changed) vendor/lib9p/dist/hashtable.h (contents, props changed) vendor/lib9p/dist/lib9p.h (contents, props changed) vendor/lib9p/dist/lib9p_impl.h (contents, props changed) vendor/lib9p/dist/linux_errno.h (contents, props changed) vendor/lib9p/dist/log.c (contents, props changed) vendor/lib9p/dist/log.h (contents, props changed) vendor/lib9p/dist/pack.c (contents, props changed) vendor/lib9p/dist/pytest/ vendor/lib9p/dist/pytest/.gitignore vendor/lib9p/dist/pytest/Makefile (contents, props changed) vendor/lib9p/dist/pytest/README vendor/lib9p/dist/pytest/client.py (contents, props changed) vendor/lib9p/dist/pytest/lerrno.py (contents, props changed) vendor/lib9p/dist/pytest/numalloc.py (contents, props changed) vendor/lib9p/dist/pytest/p9conn.py (contents, props changed) vendor/lib9p/dist/pytest/p9err.py (contents, props changed) vendor/lib9p/dist/pytest/pfod.py (contents, props changed) vendor/lib9p/dist/pytest/protocol.py (contents, props changed) vendor/lib9p/dist/pytest/sequencer.py (contents, props changed) vendor/lib9p/dist/pytest/testconf.ini.sample vendor/lib9p/dist/request.c (contents, props changed) vendor/lib9p/dist/rfuncs.c (contents, props changed) vendor/lib9p/dist/rfuncs.h (contents, props changed) vendor/lib9p/dist/sbuf/ vendor/lib9p/dist/sbuf/sbuf.c (contents, props changed) vendor/lib9p/dist/sbuf/sbuf.h (contents, props changed) vendor/lib9p/dist/threadpool.c (contents, props changed) vendor/lib9p/dist/threadpool.h (contents, props changed) vendor/lib9p/dist/transport/ vendor/lib9p/dist/transport/socket.c (contents, props changed) vendor/lib9p/dist/transport/socket.h (contents, props changed) vendor/lib9p/dist/utils.c (contents, props changed) Added: vendor/lib9p/dist/.gitignore ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/lib9p/dist/.gitignore Wed Apr 29 16:24:32 2020 (r360470) @@ -0,0 +1,37 @@ +# Object files +*.o +*.ko +*.obj +*.elf + +# Precompiled Headers +*.gch +*.pch + +# Libraries +*.lib +*.a +*.la +*.lo + +# Shared objects (inc. Windows DLLs) +*.dll +*.so +*.so.* +*.dylib + +# Executables +*.exe +*.out +*.app +*.i*86 +*.x86_64 +*.hex + +# Debug files +*.dSYM/ +/build/ + +*.po +*.pico +*.depend Added: vendor/lib9p/dist/COPYRIGHT ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/lib9p/dist/COPYRIGHT Wed Apr 29 16:24:32 2020 (r360470) @@ -0,0 +1,47 @@ +Copyright 2016 Jakub Klama +All rights reserved + +Redistribution and use in source and binary forms, with or without +modification, are permitted providing 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. + +Some parts of the code are based on libixp (http://libs.suckless.org/libixp) +library code released under following license: + +© 2005-2006 Anselm R. Garbe +© 2006-2010 Kris Maglione + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. Added: vendor/lib9p/dist/GNUmakefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/lib9p/dist/GNUmakefile Wed Apr 29 16:24:32 2020 (r360470) @@ -0,0 +1,76 @@ +CC_VERSION := $(shell $(CC) --version | \ + sed -n -e '/clang-/s/.*clang-\([0-9][0-9]*\).*/\1/p') +ifeq ($(CC_VERSION),) +# probably not clang +CC_VERSION := 0 +endif + +WFLAGS := + +# Warnings are version-dependent, unfortunately, +# so test for version before adding a -W flag. +# Note: gnu make requires $(shell test ...) for "a > b" type tests. +ifeq ($(shell test $(CC_VERSION) -gt 0; echo $$?),0) +WFLAGS += -Weverything +WFLAGS += -Wno-padded +WFLAGS += -Wno-gnu-zero-variadic-macro-arguments +WFLAGS += -Wno-format-nonliteral +WFLAGS += -Wno-unused-macros +WFLAGS += -Wno-disabled-macro-expansion +WFLAGS += -Werror +endif + +ifeq ($(shell test $(CC_VERSION) -gt 600; echo $$?),0) +WFLAGS += -Wno-reserved-id-macro +endif + +CFLAGS := $(WFLAGS) \ + -g \ + -O0 \ + -DL9P_DEBUG=L9P_DEBUG +# Note: to turn on debug, use -DL9P_DEBUG=L9P_DEBUG, +# and set env variable LIB9P_LOGGING to stderr or to +# the (preferably full path name of) the debug log file. + +LIB_SRCS := \ + pack.c \ + connection.c \ + request.c \ + genacl.c \ + log.c \ + hashtable.c \ + utils.c \ + rfuncs.c \ + threadpool.c \ + sbuf/sbuf.c \ + transport/socket.c \ + backend/fs.c + +SERVER_SRCS := \ + example/server.c + +BUILD_DIR := build +LIB_OBJS := $(addprefix build/,$(LIB_SRCS:.c=.o)) +SERVER_OBJS := $(SERVER_SRCS:.c=.o) +LIB := lib9p.dylib +SERVER := server + +all: build $(LIB) $(SERVER) + +$(LIB): $(LIB_OBJS) + cc -dynamiclib $^ -o build/$@ + +$(SERVER): $(SERVER_OBJS) $(LIB) + cc $< -o build/$(SERVER) -Lbuild/ -l9p + +clean: + rm -rf build + rm -f $(SERVER_OBJS) +build: + mkdir build + mkdir build/sbuf + mkdir build/transport + mkdir build/backend + +build/%.o: %.c + $(CC) $(CFLAGS) -c $< -o $@ Added: vendor/lib9p/dist/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/lib9p/dist/Makefile Wed Apr 29 16:24:32 2020 (r360470) @@ -0,0 +1,27 @@ +# Note: to turn on debug, use -DL9P_DEBUG=L9P_DEBUG, +# and set env variable LIB9P_LOGGING to stderr or to +# the (preferably full path name of) the debug log file. + +LIB= 9p +SHLIB_MAJOR= 1 +SRCS= pack.c \ + connection.c \ + request.c log.c \ + hashtable.c \ + genacl.c \ + utils.c \ + rfuncs.c \ + threadpool.c \ + transport/socket.c \ + backend/fs.c + +INCS= lib9p.h +CC= clang +CFLAGS= -g -O0 -DL9P_DEBUG=L9P_DEBUG -DWITH_CASPER +LIBADD= sbuf libcasper libcap_pwd libcap_grp +SUBDIR= example + +cscope: .PHONY + cd ${.CURDIR}; cscope -buq $$(find . -name '*.[ch]' -print) + +.include Added: vendor/lib9p/dist/README.md ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/lib9p/dist/README.md Wed Apr 29 16:24:32 2020 (r360470) @@ -0,0 +1,20 @@ +# lib9p + +lib9p is a server library implementing 9p2000, 9p2000.u and 9p2000.L revisions +of 9P protocol. It is being developed primarily as a backend for virtio-9p in +BHyVe, the FreeBSD hypervisor. + +# Features + +* 9p2000, 9p2000.u and 9p2000.L protocol support +* Built-in TCP transport + +# Supported operating systems + +* FreeBSD (>=10) +* macOS (>=10.9) + +# Authors + +* Jakub Klama [jceel](https://github.com/jceel) +* Chris Torek [chris3torek](https://github.com/chris3torek) Added: vendor/lib9p/dist/apple_endian.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/lib9p/dist/apple_endian.h Wed Apr 29 16:24:32 2020 (r360470) @@ -0,0 +1,27 @@ +#ifndef _APPLE_ENDIAN_H +#define _APPLE_ENDIAN_H + +/* + * Shims to make Apple's endian headers and macros compatible + * with (which is awful). + */ + +# include + +# define _LITTLE_ENDIAN 0x12345678 +# define _BIG_ENDIAN 0x87654321 + +# ifdef __LITTLE_ENDIAN__ +# define _BYTE_ORDER _LITTLE_ENDIAN +# endif +# ifdef __BIG_ENDIAN__ +# define _BYTE_ORDER _BIG_ENDIAN +# endif + +# define htole32(x) OSSwapHostToLittleInt32(x) +# define le32toh(x) OSSwapLittleToHostInt32(x) + +# define htobe32(x) OSSwapHostToBigInt32(x) +# define be32toh(x) OSSwapBigToHostInt32(x) + +#endif /* _APPLE_ENDIAN_H */ Added: vendor/lib9p/dist/backend/backend.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/lib9p/dist/backend/backend.h Wed Apr 29 16:24:32 2020 (r360470) @@ -0,0 +1,69 @@ +/* + * Copyright 2016 Jakub Klama + * All rights reserved + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted providing 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. + * + */ + + +#ifndef LIB9P_BACKEND_H +#define LIB9P_BACKEND_H + +struct l9p_backend { + void *softc; + void (*freefid)(void *, struct l9p_fid *); + int (*attach)(void *, struct l9p_request *); + int (*clunk)(void *, struct l9p_fid *); + int (*create)(void *, struct l9p_request *); + int (*open)(void *, struct l9p_request *); + int (*read)(void *, struct l9p_request *); + int (*remove)(void *, struct l9p_fid *); + int (*stat)(void *, struct l9p_request *); + int (*walk)(void *, struct l9p_request *); + int (*write)(void *, struct l9p_request *); + int (*wstat)(void *, struct l9p_request *); + int (*statfs)(void *, struct l9p_request *); + int (*lopen)(void *, struct l9p_request *); + int (*lcreate)(void *, struct l9p_request *); + int (*symlink)(void *, struct l9p_request *); + int (*mknod)(void *, struct l9p_request *); + int (*rename)(void *, struct l9p_request *); + int (*readlink)(void *, struct l9p_request *); + int (*getattr)(void *, struct l9p_request *); + int (*setattr)(void *, struct l9p_request *); + int (*xattrwalk)(void *, struct l9p_request *); + int (*xattrcreate)(void *, struct l9p_request *); + int (*xattrread)(void *, struct l9p_request *); + int (*xattrwrite)(void *, struct l9p_request *); + int (*xattrclunk)(void *, struct l9p_fid *); + int (*readdir)(void *, struct l9p_request *); + int (*fsync)(void *, struct l9p_request *); + int (*lock)(void *, struct l9p_request *); + int (*getlock)(void *, struct l9p_request *); + int (*link)(void *, struct l9p_request *); + int (*mkdir)(void *, struct l9p_request *); + int (*renameat)(void *, struct l9p_request *); + int (*unlinkat)(void *, struct l9p_request *); +}; + +#endif /* LIB9P_BACKEND_H */ Added: vendor/lib9p/dist/backend/fs.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/lib9p/dist/backend/fs.c Wed Apr 29 16:24:32 2020 (r360470) @@ -0,0 +1,3061 @@ +/* + * Copyright 2016 Jakub Klama + * All rights reserved + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted providing 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. + * + */ + +/* + * Based on libixp code: ©2007-2010 Kris Maglione + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "../lib9p.h" +#include "../lib9p_impl.h" +#include "../fid.h" +#include "../log.h" +#include "../rfuncs.h" +#include "../genacl.h" +#include "backend.h" +#include "fs.h" + +#if defined(WITH_CASPER) + #include + #include + #include +#endif + +#if defined(__FreeBSD__) + #include + #if __FreeBSD_version >= 1000000 + #define HAVE_BINDAT + #endif +#endif + +#if defined(__FreeBSD__) + #define HAVE_BIRTHTIME +#endif + +#if defined(__APPLE__) + #include + #include "Availability.h" + #define ACL_TYPE_NFS4 ACL_TYPE_EXTENDED +#endif + +struct fs_softc { + int fs_rootfd; + bool fs_readonly; +#if defined(WITH_CASPER) + cap_channel_t *fs_cappwd; + cap_channel_t *fs_capgrp; +#endif +}; + +struct fs_fid { + DIR *ff_dir; + int ff_dirfd; + int ff_fd; + int ff_flags; + char *ff_name; + struct fs_authinfo *ff_ai; + pthread_mutex_t ff_mtx; + struct l9p_acl *ff_acl; /* cached ACL if any */ +}; + +#define FF_NO_NFSV4_ACL 0x01 /* don't go looking for NFSv4 ACLs */ +/* FF_NO_POSIX_ACL 0x02 -- not yet */ + +/* + * Our authinfo consists of: + * + * - a reference count + * - a uid + * - a gid-set + * + * The "default" gid is the first gid in the git-set, provided the + * set size is at least 1. The set-size may be zero, though. + * + * Adjustments to the ref-count must be atomic, once it's shared. + * It would be nice to use C11 atomics here but they are not common + * enough to all systems just yet; for now, we use a mutex. + * + * Note that some ops (Linux style ones) pass an effective gid for + * the op, in which case, that gid may override. To achieve this + * effect, permissions testing functions also take an extra gid. + * If this gid is (gid_t)-1 it is not used and only the remaining + * gids take part. + * + * The uid may also be (uid_t)-1, meaning "no uid was available + * at all at attach time". In this case, new files inherit parent + * directory uids. + * + * The refcount is simply the number of "openfile"s using this + * authinfo (so that when the last ref goes away, we can free it). + * + * There are also master ACL flags (same as in ff_flags). + */ +struct fs_authinfo { + pthread_mutex_t ai_mtx; /* lock for refcnt */ + uint32_t ai_refcnt; + int ai_flags; + uid_t ai_uid; + int ai_ngids; + gid_t ai_gids[]; /* NB: flexible array member */ +}; + +/* + * We have a global-static mutex for single-threading Tattach + * requests, which use getpwnam (and indirectly, getgr* functions) + * which are not reentrant. + */ +static bool fs_attach_mutex_inited; +static pthread_mutex_t fs_attach_mutex; + +/* + * Internal functions (except inline functions). + */ +static struct passwd *fs_getpwuid(struct fs_softc *, uid_t, struct r_pgdata *); +static struct group *fs_getgrgid(struct fs_softc *, gid_t, struct r_pgdata *); +static int fs_buildname(struct l9p_fid *, char *, char *, size_t); +static int fs_pdir(struct fs_softc *, struct l9p_fid *, char *, size_t, + struct stat *st); +static int fs_dpf(char *, char *, size_t); +static int fs_oflags_dotu(int, int *); +static int fs_oflags_dotl(uint32_t, int *, enum l9p_omode *); +static int fs_nde(struct fs_softc *, struct l9p_fid *, bool, gid_t, + struct stat *, uid_t *, gid_t *); +static struct fs_fid *open_fid(int, const char *, struct fs_authinfo *, bool); +static void dostat(struct fs_softc *, struct l9p_stat *, char *, + struct stat *, bool dotu); +static void dostatfs(struct l9p_statfs *, struct statfs *, long); +static void fillacl(struct fs_fid *ff); +static struct l9p_acl *getacl(struct fs_fid *ff, int fd, const char *path); +static void dropacl(struct fs_fid *ff); +static struct l9p_acl *look_for_nfsv4_acl(struct fs_fid *ff, int fd, + const char *path); +static int check_access(int32_t, + struct l9p_acl *, struct stat *, struct l9p_acl *, struct stat *, + struct fs_authinfo *, gid_t); +static void generate_qid(struct stat *, struct l9p_qid *); + +static int fs_icreate(void *, struct l9p_fid *, char *, int, + bool, mode_t, gid_t, struct stat *); +static int fs_iopen(void *, struct l9p_fid *, int, enum l9p_omode, + gid_t, struct stat *); +static int fs_imkdir(void *, struct l9p_fid *, char *, + bool, mode_t, gid_t, struct stat *); +static int fs_imkfifo(void *, struct l9p_fid *, char *, + bool, mode_t, gid_t, struct stat *); +static int fs_imknod(void *, struct l9p_fid *, char *, + bool, mode_t, dev_t, gid_t, struct stat *); +static int fs_imksocket(void *, struct l9p_fid *, char *, + bool, mode_t, gid_t, struct stat *); +static int fs_isymlink(void *, struct l9p_fid *, char *, char *, + gid_t, struct stat *); + +/* + * Internal functions implementing backend. + */ +static int fs_attach(void *, struct l9p_request *); +static int fs_clunk(void *, struct l9p_fid *); +static int fs_create(void *, struct l9p_request *); +static int fs_open(void *, struct l9p_request *); +static int fs_read(void *, struct l9p_request *); +static int fs_remove(void *, struct l9p_fid *); +static int fs_stat(void *, struct l9p_request *); +static int fs_walk(void *, struct l9p_request *); +static int fs_write(void *, struct l9p_request *); +static int fs_wstat(void *, struct l9p_request *); +static int fs_statfs(void *, struct l9p_request *); +static int fs_lopen(void *, struct l9p_request *); +static int fs_lcreate(void *, struct l9p_request *); +static int fs_symlink(void *, struct l9p_request *); +static int fs_mknod(void *, struct l9p_request *); +static int fs_rename(void *, struct l9p_request *); +static int fs_readlink(void *, struct l9p_request *); +static int fs_getattr(void *, struct l9p_request *); +static int fs_setattr(void *, struct l9p_request *); +static int fs_xattrwalk(void *, struct l9p_request *); +static int fs_xattrcreate(void *, struct l9p_request *); +static int fs_readdir(void *, struct l9p_request *); +static int fs_fsync(void *, struct l9p_request *); +static int fs_lock(void *, struct l9p_request *); +static int fs_getlock(void *, struct l9p_request *); +static int fs_link(void *, struct l9p_request *); +static int fs_renameat(void *, struct l9p_request *); +static int fs_unlinkat(void *, struct l9p_request *); +static void fs_freefid(void *, struct l9p_fid *); + +/* + * Convert from 9p2000 open/create mode to Unix-style O_* flags. + * This includes 9p2000.u extensions, but not 9p2000.L protocol, + * which has entirely different open, create, etc., flag bits. + * + * The given here is the one-byte (uint8_t) "mode" + * argument to Tcreate or Topen, so it can have at most 8 bits. + * + * https://swtch.com/plan9port/man/man9/open.html and + * http://plan9.bell-labs.com/magic/man2html/5/open + * both say: + * + * The [low two bits of the] mode field determines the + * type of I/O ... [I]f mode has the OTRUNC (0x10) bit + * set, the file is to be truncated, which requires write + * permission ...; if the mode has the ORCLOSE (0x40) bit + * set, the file is to be removed when the fid is clunked, + * which requires permission to remove the file from its + * directory. All other bits in mode should be zero. It + * is illegal to write a directory, truncate it, or + * attempt to remove it on close. + * + * 9P2000.u may add ODIRECT (0x80); this is not completely clear. + * The fcall.h header defines OCEXEC (0x20) as well, but it makes + * no sense to send this to a server. There seem to be no bits + * 0x04 and 0x08. + * + * We always turn on O_NOCTTY since as a server, we never want + * to gain a controlling terminal. We always turn on O_NOFOLLOW + * for reasons described elsewhere. + */ +static int +fs_oflags_dotu(int mode, int *aflags) +{ + int flags; +#define CONVERT(theirs, ours) \ + do { \ + if (mode & (theirs)) { \ + mode &= ~(theirs); \ + flags |= ours; \ + } \ + } while (0) + + switch (mode & L9P_OACCMODE) { + + case L9P_OREAD: + default: + flags = O_RDONLY; + break; + + case L9P_OWRITE: + flags = O_WRONLY; + break; + + case L9P_ORDWR: + flags = O_RDWR; + break; + + case L9P_OEXEC: + if (mode & L9P_OTRUNC) + return (EINVAL); + flags = O_RDONLY; + break; + } + + flags |= O_NOCTTY | O_NOFOLLOW; + + CONVERT(L9P_OTRUNC, O_TRUNC); + + /* + * Now take away some flags locally: + * the access mode (already translated) + * ORCLOSE - caller only + * OCEXEC - makes no sense in server + * ODIRECT - not applicable here + * If there are any flag bits left after this, + * we were unable to translate them. For now, let's + * treat this as EINVAL so that we can catch problems. + */ + mode &= ~(L9P_OACCMODE | L9P_ORCLOSE | L9P_OCEXEC | L9P_ODIRECT); + if (mode != 0) { + L9P_LOG(L9P_INFO, + "fs_oflags_dotu: untranslated bits: %#x", + (unsigned)mode); + return (EINVAL); + } + + *aflags = flags; + return (0); +#undef CONVERT +} + +/* + * Convert from 9P2000.L (Linux) open mode bits to O_* flags. + * See fs_oflags_dotu above. + * + * Linux currently does not have open-for-exec, but there is a + * proposal for it using O_PATH|O_NOFOLLOW, now handled here. + * + * We may eventually also set L9P_ORCLOSE for L_O_TMPFILE. + */ +static int +fs_oflags_dotl(uint32_t l_mode, int *aflags, enum l9p_omode *ap9) +{ + int flags; + enum l9p_omode p9; +#define CLEAR(theirs) l_mode &= ~(uint32_t)(theirs) +#define CONVERT(theirs, ours) \ + do { \ + if (l_mode & (theirs)) { \ + CLEAR(theirs); \ + flags |= ours; \ + } \ + } while (0) + + /* + * Linux O_RDONLY, O_WRONLY, O_RDWR (0,1,2) match BSD/MacOS. + */ + flags = l_mode & O_ACCMODE; + if (flags == 3) + return (EINVAL); + CLEAR(O_ACCMODE); + + if ((l_mode & (L9P_L_O_PATH | L9P_L_O_NOFOLLOW)) == + (L9P_L_O_PATH | L9P_L_O_NOFOLLOW)) { + CLEAR(L9P_L_O_PATH | L9P_L_O_NOFOLLOW); + p9 = L9P_OEXEC; + } else { + /* + * Slightly dirty, but same dirt, really, as + * setting flags from l_mode & O_ACCMODE. + */ + p9 = (enum l9p_omode)flags; /* slightly dirty */ + } + + /* turn L_O_TMPFILE into L9P_ORCLOSE in *p9? */ + if (l_mode & L9P_L_O_TRUNC) + p9 |= L9P_OTRUNC; /* but don't CLEAR yet */ + + flags |= O_NOCTTY | O_NOFOLLOW; + + /* + * L_O_CREAT seems to be noise, since we get separate open + * and create. But it is actually set sometimes. We just + * throw it out here; create ops must set it themselves and + * open ops have no permissions bits and hence cannot create. + * + * L_O_EXCL does make sense on create ops, i.e., we can + * take a create op with or without L_O_EXCL. We pass that + * through. + */ + CLEAR(L9P_L_O_CREAT); + CONVERT(L9P_L_O_EXCL, O_EXCL); + CONVERT(L9P_L_O_TRUNC, O_TRUNC); + CONVERT(L9P_L_O_DIRECTORY, O_DIRECTORY); + CONVERT(L9P_L_O_APPEND, O_APPEND); + CONVERT(L9P_L_O_NONBLOCK, O_NONBLOCK); + + /* + * Discard these as useless noise at our (server) end. + * (NOATIME might be useful but we can only set it on a + * per-mount basis.) + */ + CLEAR(L9P_L_O_CLOEXEC); + CLEAR(L9P_L_O_DIRECT); + CLEAR(L9P_L_O_DSYNC); + CLEAR(L9P_L_O_FASYNC); + CLEAR(L9P_L_O_LARGEFILE); + CLEAR(L9P_L_O_NOATIME); + CLEAR(L9P_L_O_NOCTTY); + CLEAR(L9P_L_O_NOFOLLOW); + CLEAR(L9P_L_O_SYNC); + + if (l_mode != 0) { + L9P_LOG(L9P_INFO, + "fs_oflags_dotl: untranslated bits: %#x", + (unsigned)l_mode); + return (EINVAL); + } + + *aflags = flags; + *ap9 = p9; + return (0); +#undef CLEAR +#undef CONVERT +} + +static struct passwd * +fs_getpwuid(struct fs_softc *sc, uid_t uid, struct r_pgdata *pg) +{ +#if defined(WITH_CASPER) + return (r_cap_getpwuid(sc->fs_cappwd, uid, pg)); +#else + (void)sc; + return (r_getpwuid(uid, pg)); +#endif +} + +static struct group * +fs_getgrgid(struct fs_softc *sc, gid_t gid, struct r_pgdata *pg) +{ +#if defined(WITH_CASPER) + return (r_cap_getgrgid(sc->fs_capgrp, gid, pg)); +#else + (void)sc; + return (r_getgrgid(gid, pg)); +#endif +} + +/* + * Build full name of file by appending given name to directory name. + */ +static int +fs_buildname(struct l9p_fid *dir, char *name, char *buf, size_t size) +{ + struct fs_fid *dirf = dir->lo_aux; + size_t dlen, nlen1; + + assert(dirf != NULL); + dlen = strlen(dirf->ff_name); + nlen1 = strlen(name) + 1; /* +1 for '\0' */ + if (dlen + 1 + nlen1 > size) + return (ENAMETOOLONG); + memcpy(buf, dirf->ff_name, dlen); + buf[dlen] = '/'; + memcpy(buf + dlen + 1, name, nlen1); + return (0); +} + +/* + * Build parent name of file by splitting it off. Return an error + * if the given fid represents the root, so that there is no such + * parent, or if the discovered parent is not a directory. + */ +static int +fs_pdir(struct fs_softc *sc __unused, struct l9p_fid *fid, char *buf, + size_t size, struct stat *st) +{ + struct fs_fid *ff; + char *path; + + ff = fid->lo_aux; + assert(ff != NULL); + path = ff->ff_name; + path = r_dirname(path, buf, size); + if (path == NULL) + return (ENAMETOOLONG); + if (fstatat(ff->ff_dirfd, path, st, AT_SYMLINK_NOFOLLOW) != 0) + return (errno); + if (!S_ISDIR(st->st_mode)) + return (ENOTDIR); + return (0); +} + +/* + * Like fs_buildname() but for adding a file name to a buffer + * already holding a directory name. Essentially does + * strcat(dbuf, "/"); + * strcat(dbuf, fname); + * but with size checking and an ENAMETOOLONG error as needed. + * + * (Think of the function name as "directory plus-equals file".) + */ +static int +fs_dpf(char *dbuf, char *fname, size_t size) +{ + size_t dlen, nlen1; + + dlen = strlen(dbuf); + nlen1 = strlen(fname) + 1; + if (dlen + 1 + nlen1 > size) + return (ENAMETOOLONG); + dbuf[dlen] = '/'; + memcpy(dbuf + dlen + 1, fname, nlen1); + return (0); +} + +/* + * Prepare to create a new directory entry (open with O_CREAT, + * mkdir, etc -- any operation that creates a new inode), + * operating in parent data , based on authinfo and + * effective gid . + * + * The new entity should be owned by user/group <*nuid, *ngid>, + * if it's really a new entity. It will be a directory if isdir. + * + * Returns an error number if the entry should not be created + * (e.g., read-only file system or no permission to write in + * parent directory). Always sets *nuid and *ngid on success: + * in the worst case, when there is no available ID, this will + * use the parent directory's IDs. Fills in <*st> on success. + */ +static int +fs_nde(struct fs_softc *sc, struct l9p_fid *dir, bool isdir, gid_t egid, + struct stat *st, uid_t *nuid, gid_t *ngid) +{ + struct fs_fid *dirf; + struct fs_authinfo *ai; + int32_t op; + int error; + + if (sc->fs_readonly) + return (EROFS); + dirf = dir->lo_aux; + assert(dirf != NULL); + if (fstatat(dirf->ff_dirfd, dirf->ff_name, st, + AT_SYMLINK_NOFOLLOW) != 0) + return (errno); + if (!S_ISDIR(st->st_mode)) + return (ENOTDIR); + dirf = dir->lo_aux; + ai = dirf->ff_ai; + fillacl(dirf); + op = isdir ? L9P_ACE_ADD_SUBDIRECTORY : L9P_ACE_ADD_FILE; + error = check_access(op, dirf->ff_acl, st, NULL, NULL, ai, egid); + if (error) + return (EPERM); + + *nuid = ai->ai_uid != (uid_t)-1 ? ai->ai_uid : st->st_uid; + *ngid = egid != (gid_t)-1 ? egid : + ai->ai_ngids > 0 ? ai->ai_gids[0] : st->st_gid; + return (0); +} + +/* + * Allocate new open-file data structure to attach to a fid. + * + * The new file's authinfo is the same as the old one's, and + * we gain a reference. + */ +static struct fs_fid * +open_fid(int dirfd, const char *path, struct fs_authinfo *ai, bool creating) +{ + struct fs_fid *ret; + uint32_t newcount; + int error; + + ret = l9p_calloc(1, sizeof(*ret)); + error = pthread_mutex_init(&ret->ff_mtx, NULL); + if (error) { + free(ret); + return (NULL); + } + ret->ff_fd = -1; + ret->ff_dirfd = dirfd; + ret->ff_name = strdup(path); + if (ret->ff_name == NULL) { + pthread_mutex_destroy(&ret->ff_mtx); + free(ret); + return (NULL); + } + pthread_mutex_lock(&ai->ai_mtx); + newcount = ++ai->ai_refcnt; + pthread_mutex_unlock(&ai->ai_mtx); + /* + * If we just incremented the count to 1, we're the *first* + * reference. This is only allowed when creating the authinfo, + * otherwise it means something has gone wrong. This cannot + * catch every bad (re)use of a freed authinfo but it may catch + * a few. + */ + assert(newcount > 1 || creating); + L9P_LOG(L9P_DEBUG, "authinfo %p now used by %lu", + (void *)ai, (u_long)newcount); + ret->ff_ai = ai; + return (ret); +} + +static void +dostat(struct fs_softc *sc, struct l9p_stat *s, char *name, + struct stat *buf, bool dotu) +{ + struct passwd *user; + struct group *group; + + memset(s, 0, sizeof(struct l9p_stat)); + + generate_qid(buf, &s->qid); + + s->type = 0; + s->dev = 0; + s->mode = buf->st_mode & 0777; + + if (S_ISDIR(buf->st_mode)) + s->mode |= L9P_DMDIR; + + if (S_ISLNK(buf->st_mode) && dotu) + s->mode |= L9P_DMSYMLINK; + + if (S_ISCHR(buf->st_mode) || S_ISBLK(buf->st_mode)) + s->mode |= L9P_DMDEVICE; + + if (S_ISSOCK(buf->st_mode)) + s->mode |= L9P_DMSOCKET; + + if (S_ISFIFO(buf->st_mode)) + s->mode |= L9P_DMNAMEDPIPE; + + s->atime = (uint32_t)buf->st_atime; + s->mtime = (uint32_t)buf->st_mtime; + s->length = (uint64_t)buf->st_size; + + s->name = r_basename(name, NULL, 0); + + if (!dotu) { + struct r_pgdata udata, gdata; + + user = fs_getpwuid(sc, buf->st_uid, &udata); + group = fs_getgrgid(sc, buf->st_gid, &gdata); + s->uid = user != NULL ? strdup(user->pw_name) : NULL; + s->gid = group != NULL ? strdup(group->gr_name) : NULL; + s->muid = user != NULL ? strdup(user->pw_name) : NULL; + r_pgfree(&udata); + r_pgfree(&gdata); + } else { + /* + * When using 9P2000.u, we don't need to bother about + * providing user and group names in textual form. + * + * NB: if the asprintf()s fail, s->extension should + * be unset so we can ignore these. + */ + s->n_uid = buf->st_uid; + s->n_gid = buf->st_gid; + s->n_muid = buf->st_uid; + + if (S_ISLNK(buf->st_mode)) { + char target[MAXPATHLEN]; + ssize_t ret = readlink(name, target, MAXPATHLEN); + + if (ret < 0) { + s->extension = NULL; + return; + } + + s->extension = strndup(target, (size_t)ret); + } + + if (S_ISBLK(buf->st_mode)) { + asprintf(&s->extension, "b %d %d", major(buf->st_rdev), + minor(buf->st_rdev)); + } + + if (S_ISCHR(buf->st_mode)) { + asprintf(&s->extension, "c %d %d", major(buf->st_rdev), + minor(buf->st_rdev)); + } *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Wed Apr 29 16:28: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 23B852BADC7; Wed, 29 Apr 2020 16:28:41 +0000 (UTC) (envelope-from jceel@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 49C3qF0Bsfz4V37; Wed, 29 Apr 2020 16:28:41 +0000 (UTC) (envelope-from jceel@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 DC3EE859D; Wed, 29 Apr 2020 16:28:40 +0000 (UTC) (envelope-from jceel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03TGSeeN023776; Wed, 29 Apr 2020 16:28:40 GMT (envelope-from jceel@FreeBSD.org) Received: (from jceel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03TGSewN023775; Wed, 29 Apr 2020 16:28:40 GMT (envelope-from jceel@FreeBSD.org) Message-Id: <202004291628.03TGSewN023775@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jceel set sender to jceel@FreeBSD.org using -f From: Jakub Wojciech Klama Date: Wed, 29 Apr 2020 16:28:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r360471 - vendor/lib9p/7ddb1164407da19b9b1afb83df83ae65a71a9a66 X-SVN-Group: vendor X-SVN-Commit-Author: jceel X-SVN-Commit-Paths: vendor/lib9p/7ddb1164407da19b9b1afb83df83ae65a71a9a66 X-SVN-Commit-Revision: 360471 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, 29 Apr 2020 16:28:41 -0000 Author: jceel Date: Wed Apr 29 16:28:40 2020 New Revision: 360471 URL: https://svnweb.freebsd.org/changeset/base/360471 Log: Tag import of lib9p 7ddb1164407da19b9b1afb83df83ae65a71a9a66 Added: vendor/lib9p/7ddb1164407da19b9b1afb83df83ae65a71a9a66/ - copied from r360470, vendor/lib9p/dist/ From owner-svn-src-all@freebsd.org Wed Apr 29 17:02: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 884D42BBBFE; Wed, 29 Apr 2020 17:02:38 +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 49C4ZQ2rYCz4X12; Wed, 29 Apr 2020 17:02:38 +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 5CD308D0D; Wed, 29 Apr 2020 17:02:38 +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 03TH2cm1047742; Wed, 29 Apr 2020 17:02:38 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03TH2cqR047741; Wed, 29 Apr 2020 17:02:38 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202004291702.03TH2cqR047741@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 29 Apr 2020 17:02: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: r360472 - stable/12/contrib/elftoolchain/readelf X-SVN-Group: stable-12 X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: stable/12/contrib/elftoolchain/readelf X-SVN-Commit-Revision: 360472 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, 29 Apr 2020 17:02:38 -0000 Author: emaste Date: Wed Apr 29 17:02:37 2020 New Revision: 360472 URL: https://svnweb.freebsd.org/changeset/base/360472 Log: MFC r345646: readelf: add newline after dumping dynamic FLAGS / FLAGS_1 All three dump_flags() callers need a newline after printing the flags. Reported by: kib Sponsored by: The FreeBSD Foundation Modified: stable/12/contrib/elftoolchain/readelf/readelf.c Directory Properties: stable/12/ (props changed) Modified: stable/12/contrib/elftoolchain/readelf/readelf.c ============================================================================== --- stable/12/contrib/elftoolchain/readelf/readelf.c Wed Apr 29 16:28:40 2020 (r360471) +++ stable/12/contrib/elftoolchain/readelf/readelf.c Wed Apr 29 17:02:37 2020 (r360472) @@ -2845,6 +2845,7 @@ dump_flags(struct flag_desc *desc, uint64_t val) } if (val != 0) printf(" unknown (0x%jx)", (uintmax_t)val); + printf("\n"); } static struct flag_desc dt_flags[] = { @@ -3628,7 +3629,6 @@ dump_notes_data(const char *name, uint32_t type, const goto unknown; printf(" Features:"); dump_flags(note_feature_ctl_flags, ubuf[0]); - printf("\n"); return; } } From owner-svn-src-all@freebsd.org Wed Apr 29 18:13: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 0024C2BDA42 for ; Wed, 29 Apr 2020 18:13:03 +0000 (UTC) (envelope-from ricera10@gmail.com) Received: from mail-lj1-f195.google.com (mail-lj1-f195.google.com [209.85.208.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 49C67f02SLz4bVt for ; Wed, 29 Apr 2020 18:13:01 +0000 (UTC) (envelope-from ricera10@gmail.com) Received: by mail-lj1-f195.google.com with SMTP id u6so3637134ljl.6 for ; Wed, 29 Apr 2020 11:13:01 -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=uknjBQ+QEF7OJWtxRW/xHx0iUtWVOrfr/PBfjgGAIJA=; b=jn2/LBfpKASzL82kWoSXL73Jsqh3dTLbSOSEt6BuKpycGUFPKiH2FkqAYV7dDyP98f K2GGt1Pfs/15CU44wkXzx0LMEs+IxhiO3X0/+iPssvd5h5g+Iiq4O2FDXrUzBpuEZBPC BMpuuSpSodEbdvFijTi4lG65qgvnqjxY5NMsd0Xrc2eO7awyqWm5MR64q8ShhD97VPc+ eioniyRs0C+VZnkE8f7F3Pxx0z90Kj2WORZmDkeUpqw/mHd4qJnu1IXfuV2Fl7eORWo4 C66uf3TXIbP9mBFs1B2gIURIpQiKGzRIPo+2k75MeuFpKPZQLAI43zZITcqy33+YLv2V R9Rg== X-Gm-Message-State: AGi0PuaV+YkGP5mM2/61HYdGHZtDYZpBZXxWGAAXSrRlw0fWwPKUv9yt HSMt0KJcQeIL/EPKoc+vvRfJHH3o X-Google-Smtp-Source: APiQypKoIcqM4tll7r/jxhyS/SwOv3pAKYxR+mopJjSB/lHexr4CkDlbWUttJSofAE/93Tj0uYoYgg== X-Received: by 2002:a2e:2c11:: with SMTP id s17mr21272084ljs.119.1588183979899; Wed, 29 Apr 2020 11:12:59 -0700 (PDT) Received: from mail-lf1-f46.google.com (mail-lf1-f46.google.com. [209.85.167.46]) by smtp.gmail.com with ESMTPSA id j8sm3122963lfk.88.2020.04.29.11.12.59 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 29 Apr 2020 11:12:59 -0700 (PDT) Received: by mail-lf1-f46.google.com with SMTP id l11so2513515lfc.5 for ; Wed, 29 Apr 2020 11:12:59 -0700 (PDT) X-Received: by 2002:a19:f806:: with SMTP id a6mr23772383lff.201.1588183978317; Wed, 29 Apr 2020 11:12:58 -0700 (PDT) MIME-Version: 1.0 References: <202004272202.03RM2iR2012757@repo.freebsd.org> <122841588148797@mail.yandex.ru> In-Reply-To: <122841588148797@mail.yandex.ru> From: Eric Joyner Date: Wed, 29 Apr 2020 11:12:46 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r360398 - head/sys/net To: Aleksandr Fedorov Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" X-Rspamd-Queue-Id: 49C67f02SLz4bVt X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of ricera10@gmail.com designates 209.85.208.195 as permitted sender) smtp.mailfrom=ricera10@gmail.com X-Spamd-Result: default: False [-1.04 / 15.00]; TO_DN_EQ_ADDR_SOME(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17:c]; URI_COUNT_ODD(1.00)[9]; RCVD_COUNT_THREE(0.00)[4]; FORGED_SENDER(0.30)[erj@freebsd.org,ricera10@gmail.com]; FREEMAIL_TO(0.00)[yandex.ru]; MIME_TRACE(0.00)[0:+,1:+,2:~]; R_DKIM_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; FROM_NEQ_ENVFROM(0.00)[erj@freebsd.org,ricera10@gmail.com]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-0.97)[-0.966,0]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; NEURAL_HAM_LONG(-0.98)[-0.977,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)[195.208.85.209.list.dnswl.org : 127.0.5.0]; IP_SCORE(-0.09)[ip: (0.41), ipnet: 209.85.128.0/17(-0.40), asn: 15169(-0.43), country: US(-0.05)]; RWL_MAILSPIKE_POSSIBLE(0.00)[195.208.85.209.rep.mailspike.net : 127.0.0.17]; 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: Wed, 29 Apr 2020 18:13:03 -0000 Hi Aleksandr, Part of this patch was to introduce a driver-dependent iflib function that would allow drivers to tell iflib whether or not to flap the interface when a vlan is registered or unregistered. I think this could be fixed for em(4) by having it implement that function to either always return false (so iflib doesn't do an init/stop), or maybe have it only do a reset when vlanhwfilter is enabled; I'm going to take a look at doing that. - Eric On Wed, Apr 29, 2020 at 1:27 AM Aleksandr Fedorov wrote: > Sorry for the late response, but I think that this changes makes Intel > cards with iflib drivers fully unusable. > We already have a regression which leads to an interface flapping > when adding vlan with enabled vlanhwfilter. But at least there is a > workaround - disabling hwfilter. > After this change, the interface will always flap. > > https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=241785 > https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=240818 > https://lists.freebsd.org/pipermail/freebsd-net/2018-November/052184.html > > From owner-svn-src-all@freebsd.org Wed Apr 29 18:51: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 9DA222BEDC3; Wed, 29 Apr 2020 18:51:35 +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 49C7073mNLz4dfJ; Wed, 29 Apr 2020 18:51:35 +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 7C977A1DD; Wed, 29 Apr 2020 18:51:35 +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 03TIpZTG011741; Wed, 29 Apr 2020 18:51:35 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03TIpZn8011740; Wed, 29 Apr 2020 18:51:35 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202004291851.03TIpZn8011740@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 29 Apr 2020 18:51:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r360473 - releng/12.1/share/mk X-SVN-Group: releng X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: releng/12.1/share/mk X-SVN-Commit-Revision: 360473 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, 29 Apr 2020 18:51:35 -0000 Author: emaste Date: Wed Apr 29 18:51:34 2020 New Revision: 360473 URL: https://svnweb.freebsd.org/changeset/base/360473 Log: MF10 r352637,r358076: correct Clang and lld version checks r352637 (mhorne): Allow for compiler versions >= 10 r358076 (dim): Correctly recognize linker versions greater than 10.0. These routines determine the host compiler and linker version, and caused attempts to build 12.1-RELEASE on 13-CURRENT to fail after the latter was updated to Clang 10. We don't guarantee such a build config to work, but it is used by FreeBSD ports build processes. As a result the fixes from stable/12 will be included with the next set of advisories, and are being committed to the branch now to unblock ports builds. PR: 245973 Reported by: sbruno, antoine Approved by: so Errata: EN-20:10.build Sponsored by: The FreeBSD Foundation Modified: releng/12.1/share/mk/bsd.compiler.mk releng/12.1/share/mk/bsd.linker.mk Directory Properties: releng/12.1/ (props changed) Modified: releng/12.1/share/mk/bsd.compiler.mk ============================================================================== --- releng/12.1/share/mk/bsd.compiler.mk Wed Apr 29 17:02:37 2020 (r360472) +++ releng/12.1/share/mk/bsd.compiler.mk Wed Apr 29 18:51:34 2020 (r360473) @@ -168,7 +168,7 @@ ${X_}COMPILER_TYPE:= clang . endif .endif .if !defined(${X_}COMPILER_VERSION) -${X_}COMPILER_VERSION!=echo "${_v:M[1-9].[0-9]*}" | awk -F. '{print $$1 * 10000 + $$2 * 100 + $$3;}' +${X_}COMPILER_VERSION!=echo "${_v:M[1-9]*.[0-9]*}" | awk -F. '{print $$1 * 10000 + $$2 * 100 + $$3;}' .endif .undef _v .endif Modified: releng/12.1/share/mk/bsd.linker.mk ============================================================================== --- releng/12.1/share/mk/bsd.linker.mk Wed Apr 29 17:02:37 2020 (r360472) +++ releng/12.1/share/mk/bsd.linker.mk Wed Apr 29 18:51:34 2020 (r360473) @@ -59,7 +59,7 @@ _ld_version!= (${${ld}} --version || echo none) | sed .if ${_ld_version:[1..2]} == "GNU ld" ${X_}LINKER_TYPE= bfd ${X_}LINKER_FREEBSD_VERSION= 0 -_v= ${_ld_version:M[1-9].[0-9]*:[1]} +_v= ${_ld_version:M[1-9]*.[0-9]*:[1]} .elif ${_ld_version:[1]} == "LLD" ${X_}LINKER_TYPE= lld _v= ${_ld_version:[2]} @@ -71,7 +71,7 @@ ${X_}LINKER_FREEBSD_VERSION!= \ ${X_}LINKER_TYPE= bfd _v= 2.17.50 .endif -${X_}LINKER_VERSION!= echo "${_v:M[1-9].[0-9]*}" | \ +${X_}LINKER_VERSION!= echo "${_v:M[1-9]*.[0-9]*}" | \ awk -F. '{print $$1 * 10000 + $$2 * 100 + $$3;}' .undef _ld_version .undef _v From owner-svn-src-all@freebsd.org Wed Apr 29 18:55: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 610222BF0C5; Wed, 29 Apr 2020 18:55:11 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: from mail-il1-f172.google.com (mail-il1-f172.google.com [209.85.166.172]) (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 49C74G2dNpz4f5V; Wed, 29 Apr 2020 18:55:10 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: by mail-il1-f172.google.com with SMTP id s10so3459351iln.11; Wed, 29 Apr 2020 11:55:10 -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; bh=OJ65ETRt2S4wLwUs8cQTfrX8JSNHEPNH5w3ERxlK8cs=; b=pUseBM85IYIH3l82r1cYcJBizqTnqTTLmphwOtTEdh+TVpIPAEvY5KWnGC4iVFOg7C ukKQQWvcPoO50sfnlmLfSjQzZZqcefcoQgkN9BXTgoHbjNoQA9EQT5o/6ZgC5+Kxz72e e43DFmbMFTghh/k5INxhWBUWXqWXrH8sZjx1zJvOgx0DC4RWLIvGvQNbb2AcmKGws83C aScOPsDvKPdulCK4myp7fjOKq5HdDkJARvP8lo/xUciZ3w6ehcS/Uzl4dLvFX3dX1AtN cDn4ZF9UZphwyap5+8pSV9H0AZV+2IautFeRBdrpBX3dSejs5o2emUm6tHGG4cAsQtfW WkhA== X-Gm-Message-State: AGi0PuZ4vFrd5gPZeoYT4lNTGYZVD4Tr1PK+LHg4ft4xg99FW1eNTCFf 9x2XiN4LkdJmxtFTeJnNcKuumAETR8kAuSh3FlQnk/GA X-Google-Smtp-Source: APiQypIY/vVFXl2sJyC7SDahmNAstOpslGRhe91gbacaR7d0y3j15AQ5LvkvugC/b+HaJ9xLC9huAw4+RXxMVxluc3c= X-Received: by 2002:a92:7303:: with SMTP id o3mr32095140ilc.11.1588186508312; Wed, 29 Apr 2020 11:55:08 -0700 (PDT) MIME-Version: 1.0 References: <202004291851.03TIpZn8011740@repo.freebsd.org> In-Reply-To: <202004291851.03TIpZn8011740@repo.freebsd.org> From: Ed Maste Date: Wed, 29 Apr 2020 14:54:55 -0400 Message-ID: Subject: Re: svn commit: r360473 - releng/12.1/share/mk To: src-committers , svn-src-all , svn-src-releng@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 49C74G2dNpz4f5V X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of carpeddiem@gmail.com designates 209.85.166.172 as permitted sender) smtp.mailfrom=carpeddiem@gmail.com X-Spamd-Result: default: False [-3.45 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; MIME_TRACE(0.00)[0:+]; DMARC_NA(0.00)[freebsd.org]; TO_DN_SOME(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; IP_SCORE(-1.45)[ip: (-6.39), ipnet: 209.85.128.0/17(-0.40), asn: 15169(-0.43), country: US(-0.05)]; RCVD_IN_DNSWL_NONE(0.00)[172.166.85.209.list.dnswl.org : 127.0.5.0]; FORGED_SENDER(0.30)[emaste@freebsd.org,carpeddiem@gmail.com]; RWL_MAILSPIKE_POSSIBLE(0.00)[172.166.85.209.rep.mailspike.net : 127.0.0.17]; R_DKIM_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; FROM_NEQ_ENVFROM(0.00)[emaste@freebsd.org,carpeddiem@gmail.com]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] 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, 29 Apr 2020 18:55:11 -0000 On Wed, 29 Apr 2020 at 14:51, Ed Maste wrote: > > Author: emaste > Date: Wed Apr 29 18:51:34 2020 > New Revision: 360473 > URL: https://svnweb.freebsd.org/changeset/base/360473 > > Log: > MF10 r352637,r358076: correct Clang and lld version checks Sigh, should be MF12; merged from stable/12 not 10. From owner-svn-src-all@freebsd.org Wed Apr 29 18:59: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 A61442BF226; Wed, 29 Apr 2020 18:59:40 +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 49C79R65Yqz4fLQ; Wed, 29 Apr 2020 18:59:38 +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 5CD95A26C; Wed, 29 Apr 2020 18:59:38 +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 03TIxbEN017275; Wed, 29 Apr 2020 18:59:37 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03TIxbg0017274; Wed, 29 Apr 2020 18:59:37 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202004291859.03TIxbg0017274@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 29 Apr 2020 18:59:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r360474 - releng/11.3/share/mk X-SVN-Group: releng X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: releng/11.3/share/mk X-SVN-Commit-Revision: 360474 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, 29 Apr 2020 18:59:40 -0000 Author: emaste Date: Wed Apr 29 18:59:37 2020 New Revision: 360474 URL: https://svnweb.freebsd.org/changeset/base/360474 Log: MF11 r352638,r358076: correct Clang and lld version checks r352638 (mhorne): Allow for compiler versions >= 10 r358076 (dim): Correctly recognize linker versions greater than 10.0. These routines determine the host compiler and linker version, and caused attempts to build 12.1-RELEASE on 13-CURRENT to fail after the latter was updated to Clang 10. The host compiler version was also misdetected on 11.3 although it seems not to have caused the same build failure there. We don't guarantee such a build config to work, but it is used by FreeBSD ports build processes. As a result the fixes from stable/11 will be included with the next set of advisories, and are being committed to the releng branch now to unblock ports builds. PR: 245973 Reported by: sbruno, antoine Approved by: so Errata: EN-20:10.build Sponsored by: The FreeBSD Foundation Modified: releng/11.3/share/mk/bsd.compiler.mk releng/11.3/share/mk/bsd.linker.mk Directory Properties: releng/11.3/ (props changed) Modified: releng/11.3/share/mk/bsd.compiler.mk ============================================================================== --- releng/11.3/share/mk/bsd.compiler.mk Wed Apr 29 18:51:34 2020 (r360473) +++ releng/11.3/share/mk/bsd.compiler.mk Wed Apr 29 18:59:37 2020 (r360474) @@ -156,7 +156,7 @@ ${X_}COMPILER_TYPE:= clang . endif .endif .if !defined(${X_}COMPILER_VERSION) -${X_}COMPILER_VERSION!=echo "${_v:M[1-9].[0-9]*}" | awk -F. '{print $$1 * 10000 + $$2 * 100 + $$3;}' +${X_}COMPILER_VERSION!=echo "${_v:M[1-9]*.[0-9]*}" | awk -F. '{print $$1 * 10000 + $$2 * 100 + $$3;}' .endif .undef _v .endif Modified: releng/11.3/share/mk/bsd.linker.mk ============================================================================== --- releng/11.3/share/mk/bsd.linker.mk Wed Apr 29 18:51:34 2020 (r360473) +++ releng/11.3/share/mk/bsd.linker.mk Wed Apr 29 18:59:37 2020 (r360474) @@ -55,7 +55,7 @@ _ld_version!= (${${ld}} --version || echo none) | sed .endif .if ${_ld_version:[1..2]} == "GNU ld" ${X_}LINKER_TYPE= bfd -_v= ${_ld_version:M[1-9].[0-9]*:[1]} +_v= ${_ld_version:M[1-9]*.[0-9]*:[1]} .elif ${_ld_version:[1]} == "LLD" ${X_}LINKER_TYPE= lld _v= ${_ld_version:[2]} @@ -64,7 +64,7 @@ _v= ${_ld_version:[2]} ${X_}LINKER_TYPE= bfd _v= 2.17.50 .endif -${X_}LINKER_VERSION!= echo "${_v:M[1-9].[0-9]*}" | \ +${X_}LINKER_VERSION!= echo "${_v:M[1-9]*.[0-9]*}" | \ awk -F. '{print $$1 * 10000 + $$2 * 100 + $$3;}' .undef _ld_version .undef _v From owner-svn-src-all@freebsd.org Wed Apr 29 19:28: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 2131C2C0218; Wed, 29 Apr 2020 19:28:57 +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 49C7qF05F5z3D5m; Wed, 29 Apr 2020 19:28:57 +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 F2817A864; Wed, 29 Apr 2020 19:28:56 +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 03TJSuQu036373; Wed, 29 Apr 2020 19:28:56 GMT (envelope-from melifaro@FreeBSD.org) Received: (from melifaro@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03TJSua8036371; Wed, 29 Apr 2020 19:28:56 GMT (envelope-from melifaro@FreeBSD.org) Message-Id: <202004291928.03TJSua8036371@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: melifaro set sender to melifaro@FreeBSD.org using -f From: "Alexander V. Chernikov" Date: Wed, 29 Apr 2020 19:28:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360475 - in head/sys: net netinet6 X-SVN-Group: head X-SVN-Commit-Author: melifaro X-SVN-Commit-Paths: in head/sys: net netinet6 X-SVN-Commit-Revision: 360475 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, 29 Apr 2020 19:28:57 -0000 Author: melifaro Date: Wed Apr 29 19:28:56 2020 New Revision: 360475 URL: https://svnweb.freebsd.org/changeset/base/360475 Log: Add nhop to the ifa_rtrequest() callback. With the upcoming multipath changes described in D24141, rt->rt_nhop can potentially point to a nexthop group instead of an individual nhop. To simplify caller handling of such cases, change ifa_rtrequest() callback to pass changed nhop directly. Differential Revision: https://reviews.freebsd.org/D24604 Modified: head/sys/net/if_var.h head/sys/net/route.c head/sys/netinet6/nd6.c Modified: head/sys/net/if_var.h ============================================================================== --- head/sys/net/if_var.h Wed Apr 29 18:59:37 2020 (r360474) +++ head/sys/net/if_var.h Wed Apr 29 19:28:56 2020 (r360475) @@ -61,6 +61,7 @@ */ struct rtentry; /* ifa_rtrequest */ +struct nhop_object; /* ifa_rtrequest */ struct rt_addrinfo; /* ifa_rtrequest */ struct socket; struct carp_if; @@ -551,7 +552,8 @@ struct ifaddr { struct carp_softc *ifa_carp; /* pointer to CARP data */ CK_STAILQ_ENTRY(ifaddr) ifa_link; /* queue macro glue */ void (*ifa_rtrequest) /* check or clean routes (+ or -)'d */ - (int, struct rtentry *, struct rt_addrinfo *); + (int, struct rtentry *, struct nhop_object *, + struct rt_addrinfo *); u_short ifa_flags; /* mostly rt_flags for cloning */ #define IFA_ROUTE RTF_UP /* route installed */ #define IFA_RTSELF RTF_HOST /* loopback route to self installed */ Modified: head/sys/net/route.c ============================================================================== --- head/sys/net/route.c Wed Apr 29 18:59:37 2020 (r360474) +++ head/sys/net/route.c Wed Apr 29 19:28:56 2020 (r360475) @@ -1239,7 +1239,7 @@ rt_notifydelete(struct rtentry *rt, struct rt_addrinfo */ ifa = rt->rt_ifa; if (ifa != NULL && ifa->ifa_rtrequest != NULL) - ifa->ifa_rtrequest(RTM_DELETE, rt, info); + ifa->ifa_rtrequest(RTM_DELETE, rt, rt->rt_nhop, info); /* * One more rtentry floating around that is not @@ -1761,7 +1761,7 @@ add_route(struct rib_head *rnh, struct rt_addrinfo *in * allow it to do that as well. */ if (ifa->ifa_rtrequest) - ifa->ifa_rtrequest(RTM_ADD, rt, info); + ifa->ifa_rtrequest(RTM_ADD, rt, rt->rt_nhop, info); /* * actually return a resultant rtentry and @@ -1886,7 +1886,8 @@ change_route(struct rib_head *rnh, struct rt_addrinfo if (info->rti_ifa != NULL && info->rti_ifa != rt->rt_ifa && rt->rt_ifa != NULL) { if (rt->rt_ifa->ifa_rtrequest != NULL) - rt->rt_ifa->ifa_rtrequest(RTM_DELETE, rt, info); + rt->rt_ifa->ifa_rtrequest(RTM_DELETE, rt, rt->rt_nhop, + info); ifa_free(rt->rt_ifa); rt->rt_ifa = NULL; } @@ -1910,7 +1911,7 @@ change_route(struct rib_head *rnh, struct rt_addrinfo rt->rt_flags |= info->rti_flags & RTF_FMASK; if (rt->rt_ifa && rt->rt_ifa->ifa_rtrequest != NULL) - rt->rt_ifa->ifa_rtrequest(RTM_ADD, rt, info); + rt->rt_ifa->ifa_rtrequest(RTM_ADD, rt, nh, info); /* Alter route MTU if necessary */ if (rt->rt_ifp != NULL) { Modified: head/sys/netinet6/nd6.c ============================================================================== --- head/sys/netinet6/nd6.c Wed Apr 29 18:59:37 2020 (r360474) +++ head/sys/netinet6/nd6.c Wed Apr 29 19:28:56 2020 (r360475) @@ -138,7 +138,8 @@ static void nd6_free_redirect(const struct llentry *); static void nd6_llinfo_timer(void *); static void nd6_llinfo_settimer_locked(struct llentry *, long); static void clear_llinfo_pqueue(struct llentry *); -static void nd6_rtrequest(int, struct rtentry *, struct rt_addrinfo *); +static void nd6_rtrequest(int, struct rtentry *, struct nhop_object *, + struct rt_addrinfo *); static int nd6_resolve_slow(struct ifnet *, int, struct mbuf *, const struct sockaddr_in6 *, u_char *, uint32_t *, struct llentry **); static int nd6_need_cache(struct ifnet *); @@ -1562,13 +1563,12 @@ nd6_free_redirect(const struct llentry *ln) * processing. */ void -nd6_rtrequest(int req, struct rtentry *rt, struct rt_addrinfo *info) +nd6_rtrequest(int req, struct rtentry *rt, struct nhop_object *nh, + struct rt_addrinfo *info) { struct sockaddr_in6 *gateway; struct nd_defrouter *dr; - struct nhop_object *nh; - nh = rt->rt_nhop; gateway = &nh->gw6_sa; switch (req) { From owner-svn-src-all@freebsd.org Wed Apr 29 21: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 06E092C2C05; Wed, 29 Apr 2020 21:12:33 +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 49CB6m6NFfz3Kt4; Wed, 29 Apr 2020 21:12:32 +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 D63AEBF33; Wed, 29 Apr 2020 21:12:32 +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 03TLCWQB003687; Wed, 29 Apr 2020 21:12:32 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03TLCWck003685; Wed, 29 Apr 2020 21:12:32 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <202004292112.03TLCWck003685@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Wed, 29 Apr 2020 21:12:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360476 - in head/cddl/usr.sbin/dtrace/tests: . tools X-SVN-Group: head X-SVN-Commit-Author: bdrewery X-SVN-Commit-Paths: in head/cddl/usr.sbin/dtrace/tests: . tools X-SVN-Commit-Revision: 360476 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, 29 Apr 2020 21:12:33 -0000 Author: bdrewery Date: Wed Apr 29 21:12:32 2020 New Revision: 360476 URL: https://svnweb.freebsd.org/changeset/base/360476 Log: dtrace tests: Support globbing for excludes Downstream this makes skipping tests like common/ip/tst.*sctp*.ksh simpler. Reviewed by: vangyzen, cem, markj Sponsored by: Dell EMC Differential Revision: https://reviews.freebsd.org/D24608 Modified: head/cddl/usr.sbin/dtrace/tests/dtrace.test.mk head/cddl/usr.sbin/dtrace/tests/tools/exclude.sh Modified: head/cddl/usr.sbin/dtrace/tests/dtrace.test.mk ============================================================================== --- head/cddl/usr.sbin/dtrace/tests/dtrace.test.mk Wed Apr 29 19:28:56 2020 (r360475) +++ head/cddl/usr.sbin/dtrace/tests/dtrace.test.mk Wed Apr 29 21:12:32 2020 (r360476) @@ -1,7 +1,8 @@ # $FreeBSD$ TESTGROUP= ${.CURDIR:H:T}/${.CURDIR:T} -TESTSRC= ${SRCTOP}/cddl/contrib/opensolaris/cmd/dtrace/test/tst/${TESTGROUP} +TESTBASE= ${SRCTOP}/cddl/contrib/opensolaris/cmd/dtrace/test/tst +TESTSRC= ${TESTBASE}/${TESTGROUP} TESTSDIR= ${TESTSBASE}/cddl/usr.sbin/dtrace/${TESTGROUP} FILESGROUPS+= ${TESTGROUP}EXE @@ -18,7 +19,8 @@ TEST_METADATA.t_dtrace_contrib+= required_user="root" GENTEST?= ${.CURDIR:H:H}/tools/gentest.sh EXCLUDE= ${.CURDIR:H:H}/tools/exclude.sh ${TESTWRAPPER}.sh: ${GENTEST} ${EXCLUDE} ${${PACKAGE}FILES} - sh ${GENTEST} -e ${EXCLUDE} ${TESTGROUP} ${${PACKAGE}FILES:S/ */ /} > ${.TARGET} + env TESTBASE=${TESTBASE:Q} \ + sh ${GENTEST} -e ${EXCLUDE} ${TESTGROUP} ${${PACKAGE}FILES:S/ */ /} > ${.TARGET} CLEANFILES+= ${TESTWRAPPER}.sh Modified: head/cddl/usr.sbin/dtrace/tests/tools/exclude.sh ============================================================================== --- head/cddl/usr.sbin/dtrace/tests/tools/exclude.sh Wed Apr 29 19:28:56 2020 (r360475) +++ head/cddl/usr.sbin/dtrace/tests/tools/exclude.sh Wed Apr 29 21:12:32 2020 (r360476) @@ -23,7 +23,22 @@ exclude() { - eval $1=\"\$$1\\n$2\" + case $2 in + # Handle globbing later + *"*"*) ;; + # No globbing needed + *) + eval $1=\"\$$1\\n$2\" + return + ;; + esac + for file in ${TESTBASE}/${2}; do + case ${file} in + # Invalid glob + "${TESTBASE}/${2}") echo "Invalid exclude for $2" >&2; exit 1; ;; + esac + exclude "$1" "${file##${TESTBASE}/}" + done } exclude EXFAIL common/aggs/tst.subr.d From owner-svn-src-all@freebsd.org Wed Apr 29 21:48: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 72D272C3B10; Wed, 29 Apr 2020 21:48: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 49CBwj2MSHz3MZb; Wed, 29 Apr 2020 21:48: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 47EC2C4E7; Wed, 29 Apr 2020 21:48: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 03TLmr8P022649; Wed, 29 Apr 2020 21:48:53 GMT (envelope-from rscheff@FreeBSD.org) Received: (from rscheff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03TLmqX5022644; Wed, 29 Apr 2020 21:48:52 GMT (envelope-from rscheff@FreeBSD.org) Message-Id: <202004292148.03TLmqX5022644@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rscheff set sender to rscheff@FreeBSD.org using -f From: Richard Scheffenegger Date: Wed, 29 Apr 2020 21:48:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360477 - in head/sys/netinet: . tcp_stacks X-SVN-Group: head X-SVN-Commit-Author: rscheff X-SVN-Commit-Paths: in head/sys/netinet: . tcp_stacks X-SVN-Commit-Revision: 360477 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, 29 Apr 2020 21:48:53 -0000 Author: rscheff Date: Wed Apr 29 21:48:52 2020 New Revision: 360477 URL: https://svnweb.freebsd.org/changeset/base/360477 Log: Correctly set up the initial TCP congestion window in all cases, by not including the SYN bit sequence space in cwnd related calculations. Snd_und is adjusted explicitly in all cases, outside the cwnd update, instead. This fixes an off-by-one conformance issue with regular TCP sessions not using Appropriate Byte Counting (RFC3465), sending one more packet during the initial window than expected. PR: 235256 Reviewed by: tuexen (mentor), rgrimes (mentor) Approved by: tuexen (mentor), rgrimes (mentor) MFC after: 3 weeks Sponsored by: NetApp, Inc. Differential Revision: https://reviews.freebsd.org/D19000 Modified: head/sys/netinet/tcp_input.c head/sys/netinet/tcp_stacks/bbr.c head/sys/netinet/tcp_stacks/rack.c Modified: head/sys/netinet/tcp_input.c ============================================================================== --- head/sys/netinet/tcp_input.c Wed Apr 29 21:12:32 2020 (r360476) +++ head/sys/netinet/tcp_input.c Wed Apr 29 21:48:52 2020 (r360477) @@ -1470,7 +1470,7 @@ tcp_do_segment(struct mbuf *m, struct tcphdr *th, stru struct tcpcb *tp, int drop_hdrlen, int tlen, uint8_t iptos) { int thflags, acked, ourfinisacked, needoutput = 0, sack_changed; - int rstreason, todrop, win; + int rstreason, todrop, win, incforsyn = 0; uint32_t tiwin; uint16_t nsegs; char *s; @@ -2374,12 +2374,6 @@ tcp_do_segment(struct mbuf *m, struct tcphdr *th, stru if (IS_FASTOPEN(tp->t_flags) && tp->t_tfo_pending) { tcp_fastopen_decrement_counter(tp->t_tfo_pending); tp->t_tfo_pending = NULL; - - /* - * Account for the ACK of our SYN prior to - * regular ACK processing below. - */ - tp->snd_una++; } if (tp->t_flags & TF_NEEDFIN) { tcp_state_change(tp, TCPS_FIN_WAIT_1); @@ -2400,6 +2394,13 @@ tcp_do_segment(struct mbuf *m, struct tcphdr *th, stru tcp_timer_activate(tp, TT_KEEP, TP_KEEPIDLE(tp)); } /* + * Account for the ACK of our SYN prior to + * regular ACK processing below, except for + * simultaneous SYN, which is handled later. + */ + if (SEQ_GT(th->th_ack, tp->snd_una) && !(tp->t_flags & TF_NEEDSYN)) + incforsyn = 1; + /* * If segment contains data or ACK, will call tcp_reass() * later; if not, do so now to pass queued data to user. */ @@ -2693,6 +2694,15 @@ tcp_do_segment(struct mbuf *m, struct tcphdr *th, stru process_ACK: INP_WLOCK_ASSERT(tp->t_inpcb); + /* + * Adjust for the SYN bit in sequence space, + * but don't account for it in cwnd calculations. + * This is for the SYN_RECEIVED, non-simultaneous + * SYN case. SYN_SENT and simultaneous SYN are + * treated elsewhere. + */ + if (incforsyn) + tp->snd_una++; acked = BYTES_THIS_ACK(tp, th); KASSERT(acked >= 0, ("%s: acked unexepectedly negative " "(tp->snd_una=%u, th->th_ack=%u, tp=%p, m=%p)", __func__, Modified: head/sys/netinet/tcp_stacks/bbr.c ============================================================================== --- head/sys/netinet/tcp_stacks/bbr.c Wed Apr 29 21:12:32 2020 (r360476) +++ head/sys/netinet/tcp_stacks/bbr.c Wed Apr 29 21:48:52 2020 (r360477) @@ -9326,11 +9326,6 @@ bbr_do_syn_recv(struct mbuf *m, struct tcphdr *th, str tcp_fastopen_decrement_counter(tp->t_tfo_pending); tp->t_tfo_pending = NULL; - /* - * Account for the ACK of our SYN prior to regular - * ACK processing below. - */ - tp->snd_una++; } /* * Make transitions: SYN-RECEIVED -> ESTABLISHED SYN-RECEIVED* -> @@ -9353,6 +9348,13 @@ bbr_do_syn_recv(struct mbuf *m, struct tcphdr *th, str if (!IS_FASTOPEN(tp->t_flags)) cc_conn_init(tp); } + /* + * Account for the ACK of our SYN prior to + * regular ACK processing below, except for + * simultaneous SYN, which is handled later. + */ + if (SEQ_GT(th->th_ack, tp->snd_una) && !(tp->t_flags & TF_NEEDSYN)) + tp->snd_una++; /* * If segment contains data or ACK, will call tcp_reass() later; if * not, do so now to pass queued data to user. Modified: head/sys/netinet/tcp_stacks/rack.c ============================================================================== --- head/sys/netinet/tcp_stacks/rack.c Wed Apr 29 21:12:32 2020 (r360476) +++ head/sys/netinet/tcp_stacks/rack.c Wed Apr 29 21:48:52 2020 (r360477) @@ -6540,12 +6540,6 @@ rack_do_syn_recv(struct mbuf *m, struct tcphdr *th, st if (IS_FASTOPEN(tp->t_flags) && tp->t_tfo_pending) { tcp_fastopen_decrement_counter(tp->t_tfo_pending); tp->t_tfo_pending = NULL; - - /* - * Account for the ACK of our SYN prior to - * regular ACK processing below. - */ - tp->snd_una++; } if (tp->t_flags & TF_NEEDFIN) { tcp_state_change(tp, TCPS_FIN_WAIT_1); @@ -6563,6 +6557,13 @@ rack_do_syn_recv(struct mbuf *m, struct tcphdr *th, st if (!IS_FASTOPEN(tp->t_flags)) cc_conn_init(tp); } + /* + * Account for the ACK of our SYN prior to + * regular ACK processing below, except for + * simultaneous SYN, which is handled later. + */ + if (SEQ_GT(th->th_ack, tp->snd_una) && !(tp->t_flags & TF_NEEDSYN)) + tp->snd_una++; /* * If segment contains data or ACK, will call tcp_reass() later; if * not, do so now to pass queued data to user. From owner-svn-src-all@freebsd.org Wed Apr 29 21:54: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 38B512C3F37; Wed, 29 Apr 2020 21:54: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 49CC2q0kcmz3N9k; Wed, 29 Apr 2020 21:54: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 139A5C6F8; Wed, 29 Apr 2020 21:54: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 03TLsAZL028311; Wed, 29 Apr 2020 21:54:10 GMT (envelope-from melifaro@FreeBSD.org) Received: (from melifaro@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03TLsAp5028307; Wed, 29 Apr 2020 21:54:10 GMT (envelope-from melifaro@FreeBSD.org) Message-Id: <202004292154.03TLsAp5028307@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: melifaro set sender to melifaro@FreeBSD.org using -f From: "Alexander V. Chernikov" Date: Wed, 29 Apr 2020 21:54:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360478 - in head/sys/net: . route X-SVN-Group: head X-SVN-Commit-Author: melifaro X-SVN-Commit-Paths: in head/sys/net: . route X-SVN-Commit-Revision: 360478 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, 29 Apr 2020 21:54:11 -0000 Author: melifaro Date: Wed Apr 29 21:54:09 2020 New Revision: 360478 URL: https://svnweb.freebsd.org/changeset/base/360478 Log: Convert more rtentry field accesses into nhop fields accesses. Continue routing subsystem conversion to nhop objects defined in r359823. Use fields from nhop structure instead of "struct rtentry" fields. This is one of the last changes prior to removing rt_ifp, rt_ifa, rt_gateway and rt_mtu from struct rtentry. Differential Revision: https://reviews.freebsd.org/D24609 Modified: head/sys/net/radix_mpath.c head/sys/net/route.c head/sys/net/route/route_ddb.c head/sys/net/rtsock.c Modified: head/sys/net/radix_mpath.c ============================================================================== --- head/sys/net/radix_mpath.c Wed Apr 29 21:48:52 2020 (r360477) +++ head/sys/net/radix_mpath.c Wed Apr 29 21:54:09 2020 (r360478) @@ -183,6 +183,7 @@ rt_mpath_conflict(struct rib_head *rnh, struct rtentry struct sockaddr *netmask) { struct radix_node *rn, *rn1; + struct nhop_object *nh, *nh1; struct rtentry *rt1; rn = (struct radix_node *)rt; @@ -198,15 +199,17 @@ rt_mpath_conflict(struct rib_head *rnh, struct rtentry if (rn1 == rn) continue; - if (rt1->rt_gateway->sa_family == AF_LINK) { - if (rt1->rt_ifa->ifa_addr->sa_len != rt->rt_ifa->ifa_addr->sa_len || - bcmp(rt1->rt_ifa->ifa_addr, rt->rt_ifa->ifa_addr, - rt1->rt_ifa->ifa_addr->sa_len)) + nh = rt->rt_nhop; + nh1 = rt1->rt_nhop; + + if (nh1->gw_sa.sa_family == AF_LINK) { + if (nh1->nh_ifa->ifa_addr->sa_len != nh->nh_ifa->ifa_addr->sa_len || + bcmp(nh1->nh_ifa->ifa_addr, nh->nh_ifa->ifa_addr, + nh1->nh_ifa->ifa_addr->sa_len)) continue; } else { - if (rt1->rt_gateway->sa_len != rt->rt_gateway->sa_len || - bcmp(rt1->rt_gateway, rt->rt_gateway, - rt1->rt_gateway->sa_len)) + if (nh1->gw_sa.sa_len != nh->gw_sa.sa_len || + bcmp(&nh1->gw_sa, &nh->gw_sa, nh1->gw_sa.sa_len)) continue; } Modified: head/sys/net/route.c ============================================================================== --- head/sys/net/route.c Wed Apr 29 21:48:52 2020 (r360477) +++ head/sys/net/route.c Wed Apr 29 21:54:09 2020 (r360478) @@ -745,8 +745,8 @@ ifa_ifwithroute(int flags, const struct sockaddr *dst, default: break; } - if (!not_found && rt->rt_ifa != NULL) { - ifa = rt->rt_ifa; + if (!not_found && rt->rt_nhop->nh_ifa != NULL) { + ifa = rt->rt_nhop->nh_ifa; } RT_REMREF(rt); RT_UNLOCK(rt); @@ -909,7 +909,7 @@ rib_lookup_info(uint32_t fibnum, const struct sockaddr if (rn != NULL && ((rn->rn_flags & RNF_ROOT) == 0)) { rt = RNTORT(rn); /* Ensure route & ifp is UP */ - if (RT_LINK_IS_UP(rt->rt_ifp)) { + if (RT_LINK_IS_UP(rt->rt_nhop->nh_ifp)) { flags = (flags & NHR_REF) | NHR_COPY; error = rt_exportinfo(rt, info, flags); RIB_RUNLOCK(rh); @@ -1064,7 +1064,8 @@ rib_walk_del(u_int fibnum, int family, rt_filter_f_t * rt_notifydelete(rt, &di.info); if (report) - rt_routemsg(RTM_DELETE, rt, rt->rt_ifp, 0, fibnum); + rt_routemsg(RTM_DELETE, rt, rt->rt_nhop->nh_ifp, 0, + fibnum); RTFREE_LOCKED(rt); } } @@ -1237,7 +1238,7 @@ rt_notifydelete(struct rtentry *rt, struct rt_addrinfo /* * give the protocol a chance to keep things in sync. */ - ifa = rt->rt_ifa; + ifa = rt->rt_nhop->nh_ifa; if (ifa != NULL && ifa->ifa_rtrequest != NULL) ifa->ifa_rtrequest(RTM_DELETE, rt, rt->rt_nhop, info); @@ -1863,7 +1864,7 @@ change_route(struct rib_head *rnh, struct rt_addrinfo info->rti_info[RTAX_GATEWAY] != NULL) || info->rti_info[RTAX_IFP] != NULL || (info->rti_info[RTAX_IFA] != NULL && - !sa_equal(info->rti_info[RTAX_IFA], rt->rt_ifa->ifa_addr))) { + !sa_equal(info->rti_info[RTAX_IFA], rt->rt_nhop->nh_ifa->ifa_addr))) { /* * XXX: Temporarily set RTF_RNH_LOCKED flag in the rti_flags * to avoid rlock in the ifa_ifwithroute(). @@ -2162,7 +2163,7 @@ rtinit1(struct ifaddr *ifa, int cmd, int flags, int fi #endif error = (rn == NULL || (rn->rn_flags & RNF_ROOT) || - RNTORT(rn)->rt_ifa != ifa); + RNTORT(rn)->rt_nhop->nh_ifa != ifa); RIB_RUNLOCK(rnh); if (error) { /* this is only an error if bad on ALL tables */ Modified: head/sys/net/route/route_ddb.c ============================================================================== --- head/sys/net/route/route_ddb.c Wed Apr 29 21:48:52 2020 (r360477) +++ head/sys/net/route/route_ddb.c Wed Apr 29 21:54:09 2020 (r360478) @@ -131,18 +131,20 @@ rt_dumpentry_ddb(struct radix_node *rn, void *arg __un { struct sockaddr_storage ss; struct rtentry *rt; + struct nhop_object *nh; int flags, idx; /* If RNTORT is important, put it in a header. */ rt = (void *)rn; + nh = (struct nhop_object *)rt->rt_nhop; rt_dumpaddr_ddb("dst", rt_key(rt)); rt_dumpaddr_ddb("gateway", &rt->rt_nhop->gw_sa); rt_dumpaddr_ddb("netmask", rtsock_fix_netmask(rt_key(rt), rt_mask(rt), &ss)); - if (rt->rt_ifp != NULL && (rt->rt_ifp->if_flags & IFF_DYING) == 0) { - rt_dumpaddr_ddb("ifp", rt->rt_ifp->if_addr->ifa_addr); - rt_dumpaddr_ddb("ifa", rt->rt_ifa->ifa_addr); + if ((nh->nh_ifp->if_flags & IFF_DYING) == 0) { + rt_dumpaddr_ddb("ifp", nh->nh_ifp->if_addr->ifa_addr); + rt_dumpaddr_ddb("ifa", nh->nh_ifa->ifa_addr); } db_printf("flags "); Modified: head/sys/net/rtsock.c ============================================================================== --- head/sys/net/rtsock.c Wed Apr 29 21:48:52 2020 (r360477) +++ head/sys/net/rtsock.c Wed Apr 29 21:54:09 2020 (r360478) @@ -929,7 +929,7 @@ route_output(struct mbuf *m, struct socket *so, ...) rti_need_deembed = (V_deembed_scopeid) ? 1 : 0; #endif RT_LOCK(saved_nrt); - rtm->rtm_index = saved_nrt->rt_ifp->if_index; + rtm->rtm_index = saved_nrt->rt_nhop->nh_ifp->if_index; RT_REMREF(saved_nrt); RT_UNLOCK(saved_nrt); } @@ -1714,6 +1714,7 @@ sysctl_dumpentry(struct radix_node *rn, void *vw) { struct walkarg *w = vw; struct rtentry *rt = (struct rtentry *)rn; + struct nhop_object *nh; int error = 0, size; struct rt_addrinfo info; struct sockaddr_storage ss; @@ -1730,11 +1731,12 @@ sysctl_dumpentry(struct radix_node *rn, void *vw) info.rti_info[RTAX_NETMASK] = rtsock_fix_netmask(rt_key(rt), rt_mask(rt), &ss); info.rti_info[RTAX_GENMASK] = 0; - if (rt->rt_ifp && !(rt->rt_ifp->if_flags & IFF_DYING)) { - info.rti_info[RTAX_IFP] = rt->rt_ifp->if_addr->ifa_addr; - info.rti_info[RTAX_IFA] = rt->rt_ifa->ifa_addr; - if (rt->rt_ifp->if_flags & IFF_POINTOPOINT) - info.rti_info[RTAX_BRD] = rt->rt_ifa->ifa_dstaddr; + nh = rt->rt_nhop; + if (nh->nh_ifp && !(nh->nh_ifp->if_flags & IFF_DYING)) { + info.rti_info[RTAX_IFP] = nh->nh_ifp->if_addr->ifa_addr; + info.rti_info[RTAX_IFA] = nh->nh_ifa->ifa_addr; + if (nh->nh_ifp->if_flags & IFF_POINTOPOINT) + info.rti_info[RTAX_BRD] = nh->nh_ifa->ifa_dstaddr; } if ((error = rtsock_msg_buffer(RTM_GET, &info, w, &size)) != 0) return (error); @@ -1748,8 +1750,9 @@ sysctl_dumpentry(struct radix_node *rn, void *vw) (rt->rt_flags & ~RTF_GWFLAG_COMPAT); else rtm->rtm_flags = rt->rt_flags; + rtm->rtm_flags |= nhop_get_rtflags(nh); rt_getmetrics(rt, &rtm->rtm_rmx); - rtm->rtm_index = rt->rt_ifp->if_index; + rtm->rtm_index = nh->nh_ifp->if_index; rtm->rtm_addrs = info.rti_addrs; error = SYSCTL_OUT(w->w_req, (caddr_t)rtm, size); return (error); From owner-svn-src-all@freebsd.org Wed Apr 29 22:01: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 985E42C4257; Wed, 29 Apr 2020 22:01:34 +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 49CCCL3Z1Yz3NY8; Wed, 29 Apr 2020 22:01:34 +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 5B8AAC89B; Wed, 29 Apr 2020 22:01:34 +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 03TM1Y1Y031149; Wed, 29 Apr 2020 22:01:34 GMT (envelope-from rscheff@FreeBSD.org) Received: (from rscheff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03TM1XgU031146; Wed, 29 Apr 2020 22:01:33 GMT (envelope-from rscheff@FreeBSD.org) Message-Id: <202004292201.03TM1XgU031146@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rscheff set sender to rscheff@FreeBSD.org using -f From: Richard Scheffenegger Date: Wed, 29 Apr 2020 22:01:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360479 - in head/sys/netinet: . tcp_stacks X-SVN-Group: head X-SVN-Commit-Author: rscheff X-SVN-Commit-Paths: in head/sys/netinet: . tcp_stacks X-SVN-Commit-Revision: 360479 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, 29 Apr 2020 22:01:34 -0000 Author: rscheff Date: Wed Apr 29 22:01:33 2020 New Revision: 360479 URL: https://svnweb.freebsd.org/changeset/base/360479 Log: Prevent premature shrinking of the scaled receive window which can cause a TCP client to use invalid or stale TCP sequence numbers for ACK packets. Packets with old sequence numbers are ignored and not used to update the send window size. This might cause the TCP session to hang indefinitely under some circumstances. Reported by: Cui Cheng Reviewed by: tuexen (mentor), rgrimes (mentor) Approved by: tuexen (mentor), rgrimes (mentor) MFC after: 3 weeks Sponsored by: NetApp, Inc. Differential Revision: https://reviews.freebsd.org/D24515 Modified: head/sys/netinet/tcp_output.c head/sys/netinet/tcp_stacks/bbr.c head/sys/netinet/tcp_stacks/rack.c Modified: head/sys/netinet/tcp_output.c ============================================================================== --- head/sys/netinet/tcp_output.c Wed Apr 29 21:54:09 2020 (r360478) +++ head/sys/netinet/tcp_output.c Wed Apr 29 22:01:33 2020 (r360479) @@ -1238,8 +1238,11 @@ send: if (flags & TH_SYN) th->th_win = htons((u_short) (min(sbspace(&so->so_rcv), TCP_MAXWIN))); - else + else { + /* Avoid shrinking window with window scaling. */ + recwin = roundup2(recwin, 1 << tp->rcv_scale); th->th_win = htons((u_short)(recwin >> tp->rcv_scale)); + } /* * Adjust the RXWIN0SENT flag - indicate that we have advertised Modified: head/sys/netinet/tcp_stacks/bbr.c ============================================================================== --- head/sys/netinet/tcp_stacks/bbr.c Wed Apr 29 21:54:09 2020 (r360478) +++ head/sys/netinet/tcp_stacks/bbr.c Wed Apr 29 22:01:33 2020 (r360479) @@ -13756,8 +13756,11 @@ send: if (flags & TH_SYN) th->th_win = htons((u_short) (min(sbspace(&so->so_rcv), TCP_MAXWIN))); - else + else { + /* Avoid shrinking window with window scaling. */ + recwin = roundup2(recwin, 1 << tp->rcv_scale); th->th_win = htons((u_short)(recwin >> tp->rcv_scale)); + } /* * Adjust the RXWIN0SENT flag - indicate that we have advertised a 0 * window. This may cause the remote transmitter to stall. This Modified: head/sys/netinet/tcp_stacks/rack.c ============================================================================== --- head/sys/netinet/tcp_stacks/rack.c Wed Apr 29 21:54:09 2020 (r360478) +++ head/sys/netinet/tcp_stacks/rack.c Wed Apr 29 22:01:33 2020 (r360479) @@ -9572,8 +9572,11 @@ send: if (flags & TH_SYN) th->th_win = htons((u_short) (min(sbspace(&so->so_rcv), TCP_MAXWIN))); - else + else { + /* Avoid shrinking window with window scaling. */ + recwin = roundup2(recwin, 1 << tp->rcv_scale); th->th_win = htons((u_short)(recwin >> tp->rcv_scale)); + } /* * Adjust the RXWIN0SENT flag - indicate that we have advertised a 0 * window. This may cause the remote transmitter to stall. This From owner-svn-src-all@freebsd.org Thu Apr 30 00:14: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 22E6A2C75C4; Thu, 30 Apr 2020 00:14:15 +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 49CG8R04cGz416R; Thu, 30 Apr 2020 00:14:15 +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 F1949E168; Thu, 30 Apr 2020 00:14:14 +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 03U0EECF014363; Thu, 30 Apr 2020 00:14:14 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03U0EE1P014362; Thu, 30 Apr 2020 00:14:14 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202004300014.03U0EE1P014362@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Thu, 30 Apr 2020 00:14:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360480 - head/share/man/man5 X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/share/man/man5 X-SVN-Commit-Revision: 360480 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, 30 Apr 2020 00:14:15 -0000 Author: emaste Date: Thu Apr 30 00:14:14 2020 New Revision: 360480 URL: https://svnweb.freebsd.org/changeset/base/360480 Log: src.conf.5: regen after 359736, ZONEINFO_OLD_TIMEZONES_SUPPORT removal Modified: head/share/man/man5/src.conf.5 Modified: head/share/man/man5/src.conf.5 ============================================================================== --- head/share/man/man5/src.conf.5 Wed Apr 29 22:01:33 2020 (r360479) +++ head/share/man/man5/src.conf.5 Thu Apr 30 00:14:14 2020 (r360480) @@ -1,6 +1,6 @@ .\" DO NOT EDIT-- this file is @generated by tools/build/options/makeman. .\" $FreeBSD$ -.Dd April 5, 2020 +.Dd April 29, 2020 .Dt SRC.CONF 5 .Os .Sh NAME @@ -1742,14 +1742,9 @@ When set, it enforces these options: .Bl -item -compact .It .Va WITHOUT_ZONEINFO_LEAPSECONDS_SUPPORT -.It -.Va WITHOUT_ZONEINFO_OLD_TIMEZONES_SUPPORT .El .It Va WITH_ZONEINFO_LEAPSECONDS_SUPPORT Set to build leapsecond information in to the timezone database. -.It Va WITH_ZONEINFO_OLD_TIMEZONES_SUPPORT -Set to build backward compatibility timezone aliases in to the timezone -database. .El .Sh FILES .Bl -tag -compact -width Pa From owner-svn-src-all@freebsd.org Thu Apr 30 00:20: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 320152C7778; Thu, 30 Apr 2020 00:20:32 +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 49CGHh0Zc4z41LS; Thu, 30 Apr 2020 00:20:32 +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 0D3C7E172; Thu, 30 Apr 2020 00:20:32 +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 03U0KVts014735; Thu, 30 Apr 2020 00:20:31 GMT (envelope-from sjg@FreeBSD.org) Received: (from sjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03U0KVSA014734; Thu, 30 Apr 2020 00:20:31 GMT (envelope-from sjg@FreeBSD.org) Message-Id: <202004300020.03U0KVSA014734@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sjg set sender to sjg@FreeBSD.org using -f From: "Simon J. Gerraty" Date: Thu, 30 Apr 2020 00:20:31 +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: r360481 - stable/12/sys/sys X-SVN-Group: stable-12 X-SVN-Commit-Author: sjg X-SVN-Commit-Paths: stable/12/sys/sys X-SVN-Commit-Revision: 360481 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, 30 Apr 2020 00:20:32 -0000 Author: sjg Date: Thu Apr 30 00:20:31 2020 New Revision: 360481 URL: https://svnweb.freebsd.org/changeset/base/360481 Log: Define enum for so_qstate outside of struct. LLVM-9.0 clang++ throws an error for enum defined within an anonymous struct. MFC of r360059 Reviewed by: jtl, rpokala Differential Revision: https://reviews.freebsd.org//D24477 Modified: stable/12/sys/sys/socketvar.h Modified: stable/12/sys/sys/socketvar.h ============================================================================== --- stable/12/sys/sys/socketvar.h Thu Apr 30 00:14:14 2020 (r360480) +++ stable/12/sys/sys/socketvar.h Thu Apr 30 00:20:31 2020 (r360481) @@ -67,6 +67,12 @@ typedef void so_dtor_t(struct socket *); struct socket; +enum socket_qstate { + SQ_NONE = 0, + SQ_INCOMP = 0x0800, /* on sol_incomp */ + SQ_COMP = 0x1000, /* on sol_comp */ +}; + /*- * Locking key to struct socket: * (a) constant after allocation, no locking required. @@ -122,12 +128,7 @@ struct socket { /* (e) Our place on accept queue. */ TAILQ_ENTRY(socket) so_list; struct socket *so_listen; /* (b) */ - enum { - SQ_NONE = 0, - SQ_INCOMP = 0x0800, /* on sol_incomp */ - SQ_COMP = 0x1000, /* on sol_comp */ - } so_qstate; /* (b) */ - + enum socket_qstate so_qstate; /* (b) */ /* (b) cached MAC label for peer */ struct label *so_peerlabel; u_long so_oobmark; /* chars to oob mark */ @@ -172,6 +173,10 @@ struct socket { short sol_sbsnd_flags; sbintime_t sol_sbrcv_timeo; sbintime_t sol_sbsnd_timeo; + + /* Information tracking listen queue overflows. */ + struct timeval sol_lastover; /* (e) */ + int sol_overcount; /* (e) */ }; }; }; @@ -180,13 +185,13 @@ struct socket { /* * Socket state bits. * - * Historically, this bits were all kept in the so_state field. For - * locking reasons, they are now in multiple fields, as they are - * locked differently. so_state maintains basic socket state protected - * by the socket lock. so_qstate holds information about the socket - * accept queues. Each socket buffer also has a state field holding - * information relevant to that socket buffer (can't send, rcv). Many - * fields will be read without locks to improve performance and avoid + * Historically, these bits were all kept in the so_state field. + * They are now split into separate, lock-specific fields. + * so_state maintains basic socket state protected by the socket lock. + * so_qstate holds information about the socket accept queues. + * Each socket buffer also has a state field holding information + * relevant to that socket buffer (can't send, rcv). + * Many fields will be read without locks to improve performance and avoid * lock order issues. However, this approach must be used with caution. */ #define SS_NOFDREF 0x0001 /* no file table ref any more */ @@ -379,7 +384,8 @@ struct uio; /* * From uipc_socket and friends */ -int getsockaddr(struct sockaddr **namp, caddr_t uaddr, size_t len); +int getsockaddr(struct sockaddr **namp, const struct sockaddr *uaddr, + size_t len); int getsock_cap(struct thread *td, int fd, cap_rights_t *rightsp, struct file **fpp, u_int *fflagp, struct filecaps *havecaps); void soabort(struct socket *so); From owner-svn-src-all@freebsd.org Thu Apr 30 00:27: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 281122C7A2B; Thu, 30 Apr 2020 00:27:20 +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 49CGRX0Fpmz41km; Thu, 30 Apr 2020 00:27:20 +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 03BDEE36F; Thu, 30 Apr 2020 00:27:20 +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 03U0RJw9020413; Thu, 30 Apr 2020 00:27:19 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03U0RJ2j020412; Thu, 30 Apr 2020 00:27:19 GMT (envelope-from imp@FreeBSD.org) Message-Id: <202004300027.03U0RJ2j020412@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Thu, 30 Apr 2020 00:27:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360482 - head/sys/dev/nvme X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/dev/nvme X-SVN-Commit-Revision: 360482 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, 30 Apr 2020 00:27:20 -0000 Author: imp Date: Thu Apr 30 00:27:19 2020 New Revision: 360482 URL: https://svnweb.freebsd.org/changeset/base/360482 Log: Generate a devctl event for interesting events When we reset the controller, and when the controller tells us about a critical warning, send an event. Modified: head/sys/dev/nvme/nvme_ctrlr.c Modified: head/sys/dev/nvme/nvme_ctrlr.c ============================================================================== --- head/sys/dev/nvme/nvme_ctrlr.c Thu Apr 30 00:20:31 2020 (r360481) +++ head/sys/dev/nvme/nvme_ctrlr.c Thu Apr 30 00:27:19 2020 (r360482) @@ -40,7 +40,9 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include +#include #include #include "nvme_private.h" @@ -50,6 +52,34 @@ __FBSDID("$FreeBSD$"); static void nvme_ctrlr_construct_and_submit_aer(struct nvme_controller *ctrlr, struct nvme_async_event_request *aer); +static void +nvme_ctrlr_devctl_log(struct nvme_controller *ctrlr, const char *type, const char *msg, ...) +{ + struct sbuf sb; + va_list ap; + int error; + + sbuf_new(&sb, NULL, 0, SBUF_AUTOEXTEND | SBUF_NOWAIT); + sbuf_printf(&sb, "%s: ", device_get_nameunit(ctrlr->dev)); + va_start(ap, msg); + sbuf_vprintf(&sb, msg, ap); + va_end(ap); + error = sbuf_finish(&sb); + if (error == 0) + printf("%s\n", sbuf_data(&sb)); + + sbuf_clear(&sb); + sbuf_printf(&sb, "name=\"%s\" reason=\"", device_get_nameunit(ctrlr->dev)); + va_start(ap, msg); + sbuf_vprintf(&sb, msg, ap); + va_end(ap); + sbuf_printf(&sb, "\""); + error = sbuf_finish(&sb); + if (error == 0) + devctl_notify("nvme", "controller", type, sbuf_data(&sb)); + sbuf_delete(&sb); +} + static int nvme_ctrlr_construct_admin_qpair(struct nvme_controller *ctrlr) { @@ -607,23 +637,28 @@ nvme_ctrlr_log_critical_warnings(struct nvme_controlle { if (state & NVME_CRIT_WARN_ST_AVAILABLE_SPARE) - nvme_printf(ctrlr, "available spare space below threshold\n"); + nvme_ctrlr_devctl_log(ctrlr, "critical", + "available spare space below threshold"); if (state & NVME_CRIT_WARN_ST_TEMPERATURE) - nvme_printf(ctrlr, "temperature above threshold\n"); + nvme_ctrlr_devctl_log(ctrlr, "critical", + "temperature above threshold"); if (state & NVME_CRIT_WARN_ST_DEVICE_RELIABILITY) - nvme_printf(ctrlr, "device reliability degraded\n"); + nvme_ctrlr_devctl_log(ctrlr, "critical", + "device reliability degraded"); if (state & NVME_CRIT_WARN_ST_READ_ONLY) - nvme_printf(ctrlr, "media placed in read only mode\n"); + nvme_ctrlr_devctl_log(ctrlr, "critical", + "media placed in read only mode"); if (state & NVME_CRIT_WARN_ST_VOLATILE_MEMORY_BACKUP) - nvme_printf(ctrlr, "volatile memory backup device failed\n"); + nvme_ctrlr_devctl_log(ctrlr, "critical", + "volatile memory backup device failed"); if (state & NVME_CRIT_WARN_ST_RESERVED_MASK) - nvme_printf(ctrlr, - "unknown critical warning(s): state = 0x%02x\n", state); + nvme_ctrlr_devctl_log(ctrlr, "critical", + "unknown critical warning(s): state = 0x%02x", state); } static void @@ -1121,7 +1156,7 @@ nvme_ctrlr_reset_task(void *arg, int pending) struct nvme_controller *ctrlr = arg; int status; - nvme_printf(ctrlr, "resetting controller\n"); + nvme_ctrlr_devctl_log(ctrlr, "RESET", "resetting controller"); status = nvme_ctrlr_hw_reset(ctrlr); /* * Use pause instead of DELAY, so that we yield to any nvme interrupt From owner-svn-src-all@freebsd.org Thu Apr 30 00:43: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 A68B12C81AA; Thu, 30 Apr 2020 00:43:03 +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 49CGng3zf6z42Z1; Thu, 30 Apr 2020 00:43:03 +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 83F0CE728; Thu, 30 Apr 2020 00:43:03 +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 03U0h3Bm032725; Thu, 30 Apr 2020 00:43:03 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03U0h3OB032723; Thu, 30 Apr 2020 00:43:03 GMT (envelope-from imp@FreeBSD.org) Message-Id: <202004300043.03U0h3OB032723@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Thu, 30 Apr 2020 00:43:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360483 - in head/sys: cam dev/nvme X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: in head/sys: cam dev/nvme X-SVN-Commit-Revision: 360483 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, 30 Apr 2020 00:43:03 -0000 Author: imp Date: Thu Apr 30 00:43:02 2020 New Revision: 360483 URL: https://svnweb.freebsd.org/changeset/base/360483 Log: Return the nvmeX device associated with the ndaX device. Add the nvmeX device to the XPT_PATH_INQ nvme specific information. while one could figure this out by looking up the domain:bus:slot:function, it's a lot easier to have the SIM set it directly since the sim knows this. Modified: head/sys/cam/cam_ccb.h head/sys/dev/nvme/nvme_sim.c Modified: head/sys/cam/cam_ccb.h ============================================================================== --- head/sys/cam/cam_ccb.h Thu Apr 30 00:27:19 2020 (r360482) +++ head/sys/cam/cam_ccb.h Thu Apr 30 00:43:02 2020 (r360483) @@ -630,6 +630,7 @@ struct ccb_pathinq_settings_sas { u_int32_t bitrate; /* Mbps */ }; +#define NVME_DEV_NAME_LEN 52 struct ccb_pathinq_settings_nvme { uint32_t nsid; /* Namespace ID for this path */ uint32_t domain; @@ -637,7 +638,10 @@ struct ccb_pathinq_settings_nvme { uint8_t slot; uint8_t function; uint8_t extra; + char dev_name[NVME_DEV_NAME_LEN]; /* nvme controller dev name for this device */ }; +_Static_assert(sizeof(struct ccb_pathinq_settings_nvme) == 64, + "ccb_pathinq_settings_nvme too big"); #define PATHINQ_SETTINGS_SIZE 128 @@ -1030,6 +1034,7 @@ struct ccb_trans_settings_nvme uint8_t speed; /* PCIe generation for each lane */ uint8_t max_lanes; /* Number of PCIe lanes */ uint8_t max_speed; /* PCIe generation for each lane */ + }; #include Modified: head/sys/dev/nvme/nvme_sim.c ============================================================================== --- head/sys/dev/nvme/nvme_sim.c Thu Apr 30 00:27:19 2020 (r360482) +++ head/sys/dev/nvme/nvme_sim.c Thu Apr 30 00:43:02 2020 (r360483) @@ -203,6 +203,8 @@ nvme_sim_action(struct cam_sim *sim, union ccb *ccb) cpi->xport_specific.nvme.slot = pci_get_slot(dev); cpi->xport_specific.nvme.function = pci_get_function(dev); cpi->xport_specific.nvme.extra = 0; + strncpy(cpi->xport_specific.nvme.dev_name, device_get_nameunit(ctrlr->dev), + sizeof(cpi->xport_specific.nvme.dev_name)); cpi->ccb_h.status = CAM_REQ_CMP; break; } From owner-svn-src-all@freebsd.org Thu Apr 30 00:43: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 9D8E92C81CA; Thu, 30 Apr 2020 00:43:09 +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 49CGnm3kWdz42cK; Thu, 30 Apr 2020 00:43:08 +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 23595E729; Thu, 30 Apr 2020 00:43:08 +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 03U0h78J032779; Thu, 30 Apr 2020 00:43:07 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03U0h723032778; Thu, 30 Apr 2020 00:43:07 GMT (envelope-from imp@FreeBSD.org) Message-Id: <202004300043.03U0h723032778@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Thu, 30 Apr 2020 00:43:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360484 - head/sys/cam/nvme X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/cam/nvme X-SVN-Commit-Revision: 360484 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, 30 Apr 2020 00:43:09 -0000 Author: imp Date: Thu Apr 30 00:43:07 2020 New Revision: 360484 URL: https://svnweb.freebsd.org/changeset/base/360484 Log: Implement the NVME_GET_NSID and NVME_PASSTHROUGH_CMD ioctls With these two ioctls implemented in the nda driver, nvmecontrol now works with nda just like it does with nvd. It eliminates the need to jump through odd hoops to get this data. Modified: head/sys/cam/nvme/nvme_da.c Modified: head/sys/cam/nvme/nvme_da.c ============================================================================== --- head/sys/cam/nvme/nvme_da.c Thu Apr 30 00:43:02 2020 (r360483) +++ head/sys/cam/nvme/nvme_da.c Thu Apr 30 00:43:07 2020 (r360484) @@ -95,6 +95,7 @@ typedef enum { NDA_CCB_BUFFER_IO = 0x01, NDA_CCB_DUMP = 0x02, NDA_CCB_TRIM = 0x03, + NDA_CCB_PASS = 0x04, NDA_CCB_TYPE_MASK = 0x0F, } nda_ccb_state; @@ -144,6 +145,7 @@ _Static_assert(NVME_MAX_DSM_TRIM % sizeof(struct nvme_ /* Need quirk table */ +static disk_ioctl_t ndaioctl; static disk_strategy_t ndastrategy; static dumper_t ndadump; static periph_init_t ndainit; @@ -366,6 +368,91 @@ ndaschedule(struct cam_periph *periph) cam_iosched_schedule(softc->cam_iosched, periph); } +static int +ndaioctl(struct disk *dp, u_long cmd, void *data, int fflag, + struct thread *td) +{ + struct cam_periph *periph; + struct nda_softc *softc; + + periph = (struct cam_periph *)dp->d_drv1; + softc = (struct nda_softc *)periph->softc; + + switch (cmd) { + case NVME_IO_TEST: + case NVME_BIO_TEST: + /* + * These don't map well to the underlying CCBs, so + * they are usupported via CAM. + */ + return (ENOTTY); + case NVME_GET_NSID: + { + struct nvme_get_nsid *gnsid = (struct nvme_get_nsid *)data; + struct ccb_pathinq cpi; + + xpt_path_inq(&cpi, periph->path); + strncpy(gnsid->cdev, cpi.xport_specific.nvme.dev_name, + sizeof(gnsid->cdev)); + gnsid->nsid = cpi.xport_specific.nvme.nsid; + return (0); + } + case NVME_PASSTHROUGH_CMD: + { + struct nvme_pt_command *pt; + union ccb *ccb; + struct cam_periph_map_info mapinfo; + u_int maxmap = MAXPHYS; /* XXX is this right */ + int error; + + /* + * Create a NVME_IO CCB to do the passthrough command. + */ + pt = (struct nvme_pt_command *)data; + ccb = xpt_alloc_ccb(); + xpt_setup_ccb(&ccb->ccb_h, periph->path, CAM_PRIORITY_NORMAL); + ccb->ccb_state = NDA_CCB_PASS; + cam_fill_nvmeio(&ccb->nvmeio, + 0, /* Retries */ + ndadone, + (pt->is_read ? CAM_DIR_IN : CAM_DIR_OUT) | CAM_DATA_VADDR, + pt->buf, + pt->len, + nda_default_timeout * 1000); + memcpy(&ccb->nvmeio.cmd, &pt->cmd, sizeof(pt->cmd)); + + /* + * Wire the user memory in this request for the I/O + */ + memset(&mapinfo, 0, sizeof(mapinfo)); + error = cam_periph_mapmem(ccb, &mapinfo, maxmap); + if (error) + return (error); + + /* + * Lock the periph and run the command. XXX do we need + * to lock the periph? + */ + cam_periph_lock(periph); + cam_periph_runccb(ccb, NULL, CAM_RETRY_SELTO, SF_RETRY_UA | SF_NO_PRINT, + NULL); + cam_periph_unlock(periph); + + /* + * Tear down mapping and return status. + */ + cam_periph_unmapmem(ccb, &mapinfo); + cam_periph_lock(periph); + error = (ccb->ccb_h.status == CAM_REQ_CMP) ? 0 : EIO; + xpt_release_ccb(ccb); + return (error); + } + default: + break; + } + return (ENOTTY); +} + /* * Actually translate the requested transfer into one the physical driver * can understand. The transfer is described by a buf and will include @@ -782,11 +869,8 @@ ndaregister(struct cam_periph *periph, void *arg) /* ident_data parsing */ periph->softc = softc; - softc->quirks = NDA_Q_NONE; - xpt_path_inq(&cpi, periph->path); - TASK_INIT(&softc->sysctl_task, 0, ndasysctlinit, periph); /* @@ -810,6 +894,7 @@ ndaregister(struct cam_periph *periph, void *arg) disk->d_open = ndaopen; disk->d_close = ndaclose; disk->d_strategy = ndastrategy; + disk->d_ioctl = ndaioctl; disk->d_getattr = ndagetattr; disk->d_dump = ndadump; disk->d_gone = ndadiskgonecb; @@ -1162,6 +1247,8 @@ ndadone(struct cam_periph *periph, union ccb *done_ccb } case NDA_CCB_DUMP: /* No-op. We're polling */ + return; + case NDA_CCB_PASS: return; default: break; From owner-svn-src-all@freebsd.org Thu Apr 30 00:43: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 2A2B22C8204; Thu, 30 Apr 2020 00:43:14 +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 49CGns2wfKz42gR; Thu, 30 Apr 2020 00:43:13 +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 34D47E72B; Thu, 30 Apr 2020 00:43:12 +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 03U0hCg8032831; Thu, 30 Apr 2020 00:43:12 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03U0hCt1032830; Thu, 30 Apr 2020 00:43:12 GMT (envelope-from imp@FreeBSD.org) Message-Id: <202004300043.03U0hCt1032830@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Thu, 30 Apr 2020 00:43:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360485 - head/sys/dev/nvme X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/dev/nvme X-SVN-Commit-Revision: 360485 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, 30 Apr 2020 00:43:14 -0000 Author: imp Date: Thu Apr 30 00:43:11 2020 New Revision: 360485 URL: https://svnweb.freebsd.org/changeset/base/360485 Log: Make sure that we get the sbuf resources we need. Since we're calling sbuf_new with NOWAIT, make sure it can allocate a buffer to use. Don't print anything if we can't get it. Noticed by: rpokala Modified: head/sys/dev/nvme/nvme_ctrlr.c Modified: head/sys/dev/nvme/nvme_ctrlr.c ============================================================================== --- head/sys/dev/nvme/nvme_ctrlr.c Thu Apr 30 00:43:07 2020 (r360484) +++ head/sys/dev/nvme/nvme_ctrlr.c Thu Apr 30 00:43:11 2020 (r360485) @@ -59,7 +59,8 @@ nvme_ctrlr_devctl_log(struct nvme_controller *ctrlr, c va_list ap; int error; - sbuf_new(&sb, NULL, 0, SBUF_AUTOEXTEND | SBUF_NOWAIT); + if (sbuf_new(&sb, NULL, 0, SBUF_AUTOEXTEND | SBUF_NOWAIT) == NULL) + return; sbuf_printf(&sb, "%s: ", device_get_nameunit(ctrlr->dev)); va_start(ap, msg); sbuf_vprintf(&sb, msg, ap); From owner-svn-src-all@freebsd.org Thu Apr 30 02:50: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 9F6FA2CB53E; Thu, 30 Apr 2020 02:50: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 49CKdH3NRnz48ZM; Thu, 30 Apr 2020 02:50: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 6F644FEDC; Thu, 30 Apr 2020 02:50: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 03U2oxa0010374; Thu, 30 Apr 2020 02:50:59 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03U2oxax010373; Thu, 30 Apr 2020 02:50:59 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004300250.03U2oxax010373@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 30 Apr 2020 02:50:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360486 - head/stand/defaults X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/stand/defaults X-SVN-Commit-Revision: 360486 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, 30 Apr 2020 02:50:59 -0000 Author: kevans Date: Thu Apr 30 02:50:58 2020 New Revision: 360486 URL: https://svnweb.freebsd.org/changeset/base/360486 Log: loader.conf(5): document that loader_conf_files may be clobbered A future change in lualoader may take some liberties with the loader_conf_files in the name of efficiency; namely, it may start omitting it from the loader environment entirely so that it doesn't need to worry about maintaining any specific value. This variable has historically been incredibly volatile anyways, as it may get set to completely different values in any given configuration file to trigger a load of more files. Document now that we may not maintain it in the future, but perhaps we'll reserve the right to change our minds and eventually formally export all of the loader configuration files that were read using this variable. MFC after: 3 days Modified: head/stand/defaults/loader.conf.5 Modified: head/stand/defaults/loader.conf.5 ============================================================================== --- head/stand/defaults/loader.conf.5 Thu Apr 30 00:43:11 2020 (r360485) +++ head/stand/defaults/loader.conf.5 Thu Apr 30 02:50:58 2020 (r360486) @@ -23,7 +23,7 @@ .\" SUCH DAMAGE. .\" .\" $FreeBSD$ -.Dd October 6, 2018 +.Dd April 29, 2020 .Dt LOADER.CONF 5 .Os .Sh NAME @@ -91,6 +91,10 @@ independently. .It Ar loader_conf_files Defines additional configuration files to be processed right after the present file. +.Ar loader_conf_files +should be treated as write-only. +One cannot depend on any value remaining in the loader environment or carried +over into the kernel environment. .It Ar kernel Name of the kernel to be loaded. If no kernel name is set, no additional From owner-svn-src-all@freebsd.org Thu Apr 30 04:00: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 8B7792CE629; Thu, 30 Apr 2020 04:00:54 +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 49CM9y3Dc5z4F4f; Thu, 30 Apr 2020 04:00:54 +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 51A7918D3A; Thu, 30 Apr 2020 04:00:54 +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 03U40shT053256; Thu, 30 Apr 2020 04:00:54 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03U40rbQ053254; Thu, 30 Apr 2020 04:00:53 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <202004300400.03U40rbQ053254@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Thu, 30 Apr 2020 04:00:53 +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: r360488 - 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: 360488 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, 30 Apr 2020 04:00:54 -0000 Author: delphij Date: Thu Apr 30 04:00:53 2020 New Revision: 360488 URL: https://svnweb.freebsd.org/changeset/base/360488 Log: MFC r360359: Fix a bug with dirty file system handling. Modified: stable/12/sbin/fsck_msdosfs/check.c stable/12/sbin/fsck_msdosfs/ext.h stable/12/sbin/fsck_msdosfs/fat.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sbin/fsck_msdosfs/check.c ============================================================================== --- stable/12/sbin/fsck_msdosfs/check.c Thu Apr 30 03:58:30 2020 (r360487) +++ stable/12/sbin/fsck_msdosfs/check.c Thu Apr 30 04:00:53 2020 (r360488) @@ -169,7 +169,7 @@ checkfilesys(const char *fname) if (mod & FSDIRTY) { pwarn("MARKING FILE SYSTEM CLEAN\n"); - mod |= writefat(fat); + mod |= cleardirty(fat); } else { pwarn("\n***** FILE SYSTEM IS LEFT MARKED AS DIRTY *****\n"); mod |= FSERROR; /* file system not clean */ Modified: stable/12/sbin/fsck_msdosfs/ext.h ============================================================================== --- stable/12/sbin/fsck_msdosfs/ext.h Thu Apr 30 03:58:30 2020 (r360487) +++ stable/12/sbin/fsck_msdosfs/ext.h Thu Apr 30 04:00:53 2020 (r360488) @@ -90,6 +90,8 @@ int writefsinfo(int, struct bootblock *); /* Opaque type */ struct fat_descriptor; +int cleardirty(struct fat_descriptor *); + void fat_clear_cl_head(struct fat_descriptor *, cl_t); bool fat_is_cl_head(struct fat_descriptor *, cl_t); Modified: stable/12/sbin/fsck_msdosfs/fat.c ============================================================================== --- stable/12/sbin/fsck_msdosfs/fat.c Thu Apr 30 03:58:30 2020 (r360487) +++ stable/12/sbin/fsck_msdosfs/fat.c Thu Apr 30 04:00:53 2020 (r360488) @@ -578,7 +578,6 @@ valid_cl(struct fat_descriptor *fat, cl_t cl) * h = hard error flag (1 = ok; 0 = I/O error) * x = any value ok */ - int checkdirty(int fs, struct bootblock *boot) { @@ -636,6 +635,53 @@ checkdirty(int fs, struct bootblock *boot) if ((buffer[7] & 0x0c) == 0x0c) ret = 1; } + +err: + free(buffer); + return ret; +} + +int +cleardirty(struct fat_descriptor *fat) +{ + int fd, ret = FSERROR; + struct bootblock *boot; + u_char *buffer; + size_t len; + off_t off; + + boot = boot_of_(fat); + fd = fd_of_(fat); + + if (boot->ClustMask != CLUST16_MASK && boot->ClustMask != CLUST32_MASK) + return 0; + + off = boot->bpbResSectors; + off *= boot->bpbBytesPerSec; + + buffer = malloc(len = boot->bpbBytesPerSec); + if (buffer == NULL) { + perr("No memory for FAT sectors (%zu)", len); + return 1; + } + + if ((size_t)pread(fd, buffer, len, off) != len) { + perr("Unable to read FAT"); + goto err; + } + + if (boot->ClustMask == CLUST16_MASK) { + buffer[3] |= 0x80; + } else { + buffer[7] |= 0x08; + } + + if ((size_t)pwrite(fd, buffer, len, off) != len) { + perr("Unable to write FAT"); + goto err; + } + + ret = FSOK; err: free(buffer); From owner-svn-src-all@freebsd.org Thu Apr 30 05:28: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 943602B0CCB; Thu, 30 Apr 2020 05:28:49 +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 49CP7P2Vpxz4JWw; Thu, 30 Apr 2020 05:28:49 +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 50F6C19E1D; Thu, 30 Apr 2020 05:28:49 +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 03U5Sn78007277; Thu, 30 Apr 2020 05:28:49 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03U5Snsp007276; Thu, 30 Apr 2020 05:28:49 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <202004300528.03U5Snsp007276@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Thu, 30 Apr 2020 05:28: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: r360489 - stable/12/sys/sys X-SVN-Group: stable-12 X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: stable/12/sys/sys X-SVN-Commit-Revision: 360489 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, 30 Apr 2020 05:28:49 -0000 Author: delphij Date: Thu Apr 30 05:28:48 2020 New Revision: 360489 URL: https://svnweb.freebsd.org/changeset/base/360489 Log: Fix build: redo MFC r360059 and revert unwanted portion. Modified: stable/12/sys/sys/socketvar.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/sys/socketvar.h ============================================================================== --- stable/12/sys/sys/socketvar.h Thu Apr 30 04:00:53 2020 (r360488) +++ stable/12/sys/sys/socketvar.h Thu Apr 30 05:28:48 2020 (r360489) @@ -173,10 +173,6 @@ struct socket { short sol_sbsnd_flags; sbintime_t sol_sbrcv_timeo; sbintime_t sol_sbsnd_timeo; - - /* Information tracking listen queue overflows. */ - struct timeval sol_lastover; /* (e) */ - int sol_overcount; /* (e) */ }; }; }; @@ -185,13 +181,13 @@ struct socket { /* * Socket state bits. * - * Historically, these bits were all kept in the so_state field. - * They are now split into separate, lock-specific fields. - * so_state maintains basic socket state protected by the socket lock. - * so_qstate holds information about the socket accept queues. - * Each socket buffer also has a state field holding information - * relevant to that socket buffer (can't send, rcv). - * Many fields will be read without locks to improve performance and avoid + * Historically, this bits were all kept in the so_state field. For + * locking reasons, they are now in multiple fields, as they are + * locked differently. so_state maintains basic socket state protected + * by the socket lock. so_qstate holds information about the socket + * accept queues. Each socket buffer also has a state field holding + * information relevant to that socket buffer (can't send, rcv). Many + * fields will be read without locks to improve performance and avoid * lock order issues. However, this approach must be used with caution. */ #define SS_NOFDREF 0x0001 /* no file table ref any more */ @@ -384,8 +380,7 @@ struct uio; /* * From uipc_socket and friends */ -int getsockaddr(struct sockaddr **namp, const struct sockaddr *uaddr, - size_t len); +int getsockaddr(struct sockaddr **namp, caddr_t uaddr, size_t len); int getsock_cap(struct thread *td, int fd, cap_rights_t *rightsp, struct file **fpp, u_int *fflagp, struct filecaps *havecaps); void soabort(struct socket *so); From owner-svn-src-all@freebsd.org Thu Apr 30 06:34: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 473A92B26E6; Thu, 30 Apr 2020 06:34:35 +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 49CQbH1T4wz4M8y; Thu, 30 Apr 2020 06:34:35 +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 28E781AB2D; Thu, 30 Apr 2020 06:34:35 +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 03U6YZCa049310; Thu, 30 Apr 2020 06:34:35 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03U6YYT1049305; Thu, 30 Apr 2020 06:34:34 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <202004300634.03U6YYT1049305@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Thu, 30 Apr 2020 06:34: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: r360490 - stable/11/sbin/fsck_msdosfs X-SVN-Group: stable-11 X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: stable/11/sbin/fsck_msdosfs X-SVN-Commit-Revision: 360490 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, 30 Apr 2020 06:34:35 -0000 Author: delphij Date: Thu Apr 30 06:34:34 2020 New Revision: 360490 URL: https://svnweb.freebsd.org/changeset/base/360490 Log: MFC r345839, r345894, r345897, r345900-r345901, r345976, r346220, r348602, r348767, r348967, r349047-r349048, r351204-r351205, r351502, r351623, r352364, r356249-r356250, r356313, r356434, r356628-r356629, r356636, r356657, r357421, r357716, r360359, r360428: r345839: Assert that q can't be NULL. 'empty' is always non-NULL when DIREMPTY r345894: Restore the ability of checking and fixing next free r345897: Restore lfcl when LOSTDIR's chain was corrupted and overwritten r345900: Implement checking of `.' and `..' entries of subdirectory. r345901: Fix build. r345976: Write string constant differently to improve readability. r346220: Don't cast result from malloc(). r348602: Don't increment cl after increment. r348767: preen should work independently with alwaysyes and alwaysno. r348967: Avoid out of boundary access when checking invalid long filenames. r349047: Blankspace. No actual code change. r349048: In ask(): override default option if any of alwaysyes/alwaysno/rdonly is r351204: Remove redundant check and wrong fix: fat.c checks already take care r351205: Use calloc(). r351502: Comment boot block checks and perform additional sanity checks: r351623: Remove unneeded blank line. No functional change. r352364: Avoid mixing cluster numbers and sector numbers. Makes code more readable. r356249: Reduce memory footprint of fsck_msdosfs. r356250: Revert r356249 for now as it broke GCC builds. r356313: Reduce memory footprint of fsck_msdosfs. r356434: fsck_msdosfs.8: document -M. r356628: Require FAT to occupy at least one sector. r356629: Apply typo fix from NetBSD, we have already applied all NetBSD changes so r356636: Correct off-by-two issue when determining FAT type. r356657: Tighten FAT checks and fix off-by-one error in corner case. r357421: Diff reduction against NetBSD, no functional change. r357716: Use humanize_number to format available and bad space sizes. r360359: Fix a bug with dirty file system handling. r360428: Do not overflow when calculating file system size. Modified: stable/11/sbin/fsck_msdosfs/Makefile stable/11/sbin/fsck_msdosfs/boot.c stable/11/sbin/fsck_msdosfs/check.c stable/11/sbin/fsck_msdosfs/dir.c stable/11/sbin/fsck_msdosfs/dosfs.h stable/11/sbin/fsck_msdosfs/ext.h stable/11/sbin/fsck_msdosfs/fat.c stable/11/sbin/fsck_msdosfs/fsck_msdosfs.8 stable/11/sbin/fsck_msdosfs/main.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sbin/fsck_msdosfs/Makefile ============================================================================== --- stable/11/sbin/fsck_msdosfs/Makefile Thu Apr 30 05:28:48 2020 (r360489) +++ stable/11/sbin/fsck_msdosfs/Makefile Thu Apr 30 06:34:34 2020 (r360490) @@ -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/11/sbin/fsck_msdosfs/boot.c ============================================================================== --- stable/11/sbin/fsck_msdosfs/boot.c Thu Apr 30 05:28:48 2020 (r360489) +++ stable/11/sbin/fsck_msdosfs/boot.c Thu Apr 30 06:34:34 2020 (r360490) @@ -28,11 +28,14 @@ #include #ifndef lint -__RCSID("$NetBSD: boot.c,v 1.11 2006/06/05 16:51:18 christos Exp "); +__RCSID("$NetBSD: boot.c,v 1.22 2020/01/11 16:29:07 christos Exp $"); static const char rcsid[] = "$FreeBSD$"; #endif /* not lint */ +#include + +#include #include #include #include @@ -46,10 +49,8 @@ readboot(int dosfs, struct bootblock *boot) { u_char block[DOSBOOTBLOCKSIZE]; u_char fsinfo[2 * DOSBOOTBLOCKSIZE]; - u_char backup[DOSBOOTBLOCKSIZE]; int ret = FSOK; - int i; - + if ((size_t)read(dosfs, block, sizeof block) != sizeof block) { perr("could not read boot block"); return FSFATAL; @@ -64,61 +65,130 @@ readboot(int dosfs, struct bootblock *boot) memset(boot, 0, sizeof *boot); boot->ValidFat = -1; - /* decode bios parameter block */ + /* Decode BIOS Parameter Block */ + + /* Bytes per sector: can only be 512, 1024, 2048 and 4096. */ boot->bpbBytesPerSec = block[11] + (block[12] << 8); + if (boot->bpbBytesPerSec < DOSBOOTBLOCKSIZE_REAL || + boot->bpbBytesPerSec > DOSBOOTBLOCKSIZE || + !powerof2(boot->bpbBytesPerSec)) { + pfatal("Invalid sector size: %u", boot->bpbBytesPerSec); + return FSFATAL; + } + + /* Sectors per cluster: can only be: 1, 2, 4, 8, 16, 32, 64, 128. */ boot->bpbSecPerClust = block[13]; + if (boot->bpbSecPerClust == 0 || !powerof2(boot->bpbSecPerClust)) { + pfatal("Invalid cluster size: %u", boot->bpbSecPerClust); + return FSFATAL; + } + + /* Reserved sectors: must be non-zero */ boot->bpbResSectors = block[14] + (block[15] << 8); + if (boot->bpbResSectors < 1) { + pfatal("Invalid reserved sectors: %u", + boot->bpbResSectors); + return FSFATAL; + } + + /* Number of FATs */ boot->bpbFATs = block[16]; + if (boot->bpbFATs == 0) { + pfatal("Invalid number of FATs: %u", boot->bpbFATs); + return FSFATAL; + } + + /* Root directory entries for FAT12 and FAT16 */ boot->bpbRootDirEnts = block[17] + (block[18] << 8); + if (!boot->bpbRootDirEnts) { + /* bpbRootDirEnts = 0 suggests that we are FAT32 */ + boot->flags |= FAT32; + } + + /* Total sectors (16 bits) */ boot->bpbSectors = block[19] + (block[20] << 8); + if (boot->bpbSectors != 0 && (boot->flags & FAT32)) { + pfatal("Invalid 16-bit total sector count on FAT32: %u", + boot->bpbSectors); + return FSFATAL; + } + + /* Media type: ignored */ boot->bpbMedia = block[21]; + + /* FAT12/FAT16: 16-bit count of sectors per FAT */ boot->bpbFATsmall = block[22] + (block[23] << 8); + if (boot->bpbFATsmall != 0 && (boot->flags & FAT32)) { + pfatal("Invalid 16-bit FAT sector count on FAT32: %u", + boot->bpbFATsmall); + return FSFATAL; + } + + /* Legacy CHS geometry numbers: ignored */ boot->SecPerTrack = block[24] + (block[25] << 8); boot->bpbHeads = block[26] + (block[27] << 8); + + /* Hidden sectors: ignored */ boot->bpbHiddenSecs = block[28] + (block[29] << 8) + (block[30] << 16) + (block[31] << 24); + + /* Total sectors (32 bits) */ boot->bpbHugeSectors = block[32] + (block[33] << 8) + (block[34] << 16) + (block[35] << 24); - - boot->FATsecs = boot->bpbFATsmall; - - if (boot->bpbBytesPerSec % DOSBOOTBLOCKSIZE_REAL != 0 || - boot->bpbBytesPerSec / DOSBOOTBLOCKSIZE_REAL == 0) { - pfatal("Invalid sector size: %u", boot->bpbBytesPerSec); - return FSFATAL; + if (boot->bpbHugeSectors == 0) { + if (boot->flags & FAT32) { + pfatal("FAT32 with sector count of zero"); + return FSFATAL; + } else if (boot->bpbSectors == 0) { + pfatal("FAT with sector count of zero"); + return FSFATAL; + } + boot->NumSectors = boot->bpbSectors; + } else { + if (boot->bpbSectors != 0) { + pfatal("Invalid FAT sector count"); + return FSFATAL; + } + boot->NumSectors = boot->bpbHugeSectors; } - if (boot->bpbFATs == 0) { - pfatal("Invalid number of FATs: %u", boot->bpbFATs); - return FSFATAL; - } - if (!boot->bpbRootDirEnts) - boot->flags |= FAT32; + if (boot->flags & FAT32) { + /* If the OEM Name field is EXFAT, it's not FAT32, so bail */ + if (!memcmp(&block[3], "EXFAT ", 8)) { + pfatal("exFAT filesystem is not supported."); + return FSFATAL; + } + + /* 32-bit count of sectors per FAT */ boot->FATsecs = block[36] + (block[37] << 8) + (block[38] << 16) + (block[39] << 24); + if (block[40] & 0x80) boot->ValidFat = block[40] & 0x0f; - /* check version number: */ + /* FAT32 version, bail out if not 0.0 */ if (block[42] || block[43]) { - /* Correct? XXX */ pfatal("Unknown file system version: %x.%x", block[43], block[42]); return FSFATAL; } + + /* + * Cluster number of the first cluster of root directory. + * + * Should be 2 but do not require it. + */ boot->bpbRootClust = block[44] + (block[45] << 8) + (block[46] << 16) + (block[47] << 24); + + /* Sector number of the FSInfo structure, usually 1 */ boot->bpbFSInfo = block[48] + (block[49] << 8); + + /* Sector number of the backup boot block, ignored */ boot->bpbBackup = block[50] + (block[51] << 8); - /* If the OEM Name field is EXFAT, it's not FAT32, so bail */ - if (!memcmp(&block[3], "EXFAT ", 8)) { - pfatal("exFAT filesystem is not supported."); - return FSFATAL; - } - - /* check basic parameters */ - if ((boot->bpbFSInfo == 0) || (boot->bpbSecPerClust == 0)) { + /* Check basic parameters */ + if (boot->bpbFSInfo == 0) { /* * Either the BIOS Parameter Block has been corrupted, * or this is not a FAT32 filesystem, most likely an @@ -127,6 +197,8 @@ readboot(int dosfs, struct bootblock *boot) pfatal("Invalid FAT32 Extended BIOS Parameter Block"); return FSFATAL; } + + /* Read in and verify the FSInfo block */ if (lseek(dosfs, boot->bpbFSInfo * boot->bpbBytesPerSec, SEEK_SET) != boot->bpbFSInfo * boot->bpbBytesPerSec || read(dosfs, fsinfo, sizeof fsinfo) != sizeof fsinfo) { @@ -164,8 +236,8 @@ readboot(int dosfs, struct bootblock *boot) ret = FSBOOTMOD; } else boot->bpbFSInfo = 0; - } - if (boot->bpbFSInfo) { + } else { + /* We appear to have a valid FSInfo block, decode */ boot->FSFree = fsinfo[0x1e8] + (fsinfo[0x1e9] << 8) + (fsinfo[0x1ea] << 16) + (fsinfo[0x1eb] << 24); @@ -173,59 +245,58 @@ readboot(int dosfs, struct bootblock *boot) + (fsinfo[0x1ee] << 16) + (fsinfo[0x1ef] << 24); } - - if (lseek(dosfs, boot->bpbBackup * boot->bpbBytesPerSec, - SEEK_SET) - != boot->bpbBackup * boot->bpbBytesPerSec - || read(dosfs, backup, sizeof backup) != sizeof backup) { - perr("could not read backup bootblock"); - return FSFATAL; - } - backup[65] = block[65]; /* XXX */ - if (memcmp(block + 11, backup + 11, 79)) { - /* - * XXX We require a reference that explains - * that these bytes need to match, or should - * drop the check. gdt@NetBSD has observed - * filesystems that work fine under Windows XP - * and NetBSD that do not match, so the - * requirement is suspect. For now, just - * print out useful information and continue. - */ - pwarn("backup (block %d) mismatch with primary bootblock:\n", - boot->bpbBackup); - for (i = 11; i < 11 + 90; i++) { - if (block[i] != backup[i]) - pwarn("\ti=%d\tprimary 0x%02x\tbackup 0x%02x\n", - i, block[i], backup[i]); - } - } - /* Check backup bpbFSInfo? XXX */ + } else { + /* !FAT32: FAT12/FAT16 */ + boot->FATsecs = boot->bpbFATsmall; } - if (boot->bpbSecPerClust == 0) { - pfatal("Invalid cluster size: %u", boot->bpbSecPerClust); + if (boot->FATsecs < 1 || boot->FATsecs > UINT32_MAX / boot->bpbFATs) { + pfatal("Invalid FATs(%u) with FATsecs(%zu)", + boot->bpbFATs, (size_t)boot->FATsecs); return FSFATAL; } - if (boot->bpbSectors) { - boot->bpbHugeSectors = 0; - boot->NumSectors = boot->bpbSectors; - } else - boot->NumSectors = boot->bpbHugeSectors; - boot->ClusterOffset = (boot->bpbRootDirEnts * 32 + + + boot->FirstCluster = (boot->bpbRootDirEnts * 32 + boot->bpbBytesPerSec - 1) / boot->bpbBytesPerSec + - boot->bpbResSectors + boot->bpbFATs * boot->FATsecs - - CLUST_FIRST * boot->bpbSecPerClust; - boot->NumClusters = (boot->NumSectors - boot->ClusterOffset) / - boot->bpbSecPerClust; + boot->bpbResSectors + boot->bpbFATs * boot->FATsecs; - if (boot->flags&FAT32) + if (boot->FirstCluster + boot->bpbSecPerClust > boot->NumSectors) { + pfatal("Cluster offset too large (%u clusters)\n", + boot->FirstCluster); + return FSFATAL; + } + + /* + * The number of clusters is derived from available data sectors, + * divided by sectors per cluster. + */ + boot->NumClusters = + (boot->NumSectors - boot->FirstCluster) / boot->bpbSecPerClust; + + if (boot->flags & FAT32) { + if (boot->NumClusters > (CLUST_RSRVD & CLUST32_MASK)) { + pfatal("Filesystem too big (%u clusters) for FAT32 partition", + boot->NumClusters); + return FSFATAL; + } + if (boot->NumClusters < (CLUST_RSRVD & CLUST16_MASK)) { + pfatal("Filesystem too small (%u clusters) for FAT32 partition", + boot->NumClusters); + return FSFATAL; + } boot->ClustMask = CLUST32_MASK; - else if (boot->NumClusters < (CLUST_RSRVD&CLUST12_MASK)) + + if (boot->bpbRootClust < CLUST_FIRST || + boot->bpbRootClust >= boot->NumClusters) { + pfatal("Root directory starts with cluster out of range(%u)", + boot->bpbRootClust); + return FSFATAL; + } + } else if (boot->NumClusters < (CLUST_RSRVD&CLUST12_MASK)) { boot->ClustMask = CLUST12_MASK; - else if (boot->NumClusters < (CLUST_RSRVD&CLUST16_MASK)) + } else if (boot->NumClusters < (CLUST_RSRVD&CLUST16_MASK)) { boot->ClustMask = CLUST16_MASK; - else { + } else { pfatal("Filesystem too big (%u clusters) for non-FAT32 partition", boot->NumClusters); return FSFATAL; @@ -243,11 +314,19 @@ readboot(int dosfs, struct bootblock *boot) break; } - if (boot->NumFatEntries < boot->NumClusters - CLUST_FIRST) { + if (boot->NumFatEntries < boot->NumClusters) { pfatal("FAT size too small, %u entries won't fit into %u sectors\n", boot->NumClusters, boot->FATsecs); return FSFATAL; } + + /* + * There are two reserved clusters. To avoid adding CLUST_FIRST every + * time we perform boundary checks, we increment the NumClusters by 2, + * which is CLUST_FIRST to denote the first out-of-range cluster number. + */ + boot->NumClusters += CLUST_FIRST; + boot->ClusterSize = boot->bpbBytesPerSec * boot->bpbSecPerClust; boot->NumFiles = 1; @@ -289,7 +368,7 @@ writefsinfo(int dosfs, struct bootblock *boot) * support for FAT32) doesn't maintain the FSINFO block * correctly, it has to be fixed pretty often. * - * Therefor, we handle the FSINFO block only informally, + * Therefore, we handle the FSINFO block only informally, * fixing it if necessary, but otherwise ignoring the * fact that it was incorrect. */ Modified: stable/11/sbin/fsck_msdosfs/check.c ============================================================================== --- stable/11/sbin/fsck_msdosfs/check.c Thu Apr 30 05:28:48 2020 (r360489) +++ stable/11/sbin/fsck_msdosfs/check.c Thu Apr 30 06:34:34 2020 (r360490) @@ -33,6 +33,9 @@ static const char rcsid[] = "$FreeBSD$"; #endif /* not lint */ +#ifdef HAVE_LIBUTIL_H +#include +#endif #include #include #include @@ -47,11 +50,12 @@ checkfilesys(const char *fname) { int dosfs; struct bootblock boot; - struct fatEntry *fat = NULL; + struct fat_descriptor *fat = NULL; int finish_dosdirsection=0; - u_int i; int mod = 0; int ret = 8; + int64_t freebytes; + int64_t badbytes; rdonly = alwaysno; if (!preen) @@ -88,80 +92,73 @@ checkfilesys(const char *fname) } if (!preen) { - if (boot.ValidFat < 0) - printf("** Phase 1 - Read and Compare FATs\n"); - else - printf("** Phase 1 - Read FAT\n"); + printf("** Phase 1 - Read FAT and checking connectivity\n"); } - mod |= readfat(dosfs, &boot, boot.ValidFat >= 0 ? boot.ValidFat : 0, &fat); + mod |= readfat(dosfs, &boot, &fat); if (mod & FSFATAL) { close(dosfs); return 8; } - if (boot.ValidFat < 0) - for (i = 1; i < boot.bpbFATs; i++) { - struct fatEntry *currentFat; - - mod |= readfat(dosfs, &boot, i, ¤tFat); - - if (mod & FSFATAL) - goto out; - - mod |= comparefat(&boot, fat, currentFat, i); - free(currentFat); - if (mod & FSFATAL) - goto out; - } - if (!preen) - printf("** Phase 2 - Check Cluster Chains\n"); + printf("** Phase 2 - Checking Directories\n"); - mod |= checkfat(&boot, fat); - if (mod & FSFATAL) - goto out; - /* delay writing FATs */ - - if (!preen) - printf("** Phase 3 - Checking Directories\n"); - - mod |= resetDosDirSection(&boot, fat); + mod |= resetDosDirSection(fat); finish_dosdirsection = 1; if (mod & FSFATAL) goto out; /* delay writing FATs */ - mod |= handleDirTree(dosfs, &boot, fat); + mod |= handleDirTree(fat); if (mod & FSFATAL) goto out; if (!preen) - printf("** Phase 4 - Checking for Lost Files\n"); + printf("** Phase 3 - Checking for Lost Files\n"); - mod |= checklost(dosfs, &boot, fat); + mod |= checklost(fat); if (mod & FSFATAL) goto out; /* now write the FATs */ - if (mod & (FSFATMOD|FSFIXFAT)) { + if (mod & FSFATMOD) { if (ask(1, "Update FATs")) { - mod |= writefat(dosfs, &boot, fat, mod & FSFIXFAT); + mod |= writefat(fat); if (mod & FSFATAL) goto out; } else mod |= FSERROR; } + freebytes = (int64_t)boot.NumFree * boot.ClusterSize; + badbytes = (int64_t)boot.NumBad * boot.ClusterSize; + +#ifdef HAVE_LIBUTIL_H + char freestr[7], badstr[7]; + + humanize_number(freestr, sizeof(freestr), freebytes, "", + HN_AUTOSCALE, HN_DECIMAL | HN_IEC_PREFIXES); + if (boot.NumBad) { + 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", - boot.NumFiles, - boot.NumFree * boot.ClusterSize / 1024, boot.NumFree, - boot.NumBad * boot.ClusterSize / 1024, boot.NumBad); + pwarn("%d files, %jd KiB free (%d clusters), %jd KiB bad (%d clusters)\n", + boot.NumFiles, (intmax_t)freebytes / 1024, boot.NumFree, + (intmax_t)badbytes / 1024, boot.NumBad); else - pwarn("%d files, %d free (%d clusters)\n", - boot.NumFiles, - boot.NumFree * boot.ClusterSize / 1024, boot.NumFree); + pwarn("%d files, %jd KiB free (%d clusters)\n", + boot.NumFiles, (intmax_t)freebytes / 1024, boot.NumFree); +#endif if (mod && (mod & FSERROR) == 0) { if (mod & FSDIRTY) { @@ -170,7 +167,7 @@ checkfilesys(const char *fname) if (mod & FSDIRTY) { pwarn("MARKING FILE SYSTEM CLEAN\n"); - mod |= writefat(dosfs, &boot, fat, 1); + mod |= cleardirty(fat); } else { pwarn("\n***** FILE SYSTEM IS LEFT MARKED AS DIRTY *****\n"); mod |= FSERROR; /* file system not clean */ Modified: stable/11/sbin/fsck_msdosfs/dir.c ============================================================================== --- stable/11/sbin/fsck_msdosfs/dir.c Thu Apr 30 05:28:48 2020 (r360489) +++ stable/11/sbin/fsck_msdosfs/dir.c Thu Apr 30 06:34:34 2020 (r360490) @@ -1,6 +1,7 @@ /*- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * + * Copyright (c) 2019 Google LLC * Copyright (C) 1995, 1996, 1997 Wolfgang Solfrank * Copyright (c) 1995 Martin Husemann * Some structure declaration borrowed from Paul Popelka @@ -35,6 +36,7 @@ static const char rcsid[] = "$FreeBSD$"; #endif /* not lint */ +#include #include #include #include @@ -94,14 +96,11 @@ static struct dirTodoNode *newDirTodo(void); static void freeDirTodo(struct dirTodoNode *); static char *fullpath(struct dosDirEntry *); static u_char calcShortSum(u_char *); -static int delete(int, struct bootblock *, struct fatEntry *, cl_t, int, - cl_t, int, int); -static int removede(int, struct bootblock *, struct fatEntry *, u_char *, - u_char *, cl_t, cl_t, cl_t, char *, int); -static int checksize(struct bootblock *, struct fatEntry *, u_char *, - struct dosDirEntry *); -static int readDosDirSection(int, struct bootblock *, struct fatEntry *, - struct dosDirEntry *); +static int delete(struct fat_descriptor *, cl_t, int, cl_t, int, int); +static int removede(struct fat_descriptor *, u_char *, u_char *, + cl_t, cl_t, cl_t, char *, int); +static int checksize(struct fat_descriptor *, u_char *, struct dosDirEntry *); +static int readDosDirSection(struct fat_descriptor *, struct dosDirEntry *); /* * Manage free dosDirEntry structures. @@ -114,8 +113,8 @@ newDosDirEntry(void) struct dosDirEntry *de; if (!(de = freede)) { - if (!(de = (struct dosDirEntry *)malloc(sizeof *de))) - return 0; + if (!(de = malloc(sizeof *de))) + return (NULL); } else freede = de->next; return de; @@ -139,7 +138,7 @@ newDirTodo(void) struct dirTodoNode *dt; if (!(dt = freedt)) { - if (!(dt = (struct dirTodoNode *)malloc(sizeof *dt))) + if (!(dt = malloc(sizeof *dt))) return 0; } else freedt = dt->next; @@ -192,7 +191,7 @@ fullpath(struct dosDirEntry *dir) /* * Calculate a checksum over an 8.3 alias name */ -static u_char +static inline u_char calcShortSum(u_char *p) { u_char sum = 0; @@ -220,22 +219,24 @@ static struct dosDirEntry *lostDir; * Init internal state for a new directory scan. */ int -resetDosDirSection(struct bootblock *boot, struct fatEntry *fat) +resetDosDirSection(struct fat_descriptor *fat) { - int b1, b2; - cl_t cl; + int rootdir_size, cluster_size; int ret = FSOK; size_t len; + struct bootblock *boot; - b1 = boot->bpbRootDirEnts * 32; - b2 = boot->bpbSecPerClust * boot->bpbBytesPerSec; + boot = fat_get_boot(fat); - if ((buffer = malloc(len = MAX(b1, b2))) == NULL) { + rootdir_size = boot->bpbRootDirEnts * 32; + cluster_size = boot->bpbSecPerClust * boot->bpbBytesPerSec; + + if ((buffer = malloc(len = MAX(rootdir_size, cluster_size))) == NULL) { perr("No space for directory buffer (%zu)", len); return FSFATAL; } - if ((delbuf = malloc(len = b2)) == NULL) { + if ((delbuf = malloc(len = cluster_size)) == NULL) { free(buffer); perr("No space for directory delbuf (%zu)", len); return FSFATAL; @@ -250,33 +251,10 @@ resetDosDirSection(struct bootblock *boot, struct fatE memset(rootDir, 0, sizeof *rootDir); if (boot->flags & FAT32) { - if (boot->bpbRootClust < CLUST_FIRST || - boot->bpbRootClust >= boot->NumClusters) { - pfatal("Root directory starts with cluster out of range(%u)", - boot->bpbRootClust); + if (!fat_is_cl_head(fat, boot->bpbRootClust)) { + pfatal("Root directory doesn't start a cluster chain"); return FSFATAL; } - cl = fat[boot->bpbRootClust].next; - if (cl < CLUST_FIRST - || (cl >= CLUST_RSRVD && cl< CLUST_EOFS) - || fat[boot->bpbRootClust].head != boot->bpbRootClust) { - if (cl == CLUST_FREE) - pwarn("Root directory starts with free cluster\n"); - else if (cl >= CLUST_RSRVD) - pwarn("Root directory starts with cluster marked %s\n", - rsrvdcltype(cl)); - else { - pfatal("Root directory doesn't start a cluster chain"); - return FSFATAL; - } - if (ask(1, "Fix")) { - fat[boot->bpbRootClust].next = CLUST_FREE; - ret = FSFATMOD; - } else - ret = FSFATAL; - } - - fat[boot->bpbRootClust].flags |= FAT_USED; rootDir->head = boot->bpbRootClust; } @@ -317,28 +295,34 @@ finishDosDirSection(void) * Delete directory entries between startcl, startoff and endcl, endoff. */ static int -delete(int f, struct bootblock *boot, struct fatEntry *fat, cl_t startcl, +delete(struct fat_descriptor *fat, cl_t startcl, int startoff, cl_t endcl, int endoff, int notlast) { u_char *s, *e; off_t off; - int clsz = boot->bpbSecPerClust * boot->bpbBytesPerSec; + int clsz, fd; + struct bootblock *boot; + boot = fat_get_boot(fat); + fd = fat_get_fd(fat); + clsz = boot->bpbSecPerClust * boot->bpbBytesPerSec; + s = delbuf + startoff; e = delbuf + clsz; - while (startcl >= CLUST_FIRST && startcl < boot->NumClusters) { + while (fat_is_valid_cl(fat, startcl)) { if (startcl == endcl) { if (notlast) break; e = delbuf + endoff; } - off = startcl * boot->bpbSecPerClust + boot->ClusterOffset; + off = (startcl - CLUST_FIRST) * boot->bpbSecPerClust + boot->FirstCluster; + off *= boot->bpbBytesPerSec; - if (lseek(f, off, SEEK_SET) != off) { + if (lseek(fd, off, SEEK_SET) != off) { perr("Unable to lseek to %" PRId64, off); return FSFATAL; } - if (read(f, delbuf, clsz) != clsz) { + if (read(fd, delbuf, clsz) != clsz) { perr("Unable to read directory"); return FSFATAL; } @@ -346,25 +330,26 @@ delete(int f, struct bootblock *boot, struct fatEntry *s = SLOT_DELETED; s += 32; } - if (lseek(f, off, SEEK_SET) != off) { + if (lseek(fd, off, SEEK_SET) != off) { perr("Unable to lseek to %" PRId64, off); return FSFATAL; } - if (write(f, delbuf, clsz) != clsz) { + if (write(fd, delbuf, clsz) != clsz) { perr("Unable to write directory"); return FSFATAL; } if (startcl == endcl) break; - startcl = fat[startcl].next; + startcl = fat_get_cl_next(fat, startcl); s = delbuf; } return FSOK; } static int -removede(int f, struct bootblock *boot, struct fatEntry *fat, u_char *start, - u_char *end, cl_t startcl, cl_t endcl, cl_t curcl, char *path, int type) +removede(struct fat_descriptor *fat, u_char *start, + u_char *end, cl_t startcl, cl_t endcl, cl_t curcl, + char *path, int type) { switch (type) { case 0: @@ -380,14 +365,14 @@ removede(int f, struct bootblock *boot, struct fatEntr } if (ask(0, "Remove")) { if (startcl != curcl) { - if (delete(f, boot, fat, + if (delete(fat, startcl, start - buffer, endcl, end - buffer, endcl == curcl) == FSFATAL) return FSFATAL; start = buffer; } - /* startcl is < CLUST_FIRST for !fat32 root */ + /* startcl is < CLUST_FIRST for !FAT32 root */ if ((endcl == curcl) || (startcl < CLUST_FIRST)) for (; start < end; start += 32) *start = SLOT_DELETED; @@ -400,23 +385,37 @@ removede(int f, struct bootblock *boot, struct fatEntr * Check an in-memory file entry */ static int -checksize(struct bootblock *boot, struct fatEntry *fat, u_char *p, - struct dosDirEntry *dir) +checksize(struct fat_descriptor *fat, u_char *p, struct dosDirEntry *dir) { + int ret = FSOK; + size_t physicalSize; + struct bootblock *boot; + + boot = fat_get_boot(fat); + /* * Check size on ordinary files */ - u_int32_t physicalSize; - - if (dir->head == CLUST_FREE) + if (dir->head == CLUST_FREE) { physicalSize = 0; - else { - if (dir->head < CLUST_FIRST || dir->head >= boot->NumClusters) + } else { + if (!fat_is_valid_cl(fat, dir->head)) return FSERROR; - physicalSize = fat[dir->head].length * boot->ClusterSize; + ret = checkchain(fat, dir->head, &physicalSize); + /* + * Upon return, physicalSize would hold the chain length + * that checkchain() was able to validate, but if the user + * refused the proposed repair, it would be unsafe to + * proceed with directory entry fix, so bail out in that + * case. + */ + if (ret == FSERROR) { + return (FSERROR); + } + physicalSize *= boot->ClusterSize; } if (physicalSize < dir->size) { - pwarn("size of %s is %u, should at most be %u\n", + pwarn("size of %s is %u, should at most be %zu\n", fullpath(dir), dir->size, physicalSize); if (ask(1, "Truncate")) { dir->size = physicalSize; @@ -436,40 +435,118 @@ checksize(struct bootblock *boot, struct fatEntry *fat for (cl = dir->head, len = sz = 0; (sz += boot->ClusterSize) < dir->size; len++) - cl = fat[cl].next; - clearchain(boot, fat, fat[cl].next); - fat[cl].next = CLUST_EOF; - fat[dir->head].length = len; - return FSFATMOD; + cl = fat_get_cl_next(fat, cl); + clearchain(fat, fat_get_cl_next(fat, cl)); + ret = fat_set_cl_next(fat, cl, CLUST_EOF); + return (FSFATMOD | ret); } else return FSERROR; } return FSOK; } +static const u_char dot_name[11] = ". "; +static const u_char dotdot_name[11] = ".. "; + /* + * Basic sanity check if the subdirectory have good '.' and '..' entries, + * and they are directory entries. Further sanity checks are performed + * when we traverse into it. + */ +static int +check_subdirectory(struct fat_descriptor *fat, struct dosDirEntry *dir) +{ + u_char *buf, *cp; + off_t off; + cl_t cl; + int retval = FSOK; + int fd; + struct bootblock *boot; + + boot = fat_get_boot(fat); + fd = fat_get_fd(fat); + + cl = dir->head; + if (dir->parent && !fat_is_valid_cl(fat, cl)) { + return FSERROR; + } + + if (!(boot->flags & FAT32) && !dir->parent) { + off = boot->bpbResSectors + boot->bpbFATs * + boot->FATsecs; + } else { + off = (cl - CLUST_FIRST) * boot->bpbSecPerClust + boot->FirstCluster; + } + + /* + * We only need to check the first two entries of the directory, + * which is found in the first sector of the directory entry, + * so read in only the first sector. + */ + buf = malloc(boot->bpbBytesPerSec); + if (buf == NULL) { + perr("No space for directory buffer (%u)", + boot->bpbBytesPerSec); + return FSFATAL; + } + + off *= boot->bpbBytesPerSec; + if (lseek(fd, off, SEEK_SET) != off || + read(fd, buf, boot->bpbBytesPerSec) != (ssize_t)boot->bpbBytesPerSec) { + perr("Unable to read directory"); + free(buf); + return FSFATAL; + } + + /* + * Both `.' and `..' must be present and be the first two entries + * and be ATTR_DIRECTORY of a valid subdirectory. + */ + cp = buf; + if (memcmp(cp, dot_name, sizeof(dot_name)) != 0 || + (cp[11] & ATTR_DIRECTORY) != ATTR_DIRECTORY) { + pwarn("%s: Incorrect `.' for %s.\n", __func__, dir->name); + retval |= FSERROR; + } + cp += 32; + if (memcmp(cp, dotdot_name, sizeof(dotdot_name)) != 0 || + (cp[11] & ATTR_DIRECTORY) != ATTR_DIRECTORY) { + pwarn("%s: Incorrect `..' for %s. \n", __func__, dir->name); + retval |= FSERROR; + } + + free(buf); + return retval; +} + +/* * Read a directory and * - resolve long name records * - enter file and directory records into the parent's list * - push directories onto the todo-stack */ static int -readDosDirSection(int f, struct bootblock *boot, struct fatEntry *fat, - struct dosDirEntry *dir) +readDosDirSection(struct fat_descriptor *fat, struct dosDirEntry *dir) { + struct bootblock *boot; struct dosDirEntry dirent, *d; u_char *p, *vallfn, *invlfn, *empty; off_t off; - int i, j, k, last; + int fd, i, j, k, iosize, entries; + bool is_legacyroot; cl_t cl, valcl = ~0, invcl = ~0, empcl = ~0; char *t; u_int lidx = 0; int shortSum; int mod = FSOK; + size_t dirclusters; #define THISMOD 0x8000 /* Only used within this routine */ + boot = fat_get_boot(fat); + fd = fat_get_fd(fat); + cl = dir->head; - if (dir->parent && (cl < CLUST_FIRST || cl >= boot->NumClusters)) { + if (dir->parent && (!fat_is_valid_cl(fat, cl))) { /* * Already handled somewhere else. */ @@ -477,27 +554,50 @@ readDosDirSection(int f, struct bootblock *boot, struc } shortSum = -1; vallfn = invlfn = empty = NULL; + + /* + * If we are checking the legacy root (for FAT12/FAT16), + * we will operate on the whole directory; otherwise, we + * will operate on one cluster at a time, and also take + * this opportunity to examine the chain. + * + * Derive how many entries we are going to encounter from + * the I/O size. + */ + is_legacyroot = (dir->parent == NULL && !(boot->flags & FAT32)); + if (is_legacyroot) { + iosize = boot->bpbRootDirEnts * 32; + entries = boot->bpbRootDirEnts; + } else { + iosize = boot->bpbSecPerClust * boot->bpbBytesPerSec; + entries = iosize / 32; + mod |= checkchain(fat, dir->head, &dirclusters); + } + do { - if (!(boot->flags & FAT32) && !dir->parent) { - last = boot->bpbRootDirEnts * 32; + if (is_legacyroot) { + /* + * Special case for FAT12/FAT16 root -- read + * in the whole root directory. + */ off = boot->bpbResSectors + boot->bpbFATs * boot->FATsecs; } else { - last = boot->bpbSecPerClust * boot->bpbBytesPerSec; - off = cl * boot->bpbSecPerClust + boot->ClusterOffset; + /* + * Otherwise, read in a cluster of the + * directory. + */ + off = (cl - CLUST_FIRST) * boot->bpbSecPerClust + boot->FirstCluster; } off *= boot->bpbBytesPerSec; - if (lseek(f, off, SEEK_SET) != off - || read(f, buffer, last) != last) { + if (lseek(fd, off, SEEK_SET) != off || + read(fd, buffer, iosize) != iosize) { perr("Unable to read directory"); return FSFATAL; } - last /= 32; - /* - * Check `.' and `..' entries here? XXX - */ - for (p = buffer, i = 0; i < last; i++, p += 32) { + + for (p = buffer, i = 0; i < entries; i++, p += 32) { if (dir->fsckflags & DIREMPWARN) { *p = SLOT_EMPTY; continue; @@ -520,11 +620,12 @@ readDosDirSection(int f, struct bootblock *boot, struc u_char *q; dir->fsckflags &= ~DIREMPTY; - if (delete(f, boot, fat, + if (delete(fat, empcl, empty - buffer, cl, p - buffer, 1) == FSFATAL) return FSFATAL; - q = empcl == cl ? empty : buffer; + q = ((empcl == cl) ? empty : buffer); + assert(q != NULL); for (; q < p; q += 32) *q = SLOT_DELETED; mod |= THISMOD|FSDIRMOD; @@ -565,6 +666,15 @@ readDosDirSection(int f, struct bootblock *boot, struc vallfn = NULL; } lidx = *p & LRNOMASK; + if (lidx == 0) { + pwarn("invalid long name\n"); + if (!invlfn) { + invlfn = vallfn; + invcl = valcl; + } + vallfn = NULL; + continue; + } t = longName + --lidx * 13; for (k = 1; k < 11 && t < longName + sizeof(longName); k += 2) { @@ -639,7 +749,7 @@ readDosDirSection(int f, struct bootblock *boot, struc if (dirent.flags & ATTR_VOLUME) { if (vallfn || invlfn) { - mod |= removede(f, boot, fat, + mod |= removede(fat, *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Thu Apr 30 11:11: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 0D6912B847C; Thu, 30 Apr 2020 11:11:29 +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 49CXkm6SLRz4Zn2; Thu, 30 Apr 2020 11:11:28 +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 D8F211DE85; Thu, 30 Apr 2020 11:11:28 +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 03UBBSu3018669; Thu, 30 Apr 2020 11:11:28 GMT (envelope-from rscheff@FreeBSD.org) Received: (from rscheff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03UBBS6i018668; Thu, 30 Apr 2020 11:11:28 GMT (envelope-from rscheff@FreeBSD.org) Message-Id: <202004301111.03UBBS6i018668@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rscheff set sender to rscheff@FreeBSD.org using -f From: Richard Scheffenegger Date: Thu, 30 Apr 2020 11:11:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360491 - head/sys/netinet/cc X-SVN-Group: head X-SVN-Commit-Author: rscheff X-SVN-Commit-Paths: head/sys/netinet/cc X-SVN-Commit-Revision: 360491 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, 30 Apr 2020 11:11:29 -0000 Author: rscheff Date: Thu Apr 30 11:11:28 2020 New Revision: 360491 URL: https://svnweb.freebsd.org/changeset/base/360491 Log: Introduce a lower bound of 2 MSS to TCP Cubic. Running TCP Cubic together with ECN could end up reducing cwnd down to 1 byte, if the receiver continously sets the ECE flag, resulting in very poor transmission speeds. In line with RFC6582 App. B, a lower bound of 2 MSS is introduced, as well as a typecast to prevent any potential integer overflows during intermediate calculation steps of the adjusted cwnd. Reported by: Cheng Cui Reviewed by: tuexen (mentor) Approved by: tuexen (mentor) MFC after: 2 weeks Sponsored by: NetApp, Inc. Differential Revision: https://reviews.freebsd.org/D23353 Modified: head/sys/netinet/cc/cc_cubic.c Modified: head/sys/netinet/cc/cc_cubic.c ============================================================================== --- head/sys/netinet/cc/cc_cubic.c Thu Apr 30 06:34:34 2020 (r360490) +++ head/sys/netinet/cc/cc_cubic.c Thu Apr 30 11:11:28 2020 (r360491) @@ -366,8 +366,9 @@ cubic_post_recovery(struct cc_var *ccv) CCV(ccv, t_maxseg); else /* Update cwnd based on beta and adjusted max_cwnd. */ - CCV(ccv, snd_cwnd) = max(1, ((CUBIC_BETA * - cubic_data->max_cwnd) >> CUBIC_SHIFT)); + CCV(ccv, snd_cwnd) = max(((uint64_t)cubic_data->max_cwnd * + CUBIC_BETA) >> CUBIC_SHIFT, + 2 * CCV(ccv, t_maxseg)); } cubic_data->t_last_cong = ticks; @@ -433,6 +434,7 @@ static void cubic_ssthresh_update(struct cc_var *ccv) { struct cubic *cubic_data; + uint32_t ssthresh; cubic_data = ccv->cc_data; @@ -441,10 +443,11 @@ cubic_ssthresh_update(struct cc_var *ccv) * subsequent congestion events, set it to cwnd * beta. */ if (cubic_data->num_cong_events == 0) - CCV(ccv, snd_ssthresh) = CCV(ccv, snd_cwnd) >> 1; + ssthresh = CCV(ccv, snd_cwnd) >> 1; else - CCV(ccv, snd_ssthresh) = ((u_long)CCV(ccv, snd_cwnd) * + ssthresh = ((uint64_t)CCV(ccv, snd_cwnd) * CUBIC_BETA) >> CUBIC_SHIFT; + CCV(ccv, snd_ssthresh) = max(ssthresh, 2 * CCV(ccv, t_maxseg)); } From owner-svn-src-all@freebsd.org Thu Apr 30 11:17: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 216BE2B88FA; Thu, 30 Apr 2020 11:17:30 +0000 (UTC) (envelope-from bcr@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 49CXsk00Wyz4b9X; Thu, 30 Apr 2020 11:17:30 +0000 (UTC) (envelope-from bcr@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 EAD3C1E00B; Thu, 30 Apr 2020 11:17:29 +0000 (UTC) (envelope-from bcr@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03UBHToS021346; Thu, 30 Apr 2020 11:17:29 GMT (envelope-from bcr@FreeBSD.org) Received: (from bcr@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03UBHTfD021343; Thu, 30 Apr 2020 11:17:29 GMT (envelope-from bcr@FreeBSD.org) Message-Id: <202004301117.03UBHTfD021343@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bcr set sender to bcr@FreeBSD.org using -f From: Benedict Reuschling Date: Thu, 30 Apr 2020 11:17:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360492 - head/share/man/man9 X-SVN-Group: head X-SVN-Commit-Author: bcr X-SVN-Commit-Paths: head/share/man/man9 X-SVN-Commit-Revision: 360492 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, 30 Apr 2020 11:17:30 -0000 Author: bcr (doc committer) Date: Thu Apr 30 11:17:29 2020 New Revision: 360492 URL: https://svnweb.freebsd.org/changeset/base/360492 Log: Add HISTORY sections to disk(9), driver(9), and epoch(9). In one instance, remove a trailing whitespace while here. Submitted by: gbergling_gmail.com Approved by: bcr Differential Revision: https://reviews.freebsd.org/D24243 Modified: head/share/man/man9/disk.9 head/share/man/man9/driver.9 head/share/man/man9/epoch.9 Modified: head/share/man/man9/disk.9 ============================================================================== --- head/share/man/man9/disk.9 Thu Apr 30 11:11:28 2020 (r360491) +++ head/share/man/man9/disk.9 Thu Apr 30 11:17:29 2020 (r360492) @@ -27,7 +27,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 3, 2017 +.Dd April 30, 2020 .Dt DISK 9 .Os .Sh NAME @@ -241,6 +241,11 @@ Typically used to store a pointer to the drivers .Vt softc structure for this disk device. .El +.Sh HISTORY +The +.Nm kernel disk storage API +first appeard in +.Fx 4.9 . .Sh SEE ALSO .Xr GEOM 4 , .Xr devfs 5 , Modified: head/share/man/man9/driver.9 ============================================================================== --- head/share/man/man9/driver.9 Thu Apr 30 11:11:28 2020 (r360491) +++ head/share/man/man9/driver.9 Thu Apr 30 11:17:29 2020 (r360492) @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 22, 2011 +.Dd April 30, 2020 .Dt DRIVER 9 .Os .Sh NAME @@ -102,6 +102,11 @@ macro will also create the devclass with the name of t can optionally call extra initialisation code in the driver by specifying an extra module event handler and argument as the last two arguments. +.Sh HISTORY +The +.Nm +framework first appeared in +.Fx 2.2.7 . .Sh SEE ALSO .Xr devclass 9 , .Xr device 9 , Modified: head/share/man/man9/epoch.9 ============================================================================== --- head/share/man/man9/epoch.9 Thu Apr 30 11:11:28 2020 (r360491) +++ head/share/man/man9/epoch.9 Thu Apr 30 11:17:29 2020 (r360492) @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 16, 2020 +.Dd April 30, 2020 .Dt EPOCH 9 .Os .Sh NAME @@ -281,6 +281,11 @@ The .Nm kernel programming interface is under development and is subject to change. .El +.Sh HISTORY +The +.Nm +framework first appeard in +.Fx 11.0 . .Sh SEE ALSO .Xr locking 9 , .Xr mtx_pool 9 , From owner-svn-src-all@freebsd.org Thu Apr 30 12:02: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 1177A2BA293; Thu, 30 Apr 2020 12:02:14 +0000 (UTC) (envelope-from bcr@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 49CYsK6b3Wz4dtm; Thu, 30 Apr 2020 12:02:13 +0000 (UTC) (envelope-from bcr@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 DD1481E923; Thu, 30 Apr 2020 12:02:13 +0000 (UTC) (envelope-from bcr@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03UC2DHJ051499; Thu, 30 Apr 2020 12:02:13 GMT (envelope-from bcr@FreeBSD.org) Received: (from bcr@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03UC2DTf051497; Thu, 30 Apr 2020 12:02:13 GMT (envelope-from bcr@FreeBSD.org) Message-Id: <202004301202.03UC2DTf051497@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bcr set sender to bcr@FreeBSD.org using -f From: Benedict Reuschling Date: Thu, 30 Apr 2020 12:02:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360493 - head/share/man/man5 X-SVN-Group: head X-SVN-Commit-Author: bcr X-SVN-Commit-Paths: head/share/man/man5 X-SVN-Commit-Revision: 360493 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, 30 Apr 2020 12:02:14 -0000 Author: bcr (doc committer) Date: Thu Apr 30 12:02:13 2020 New Revision: 360493 URL: https://svnweb.freebsd.org/changeset/base/360493 Log: Add a new manual page for unionfs(5), written by Gordon Bergling. Hook it up to the build by adding it to the Makefile. Submitted by: gbergling_gmail.com Approved by: bcr Differential Revision: https://reviews.freebsd.org/D24589 Added: head/share/man/man5/unionfs.5 (contents, props changed) Modified: head/share/man/man5/Makefile Modified: head/share/man/man5/Makefile ============================================================================== --- head/share/man/man5/Makefile Thu Apr 30 11:17:29 2020 (r360492) +++ head/share/man/man5/Makefile Thu Apr 30 12:02:13 2020 (r360493) @@ -69,7 +69,8 @@ MAN= acct.5 \ style.Makefile.5 \ style.mdoc.5 \ sysctl.conf.5 \ - tmpfs.5 + tmpfs.5 \ + unionfs.5 MLINKS= dir.5 dirent.5 MLINKS+=ext2fs.5 ext4fs.5 Added: head/share/man/man5/unionfs.5 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/share/man/man5/unionfs.5 Thu Apr 30 12:02:13 2020 (r360493) @@ -0,0 +1,87 @@ +.\" 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 27, 2020 +.Dt UNIONFS 5 +.Os +.Sh NAME +.Nm unionfs +.Nd "UNION 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 UNIONFS" +.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 +unionfs_load="YES" +.Ed +.Sh DESCRIPTION +The UNIONFS driver is an implementation of a stackable unification filesystem. +.Sh SEE ALSO +.Xr mount_unionfs 8 +.Sh STANDARDS +.Rs +.%T Union mounts in 4.4BSD-Lite +.%A J. S. Pendry +.%A M. K. McKusick +.%R Proceedings of the USENIX Technical Conference on UNIX and Advanced Computing Systems +.%D December 1995 +.Re +.Pp +.Rs +.%T Jails: Confining the omnipotent root +.%A P. H. Kamp +.%A R. N. M. Watson +.%R Proceedings of the Second International System Administration and Networking Conference (SANE2000) +.%D May 2000 +.Re +.Sh HISTORY +The +.Nm +device driver first appeared in +.Fx 5.0 . +.Sh AUTHORS +The +.Nm +device driver was written by Jan-Simon Pendry for +.Bx 4.4 +and +.An Masanori OZAWA Aq Mt ozawa@ongs.co.jp +reimplemented the handling of the locking for +.Fx 7.0 . +The manual page was written by +.An Gordon Bergling Aq Mt gbergling@gmail.com . +.Sh BUGS +Please see the +.Xr mount_unionfs 8 +manual page for a list of bugs regarding the +.Nm +filesystem. From owner-svn-src-all@freebsd.org Thu Apr 30 13:49: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 4F58C2BDD6C; Thu, 30 Apr 2020 13:49: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 49CcDZ50Fsz4njC; Thu, 30 Apr 2020 13: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 EC69E1FCCF; Thu, 30 Apr 2020 13:49:00 +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 03UDn0JA016133; Thu, 30 Apr 2020 13:49:00 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03UDmx9o016019; Thu, 30 Apr 2020 13:48:59 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004301348.03UDmx9o016019@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 30 Apr 2020 13:48:59 +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: r360494 - in stable/11/sys: conf modules/linux modules/linux64 modules/vmm X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable/11/sys: conf modules/linux modules/linux64 modules/vmm X-SVN-Commit-Revision: 360494 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, 30 Apr 2020 13:49:04 -0000 Author: kevans Date: Thu Apr 30 13:48:58 2020 New Revision: 360494 URL: https://svnweb.freebsd.org/changeset/base/360494 Log: MFC r360071-r360072: force -fcommon for parts of kernel/kmods that need Note that this isn't a 1:1 MFC, as a couple more instances needed to be patched to force -fcommon in the face of a compiler that defaulted to -fno-common. r360071: Allow kernel modules to build with a compiler that defaults to -fno-common This uses the same approach as r359691. r360072: More fixes to build the kernel with a compiler that defaults to -fno-common Using the same approach as the last commit for the files used by genassym.sh. Modified: stable/11/sys/conf/files.amd64 stable/11/sys/conf/files.i386 stable/11/sys/conf/files.pc98 stable/11/sys/conf/kern.post.mk stable/11/sys/conf/kmod.mk stable/11/sys/modules/linux/Makefile stable/11/sys/modules/linux64/Makefile stable/11/sys/modules/vmm/Makefile Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/conf/files.amd64 ============================================================================== --- stable/11/sys/conf/files.amd64 Thu Apr 30 12:02:13 2020 (r360493) +++ stable/11/sys/conf/files.amd64 Thu Apr 30 13:48:58 2020 (r360494) @@ -34,7 +34,7 @@ cloudabi64_vdso_blob.o optional compat_cloudabi64 \ # linux32_genassym.o optional compat_linux32 \ dependency "$S/amd64/linux32/linux32_genassym.c" \ - compile-with "${CC} ${CFLAGS:N-flto:N-fno-common} -c ${.IMPSRC}" \ + compile-with "${CC} ${CFLAGS:N-flto:N-fno-common} -fcommon -c ${.IMPSRC}" \ no-obj no-implicit-rule \ clean "linux32_genassym.o" # @@ -58,7 +58,7 @@ linux32_vdso.so optional compat_linux32 \ # ia32_genassym.o standard \ dependency "$S/compat/ia32/ia32_genassym.c" \ - compile-with "${CC} ${CFLAGS:N-flto:N-fno-common} -c ${.IMPSRC}" \ + compile-with "${CC} ${CFLAGS:N-flto:N-fno-common} -fcommon -c ${.IMPSRC}" \ no-obj no-implicit-rule \ clean "ia32_genassym.o" # Modified: stable/11/sys/conf/files.i386 ============================================================================== --- stable/11/sys/conf/files.i386 Thu Apr 30 12:02:13 2020 (r360493) +++ stable/11/sys/conf/files.i386 Thu Apr 30 13:48:58 2020 (r360494) @@ -21,7 +21,7 @@ cloudabi32_vdso_blob.o optional compat_cloudabi32 \ # linux_genassym.o optional compat_linux \ dependency "$S/i386/linux/linux_genassym.c" \ - compile-with "${CC} ${CFLAGS:N-flto:N-fno-common} -c ${.IMPSRC}" \ + compile-with "${CC} ${CFLAGS:N-flto:N-fno-common} -fcommon -c ${.IMPSRC}" \ no-obj no-implicit-rule \ clean "linux_genassym.o" # @@ -45,7 +45,7 @@ linux_vdso.so optional compat_linux \ # svr4_genassym.o optional compat_svr4 \ dependency "$S/i386/svr4/svr4_genassym.c" \ - compile-with "${CC} ${CFLAGS:N-flto:N-fno-common} -c ${.IMPSRC}" \ + compile-with "${CC} ${CFLAGS:N-flto:N-fno-common} -fcommon -c ${.IMPSRC}" \ no-obj no-implicit-rule \ clean "svr4_genassym.o" # Modified: stable/11/sys/conf/files.pc98 ============================================================================== --- stable/11/sys/conf/files.pc98 Thu Apr 30 12:02:13 2020 (r360493) +++ stable/11/sys/conf/files.pc98 Thu Apr 30 13:48:58 2020 (r360494) @@ -11,7 +11,7 @@ # linux_genassym.o optional compat_linux \ dependency "$S/i386/linux/linux_genassym.c" \ - compile-with "${CC} ${CFLAGS:N-fno-common} -c ${.IMPSRC}" \ + compile-with "${CC} ${CFLAGS:N-fno-common} -fcommon -c ${.IMPSRC}" \ no-obj no-implicit-rule \ clean "linux_genassym.o" # @@ -35,7 +35,7 @@ linux_vdso.so optional compat_linux \ # svr4_genassym.o optional compat_svr4 \ dependency "$S/i386/svr4/svr4_genassym.c" \ - compile-with "${CC} ${CFLAGS:N-fno-common} -c ${.IMPSRC}" \ + compile-with "${CC} ${CFLAGS:N-fno-common} -fcommon -c ${.IMPSRC}" \ no-obj no-implicit-rule \ clean "svr4_genassym.o" # Modified: stable/11/sys/conf/kern.post.mk ============================================================================== --- stable/11/sys/conf/kern.post.mk Thu Apr 30 12:02:13 2020 (r360493) +++ stable/11/sys/conf/kern.post.mk Thu Apr 30 13:48:58 2020 (r360494) @@ -196,7 +196,7 @@ assym.s: $S/kern/genassym.sh genassym.o NM='${NM}' NMFLAGS='${NMFLAGS}' sh $S/kern/genassym.sh genassym.o > ${.TARGET} genassym.o: $S/$M/$M/genassym.c - ${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 genassym.o vers.o: opt_global.h Modified: stable/11/sys/conf/kmod.mk ============================================================================== --- stable/11/sys/conf/kmod.mk Thu Apr 30 12:02:13 2020 (r360493) +++ stable/11/sys/conf/kmod.mk Thu Apr 30 13:48:58 2020 (r360494) @@ -468,7 +468,7 @@ assym.s: ${SYSDIR}/kern/genassym.sh sh ${SYSDIR}/kern/genassym.sh genassym.o > ${.TARGET} genassym.o: ${SYSDIR}/${MACHINE}/${MACHINE}/genassym.c genassym.o: ${SRCS:Mopt_*.h} - ${CC} -c ${CFLAGS:N-flto:N-fno-common} \ + ${CC} -c ${CFLAGS:N-flto:N-fno-common} -fcommon \ ${SYSDIR}/${MACHINE}/${MACHINE}/genassym.c .endif Modified: stable/11/sys/modules/linux/Makefile ============================================================================== --- stable/11/sys/modules/linux/Makefile Thu Apr 30 12:02:13 2020 (r360493) +++ stable/11/sys/modules/linux/Makefile Thu Apr 30 13:48:58 2020 (r360494) @@ -73,7 +73,7 @@ ${VDSO}.so: linux${SFX}_locore.o .endif linux${SFX}_genassym.o: - ${CC} -c ${CFLAGS:N-flto:N-fno-common} ${.IMPSRC} + ${CC} -c ${CFLAGS:N-flto:N-fno-common} -fcommon ${.IMPSRC} .if !defined(KERNBUILDDIR) .if defined(KTR) Modified: stable/11/sys/modules/linux64/Makefile ============================================================================== --- stable/11/sys/modules/linux64/Makefile Thu Apr 30 12:02:13 2020 (r360493) +++ stable/11/sys/modules/linux64/Makefile Thu Apr 30 13:48:58 2020 (r360494) @@ -45,7 +45,7 @@ linux_support.o: assym.s linux_assym.h ${.IMPSRC} -o ${.TARGET} linux_genassym.o: - ${CC} -c ${CFLAGS:N-flto:N-fno-common} ${.IMPSRC} + ${CC} -c ${CFLAGS:N-flto:N-fno-common} -fcommon ${.IMPSRC} .if !defined(KERNBUILDDIR) .if defined(DEBUG) Modified: stable/11/sys/modules/vmm/Makefile ============================================================================== --- stable/11/sys/modules/vmm/Makefile Thu Apr 30 12:02:13 2020 (r360493) +++ stable/11/sys/modules/vmm/Makefile Thu Apr 30 13:48:58 2020 (r360494) @@ -74,9 +74,9 @@ svm_support.o: ${.IMPSRC} -o ${.TARGET} vmx_genassym.o: - ${CC} -c ${CFLAGS:N-flto:N-fno-common} ${.IMPSRC} + ${CC} -c ${CFLAGS:N-flto:N-fno-common} -fcommon ${.IMPSRC} svm_genassym.o: - ${CC} -c ${CFLAGS:N-flto:N-fno-common} ${.IMPSRC} + ${CC} -c ${CFLAGS:N-flto:N-fno-common} -fcommon ${.IMPSRC} .include From owner-svn-src-all@freebsd.org Thu Apr 30 14:38: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 CA1E92BF24D; Thu, 30 Apr 2020 14:38:56 +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 49CdL8518Zz4sNM; Thu, 30 Apr 2020 14:38:56 +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 A74582062F; Thu, 30 Apr 2020 14:38:56 +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 03UEcuTk047231; Thu, 30 Apr 2020 14:38:56 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03UEcuqL047230; Thu, 30 Apr 2020 14:38:56 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004301438.03UEcuqL047230@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 30 Apr 2020 14:38:56 +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: r360495 - in stable: 11 12 X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11 12 X-SVN-Commit-Revision: 360495 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, 30 Apr 2020 14:38:56 -0000 Author: kevans Date: Thu Apr 30 14:38:55 2020 New Revision: 360495 URL: https://svnweb.freebsd.org/changeset/base/360495 Log: MFC r355423: UPDATING: Add [less] long-belated note about certs in base While the interaction between this and the ETCSYMLINK option of security/ca_root_nss isn't necessarily fatal, one should be aware and attempt to understand the ramifications of mixing the two. ports-secteam will be contacted to discuss the default option for branches where certs are being included in base. Modified: stable/12/UPDATING Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/UPDATING Directory Properties: stable/11/ (props changed) Modified: stable/12/UPDATING ============================================================================== --- stable/12/UPDATING Thu Apr 30 13:48:58 2020 (r360494) +++ stable/12/UPDATING Thu Apr 30 14:38:55 2020 (r360495) @@ -16,6 +16,16 @@ from older versions of FreeBSD, try WITHOUT_CLANG and the tip of head, and then rebuild without this option. The bootstrap process from older version of current across the gcc/clang cutover is a bit fragile. +20200430: + The root certificates of the Mozilla CA Certificate Store have been + imported into the base system and can be managed with the certctl(8) + utility. If you have installed the security/ca_root_nss port or package + with the ETCSYMLINK option (the default), be advised that there may be + differences between those included in the port and those included in + base due to differences in nss branch used as well as general update + frequency. Note also that certctl(8) cannot manage certs in the + format used by the security/ca_root_nss port. + 20200107: Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have been upgraded to 9.0.1. Please see the 20141231 entry below for From owner-svn-src-all@freebsd.org Thu Apr 30 14:38: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 8B0BF2BF249; Thu, 30 Apr 2020 14:38:56 +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 49CdL835lnz4sNL; Thu, 30 Apr 2020 14:38:56 +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 609782062E; Thu, 30 Apr 2020 14:38:56 +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 03UEcuQ8047225; Thu, 30 Apr 2020 14:38:56 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03UEcuDl047224; Thu, 30 Apr 2020 14:38:56 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004301438.03UEcuDl047224@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 30 Apr 2020 14:38:56 +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: r360495 - in stable: 11 12 X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11 12 X-SVN-Commit-Revision: 360495 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, 30 Apr 2020 14:38:56 -0000 Author: kevans Date: Thu Apr 30 14:38:55 2020 New Revision: 360495 URL: https://svnweb.freebsd.org/changeset/base/360495 Log: MFC r355423: UPDATING: Add [less] long-belated note about certs in base While the interaction between this and the ETCSYMLINK option of security/ca_root_nss isn't necessarily fatal, one should be aware and attempt to understand the ramifications of mixing the two. ports-secteam will be contacted to discuss the default option for branches where certs are being included in base. Modified: stable/11/UPDATING Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/UPDATING Directory Properties: stable/12/ (props changed) Modified: stable/11/UPDATING ============================================================================== --- stable/11/UPDATING Thu Apr 30 13:48:58 2020 (r360494) +++ stable/11/UPDATING Thu Apr 30 14:38:55 2020 (r360495) @@ -16,6 +16,16 @@ from older versions of FreeBSD, try WITHOUT_CLANG and the tip of head, and then rebuild without this option. The bootstrap process from older version of current across the gcc/clang cutover is a bit fragile. +20200430: + The root certificates of the Mozilla CA Certificate Store have been + imported into the base system and can be managed with the certctl(8) + utility. If you have installed the security/ca_root_nss port or package + with the ETCSYMLINK option (the default), be advised that there may be + differences between those included in the port and those included in + base due to differences in nss branch used as well as general update + frequency. Note also that certctl(8) cannot manage certs in the + format used by the security/ca_root_nss port. + 20190913: ntpd no longer by default locks its pages in memory, allowing them to be paged out by the kernel. Use rlimit memlock to restore From owner-svn-src-all@freebsd.org Thu Apr 30 14:51: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 4BDD52BFAE8; Thu, 30 Apr 2020 14:51:33 +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 49Cdcj1Mgjz4tVm; Thu, 30 Apr 2020 14:51:33 +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 2A18120882; Thu, 30 Apr 2020 14:51:33 +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 03UEpXxd054424; Thu, 30 Apr 2020 14:51:33 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03UEpV75054418; Thu, 30 Apr 2020 14:51:31 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004301451.03UEpV75054418@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 30 Apr 2020 14:51:31 +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: r360496 - in stable/12/sys: conf modules/linux modules/linux64 modules/vmm X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable/12/sys: conf modules/linux modules/linux64 modules/vmm X-SVN-Commit-Revision: 360496 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, 30 Apr 2020 14:51:33 -0000 Author: kevans Date: Thu Apr 30 14:51:31 2020 New Revision: 360496 URL: https://svnweb.freebsd.org/changeset/base/360496 Log: MFC r360071-r360072: force -fcommon in kernel/modules where needed This contains some extra bits over the original commits, as things are slightly different in earlier branches. r360071: Allow kernel modules to build with a compiler that defaults to -fno-common This uses the same approach as r359691. r360072: More fixes to build the kernel with a compiler that defaults to -fno-common Using the same approach as the last commit for the files used by genassym.sh. Modified: stable/12/sys/conf/files.amd64 stable/12/sys/conf/files.i386 stable/12/sys/conf/kern.post.mk stable/12/sys/conf/kmod.mk stable/12/sys/modules/linux/Makefile stable/12/sys/modules/linux64/Makefile stable/12/sys/modules/vmm/Makefile Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/conf/files.amd64 ============================================================================== --- stable/12/sys/conf/files.amd64 Thu Apr 30 14:38:55 2020 (r360495) +++ stable/12/sys/conf/files.amd64 Thu Apr 30 14:51:31 2020 (r360496) @@ -34,7 +34,7 @@ cloudabi64_vdso_blob.o optional compat_cloudabi64 \ # linux32_genassym.o optional compat_linux32 \ dependency "$S/amd64/linux32/linux32_genassym.c offset.inc" \ - compile-with "${CC} ${CFLAGS:N-flto:N-fno-common} -c ${.IMPSRC}" \ + compile-with "${CC} ${CFLAGS:N-flto:N-fno-common} -fcommon -c ${.IMPSRC}" \ no-obj no-implicit-rule \ clean "linux32_genassym.o" # @@ -58,7 +58,7 @@ linux32_vdso.so optional compat_linux32 \ # ia32_genassym.o standard \ dependency "$S/compat/ia32/ia32_genassym.c offset.inc" \ - compile-with "${CC} ${CFLAGS:N-flto:N-fno-common} -c ${.IMPSRC}" \ + compile-with "${CC} ${CFLAGS:N-flto:N-fno-common} -fcommon -c ${.IMPSRC}" \ no-obj no-implicit-rule \ clean "ia32_genassym.o" # Modified: stable/12/sys/conf/files.i386 ============================================================================== --- stable/12/sys/conf/files.i386 Thu Apr 30 14:38:55 2020 (r360495) +++ stable/12/sys/conf/files.i386 Thu Apr 30 14:51:31 2020 (r360496) @@ -21,7 +21,7 @@ cloudabi32_vdso_blob.o optional compat_cloudabi32 \ # linux_genassym.o optional compat_linux \ dependency "$S/i386/linux/linux_genassym.c offset.inc" \ - compile-with "${CC} ${CFLAGS:N-flto:N-fno-common} -c ${.IMPSRC}" \ + compile-with "${CC} ${CFLAGS:N-flto:N-fno-common} -fcommon -c ${.IMPSRC}" \ no-obj no-implicit-rule \ clean "linux_genassym.o" # Modified: stable/12/sys/conf/kern.post.mk ============================================================================== --- stable/12/sys/conf/kern.post.mk Thu Apr 30 14:38:55 2020 (r360495) +++ stable/12/sys/conf/kern.post.mk Thu Apr 30 14:51:31 2020 (r360496) @@ -202,20 +202,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 Modified: stable/12/sys/conf/kmod.mk ============================================================================== --- stable/12/sys/conf/kmod.mk Thu Apr 30 14:38:55 2020 (r360495) +++ stable/12/sys/conf/kmod.mk Thu Apr 30 14:51:31 2020 (r360496) @@ -515,13 +515,13 @@ assym.inc: ${SYSDIR}/kern/genassym.sh sh ${SYSDIR}/kern/genassym.sh genassym.o > ${.TARGET} genassym.o: ${SYSDIR}/${MACHINE}/${MACHINE}/genassym.c offset.inc genassym.o: ${SRCS:Mopt_*.h} - ${CC} -c ${CFLAGS:N-flto:N-fno-common} \ + ${CC} -c ${CFLAGS:N-flto:N-fno-common} -fcommon \ ${SYSDIR}/${MACHINE}/${MACHINE}/genassym.c offset.inc: ${SYSDIR}/kern/genoffset.sh genoffset.o sh ${SYSDIR}/kern/genoffset.sh genoffset.o > ${.TARGET} genoffset.o: ${SYSDIR}/kern/genoffset.c genoffset.o: ${SRCS:Mopt_*.h} - ${CC} -c ${CFLAGS:N-flto:N-fno-common} \ + ${CC} -c ${CFLAGS:N-flto:N-fno-common} -fcommon \ ${SYSDIR}/kern/genoffset.c CLEANDEPENDFILES+= ${_ILINKS} Modified: stable/12/sys/modules/linux/Makefile ============================================================================== --- stable/12/sys/modules/linux/Makefile Thu Apr 30 14:38:55 2020 (r360495) +++ stable/12/sys/modules/linux/Makefile Thu Apr 30 14:51:31 2020 (r360496) @@ -78,7 +78,7 @@ ${VDSO}.so: linux${SFX}_locore.o .endif linux${SFX}_genassym.o: offset.inc - ${CC} -c ${CFLAGS:N-flto:N-fno-common} ${.IMPSRC} + ${CC} -c ${CFLAGS:N-flto:N-fno-common} -fcommon ${.IMPSRC} .if !defined(KERNBUILDDIR) .if defined(KTR) Modified: stable/12/sys/modules/linux64/Makefile ============================================================================== --- stable/12/sys/modules/linux64/Makefile Thu Apr 30 14:38:55 2020 (r360495) +++ stable/12/sys/modules/linux64/Makefile Thu Apr 30 14:51:31 2020 (r360496) @@ -53,7 +53,7 @@ linux_support.o: assym.inc linux_assym.h ${.IMPSRC} -o ${.TARGET} linux_genassym.o: offset.inc - ${CC} -c ${CFLAGS:N-flto:N-fno-common} ${.IMPSRC} + ${CC} -c ${CFLAGS:N-flto:N-fno-common} -fcommon ${.IMPSRC} .if !defined(KERNBUILDDIR) .if defined(DEBUG) Modified: stable/12/sys/modules/vmm/Makefile ============================================================================== --- stable/12/sys/modules/vmm/Makefile Thu Apr 30 14:38:55 2020 (r360495) +++ stable/12/sys/modules/vmm/Makefile Thu Apr 30 14:51:31 2020 (r360496) @@ -75,9 +75,9 @@ svm_support.o: ${.IMPSRC} -o ${.TARGET} vmx_genassym.o: offset.inc - ${CC} -c ${CFLAGS:N-flto:N-fno-common} ${.IMPSRC} + ${CC} -c ${CFLAGS:N-flto:N-fno-common} -fcommon ${.IMPSRC} svm_genassym.o: offset.inc - ${CC} -c ${CFLAGS:N-flto:N-fno-common} ${.IMPSRC} + ${CC} -c ${CFLAGS:N-flto:N-fno-common} -fcommon ${.IMPSRC} .include From owner-svn-src-all@freebsd.org Thu Apr 30 15:24: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 BB7962C097A; Thu, 30 Apr 2020 15:24:05 +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 49CfLF4dcrz3CSD; Thu, 30 Apr 2020 15:24:05 +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 9A49220FC1; Thu, 30 Apr 2020 15:24:05 +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 03UFO5RJ078317; Thu, 30 Apr 2020 15:24:05 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03UFO5r2078316; Thu, 30 Apr 2020 15:24:05 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202004301524.03UFO5r2078316@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Thu, 30 Apr 2020 15:24: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: r360497 - stable/12/share/mk X-SVN-Group: stable-12 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: stable/12/share/mk X-SVN-Commit-Revision: 360497 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, 30 Apr 2020 15:24:05 -0000 Author: jhb Date: Thu Apr 30 15:24:05 2020 New Revision: 360497 URL: https://svnweb.freebsd.org/changeset/base/360497 Log: MFC 354660: Enable the RISC-V LLVM backend by default. Modified: stable/12/share/mk/src.opts.mk Directory Properties: stable/12/ (props changed) Modified: stable/12/share/mk/src.opts.mk ============================================================================== --- stable/12/share/mk/src.opts.mk Thu Apr 30 14:51:31 2020 (r360496) +++ stable/12/share/mk/src.opts.mk Thu Apr 30 15:24:05 2020 (r360497) @@ -267,6 +267,7 @@ __LLVM_TARGETS= \ arm \ mips \ powerpc \ + riscv \ sparc \ x86 __LLVM_TARGET_FILT= C/(amd64|i386)/x86/:S/sparc64/sparc/:S/arm64/aarch64/ @@ -288,7 +289,6 @@ __DEFAULT_DEPENDENT_OPTIONS+= LLVM_TARGET_${__llt:${__ .endfor __DEFAULT_NO_OPTIONS+=LLVM_TARGET_BPF -__DEFAULT_NO_OPTIONS+=LLVM_TARGET_RISCV .include # If the compiler is not C++11 capable, disable Clang and use GCC instead. @@ -300,7 +300,7 @@ __DEFAULT_NO_OPTIONS+=LLVM_TARGET_RISCV # Clang is enabled, and will be installed as the default /usr/bin/cc. __DEFAULT_YES_OPTIONS+=CLANG CLANG_BOOTSTRAP CLANG_IS_CC LLD __DEFAULT_NO_OPTIONS+=GCC GCC_BOOTSTRAP GNUCXX GPL_DTC -.elif ${COMPILER_FEATURES:Mc++11} && ${__T:Mriscv*} == "" && ${__T} != "sparc64" +.elif ${COMPILER_FEATURES:Mc++11} && ${__T} != "sparc64" # If an external compiler that supports C++11 is used as ${CC} and Clang # supports the target, then Clang is enabled but GCC is installed as the # default /usr/bin/cc. From owner-svn-src-all@freebsd.org Thu Apr 30 15:39: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 E6A272C0E47; Thu, 30 Apr 2020 15:39:04 +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 49CfgX5nrNz3DNl; Thu, 30 Apr 2020 15:39:04 +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 C2241211C7; Thu, 30 Apr 2020 15:39:04 +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 03UFd4Wt085413; Thu, 30 Apr 2020 15:39:04 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03UFd4EK085412; Thu, 30 Apr 2020 15:39:04 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202004301539.03UFd4EK085412@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Thu, 30 Apr 2020 15:39:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360498 - head/sys/net X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/net X-SVN-Commit-Revision: 360498 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, 30 Apr 2020 15:39:05 -0000 Author: markj Date: Thu Apr 30 15:39:04 2020 New Revision: 360498 URL: https://svnweb.freebsd.org/changeset/base/360498 Log: Increase the iflib txq callout mutex name length to 32 bytes. With a length of 16, the name (":TX():callout") typically gets truncated. PR: 245712 Reported by: ghuckriede@blackberry.com MFC after: 1 week Modified: head/sys/net/iflib.c Modified: head/sys/net/iflib.c ============================================================================== --- head/sys/net/iflib.c Thu Apr 30 15:24:05 2020 (r360497) +++ head/sys/net/iflib.c Thu Apr 30 15:39:04 2020 (r360498) @@ -358,7 +358,7 @@ struct iflib_txq { bus_dma_tag_t ift_buf_tag; bus_dma_tag_t ift_tso_buf_tag; iflib_dma_info_t ift_ifdi; -#define MTX_NAME_LEN 16 +#define MTX_NAME_LEN 32 char ift_mtx_name[MTX_NAME_LEN]; bus_dma_segment_t ift_segs[IFLIB_MAX_TX_SEGS] __aligned(CACHE_LINE_SIZE); #ifdef IFLIB_DIAGNOSTICS From owner-svn-src-all@freebsd.org Thu Apr 30 15:45: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 419462C131D; Thu, 30 Apr 2020 15:45:02 +0000 (UTC) (envelope-from avg@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 49CfpQ14D7z3F4b; Thu, 30 Apr 2020 15:45:02 +0000 (UTC) (envelope-from avg@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 1AFF1213A0; Thu, 30 Apr 2020 15:45:02 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03UFj1iw091140; Thu, 30 Apr 2020 15:45:01 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03UFj1iX091139; Thu, 30 Apr 2020 15:45:01 GMT (envelope-from avg@FreeBSD.org) Message-Id: <202004301545.03UFj1iX091139@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Thu, 30 Apr 2020 15:45:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360499 - head/sys/dev/ichiic X-SVN-Group: head X-SVN-Commit-Author: avg X-SVN-Commit-Paths: head/sys/dev/ichiic X-SVN-Commit-Revision: 360499 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, 30 Apr 2020 15:45:02 -0000 Author: avg Date: Thu Apr 30 15:45:01 2020 New Revision: 360499 URL: https://svnweb.freebsd.org/changeset/base/360499 Log: ig4iic_acpi_probe: remove set but unused variable MFC after: 1 week Modified: head/sys/dev/ichiic/ig4_acpi.c Modified: head/sys/dev/ichiic/ig4_acpi.c ============================================================================== --- head/sys/dev/ichiic/ig4_acpi.c Thu Apr 30 15:39:04 2020 (r360498) +++ head/sys/dev/ichiic/ig4_acpi.c Thu Apr 30 15:45:01 2020 (r360499) @@ -68,10 +68,8 @@ static char *ig4iic_ids[] = { static int ig4iic_acpi_probe(device_t dev) { - ig4iic_softc_t *sc; int rv; - sc = device_get_softc(dev); if (acpi_disabled("ig4iic")) return (ENXIO); rv = ACPI_ID_PROBE(device_get_parent(dev), dev, ig4iic_ids, NULL); From owner-svn-src-all@freebsd.org Thu Apr 30 17:51: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 462362C40F5; Thu, 30 Apr 2020 17:51:27 +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 49CjcH16lVz3MLC; Thu, 30 Apr 2020 17:51:27 +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 21A3522AE1; Thu, 30 Apr 2020 17:51:27 +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 03UHpRJT065856; Thu, 30 Apr 2020 17:51:27 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03UHpQDb065855; Thu, 30 Apr 2020 17:51:26 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202004301751.03UHpQDb065855@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Thu, 30 Apr 2020 17:51:26 +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: r360500 - stable/11/sys/kern X-SVN-Group: stable-11 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/11/sys/kern X-SVN-Commit-Revision: 360500 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, 30 Apr 2020 17:51:27 -0000 Author: mav Date: Thu Apr 30 17:51:26 2020 New Revision: 360500 URL: https://svnweb.freebsd.org/changeset/base/360500 Log: MFC r333839 (by mmacy): getnextevent: put variable only used by KTR under ifdef KTR Modified: stable/11/sys/kern/kern_clocksource.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/kern/kern_clocksource.c ============================================================================== --- stable/11/sys/kern/kern_clocksource.c Thu Apr 30 15:45:01 2020 (r360499) +++ stable/11/sys/kern/kern_clocksource.c Thu Apr 30 17:51:26 2020 (r360500) @@ -270,18 +270,22 @@ getnextevent(void) #ifdef SMP int cpu; #endif +#ifdef KTR int c; + c = -1; +#endif state = DPCPU_PTR(timerstate); event = state->nextevent; - c = -1; #ifdef SMP if ((timer->et_flags & ET_FLAGS_PERCPU) == 0) { CPU_FOREACH(cpu) { state = DPCPU_ID_PTR(cpu, timerstate); if (event > state->nextevent) { event = state->nextevent; +#ifdef KTR c = cpu; +#endif } } } From owner-svn-src-all@freebsd.org Thu Apr 30 18:11: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 5A4442C48B4; Thu, 30 Apr 2020 18:11:57 +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 49Ck3x1p0pz3NLx; Thu, 30 Apr 2020 18:11:57 +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 3905D22FFF; Thu, 30 Apr 2020 18:11:57 +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 03UIBvqE082196; Thu, 30 Apr 2020 18:11:57 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03UIBv1r082195; Thu, 30 Apr 2020 18:11:57 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202004301811.03UIBv1r082195@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Thu, 30 Apr 2020 18:11:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360501 - head/share/mk X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/share/mk X-SVN-Commit-Revision: 360501 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, 30 Apr 2020 18:11:57 -0000 Author: emaste Date: Thu Apr 30 18:11:56 2020 New Revision: 360501 URL: https://svnweb.freebsd.org/changeset/base/360501 Log: src.opts.mk: add WITHOUT_OPENSSL dependencies A number of components require OpenSSL and fail to build if it is not enabled. As a first phase force these off under WITHOUT_OPENSSL. A second phase should make these more fine-grained, allowing the component to build but without OpenSSL. PR: 245931 Sponsored by: The FreeBSD Foundation Modified: head/share/mk/src.opts.mk Modified: head/share/mk/src.opts.mk ============================================================================== --- head/share/mk/src.opts.mk Thu Apr 30 17:51:26 2020 (r360500) +++ head/share/mk/src.opts.mk Thu Apr 30 18:11:56 2020 (r360501) @@ -435,6 +435,10 @@ MK_OPENSSH:= no MK_KERBEROS:= no MK_KERBEROS_SUPPORT:= no MK_LDNS:= no +MK_PKGBOOTSTRAP:= no +MK_SVN:= no +MK_SVNLITE:= no +MK_WIRELESS:= no .endif .if ${MK_LDNS} == "no" From owner-svn-src-all@freebsd.org Thu Apr 30 19: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 2266B2C70D0; Thu, 30 Apr 2020 19:48:56 +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 49CmCr06ljz3ymG; Thu, 30 Apr 2020 19:48:56 +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 F3626241AF; Thu, 30 Apr 2020 19:48:55 +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 03UJmtKt038299; Thu, 30 Apr 2020 19:48:55 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03UJmt43038298; Thu, 30 Apr 2020 19:48:55 GMT (envelope-from imp@FreeBSD.org) Message-Id: <202004301948.03UJmt43038298@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Thu, 30 Apr 2020 19:48:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360502 - head/sys/cam X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/cam X-SVN-Commit-Revision: 360502 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, 30 Apr 2020 19:48:56 -0000 Author: imp Date: Thu Apr 30 19:48:55 2020 New Revision: 360502 URL: https://svnweb.freebsd.org/changeset/base/360502 Log: Remove stray blank line. This was accidentally added in r360483. Modified: head/sys/cam/cam_ccb.h Modified: head/sys/cam/cam_ccb.h ============================================================================== --- head/sys/cam/cam_ccb.h Thu Apr 30 18:11:56 2020 (r360501) +++ head/sys/cam/cam_ccb.h Thu Apr 30 19:48:55 2020 (r360502) @@ -1034,7 +1034,6 @@ struct ccb_trans_settings_nvme uint8_t speed; /* PCIe generation for each lane */ uint8_t max_lanes; /* Number of PCIe lanes */ uint8_t max_speed; /* PCIe generation for each lane */ - }; #include From owner-svn-src-all@freebsd.org Thu Apr 30 20:58: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 ABA3C2C8A28; Thu, 30 Apr 2020 20:58:34 +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 49CnmB43Tbz43MW; Thu, 30 Apr 2020 20:58:34 +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 8631F24F55; Thu, 30 Apr 2020 20:58:34 +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 03UKwY1a080989; Thu, 30 Apr 2020 20:58:34 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03UKwYja080988; Thu, 30 Apr 2020 20:58:34 GMT (envelope-from imp@FreeBSD.org) Message-Id: <202004302058.03UKwYja080988@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Thu, 30 Apr 2020 20:58:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360503 - head/sys/dev/nvme X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/dev/nvme X-SVN-Commit-Revision: 360503 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, 30 Apr 2020 20:58:34 -0000 Author: imp Date: Thu Apr 30 20:58:33 2020 New Revision: 360503 URL: https://svnweb.freebsd.org/changeset/base/360503 Log: Move / reword a comment. Explain what we're doing with mapping CAM's notion of a LUN to NVMe's notion of a namespace. Modified: head/sys/dev/nvme/nvme_sim.c Modified: head/sys/dev/nvme/nvme_sim.c ============================================================================== --- head/sys/dev/nvme/nvme_sim.c Thu Apr 30 19:48:55 2020 (r360502) +++ head/sys/dev/nvme/nvme_sim.c Thu Apr 30 20:58:33 2020 (r360503) @@ -172,12 +172,6 @@ nvme_sim_action(struct cam_sim *sim, union ccb *ccb) struct ccb_pathinq *cpi = &ccb->cpi; device_t dev = ctrlr->dev; - /* - * NVMe may have multiple LUNs on the same path. Current generation - * of NVMe devives support only a single name space. Multiple name - * space drives are coming, but it's unclear how we should report - * them up the stack. - */ cpi->version_num = 1; cpi->hba_inquiry = 0; cpi->target_sprt = 0; @@ -332,13 +326,17 @@ nvme_sim_new_ns(struct nvme_namespace *ns, void *sc_ar return (NULL); } + /* + * We map the NVMe namespace idea onto the CAM unit LUN. For + * each new namespace, we create a new CAM path for it. We then + * rescan the path to get it to enumerate. + */ if (xpt_create_path(&ccb->ccb_h.path, /*periph*/NULL, cam_sim_path(sc->s_sim), 0, ns->id) != CAM_REQ_CMP) { printf("unable to create path for rescan\n"); xpt_free_ccb(ccb); return (NULL); } - xpt_rescan(ccb); return (ns); From owner-svn-src-all@freebsd.org Thu Apr 30 20:58: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 801C32C8A49; Thu, 30 Apr 2020 20:58:40 +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 49CnmH6rJGz43Q6; Thu, 30 Apr 2020 20:58:39 +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 1940324F56; Thu, 30 Apr 2020 20:58:39 +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 03UKwc5A081043; Thu, 30 Apr 2020 20:58:38 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03UKwcST081042; Thu, 30 Apr 2020 20:58:38 GMT (envelope-from imp@FreeBSD.org) Message-Id: <202004302058.03UKwcST081042@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Thu, 30 Apr 2020 20:58:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360504 - head/sys/dev/nvme X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/dev/nvme X-SVN-Commit-Revision: 360504 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, 30 Apr 2020 20:58:40 -0000 Author: imp Date: Thu Apr 30 20:58:38 2020 New Revision: 360504 URL: https://svnweb.freebsd.org/changeset/base/360504 Log: Style(9) nit: put function name at start of line. Modified: head/sys/dev/nvme/nvme_ns.c Modified: head/sys/dev/nvme/nvme_ns.c ============================================================================== --- head/sys/dev/nvme/nvme_ns.c Thu Apr 30 20:58:33 2020 (r360503) +++ head/sys/dev/nvme/nvme_ns.c Thu Apr 30 20:58:38 2020 (r360504) @@ -617,7 +617,8 @@ nvme_ns_construct(struct nvme_namespace *ns, uint32_t return (0); } -void nvme_ns_destruct(struct nvme_namespace *ns) +void +nvme_ns_destruct(struct nvme_namespace *ns) { if (ns->cdev != NULL) From owner-svn-src-all@freebsd.org Thu Apr 30 20:58: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 95B372C8AD4; Thu, 30 Apr 2020 20:58: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 49Cnmg3G9Fz43bj; Thu, 30 Apr 2020 20:58: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 6B0CC24F57; Thu, 30 Apr 2020 20:58: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 03UKwxcM081107; Thu, 30 Apr 2020 20:58:59 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03UKwx3s081106; Thu, 30 Apr 2020 20:58:59 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004302058.03UKwx3s081106@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 30 Apr 2020 20:58:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360505 - head/stand/lua X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/stand/lua X-SVN-Commit-Revision: 360505 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, 30 Apr 2020 20:58:59 -0000 Author: kevans Date: Thu Apr 30 20:58:58 2020 New Revision: 360505 URL: https://svnweb.freebsd.org/changeset/base/360505 Log: lualoader: config: add a table for restricted environment vars This new table should be used for transient values that don't need to end up in the loader environment. Generally, these will be things that are internal details that really aren't needed or interesting outside of the config module (e.g. if we changed how ${module}_* directives work, they might use this instead). To start, populate it with loader_conf_files. Any specific value of loader_conf_files isn't all that interesting; if we're going to export it, we should really instead export a loader_conf_files that indicates all of the configuration files we processed. This will be used to reduce bookkeeping overhead in a future commit that cleans up readConfFiles. Modified: head/stand/lua/config.lua Modified: head/stand/lua/config.lua ============================================================================== --- head/stand/lua/config.lua Thu Apr 30 20:58:38 2020 (r360504) +++ head/stand/lua/config.lua Thu Apr 30 20:58:58 2020 (r360505) @@ -61,6 +61,17 @@ local QVALREPL = QVALEXPR:gsub('%%', '%%%%') local WORDEXPR = "([%w]+)" local WORDREPL = WORDEXPR:gsub('%%', '%%%%') +-- Entries that should never make it into the environment; each one should have +-- a documented reason for its existence, and these should all be implementation +-- details of the config module. +local loader_env_restricted_table = { + -- loader_conf_files should be considered write-only, and consumers + -- should not rely on any particular value; it's a loader implementation + -- detail. Moreover, it's not a particularly useful variable to have in + -- the kenv. Save the overhead, let it get fetched other ways. + loader_conf_files = true, +} + local function restoreEnv() -- Examine changed environment variables for k, v in pairs(env_changed) do @@ -88,14 +99,31 @@ local function restoreEnv() env_restore = {} end +-- XXX This getEnv/setEnv should likely be exported at some point. We can save +-- the call back into loader.getenv for any variable that's been set or +-- overridden by any loader.conf using this implementation with little overhead +-- since we're already tracking the values. +local function getEnv(key) + if loader_env_restricted_table[key] ~= nil or + env_changed[key] ~= nil then + return env_changed[key] + end + + return loader.getenv(key) +end + local function setEnv(key, value) + env_changed[key] = value + + if loader_env_restricted_table[key] ~= nil then + return 0 + end + -- Track the original value for this if we haven't already if env_restore[key] == nil then env_restore[key] = {value = loader.getenv(key)} end - env_changed[key] = value - return loader.setenv(key, value) end @@ -465,7 +493,7 @@ function config.readConfFiles(files, loaded_files) -- The caller may not have passed in loader_conf_files; we could -- have instead gotten some other string of files. We don't -- want to trigger any redundant re-read/loads based on this. - local prefiles = loader.getenv("loader_conf_files") + local prefiles = getEnv("loader_conf_files") for name in files:gmatch("([%w%p]+)%s*") do if loaded_files[name] ~= nil then goto continue @@ -480,7 +508,7 @@ function config.readConfFiles(files, loaded_files) end loaded_files[name] = true - local newfiles = loader.getenv("loader_conf_files") + local newfiles = getEnv("loader_conf_files") if prefiles ~= newfiles then -- Recurse; process the new files immediately. -- If we come back and it turns out we've @@ -607,7 +635,7 @@ function config.load(file, reloading) end local loaded_files = {file = true} - config.readConfFiles(loader.getenv("loader_conf_files"), loaded_files) + config.readConfFiles(getEnv("loader_conf_files"), loaded_files) checkNextboot() From owner-svn-src-all@freebsd.org Thu Apr 30 21:04: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 C3DA82C8D0C; Thu, 30 Apr 2020 21:04:40 +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 49CnvD4rmsz444g; Thu, 30 Apr 2020 21:04:40 +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 84F4F25129; Thu, 30 Apr 2020 21:04:40 +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 03UL4e15087361; Thu, 30 Apr 2020 21:04:40 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03UL4dVW087358; Thu, 30 Apr 2020 21:04:39 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202004302104.03UL4dVW087358@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 30 Apr 2020 21:04:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360506 - head/stand/lua X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/stand/lua X-SVN-Commit-Revision: 360506 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, 30 Apr 2020 21:04:40 -0000 Author: kevans Date: Thu Apr 30 21:04:39 2020 New Revision: 360506 URL: https://svnweb.freebsd.org/changeset/base/360506 Log: lualoader: config: improve readConfFiles, rename to readConf The previous interface was pretty bad, and required the caller to get some implementation details correct that it really shouldn't need to (e.g. loader_conf_files handling) and pass in an empty table for it to use. The new and much improved interface, readConf, is much less of a hack; hiding these implementation details and just doing the right thing. config.lua will now use it to process /boot/defaults/loader.conf and the subsequent loader_conf_files from there, and read-conf will also use it. This improvement submitted by Olivier (cited below), loader_conf_files handling from the original patch was changed to just clobber it before processing and not bother restoring it after the fact following r360505 where it's now guaranteed to evade the loader environment. PR: 244640 Submitted by: Olivier Certner (olivier freebsd free fr> Modified: head/stand/lua/cli.lua head/stand/lua/config.lua head/stand/lua/config.lua.8 Modified: head/stand/lua/cli.lua ============================================================================== --- head/stand/lua/cli.lua Thu Apr 30 20:58:58 2020 (r360505) +++ head/stand/lua/cli.lua Thu Apr 30 21:04:39 2020 (r360506) @@ -127,10 +127,7 @@ end cli['read-conf'] = function(...) local _, argv = cli.arguments(...) - -- Don't trigger a reload of previously loaded loader_conf_files, in - -- case this config file doesn't set it. - loader.setenv("loader_conf_files", "") - config.readConfFiles(assert(core.popFrontTable(argv)), {}) + config.readConf(assert(core.popFrontTable(argv))) end cli['reload-conf'] = function(...) Modified: head/stand/lua/config.lua ============================================================================== --- head/stand/lua/config.lua Thu Apr 30 20:58:58 2020 (r360505) +++ head/stand/lua/config.lua Thu Apr 30 21:04:39 2020 (r360506) @@ -488,36 +488,36 @@ function config.parse(text) return status end -function config.readConfFiles(files, loaded_files) - if files ~= nil then - -- The caller may not have passed in loader_conf_files; we could - -- have instead gotten some other string of files. We don't - -- want to trigger any redundant re-read/loads based on this. - local prefiles = getEnv("loader_conf_files") - for name in files:gmatch("([%w%p]+)%s*") do - if loaded_files[name] ~= nil then - goto continue - end +function config.readConf(file, loaded_files) + if loaded_files == nil then + loaded_files = {} + end - print("Loading " .. name) - -- These may or may not exist, and that's ok. Do a - -- silent parse so that we complain on parse errors but - -- not for them simply not existing. - if not config.processFile(name, true) then - print(MSG_FAILPARSECFG:format(name)) - end + if loaded_files[file] ~= nil then + return + end - loaded_files[name] = true - local newfiles = getEnv("loader_conf_files") - if prefiles ~= newfiles then - -- Recurse; process the new files immediately. - -- If we come back and it turns out we've - -- already loaded the rest of what was in the - -- original loader_conf_files, no big deal. - config.readConfFiles(newfiles, loaded_files) - prefiles = newfiles - end - ::continue:: + print("Loading " .. file) + + -- The final value of loader_conf_files is not important, so just + -- clobber it here. We'll later check if it's no longer nil and process + -- the new value for files to read. + setEnv("loader_conf_files", nil) + + -- These may or may not exist, and that's ok. Do a + -- silent parse so that we complain on parse errors but + -- not for them simply not existing. + if not config.processFile(file, true) then + print(MSG_FAILPARSECFG:format(file)) + end + + loaded_files[file] = true + + -- Going to process "loader_conf_files" extra-files + local loader_conf_files = getEnv("loader_conf_files") + if loader_conf_files ~= nil then + for name in loader_conf_files:gmatch("[%w%p]+") do + config.readConf(name, loaded_files) end end end @@ -630,12 +630,7 @@ function config.load(file, reloading) file = "/boot/defaults/loader.conf" end - if not config.processFile(file) then - print(MSG_FAILPARSECFG:format(file)) - end - - local loaded_files = {file = true} - config.readConfFiles(getEnv("loader_conf_files"), loaded_files) + config.readConf(file) checkNextboot() Modified: head/stand/lua/config.lua.8 ============================================================================== --- head/stand/lua/config.lua.8 Thu Apr 30 20:58:58 2020 (r360505) +++ head/stand/lua/config.lua.8 Thu Apr 30 21:04:39 2020 (r360506) @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 27, 2020 +.Dd April 30, 2020 .Dt CONFIG.LUA 8 .Os .Sh NAME @@ -59,15 +59,24 @@ to A lookup will be done as needed to determine what value .Ev idx actually corresponds to. -.It Fn config.readConfFiles files loaded_files +.It Fn config.readConf file loaded_files Process -.Ev files -as if it were -.Ev loader_conf_files . -The caller should pass in a table as the +.Pa file +as a configuration file +.Po e.g., as +.Pa loader.conf +.Pc +and then processing files listed in +.Ev loader_conf_files +variable +.Po see +.Xr loader.conf 5 +.Pc . +The caller may optionally pass in a table as the .Ev loaded_files -argument, which uses filenames as keys and any non-nil value to indicate that -the file named by the key has been loaded. +argument, which uses filenames as keys and any non-nil value to +indicate that the file named by the key has already been loaded and +should not be loaded again. .It Fn config.processFile name silent Process and parse .Ev name From owner-svn-src-all@freebsd.org Thu Apr 30 21:08: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 7C5CB2C8E30; Thu, 30 Apr 2020 21:08:23 +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 49CnzW2jTMz44Gg; Thu, 30 Apr 2020 21:08:23 +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 52F8B25131; Thu, 30 Apr 2020 21:08:23 +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 03UL8Nk1087595; Thu, 30 Apr 2020 21:08:23 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03UL8NVw087594; Thu, 30 Apr 2020 21:08:23 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202004302108.03UL8NVw087594@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Thu, 30 Apr 2020 21:08:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360507 - head/share/man/man5 X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/share/man/man5 X-SVN-Commit-Revision: 360507 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, 30 Apr 2020 21:08:23 -0000 Author: emaste Date: Thu Apr 30 21:08:22 2020 New Revision: 360507 URL: https://svnweb.freebsd.org/changeset/base/360507 Log: src.conf.5: regen after WITHOUT_OPENSSL dep changes Modified: head/share/man/man5/src.conf.5 Modified: head/share/man/man5/src.conf.5 ============================================================================== --- head/share/man/man5/src.conf.5 Thu Apr 30 21:04:39 2020 (r360506) +++ head/share/man/man5/src.conf.5 Thu Apr 30 21:08:22 2020 (r360507) @@ -1,6 +1,6 @@ .\" DO NOT EDIT-- this file is @generated by tools/build/options/makeman. .\" $FreeBSD$ -.Dd April 29, 2020 +.Dd April 30, 2020 .Dt SRC.CONF 5 .Os .Sh NAME @@ -414,7 +414,15 @@ When set, it enforces these options: .It .Va WITHOUT_OPENSSL .It +.Va WITHOUT_PKGBOOTSTRAP +.It +.Va WITHOUT_SVN +.It +.Va WITHOUT_SVNLITE +.It .Va WITHOUT_UNBOUND +.It +.Va WITHOUT_WIRELESS .El .Pp When set, these options are also in effect: @@ -1318,7 +1326,15 @@ When set, it enforces these options: .It .Va WITHOUT_OPENSSH .It +.Va WITHOUT_PKGBOOTSTRAP +.It +.Va WITHOUT_SVN +.It +.Va WITHOUT_SVNLITE +.It .Va WITHOUT_UNBOUND +.It +.Va WITHOUT_WIRELESS .El .Pp When set, these options are also in effect: From owner-svn-src-all@freebsd.org Thu Apr 30 21:09: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 BA9782C8EB7; Thu, 30 Apr 2020 21:09:01 +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 49Cp0F4czsz44P5; Thu, 30 Apr 2020 21:09:01 +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 98B0125133; Thu, 30 Apr 2020 21:09:01 +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 03UL91XF087720; Thu, 30 Apr 2020 21:09:01 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03UL91A3087719; Thu, 30 Apr 2020 21:09:01 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202004302109.03UL91A3087719@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Thu, 30 Apr 2020 21:09:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360509 - head/tests/sys/geom/class X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/tests/sys/geom/class X-SVN-Commit-Revision: 360509 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, 30 Apr 2020 21:09:01 -0000 Author: emaste Date: Thu Apr 30 21:09:01 2020 New Revision: 360509 URL: https://svnweb.freebsd.org/changeset/base/360509 Log: geli tests require OpenSSL - exclude them under WITHOUT_OPENSSL PR: 245931 Submitted by: The FreeBSD Foundation Modified: head/tests/sys/geom/class/Makefile Modified: head/tests/sys/geom/class/Makefile ============================================================================== --- head/tests/sys/geom/class/Makefile Thu Apr 30 21:08:59 2020 (r360508) +++ head/tests/sys/geom/class/Makefile Thu Apr 30 21:09:01 2020 (r360509) @@ -1,11 +1,15 @@ # $FreeBSD$ +.include + PACKAGE= tests TESTSDIR= ${TESTSBASE}/sys/geom/class TESTS_SUBDIRS+= concat +.if ${MK_OPENSSL} != "no" TESTS_SUBDIRS+= eli +.endif TESTS_SUBDIRS+= gate TESTS_SUBDIRS+= mirror TESTS_SUBDIRS+= multipath From owner-svn-src-all@freebsd.org Thu Apr 30 21:08: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 CECE52C8E9B; Thu, 30 Apr 2020 21:08:59 +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 49Cp0C4y02z44Nv; Thu, 30 Apr 2020 21:08:59 +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 A515A25132; Thu, 30 Apr 2020 21:08:59 +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 03UL8xdc087665; Thu, 30 Apr 2020 21:08:59 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03UL8xks087664; Thu, 30 Apr 2020 21:08:59 GMT (envelope-from imp@FreeBSD.org) Message-Id: <202004302108.03UL8xks087664@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Thu, 30 Apr 2020 21:08:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360508 - head/sys/cam/nvme X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/cam/nvme X-SVN-Commit-Revision: 360508 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, 30 Apr 2020 21:08:59 -0000 Author: imp Date: Thu Apr 30 21:08:59 2020 New Revision: 360508 URL: https://svnweb.freebsd.org/changeset/base/360508 Log: Fix three bugs highlighted by review: - maxio should be dp->d_maxsize. This is often MAXPHYS, but not always (especially if MAXPHYS is > 1MB). - Unlock the periph before returning. We don't need to relock it to release the ccb. - Make sure we release the ccb in error paths. Reviewed by: cperciva Modified: head/sys/cam/nvme/nvme_da.c Modified: head/sys/cam/nvme/nvme_da.c ============================================================================== --- head/sys/cam/nvme/nvme_da.c Thu Apr 30 21:08:22 2020 (r360507) +++ head/sys/cam/nvme/nvme_da.c Thu Apr 30 21:08:59 2020 (r360508) @@ -402,7 +402,7 @@ ndaioctl(struct disk *dp, u_long cmd, void *data, int struct nvme_pt_command *pt; union ccb *ccb; struct cam_periph_map_info mapinfo; - u_int maxmap = MAXPHYS; /* XXX is this right */ + u_int maxmap = dp->d_maxsize; int error; /* @@ -426,8 +426,10 @@ ndaioctl(struct disk *dp, u_long cmd, void *data, int */ memset(&mapinfo, 0, sizeof(mapinfo)); error = cam_periph_mapmem(ccb, &mapinfo, maxmap); - if (error) + if (error) { + xpt_release_ccb(ccb); return (error); + } /* * Lock the periph and run the command. XXX do we need @@ -442,7 +444,6 @@ ndaioctl(struct disk *dp, u_long cmd, void *data, int * Tear down mapping and return status. */ cam_periph_unmapmem(ccb, &mapinfo); - cam_periph_lock(periph); error = (ccb->ccb_h.status == CAM_REQ_CMP) ? 0 : EIO; xpt_release_ccb(ccb); return (error); From owner-svn-src-all@freebsd.org Thu Apr 30 21:16: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 892B12C9231; Thu, 30 Apr 2020 21:16:09 +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 49Cp8T2rXFz4524; Thu, 30 Apr 2020 21:16:09 +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 5CD4625312; Thu, 30 Apr 2020 21:16:09 +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 03ULG9YB093542; Thu, 30 Apr 2020 21:16:09 GMT (envelope-from rscheff@FreeBSD.org) Received: (from rscheff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03ULG9Uu093538; Thu, 30 Apr 2020 21:16:09 GMT (envelope-from rscheff@FreeBSD.org) Message-Id: <202004302116.03ULG9Uu093538@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rscheff set sender to rscheff@FreeBSD.org using -f From: Richard Scheffenegger Date: Thu, 30 Apr 2020 21:16: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: r360510 - in stable/12: share/man/man7 sys/netinet X-SVN-Group: stable-12 X-SVN-Commit-Author: rscheff X-SVN-Commit-Paths: in stable/12: share/man/man7 sys/netinet X-SVN-Commit-Revision: 360510 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, 30 Apr 2020 21:16:09 -0000 Author: rscheff Date: Thu Apr 30 21:16:08 2020 New Revision: 360510 URL: https://svnweb.freebsd.org/changeset/base/360510 Log: MFC r360010: Reduce the delayed ACK timeout from 100ms to 40ms. Reviewed by: kbowling, tuexen Approved by: tuexen (mentor) MFC after: 2 weeks Sponsored by: NetApp, Inc. Differential Revision: https://reviews.freebsd.org/D23281 Modified: stable/12/share/man/man7/tuning.7 stable/12/sys/netinet/tcp_timer.h Directory Properties: stable/12/ (props changed) Modified: stable/12/share/man/man7/tuning.7 ============================================================================== --- stable/12/share/man/man7/tuning.7 Thu Apr 30 21:09:01 2020 (r360509) +++ stable/12/share/man/man7/tuning.7 Thu Apr 30 21:16:08 2020 (r360510) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 30, 2017 +.Dd April 16, 2020 .Dt TUNING 7 .Os .Sh NAME @@ -435,7 +435,7 @@ number of tiny packets flowing across the network in h The .Fx delayed ACK implementation also follows the TCP protocol rule that -at least every other packet be acknowledged even if the standard 100ms +at least every other packet be acknowledged even if the standard 40ms timeout has not yet passed. Normally the worst a delayed ACK can do is slightly delay the teardown of a connection, or slightly delay the ramp-up Modified: stable/12/sys/netinet/tcp_timer.h ============================================================================== --- stable/12/sys/netinet/tcp_timer.h Thu Apr 30 21:09:01 2020 (r360509) +++ stable/12/sys/netinet/tcp_timer.h Thu Apr 30 21:16:08 2020 (r360510) @@ -119,7 +119,7 @@ #define TCP_MAXRXTSHIFT 12 /* maximum retransmits */ -#define TCPTV_DELACK ( hz/10 ) /* 100ms timeout */ +#define TCPTV_DELACK ( hz/25 ) /* 40ms timeout */ /* * If we exceed this number of retransmits for a single segment, we'll consider From owner-svn-src-all@freebsd.org Thu Apr 30 22: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 D00E32CA171; Thu, 30 Apr 2020 22: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 49CqK657Y0z47cW; Thu, 30 Apr 2020 22: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 AB4DD25C8A; Thu, 30 Apr 2020 22: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 03UM8gJx025036; Thu, 30 Apr 2020 22:08:42 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03UM8e0d025024; Thu, 30 Apr 2020 22:08:40 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202004302208.03UM8e0d025024@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Thu, 30 Apr 2020 22:08:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360511 - in head: lib/libc/db/mpool lib/libc/gen lib/libc/iconv lib/libc/posix1e lib/libc/secure lib/libgcc_s lib/libprocstat share/man/man5 share/mk tools/build/options X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in head: lib/libc/db/mpool lib/libc/gen lib/libc/iconv lib/libc/posix1e lib/libc/secure lib/libgcc_s lib/libprocstat share/man/man5 share/mk tools/build/options X-SVN-Commit-Revision: 360511 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, 30 Apr 2020 22:08:42 -0000 Author: jhb Date: Thu Apr 30 22:08:40 2020 New Revision: 360511 URL: https://svnweb.freebsd.org/changeset/base/360511 Log: Remove the SYMVER build option. This option was added as a transition aide when symbol versioning was first added. It was enabled by default in 2007 and is supported even by the old GPLv2 binutils. Trying to disable it currently fails to build in libc and at this point it isn't worth fixing the build. Reported by: Michael Dexter Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D24637 Deleted: head/tools/build/options/WITHOUT_SYMVER Modified: head/lib/libc/db/mpool/Makefile.inc head/lib/libc/gen/Makefile.inc head/lib/libc/iconv/Makefile.inc head/lib/libc/posix1e/Makefile.inc head/lib/libc/secure/Makefile.inc head/lib/libgcc_s/Makefile head/lib/libprocstat/Makefile head/share/man/man5/src.conf.5 head/share/mk/bsd.lib.mk head/share/mk/bsd.opts.mk head/share/mk/bsd.symver.mk Modified: head/lib/libc/db/mpool/Makefile.inc ============================================================================== --- head/lib/libc/db/mpool/Makefile.inc Thu Apr 30 21:16:08 2020 (r360510) +++ head/lib/libc/db/mpool/Makefile.inc Thu Apr 30 22:08:40 2020 (r360511) @@ -3,7 +3,5 @@ .PATH: ${LIBC_SRCTOP}/db/mpool -SRCS+= mpool.c -.if ${MK_SYMVER} == yes -SRCS+= mpool-compat.c -.endif +SRCS+= mpool.c \ + mpool-compat.c Modified: head/lib/libc/gen/Makefile.inc ============================================================================== --- head/lib/libc/gen/Makefile.inc Thu Apr 30 21:16:08 2020 (r360510) +++ head/lib/libc/gen/Makefile.inc Thu Apr 30 22:08:40 2020 (r360511) @@ -34,6 +34,7 @@ SRCS+= __getosreldate.c \ ctermid.c \ daemon.c \ devname.c \ + devname-compat11.c \ dirfd.c \ dirname.c \ dirname_compat.c \ @@ -58,7 +59,10 @@ SRCS+= __getosreldate.c \ fstab.c \ ftok.c \ fts.c \ + fts-compat.c \ + fts-compat11.c \ ftw.c \ + ftw-compat11.c \ getbootfile.c \ getbsize.c \ getcap.c \ @@ -71,6 +75,7 @@ SRCS+= __getosreldate.c \ getloadavg.c \ getlogin.c \ getmntinfo.c \ + getmntinfo-compat11.c \ getnetgrent.c \ getosreldate.c \ getpagesize.c \ @@ -83,6 +88,7 @@ SRCS+= __getosreldate.c \ getutxent.c \ getvfsbyname.c \ glob.c \ + glob-compat11.c \ initgroups.c \ isatty.c \ isinf.c \ @@ -94,6 +100,7 @@ SRCS+= __getosreldate.c \ lrand48.c \ mrand48.c \ nftw.c \ + nftw-compat11.c \ nice.c \ nlist.c \ nrand48.c \ @@ -107,10 +114,12 @@ SRCS+= __getosreldate.c \ pw_scan.c \ raise.c \ readdir.c \ + readdir-compat11.c \ readpassphrase.c \ recvmmsg.c \ rewinddir.c \ scandir.c \ + scandir-compat11.c \ seed48.c \ seekdir.c \ semctl.c \ @@ -147,6 +156,7 @@ SRCS+= __getosreldate.c \ ualarm.c \ ulimit.c \ uname.c \ + unvis-compat.c \ usleep.c \ utime.c \ utxdb.c \ @@ -156,18 +166,6 @@ SRCS+= __getosreldate.c \ waitpid.c \ waitid.c \ wordexp.c -.if ${MK_SYMVER} == yes -SRCS+= devname-compat11.c \ - fts-compat.c \ - fts-compat11.c \ - ftw-compat11.c \ - getmntinfo-compat11.c \ - glob-compat11.c \ - nftw-compat11.c \ - readdir-compat11.c \ - scandir-compat11.c \ - unvis-compat.c -.endif CFLAGS.arc4random.c= -I${SRCTOP}/sys -I${SRCTOP}/sys/crypto/chacha20 Modified: head/lib/libc/iconv/Makefile.inc ============================================================================== --- head/lib/libc/iconv/Makefile.inc Thu Apr 30 21:16:08 2020 (r360510) +++ head/lib/libc/iconv/Makefile.inc Thu Apr 30 22:08:40 2020 (r360511) @@ -14,10 +14,7 @@ SRCS+= citrus_bcs.c citrus_bcs_strtol.c citrus_bcs_str citrus_esdb.c citrus_hash.c citrus_iconv.c citrus_lookup.c \ citrus_lookup_factory.c citrus_mapper.c citrus_memstream.c \ citrus_mmap.c citrus_module.c citrus_none.c citrus_pivot_factory.c \ - citrus_prop.c citrus_stdenc.c bsd_iconv.c -.if ${MK_SYMVER} == yes -SRCS+= iconv_compat.c -.endif + citrus_prop.c citrus_stdenc.c bsd_iconv.c iconv_compat.c SYM_MAPS+= ${LIBC_SRCTOP}/iconv/Symbol.map Modified: head/lib/libc/posix1e/Makefile.inc ============================================================================== --- head/lib/libc/posix1e/Makefile.inc Thu Apr 30 21:16:08 2020 (r360510) +++ head/lib/libc/posix1e/Makefile.inc Thu Apr 30 22:08:40 2020 (r360511) @@ -11,6 +11,7 @@ subr_acl_nfs4.c: ${SRCTOP}/sys/kern/subr_acl_nfs4.c CONFS+= posix1e/mac.conf SRCS+= acl_branding.c \ acl_calc_mask.c \ + acl_compat.c \ acl_copy.c \ acl_delete.c \ acl_delete_entry.c \ @@ -36,9 +37,6 @@ SRCS+= acl_branding.c \ mac_get.c \ mac_set.c \ subr_acl_nfs4.c -.if ${MK_SYMVER} == yes -SRCS+= acl_compat.c -.endif SYM_MAPS+=${LIBC_SRCTOP}/posix1e/Symbol.map Modified: head/lib/libc/secure/Makefile.inc ============================================================================== --- head/lib/libc/secure/Makefile.inc Thu Apr 30 21:16:08 2020 (r360510) +++ head/lib/libc/secure/Makefile.inc Thu Apr 30 22:08:40 2020 (r360511) @@ -5,9 +5,7 @@ .PATH: ${LIBC_SRCTOP}/secure # Sources common to both syscall interfaces: -SRCS+= stack_protector.c -.if ${MK_SYMVER} == yes -SRCS+= stack_protector_compat.c -.endif +SRCS+= stack_protector.c \ + stack_protector_compat.c SYM_MAPS+= ${LIBC_SRCTOP}/secure/Symbol.map Modified: head/lib/libgcc_s/Makefile ============================================================================== --- head/lib/libgcc_s/Makefile Thu Apr 30 21:16:08 2020 (r360510) +++ head/lib/libgcc_s/Makefile Thu Apr 30 22:08:40 2020 (r360511) @@ -12,7 +12,6 @@ WARNS?= 2 LDFLAGS+= -nodefaultlibs LIBADD+= c -.if ${MK_SYMVER} == "yes" VERSION_DEF= ${.CURDIR}/Versions.def SYMBOL_MAPS= ${.CURDIR}/Symbol.map # Export ARM AEABI unwind routines needed by libc and libthr. @@ -20,7 +19,6 @@ SYMBOL_MAPS= ${.CURDIR}/Symbol.map SYMBOL_MAPS+= ${.CURDIR}/${MACHINE_CPUARCH}/Symbol.map .else SYMBOL_MAPS+= ${.CURDIR}/SymbolDefault.map -.endif .endif .include "../libcompiler_rt/Makefile.inc" Modified: head/lib/libprocstat/Makefile ============================================================================== --- head/lib/libprocstat/Makefile Thu Apr 30 21:16:08 2020 (r360510) +++ head/lib/libprocstat/Makefile Thu Apr 30 22:08:40 2020 (r360511) @@ -8,13 +8,10 @@ SRCS= cd9660.c \ common_kvm.c \ core.c \ libprocstat.c \ + libprocstat_compat.c \ msdosfs.c \ smbfs.c \ udf.c - -.if ${MK_SYMVER} == yes -SRCS+= libprocstat_compat.c -.endif VERSION_DEF= ${LIBCSRCDIR}/Versions.def SYMBOL_MAPS= ${.CURDIR}/Symbol.map Modified: head/share/man/man5/src.conf.5 ============================================================================== --- head/share/man/man5/src.conf.5 Thu Apr 30 21:16:08 2020 (r360510) +++ head/share/man/man5/src.conf.5 Thu Apr 30 22:08:40 2020 (r360511) @@ -1541,8 +1541,6 @@ as Set to not build .Xr svnlite 1 and related programs. -.It Va WITHOUT_SYMVER -Set to disable symbol versioning when building shared libraries. .It Va WITHOUT_SYSCONS Set to not build .Xr syscons 4 Modified: head/share/mk/bsd.lib.mk ============================================================================== --- head/share/mk/bsd.lib.mk Thu Apr 30 21:16:08 2020 (r360510) +++ head/share/mk/bsd.lib.mk Thu Apr 30 22:08:40 2020 (r360511) @@ -227,7 +227,7 @@ SHLIB_NAME_FULL=${SHLIB_NAME} # Allow libraries to specify their own version map or have it # automatically generated (see bsd.symver.mk above). -.if ${MK_SYMVER} == "yes" && !empty(VERSION_MAP) +.if !empty(VERSION_MAP) ${SHLIB_NAME_FULL}: ${VERSION_MAP} LDFLAGS+= -Wl,--version-script=${VERSION_MAP} .endif Modified: head/share/mk/bsd.opts.mk ============================================================================== --- head/share/mk/bsd.opts.mk Thu Apr 30 21:16:08 2020 (r360510) +++ head/share/mk/bsd.opts.mk Thu Apr 30 22:08:40 2020 (r360511) @@ -63,7 +63,6 @@ __DEFAULT_YES_OPTIONS = \ OPENSSH \ PROFILE \ SSP \ - SYMVER \ TESTS \ TOOLCHAIN \ WARNS Modified: head/share/mk/bsd.symver.mk ============================================================================== --- head/share/mk/bsd.symver.mk Thu Apr 30 21:16:08 2020 (r360510) +++ head/share/mk/bsd.symver.mk Thu Apr 30 22:08:40 2020 (r360511) @@ -7,7 +7,7 @@ ____: # Generate the version map given the version definitions # and symbol maps. -.if ${MK_SYMVER} == "yes" && !empty(VERSION_DEF) && !empty(SYMBOL_MAPS) +.if !empty(VERSION_DEF) && !empty(SYMBOL_MAPS) # Find the awk script that generates the version map. VERSION_GEN?= version_gen.awk VERSION_MAP?= Version.map From owner-svn-src-all@freebsd.org Thu Apr 30 23:40: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 81FD72CB6D2; Thu, 30 Apr 2020 23:40:40 +0000 (UTC) (envelope-from jkim@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 49CsMD3CVyz4CPB; Thu, 30 Apr 2020 23:40:40 +0000 (UTC) (envelope-from jkim@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 692E426D4C; Thu, 30 Apr 2020 23:40:40 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03UNeeQK081956; Thu, 30 Apr 2020 23:40:40 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03UNea8l079869; Thu, 30 Apr 2020 23:40:36 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <202004302340.03UNea8l079869@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Thu, 30 Apr 2020 23:40:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r360512 - in vendor-sys/acpica/dist: . source/common source/compiler source/components/debugger source/components/disassembler source/components/dispatcher source/components/executer so... X-SVN-Group: vendor-sys X-SVN-Commit-Author: jkim X-SVN-Commit-Paths: in vendor-sys/acpica/dist: . source/common source/compiler source/components/debugger source/components/disassembler source/components/dispatcher source/components/executer source/include source/tools... X-SVN-Commit-Revision: 360512 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, 30 Apr 2020 23:40:40 -0000 Author: jkim Date: Thu Apr 30 23:40:36 2020 New Revision: 360512 URL: https://svnweb.freebsd.org/changeset/base/360512 Log: Import ACPICA 20200430. Modified: vendor-sys/acpica/dist/changes.txt vendor-sys/acpica/dist/source/common/acgetline.c vendor-sys/acpica/dist/source/common/dmtbdump2.c vendor-sys/acpica/dist/source/compiler/aslcompiler.l vendor-sys/acpica/dist/source/compiler/aslload.c vendor-sys/acpica/dist/source/compiler/aslmessages.c vendor-sys/acpica/dist/source/compiler/aslmessages.h vendor-sys/acpica/dist/source/compiler/aslpredef.c vendor-sys/acpica/dist/source/compiler/aslxref.c vendor-sys/acpica/dist/source/compiler/dtutils.c vendor-sys/acpica/dist/source/components/debugger/dbhistry.c vendor-sys/acpica/dist/source/components/disassembler/dmbuffer.c vendor-sys/acpica/dist/source/components/dispatcher/dsfield.c vendor-sys/acpica/dist/source/components/executer/exfield.c vendor-sys/acpica/dist/source/include/acglobal.h vendor-sys/acpica/dist/source/include/acpixf.h vendor-sys/acpica/dist/source/include/acpredef.h vendor-sys/acpica/dist/source/tools/acpiexec/aemain.c Modified: vendor-sys/acpica/dist/changes.txt ============================================================================== --- vendor-sys/acpica/dist/changes.txt Thu Apr 30 22:08:40 2020 (r360511) +++ vendor-sys/acpica/dist/changes.txt Thu Apr 30 23:40:36 2020 (r360512) @@ -1,4 +1,61 @@ ---------------------------------------- + + +30 April 2020. Summary of changes for version 20200430: + + +1) ACPICA kernel-resident subsystem: + +Cleaned up the coding style of a couple of global variables +(AcpiGbl_NextCmdNum and AcpiProtocolLengths) caught by static analyzers. +AcpiProtocolLengths was made static, and the definition of +AcpiGbl_NextCmdNum was moved to acglobal.h. + + +2) iASL Compiler/Disassembler and ACPICA tools: + +iASL DataTable Compiler: Fixed a segfault on errors that aren't directly +associated with a field. + +Disassembler: has been made more resilient so that it will continue to +parse AML even if the AML generates ACPI namespace errors. This enables +iASL to disassemble some AML that may have been compiled using older +versions of iASL that no longer compile with newer versions of iASL. + +iASL: Fixed the required parameters for _NIH and _NIG. Previously, there +was a mixup where _NIG required one parameter and _NIH required zero +parameters. This change swaps these parameter requirements. Now it is +required that _NIH must be called with one parameter and _NIG requires +zero parameters. + +iASL: Allow use of undefined externals as long as they are protected by +an if (CondRefOf (...)) block when compiling multiple definition blocks. + +iASL: Fixed the type override behavior of named objects that are declared +as External. External declarations will no longer override the type of +the actual definition if it already exists. + +AcpiNames: Added setargv.obj to the MSVC 2017 link sequence to enable +command line wildcard support on Windows. Note: the AcpiNames utility is +essentially redundant with the AcpiExec utility (using the "namespace" +command) and is therefore deprecated. It will be removed in future +releases of ACPICA. + +Disassembler: ignore AE_ALREADY_EXISTS status when parsing create* +operators. The disassembler is intended to emit existing ASL code as-is. +Therefore, error messages emitted during disassembly should be ignored or +handled in a way such that the disassembler can continue to parse the +AML. This change ignores AE_ALREADY_EXISTS errors during the deferred Op +parsing for create operators in order to complete parsing ASL termlists. + +iASL DataTable Compiler: IVRS table: fix potentially uninitialized +variable warning. Some compilers catch potential uninitialized variables. +This is done by examining branches of if/else statements. This change +replaces an "else if" with an "else" to fix the uninitialized variable +warning. + + +---------------------------------------- 26 March 2020. Summary of changes for version 20200326: @@ -674,7 +731,7 @@ temporary. iASL: Emit error for creation of a zero-length operation region. Such a region is rather pointless. If encountered, a runtime error is also -implemented in the interpeter. +implemented in the interpreter. Debugger: Fix a possible fault with the "test objects" command. Modified: vendor-sys/acpica/dist/source/common/acgetline.c ============================================================================== --- vendor-sys/acpica/dist/source/common/acgetline.c Thu Apr 30 22:08:40 2020 (r360511) +++ vendor-sys/acpica/dist/source/common/acgetline.c Thu Apr 30 23:40:36 2020 (r360512) @@ -189,8 +189,6 @@ AcpiAcClearLine ( #define _ASCII_LEFT_ARROW 'D' #define _ASCII_NEWLINE '\n' -extern UINT32 AcpiGbl_NextCmdNum; - /* Erase a single character on the input command line */ #define ACPI_CLEAR_CHAR() \ Modified: vendor-sys/acpica/dist/source/common/dmtbdump2.c ============================================================================== --- vendor-sys/acpica/dist/source/common/dmtbdump2.c Thu Apr 30 22:08:40 2020 (r360511) +++ vendor-sys/acpica/dist/source/common/dmtbdump2.c Thu Apr 30 23:40:36 2020 (r360512) @@ -528,8 +528,10 @@ AcpiDmDumpIvrs ( DeviceEntry = ACPI_ADD_PTR (ACPI_IVRS_DE_HEADER, Subtable, sizeof (ACPI_IVRS_HARDWARE1)); } - else if (Subtable->Type == ACPI_IVRS_TYPE_HARDWARE2) + else { + /* ACPI_IVRS_TYPE_HARDWARE2 subtable type */ + EntryOffset = Offset + sizeof (ACPI_IVRS_HARDWARE2); DeviceEntry = ACPI_ADD_PTR (ACPI_IVRS_DE_HEADER, Subtable, sizeof (ACPI_IVRS_HARDWARE2)); Modified: vendor-sys/acpica/dist/source/compiler/aslcompiler.l ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslcompiler.l Thu Apr 30 22:08:40 2020 (r360511) +++ vendor-sys/acpica/dist/source/compiler/aslcompiler.l Thu Apr 30 23:40:36 2020 (r360512) @@ -819,7 +819,7 @@ NamePathTail [.]{NameSeg} } /* - * The eror code is contained inside the + * The error code is contained inside the * {ErrorCode} pattern. Extract it and log it * as the expected error code. */ Modified: vendor-sys/acpica/dist/source/compiler/aslload.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslload.c Thu Apr 30 22:08:40 2020 (r360511) +++ vendor-sys/acpica/dist/source/compiler/aslload.c Thu Apr 30 23:40:36 2020 (r360512) @@ -1,6 +1,6 @@ /****************************************************************************** * - * Module Name: dswload - Dispatcher namespace load callbacks + * Module Name: aslload - compiler namespace load callbacks * *****************************************************************************/ @@ -201,7 +201,6 @@ LdAnalyzeExternals ( ACPI_NAMESPACE_NODE *Node, ACPI_PARSE_OBJECT *Op, ACPI_OBJECT_TYPE ExternalOpType, - ACPI_OBJECT_TYPE ObjectType, ACPI_WALK_STATE *WalkState); @@ -515,7 +514,6 @@ LdNamespace1Begin ( ACPI_PARSE_OBJECT *MethodOp; ACPI_STATUS Status; ACPI_OBJECT_TYPE ObjectType; - ACPI_OBJECT_TYPE ActualObjectType = ACPI_TYPE_ANY; char *Path; UINT32 Flags = ACPI_NS_NO_UPSEARCH; ACPI_PARSE_OBJECT *Arg; @@ -689,8 +687,7 @@ LdNamespace1Begin ( * * first child is name, next child is ObjectType */ - ActualObjectType = (UINT8) Op->Asl.Child->Asl.Next->Asl.Value.Integer; - ObjectType = ACPI_TYPE_ANY; + ObjectType = (UINT8) Op->Asl.Child->Asl.Next->Asl.Value.Integer; /* * We will mark every new node along the path as "External". This @@ -709,7 +706,7 @@ LdNamespace1Begin ( * Store (\_SB_.PCI0.ABCD, Local0) * } */ - Flags |= ACPI_NS_EXTERNAL; + Flags |= ACPI_NS_EXTERNAL | ACPI_NS_DONT_OPEN_SCOPE; break; case PARSEOP_DEFAULT_ARG: @@ -913,8 +910,7 @@ LdNamespace1Begin ( else if ((Node->Flags & ANOBJ_IS_EXTERNAL) || (Op->Asl.ParseOpcode == PARSEOP_EXTERNAL)) { - Status = LdAnalyzeExternals (Node, Op, ActualObjectType, - ObjectType, WalkState); + Status = LdAnalyzeExternals (Node, Op, ObjectType, WalkState); if (ACPI_FAILURE (Status)) { if (Status == AE_ERROR) @@ -929,6 +925,19 @@ LdNamespace1Begin ( } return_ACPI_STATUS (Status); } + + if (!(Node->Flags & ANOBJ_IS_EXTERNAL) && + (Op->Asl.ParseOpcode == PARSEOP_EXTERNAL)) + { + /* + * If we get to here, it means that an actual definition of + * the object declared external exists. Meaning that Op + * loading this this Op should have no change to the ACPI + * namespace. By going to FinishNode, we skip the + * assignment of Node->Op = Op. + */ + goto FinishNode; + } } else { @@ -980,31 +989,16 @@ LdNamespace1Begin ( } } -FinishNode: - /* - * Point the parse node to the new namespace node, and point - * the Node back to the original Parse node - */ - Op->Asl.Node = Node; + /* Point the Node back to the original Parse node */ + Node->Op = Op; - /* - * Set the actual data type if appropriate (EXTERNAL term only) - * As of 11/19/2019, ASL External() does not support parameter - * counts. When an External method is loaded, the parameter count is - * recorded in the external's arg count parameter. The parameter count may - * or may not be known in the declaration. If the value of this node turns - * out to be ASL_EXTERNAL_METHOD_UNKNOWN_PARAMS, it indicates that - * we do not know the parameter count and that we must look at the usage of - * the External method call to get this information. - */ - if (ActualObjectType != ACPI_TYPE_ANY) - { - Node->Type = (UINT8) ActualObjectType; - Node->Value = (UINT32) - Op->Asl.Child->Asl.Next->Asl.Next->Asl.Value.Integer; - } +FinishNode: + /* Point the parse node to the new namespace node */ + + Op->Asl.Node = Node; + if (Op->Asl.ParseOpcode == PARSEOP_METHOD) { /* @@ -1013,6 +1007,13 @@ FinishNode: */ Node->Value = (UINT32) Op->Asl.Extra; } + else if (Op->Asl.ParseOpcode == PARSEOP_EXTERNAL && + Node->Type == ACPI_TYPE_METHOD && + (Node->Flags & ANOBJ_IS_EXTERNAL)) + { + Node->Value = + (UINT32) Op->Asl.Child->Asl.Next->Asl.Next->Asl.Value.Integer; + } return_ACPI_STATUS (Status); } @@ -1020,7 +1021,7 @@ FinishNode: /******************************************************************************* * - * FUNCTION: LdAnalyzeExternals + * FUNCTION: LdMatchExternType * * PARAMETERS: Type1 * Type2 @@ -1037,7 +1038,7 @@ FinishNode: ******************************************************************************/ static BOOLEAN -LdTypesMatchExternType ( +LdMatchExternType ( ACPI_OBJECT_TYPE Type1, ACPI_OBJECT_TYPE Type2) { @@ -1093,7 +1094,6 @@ LdTypesMatchExternType ( * PARAMETERS: Node - Node that represents the named object * Op - Named object declaring this named object * ExternalOpType - Type of ExternalOp - * ObjectType - Type of Declared object * WalkState - Current WalkState * * RETURN: Status @@ -1111,7 +1111,6 @@ LdAnalyzeExternals ( ACPI_NAMESPACE_NODE *Node, ACPI_PARSE_OBJECT *Op, ACPI_OBJECT_TYPE ExternalOpType, - ACPI_OBJECT_TYPE ObjectType, ACPI_WALK_STATE *WalkState) { ACPI_STATUS Status = AE_OK; @@ -1135,12 +1134,12 @@ LdAnalyzeExternals ( else { ActualExternalOpType = Node->Type; - ActualOpType = ObjectType; + ActualOpType = ExternalOpType; } if ((ActualOpType != ACPI_TYPE_ANY) && (ActualExternalOpType != ACPI_TYPE_ANY) && - !LdTypesMatchExternType (ActualExternalOpType, ActualOpType)) + !LdMatchExternType (ActualExternalOpType, ActualOpType)) { if (Op->Asl.ParseOpcode == PARSEOP_EXTERNAL && Node->Op->Asl.ParseOpcode == PARSEOP_EXTERNAL) @@ -1168,6 +1167,8 @@ LdAnalyzeExternals ( } } + /* Set the object type of the external */ + if ((Node->Flags & ANOBJ_IS_EXTERNAL) && (Op->Asl.ParseOpcode != PARSEOP_EXTERNAL)) { @@ -1176,13 +1177,13 @@ LdAnalyzeExternals ( * previously declared External */ Node->Flags &= ~ANOBJ_IS_EXTERNAL; - Node->Type = (UINT8) ObjectType; + Node->Type = (UINT8) ExternalOpType; /* Just retyped a node, probably will need to open a scope */ - if (AcpiNsOpensScope (ObjectType)) + if (AcpiNsOpensScope (ExternalOpType)) { - Status = AcpiDsScopeStackPush (Node, ObjectType, WalkState); + Status = AcpiDsScopeStackPush (Node, ExternalOpType, WalkState); if (ACPI_FAILURE (Status)) { return (Status); @@ -1203,7 +1204,7 @@ LdAnalyzeExternals ( } else if ((Node->Flags & ANOBJ_IS_EXTERNAL) && (Op->Asl.ParseOpcode == PARSEOP_EXTERNAL) && - (ObjectType == ACPI_TYPE_ANY)) + (ExternalOpType == ACPI_TYPE_ANY)) { /* Allow update of externals of unknown type. */ Modified: vendor-sys/acpica/dist/source/compiler/aslmessages.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslmessages.c Thu Apr 30 22:08:40 2020 (r360511) +++ vendor-sys/acpica/dist/source/compiler/aslmessages.c Thu Apr 30 23:40:36 2020 (r360512) @@ -380,6 +380,7 @@ const char *AslCompilerMsgs [] = /* ASL_MSG_TYPE_MISMATCH_FOUND_HERE */ "Actual object declaration:", /* ASL_MSG_DUPLICATE_EXTERN_MISMATCH */ "Type mismatch between multiple external declarations detected", /* ASL_MSG_DUPLICATE_EXTERN_FOUND_HERE */"Duplicate external declaration:", +/* ASL_MSG_CONDREF_NEEDS_EXTERNAL_DECL */"CondRefOf parameter requires External() declaration", }; /* Table compiler */ Modified: vendor-sys/acpica/dist/source/compiler/aslmessages.h ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslmessages.h Thu Apr 30 22:08:40 2020 (r360511) +++ vendor-sys/acpica/dist/source/compiler/aslmessages.h Thu Apr 30 23:40:36 2020 (r360512) @@ -382,6 +382,7 @@ typedef enum ASL_MSG_TYPE_MISMATCH_FOUND_HERE, ASL_MSG_DUPLICATE_EXTERN_MISMATCH, ASL_MSG_DUPLICATE_EXTERN_FOUND_HERE, + ASL_MSG_CONDREF_NEEDS_EXTERNAL_DECL, /* These messages are used by the Data Table compiler only */ Modified: vendor-sys/acpica/dist/source/compiler/aslpredef.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslpredef.c Thu Apr 30 22:08:40 2020 (r360511) +++ vendor-sys/acpica/dist/source/compiler/aslpredef.c Thu Apr 30 23:40:36 2020 (r360512) @@ -674,7 +674,7 @@ ApCheckForSpecialName ( /* * Was not actually emitted by the compiler. This is a special case, * however. If the ASL code being compiled was the result of a - * dissasembly, it may possibly contain valid compiler-emitted names + * disassembly, it may possibly contain valid compiler-emitted names * of the form "_T_x". We don't want to issue an error or even a * warning and force the user to manually change the names. So, we * will issue a remark instead. Modified: vendor-sys/acpica/dist/source/compiler/aslxref.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslxref.c Thu Apr 30 22:08:40 2020 (r360511) +++ vendor-sys/acpica/dist/source/compiler/aslxref.c Thu Apr 30 23:40:36 2020 (r360512) @@ -199,7 +199,17 @@ XfCheckFieldRange ( UINT32 FieldBitLength, UINT32 AccessBitWidth); +static BOOLEAN +XfFindCondRefOfName ( + ACPI_NAMESPACE_NODE *Node, + ACPI_PARSE_OBJECT *Op); +static BOOLEAN +XfRefIsGuardedByIfCondRefOf ( + ACPI_NAMESPACE_NODE *Node, + ACPI_PARSE_OBJECT *Op); + + /******************************************************************************* * * FUNCTION: XfCrossReferenceNamespace @@ -582,17 +592,6 @@ XfNamespaceLocateBegin ( } /* - * One special case: CondRefOf operator - we don't care if the name exists - * or not at this point, just ignore it, the point of the operator is to - * determine if the name exists at runtime. - */ - if ((Op->Asl.Parent) && - (Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_CONDREFOF)) - { - return_ACPI_STATUS (AE_OK); - } - - /* * We must enable the "search-to-root" for single NameSegs, but * we have to be very careful about opening up scopes */ @@ -600,7 +599,8 @@ XfNamespaceLocateBegin ( if ((Op->Asl.ParseOpcode == PARSEOP_NAMESTRING) || (Op->Asl.ParseOpcode == PARSEOP_NAMESEG) || (Op->Asl.ParseOpcode == PARSEOP_METHODCALL) || - (Op->Asl.ParseOpcode == PARSEOP_EXTERNAL)) + (Op->Asl.ParseOpcode == PARSEOP_EXTERNAL) || + (Op->Asl.ParseOpcode == PARSEOP_CONDREFOF)) { /* * These are name references, do not push the scope stack @@ -665,8 +665,23 @@ XfNamespaceLocateBegin ( * We didn't find the name reference by path -- we can qualify this * a little better before we print an error message */ - if (strlen (Path) == ACPI_NAMESEG_SIZE) + + if ((Op->Asl.Parent) && + (Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_CONDREFOF)) { + /* + * One special case: CondRefOf operator - if the name doesn't + * exist at this point, it means that there's no actual or + * external declaration. If the name is not found, just ignore + * it, the point of the operator is to determine if the name + * exists at runtime. We wanted to see if this named object + * exists to facilitate analysis to allow protected usage of + * undeclared externals. + */ + return_ACPI_STATUS (AE_OK); + } + else if (strlen (Path) == ACPI_NAMESEG_SIZE) + { /* A simple, one-segment ACPI name */ if (XfObjectExists (Path)) @@ -1190,6 +1205,7 @@ XfNamespaceLocateBegin ( /* * 5) Check for external resolution + * * By this point, everything should be loaded in the namespace. If a * namespace lookup results in a namespace node that is an external, it * means that this named object was not defined in the input ASL. This @@ -1197,11 +1213,38 @@ XfNamespaceLocateBegin ( * use the external keyword to suppress compiler errors about undefined * objects. Note: this only applies when compiling multiple definition * blocks. + * + * Do not check for external resolution in the following cases: + * + * case 1) External (ABCD) + * + * This declares ABCD as an external so there is no requirement for + * ABCD to be loaded in the namespace when analyzing the actual + * External() statement. + * + * case 2) CondRefOf (ABCD) + * + * This operator will query the ACPI namespace on the existence of + * ABCD. If ABCD does not exist, this operator will return a 0 + * without incurring AML runtime errors. Therefore, ABCD is allowed + * to not exist when analyzing the CondRefOf operator. + * + * case 3) External (ABCD) + * if (CondRefOf (ABCD)) + * { + * Store (0, ABCD) + * } + * + * In this case, ABCD is accessed only if it exists due to the if + * statement so there is no need to flag the ABCD nested in the + * store operator. */ if (AslGbl_ParseTreeRoot->Asl.Child && AslGbl_ParseTreeRoot->Asl.Child->Asl.Next && - (Op->Asl.ParseOpcode != PARSEOP_EXTERNAL && - Op->Asl.Parent->Asl.ParseOpcode != PARSEOP_EXTERNAL) && - (Node->Flags & ANOBJ_IS_EXTERNAL)) + (Node->Flags & ANOBJ_IS_EXTERNAL) && + Op->Asl.Parent->Asl.ParseOpcode != PARSEOP_EXTERNAL && + Op->Asl.ParseOpcode != PARSEOP_EXTERNAL && + Op->Asl.Parent->Asl.ParseOpcode != PARSEOP_CONDREFOF && + !XfRefIsGuardedByIfCondRefOf (Node, Op)) { AslError (ASL_ERROR, ASL_MSG_UNDEFINED_EXTERNAL, Op, NULL); } @@ -1216,6 +1259,96 @@ XfNamespaceLocateBegin ( Op->Asl.Node = Node; return_ACPI_STATUS (Status); +} + + +/******************************************************************************* + * + * FUNCTION: XfRefIsGuardedByIfCondRefOf + * + * PARAMETERS: Node - Named object reference node + * Op - Named object reference parse node + * + * RETURN: BOOLEAN + * + * DESCRIPTION: returns true if Op checked inside if (CondRefOf (...)) + * refers to Node. + * + ******************************************************************************/ + +static BOOLEAN +XfRefIsGuardedByIfCondRefOf ( + ACPI_NAMESPACE_NODE *Node, + ACPI_PARSE_OBJECT *Op) +{ + ACPI_PARSE_OBJECT *Parent = Op->Asl.Parent; + + + while (Parent) + { + if (Parent->Asl.ParseOpcode == PARSEOP_IF && + XfFindCondRefOfName (Node, Parent->Asl.Child)) + { + return (TRUE); + } + + Parent = Parent->Asl.Parent; + } + + return (FALSE); +} + + +/******************************************************************************* + * + * FUNCTION: XfRefIsGuardedByIfCondRefOf + * + * PARAMETERS: Node - Named object reference node + * Op - Named object reference parse node + * + * RETURN: BOOLEAN + * + * DESCRIPTION: returns true if Op checked inside if (CondRefOf (...)) + * refers to Node. + * + ******************************************************************************/ + +static BOOLEAN +XfFindCondRefOfName ( + ACPI_NAMESPACE_NODE *Node, + ACPI_PARSE_OBJECT *Op) +{ + BOOLEAN CondRefOfFound = FALSE; + + + if (!Op) + { + return (FALSE); + } + + switch (Op->Asl.ParseOpcode) + { + case PARSEOP_CONDREFOF: + + return (Op->Asl.Child->Common.Node == Node); + break; + + case PARSEOP_LAND: + + CondRefOfFound = XfFindCondRefOfName (Node, Op->Asl.Child); + if (CondRefOfFound) + { + return (TRUE); + } + + return (XfFindCondRefOfName (Node, Op->Asl.Child->Asl.Next)); + break; + + default: + + return (FALSE); + break; + } } Modified: vendor-sys/acpica/dist/source/compiler/dtutils.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/dtutils.c Thu Apr 30 22:08:40 2020 (r360511) +++ vendor-sys/acpica/dist/source/compiler/dtutils.c Thu Apr 30 23:40:36 2020 (r360512) @@ -186,11 +186,20 @@ DtError ( DT_FIELD *FieldObject, char *ExtraMessage) { + UINT32 Line = 0; + + /* Field object could be NULL */ + + if (FieldObject) + { + Line = FieldObject->Line; + } + /* Check if user wants to ignore this exception */ if (AslIsExceptionIgnored (AslGbl_Files[ASL_FILE_INPUT].Filename, - FieldObject->Line, Level, MessageId)) + Line, Level, MessageId)) { return; } Modified: vendor-sys/acpica/dist/source/components/debugger/dbhistry.c ============================================================================== --- vendor-sys/acpica/dist/source/components/debugger/dbhistry.c Thu Apr 30 22:08:40 2020 (r360511) +++ vendor-sys/acpica/dist/source/components/debugger/dbhistry.c Thu Apr 30 23:40:36 2020 (r360512) @@ -175,7 +175,6 @@ static HISTORY_INFO AcpiGbl_HistoryBuffer[HIST static UINT16 AcpiGbl_LoHistory = 0; static UINT16 AcpiGbl_NumHistory = 0; static UINT16 AcpiGbl_NextHistoryIndex = 0; -UINT32 AcpiGbl_NextCmdNum = 1; /******************************************************************************* Modified: vendor-sys/acpica/dist/source/components/disassembler/dmbuffer.c ============================================================================== --- vendor-sys/acpica/dist/source/components/disassembler/dmbuffer.c Thu Apr 30 22:08:40 2020 (r360511) +++ vendor-sys/acpica/dist/source/components/disassembler/dmbuffer.c Thu Apr 30 23:40:36 2020 (r360512) @@ -400,6 +400,10 @@ AcpiDmIsUuidBuffer ( /* Buffer size is the buffer argument */ SizeOp = Op->Common.Value.Arg; + if (!SizeOp) + { + return (FALSE); + } /* Next, the initializer byte list to examine */ @@ -520,6 +524,10 @@ AcpiDmIsUnicodeBuffer ( /* Buffer size is the buffer argument */ SizeOp = Op->Common.Value.Arg; + if (!SizeOp) + { + return (FALSE); + } /* Next, the initializer byte list to examine */ @@ -596,6 +604,10 @@ AcpiDmIsStringBuffer ( /* Buffer size is the buffer argument */ SizeOp = Op->Common.Value.Arg; + if (!SizeOp) + { + return (FALSE); + } /* Next, the initializer byte list to examine */ @@ -675,13 +687,18 @@ AcpiDmIsPldBuffer ( UINT64 InitializerSize; + if (!Op) + { + return (FALSE); + } + /* * Get the BufferSize argument - Buffer(BufferSize) * If the buffer was generated by the ToPld macro, it must * be a BYTE constant. */ SizeOp = Op->Common.Value.Arg; - if (SizeOp->Common.AmlOpcode != AML_BYTE_OP) + if (!SizeOp || SizeOp->Common.AmlOpcode != AML_BYTE_OP) { return (FALSE); } Modified: vendor-sys/acpica/dist/source/components/dispatcher/dsfield.c ============================================================================== --- vendor-sys/acpica/dist/source/components/dispatcher/dsfield.c Thu Apr 30 22:08:40 2020 (r360511) +++ vendor-sys/acpica/dist/source/components/dispatcher/dsfield.c Thu Apr 30 23:40:36 2020 (r360512) @@ -341,8 +341,13 @@ AcpiDsCreateBufferField ( Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Common.Value.String, ACPI_TYPE_ANY, ACPI_IMODE_LOAD_PASS1, Flags, WalkState, &Node); - if (ACPI_FAILURE (Status)) + if ((WalkState->ParseFlags & ACPI_PARSE_DISASSEMBLE) && + Status == AE_ALREADY_EXISTS) { + Status = AE_OK; + } + else if (ACPI_FAILURE (Status)) + { ACPI_ERROR_NAMESPACE (WalkState->ScopeInfo, Arg->Common.Value.String, Status); return_ACPI_STATUS (Status); @@ -682,12 +687,21 @@ AcpiDsCreateField ( Info.RegionNode = RegionNode; Status = AcpiDsGetFieldNames (&Info, WalkState, Arg->Common.Next); - if (Info.RegionNode->Object->Region.SpaceId == ACPI_ADR_SPACE_PLATFORM_COMM && - !(RegionNode->Object->Field.InternalPccBuffer - = ACPI_ALLOCATE_ZEROED(Info.RegionNode->Object->Region.Length))) + if (ACPI_FAILURE (Status)) { - return_ACPI_STATUS (AE_NO_MEMORY); + return_ACPI_STATUS (Status); } + + if (Info.RegionNode->Object->Region.SpaceId == ACPI_ADR_SPACE_PLATFORM_COMM) + { + RegionNode->Object->Field.InternalPccBuffer = + ACPI_ALLOCATE_ZEROED(Info.RegionNode->Object->Region.Length); + if (!RegionNode->Object->Field.InternalPccBuffer) + { + return_ACPI_STATUS (AE_NO_MEMORY); + } + } + return_ACPI_STATUS (Status); } Modified: vendor-sys/acpica/dist/source/components/executer/exfield.c ============================================================================== --- vendor-sys/acpica/dist/source/components/executer/exfield.c Thu Apr 30 22:08:40 2020 (r360511) +++ vendor-sys/acpica/dist/source/components/executer/exfield.c Thu Apr 30 23:40:36 2020 (r360512) @@ -167,7 +167,7 @@ #define ACPI_INVALID_PROTOCOL_ID 0x80 #define ACPI_MAX_PROTOCOL_ID 0x0F -const UINT8 AcpiProtocolLengths[] = +static const UINT8 AcpiProtocolLengths[] = { ACPI_INVALID_PROTOCOL_ID, /* 0 - reserved */ ACPI_INVALID_PROTOCOL_ID, /* 1 - reserved */ Modified: vendor-sys/acpica/dist/source/include/acglobal.h ============================================================================== --- vendor-sys/acpica/dist/source/include/acglobal.h Thu Apr 30 22:08:40 2020 (r360511) +++ vendor-sys/acpica/dist/source/include/acglobal.h Thu Apr 30 23:40:36 2020 (r360512) @@ -436,6 +436,7 @@ ACPI_GLOBAL (ACPI_EXTERNAL_FILE *, AcpiGbl_Extern #ifdef ACPI_DEBUGGER ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_AbortMethod, FALSE); ACPI_INIT_GLOBAL (ACPI_THREAD_ID, AcpiGbl_DbThreadId, ACPI_INVALID_THREAD_ID); +ACPI_INIT_GLOBAL (UINT32, AcpiGbl_NextCmdNum, 1); ACPI_GLOBAL (BOOLEAN, AcpiGbl_DbOpt_NoIniMethods); ACPI_GLOBAL (BOOLEAN, AcpiGbl_DbOpt_NoRegionSupport); Modified: vendor-sys/acpica/dist/source/include/acpixf.h ============================================================================== --- vendor-sys/acpica/dist/source/include/acpixf.h Thu Apr 30 22:08:40 2020 (r360511) +++ vendor-sys/acpica/dist/source/include/acpixf.h Thu Apr 30 23:40:36 2020 (r360512) @@ -154,7 +154,7 @@ /* Current ACPICA subsystem version in YYYYMMDD format */ -#define ACPI_CA_VERSION 0x20200326 +#define ACPI_CA_VERSION 0x20200430 #include "acconfig.h" #include "actypes.h" Modified: vendor-sys/acpica/dist/source/include/acpredef.h ============================================================================== --- vendor-sys/acpica/dist/source/include/acpredef.h Thu Apr 30 22:08:40 2020 (r360511) +++ vendor-sys/acpica/dist/source/include/acpredef.h Thu Apr 30 23:40:36 2020 (r360512) @@ -769,10 +769,10 @@ const ACPI_PREDEFINED_INFO AcpiGbl_Predefined {{"_NIC", METHOD_0ARGS, /* ACPI 6.3 */ METHOD_RETURNS (ACPI_RTYPE_BUFFER)}}, - {{"_NIG", METHOD_1ARGS (ACPI_TYPE_BUFFER), /* ACPI 6.3 */ + {{"_NIG", METHOD_0ARGS, /* ACPI 6.3 */ METHOD_RETURNS (ACPI_RTYPE_BUFFER)}}, - {{"_NIH", METHOD_0ARGS, /* ACPI 6.3 */ + {{"_NIH", METHOD_1ARGS (ACPI_TYPE_BUFFER), /* ACPI 6.3 */ METHOD_RETURNS (ACPI_RTYPE_BUFFER)}}, {{"_NTT", METHOD_0ARGS, Modified: vendor-sys/acpica/dist/source/tools/acpiexec/aemain.c ============================================================================== --- vendor-sys/acpica/dist/source/tools/acpiexec/aemain.c Thu Apr 30 22:08:40 2020 (r360511) +++ vendor-sys/acpica/dist/source/tools/acpiexec/aemain.c Thu Apr 30 23:40:36 2020 (r360512) @@ -633,6 +633,7 @@ main ( ACPI_CHECK_OK (AcpiInitializeSubsystem, Status); if (ACPI_FAILURE (Status)) { + ExitCode = -1; goto ErrorExit; } @@ -646,6 +647,7 @@ main ( ACPI_CHECK_OK (AcpiInitializeDebugger, Status); if (ACPI_FAILURE (Status)) { + ExitCode = -1; goto ErrorExit; } @@ -707,6 +709,7 @@ main ( Status = AeBuildLocalTables (ListHead); if (ACPI_FAILURE (Status)) { + ExitCode = -1; goto ErrorExit; } @@ -743,8 +746,9 @@ main ( Status = AeLoadTables (); if (ACPI_FAILURE (Status)) { - ExitCode = -1; - goto ErrorExit; + printf ("**** Could not load ACPI tables, %s\n", + AcpiFormatException (Status)); + goto EnterDebugger; } /* @@ -754,13 +758,6 @@ main ( */ if (AcpiGbl_AeLoadOnly) { - goto EnterDebugger; - } - - if (ACPI_FAILURE (Status)) - { - printf ("**** Could not load ACPI tables, %s\n", - AcpiFormatException (Status)); goto EnterDebugger; } From owner-svn-src-all@freebsd.org Thu Apr 30 23: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 999632CB8AB; Thu, 30 Apr 2020 23:41:23 +0000 (UTC) (envelope-from jkim@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 49CsN33cLGz4CZ1; Thu, 30 Apr 2020 23:41:23 +0000 (UTC) (envelope-from jkim@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 5E0BD26D92; Thu, 30 Apr 2020 23:41:23 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 03UNfN6V082931; Thu, 30 Apr 2020 23:41:23 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 03UNfNJL082930; Thu, 30 Apr 2020 23:41:23 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <202004302341.03UNfNJL082930@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Thu, 30 Apr 2020 23:41:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r360513 - vendor-sys/acpica/20200430 X-SVN-Group: vendor-sys X-SVN-Commit-Author: jkim X-SVN-Commit-Paths: vendor-sys/acpica/20200430 X-SVN-Commit-Revision: 360513 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, 30 Apr 2020 23:41:23 -0000 Author: jkim Date: Thu Apr 30 23:41:22 2020 New Revision: 360513 URL: https://svnweb.freebsd.org/changeset/base/360513 Log: Tag ACPICA 20200430. Added: vendor-sys/acpica/20200430/ - copied from r360512, vendor-sys/acpica/dist/ From owner-svn-src-all@freebsd.org Fri May 1 00:36: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 8882B2CC6A8; Fri, 1 May 2020 00:36: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 49CtbM2qpPz4Fdf; Fri, 1 May 2020 00:36: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 425952785B; Fri, 1 May 2020 00:36: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 0410aFiE016655; Fri, 1 May 2020 00:36:15 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0410aErC016653; Fri, 1 May 2020 00:36:14 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <202005010036.0410aErC016653@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Fri, 1 May 2020 00:36:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360514 - 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: 360514 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, 01 May 2020 00:36:15 -0000 Author: rmacklem Date: Fri May 1 00:36:14 2020 New Revision: 360514 URL: https://svnweb.freebsd.org/changeset/base/360514 Log: Factor some code out of nfsm_dissct() into separate functions. Factoring some of the code in nfsm_dissct() out into separate functions allows these functions to be used elsewhere in the NFS mbuf handling code. Other uses of these functions will be done in future commits. It also makes it easier to add support for ext_pgs mbufs, which is needed for nfs-over-tls under development in base/projects/nfs-over-tls. Although the algorithm in nfsm_dissct() is somewhat re-written by this patch, the semantics of nfsm_dissct() should not have changed. Modified: head/sys/fs/nfs/nfs_commonsubs.c head/sys/fs/nfs/nfs_var.h Modified: head/sys/fs/nfs/nfs_commonsubs.c ============================================================================== --- head/sys/fs/nfs/nfs_commonsubs.c Thu Apr 30 23:41:22 2020 (r360513) +++ head/sys/fs/nfs/nfs_commonsubs.c Fri May 1 00:36:14 2020 (r360514) @@ -229,6 +229,8 @@ static void nfsrv_removeuser(struct nfsusrgrp *usrp, i static int nfsrv_getrefstr(struct nfsrv_descript *, u_char **, u_char **, int *, int *); static void nfsrv_refstrbigenough(int, u_char **, u_char **, int *); +static int nfsm_copyfrommbuf(struct nfsrv_descript *, char *, enum uio_seg, + int); static struct { int op; @@ -701,52 +703,49 @@ nfsm_dissct(struct nfsrv_descript *nd, int siz, int ho caddr_t retp; retp = NULL; - left = mtod(nd->nd_md, caddr_t) + nd->nd_md->m_len - nd->nd_dpos; + left = mtod(nd->nd_md, char *) + nd->nd_md->m_len - + nd->nd_dpos; while (left == 0) { - nd->nd_md = nd->nd_md->m_next; - if (nd->nd_md == NULL) - return (retp); - left = nd->nd_md->m_len; - nd->nd_dpos = mtod(nd->nd_md, caddr_t); + if (!nfsm_shiftnext(nd, &left)) + return (NULL); } if (left >= siz) { retp = nd->nd_dpos; nd->nd_dpos += siz; - } else if (nd->nd_md->m_next == NULL) { - return (retp); } else if (siz > ncl_mbuf_mhlen) { panic("nfs S too big"); } else { + /* Allocate a new mbuf for the "siz" bytes of data. */ MGET(mp2, MT_DATA, how); if (mp2 == NULL) return (NULL); + + /* + * Link the new mp2 mbuf into the list then copy left + * bytes from the mbuf before it and siz - left bytes + * from the mbuf(s) after it. + */ 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 = mtod(mp2, caddr_t); - NFSBCOPY(nd->nd_dpos, p, left); /* Copy what was left */ + retp = p = mtod(mp2, char *); + memcpy(p, nd->nd_dpos, left); /* Copy what was left */ siz2 = siz - left; p += left; - mp2 = mp2->m_next; + mp2->m_len = siz; + nd->nd_md = mp2->m_next; /* Loop around copying up the siz2 bytes */ while (siz2 > 0) { - if (mp2 == NULL) + if (nd->nd_md == NULL) return (NULL); - xfer = (siz2 > mp2->m_len) ? mp2->m_len : siz2; - if (xfer > 0) { - NFSBCOPY(mtod(mp2, caddr_t), p, xfer); - mp2->m_data += xfer; - mp2->m_len -= xfer; - p += xfer; - siz2 -= xfer; - } + nfsm_set(nd, 0, false); + xfer = nfsm_copyfrommbuf(nd, p, + UIO_SYSSPACE, siz2); + p += xfer; + siz2 -= xfer; if (siz2 > 0) - mp2 = mp2->m_next; + nd->nd_md = nd->nd_md->m_next; } - nd->nd_md->m_len = siz; - nd->nd_md = mp2; - nd->nd_dpos = mtod(mp2, caddr_t); } return (retp); } @@ -4825,5 +4824,76 @@ nfsv4_findmirror(struct nfsmount *nmp) } } return (ds); +} + +/* + * Fill in the fields of "struct nfsrv_descript" for a new ext_pgs mbuf. + * The build argument is true for build and false for dissect. + */ +int +nfsm_set(struct nfsrv_descript *nd, u_int offs, bool build) +{ + struct mbuf *m; + int rlen; + + if (build) + m = nd->nd_mb; + else + m = nd->nd_md; + if (build) { + nd->nd_bpos = mtod(m, char *) + offs; + rlen = m->m_len - offs; + } else { + nd->nd_dpos = mtod(m, char *); + rlen = m->m_len; + } + return (rlen); +} + +/* + * Copy up to "len" bytes from the mbuf into "cp" and adjust the + * mbuf accordingly. + * If cp == NULL, do not do the actual copy, but adjust the mbuf. + * Return the number of bytes actually copied. + * Adjust m_data and m_len so that a future calculation of what + * is left using mtod() will work correctly. + */ +static int +nfsm_copyfrommbuf(struct nfsrv_descript *nd, char *cp, enum uio_seg segflg, + int len) +{ + struct mbuf *m; + int xfer; + + m = nd->nd_md; + xfer = mtod(m, char *) + m->m_len - nd->nd_dpos; + xfer = min(xfer, len); + if (xfer > 0) { + if (cp != NULL) { + if (segflg == UIO_SYSSPACE) + memcpy(cp, nd->nd_dpos, xfer); + else + copyout(nd->nd_dpos, cp, xfer); + } + nd->nd_dpos += xfer; + m->m_data += xfer; + m->m_len -= xfer; + } + return (xfer); +} + +/* + * Shift to the next mbuf in the list list and update the nd fields. + * Return true if successful, false otherwise. + */ +bool +nfsm_shiftnext(struct nfsrv_descript *nd, int *leftp) +{ + + nd->nd_md = nd->nd_md->m_next; + if (nd->nd_md == NULL) + return (false); + *leftp = nfsm_set(nd, 0, false); + return (true); } Modified: head/sys/fs/nfs/nfs_var.h ============================================================================== --- head/sys/fs/nfs/nfs_var.h Thu Apr 30 23:41:22 2020 (r360513) +++ head/sys/fs/nfs/nfs_var.h Fri May 1 00:36:14 2020 (r360514) @@ -361,6 +361,8 @@ int nfsv4_sequencelookup(struct nfsmount *, struct nfs void nfsv4_freeslot(struct nfsclsession *, int); struct ucred *nfsrv_getgrpscred(struct ucred *); struct nfsdevice *nfsv4_findmirror(struct nfsmount *); +int nfsm_set(struct nfsrv_descript *, u_int, bool); +bool nfsm_shiftnext(struct nfsrv_descript *, int *); /* nfs_clcomsubs.c */ void nfsm_uiombuf(struct nfsrv_descript *, struct uio *, int); From owner-svn-src-all@freebsd.org Fri May 1 00:40: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 1C9A52CC7DD; Fri, 1 May 2020 00:40:19 +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 49Cth273rzz4FpP; Fri, 1 May 2020 00:40:18 +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 E90682785F; Fri, 1 May 2020 00:40:18 +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 0410eIbx016950; Fri, 1 May 2020 00:40:18 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0410eIxN016949; Fri, 1 May 2020 00:40:18 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202005010040.0410eIxN016949@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 1 May 2020 00:40:18 +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: r360515 - stable/12/sys/dev/hwpmc X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/12/sys/dev/hwpmc X-SVN-Commit-Revision: 360515 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, 01 May 2020 00:40:19 -0000 Author: mav Date: Fri May 1 00:40:18 2020 New Revision: 360515 URL: https://svnweb.freebsd.org/changeset/base/360515 Log: MFC r360266: Add family 0x5F (Denverton) to PMC_CPU_INTEL_ATOM_GOLDMONT. According to the 325462-071US document, they should be the same. Modified: stable/12/sys/dev/hwpmc/hwpmc_intel.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/hwpmc/hwpmc_intel.c ============================================================================== --- stable/12/sys/dev/hwpmc/hwpmc_intel.c Fri May 1 00:36:14 2020 (r360514) +++ stable/12/sys/dev/hwpmc/hwpmc_intel.c Fri May 1 00:40:18 2020 (r360515) @@ -204,6 +204,7 @@ pmc_intel_initialize(void) nclasses = 3; break; case 0x5C: /* Per Intel document 325462-071US 10/2019. */ + case 0x5F: cputype = PMC_CPU_INTEL_ATOM_GOLDMONT; nclasses = 3; break; From owner-svn-src-all@freebsd.org Fri May 1 00:41: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 B20D72CCA05; Fri, 1 May 2020 00:41:41 +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 49Ctjd4LQ5z4G6p; Fri, 1 May 2020 00:41:41 +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 90443278CB; Fri, 1 May 2020 00:41:41 +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 0410ffYX020089; Fri, 1 May 2020 00:41:41 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0410ffBk020088; Fri, 1 May 2020 00:41:41 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202005010041.0410ffBk020088@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 1 May 2020 00:41:41 +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: r360516 - stable/12/lib/libpmc/pmu-events/arch/x86 X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/12/lib/libpmc/pmu-events/arch/x86 X-SVN-Commit-Revision: 360516 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, 01 May 2020 00:41:41 -0000 Author: mav Date: Fri May 1 00:41:41 2020 New Revision: 360516 URL: https://svnweb.freebsd.org/changeset/base/360516 Log: MFC r360269: Map family 0x5F (Denverton) to goldmont. According to the 325462-071US document, they should be the same. Modified: stable/12/lib/libpmc/pmu-events/arch/x86/mapfile.csv Directory Properties: stable/12/ (props changed) Modified: stable/12/lib/libpmc/pmu-events/arch/x86/mapfile.csv ============================================================================== --- stable/12/lib/libpmc/pmu-events/arch/x86/mapfile.csv Fri May 1 00:40:18 2020 (r360515) +++ stable/12/lib/libpmc/pmu-events/arch/x86/mapfile.csv Fri May 1 00:41:41 2020 (r360516) @@ -9,6 +9,7 @@ GenuineIntel-6-27,v4,bonnell,core GenuineIntel-6-36,v4,bonnell,core GenuineIntel-6-35,v4,bonnell,core GenuineIntel-6-5C,v8,goldmont,core +GenuineIntel-6-5F,v8,goldmont,core GenuineIntel-6-7A,v1,goldmontplus,core GenuineIntel-6-3C,v24,haswell,core GenuineIntel-6-45,v24,haswell,core From owner-svn-src-all@freebsd.org Fri May 1 01:26: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 82FBF2CD76B; Fri, 1 May 2020 01:26:40 +0000 (UTC) (envelope-from jkim@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 49CvjX3BmHz4J56; Fri, 1 May 2020 01:26:40 +0000 (UTC) (envelope-from jkim@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 66037225; Fri, 1 May 2020 01:26:40 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0411QefJ047337; Fri, 1 May 2020 01:26:40 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0411QaEF047318; Fri, 1 May 2020 01:26:36 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <202005010126.0411QaEF047318@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Fri, 1 May 2020 01:26:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360517 - in head/sys/contrib/dev/acpica: . common compiler components/debugger components/disassembler components/dispatcher components/executer include X-SVN-Group: head X-SVN-Commit-Author: jkim X-SVN-Commit-Paths: in head/sys/contrib/dev/acpica: . common compiler components/debugger components/disassembler components/dispatcher components/executer include X-SVN-Commit-Revision: 360517 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, 01 May 2020 01:26:40 -0000 Author: jkim Date: Fri May 1 01:26:36 2020 New Revision: 360517 URL: https://svnweb.freebsd.org/changeset/base/360517 Log: MFV: r360512 Merge ACPICA 20200430. Modified: head/sys/contrib/dev/acpica/changes.txt head/sys/contrib/dev/acpica/common/acgetline.c head/sys/contrib/dev/acpica/common/dmtbdump2.c head/sys/contrib/dev/acpica/compiler/aslcompiler.l head/sys/contrib/dev/acpica/compiler/aslload.c head/sys/contrib/dev/acpica/compiler/aslmessages.c head/sys/contrib/dev/acpica/compiler/aslmessages.h head/sys/contrib/dev/acpica/compiler/aslpredef.c head/sys/contrib/dev/acpica/compiler/aslxref.c head/sys/contrib/dev/acpica/compiler/dtutils.c head/sys/contrib/dev/acpica/components/debugger/dbhistry.c head/sys/contrib/dev/acpica/components/disassembler/dmbuffer.c head/sys/contrib/dev/acpica/components/dispatcher/dsfield.c head/sys/contrib/dev/acpica/components/executer/exfield.c head/sys/contrib/dev/acpica/include/acglobal.h head/sys/contrib/dev/acpica/include/acpixf.h head/sys/contrib/dev/acpica/include/acpredef.h Directory Properties: head/sys/contrib/dev/acpica/ (props changed) Modified: head/sys/contrib/dev/acpica/changes.txt ============================================================================== --- head/sys/contrib/dev/acpica/changes.txt Fri May 1 00:41:41 2020 (r360516) +++ head/sys/contrib/dev/acpica/changes.txt Fri May 1 01:26:36 2020 (r360517) @@ -1,4 +1,61 @@ ---------------------------------------- + + +30 April 2020. Summary of changes for version 20200430: + + +1) ACPICA kernel-resident subsystem: + +Cleaned up the coding style of a couple of global variables +(AcpiGbl_NextCmdNum and AcpiProtocolLengths) caught by static analyzers. +AcpiProtocolLengths was made static, and the definition of +AcpiGbl_NextCmdNum was moved to acglobal.h. + + +2) iASL Compiler/Disassembler and ACPICA tools: + +iASL DataTable Compiler: Fixed a segfault on errors that aren't directly +associated with a field. + +Disassembler: has been made more resilient so that it will continue to +parse AML even if the AML generates ACPI namespace errors. This enables +iASL to disassemble some AML that may have been compiled using older +versions of iASL that no longer compile with newer versions of iASL. + +iASL: Fixed the required parameters for _NIH and _NIG. Previously, there +was a mixup where _NIG required one parameter and _NIH required zero +parameters. This change swaps these parameter requirements. Now it is +required that _NIH must be called with one parameter and _NIG requires +zero parameters. + +iASL: Allow use of undefined externals as long as they are protected by +an if (CondRefOf (...)) block when compiling multiple definition blocks. + +iASL: Fixed the type override behavior of named objects that are declared +as External. External declarations will no longer override the type of +the actual definition if it already exists. + +AcpiNames: Added setargv.obj to the MSVC 2017 link sequence to enable +command line wildcard support on Windows. Note: the AcpiNames utility is +essentially redundant with the AcpiExec utility (using the "namespace" +command) and is therefore deprecated. It will be removed in future +releases of ACPICA. + +Disassembler: ignore AE_ALREADY_EXISTS status when parsing create* +operators. The disassembler is intended to emit existing ASL code as-is. +Therefore, error messages emitted during disassembly should be ignored or +handled in a way such that the disassembler can continue to parse the +AML. This change ignores AE_ALREADY_EXISTS errors during the deferred Op +parsing for create operators in order to complete parsing ASL termlists. + +iASL DataTable Compiler: IVRS table: fix potentially uninitialized +variable warning. Some compilers catch potential uninitialized variables. +This is done by examining branches of if/else statements. This change +replaces an "else if" with an "else" to fix the uninitialized variable +warning. + + +---------------------------------------- 26 March 2020. Summary of changes for version 20200326: @@ -674,7 +731,7 @@ temporary. iASL: Emit error for creation of a zero-length operation region. Such a region is rather pointless. If encountered, a runtime error is also -implemented in the interpeter. +implemented in the interpreter. Debugger: Fix a possible fault with the "test objects" command. Modified: head/sys/contrib/dev/acpica/common/acgetline.c ============================================================================== --- head/sys/contrib/dev/acpica/common/acgetline.c Fri May 1 00:41:41 2020 (r360516) +++ head/sys/contrib/dev/acpica/common/acgetline.c Fri May 1 01:26:36 2020 (r360517) @@ -189,8 +189,6 @@ AcpiAcClearLine ( #define _ASCII_LEFT_ARROW 'D' #define _ASCII_NEWLINE '\n' -extern UINT32 AcpiGbl_NextCmdNum; - /* Erase a single character on the input command line */ #define ACPI_CLEAR_CHAR() \ Modified: head/sys/contrib/dev/acpica/common/dmtbdump2.c ============================================================================== --- head/sys/contrib/dev/acpica/common/dmtbdump2.c Fri May 1 00:41:41 2020 (r360516) +++ head/sys/contrib/dev/acpica/common/dmtbdump2.c Fri May 1 01:26:36 2020 (r360517) @@ -528,8 +528,10 @@ AcpiDmDumpIvrs ( DeviceEntry = ACPI_ADD_PTR (ACPI_IVRS_DE_HEADER, Subtable, sizeof (ACPI_IVRS_HARDWARE1)); } - else if (Subtable->Type == ACPI_IVRS_TYPE_HARDWARE2) + else { + /* ACPI_IVRS_TYPE_HARDWARE2 subtable type */ + EntryOffset = Offset + sizeof (ACPI_IVRS_HARDWARE2); DeviceEntry = ACPI_ADD_PTR (ACPI_IVRS_DE_HEADER, Subtable, sizeof (ACPI_IVRS_HARDWARE2)); Modified: head/sys/contrib/dev/acpica/compiler/aslcompiler.l ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslcompiler.l Fri May 1 00:41:41 2020 (r360516) +++ head/sys/contrib/dev/acpica/compiler/aslcompiler.l Fri May 1 01:26:36 2020 (r360517) @@ -819,7 +819,7 @@ NamePathTail [.]{NameSeg} } /* - * The eror code is contained inside the + * The error code is contained inside the * {ErrorCode} pattern. Extract it and log it * as the expected error code. */ Modified: head/sys/contrib/dev/acpica/compiler/aslload.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslload.c Fri May 1 00:41:41 2020 (r360516) +++ head/sys/contrib/dev/acpica/compiler/aslload.c Fri May 1 01:26:36 2020 (r360517) @@ -1,6 +1,6 @@ /****************************************************************************** * - * Module Name: dswload - Dispatcher namespace load callbacks + * Module Name: aslload - compiler namespace load callbacks * *****************************************************************************/ @@ -201,7 +201,6 @@ LdAnalyzeExternals ( ACPI_NAMESPACE_NODE *Node, ACPI_PARSE_OBJECT *Op, ACPI_OBJECT_TYPE ExternalOpType, - ACPI_OBJECT_TYPE ObjectType, ACPI_WALK_STATE *WalkState); @@ -515,7 +514,6 @@ LdNamespace1Begin ( ACPI_PARSE_OBJECT *MethodOp; ACPI_STATUS Status; ACPI_OBJECT_TYPE ObjectType; - ACPI_OBJECT_TYPE ActualObjectType = ACPI_TYPE_ANY; char *Path; UINT32 Flags = ACPI_NS_NO_UPSEARCH; ACPI_PARSE_OBJECT *Arg; @@ -689,8 +687,7 @@ LdNamespace1Begin ( * * first child is name, next child is ObjectType */ - ActualObjectType = (UINT8) Op->Asl.Child->Asl.Next->Asl.Value.Integer; - ObjectType = ACPI_TYPE_ANY; + ObjectType = (UINT8) Op->Asl.Child->Asl.Next->Asl.Value.Integer; /* * We will mark every new node along the path as "External". This @@ -709,7 +706,7 @@ LdNamespace1Begin ( * Store (\_SB_.PCI0.ABCD, Local0) * } */ - Flags |= ACPI_NS_EXTERNAL; + Flags |= ACPI_NS_EXTERNAL | ACPI_NS_DONT_OPEN_SCOPE; break; case PARSEOP_DEFAULT_ARG: @@ -913,8 +910,7 @@ LdNamespace1Begin ( else if ((Node->Flags & ANOBJ_IS_EXTERNAL) || (Op->Asl.ParseOpcode == PARSEOP_EXTERNAL)) { - Status = LdAnalyzeExternals (Node, Op, ActualObjectType, - ObjectType, WalkState); + Status = LdAnalyzeExternals (Node, Op, ObjectType, WalkState); if (ACPI_FAILURE (Status)) { if (Status == AE_ERROR) @@ -929,6 +925,19 @@ LdNamespace1Begin ( } return_ACPI_STATUS (Status); } + + if (!(Node->Flags & ANOBJ_IS_EXTERNAL) && + (Op->Asl.ParseOpcode == PARSEOP_EXTERNAL)) + { + /* + * If we get to here, it means that an actual definition of + * the object declared external exists. Meaning that Op + * loading this this Op should have no change to the ACPI + * namespace. By going to FinishNode, we skip the + * assignment of Node->Op = Op. + */ + goto FinishNode; + } } else { @@ -980,31 +989,16 @@ LdNamespace1Begin ( } } -FinishNode: - /* - * Point the parse node to the new namespace node, and point - * the Node back to the original Parse node - */ - Op->Asl.Node = Node; + /* Point the Node back to the original Parse node */ + Node->Op = Op; - /* - * Set the actual data type if appropriate (EXTERNAL term only) - * As of 11/19/2019, ASL External() does not support parameter - * counts. When an External method is loaded, the parameter count is - * recorded in the external's arg count parameter. The parameter count may - * or may not be known in the declaration. If the value of this node turns - * out to be ASL_EXTERNAL_METHOD_UNKNOWN_PARAMS, it indicates that - * we do not know the parameter count and that we must look at the usage of - * the External method call to get this information. - */ - if (ActualObjectType != ACPI_TYPE_ANY) - { - Node->Type = (UINT8) ActualObjectType; - Node->Value = (UINT32) - Op->Asl.Child->Asl.Next->Asl.Next->Asl.Value.Integer; - } +FinishNode: + /* Point the parse node to the new namespace node */ + + Op->Asl.Node = Node; + if (Op->Asl.ParseOpcode == PARSEOP_METHOD) { /* @@ -1013,6 +1007,13 @@ FinishNode: */ Node->Value = (UINT32) Op->Asl.Extra; } + else if (Op->Asl.ParseOpcode == PARSEOP_EXTERNAL && + Node->Type == ACPI_TYPE_METHOD && + (Node->Flags & ANOBJ_IS_EXTERNAL)) + { + Node->Value = + (UINT32) Op->Asl.Child->Asl.Next->Asl.Next->Asl.Value.Integer; + } return_ACPI_STATUS (Status); } @@ -1020,7 +1021,7 @@ FinishNode: /******************************************************************************* * - * FUNCTION: LdAnalyzeExternals + * FUNCTION: LdMatchExternType * * PARAMETERS: Type1 * Type2 @@ -1037,7 +1038,7 @@ FinishNode: ******************************************************************************/ static BOOLEAN -LdTypesMatchExternType ( +LdMatchExternType ( ACPI_OBJECT_TYPE Type1, ACPI_OBJECT_TYPE Type2) { @@ -1093,7 +1094,6 @@ LdTypesMatchExternType ( * PARAMETERS: Node - Node that represents the named object * Op - Named object declaring this named object * ExternalOpType - Type of ExternalOp - * ObjectType - Type of Declared object * WalkState - Current WalkState * * RETURN: Status @@ -1111,7 +1111,6 @@ LdAnalyzeExternals ( ACPI_NAMESPACE_NODE *Node, ACPI_PARSE_OBJECT *Op, ACPI_OBJECT_TYPE ExternalOpType, - ACPI_OBJECT_TYPE ObjectType, ACPI_WALK_STATE *WalkState) { ACPI_STATUS Status = AE_OK; @@ -1135,12 +1134,12 @@ LdAnalyzeExternals ( else { ActualExternalOpType = Node->Type; - ActualOpType = ObjectType; + ActualOpType = ExternalOpType; } if ((ActualOpType != ACPI_TYPE_ANY) && (ActualExternalOpType != ACPI_TYPE_ANY) && - !LdTypesMatchExternType (ActualExternalOpType, ActualOpType)) + !LdMatchExternType (ActualExternalOpType, ActualOpType)) { if (Op->Asl.ParseOpcode == PARSEOP_EXTERNAL && Node->Op->Asl.ParseOpcode == PARSEOP_EXTERNAL) @@ -1168,6 +1167,8 @@ LdAnalyzeExternals ( } } + /* Set the object type of the external */ + if ((Node->Flags & ANOBJ_IS_EXTERNAL) && (Op->Asl.ParseOpcode != PARSEOP_EXTERNAL)) { @@ -1176,13 +1177,13 @@ LdAnalyzeExternals ( * previously declared External */ Node->Flags &= ~ANOBJ_IS_EXTERNAL; - Node->Type = (UINT8) ObjectType; + Node->Type = (UINT8) ExternalOpType; /* Just retyped a node, probably will need to open a scope */ - if (AcpiNsOpensScope (ObjectType)) + if (AcpiNsOpensScope (ExternalOpType)) { - Status = AcpiDsScopeStackPush (Node, ObjectType, WalkState); + Status = AcpiDsScopeStackPush (Node, ExternalOpType, WalkState); if (ACPI_FAILURE (Status)) { return (Status); @@ -1203,7 +1204,7 @@ LdAnalyzeExternals ( } else if ((Node->Flags & ANOBJ_IS_EXTERNAL) && (Op->Asl.ParseOpcode == PARSEOP_EXTERNAL) && - (ObjectType == ACPI_TYPE_ANY)) + (ExternalOpType == ACPI_TYPE_ANY)) { /* Allow update of externals of unknown type. */ Modified: head/sys/contrib/dev/acpica/compiler/aslmessages.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslmessages.c Fri May 1 00:41:41 2020 (r360516) +++ head/sys/contrib/dev/acpica/compiler/aslmessages.c Fri May 1 01:26:36 2020 (r360517) @@ -380,6 +380,7 @@ const char *AslCompilerMsgs [] = /* ASL_MSG_TYPE_MISMATCH_FOUND_HERE */ "Actual object declaration:", /* ASL_MSG_DUPLICATE_EXTERN_MISMATCH */ "Type mismatch between multiple external declarations detected", /* ASL_MSG_DUPLICATE_EXTERN_FOUND_HERE */"Duplicate external declaration:", +/* ASL_MSG_CONDREF_NEEDS_EXTERNAL_DECL */"CondRefOf parameter requires External() declaration", }; /* Table compiler */ Modified: head/sys/contrib/dev/acpica/compiler/aslmessages.h ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslmessages.h Fri May 1 00:41:41 2020 (r360516) +++ head/sys/contrib/dev/acpica/compiler/aslmessages.h Fri May 1 01:26:36 2020 (r360517) @@ -382,6 +382,7 @@ typedef enum ASL_MSG_TYPE_MISMATCH_FOUND_HERE, ASL_MSG_DUPLICATE_EXTERN_MISMATCH, ASL_MSG_DUPLICATE_EXTERN_FOUND_HERE, + ASL_MSG_CONDREF_NEEDS_EXTERNAL_DECL, /* These messages are used by the Data Table compiler only */ Modified: head/sys/contrib/dev/acpica/compiler/aslpredef.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslpredef.c Fri May 1 00:41:41 2020 (r360516) +++ head/sys/contrib/dev/acpica/compiler/aslpredef.c Fri May 1 01:26:36 2020 (r360517) @@ -674,7 +674,7 @@ ApCheckForSpecialName ( /* * Was not actually emitted by the compiler. This is a special case, * however. If the ASL code being compiled was the result of a - * dissasembly, it may possibly contain valid compiler-emitted names + * disassembly, it may possibly contain valid compiler-emitted names * of the form "_T_x". We don't want to issue an error or even a * warning and force the user to manually change the names. So, we * will issue a remark instead. Modified: head/sys/contrib/dev/acpica/compiler/aslxref.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslxref.c Fri May 1 00:41:41 2020 (r360516) +++ head/sys/contrib/dev/acpica/compiler/aslxref.c Fri May 1 01:26:36 2020 (r360517) @@ -199,7 +199,17 @@ XfCheckFieldRange ( UINT32 FieldBitLength, UINT32 AccessBitWidth); +static BOOLEAN +XfFindCondRefOfName ( + ACPI_NAMESPACE_NODE *Node, + ACPI_PARSE_OBJECT *Op); +static BOOLEAN +XfRefIsGuardedByIfCondRefOf ( + ACPI_NAMESPACE_NODE *Node, + ACPI_PARSE_OBJECT *Op); + + /******************************************************************************* * * FUNCTION: XfCrossReferenceNamespace @@ -582,17 +592,6 @@ XfNamespaceLocateBegin ( } /* - * One special case: CondRefOf operator - we don't care if the name exists - * or not at this point, just ignore it, the point of the operator is to - * determine if the name exists at runtime. - */ - if ((Op->Asl.Parent) && - (Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_CONDREFOF)) - { - return_ACPI_STATUS (AE_OK); - } - - /* * We must enable the "search-to-root" for single NameSegs, but * we have to be very careful about opening up scopes */ @@ -600,7 +599,8 @@ XfNamespaceLocateBegin ( if ((Op->Asl.ParseOpcode == PARSEOP_NAMESTRING) || (Op->Asl.ParseOpcode == PARSEOP_NAMESEG) || (Op->Asl.ParseOpcode == PARSEOP_METHODCALL) || - (Op->Asl.ParseOpcode == PARSEOP_EXTERNAL)) + (Op->Asl.ParseOpcode == PARSEOP_EXTERNAL) || + (Op->Asl.ParseOpcode == PARSEOP_CONDREFOF)) { /* * These are name references, do not push the scope stack @@ -665,8 +665,23 @@ XfNamespaceLocateBegin ( * We didn't find the name reference by path -- we can qualify this * a little better before we print an error message */ - if (strlen (Path) == ACPI_NAMESEG_SIZE) + + if ((Op->Asl.Parent) && + (Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_CONDREFOF)) { + /* + * One special case: CondRefOf operator - if the name doesn't + * exist at this point, it means that there's no actual or + * external declaration. If the name is not found, just ignore + * it, the point of the operator is to determine if the name + * exists at runtime. We wanted to see if this named object + * exists to facilitate analysis to allow protected usage of + * undeclared externals. + */ + return_ACPI_STATUS (AE_OK); + } + else if (strlen (Path) == ACPI_NAMESEG_SIZE) + { /* A simple, one-segment ACPI name */ if (XfObjectExists (Path)) @@ -1190,6 +1205,7 @@ XfNamespaceLocateBegin ( /* * 5) Check for external resolution + * * By this point, everything should be loaded in the namespace. If a * namespace lookup results in a namespace node that is an external, it * means that this named object was not defined in the input ASL. This @@ -1197,11 +1213,38 @@ XfNamespaceLocateBegin ( * use the external keyword to suppress compiler errors about undefined * objects. Note: this only applies when compiling multiple definition * blocks. + * + * Do not check for external resolution in the following cases: + * + * case 1) External (ABCD) + * + * This declares ABCD as an external so there is no requirement for + * ABCD to be loaded in the namespace when analyzing the actual + * External() statement. + * + * case 2) CondRefOf (ABCD) + * + * This operator will query the ACPI namespace on the existence of + * ABCD. If ABCD does not exist, this operator will return a 0 + * without incurring AML runtime errors. Therefore, ABCD is allowed + * to not exist when analyzing the CondRefOf operator. + * + * case 3) External (ABCD) + * if (CondRefOf (ABCD)) + * { + * Store (0, ABCD) + * } + * + * In this case, ABCD is accessed only if it exists due to the if + * statement so there is no need to flag the ABCD nested in the + * store operator. */ if (AslGbl_ParseTreeRoot->Asl.Child && AslGbl_ParseTreeRoot->Asl.Child->Asl.Next && - (Op->Asl.ParseOpcode != PARSEOP_EXTERNAL && - Op->Asl.Parent->Asl.ParseOpcode != PARSEOP_EXTERNAL) && - (Node->Flags & ANOBJ_IS_EXTERNAL)) + (Node->Flags & ANOBJ_IS_EXTERNAL) && + Op->Asl.Parent->Asl.ParseOpcode != PARSEOP_EXTERNAL && + Op->Asl.ParseOpcode != PARSEOP_EXTERNAL && + Op->Asl.Parent->Asl.ParseOpcode != PARSEOP_CONDREFOF && + !XfRefIsGuardedByIfCondRefOf (Node, Op)) { AslError (ASL_ERROR, ASL_MSG_UNDEFINED_EXTERNAL, Op, NULL); } @@ -1216,6 +1259,96 @@ XfNamespaceLocateBegin ( Op->Asl.Node = Node; return_ACPI_STATUS (Status); +} + + +/******************************************************************************* + * + * FUNCTION: XfRefIsGuardedByIfCondRefOf + * + * PARAMETERS: Node - Named object reference node + * Op - Named object reference parse node + * + * RETURN: BOOLEAN + * + * DESCRIPTION: returns true if Op checked inside if (CondRefOf (...)) + * refers to Node. + * + ******************************************************************************/ + +static BOOLEAN +XfRefIsGuardedByIfCondRefOf ( + ACPI_NAMESPACE_NODE *Node, + ACPI_PARSE_OBJECT *Op) +{ + ACPI_PARSE_OBJECT *Parent = Op->Asl.Parent; + + + while (Parent) + { + if (Parent->Asl.ParseOpcode == PARSEOP_IF && + XfFindCondRefOfName (Node, Parent->Asl.Child)) + { + return (TRUE); + } + + Parent = Parent->Asl.Parent; + } + + return (FALSE); +} + + +/******************************************************************************* + * + * FUNCTION: XfRefIsGuardedByIfCondRefOf + * + * PARAMETERS: Node - Named object reference node + * Op - Named object reference parse node + * + * RETURN: BOOLEAN + * + * DESCRIPTION: returns true if Op checked inside if (CondRefOf (...)) + * refers to Node. + * + ******************************************************************************/ + +static BOOLEAN +XfFindCondRefOfName ( + ACPI_NAMESPACE_NODE *Node, + ACPI_PARSE_OBJECT *Op) +{ + BOOLEAN CondRefOfFound = FALSE; + + + if (!Op) + { + return (FALSE); + } + + switch (Op->Asl.ParseOpcode) + { + case PARSEOP_CONDREFOF: + + return (Op->Asl.Child->Common.Node == Node); + break; + + case PARSEOP_LAND: + + CondRefOfFound = XfFindCondRefOfName (Node, Op->Asl.Child); + if (CondRefOfFound) + { + return (TRUE); + } + + return (XfFindCondRefOfName (Node, Op->Asl.Child->Asl.Next)); + break; + + default: + + return (FALSE); + break; + } } Modified: head/sys/contrib/dev/acpica/compiler/dtutils.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/dtutils.c Fri May 1 00:41:41 2020 (r360516) +++ head/sys/contrib/dev/acpica/compiler/dtutils.c Fri May 1 01:26:36 2020 (r360517) @@ -186,11 +186,20 @@ DtError ( DT_FIELD *FieldObject, char *ExtraMessage) { + UINT32 Line = 0; + + /* Field object could be NULL */ + + if (FieldObject) + { + Line = FieldObject->Line; + } + /* Check if user wants to ignore this exception */ if (AslIsExceptionIgnored (AslGbl_Files[ASL_FILE_INPUT].Filename, - FieldObject->Line, Level, MessageId)) + Line, Level, MessageId)) { return; } Modified: head/sys/contrib/dev/acpica/components/debugger/dbhistry.c ============================================================================== --- head/sys/contrib/dev/acpica/components/debugger/dbhistry.c Fri May 1 00:41:41 2020 (r360516) +++ head/sys/contrib/dev/acpica/components/debugger/dbhistry.c Fri May 1 01:26:36 2020 (r360517) @@ -175,7 +175,6 @@ static HISTORY_INFO AcpiGbl_HistoryBuffer[HIST static UINT16 AcpiGbl_LoHistory = 0; static UINT16 AcpiGbl_NumHistory = 0; static UINT16 AcpiGbl_NextHistoryIndex = 0; -UINT32 AcpiGbl_NextCmdNum = 1; /******************************************************************************* Modified: head/sys/contrib/dev/acpica/components/disassembler/dmbuffer.c ============================================================================== --- head/sys/contrib/dev/acpica/components/disassembler/dmbuffer.c Fri May 1 00:41:41 2020 (r360516) +++ head/sys/contrib/dev/acpica/components/disassembler/dmbuffer.c Fri May 1 01:26:36 2020 (r360517) @@ -400,6 +400,10 @@ AcpiDmIsUuidBuffer ( /* Buffer size is the buffer argument */ SizeOp = Op->Common.Value.Arg; + if (!SizeOp) + { + return (FALSE); + } /* Next, the initializer byte list to examine */ @@ -520,6 +524,10 @@ AcpiDmIsUnicodeBuffer ( /* Buffer size is the buffer argument */ SizeOp = Op->Common.Value.Arg; + if (!SizeOp) + { + return (FALSE); + } /* Next, the initializer byte list to examine */ @@ -596,6 +604,10 @@ AcpiDmIsStringBuffer ( /* Buffer size is the buffer argument */ SizeOp = Op->Common.Value.Arg; + if (!SizeOp) + { + return (FALSE); + } /* Next, the initializer byte list to examine */ @@ -675,13 +687,18 @@ AcpiDmIsPldBuffer ( UINT64 InitializerSize; + if (!Op) + { + return (FALSE); + } + /* * Get the BufferSize argument - Buffer(BufferSize) * If the buffer was generated by the ToPld macro, it must * be a BYTE constant. */ SizeOp = Op->Common.Value.Arg; - if (SizeOp->Common.AmlOpcode != AML_BYTE_OP) + if (!SizeOp || SizeOp->Common.AmlOpcode != AML_BYTE_OP) { return (FALSE); } Modified: head/sys/contrib/dev/acpica/components/dispatcher/dsfield.c ============================================================================== --- head/sys/contrib/dev/acpica/components/dispatcher/dsfield.c Fri May 1 00:41:41 2020 (r360516) +++ head/sys/contrib/dev/acpica/components/dispatcher/dsfield.c Fri May 1 01:26:36 2020 (r360517) @@ -341,8 +341,13 @@ AcpiDsCreateBufferField ( Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Common.Value.String, ACPI_TYPE_ANY, ACPI_IMODE_LOAD_PASS1, Flags, WalkState, &Node); - if (ACPI_FAILURE (Status)) + if ((WalkState->ParseFlags & ACPI_PARSE_DISASSEMBLE) && + Status == AE_ALREADY_EXISTS) { + Status = AE_OK; + } + else if (ACPI_FAILURE (Status)) + { ACPI_ERROR_NAMESPACE (WalkState->ScopeInfo, Arg->Common.Value.String, Status); return_ACPI_STATUS (Status); @@ -682,12 +687,21 @@ AcpiDsCreateField ( Info.RegionNode = RegionNode; Status = AcpiDsGetFieldNames (&Info, WalkState, Arg->Common.Next); - if (Info.RegionNode->Object->Region.SpaceId == ACPI_ADR_SPACE_PLATFORM_COMM && - !(RegionNode->Object->Field.InternalPccBuffer - = ACPI_ALLOCATE_ZEROED(Info.RegionNode->Object->Region.Length))) + if (ACPI_FAILURE (Status)) { - return_ACPI_STATUS (AE_NO_MEMORY); + return_ACPI_STATUS (Status); } + + if (Info.RegionNode->Object->Region.SpaceId == ACPI_ADR_SPACE_PLATFORM_COMM) + { + RegionNode->Object->Field.InternalPccBuffer = + ACPI_ALLOCATE_ZEROED(Info.RegionNode->Object->Region.Length); + if (!RegionNode->Object->Field.InternalPccBuffer) + { + return_ACPI_STATUS (AE_NO_MEMORY); + } + } + return_ACPI_STATUS (Status); } Modified: head/sys/contrib/dev/acpica/components/executer/exfield.c ============================================================================== --- head/sys/contrib/dev/acpica/components/executer/exfield.c Fri May 1 00:41:41 2020 (r360516) +++ head/sys/contrib/dev/acpica/components/executer/exfield.c Fri May 1 01:26:36 2020 (r360517) @@ -167,7 +167,7 @@ #define ACPI_INVALID_PROTOCOL_ID 0x80 #define ACPI_MAX_PROTOCOL_ID 0x0F -const UINT8 AcpiProtocolLengths[] = +static const UINT8 AcpiProtocolLengths[] = { ACPI_INVALID_PROTOCOL_ID, /* 0 - reserved */ ACPI_INVALID_PROTOCOL_ID, /* 1 - reserved */ Modified: head/sys/contrib/dev/acpica/include/acglobal.h ============================================================================== --- head/sys/contrib/dev/acpica/include/acglobal.h Fri May 1 00:41:41 2020 (r360516) +++ head/sys/contrib/dev/acpica/include/acglobal.h Fri May 1 01:26:36 2020 (r360517) @@ -436,6 +436,7 @@ ACPI_GLOBAL (ACPI_EXTERNAL_FILE *, AcpiGbl_Extern #ifdef ACPI_DEBUGGER ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_AbortMethod, FALSE); ACPI_INIT_GLOBAL (ACPI_THREAD_ID, AcpiGbl_DbThreadId, ACPI_INVALID_THREAD_ID); +ACPI_INIT_GLOBAL (UINT32, AcpiGbl_NextCmdNum, 1); ACPI_GLOBAL (BOOLEAN, AcpiGbl_DbOpt_NoIniMethods); ACPI_GLOBAL (BOOLEAN, AcpiGbl_DbOpt_NoRegionSupport); Modified: head/sys/contrib/dev/acpica/include/acpixf.h ============================================================================== --- head/sys/contrib/dev/acpica/include/acpixf.h Fri May 1 00:41:41 2020 (r360516) +++ head/sys/contrib/dev/acpica/include/acpixf.h Fri May 1 01:26:36 2020 (r360517) @@ -154,7 +154,7 @@ /* Current ACPICA subsystem version in YYYYMMDD format */ -#define ACPI_CA_VERSION 0x20200326 +#define ACPI_CA_VERSION 0x20200430 #include #include Modified: head/sys/contrib/dev/acpica/include/acpredef.h ============================================================================== --- head/sys/contrib/dev/acpica/include/acpredef.h Fri May 1 00:41:41 2020 (r360516) +++ head/sys/contrib/dev/acpica/include/acpredef.h Fri May 1 01:26:36 2020 (r360517) @@ -769,10 +769,10 @@ const ACPI_PREDEFINED_INFO AcpiGbl_Predefined {{"_NIC", METHOD_0ARGS, /* ACPI 6.3 */ METHOD_RETURNS (ACPI_RTYPE_BUFFER)}}, - {{"_NIG", METHOD_1ARGS (ACPI_TYPE_BUFFER), /* ACPI 6.3 */ + {{"_NIG", METHOD_0ARGS, /* ACPI 6.3 */ METHOD_RETURNS (ACPI_RTYPE_BUFFER)}}, - {{"_NIH", METHOD_0ARGS, /* ACPI 6.3 */ + {{"_NIH", METHOD_1ARGS (ACPI_TYPE_BUFFER), /* ACPI 6.3 */ METHOD_RETURNS (ACPI_RTYPE_BUFFER)}}, {{"_NTT", METHOD_0ARGS, From owner-svn-src-all@freebsd.org Fri May 1 01:31: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 BDAD62CE216; Fri, 1 May 2020 01:31:19 +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 49Cvpv4dHBz4JpN; Fri, 1 May 2020 01:31:19 +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 99CEC384; Fri, 1 May 2020 01:31:19 +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 0411VJiZ048535; Fri, 1 May 2020 01:31:19 GMT (envelope-from mhorne@FreeBSD.org) Received: (from mhorne@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0411VJAH048534; Fri, 1 May 2020 01:31:19 GMT (envelope-from mhorne@FreeBSD.org) Message-Id: <202005010131.0411VJAH048534@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mhorne set sender to mhorne@FreeBSD.org using -f From: Mitchell Horne Date: Fri, 1 May 2020 01:31:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360519 - head/usr.sbin/binmiscctl X-SVN-Group: head X-SVN-Commit-Author: mhorne X-SVN-Commit-Paths: head/usr.sbin/binmiscctl X-SVN-Commit-Revision: 360519 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, 01 May 2020 01:31:19 -0000 Author: mhorne Date: Fri May 1 01:31:19 2020 New Revision: 360519 URL: https://svnweb.freebsd.org/changeset/base/360519 Log: Add RISC-V interpreter example Now that RISC-V support has landed in qemu-user-static, add to the list of examples in the binmiscctl(8) manpage. Reviewed by: kevans MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D24646 Modified: head/usr.sbin/binmiscctl/binmiscctl.8 Modified: head/usr.sbin/binmiscctl/binmiscctl.8 ============================================================================== --- head/usr.sbin/binmiscctl/binmiscctl.8 Fri May 1 01:30:11 2020 (r360518) +++ head/usr.sbin/binmiscctl/binmiscctl.8 Fri May 1 01:31:19 2020 (r360519) @@ -27,7 +27,7 @@ .\" .\" Support for miscellaneous binary image activators .\" -.Dd February 10, 2020 +.Dd April 30, 2020 .Dt BINMISCCTL 8 .Os .Sh NAME @@ -269,6 +269,17 @@ Add QEMU bsd-user program as an image activator for Po \ex00\ex00\ex00\ex00\ex00\ex00\ex00\ex02\ex00\ex15" \e --mask "\exff\exff\exff\exff\exff\exff\exff\ex00\exff\exff\e \exff\exff\exff\exff\exff\exff\exff\exfe\exff\exff" \e + --size 20 --set-enabled +.Ed +.Pp +Add QEMU bsd-user program as an image activator for 64-bit RISC-V binaries: +.Bd -literal -offset indent +# binmiscctl add riscv64 \e + --interpreter "/usr/local/bin/qemu-riscv64-static" \e + --magic "\ex7f\ex45\ex4c\ex46\ex02\ex01\ex01\ex00\ex00\ex00\e + \ex00\ex00\ex00\ex00\ex00\ex00\ex02\ex00\exf3\ex00" \e + --mask "\exff\exff\exff\exff\exff\exff\exff\ex00\exff\exff\e + \exff\exff\exff\exff\exff\exff\exfe\exff\exff\exff" \e --size 20 --set-enabled .Ed .Ss "Create and use an ARMv6 chroot on an AMD64 host" From owner-svn-src-all@freebsd.org Fri May 1 04:16: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 BD2E22D1C8D; Fri, 1 May 2020 04:16: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 49CzV14b7Hz4Sx7; Fri, 1 May 2020 04:16:57 +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 7ED2A2305; Fri, 1 May 2020 04:16: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 0414GvR6052770; Fri, 1 May 2020 04:16:57 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0414Gv8v052769; Fri, 1 May 2020 04:16:57 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <202005010416.0414Gv8v052769@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Fri, 1 May 2020 04:16:57 +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: r360520 - 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: 360520 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, 01 May 2020 04:16:57 -0000 Author: delphij Date: Fri May 1 04:16:57 2020 New Revision: 360520 URL: https://svnweb.freebsd.org/changeset/base/360520 Log: MFC r360428: Do not overflow when calculating file system size. Modified: stable/12/sbin/fsck_msdosfs/check.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sbin/fsck_msdosfs/check.c ============================================================================== --- stable/12/sbin/fsck_msdosfs/check.c Fri May 1 01:31:19 2020 (r360519) +++ stable/12/sbin/fsck_msdosfs/check.c Fri May 1 04:16:57 2020 (r360520) @@ -54,6 +54,8 @@ checkfilesys(const char *fname) int finish_dosdirsection=0; int mod = 0; int ret = 8; + int64_t freebytes; + int64_t badbytes; rdonly = alwaysno; if (!preen) @@ -129,37 +131,33 @@ checkfilesys(const char *fname) mod |= FSERROR; } + freebytes = (int64_t)boot.NumFree * boot.ClusterSize; + badbytes = (int64_t)boot.NumBad * boot.ClusterSize; + #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, + boot.NumFiles, freestr, boot.NumFree, badstr, boot.NumBad); } else { pwarn("%d files, %sB free (%d clusters)\n", - boot.NumFiles, - freestr, boot.NumFree); + boot.NumFiles, freestr, boot.NumFree); } #else if (boot.NumBad) - 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); + pwarn("%d files, %jd KiB free (%d clusters), %jd KiB bad (%d clusters)\n", + boot.NumFiles, (intmax_t)freebytes / 1024, boot.NumFree, + (intmax_t)badbytes / 1024, boot.NumBad); else - pwarn("%d files, %d KiB free (%d clusters)\n", - boot.NumFiles, - boot.NumFree * boot.ClusterSize / 1024, boot.NumFree); + pwarn("%d files, %jd KiB free (%d clusters)\n", + boot.NumFiles, (intmax_t)freebytes / 1024, boot.NumFree); #endif if (mod && (mod & FSERROR) == 0) { From owner-svn-src-all@freebsd.org Fri May 1 04:48: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 ED4062D23B8; Fri, 1 May 2020 04:48:21 +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 49D0BF6393z4V2G; Fri, 1 May 2020 04:48:21 +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 C613E28A8; Fri, 1 May 2020 04:48:21 +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 0414mLle070944; Fri, 1 May 2020 04:48:21 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0414mKhZ070936; Fri, 1 May 2020 04:48:20 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <202005010448.0414mKhZ070936@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Fri, 1 May 2020 04:48: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: r360521 - in stable/11: 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-11 X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: in stable/11: 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: 360521 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, 01 May 2020 04:48:22 -0000 Author: delphij Date: Fri May 1 04:48:20 2020 New Revision: 360521 URL: https://svnweb.freebsd.org/changeset/base/360521 Log: MFC r357757: MFV r357712: file 5.38. Added: stable/11/contrib/file/magic/Magdir/forth - copied unchanged from r357757, head/contrib/file/magic/Magdir/forth stable/11/contrib/file/magic/Magdir/git - copied unchanged from r357757, head/contrib/file/magic/Magdir/git stable/11/contrib/file/magic/Magdir/modulefile - copied unchanged from r357757, head/contrib/file/magic/Magdir/modulefile stable/11/contrib/file/magic/Magdir/openfst - copied unchanged from r357757, head/contrib/file/magic/Magdir/openfst stable/11/contrib/file/magic/Magdir/opentimestamps - copied unchanged from r357757, head/contrib/file/magic/Magdir/opentimestamps stable/11/contrib/file/magic/Magdir/pmem - copied unchanged from r357757, head/contrib/file/magic/Magdir/pmem stable/11/contrib/file/magic/Magdir/rst - copied unchanged from r357757, head/contrib/file/magic/Magdir/rst stable/11/contrib/file/magic/Magdir/sosi - copied unchanged from r357757, head/contrib/file/magic/Magdir/sosi stable/11/contrib/file/src/is_csv.c - copied unchanged from r357757, head/contrib/file/src/is_csv.c Modified: stable/11/contrib/file/ChangeLog stable/11/contrib/file/Makefile.in stable/11/contrib/file/README stable/11/contrib/file/aclocal.m4 stable/11/contrib/file/compile stable/11/contrib/file/config.guess stable/11/contrib/file/config.h.in stable/11/contrib/file/config.sub stable/11/contrib/file/configure stable/11/contrib/file/configure.ac stable/11/contrib/file/depcomp stable/11/contrib/file/doc/Makefile.in stable/11/contrib/file/doc/file.man stable/11/contrib/file/doc/libmagic.man stable/11/contrib/file/doc/magic.man stable/11/contrib/file/ltmain.sh stable/11/contrib/file/m4/libtool.m4 stable/11/contrib/file/m4/ltoptions.m4 stable/11/contrib/file/m4/ltsugar.m4 stable/11/contrib/file/m4/ltversion.m4 stable/11/contrib/file/m4/lt~obsolete.m4 stable/11/contrib/file/magic/Magdir/android stable/11/contrib/file/magic/Magdir/animation stable/11/contrib/file/magic/Magdir/apple stable/11/contrib/file/magic/Magdir/archive stable/11/contrib/file/magic/Magdir/audio stable/11/contrib/file/magic/Magdir/bsi stable/11/contrib/file/magic/Magdir/c-lang stable/11/contrib/file/magic/Magdir/cad stable/11/contrib/file/magic/Magdir/commands stable/11/contrib/file/magic/Magdir/compress stable/11/contrib/file/magic/Magdir/console stable/11/contrib/file/magic/Magdir/database stable/11/contrib/file/magic/Magdir/elf stable/11/contrib/file/magic/Magdir/espressif stable/11/contrib/file/magic/Magdir/filesystems stable/11/contrib/file/magic/Magdir/fonts stable/11/contrib/file/magic/Magdir/frame stable/11/contrib/file/magic/Magdir/games stable/11/contrib/file/magic/Magdir/gimp stable/11/contrib/file/magic/Magdir/icc stable/11/contrib/file/magic/Magdir/images stable/11/contrib/file/magic/Magdir/javascript stable/11/contrib/file/magic/Magdir/kml stable/11/contrib/file/magic/Magdir/linux stable/11/contrib/file/magic/Magdir/macintosh stable/11/contrib/file/magic/Magdir/mail.news stable/11/contrib/file/magic/Magdir/map stable/11/contrib/file/magic/Magdir/msdos stable/11/contrib/file/magic/Magdir/msooxml stable/11/contrib/file/magic/Magdir/ole2compounddocs stable/11/contrib/file/magic/Magdir/pdf stable/11/contrib/file/magic/Magdir/python stable/11/contrib/file/magic/Magdir/rpi stable/11/contrib/file/magic/Magdir/ruby stable/11/contrib/file/magic/Magdir/sgml stable/11/contrib/file/magic/Magdir/sniffer stable/11/contrib/file/magic/Magdir/ssh stable/11/contrib/file/magic/Magdir/uuencode stable/11/contrib/file/magic/Magdir/varied.script stable/11/contrib/file/magic/Magdir/vax stable/11/contrib/file/magic/Magdir/windows stable/11/contrib/file/magic/Magdir/wordprocessors stable/11/contrib/file/magic/Magdir/zip stable/11/contrib/file/magic/Makefile.am stable/11/contrib/file/magic/Makefile.in stable/11/contrib/file/missing stable/11/contrib/file/python/Makefile.in stable/11/contrib/file/src/Makefile.am stable/11/contrib/file/src/Makefile.in stable/11/contrib/file/src/apprentice.c stable/11/contrib/file/src/ascmagic.c stable/11/contrib/file/src/buffer.c stable/11/contrib/file/src/compress.c stable/11/contrib/file/src/encoding.c stable/11/contrib/file/src/file.c stable/11/contrib/file/src/file.h stable/11/contrib/file/src/file_opts.h stable/11/contrib/file/src/fsmagic.c stable/11/contrib/file/src/funcs.c stable/11/contrib/file/src/magic.h.in stable/11/contrib/file/src/readcdf.c stable/11/contrib/file/src/readelf.c stable/11/contrib/file/src/seccomp.c stable/11/contrib/file/src/vasprintf.c stable/11/contrib/file/tests/JW07022A.mp3.result stable/11/contrib/file/tests/Makefile.in stable/11/contrib/file/tests/test.c stable/11/lib/libmagic/Makefile stable/11/lib/libmagic/config.h Directory Properties: stable/11/ (props changed) Modified: stable/11/contrib/file/ChangeLog ============================================================================== --- stable/11/contrib/file/ChangeLog Fri May 1 04:16:57 2020 (r360520) +++ stable/11/contrib/file/ChangeLog Fri May 1 04:48:20 2020 (r360521) @@ -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/11/contrib/file/Makefile.in ============================================================================== --- stable/11/contrib/file/Makefile.in Fri May 1 04:16:57 2020 (r360520) +++ stable/11/contrib/file/Makefile.in Fri May 1 04:48:20 2020 (r360521) @@ -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/11/contrib/file/README ============================================================================== --- stable/11/contrib/file/README Fri May 1 04:16:57 2020 (r360520) +++ stable/11/contrib/file/README Fri May 1 04:48:20 2020 (r360521) @@ -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/11/contrib/file/aclocal.m4 ============================================================================== --- stable/11/contrib/file/aclocal.m4 Fri May 1 04:16:57 2020 (r360520) +++ stable/11/contrib/file/aclocal.m4 Fri May 1 04:48:20 2020 (r360521) @@ -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/11/contrib/file/compile ============================================================================== --- stable/11/contrib/file/compile Fri May 1 04:16:57 2020 (r360520) +++ stable/11/contrib/file/compile Fri May 1 04:48:20 2020 (r360521) @@ -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/11/contrib/file/config.guess ============================================================================== --- stable/11/contrib/file/config.guess Fri May 1 04:16:57 2020 (r360520) +++ stable/11/contrib/file/config.guess Fri May 1 04:48:20 2020 (r360521) @@ -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 Fri May 1 04:59: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 8ECAE2D25B6; Fri, 1 May 2020 04:59:41 +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 49D0RK2pjGz4VNK; Fri, 1 May 2020 04:59:41 +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 574E42A77; Fri, 1 May 2020 04:59:41 +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 0414xfk6077120; Fri, 1 May 2020 04:59:41 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0414xfdi077119; Fri, 1 May 2020 04:59:41 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <202005010459.0414xfdi077119@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Fri, 1 May 2020 04:59: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: r360522 - stable/11/lib/libc/nls X-SVN-Group: stable-11 X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: stable/11/lib/libc/nls X-SVN-Commit-Revision: 360522 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, 01 May 2020 04:59:41 -0000 Author: delphij Date: Fri May 1 04:59:40 2020 New Revision: 360522 URL: https://svnweb.freebsd.org/changeset/base/360522 Log: MFC r359118: Fix race condition in catopen(3). Modified: stable/11/lib/libc/nls/msgcat.c Directory Properties: stable/11/ (props changed) Modified: stable/11/lib/libc/nls/msgcat.c ============================================================================== --- stable/11/lib/libc/nls/msgcat.c Fri May 1 04:48:20 2020 (r360521) +++ stable/11/lib/libc/nls/msgcat.c Fri May 1 04:59:40 2020 (r360522) @@ -43,6 +43,7 @@ __FBSDID("$FreeBSD$"); #include #include /* for ntohl() */ +#include #include #include @@ -76,19 +77,25 @@ __FBSDID("$FreeBSD$"); #define NLERR ((nl_catd) -1) #define NLRETERR(errc) { errno = errc; return (NLERR); } -#define SAVEFAIL(n, l, e) { WLOCK(NLERR); \ - np = malloc(sizeof(struct catentry)); \ +#define SAVEFAIL(n, l, e) { np = calloc(1, sizeof(struct catentry)); \ if (np != NULL) { \ np->name = strdup(n); \ - np->path = NULL; \ np->catd = NLERR; \ - np->refcount = 0; \ np->lang = (l == NULL) ? NULL : \ strdup(l); \ np->caterrno = e; \ - SLIST_INSERT_HEAD(&cache, np, list); \ + if (np->name == NULL || \ + (l != NULL && np->lang == NULL)) { \ + free(np->name); \ + free(np->lang); \ + free(np); \ + } else { \ + WLOCK(NLERR); \ + SLIST_INSERT_HEAD(&cache, np, \ + list); \ + UNLOCK; \ + } \ } \ - UNLOCK; \ errno = e; \ } @@ -152,7 +159,7 @@ catopen(const char *name, int type) NLRETERR(np->caterrno); } else { /* Found cached successful entry */ - np->refcount++; + atomic_add_int(&np->refcount, 1); UNLOCK; return (np->catd); } @@ -355,8 +362,7 @@ catclose(nl_catd catd) WLOCK(-1); SLIST_FOREACH(np, &cache, list) { if (catd == np->catd) { - np->refcount--; - if (np->refcount == 0) + if (atomic_fetchadd_int(&np->refcount, -1) == 1) catfree(np); break; } @@ -376,6 +382,7 @@ load_msgcat(const char *path, const char *name, const nl_catd catd; struct catentry *np; void *data; + char *copy_path, *copy_name, *copy_lang; int fd; /* path/name will never be NULL here */ @@ -387,7 +394,7 @@ load_msgcat(const char *path, const char *name, const RLOCK(NLERR); SLIST_FOREACH(np, &cache, list) { if ((np->path != NULL) && (strcmp(np->path, path) == 0)) { - np->refcount++; + atomic_add_int(&np->refcount, 1); UNLOCK; return (np->catd); } @@ -432,7 +439,20 @@ load_msgcat(const char *path, const char *name, const NLRETERR(EFTYPE); } - if ((catd = malloc(sizeof (*catd))) == NULL) { + copy_name = strdup(name); + copy_path = strdup(path); + copy_lang = (lang == NULL) ? NULL : strdup(lang); + catd = malloc(sizeof (*catd)); + np = calloc(1, sizeof(struct catentry)); + + if (copy_name == NULL || copy_path == NULL || + (lang != NULL && copy_lang == NULL) || + catd == NULL || np == NULL) { + free(copy_name); + free(copy_path); + free(copy_lang); + free(catd); + free(np); munmap(data, (size_t)st.st_size); SAVEFAIL(name, lang, ENOMEM); NLRETERR(ENOMEM); @@ -442,16 +462,13 @@ load_msgcat(const char *path, const char *name, const catd->__size = (int)st.st_size; /* Caching opened catalog */ + np->name = copy_name; + np->path = copy_path; + np->catd = catd; + np->lang = copy_lang; + atomic_store_int(&np->refcount, 1); WLOCK(NLERR); - if ((np = malloc(sizeof(struct catentry))) != NULL) { - np->name = strdup(name); - np->path = strdup(path); - np->catd = catd; - np->lang = (lang == NULL) ? NULL : strdup(lang); - np->refcount = 1; - np->caterrno = 0; - SLIST_INSERT_HEAD(&cache, np, list); - } + SLIST_INSERT_HEAD(&cache, np, list); UNLOCK; return (catd); } From owner-svn-src-all@freebsd.org Fri May 1 05:36: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 543072B44DC; Fri, 1 May 2020 05:36:14 +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 49D1FV1kSpz41ng; Fri, 1 May 2020 05:36:14 +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 2D1A132B1; Fri, 1 May 2020 05:36:14 +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 0415aEhu004473; Fri, 1 May 2020 05:36:14 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0415aERu004471; Fri, 1 May 2020 05:36:14 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <202005010536.0415aERu004471@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Fri, 1 May 2020 05:36: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: r360523 - in stable/11: 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-11 X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: in stable/11: 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: 360523 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, 01 May 2020 05:36:14 -0000 Author: delphij Date: Fri May 1 05:36:13 2020 New Revision: 360523 URL: https://svnweb.freebsd.org/changeset/base/360523 Log: MFC r359201: MFV r359197: xz 5.2.5. Modified: stable/11/contrib/xz/ChangeLog stable/11/contrib/xz/FREEBSD-Xlist stable/11/contrib/xz/README stable/11/contrib/xz/THANKS stable/11/contrib/xz/src/common/sysdefs.h stable/11/contrib/xz/src/common/tuklib_cpucores.c stable/11/contrib/xz/src/common/tuklib_exit.c stable/11/contrib/xz/src/common/tuklib_integer.h stable/11/contrib/xz/src/common/tuklib_mbstr.h stable/11/contrib/xz/src/common/tuklib_mbstr_fw.c stable/11/contrib/xz/src/common/tuklib_mbstr_width.c stable/11/contrib/xz/src/common/tuklib_physmem.c stable/11/contrib/xz/src/liblzma/api/lzma.h stable/11/contrib/xz/src/liblzma/api/lzma/block.h stable/11/contrib/xz/src/liblzma/api/lzma/filter.h stable/11/contrib/xz/src/liblzma/api/lzma/hardware.h stable/11/contrib/xz/src/liblzma/api/lzma/lzma12.h stable/11/contrib/xz/src/liblzma/api/lzma/version.h stable/11/contrib/xz/src/liblzma/api/lzma/vli.h stable/11/contrib/xz/src/liblzma/check/crc32_fast.c stable/11/contrib/xz/src/liblzma/check/crc32_table.c stable/11/contrib/xz/src/liblzma/check/crc64_fast.c stable/11/contrib/xz/src/liblzma/check/crc64_table.c stable/11/contrib/xz/src/liblzma/common/alone_decoder.c stable/11/contrib/xz/src/liblzma/common/alone_encoder.c stable/11/contrib/xz/src/liblzma/common/block_header_decoder.c stable/11/contrib/xz/src/liblzma/common/block_header_encoder.c stable/11/contrib/xz/src/liblzma/common/block_util.c stable/11/contrib/xz/src/liblzma/common/common.c stable/11/contrib/xz/src/liblzma/common/filter_common.h stable/11/contrib/xz/src/liblzma/common/filter_decoder.h stable/11/contrib/xz/src/liblzma/common/filter_flags_encoder.c stable/11/contrib/xz/src/liblzma/common/hardware_physmem.c stable/11/contrib/xz/src/liblzma/common/index.c stable/11/contrib/xz/src/liblzma/common/memcmplen.h stable/11/contrib/xz/src/liblzma/common/stream_encoder_mt.c stable/11/contrib/xz/src/liblzma/common/stream_flags_decoder.c stable/11/contrib/xz/src/liblzma/common/stream_flags_encoder.c stable/11/contrib/xz/src/liblzma/common/vli_decoder.c stable/11/contrib/xz/src/liblzma/delta/delta_decoder.c stable/11/contrib/xz/src/liblzma/lz/lz_decoder.c stable/11/contrib/xz/src/liblzma/lz/lz_encoder_hash.h stable/11/contrib/xz/src/liblzma/lz/lz_encoder_mf.c stable/11/contrib/xz/src/liblzma/lzma/fastpos.h stable/11/contrib/xz/src/liblzma/lzma/fastpos_tablegen.c stable/11/contrib/xz/src/liblzma/lzma/lzma2_decoder.c stable/11/contrib/xz/src/liblzma/lzma/lzma_common.h stable/11/contrib/xz/src/liblzma/lzma/lzma_decoder.c stable/11/contrib/xz/src/liblzma/lzma/lzma_encoder.c stable/11/contrib/xz/src/liblzma/lzma/lzma_encoder_optimum_normal.c stable/11/contrib/xz/src/liblzma/lzma/lzma_encoder_private.h stable/11/contrib/xz/src/liblzma/simple/arm.c stable/11/contrib/xz/src/liblzma/simple/armthumb.c stable/11/contrib/xz/src/liblzma/simple/ia64.c stable/11/contrib/xz/src/liblzma/simple/powerpc.c stable/11/contrib/xz/src/liblzma/simple/simple_coder.c stable/11/contrib/xz/src/liblzma/simple/simple_decoder.c stable/11/contrib/xz/src/liblzma/simple/simple_encoder.c stable/11/contrib/xz/src/liblzma/simple/x86.c stable/11/contrib/xz/src/xz/args.c stable/11/contrib/xz/src/xz/coder.c stable/11/contrib/xz/src/xz/file_io.c stable/11/contrib/xz/src/xz/file_io.h stable/11/contrib/xz/src/xz/hardware.c stable/11/contrib/xz/src/xz/main.c stable/11/contrib/xz/src/xz/message.c stable/11/contrib/xz/src/xz/message.h stable/11/contrib/xz/src/xz/mytime.c stable/11/contrib/xz/src/xz/mytime.h stable/11/contrib/xz/src/xz/options.c stable/11/contrib/xz/src/xz/private.h stable/11/contrib/xz/src/xz/signals.c stable/11/contrib/xz/src/xz/util.c stable/11/contrib/xz/src/xz/xz.1 stable/11/contrib/xz/src/xzdec/xzdec.c stable/11/lib/liblzma/config.h Directory Properties: stable/11/ (props changed) Modified: stable/11/contrib/xz/ChangeLog ============================================================================== --- stable/11/contrib/xz/ChangeLog Fri May 1 04:59:40 2020 (r360522) +++ stable/11/contrib/xz/ChangeLog Fri May 1 05:36:13 2020 (r360523) @@ -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 Fri May 1 06:10: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 3D7802C5FAD; Fri, 1 May 2020 06:10:10 +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 49D20f0wssz44YV; Fri, 1 May 2020 06:10:10 +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 160A83A43; Fri, 1 May 2020 06:10:10 +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 0416A97M022925; Fri, 1 May 2020 06:10:09 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0416A9dw022924; Fri, 1 May 2020 06:10:09 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <202005010610.0416A9dw022924@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Fri, 1 May 2020 06:10:09 +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: r360524 - stable/11/lib/liblzma X-SVN-Group: stable-11 X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: stable/11/lib/liblzma X-SVN-Commit-Revision: 360524 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, 01 May 2020 06:10:10 -0000 Author: delphij Date: Fri May 1 06:10:09 2020 New Revision: 360524 URL: https://svnweb.freebsd.org/changeset/base/360524 Log: Fix build. Modified: stable/11/lib/liblzma/config.h Modified: stable/11/lib/liblzma/config.h ============================================================================== --- stable/11/lib/liblzma/config.h Fri May 1 05:36:13 2020 (r360523) +++ stable/11/lib/liblzma/config.h Fri May 1 06:10:09 2020 (r360524) @@ -312,6 +312,7 @@ #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. */ #define HAVE___BUILTIN_ASSUME_ALIGNED 1 @@ -319,6 +320,7 @@ /* 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 Fri May 1 09:46: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 EAEB12D0529; Fri, 1 May 2020 09:46:29 +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 49D6pF6D1Sz4JPQ; Fri, 1 May 2020 09:46:29 +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 CBEC46445; Fri, 1 May 2020 09:46:29 +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 0419kThX060989; Fri, 1 May 2020 09:46:29 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0419kRVc060976; Fri, 1 May 2020 09:46:27 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202005010946.0419kRVc060976@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Fri, 1 May 2020 09:46: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: r360525 - in stable/12: sys/arm64/arm64 sys/arm64/include sys/compat/linuxkpi/common/include/linux sys/compat/linuxkpi/common/src sys/dev/ofw sys/dev/pci sys/kern sys/sys sys/x86/includ... X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/12: sys/arm64/arm64 sys/arm64/include sys/compat/linuxkpi/common/include/linux sys/compat/linuxkpi/common/src sys/dev/ofw sys/dev/pci sys/kern sys/sys sys/x86/include sys/x86/iommu sys/x86/x... X-SVN-Commit-Revision: 360525 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, 01 May 2020 09:46:30 -0000 Author: hselasky Date: Fri May 1 09:46:27 2020 New Revision: 360525 URL: https://svnweb.freebsd.org/changeset/base/360525 Log: MFC r346645, r346664, r346687, r347387, r347836, r347088, 347089, r346956, r346957, r346958, r347088, r347089, r347385, r353938, r350570, r350572 and r350573: Implement full bus_dma(9) support in the LinuxKPI and pull in all dependencies. Bump FreeBSD version to force recompilation of external modules. Sponsored by: Mellanox Technologies Modified: stable/12/sys/arm64/arm64/busdma_bounce.c stable/12/sys/arm64/include/bus_dma.h stable/12/sys/arm64/include/bus_dma_impl.h stable/12/sys/compat/linuxkpi/common/include/linux/device.h stable/12/sys/compat/linuxkpi/common/include/linux/dma-mapping.h stable/12/sys/compat/linuxkpi/common/include/linux/dmapool.h stable/12/sys/compat/linuxkpi/common/include/linux/gfp.h stable/12/sys/compat/linuxkpi/common/include/linux/io.h stable/12/sys/compat/linuxkpi/common/include/linux/pci.h stable/12/sys/compat/linuxkpi/common/include/linux/scatterlist.h stable/12/sys/compat/linuxkpi/common/src/linux_pci.c stable/12/sys/dev/ofw/ofwpci.c stable/12/sys/dev/pci/vga_pci.c stable/12/sys/kern/bus_if.m stable/12/sys/kern/subr_bus.c stable/12/sys/sys/bus.h stable/12/sys/sys/bus_dma.h stable/12/sys/sys/param.h stable/12/sys/x86/include/bus_dma.h stable/12/sys/x86/include/busdma_impl.h stable/12/sys/x86/iommu/busdma_dmar.c stable/12/sys/x86/x86/busdma_bounce.c stable/12/usr.sbin/camdd/camdd.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/arm64/arm64/busdma_bounce.c ============================================================================== --- stable/12/sys/arm64/arm64/busdma_bounce.c Fri May 1 06:10:09 2020 (r360524) +++ stable/12/sys/arm64/arm64/busdma_bounce.c Fri May 1 09:46:27 2020 (r360525) @@ -152,6 +152,8 @@ static bus_addr_t add_bounce_page(bus_dma_tag_t dmat, vm_offset_t vaddr, bus_addr_t addr, bus_size_t size); static void free_bounce_page(bus_dma_tag_t dmat, struct bounce_page *bpage); int run_filter(bus_dma_tag_t dmat, bus_addr_t paddr); +static bool _bus_dmamap_pagesneeded(bus_dma_tag_t dmat, vm_paddr_t buf, + bus_size_t buflen, int *pagesneeded); static void _bus_dmamap_count_pages(bus_dma_tag_t dmat, bus_dmamap_t map, pmap_t pmap, void *buf, bus_size_t buflen, int flags); static void _bus_dmamap_count_phys(bus_dma_tag_t dmat, bus_dmamap_t map, @@ -271,6 +273,15 @@ out: return (error); } +static bool +bounce_bus_dma_id_mapped(bus_dma_tag_t dmat, vm_paddr_t buf, bus_size_t buflen) +{ + + if ((dmat->bounce_flags & BF_COULD_BOUNCE) == 0) + return (true); + return (!_bus_dmamap_pagesneeded(dmat, buf, buflen, NULL)); +} + static bus_dmamap_t alloc_dmamap(bus_dma_tag_t dmat, int flags) { @@ -539,29 +550,45 @@ bounce_bus_dmamem_free(bus_dma_tag_t dmat, void *vaddr dmat->bounce_flags); } +static bool +_bus_dmamap_pagesneeded(bus_dma_tag_t dmat, vm_paddr_t buf, bus_size_t buflen, + int *pagesneeded) +{ + bus_addr_t curaddr; + bus_size_t sgsize; + int count; + + /* + * Count the number of bounce pages needed in order to + * complete this transfer + */ + count = 0; + curaddr = buf; + while (buflen != 0) { + sgsize = MIN(buflen, dmat->common.maxsegsz); + if (bus_dma_run_filter(&dmat->common, curaddr)) { + sgsize = MIN(sgsize, + PAGE_SIZE - (curaddr & PAGE_MASK)); + if (pagesneeded == NULL) + return (true); + count++; + } + curaddr += sgsize; + buflen -= sgsize; + } + + if (pagesneeded != NULL) + *pagesneeded = count; + return (count != 0); +} + static void _bus_dmamap_count_phys(bus_dma_tag_t dmat, bus_dmamap_t map, vm_paddr_t buf, bus_size_t buflen, int flags) { - bus_addr_t curaddr; - bus_size_t sgsize; if ((map->flags & DMAMAP_COULD_BOUNCE) != 0 && map->pagesneeded == 0) { - /* - * Count the number of bounce pages - * needed in order to complete this transfer - */ - curaddr = buf; - while (buflen != 0) { - sgsize = MIN(buflen, dmat->common.maxsegsz); - if (bus_dma_run_filter(&dmat->common, curaddr)) { - sgsize = MIN(sgsize, - PAGE_SIZE - (curaddr & PAGE_MASK)); - map->pagesneeded++; - } - curaddr += sgsize; - buflen -= sgsize; - } + _bus_dmamap_pagesneeded(dmat, buf, buflen, &map->pagesneeded); CTR1(KTR_BUSDMA, "pagesneeded= %d\n", map->pagesneeded); } } @@ -1316,6 +1343,7 @@ busdma_swi(void) struct bus_dma_impl bus_dma_bounce_impl = { .tag_create = bounce_bus_dma_tag_create, .tag_destroy = bounce_bus_dma_tag_destroy, + .id_mapped = bounce_bus_dma_id_mapped, .map_create = bounce_bus_dmamap_create, .map_destroy = bounce_bus_dmamap_destroy, .mem_alloc = bounce_bus_dmamem_alloc, Modified: stable/12/sys/arm64/include/bus_dma.h ============================================================================== --- stable/12/sys/arm64/include/bus_dma.h Fri May 1 06:10:09 2020 (r360524) +++ stable/12/sys/arm64/include/bus_dma.h Fri May 1 09:46:27 2020 (r360525) @@ -9,6 +9,18 @@ #include /* + * Is DMA address 1:1 mapping of physical address + */ +static inline bool +bus_dma_id_mapped(bus_dma_tag_t dmat, vm_paddr_t buf, bus_size_t buflen) +{ + struct bus_dma_tag_common *tc; + + tc = (struct bus_dma_tag_common *)dmat; + return (tc->impl->id_mapped(dmat, buf, buflen)); +} + +/* * Allocate a handle for mapping from kva/uva/physical * address space into bus device space. */ Modified: stable/12/sys/arm64/include/bus_dma_impl.h ============================================================================== --- stable/12/sys/arm64/include/bus_dma_impl.h Fri May 1 06:10:09 2020 (r360524) +++ stable/12/sys/arm64/include/bus_dma_impl.h Fri May 1 09:46:27 2020 (r360525) @@ -58,6 +58,7 @@ struct bus_dma_impl { bus_size_t maxsegsz, int flags, bus_dma_lock_t *lockfunc, void *lockfuncarg, bus_dma_tag_t *dmat); int (*tag_destroy)(bus_dma_tag_t dmat); + bool (*id_mapped)(bus_dma_tag_t, vm_paddr_t, bus_size_t); int (*map_create)(bus_dma_tag_t dmat, int flags, bus_dmamap_t *mapp); int (*map_destroy)(bus_dma_tag_t dmat, bus_dmamap_t map); int (*mem_alloc)(bus_dma_tag_t dmat, void** vaddr, int flags, Modified: stable/12/sys/compat/linuxkpi/common/include/linux/device.h ============================================================================== --- stable/12/sys/compat/linuxkpi/common/include/linux/device.h Fri May 1 06:10:09 2020 (r360524) +++ stable/12/sys/compat/linuxkpi/common/include/linux/device.h Fri May 1 09:46:27 2020 (r360525) @@ -108,7 +108,7 @@ struct device { struct class *class; void (*release)(struct device *dev); struct kobject kobj; - uint64_t *dma_mask; + void *dma_priv; void *driver_data; unsigned int irq; #define LINUX_IRQ_INVALID 65535 Modified: stable/12/sys/compat/linuxkpi/common/include/linux/dma-mapping.h ============================================================================== --- stable/12/sys/compat/linuxkpi/common/include/linux/dma-mapping.h Fri May 1 06:10:09 2020 (r360524) +++ stable/12/sys/compat/linuxkpi/common/include/linux/dma-mapping.h Fri May 1 09:46:27 2020 (r360525) @@ -90,6 +90,16 @@ struct dma_map_ops { #define DMA_BIT_MASK(n) ((2ULL << ((n) - 1)) - 1ULL) +int linux_dma_tag_init(struct device *dev, u64 mask); +void *linux_dma_alloc_coherent(struct device *dev, size_t size, + dma_addr_t *dma_handle, gfp_t flag); +dma_addr_t linux_dma_map_phys(struct device *dev, vm_paddr_t phys, size_t len); +void linux_dma_unmap(struct device *dev, dma_addr_t dma_addr, size_t size); +int linux_dma_map_sg_attrs(struct device *dev, struct scatterlist *sgl, + int nents, enum dma_data_direction dir, struct dma_attrs *attrs); +void linux_dma_unmap_sg_attrs(struct device *dev, struct scatterlist *sg, + int nents, enum dma_data_direction dir, struct dma_attrs *attrs); + static inline int dma_supported(struct device *dev, u64 mask) { @@ -102,11 +112,10 @@ static inline int dma_set_mask(struct device *dev, u64 dma_mask) { - if (!dev->dma_mask || !dma_supported(dev, dma_mask)) + if (!dev->dma_priv || !dma_supported(dev, dma_mask)) return -EIO; - *dev->dma_mask = dma_mask; - return (0); + return (linux_dma_tag_init(dev, dma_mask)); } static inline int @@ -134,24 +143,7 @@ static inline void * dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle, gfp_t flag) { - vm_paddr_t high; - size_t align; - void *mem; - - if (dev != NULL && dev->dma_mask) - high = *dev->dma_mask; - else if (flag & GFP_DMA32) - high = BUS_SPACE_MAXADDR_32BIT; - else - high = BUS_SPACE_MAXADDR; - align = PAGE_SIZE << get_order(size); - mem = (void *)kmem_alloc_contig(size, flag, 0, high, align, 0, - VM_MEMATTR_DEFAULT); - if (mem) - *dma_handle = vtophys(mem); - else - *dma_handle = 0; - return (mem); + return (linux_dma_alloc_coherent(dev, size, dma_handle, flag)); } static inline void * @@ -164,25 +156,27 @@ dma_zalloc_coherent(struct device *dev, size_t size, d static inline void dma_free_coherent(struct device *dev, size_t size, void *cpu_addr, - dma_addr_t dma_handle) + dma_addr_t dma_addr) { + linux_dma_unmap(dev, dma_addr, size); kmem_free((vm_offset_t)cpu_addr, size); } -/* XXX This only works with no iommu. */ static inline dma_addr_t dma_map_single_attrs(struct device *dev, void *ptr, size_t size, enum dma_data_direction dir, struct dma_attrs *attrs) { - return vtophys(ptr); + return (linux_dma_map_phys(dev, vtophys(ptr), size)); } static inline void -dma_unmap_single_attrs(struct device *dev, dma_addr_t addr, size_t size, +dma_unmap_single_attrs(struct device *dev, dma_addr_t dma_addr, size_t size, enum dma_data_direction dir, struct dma_attrs *attrs) { + + linux_dma_unmap(dev, dma_addr, size); } static inline dma_addr_t @@ -190,26 +184,23 @@ dma_map_page_attrs(struct device *dev, struct page *pa size_t size, enum dma_data_direction dir, unsigned long attrs) { - return (VM_PAGE_TO_PHYS(page) + offset); + return (linux_dma_map_phys(dev, VM_PAGE_TO_PHYS(page) + offset, size)); } static inline int dma_map_sg_attrs(struct device *dev, struct scatterlist *sgl, int nents, enum dma_data_direction dir, struct dma_attrs *attrs) { - struct scatterlist *sg; - int i; - for_each_sg(sgl, sg, nents, i) - sg_dma_address(sg) = sg_phys(sg); - - return (nents); + return (linux_dma_map_sg_attrs(dev, sgl, nents, dir, attrs)); } static inline void dma_unmap_sg_attrs(struct device *dev, struct scatterlist *sg, int nents, enum dma_data_direction dir, struct dma_attrs *attrs) { + + linux_dma_unmap_sg_attrs(dev, sg, nents, dir, attrs); } static inline dma_addr_t @@ -217,13 +208,15 @@ dma_map_page(struct device *dev, struct page *page, unsigned long offset, size_t size, enum dma_data_direction direction) { - return VM_PAGE_TO_PHYS(page) + offset; + return (linux_dma_map_phys(dev, VM_PAGE_TO_PHYS(page) + offset, size)); } static inline void dma_unmap_page(struct device *dev, dma_addr_t dma_address, size_t size, enum dma_data_direction direction) { + + linux_dma_unmap(dev, dma_address, size); } static inline void @@ -273,7 +266,7 @@ static inline int dma_mapping_error(struct device *dev, dma_addr_t dma_addr) { - return (0); + return (dma_addr == 0); } static inline unsigned int dma_set_max_seg_size(struct device *dev, Modified: stable/12/sys/compat/linuxkpi/common/include/linux/dmapool.h ============================================================================== --- stable/12/sys/compat/linuxkpi/common/include/linux/dmapool.h Fri May 1 06:10:09 2020 (r360524) +++ stable/12/sys/compat/linuxkpi/common/include/linux/dmapool.h Fri May 1 09:46:27 2020 (r360525) @@ -37,44 +37,35 @@ #include #include -struct dma_pool { - uma_zone_t pool_zone; -}; +struct dma_pool; +struct dma_pool *linux_dma_pool_create(char *name, struct device *dev, + size_t size, size_t align, size_t boundary); +void linux_dma_pool_destroy(struct dma_pool *pool); +void *linux_dma_pool_alloc(struct dma_pool *pool, gfp_t mem_flags, + dma_addr_t *handle); +void linux_dma_pool_free(struct dma_pool *pool, void *vaddr, + dma_addr_t dma_addr); static inline struct dma_pool * dma_pool_create(char *name, struct device *dev, size_t size, size_t align, size_t boundary) { - struct dma_pool *pool; - pool = kmalloc(sizeof(*pool), GFP_KERNEL); - align--; - /* - * XXX Eventually this could use a separate allocf to honor boundary - * and physical address requirements of the device. - */ - pool->pool_zone = uma_zcreate(name, size, NULL, NULL, NULL, NULL, - align, UMA_ZONE_OFFPAGE|UMA_ZONE_HASH); - - return (pool); + return (linux_dma_pool_create(name, dev, size, align, boundary)); } static inline void dma_pool_destroy(struct dma_pool *pool) { - uma_zdestroy(pool->pool_zone); - kfree(pool); + + linux_dma_pool_destroy(pool); } static inline void * dma_pool_alloc(struct dma_pool *pool, gfp_t mem_flags, dma_addr_t *handle) { - void *vaddr; - vaddr = uma_zalloc(pool->pool_zone, mem_flags); - if (vaddr) - *handle = vtophys(vaddr); - return (vaddr); + return (linux_dma_pool_alloc(pool, mem_flags, handle)); } static inline void * @@ -85,9 +76,10 @@ dma_pool_zalloc(struct dma_pool *pool, gfp_t mem_flags } static inline void -dma_pool_free(struct dma_pool *pool, void *vaddr, dma_addr_t addr) +dma_pool_free(struct dma_pool *pool, void *vaddr, dma_addr_t dma_addr) { - uma_zfree(pool->pool_zone, vaddr); + + linux_dma_pool_free(pool, vaddr, dma_addr); } Modified: stable/12/sys/compat/linuxkpi/common/include/linux/gfp.h ============================================================================== --- stable/12/sys/compat/linuxkpi/common/include/linux/gfp.h Fri May 1 06:10:09 2020 (r360524) +++ stable/12/sys/compat/linuxkpi/common/include/linux/gfp.h Fri May 1 09:46:27 2020 (r360525) @@ -56,6 +56,7 @@ #define __GFP_IO 0 #define __GFP_NO_KSWAPD 0 +#define __GFP_KSWAPD_RECLAIM 0 #define __GFP_WAIT M_WAITOK #define __GFP_DMA32 (1U << 24) /* LinuxKPI only */ #define __GFP_BITS_SHIFT 25 Modified: stable/12/sys/compat/linuxkpi/common/include/linux/io.h ============================================================================== --- stable/12/sys/compat/linuxkpi/common/include/linux/io.h Fri May 1 06:10:09 2020 (r360524) +++ stable/12/sys/compat/linuxkpi/common/include/linux/io.h Fri May 1 09:46:27 2020 (r360525) @@ -42,6 +42,32 @@ * XXX This is all x86 specific. It should be bus space access. */ + +/* rmb and wmb are declared in machine/atomic.h, so should be included first. */ +#ifndef __io_br +#define __io_br() __compiler_membar() +#endif + +#ifndef __io_ar +#ifdef rmb +#define __io_ar() rmb() +#else +#define __io_ar() __compiler_membar() +#endif +#endif + +#ifndef __io_bw +#ifdef wmb +#define __io_bw() wmb() +#else +#define __io_bw() __compiler_membar() +#endif +#endif + +#ifndef __io_aw +#define __io_aw() __compiler_membar() +#endif + /* Access MMIO registers atomically without barriers and byte swapping. */ static inline uint8_t @@ -112,9 +138,9 @@ readb(const volatile void *addr) { uint8_t v; - __compiler_membar(); + __io_br(); v = *(const volatile uint8_t *)addr; - __compiler_membar(); + __io_ar(); return (v); } #define readb(addr) readb(addr) @@ -123,9 +149,9 @@ readb(const volatile void *addr) static inline void writeb(uint8_t v, volatile void *addr) { - __compiler_membar(); + __io_bw(); *(volatile uint8_t *)addr = v; - __compiler_membar(); + __io_aw(); } #define writeb(v, addr) writeb(v, addr) @@ -135,9 +161,9 @@ readw(const volatile void *addr) { uint16_t v; - __compiler_membar(); - v = *(const volatile uint16_t *)addr; - __compiler_membar(); + __io_br(); + v = le16toh(__raw_readw(addr)); + __io_ar(); return (v); } #define readw(addr) readw(addr) @@ -146,9 +172,9 @@ readw(const volatile void *addr) static inline void writew(uint16_t v, volatile void *addr) { - __compiler_membar(); - *(volatile uint16_t *)addr = v; - __compiler_membar(); + __io_bw(); + __raw_writew(htole16(v), addr); + __io_aw(); } #define writew(v, addr) writew(v, addr) @@ -158,9 +184,9 @@ readl(const volatile void *addr) { uint32_t v; - __compiler_membar(); - v = *(const volatile uint32_t *)addr; - __compiler_membar(); + __io_br(); + v = le32toh(__raw_readl(addr)); + __io_ar(); return (v); } #define readl(addr) readl(addr) @@ -169,9 +195,9 @@ readl(const volatile void *addr) static inline void writel(uint32_t v, volatile void *addr) { - __compiler_membar(); - *(volatile uint32_t *)addr = v; - __compiler_membar(); + __io_bw(); + __raw_writel(htole32(v), addr); + __io_aw(); } #define writel(v, addr) writel(v, addr) @@ -183,9 +209,9 @@ readq(const volatile void *addr) { uint64_t v; - __compiler_membar(); - v = *(const volatile uint64_t *)addr; - __compiler_membar(); + __io_br(); + v = le64toh(__raw_readq(addr)); + __io_ar(); return (v); } #define readq(addr) readq(addr) @@ -193,9 +219,9 @@ readq(const volatile void *addr) static inline void writeq(uint64_t v, volatile void *addr) { - __compiler_membar(); - *(volatile uint64_t *)addr = v; - __compiler_membar(); + __io_bw(); + __raw_writeq(htole64(v), addr); + __io_aw(); } #define writeq(v, addr) writeq(v, addr) #endif @@ -206,7 +232,7 @@ writeq(uint64_t v, volatile void *addr) static inline uint8_t readb_relaxed(const volatile void *addr) { - return (*(const volatile uint8_t *)addr); + return (__raw_readb(addr)); } #define readb_relaxed(addr) readb_relaxed(addr) @@ -214,7 +240,7 @@ readb_relaxed(const volatile void *addr) static inline void writeb_relaxed(uint8_t v, volatile void *addr) { - *(volatile uint8_t *)addr = v; + __raw_writeb(v, addr); } #define writeb_relaxed(v, addr) writeb_relaxed(v, addr) @@ -222,7 +248,7 @@ writeb_relaxed(uint8_t v, volatile void *addr) static inline uint16_t readw_relaxed(const volatile void *addr) { - return (*(const volatile uint16_t *)addr); + return (le16toh(__raw_readw(addr))); } #define readw_relaxed(addr) readw_relaxed(addr) @@ -230,7 +256,7 @@ readw_relaxed(const volatile void *addr) static inline void writew_relaxed(uint16_t v, volatile void *addr) { - *(volatile uint16_t *)addr = v; + __raw_writew(htole16(v), addr); } #define writew_relaxed(v, addr) writew_relaxed(v, addr) @@ -238,7 +264,7 @@ writew_relaxed(uint16_t v, volatile void *addr) static inline uint32_t readl_relaxed(const volatile void *addr) { - return (*(const volatile uint32_t *)addr); + return (le32toh(__raw_readl(addr))); } #define readl_relaxed(addr) readl_relaxed(addr) @@ -246,7 +272,7 @@ readl_relaxed(const volatile void *addr) static inline void writel_relaxed(uint32_t v, volatile void *addr) { - *(volatile uint32_t *)addr = v; + __raw_writel(htole32(v), addr); } #define writel_relaxed(v, addr) writel_relaxed(v, addr) @@ -256,14 +282,14 @@ writel_relaxed(uint32_t v, volatile void *addr) static inline uint64_t readq_relaxed(const volatile void *addr) { - return (*(const volatile uint64_t *)addr); + return (le64toh(__raw_readq(addr))); } #define readq_relaxed(addr) readq_relaxed(addr) static inline void writeq_relaxed(uint64_t v, volatile void *addr) { - *(volatile uint64_t *)addr = v; + __raw_writeq(htole64(v), addr); } #define writeq_relaxed(v, addr) writeq_relaxed(v, addr) #endif @@ -290,7 +316,13 @@ ioread16(const volatile void *addr) static inline uint16_t ioread16be(const volatile void *addr) { - return (bswap16(readw(addr))); + uint16_t v; + + __io_br(); + v = (be16toh(__raw_readw(addr))); + __io_ar(); + + return (v); } #define ioread16be(addr) ioread16be(addr) @@ -306,7 +338,13 @@ ioread32(const volatile void *addr) static inline uint32_t ioread32be(const volatile void *addr) { - return (bswap32(readl(addr))); + uint32_t v; + + __io_br(); + v = (be32toh(__raw_readl(addr))); + __io_ar(); + + return (v); } #define ioread32be(addr) ioread32be(addr) @@ -338,7 +376,9 @@ iowrite32(uint32_t v, volatile void *addr) static inline void iowrite32be(uint32_t v, volatile void *addr) { - writel(bswap32(v), addr); + __io_bw(); + __raw_writel(htobe32(v), addr); + __io_aw(); } #define iowrite32be(v, addr) iowrite32be(v, addr) Modified: stable/12/sys/compat/linuxkpi/common/include/linux/pci.h ============================================================================== --- stable/12/sys/compat/linuxkpi/common/include/linux/pci.h Fri May 1 06:10:09 2020 (r360524) +++ stable/12/sys/compat/linuxkpi/common/include/linux/pci.h Fri May 1 09:46:27 2020 (r360525) @@ -212,6 +212,7 @@ struct pci_driver { struct pci_bus { struct pci_dev *self; + int domain; int number; }; @@ -226,7 +227,6 @@ struct pci_dev { struct list_head links; struct pci_driver *pdrv; struct pci_bus *bus; - uint64_t dma_mask; uint16_t device; uint16_t vendor; uint16_t subsystem_vendor; @@ -279,26 +279,6 @@ linux_pci_find_irq_dev(unsigned int irq) return (found); } -static inline unsigned long -pci_resource_start(struct pci_dev *pdev, int bar) -{ - struct resource_list_entry *rle; - - if ((rle = linux_pci_get_bar(pdev, bar)) == NULL) - return (0); - return rle->start; -} - -static inline unsigned long -pci_resource_len(struct pci_dev *pdev, int bar) -{ - struct resource_list_entry *rle; - - if ((rle = linux_pci_get_bar(pdev, bar)) == NULL) - return (0); - return rle->count; -} - static inline int pci_resource_type(struct pci_dev *pdev, int bar) { @@ -470,6 +450,9 @@ linux_pci_disable_msi(struct pci_dev *pdev) pdev->irq = pdev->dev.irq; pdev->msi_enabled = false; } + +unsigned long pci_resource_start(struct pci_dev *pdev, int bar); +unsigned long pci_resource_len(struct pci_dev *pdev, int bar); static inline bus_addr_t pci_bus_address(struct pci_dev *pdev, int bar) Modified: stable/12/sys/compat/linuxkpi/common/include/linux/scatterlist.h ============================================================================== --- stable/12/sys/compat/linuxkpi/common/include/linux/scatterlist.h Fri May 1 06:10:09 2020 (r360524) +++ stable/12/sys/compat/linuxkpi/common/include/linux/scatterlist.h Fri May 1 09:46:27 2020 (r360525) @@ -36,6 +36,7 @@ #include #include +struct bus_dmamap; struct scatterlist { unsigned long page_link; #define SG_PAGE_LINK_CHAIN 0x1UL @@ -43,7 +44,8 @@ struct scatterlist { #define SG_PAGE_LINK_MASK 0x3UL unsigned int offset; unsigned int length; - dma_addr_t address; + dma_addr_t dma_address; + struct bus_dmamap *dma_map; /* FreeBSD specific */ }; CTASSERT((sizeof(struct scatterlist) & SG_PAGE_LINK_MASK) == 0); @@ -77,7 +79,7 @@ struct sg_page_iter { #define sg_chain_ptr(sg) \ ((struct scatterlist *) ((sg)->page_link & ~SG_PAGE_LINK_MASK)) -#define sg_dma_address(sg) (sg)->address +#define sg_dma_address(sg) (sg)->dma_address #define sg_dma_len(sg) (sg)->length #define for_each_sg_page(sgl, iter, nents, pgoffset) \ @@ -444,7 +446,7 @@ _sg_iter_init(struct scatterlist *sgl, struct sg_page_ static inline dma_addr_t sg_page_iter_dma_address(struct sg_page_iter *spi) { - return (spi->sg->address + (spi->sg_pgoffset << PAGE_SHIFT)); + return (spi->sg->dma_address + (spi->sg_pgoffset << PAGE_SHIFT)); } static inline struct page * Modified: stable/12/sys/compat/linuxkpi/common/src/linux_pci.c ============================================================================== --- stable/12/sys/compat/linuxkpi/common/src/linux_pci.c Fri May 1 06:10:09 2020 (r360524) +++ stable/12/sys/compat/linuxkpi/common/src/linux_pci.c Fri May 1 09:46:27 2020 (r360525) @@ -29,16 +29,17 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include #include #include -#include #include #include #include #include +#include #include #include @@ -86,6 +87,83 @@ static device_method_t pci_methods[] = { DEVMETHOD_END }; +struct linux_dma_priv { + uint64_t dma_mask; + struct mtx lock; + bus_dma_tag_t dmat; + struct pctrie ptree; +}; +#define DMA_PRIV_LOCK(priv) mtx_lock(&(priv)->lock) +#define DMA_PRIV_UNLOCK(priv) mtx_unlock(&(priv)->lock) + +static int +linux_pdev_dma_init(struct pci_dev *pdev) +{ + struct linux_dma_priv *priv; + int error; + + priv = malloc(sizeof(*priv), M_DEVBUF, M_WAITOK | M_ZERO); + pdev->dev.dma_priv = priv; + + mtx_init(&priv->lock, "lkpi-priv-dma", NULL, MTX_DEF); + + pctrie_init(&priv->ptree); + + /* create a default DMA tag */ + error = linux_dma_tag_init(&pdev->dev, DMA_BIT_MASK(64)); + if (error) { + mtx_destroy(&priv->lock); + free(priv, M_DEVBUF); + pdev->dev.dma_priv = NULL; + } + return (error); +} + +static int +linux_pdev_dma_uninit(struct pci_dev *pdev) +{ + struct linux_dma_priv *priv; + + priv = pdev->dev.dma_priv; + if (priv->dmat) + bus_dma_tag_destroy(priv->dmat); + mtx_destroy(&priv->lock); + free(priv, M_DEVBUF); + pdev->dev.dma_priv = NULL; + return (0); +} + +int +linux_dma_tag_init(struct device *dev, u64 dma_mask) +{ + struct linux_dma_priv *priv; + int error; + + priv = dev->dma_priv; + + if (priv->dmat) { + if (priv->dma_mask == dma_mask) + return (0); + + bus_dma_tag_destroy(priv->dmat); + } + + priv->dma_mask = dma_mask; + + error = bus_dma_tag_create(bus_get_dma_tag(dev->bsddev), + 1, 0, /* alignment, boundary */ + dma_mask, /* lowaddr */ + BUS_SPACE_MAXADDR, /* highaddr */ + NULL, NULL, /* filtfunc, filtfuncarg */ + BUS_SPACE_MAXSIZE, /* maxsize */ + 1, /* nsegments */ + BUS_SPACE_MAXSIZE, /* maxsegsz */ + 0, /* flags */ + NULL, NULL, /* lockfunc, lockfuncarg */ + &priv->dmat); + return (-error); +} + static struct pci_driver * linux_pci_find(device_t dev, const struct pci_device_id **idp) { @@ -142,7 +220,6 @@ linux_pci_attach(device_t dev) struct pci_driver *pdrv; const struct pci_device_id *id; device_t parent; - devclass_t devclass; int error; linux_set_current(curthread); @@ -151,7 +228,6 @@ linux_pci_attach(device_t dev) pdev = device_get_softc(dev); parent = device_get_parent(dev); - devclass = device_get_devclass(parent); if (pdrv->isdrm) { dinfo = device_get_ivars(parent); device_set_ivars(dev, dinfo); @@ -169,7 +245,6 @@ linux_pci_attach(device_t dev) pdev->subsystem_device = dinfo->cfg.subdevice; pdev->class = pci_get_class(dev); pdev->revision = pci_get_revid(dev); - pdev->dev.dma_mask = &pdev->dma_mask; pdev->pdrv = pdrv; kobject_init(&pdev->dev.kobj, &linux_dev_ktype); kobject_set_name(&pdev->dev.kobj, device_get_nameunit(dev)); @@ -181,10 +256,14 @@ linux_pci_attach(device_t dev) else pdev->dev.irq = LINUX_IRQ_INVALID; pdev->irq = pdev->dev.irq; + error = linux_pdev_dma_init(pdev); + if (error) + goto out_dma_init; pbus = malloc(sizeof(*pbus), M_DEVBUF, M_WAITOK | M_ZERO); pbus->self = pdev; pbus->number = pci_get_bus(dev); + pbus->domain = pci_get_domain(dev); pdev->bus = pbus; spin_lock(&pci_lock); @@ -192,15 +271,19 @@ linux_pci_attach(device_t dev) spin_unlock(&pci_lock); error = pdrv->probe(pdev, id); - if (error) { - free(pdev->bus, M_DEVBUF); - spin_lock(&pci_lock); - list_del(&pdev->links); - spin_unlock(&pci_lock); - put_device(&pdev->dev); - error = -error; - } - return (error); + if (error) + goto out_probe; + return (0); + +out_probe: + free(pdev->bus, M_DEVBUF); + linux_pdev_dma_uninit(pdev); +out_dma_init: + spin_lock(&pci_lock); + list_del(&pdev->links); + spin_unlock(&pci_lock); + put_device(&pdev->dev); + return (-error); } static int @@ -212,7 +295,9 @@ linux_pci_detach(device_t dev) pdev = device_get_softc(dev); pdev->pdrv->remove(pdev); + free(pdev->bus, M_DEVBUF); + linux_pdev_dma_uninit(pdev); spin_lock(&pci_lock); list_del(&pdev->links); @@ -354,6 +439,36 @@ linux_pci_register_driver(struct pci_driver *pdrv) return (_linux_pci_register_driver(pdrv, dc)); } +unsigned long +pci_resource_start(struct pci_dev *pdev, int bar) +{ + struct resource_list_entry *rle; + rman_res_t newstart; + device_t dev; + + if ((rle = linux_pci_get_bar(pdev, bar)) == NULL) + return (0); + dev = pci_find_dbsf(pdev->bus->domain, pdev->bus->number, + PCI_SLOT(pdev->devfn), PCI_FUNC(pdev->devfn)); + MPASS(dev != NULL); + if (BUS_TRANSLATE_RESOURCE(dev, rle->type, rle->start, &newstart)) { + device_printf(pdev->dev.bsddev, "translate of %#jx failed\n", + (uintmax_t)rle->start); + return (0); + } + return (newstart); +} + +unsigned long +pci_resource_len(struct pci_dev *pdev, int bar) +{ + struct resource_list_entry *rle; + + if ((rle = linux_pci_get_bar(pdev, bar)) == NULL) + return (0); + return (rle->count); +} + int linux_pci_register_drm_driver(struct pci_driver *pdrv) { @@ -397,4 +512,417 @@ linux_pci_unregister_drm_driver(struct pci_driver *pdr if (bus != NULL) devclass_delete_driver(bus, &pdrv->bsddriver); mtx_unlock(&Giant); +} + +CTASSERT(sizeof(dma_addr_t) <= sizeof(uint64_t)); + +struct linux_dma_obj { + void *vaddr; + uint64_t dma_addr; + bus_dmamap_t dmamap; +}; + +static uma_zone_t linux_dma_trie_zone; +static uma_zone_t linux_dma_obj_zone; + +static void +linux_dma_init(void *arg) +{ + + linux_dma_trie_zone = uma_zcreate("linux_dma_pctrie", + pctrie_node_size(), NULL, NULL, pctrie_zone_init, NULL, + UMA_ALIGN_PTR, 0); + linux_dma_obj_zone = uma_zcreate("linux_dma_object", + sizeof(struct linux_dma_obj), NULL, NULL, NULL, NULL, + UMA_ALIGN_PTR, 0); + +} +SYSINIT(linux_dma, SI_SUB_DRIVERS, SI_ORDER_THIRD, linux_dma_init, NULL); + +static void +linux_dma_uninit(void *arg) +{ + + uma_zdestroy(linux_dma_obj_zone); + uma_zdestroy(linux_dma_trie_zone); +} +SYSUNINIT(linux_dma, SI_SUB_DRIVERS, SI_ORDER_THIRD, linux_dma_uninit, NULL); + +static void * +linux_dma_trie_alloc(struct pctrie *ptree) +{ + + return (uma_zalloc(linux_dma_trie_zone, M_NOWAIT)); +} + +static void +linux_dma_trie_free(struct pctrie *ptree, void *node) +{ + + uma_zfree(linux_dma_trie_zone, node); +} + + +PCTRIE_DEFINE(LINUX_DMA, linux_dma_obj, dma_addr, linux_dma_trie_alloc, + linux_dma_trie_free); + +void * +linux_dma_alloc_coherent(struct device *dev, size_t size, + dma_addr_t *dma_handle, gfp_t flag) +{ + struct linux_dma_priv *priv; + vm_paddr_t high; + size_t align; + void *mem; + + if (dev == NULL || dev->dma_priv == NULL) { *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Fri May 1 09:50: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 196C92D05D1; Fri, 1 May 2020 09:50:37 +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 49D6v06yzgz4JXK; Fri, 1 May 2020 09:50:36 +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 EA8616565; Fri, 1 May 2020 09:50:36 +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 0419oapN061267; Fri, 1 May 2020 09:50:36 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0419oaNk061265; Fri, 1 May 2020 09:50:36 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202005010950.0419oaNk061265@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Fri, 1 May 2020 09:50: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: r360526 - in stable/12/sys/compat/linuxkpi/common: include/linux src X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/12/sys/compat/linuxkpi/common: include/linux src X-SVN-Commit-Revision: 360526 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, 01 May 2020 09:50:37 -0000 Author: hselasky Date: Fri May 1 09:50:36 2020 New Revision: 360526 URL: https://svnweb.freebsd.org/changeset/base/360526 Log: MFC r360196: Factor code in LinuxKPI to allow attach and detach using any BSD device. This allows non-LinuxKPI based infiniband device drivers to attach correctly to ibcore. No functional change intended. Reviewed by: np @ Differential Revision: https://reviews.freebsd.org/D24514 Sponsored by: Mellanox Technologies Modified: stable/12/sys/compat/linuxkpi/common/include/linux/pci.h stable/12/sys/compat/linuxkpi/common/src/linux_pci.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/compat/linuxkpi/common/include/linux/pci.h ============================================================================== --- stable/12/sys/compat/linuxkpi/common/include/linux/pci.h Fri May 1 09:46:27 2020 (r360525) +++ stable/12/sys/compat/linuxkpi/common/include/linux/pci.h Fri May 1 09:50:36 2020 (r360526) @@ -954,4 +954,15 @@ pcie_get_width_cap(struct pci_dev *dev) return (PCIE_LNK_WIDTH_UNKNOWN); } +/* + * The following functions can be used to attach/detach the LinuxKPI's + * PCI device runtime. The pci_driver and pci_device_id pointer is + * allowed to be NULL. Other pointers must be all valid. + * The pci_dev structure should be zero-initialized before passed + * to the linux_pci_attach_device function. + */ +extern int linux_pci_attach_device(device_t, struct pci_driver *, + const struct pci_device_id *, struct pci_dev *); +extern int linux_pci_detach_device(struct pci_dev *); + #endif /* _LINUX_PCI_H_ */ Modified: stable/12/sys/compat/linuxkpi/common/src/linux_pci.c ============================================================================== --- stable/12/sys/compat/linuxkpi/common/src/linux_pci.c Fri May 1 09:46:27 2020 (r360525) +++ stable/12/sys/compat/linuxkpi/common/src/linux_pci.c Fri May 1 09:50:36 2020 (r360526) @@ -213,22 +213,33 @@ linux_pci_probe(device_t dev) static int linux_pci_attach(device_t dev) { + const struct pci_device_id *id; + struct pci_driver *pdrv; + struct pci_dev *pdev; + + pdrv = linux_pci_find(dev, &id); + pdev = device_get_softc(dev); + + MPASS(pdrv != NULL); + MPASS(pdev != NULL); + + return (linux_pci_attach_device(dev, pdrv, id, pdev)); +} + +int +linux_pci_attach_device(device_t dev, struct pci_driver *pdrv, + const struct pci_device_id *id, struct pci_dev *pdev) +{ struct resource_list_entry *rle; struct pci_bus *pbus; - struct pci_dev *pdev; struct pci_devinfo *dinfo; - struct pci_driver *pdrv; - const struct pci_device_id *id; device_t parent; int error; linux_set_current(curthread); - pdrv = linux_pci_find(dev, &id); - pdev = device_get_softc(dev); - - parent = device_get_parent(dev); - if (pdrv->isdrm) { + if (pdrv != NULL && pdrv->isdrm) { + parent = device_get_parent(dev); dinfo = device_get_ivars(parent); device_set_ivars(dev, dinfo); } else { @@ -270,9 +281,11 @@ linux_pci_attach(device_t dev) list_add(&pdev->links, &pci_devices); spin_unlock(&pci_lock); - error = pdrv->probe(pdev, id); - if (error) - goto out_probe; + if (pdrv != NULL) { + error = pdrv->probe(pdev, id); + if (error) + goto out_probe; + } return (0); out_probe: @@ -291,18 +304,30 @@ linux_pci_detach(device_t dev) { struct pci_dev *pdev; - linux_set_current(curthread); pdev = device_get_softc(dev); - pdev->pdrv->remove(pdev); + MPASS(pdev != NULL); + device_set_desc(dev, NULL); + + return (linux_pci_detach_device(pdev)); +} + +int +linux_pci_detach_device(struct pci_dev *pdev) +{ + + linux_set_current(curthread); + + if (pdev->pdrv != NULL) + pdev->pdrv->remove(pdev); + free(pdev->bus, M_DEVBUF); linux_pdev_dma_uninit(pdev); spin_lock(&pci_lock); list_del(&pdev->links); spin_unlock(&pci_lock); - device_set_desc(dev, NULL); put_device(&pdev->dev); return (0); From owner-svn-src-all@freebsd.org Fri May 1 10:02: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 864452D0D47; Fri, 1 May 2020 10:02:41 +0000 (UTC) (envelope-from bcr@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 49D78x2zrkz4KY5; Fri, 1 May 2020 10:02:41 +0000 (UTC) (envelope-from bcr@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 61A0967F9; Fri, 1 May 2020 10:02:41 +0000 (UTC) (envelope-from bcr@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 041A2fvo073356; Fri, 1 May 2020 10:02:41 GMT (envelope-from bcr@FreeBSD.org) Received: (from bcr@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 041A2cKX073344; Fri, 1 May 2020 10:02:38 GMT (envelope-from bcr@FreeBSD.org) Message-Id: <202005011002.041A2cKX073344@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bcr set sender to bcr@FreeBSD.org using -f From: Benedict Reuschling Date: Fri, 1 May 2020 10:02:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360527 - head/share/man/man4 X-SVN-Group: head X-SVN-Commit-Author: bcr X-SVN-Commit-Paths: head/share/man/man4 X-SVN-Commit-Revision: 360527 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, 01 May 2020 10:02:41 -0000 Author: bcr (doc committer) Date: Fri May 1 10:02:38 2020 New Revision: 360527 URL: https://svnweb.freebsd.org/changeset/base/360527 Log: Fix a number of the following issues in man4: - Inconsistencies in .Dd like abbreviated month names, "th" after numbers, or leading zeros - No line breaks after a sentence stop - Whitespace at the end of the line - Use macros for BSD OS names instead of hardcoded names - CAVEATS instead of CAVEAT in section name No actual content change in terms of additions were made, so no bump of the .Dd for these man pages. All of these issues were found and fixed by Gordon Bergling. Submitted by: gbergling_gmail.com Approved by: bcr Differential Revision: https://reviews.freebsd.org/D24648 Modified: head/share/man/man4/acpi_wmi.4 head/share/man/man4/bhndb.4 head/share/man/man4/bnxt.4 head/share/man/man4/bridge.4 head/share/man/man4/bwi.4 head/share/man/man4/bxe.4 head/share/man/man4/cyapa.4 head/share/man/man4/hv_vss.4 head/share/man/man4/ig4.4 head/share/man/man4/pchtherm.4 head/share/man/man4/ppbus.4 Modified: head/share/man/man4/acpi_wmi.4 ============================================================================== --- head/share/man/man4/acpi_wmi.4 Fri May 1 09:50:36 2020 (r360526) +++ head/share/man/man4/acpi_wmi.4 Fri May 1 10:02:38 2020 (r360527) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd Sep 5, 2019 +.Dd September 5, 2019 .Dt ACPI_WMI 4 .Os .Sh NAME Modified: head/share/man/man4/bhndb.4 ============================================================================== --- head/share/man/man4/bhndb.4 Fri May 1 09:50:36 2020 (r360526) +++ head/share/man/man4/bhndb.4 Fri May 1 10:02:38 2020 (r360527) @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 16th, 2017 +.Dd October 16, 2017 .Dt BHNDB 4 .Os .Sh NAME Modified: head/share/man/man4/bnxt.4 ============================================================================== --- head/share/man/man4/bnxt.4 Fri May 1 09:50:36 2020 (r360526) +++ head/share/man/man4/bnxt.4 Fri May 1 10:02:38 2020 (r360527) @@ -208,10 +208,12 @@ reasons to ignore Ethernet frames. .It Va dev.bnxt.X.hwstats.rxq0.tpa_* statistics related to HW LRO. .It Va dev.bnxt.X.hw_lro.* -Enable / Disable HW LRO feature. Defaults to disable. +Enable / Disable HW LRO feature. +Defaults to disable. Enabling HW LRO could cause issues when forwarding is enabled on host. .It Va dev.bnxt.X.fc -Enable / Disable Flow Control feature. Defaults to Enable +Enable / Disable Flow Control feature. +Defaults to Enable .El .Sh DIAGNOSTICS .Bl -diag @@ -245,8 +247,8 @@ device driver first appeared in The .Nm driver was written by -.An Jack Vogel Aq Mt jfvogel@gmail.com -and +.An Jack Vogel Aq Mt jfvogel@gmail.com +and .An Stephen Hurd Aq Mt shurd@freebsd.org , and is currently maintained by .An Broadcom Limited Aq Mt freebsd.pdl@broadcom.com . Modified: head/share/man/man4/bridge.4 ============================================================================== --- head/share/man/man4/bridge.4 Fri May 1 09:50:36 2020 (r360526) +++ head/share/man/man4/bridge.4 Fri May 1 10:02:38 2020 (r360527) @@ -35,7 +35,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 01, 2020 +.Dd February 1, 2020 .Dt IF_BRIDGE 4 .Os .Sh NAME Modified: head/share/man/man4/bwi.4 ============================================================================== --- head/share/man/man4/bwi.4 Fri May 1 09:50:36 2020 (r360526) +++ head/share/man/man4/bwi.4 Fri May 1 10:02:38 2020 (r360527) @@ -140,7 +140,9 @@ driver first appeared in .An -nosplit The .Nm -driver was written for DragonFly BSD by +driver was written for +.Dx +by .An Sepherosa Ziehau and subsequently ported to .Fx . Modified: head/share/man/man4/bxe.4 ============================================================================== --- head/share/man/man4/bxe.4 Fri May 1 09:50:36 2020 (r360526) +++ head/share/man/man4/bxe.4 Fri May 1 10:02:38 2020 (r360527) @@ -164,7 +164,7 @@ Enable/Disable 4-tuple RSS for UDP: 0=DISABLED, 1=ENAB .Pp Special care must be taken when modifying the number of queues and receive buffers. -FreeBSD imposes a limit on the maximum number of +.Fx imposes a limit on the maximum number of .Xr mbuf 9 allocations. If buffer allocations fail, the interface initialization will fail Modified: head/share/man/man4/cyapa.4 ============================================================================== --- head/share/man/man4/cyapa.4 Fri May 1 09:50:36 2020 (r360526) +++ head/share/man/man4/cyapa.4 Fri May 1 10:02:38 2020 (r360527) @@ -210,7 +210,9 @@ file: .An -nosplit The original .Nm -driver was written for DragonFly BSD by +driver was written for +.Dx +by .An Matthew Dillon . .Pp It has been ported, modified, and enhanced for Modified: head/share/man/man4/hv_vss.4 ============================================================================== --- head/share/man/man4/hv_vss.4 Fri May 1 09:50:36 2020 (r360526) +++ head/share/man/man4/hv_vss.4 Fri May 1 10:02:38 2020 (r360527) @@ -52,11 +52,14 @@ struct hv_vss_opt_msg { .Ed .Sh DESCRIPTION The freeze or thaw functionality of application is important to guarantee -the application consistent backup. On windows platform, VSS is defined to do -live backup. But for VM guest running on Hyper-V, the corresponding VSS is -not defined yet. For example, a running database server instance, it knows when the -applications' freeze/thaw should start or finish. But it is not aware of -the freeze/thaw notification from Hyper-V host. The +the application consistent backup. +On windows platform, VSS is defined to do live backup. +But for VM guest running on Hyper-V, the corresponding VSS is +not defined yet. +For example, a running database server instance, it knows when the +applications' freeze/thaw should start or finish. +But it is not aware of the freeze/thaw notification from Hyper-V host. +The .Nm is designed to notify application freeze/thaw request. Thus, it plays a role of broker to forward the freeze/thaw command from Hyper-V host @@ -67,23 +70,25 @@ VM, and sends the result back to Hyper-V host. Generally, .Xr hv_vss_daemon 8 takes the responsibility to freeze/thaw UFS file system, -and it is automatically launched after system boots. When Hyper-V host wants to -take a snapshot of the +and it is automatically launched after system boots. +When Hyper-V host wants to take a snapshot of the .Fx VM, it will first send VSS capability check to .Fx -VM. The +VM. +The .Nm received the request and forward the request to userland application if it is -registered. Only after +registered. +Only after .Nm received the VSS_SUCCESS response from application, the .Xr hv_vss_daemon 8 -will be informed to check whether file system freeze/thaw is supported. Any error -occurs during this period, +will be informed to check whether file system freeze/thaw is supported. +Any error occurs during this period, .Nm -will inform Hyper-V host that VSS is not supported. In addition, there is a default -timeout limit before sending response to Hyper-V host. +will inform Hyper-V host that VSS is not supported. +In addition, there is a default timeout limit before sending response to Hyper-V host. If the total response time from application and .Xr hv_vss_daemon 8 exceeds this value, timeout @@ -93,20 +98,20 @@ After Hyper-V host confirmed the .Fx VM supports VSS, it will send freeze request to VM, and .Nm -will first forward it to application. After application finished freezing, it should -inform +will first forward it to application. +After application finished freezing, it should inform .Nm and file system level freezing will be triggered by -.Xr hv_vss_daemon 8 . After all freezing -on both application and +.Xr hv_vss_daemon 8 . +After all freezing on both application and .Xr hv_vss_daemon 8 were finished, the .Nm -will inform Hyper-V host that freezing is done. Of course, there is a timeout limit as -same as VSS capability is set to make sure freezing on +will inform Hyper-V host that freezing is done. +Of course, there is a timeout limit as same as VSS capability is set to make sure freezing on .Fx -VM is not hang. If there is any error occurs or timeout happened, the freezing is failed -on Hyper-V side. +VM is not hang. +If there is any error occurs or timeout happened, the freezing is failed on Hyper-V side. .Pp Hyper-V host will send thaw request after taking the snapshot, typically, this period is very short in order not to block the running application. @@ -114,17 +119,20 @@ very short in order not to block the running applicati firstly thaw the file system by notifying .Xr hv_vss_daemon 8 , then notifies user registered -application. There is also a timeout check before sending response to Hyper-V host. +application. +There is also a timeout check before sending response to Hyper-V host. .Pp All the default timeout limit used in VSS capability check, freeze or thaw is the same. It is 15 seconds currently. .Sh NOTES .Nm -only support UFS currently. If any of file system partition is non UFS, the VSS capability -check will fail. If application does not register VSS, +only support UFS currently. +If any of file system partition is non UFS, the VSS capability check will fail. +If application does not register VSS, .Nm -only support backup for file system level consistent. The device should be closed before it -was opened again. If you want to simultaneously open "/dev/hv_appvss_dev" two or more times, +only support backup for file system level consistent. +The device should be closed before it was opened again. +If you want to simultaneously open "/dev/hv_appvss_dev" two or more times, an error (-1) will be returned, and errno was set. .Pp If Modified: head/share/man/man4/ig4.4 ============================================================================== --- head/share/man/man4/ig4.4 Fri May 1 09:50:36 2020 (r360526) +++ head/share/man/man4/ig4.4 Fri May 1 10:02:38 2020 (r360527) @@ -71,7 +71,9 @@ device with the same unit number. .An -nosplit The .Nm -driver was written for DragonFly BSD by +driver was written for +.Dx +by .An Matthew Dillon and subsequently ported to .Fx Modified: head/share/man/man4/pchtherm.4 ============================================================================== --- head/share/man/man4/pchtherm.4 Fri May 1 09:50:36 2020 (r360526) +++ head/share/man/man4/pchtherm.4 Fri May 1 10:02:38 2020 (r360527) @@ -35,7 +35,7 @@ .Sh DESCRIPTION The .Nm -driver provides access to sensor data and configuration +driver provides access to sensor data and configuration installed in Intel PCH chipset. .Nm configuration register. @@ -60,7 +60,7 @@ dev.pchtherm.0.%pnpinfo: vendor=0x8086 device=0x9d31 s dev.pchtherm.0.%location: slot=20 function=2 dbsf=pci0:0:20:2 dev.pchtherm.0.%driver: pchtherm dev.pchtherm.0.%desc: Skylake PCH Thermal Subsystem -dev.pchtherm.%parent: +dev.pchtherm.%parent: .Ed .Bl -tag -width ".Va dev.pchtherm.%d.pch_hot_level" .It Va dev.pchtherm.%d.temperature @@ -99,7 +99,7 @@ This value is not appear when this feature is disabled .Pp Please check the PCH datasheets for more details. .Pp -.Sh CAVEAT +.Sh CAVEATS All values are read-only. And it do not support event interrupt for now. .Sh SEE ALSO Modified: head/share/man/man4/ppbus.4 ============================================================================== --- head/share/man/man4/ppbus.4 Fri May 1 09:50:36 2020 (r360526) +++ head/share/man/man4/ppbus.4 Fri May 1 10:02:38 2020 (r360527) @@ -95,7 +95,7 @@ parallel port model. Consequently, for the i386 implementation of ppbus, most of the services provided by ppc are macros for inb() and outb() calls. -But, for an other architecture, accesses to one of our logical +But, for another architecture, accesses to one of our logical registers (data, status, control...) may require more than one I/O access. .Ss Description The parallel port may operate in the following modes: From owner-svn-src-all@freebsd.org Fri May 1 10:14: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 965252D160B; Fri, 1 May 2020 10:14: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 49D7Qt3WZPz4LK9; Fri, 1 May 2020 10:14: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 741156A05; Fri, 1 May 2020 10:14: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 041AEkUW079418; Fri, 1 May 2020 10:14:46 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 041AEkHe079417; Fri, 1 May 2020 10:14:46 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202005011014.041AEkHe079417@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Fri, 1 May 2020 10:14:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360528 - 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: 360528 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, 01 May 2020 10:14:46 -0000 Author: hselasky Date: Fri May 1 10:14:45 2020 New Revision: 360528 URL: https://svnweb.freebsd.org/changeset/base/360528 Log: Implement kstrtou64() in the LinuxKPI. Submitted by: ashafer_badland.io (Austin Shafer) MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/compat/linuxkpi/common/include/linux/kernel.h Modified: head/sys/compat/linuxkpi/common/include/linux/kernel.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/kernel.h Fri May 1 10:02:38 2020 (r360527) +++ head/sys/compat/linuxkpi/common/include/linux/kernel.h Fri May 1 10:14:45 2020 (r360528) @@ -390,6 +390,21 @@ kstrtou32(const char *cp, unsigned int base, u32 *res) } static inline int +kstrtou64(const char *cp, unsigned int base, u64 *res) +{ + char *end; + + *res = strtouq(cp, &end, base); + + /* skip newline character, if any */ + if (*end == '\n') + end++; + if (*cp == 0 || *end != 0) + return (-EINVAL); + return (0); +} + +static inline int kstrtobool(const char *s, bool *res) { int len; From owner-svn-src-all@freebsd.org Fri May 1 10:18: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 4F0832D1887; Fri, 1 May 2020 10:18:08 +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 49D7Vm1Md4z4Lc1; Fri, 1 May 2020 10:18:08 +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 2A1A36A1A; Fri, 1 May 2020 10:18:08 +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 041AI8xn079669; Fri, 1 May 2020 10:18:08 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 041AI8K1079668; Fri, 1 May 2020 10:18:08 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202005011018.041AI8K1079668@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Fri, 1 May 2020 10:18:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360529 - 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: 360529 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, 01 May 2020 10:18:08 -0000 Author: hselasky Date: Fri May 1 10:18:07 2020 New Revision: 360529 URL: https://svnweb.freebsd.org/changeset/base/360529 Log: Implement more lockdep macros in the LinuxKPI. Submitted by: ashafer_badland.io (Austin Shafer) MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/compat/linuxkpi/common/include/linux/lockdep.h Modified: head/sys/compat/linuxkpi/common/include/linux/lockdep.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/lockdep.h Fri May 1 10:14:45 2020 (r360528) +++ head/sys/compat/linuxkpi/common/include/linux/lockdep.h Fri May 1 10:18:07 2020 (r360529) @@ -36,6 +36,7 @@ struct lock_class_key { }; #define lockdep_set_class(lock, key) +#define lockdep_set_subclass(lock, sub) #define lockdep_set_class_and_name(lock, key, name) #define lockdep_set_current_reclaim_state(g) do { } while (0) #define lockdep_clear_current_reclaim_state() do { } while (0) @@ -60,6 +61,7 @@ lockdep_is_held(void *__m) __lock = __m; return (LOCK_CLASS(__lock)->lc_owner(__lock, &__td) != 0); } +#define lockdep_is_held_type(_m, _t) lockdep_is_held(_m) #else #define lockdep_assert_held(m) do { } while (0) @@ -67,6 +69,7 @@ lockdep_is_held(void *__m) #define lockdep_assert_held_once(m) do { } while (0) #define lockdep_is_held(m) 1 +#define lockdep_is_held_type(_m, _t) 1 #endif #define might_lock(m) do { } while (0) @@ -75,5 +78,8 @@ lockdep_is_held(void *__m) #define lock_acquire(...) do { } while (0) #define lock_release(...) do { } while (0) #define lock_acquire_shared_recursive(...) do { } while (0) + +#define mutex_acquire(...) do { } while (0) +#define mutex_release(...) do { } while (0) #endif /* _LINUX_LOCKDEP_H_ */ From owner-svn-src-all@freebsd.org Fri May 1 10:25: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 BD3262D1E58; Fri, 1 May 2020 10:25:07 +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 49D7fq4dh8z4MJ1; Fri, 1 May 2020 10:25:07 +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 9A5996BE8; Fri, 1 May 2020 10:25:07 +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 041AP74T085494; Fri, 1 May 2020 10:25:07 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 041AP7Di085493; Fri, 1 May 2020 10:25:07 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202005011025.041AP7Di085493@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Fri, 1 May 2020 10:25:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360530 - 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: 360530 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, 01 May 2020 10:25:07 -0000 Author: hselasky Date: Fri May 1 10:25:07 2020 New Revision: 360530 URL: https://svnweb.freebsd.org/changeset/base/360530 Log: Implement DIV64_U64_ROUND_UP() in the LinuxKPI. Submitted by: ashafer_badland.io (Austin Shafer) MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/compat/linuxkpi/common/include/linux/math64.h Modified: head/sys/compat/linuxkpi/common/include/linux/math64.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/math64.h Fri May 1 10:18:07 2020 (r360529) +++ head/sys/compat/linuxkpi/common/include/linux/math64.h Fri May 1 10:25:07 2020 (r360530) @@ -91,4 +91,13 @@ mul_u32_u32(uint32_t a, uint32_t b) return ((uint64_t)a * b); } +static inline uint64_t +div64_u64_round_up(uint64_t dividend, uint64_t divisor) +{ + return ((dividend + divisor - 1) / divisor); +} + +#define DIV64_U64_ROUND_UP(...) \ + div64_u64_round_up(__VA_ARGS__) + #endif /* _LINUX_MATH64_H */ From owner-svn-src-all@freebsd.org Fri May 1 10:28: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 9D1092D1F0E; Fri, 1 May 2020 10:28: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 49D7kY3jb2z4MRc; Fri, 1 May 2020 10:28: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 760766BE9; Fri, 1 May 2020 10:28: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 041ASLJi085782; Fri, 1 May 2020 10:28:21 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 041ASLXs085781; Fri, 1 May 2020 10:28:21 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202005011028.041ASLXs085781@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Fri, 1 May 2020 10:28:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360531 - 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: 360531 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, 01 May 2020 10:28:21 -0000 Author: hselasky Date: Fri May 1 10:28:21 2020 New Revision: 360531 URL: https://svnweb.freebsd.org/changeset/base/360531 Log: Implement mutex_lock_killable() in the LinuxKPI. Submitted by: ashafer_badland.io (Austin Shafer) MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/compat/linuxkpi/common/include/linux/mutex.h Modified: head/sys/compat/linuxkpi/common/include/linux/mutex.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/mutex.h Fri May 1 10:25:07 2020 (r360530) +++ head/sys/compat/linuxkpi/common/include/linux/mutex.h Fri May 1 10:28:21 2020 (r360531) @@ -66,6 +66,18 @@ typedef struct mutex { linux_mutex_lock_interruptible(_m); \ }) +/* + * Reuse the interruptable method since the SX + * lock handles both signals and interrupts: + */ +#define mutex_lock_killable(_m) ({ \ + MUTEX_SKIP() ? 0 : \ + linux_mutex_lock_interruptible(_m); \ +}) + +#define mutex_lock_killable_nested(_m, _sub) \ + mutex_lock_killable(_m) + #define mutex_unlock(_m) do { \ if (MUTEX_SKIP()) \ break; \ From owner-svn-src-all@freebsd.org Fri May 1 10:32: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 8DC532D218A; Fri, 1 May 2020 10:32:43 +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 49D7qb3FnHz4MwN; Fri, 1 May 2020 10:32:43 +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 6AF606DC0; Fri, 1 May 2020 10:32:43 +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 041AWhVE091842; Fri, 1 May 2020 10:32:43 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 041AWhcK091841; Fri, 1 May 2020 10:32:43 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202005011032.041AWhcK091841@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Fri, 1 May 2020 10:32:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360532 - 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: 360532 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, 01 May 2020 10:32:43 -0000 Author: hselasky Date: Fri May 1 10:32:42 2020 New Revision: 360532 URL: https://svnweb.freebsd.org/changeset/base/360532 Log: Implement more PCI-express bandwidth functions in the LinuxKPI. Submitted by: ashafer_badland.io (Austin Shafer) MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/compat/linuxkpi/common/include/linux/pci.h Modified: head/sys/compat/linuxkpi/common/include/linux/pci.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/pci.h Fri May 1 10:28:21 2020 (r360531) +++ head/sys/compat/linuxkpi/common/include/linux/pci.h Fri May 1 10:32:42 2020 (r360532) @@ -954,6 +954,47 @@ pcie_get_width_cap(struct pci_dev *dev) return (PCIE_LNK_WIDTH_UNKNOWN); } +static inline int +pcie_get_mps(struct pci_dev *dev) +{ + return (pci_get_max_payload(dev->dev.bsddev)); +} + +static inline uint32_t +PCIE_SPEED2MBS_ENC(enum pci_bus_speed spd) +{ + + switch(spd) { + case PCIE_SPEED_16_0GT: + return (16000 * 128 / 130); + case PCIE_SPEED_8_0GT: + return (8000 * 128 / 130); + case PCIE_SPEED_5_0GT: + return (5000 * 8 / 10); + case PCIE_SPEED_2_5GT: + return (2500 * 8 / 10); + default: + return (0); + } +} + +static inline uint32_t +pcie_bandwidth_available(struct pci_dev *pdev, + struct pci_dev **limiting, + enum pci_bus_speed *speed, + enum pcie_link_width *width) +{ + enum pci_bus_speed nspeed = pcie_get_speed_cap(pdev); + enum pcie_link_width nwidth = pcie_get_width_cap(pdev); + + if (speed) + *speed = nspeed; + if (width) + *width = nwidth; + + return (nwidth * PCIE_SPEED2MBS_ENC(nspeed)); +} + /* * The following functions can be used to attach/detach the LinuxKPI's * PCI device runtime. The pci_driver and pci_device_id pointer is From owner-svn-src-all@freebsd.org Fri May 1 11:36: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 C83FE2D3091; Fri, 1 May 2020 11:36:40 +0000 (UTC) (envelope-from bcr@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 49D9FN3mpBz4QM3; Fri, 1 May 2020 11:36:40 +0000 (UTC) (envelope-from bcr@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 7CA4B7952; Fri, 1 May 2020 11:36:40 +0000 (UTC) (envelope-from bcr@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 041BaeJp028670; Fri, 1 May 2020 11:36:40 GMT (envelope-from bcr@FreeBSD.org) Received: (from bcr@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 041Baeio028668; Fri, 1 May 2020 11:36:40 GMT (envelope-from bcr@FreeBSD.org) Message-Id: <202005011136.041Baeio028668@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bcr set sender to bcr@FreeBSD.org using -f From: Benedict Reuschling Date: Fri, 1 May 2020 11:36:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360533 - head/share/man/man9 X-SVN-Group: head X-SVN-Commit-Author: bcr X-SVN-Commit-Paths: head/share/man/man9 X-SVN-Commit-Revision: 360533 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, 01 May 2020 11:36:40 -0000 Author: bcr (doc committer) Date: Fri May 1 11:36:39 2020 New Revision: 360533 URL: https://svnweb.freebsd.org/changeset/base/360533 Log: Fix typo in r360492: appeard -> appeared Reported by: trasz (via IRC) Modified: head/share/man/man9/disk.9 head/share/man/man9/epoch.9 Modified: head/share/man/man9/disk.9 ============================================================================== --- head/share/man/man9/disk.9 Fri May 1 10:32:42 2020 (r360532) +++ head/share/man/man9/disk.9 Fri May 1 11:36:39 2020 (r360533) @@ -244,7 +244,7 @@ structure for this disk device. .Sh HISTORY The .Nm kernel disk storage API -first appeard in +first appeared in .Fx 4.9 . .Sh SEE ALSO .Xr GEOM 4 , Modified: head/share/man/man9/epoch.9 ============================================================================== --- head/share/man/man9/epoch.9 Fri May 1 10:32:42 2020 (r360532) +++ head/share/man/man9/epoch.9 Fri May 1 11:36:39 2020 (r360533) @@ -284,7 +284,7 @@ kernel programming interface is under development and .Sh HISTORY The .Nm -framework first appeard in +framework first appeared in .Fx 11.0 . .Sh SEE ALSO .Xr locking 9 , From owner-svn-src-all@freebsd.org Fri May 1 13:47: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 5C9E22D6291; Fri, 1 May 2020 13:47:14 +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 49DD821lyjz4YZ4; Fri, 1 May 2020 13:47:14 +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 3780391B7; Fri, 1 May 2020 13:47:14 +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 041DlEo5008770; Fri, 1 May 2020 13:47:14 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 041DlEXp008769; Fri, 1 May 2020 13:47:14 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202005011347.041DlEXp008769@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 1 May 2020 13:47: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: r360534 - stable/11/sys/dev/mfi X-SVN-Group: stable-11 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/11/sys/dev/mfi X-SVN-Commit-Revision: 360534 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, 01 May 2020 13:47:14 -0000 Author: mav Date: Fri May 1 13:47:13 2020 New Revision: 360534 URL: https://svnweb.freebsd.org/changeset/base/360534 Log: MFC r323320 (by scottl): Fix intrhook release in MFI as well Modified: stable/11/sys/dev/mfi/mfi.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mfi/mfi.c ============================================================================== --- stable/11/sys/dev/mfi/mfi.c Fri May 1 11:36:39 2020 (r360533) +++ stable/11/sys/dev/mfi/mfi.c Fri May 1 13:47:13 2020 (r360534) @@ -1264,8 +1264,6 @@ mfi_startup(void *arg) sc = (struct mfi_softc *)arg; - config_intrhook_disestablish(&sc->mfi_ich); - sc->mfi_enable_intr(sc); sx_xlock(&sc->mfi_config_lock); mtx_lock(&sc->mfi_io_lock); @@ -1274,6 +1272,8 @@ mfi_startup(void *arg) mfi_syspdprobe(sc); mtx_unlock(&sc->mfi_io_lock); sx_xunlock(&sc->mfi_config_lock); + + config_intrhook_disestablish(&sc->mfi_ich); } static void From owner-svn-src-all@freebsd.org Fri May 1 14:30: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 D68632D701A; Fri, 1 May 2020 14:30:59 +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 49DF6W5KBwz4cd4; Fri, 1 May 2020 14:30:59 +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 B1DFC9979; Fri, 1 May 2020 14:30:59 +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 041EUx3N035155; Fri, 1 May 2020 14:30:59 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 041EUx7b035154; Fri, 1 May 2020 14:30:59 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202005011430.041EUx7b035154@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Fri, 1 May 2020 14:30:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360535 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 360535 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, 01 May 2020 14:30:59 -0000 Author: emaste Date: Fri May 1 14:30:59 2020 New Revision: 360535 URL: https://svnweb.freebsd.org/changeset/base/360535 Log: correct procctl(PROC_PROTMAX_STATUS _NOFORCE return Previously procctl(PROC_PROTMAX_STATUS, ... used the PROC_ASLR_NOFORCE macro for the "system-wide configured policy" status, instead of PROC_PROTMAX_NOFORCE. They both have a value of 3, so no functional change. Sponsored by: The FreeBSD Foundation Modified: head/sys/kern/kern_procctl.c Modified: head/sys/kern/kern_procctl.c ============================================================================== --- head/sys/kern/kern_procctl.c Fri May 1 13:47:13 2020 (r360534) +++ head/sys/kern/kern_procctl.c Fri May 1 14:30:59 2020 (r360535) @@ -449,7 +449,7 @@ protmax_status(struct thread *td, struct proc *p, int switch (p->p_flag2 & (P2_PROTMAX_ENABLE | P2_PROTMAX_DISABLE)) { case 0: - d = PROC_ASLR_NOFORCE; + d = PROC_PROTMAX_NOFORCE; break; case P2_PROTMAX_ENABLE: d = PROC_PROTMAX_FORCE_ENABLE; From owner-svn-src-all@freebsd.org Fri May 1 15:12: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 7E0842D8082; Fri, 1 May 2020 15:12:37 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-ot1-f50.google.com (mail-ot1-f50.google.com [209.85.210.50]) (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 49DG2Y2cHlz3Bnv; Fri, 1 May 2020 15:12:36 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-ot1-f50.google.com with SMTP id j26so2822277ots.0; Fri, 01 May 2020 08:12:36 -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=xqcrio596Dq9xJH/TthPNYrXc0UPcTq1R/08/+FgMZ4=; b=ksZs0UaLwe9gW2Layt7OtjEnj/z5GuhgPF2PrsJJK920hOrXqaHEThX5Pjn6DYa3/l 97ikCUyN8TH2wLoGDh99kkBhJk1FN6OKawNGmFyaXdW7e+NBVAGj5vO3qjGi8b3fF3XF 0TPArGVj93NvqGL2kNg/VqhMUDzNdxBG4yjrip3qkoEAqvBy0kjF4TUhdR+IcwAhMLHz oUlOoUyuNN6m/NeIaOU7X6NIv+r07QQOAewUBRoxYTuHLWU/hdPdOcobMFy5Cdd+Auyd lHAPRcjfYD89BJmXtS0xu59NP2NUbqwsgDhZnCO6wLUlgfiaE2j8myzIWgMKgxJAC6hz spkQ== X-Gm-Message-State: AGi0PuZPttYEtwhm/KQV0HZS8ksmvz1EgkQY8j9T4SXi3Ze7Hi8qZpZu Puqpf1UmQQX6Kv4Qd0CYfcyydWAd X-Google-Smtp-Source: APiQypIC7D1/47Yha7Enfud5Q4UKLyCuRKUlyw7ovFkX8X+9OFJQLXiEuAD1rQHua8mWYQJ4riHCow== X-Received: by 2002:a9d:22e4:: with SMTP id y91mr3900046ota.336.1588345955464; Fri, 01 May 2020 08:12:35 -0700 (PDT) Received: from mail-oi1-f173.google.com (mail-oi1-f173.google.com. [209.85.167.173]) by smtp.gmail.com with ESMTPSA id i196sm6310oib.8.2020.05.01.08.12.35 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 01 May 2020 08:12:35 -0700 (PDT) Received: by mail-oi1-f173.google.com with SMTP id o24so47089oic.0; Fri, 01 May 2020 08:12:35 -0700 (PDT) X-Received: by 2002:a05:6808:28b:: with SMTP id z11mr2729oic.135.1588345954875; Fri, 01 May 2020 08:12:34 -0700 (PDT) MIME-Version: 1.0 References: <202005010126.0411QaEF047318@repo.freebsd.org> In-Reply-To: <202005010126.0411QaEF047318@repo.freebsd.org> Reply-To: cem@freebsd.org From: Conrad Meyer Date: Fri, 1 May 2020 08:12:24 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r360517 - in head/sys/contrib/dev/acpica: . common compiler components/debugger components/disassembler components/dispatcher components/executer include To: Jung-uk Kim Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-Rspamd-Queue-Id: 49DG2Y2cHlz3Bnv 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)[]; TAGGED_FROM(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] 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: Fri, 01 May 2020 15:12:37 -0000 Thanks, this looks like a big improvement! On Thu, Apr 30, 2020 at 18:26 Jung-uk Kim wrote: > Author: jkim > Date: Fri May 1 01:26:36 2020 > New Revision: 360517 > URL: https://svnweb.freebsd.org/changeset/base/360517 > > Log: > MFV: r360512 > > Merge ACPICA 20200430. > > --- head/sys/contrib/dev/acpica/changes.txt Fri May 1 00:41:41 2020 > (r360516) > +++ head/sys/contrib/dev/acpica/changes.txt Fri May 1 01:26:36 2020 > (r360517) > @@ -1,4 +1,61 @@ > ---------------------------------------- > + > + > +30 April 2020. Summary of changes for version 20200430: > ... > +2) iASL Compiler/Disassembler and ACPICA tools: > + > +iASL DataTable Compiler: Fixed a segfault on errors that aren't directly > +associated with a field. > + > +Disassembler: has been made more resilient so that it will continue to > +parse AML even if the AML generates ACPI namespace errors. This enables > +iASL to disassemble some AML that may have been compiled using older > +versions of iASL that no longer compile with newer versions of iASL. > + > +iASL: Fixed the required parameters for _NIH and _NIG. Previously, there > +was a mixup where _NIG required one parameter and _NIH required zero > +parameters. This change swaps these parameter requirements. Now it is > +required that _NIH must be called with one parameter and _NIG requires > +zero parameters. > + > +iASL: Allow use of undefined externals as long as they are protected by > +an if (CondRefOf (...)) block when compiling multiple definition blocks. > + > +iASL: Fixed the type override behavior of named objects that are declared > +as External. External declarations will no longer override the type of > +the actual definition if it already exists. > + > +AcpiNames: Added setargv.obj to the MSVC 2017 link sequence to enable > +command line wildcard support on Windows. Note: the AcpiNames utility is > +essentially redundant with the AcpiExec utility (using the "namespace" > +command) and is therefore deprecated. It will be removed in future > +releases of ACPICA. > + > +Disassembler: ignore AE_ALREADY_EXISTS status when parsing create* > +operators. The disassembler is intended to emit existing ASL code as-is. > +Therefore, error messages emitted during disassembly should be ignored or > +handled in a way such that the disassembler can continue to parse the > +AML. This change ignores AE_ALREADY_EXISTS errors during the deferred Op > +parsing for create operators in order to complete parsing ASL termlists. All of the above should improve acpidump disassembler utility significantly. Best, Conrad From owner-svn-src-all@freebsd.org Fri May 1 16:47: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 8E6E12DA07F; Fri, 1 May 2020 16:47:54 +0000 (UTC) (envelope-from bdragon@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 49DJ8V3HG8z3JRj; Fri, 1 May 2020 16:47:54 +0000 (UTC) (envelope-from bdragon@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 6B4BFB3F3; Fri, 1 May 2020 16:47:54 +0000 (UTC) (envelope-from bdragon@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 041GlscG020887; Fri, 1 May 2020 16:47:54 GMT (envelope-from bdragon@FreeBSD.org) Received: (from bdragon@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 041GlsY9020886; Fri, 1 May 2020 16:47:54 GMT (envelope-from bdragon@FreeBSD.org) Message-Id: <202005011647.041GlsY9020886@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdragon set sender to bdragon@FreeBSD.org using -f From: Brandon Bergren Date: Fri, 1 May 2020 16:47:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360536 - head/stand/common X-SVN-Group: head X-SVN-Commit-Author: bdragon X-SVN-Commit-Paths: head/stand/common X-SVN-Commit-Revision: 360536 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, 01 May 2020 16:47:54 -0000 Author: bdragon Date: Fri May 1 16:47:54 2020 New Revision: 360536 URL: https://svnweb.freebsd.org/changeset/base/360536 Log: Remove sparc relocation support from reloc_elf.c. It got missed in the sparc64 removal. Modified: head/stand/common/reloc_elf.c Modified: head/stand/common/reloc_elf.c ============================================================================== --- head/stand/common/reloc_elf.c Fri May 1 14:30:59 2020 (r360535) +++ head/stand/common/reloc_elf.c Fri May 1 16:47:54 2020 (r360536) @@ -52,32 +52,7 @@ int __elfN(reloc)(struct elf_file *ef, symaddr_fn *symaddr, const void *reldata, int reltype, Elf_Addr relbase, Elf_Addr dataaddr, void *data, size_t len) { -#ifdef __sparc__ - Elf_Size w; - const Elf_Rela *a; - - switch (reltype) { - case ELF_RELOC_RELA: - a = reldata; - if (relbase + a->r_offset >= dataaddr && - relbase + a->r_offset < dataaddr + len) { - switch (ELF_R_TYPE(a->r_info)) { - case R_SPARC_RELATIVE: - w = relbase + a->r_addend; - bcopy(&w, (u_char *)data + (relbase + - a->r_offset - dataaddr), sizeof(w)); - break; - default: - printf("\nunhandled relocation type %u\n", - (u_int)ELF_R_TYPE(a->r_info)); - return (EFTYPE); - } - } - break; - } - - return (0); -#elif (defined(__i386__) || defined(__amd64__)) && __ELF_WORD_SIZE == 64 +#if (defined(__i386__) || defined(__amd64__)) && __ELF_WORD_SIZE == 64 Elf64_Addr *where, val; Elf_Addr addend, addr; Elf_Size rtype, symidx; From owner-svn-src-all@freebsd.org Fri May 1 16:56: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 4FAE62DA324; Fri, 1 May 2020 16:56:37 +0000 (UTC) (envelope-from bdragon@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 49DJLY1GL7z3K00; Fri, 1 May 2020 16:56:37 +0000 (UTC) (envelope-from bdragon@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 21115B5E2; Fri, 1 May 2020 16:56:37 +0000 (UTC) (envelope-from bdragon@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 041Gua1k027265; Fri, 1 May 2020 16:56:36 GMT (envelope-from bdragon@FreeBSD.org) Received: (from bdragon@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 041Gua1w027264; Fri, 1 May 2020 16:56:36 GMT (envelope-from bdragon@FreeBSD.org) Message-Id: <202005011656.041Gua1w027264@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdragon set sender to bdragon@FreeBSD.org using -f From: Brandon Bergren Date: Fri, 1 May 2020 16:56:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360537 - head/stand/powerpc/boot1.chrp X-SVN-Group: head X-SVN-Commit-Author: bdragon X-SVN-Commit-Paths: head/stand/powerpc/boot1.chrp X-SVN-Commit-Revision: 360537 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, 01 May 2020 16:56:37 -0000 Author: bdragon Date: Fri May 1 16:56:36 2020 New Revision: 360537 URL: https://svnweb.freebsd.org/changeset/base/360537 Log: [PowerPC] Set fixed boot1.elf load address Due to the way claiming works, we need to ensure on AIM OFW machines that we don't have overlapping ranges on any step of the load. Load boot1.elf at 0x38000 so it will not overlap with anything even if the entire PReP partition gets loaded by OFW. Tested on an iBook G4, a PowerBook G4, a PowerMac G5, and qemu pseries. (qemu pseries is broken without this patch due to the high address used by lld10.) Reviewed by: adalava Sponsored by: Tag1 Consulting, Inc. Differential Revision: https://reviews.freebsd.org/D24623 Modified: head/stand/powerpc/boot1.chrp/Makefile Modified: head/stand/powerpc/boot1.chrp/Makefile ============================================================================== --- head/stand/powerpc/boot1.chrp/Makefile Fri May 1 16:47:54 2020 (r360536) +++ head/stand/powerpc/boot1.chrp/Makefile Fri May 1 16:56:36 2020 (r360537) @@ -10,7 +10,20 @@ FILES= boot1.hfs SRCS= boot1.c ashldi3.c syncicache.c CFLAGS+=-I${LDRSRC} -LDFLAGS=-nostdlib -static -Wl,-N +# Load boot1.elf below kernel. +# +# Due to limitiations in the way we load stuff, we have to avoid reusing +# memory until the kernel MMU code has taken over. +# +# 0x38000 is high enough to not interfere with the trap area, but low +# enough that it doesn't bump into the kernel area starting at 0x100000, +# even if the entire partition gets used as the load size by a buggy OFW. +# +# In theory 0xf0000 would work too under the current 64k size limit for +# boot1.elf defined in the HFS template, but sometimes boot1.elf is written +# directly to the PReP partition. +# +LDFLAGS=-nostdlib -static -Wl,-N -Wl,-Ttext=0x38000 .PATH: ${SYSDIR}/libkern ${SRCTOP}/lib/libc/powerpc/gen ${.CURDIR} From owner-svn-src-all@freebsd.org Fri May 1 17:16: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 1C7A12DAAE1; Fri, 1 May 2020 17:16:58 +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 49DJp171MKz3LjP; Fri, 1 May 2020 17:16:57 +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 EB5DDB9C4; Fri, 1 May 2020 17:16:57 +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 041HGvHH040094; Fri, 1 May 2020 17:16:57 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 041HGvY9040093; Fri, 1 May 2020 17:16:57 GMT (envelope-from imp@FreeBSD.org) Message-Id: <202005011716.041HGvY9040093@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Fri, 1 May 2020 17:16:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360538 - head/tools/boot X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/tools/boot X-SVN-Commit-Revision: 360538 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, 01 May 2020 17:16:58 -0000 Author: imp Date: Fri May 1 17:16:57 2020 New Revision: 360538 URL: https://svnweb.freebsd.org/changeset/base/360538 Log: When we have an invalid build option, don't rm -rf the current directory. Add a quick sanity check to objdir before using it. It must start with /. If there was a make error getting it, report that and continue with the next target. If there was anything else, bail out. Modified: head/tools/boot/universe.sh Modified: head/tools/boot/universe.sh ============================================================================== --- head/tools/boot/universe.sh Fri May 1 16:56:36 2020 (r360537) +++ head/tools/boot/universe.sh Fri May 1 17:16:57 2020 (r360538) @@ -19,6 +19,12 @@ # Output is put into _.boot.$TARGET_ARCH.log in sys.boot. # +die() +{ + echo $* + exit 1 +} + dobuild() { local ta=$1 @@ -27,6 +33,12 @@ dobuild() echo -n "Building $ta ${opt} ... " objdir=$(make buildenv TARGET_ARCH=$ta BUILDENV_SHELL="make -V .OBJDIR" | tail -1) + case ${objdir} in + /*) ;; + make*) echo Error message from make: $objdir + continue ;; + *) die Crazy object dir: $objdir ;; + esac rm -rf ${objdir} if ! make buildenv TARGET_ARCH=$ta BUILDENV_SHELL="make clean cleandepend cleandir obj depend" \ > $lf 2>&1; then @@ -116,4 +128,3 @@ for i in \ ta=${i##*/} dobuild $ta _.boot.${ta}.debug.log "LOADER_DEBUG=yes" done - From owner-svn-src-all@freebsd.org Fri May 1 17:17: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 7E2102DAB03; Fri, 1 May 2020 17:17:02 +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 49DJp62Hkjz3LlF; Fri, 1 May 2020 17:17:02 +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 3E1BFB9C5; Fri, 1 May 2020 17:17:02 +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 041HH2Sx040153; Fri, 1 May 2020 17:17:02 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 041HH21A040152; Fri, 1 May 2020 17:17:02 GMT (envelope-from imp@FreeBSD.org) Message-Id: <202005011717.041HH21A040152@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Fri, 1 May 2020 17:17:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360539 - head/tools/boot X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/tools/boot X-SVN-Commit-Revision: 360539 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, 01 May 2020 17:17:02 -0000 Author: imp Date: Fri May 1 17:17:01 2020 New Revision: 360539 URL: https://svnweb.freebsd.org/changeset/base/360539 Log: Catch up to arm/arm and sparc64 removal. Modified: head/tools/boot/universe.sh Modified: head/tools/boot/universe.sh ============================================================================== --- head/tools/boot/universe.sh Fri May 1 17:16:57 2020 (r360538) +++ head/tools/boot/universe.sh Fri May 1 17:17:01 2020 (r360539) @@ -77,12 +77,11 @@ done # Default build for a goodly selection of architectures for i in \ amd64/amd64 \ - arm/arm arm/armv7 \ + arm/armv7 \ arm64/aarch64 \ i386/i386 \ mips/mips mips/mips64 \ powerpc/powerpc powerpc/powerpc64 \ - sparc64/sparc64 \ ; do ta=${i##*/} dobuild $ta _.boot.${ta}.log "" @@ -91,12 +90,11 @@ done # Default build for a goodly selection of architectures with Lua for i in \ amd64/amd64 \ - arm/arm arm/armv7 \ + arm/armv7 \ arm64/aarch64 \ i386/i386 \ mips/mips mips/mips64 \ powerpc/powerpc powerpc/powerpc64 \ - sparc64/sparc64 \ ; do ta=${i##*/} dobuild $ta _.boot.${ta}.lua.log "MK_LOADEDER_LUA=yes MK_FORTH=no" @@ -106,7 +104,6 @@ done for i in \ amd64/amd64 \ i386/i386 \ - sparc64/sparc64 \ ; do ta=${i##*/} dobuild $ta _.boot.${ta}.no_zfs.log "MK_ZFS=no" @@ -119,12 +116,4 @@ for i in \ ; do ta=${i##*/} dobuild $ta _.boot.${ta}.firewire.log "MK_LOADER_FIREWIRE=yes" -done - -# Build with LOADER_DEBUG, only sparc64 does this. -for i in \ - sparc64/sparc64 \ - ; do - ta=${i##*/} - dobuild $ta _.boot.${ta}.debug.log "LOADER_DEBUG=yes" done From owner-svn-src-all@freebsd.org Fri May 1 17: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 531422DBC0E; Fri, 1 May 2020 17:50:22 +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 49DKXZ1VQpz3PKw; Fri, 1 May 2020 17:50:22 +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 2A4DEC118; Fri, 1 May 2020 17:50:22 +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 041HoMsr058950; Fri, 1 May 2020 17:50:22 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 041HoMaV058949; Fri, 1 May 2020 17:50:22 GMT (envelope-from imp@FreeBSD.org) Message-Id: <202005011750.041HoMaV058949@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Fri, 1 May 2020 17:50:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360540 - head/stand/libofw X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/stand/libofw X-SVN-Commit-Revision: 360540 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, 01 May 2020 17:50:22 -0000 Author: imp Date: Fri May 1 17:50:21 2020 New Revision: 360540 URL: https://svnweb.freebsd.org/changeset/base/360540 Log: Remove more stray sparc64 ifdefs. Also, dmabuf appears to only be set for sparc64 case, but there was a comment at its only use that says it was broken for some apple adapters. #ifdef it all of that out now that nothing sets it. Modified: head/stand/libofw/ofw_net.c Modified: head/stand/libofw/ofw_net.c ============================================================================== --- head/stand/libofw/ofw_net.c Fri May 1 17:17:01 2020 (r360539) +++ head/stand/libofw/ofw_net.c Fri May 1 17:50:21 2020 (r360540) @@ -73,7 +73,9 @@ struct netif_driver ofwnet = { static ihandle_t netinstance; +#ifdef BROKEN static void *dmabuf; +#endif static int ofwn_match(struct netif *nif, void *machdep_hint) @@ -110,10 +112,12 @@ ofwn_put(struct iodesc *desc, void *pkt, size_t len) #endif } +#ifdef BROKEN if (dmabuf) { bcopy(pkt, dmabuf, sendlen); pkt = dmabuf; } +#endif rv = OF_write(netinstance, pkt, len); @@ -203,11 +207,7 @@ ofwn_init(struct iodesc *desc, void *machdep_hint) if ((ch = strchr(path, ':')) != NULL) *ch = '\0'; netdev = OF_finddevice(path); -#ifdef __sparc64__ - if (OF_getprop(netdev, "mac-address", desc->myea, 6) == -1) -#else if (OF_getprop(netdev, "local-mac-address", desc->myea, 6) == -1) -#endif goto punt; printf("boot: ethernet address: %s\n", ether_sprintf(desc->myea)); @@ -220,20 +220,6 @@ ofwn_init(struct iodesc *desc, void *machdep_hint) #if defined(NETIF_DEBUG) printf("ofwn_init: Open Firmware instance handle: %08x\n", netinstance); #endif - -#ifndef __sparc64__ - dmabuf = NULL; - if (OF_call_method("dma-alloc", netinstance, 1, 1, (64 * 1024), &dmabuf) - < 0) { - printf("Failed to allocate DMA buffer (got %p).\n", dmabuf); - goto punt; - } - -#if defined(NETIF_DEBUG) - printf("ofwn_init: allocated DMA buffer: %p\n", dmabuf); -#endif -#endif - return; punt: From owner-svn-src-all@freebsd.org Fri May 1 17:50: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 39E252DBC2D; Fri, 1 May 2020 17:50:27 +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 49DKXf5Tj5z3PMw; Fri, 1 May 2020 17:50:26 +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 9F194C119; Fri, 1 May 2020 17:50:26 +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 041HoQvu059004; Fri, 1 May 2020 17:50:26 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 041HoQeK059003; Fri, 1 May 2020 17:50:26 GMT (envelope-from imp@FreeBSD.org) Message-Id: <202005011750.041HoQeK059003@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Fri, 1 May 2020 17:50:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360541 - head/tools/boot X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/tools/boot X-SVN-Commit-Revision: 360541 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, 01 May 2020 17:50:28 -0000 Author: imp Date: Fri May 1 17:50:26 2020 New Revision: 360541 URL: https://svnweb.freebsd.org/changeset/base/360541 Log: Spell LOADER correctly so we test lua build. Modified: head/tools/boot/universe.sh Modified: head/tools/boot/universe.sh ============================================================================== --- head/tools/boot/universe.sh Fri May 1 17:50:21 2020 (r360540) +++ head/tools/boot/universe.sh Fri May 1 17:50:26 2020 (r360541) @@ -97,7 +97,7 @@ for i in \ powerpc/powerpc powerpc/powerpc64 \ ; do ta=${i##*/} - dobuild $ta _.boot.${ta}.lua.log "MK_LOADEDER_LUA=yes MK_FORTH=no" + dobuild $ta _.boot.${ta}.lua.log "MK_LOADER_LUA=yes MK_FORTH=no" done # Build w/o ZFS From owner-svn-src-all@freebsd.org Fri May 1 18:27: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 B87AE2DC7C6; Fri, 1 May 2020 18:27:14 +0000 (UTC) (envelope-from dim@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 49DLM63xfdz3wtV; Fri, 1 May 2020 18:27:14 +0000 (UTC) (envelope-from dim@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 82ADAC88C; Fri, 1 May 2020 18:27:14 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 041IREVU083319; Fri, 1 May 2020 18:27:14 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 041IREq8083318; Fri, 1 May 2020 18:27:14 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202005011827.041IREq8083318@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 1 May 2020 18:27: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: r360542 - in stable: 10 11 12 X-SVN-Group: stable-12 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable: 10 11 12 X-SVN-Commit-Revision: 360542 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, 01 May 2020 18:27:14 -0000 Author: dim Date: Fri May 1 18:27:14 2020 New Revision: 360542 URL: https://svnweb.freebsd.org/changeset/base/360542 Log: MFC r360322: Fix race between prebuilding libsbuf and libgeom The latter needs the former, but with a multi-job build on a fast machine, the race is sometimes lost. This leads to "ld: error: unable to find library -lsbuf", when linking libgeom.so. Submitted by: kevans Modified: stable/12/Makefile.inc1 Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/10/Makefile.inc1 stable/11/Makefile.inc1 Directory Properties: stable/10/ (props changed) stable/11/ (props changed) Modified: stable/12/Makefile.inc1 ============================================================================== --- stable/12/Makefile.inc1 Fri May 1 17:50:26 2020 (r360541) +++ stable/12/Makefile.inc1 Fri May 1 18:27:14 2020 (r360542) @@ -2626,7 +2626,7 @@ gnu/lib/libdialog__L: lib/msun__L lib/ncurses/ncursesw _prebuild_libs+= lib/libc++ .endif -lib/libgeom__L: lib/libexpat__L +lib/libgeom__L: lib/libexpat__L lib/libsbuf__L lib/libkvm__L: lib/libelf__L .if ${MK_LIBTHR} != "no" From owner-svn-src-all@freebsd.org Fri May 1 18:27: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 031B72DC7CA; Fri, 1 May 2020 18:27:15 +0000 (UTC) (envelope-from dim@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 49DLM66Gssz3wtW; Fri, 1 May 2020 18:27:14 +0000 (UTC) (envelope-from dim@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 D23B2C88D; Fri, 1 May 2020 18:27:14 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 041IREg3083325; Fri, 1 May 2020 18:27:14 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 041IRESu083324; Fri, 1 May 2020 18:27:14 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202005011827.041IRESu083324@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 1 May 2020 18:27: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: r360542 - in stable: 10 11 12 X-SVN-Group: stable-11 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable: 10 11 12 X-SVN-Commit-Revision: 360542 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, 01 May 2020 18:27:15 -0000 Author: dim Date: Fri May 1 18:27:14 2020 New Revision: 360542 URL: https://svnweb.freebsd.org/changeset/base/360542 Log: MFC r360322: Fix race between prebuilding libsbuf and libgeom The latter needs the former, but with a multi-job build on a fast machine, the race is sometimes lost. This leads to "ld: error: unable to find library -lsbuf", when linking libgeom.so. Submitted by: kevans Modified: stable/11/Makefile.inc1 Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/10/Makefile.inc1 stable/12/Makefile.inc1 Directory Properties: stable/10/ (props changed) stable/12/ (props changed) Modified: stable/11/Makefile.inc1 ============================================================================== --- stable/11/Makefile.inc1 Fri May 1 17:50:26 2020 (r360541) +++ stable/11/Makefile.inc1 Fri May 1 18:27:14 2020 (r360542) @@ -2183,7 +2183,7 @@ gnu/lib/libdialog__L: lib/msun__L lib/ncurses/ncursesw _prebuild_libs+= lib/libc++ .endif -lib/libgeom__L: lib/libexpat__L +lib/libgeom__L: lib/libexpat__L lib/libsbuf__L lib/libkvm__L: lib/libelf__L .if ${MK_LIBTHR} != "no" From owner-svn-src-all@freebsd.org Fri May 1 18:27: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 52E322DC7D0; Fri, 1 May 2020 18:27:15 +0000 (UTC) (envelope-from dim@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 49DLM71YZxz3wtb; Fri, 1 May 2020 18:27:15 +0000 (UTC) (envelope-from dim@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 2DE98C88E; Fri, 1 May 2020 18:27:15 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 041IRFqv083332; Fri, 1 May 2020 18:27:15 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 041IRFNT083331; Fri, 1 May 2020 18:27:15 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202005011827.041IRFNT083331@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 1 May 2020 18:27:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r360542 - in stable: 10 11 12 X-SVN-Group: stable-10 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable: 10 11 12 X-SVN-Commit-Revision: 360542 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, 01 May 2020 18:27:15 -0000 Author: dim Date: Fri May 1 18:27:14 2020 New Revision: 360542 URL: https://svnweb.freebsd.org/changeset/base/360542 Log: MFC r360322: Fix race between prebuilding libsbuf and libgeom The latter needs the former, but with a multi-job build on a fast machine, the race is sometimes lost. This leads to "ld: error: unable to find library -lsbuf", when linking libgeom.so. Submitted by: kevans Modified: stable/10/Makefile.inc1 Directory Properties: stable/10/ (props changed) Changes in other areas also in this revision: Modified: stable/11/Makefile.inc1 stable/12/Makefile.inc1 Directory Properties: stable/11/ (props changed) stable/12/ (props changed) Modified: stable/10/Makefile.inc1 ============================================================================== --- stable/10/Makefile.inc1 Fri May 1 17:50:26 2020 (r360541) +++ stable/10/Makefile.inc1 Fri May 1 18:27:14 2020 (r360542) @@ -1738,7 +1738,7 @@ gnu/lib/libdialog__L: lib/msun__L lib/ncurses/ncursesw _prebuild_libs+= lib/libc++ .endif -lib/libgeom__L: lib/libexpat__L +lib/libgeom__L: lib/libexpat__L lib/libsbuf__L .if defined(WITH_ATF) || ${MK_TESTS} != "no" .if !defined(WITH_ATF) From owner-svn-src-all@freebsd.org Fri May 1 18:36: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 6E02D2DCFD1; Fri, 1 May 2020 18:36:49 +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 49DLZ92LZLz3yTr; Fri, 1 May 2020 18:36:49 +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 479A6CA71; Fri, 1 May 2020 18:36:49 +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 041IanC0090690; Fri, 1 May 2020 18:36:49 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 041Ianpm090689; Fri, 1 May 2020 18:36:49 GMT (envelope-from imp@FreeBSD.org) Message-Id: <202005011836.041Ianpm090689@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Fri, 1 May 2020 18:36:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360543 - head/stand/libofw X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/stand/libofw X-SVN-Commit-Revision: 360543 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, 01 May 2020 18:36:49 -0000 Author: imp Date: Fri May 1 18:36:48 2020 New Revision: 360543 URL: https://svnweb.freebsd.org/changeset/base/360543 Log: Redo r360540 to retain the ifndef sparc code, not delete it. Also undo the BROKEN stuff, since it was based on the same misreading. Noticed by: Jens Schweikhardt Modified: head/stand/libofw/ofw_net.c Modified: head/stand/libofw/ofw_net.c ============================================================================== --- head/stand/libofw/ofw_net.c Fri May 1 18:27:14 2020 (r360542) +++ head/stand/libofw/ofw_net.c Fri May 1 18:36:48 2020 (r360543) @@ -73,9 +73,7 @@ struct netif_driver ofwnet = { static ihandle_t netinstance; -#ifdef BROKEN static void *dmabuf; -#endif static int ofwn_match(struct netif *nif, void *machdep_hint) @@ -112,12 +110,10 @@ ofwn_put(struct iodesc *desc, void *pkt, size_t len) #endif } -#ifdef BROKEN if (dmabuf) { bcopy(pkt, dmabuf, sendlen); pkt = dmabuf; } -#endif rv = OF_write(netinstance, pkt, len); @@ -220,6 +216,16 @@ ofwn_init(struct iodesc *desc, void *machdep_hint) #if defined(NETIF_DEBUG) printf("ofwn_init: Open Firmware instance handle: %08x\n", netinstance); #endif + dmabuf = NULL; + if (OF_call_method("dma-alloc", netinstance, 1, 1, (64 * 1024), &dmabuf) + < 0) { + printf("Failed to allocate DMA buffer (got %p).\n", dmabuf); + goto punt; + } +#if defined(NETIF_DEBUG) + printf("ofwn_init: allocated DMA buffer: %p\n", dmabuf); +#endif + return; punt: From owner-svn-src-all@freebsd.org Fri May 1 19: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 6E8722DD85D; Fri, 1 May 2020 19: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 49DMFW2Jv6z40t0; Fri, 1 May 2020 19: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 462A3D026; Fri, 1 May 2020 19: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 041J7RIP009427; Fri, 1 May 2020 19:07:27 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 041J7RBi009426; Fri, 1 May 2020 19:07:27 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202005011907.041J7RBi009426@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Fri, 1 May 2020 19: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: r360544 - stable/12/sys/compat/linuxkpi/common/include/linux X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/compat/linuxkpi/common/include/linux X-SVN-Commit-Revision: 360544 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, 01 May 2020 19:07:27 -0000 Author: hselasky Date: Fri May 1 19:07:26 2020 New Revision: 360544 URL: https://svnweb.freebsd.org/changeset/base/360544 Log: Unbreak DRM KMS build by adding the needed compatibility field in the LinuxKPI. Reported by: zeising @ Sponsored by: Mellanox Technologies Modified: stable/12/sys/compat/linuxkpi/common/include/linux/device.h Modified: stable/12/sys/compat/linuxkpi/common/include/linux/device.h ============================================================================== --- stable/12/sys/compat/linuxkpi/common/include/linux/device.h Fri May 1 18:36:48 2020 (r360543) +++ stable/12/sys/compat/linuxkpi/common/include/linux/device.h Fri May 1 19:07:26 2020 (r360544) @@ -108,7 +108,10 @@ struct device { struct class *class; void (*release)(struct device *dev); struct kobject kobj; - void *dma_priv; + union { + const u64 *dma_mask; /* XXX for backwards compat */ + void *dma_priv; + }; void *driver_data; unsigned int irq; #define LINUX_IRQ_INVALID 65535 From owner-svn-src-all@freebsd.org Fri May 1 20:20: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 9997C2DEC80; Fri, 1 May 2020 20:20:32 +0000 (UTC) (envelope-from dim@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 49DNsr3mx3z44K9; Fri, 1 May 2020 20:20:32 +0000 (UTC) (envelope-from dim@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 79E62DD82; Fri, 1 May 2020 20:20:32 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 041KKW5X053198; Fri, 1 May 2020 20:20:32 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 041KKTaB053181; Fri, 1 May 2020 20:20:29 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202005012020.041KKTaB053181@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 1 May 2020 20:20:29 +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: r360545 - in stable/12: . contrib/llvm-project contrib/llvm-project/clang/include/clang contrib/llvm-project/clang/include/clang-c contrib/llvm-project/clang/include/clang/AST contrib/l... X-SVN-Group: stable-12 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable/12: . contrib/llvm-project contrib/llvm-project/clang/include/clang contrib/llvm-project/clang/include/clang-c contrib/llvm-project/clang/include/clang/AST contrib/llvm-project/clang/include... X-SVN-Commit-Revision: 360545 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, 01 May 2020 20:20:32 -0000 Author: dim Date: Fri May 1 20:20:23 2020 New Revision: 360545 URL: https://svnweb.freebsd.org/changeset/base/360545 Log: Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 10.0.0 release. MFC r356479 (by bdragon): [PowerPC] Fix libllvmminimal build when building from powerpc64 ELFv1. When bootstrapping on powerpc64 ELFv1, it is necessary to use binutils ld.bfd from ports for the bootstrap, as this is the only modern linker for ELFv1 host tools. As binutils ld.bfd is rather strict in its handling of undefined symbols, it is necessary to pull in Support/Atomic.cpp to avoid an undefined symbol. Reviewed by: dim, emaste Sponsored by: Tag1 Consulting, Inc. Differential Revision: https://reviews.freebsd.org/D23072 MFC r356930: Add more Subversion mergeinfo bootstrap information, to hopefully increase the probability of merging in vendor changes. MFC r358408 (by brooks): Merge commit 7214f7a79 from llvm git (by Sam Elliott): [RISCV] Lower llvm.trap and llvm.debugtrap Summary: Until this commit, these have lowered to a call to abort(). `llvm.trap()` now lowers to `unimp`, which should trap on all systems. `llvm.debugtrap()` now lowers to `ebreak`, which is exactly what this instruction is for. Reviewers: asb, luismarques Reviewed By: asb Tags: #llvm Differential Revision: https://reviews.llvm.org/D69390 This fixes miscompilation resulting in linking failures with INVARIANTS disabled. Reviewed by: dim Differential Revision: https://reviews.freebsd.org/D23857 MFC r358851: Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 10.0.0-rc3 c290cb61fdc. Release notes for llvm, clang, lld and libc++ 10.0.0 will become available here: https://releases.llvm.org/10.0.0/docs/ReleaseNotes.html https://releases.llvm.org/10.0.0/tools/clang/docs/ReleaseNotes.html https://releases.llvm.org/10.0.0/tools/lld/docs/ReleaseNotes.html https://releases.llvm.org/10.0.0/projects/libcxx/docs/ReleaseNotes.html PR: 244251 MFC r358854: Add one additional file to libllvmminimal, to help the ppc64 bootstrap. Reported by: bdragon PR: 244251 MFC r358857: Move another file in libllvm from sources required for world, to sources required for bootstrap, as the PowerPC builds need this. Reported by: bdragon PR: 244251 MFC r358907: Allow -DNO_CLEAN build across r358851. The openmp 10.0.0 import renamed one .c file to .cpp, and this is something our dependency system does not handle correctly. Add another ad-hoc cleanup to get rid of the stale dependency. PR: 244251 MFC r358909 (by emaste): Extend r358907 to explicitly remove stale lib32 dependency After r325072 stale lib32 dependencies were not remooved. A more holistic approach is needed to address this but for the immediate issue (-DNO_CLEAN builds across r358851) just readd the explicit lib32 path. Reported by: dim Sponsored by: The FreeBSD Foundation MFC r358910 (by emaste): Makefile.inc1: move dependency hack comment to the block it applies to MFC r359035 (by emaste): Makefile.inc1: add a note when deleting stale dependencies We have ad-hoc stale dependency handling in Makefile.inc1 to handle the cases where file extensions change, but it appears that some cases are not functional. Add a note when about to clean stale deps to help when investigating failure reports. Sponsored by: The FreeBSD Foundation MFC r359082: Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp llvmorg-10.0.0-rc4-5-g52c365aa9ca. The actual release should follow Real Soon Now. PR: 244251 MFC after: 6 weeks MFC r359083 (by emaste): invoke _cleanobj_fast_depend_hack unconditionally Apparently make ${CLEANDIR} is leaving stale entries in .depend files; for now invoke the hacky cleanup in both the -DNO_CLEAN and normal (no -DNO_CLEAN) cases. In collaboration with: dim Sponsored by: The FreeBSD Foundation MFC r359084: Merge commit 00925aadb from llvm git (by Fangrui Song): [ELF][PPC32] Fix canonical PLTs when the order does not match the PLT order Reviewed By: Bdragon28 Differential Revision: https://reviews.llvm.org/D75394 This is needed to fix miscompiled canonical PLTs on ppc32/lld10. Requested by: bdragon Differential Revision: https://reviews.freebsd.org/D24109 MFC r359085: Merge commit 315f8a55f from llvm git (by Fangrui Song): [ELF][PPC32] Don't report "relocation refers to a discarded section" for .got2 Similar to D63182 [ELF][PPC64] Don't report "relocation refers to a discarded section" for .toc Reviewed By: Bdragon28 Differential Revision: https://reviews.llvm.org/D75419 This is needed to fix compile errors when building for ppc32/lld10. Requested by: bdragon Differential Revision: https://reviews.freebsd.org/D24110 MFC r359086: Merge commit b8ebc11f0 from llvm git (by Sanjay Patel): [EarlyCSE] avoid crashing when detecting min/max/abs patterns (PR41083) As discussed in PR41083: https://bugs.llvm.org/show_bug.cgi?id=41083 ...we can assert/crash in EarlyCSE using the current hashing scheme and instructions with flags. ValueTracking's matchSelectPattern() may rely on overflow (nsw, etc) or other flags when detecting patterns such as min/max/abs composed of compare+select. But the value numbering / hashing mechanism used by EarlyCSE intersects those flags to allow more CSE. Several alternatives to solve this are discussed in the bug report. This patch avoids the issue by doing simple matching of min/max/abs patterns that never requires instruction flags. We give up some CSE power because of that, but that is not expected to result in much actual performance difference because InstCombine will canonicalize these patterns when possible. It even has this comment for abs/nabs: /// Canonicalize all these variants to 1 pattern. /// This makes CSE more likely. (And this patch adds PhaseOrdering tests to verify that the expected transforms are still happening in the standard optimization pipelines. I left this code to use ValueTracking's "flavor" enum values, so we don't have to change the callers' code. If we decide to go back to using the ValueTracking call (by changing the hashing algorithm instead), it should be obvious how to replace this chunk. Differential Revision: https://reviews.llvm.org/D74285 This fixes an assertion when building the math/gsl port on PowerPC64. Requested by: pkubja MFC r359087: Merge commit 585a3cc31 from llvm git (by me): Fix -Wdeprecated-copy-dtor and -Wdeprecated-dynamic-exception-spec warnings. Summary: The former are like: libcxx/include/typeinfo:322:11: warning: definition of implicit copy constructor for 'bad_cast' is deprecated because it has a user-declared destructor [-Wdeprecated-copy-dtor] virtual ~bad_cast() _NOEXCEPT; ^ libcxx/include/typeinfo:344:11: note: in implicit copy constructor for 'std::bad_cast' first required here throw bad_cast(); ^ Fix these by adding an explicitly defaulted copy constructor. The latter are like: libcxx/include/codecvt:105:37: warning: dynamic exception specifications are deprecated [-Wdeprecated-dynamic-exception-spec] virtual int do_encoding() const throw(); ^~~~~~~ Fix these by using the _NOEXCEPT macro instead. Reviewers: EricWF, mclow.lists, ldionne, #libc Reviewed By: EricWF, #libc Subscribers: dexonsmith, libcxx-commits Tags: #libc Differential Revision: https://reviews.llvm.org/D76150 This is because we use -Wsystem-headers during buildworld, and the two warnings above are now triggered by default with clang 10, preventing most C++ code from compiling without NO_WERROR. Requested by: brooks Differential Revision: https://reviews.freebsd.org/D24049 MFC r359089 (by emaste): Revert r359083, fixed properly by r359088 r359083 introduced a workaround for stale libomp dependencies during a regular (no -DNO_CLEAN) buildworld. r359088 addressed the reason the clean step missed libomp, so revert the workaround. Sponsored by: The FreeBSD Foundation MFC r359333: Merge commit f0990e104 from llvm git (by Justin Hibbits): [PowerPC]: e500 target can't use lwsync, use msync instead The e500 core has a silicon bug that triggers an illegal instruction program trap on any sync other than msync. Other cores will typically ignore illegal sync types, and the documentation even implies that the 'illegal' bits are ignored. Address this hardware deficiency by only using msync, like the PPC440. Differential Revision: https://reviews.llvm.org/D76614 Requested by: jhibbits MFC r359334: Merge commit 459e8e948 from llvm git (by Justin Hibbits): [PowerPC]: Don't allow r0 as a target for LD_GOT_TPREL_L/32 Summary: The linker is free to relax this (relocation R_PPC_GOT_TPREL16) against R_PPC_TLS, if it sees fit (initial exec to local exec). If r0 is used, this can generate execution-invalid code (converts to 'addi %rX, %r0, FOO, which translates in PPC-lingo to li %rX, FOO). Forbid this instead. This fixes static binaries using locales on FreeBSD/powerpc (tested on FreeBSD/powerpcspe). Reviewed By: nemanjai Differential Revision: https://reviews.llvm.org/D76662 Requested by: jhibbits MFC r359338: Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp llvmorg-10.0.0-0-gd32170dbd5b (aka 10.0.0 release). PR: 244251 MFC r359506 (by emaste): lldb: stop excluding bindings/ subdir With liblua in the tree we should be able to enable lldb's lua scripting. We'll need the files in bindings/, so start by allowing them to come in with the next import. Approved by: dim Sponsored by: The FreeBSD Foundation MFC r359578: Merge once more from ^/vendor/llvm-project/release-10.x, to get the lldb/bindings directory, which will be used to provide lua bindings for lldb. Requested by: emaste MFC r359826: Merge commit 30588a739 from llvm git (by Erich Keane): Make target features check work with ctor and dtor- The problem was reported in PR45468, applying target features to an always_inline constructor/destructor runs afoul of GlobalDecl construction assert when checking for target-feature compatibility. The core problem is fixed by using the version of the check that takes a FunctionDecl rather than the GlobalDecl. However, while writing the test, I discovered that source locations weren't properly set for this check on ctors/dtors. This patch also fixes constructors and CALLED destructors. Unfortunately, it doesn't seem too possible to get a meaningful source location for a 'cleanup' destructor, so those are still 'frontend' level errors unfortunately. A fixme was added to the test to cover that situation. This should fix 'Assertion failed: (!isa(D) && "Use other ctor with ctor decls!"), function Init, file /usr/src/contrib/llvm-project/clang/include/clang/AST/GlobalDecl.h, line 45' when compiling the security/botan2 port. PR: 245550 MFC r359981: Revert commit a9ad65a2b from llvm git (by Nemanja Ivanovic): [PowerPC] Change default for unaligned FP access for older subtargets This is a fix for https://bugs.llvm.org/show_bug.cgi?id=40554 Some CPU's trap to the kernel on unaligned floating point access and there are kernels that do not handle the interrupt. The program then fails with a SIGBUS according to the PR. This just switches the default for unaligned access to only allow it on recent server CPUs that are known to allow this. Differential revision: https://reviews.llvm.org/D71954 This upstream commit causes a compiler hang when building certain ports (e.g. security/nss, multimedia/x264) for powerpc64. The hang has been reported in https://bugs.llvm.org/show_bug.cgi?id=45186, but in the mean time it is more convenient to revert the commit. Requested by: jhibbits MFC r359994: Revert commit b6cf400aa fro llvm git (by Nemanja Ivanovic): Fix bots after a9ad65a2b34f In the last commit, I neglected to initialize the new subtarget feature I added which caused failures on a few bots. This should fix that. This unbreaks the build after r359981, which reverted upstream commit a9ad65a2b34f. Reported by: jhibbits (and jenkins :) MFC r360129: Merge commit ce5173c0e from llvm git (by Reid Kleckner): Use FinishThunk to finish musttail thunks FinishThunk, and the invariant of setting and then unsetting CurCodeDecl, was added in 7f416cc42638 (2015). The invariant didn't exist when I added this musttail codepath in ab2090d10765 (2014). Recently in 28328c3771, I started using this codepath on non-Windows platforms, and users reported problems during release testing (PR44987). The issue was already present for users of EH on i686-windows-msvc, so I added a test for that case as well. Reviewed By: hans Differential Revision: https://reviews.llvm.org/D76444 This should fix 'Assertion failed: (!empty() && "popping exception stack when not empty"), function popTerminate, file /usr/src/contrib/llvm-project/clang/lib/CodeGen/CGCleanup.h, line 583' when building the net-p2p/libtorrent-rasterbar PR: 244830 Reported by: jbeich, yuri MFC r360134: Merge commit 64b31d96d from llvm git (by Nemanja Ivanovic): [PowerPC] Do not attempt to reuse load for 64-bit FP_TO_UINT without FPCVT We call the function that attempts to reuse the conversion without checking whether the target matches the constraints that the callee expects. This patch adds the check prior to the call. Fixes: https://bugs.llvm.org/show_bug.cgi?id=43976 Differential revision: https://reviews.llvm.org/D77564 This should fix 'Assertion failed: ((Op.getOpcode() == ISD::FP_TO_SINT || Subtarget.hasFPCVT()) && "i64 FP_TO_UINT is supported only with FPCVT"), function LowerFP_TO_INTForReuse, file /usr/src/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.cpp, line 7276' when building the devel/libslang2 port (and a few others) for PowerPC64. Requested by: pkubaj MFC r360350: Tentatively apply https://reviews.llvm.org/D78877 (by Dave Green): [ARM] Only produce qadd8b under hasV6Ops When compiling for a arm5te cpu from clang, the +dsp attribute is set. This meant we could try and generate qadd8 instructions where we would end up having no pattern. I've changed the condition here to be hasV6Ops && hasDSP, which is what other parts of ARMISelLowering seem to use for similar instructions. Fixed PR45677. This fixes "fatal error: error in backend: Cannot select: t37: i32 = ARMISD::QADD8b t43, t44" when compiling sys/dev/sound/pcm/feeder_mixer.c for armv5. For some reason we do not encounter this on head, but this error popped up while building universes for stable/12. Added: stable/12/contrib/llvm-project/clang/include/clang-c/ExternC.h - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang-c/ExternC.h stable/12/contrib/llvm-project/clang/include/clang-c/FatalErrorHandler.h - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang-c/FatalErrorHandler.h stable/12/contrib/llvm-project/clang/include/clang/AST/ASTConcept.h - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang/AST/ASTConcept.h stable/12/contrib/llvm-project/clang/include/clang/AST/AbstractBasicReader.h - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang/AST/AbstractBasicReader.h stable/12/contrib/llvm-project/clang/include/clang/AST/AbstractBasicWriter.h - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang/AST/AbstractBasicWriter.h stable/12/contrib/llvm-project/clang/include/clang/AST/AbstractTypeReader.h - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang/AST/AbstractTypeReader.h stable/12/contrib/llvm-project/clang/include/clang/AST/AbstractTypeWriter.h - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang/AST/AbstractTypeWriter.h stable/12/contrib/llvm-project/clang/include/clang/AST/CXXRecordDeclDefinitionBits.def - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang/AST/CXXRecordDeclDefinitionBits.def stable/12/contrib/llvm-project/clang/include/clang/AST/ExprConcepts.h - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang/AST/ExprConcepts.h stable/12/contrib/llvm-project/clang/include/clang/AST/OptionalDiagnostic.h - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang/AST/OptionalDiagnostic.h stable/12/contrib/llvm-project/clang/include/clang/AST/PropertiesBase.td - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang/AST/PropertiesBase.td stable/12/contrib/llvm-project/clang/include/clang/AST/TypeProperties.td - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang/AST/TypeProperties.td stable/12/contrib/llvm-project/clang/include/clang/Analysis/PathDiagnostic.h - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang/Analysis/PathDiagnostic.h stable/12/contrib/llvm-project/clang/include/clang/Basic/AArch64SVEACLETypes.def - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang/Basic/AArch64SVEACLETypes.def stable/12/contrib/llvm-project/clang/include/clang/Basic/ASTNode.td - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang/Basic/ASTNode.td stable/12/contrib/llvm-project/clang/include/clang/Basic/AttributeCommonInfo.h - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang/Basic/AttributeCommonInfo.h stable/12/contrib/llvm-project/clang/include/clang/Basic/BuiltinsBPF.def - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang/Basic/BuiltinsBPF.def stable/12/contrib/llvm-project/clang/include/clang/Basic/LangStandard.h - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang/Basic/LangStandard.h stable/12/contrib/llvm-project/clang/include/clang/Basic/LangStandards.def - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang/Basic/LangStandards.def stable/12/contrib/llvm-project/clang/include/clang/Basic/TypeNodes.td - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang/Basic/TypeNodes.td stable/12/contrib/llvm-project/clang/include/clang/Basic/arm_mve.td - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang/Basic/arm_mve.td stable/12/contrib/llvm-project/clang/include/clang/Basic/arm_mve_defs.td - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang/Basic/arm_mve_defs.td stable/12/contrib/llvm-project/clang/include/clang/Driver/OptionUtils.h - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang/Driver/OptionUtils.h stable/12/contrib/llvm-project/clang/include/clang/Index/IndexingOptions.h - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang/Index/IndexingOptions.h stable/12/contrib/llvm-project/clang/include/clang/Lex/PreprocessorExcludedConditionalDirectiveSkipMapping.h - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang/Lex/PreprocessorExcludedConditionalDirectiveSkipMapping.h stable/12/contrib/llvm-project/clang/include/clang/Sema/SemaConcept.h - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang/Sema/SemaConcept.h stable/12/contrib/llvm-project/clang/include/clang/Serialization/ASTRecordReader.h - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang/Serialization/ASTRecordReader.h stable/12/contrib/llvm-project/clang/include/clang/Serialization/ASTRecordWriter.h - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang/Serialization/ASTRecordWriter.h stable/12/contrib/llvm-project/clang/include/clang/Serialization/ModuleFile.h - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang/Serialization/ModuleFile.h stable/12/contrib/llvm-project/clang/include/clang/Serialization/TypeBitCodes.def - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang/Serialization/TypeBitCodes.def stable/12/contrib/llvm-project/clang/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicCastInfo.h - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicCastInfo.h stable/12/contrib/llvm-project/clang/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicType.h - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicType.h stable/12/contrib/llvm-project/clang/include/clang/Tooling/DependencyScanning/DependencyScanningFilesystem.h - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang/Tooling/DependencyScanning/DependencyScanningFilesystem.h stable/12/contrib/llvm-project/clang/include/clang/Tooling/DependencyScanning/DependencyScanningService.h - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang/Tooling/DependencyScanning/DependencyScanningService.h stable/12/contrib/llvm-project/clang/include/clang/Tooling/DependencyScanning/DependencyScanningTool.h - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang/Tooling/DependencyScanning/DependencyScanningTool.h stable/12/contrib/llvm-project/clang/include/clang/Tooling/DependencyScanning/ModuleDepCollector.h - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang/Tooling/DependencyScanning/ModuleDepCollector.h stable/12/contrib/llvm-project/clang/include/clang/Tooling/Refactoring/Extract/SourceExtraction.h - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang/Tooling/Refactoring/Extract/SourceExtraction.h stable/12/contrib/llvm-project/clang/include/clang/Tooling/Syntax/Mutations.h - copied unchanged from r358851, head/contrib/llvm-project/clang/include/clang/Tooling/Syntax/Mutations.h stable/12/contrib/llvm-project/clang/include/clang/Tooling/Transformer/ - copied from r358851, head/contrib/llvm-project/clang/include/clang/Tooling/Transformer/ stable/12/contrib/llvm-project/clang/lib/AST/ASTConcept.cpp - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/AST/ASTConcept.cpp stable/12/contrib/llvm-project/clang/lib/AST/ExprConcepts.cpp - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/AST/ExprConcepts.cpp stable/12/contrib/llvm-project/clang/lib/AST/Interp/ - copied from r358851, head/contrib/llvm-project/clang/lib/AST/Interp/ stable/12/contrib/llvm-project/clang/lib/Analysis/PathDiagnostic.cpp - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/Analysis/PathDiagnostic.cpp stable/12/contrib/llvm-project/clang/lib/Basic/LangStandards.cpp - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/Basic/LangStandards.cpp stable/12/contrib/llvm-project/clang/lib/Basic/Stack.cpp - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/Basic/Stack.cpp stable/12/contrib/llvm-project/clang/lib/DirectoryWatcher/windows/ - copied from r358851, head/contrib/llvm-project/clang/lib/DirectoryWatcher/windows/ stable/12/contrib/llvm-project/clang/lib/Driver/OptionUtils.cpp - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/Driver/OptionUtils.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/AIX.cpp - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/Driver/ToolChains/AIX.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/AIX.h - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/Driver/ToolChains/AIX.h stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Flang.cpp - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/Driver/ToolChains/Flang.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Flang.h - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/Driver/ToolChains/Flang.h stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/InterfaceStubs.cpp - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/Driver/ToolChains/InterfaceStubs.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/InterfaceStubs.h - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/Driver/ToolChains/InterfaceStubs.h stable/12/contrib/llvm-project/clang/lib/Headers/arm_cmse.h - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/Headers/arm_cmse.h stable/12/contrib/llvm-project/clang/lib/Headers/ppc_wrappers/pmmintrin.h - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/Headers/ppc_wrappers/pmmintrin.h stable/12/contrib/llvm-project/clang/lib/Headers/ppc_wrappers/smmintrin.h - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/Headers/ppc_wrappers/smmintrin.h stable/12/contrib/llvm-project/clang/lib/Headers/ppc_wrappers/tmmintrin.h - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/Headers/ppc_wrappers/tmmintrin.h stable/12/contrib/llvm-project/clang/lib/Sema/SemaConcept.cpp - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/Sema/SemaConcept.cpp stable/12/contrib/llvm-project/clang/lib/Serialization/ModuleFile.cpp - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/Serialization/ModuleFile.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/CheckPlacementNew.cpp - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/CheckPlacementNew.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/DebugIteratorModeling.cpp - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/DebugIteratorModeling.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/FuchsiaHandleChecker.cpp - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/FuchsiaHandleChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/InvalidatedIteratorChecker.cpp - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/InvalidatedIteratorChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/Iterator.cpp - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/Iterator.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/Iterator.h - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/Iterator.h stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/IteratorModeling.cpp - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/IteratorModeling.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/IteratorRangeChecker.cpp - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/IteratorRangeChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/MismatchedIteratorChecker.cpp - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/MismatchedIteratorChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/Yaml.h - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/Yaml.h stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/DynamicType.cpp - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/DynamicType.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/DependencyScanning/DependencyScanningFilesystem.cpp - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/Tooling/DependencyScanning/DependencyScanningFilesystem.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/DependencyScanning/DependencyScanningService.cpp - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/Tooling/DependencyScanning/DependencyScanningService.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/DependencyScanning/DependencyScanningTool.cpp - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/Tooling/DependencyScanning/DependencyScanningTool.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/ExpandResponseFilesCompilationDatabase.cpp - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/Tooling/ExpandResponseFilesCompilationDatabase.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/Syntax/ComputeReplacements.cpp - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/Tooling/Syntax/ComputeReplacements.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/Syntax/Mutations.cpp - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/Tooling/Syntax/Mutations.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/Syntax/Synthesis.cpp - copied unchanged from r358851, head/contrib/llvm-project/clang/lib/Tooling/Syntax/Synthesis.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/Transformer/ - copied from r358851, head/contrib/llvm-project/clang/lib/Tooling/Transformer/ stable/12/contrib/llvm-project/clang/utils/TableGen/ASTTableGen.cpp - copied unchanged from r358851, head/contrib/llvm-project/clang/utils/TableGen/ASTTableGen.cpp stable/12/contrib/llvm-project/clang/utils/TableGen/ASTTableGen.h - copied unchanged from r358851, head/contrib/llvm-project/clang/utils/TableGen/ASTTableGen.h stable/12/contrib/llvm-project/clang/utils/TableGen/ClangASTPropertiesEmitter.cpp - copied unchanged from r358851, head/contrib/llvm-project/clang/utils/TableGen/ClangASTPropertiesEmitter.cpp stable/12/contrib/llvm-project/clang/utils/TableGen/ClangOpcodesEmitter.cpp - copied unchanged from r358851, head/contrib/llvm-project/clang/utils/TableGen/ClangOpcodesEmitter.cpp stable/12/contrib/llvm-project/clang/utils/TableGen/ClangTypeNodesEmitter.cpp - copied unchanged from r358851, head/contrib/llvm-project/clang/utils/TableGen/ClangTypeNodesEmitter.cpp stable/12/contrib/llvm-project/clang/utils/TableGen/MveEmitter.cpp - copied unchanged from r358851, head/contrib/llvm-project/clang/utils/TableGen/MveEmitter.cpp stable/12/contrib/llvm-project/compiler-rt/include/fuzzer/ - copied from r358851, head/contrib/llvm-project/compiler-rt/include/fuzzer/ stable/12/contrib/llvm-project/compiler-rt/include/profile/ - copied from r358851, head/contrib/llvm-project/compiler-rt/include/profile/ stable/12/contrib/llvm-project/compiler-rt/include/sanitizer/ubsan_interface.h - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/include/sanitizer/ubsan_interface.h stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_activation.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/asan/asan_activation.cpp stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_allocator.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/asan/asan_allocator.cpp stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_debugging.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/asan/asan_debugging.cpp stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_descriptions.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/asan/asan_descriptions.cpp stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_errors.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/asan/asan_errors.cpp stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_fake_stack.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/asan/asan_fake_stack.cpp stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_flags.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/asan/asan_flags.cpp stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_fuchsia.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/asan/asan_fuchsia.cpp stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_globals.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/asan/asan_globals.cpp stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_globals_win.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/asan/asan_globals_win.cpp stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_interceptors.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/asan/asan_interceptors.cpp stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_interceptors_memintrinsics.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/asan/asan_interceptors_memintrinsics.cpp stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_linux.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/asan/asan_linux.cpp stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_mac.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/asan/asan_mac.cpp stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_malloc_mac.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/asan/asan_malloc_mac.cpp stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_malloc_win.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/asan/asan_malloc_win.cpp stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_memory_profile.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/asan/asan_memory_profile.cpp stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_new_delete.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/asan/asan_new_delete.cpp stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_poisoning.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/asan/asan_poisoning.cpp stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_posix.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/asan/asan_posix.cpp stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_preinit.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/asan/asan_preinit.cpp stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_premap_shadow.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/asan/asan_premap_shadow.cpp stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_report.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/asan/asan_report.cpp stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_rtems.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/asan/asan_rtems.cpp stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_rtl.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/asan/asan_rtl.cpp stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_shadow_setup.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/asan/asan_shadow_setup.cpp stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_stack.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/asan/asan_stack.cpp stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_stats.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/asan/asan_stats.cpp stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_suppressions.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/asan/asan_suppressions.cpp stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_thread.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/asan/asan_thread.cpp stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_win.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/asan/asan_win.cpp stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_win_dll_thunk.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/asan/asan_win_dll_thunk.cpp stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_win_dynamic_runtime_thunk.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/asan/asan_win_dynamic_runtime_thunk.cpp stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_win_weak_interception.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/asan/asan_win_weak_interception.cpp stable/12/contrib/llvm-project/compiler-rt/lib/builtins/aarch64/fp_mode.c - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/builtins/aarch64/fp_mode.c stable/12/contrib/llvm-project/compiler-rt/lib/builtins/arm/fp_mode.c - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/builtins/arm/fp_mode.c stable/12/contrib/llvm-project/compiler-rt/lib/builtins/fp_mode.c - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/builtins/fp_mode.c stable/12/contrib/llvm-project/compiler-rt/lib/builtins/fp_mode.h - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/builtins/fp_mode.h stable/12/contrib/llvm-project/compiler-rt/lib/builtins/i386/fp_mode.c - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/builtins/i386/fp_mode.c stable/12/contrib/llvm-project/compiler-rt/lib/builtins/ppc/fixtfti.c - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/builtins/ppc/fixtfti.c stable/12/contrib/llvm-project/compiler-rt/lib/dfsan/dfsan.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/dfsan/dfsan.cpp stable/12/contrib/llvm-project/compiler-rt/lib/dfsan/dfsan_custom.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/dfsan/dfsan_custom.cpp stable/12/contrib/llvm-project/compiler-rt/lib/dfsan/dfsan_interceptors.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/dfsan/dfsan_interceptors.cpp stable/12/contrib/llvm-project/compiler-rt/lib/gwp_asan/stack_trace_compressor.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/gwp_asan/stack_trace_compressor.cpp stable/12/contrib/llvm-project/compiler-rt/lib/gwp_asan/stack_trace_compressor.h - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/gwp_asan/stack_trace_compressor.h stable/12/contrib/llvm-project/compiler-rt/lib/hwasan/hwasan_exceptions.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/hwasan/hwasan_exceptions.cpp stable/12/contrib/llvm-project/compiler-rt/lib/hwasan/hwasan_setjmp.S - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/hwasan/hwasan_setjmp.S stable/12/contrib/llvm-project/compiler-rt/lib/hwasan/hwasan_type_test.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/hwasan/hwasan_type_test.cpp stable/12/contrib/llvm-project/compiler-rt/lib/interception/interception_linux.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/interception/interception_linux.cpp stable/12/contrib/llvm-project/compiler-rt/lib/interception/interception_mac.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/interception/interception_mac.cpp stable/12/contrib/llvm-project/compiler-rt/lib/interception/interception_type_test.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/interception/interception_type_test.cpp stable/12/contrib/llvm-project/compiler-rt/lib/interception/interception_win.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/interception/interception_win.cpp stable/12/contrib/llvm-project/compiler-rt/lib/lsan/lsan.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/lsan/lsan.cpp stable/12/contrib/llvm-project/compiler-rt/lib/lsan/lsan_allocator.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/lsan/lsan_allocator.cpp stable/12/contrib/llvm-project/compiler-rt/lib/lsan/lsan_common.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/lsan/lsan_common.cpp stable/12/contrib/llvm-project/compiler-rt/lib/lsan/lsan_common_linux.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/lsan/lsan_common_linux.cpp stable/12/contrib/llvm-project/compiler-rt/lib/lsan/lsan_common_mac.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/lsan/lsan_common_mac.cpp stable/12/contrib/llvm-project/compiler-rt/lib/lsan/lsan_interceptors.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/lsan/lsan_interceptors.cpp stable/12/contrib/llvm-project/compiler-rt/lib/lsan/lsan_linux.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/lsan/lsan_linux.cpp stable/12/contrib/llvm-project/compiler-rt/lib/lsan/lsan_mac.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/lsan/lsan_mac.cpp stable/12/contrib/llvm-project/compiler-rt/lib/lsan/lsan_malloc_mac.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/lsan/lsan_malloc_mac.cpp stable/12/contrib/llvm-project/compiler-rt/lib/lsan/lsan_preinit.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/lsan/lsan_preinit.cpp stable/12/contrib/llvm-project/compiler-rt/lib/lsan/lsan_thread.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/lsan/lsan_thread.cpp stable/12/contrib/llvm-project/compiler-rt/lib/msan/msan.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/msan/msan.cpp stable/12/contrib/llvm-project/compiler-rt/lib/msan/msan_allocator.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/msan/msan_allocator.cpp stable/12/contrib/llvm-project/compiler-rt/lib/msan/msan_chained_origin_depot.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/msan/msan_chained_origin_depot.cpp stable/12/contrib/llvm-project/compiler-rt/lib/msan/msan_interceptors.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/msan/msan_interceptors.cpp stable/12/contrib/llvm-project/compiler-rt/lib/msan/msan_linux.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/msan/msan_linux.cpp stable/12/contrib/llvm-project/compiler-rt/lib/msan/msan_new_delete.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/msan/msan_new_delete.cpp stable/12/contrib/llvm-project/compiler-rt/lib/msan/msan_poisoning.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/msan/msan_poisoning.cpp stable/12/contrib/llvm-project/compiler-rt/lib/msan/msan_report.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/msan/msan_report.cpp stable/12/contrib/llvm-project/compiler-rt/lib/msan/msan_thread.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/msan/msan_thread.cpp stable/12/contrib/llvm-project/compiler-rt/lib/profile/InstrProfilingRuntime.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/profile/InstrProfilingRuntime.cpp stable/12/contrib/llvm-project/compiler-rt/lib/safestack/safestack.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/safestack/safestack.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sancov_flags.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sancov_flags.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_allocator.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_allocator.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_allocator_checks.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_allocator_checks.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_allocator_report.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_allocator_report.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_netbsd_compat.inc - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_netbsd_compat.inc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_libcdep.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_libcdep.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_nolibc.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_nolibc.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_coverage_fuchsia.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_coverage_fuchsia.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep_new.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep_new.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_coverage_win_dll_thunk.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_coverage_win_dll_thunk.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_coverage_win_dynamic_runtime_thunk.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_coverage_win_dynamic_runtime_thunk.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_coverage_win_sections.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_coverage_win_sections.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_coverage_win_weak_interception.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_coverage_win_weak_interception.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector1.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector1.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector2.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector2.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_errno.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_errno.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_file.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_file.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_flags.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_flags.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_fuchsia.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_fuchsia.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_glibc_version.h - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_glibc_version.h stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_libc.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_libc.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_libignore.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_libignore.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_linux_s390.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_linux_s390.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_mac_libcdep.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_mac_libcdep.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_netbsd.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_netbsd.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_openbsd.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_openbsd.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_persistent_allocator.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_persistent_allocator.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_freebsd.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_freebsd.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_linux.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_linux.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_openbsd.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_openbsd.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_solaris.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_solaris.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_posix.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_posix.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_printf.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_printf.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_bsd.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_bsd.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_common.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_common.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_linux.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_linux.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_mac.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_mac.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_solaris.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_solaris.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_rtems.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_rtems.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_solaris.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_solaris.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_stackdepot.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_stackdepot.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_libcdep.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_libcdep.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_sparc.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_sparc.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_mac.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_mac.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_suppressions.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_suppressions.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libbacktrace.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libbacktrace.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_mac.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_mac.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_markup.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_markup.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_report.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_report.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_win.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_win.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_termination.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_termination.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_thread_registry.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_thread_registry.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_tls_get_addr.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_tls_get_addr.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_type_traits.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_type_traits.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_unwind_linux_libcdep.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_unwind_linux_libcdep.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_unwind_win.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_unwind_win.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_win.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_win.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_win_dll_thunk.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_win_dll_thunk.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_win_dynamic_runtime_thunk.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_win_dynamic_runtime_thunk.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_win_weak_interception.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_win_weak_interception.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/symbolizer/sanitizer_symbolize.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/symbolizer/sanitizer_symbolize.cpp stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/symbolizer/sanitizer_wrappers.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/sanitizer_common/symbolizer/sanitizer_wrappers.cpp stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/checksum.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/scudo/standalone/checksum.cpp stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/common.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/scudo/standalone/common.cpp stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/crc32_hw.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/scudo/standalone/crc32_hw.cpp stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/flags.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/scudo/standalone/flags.cpp stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/flags_parser.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/scudo/standalone/flags_parser.cpp stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/fuchsia.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/scudo/standalone/fuchsia.cpp stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/linux.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/scudo/standalone/linux.cpp stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/report.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/scudo/standalone/report.cpp stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/string_utils.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/scudo/standalone/string_utils.cpp stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/wrappers_c.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/scudo/standalone/wrappers_c.cpp stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/wrappers_c_bionic.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/scudo/standalone/wrappers_c_bionic.cpp stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/wrappers_cpp.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/scudo/standalone/wrappers_cpp.cpp stable/12/contrib/llvm-project/compiler-rt/lib/stats/stats.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/stats/stats.cpp stable/12/contrib/llvm-project/compiler-rt/lib/stats/stats_client.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/stats/stats_client.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/benchmarks/func_entry_exit.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/benchmarks/func_entry_exit.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/benchmarks/mini_bench_local.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/benchmarks/mini_bench_local.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/benchmarks/mini_bench_shared.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/benchmarks/mini_bench_shared.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/benchmarks/mop.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/benchmarks/mop.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/benchmarks/start_many_threads.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/benchmarks/start_many_threads.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/benchmarks/vts_many_threads_bench.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/benchmarks/vts_many_threads_bench.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/dd/dd_interceptors.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/dd/dd_interceptors.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/dd/dd_rtl.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/dd/dd_rtl.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/go/tsan_go.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/go/tsan_go.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_clock.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_clock.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_debugging.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_debugging.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_external.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_external.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_fd.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_fd.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_flags.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_flags.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_ignoreset.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_ignoreset.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_libdispatch.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_libdispatch.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_mac.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_mac.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_mach_vm.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_mach_vm.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interface.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interface.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interface_ann.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interface_ann.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interface_atomic.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interface_atomic.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interface_java.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interface_java.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_malloc_mac.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_malloc_mac.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_md5.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_md5.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_mman.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_mman.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_mutex.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_mutex.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_mutexset.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_mutexset.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_platform_mac.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_platform_mac.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_platform_posix.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_platform_posix.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_platform_windows.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_platform_windows.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_preinit.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_preinit.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_report.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_report.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_rtl.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_rtl.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_rtl_proc.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_rtl_proc.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_stack_trace.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_stack_trace.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_stat.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_stat.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_suppressions.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_suppressions.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_symbolize.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_symbolize.cpp stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_sync.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_sync.cpp stable/12/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_diag.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_diag.cpp stable/12/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_diag_standalone.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_diag_standalone.cpp stable/12/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_flags.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_flags.cpp stable/12/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_handlers.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_handlers.cpp stable/12/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_handlers_cxx.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_handlers_cxx.cpp stable/12/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_init.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_init.cpp stable/12/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_init_standalone.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_init_standalone.cpp stable/12/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_init_standalone_preinit.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_init_standalone_preinit.cpp stable/12/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_monitor.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_monitor.cpp stable/12/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_signals_standalone.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_signals_standalone.cpp stable/12/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_type_hash.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_type_hash.cpp stable/12/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_type_hash_itanium.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_type_hash_itanium.cpp stable/12/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_type_hash_win.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_type_hash_win.cpp stable/12/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_value.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_value.cpp stable/12/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_win_dll_thunk.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_win_dll_thunk.cpp stable/12/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_win_dynamic_runtime_thunk.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_win_dynamic_runtime_thunk.cpp stable/12/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_win_weak_interception.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_win_weak_interception.cpp stable/12/contrib/llvm-project/compiler-rt/lib/ubsan_minimal/ubsan_minimal_handlers.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/ubsan_minimal/ubsan_minimal_handlers.cpp stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_AArch64.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/xray/xray_AArch64.cpp stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_arm.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/xray/xray_arm.cpp stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_basic_flags.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/xray/xray_basic_flags.cpp stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_basic_logging.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/xray/xray_basic_logging.cpp stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_buffer_queue.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/xray/xray_buffer_queue.cpp stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_fdr_flags.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/xray/xray_fdr_flags.cpp stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_fdr_logging.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/xray/xray_fdr_logging.cpp stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_flags.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/xray/xray_flags.cpp stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_init.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/xray/xray_init.cpp stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_interface.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/xray/xray_interface.cpp stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_log_interface.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/xray/xray_log_interface.cpp stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_mips.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/xray/xray_mips.cpp stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_mips64.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/xray/xray_mips64.cpp stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_powerpc64.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/xray/xray_powerpc64.cpp stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_profile_collector.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/xray/xray_profile_collector.cpp stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_profiling.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/xray/xray_profiling.cpp stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_profiling_flags.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/xray/xray_profiling_flags.cpp stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_trampoline_powerpc64.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/xray/xray_trampoline_powerpc64.cpp stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_utils.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/xray/xray_utils.cpp stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_x86_64.cpp - copied unchanged from r358851, head/contrib/llvm-project/compiler-rt/lib/xray/xray_x86_64.cpp stable/12/contrib/llvm-project/libcxx/include/execution - copied unchanged from r358851, head/contrib/llvm-project/libcxx/include/execution stable/12/contrib/llvm-project/lld/Common/DWARF.cpp - copied unchanged from r358851, head/contrib/llvm-project/lld/Common/DWARF.cpp stable/12/contrib/llvm-project/lld/ELF/ARMErrataFix.cpp - copied unchanged from r358851, head/contrib/llvm-project/lld/ELF/ARMErrataFix.cpp stable/12/contrib/llvm-project/lld/ELF/ARMErrataFix.h - copied unchanged from r358851, head/contrib/llvm-project/lld/ELF/ARMErrataFix.h stable/12/contrib/llvm-project/lld/include/lld/Common/DWARF.h - copied unchanged from r358851, head/contrib/llvm-project/lld/include/lld/Common/DWARF.h stable/12/contrib/llvm-project/lldb/bindings/ - copied from r359578, head/contrib/llvm-project/lldb/bindings/ stable/12/contrib/llvm-project/lldb/docs/man/ - copied from r358851, head/contrib/llvm-project/lldb/docs/man/ stable/12/contrib/llvm-project/lldb/include/lldb/API/SBFile.h - copied unchanged from r358851, head/contrib/llvm-project/lldb/include/lldb/API/SBFile.h stable/12/contrib/llvm-project/lldb/include/lldb/Core/IOHandlerCursesGUI.h - copied unchanged from r358851, head/contrib/llvm-project/lldb/include/lldb/Core/IOHandlerCursesGUI.h stable/12/contrib/llvm-project/lldb/include/lldb/Core/PropertiesBase.td - copied unchanged from r358851, head/contrib/llvm-project/lldb/include/lldb/Core/PropertiesBase.td stable/12/contrib/llvm-project/lldb/include/lldb/Host/LZMA.h - copied unchanged from r358851, head/contrib/llvm-project/lldb/include/lldb/Host/LZMA.h stable/12/contrib/llvm-project/lldb/include/lldb/Interpreter/OptionGroupPythonClassWithDict.h - copied unchanged from r358851, head/contrib/llvm-project/lldb/include/lldb/Interpreter/OptionGroupPythonClassWithDict.h stable/12/contrib/llvm-project/lldb/include/lldb/Symbol/CallFrameInfo.h - copied unchanged from r358851, head/contrib/llvm-project/lldb/include/lldb/Symbol/CallFrameInfo.h stable/12/contrib/llvm-project/lldb/include/lldb/Symbol/ClangASTMetadata.h - copied unchanged from r358851, head/contrib/llvm-project/lldb/include/lldb/Symbol/ClangASTMetadata.h stable/12/contrib/llvm-project/lldb/include/lldb/Utility/GDBRemote.h - copied unchanged from r358851, head/contrib/llvm-project/lldb/include/lldb/Utility/GDBRemote.h stable/12/contrib/llvm-project/lldb/source/API/SBFile.cpp - copied unchanged from r358851, head/contrib/llvm-project/lldb/source/API/SBFile.cpp stable/12/contrib/llvm-project/lldb/source/Core/CoreProperties.td - copied unchanged from r358851, head/contrib/llvm-project/lldb/source/Core/CoreProperties.td stable/12/contrib/llvm-project/lldb/source/Core/IOHandlerCursesGUI.cpp - copied unchanged from r358851, head/contrib/llvm-project/lldb/source/Core/IOHandlerCursesGUI.cpp stable/12/contrib/llvm-project/lldb/source/Host/common/LZMA.cpp - copied unchanged from r358851, head/contrib/llvm-project/lldb/source/Host/common/LZMA.cpp stable/12/contrib/llvm-project/lldb/source/Host/posix/FileSystemPosix.cpp - copied unchanged from r358851, head/contrib/llvm-project/lldb/source/Host/posix/FileSystemPosix.cpp stable/12/contrib/llvm-project/lldb/source/Interpreter/InterpreterProperties.td - copied unchanged from r358851, head/contrib/llvm-project/lldb/source/Interpreter/InterpreterProperties.td stable/12/contrib/llvm-project/lldb/source/Interpreter/OptionGroupPythonClassWithDict.cpp - copied unchanged from r358851, head/contrib/llvm-project/lldb/source/Interpreter/OptionGroupPythonClassWithDict.cpp stable/12/contrib/llvm-project/lldb/source/Interpreter/OptionValueFileSpecList.cpp - copied unchanged from r358851, head/contrib/llvm-project/lldb/source/Interpreter/OptionValueFileSpecList.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ABI/SysV-arc/ - copied from r358851, head/contrib/llvm-project/lldb/source/Plugins/ABI/SysV-arc/ stable/12/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangDeclVendor.cpp - copied unchanged from r358851, head/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangDeclVendor.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangDeclVendor.h - copied unchanged from r358851, head/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangDeclVendor.h stable/12/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/CppModuleConfiguration.cpp - copied unchanged from r358851, head/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/CppModuleConfiguration.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/CppModuleConfiguration.h - copied unchanged from r358851, head/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/CppModuleConfiguration.h stable/12/contrib/llvm-project/lldb/source/Plugins/JITLoader/GDB/JITLoaderGDBProperties.td - copied unchanged from r358851, head/contrib/llvm-project/lldb/source/Plugins/JITLoader/GDB/JITLoaderGDBProperties.td stable/12/contrib/llvm-project/lldb/source/Plugins/Process/Utility/RegisterContextWindows_i386.cpp - copied unchanged from r358851, head/contrib/llvm-project/lldb/source/Plugins/Process/Utility/RegisterContextWindows_i386.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/Utility/RegisterContextWindows_i386.h - copied unchanged from r358851, head/contrib/llvm-project/lldb/source/Plugins/Process/Utility/RegisterContextWindows_i386.h stable/12/contrib/llvm-project/lldb/source/Plugins/Process/Utility/RegisterContextWindows_x86_64.cpp - copied unchanged from r358851, head/contrib/llvm-project/lldb/source/Plugins/Process/Utility/RegisterContextWindows_x86_64.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/Utility/RegisterContextWindows_x86_64.h - copied unchanged from r358851, head/contrib/llvm-project/lldb/source/Plugins/Process/Utility/RegisterContextWindows_x86_64.h stable/12/contrib/llvm-project/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemoteProperties.td - copied unchanged from r358851, head/contrib/llvm-project/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemoteProperties.td stable/12/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Lua/ - copied from r358851, head/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Lua/ stable/12/contrib/llvm-project/lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLogProperties.td - copied unchanged from r358851, head/contrib/llvm-project/lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLogProperties.td stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFProperties.td - copied unchanged from r358851, head/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFProperties.td stable/12/contrib/llvm-project/lldb/source/Symbol/ClangASTMetadata.cpp - copied unchanged from r358851, head/contrib/llvm-project/lldb/source/Symbol/ClangASTMetadata.cpp stable/12/contrib/llvm-project/lldb/source/Target/MemoryRegionInfo.cpp - copied unchanged from r358851, head/contrib/llvm-project/lldb/source/Target/MemoryRegionInfo.cpp stable/12/contrib/llvm-project/lldb/source/Target/TargetProperties.td - copied unchanged from r358851, head/contrib/llvm-project/lldb/source/Target/TargetProperties.td stable/12/contrib/llvm-project/lldb/source/Utility/GDBRemote.cpp - copied unchanged from r358851, head/contrib/llvm-project/lldb/source/Utility/GDBRemote.cpp stable/12/contrib/llvm-project/lldb/utils/TableGen/LLDBPropertyDefEmitter.cpp - copied unchanged from r358851, head/contrib/llvm-project/lldb/utils/TableGen/LLDBPropertyDefEmitter.cpp stable/12/contrib/llvm-project/lldb/utils/TableGen/LLDBTableGenUtils.cpp - copied unchanged from r358851, head/contrib/llvm-project/lldb/utils/TableGen/LLDBTableGenUtils.cpp stable/12/contrib/llvm-project/lldb/utils/TableGen/LLDBTableGenUtils.h - copied unchanged from r358851, head/contrib/llvm-project/lldb/utils/TableGen/LLDBTableGenUtils.h stable/12/contrib/llvm-project/llvm/include/llvm-c/ExternC.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm-c/ExternC.h stable/12/contrib/llvm-project/llvm/include/llvm/ADT/DirectedGraph.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/ADT/DirectedGraph.h stable/12/contrib/llvm-project/llvm/include/llvm/ADT/EnumeratedArray.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/ADT/EnumeratedArray.h stable/12/contrib/llvm-project/llvm/include/llvm/ADT/FloatingPointMode.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/ADT/FloatingPointMode.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/DDG.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/Analysis/DDG.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/DependenceGraphBuilder.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/Analysis/DependenceGraphBuilder.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/LoopCacheAnalysis.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/Analysis/LoopCacheAnalysis.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/GlobalISel/GISelKnownBits.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/CodeGen/GlobalISel/GISelKnownBits.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/LiveRangeCalc.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/CodeGen/LiveRangeCalc.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MIRFormatter.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/CodeGen/MIRFormatter.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineLoopUtils.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineLoopUtils.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineSizeOpts.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineSizeOpts.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/ModuloSchedule.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/CodeGen/ModuloSchedule.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/NonRelocatableStringpool.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/CodeGen/NonRelocatableStringpool.h stable/12/contrib/llvm-project/llvm/include/llvm/DWARFLinker/ - copied from r358851, head/contrib/llvm-project/llvm/include/llvm/DWARFLinker/ stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/DWARF/DWARFLocationExpression.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/DebugInfo/DWARF/DWARFLocationExpression.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/GSYM/FileWriter.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/DebugInfo/GSYM/FileWriter.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/GSYM/GsymCreator.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/DebugInfo/GSYM/GsymCreator.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/GSYM/GsymReader.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/DebugInfo/GSYM/GsymReader.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/GSYM/Header.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/DebugInfo/GSYM/Header.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/GSYM/LineTable.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/DebugInfo/GSYM/LineTable.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/GSYM/LookupResult.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/DebugInfo/GSYM/LookupResult.h stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/JITLink/MachO_arm64.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/JITLink/MachO_arm64.h stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/DebugUtils.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/DebugUtils.h stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/RPC/ - copied from r358851, head/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/RPC/ stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/SpeculateAnalyses.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/SpeculateAnalyses.h stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Speculation.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Speculation.h stable/12/contrib/llvm-project/llvm/include/llvm/Frontend/ - copied from r358851, head/contrib/llvm-project/llvm/include/llvm/Frontend/ stable/12/contrib/llvm-project/llvm/include/llvm/IR/ConstrainedOps.def - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/IR/ConstrainedOps.def stable/12/contrib/llvm-project/llvm/include/llvm/IR/FPEnv.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/IR/FPEnv.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/FixedMetadataKinds.def - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/IR/FixedMetadataKinds.def stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCRegister.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/MC/MCRegister.h stable/12/contrib/llvm-project/llvm/include/llvm/MCA/CodeEmitter.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/MCA/CodeEmitter.h stable/12/contrib/llvm-project/llvm/include/llvm/Object/TapiFile.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/Object/TapiFile.h stable/12/contrib/llvm-project/llvm/include/llvm/Object/TapiUniversal.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/Object/TapiUniversal.h stable/12/contrib/llvm-project/llvm/include/llvm/ObjectYAML/yaml2obj.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/ObjectYAML/yaml2obj.h stable/12/contrib/llvm-project/llvm/include/llvm/Remarks/BitstreamRemarkContainer.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/Remarks/BitstreamRemarkContainer.h stable/12/contrib/llvm-project/llvm/include/llvm/Remarks/BitstreamRemarkParser.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/Remarks/BitstreamRemarkParser.h stable/12/contrib/llvm-project/llvm/include/llvm/Remarks/BitstreamRemarkSerializer.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/Remarks/BitstreamRemarkSerializer.h stable/12/contrib/llvm-project/llvm/include/llvm/Remarks/RemarkLinker.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/Remarks/RemarkLinker.h stable/12/contrib/llvm-project/llvm/include/llvm/Remarks/YAMLRemarkSerializer.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/Remarks/YAMLRemarkSerializer.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/Alignment.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/Support/Alignment.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/Automaton.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/Support/Automaton.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/FileCollector.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/Support/FileCollector.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/TypeSize.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/Support/TypeSize.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/Windows/ - copied from r358851, head/contrib/llvm-project/llvm/include/llvm/Support/Windows/ stable/12/contrib/llvm-project/llvm/include/llvm/TableGen/Automaton.td - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/TableGen/Automaton.td stable/12/contrib/llvm-project/llvm/include/llvm/Target/GlobalISel/Combine.td - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/Target/GlobalISel/Combine.td stable/12/contrib/llvm-project/llvm/include/llvm/TextAPI/MachO/Platform.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/TextAPI/MachO/Platform.h stable/12/contrib/llvm-project/llvm/include/llvm/TextAPI/MachO/Target.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/TextAPI/MachO/Target.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/CFGuard.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/Transforms/CFGuard.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/IPO/MergeFunctions.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/Transforms/IPO/MergeFunctions.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Instrumentation/SanitizerCoverage.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/Transforms/Instrumentation/SanitizerCoverage.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/LowerConstantIntrinsics.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/LowerConstantIntrinsics.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/LowerMatrixIntrinsics.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/LowerMatrixIntrinsics.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/CodeMoverUtils.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/CodeMoverUtils.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/Debugify.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/Debugify.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/InjectTLIMappings.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/InjectTLIMappings.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/MisExpect.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/MisExpect.h stable/12/contrib/llvm-project/llvm/lib/Analysis/DDG.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Analysis/DDG.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/DependenceGraphBuilder.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Analysis/DependenceGraphBuilder.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/LoopCacheAnalysis.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Analysis/LoopCacheAnalysis.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/VFABIDemangling.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Analysis/VFABIDemangling.cpp stable/12/contrib/llvm-project/llvm/lib/BinaryFormat/XCOFF.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/BinaryFormat/XCOFF.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/CFGuardLongjmp.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/CodeGen/CFGuardLongjmp.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/GlobalISel/GISelKnownBits.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/CodeGen/GlobalISel/GISelKnownBits.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MIRNamerPass.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/CodeGen/MIRNamerPass.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MIRVRegNamerUtils.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/CodeGen/MIRVRegNamerUtils.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MIRVRegNamerUtils.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/CodeGen/MIRVRegNamerUtils.h stable/12/contrib/llvm-project/llvm/lib/CodeGen/MachineLoopUtils.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/CodeGen/MachineLoopUtils.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MachineSizeOpts.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/CodeGen/MachineSizeOpts.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/ModuloSchedule.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/CodeGen/ModuloSchedule.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/NonRelocatableStringpool.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/CodeGen/NonRelocatableStringpool.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/TypePromotion.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/CodeGen/TypePromotion.cpp stable/12/contrib/llvm-project/llvm/lib/DWARFLinker/ - copied from r358851, head/contrib/llvm-project/llvm/lib/DWARFLinker/ stable/12/contrib/llvm-project/llvm/lib/DebugInfo/DWARF/DWARFLocationExpression.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/DebugInfo/DWARF/DWARFLocationExpression.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/GSYM/FileWriter.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/DebugInfo/GSYM/FileWriter.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/GSYM/GsymCreator.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/DebugInfo/GSYM/GsymCreator.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/GSYM/GsymReader.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/DebugInfo/GSYM/GsymReader.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/GSYM/Header.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/DebugInfo/GSYM/Header.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/GSYM/LineTable.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/DebugInfo/GSYM/LineTable.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/GSYM/LookupResult.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/DebugInfo/GSYM/LookupResult.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.h stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/DebugUtils.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/DebugUtils.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/SpeculateAnalyses.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/SpeculateAnalyses.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/Speculation.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/Speculation.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/OrcError/ - copied from r358851, head/contrib/llvm-project/llvm/lib/ExecutionEngine/OrcError/ stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFAArch64.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFAArch64.h stable/12/contrib/llvm-project/llvm/lib/Frontend/ - copied from r358851, head/contrib/llvm-project/llvm/lib/Frontend/ stable/12/contrib/llvm-project/llvm/lib/IR/FPEnv.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/IR/FPEnv.cpp stable/12/contrib/llvm-project/llvm/lib/MCA/CodeEmitter.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/MCA/CodeEmitter.cpp stable/12/contrib/llvm-project/llvm/lib/Object/TapiFile.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Object/TapiFile.cpp stable/12/contrib/llvm-project/llvm/lib/Object/TapiUniversal.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Object/TapiUniversal.cpp stable/12/contrib/llvm-project/llvm/lib/ObjectYAML/COFFEmitter.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/ObjectYAML/COFFEmitter.cpp stable/12/contrib/llvm-project/llvm/lib/ObjectYAML/ELFEmitter.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/ObjectYAML/ELFEmitter.cpp stable/12/contrib/llvm-project/llvm/lib/ObjectYAML/MachOEmitter.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/ObjectYAML/MachOEmitter.cpp stable/12/contrib/llvm-project/llvm/lib/ObjectYAML/MinidumpEmitter.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/ObjectYAML/MinidumpEmitter.cpp stable/12/contrib/llvm-project/llvm/lib/ObjectYAML/WasmEmitter.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/ObjectYAML/WasmEmitter.cpp stable/12/contrib/llvm-project/llvm/lib/ObjectYAML/yaml2obj.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/ObjectYAML/yaml2obj.cpp stable/12/contrib/llvm-project/llvm/lib/Remarks/BitstreamRemarkParser.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Remarks/BitstreamRemarkParser.cpp stable/12/contrib/llvm-project/llvm/lib/Remarks/BitstreamRemarkParser.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Remarks/BitstreamRemarkParser.h stable/12/contrib/llvm-project/llvm/lib/Remarks/BitstreamRemarkSerializer.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Remarks/BitstreamRemarkSerializer.cpp stable/12/contrib/llvm-project/llvm/lib/Remarks/RemarkLinker.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Remarks/RemarkLinker.cpp stable/12/contrib/llvm-project/llvm/lib/Remarks/RemarkSerializer.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Remarks/RemarkSerializer.cpp stable/12/contrib/llvm-project/llvm/lib/Support/ABIBreak.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Support/ABIBreak.cpp stable/12/contrib/llvm-project/llvm/lib/Support/FileCheckImpl.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Support/FileCheckImpl.h stable/12/contrib/llvm-project/llvm/lib/Support/FileCollector.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Support/FileCollector.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64Combine.td - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64Combine.td stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64SchedExynosM5.td - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64SchedExynosM5.td stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64StackOffset.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64StackOffset.h stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64StackTaggingPreRA.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64StackTaggingPreRA.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUGlobalISelUtils.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUGlobalISelUtils.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUGlobalISelUtils.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUGlobalISelUtils.h stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUPrintfRuntimeBinding.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUPrintfRuntimeBinding.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/MVEGatherScatterLowering.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Target/ARM/MVEGatherScatterLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/MVETailPredication.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Target/ARM/MVETailPredication.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/MVEVPTBlockPass.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Target/ARM/MVEVPTBlockPass.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsPfmCounters.td - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Target/Mips/MipsPfmCounters.td stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCLowerMASSVEntries.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCLowerMASSVEntries.cpp stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVCallLowering.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVCallLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVCallLowering.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVCallLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVInstructionSelector.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVInstructionSelector.cpp stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVLegalizerInfo.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVLegalizerInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVLegalizerInfo.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVLegalizerInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVRegisterBankInfo.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVRegisterBankInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVRegisterBankInfo.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVRegisterBankInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVRegisterBanks.td - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVRegisterBanks.td stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVSchedRocket32.td - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVSchedRocket32.td stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVSchedRocket64.td - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVSchedRocket64.td stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVSchedule.td - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVSchedule.td stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZScheduleZ15.td - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZScheduleZ15.td stable/12/contrib/llvm-project/llvm/lib/Target/VE/ - copied from r358851, head/contrib/llvm-project/llvm/lib/Target/VE/ stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86AvoidTrailingCall.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Target/X86/X86AvoidTrailingCall.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86ScheduleZnver2.td - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Target/X86/X86ScheduleZnver2.td stable/12/contrib/llvm-project/llvm/lib/TextAPI/MachO/Platform.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/TextAPI/MachO/Platform.cpp stable/12/contrib/llvm-project/llvm/lib/TextAPI/MachO/Target.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/TextAPI/MachO/Target.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/CFGuard/ - copied from r358851, head/contrib/llvm-project/llvm/lib/Transforms/CFGuard/ stable/12/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/ValueProfileCollector.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/ValueProfileCollector.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/ValueProfileCollector.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/ValueProfileCollector.h stable/12/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/ValueProfilePlugins.inc - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/ValueProfilePlugins.inc stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/LowerConstantIntrinsics.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Transforms/Scalar/LowerConstantIntrinsics.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/CodeMoverUtils.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Transforms/Utils/CodeMoverUtils.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/Debugify.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Transforms/Utils/Debugify.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/InjectTLIMappings.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Transforms/Utils/InjectTLIMappings.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/MisExpect.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Transforms/Utils/MisExpect.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Vectorize/VPlanTransforms.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/lib/Transforms/Vectorize/VPlanTransforms.h stable/12/contrib/llvm-project/llvm/tools/llvm-objcopy/CommonOpts.td - copied unchanged from r358851, head/contrib/llvm-project/llvm/tools/llvm-objcopy/CommonOpts.td stable/12/contrib/llvm-project/llvm/tools/llvm-objcopy/ELF/ELFConfig.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/tools/llvm-objcopy/ELF/ELFConfig.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-objcopy/ELF/ELFConfig.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/tools/llvm-objcopy/ELF/ELFConfig.h stable/12/contrib/llvm-project/llvm/tools/llvm-objcopy/InstallNameToolOpts.td - copied unchanged from r358851, head/contrib/llvm-project/llvm/tools/llvm-objcopy/InstallNameToolOpts.td stable/12/contrib/llvm-project/llvm/tools/llvm-objcopy/MachO/MachOLayoutBuilder.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/tools/llvm-objcopy/MachO/MachOLayoutBuilder.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-objcopy/MachO/MachOLayoutBuilder.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/tools/llvm-objcopy/MachO/MachOLayoutBuilder.h stable/12/contrib/llvm-project/llvm/utils/TableGen/DFAEmitter.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/utils/TableGen/DFAEmitter.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/DFAEmitter.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/utils/TableGen/DFAEmitter.h stable/12/contrib/llvm-project/llvm/utils/TableGen/GICombinerEmitter.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/utils/TableGen/GICombinerEmitter.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/GlobalISel/ - copied from r358851, head/contrib/llvm-project/llvm/utils/TableGen/GlobalISel/ stable/12/contrib/llvm-project/llvm/utils/TableGen/OptEmitter.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/utils/TableGen/OptEmitter.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/OptEmitter.h - copied unchanged from r358851, head/contrib/llvm-project/llvm/utils/TableGen/OptEmitter.h stable/12/contrib/llvm-project/llvm/utils/TableGen/OptRSTEmitter.cpp - copied unchanged from r358851, head/contrib/llvm-project/llvm/utils/TableGen/OptRSTEmitter.cpp stable/12/contrib/llvm-project/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp - copied unchanged from r358851, head/contrib/llvm-project/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp stable/12/lib/clang/include/llvm/Support/Extension.def - copied unchanged from r358851, head/lib/clang/include/llvm/Support/Extension.def stable/12/usr.bin/clang/lldb/lldb.1 - copied unchanged from r358851, head/usr.bin/clang/lldb/lldb.1 Deleted: stable/12/contrib/llvm-project/clang/include/clang/AST/TypeNodes.def stable/12/contrib/llvm-project/clang/include/clang/Frontend/LangStandard.h stable/12/contrib/llvm-project/clang/include/clang/Frontend/LangStandards.def stable/12/contrib/llvm-project/clang/include/clang/Index/CodegenNameGenerator.h stable/12/contrib/llvm-project/clang/include/clang/Serialization/Module.h stable/12/contrib/llvm-project/clang/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h stable/12/contrib/llvm-project/clang/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeMap.h stable/12/contrib/llvm-project/clang/include/clang/Tooling/Refactoring/RangeSelector.h stable/12/contrib/llvm-project/clang/include/clang/Tooling/Refactoring/SourceCode.h stable/12/contrib/llvm-project/clang/include/clang/Tooling/Refactoring/Stencil.h stable/12/contrib/llvm-project/clang/include/clang/Tooling/Refactoring/Transformer.h stable/12/contrib/llvm-project/clang/lib/Frontend/LangStandards.cpp stable/12/contrib/llvm-project/clang/lib/Index/CodegenNameGenerator.cpp stable/12/contrib/llvm-project/clang/lib/Serialization/Module.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/IteratorChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/DynamicTypeMap.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/PathDiagnostic.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/Refactoring/Extract/SourceExtraction.h stable/12/contrib/llvm-project/clang/lib/Tooling/Refactoring/RangeSelector.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/Refactoring/SourceCode.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/Refactoring/Stencil.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/Refactoring/Transformer.cpp stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_activation.cc stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_allocator.cc stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_debugging.cc stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_descriptions.cc stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_errors.cc stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_fake_stack.cc stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_flags.cc stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_fuchsia.cc stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_globals.cc stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_globals_win.cc stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_interceptors.cc stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_interceptors_memintrinsics.cc stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_linux.cc stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_mac.cc stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cc stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_malloc_mac.cc stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_malloc_win.cc stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_memory_profile.cc stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_new_delete.cc stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_poisoning.cc stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_posix.cc stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_preinit.cc stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_premap_shadow.cc stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_report.cc stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_rtems.cc stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_rtl.cc stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_shadow_setup.cc stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_stack.cc stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_stats.cc stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_suppressions.cc stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_thread.cc stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_win.cc stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_win_dll_thunk.cc stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_win_dynamic_runtime_thunk.cc stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_win_weak_interception.cc stable/12/contrib/llvm-project/compiler-rt/lib/dfsan/dfsan.cc stable/12/contrib/llvm-project/compiler-rt/lib/dfsan/dfsan_custom.cc stable/12/contrib/llvm-project/compiler-rt/lib/dfsan/dfsan_interceptors.cc stable/12/contrib/llvm-project/compiler-rt/lib/fuzzer/utils/ stable/12/contrib/llvm-project/compiler-rt/lib/interception/interception_linux.cc stable/12/contrib/llvm-project/compiler-rt/lib/interception/interception_mac.cc stable/12/contrib/llvm-project/compiler-rt/lib/interception/interception_type_test.cc stable/12/contrib/llvm-project/compiler-rt/lib/interception/interception_win.cc stable/12/contrib/llvm-project/compiler-rt/lib/lsan/lsan.cc stable/12/contrib/llvm-project/compiler-rt/lib/lsan/lsan_allocator.cc stable/12/contrib/llvm-project/compiler-rt/lib/lsan/lsan_common.cc stable/12/contrib/llvm-project/compiler-rt/lib/lsan/lsan_common_linux.cc stable/12/contrib/llvm-project/compiler-rt/lib/lsan/lsan_common_mac.cc stable/12/contrib/llvm-project/compiler-rt/lib/lsan/lsan_interceptors.cc stable/12/contrib/llvm-project/compiler-rt/lib/lsan/lsan_linux.cc stable/12/contrib/llvm-project/compiler-rt/lib/lsan/lsan_mac.cc stable/12/contrib/llvm-project/compiler-rt/lib/lsan/lsan_malloc_mac.cc stable/12/contrib/llvm-project/compiler-rt/lib/lsan/lsan_preinit.cc stable/12/contrib/llvm-project/compiler-rt/lib/lsan/lsan_thread.cc stable/12/contrib/llvm-project/compiler-rt/lib/msan/msan.cc stable/12/contrib/llvm-project/compiler-rt/lib/msan/msan_allocator.cc stable/12/contrib/llvm-project/compiler-rt/lib/msan/msan_chained_origin_depot.cc stable/12/contrib/llvm-project/compiler-rt/lib/msan/msan_interceptors.cc stable/12/contrib/llvm-project/compiler-rt/lib/msan/msan_linux.cc stable/12/contrib/llvm-project/compiler-rt/lib/msan/msan_new_delete.cc stable/12/contrib/llvm-project/compiler-rt/lib/msan/msan_poisoning.cc stable/12/contrib/llvm-project/compiler-rt/lib/msan/msan_report.cc stable/12/contrib/llvm-project/compiler-rt/lib/msan/msan_thread.cc stable/12/contrib/llvm-project/compiler-rt/lib/profile/InstrProfData.inc stable/12/contrib/llvm-project/compiler-rt/lib/profile/InstrProfilingRuntime.cc stable/12/contrib/llvm-project/compiler-rt/lib/safestack/safestack.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sancov_flags.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_allocator.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_allocator_checks.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_allocator_report.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_libcdep.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_nolibc.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_coverage_fuchsia.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep_new.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_coverage_win_dll_thunk.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_coverage_win_dynamic_runtime_thunk.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_coverage_win_sections.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_coverage_win_weak_interception.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector1.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector2.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_errno.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_file.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_flags.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_fuchsia.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_libc.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_libignore.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_linux_s390.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_mac_libcdep.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_netbsd.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_openbsd.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_persistent_allocator.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_freebsd.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_linux.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_openbsd.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_solaris.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_posix.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_printf.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_bsd.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_common.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_linux.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_mac.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_solaris.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_rtems.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_solaris.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_stackdepot.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_libcdep.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_sparc.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_mac.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_suppressions.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libbacktrace.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_mac.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_markup.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_report.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_win.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_termination.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_thread_registry.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_tls_get_addr.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_type_traits.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_unwind_linux_libcdep.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_unwind_win.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_win.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_win_dll_thunk.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_win_dynamic_runtime_thunk.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_win_weak_interception.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/symbolizer/sanitizer_symbolize.cc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/symbolizer/sanitizer_wrappers.cc stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/checksum.cc stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/common.cc stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/crc32_hw.cc stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/flags.cc stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/flags_parser.cc stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/fuchsia.cc stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/linux.cc stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/report.cc stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/secondary.cc stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/string_utils.cc stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/wrappers_c.cc stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/wrappers_c_bionic.cc stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/wrappers_cpp.cc stable/12/contrib/llvm-project/compiler-rt/lib/stats/stats.cc stable/12/contrib/llvm-project/compiler-rt/lib/stats/stats_client.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/benchmarks/func_entry_exit.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/benchmarks/mini_bench_local.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/benchmarks/mini_bench_shared.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/benchmarks/mop.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/benchmarks/start_many_threads.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/benchmarks/vts_many_threads_bench.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/dd/dd_interceptors.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/dd/dd_rtl.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/go/tsan_go.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_clock.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_debugging.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_external.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_fd.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_flags.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_ignoreset.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_mac.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interface.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interface_ann.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interface_atomic.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interface_java.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_libdispatch.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_malloc_mac.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_md5.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_mman.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_mutex.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_mutexset.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_platform_mac.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_platform_posix.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_platform_windows.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_preinit.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_report.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_rtl.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_rtl_proc.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_rtl_report.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_stack_trace.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_stat.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_suppressions.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_symbolize.cc stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_sync.cc stable/12/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_diag.cc stable/12/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_diag_standalone.cc stable/12/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_flags.cc stable/12/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_handlers.cc stable/12/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_handlers_cxx.cc stable/12/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_init.cc stable/12/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_init_standalone.cc stable/12/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_init_standalone_preinit.cc stable/12/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_monitor.cc stable/12/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_signals_standalone.cc stable/12/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_type_hash.cc stable/12/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_type_hash_itanium.cc stable/12/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_type_hash_win.cc stable/12/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_value.cc stable/12/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_win_dll_thunk.cc stable/12/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_win_dynamic_runtime_thunk.cc stable/12/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_win_weak_interception.cc stable/12/contrib/llvm-project/compiler-rt/lib/ubsan_minimal/ubsan_minimal_handlers.cc stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_AArch64.cc stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_arm.cc stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_basic_flags.cc stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_basic_logging.cc stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_buffer_queue.cc stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_fdr_flags.cc stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_fdr_logging.cc stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_flags.cc stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_init.cc stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_interface.cc stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_log_interface.cc stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_mips.cc stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_mips64.cc stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_powerpc64.cc stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_profile_collector.cc stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_profiling.cc stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_profiling_flags.cc stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_trampoline_powerpc64.cc stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_utils.cc stable/12/contrib/llvm-project/compiler-rt/lib/xray/xray_x86_64.cc stable/12/contrib/llvm-project/libcxx/src/CMakeLists.txt stable/12/contrib/llvm-project/lld/CMakeLists.txt stable/12/contrib/llvm-project/lld/COFF/CMakeLists.txt stable/12/contrib/llvm-project/lld/Common/CMakeLists.txt stable/12/contrib/llvm-project/lld/ELF/CMakeLists.txt stable/12/contrib/llvm-project/lld/docs/CMakeLists.txt stable/12/contrib/llvm-project/lld/lib/CMakeLists.txt stable/12/contrib/llvm-project/lld/lib/Core/CMakeLists.txt stable/12/contrib/llvm-project/lld/lib/Driver/CMakeLists.txt stable/12/contrib/llvm-project/lld/lib/ReaderWriter/CMakeLists.txt stable/12/contrib/llvm-project/lld/lib/ReaderWriter/MachO/CMakeLists.txt stable/12/contrib/llvm-project/lld/lib/ReaderWriter/YAML/CMakeLists.txt stable/12/contrib/llvm-project/lld/tools/lld/CMakeLists.txt stable/12/contrib/llvm-project/lldb/docs/lldb.1 stable/12/contrib/llvm-project/lldb/include/lldb/Core/STLUtils.h stable/12/contrib/llvm-project/lldb/include/lldb/Core/ThreadSafeSTLMap.h stable/12/contrib/llvm-project/lldb/include/lldb/Core/ThreadSafeSTLVector.h stable/12/contrib/llvm-project/lldb/include/lldb/DataFormatters/TypeValidator.h stable/12/contrib/llvm-project/lldb/include/lldb/Symbol/ClangExternalASTSourceCommon.h stable/12/contrib/llvm-project/lldb/include/lldb/Symbol/VerifyDecl.h stable/12/contrib/llvm-project/lldb/include/lldb/Utility/CleanUp.h stable/12/contrib/llvm-project/lldb/include/lldb/Utility/FileCollector.h stable/12/contrib/llvm-project/lldb/include/lldb/Utility/JSON.h stable/12/contrib/llvm-project/lldb/include/lldb/Utility/StreamGDBRemote.h stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectBugreport.cpp stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectBugreport.h stable/12/contrib/llvm-project/lldb/source/DataFormatters/TypeValidator.cpp stable/12/contrib/llvm-project/lldb/source/Host/posix/FileSystem.cpp stable/12/contrib/llvm-project/lldb/source/Interpreter/OptionValueFileSpecLIst.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ASTDumper.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ASTDumper.h stable/12/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/PythonExceptionState.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/PythonExceptionState.h stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugLine.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugLine.h stable/12/contrib/llvm-project/lldb/source/Symbol/ClangExternalASTSourceCommon.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/VerifyDecl.cpp stable/12/contrib/llvm-project/lldb/source/Utility/FileCollector.cpp stable/12/contrib/llvm-project/lldb/source/Utility/JSON.cpp stable/12/contrib/llvm-project/lldb/source/Utility/PPC64LE_ehframe_Registers.h stable/12/contrib/llvm-project/lldb/source/Utility/StreamGDBRemote.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdArgContext.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdArgContext.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdArgSet.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdArgSet.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdArgValBase.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdArgValBase.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdArgValConsume.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdArgValConsume.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdArgValFile.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdArgValFile.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdArgValListBase.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdArgValListBase.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdArgValListOfN.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdArgValListOfN.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdArgValNumber.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdArgValNumber.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdArgValOptionLong.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdArgValOptionLong.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdArgValOptionShort.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdArgValOptionShort.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdArgValPrintValues.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdArgValPrintValues.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdArgValString.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdArgValString.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdArgValThreadGrp.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdArgValThreadGrp.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdBase.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdBase.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmd.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmd.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmdBreak.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmdBreak.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmdData.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmdData.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmdEnviro.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmdEnviro.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmdExec.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmdExec.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmdFile.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmdFile.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmdGdbInfo.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmdGdbInfo.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmdGdbSet.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmdGdbSet.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmdGdbShow.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmdGdbShow.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmdGdbThread.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmdGdbThread.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmdMiscellanous.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmdMiscellanous.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmdStack.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmdStack.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmdSupportInfo.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmdSupportInfo.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmdSupportList.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmdSupportList.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmdSymbol.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmdSymbol.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmdTarget.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmdTarget.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmdThread.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmdThread.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmdTrace.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmdTrace.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmdVar.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCmdVar.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCommands.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdCommands.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdData.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdData.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdFactory.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdFactory.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdInterpreter.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdInterpreter.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdInvoker.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdInvoker.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdMgr.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdMgr.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdMgrSetCmdDeleteCallback.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmdMgrSetCmdDeleteCallback.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnBase.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnBase.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnConfig.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnLLDBBroadcaster.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnLLDBBroadcaster.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfo.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfo.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfoVarObj.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfoVarObj.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnLLDBDebugger.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnLLDBDebugger.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnLLDBDebuggerHandleEvents.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnLLDBDebuggerHandleEvents.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnLLDBProxySBValue.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnLLDBProxySBValue.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnLLDBUtilSBValue.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnLLDBUtilSBValue.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnLog.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnLog.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnLogMediumFile.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnLogMediumFile.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnMIOutOfBandRecord.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnMIOutOfBandRecord.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnMIResultRecord.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnMIResultRecord.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnMIValue.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnMIValue.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnMIValueConst.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnMIValueConst.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnMIValueList.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnMIValueList.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnMIValueResult.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnMIValueResult.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnMIValueTuple.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnMIValueTuple.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnResources.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnResources.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnStreamStderr.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnStreamStderr.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnStreamStdin.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnStreamStdin.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnStreamStdout.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnStreamStdout.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnThreadMgrStd.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MICmnThreadMgrStd.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MIDataTypes.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MIDriver.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MIDriver.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MIDriverBase.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MIDriverBase.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MIDriverMain.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MIDriverMgr.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MIDriverMgr.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MIExtensions.txt stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MIReadMe.txt stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MIUtilDateTimeStd.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MIUtilDateTimeStd.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MIUtilDebug.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MIUtilDebug.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MIUtilFileStd.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MIUtilFileStd.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MIUtilMapIdToVariant.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MIUtilMapIdToVariant.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MIUtilSingletonBase.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MIUtilSingletonHelper.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MIUtilString.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MIUtilString.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MIUtilThreadBaseStd.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MIUtilThreadBaseStd.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MIUtilVariant.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-mi/MIUtilVariant.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/Platform.h stable/12/contrib/llvm-project/lldb/tools/lldb-mi/module.modulemap stable/12/contrib/llvm-project/llvm/include/llvm/ADT/VariadicFunction.h stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/RPCSerialization.h stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/RPCUtils.h stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/RawByteChannel.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCCodePadder.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/JamCRC.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/MutexGuard.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/Options.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/ScalableSize.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/UniqueLock.h stable/12/contrib/llvm-project/llvm/lib/CodeGen/LiveRangeCalc.h stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachOAtomGraphBuilder.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachOAtomGraphBuilder.h stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/OrcError.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/RPCUtils.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MCCodePadder.cpp stable/12/contrib/llvm-project/llvm/lib/Support/JamCRC.cpp stable/12/contrib/llvm-project/llvm/lib/Support/Mutex.cpp stable/12/contrib/llvm-project/llvm/lib/Support/Options.cpp stable/12/contrib/llvm-project/llvm/lib/Support/Unix/Mutex.inc stable/12/contrib/llvm-project/llvm/lib/Support/Unix/RWMutex.inc stable/12/contrib/llvm-project/llvm/lib/Support/Windows/Mutex.inc stable/12/contrib/llvm-project/llvm/lib/Support/Windows/RWMutex.inc stable/12/contrib/llvm-project/llvm/lib/Support/Windows/WindowsSupport.h stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64SchedExynosM1.td stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMCodeGenPrepare.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCLoopPreIncPrep.cpp stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZExpandPseudo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZScheduleArch13.td stable/12/contrib/llvm-project/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Vectorize/VPlanHCFGTransforms.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Vectorize/VPlanHCFGTransforms.h stable/12/contrib/llvm-project/llvm/tools/opt/Debugify.cpp stable/12/contrib/llvm-project/llvm/tools/opt/Debugify.h stable/12/contrib/llvm-project/openmp/runtime/src/kmp_taskq.cpp stable/12/contrib/llvm-project/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.c Modified: stable/12/Makefile.inc1 stable/12/ObsoleteFiles.inc stable/12/UPDATING stable/12/contrib/llvm-project/FREEBSD-Xlist stable/12/contrib/llvm-project/clang/include/clang-c/BuildSystem.h stable/12/contrib/llvm-project/clang/include/clang-c/CXCompilationDatabase.h stable/12/contrib/llvm-project/clang/include/clang-c/CXErrorCode.h stable/12/contrib/llvm-project/clang/include/clang-c/CXString.h stable/12/contrib/llvm-project/clang/include/clang-c/Documentation.h stable/12/contrib/llvm-project/clang/include/clang-c/Index.h stable/12/contrib/llvm-project/clang/include/clang-c/Platform.h stable/12/contrib/llvm-project/clang/include/clang/AST/APValue.h stable/12/contrib/llvm-project/clang/include/clang/AST/ASTConsumer.h stable/12/contrib/llvm-project/clang/include/clang/AST/ASTContext.h stable/12/contrib/llvm-project/clang/include/clang/AST/ASTFwd.h stable/12/contrib/llvm-project/clang/include/clang/AST/ASTImporter.h stable/12/contrib/llvm-project/clang/include/clang/AST/ASTImporterSharedState.h stable/12/contrib/llvm-project/clang/include/clang/AST/ASTLambda.h stable/12/contrib/llvm-project/clang/include/clang/AST/ASTNodeTraverser.h stable/12/contrib/llvm-project/clang/include/clang/AST/ASTStructuralEquivalence.h stable/12/contrib/llvm-project/clang/include/clang/AST/ASTTypeTraits.h stable/12/contrib/llvm-project/clang/include/clang/AST/Attr.h stable/12/contrib/llvm-project/clang/include/clang/AST/CXXInheritance.h stable/12/contrib/llvm-project/clang/include/clang/AST/CharUnits.h stable/12/contrib/llvm-project/clang/include/clang/AST/Comment.h stable/12/contrib/llvm-project/clang/include/clang/AST/CommentCommands.td stable/12/contrib/llvm-project/clang/include/clang/AST/CommentLexer.h stable/12/contrib/llvm-project/clang/include/clang/AST/ComparisonCategories.h stable/12/contrib/llvm-project/clang/include/clang/AST/Decl.h stable/12/contrib/llvm-project/clang/include/clang/AST/DeclBase.h stable/12/contrib/llvm-project/clang/include/clang/AST/DeclCXX.h stable/12/contrib/llvm-project/clang/include/clang/AST/DeclObjC.h stable/12/contrib/llvm-project/clang/include/clang/AST/DeclTemplate.h stable/12/contrib/llvm-project/clang/include/clang/AST/DeclarationName.h stable/12/contrib/llvm-project/clang/include/clang/AST/Expr.h stable/12/contrib/llvm-project/clang/include/clang/AST/ExprCXX.h stable/12/contrib/llvm-project/clang/include/clang/AST/ExprObjC.h stable/12/contrib/llvm-project/clang/include/clang/AST/ExternalASTMerger.h stable/12/contrib/llvm-project/clang/include/clang/AST/ExternalASTSource.h stable/12/contrib/llvm-project/clang/include/clang/AST/FormatString.h stable/12/contrib/llvm-project/clang/include/clang/AST/GlobalDecl.h stable/12/contrib/llvm-project/clang/include/clang/AST/JSONNodeDumper.h stable/12/contrib/llvm-project/clang/include/clang/AST/Mangle.h stable/12/contrib/llvm-project/clang/include/clang/AST/NSAPI.h stable/12/contrib/llvm-project/clang/include/clang/AST/OpenMPClause.h stable/12/contrib/llvm-project/clang/include/clang/AST/OperationKinds.def stable/12/contrib/llvm-project/clang/include/clang/AST/PrettyPrinter.h stable/12/contrib/llvm-project/clang/include/clang/AST/RawCommentList.h stable/12/contrib/llvm-project/clang/include/clang/AST/RecursiveASTVisitor.h stable/12/contrib/llvm-project/clang/include/clang/AST/Stmt.h stable/12/contrib/llvm-project/clang/include/clang/AST/StmtDataCollectors.td stable/12/contrib/llvm-project/clang/include/clang/AST/StmtOpenMP.h stable/12/contrib/llvm-project/clang/include/clang/AST/StmtVisitor.h stable/12/contrib/llvm-project/clang/include/clang/AST/TemplateBase.h stable/12/contrib/llvm-project/clang/include/clang/AST/TemplateName.h stable/12/contrib/llvm-project/clang/include/clang/AST/TextNodeDumper.h stable/12/contrib/llvm-project/clang/include/clang/AST/Type.h stable/12/contrib/llvm-project/clang/include/clang/AST/TypeLoc.h stable/12/contrib/llvm-project/clang/include/clang/AST/TypeLocNodes.def stable/12/contrib/llvm-project/clang/include/clang/AST/TypeVisitor.h stable/12/contrib/llvm-project/clang/include/clang/AST/UnresolvedSet.h stable/12/contrib/llvm-project/clang/include/clang/ASTMatchers/ASTMatchFinder.h stable/12/contrib/llvm-project/clang/include/clang/ASTMatchers/ASTMatchers.h stable/12/contrib/llvm-project/clang/include/clang/ASTMatchers/ASTMatchersInternal.h stable/12/contrib/llvm-project/clang/include/clang/ASTMatchers/Dynamic/Parser.h stable/12/contrib/llvm-project/clang/include/clang/Analysis/AnalysisDeclContext.h stable/12/contrib/llvm-project/clang/include/clang/Analysis/CFG.h stable/12/contrib/llvm-project/clang/include/clang/Analysis/CallGraph.h stable/12/contrib/llvm-project/clang/include/clang/Basic/AddressSpaces.h stable/12/contrib/llvm-project/clang/include/clang/Basic/Attr.td stable/12/contrib/llvm-project/clang/include/clang/Basic/AttrDocs.td stable/12/contrib/llvm-project/clang/include/clang/Basic/Builtins.def stable/12/contrib/llvm-project/clang/include/clang/Basic/Builtins.h stable/12/contrib/llvm-project/clang/include/clang/Basic/BuiltinsAArch64.def stable/12/contrib/llvm-project/clang/include/clang/Basic/BuiltinsAMDGPU.def stable/12/contrib/llvm-project/clang/include/clang/Basic/BuiltinsARM.def stable/12/contrib/llvm-project/clang/include/clang/Basic/BuiltinsPPC.def stable/12/contrib/llvm-project/clang/include/clang/Basic/BuiltinsWebAssembly.def stable/12/contrib/llvm-project/clang/include/clang/Basic/BuiltinsX86.def stable/12/contrib/llvm-project/clang/include/clang/Basic/BuiltinsX86_64.def stable/12/contrib/llvm-project/clang/include/clang/Basic/CodeGenOptions.def stable/12/contrib/llvm-project/clang/include/clang/Basic/CodeGenOptions.h stable/12/contrib/llvm-project/clang/include/clang/Basic/CommentNodes.td stable/12/contrib/llvm-project/clang/include/clang/Basic/Cuda.h stable/12/contrib/llvm-project/clang/include/clang/Basic/DebugInfoOptions.h stable/12/contrib/llvm-project/clang/include/clang/Basic/DeclNodes.td stable/12/contrib/llvm-project/clang/include/clang/Basic/Diagnostic.h stable/12/contrib/llvm-project/clang/include/clang/Basic/DiagnosticASTKinds.td stable/12/contrib/llvm-project/clang/include/clang/Basic/DiagnosticCommentKinds.td stable/12/contrib/llvm-project/clang/include/clang/Basic/DiagnosticCommonKinds.td stable/12/contrib/llvm-project/clang/include/clang/Basic/DiagnosticDriverKinds.td stable/12/contrib/llvm-project/clang/include/clang/Basic/DiagnosticFrontendKinds.td stable/12/contrib/llvm-project/clang/include/clang/Basic/DiagnosticGroups.td stable/12/contrib/llvm-project/clang/include/clang/Basic/DiagnosticLexKinds.td stable/12/contrib/llvm-project/clang/include/clang/Basic/DiagnosticOptions.def stable/12/contrib/llvm-project/clang/include/clang/Basic/DiagnosticParseKinds.td stable/12/contrib/llvm-project/clang/include/clang/Basic/DiagnosticSemaKinds.td stable/12/contrib/llvm-project/clang/include/clang/Basic/DiagnosticSerializationKinds.td stable/12/contrib/llvm-project/clang/include/clang/Basic/Features.def stable/12/contrib/llvm-project/clang/include/clang/Basic/FileManager.h stable/12/contrib/llvm-project/clang/include/clang/Basic/IdentifierTable.h stable/12/contrib/llvm-project/clang/include/clang/Basic/LangOptions.def stable/12/contrib/llvm-project/clang/include/clang/Basic/LangOptions.h stable/12/contrib/llvm-project/clang/include/clang/Basic/Linkage.h stable/12/contrib/llvm-project/clang/include/clang/Basic/ObjCRuntime.h stable/12/contrib/llvm-project/clang/include/clang/Basic/OpenCLOptions.h stable/12/contrib/llvm-project/clang/include/clang/Basic/OpenMPKinds.def stable/12/contrib/llvm-project/clang/include/clang/Basic/OpenMPKinds.h stable/12/contrib/llvm-project/clang/include/clang/Basic/OperatorKinds.h stable/12/contrib/llvm-project/clang/include/clang/Basic/PartialDiagnostic.h stable/12/contrib/llvm-project/clang/include/clang/Basic/SanitizerSpecialCaseList.h stable/12/contrib/llvm-project/clang/include/clang/Basic/Sanitizers.h stable/12/contrib/llvm-project/clang/include/clang/Basic/SourceLocation.h stable/12/contrib/llvm-project/clang/include/clang/Basic/SourceManager.h stable/12/contrib/llvm-project/clang/include/clang/Basic/Specifiers.h stable/12/contrib/llvm-project/clang/include/clang/Basic/Stack.h stable/12/contrib/llvm-project/clang/include/clang/Basic/StmtNodes.td stable/12/contrib/llvm-project/clang/include/clang/Basic/SyncScope.h stable/12/contrib/llvm-project/clang/include/clang/Basic/TargetBuiltins.h stable/12/contrib/llvm-project/clang/include/clang/Basic/TargetCXXABI.h stable/12/contrib/llvm-project/clang/include/clang/Basic/TargetInfo.h stable/12/contrib/llvm-project/clang/include/clang/Basic/TokenKinds.def stable/12/contrib/llvm-project/clang/include/clang/Basic/TokenKinds.h stable/12/contrib/llvm-project/clang/include/clang/Basic/X86Target.def stable/12/contrib/llvm-project/clang/include/clang/Basic/arm_fp16.td stable/12/contrib/llvm-project/clang/include/clang/Basic/arm_neon.td stable/12/contrib/llvm-project/clang/include/clang/Basic/arm_neon_incl.td stable/12/contrib/llvm-project/clang/include/clang/CodeGen/CGFunctionInfo.h stable/12/contrib/llvm-project/clang/include/clang/CrossTU/CrossTranslationUnit.h stable/12/contrib/llvm-project/clang/include/clang/DirectoryWatcher/DirectoryWatcher.h stable/12/contrib/llvm-project/clang/include/clang/Driver/Action.h stable/12/contrib/llvm-project/clang/include/clang/Driver/CC1Options.td stable/12/contrib/llvm-project/clang/include/clang/Driver/CLCompatOptions.td stable/12/contrib/llvm-project/clang/include/clang/Driver/Distro.h stable/12/contrib/llvm-project/clang/include/clang/Driver/Driver.h stable/12/contrib/llvm-project/clang/include/clang/Driver/Job.h stable/12/contrib/llvm-project/clang/include/clang/Driver/Options.h stable/12/contrib/llvm-project/clang/include/clang/Driver/Options.td stable/12/contrib/llvm-project/clang/include/clang/Driver/Phases.h stable/12/contrib/llvm-project/clang/include/clang/Driver/SanitizerArgs.h stable/12/contrib/llvm-project/clang/include/clang/Driver/ToolChain.h stable/12/contrib/llvm-project/clang/include/clang/Driver/Types.def stable/12/contrib/llvm-project/clang/include/clang/Driver/Types.h stable/12/contrib/llvm-project/clang/include/clang/Format/Format.h stable/12/contrib/llvm-project/clang/include/clang/Frontend/ASTUnit.h stable/12/contrib/llvm-project/clang/include/clang/Frontend/CompilerInstance.h stable/12/contrib/llvm-project/clang/include/clang/Frontend/CompilerInvocation.h stable/12/contrib/llvm-project/clang/include/clang/Frontend/FrontendActions.h stable/12/contrib/llvm-project/clang/include/clang/Frontend/FrontendOptions.h stable/12/contrib/llvm-project/clang/include/clang/Frontend/MultiplexConsumer.h stable/12/contrib/llvm-project/clang/include/clang/Frontend/PrecompiledPreamble.h stable/12/contrib/llvm-project/clang/include/clang/Frontend/Utils.h stable/12/contrib/llvm-project/clang/include/clang/Index/IndexDataConsumer.h stable/12/contrib/llvm-project/clang/include/clang/Index/IndexingAction.h stable/12/contrib/llvm-project/clang/include/clang/Lex/DependencyDirectivesSourceMinimizer.h stable/12/contrib/llvm-project/clang/include/clang/Lex/DirectoryLookup.h stable/12/contrib/llvm-project/clang/include/clang/Lex/HeaderMap.h stable/12/contrib/llvm-project/clang/include/clang/Lex/HeaderSearch.h stable/12/contrib/llvm-project/clang/include/clang/Lex/HeaderSearchOptions.h stable/12/contrib/llvm-project/clang/include/clang/Lex/Lexer.h stable/12/contrib/llvm-project/clang/include/clang/Lex/MacroArgs.h stable/12/contrib/llvm-project/clang/include/clang/Lex/ModuleLoader.h stable/12/contrib/llvm-project/clang/include/clang/Lex/ModuleMap.h stable/12/contrib/llvm-project/clang/include/clang/Lex/PPCallbacks.h stable/12/contrib/llvm-project/clang/include/clang/Lex/Preprocessor.h stable/12/contrib/llvm-project/clang/include/clang/Lex/PreprocessorOptions.h stable/12/contrib/llvm-project/clang/include/clang/Parse/Parser.h stable/12/contrib/llvm-project/clang/include/clang/Parse/RAIIObjectsForParser.h stable/12/contrib/llvm-project/clang/include/clang/Rewrite/Core/Rewriter.h stable/12/contrib/llvm-project/clang/include/clang/Sema/CodeCompleteConsumer.h stable/12/contrib/llvm-project/clang/include/clang/Sema/DeclSpec.h stable/12/contrib/llvm-project/clang/include/clang/Sema/ExternalSemaSource.h stable/12/contrib/llvm-project/clang/include/clang/Sema/MultiplexExternalSemaSource.h stable/12/contrib/llvm-project/clang/include/clang/Sema/ObjCMethodList.h stable/12/contrib/llvm-project/clang/include/clang/Sema/Overload.h stable/12/contrib/llvm-project/clang/include/clang/Sema/ParsedAttr.h stable/12/contrib/llvm-project/clang/include/clang/Sema/ParsedTemplate.h stable/12/contrib/llvm-project/clang/include/clang/Sema/Scope.h stable/12/contrib/llvm-project/clang/include/clang/Sema/ScopeInfo.h stable/12/contrib/llvm-project/clang/include/clang/Sema/Sema.h stable/12/contrib/llvm-project/clang/include/clang/Sema/SemaInternal.h stable/12/contrib/llvm-project/clang/include/clang/Sema/Template.h stable/12/contrib/llvm-project/clang/include/clang/Sema/TemplateDeduction.h stable/12/contrib/llvm-project/clang/include/clang/Sema/TypoCorrection.h stable/12/contrib/llvm-project/clang/include/clang/Serialization/ASTBitCodes.h stable/12/contrib/llvm-project/clang/include/clang/Serialization/ASTReader.h stable/12/contrib/llvm-project/clang/include/clang/Serialization/ASTWriter.h stable/12/contrib/llvm-project/clang/include/clang/Serialization/ContinuousRangeMap.h stable/12/contrib/llvm-project/clang/include/clang/Serialization/ModuleManager.h stable/12/contrib/llvm-project/clang/include/clang/StaticAnalyzer/Checkers/Checkers.td stable/12/contrib/llvm-project/clang/include/clang/StaticAnalyzer/Checkers/SValExplainer.h stable/12/contrib/llvm-project/clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def stable/12/contrib/llvm-project/clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h stable/12/contrib/llvm-project/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h stable/12/contrib/llvm-project/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h stable/12/contrib/llvm-project/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugType.h stable/12/contrib/llvm-project/clang/include/clang/StaticAnalyzer/Core/BugReporter/CommonBugCategories.h stable/12/contrib/llvm-project/clang/include/clang/StaticAnalyzer/Core/Checker.h stable/12/contrib/llvm-project/clang/include/clang/StaticAnalyzer/Core/CheckerManager.h stable/12/contrib/llvm-project/clang/include/clang/StaticAnalyzer/Core/PathDiagnosticConsumers.h stable/12/contrib/llvm-project/clang/include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h stable/12/contrib/llvm-project/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h stable/12/contrib/llvm-project/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h stable/12/contrib/llvm-project/clang/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeInfo.h stable/12/contrib/llvm-project/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h stable/12/contrib/llvm-project/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h stable/12/contrib/llvm-project/clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h stable/12/contrib/llvm-project/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h stable/12/contrib/llvm-project/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h stable/12/contrib/llvm-project/clang/include/clang/Tooling/ASTDiff/ASTDiff.h stable/12/contrib/llvm-project/clang/include/clang/Tooling/AllTUsExecution.h stable/12/contrib/llvm-project/clang/include/clang/Tooling/ArgumentsAdjusters.h stable/12/contrib/llvm-project/clang/include/clang/Tooling/CompilationDatabase.h stable/12/contrib/llvm-project/clang/include/clang/Tooling/DependencyScanning/DependencyScanningWorker.h stable/12/contrib/llvm-project/clang/include/clang/Tooling/Execution.h stable/12/contrib/llvm-project/clang/include/clang/Tooling/Inclusions/HeaderIncludes.h stable/12/contrib/llvm-project/clang/include/clang/Tooling/Inclusions/IncludeStyle.h stable/12/contrib/llvm-project/clang/include/clang/Tooling/Refactoring/ASTSelection.h stable/12/contrib/llvm-project/clang/include/clang/Tooling/Refactoring/RecursiveSymbolVisitor.h stable/12/contrib/llvm-project/clang/include/clang/Tooling/Refactoring/RefactoringActionRulesInternal.h stable/12/contrib/llvm-project/clang/include/clang/Tooling/StandaloneExecution.h stable/12/contrib/llvm-project/clang/include/clang/Tooling/Syntax/BuildTree.h stable/12/contrib/llvm-project/clang/include/clang/Tooling/Syntax/Nodes.h stable/12/contrib/llvm-project/clang/include/clang/Tooling/Syntax/Tokens.h stable/12/contrib/llvm-project/clang/include/clang/Tooling/Syntax/Tree.h stable/12/contrib/llvm-project/clang/include/clang/Tooling/Tooling.h stable/12/contrib/llvm-project/clang/include/clang/module.modulemap stable/12/contrib/llvm-project/clang/lib/ARCMigrate/ARCMT.cpp stable/12/contrib/llvm-project/clang/lib/ARCMigrate/FileRemapper.cpp stable/12/contrib/llvm-project/clang/lib/ARCMigrate/ObjCMT.cpp stable/12/contrib/llvm-project/clang/lib/ARCMigrate/PlistReporter.cpp stable/12/contrib/llvm-project/clang/lib/AST/APValue.cpp stable/12/contrib/llvm-project/clang/lib/AST/ASTContext.cpp stable/12/contrib/llvm-project/clang/lib/AST/ASTDiagnostic.cpp stable/12/contrib/llvm-project/clang/lib/AST/ASTImporter.cpp stable/12/contrib/llvm-project/clang/lib/AST/ASTStructuralEquivalence.cpp stable/12/contrib/llvm-project/clang/lib/AST/ASTTypeTraits.cpp stable/12/contrib/llvm-project/clang/lib/AST/CXXInheritance.cpp stable/12/contrib/llvm-project/clang/lib/AST/Comment.cpp stable/12/contrib/llvm-project/clang/lib/AST/CommentLexer.cpp stable/12/contrib/llvm-project/clang/lib/AST/CommentParser.cpp stable/12/contrib/llvm-project/clang/lib/AST/CommentSema.cpp stable/12/contrib/llvm-project/clang/lib/AST/ComparisonCategories.cpp stable/12/contrib/llvm-project/clang/lib/AST/Decl.cpp stable/12/contrib/llvm-project/clang/lib/AST/DeclBase.cpp stable/12/contrib/llvm-project/clang/lib/AST/DeclCXX.cpp stable/12/contrib/llvm-project/clang/lib/AST/DeclObjC.cpp stable/12/contrib/llvm-project/clang/lib/AST/DeclPrinter.cpp stable/12/contrib/llvm-project/clang/lib/AST/DeclTemplate.cpp stable/12/contrib/llvm-project/clang/lib/AST/DeclarationName.cpp stable/12/contrib/llvm-project/clang/lib/AST/Expr.cpp stable/12/contrib/llvm-project/clang/lib/AST/ExprCXX.cpp stable/12/contrib/llvm-project/clang/lib/AST/ExprClassification.cpp stable/12/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp stable/12/contrib/llvm-project/clang/lib/AST/ExternalASTMerger.cpp stable/12/contrib/llvm-project/clang/lib/AST/ExternalASTSource.cpp stable/12/contrib/llvm-project/clang/lib/AST/FormatString.cpp stable/12/contrib/llvm-project/clang/lib/AST/FormatStringParsing.h stable/12/contrib/llvm-project/clang/lib/AST/InheritViz.cpp stable/12/contrib/llvm-project/clang/lib/AST/ItaniumCXXABI.cpp stable/12/contrib/llvm-project/clang/lib/AST/ItaniumMangle.cpp stable/12/contrib/llvm-project/clang/lib/AST/JSONNodeDumper.cpp stable/12/contrib/llvm-project/clang/lib/AST/Mangle.cpp stable/12/contrib/llvm-project/clang/lib/AST/MicrosoftCXXABI.cpp stable/12/contrib/llvm-project/clang/lib/AST/MicrosoftMangle.cpp stable/12/contrib/llvm-project/clang/lib/AST/NSAPI.cpp stable/12/contrib/llvm-project/clang/lib/AST/NestedNameSpecifier.cpp stable/12/contrib/llvm-project/clang/lib/AST/ODRHash.cpp stable/12/contrib/llvm-project/clang/lib/AST/OpenMPClause.cpp stable/12/contrib/llvm-project/clang/lib/AST/PrintfFormatString.cpp stable/12/contrib/llvm-project/clang/lib/AST/QualTypeNames.cpp stable/12/contrib/llvm-project/clang/lib/AST/RawCommentList.cpp stable/12/contrib/llvm-project/clang/lib/AST/RecordLayoutBuilder.cpp stable/12/contrib/llvm-project/clang/lib/AST/Stmt.cpp stable/12/contrib/llvm-project/clang/lib/AST/StmtOpenMP.cpp stable/12/contrib/llvm-project/clang/lib/AST/StmtPrinter.cpp stable/12/contrib/llvm-project/clang/lib/AST/StmtProfile.cpp stable/12/contrib/llvm-project/clang/lib/AST/TemplateBase.cpp stable/12/contrib/llvm-project/clang/lib/AST/TextNodeDumper.cpp stable/12/contrib/llvm-project/clang/lib/AST/Type.cpp stable/12/contrib/llvm-project/clang/lib/AST/TypeLoc.cpp stable/12/contrib/llvm-project/clang/lib/AST/TypePrinter.cpp stable/12/contrib/llvm-project/clang/lib/AST/VTTBuilder.cpp stable/12/contrib/llvm-project/clang/lib/AST/VTableBuilder.cpp stable/12/contrib/llvm-project/clang/lib/ASTMatchers/ASTMatchFinder.cpp stable/12/contrib/llvm-project/clang/lib/ASTMatchers/ASTMatchersInternal.cpp stable/12/contrib/llvm-project/clang/lib/ASTMatchers/Dynamic/Marshallers.h stable/12/contrib/llvm-project/clang/lib/ASTMatchers/Dynamic/Parser.cpp stable/12/contrib/llvm-project/clang/lib/ASTMatchers/Dynamic/Registry.cpp stable/12/contrib/llvm-project/clang/lib/Analysis/AnalysisDeclContext.cpp stable/12/contrib/llvm-project/clang/lib/Analysis/BodyFarm.cpp stable/12/contrib/llvm-project/clang/lib/Analysis/CFG.cpp stable/12/contrib/llvm-project/clang/lib/Analysis/CallGraph.cpp stable/12/contrib/llvm-project/clang/lib/Analysis/CloneDetection.cpp stable/12/contrib/llvm-project/clang/lib/Analysis/CocoaConventions.cpp stable/12/contrib/llvm-project/clang/lib/Analysis/Consumed.cpp stable/12/contrib/llvm-project/clang/lib/Analysis/ProgramPoint.cpp stable/12/contrib/llvm-project/clang/lib/Analysis/ReachableCode.cpp stable/12/contrib/llvm-project/clang/lib/Analysis/RetainSummaryManager.cpp stable/12/contrib/llvm-project/clang/lib/Analysis/ThreadSafety.cpp stable/12/contrib/llvm-project/clang/lib/Analysis/ThreadSafetyCommon.cpp stable/12/contrib/llvm-project/clang/lib/Analysis/plugins/SampleAnalyzer/MainCallChecker.cpp stable/12/contrib/llvm-project/clang/lib/Basic/Attributes.cpp stable/12/contrib/llvm-project/clang/lib/Basic/Builtins.cpp stable/12/contrib/llvm-project/clang/lib/Basic/Cuda.cpp stable/12/contrib/llvm-project/clang/lib/Basic/Diagnostic.cpp stable/12/contrib/llvm-project/clang/lib/Basic/FileManager.cpp stable/12/contrib/llvm-project/clang/lib/Basic/IdentifierTable.cpp stable/12/contrib/llvm-project/clang/lib/Basic/Module.cpp stable/12/contrib/llvm-project/clang/lib/Basic/OpenMPKinds.cpp stable/12/contrib/llvm-project/clang/lib/Basic/SanitizerBlacklist.cpp stable/12/contrib/llvm-project/clang/lib/Basic/SanitizerSpecialCaseList.cpp stable/12/contrib/llvm-project/clang/lib/Basic/SourceManager.cpp stable/12/contrib/llvm-project/clang/lib/Basic/TargetInfo.cpp stable/12/contrib/llvm-project/clang/lib/Basic/Targets.cpp stable/12/contrib/llvm-project/clang/lib/Basic/Targets/AArch64.cpp stable/12/contrib/llvm-project/clang/lib/Basic/Targets/AArch64.h stable/12/contrib/llvm-project/clang/lib/Basic/Targets/AMDGPU.cpp stable/12/contrib/llvm-project/clang/lib/Basic/Targets/ARM.cpp stable/12/contrib/llvm-project/clang/lib/Basic/Targets/ARM.h stable/12/contrib/llvm-project/clang/lib/Basic/Targets/BPF.cpp stable/12/contrib/llvm-project/clang/lib/Basic/Targets/BPF.h stable/12/contrib/llvm-project/clang/lib/Basic/Targets/Hexagon.cpp stable/12/contrib/llvm-project/clang/lib/Basic/Targets/Mips.cpp stable/12/contrib/llvm-project/clang/lib/Basic/Targets/NVPTX.h stable/12/contrib/llvm-project/clang/lib/Basic/Targets/OSTargets.cpp stable/12/contrib/llvm-project/clang/lib/Basic/Targets/OSTargets.h stable/12/contrib/llvm-project/clang/lib/Basic/Targets/PPC.cpp stable/12/contrib/llvm-project/clang/lib/Basic/Targets/PPC.h stable/12/contrib/llvm-project/clang/lib/Basic/Targets/RISCV.cpp stable/12/contrib/llvm-project/clang/lib/Basic/Targets/SPIR.h stable/12/contrib/llvm-project/clang/lib/Basic/Targets/Sparc.h stable/12/contrib/llvm-project/clang/lib/Basic/Targets/SystemZ.cpp stable/12/contrib/llvm-project/clang/lib/Basic/Targets/TCE.h stable/12/contrib/llvm-project/clang/lib/Basic/Targets/X86.cpp stable/12/contrib/llvm-project/clang/lib/Basic/Targets/X86.h stable/12/contrib/llvm-project/clang/lib/Basic/TokenKinds.cpp stable/12/contrib/llvm-project/clang/lib/Basic/Version.cpp stable/12/contrib/llvm-project/clang/lib/Basic/XRayLists.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/BackendUtil.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CGAtomic.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CGBlocks.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CGBuilder.h stable/12/contrib/llvm-project/clang/lib/CodeGen/CGBuiltin.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CGCUDANV.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CGCXX.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CGCXXABI.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CGCXXABI.h stable/12/contrib/llvm-project/clang/lib/CodeGen/CGCall.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CGCall.h stable/12/contrib/llvm-project/clang/lib/CodeGen/CGClass.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CGCleanup.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CGDebugInfo.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CGDebugInfo.h stable/12/contrib/llvm-project/clang/lib/CodeGen/CGDecl.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CGDeclCXX.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CGException.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CGExpr.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CGExprAgg.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CGExprCXX.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CGExprComplex.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CGExprConstant.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CGExprScalar.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CGLoopInfo.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CGLoopInfo.h stable/12/contrib/llvm-project/clang/lib/CodeGen/CGNonTrivialStruct.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CGObjC.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CGObjCGNU.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CGObjCMac.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CGObjCRuntime.h stable/12/contrib/llvm-project/clang/lib/CodeGen/CGOpenCLRuntime.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CGOpenMPRuntime.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CGOpenMPRuntime.h stable/12/contrib/llvm-project/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.h stable/12/contrib/llvm-project/clang/lib/CodeGen/CGStmt.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CGStmtOpenMP.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CGVTables.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CGValue.h stable/12/contrib/llvm-project/clang/lib/CodeGen/CodeGenAction.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CodeGenFunction.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CodeGenFunction.h stable/12/contrib/llvm-project/clang/lib/CodeGen/CodeGenModule.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CodeGenModule.h stable/12/contrib/llvm-project/clang/lib/CodeGen/CodeGenPGO.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CodeGenPGO.h stable/12/contrib/llvm-project/clang/lib/CodeGen/CodeGenTBAA.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CodeGenTypes.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/ConstantEmitter.h stable/12/contrib/llvm-project/clang/lib/CodeGen/ConstantInitBuilder.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CoverageMappingGen.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/EHScopeStack.h stable/12/contrib/llvm-project/clang/lib/CodeGen/ItaniumCXXABI.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/MicrosoftCXXABI.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/ModuleBuilder.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/SanitizerMetadata.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/TargetInfo.cpp stable/12/contrib/llvm-project/clang/lib/CrossTU/CrossTranslationUnit.cpp stable/12/contrib/llvm-project/clang/lib/DirectoryWatcher/default/DirectoryWatcher-not-implemented.cpp stable/12/contrib/llvm-project/clang/lib/DirectoryWatcher/linux/DirectoryWatcher-linux.cpp stable/12/contrib/llvm-project/clang/lib/DirectoryWatcher/mac/DirectoryWatcher-mac.cpp stable/12/contrib/llvm-project/clang/lib/Driver/Action.cpp stable/12/contrib/llvm-project/clang/lib/Driver/Compilation.cpp stable/12/contrib/llvm-project/clang/lib/Driver/Distro.cpp stable/12/contrib/llvm-project/clang/lib/Driver/Driver.cpp stable/12/contrib/llvm-project/clang/lib/Driver/DriverOptions.cpp stable/12/contrib/llvm-project/clang/lib/Driver/Job.cpp stable/12/contrib/llvm-project/clang/lib/Driver/Phases.cpp stable/12/contrib/llvm-project/clang/lib/Driver/SanitizerArgs.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChain.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/AMDGPU.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/AMDGPU.h stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/AVR.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Ananas.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/AArch64.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/ARM.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/Mips.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/PPC.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/RISCV.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/RISCV.h stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/SystemZ.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/SystemZ.h stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/X86.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/BareMetal.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Clang.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Clang.h stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/CloudABI.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/CommonArgs.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/CommonArgs.h stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/CrossWindows.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Cuda.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Cuda.h stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Darwin.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Darwin.h stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/DragonFly.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/FreeBSD.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/FreeBSD.h stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Fuchsia.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Fuchsia.h stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Gnu.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Gnu.h stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/HIP.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/HIP.h stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Hexagon.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Hurd.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Hurd.h stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Linux.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Linux.h stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/MSP430.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/MSVC.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/MSVC.h stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/MinGW.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/MinGW.h stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Minix.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Myriad.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/NaCl.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/NetBSD.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/OpenBSD.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/OpenBSD.h stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/PPCLinux.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/PS4CPU.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/PS4CPU.h stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/RISCVToolchain.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/RISCVToolchain.h stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Solaris.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/WebAssembly.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/XCore.cpp stable/12/contrib/llvm-project/clang/lib/Driver/Types.cpp stable/12/contrib/llvm-project/clang/lib/Driver/XRayArgs.cpp stable/12/contrib/llvm-project/clang/lib/Format/BreakableToken.cpp stable/12/contrib/llvm-project/clang/lib/Format/BreakableToken.h stable/12/contrib/llvm-project/clang/lib/Format/ContinuationIndenter.cpp stable/12/contrib/llvm-project/clang/lib/Format/Encoding.h stable/12/contrib/llvm-project/clang/lib/Format/Format.cpp stable/12/contrib/llvm-project/clang/lib/Format/FormatToken.h stable/12/contrib/llvm-project/clang/lib/Format/FormatTokenLexer.cpp stable/12/contrib/llvm-project/clang/lib/Format/FormatTokenLexer.h stable/12/contrib/llvm-project/clang/lib/Format/NamespaceEndCommentsFixer.cpp stable/12/contrib/llvm-project/clang/lib/Format/TokenAnnotator.cpp stable/12/contrib/llvm-project/clang/lib/Format/TokenAnnotator.h stable/12/contrib/llvm-project/clang/lib/Format/UnwrappedLineFormatter.cpp stable/12/contrib/llvm-project/clang/lib/Format/UnwrappedLineParser.cpp stable/12/contrib/llvm-project/clang/lib/Format/UnwrappedLineParser.h stable/12/contrib/llvm-project/clang/lib/Format/WhitespaceManager.cpp stable/12/contrib/llvm-project/clang/lib/Frontend/ASTConsumers.cpp stable/12/contrib/llvm-project/clang/lib/Frontend/ASTUnit.cpp stable/12/contrib/llvm-project/clang/lib/Frontend/ChainedIncludesSource.cpp stable/12/contrib/llvm-project/clang/lib/Frontend/CompilerInstance.cpp stable/12/contrib/llvm-project/clang/lib/Frontend/CompilerInvocation.cpp stable/12/contrib/llvm-project/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp stable/12/contrib/llvm-project/clang/lib/Frontend/DependencyFile.cpp stable/12/contrib/llvm-project/clang/lib/Frontend/DependencyGraph.cpp stable/12/contrib/llvm-project/clang/lib/Frontend/FrontendAction.cpp stable/12/contrib/llvm-project/clang/lib/Frontend/FrontendActions.cpp stable/12/contrib/llvm-project/clang/lib/Frontend/FrontendOptions.cpp stable/12/contrib/llvm-project/clang/lib/Frontend/HeaderIncludeGen.cpp stable/12/contrib/llvm-project/clang/lib/Frontend/InitHeaderSearch.cpp stable/12/contrib/llvm-project/clang/lib/Frontend/InitPreprocessor.cpp stable/12/contrib/llvm-project/clang/lib/Frontend/InterfaceStubFunctionsConsumer.cpp stable/12/contrib/llvm-project/clang/lib/Frontend/ModuleDependencyCollector.cpp stable/12/contrib/llvm-project/clang/lib/Frontend/MultiplexConsumer.cpp stable/12/contrib/llvm-project/clang/lib/Frontend/PrecompiledPreamble.cpp stable/12/contrib/llvm-project/clang/lib/Frontend/PrintPreprocessedOutput.cpp stable/12/contrib/llvm-project/clang/lib/Frontend/Rewrite/FixItRewriter.cpp stable/12/contrib/llvm-project/clang/lib/Frontend/Rewrite/FrontendActions.cpp stable/12/contrib/llvm-project/clang/lib/Frontend/Rewrite/HTMLPrint.cpp stable/12/contrib/llvm-project/clang/lib/Frontend/Rewrite/InclusionRewriter.cpp stable/12/contrib/llvm-project/clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp stable/12/contrib/llvm-project/clang/lib/Frontend/Rewrite/RewriteObjC.cpp stable/12/contrib/llvm-project/clang/lib/Frontend/SerializedDiagnosticPrinter.cpp stable/12/contrib/llvm-project/clang/lib/Frontend/TextDiagnostic.cpp stable/12/contrib/llvm-project/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp stable/12/contrib/llvm-project/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp stable/12/contrib/llvm-project/clang/lib/Headers/__clang_cuda_intrinsics.h stable/12/contrib/llvm-project/clang/lib/Headers/__clang_cuda_runtime_wrapper.h stable/12/contrib/llvm-project/clang/lib/Headers/altivec.h stable/12/contrib/llvm-project/clang/lib/Headers/arm_acle.h stable/12/contrib/llvm-project/clang/lib/Headers/avx512bwintrin.h stable/12/contrib/llvm-project/clang/lib/Headers/avx512fintrin.h stable/12/contrib/llvm-project/clang/lib/Headers/avx512vlbwintrin.h stable/12/contrib/llvm-project/clang/lib/Headers/avx512vlintrin.h stable/12/contrib/llvm-project/clang/lib/Headers/avxintrin.h stable/12/contrib/llvm-project/clang/lib/Headers/bmiintrin.h stable/12/contrib/llvm-project/clang/lib/Headers/cpuid.h stable/12/contrib/llvm-project/clang/lib/Headers/emmintrin.h stable/12/contrib/llvm-project/clang/lib/Headers/ia32intrin.h stable/12/contrib/llvm-project/clang/lib/Headers/immintrin.h stable/12/contrib/llvm-project/clang/lib/Headers/intrin.h stable/12/contrib/llvm-project/clang/lib/Headers/mwaitxintrin.h stable/12/contrib/llvm-project/clang/lib/Headers/opencl-c-base.h stable/12/contrib/llvm-project/clang/lib/Headers/pmmintrin.h stable/12/contrib/llvm-project/clang/lib/Headers/ppc_wrappers/emmintrin.h stable/12/contrib/llvm-project/clang/lib/Headers/ppc_wrappers/mm_malloc.h stable/12/contrib/llvm-project/clang/lib/Headers/ppc_wrappers/mmintrin.h stable/12/contrib/llvm-project/clang/lib/Headers/ppc_wrappers/xmmintrin.h stable/12/contrib/llvm-project/clang/lib/Headers/xmmintrin.h stable/12/contrib/llvm-project/clang/lib/Index/CommentToXML.cpp stable/12/contrib/llvm-project/clang/lib/Index/IndexDecl.cpp stable/12/contrib/llvm-project/clang/lib/Index/IndexSymbol.cpp stable/12/contrib/llvm-project/clang/lib/Index/IndexingAction.cpp stable/12/contrib/llvm-project/clang/lib/Index/IndexingContext.cpp stable/12/contrib/llvm-project/clang/lib/Index/USRGeneration.cpp stable/12/contrib/llvm-project/clang/lib/Lex/DependencyDirectivesSourceMinimizer.cpp stable/12/contrib/llvm-project/clang/lib/Lex/HeaderMap.cpp stable/12/contrib/llvm-project/clang/lib/Lex/HeaderSearch.cpp stable/12/contrib/llvm-project/clang/lib/Lex/Lexer.cpp stable/12/contrib/llvm-project/clang/lib/Lex/LiteralSupport.cpp stable/12/contrib/llvm-project/clang/lib/Lex/MacroArgs.cpp stable/12/contrib/llvm-project/clang/lib/Lex/ModuleMap.cpp stable/12/contrib/llvm-project/clang/lib/Lex/PPDirectives.cpp stable/12/contrib/llvm-project/clang/lib/Lex/PPLexerChange.cpp stable/12/contrib/llvm-project/clang/lib/Lex/PPMacroExpansion.cpp stable/12/contrib/llvm-project/clang/lib/Lex/Pragma.cpp stable/12/contrib/llvm-project/clang/lib/Lex/Preprocessor.cpp stable/12/contrib/llvm-project/clang/lib/Lex/TokenLexer.cpp stable/12/contrib/llvm-project/clang/lib/Lex/UnicodeCharSets.h stable/12/contrib/llvm-project/clang/lib/Parse/ParseAST.cpp stable/12/contrib/llvm-project/clang/lib/Parse/ParseCXXInlineMethods.cpp stable/12/contrib/llvm-project/clang/lib/Parse/ParseDecl.cpp stable/12/contrib/llvm-project/clang/lib/Parse/ParseDeclCXX.cpp stable/12/contrib/llvm-project/clang/lib/Parse/ParseExpr.cpp stable/12/contrib/llvm-project/clang/lib/Parse/ParseExprCXX.cpp stable/12/contrib/llvm-project/clang/lib/Parse/ParseInit.cpp stable/12/contrib/llvm-project/clang/lib/Parse/ParseObjc.cpp stable/12/contrib/llvm-project/clang/lib/Parse/ParseOpenMP.cpp stable/12/contrib/llvm-project/clang/lib/Parse/ParsePragma.cpp stable/12/contrib/llvm-project/clang/lib/Parse/ParseStmt.cpp stable/12/contrib/llvm-project/clang/lib/Parse/ParseStmtAsm.cpp stable/12/contrib/llvm-project/clang/lib/Parse/ParseTemplate.cpp stable/12/contrib/llvm-project/clang/lib/Parse/ParseTentative.cpp stable/12/contrib/llvm-project/clang/lib/Parse/Parser.cpp stable/12/contrib/llvm-project/clang/lib/Rewrite/Rewriter.cpp stable/12/contrib/llvm-project/clang/lib/Sema/AnalysisBasedWarnings.cpp stable/12/contrib/llvm-project/clang/lib/Sema/DeclSpec.cpp stable/12/contrib/llvm-project/clang/lib/Sema/JumpDiagnostics.cpp stable/12/contrib/llvm-project/clang/lib/Sema/MultiplexExternalSemaSource.cpp stable/12/contrib/llvm-project/clang/lib/Sema/OpenCLBuiltins.td stable/12/contrib/llvm-project/clang/lib/Sema/ParsedAttr.cpp stable/12/contrib/llvm-project/clang/lib/Sema/Sema.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaAccess.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaAttr.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaCUDA.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaCXXScopeSpec.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaCast.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaChecking.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaCodeComplete.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaCoroutine.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaDecl.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaDeclAttr.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaDeclCXX.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaDeclObjC.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaExceptionSpec.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaExpr.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaExprCXX.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaExprMember.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaExprObjC.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaInit.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaLambda.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaLookup.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaObjCProperty.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaOpenMP.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaOverload.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaPseudoObject.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaStmt.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaStmtAsm.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaStmtAttr.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaTemplate.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaTemplateDeduction.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiate.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaTemplateVariadic.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaType.cpp stable/12/contrib/llvm-project/clang/lib/Sema/TreeTransform.h stable/12/contrib/llvm-project/clang/lib/Sema/TypeLocBuilder.cpp stable/12/contrib/llvm-project/clang/lib/Sema/TypeLocBuilder.h stable/12/contrib/llvm-project/clang/lib/Serialization/ASTCommon.cpp stable/12/contrib/llvm-project/clang/lib/Serialization/ASTReader.cpp stable/12/contrib/llvm-project/clang/lib/Serialization/ASTReaderDecl.cpp stable/12/contrib/llvm-project/clang/lib/Serialization/ASTReaderStmt.cpp stable/12/contrib/llvm-project/clang/lib/Serialization/ASTWriter.cpp stable/12/contrib/llvm-project/clang/lib/Serialization/ASTWriterDecl.cpp stable/12/contrib/llvm-project/clang/lib/Serialization/ASTWriterStmt.cpp stable/12/contrib/llvm-project/clang/lib/Serialization/GlobalModuleIndex.cpp stable/12/contrib/llvm-project/clang/lib/Serialization/ModuleManager.cpp stable/12/contrib/llvm-project/clang/lib/Serialization/PCHContainerOperations.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/AnalysisOrderChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/ArrayBoundChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/BlockInCriticalSectionChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/BoolAssignmentChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/CStringSyntaxChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/CastSizeChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/CastValueChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/CheckObjCInstMethSignature.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/ChrootChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/CloneChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/ConversionChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/DebugCheckers.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/DeleteWithNonVirtualDtorChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/DereferenceChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/DirectIvarAssignment.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/DivZeroChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/DynamicTypeChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/EnumCastOutOfRangeChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/FixedAddressChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/MIGChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIBugReporter.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIBugReporter.h stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/MacOSXAPIChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/MallocSizeofChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/MmapWriteExecChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/MoveChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/NSAutoreleasePoolChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/NonNullParamChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/NonnullGlobalConstantsChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/ObjCAtSyncChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/ObjCContainersChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/ObjCMissingSuperCallChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/ObjCSuperDeallocChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/ObjCUnusedIVarsChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/PaddingChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/PointerArithChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/PointerSubChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.h stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.h stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/ReturnPointerRangeChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/ReturnUndefChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/SimpleStreamChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/Taint.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/Taint.h stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/TaintTesterChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/TestAfterDivZeroChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/UndefBranchChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/UndefCapturedBlockVarChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/UndefResultChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/UndefinedArraySubscriptChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/UndefinedAssignmentChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObjectChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedPointee.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/UnixAPIChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/UnreachableCodeChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/ValistChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/VforkChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/VirtualCallChecker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/AnalysisManager.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/BugReporter.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/CallEvent.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/Checker.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/CheckerHelpers.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/CheckerManager.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/CommonBugCategories.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/Environment.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/ExplodedGraph.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/LoopUnrolling.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/MemRegion.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/ProgramState.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/RegionStore.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/SMTConstraintManager.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/Store.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/WorkList.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Frontend/CheckerRegistration.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Frontend/CheckerRegistry.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Frontend/FrontendActions.cpp stable/12/contrib/llvm-project/clang/lib/StaticAnalyzer/Frontend/ModelInjector.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/ASTDiff/ASTDiff.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/AllTUsExecution.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/ArgumentsAdjusters.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/CommonOptionsParser.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/CompilationDatabase.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/Core/Replacement.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/GuessTargetAndModeCompilationDatabase.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/Inclusions/HeaderIncludes.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/Inclusions/IncludeStyle.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/InterpolatingCompilationDatabase.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/JSONCompilationDatabase.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/Refactoring.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/Refactoring/ASTSelectionRequirements.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/Refactoring/Extract/Extract.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/Refactoring/Extract/SourceExtraction.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/Refactoring/RefactoringActions.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/Refactoring/Rename/RenamingAction.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/Refactoring/Rename/SymbolOccurrences.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/Refactoring/Rename/USRFindingAction.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/RefactoringCallbacks.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/StandaloneExecution.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/Syntax/BuildTree.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/Syntax/Nodes.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/Syntax/Tokens.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/Syntax/Tree.cpp stable/12/contrib/llvm-project/clang/lib/Tooling/Tooling.cpp stable/12/contrib/llvm-project/clang/tools/clang-format/ClangFormat.cpp stable/12/contrib/llvm-project/clang/tools/driver/cc1_main.cpp stable/12/contrib/llvm-project/clang/tools/driver/cc1as_main.cpp stable/12/contrib/llvm-project/clang/tools/driver/driver.cpp stable/12/contrib/llvm-project/clang/utils/TableGen/ClangASTNodesEmitter.cpp stable/12/contrib/llvm-project/clang/utils/TableGen/ClangAttrEmitter.cpp stable/12/contrib/llvm-project/clang/utils/TableGen/ClangCommentCommandInfoEmitter.cpp stable/12/contrib/llvm-project/clang/utils/TableGen/ClangCommentHTMLNamedCharacterReferenceEmitter.cpp stable/12/contrib/llvm-project/clang/utils/TableGen/ClangDataCollectorsEmitter.cpp stable/12/contrib/llvm-project/clang/utils/TableGen/ClangDiagnosticsEmitter.cpp stable/12/contrib/llvm-project/clang/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp stable/12/contrib/llvm-project/clang/utils/TableGen/ClangOptionDocEmitter.cpp stable/12/contrib/llvm-project/clang/utils/TableGen/ClangSACheckersEmitter.cpp stable/12/contrib/llvm-project/clang/utils/TableGen/NeonEmitter.cpp stable/12/contrib/llvm-project/clang/utils/TableGen/TableGen.cpp stable/12/contrib/llvm-project/clang/utils/TableGen/TableGenBackends.h stable/12/contrib/llvm-project/compiler-rt/include/sanitizer/asan_interface.h stable/12/contrib/llvm-project/compiler-rt/include/sanitizer/dfsan_interface.h stable/12/contrib/llvm-project/compiler-rt/include/sanitizer/netbsd_syscall_hooks.h stable/12/contrib/llvm-project/compiler-rt/include/sanitizer/tsan_interface_atomic.h stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_allocator.h stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_descriptions.h stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_errors.h stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_fake_stack.h stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_flags.inc stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_interceptors.h stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_interceptors_memintrinsics.h stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_interface.inc stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_interface_internal.h stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_internal.h stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_scariness_score.h stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_stack.h stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_suppressions.h stable/12/contrib/llvm-project/compiler-rt/lib/asan/asan_thread.h stable/12/contrib/llvm-project/compiler-rt/lib/builtins/adddf3.c stable/12/contrib/llvm-project/compiler-rt/lib/builtins/addsf3.c stable/12/contrib/llvm-project/compiler-rt/lib/builtins/addtf3.c stable/12/contrib/llvm-project/compiler-rt/lib/builtins/atomic.c stable/12/contrib/llvm-project/compiler-rt/lib/builtins/clear_cache.c stable/12/contrib/llvm-project/compiler-rt/lib/builtins/cpu_model.c stable/12/contrib/llvm-project/compiler-rt/lib/builtins/divtf3.c stable/12/contrib/llvm-project/compiler-rt/lib/builtins/emutls.c stable/12/contrib/llvm-project/compiler-rt/lib/builtins/extenddftf2.c stable/12/contrib/llvm-project/compiler-rt/lib/builtins/extendsftf2.c stable/12/contrib/llvm-project/compiler-rt/lib/builtins/fixunsxfdi.c stable/12/contrib/llvm-project/compiler-rt/lib/builtins/fixunsxfsi.c stable/12/contrib/llvm-project/compiler-rt/lib/builtins/fixxfdi.c stable/12/contrib/llvm-project/compiler-rt/lib/builtins/fp_add_impl.inc stable/12/contrib/llvm-project/compiler-rt/lib/builtins/fp_lib.h stable/12/contrib/llvm-project/compiler-rt/lib/builtins/fp_trunc_impl.inc stable/12/contrib/llvm-project/compiler-rt/lib/builtins/ppc/fixunstfti.c stable/12/contrib/llvm-project/compiler-rt/lib/builtins/subdf3.c stable/12/contrib/llvm-project/compiler-rt/lib/builtins/subsf3.c stable/12/contrib/llvm-project/compiler-rt/lib/builtins/subtf3.c stable/12/contrib/llvm-project/compiler-rt/lib/builtins/udivmoddi4.c stable/12/contrib/llvm-project/compiler-rt/lib/crt/crtbegin.c stable/12/contrib/llvm-project/compiler-rt/lib/fuzzer/FuzzerBuiltinsMsvc.h stable/12/contrib/llvm-project/compiler-rt/lib/fuzzer/FuzzerDefs.h stable/12/contrib/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp stable/12/contrib/llvm-project/compiler-rt/lib/fuzzer/FuzzerExtFunctions.def stable/12/contrib/llvm-project/compiler-rt/lib/fuzzer/FuzzerExtFunctionsWeak.cpp stable/12/contrib/llvm-project/compiler-rt/lib/fuzzer/FuzzerExtraCounters.cpp stable/12/contrib/llvm-project/compiler-rt/lib/fuzzer/FuzzerFlags.def stable/12/contrib/llvm-project/compiler-rt/lib/fuzzer/FuzzerIO.cpp stable/12/contrib/llvm-project/compiler-rt/lib/fuzzer/FuzzerIO.h stable/12/contrib/llvm-project/compiler-rt/lib/fuzzer/FuzzerIOPosix.cpp stable/12/contrib/llvm-project/compiler-rt/lib/fuzzer/FuzzerIOWindows.cpp stable/12/contrib/llvm-project/compiler-rt/lib/fuzzer/FuzzerInternal.h stable/12/contrib/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp stable/12/contrib/llvm-project/compiler-rt/lib/fuzzer/FuzzerMerge.cpp stable/12/contrib/llvm-project/compiler-rt/lib/fuzzer/FuzzerOptions.h stable/12/contrib/llvm-project/compiler-rt/lib/fuzzer/FuzzerTracePC.cpp stable/12/contrib/llvm-project/compiler-rt/lib/fuzzer/FuzzerTracePC.h stable/12/contrib/llvm-project/compiler-rt/lib/fuzzer/FuzzerUtil.h stable/12/contrib/llvm-project/compiler-rt/lib/fuzzer/FuzzerUtilDarwin.cpp stable/12/contrib/llvm-project/compiler-rt/lib/fuzzer/FuzzerUtilFuchsia.cpp stable/12/contrib/llvm-project/compiler-rt/lib/fuzzer/FuzzerUtilLinux.cpp stable/12/contrib/llvm-project/compiler-rt/lib/fuzzer/FuzzerUtilPosix.cpp stable/12/contrib/llvm-project/compiler-rt/lib/fuzzer/FuzzerUtilWindows.cpp stable/12/contrib/llvm-project/compiler-rt/lib/gwp_asan/definitions.h stable/12/contrib/llvm-project/compiler-rt/lib/gwp_asan/guarded_pool_allocator.cpp stable/12/contrib/llvm-project/compiler-rt/lib/gwp_asan/guarded_pool_allocator.h stable/12/contrib/llvm-project/compiler-rt/lib/gwp_asan/optional/backtrace.h stable/12/contrib/llvm-project/compiler-rt/lib/gwp_asan/optional/backtrace_linux_libc.cpp stable/12/contrib/llvm-project/compiler-rt/lib/gwp_asan/optional/backtrace_sanitizer_common.cpp stable/12/contrib/llvm-project/compiler-rt/lib/gwp_asan/options.h stable/12/contrib/llvm-project/compiler-rt/lib/gwp_asan/options.inc stable/12/contrib/llvm-project/compiler-rt/lib/hwasan/hwasan.cpp stable/12/contrib/llvm-project/compiler-rt/lib/hwasan/hwasan.h stable/12/contrib/llvm-project/compiler-rt/lib/hwasan/hwasan_allocator.cpp stable/12/contrib/llvm-project/compiler-rt/lib/hwasan/hwasan_allocator.h stable/12/contrib/llvm-project/compiler-rt/lib/hwasan/hwasan_flags.inc stable/12/contrib/llvm-project/compiler-rt/lib/hwasan/hwasan_interceptors.cpp stable/12/contrib/llvm-project/compiler-rt/lib/hwasan/hwasan_interface_internal.h stable/12/contrib/llvm-project/compiler-rt/lib/hwasan/hwasan_linux.cpp stable/12/contrib/llvm-project/compiler-rt/lib/hwasan/hwasan_new_delete.cpp stable/12/contrib/llvm-project/compiler-rt/lib/hwasan/hwasan_report.cpp stable/12/contrib/llvm-project/compiler-rt/lib/hwasan/hwasan_tag_mismatch_aarch64.S stable/12/contrib/llvm-project/compiler-rt/lib/interception/interception.h stable/12/contrib/llvm-project/compiler-rt/lib/lsan/lsan_common.h stable/12/contrib/llvm-project/compiler-rt/lib/msan/msan.h stable/12/contrib/llvm-project/compiler-rt/lib/msan/msan_blacklist.txt stable/12/contrib/llvm-project/compiler-rt/lib/profile/InstrProfiling.c stable/12/contrib/llvm-project/compiler-rt/lib/profile/InstrProfiling.h stable/12/contrib/llvm-project/compiler-rt/lib/profile/InstrProfilingBuffer.c stable/12/contrib/llvm-project/compiler-rt/lib/profile/InstrProfilingFile.c stable/12/contrib/llvm-project/compiler-rt/lib/profile/InstrProfilingInternal.h stable/12/contrib/llvm-project/compiler-rt/lib/profile/InstrProfilingMerge.c stable/12/contrib/llvm-project/compiler-rt/lib/profile/InstrProfilingMergeFile.c stable/12/contrib/llvm-project/compiler-rt/lib/profile/InstrProfilingPlatformFuchsia.c stable/12/contrib/llvm-project/compiler-rt/lib/profile/InstrProfilingPort.h stable/12/contrib/llvm-project/compiler-rt/lib/profile/InstrProfilingUtil.c stable/12/contrib/llvm-project/compiler-rt/lib/profile/InstrProfilingUtil.h stable/12/contrib/llvm-project/compiler-rt/lib/profile/InstrProfilingValue.c stable/12/contrib/llvm-project/compiler-rt/lib/profile/InstrProfilingWriter.c stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_allocator_checks.h stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_asm.h stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_atomic_msvc.h stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common.h stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interface.inc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_syscalls.inc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.h stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_getauxval.h stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_interceptors_ioctl_netbsd.inc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_internal_defs.h stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_malloc_mac.inc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_platform.h stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_freebsd.h stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.h stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_solaris.h stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_posix.h stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_procmaps.h stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_suppressions.h stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_internal.h stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_syscalls_netbsd.inc stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_tls_get_addr.h stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_vector.h stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_win_defs.h stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/symbolizer/scripts/build_symbolizer.sh stable/12/contrib/llvm-project/compiler-rt/lib/sanitizer_common/symbolizer/scripts/global_symbols.txt stable/12/contrib/llvm-project/compiler-rt/lib/scudo/scudo_allocator_secondary.h stable/12/contrib/llvm-project/compiler-rt/lib/scudo/scudo_errors.cpp stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/allocator_config.h stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/atomic_helpers.h stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/bytemap.h stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/checksum.h stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/chunk.h stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/combined.h stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/common.h stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/flags.h stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/flags_parser.h stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/internal_defs.h stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/linux.h stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/list.h stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/local_cache.h stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/mutex.h stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/platform.h stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/primary32.h stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/primary64.h stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/quarantine.h stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/release.h stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/secondary.h stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/size_class_map.h stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/stats.h stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/string_utils.h stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/tsd.h stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/tsd_exclusive.h stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/tsd_shared.h stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/vector.h stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/wrappers_c.inc stable/12/contrib/llvm-project/compiler-rt/lib/scudo/standalone/wrappers_c_checks.h stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_dispatch_defs.h stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interface.h stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interface_inl.h stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interface_java.h stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_mman.h stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_platform.h stable/12/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_rtl.h stable/12/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_checks.inc stable/12/contrib/llvm-project/libcxx/CREDITS.TXT stable/12/contrib/llvm-project/libcxx/include/__bit_reference stable/12/contrib/llvm-project/libcxx/include/__config stable/12/contrib/llvm-project/libcxx/include/__debug stable/12/contrib/llvm-project/libcxx/include/__functional_03 stable/12/contrib/llvm-project/libcxx/include/__functional_base stable/12/contrib/llvm-project/libcxx/include/__hash_table stable/12/contrib/llvm-project/libcxx/include/__libcpp_version stable/12/contrib/llvm-project/libcxx/include/__mutex_base stable/12/contrib/llvm-project/libcxx/include/__split_buffer stable/12/contrib/llvm-project/libcxx/include/__string stable/12/contrib/llvm-project/libcxx/include/__threading_support stable/12/contrib/llvm-project/libcxx/include/__tree stable/12/contrib/llvm-project/libcxx/include/__tuple stable/12/contrib/llvm-project/libcxx/include/algorithm stable/12/contrib/llvm-project/libcxx/include/atomic stable/12/contrib/llvm-project/libcxx/include/bit stable/12/contrib/llvm-project/libcxx/include/chrono stable/12/contrib/llvm-project/libcxx/include/codecvt stable/12/contrib/llvm-project/libcxx/include/cstdlib stable/12/contrib/llvm-project/libcxx/include/ctime stable/12/contrib/llvm-project/libcxx/include/deque stable/12/contrib/llvm-project/libcxx/include/exception stable/12/contrib/llvm-project/libcxx/include/experimental/coroutine stable/12/contrib/llvm-project/libcxx/include/experimental/functional stable/12/contrib/llvm-project/libcxx/include/experimental/iterator stable/12/contrib/llvm-project/libcxx/include/experimental/propagate_const stable/12/contrib/llvm-project/libcxx/include/experimental/type_traits stable/12/contrib/llvm-project/libcxx/include/ext/hash_map stable/12/contrib/llvm-project/libcxx/include/ext/hash_set stable/12/contrib/llvm-project/libcxx/include/filesystem stable/12/contrib/llvm-project/libcxx/include/forward_list stable/12/contrib/llvm-project/libcxx/include/fstream stable/12/contrib/llvm-project/libcxx/include/functional stable/12/contrib/llvm-project/libcxx/include/future stable/12/contrib/llvm-project/libcxx/include/ios stable/12/contrib/llvm-project/libcxx/include/istream stable/12/contrib/llvm-project/libcxx/include/iterator stable/12/contrib/llvm-project/libcxx/include/list stable/12/contrib/llvm-project/libcxx/include/map stable/12/contrib/llvm-project/libcxx/include/math.h stable/12/contrib/llvm-project/libcxx/include/memory stable/12/contrib/llvm-project/libcxx/include/module.modulemap stable/12/contrib/llvm-project/libcxx/include/mutex stable/12/contrib/llvm-project/libcxx/include/new stable/12/contrib/llvm-project/libcxx/include/numeric stable/12/contrib/llvm-project/libcxx/include/ostream stable/12/contrib/llvm-project/libcxx/include/queue stable/12/contrib/llvm-project/libcxx/include/random stable/12/contrib/llvm-project/libcxx/include/regex stable/12/contrib/llvm-project/libcxx/include/set stable/12/contrib/llvm-project/libcxx/include/span stable/12/contrib/llvm-project/libcxx/include/stdexcept stable/12/contrib/llvm-project/libcxx/include/string stable/12/contrib/llvm-project/libcxx/include/string_view stable/12/contrib/llvm-project/libcxx/include/system_error stable/12/contrib/llvm-project/libcxx/include/thread stable/12/contrib/llvm-project/libcxx/include/tuple stable/12/contrib/llvm-project/libcxx/include/type_traits stable/12/contrib/llvm-project/libcxx/include/typeinfo stable/12/contrib/llvm-project/libcxx/include/utility stable/12/contrib/llvm-project/libcxx/include/vector stable/12/contrib/llvm-project/libcxx/include/version stable/12/contrib/llvm-project/libcxx/src/algorithm.cpp stable/12/contrib/llvm-project/libcxx/src/chrono.cpp stable/12/contrib/llvm-project/libcxx/src/condition_variable.cpp stable/12/contrib/llvm-project/libcxx/src/debug.cpp stable/12/contrib/llvm-project/libcxx/src/experimental/memory_resource.cpp stable/12/contrib/llvm-project/libcxx/src/filesystem/directory_iterator.cpp stable/12/contrib/llvm-project/libcxx/src/filesystem/int128_builtins.cpp stable/12/contrib/llvm-project/libcxx/src/filesystem/operations.cpp stable/12/contrib/llvm-project/libcxx/src/iostream.cpp stable/12/contrib/llvm-project/libcxx/src/locale.cpp stable/12/contrib/llvm-project/libcxx/src/memory.cpp stable/12/contrib/llvm-project/libcxx/src/mutex.cpp stable/12/contrib/llvm-project/libcxx/src/mutex_destructor.cpp stable/12/contrib/llvm-project/libcxx/src/regex.cpp stable/12/contrib/llvm-project/libcxx/src/shared_mutex.cpp stable/12/contrib/llvm-project/libcxx/src/thread.cpp stable/12/contrib/llvm-project/libcxx/src/utility.cpp stable/12/contrib/llvm-project/libcxx/src/valarray.cpp stable/12/contrib/llvm-project/libunwind/include/__libunwind_config.h stable/12/contrib/llvm-project/libunwind/include/libunwind.h stable/12/contrib/llvm-project/libunwind/src/AddressSpace.hpp stable/12/contrib/llvm-project/libunwind/src/DwarfInstructions.hpp stable/12/contrib/llvm-project/libunwind/src/RWMutex.hpp stable/12/contrib/llvm-project/libunwind/src/Registers.hpp stable/12/contrib/llvm-project/libunwind/src/Unwind-EHABI.cpp stable/12/contrib/llvm-project/libunwind/src/UnwindCursor.hpp stable/12/contrib/llvm-project/libunwind/src/UnwindLevel1-gcc-ext.c stable/12/contrib/llvm-project/libunwind/src/UnwindRegistersRestore.S stable/12/contrib/llvm-project/libunwind/src/UnwindRegistersSave.S stable/12/contrib/llvm-project/libunwind/src/libunwind.cpp stable/12/contrib/llvm-project/lld/COFF/Chunks.h stable/12/contrib/llvm-project/lld/COFF/Config.h stable/12/contrib/llvm-project/lld/COFF/DLL.cpp stable/12/contrib/llvm-project/lld/COFF/DebugTypes.cpp stable/12/contrib/llvm-project/lld/COFF/Driver.cpp stable/12/contrib/llvm-project/lld/COFF/Driver.h stable/12/contrib/llvm-project/lld/COFF/DriverUtils.cpp stable/12/contrib/llvm-project/lld/COFF/ICF.cpp stable/12/contrib/llvm-project/lld/COFF/InputFiles.cpp stable/12/contrib/llvm-project/lld/COFF/InputFiles.h stable/12/contrib/llvm-project/lld/COFF/LTO.cpp stable/12/contrib/llvm-project/lld/COFF/MapFile.cpp stable/12/contrib/llvm-project/lld/COFF/MinGW.cpp stable/12/contrib/llvm-project/lld/COFF/MinGW.h stable/12/contrib/llvm-project/lld/COFF/Options.td stable/12/contrib/llvm-project/lld/COFF/PDB.cpp stable/12/contrib/llvm-project/lld/COFF/PDB.h stable/12/contrib/llvm-project/lld/COFF/SymbolTable.cpp stable/12/contrib/llvm-project/lld/COFF/SymbolTable.h stable/12/contrib/llvm-project/lld/COFF/Symbols.cpp stable/12/contrib/llvm-project/lld/COFF/Symbols.h stable/12/contrib/llvm-project/lld/COFF/Writer.cpp stable/12/contrib/llvm-project/lld/Common/ErrorHandler.cpp stable/12/contrib/llvm-project/lld/Common/Filesystem.cpp stable/12/contrib/llvm-project/lld/Common/Strings.cpp stable/12/contrib/llvm-project/lld/Common/TargetOptionsCommandFlags.cpp stable/12/contrib/llvm-project/lld/ELF/AArch64ErrataFix.cpp stable/12/contrib/llvm-project/lld/ELF/Arch/AArch64.cpp stable/12/contrib/llvm-project/lld/ELF/Arch/AMDGPU.cpp stable/12/contrib/llvm-project/lld/ELF/Arch/ARM.cpp stable/12/contrib/llvm-project/lld/ELF/Arch/AVR.cpp stable/12/contrib/llvm-project/lld/ELF/Arch/Hexagon.cpp stable/12/contrib/llvm-project/lld/ELF/Arch/MSP430.cpp stable/12/contrib/llvm-project/lld/ELF/Arch/Mips.cpp stable/12/contrib/llvm-project/lld/ELF/Arch/MipsArchTree.cpp stable/12/contrib/llvm-project/lld/ELF/Arch/PPC.cpp stable/12/contrib/llvm-project/lld/ELF/Arch/PPC64.cpp stable/12/contrib/llvm-project/lld/ELF/Arch/RISCV.cpp stable/12/contrib/llvm-project/lld/ELF/Arch/SPARCV9.cpp stable/12/contrib/llvm-project/lld/ELF/Arch/X86.cpp stable/12/contrib/llvm-project/lld/ELF/Arch/X86_64.cpp stable/12/contrib/llvm-project/lld/ELF/CallGraphSort.cpp stable/12/contrib/llvm-project/lld/ELF/Config.h stable/12/contrib/llvm-project/lld/ELF/DWARF.cpp stable/12/contrib/llvm-project/lld/ELF/DWARF.h stable/12/contrib/llvm-project/lld/ELF/Driver.cpp stable/12/contrib/llvm-project/lld/ELF/DriverUtils.cpp stable/12/contrib/llvm-project/lld/ELF/EhFrame.cpp stable/12/contrib/llvm-project/lld/ELF/ICF.cpp stable/12/contrib/llvm-project/lld/ELF/InputFiles.cpp stable/12/contrib/llvm-project/lld/ELF/InputFiles.h stable/12/contrib/llvm-project/lld/ELF/InputSection.cpp stable/12/contrib/llvm-project/lld/ELF/InputSection.h stable/12/contrib/llvm-project/lld/ELF/LTO.cpp stable/12/contrib/llvm-project/lld/ELF/LinkerScript.cpp stable/12/contrib/llvm-project/lld/ELF/LinkerScript.h stable/12/contrib/llvm-project/lld/ELF/MapFile.cpp stable/12/contrib/llvm-project/lld/ELF/MarkLive.cpp stable/12/contrib/llvm-project/lld/ELF/Options.td stable/12/contrib/llvm-project/lld/ELF/OutputSections.cpp stable/12/contrib/llvm-project/lld/ELF/OutputSections.h stable/12/contrib/llvm-project/lld/ELF/Relocations.cpp stable/12/contrib/llvm-project/lld/ELF/Relocations.h stable/12/contrib/llvm-project/lld/ELF/ScriptLexer.cpp stable/12/contrib/llvm-project/lld/ELF/ScriptParser.cpp stable/12/contrib/llvm-project/lld/ELF/SymbolTable.cpp stable/12/contrib/llvm-project/lld/ELF/SymbolTable.h stable/12/contrib/llvm-project/lld/ELF/Symbols.cpp stable/12/contrib/llvm-project/lld/ELF/Symbols.h stable/12/contrib/llvm-project/lld/ELF/SyntheticSections.cpp stable/12/contrib/llvm-project/lld/ELF/SyntheticSections.h stable/12/contrib/llvm-project/lld/ELF/Target.cpp stable/12/contrib/llvm-project/lld/ELF/Target.h stable/12/contrib/llvm-project/lld/ELF/Thunks.cpp stable/12/contrib/llvm-project/lld/ELF/Thunks.h stable/12/contrib/llvm-project/lld/ELF/Writer.cpp stable/12/contrib/llvm-project/lld/ELF/Writer.h stable/12/contrib/llvm-project/lld/docs/Driver.rst stable/12/contrib/llvm-project/lld/docs/NewLLD.rst stable/12/contrib/llvm-project/lld/docs/ReleaseNotes.rst stable/12/contrib/llvm-project/lld/docs/WebAssembly.rst stable/12/contrib/llvm-project/lld/docs/conf.py stable/12/contrib/llvm-project/lld/docs/index.rst stable/12/contrib/llvm-project/lld/docs/ld.lld.1 stable/12/contrib/llvm-project/lld/docs/windows_support.rst stable/12/contrib/llvm-project/lld/include/lld/Common/Driver.h stable/12/contrib/llvm-project/lld/include/lld/Common/ErrorHandler.h stable/12/contrib/llvm-project/lld/include/lld/Common/LLVM.h stable/12/contrib/llvm-project/lld/include/lld/Common/Strings.h stable/12/contrib/llvm-project/lld/include/lld/Common/TargetOptionsCommandFlags.h stable/12/contrib/llvm-project/lld/include/lld/Core/Atom.h stable/12/contrib/llvm-project/lld/include/lld/Core/Error.h stable/12/contrib/llvm-project/lld/include/lld/Core/File.h stable/12/contrib/llvm-project/lld/include/lld/Core/Instrumentation.h stable/12/contrib/llvm-project/lld/include/lld/Core/Reference.h stable/12/contrib/llvm-project/lld/include/lld/Core/UndefinedAtom.h stable/12/contrib/llvm-project/lld/include/lld/ReaderWriter/MachOLinkingContext.h stable/12/contrib/llvm-project/lld/lib/Core/Resolver.cpp stable/12/contrib/llvm-project/lld/lib/Core/SymbolTable.cpp stable/12/contrib/llvm-project/lld/lib/Driver/DarwinLdDriver.cpp stable/12/contrib/llvm-project/lld/lib/ReaderWriter/FileArchive.cpp stable/12/contrib/llvm-project/lld/lib/ReaderWriter/MachO/ArchHandler_x86_64.cpp stable/12/contrib/llvm-project/lld/lib/ReaderWriter/MachO/CompactUnwindPass.cpp stable/12/contrib/llvm-project/lld/lib/ReaderWriter/MachO/DebugInfo.h stable/12/contrib/llvm-project/lld/lib/ReaderWriter/MachO/File.h stable/12/contrib/llvm-project/lld/lib/ReaderWriter/MachO/GOTPass.cpp stable/12/contrib/llvm-project/lld/lib/ReaderWriter/MachO/LayoutPass.cpp stable/12/contrib/llvm-project/lld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp stable/12/contrib/llvm-project/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp stable/12/contrib/llvm-project/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryWriter.cpp stable/12/contrib/llvm-project/lld/lib/ReaderWriter/MachO/MachONormalizedFileFromAtoms.cpp stable/12/contrib/llvm-project/lld/lib/ReaderWriter/MachO/MachONormalizedFileToAtoms.cpp stable/12/contrib/llvm-project/lld/lib/ReaderWriter/MachO/ObjCPass.cpp stable/12/contrib/llvm-project/lld/lib/ReaderWriter/MachO/ShimPass.cpp stable/12/contrib/llvm-project/lld/lib/ReaderWriter/MachO/TLVPass.cpp stable/12/contrib/llvm-project/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp stable/12/contrib/llvm-project/lld/tools/lld/lld.cpp stable/12/contrib/llvm-project/lldb/include/lldb/API/LLDB.h stable/12/contrib/llvm-project/lldb/include/lldb/API/SBBreakpoint.h stable/12/contrib/llvm-project/lldb/include/lldb/API/SBBreakpointLocation.h stable/12/contrib/llvm-project/lldb/include/lldb/API/SBBreakpointName.h stable/12/contrib/llvm-project/lldb/include/lldb/API/SBCommandReturnObject.h stable/12/contrib/llvm-project/lldb/include/lldb/API/SBDebugger.h stable/12/contrib/llvm-project/lldb/include/lldb/API/SBDefines.h stable/12/contrib/llvm-project/lldb/include/lldb/API/SBError.h stable/12/contrib/llvm-project/lldb/include/lldb/API/SBInstruction.h stable/12/contrib/llvm-project/lldb/include/lldb/API/SBInstructionList.h stable/12/contrib/llvm-project/lldb/include/lldb/API/SBProcess.h stable/12/contrib/llvm-project/lldb/include/lldb/API/SBReproducer.h stable/12/contrib/llvm-project/lldb/include/lldb/API/SBStream.h stable/12/contrib/llvm-project/lldb/include/lldb/API/SBStructuredData.h stable/12/contrib/llvm-project/lldb/include/lldb/API/SBThread.h stable/12/contrib/llvm-project/lldb/include/lldb/API/SBThreadPlan.h stable/12/contrib/llvm-project/lldb/include/lldb/API/SBValue.h stable/12/contrib/llvm-project/lldb/include/lldb/Breakpoint/Breakpoint.h stable/12/contrib/llvm-project/lldb/include/lldb/Breakpoint/BreakpointID.h stable/12/contrib/llvm-project/lldb/include/lldb/Breakpoint/BreakpointList.h stable/12/contrib/llvm-project/lldb/include/lldb/Breakpoint/BreakpointLocation.h stable/12/contrib/llvm-project/lldb/include/lldb/Breakpoint/BreakpointLocationCollection.h stable/12/contrib/llvm-project/lldb/include/lldb/Breakpoint/BreakpointLocationList.h stable/12/contrib/llvm-project/lldb/include/lldb/Breakpoint/BreakpointOptions.h stable/12/contrib/llvm-project/lldb/include/lldb/Breakpoint/BreakpointResolver.h stable/12/contrib/llvm-project/lldb/include/lldb/Breakpoint/BreakpointResolverAddress.h stable/12/contrib/llvm-project/lldb/include/lldb/Breakpoint/BreakpointResolverFileLine.h stable/12/contrib/llvm-project/lldb/include/lldb/Breakpoint/BreakpointResolverFileRegex.h stable/12/contrib/llvm-project/lldb/include/lldb/Breakpoint/BreakpointResolverName.h stable/12/contrib/llvm-project/lldb/include/lldb/Breakpoint/BreakpointResolverScripted.h stable/12/contrib/llvm-project/lldb/include/lldb/Breakpoint/BreakpointSite.h stable/12/contrib/llvm-project/lldb/include/lldb/Breakpoint/Watchpoint.h stable/12/contrib/llvm-project/lldb/include/lldb/Breakpoint/WatchpointList.h stable/12/contrib/llvm-project/lldb/include/lldb/Breakpoint/WatchpointOptions.h stable/12/contrib/llvm-project/lldb/include/lldb/Core/Address.h stable/12/contrib/llvm-project/lldb/include/lldb/Core/AddressRange.h stable/12/contrib/llvm-project/lldb/include/lldb/Core/AddressResolverFileLine.h stable/12/contrib/llvm-project/lldb/include/lldb/Core/AddressResolverName.h stable/12/contrib/llvm-project/lldb/include/lldb/Core/ClangForward.h stable/12/contrib/llvm-project/lldb/include/lldb/Core/Debugger.h stable/12/contrib/llvm-project/lldb/include/lldb/Core/Disassembler.h stable/12/contrib/llvm-project/lldb/include/lldb/Core/FileLineResolver.h stable/12/contrib/llvm-project/lldb/include/lldb/Core/FileSpecList.h stable/12/contrib/llvm-project/lldb/include/lldb/Core/FormatEntity.h stable/12/contrib/llvm-project/lldb/include/lldb/Core/Highlighter.h stable/12/contrib/llvm-project/lldb/include/lldb/Core/IOHandler.h stable/12/contrib/llvm-project/lldb/include/lldb/Core/LoadedModuleInfoList.h stable/12/contrib/llvm-project/lldb/include/lldb/Core/Mangled.h stable/12/contrib/llvm-project/lldb/include/lldb/Core/Module.h stable/12/contrib/llvm-project/lldb/include/lldb/Core/ModuleChild.h stable/12/contrib/llvm-project/lldb/include/lldb/Core/ModuleList.h stable/12/contrib/llvm-project/lldb/include/lldb/Core/ModuleSpec.h stable/12/contrib/llvm-project/lldb/include/lldb/Core/PluginManager.h stable/12/contrib/llvm-project/lldb/include/lldb/Core/SearchFilter.h stable/12/contrib/llvm-project/lldb/include/lldb/Core/Section.h stable/12/contrib/llvm-project/lldb/include/lldb/Core/SourceManager.h stable/12/contrib/llvm-project/lldb/include/lldb/Core/StreamFile.h stable/12/contrib/llvm-project/lldb/include/lldb/Core/StructuredDataImpl.h stable/12/contrib/llvm-project/lldb/include/lldb/Core/ThreadSafeDenseMap.h stable/12/contrib/llvm-project/lldb/include/lldb/Core/Value.h stable/12/contrib/llvm-project/lldb/include/lldb/Core/ValueObject.h stable/12/contrib/llvm-project/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h stable/12/contrib/llvm-project/lldb/include/lldb/Core/dwarf.h stable/12/contrib/llvm-project/lldb/include/lldb/DataFormatters/DataVisualization.h stable/12/contrib/llvm-project/lldb/include/lldb/DataFormatters/FormatCache.h stable/12/contrib/llvm-project/lldb/include/lldb/DataFormatters/FormatClasses.h stable/12/contrib/llvm-project/lldb/include/lldb/DataFormatters/FormatManager.h stable/12/contrib/llvm-project/lldb/include/lldb/DataFormatters/FormattersContainer.h stable/12/contrib/llvm-project/lldb/include/lldb/DataFormatters/LanguageCategory.h stable/12/contrib/llvm-project/lldb/include/lldb/DataFormatters/StringPrinter.h stable/12/contrib/llvm-project/lldb/include/lldb/DataFormatters/TypeCategory.h stable/12/contrib/llvm-project/lldb/include/lldb/DataFormatters/TypeCategoryMap.h stable/12/contrib/llvm-project/lldb/include/lldb/DataFormatters/ValueObjectPrinter.h stable/12/contrib/llvm-project/lldb/include/lldb/Expression/DWARFExpression.h stable/12/contrib/llvm-project/lldb/include/lldb/Expression/DiagnosticManager.h stable/12/contrib/llvm-project/lldb/include/lldb/Expression/Expression.h stable/12/contrib/llvm-project/lldb/include/lldb/Expression/ExpressionParser.h stable/12/contrib/llvm-project/lldb/include/lldb/Expression/ExpressionSourceCode.h stable/12/contrib/llvm-project/lldb/include/lldb/Expression/ExpressionVariable.h stable/12/contrib/llvm-project/lldb/include/lldb/Expression/FunctionCaller.h stable/12/contrib/llvm-project/lldb/include/lldb/Expression/IRExecutionUnit.h stable/12/contrib/llvm-project/lldb/include/lldb/Expression/LLVMUserExpression.h stable/12/contrib/llvm-project/lldb/include/lldb/Expression/Materializer.h stable/12/contrib/llvm-project/lldb/include/lldb/Expression/REPL.h stable/12/contrib/llvm-project/lldb/include/lldb/Expression/UserExpression.h stable/12/contrib/llvm-project/lldb/include/lldb/Expression/UtilityFunction.h stable/12/contrib/llvm-project/lldb/include/lldb/Host/Config.h.cmake stable/12/contrib/llvm-project/lldb/include/lldb/Host/Editline.h stable/12/contrib/llvm-project/lldb/include/lldb/Host/File.h stable/12/contrib/llvm-project/lldb/include/lldb/Host/FileCache.h stable/12/contrib/llvm-project/lldb/include/lldb/Host/FileSystem.h stable/12/contrib/llvm-project/lldb/include/lldb/Host/HostInfoBase.h stable/12/contrib/llvm-project/lldb/include/lldb/Host/HostProcess.h stable/12/contrib/llvm-project/lldb/include/lldb/Host/PseudoTerminal.h stable/12/contrib/llvm-project/lldb/include/lldb/Host/Socket.h stable/12/contrib/llvm-project/lldb/include/lldb/Host/SocketAddress.h stable/12/contrib/llvm-project/lldb/include/lldb/Host/Terminal.h stable/12/contrib/llvm-project/lldb/include/lldb/Host/XML.h stable/12/contrib/llvm-project/lldb/include/lldb/Host/common/NativeProcessProtocol.h stable/12/contrib/llvm-project/lldb/include/lldb/Interpreter/CommandAlias.h stable/12/contrib/llvm-project/lldb/include/lldb/Interpreter/CommandCompletions.h stable/12/contrib/llvm-project/lldb/include/lldb/Interpreter/CommandInterpreter.h stable/12/contrib/llvm-project/lldb/include/lldb/Interpreter/CommandObject.h stable/12/contrib/llvm-project/lldb/include/lldb/Interpreter/CommandObjectMultiword.h stable/12/contrib/llvm-project/lldb/include/lldb/Interpreter/CommandObjectRegexCommand.h stable/12/contrib/llvm-project/lldb/include/lldb/Interpreter/CommandReturnObject.h stable/12/contrib/llvm-project/lldb/include/lldb/Interpreter/OptionValue.h stable/12/contrib/llvm-project/lldb/include/lldb/Interpreter/OptionValueArch.h stable/12/contrib/llvm-project/lldb/include/lldb/Interpreter/OptionValueBoolean.h stable/12/contrib/llvm-project/lldb/include/lldb/Interpreter/OptionValueEnumeration.h stable/12/contrib/llvm-project/lldb/include/lldb/Interpreter/OptionValueFileSpec.h stable/12/contrib/llvm-project/lldb/include/lldb/Interpreter/OptionValueFormatEntity.h stable/12/contrib/llvm-project/lldb/include/lldb/Interpreter/OptionValueProperties.h stable/12/contrib/llvm-project/lldb/include/lldb/Interpreter/OptionValueRegex.h stable/12/contrib/llvm-project/lldb/include/lldb/Interpreter/OptionValueUUID.h stable/12/contrib/llvm-project/lldb/include/lldb/Interpreter/Options.h stable/12/contrib/llvm-project/lldb/include/lldb/Interpreter/Property.h stable/12/contrib/llvm-project/lldb/include/lldb/Interpreter/ScriptInterpreter.h stable/12/contrib/llvm-project/lldb/include/lldb/Symbol/Block.h stable/12/contrib/llvm-project/lldb/include/lldb/Symbol/ClangASTContext.h stable/12/contrib/llvm-project/lldb/include/lldb/Symbol/ClangASTImporter.h stable/12/contrib/llvm-project/lldb/include/lldb/Symbol/ClangExternalASTSourceCallbacks.h stable/12/contrib/llvm-project/lldb/include/lldb/Symbol/ClangUtil.h stable/12/contrib/llvm-project/lldb/include/lldb/Symbol/CompileUnit.h stable/12/contrib/llvm-project/lldb/include/lldb/Symbol/CompilerDecl.h stable/12/contrib/llvm-project/lldb/include/lldb/Symbol/CompilerDeclContext.h stable/12/contrib/llvm-project/lldb/include/lldb/Symbol/CompilerType.h stable/12/contrib/llvm-project/lldb/include/lldb/Symbol/DebugMacros.h stable/12/contrib/llvm-project/lldb/include/lldb/Symbol/DeclVendor.h stable/12/contrib/llvm-project/lldb/include/lldb/Symbol/Declaration.h stable/12/contrib/llvm-project/lldb/include/lldb/Symbol/FuncUnwinders.h stable/12/contrib/llvm-project/lldb/include/lldb/Symbol/Function.h stable/12/contrib/llvm-project/lldb/include/lldb/Symbol/LineEntry.h stable/12/contrib/llvm-project/lldb/include/lldb/Symbol/LineTable.h stable/12/contrib/llvm-project/lldb/include/lldb/Symbol/ObjectFile.h stable/12/contrib/llvm-project/lldb/include/lldb/Symbol/PostfixExpression.h stable/12/contrib/llvm-project/lldb/include/lldb/Symbol/Symbol.h stable/12/contrib/llvm-project/lldb/include/lldb/Symbol/SymbolContext.h stable/12/contrib/llvm-project/lldb/include/lldb/Symbol/SymbolFile.h stable/12/contrib/llvm-project/lldb/include/lldb/Symbol/SymbolVendor.h stable/12/contrib/llvm-project/lldb/include/lldb/Symbol/Symtab.h stable/12/contrib/llvm-project/lldb/include/lldb/Symbol/Type.h stable/12/contrib/llvm-project/lldb/include/lldb/Symbol/TypeList.h stable/12/contrib/llvm-project/lldb/include/lldb/Symbol/TypeSystem.h stable/12/contrib/llvm-project/lldb/include/lldb/Symbol/UnwindPlan.h stable/12/contrib/llvm-project/lldb/include/lldb/Symbol/UnwindTable.h stable/12/contrib/llvm-project/lldb/include/lldb/Symbol/Variable.h stable/12/contrib/llvm-project/lldb/include/lldb/Symbol/VariableList.h stable/12/contrib/llvm-project/lldb/include/lldb/Target/ABI.h stable/12/contrib/llvm-project/lldb/include/lldb/Target/DynamicLoader.h stable/12/contrib/llvm-project/lldb/include/lldb/Target/Language.h stable/12/contrib/llvm-project/lldb/include/lldb/Target/MemoryRegionInfo.h stable/12/contrib/llvm-project/lldb/include/lldb/Target/Platform.h stable/12/contrib/llvm-project/lldb/include/lldb/Target/Process.h stable/12/contrib/llvm-project/lldb/include/lldb/Target/Queue.h stable/12/contrib/llvm-project/lldb/include/lldb/Target/RemoteAwarePlatform.h stable/12/contrib/llvm-project/lldb/include/lldb/Target/StackFrame.h stable/12/contrib/llvm-project/lldb/include/lldb/Target/StopInfo.h stable/12/contrib/llvm-project/lldb/include/lldb/Target/Target.h stable/12/contrib/llvm-project/lldb/include/lldb/Target/TargetList.h stable/12/contrib/llvm-project/lldb/include/lldb/Target/Thread.h stable/12/contrib/llvm-project/lldb/include/lldb/Target/ThreadPlanPython.h stable/12/contrib/llvm-project/lldb/include/lldb/Target/ThreadPlanStepOut.h stable/12/contrib/llvm-project/lldb/include/lldb/Target/ThreadPlanStepRange.h stable/12/contrib/llvm-project/lldb/include/lldb/Target/Unwind.h stable/12/contrib/llvm-project/lldb/include/lldb/Utility/AnsiTerminal.h stable/12/contrib/llvm-project/lldb/include/lldb/Utility/ArchSpec.h stable/12/contrib/llvm-project/lldb/include/lldb/Utility/Args.h stable/12/contrib/llvm-project/lldb/include/lldb/Utility/Baton.h stable/12/contrib/llvm-project/lldb/include/lldb/Utility/Broadcaster.h stable/12/contrib/llvm-project/lldb/include/lldb/Utility/CompletionRequest.h stable/12/contrib/llvm-project/lldb/include/lldb/Utility/Connection.h stable/12/contrib/llvm-project/lldb/include/lldb/Utility/ConstString.h stable/12/contrib/llvm-project/lldb/include/lldb/Utility/DataEncoder.h stable/12/contrib/llvm-project/lldb/include/lldb/Utility/DataExtractor.h stable/12/contrib/llvm-project/lldb/include/lldb/Utility/FileSpec.h stable/12/contrib/llvm-project/lldb/include/lldb/Utility/Flags.h stable/12/contrib/llvm-project/lldb/include/lldb/Utility/IOObject.h stable/12/contrib/llvm-project/lldb/include/lldb/Utility/Log.h stable/12/contrib/llvm-project/lldb/include/lldb/Utility/Logging.h stable/12/contrib/llvm-project/lldb/include/lldb/Utility/Predicate.h stable/12/contrib/llvm-project/lldb/include/lldb/Utility/ProcessInfo.h stable/12/contrib/llvm-project/lldb/include/lldb/Utility/RangeMap.h stable/12/contrib/llvm-project/lldb/include/lldb/Utility/RegularExpression.h stable/12/contrib/llvm-project/lldb/include/lldb/Utility/Reproducer.h stable/12/contrib/llvm-project/lldb/include/lldb/Utility/ReproducerInstrumentation.h stable/12/contrib/llvm-project/lldb/include/lldb/Utility/Scalar.h stable/12/contrib/llvm-project/lldb/include/lldb/Utility/Status.h stable/12/contrib/llvm-project/lldb/include/lldb/Utility/Stream.h stable/12/contrib/llvm-project/lldb/include/lldb/Utility/StringExtractor.h stable/12/contrib/llvm-project/lldb/include/lldb/Utility/StringExtractorGDBRemote.h stable/12/contrib/llvm-project/lldb/include/lldb/Utility/StringLexer.h stable/12/contrib/llvm-project/lldb/include/lldb/Utility/StringList.h stable/12/contrib/llvm-project/lldb/include/lldb/Utility/StructuredData.h stable/12/contrib/llvm-project/lldb/include/lldb/Utility/UUID.h stable/12/contrib/llvm-project/lldb/include/lldb/Utility/VMRange.h stable/12/contrib/llvm-project/lldb/include/lldb/lldb-enumerations.h stable/12/contrib/llvm-project/lldb/include/lldb/lldb-forward.h stable/12/contrib/llvm-project/lldb/include/lldb/lldb-private-enumerations.h stable/12/contrib/llvm-project/lldb/include/lldb/lldb-private-interfaces.h stable/12/contrib/llvm-project/lldb/source/API/SBAddress.cpp stable/12/contrib/llvm-project/lldb/source/API/SBBreakpoint.cpp stable/12/contrib/llvm-project/lldb/source/API/SBBreakpointLocation.cpp stable/12/contrib/llvm-project/lldb/source/API/SBBreakpointName.cpp stable/12/contrib/llvm-project/lldb/source/API/SBBreakpointOptionCommon.cpp stable/12/contrib/llvm-project/lldb/source/API/SBCommandInterpreter.cpp stable/12/contrib/llvm-project/lldb/source/API/SBCommandReturnObject.cpp stable/12/contrib/llvm-project/lldb/source/API/SBCompileUnit.cpp stable/12/contrib/llvm-project/lldb/source/API/SBDebugger.cpp stable/12/contrib/llvm-project/lldb/source/API/SBDeclaration.cpp stable/12/contrib/llvm-project/lldb/source/API/SBEvent.cpp stable/12/contrib/llvm-project/lldb/source/API/SBFileSpec.cpp stable/12/contrib/llvm-project/lldb/source/API/SBFrame.cpp stable/12/contrib/llvm-project/lldb/source/API/SBHostOS.cpp stable/12/contrib/llvm-project/lldb/source/API/SBInstruction.cpp stable/12/contrib/llvm-project/lldb/source/API/SBInstructionList.cpp stable/12/contrib/llvm-project/lldb/source/API/SBLineEntry.cpp stable/12/contrib/llvm-project/lldb/source/API/SBModule.cpp stable/12/contrib/llvm-project/lldb/source/API/SBProcess.cpp stable/12/contrib/llvm-project/lldb/source/API/SBReproducer.cpp stable/12/contrib/llvm-project/lldb/source/API/SBReproducerPrivate.h stable/12/contrib/llvm-project/lldb/source/API/SBStream.cpp stable/12/contrib/llvm-project/lldb/source/API/SBStringList.cpp stable/12/contrib/llvm-project/lldb/source/API/SBSymbolContext.cpp stable/12/contrib/llvm-project/lldb/source/API/SBTarget.cpp stable/12/contrib/llvm-project/lldb/source/API/SBThread.cpp stable/12/contrib/llvm-project/lldb/source/API/SBThreadPlan.cpp stable/12/contrib/llvm-project/lldb/source/API/SBType.cpp stable/12/contrib/llvm-project/lldb/source/API/SBTypeCategory.cpp stable/12/contrib/llvm-project/lldb/source/API/SBValue.cpp stable/12/contrib/llvm-project/lldb/source/API/SystemInitializerFull.cpp stable/12/contrib/llvm-project/lldb/source/API/Utils.h stable/12/contrib/llvm-project/lldb/source/Breakpoint/Breakpoint.cpp stable/12/contrib/llvm-project/lldb/source/Breakpoint/BreakpointIDList.cpp stable/12/contrib/llvm-project/lldb/source/Breakpoint/BreakpointList.cpp stable/12/contrib/llvm-project/lldb/source/Breakpoint/BreakpointLocation.cpp stable/12/contrib/llvm-project/lldb/source/Breakpoint/BreakpointOptions.cpp stable/12/contrib/llvm-project/lldb/source/Breakpoint/BreakpointResolver.cpp stable/12/contrib/llvm-project/lldb/source/Breakpoint/BreakpointResolverAddress.cpp stable/12/contrib/llvm-project/lldb/source/Breakpoint/BreakpointResolverFileLine.cpp stable/12/contrib/llvm-project/lldb/source/Breakpoint/BreakpointResolverFileRegex.cpp stable/12/contrib/llvm-project/lldb/source/Breakpoint/BreakpointResolverName.cpp stable/12/contrib/llvm-project/lldb/source/Breakpoint/BreakpointResolverScripted.cpp stable/12/contrib/llvm-project/lldb/source/Breakpoint/Watchpoint.cpp stable/12/contrib/llvm-project/lldb/source/Breakpoint/WatchpointOptions.cpp stable/12/contrib/llvm-project/lldb/source/Commands/CommandCompletions.cpp stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectApropos.cpp stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectBreakpoint.cpp stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectBreakpoint.h stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectBreakpointCommand.cpp stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectBreakpointCommand.h stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectCommands.cpp stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectCommands.h stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectDisassemble.cpp stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectExpression.cpp stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectExpression.h stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectFrame.cpp stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectFrame.h stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectGUI.cpp stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectHelp.cpp stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectHelp.h stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectLanguage.cpp stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectLanguage.h stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectLog.cpp stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectLog.h stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectMemory.cpp stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectMultiword.cpp stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectPlatform.cpp stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectPlatform.h stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectPlugin.cpp stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectPlugin.h stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectProcess.cpp stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectRegister.cpp stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectReproducer.cpp stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectReproducer.h stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectSettings.cpp stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectSettings.h stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectSource.cpp stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectSource.h stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectStats.cpp stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectStats.h stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectTarget.cpp stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectTarget.h stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectThread.cpp stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectType.cpp stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectType.h stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectVersion.cpp stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectWatchpoint.cpp stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectWatchpoint.h stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectWatchpointCommand.cpp stable/12/contrib/llvm-project/lldb/source/Commands/CommandObjectWatchpointCommand.h stable/12/contrib/llvm-project/lldb/source/Commands/Options.td stable/12/contrib/llvm-project/lldb/source/Commands/OptionsBase.td stable/12/contrib/llvm-project/lldb/source/Core/Address.cpp stable/12/contrib/llvm-project/lldb/source/Core/AddressRange.cpp stable/12/contrib/llvm-project/lldb/source/Core/AddressResolverFileLine.cpp stable/12/contrib/llvm-project/lldb/source/Core/AddressResolverName.cpp stable/12/contrib/llvm-project/lldb/source/Core/Communication.cpp stable/12/contrib/llvm-project/lldb/source/Core/Debugger.cpp stable/12/contrib/llvm-project/lldb/source/Core/Disassembler.cpp stable/12/contrib/llvm-project/lldb/source/Core/DumpDataExtractor.cpp stable/12/contrib/llvm-project/lldb/source/Core/FileLineResolver.cpp stable/12/contrib/llvm-project/lldb/source/Core/FileSpecList.cpp stable/12/contrib/llvm-project/lldb/source/Core/FormatEntity.cpp stable/12/contrib/llvm-project/lldb/source/Core/Highlighter.cpp stable/12/contrib/llvm-project/lldb/source/Core/IOHandler.cpp stable/12/contrib/llvm-project/lldb/source/Core/Mangled.cpp stable/12/contrib/llvm-project/lldb/source/Core/Module.cpp stable/12/contrib/llvm-project/lldb/source/Core/ModuleList.cpp stable/12/contrib/llvm-project/lldb/source/Core/PluginManager.cpp stable/12/contrib/llvm-project/lldb/source/Core/SearchFilter.cpp stable/12/contrib/llvm-project/lldb/source/Core/Section.cpp stable/12/contrib/llvm-project/lldb/source/Core/SourceManager.cpp stable/12/contrib/llvm-project/lldb/source/Core/StreamFile.cpp stable/12/contrib/llvm-project/lldb/source/Core/Value.cpp stable/12/contrib/llvm-project/lldb/source/Core/ValueObject.cpp stable/12/contrib/llvm-project/lldb/source/Core/ValueObjectCast.cpp stable/12/contrib/llvm-project/lldb/source/Core/ValueObjectChild.cpp stable/12/contrib/llvm-project/lldb/source/Core/ValueObjectConstResult.cpp stable/12/contrib/llvm-project/lldb/source/Core/ValueObjectDynamicValue.cpp stable/12/contrib/llvm-project/lldb/source/Core/ValueObjectMemory.cpp stable/12/contrib/llvm-project/lldb/source/Core/ValueObjectRegister.cpp stable/12/contrib/llvm-project/lldb/source/Core/ValueObjectSyntheticFilter.cpp stable/12/contrib/llvm-project/lldb/source/Core/ValueObjectVariable.cpp stable/12/contrib/llvm-project/lldb/source/DataFormatters/DataVisualization.cpp stable/12/contrib/llvm-project/lldb/source/DataFormatters/FormatCache.cpp stable/12/contrib/llvm-project/lldb/source/DataFormatters/FormatClasses.cpp stable/12/contrib/llvm-project/lldb/source/DataFormatters/FormatManager.cpp stable/12/contrib/llvm-project/lldb/source/DataFormatters/FormattersHelpers.cpp stable/12/contrib/llvm-project/lldb/source/DataFormatters/LanguageCategory.cpp stable/12/contrib/llvm-project/lldb/source/DataFormatters/TypeCategory.cpp stable/12/contrib/llvm-project/lldb/source/DataFormatters/TypeCategoryMap.cpp stable/12/contrib/llvm-project/lldb/source/DataFormatters/TypeFormat.cpp stable/12/contrib/llvm-project/lldb/source/DataFormatters/ValueObjectPrinter.cpp stable/12/contrib/llvm-project/lldb/source/DataFormatters/VectorType.cpp stable/12/contrib/llvm-project/lldb/source/Expression/DWARFExpression.cpp stable/12/contrib/llvm-project/lldb/source/Expression/DiagnosticManager.cpp stable/12/contrib/llvm-project/lldb/source/Expression/Expression.cpp stable/12/contrib/llvm-project/lldb/source/Expression/ExpressionVariable.cpp stable/12/contrib/llvm-project/lldb/source/Expression/FunctionCaller.cpp stable/12/contrib/llvm-project/lldb/source/Expression/IRExecutionUnit.cpp stable/12/contrib/llvm-project/lldb/source/Expression/IRInterpreter.cpp stable/12/contrib/llvm-project/lldb/source/Expression/IRMemoryMap.cpp stable/12/contrib/llvm-project/lldb/source/Expression/LLVMUserExpression.cpp stable/12/contrib/llvm-project/lldb/source/Expression/Materializer.cpp stable/12/contrib/llvm-project/lldb/source/Expression/REPL.cpp stable/12/contrib/llvm-project/lldb/source/Expression/UserExpression.cpp stable/12/contrib/llvm-project/lldb/source/Expression/UtilityFunction.cpp stable/12/contrib/llvm-project/lldb/source/Host/common/Editline.cpp stable/12/contrib/llvm-project/lldb/source/Host/common/File.cpp stable/12/contrib/llvm-project/lldb/source/Host/common/FileCache.cpp stable/12/contrib/llvm-project/lldb/source/Host/common/FileSystem.cpp stable/12/contrib/llvm-project/lldb/source/Host/common/Host.cpp stable/12/contrib/llvm-project/lldb/source/Host/common/HostInfoBase.cpp stable/12/contrib/llvm-project/lldb/source/Host/common/HostNativeThreadBase.cpp stable/12/contrib/llvm-project/lldb/source/Host/common/MainLoop.cpp stable/12/contrib/llvm-project/lldb/source/Host/common/NativeProcessProtocol.cpp stable/12/contrib/llvm-project/lldb/source/Host/common/NativeRegisterContext.cpp stable/12/contrib/llvm-project/lldb/source/Host/common/PseudoTerminal.cpp stable/12/contrib/llvm-project/lldb/source/Host/common/Socket.cpp stable/12/contrib/llvm-project/lldb/source/Host/common/SocketAddress.cpp stable/12/contrib/llvm-project/lldb/source/Host/common/TCPSocket.cpp stable/12/contrib/llvm-project/lldb/source/Host/common/Terminal.cpp stable/12/contrib/llvm-project/lldb/source/Host/common/UDPSocket.cpp stable/12/contrib/llvm-project/lldb/source/Host/common/XML.cpp stable/12/contrib/llvm-project/lldb/source/Host/freebsd/HostInfoFreeBSD.cpp stable/12/contrib/llvm-project/lldb/source/Host/netbsd/Host.cpp stable/12/contrib/llvm-project/lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp stable/12/contrib/llvm-project/lldb/source/Host/posix/HostInfoPosix.cpp stable/12/contrib/llvm-project/lldb/source/Host/posix/PipePosix.cpp stable/12/contrib/llvm-project/lldb/source/Initialization/SystemInitializerCommon.cpp stable/12/contrib/llvm-project/lldb/source/Interpreter/CommandAlias.cpp stable/12/contrib/llvm-project/lldb/source/Interpreter/CommandInterpreter.cpp stable/12/contrib/llvm-project/lldb/source/Interpreter/CommandObject.cpp stable/12/contrib/llvm-project/lldb/source/Interpreter/CommandObjectRegexCommand.cpp stable/12/contrib/llvm-project/lldb/source/Interpreter/CommandObjectScript.cpp stable/12/contrib/llvm-project/lldb/source/Interpreter/CommandReturnObject.cpp stable/12/contrib/llvm-project/lldb/source/Interpreter/OptionArgParser.cpp stable/12/contrib/llvm-project/lldb/source/Interpreter/OptionGroupArchitecture.cpp stable/12/contrib/llvm-project/lldb/source/Interpreter/OptionGroupFormat.cpp stable/12/contrib/llvm-project/lldb/source/Interpreter/OptionGroupOutputFile.cpp stable/12/contrib/llvm-project/lldb/source/Interpreter/OptionGroupPlatform.cpp stable/12/contrib/llvm-project/lldb/source/Interpreter/OptionGroupUUID.cpp stable/12/contrib/llvm-project/lldb/source/Interpreter/OptionGroupValueObjectDisplay.cpp stable/12/contrib/llvm-project/lldb/source/Interpreter/OptionGroupVariable.cpp stable/12/contrib/llvm-project/lldb/source/Interpreter/OptionGroupWatchpoint.cpp stable/12/contrib/llvm-project/lldb/source/Interpreter/OptionValue.cpp stable/12/contrib/llvm-project/lldb/source/Interpreter/OptionValueArch.cpp stable/12/contrib/llvm-project/lldb/source/Interpreter/OptionValueBoolean.cpp stable/12/contrib/llvm-project/lldb/source/Interpreter/OptionValueDictionary.cpp stable/12/contrib/llvm-project/lldb/source/Interpreter/OptionValueEnumeration.cpp stable/12/contrib/llvm-project/lldb/source/Interpreter/OptionValueFileSpec.cpp stable/12/contrib/llvm-project/lldb/source/Interpreter/OptionValueFormatEntity.cpp stable/12/contrib/llvm-project/lldb/source/Interpreter/OptionValueLanguage.cpp stable/12/contrib/llvm-project/lldb/source/Interpreter/OptionValueProperties.cpp stable/12/contrib/llvm-project/lldb/source/Interpreter/OptionValueRegex.cpp stable/12/contrib/llvm-project/lldb/source/Interpreter/OptionValueUUID.cpp stable/12/contrib/llvm-project/lldb/source/Interpreter/Options.cpp stable/12/contrib/llvm-project/lldb/source/Interpreter/Property.cpp stable/12/contrib/llvm-project/lldb/source/Interpreter/ScriptInterpreter.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.h stable/12/contrib/llvm-project/lldb/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.h stable/12/contrib/llvm-project/lldb/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.h stable/12/contrib/llvm-project/lldb/source/Plugins/ABI/SysV-arm/ABISysV_arm.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ABI/SysV-arm/ABISysV_arm.h stable/12/contrib/llvm-project/lldb/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.h stable/12/contrib/llvm-project/lldb/source/Plugins/ABI/SysV-hexagon/ABISysV_hexagon.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ABI/SysV-hexagon/ABISysV_hexagon.h stable/12/contrib/llvm-project/lldb/source/Plugins/ABI/SysV-i386/ABISysV_i386.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ABI/SysV-i386/ABISysV_i386.h stable/12/contrib/llvm-project/lldb/source/Plugins/ABI/SysV-mips/ABISysV_mips.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ABI/SysV-mips/ABISysV_mips.h stable/12/contrib/llvm-project/lldb/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.h stable/12/contrib/llvm-project/lldb/source/Plugins/ABI/SysV-ppc/ABISysV_ppc.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ABI/SysV-ppc/ABISysV_ppc.h stable/12/contrib/llvm-project/lldb/source/Plugins/ABI/SysV-ppc64/ABISysV_ppc64.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ABI/SysV-ppc64/ABISysV_ppc64.h stable/12/contrib/llvm-project/lldb/source/Plugins/ABI/SysV-s390x/ABISysV_s390x.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ABI/SysV-s390x/ABISysV_s390x.h stable/12/contrib/llvm-project/lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.h stable/12/contrib/llvm-project/lldb/source/Plugins/ABI/Windows-x86_64/ABIWindows_x86_64.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ABI/Windows-x86_64/ABIWindows_x86_64.h stable/12/contrib/llvm-project/lldb/source/Plugins/Architecture/Mips/ArchitectureMips.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/DynamicLoaderHexagonDYLD.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/HexagonDYLDRendezvous.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.h stable/12/contrib/llvm-project/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.h stable/12/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ASTStructExtractor.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ASTStructExtractor.h stable/12/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.h stable/12/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangDiagnostic.h stable/12/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.h stable/12/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.h stable/12/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionSourceCode.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionSourceCode.h stable/12/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionVariable.h stable/12/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.h stable/12/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangHost.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.h stable/12/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangPersistentVariables.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangPersistentVariables.h stable/12/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.h stable/12/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.h stable/12/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/IRDynamicChecks.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/IRDynamicChecks.h stable/12/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.h stable/12/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ModuleDependencyCollector.h stable/12/contrib/llvm-project/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Instruction/PPC64/EmulateInstructionPPC64.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/InstrumentationRuntime/ASan/ASanRuntime.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/InstrumentationRuntime/MainThreadChecker/MainThreadCheckerRuntime.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/InstrumentationRuntime/TSan/TSanRuntime.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/InstrumentationRuntime/UBSan/UBSanRuntime.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/JITLoader/GDB/JITLoaderGDB.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h stable/12/contrib/llvm-project/lldb/source/Plugins/Language/CPlusPlus/CxxStringTypes.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Language/CPlusPlus/CxxStringTypes.h stable/12/contrib/llvm-project/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Language/CPlusPlus/LibCxxBitset.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Language/CPlusPlus/LibCxxOptional.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Language/ClangCommon/ClangHighlighter.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Language/ObjC/Cocoa.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Language/ObjC/CoreMedia.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Language/ObjC/NSArray.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Language/ObjC/NSDictionary.h stable/12/contrib/llvm-project/lldb/source/Plugins/Language/ObjC/NSError.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Language/ObjC/NSException.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Language/ObjC/NSString.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/LanguageRuntime/CPlusPlus/CPPLanguageRuntime.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/LanguageRuntime/CPlusPlus/CPPLanguageRuntime.h stable/12/contrib/llvm-project/lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.h stable/12/contrib/llvm-project/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.h stable/12/contrib/llvm-project/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeEncodingParser.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeEncodingParser.h stable/12/contrib/llvm-project/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h stable/12/contrib/llvm-project/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptExpressionOpts.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.h stable/12/contrib/llvm-project/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptx86ABIFixups.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ObjectFile/Breakpad/BreakpadRecords.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ObjectFile/Breakpad/BreakpadRecords.h stable/12/contrib/llvm-project/lldb/source/Plugins/ObjectFile/Breakpad/ObjectFileBreakpad.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ObjectFile/Breakpad/ObjectFileBreakpad.h stable/12/contrib/llvm-project/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h stable/12/contrib/llvm-project/lldb/source/Plugins/ObjectFile/JIT/ObjectFileJIT.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ObjectFile/JIT/ObjectFileJIT.h stable/12/contrib/llvm-project/lldb/source/Plugins/OperatingSystem/Python/OperatingSystemPython.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/OperatingSystem/Python/OperatingSystemPython.h stable/12/contrib/llvm-project/lldb/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Platform/NetBSD/PlatformNetBSD.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Platform/OpenBSD/PlatformOpenBSD.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.h stable/12/contrib/llvm-project/lldb/source/Plugins/Process/Darwin/DarwinProcessLauncher.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/Darwin/MachException.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/Darwin/NativeProcessDarwin.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/Darwin/NativeThreadListDarwin.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/FreeBSD/FreeBSDThread.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.h stable/12/contrib/llvm-project/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.h stable/12/contrib/llvm-project/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.h stable/12/contrib/llvm-project/lldb/source/Plugins/Process/NetBSD/NativeThreadNetBSD.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/NetBSD/NativeThreadNetBSD.h stable/12/contrib/llvm-project/lldb/source/Plugins/Process/POSIX/CrashReason.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/POSIX/NativeProcessELF.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/POSIX/NativeProcessELF.h stable/12/contrib/llvm-project/lldb/source/Plugins/Process/POSIX/ProcessMessage.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/Utility/AuxVector.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/Utility/HistoryThread.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/Utility/HistoryUnwind.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/Utility/HistoryUnwind.h stable/12/contrib/llvm-project/lldb/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/Utility/InferiorCallPOSIX.h stable/12/contrib/llvm-project/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.h stable/12/contrib/llvm-project/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_i386.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.h stable/12/contrib/llvm-project/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/Utility/RegisterInfos_arm64.h stable/12/contrib/llvm-project/lldb/source/Plugins/Process/Utility/RegisterInfos_x86_64.h stable/12/contrib/llvm-project/lldb/source/Plugins/Process/Utility/StopInfoMachException.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/Utility/UnwindLLDB.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/Utility/UnwindLLDB.h stable/12/contrib/llvm-project/lldb/source/Plugins/Process/Utility/UnwindMacOSXFrameBackchain.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/Utility/UnwindMacOSXFrameBackchain.h stable/12/contrib/llvm-project/lldb/source/Plugins/Process/Utility/lldb-x86-register-enums.h stable/12/contrib/llvm-project/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/elf-core/RegisterUtilities.h stable/12/contrib/llvm-project/lldb/source/Plugins/Process/elf-core/ThreadElfCore.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/gdb-remote/GDBRemoteClientBase.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/gdb-remote/GDBRemoteClientBase.h stable/12/contrib/llvm-project/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h stable/12/contrib/llvm-project/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h stable/12/contrib/llvm-project/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationHistory.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationHistory.h stable/12/contrib/llvm-project/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationReplayServer.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationReplayServer.h stable/12/contrib/llvm-project/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h stable/12/contrib/llvm-project/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.h stable/12/contrib/llvm-project/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h stable/12/contrib/llvm-project/lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/minidump/MinidumpParser.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/minidump/MinidumpParser.h stable/12/contrib/llvm-project/lldb/source/Plugins/Process/minidump/MinidumpTypes.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/minidump/MinidumpTypes.h stable/12/contrib/llvm-project/lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/minidump/ProcessMinidump.h stable/12/contrib/llvm-project/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM.h stable/12/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/None/ScriptInterpreterNone.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h stable/12/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.h stable/12/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h stable/12/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h stable/12/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/lldb-python.h stable/12/contrib/llvm-project/lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/Breakpad/SymbolFileBreakpad.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/Breakpad/SymbolFileBreakpad.h stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/AppleDWARFIndex.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParser.h stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/DWARFAbbreviationDeclaration.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/DWARFBaseDIE.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/DWARFBaseDIE.h stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.h stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/DWARFContext.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/DWARFContext.h stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIE.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIE.h stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugAranges.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.h stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.h stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/DWARFDeclContext.h stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/DWARFDefines.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/DWARFTypeUnit.h stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.h stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/DebugNamesDWARFIndex.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/HashedNameToDIE.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/HashedNameToDIE.h stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/ManualDWARFIndex.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.h stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwoDwp.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwoDwp.h stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/UniqueDWARFASTType.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/NativePDB/CompileUnitIndex.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/NativePDB/DWARFLocationExpression.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.h stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/NativePDB/PdbFPOProgramToDWARFExpression.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/NativePDB/PdbUtil.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.h stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/NativePDB/UdtRecordCompleter.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/PDB/PDBLocationToDWARFExpression.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.h stable/12/contrib/llvm-project/lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/UnwindAssembly/x86/x86AssemblyInspectionEngine.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/ArmUnwindInfo.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/Block.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/ClangASTContext.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/ClangASTImporter.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/ClangExternalASTSourceCallbacks.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/ClangUtil.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/CompactUnwindInfo.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/CompileUnit.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/CompilerDecl.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/CompilerDeclContext.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/CompilerType.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/CxxModuleHandler.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/DWARFCallFrameInfo.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/DeclVendor.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/Declaration.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/FuncUnwinders.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/Function.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/LineEntry.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/LineTable.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/LocateSymbolFile.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/LocateSymbolFileMacOSX.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/ObjectFile.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/PostfixExpression.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/Symbol.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/SymbolContext.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/SymbolFile.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/SymbolVendor.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/Symtab.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/Type.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/TypeMap.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/TypeSystem.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/UnwindPlan.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/UnwindTable.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/Variable.cpp stable/12/contrib/llvm-project/lldb/source/Target/ABI.cpp stable/12/contrib/llvm-project/lldb/source/Target/ExecutionContext.cpp stable/12/contrib/llvm-project/lldb/source/Target/Language.cpp stable/12/contrib/llvm-project/lldb/source/Target/LanguageRuntime.cpp stable/12/contrib/llvm-project/lldb/source/Target/Memory.cpp stable/12/contrib/llvm-project/lldb/source/Target/ModuleCache.cpp stable/12/contrib/llvm-project/lldb/source/Target/Platform.cpp stable/12/contrib/llvm-project/lldb/source/Target/Process.cpp stable/12/contrib/llvm-project/lldb/source/Target/RegisterContext.cpp stable/12/contrib/llvm-project/lldb/source/Target/RemoteAwarePlatform.cpp stable/12/contrib/llvm-project/lldb/source/Target/SectionLoadList.cpp stable/12/contrib/llvm-project/lldb/source/Target/StackFrame.cpp stable/12/contrib/llvm-project/lldb/source/Target/StackFrameList.cpp stable/12/contrib/llvm-project/lldb/source/Target/StackFrameRecognizer.cpp stable/12/contrib/llvm-project/lldb/source/Target/StopInfo.cpp stable/12/contrib/llvm-project/lldb/source/Target/Target.cpp stable/12/contrib/llvm-project/lldb/source/Target/TargetList.cpp stable/12/contrib/llvm-project/lldb/source/Target/Thread.cpp stable/12/contrib/llvm-project/lldb/source/Target/ThreadList.cpp stable/12/contrib/llvm-project/lldb/source/Target/ThreadPlan.cpp stable/12/contrib/llvm-project/lldb/source/Target/ThreadPlanBase.cpp stable/12/contrib/llvm-project/lldb/source/Target/ThreadPlanCallFunction.cpp stable/12/contrib/llvm-project/lldb/source/Target/ThreadPlanCallUserExpression.cpp stable/12/contrib/llvm-project/lldb/source/Target/ThreadPlanPython.cpp stable/12/contrib/llvm-project/lldb/source/Target/ThreadPlanRunToAddress.cpp stable/12/contrib/llvm-project/lldb/source/Target/ThreadPlanShouldStopHere.cpp stable/12/contrib/llvm-project/lldb/source/Target/ThreadPlanStepInRange.cpp stable/12/contrib/llvm-project/lldb/source/Target/ThreadPlanStepInstruction.cpp stable/12/contrib/llvm-project/lldb/source/Target/ThreadPlanStepOut.cpp stable/12/contrib/llvm-project/lldb/source/Target/ThreadPlanStepOverBreakpoint.cpp stable/12/contrib/llvm-project/lldb/source/Target/ThreadPlanStepOverRange.cpp stable/12/contrib/llvm-project/lldb/source/Target/ThreadPlanStepRange.cpp stable/12/contrib/llvm-project/lldb/source/Target/ThreadPlanStepThrough.cpp stable/12/contrib/llvm-project/lldb/source/Target/ThreadPlanStepUntil.cpp stable/12/contrib/llvm-project/lldb/source/Target/ThreadPlanTracer.cpp stable/12/contrib/llvm-project/lldb/source/Utility/ArchSpec.cpp stable/12/contrib/llvm-project/lldb/source/Utility/Args.cpp stable/12/contrib/llvm-project/lldb/source/Utility/Baton.cpp stable/12/contrib/llvm-project/lldb/source/Utility/Broadcaster.cpp stable/12/contrib/llvm-project/lldb/source/Utility/CompletionRequest.cpp stable/12/contrib/llvm-project/lldb/source/Utility/ConstString.cpp stable/12/contrib/llvm-project/lldb/source/Utility/DataBufferLLVM.cpp stable/12/contrib/llvm-project/lldb/source/Utility/DataEncoder.cpp stable/12/contrib/llvm-project/lldb/source/Utility/DataExtractor.cpp stable/12/contrib/llvm-project/lldb/source/Utility/Environment.cpp stable/12/contrib/llvm-project/lldb/source/Utility/FileSpec.cpp stable/12/contrib/llvm-project/lldb/source/Utility/LLDBAssert.cpp stable/12/contrib/llvm-project/lldb/source/Utility/Listener.cpp stable/12/contrib/llvm-project/lldb/source/Utility/Log.cpp stable/12/contrib/llvm-project/lldb/source/Utility/Logging.cpp stable/12/contrib/llvm-project/lldb/source/Utility/ProcessInfo.cpp stable/12/contrib/llvm-project/lldb/source/Utility/RegisterValue.cpp stable/12/contrib/llvm-project/lldb/source/Utility/RegularExpression.cpp stable/12/contrib/llvm-project/lldb/source/Utility/Reproducer.cpp stable/12/contrib/llvm-project/lldb/source/Utility/Scalar.cpp stable/12/contrib/llvm-project/lldb/source/Utility/SelectHelper.cpp stable/12/contrib/llvm-project/lldb/source/Utility/Status.cpp stable/12/contrib/llvm-project/lldb/source/Utility/Stream.cpp stable/12/contrib/llvm-project/lldb/source/Utility/StreamString.cpp stable/12/contrib/llvm-project/lldb/source/Utility/StringExtractor.cpp stable/12/contrib/llvm-project/lldb/source/Utility/StringLexer.cpp stable/12/contrib/llvm-project/lldb/source/Utility/StringList.cpp stable/12/contrib/llvm-project/lldb/source/Utility/StructuredData.cpp stable/12/contrib/llvm-project/lldb/source/Utility/VMRange.cpp stable/12/contrib/llvm-project/lldb/tools/argdumper/argdumper.cpp stable/12/contrib/llvm-project/lldb/tools/compact-unwind/compact-unwind-dumper.c stable/12/contrib/llvm-project/lldb/tools/driver/Driver.cpp stable/12/contrib/llvm-project/lldb/tools/driver/Options.td stable/12/contrib/llvm-project/lldb/tools/driver/Platform.h stable/12/contrib/llvm-project/lldb/tools/lldb-instr/Instrument.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-server/LLDBServerUtilities.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-server/lldb-gdbserver.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-server/lldb-platform.cpp stable/12/contrib/llvm-project/lldb/tools/lldb-server/lldb-server.cpp stable/12/contrib/llvm-project/lldb/utils/TableGen/LLDBOptionDefEmitter.cpp stable/12/contrib/llvm-project/lldb/utils/TableGen/LLDBTableGen.cpp stable/12/contrib/llvm-project/lldb/utils/TableGen/LLDBTableGenBackends.h stable/12/contrib/llvm-project/llvm/include/llvm-c/Analysis.h stable/12/contrib/llvm-project/llvm/include/llvm-c/BitReader.h stable/12/contrib/llvm-project/llvm/include/llvm-c/BitWriter.h stable/12/contrib/llvm-project/llvm/include/llvm-c/Comdat.h stable/12/contrib/llvm-project/llvm/include/llvm-c/Core.h stable/12/contrib/llvm-project/llvm/include/llvm-c/DebugInfo.h stable/12/contrib/llvm-project/llvm/include/llvm-c/Disassembler.h stable/12/contrib/llvm-project/llvm/include/llvm-c/Error.h stable/12/contrib/llvm-project/llvm/include/llvm-c/ErrorHandling.h stable/12/contrib/llvm-project/llvm/include/llvm-c/ExecutionEngine.h stable/12/contrib/llvm-project/llvm/include/llvm-c/IRReader.h stable/12/contrib/llvm-project/llvm/include/llvm-c/Initialization.h stable/12/contrib/llvm-project/llvm/include/llvm-c/LinkTimeOptimizer.h stable/12/contrib/llvm-project/llvm/include/llvm-c/Linker.h stable/12/contrib/llvm-project/llvm/include/llvm-c/Object.h stable/12/contrib/llvm-project/llvm/include/llvm-c/OrcBindings.h stable/12/contrib/llvm-project/llvm/include/llvm-c/Remarks.h stable/12/contrib/llvm-project/llvm/include/llvm-c/Support.h stable/12/contrib/llvm-project/llvm/include/llvm-c/Target.h stable/12/contrib/llvm-project/llvm/include/llvm-c/TargetMachine.h stable/12/contrib/llvm-project/llvm/include/llvm-c/Transforms/AggressiveInstCombine.h stable/12/contrib/llvm-project/llvm/include/llvm-c/Transforms/Coroutines.h stable/12/contrib/llvm-project/llvm/include/llvm-c/Transforms/IPO.h stable/12/contrib/llvm-project/llvm/include/llvm-c/Transforms/InstCombine.h stable/12/contrib/llvm-project/llvm/include/llvm-c/Transforms/PassManagerBuilder.h stable/12/contrib/llvm-project/llvm/include/llvm-c/Transforms/Scalar.h stable/12/contrib/llvm-project/llvm/include/llvm-c/Transforms/Utils.h stable/12/contrib/llvm-project/llvm/include/llvm-c/Transforms/Vectorize.h stable/12/contrib/llvm-project/llvm/include/llvm-c/Types.h stable/12/contrib/llvm-project/llvm/include/llvm-c/lto.h stable/12/contrib/llvm-project/llvm/include/llvm/ADT/APFloat.h stable/12/contrib/llvm-project/llvm/include/llvm/ADT/APInt.h stable/12/contrib/llvm-project/llvm/include/llvm/ADT/Any.h stable/12/contrib/llvm-project/llvm/include/llvm/ADT/ArrayRef.h stable/12/contrib/llvm-project/llvm/include/llvm/ADT/BitVector.h stable/12/contrib/llvm-project/llvm/include/llvm/ADT/DenseMap.h stable/12/contrib/llvm-project/llvm/include/llvm/ADT/DenseMapInfo.h stable/12/contrib/llvm-project/llvm/include/llvm/ADT/FoldingSet.h stable/12/contrib/llvm-project/llvm/include/llvm/ADT/Hashing.h stable/12/contrib/llvm-project/llvm/include/llvm/ADT/ImmutableSet.h stable/12/contrib/llvm-project/llvm/include/llvm/ADT/IntervalMap.h stable/12/contrib/llvm-project/llvm/include/llvm/ADT/Optional.h stable/12/contrib/llvm-project/llvm/include/llvm/ADT/PointerIntPair.h stable/12/contrib/llvm-project/llvm/include/llvm/ADT/PointerUnion.h stable/12/contrib/llvm-project/llvm/include/llvm/ADT/SCCIterator.h stable/12/contrib/llvm-project/llvm/include/llvm/ADT/STLExtras.h stable/12/contrib/llvm-project/llvm/include/llvm/ADT/SmallBitVector.h stable/12/contrib/llvm-project/llvm/include/llvm/ADT/SmallPtrSet.h stable/12/contrib/llvm-project/llvm/include/llvm/ADT/SmallSet.h stable/12/contrib/llvm-project/llvm/include/llvm/ADT/SmallVector.h stable/12/contrib/llvm-project/llvm/include/llvm/ADT/Statistic.h stable/12/contrib/llvm-project/llvm/include/llvm/ADT/StringExtras.h stable/12/contrib/llvm-project/llvm/include/llvm/ADT/StringMap.h stable/12/contrib/llvm-project/llvm/include/llvm/ADT/StringRef.h stable/12/contrib/llvm-project/llvm/include/llvm/ADT/StringSet.h stable/12/contrib/llvm-project/llvm/include/llvm/ADT/TinyPtrVector.h stable/12/contrib/llvm-project/llvm/include/llvm/ADT/Triple.h stable/12/contrib/llvm-project/llvm/include/llvm/ADT/Twine.h stable/12/contrib/llvm-project/llvm/include/llvm/ADT/iterator.h stable/12/contrib/llvm-project/llvm/include/llvm/ADT/iterator_range.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/AliasAnalysis.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/AliasSetTracker.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/AssumptionCache.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/BranchProbabilityInfo.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/CFG.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/CFLAndersAliasAnalysis.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/CFLSteensAliasAnalysis.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/CGSCCPassManager.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/CaptureTracking.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/DOTGraphTraitsPass.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/DependenceAnalysis.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/DivergenceAnalysis.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/GlobalsModRef.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/GuardUtils.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/InstructionSimplify.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/IntervalPartition.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/LazyCallGraph.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/LazyValueInfo.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/LegacyDivergenceAnalysis.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/Loads.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/LoopAccessAnalysis.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/LoopAnalysisManager.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/LoopInfo.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/LoopInfoImpl.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/LoopPass.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/MemoryBuiltins.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/MemorySSA.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/MemorySSAUpdater.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/MustExecute.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/Passes.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/PhiValues.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/PostDominators.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/ProfileSummaryInfo.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/PtrUseVisitor.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/RegionInfoImpl.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/ScalarEvolution.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/TargetLibraryInfo.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/TargetTransformInfo.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/TypeMetadataUtils.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/Utils/Local.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/ValueTracking.h stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/VecFuncs.def stable/12/contrib/llvm-project/llvm/include/llvm/Analysis/VectorUtils.h stable/12/contrib/llvm-project/llvm/include/llvm/BinaryFormat/COFF.h stable/12/contrib/llvm-project/llvm/include/llvm/BinaryFormat/Dwarf.def stable/12/contrib/llvm-project/llvm/include/llvm/BinaryFormat/Dwarf.h stable/12/contrib/llvm-project/llvm/include/llvm/BinaryFormat/ELF.h stable/12/contrib/llvm-project/llvm/include/llvm/BinaryFormat/ELFRelocs/AArch64.def stable/12/contrib/llvm-project/llvm/include/llvm/BinaryFormat/ELFRelocs/PowerPC64.def stable/12/contrib/llvm-project/llvm/include/llvm/BinaryFormat/MachO.h stable/12/contrib/llvm-project/llvm/include/llvm/BinaryFormat/Magic.h stable/12/contrib/llvm-project/llvm/include/llvm/BinaryFormat/Minidump.h stable/12/contrib/llvm-project/llvm/include/llvm/BinaryFormat/MinidumpConstants.def stable/12/contrib/llvm-project/llvm/include/llvm/BinaryFormat/Wasm.h stable/12/contrib/llvm-project/llvm/include/llvm/BinaryFormat/XCOFF.h stable/12/contrib/llvm-project/llvm/include/llvm/Bitcode/BitcodeAnalyzer.h stable/12/contrib/llvm-project/llvm/include/llvm/Bitcode/BitcodeWriter.h stable/12/contrib/llvm-project/llvm/include/llvm/Bitcode/LLVMBitCodes.h stable/12/contrib/llvm-project/llvm/include/llvm/Bitstream/BitCodes.h stable/12/contrib/llvm-project/llvm/include/llvm/Bitstream/BitstreamReader.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/AccelTable.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/AsmPrinter.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/BasicTTIImpl.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/CallingConvLower.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/CommandFlags.inc stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/DFAPacketizer.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/DIE.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/FastISel.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/FaultMaps.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/FunctionLoweringInfo.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/GlobalISel/CSEInfo.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/GlobalISel/CallLowering.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/GlobalISel/CombinerInfo.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/GlobalISel/ConstantFoldingMIRBuilder.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelector.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/GlobalISel/Legalizer.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/GlobalISel/Localizer.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/GlobalISel/MIPatternMatch.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/GlobalISel/RegisterBankInfo.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/GlobalISel/Utils.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/ISDOpcodes.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/LiveInterval.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/LiveIntervalUnion.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/LiveIntervals.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/LivePhysRegs.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/LiveRegUnits.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/LiveStacks.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/LiveVariables.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/LowLevelType.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MIRParser/MIParser.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MIRParser/MIRParser.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MIRYamlMapping.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineBasicBlock.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineBlockFrequencyInfo.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineBranchProbabilityInfo.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineCombinerPattern.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineDominators.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineFrameInfo.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineFunction.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineInstr.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineInstrBuilder.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineInstrBundle.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineLoopInfo.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineMemOperand.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineModuleInfo.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineOperand.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineOptimizationRemarkEmitter.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineOutliner.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachinePipeliner.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachinePostDominators.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineRegionInfo.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineRegisterInfo.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineScheduler.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/PBQP/Math.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/ParallelCG.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/Passes.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/PseudoSourceValue.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/ReachingDefAnalysis.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/Register.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/RegisterClassInfo.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/RegisterPressure.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/RegisterScavenging.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/RegisterUsageInfo.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/ScheduleDAGInstrs.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/SelectionDAG.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/SelectionDAGISel.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/SelectionDAGNodes.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/SlotIndexes.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/StackMaps.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/StackProtector.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/SwitchLoweringUtils.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/TailDuplicator.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/TargetCallingConv.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/TargetFrameLowering.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/TargetInstrInfo.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/TargetLowering.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/TargetPassConfig.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/TargetRegisterInfo.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/TargetSchedule.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/TargetSubtargetInfo.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/ValueTypes.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/ValueTypes.td stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/VirtRegMap.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/CodeView/CVTypeVisitor.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/CodeView/CodeViewRecordIO.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/CodeView/CodeViewRegisters.def stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/CodeView/EnumTables.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/CodeView/TypeDeserializer.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/CodeView/TypeRecord.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/CodeView/TypeRecordHelpers.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/CodeView/TypeRecordMapping.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/CodeView/TypeVisitorCallbackPipeline.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/DIContext.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/DWARF/DWARFAbbreviationDeclaration.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/DWARF/DWARFAddressRange.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/DWARF/DWARFAttribute.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/DWARF/DWARFDataExtractor.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAbbrev.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAddr.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugArangeSet.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAranges.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugInfoEntry.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugPubTable.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRnglists.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/DWARF/DWARFExpression.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/DWARF/DWARFFormValue.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/DWARF/DWARFObject.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/DWARF/DWARFTypeUnit.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/DWARF/DWARFUnitIndex.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/DWARF/DWARFVerifier.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/GSYM/FileEntry.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/GSYM/FunctionInfo.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/GSYM/InlineInfo.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/GSYM/LineEntry.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/GSYM/Range.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/GSYM/StringTable.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/PDB/GenericError.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptor.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleList.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/PDB/Native/HashTable.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/PDB/Native/SymbolCache.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h stable/12/contrib/llvm-project/llvm/include/llvm/DebugInfo/Symbolize/Symbolize.h stable/12/contrib/llvm-project/llvm/include/llvm/Demangle/Demangle.h stable/12/contrib/llvm-project/llvm/include/llvm/Demangle/DemangleConfig.h stable/12/contrib/llvm-project/llvm/include/llvm/Demangle/ItaniumDemangle.h stable/12/contrib/llvm-project/llvm/include/llvm/Demangle/MicrosoftDemangle.h stable/12/contrib/llvm-project/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h stable/12/contrib/llvm-project/llvm/include/llvm/Demangle/Utility.h stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/JITLink/EHFrameSupport.h stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/JITLink/JITLinkMemoryManager.h stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/JITLink/MachO_x86_64.h stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/JITSymbol.h stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/CompileUtils.h stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/LLJIT.h stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/LambdaResolver.h stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Layer.h stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Legacy.h stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/OrcABISupport.h stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/OrcError.h stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.h stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/RemoteObjectLayer.h stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/ThreadSafeModule.h stable/12/contrib/llvm-project/llvm/include/llvm/ExecutionEngine/RuntimeDyld.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/Argument.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/Attributes.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/Attributes.td stable/12/contrib/llvm-project/llvm/include/llvm/IR/AutoUpgrade.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/BasicBlock.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/CallSite.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/CallingConv.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/Constant.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/ConstantRange.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/Constants.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/DIBuilder.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/DataLayout.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/DebugInfoFlags.def stable/12/contrib/llvm-project/llvm/include/llvm/IR/DebugInfoMetadata.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/DerivedTypes.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/DiagnosticInfo.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/Dominators.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/Function.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/GlobalAlias.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/GlobalIFunc.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/GlobalIndirectSymbol.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/GlobalObject.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/GlobalValue.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/GlobalVariable.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/IRBuilder.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/IRPrintingPasses.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/InstVisitor.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/InstrTypes.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/Instruction.def stable/12/contrib/llvm-project/llvm/include/llvm/IR/Instruction.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/Instructions.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/IntrinsicInst.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/Intrinsics.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/Intrinsics.td stable/12/contrib/llvm-project/llvm/include/llvm/IR/IntrinsicsAArch64.td stable/12/contrib/llvm-project/llvm/include/llvm/IR/IntrinsicsAMDGPU.td stable/12/contrib/llvm-project/llvm/include/llvm/IR/IntrinsicsARM.td stable/12/contrib/llvm-project/llvm/include/llvm/IR/IntrinsicsBPF.td stable/12/contrib/llvm-project/llvm/include/llvm/IR/IntrinsicsMips.td stable/12/contrib/llvm-project/llvm/include/llvm/IR/IntrinsicsNVVM.td stable/12/contrib/llvm-project/llvm/include/llvm/IR/IntrinsicsRISCV.td stable/12/contrib/llvm-project/llvm/include/llvm/IR/IntrinsicsWebAssembly.td stable/12/contrib/llvm-project/llvm/include/llvm/IR/IntrinsicsX86.td stable/12/contrib/llvm-project/llvm/include/llvm/IR/LLVMContext.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/LegacyPassManager.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/LegacyPassManagers.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/MDBuilder.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/Metadata.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/Module.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/ModuleSummaryIndex.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/ModuleSummaryIndexYAML.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/NoFolder.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/Operator.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/PassManager.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/PassManagerInternal.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/PatternMatch.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/RemarkStreamer.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/RuntimeLibcalls.def stable/12/contrib/llvm-project/llvm/include/llvm/IR/Type.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/User.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/Value.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/ValueHandle.h stable/12/contrib/llvm-project/llvm/include/llvm/IR/ValueMap.h stable/12/contrib/llvm-project/llvm/include/llvm/InitializePasses.h stable/12/contrib/llvm-project/llvm/include/llvm/LTO/Config.h stable/12/contrib/llvm-project/llvm/include/llvm/LTO/LTO.h stable/12/contrib/llvm-project/llvm/include/llvm/LTO/LTOBackend.h stable/12/contrib/llvm-project/llvm/include/llvm/LTO/legacy/LTOCodeGenerator.h stable/12/contrib/llvm-project/llvm/include/llvm/LinkAllPasses.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCAsmBackend.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCAsmInfo.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCAsmInfoELF.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCAsmInfoXCOFF.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCAsmMacro.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCAssembler.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCCodeEmitter.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCContext.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCDirectives.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCDisassembler/MCDisassembler.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCDwarf.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCELFStreamer.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCExpr.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCFixup.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCFixupKindInfo.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCFragment.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCInst.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCInstPrinter.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCInstrAnalysis.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCInstrDesc.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCLinkerOptimizationHint.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCMachObjectWriter.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCObjectFileInfo.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCObjectStreamer.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCParser/AsmCond.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCParser/MCParsedAsmOperand.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCParser/MCTargetAsmParser.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCRegisterInfo.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCSection.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCSectionXCOFF.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCStreamer.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCSubtargetInfo.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCSymbol.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCSymbolWasm.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCSymbolXCOFF.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCTargetOptions.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCTargetOptionsCommandFlags.inc stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCWasmObjectWriter.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/MCXCOFFStreamer.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/StringTableBuilder.h stable/12/contrib/llvm-project/llvm/include/llvm/MC/SubtargetFeature.h stable/12/contrib/llvm-project/llvm/include/llvm/MCA/Context.h stable/12/contrib/llvm-project/llvm/include/llvm/MCA/HardwareUnits/LSUnit.h stable/12/contrib/llvm-project/llvm/include/llvm/MCA/HardwareUnits/RegisterFile.h stable/12/contrib/llvm-project/llvm/include/llvm/MCA/HardwareUnits/ResourceManager.h stable/12/contrib/llvm-project/llvm/include/llvm/MCA/HardwareUnits/RetireControlUnit.h stable/12/contrib/llvm-project/llvm/include/llvm/MCA/HardwareUnits/Scheduler.h stable/12/contrib/llvm-project/llvm/include/llvm/MCA/Instruction.h stable/12/contrib/llvm-project/llvm/include/llvm/MCA/SourceMgr.h stable/12/contrib/llvm-project/llvm/include/llvm/MCA/Stages/RetireStage.h stable/12/contrib/llvm-project/llvm/include/llvm/Object/Archive.h stable/12/contrib/llvm-project/llvm/include/llvm/Object/Binary.h stable/12/contrib/llvm-project/llvm/include/llvm/Object/COFF.h stable/12/contrib/llvm-project/llvm/include/llvm/Object/ELF.h stable/12/contrib/llvm-project/llvm/include/llvm/Object/ELFObjectFile.h stable/12/contrib/llvm-project/llvm/include/llvm/Object/ELFTypes.h stable/12/contrib/llvm-project/llvm/include/llvm/Object/MachO.h stable/12/contrib/llvm-project/llvm/include/llvm/Object/MachOUniversal.h stable/12/contrib/llvm-project/llvm/include/llvm/Object/Minidump.h stable/12/contrib/llvm-project/llvm/include/llvm/Object/ObjectFile.h stable/12/contrib/llvm-project/llvm/include/llvm/Object/StackMapParser.h stable/12/contrib/llvm-project/llvm/include/llvm/Object/Wasm.h stable/12/contrib/llvm-project/llvm/include/llvm/Object/WindowsResource.h stable/12/contrib/llvm-project/llvm/include/llvm/Object/XCOFFObjectFile.h stable/12/contrib/llvm-project/llvm/include/llvm/ObjectYAML/DWARFYAML.h stable/12/contrib/llvm-project/llvm/include/llvm/ObjectYAML/ELFYAML.h stable/12/contrib/llvm-project/llvm/include/llvm/ObjectYAML/MachOYAML.h stable/12/contrib/llvm-project/llvm/include/llvm/ObjectYAML/MinidumpYAML.h stable/12/contrib/llvm-project/llvm/include/llvm/ObjectYAML/WasmYAML.h stable/12/contrib/llvm-project/llvm/include/llvm/ObjectYAML/YAML.h stable/12/contrib/llvm-project/llvm/include/llvm/Pass.h stable/12/contrib/llvm-project/llvm/include/llvm/Passes/PassBuilder.h stable/12/contrib/llvm-project/llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h stable/12/contrib/llvm-project/llvm/include/llvm/ProfileData/Coverage/CoverageMappingWriter.h stable/12/contrib/llvm-project/llvm/include/llvm/ProfileData/InstrProf.h stable/12/contrib/llvm-project/llvm/include/llvm/ProfileData/InstrProfData.inc stable/12/contrib/llvm-project/llvm/include/llvm/ProfileData/InstrProfReader.h stable/12/contrib/llvm-project/llvm/include/llvm/ProfileData/SampleProf.h stable/12/contrib/llvm-project/llvm/include/llvm/ProfileData/SampleProfReader.h stable/12/contrib/llvm-project/llvm/include/llvm/ProfileData/SampleProfWriter.h stable/12/contrib/llvm-project/llvm/include/llvm/Remarks/Remark.h stable/12/contrib/llvm-project/llvm/include/llvm/Remarks/RemarkFormat.h stable/12/contrib/llvm-project/llvm/include/llvm/Remarks/RemarkParser.h stable/12/contrib/llvm-project/llvm/include/llvm/Remarks/RemarkSerializer.h stable/12/contrib/llvm-project/llvm/include/llvm/Remarks/RemarkStringTable.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/AArch64TargetParser.def stable/12/contrib/llvm-project/llvm/include/llvm/Support/AArch64TargetParser.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/AMDGPUMetadata.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/ARMTargetParser.def stable/12/contrib/llvm-project/llvm/include/llvm/Support/AlignOf.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/Allocator.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/BinaryStreamArray.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/BinaryStreamReader.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/BinaryStreamRef.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/CRC.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/CodeGen.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/CommandLine.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/Compiler.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/CrashRecoveryContext.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/DataExtractor.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/Endian.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/Error.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/FileCheck.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/FileOutputBuffer.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/FileSystem.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/FileUtilities.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/Format.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/FormatVariadic.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/GenericDomTree.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/GenericDomTreeConstruction.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/GlobPattern.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/Host.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/InitLLVM.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/JSON.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/KnownBits.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/LineIterator.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/LockFileManager.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/LowLevelTypeImpl.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/MachineValueType.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/ManagedStatic.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/MathExtras.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/Memory.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/Mutex.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/OnDiskHashTable.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/Parallel.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/Path.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/Process.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/RWMutex.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/Regex.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/Registry.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/SHA1.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/Signals.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/SourceMgr.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/SpecialCaseList.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/SwapByteOrder.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/TargetOpcodes.def stable/12/contrib/llvm-project/llvm/include/llvm/Support/TargetRegistry.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/Threading.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/TimeProfiler.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/Timer.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/TrailingObjects.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/UnicodeCharRanges.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/VersionTuple.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/VirtualFileSystem.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/Win64EH.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/X86TargetParser.def stable/12/contrib/llvm-project/llvm/include/llvm/Support/YAMLTraits.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/circular_raw_ostream.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/raw_ostream.h stable/12/contrib/llvm-project/llvm/include/llvm/Support/type_traits.h stable/12/contrib/llvm-project/llvm/include/llvm/TableGen/Error.h stable/12/contrib/llvm-project/llvm/include/llvm/TableGen/Record.h stable/12/contrib/llvm-project/llvm/include/llvm/Target/GenericOpcodes.td stable/12/contrib/llvm-project/llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td stable/12/contrib/llvm-project/llvm/include/llvm/Target/GlobalISel/Target.td stable/12/contrib/llvm-project/llvm/include/llvm/Target/Target.td stable/12/contrib/llvm-project/llvm/include/llvm/Target/TargetCallingConv.td stable/12/contrib/llvm-project/llvm/include/llvm/Target/TargetItinerary.td stable/12/contrib/llvm-project/llvm/include/llvm/Target/TargetLoweringObjectFile.h stable/12/contrib/llvm-project/llvm/include/llvm/Target/TargetMachine.h stable/12/contrib/llvm-project/llvm/include/llvm/Target/TargetOptions.h stable/12/contrib/llvm-project/llvm/include/llvm/Target/TargetSchedule.td stable/12/contrib/llvm-project/llvm/include/llvm/Target/TargetSelectionDAG.td stable/12/contrib/llvm-project/llvm/include/llvm/TextAPI/MachO/Architecture.h stable/12/contrib/llvm-project/llvm/include/llvm/TextAPI/MachO/ArchitectureSet.h stable/12/contrib/llvm-project/llvm/include/llvm/TextAPI/MachO/InterfaceFile.h stable/12/contrib/llvm-project/llvm/include/llvm/TextAPI/MachO/Symbol.h stable/12/contrib/llvm-project/llvm/include/llvm/TextAPI/MachO/TextAPIReader.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Coroutines.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/IPO/Attributor.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/IPO/FunctionImport.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/IPO/GlobalDCE.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/IPO/HotColdSplitting.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/IPO/LowerTypeTests.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/IPO/PassManagerBuilder.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/IPO/WholeProgramDevirt.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/InstCombine/InstCombine.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/InstCombine/InstCombineWorklist.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Instrumentation.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Instrumentation/InstrProfiling.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Instrumentation/MemorySanitizer.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Instrumentation/ThreadSanitizer.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/CallSiteSplitting.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/ConstantHoisting.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/Float2Int.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/GVN.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/GVNExpression.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/JumpThreading.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/LICM.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/LoopPassManager.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/LoopUnrollAndJamPass.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/LoopUnrollPass.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/MergedLoadStoreMotion.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/Reassociate.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/SCCP.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Utils.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/BuildLibCalls.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/BypassSlowDivision.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/CodeExtractor.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/FunctionImportUtils.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/GuardUtils.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/LoopUtils.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/ModuleUtils.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/PredicateInfo.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/SimplifyLibCalls.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/SizeOpts.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/UnrollLoop.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/ValueMapper.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Vectorize.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Vectorize/LoopVectorize.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Vectorize/SLPVectorizer.h stable/12/contrib/llvm-project/llvm/include/llvm/XRay/FDRRecordProducer.h stable/12/contrib/llvm-project/llvm/include/llvm/XRay/FDRRecords.h stable/12/contrib/llvm-project/llvm/include/llvm/XRay/FileHeaderReader.h stable/12/contrib/llvm-project/llvm/include/llvm/module.modulemap stable/12/contrib/llvm-project/llvm/lib/Analysis/AliasAnalysis.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/AliasAnalysisEvaluator.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/AliasSetTracker.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/Analysis.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/AssumptionCache.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/BasicAliasAnalysis.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/BlockFrequencyInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/BranchProbabilityInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/CFG.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/CFGPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/CFLAndersAliasAnalysis.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/CFLSteensAliasAnalysis.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/CallGraph.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/CallPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/CaptureTracking.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/ConstantFolding.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/CostModel.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/Delinearization.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/DemandedBits.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/DependenceAnalysis.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/DivergenceAnalysis.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/DomPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/DomTreeUpdater.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/DominanceFrontier.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/GlobalsModRef.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/GuardUtils.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/IVDescriptors.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/IVUsers.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/IndirectCallPromotionAnalysis.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/InlineCost.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/InstCount.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/InstructionPrecedenceTracking.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/InstructionSimplify.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/IntervalPartition.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/LazyBlockFrequencyInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/LazyBranchProbabilityInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/LazyCallGraph.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/LazyValueInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/LegacyDivergenceAnalysis.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/Lint.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/Loads.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/LoopAccessAnalysis.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/LoopAnalysisManager.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/LoopInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/LoopPass.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/LoopUnrollAnalyzer.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/MemDepPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/MemDerefPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/MemoryBuiltins.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/MemoryLocation.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/MemorySSA.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/MemorySSAUpdater.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/ModuleDebugInfoPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/MustExecute.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/OptimizationRemarkEmitter.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/OrderedInstructions.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/PhiValues.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/PostDominators.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/ProfileSummaryInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/RegionInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/RegionPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/ScalarEvolution.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/ScalarEvolutionAliasAnalysis.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/ScalarEvolutionExpander.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/ScopedNoAliasAA.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/StackSafetyAnalysis.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/SyncDependenceAnalysis.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/TargetLibraryInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/TargetTransformInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/TypeMetadataUtils.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/ValueTracking.cpp stable/12/contrib/llvm-project/llvm/lib/Analysis/VectorUtils.cpp stable/12/contrib/llvm-project/llvm/lib/AsmParser/LLLexer.cpp stable/12/contrib/llvm-project/llvm/lib/AsmParser/LLParser.cpp stable/12/contrib/llvm-project/llvm/lib/AsmParser/LLParser.h stable/12/contrib/llvm-project/llvm/lib/AsmParser/LLToken.h stable/12/contrib/llvm-project/llvm/lib/AsmParser/Parser.cpp stable/12/contrib/llvm-project/llvm/lib/BinaryFormat/AMDGPUMetadataVerifier.cpp stable/12/contrib/llvm-project/llvm/lib/BinaryFormat/Dwarf.cpp stable/12/contrib/llvm-project/llvm/lib/BinaryFormat/Magic.cpp stable/12/contrib/llvm-project/llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp stable/12/contrib/llvm-project/llvm/lib/Bitcode/Reader/BitcodeReader.cpp stable/12/contrib/llvm-project/llvm/lib/Bitcode/Reader/MetadataLoader.cpp stable/12/contrib/llvm-project/llvm/lib/Bitcode/Writer/BitWriter.cpp stable/12/contrib/llvm-project/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp stable/12/contrib/llvm-project/llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp stable/12/contrib/llvm-project/llvm/lib/Bitstream/Reader/BitstreamReader.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/Analysis.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/ByteStreamer.h stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/DIE.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/DebugLocStream.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/DebugLocStream.h stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.h stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/DwarfFile.h stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/EHStreamer.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/ErlangGCPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/WinCFGuard.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/WinCFGuard.h stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/WinException.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/AtomicExpandPass.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/BranchFolding.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/BranchFolding.h stable/12/contrib/llvm-project/llvm/lib/CodeGen/BranchRelaxation.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/BreakFalseDeps.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/CFIInstrInserter.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/CalcSpillWeights.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/CallingConvLower.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/CodeGen.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/CodeGenPrepare.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/DFAPacketizer.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/DeadMachineInstructionElim.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/DetectDeadLanes.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/DwarfEHPrepare.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/EarlyIfConversion.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/EdgeBundles.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/ExecutionDomainFix.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/ExpandMemCmp.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/ExpandPostRAPseudos.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/ExpandReductions.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/FEntryInserter.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/FaultMaps.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/FinalizeISel.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/FuncletLayout.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/GCMetadata.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/GCRootLowering.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/GlobalISel/CSEInfo.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/GlobalISel/CallLowering.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/GlobalISel/Combiner.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/GlobalISel/InstructionSelect.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/GlobalISel/InstructionSelector.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/GlobalISel/Legalizer.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/GlobalISel/Localizer.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/GlobalISel/RegisterBank.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/GlobalISel/Utils.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/GlobalMerge.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/HardwareLoops.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/IfConversion.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/ImplicitNullChecks.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/IndirectBrExpandPass.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/InlineSpiller.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/InterleavedAccessPass.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/InterleavedLoadCombinePass.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/IntrinsicLowering.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/LLVMTargetMachine.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/LazyMachineBlockFrequencyInfo.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/LexicalScopes.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/LiveDebugValues.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/LiveDebugVariables.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/LiveInterval.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/LiveIntervals.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/LivePhysRegs.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/LiveRangeCalc.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/LiveRangeEdit.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/LiveRangeShrink.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/LiveRegMatrix.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/LiveRegUnits.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/LiveStacks.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/LiveVariables.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/LocalStackSlotAllocation.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/LowLevelType.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/LowerEmuTLS.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MIRCanonicalizerPass.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MIRParser/MILexer.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MIRParser/MILexer.h stable/12/contrib/llvm-project/llvm/lib/CodeGen/MIRParser/MIParser.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MIRParser/MIRParser.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MIRPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MIRPrintingPass.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MachineBasicBlock.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MachineBlockPlacement.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MachineBranchProbabilityInfo.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MachineCSE.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MachineCombiner.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MachineCopyPropagation.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MachineDominanceFrontier.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MachineDominators.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MachineFrameInfo.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MachineFunction.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MachineFunctionPass.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MachineFunctionPrinterPass.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MachineInstr.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MachineInstrBundle.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MachineLICM.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MachineLoopInfo.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MachineModuleInfo.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MachineOperand.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MachineOutliner.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MachinePipeliner.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MachinePostDominators.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MachineRegionInfo.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MachineRegisterInfo.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MachineSSAUpdater.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MachineScheduler.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MachineSink.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MachineTraceMetrics.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MachineVerifier.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MacroFusion.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/OptimizePHIs.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/PHIElimination.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/ParallelCG.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/PatchableFunction.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/PeepholeOptimizer.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/PostRAHazardRecognizer.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/PostRASchedulerList.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/ProcessImplicitDefs.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/PrologEpilogInserter.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/PseudoSourceValue.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/ReachingDefAnalysis.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/RegAllocBase.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/RegAllocFast.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/RegAllocGreedy.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/RegAllocPBQP.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/RegUsageInfoCollector.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/RegUsageInfoPropagate.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/RegisterClassInfo.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/RegisterCoalescer.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/RegisterPressure.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/RegisterScavenging.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/RenameIndependentSubregs.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/ResetMachineFunctionPass.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/SafeStack.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/ScalarizeMaskedMemIntrin.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/ScheduleDAGInstrs.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h stable/12/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.h stable/12/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGVLIW.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h stable/12/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/ShadowStackGCLowering.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/ShrinkWrap.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/SjLjEHPrepare.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/SlotIndexes.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/SpillPlacement.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/SplitKit.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/SplitKit.h stable/12/contrib/llvm-project/llvm/lib/CodeGen/StackColoring.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/StackMapLivenessAnalysis.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/StackMaps.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/StackProtector.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/StackSlotColoring.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/SwiftErrorValueTracking.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/SwitchLoweringUtils.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/TailDuplication.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/TailDuplicator.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/TargetFrameLoweringImpl.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/TargetInstrInfo.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/TargetLoweringBase.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/TargetOptionsImpl.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/TargetPassConfig.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/TargetRegisterInfo.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/TargetSchedule.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/TargetSubtargetInfo.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/UnreachableBlockElim.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/ValueTypes.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/VirtRegMap.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/WasmEHPrepare.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/WinEHPrepare.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/XRayInstrumentation.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/CodeView/CVTypeVisitor.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/CodeView/CodeViewRecordIO.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/CodeView/EnumTables.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/CodeView/SymbolDumper.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/CodeView/SymbolRecordHelpers.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/CodeView/SymbolRecordMapping.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/CodeView/TypeRecordMapping.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/CodeView/TypeStreamMerger.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/DWARF/DWARFAbbreviationDeclaration.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/DWARF/DWARFAddressRange.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/DWARF/DWARFCompileUnit.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/DWARF/DWARFDataExtractor.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/DWARF/DWARFDebugAbbrev.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/DWARF/DWARFDebugAddr.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/DWARF/DWARFDebugArangeSet.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/DWARF/DWARFDebugAranges.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/DWARF/DWARFDebugInfoEntry.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/DWARF/DWARFDebugPubTable.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/DWARF/DWARFDebugRangeList.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/DWARF/DWARFDebugRnglists.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/DWARF/DWARFDie.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/DWARF/DWARFExpression.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/DWARF/DWARFGdbIndex.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/DWARF/DWARFListTable.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/DWARF/DWARFTypeUnit.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/GSYM/FunctionInfo.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/GSYM/InlineInfo.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/GSYM/Range.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/MSF/MappedBlockStream.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/PDB/DIA/DIASectionContrib.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/PDB/DIA/DIASession.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/PDB/GenericError.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/PDB/Native/DbiModuleDescriptor.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/PDB/Native/GSIStreamBuilder.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/PDB/Native/Hash.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/PDB/Native/NativeEnumInjectedSources.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/PDB/Native/NativeRawSymbol.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/PDB/Native/NativeSession.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/PDB/Native/NativeTypeEnum.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/PDB/Native/NativeTypeFunctionSig.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/PDB/Native/PDBFile.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/PDB/Native/TpiHashing.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/PDB/Native/TpiStream.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/PDB/Native/TpiStreamBuilder.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/PDB/PDBSymbolFunc.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/PDB/PDBSymbolTypeFunctionSig.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/PDB/UDTLayout.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/Symbolize/DIPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp stable/12/contrib/llvm-project/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.h stable/12/contrib/llvm-project/llvm/lib/DebugInfo/Symbolize/Symbolize.cpp stable/12/contrib/llvm-project/llvm/lib/Demangle/ItaniumDemangle.cpp stable/12/contrib/llvm-project/llvm/lib/Demangle/MicrosoftDemangle.cpp stable/12/contrib/llvm-project/llvm/lib/Demangle/MicrosoftDemangleNodes.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/ExecutionEngine.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/GDBRegistrationListener.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/JITLink/BasicGOTAndStubsBuilder.h stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/JITLink/EHFrameSupport.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/JITLink/EHFrameSupportImpl.h stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLink.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.h stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLinkMemoryManager.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachO.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachO_x86_64.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/MCJIT/MCJIT.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/OProfileJIT/OProfileJITEventListener.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/OProfileJIT/OProfileWrapper.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/CompileUtils.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/ExecutionUtils.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/IRCompileLayer.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/IRTransformLayer.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/JITTargetMachineBuilder.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/LLJIT.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/Layer.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/LazyReexports.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/Legacy.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.h stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/ThreadSafeModule.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/PerfJITEvents/PerfJITEventListener.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFX86_64.h stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOARM.h stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOI386.h stable/12/contrib/llvm-project/llvm/lib/ExecutionEngine/TargetSelect.cpp stable/12/contrib/llvm-project/llvm/lib/FuzzMutate/FuzzerCLI.cpp stable/12/contrib/llvm-project/llvm/lib/IR/AbstractCallSite.cpp stable/12/contrib/llvm-project/llvm/lib/IR/AsmWriter.cpp stable/12/contrib/llvm-project/llvm/lib/IR/AttributeImpl.h stable/12/contrib/llvm-project/llvm/lib/IR/Attributes.cpp stable/12/contrib/llvm-project/llvm/lib/IR/AutoUpgrade.cpp stable/12/contrib/llvm-project/llvm/lib/IR/BasicBlock.cpp stable/12/contrib/llvm-project/llvm/lib/IR/ConstantFold.cpp stable/12/contrib/llvm-project/llvm/lib/IR/ConstantRange.cpp stable/12/contrib/llvm-project/llvm/lib/IR/Constants.cpp stable/12/contrib/llvm-project/llvm/lib/IR/ConstantsContext.h stable/12/contrib/llvm-project/llvm/lib/IR/Core.cpp stable/12/contrib/llvm-project/llvm/lib/IR/DIBuilder.cpp stable/12/contrib/llvm-project/llvm/lib/IR/DataLayout.cpp stable/12/contrib/llvm-project/llvm/lib/IR/DebugInfo.cpp stable/12/contrib/llvm-project/llvm/lib/IR/DebugInfoMetadata.cpp stable/12/contrib/llvm-project/llvm/lib/IR/DiagnosticInfo.cpp stable/12/contrib/llvm-project/llvm/lib/IR/Dominators.cpp stable/12/contrib/llvm-project/llvm/lib/IR/Function.cpp stable/12/contrib/llvm-project/llvm/lib/IR/Globals.cpp stable/12/contrib/llvm-project/llvm/lib/IR/IRBuilder.cpp stable/12/contrib/llvm-project/llvm/lib/IR/IRPrintingPasses.cpp stable/12/contrib/llvm-project/llvm/lib/IR/InlineAsm.cpp stable/12/contrib/llvm-project/llvm/lib/IR/Instruction.cpp stable/12/contrib/llvm-project/llvm/lib/IR/Instructions.cpp stable/12/contrib/llvm-project/llvm/lib/IR/IntrinsicInst.cpp stable/12/contrib/llvm-project/llvm/lib/IR/LLVMContext.cpp stable/12/contrib/llvm-project/llvm/lib/IR/LLVMContextImpl.cpp stable/12/contrib/llvm-project/llvm/lib/IR/LLVMContextImpl.h stable/12/contrib/llvm-project/llvm/lib/IR/LegacyPassManager.cpp stable/12/contrib/llvm-project/llvm/lib/IR/MDBuilder.cpp stable/12/contrib/llvm-project/llvm/lib/IR/Metadata.cpp stable/12/contrib/llvm-project/llvm/lib/IR/Module.cpp stable/12/contrib/llvm-project/llvm/lib/IR/ModuleSummaryIndex.cpp stable/12/contrib/llvm-project/llvm/lib/IR/Pass.cpp stable/12/contrib/llvm-project/llvm/lib/IR/RemarkStreamer.cpp stable/12/contrib/llvm-project/llvm/lib/IR/SafepointIRVerifier.cpp stable/12/contrib/llvm-project/llvm/lib/IR/Type.cpp stable/12/contrib/llvm-project/llvm/lib/IR/TypeFinder.cpp stable/12/contrib/llvm-project/llvm/lib/IR/User.cpp stable/12/contrib/llvm-project/llvm/lib/IR/Value.cpp stable/12/contrib/llvm-project/llvm/lib/IR/Verifier.cpp stable/12/contrib/llvm-project/llvm/lib/LTO/Caching.cpp stable/12/contrib/llvm-project/llvm/lib/LTO/LTO.cpp stable/12/contrib/llvm-project/llvm/lib/LTO/LTOBackend.cpp stable/12/contrib/llvm-project/llvm/lib/LTO/LTOCodeGenerator.cpp stable/12/contrib/llvm-project/llvm/lib/LTO/LTOModule.cpp stable/12/contrib/llvm-project/llvm/lib/LTO/SummaryBasedOptimizations.cpp stable/12/contrib/llvm-project/llvm/lib/LTO/ThinLTOCodeGenerator.cpp stable/12/contrib/llvm-project/llvm/lib/Linker/IRMover.cpp stable/12/contrib/llvm-project/llvm/lib/Linker/LinkModules.cpp stable/12/contrib/llvm-project/llvm/lib/MC/ELFObjectWriter.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MCAsmBackend.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MCAsmInfo.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MCAsmInfoELF.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MCAsmInfoXCOFF.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MCAsmMacro.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MCAsmStreamer.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MCAssembler.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MCContext.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MCDisassembler/Disassembler.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MCDisassembler/MCDisassembler.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MCDwarf.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MCELFStreamer.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MCExpr.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MCFragment.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MCInstPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MCInstrAnalysis.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MCMachOStreamer.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MCObjectFileInfo.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MCObjectStreamer.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MCParser/AsmParser.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MCParser/COFFAsmParser.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MCParser/DarwinAsmParser.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MCParser/WasmAsmParser.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MCRegisterInfo.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MCSection.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MCSectionXCOFF.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MCStreamer.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MCSubtargetInfo.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MCSymbolELF.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MCTargetOptions.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MCValue.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MCWasmObjectTargetWriter.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MCWasmStreamer.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MCWinCOFFStreamer.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MCXCOFFStreamer.cpp stable/12/contrib/llvm-project/llvm/lib/MC/MachObjectWriter.cpp stable/12/contrib/llvm-project/llvm/lib/MC/StringTableBuilder.cpp stable/12/contrib/llvm-project/llvm/lib/MC/WasmObjectWriter.cpp stable/12/contrib/llvm-project/llvm/lib/MC/WinCOFFObjectWriter.cpp stable/12/contrib/llvm-project/llvm/lib/MC/XCOFFObjectWriter.cpp stable/12/contrib/llvm-project/llvm/lib/MCA/Context.cpp stable/12/contrib/llvm-project/llvm/lib/MCA/HardwareUnits/LSUnit.cpp stable/12/contrib/llvm-project/llvm/lib/MCA/HardwareUnits/RegisterFile.cpp stable/12/contrib/llvm-project/llvm/lib/MCA/HardwareUnits/ResourceManager.cpp stable/12/contrib/llvm-project/llvm/lib/MCA/HardwareUnits/RetireControlUnit.cpp stable/12/contrib/llvm-project/llvm/lib/MCA/HardwareUnits/Scheduler.cpp stable/12/contrib/llvm-project/llvm/lib/MCA/InstrBuilder.cpp stable/12/contrib/llvm-project/llvm/lib/MCA/Instruction.cpp stable/12/contrib/llvm-project/llvm/lib/MCA/Stages/DispatchStage.cpp stable/12/contrib/llvm-project/llvm/lib/MCA/Stages/EntryStage.cpp stable/12/contrib/llvm-project/llvm/lib/MCA/Stages/ExecuteStage.cpp stable/12/contrib/llvm-project/llvm/lib/MCA/Stages/InstructionTables.cpp stable/12/contrib/llvm-project/llvm/lib/MCA/Stages/RetireStage.cpp stable/12/contrib/llvm-project/llvm/lib/Object/Archive.cpp stable/12/contrib/llvm-project/llvm/lib/Object/ArchiveWriter.cpp stable/12/contrib/llvm-project/llvm/lib/Object/Binary.cpp stable/12/contrib/llvm-project/llvm/lib/Object/COFFObjectFile.cpp stable/12/contrib/llvm-project/llvm/lib/Object/Decompressor.cpp stable/12/contrib/llvm-project/llvm/lib/Object/ELF.cpp stable/12/contrib/llvm-project/llvm/lib/Object/ELFObjectFile.cpp stable/12/contrib/llvm-project/llvm/lib/Object/MachOObjectFile.cpp stable/12/contrib/llvm-project/llvm/lib/Object/MachOUniversal.cpp stable/12/contrib/llvm-project/llvm/lib/Object/Minidump.cpp stable/12/contrib/llvm-project/llvm/lib/Object/ModuleSymbolTable.cpp stable/12/contrib/llvm-project/llvm/lib/Object/Object.cpp stable/12/contrib/llvm-project/llvm/lib/Object/ObjectFile.cpp stable/12/contrib/llvm-project/llvm/lib/Object/RelocationResolver.cpp stable/12/contrib/llvm-project/llvm/lib/Object/SymbolicFile.cpp stable/12/contrib/llvm-project/llvm/lib/Object/WasmObjectFile.cpp stable/12/contrib/llvm-project/llvm/lib/Object/WindowsResource.cpp stable/12/contrib/llvm-project/llvm/lib/Object/XCOFFObjectFile.cpp stable/12/contrib/llvm-project/llvm/lib/ObjectYAML/CodeViewYAMLDebugSections.cpp stable/12/contrib/llvm-project/llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp stable/12/contrib/llvm-project/llvm/lib/ObjectYAML/DWARFEmitter.cpp stable/12/contrib/llvm-project/llvm/lib/ObjectYAML/ELFYAML.cpp stable/12/contrib/llvm-project/llvm/lib/ObjectYAML/MachOYAML.cpp stable/12/contrib/llvm-project/llvm/lib/ObjectYAML/MinidumpYAML.cpp stable/12/contrib/llvm-project/llvm/lib/ObjectYAML/WasmYAML.cpp stable/12/contrib/llvm-project/llvm/lib/ObjectYAML/YAML.cpp stable/12/contrib/llvm-project/llvm/lib/Option/ArgList.cpp stable/12/contrib/llvm-project/llvm/lib/Passes/PassBuilder.cpp stable/12/contrib/llvm-project/llvm/lib/Passes/PassRegistry.def stable/12/contrib/llvm-project/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp stable/12/contrib/llvm-project/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp stable/12/contrib/llvm-project/llvm/lib/ProfileData/Coverage/CoverageMappingWriter.cpp stable/12/contrib/llvm-project/llvm/lib/ProfileData/GCOV.cpp stable/12/contrib/llvm-project/llvm/lib/ProfileData/InstrProf.cpp stable/12/contrib/llvm-project/llvm/lib/ProfileData/InstrProfReader.cpp stable/12/contrib/llvm-project/llvm/lib/ProfileData/InstrProfWriter.cpp stable/12/contrib/llvm-project/llvm/lib/ProfileData/ProfileSummaryBuilder.cpp stable/12/contrib/llvm-project/llvm/lib/ProfileData/SampleProf.cpp stable/12/contrib/llvm-project/llvm/lib/ProfileData/SampleProfReader.cpp stable/12/contrib/llvm-project/llvm/lib/ProfileData/SampleProfWriter.cpp stable/12/contrib/llvm-project/llvm/lib/Remarks/RemarkFormat.cpp stable/12/contrib/llvm-project/llvm/lib/Remarks/RemarkParser.cpp stable/12/contrib/llvm-project/llvm/lib/Remarks/RemarkStringTable.cpp stable/12/contrib/llvm-project/llvm/lib/Remarks/YAMLRemarkParser.cpp stable/12/contrib/llvm-project/llvm/lib/Remarks/YAMLRemarkParser.h stable/12/contrib/llvm-project/llvm/lib/Remarks/YAMLRemarkSerializer.cpp stable/12/contrib/llvm-project/llvm/lib/Support/AArch64TargetParser.cpp stable/12/contrib/llvm-project/llvm/lib/Support/AMDGPUMetadata.cpp stable/12/contrib/llvm-project/llvm/lib/Support/APFloat.cpp stable/12/contrib/llvm-project/llvm/lib/Support/APInt.cpp stable/12/contrib/llvm-project/llvm/lib/Support/ARMAttributeParser.cpp stable/12/contrib/llvm-project/llvm/lib/Support/ARMTargetParser.cpp stable/12/contrib/llvm-project/llvm/lib/Support/BinaryStreamReader.cpp stable/12/contrib/llvm-project/llvm/lib/Support/CRC.cpp stable/12/contrib/llvm-project/llvm/lib/Support/CachePruning.cpp stable/12/contrib/llvm-project/llvm/lib/Support/CodeGenCoverage.cpp stable/12/contrib/llvm-project/llvm/lib/Support/CommandLine.cpp stable/12/contrib/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp stable/12/contrib/llvm-project/llvm/lib/Support/DataExtractor.cpp stable/12/contrib/llvm-project/llvm/lib/Support/DebugCounter.cpp stable/12/contrib/llvm-project/llvm/lib/Support/Error.cpp stable/12/contrib/llvm-project/llvm/lib/Support/ErrorHandling.cpp stable/12/contrib/llvm-project/llvm/lib/Support/FileCheck.cpp stable/12/contrib/llvm-project/llvm/lib/Support/FileOutputBuffer.cpp stable/12/contrib/llvm-project/llvm/lib/Support/FileUtilities.cpp stable/12/contrib/llvm-project/llvm/lib/Support/GlobPattern.cpp stable/12/contrib/llvm-project/llvm/lib/Support/Host.cpp stable/12/contrib/llvm-project/llvm/lib/Support/InitLLVM.cpp stable/12/contrib/llvm-project/llvm/lib/Support/ItaniumManglingCanonicalizer.cpp stable/12/contrib/llvm-project/llvm/lib/Support/JSON.cpp stable/12/contrib/llvm-project/llvm/lib/Support/KnownBits.cpp stable/12/contrib/llvm-project/llvm/lib/Support/LockFileManager.cpp stable/12/contrib/llvm-project/llvm/lib/Support/ManagedStatic.cpp stable/12/contrib/llvm-project/llvm/lib/Support/MemoryBuffer.cpp stable/12/contrib/llvm-project/llvm/lib/Support/Parallel.cpp stable/12/contrib/llvm-project/llvm/lib/Support/Path.cpp stable/12/contrib/llvm-project/llvm/lib/Support/PrettyStackTrace.cpp stable/12/contrib/llvm-project/llvm/lib/Support/Process.cpp stable/12/contrib/llvm-project/llvm/lib/Support/RWMutex.cpp stable/12/contrib/llvm-project/llvm/lib/Support/RandomNumberGenerator.cpp stable/12/contrib/llvm-project/llvm/lib/Support/Regex.cpp stable/12/contrib/llvm-project/llvm/lib/Support/SHA1.cpp stable/12/contrib/llvm-project/llvm/lib/Support/Signals.cpp stable/12/contrib/llvm-project/llvm/lib/Support/Signposts.cpp stable/12/contrib/llvm-project/llvm/lib/Support/SpecialCaseList.cpp stable/12/contrib/llvm-project/llvm/lib/Support/Statistic.cpp stable/12/contrib/llvm-project/llvm/lib/Support/StringExtras.cpp stable/12/contrib/llvm-project/llvm/lib/Support/StringRef.cpp stable/12/contrib/llvm-project/llvm/lib/Support/TargetParser.cpp stable/12/contrib/llvm-project/llvm/lib/Support/Threading.cpp stable/12/contrib/llvm-project/llvm/lib/Support/TimeProfiler.cpp stable/12/contrib/llvm-project/llvm/lib/Support/Timer.cpp stable/12/contrib/llvm-project/llvm/lib/Support/Triple.cpp stable/12/contrib/llvm-project/llvm/lib/Support/Unix/Memory.inc stable/12/contrib/llvm-project/llvm/lib/Support/Unix/Path.inc stable/12/contrib/llvm-project/llvm/lib/Support/Unix/Process.inc stable/12/contrib/llvm-project/llvm/lib/Support/Unix/Program.inc stable/12/contrib/llvm-project/llvm/lib/Support/Unix/Signals.inc stable/12/contrib/llvm-project/llvm/lib/Support/Unix/Threading.inc stable/12/contrib/llvm-project/llvm/lib/Support/Unix/Unix.h stable/12/contrib/llvm-project/llvm/lib/Support/VirtualFileSystem.cpp stable/12/contrib/llvm-project/llvm/lib/Support/Windows/DynamicLibrary.inc stable/12/contrib/llvm-project/llvm/lib/Support/Windows/Host.inc stable/12/contrib/llvm-project/llvm/lib/Support/Windows/Memory.inc stable/12/contrib/llvm-project/llvm/lib/Support/Windows/Path.inc stable/12/contrib/llvm-project/llvm/lib/Support/Windows/Process.inc stable/12/contrib/llvm-project/llvm/lib/Support/Windows/Program.inc stable/12/contrib/llvm-project/llvm/lib/Support/Windows/Signals.inc stable/12/contrib/llvm-project/llvm/lib/Support/Windows/ThreadLocal.inc stable/12/contrib/llvm-project/llvm/lib/Support/Windows/Threading.inc stable/12/contrib/llvm-project/llvm/lib/Support/Windows/explicit_symbols.inc stable/12/contrib/llvm-project/llvm/lib/Support/YAMLParser.cpp stable/12/contrib/llvm-project/llvm/lib/Support/YAMLTraits.cpp stable/12/contrib/llvm-project/llvm/lib/Support/Z3Solver.cpp stable/12/contrib/llvm-project/llvm/lib/Support/raw_ostream.cpp stable/12/contrib/llvm-project/llvm/lib/Support/regcomp.c stable/12/contrib/llvm-project/llvm/lib/TableGen/Error.cpp stable/12/contrib/llvm-project/llvm/lib/TableGen/Main.cpp stable/12/contrib/llvm-project/llvm/lib/TableGen/Record.cpp stable/12/contrib/llvm-project/llvm/lib/TableGen/SetTheory.cpp stable/12/contrib/llvm-project/llvm/lib/TableGen/TGLexer.cpp stable/12/contrib/llvm-project/llvm/lib/TableGen/TGLexer.h stable/12/contrib/llvm-project/llvm/lib/TableGen/TGParser.cpp stable/12/contrib/llvm-project/llvm/lib/TableGen/TGParser.h stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64.h stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64.td stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64AdvSIMDScalarPass.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64CallLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64CallLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64CallingConvention.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64CallingConvention.h stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64CallingConvention.td stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64CollectLOH.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64CompressJumpTables.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64CondBrTuning.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64ConditionOptimizer.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64ConditionalCompares.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64FalkorHWPFFix.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64FastISel.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64FrameLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64ISelLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64InstrAtomics.td stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64InstrFormats.td stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64InstrInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64InstrInfo.td stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64InstructionSelector.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64LegalizerInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64MCInstLower.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64PBQPRegAlloc.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64PreLegalizerCombiner.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64PromoteConstant.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64RegisterInfo.td stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64SIMDInstrOpt.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64SchedExynosM3.td stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64SchedExynosM4.td stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64SchedPredExynos.td stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64SchedPredicates.td stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64SchedThunderX2T99.td stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64SelectionDAGInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64SpeculationHardening.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64StackTagging.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64StorePairSuppress.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64Subtarget.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64Subtarget.h stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64SystemOperands.td stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64TargetObjectFile.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64TargetObjectFile.h stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.h stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.h stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCCodeEmitter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.h stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/SVEInstrFormats.td stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/TargetInfo/AArch64TargetInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPU.h stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPU.td stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUAlwaysInlinePass.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUAnnotateKernelFeatures.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUArgumentUsageInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.h stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUCallingConv.td stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUFrameLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUFrameLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUGISel.td stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.h stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUInline.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.td stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUInstructions.td stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPULibFunc.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPULowerKernelArguments.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUMCInstLower.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUMachineCFGStructurizer.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.h stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPURegisterBanks.td stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPURegisterInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPURegisterInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPURewriteOutArguments.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUSearchableTables.td stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUUnifyDivergentExitNodes.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUUnifyMetadata.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDILCFGStructurizer.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/BUFInstructions.td stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/CaymanInstructions.td stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/DSInstructions.td stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/EvergreenInstructions.td stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/FLATInstructions.td stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/GCNDPPCombine.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/GCNILPSched.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/GCNIterativeScheduler.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/GCNNSAReassign.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/GCNRegBankReassign.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/GCNRegPressure.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/GCNRegPressure.h stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/GCNSchedStrategy.h stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFObjectWriter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.h stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCAsmInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCAsmInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/MIMGInstructions.td stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/R600AsmPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/R600ControlFlowFinalizer.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/R600ExpandSpecialInstrs.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/R600FrameLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/R600ISelLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/R600InstrInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/R600InstrInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/R600Instructions.td stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/R600MachineScheduler.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/R600OptimizeVectorRegisters.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/R600Packetizer.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/R600RegisterInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIAddIMGInit.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIDefines.h stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIFixupVectorISel.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIFoldOperands.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIFormMemoryClauses.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIFrameLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIFrameLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIISelLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIISelLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIInstrFormats.td stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIInstrInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIInstrInfo.td stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIInstructions.td stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SILowerI1Copies.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SILowerSGPRSpills.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIMachineScheduler.h stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIModeRegister.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIOptimizeExecMasking.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIOptimizeExecMaskingPreRA.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIPreAllocateWWMRegs.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIProgramInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIRegisterInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIRegisterInfo.td stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIShrinkInstructions.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SMInstructions.td stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/SOPInstructions.td stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/TargetInfo/AMDGPUTargetInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/Utils/AMDGPUPALMetadata.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/VOP1Instructions.td stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/VOP2Instructions.td stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/VOP3Instructions.td stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/VOP3PInstructions.td stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/VOPCInstructions.td stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/VOPInstructions.td stable/12/contrib/llvm-project/llvm/lib/Target/ARC/ARCAsmPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARC/ARCBranchFinalize.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARC/ARCFrameLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/ARC/ARCISelLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARC/ARCInstrInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARC/ARCInstrInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/ARC/ARCMachineFunctionInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/ARC/ARCOptAddrMode.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARC/ARCRegisterInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARC/ARCTargetMachine.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARC/Disassembler/ARCDisassembler.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARC/MCTargetDesc/ARCInstPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARC/MCTargetDesc/ARCInstPrinter.h stable/12/contrib/llvm-project/llvm/lib/Target/ARC/MCTargetDesc/ARCMCTargetDesc.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARC/TargetInfo/ARCTargetInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/A15SDOptimizer.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARM.h stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARM.td stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMAsmPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMBaseInstrInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMBaseRegisterInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMBasicBlockInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMBasicBlockInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMCallLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMCallLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMCallingConv.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMCallingConv.h stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMCallingConv.td stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMConstantIslandPass.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMConstantPoolValue.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMFastISel.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMFrameLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMFrameLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMHazardRecognizer.h stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMISelLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMISelLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMInstrFormats.td stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMInstrInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMInstrInfo.td stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMInstrMVE.td stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMInstrNEON.td stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMInstrThumb.td stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMInstrThumb2.td stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMInstrVFP.td stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMInstructionSelector.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMLegalizerInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMMCInstLower.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMMachineFunctionInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMParallelDSP.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMPredicates.td stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMRegisterBankInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMRegisterBankInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMRegisterInfo.td stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMScheduleA9.td stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMScheduleM4.td stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMSubtarget.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMSubtarget.h stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMTargetMachine.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMTargetMachine.h stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMTargetTransformInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/MCTargetDesc/ARMAddressingModes.h stable/12/contrib/llvm-project/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/MCTargetDesc/ARMBaseInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.h stable/12/contrib/llvm-project/llvm/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/MCTargetDesc/ARMUnwindOpAsm.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/MCTargetDesc/ARMUnwindOpAsm.h stable/12/contrib/llvm-project/llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFObjectWriter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFStreamer.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/MLxExpansionPass.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/TargetInfo/ARMTargetInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/Thumb1FrameLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/Thumb1InstrInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/Thumb1InstrInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/ARM/Thumb2ITBlockPass.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/Thumb2InstrInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/Thumb2InstrInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/ARM/Thumb2SizeReduction.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ThumbRegisterInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/Utils/ARMBaseInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/AVR/AVRAsmPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AVR/AVRExpandPseudoInsts.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AVR/AVRFrameLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AVR/AVRISelDAGToDAG.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AVR/AVRISelLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AVR/AVRISelLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/AVR/AVRInstrFormats.td stable/12/contrib/llvm-project/llvm/lib/Target/AVR/AVRInstrInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AVR/AVRInstrInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/AVR/AVRInstrInfo.td stable/12/contrib/llvm-project/llvm/lib/Target/AVR/AVRRegisterInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AVR/AVRTargetMachine.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AVR/AsmParser/AVRAsmParser.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AVR/Disassembler/AVRDisassembler.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AVR/MCTargetDesc/AVRELFObjectWriter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AVR/MCTargetDesc/AVRInstPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AVR/MCTargetDesc/AVRInstPrinter.h stable/12/contrib/llvm-project/llvm/lib/Target/AVR/MCTargetDesc/AVRMCAsmInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AVR/MCTargetDesc/AVRMCAsmInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/AVR/MCTargetDesc/AVRMCCodeEmitter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AVR/MCTargetDesc/AVRMCTargetDesc.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AVR/TargetInfo/AVRTargetInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/BPF/AsmParser/BPFAsmParser.cpp stable/12/contrib/llvm-project/llvm/lib/Target/BPF/BPF.h stable/12/contrib/llvm-project/llvm/lib/Target/BPF/BPFAbstractMemberAccess.cpp stable/12/contrib/llvm-project/llvm/lib/Target/BPF/BPFAsmPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/BPF/BPFCORE.h stable/12/contrib/llvm-project/llvm/lib/Target/BPF/BPFFrameLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/BPF/BPFISelDAGToDAG.cpp stable/12/contrib/llvm-project/llvm/lib/Target/BPF/BPFISelLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/BPF/BPFISelLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/BPF/BPFInstrInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/BPF/BPFInstrInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/BPF/BPFInstrInfo.td stable/12/contrib/llvm-project/llvm/lib/Target/BPF/BPFMIChecking.cpp stable/12/contrib/llvm-project/llvm/lib/Target/BPF/BPFMIPeephole.cpp stable/12/contrib/llvm-project/llvm/lib/Target/BPF/BPFMISimplifyPatchable.cpp stable/12/contrib/llvm-project/llvm/lib/Target/BPF/BPFRegisterInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/BPF/BPFSubtarget.cpp stable/12/contrib/llvm-project/llvm/lib/Target/BPF/BPFTargetMachine.cpp stable/12/contrib/llvm-project/llvm/lib/Target/BPF/BTF.h stable/12/contrib/llvm-project/llvm/lib/Target/BPF/BTFDebug.cpp stable/12/contrib/llvm-project/llvm/lib/Target/BPF/BTFDebug.h stable/12/contrib/llvm-project/llvm/lib/Target/BPF/Disassembler/BPFDisassembler.cpp stable/12/contrib/llvm-project/llvm/lib/Target/BPF/MCTargetDesc/BPFELFObjectWriter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/BPF/MCTargetDesc/BPFInstPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/BPF/MCTargetDesc/BPFInstPrinter.h stable/12/contrib/llvm-project/llvm/lib/Target/BPF/MCTargetDesc/BPFMCAsmInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/BPF/MCTargetDesc/BPFMCTargetDesc.cpp stable/12/contrib/llvm-project/llvm/lib/Target/BPF/TargetInfo/BPFTargetInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/BitTracker.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonBitTracker.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonBlockRanges.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonBranchRelaxation.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonCommonGEP.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonConstExtenders.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonConstPropagation.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonCopyToCombine.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonDepMapAsm2Intrin.td stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonDepOperands.td stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonEarlyIfConv.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonFixupHwLoops.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonFrameLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonFrameLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonGenExtract.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonGenInsert.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonGenMux.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonGenPredicate.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.h stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonISelLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonInstrInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonIntrinsics.td stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonNewValueJump.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonOptAddrMode.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonOptimizeSZextends.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonPatterns.td stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonPatternsHVX.td stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonPeephole.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonPseudo.td stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonRDFOpt.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonRegisterInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonRegisterInfo.td stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonSplitConst32AndConst64.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonSplitDouble.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonStoreWidening.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonSubtarget.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonSubtarget.h stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonVExtract.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.h stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonVectorLoopCarriedReuse.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonELFObjectWriter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonInstPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonInstPrinter.h stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCCompound.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/RDFCopy.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/RDFDeadCode.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/RDFGraph.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/RDFLiveness.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/RDFRegisters.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/RDFRegisters.h stable/12/contrib/llvm-project/llvm/lib/Target/Hexagon/TargetInfo/HexagonTargetInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Lanai/AsmParser/LanaiAsmParser.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Lanai/Disassembler/LanaiDisassembler.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Lanai/Disassembler/LanaiDisassembler.h stable/12/contrib/llvm-project/llvm/lib/Target/Lanai/LanaiAsmPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Lanai/LanaiDelaySlotFiller.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Lanai/LanaiFrameLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Lanai/LanaiFrameLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/Lanai/LanaiISelLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Lanai/LanaiISelLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/Lanai/LanaiInstrInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Lanai/LanaiInstrInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/Lanai/LanaiRegisterInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Lanai/LanaiTargetMachine.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Lanai/LanaiTargetTransformInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/Lanai/MCTargetDesc/LanaiELFObjectWriter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Lanai/MCTargetDesc/LanaiInstPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Lanai/MCTargetDesc/LanaiInstPrinter.h stable/12/contrib/llvm-project/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCAsmInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCAsmInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Lanai/TargetInfo/LanaiTargetInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/MSP430/AsmParser/MSP430AsmParser.cpp stable/12/contrib/llvm-project/llvm/lib/Target/MSP430/Disassembler/MSP430Disassembler.cpp stable/12/contrib/llvm-project/llvm/lib/Target/MSP430/MCTargetDesc/MSP430ELFObjectWriter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/MSP430/MCTargetDesc/MSP430InstPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/MSP430/MCTargetDesc/MSP430InstPrinter.h stable/12/contrib/llvm-project/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCAsmInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCAsmInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCTargetDesc.cpp stable/12/contrib/llvm-project/llvm/lib/Target/MSP430/MSP430AsmPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/MSP430/MSP430BranchSelector.cpp stable/12/contrib/llvm-project/llvm/lib/Target/MSP430/MSP430FrameLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp stable/12/contrib/llvm-project/llvm/lib/Target/MSP430/MSP430ISelLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/MSP430/MSP430ISelLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/MSP430/MSP430InstrInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/MSP430/MSP430InstrInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/MSP430/MSP430MachineFunctionInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/MSP430/MSP430RegisterInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/MSP430/MSP430Subtarget.h stable/12/contrib/llvm-project/llvm/lib/Target/MSP430/MSP430TargetMachine.cpp stable/12/contrib/llvm-project/llvm/lib/Target/MSP430/TargetInfo/MSP430TargetInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MCTargetDesc/MipsABIInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.h stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MCTargetDesc/MipsBaseInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MCTargetDesc/MipsInstPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MCTargetDesc/MipsInstPrinter.h stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MCTargetDesc/MipsMCExpr.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MCTargetDesc/MipsMCNaCl.h stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MCTargetDesc/MipsNaClELFStreamer.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MCTargetDesc/MipsOptionRecord.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MicroMips32r6InstrFormats.td stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MicroMips32r6InstrInfo.td stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MicroMipsDSPInstrInfo.td stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MicroMipsInstrFPU.td stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MicroMipsInstrInfo.td stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MicroMipsSizeReduction.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/Mips.td stable/12/contrib/llvm-project/llvm/lib/Target/Mips/Mips16ISelDAGToDAG.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/Mips16ISelLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/Mips16InstrInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/Mips16InstrInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/Mips/Mips16InstrInfo.td stable/12/contrib/llvm-project/llvm/lib/Target/Mips/Mips32r6InstrInfo.td stable/12/contrib/llvm-project/llvm/lib/Target/Mips/Mips64InstrInfo.td stable/12/contrib/llvm-project/llvm/lib/Target/Mips/Mips64r6InstrInfo.td stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsAsmPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsCallLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsCallLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsCallingConv.td stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsCondMov.td stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsConstantIslandPass.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsDSPInstrInfo.td stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsExpandPseudo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsFastISel.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsFrameLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsISelDAGToDAG.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsISelDAGToDAG.h stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsISelLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsISelLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsInstrFPU.td stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsInstrFormats.td stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsInstrInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsInstrInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsInstrInfo.td stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsInstructionSelector.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsLegalizerInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsLegalizerInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsMCInstLower.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsMCInstLower.h stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsMSAInstrInfo.td stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsOptimizePICCall.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsPreLegalizerCombiner.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsRegisterBankInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsRegisterBankInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsRegisterBanks.td stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsSEFrameLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.h stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsSEISelLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsSEInstrInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsSEInstrInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsSERegisterInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsScheduleGeneric.td stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsScheduleP5600.td stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsSubtarget.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsSubtarget.h stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsTargetMachine.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsTargetStreamer.h stable/12/contrib/llvm-project/llvm/lib/Target/Mips/TargetInfo/MipsTargetInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.h stable/12/contrib/llvm-project/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.cpp stable/12/contrib/llvm-project/llvm/lib/Target/NVPTX/ManagedStringPool.h stable/12/contrib/llvm-project/llvm/lib/Target/NVPTX/NVPTX.h stable/12/contrib/llvm-project/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.h stable/12/contrib/llvm-project/llvm/lib/Target/NVPTX/NVPTXFrameLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp stable/12/contrib/llvm-project/llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.h stable/12/contrib/llvm-project/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/NVPTX/NVPTXISelLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/NVPTX/NVPTXImageOptimizer.cpp stable/12/contrib/llvm-project/llvm/lib/Target/NVPTX/NVPTXInstrInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/NVPTX/NVPTXInstrInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/NVPTX/NVPTXInstrInfo.td stable/12/contrib/llvm-project/llvm/lib/Target/NVPTX/NVPTXIntrinsics.td stable/12/contrib/llvm-project/llvm/lib/Target/NVPTX/NVPTXLowerAggrCopies.cpp stable/12/contrib/llvm-project/llvm/lib/Target/NVPTX/NVPTXLowerAlloca.cpp stable/12/contrib/llvm-project/llvm/lib/Target/NVPTX/NVPTXLowerArgs.cpp stable/12/contrib/llvm-project/llvm/lib/Target/NVPTX/NVPTXPeephole.cpp stable/12/contrib/llvm-project/llvm/lib/Target/NVPTX/NVPTXPrologEpilogPass.cpp stable/12/contrib/llvm-project/llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp stable/12/contrib/llvm-project/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/NVPTX/NVPTXUtilities.cpp stable/12/contrib/llvm-project/llvm/lib/Target/NVPTX/NVVMIntrRange.cpp stable/12/contrib/llvm-project/llvm/lib/Target/NVPTX/NVVMReflect.cpp stable/12/contrib/llvm-project/llvm/lib/Target/NVPTX/TargetInfo/NVPTXTargetInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.h stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.h stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.h stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/MCTargetDesc/PPCXCOFFObjectWriter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/P9InstrResources.td stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPC.h stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPC.td stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCBranchCoalescing.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCBranchSelector.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCCTRLoops.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCFastISel.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCFrameLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCHazardRecognizers.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCISelLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCISelLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCInstr64Bit.td stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCInstrAltivec.td stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCInstrFormats.td stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCInstrHTM.td stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCInstrInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCInstrInfo.td stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCInstrVSX.td stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCMCInstLower.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCMIPeephole.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCMachineFunctionInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCPreEmitPeephole.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCQPXLoadSplat.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCRegisterInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCRegisterInfo.td stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCSubtarget.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCSubtarget.h stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCTLSDynamicCall.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCTOCRegDeps.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCVSXCopy.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCVSXFMAMutate.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCVSXSwapRemoval.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/TargetInfo/PowerPCTargetInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.h stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/MCTargetDesc/RISCVInstPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/MCTargetDesc/RISCVInstPrinter.h stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCCodeEmitter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.cpp stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.h stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.cpp stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCV.h stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCV.td stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVCallingConv.td stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVExpandPseudoInsts.cpp stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVFrameLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVISelLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVISelLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVInstrFormats.td stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVInstrInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVInstrInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVInstrInfo.td stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVInstrInfoA.td stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVInstrInfoC.td stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVInstrInfoD.td stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVInstrInfoF.td stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVInstrInfoM.td stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVMergeBaseOffset.cpp stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVRegisterInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVRegisterInfo.td stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVSubtarget.cpp stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVSubtarget.h stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVTargetMachine.cpp stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVTargetMachine.h stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/TargetInfo/RISCVTargetInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/Utils/RISCVBaseInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/Utils/RISCVBaseInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Sparc/DelaySlotFiller.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Sparc/Disassembler/SparcDisassembler.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Sparc/LeonPasses.h stable/12/contrib/llvm-project/llvm/lib/Target/Sparc/MCTargetDesc/SparcELFObjectWriter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Sparc/MCTargetDesc/SparcInstPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Sparc/MCTargetDesc/SparcInstPrinter.h stable/12/contrib/llvm-project/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Sparc/SparcAsmPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Sparc/SparcFrameLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Sparc/SparcISelLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Sparc/SparcISelLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/Sparc/SparcInstr64Bit.td stable/12/contrib/llvm-project/llvm/lib/Target/Sparc/SparcInstrInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Sparc/SparcInstrInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/Sparc/SparcInstrInfo.td stable/12/contrib/llvm-project/llvm/lib/Target/Sparc/SparcRegisterInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Sparc/SparcTargetMachine.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Sparc/TargetInfo/SparcTargetInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/Disassembler/SystemZDisassembler.cpp stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZInstPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZInstPrinter.h stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCObjectWriter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.cpp stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZ.h stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZAsmPrinter.h stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZCallingConv.h stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZCallingConv.td stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZElimCompare.cpp stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZFrameLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZISelLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZInstrFP.td stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZInstrFormats.td stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZInstrInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZInstrInfo.td stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZInstrVector.td stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZLongBranch.cpp stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZMachineFunctionInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZMachineScheduler.cpp stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZOperands.td stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZOperators.td stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZPatterns.td stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZPostRewrite.cpp stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZProcessors.td stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZRegisterInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZRegisterInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZSchedule.td stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZSelectionDAGInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZShortenInst.cpp stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZTDC.cpp stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/SystemZ/TargetInfo/SystemZTargetInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/TargetLoweringObjectFile.cpp stable/12/contrib/llvm-project/llvm/lib/Target/TargetMachine.cpp stable/12/contrib/llvm-project/llvm/lib/Target/TargetMachineC.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyAsmBackend.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.h stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCAsmInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCAsmInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCCodeEmitter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.h stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyWasmObjectWriter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/TargetInfo/WebAssemblyTargetInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssembly.h stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyCFGSort.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyDebugValueManager.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyDebugValueManager.h stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyExceptionInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyFastISel.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyFixFunctionBitcasts.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyFixIrreducibleControlFlow.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyISD.def stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyISelDAGToDAG.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyInstrAtomics.td stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyInstrBulkMemory.td stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyInstrControl.td stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyInstrConv.td stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyInstrMemory.td stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyLateEHPrepare.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyLowerBrUnless.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyLowerGlobalDtors.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.h stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyMemIntrinsicResults.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyOptimizeLiveIntervals.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyOptimizeReturned.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyPrepareForLiveIntervals.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyRegColoring.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyRegNumbering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyUtilities.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/AsmParser/X86AsmParserCommon.h stable/12/contrib/llvm-project/llvm/lib/Target/X86/AsmParser/X86Operand.h stable/12/contrib/llvm-project/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h stable/12/contrib/llvm-project/llvm/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.h stable/12/contrib/llvm-project/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/MCTargetDesc/X86IntelInstPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/MCTargetDesc/X86IntelInstPrinter.h stable/12/contrib/llvm-project/llvm/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h stable/12/contrib/llvm-project/llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/TargetInfo/X86TargetInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86.h stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86.td stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86AsmPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86AsmPrinter.h stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86CallFrameOptimization.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86CallLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86CallLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86CallingConv.td stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86CmovConversion.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86CondBrFolding.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86DomainReassignment.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86EvexToVex.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86ExpandPseudo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86FastISel.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86FixupBWInsts.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86FixupLEAs.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86FixupSetCC.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86FlagsCopyLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86FloatingPoint.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86FrameLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86FrameLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86ISelLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86ISelLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86IndirectBranchTracking.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86InsertPrefetch.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86InstrAVX512.td stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86InstrArithmetic.td stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86InstrBuilder.h stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86InstrCMovSetCC.td stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86InstrCompiler.td stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86InstrControl.td stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86InstrExtension.td stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86InstrFMA.td stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86InstrFPStack.td stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86InstrFoldTables.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86InstrFoldTables.h stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86InstrFormats.td stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86InstrFragmentsSIMD.td stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86InstrInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86InstrInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86InstrInfo.td stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86InstrMMX.td stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86InstrMPX.td stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86InstrSSE.td stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86InstrSystem.td stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86InstrTSX.td stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86InstrXOP.td stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86InstructionSelector.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86IntrinsicsInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86LegalizerInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86LegalizerInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86MCInstLower.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86MacroFusion.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86OptimizeLEAs.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86PadShortFunction.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86PfmCounters.td stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86RegisterBankInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86RegisterBankInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86RegisterInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86RegisterInfo.td stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86RetpolineThunks.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86SchedBroadwell.td stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86SchedHaswell.td stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86SchedPredicates.td stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86SchedSandyBridge.td stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86SchedSkylakeClient.td stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86SchedSkylakeServer.td stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86Schedule.td stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86ScheduleAtom.td stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86ScheduleBdVer2.td stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86ScheduleBtVer2.td stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86ScheduleSLM.td stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86ScheduleZnver1.td stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86SelectionDAGInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86Subtarget.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86Subtarget.h stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86TargetMachine.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86TargetMachine.h stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86TargetObjectFile.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86TargetObjectFile.h stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86TargetTransformInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86TargetTransformInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86VZeroUpper.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86WinAllocaExpander.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86WinEHState.cpp stable/12/contrib/llvm-project/llvm/lib/Target/XCore/Disassembler/XCoreDisassembler.cpp stable/12/contrib/llvm-project/llvm/lib/Target/XCore/MCTargetDesc/XCoreInstPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/XCore/MCTargetDesc/XCoreInstPrinter.h stable/12/contrib/llvm-project/llvm/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.cpp stable/12/contrib/llvm-project/llvm/lib/Target/XCore/TargetInfo/XCoreTargetInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/XCore/XCoreAsmPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/XCore/XCoreFrameLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/XCore/XCoreFrameToArgsOffsetElim.cpp stable/12/contrib/llvm-project/llvm/lib/Target/XCore/XCoreISelDAGToDAG.cpp stable/12/contrib/llvm-project/llvm/lib/Target/XCore/XCoreISelLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/XCore/XCoreInstrInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/XCore/XCoreInstrInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/XCore/XCoreLowerThreadLocal.cpp stable/12/contrib/llvm-project/llvm/lib/Target/XCore/XCoreRegisterInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/XCore/XCoreTargetMachine.cpp stable/12/contrib/llvm-project/llvm/lib/Target/XCore/XCoreTargetTransformInfo.h stable/12/contrib/llvm-project/llvm/lib/TextAPI/MachO/Architecture.cpp stable/12/contrib/llvm-project/llvm/lib/TextAPI/MachO/InterfaceFile.cpp stable/12/contrib/llvm-project/llvm/lib/TextAPI/MachO/Symbol.cpp stable/12/contrib/llvm-project/llvm/lib/TextAPI/MachO/TextStub.cpp stable/12/contrib/llvm-project/llvm/lib/TextAPI/MachO/TextStubCommon.cpp stable/12/contrib/llvm-project/llvm/lib/TextAPI/MachO/TextStubCommon.h stable/12/contrib/llvm-project/llvm/lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp stable/12/contrib/llvm-project/llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Coroutines/CoroCleanup.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Coroutines/CoroEarly.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Coroutines/CoroElide.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Coroutines/CoroFrame.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Coroutines/CoroInstr.h stable/12/contrib/llvm-project/llvm/lib/Transforms/Coroutines/CoroInternal.h stable/12/contrib/llvm-project/llvm/lib/Transforms/Coroutines/CoroSplit.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Coroutines/Coroutines.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/IPO/AlwaysInliner.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/IPO/Attributor.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/IPO/BarrierNoopPass.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/IPO/BlockExtractor.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/IPO/CalledValuePropagation.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/IPO/ConstantMerge.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/IPO/CrossDSOCFI.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/IPO/ElimAvailExtern.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/IPO/FunctionAttrs.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/IPO/FunctionImport.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/IPO/GlobalDCE.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/IPO/GlobalOpt.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/IPO/GlobalSplit.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/IPO/HotColdSplitting.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/IPO/IPConstantPropagation.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/IPO/IPO.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/IPO/InferFunctionAttrs.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/IPO/InlineSimple.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/IPO/Inliner.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/IPO/Internalize.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/IPO/LoopExtractor.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/IPO/LowerTypeTests.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/IPO/MergeFunctions.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/IPO/PartialInlining.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/IPO/PruneEH.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/IPO/SCCP.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/IPO/SampleProfile.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/IPO/StripDeadPrototypes.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/IPO/StripSymbols.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/InstCombine/InstCombineAtomicRMW.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/InstCombine/InstCombineInternal.h stable/12/contrib/llvm-project/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/BoundsChecking.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/CFGMST.h stable/12/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/InstrOrderFile.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/Instrumentation.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/PGOMemOPSizeOpt.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/PoisonChecking.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/ThreadSanitizer.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/ObjCARC/ObjCARCAPElim.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/ObjCARC/ObjCARCExpand.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/ObjCARC/ProvenanceAnalysisEvaluator.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/ObjCARC/PtrState.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/ADCE.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/BDCE.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/ConstantHoisting.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/ConstantProp.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/DCE.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/DivRemPairs.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/EarlyCSE.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/FlattenCFGPass.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/Float2Int.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/GVN.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/GVNHoist.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/GVNSink.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/GuardWidening.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/InstSimplifyPass.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/JumpThreading.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/LICM.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/LoopDeletion.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/LoopDistribute.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/LoopFuse.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/LoopInstSimplify.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/LoopInterchange.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/LoopPredication.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/LoopRerollPass.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/LoopRotation.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/LoopSink.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/LoopUnswitch.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/LoopVersioningLICM.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/LowerAtomic.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/LowerGuardIntrinsic.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/LowerWidenableCondition.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/MakeGuardsExplicit.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/MergeICmps.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/NaryReassociate.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/NewGVN.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/Reassociate.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/Reg2Mem.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/SCCP.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/SROA.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/Scalar.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/Scalarizer.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/Sink.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/SpeculateAroundPHIs.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/StructurizeCFG.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/WarnMissedTransforms.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/AddDiscriminators.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/BuildLibCalls.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/BypassSlowDivision.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/CanonicalizeAliases.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/CloneFunction.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/CloneModule.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/CodeExtractor.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/EntryExitInstrumenter.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/Evaluator.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/FlattenCFG.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/FunctionImportUtils.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/GuardUtils.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/ImportedFunctionsInliningStatistics.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/InlineFunction.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/InstructionNamer.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/LCSSA.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/LibCallsShrinkWrap.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/Local.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/LoopRotationUtils.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/LoopSimplify.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/LoopUnroll.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/LoopUnrollPeel.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/LoopUtils.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/LoopVersioning.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/LowerInvoke.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/LowerSwitch.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/Mem2Reg.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/MetaRenamer.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/ModuleUtils.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/NameAnonGlobals.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/PredicateInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/SimplifyCFG.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/SizeOpts.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/StripGCRelocates.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/StripNonLineTableDebugInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/SymbolRewriter.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/Utils.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/VNCoercion.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Utils/ValueMapper.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h stable/12/contrib/llvm-project/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Vectorize/VPRecipeBuilder.h stable/12/contrib/llvm-project/llvm/lib/Transforms/Vectorize/VPlan.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Vectorize/VPlan.h stable/12/contrib/llvm-project/llvm/lib/Transforms/Vectorize/VPlanSLP.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Vectorize/VPlanValue.h stable/12/contrib/llvm-project/llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp stable/12/contrib/llvm-project/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp stable/12/contrib/llvm-project/llvm/lib/XRay/FDRRecordProducer.cpp stable/12/contrib/llvm-project/llvm/lib/XRay/FileHeaderReader.cpp stable/12/contrib/llvm-project/llvm/lib/XRay/InstrumentationMap.cpp stable/12/contrib/llvm-project/llvm/lib/XRay/Profile.cpp stable/12/contrib/llvm-project/llvm/lib/XRay/RecordInitializer.cpp stable/12/contrib/llvm-project/llvm/lib/XRay/Trace.cpp stable/12/contrib/llvm-project/llvm/tools/bugpoint/BugDriver.h stable/12/contrib/llvm-project/llvm/tools/bugpoint/CrashDebugger.cpp stable/12/contrib/llvm-project/llvm/tools/bugpoint/ExtractFunction.cpp stable/12/contrib/llvm-project/llvm/tools/bugpoint/OptimizerDriver.cpp stable/12/contrib/llvm-project/llvm/tools/bugpoint/ToolRunner.cpp stable/12/contrib/llvm-project/llvm/tools/bugpoint/bugpoint.cpp stable/12/contrib/llvm-project/llvm/tools/llc/llc.cpp stable/12/contrib/llvm-project/llvm/tools/lli/RemoteJITUtils.h stable/12/contrib/llvm-project/llvm/tools/lli/lli.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-ar/llvm-ar.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-as/llvm-as.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-cov/CodeCoverage.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-cov/CoverageExporterJson.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-cov/SourceCoverageView.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-cov/TestingSupport.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-cxxdump/llvm-cxxdump.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-cxxfilt/llvm-cxxfilt.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-cxxmap/llvm-cxxmap.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-diff/DifferenceEngine.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-dis/llvm-dis.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-dwarfdump/Statistics.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-extract/llvm-extract.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-link/llvm-link.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-lto/llvm-lto.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-lto2/llvm-lto2.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-mc/Disassembler.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-mc/Disassembler.h stable/12/contrib/llvm-project/llvm/tools/llvm-mc/llvm-mc.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-mca/CodeRegion.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-mca/CodeRegionGenerator.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-mca/Views/BottleneckAnalysis.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-mca/Views/BottleneckAnalysis.h stable/12/contrib/llvm-project/llvm/tools/llvm-mca/Views/DispatchStatistics.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-mca/Views/InstructionInfoView.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-mca/Views/InstructionInfoView.h stable/12/contrib/llvm-project/llvm/tools/llvm-mca/Views/ResourcePressureView.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-mca/Views/RetireControlUnitStatistics.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-mca/Views/SchedulerStatistics.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-mca/Views/SummaryView.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-mca/Views/TimelineView.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-mca/Views/TimelineView.h stable/12/contrib/llvm-project/llvm/tools/llvm-mca/llvm-mca.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-modextract/llvm-modextract.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-nm/llvm-nm.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-objcopy/COFF/COFFObjcopy.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-objcopy/COFF/Object.h stable/12/contrib/llvm-project/llvm/tools/llvm-objcopy/COFF/Reader.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-objcopy/COFF/Writer.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-objcopy/CopyConfig.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-objcopy/CopyConfig.h stable/12/contrib/llvm-project/llvm/tools/llvm-objcopy/ELF/ELFObjcopy.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-objcopy/ELF/Object.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-objcopy/ELF/Object.h stable/12/contrib/llvm-project/llvm/tools/llvm-objcopy/MachO/MachOObjcopy.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-objcopy/MachO/MachOReader.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-objcopy/MachO/MachOReader.h stable/12/contrib/llvm-project/llvm/tools/llvm-objcopy/MachO/MachOWriter.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-objcopy/MachO/MachOWriter.h stable/12/contrib/llvm-project/llvm/tools/llvm-objcopy/MachO/Object.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-objcopy/MachO/Object.h stable/12/contrib/llvm-project/llvm/tools/llvm-objcopy/ObjcopyOpts.td stable/12/contrib/llvm-project/llvm/tools/llvm-objcopy/StripOpts.td stable/12/contrib/llvm-project/llvm/tools/llvm-objcopy/llvm-objcopy.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-objdump/COFFDump.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-objdump/ELFDump.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-objdump/MachODump.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-objdump/llvm-objdump.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-objdump/llvm-objdump.h stable/12/contrib/llvm-project/llvm/tools/llvm-pdbutil/BytesOutputStyle.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-pdbutil/ExplainOutputStyle.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-pdbutil/InputFile.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-pdbutil/InputFile.h stable/12/contrib/llvm-project/llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-pdbutil/PrettyTypeDumper.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-profdata/llvm-profdata.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-readobj/ARMEHABIPrinter.h stable/12/contrib/llvm-project/llvm/tools/llvm-readobj/ARMWinEHPrinter.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-readobj/COFFDumper.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-readobj/DwarfCFIEHPrinter.h stable/12/contrib/llvm-project/llvm/tools/llvm-readobj/ELFDumper.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-readobj/MachODumper.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-readobj/ObjDumper.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-readobj/ObjDumper.h stable/12/contrib/llvm-project/llvm/tools/llvm-readobj/WasmDumper.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-readobj/Win64EHDumper.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-readobj/WindowsResourceDumper.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-readobj/XCOFFDumper.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-readobj/llvm-readobj.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-readobj/llvm-readobj.h stable/12/contrib/llvm-project/llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-stress/llvm-stress.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-xray/func-id-helper.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-xray/xray-account.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-xray/xray-converter.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-xray/xray-extract.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-xray/xray-fdr-dump.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-xray/xray-graph-diff.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-xray/xray-graph.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-xray/xray-stacks.cpp stable/12/contrib/llvm-project/llvm/tools/opt/NewPMDriver.cpp stable/12/contrib/llvm-project/llvm/tools/opt/PassPrinters.cpp stable/12/contrib/llvm-project/llvm/tools/opt/PassPrinters.h stable/12/contrib/llvm-project/llvm/tools/opt/opt.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/AsmMatcherEmitter.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/AsmWriterEmitter.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/AsmWriterInst.h stable/12/contrib/llvm-project/llvm/utils/TableGen/CallingConvEmitter.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/CodeEmitterGen.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/CodeGenDAGPatterns.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/CodeGenDAGPatterns.h stable/12/contrib/llvm-project/llvm/utils/TableGen/CodeGenInstruction.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/CodeGenInstruction.h stable/12/contrib/llvm-project/llvm/utils/TableGen/CodeGenIntrinsics.h stable/12/contrib/llvm-project/llvm/utils/TableGen/CodeGenMapTable.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/CodeGenRegisters.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/CodeGenRegisters.h stable/12/contrib/llvm-project/llvm/utils/TableGen/CodeGenSchedule.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/CodeGenTarget.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/CodeGenTarget.h stable/12/contrib/llvm-project/llvm/utils/TableGen/DAGISelEmitter.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/DAGISelMatcher.h stable/12/contrib/llvm-project/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/DAGISelMatcherGen.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/DAGISelMatcherOpt.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/DFAPacketizerEmitter.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/DisassemblerEmitter.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/FixedLenDecoderEmitter.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/GlobalISelEmitter.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/InfoByHwMode.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/InfoByHwMode.h stable/12/contrib/llvm-project/llvm/utils/TableGen/InstrDocsEmitter.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/InstrInfoEmitter.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/IntrinsicEmitter.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/OptParserEmitter.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/RISCVCompressInstEmitter.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/RegisterInfoEmitter.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/SearchableTableEmitter.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/SequenceToOffsetTable.h stable/12/contrib/llvm-project/llvm/utils/TableGen/SubtargetEmitter.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/SubtargetFeatureInfo.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/TableGen.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/TableGenBackends.h stable/12/contrib/llvm-project/llvm/utils/TableGen/WebAssemblyDisassemblerEmitter.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/X86DisassemblerTables.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/X86EVEX2VEXTablesEmitter.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/X86FoldTablesEmitter.cpp stable/12/contrib/llvm-project/llvm/utils/TableGen/X86RecognizableInstr.cpp stable/12/contrib/llvm-project/openmp/CREDITS.txt stable/12/contrib/llvm-project/openmp/runtime/src/extractExternal.cpp stable/12/contrib/llvm-project/openmp/runtime/src/i18n/en_US.txt stable/12/contrib/llvm-project/openmp/runtime/src/include/omp_lib.f.var stable/12/contrib/llvm-project/openmp/runtime/src/kmp.h stable/12/contrib/llvm-project/openmp/runtime/src/kmp_affinity.cpp stable/12/contrib/llvm-project/openmp/runtime/src/kmp_affinity.h stable/12/contrib/llvm-project/openmp/runtime/src/kmp_alloc.cpp stable/12/contrib/llvm-project/openmp/runtime/src/kmp_atomic.cpp stable/12/contrib/llvm-project/openmp/runtime/src/kmp_barrier.cpp stable/12/contrib/llvm-project/openmp/runtime/src/kmp_csupport.cpp stable/12/contrib/llvm-project/openmp/runtime/src/kmp_dispatch.cpp stable/12/contrib/llvm-project/openmp/runtime/src/kmp_dispatch_hier.h stable/12/contrib/llvm-project/openmp/runtime/src/kmp_ftn_entry.h stable/12/contrib/llvm-project/openmp/runtime/src/kmp_ftn_os.h stable/12/contrib/llvm-project/openmp/runtime/src/kmp_global.cpp stable/12/contrib/llvm-project/openmp/runtime/src/kmp_gsupport.cpp stable/12/contrib/llvm-project/openmp/runtime/src/kmp_itt.inl stable/12/contrib/llvm-project/openmp/runtime/src/kmp_lock.cpp stable/12/contrib/llvm-project/openmp/runtime/src/kmp_lock.h stable/12/contrib/llvm-project/openmp/runtime/src/kmp_os.h stable/12/contrib/llvm-project/openmp/runtime/src/kmp_platform.h stable/12/contrib/llvm-project/openmp/runtime/src/kmp_runtime.cpp stable/12/contrib/llvm-project/openmp/runtime/src/kmp_settings.cpp stable/12/contrib/llvm-project/openmp/runtime/src/kmp_stats.cpp stable/12/contrib/llvm-project/openmp/runtime/src/kmp_str.cpp stable/12/contrib/llvm-project/openmp/runtime/src/kmp_stub.cpp stable/12/contrib/llvm-project/openmp/runtime/src/kmp_taskdeps.cpp stable/12/contrib/llvm-project/openmp/runtime/src/kmp_tasking.cpp stable/12/contrib/llvm-project/openmp/runtime/src/kmp_wait_release.h stable/12/contrib/llvm-project/openmp/runtime/src/kmp_wrapper_getpid.h stable/12/contrib/llvm-project/openmp/runtime/src/kmp_wrapper_malloc.h stable/12/contrib/llvm-project/openmp/runtime/src/ompt-event-specific.h stable/12/contrib/llvm-project/openmp/runtime/src/ompt-general.cpp stable/12/contrib/llvm-project/openmp/runtime/src/ompt-internal.h stable/12/contrib/llvm-project/openmp/runtime/src/ompt-specific.cpp stable/12/contrib/llvm-project/openmp/runtime/src/ompt-specific.h stable/12/contrib/llvm-project/openmp/runtime/src/thirdparty/ittnotify/ittnotify.h stable/12/contrib/llvm-project/openmp/runtime/src/thirdparty/ittnotify/ittnotify_config.h stable/12/contrib/llvm-project/openmp/runtime/src/thirdparty/ittnotify/legacy/ittnotify.h stable/12/contrib/llvm-project/openmp/runtime/src/z_Linux_asm.S stable/12/contrib/llvm-project/openmp/runtime/src/z_Linux_util.cpp stable/12/contrib/llvm-project/openmp/runtime/src/z_Windows_NT_util.cpp stable/12/etc/mtree/BSD.debug.dist stable/12/etc/mtree/BSD.usr.dist stable/12/lib/clang/freebsd_cc_version.h stable/12/lib/clang/headers/Makefile stable/12/lib/clang/include/VCSVersion.inc stable/12/lib/clang/include/clang/Basic/Version.inc stable/12/lib/clang/include/clang/Config/config.h stable/12/lib/clang/include/lld/Common/Version.inc stable/12/lib/clang/include/lldb/Host/Config.h stable/12/lib/clang/include/llvm/Config/config.h stable/12/lib/clang/include/llvm/Config/llvm-config.h stable/12/lib/clang/include/llvm/Support/VCSRevision.h stable/12/lib/clang/libclang/Makefile stable/12/lib/clang/liblldb/Makefile stable/12/lib/clang/libllvm/Makefile stable/12/lib/clang/libllvmminimal/Makefile stable/12/lib/clang/llvm.build.mk stable/12/lib/libc++/Makefile stable/12/lib/libclang_rt/Makefile.inc stable/12/lib/libclang_rt/asan-preinit/Makefile stable/12/lib/libclang_rt/asan/Makefile stable/12/lib/libclang_rt/asan_cxx/Makefile stable/12/lib/libclang_rt/asan_dynamic/Makefile stable/12/lib/libclang_rt/cfi/Makefile stable/12/lib/libclang_rt/cfi_diag/Makefile stable/12/lib/libclang_rt/dd/Makefile stable/12/lib/libclang_rt/fuzzer/Makefile stable/12/lib/libclang_rt/fuzzer_no_main/Makefile stable/12/lib/libclang_rt/include/Makefile stable/12/lib/libclang_rt/msan/Makefile stable/12/lib/libclang_rt/msan_cxx/Makefile stable/12/lib/libclang_rt/profile/Makefile stable/12/lib/libclang_rt/safestack/Makefile stable/12/lib/libclang_rt/stats/Makefile stable/12/lib/libclang_rt/stats_client/Makefile stable/12/lib/libclang_rt/tsan/Makefile stable/12/lib/libclang_rt/tsan_cxx/Makefile stable/12/lib/libclang_rt/ubsan_minimal/Makefile stable/12/lib/libclang_rt/ubsan_standalone/Makefile stable/12/lib/libclang_rt/ubsan_standalone_cxx/Makefile stable/12/lib/libclang_rt/xray-basic/Makefile stable/12/lib/libclang_rt/xray-fdr/Makefile stable/12/lib/libclang_rt/xray-profiling/Makefile stable/12/lib/libclang_rt/xray/Makefile stable/12/lib/libcompiler_rt/Makefile.inc stable/12/lib/libomp/Makefile stable/12/share/mk/bsd.linker.mk stable/12/sys/sys/param.h stable/12/tools/build/mk/OptionalObsoleteFiles.inc stable/12/usr.bin/clang/clang-tblgen/Makefile stable/12/usr.bin/clang/lld/Makefile stable/12/usr.bin/clang/lldb-tblgen/Makefile stable/12/usr.bin/clang/lldb/Makefile stable/12/usr.bin/clang/llvm-objcopy/Makefile stable/12/usr.bin/clang/llvm-pdbutil/Makefile stable/12/usr.bin/clang/llvm-tblgen/Makefile stable/12/usr.bin/clang/opt/Makefile 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/12/Makefile.inc1 ============================================================================== --- stable/12/Makefile.inc1 Fri May 1 19:07:26 2020 (r360544) +++ stable/12/Makefile.inc1 Fri May 1 20:20:23 2020 (r360545) @@ -902,7 +902,7 @@ _sanity_check: .PHONY .MAKE # tree changes, particularly with respect to removing source files and # replacing generated files. Handle these cases here in an ad-hoc fashion. _cleanobj_fast_depend_hack: .PHONY -# Syscall stubs rewritten in C and obsolete MD assembly implementations + @echo ">>> Deleting stale dependencies..."; # Date SVN Rev Syscalls/Changes # 20170624 r320278 fstat fstatat fstatfs getdirentries getfsstat statfs # 20180404 r332048 sigreturn @@ -971,6 +971,7 @@ _cleanobj_fast_depend_hack: .PHONY echo "Removing stale wpa dependencies"; \ rm -f ${OBJTOP}/usr.sbin/wpa/*/.depend*; \ fi +# Syscall stubs rewritten in C and obsolete MD assembly implementations # 20191112 r354634 removal of opensolaris_atomic.S .if ${MACHINE} != i386 .for f in opensolaris_atomic @@ -982,6 +983,16 @@ _cleanobj_fast_depend_hack: .PHONY fi .endfor .endif +# 20200310 r358851 rename of openmp's ittnotify_static.c to .cpp +.for f in ittnotify_static + @if [ -e "${OBJTOP}/lib/libomp/.depend.${f}.pico" ] && \ + egrep -qw '${f}\.c' ${OBJTOP}/lib/libomp/.depend.${f}.pico; then \ + echo "Removing stale dependencies for ${f}"; \ + rm -f ${OBJTOP}/lib/libomp/.depend.${f}.* \ + ${OBJTOP}/obj-lib32/lib/libomp/.depend.${f}.* \ + ${LIBCOMPAT:D${LIBCOMPAT_OBJTOP}/lib/libomp/.depend.${f}.*}; \ + fi +.endfor _worldtmp: .PHONY @echo Modified: stable/12/ObsoleteFiles.inc ============================================================================== --- stable/12/ObsoleteFiles.inc Fri May 1 19:07:26 2020 (r360544) +++ stable/12/ObsoleteFiles.inc Fri May 1 20:20:23 2020 (r360545) @@ -38,6 +38,243 @@ # xargs -n1 | sort | uniq -d; # done +# 20200501: new clang import which bumps version from 9.0.1 to 10.0.0. +OLD_FILES+=usr/lib/clang/9.0.1/include/cuda_wrappers/algorithm +OLD_FILES+=usr/lib/clang/9.0.1/include/cuda_wrappers/complex +OLD_FILES+=usr/lib/clang/9.0.1/include/cuda_wrappers/new +OLD_DIRS+=usr/lib/clang/9.0.1/include/cuda_wrappers +OLD_FILES+=usr/lib/clang/9.0.1/include/openmp_wrappers/__clang_openmp_math.h +OLD_FILES+=usr/lib/clang/9.0.1/include/openmp_wrappers/__clang_openmp_math_declares.h +OLD_FILES+=usr/lib/clang/9.0.1/include/openmp_wrappers/cmath +OLD_FILES+=usr/lib/clang/9.0.1/include/openmp_wrappers/math.h +OLD_DIRS+=usr/lib/clang/9.0.1/include/openmp_wrappers +OLD_FILES+=usr/lib/clang/9.0.1/include/ppc_wrappers/emmintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/ppc_wrappers/mm_malloc.h +OLD_FILES+=usr/lib/clang/9.0.1/include/ppc_wrappers/mmintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/ppc_wrappers/xmmintrin.h +OLD_DIRS+=usr/lib/clang/9.0.1/include/ppc_wrappers +OLD_FILES+=usr/lib/clang/9.0.1/include/sanitizer/allocator_interface.h +OLD_FILES+=usr/lib/clang/9.0.1/include/sanitizer/asan_interface.h +OLD_FILES+=usr/lib/clang/9.0.1/include/sanitizer/common_interface_defs.h +OLD_FILES+=usr/lib/clang/9.0.1/include/sanitizer/coverage_interface.h +OLD_FILES+=usr/lib/clang/9.0.1/include/sanitizer/dfsan_interface.h +OLD_FILES+=usr/lib/clang/9.0.1/include/sanitizer/hwasan_interface.h +OLD_FILES+=usr/lib/clang/9.0.1/include/sanitizer/linux_syscall_hooks.h +OLD_FILES+=usr/lib/clang/9.0.1/include/sanitizer/lsan_interface.h +OLD_FILES+=usr/lib/clang/9.0.1/include/sanitizer/msan_interface.h +OLD_FILES+=usr/lib/clang/9.0.1/include/sanitizer/netbsd_syscall_hooks.h +OLD_FILES+=usr/lib/clang/9.0.1/include/sanitizer/scudo_interface.h +OLD_FILES+=usr/lib/clang/9.0.1/include/sanitizer/tsan_interface.h +OLD_FILES+=usr/lib/clang/9.0.1/include/sanitizer/tsan_interface_atomic.h +OLD_DIRS+=usr/lib/clang/9.0.1/include/sanitizer +OLD_FILES+=usr/lib/clang/9.0.1/include/__clang_cuda_builtin_vars.h +OLD_FILES+=usr/lib/clang/9.0.1/include/__clang_cuda_cmath.h +OLD_FILES+=usr/lib/clang/9.0.1/include/__clang_cuda_complex_builtins.h +OLD_FILES+=usr/lib/clang/9.0.1/include/__clang_cuda_device_functions.h +OLD_FILES+=usr/lib/clang/9.0.1/include/__clang_cuda_intrinsics.h +OLD_FILES+=usr/lib/clang/9.0.1/include/__clang_cuda_libdevice_declares.h +OLD_FILES+=usr/lib/clang/9.0.1/include/__clang_cuda_math_forward_declares.h +OLD_FILES+=usr/lib/clang/9.0.1/include/__clang_cuda_runtime_wrapper.h +OLD_FILES+=usr/lib/clang/9.0.1/include/__stddef_max_align_t.h +OLD_FILES+=usr/lib/clang/9.0.1/include/__wmmintrin_aes.h +OLD_FILES+=usr/lib/clang/9.0.1/include/__wmmintrin_pclmul.h +OLD_FILES+=usr/lib/clang/9.0.1/include/adxintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/altivec.h +OLD_FILES+=usr/lib/clang/9.0.1/include/ammintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/arm64intr.h +OLD_FILES+=usr/lib/clang/9.0.1/include/arm_acle.h +OLD_FILES+=usr/lib/clang/9.0.1/include/arm_fp16.h +OLD_FILES+=usr/lib/clang/9.0.1/include/arm_neon.h +OLD_FILES+=usr/lib/clang/9.0.1/include/armintr.h +OLD_FILES+=usr/lib/clang/9.0.1/include/avx2intrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/avx512bf16intrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/avx512bitalgintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/avx512bwintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/avx512cdintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/avx512dqintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/avx512erintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/avx512fintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/avx512ifmaintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/avx512ifmavlintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/avx512pfintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/avx512vbmi2intrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/avx512vbmiintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/avx512vbmivlintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/avx512vlbf16intrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/avx512vlbitalgintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/avx512vlbwintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/avx512vlcdintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/avx512vldqintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/avx512vlintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/avx512vlvbmi2intrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/avx512vlvnniintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/avx512vlvp2intersectintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/avx512vnniintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/avx512vp2intersectintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/avx512vpopcntdqintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/avx512vpopcntdqvlintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/avxintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/bmi2intrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/bmiintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/cetintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/cldemoteintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/clflushoptintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/clwbintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/clzerointrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/cpuid.h +OLD_FILES+=usr/lib/clang/9.0.1/include/emmintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/enqcmdintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/f16cintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/fma4intrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/fmaintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/fxsrintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/gfniintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/htmintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/htmxlintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/ia32intrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/immintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/invpcidintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/lwpintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/lzcntintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/mm3dnow.h +OLD_FILES+=usr/lib/clang/9.0.1/include/mm_malloc.h +OLD_FILES+=usr/lib/clang/9.0.1/include/mmintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/module.modulemap +OLD_FILES+=usr/lib/clang/9.0.1/include/movdirintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/msa.h +OLD_FILES+=usr/lib/clang/9.0.1/include/mwaitxintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/nmmintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/opencl-c-base.h +OLD_FILES+=usr/lib/clang/9.0.1/include/opencl-c.h +OLD_FILES+=usr/lib/clang/9.0.1/include/pconfigintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/pkuintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/pmmintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/popcntintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/prfchwintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/ptwriteintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/rdseedintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/rtmintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/s390intrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/sgxintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/shaintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/smmintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/tbmintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/tmmintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/vadefs.h +OLD_FILES+=usr/lib/clang/9.0.1/include/vaesintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/vecintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/vpclmulqdqintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/waitpkgintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/wbnoinvdintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/wmmintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/x86intrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/xmmintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/xopintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/xsavecintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/xsaveintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/xsaveoptintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/xsavesintrin.h +OLD_FILES+=usr/lib/clang/9.0.1/include/xtestintrin.h +OLD_DIRS+=usr/lib/clang/9.0.1/include +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.asan-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.asan-aarch64.so +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.asan-arm.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.asan-arm.so +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.asan-armhf.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.asan-armhf.so +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.asan-i386.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.asan-i386.so +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.asan-preinit-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.asan-preinit-arm.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.asan-preinit-armhf.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.asan-preinit-i386.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.asan-preinit-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.asan-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.asan-x86_64.so +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.asan_cxx-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.asan_cxx-arm.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.asan_cxx-armhf.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.asan_cxx-i386.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.asan_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.cfi-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.cfi-arm.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.cfi-armhf.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.cfi-i386.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.cfi-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.cfi_diag-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.cfi_diag-arm.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.cfi_diag-armhf.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.cfi_diag-i386.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.cfi_diag-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.dd-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.dd-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.fuzzer-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.fuzzer-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.fuzzer_no_main-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.fuzzer_no_main-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.msan-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.msan-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.msan_cxx-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.msan_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.profile-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.profile-arm.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.profile-armhf.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.profile-i386.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.profile-powerpc.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.profile-powerpc64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.profile-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.safestack-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.safestack-i386.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.safestack-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.stats-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.stats-arm.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.stats-armhf.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.stats-i386.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.stats-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.stats_client-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.stats_client-arm.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.stats_client-armhf.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.stats_client-i386.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.stats_client-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.tsan-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.tsan-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.tsan_cxx-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.tsan_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.ubsan_minimal-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.ubsan_minimal-arm.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.ubsan_minimal-armhf.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.ubsan_minimal-i386.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.ubsan_minimal-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.ubsan_standalone-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.ubsan_standalone-arm.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.ubsan_standalone-armhf.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.ubsan_standalone-i386.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.ubsan_standalone_cxx-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.ubsan_standalone_cxx-arm.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.ubsan_standalone_cxx-armhf.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.xray-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.xray-arm.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.xray-armhf.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.xray-basic-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.xray-basic-arm.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.xray-basic-armhf.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.xray-basic-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.xray-fdr-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.xray-fdr-arm.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.xray-fdr-armhf.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.xray-fdr-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.xray-profiling-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.xray-profiling-arm.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.xray-profiling-armhf.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.xray-profiling-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.1/lib/freebsd/libclang_rt.xray-x86_64.a +OLD_DIRS+=usr/lib/clang/9.0.1/lib/freebsd +OLD_DIRS+=usr/lib/clang/9.0.1/lib +OLD_DIRS+=usr/lib/clang/9.0.1 + # 20200115: gcc libssp removed OLD_FILES+=usr/include/ssp/ssp.h OLD_FILES+=usr/include/ssp/stdio.h Modified: stable/12/UPDATING ============================================================================== --- stable/12/UPDATING Fri May 1 19:07:26 2020 (r360544) +++ stable/12/UPDATING Fri May 1 20:20:23 2020 (r360545) @@ -16,6 +16,12 @@ from older versions of FreeBSD, try WITHOUT_CLANG and the tip of head, and then rebuild without this option. The bootstrap process from older version of current across the gcc/clang cutover is a bit fragile. +20200501: + Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have + been upgraded to 10.0.0. Please see the 20141231 entry below for + information about prerequisites and upgrading, if you are not already + using clang 3.5.0 or higher. + 20200430: The root certificates of the Mozilla CA Certificate Store have been imported into the base system and can be managed with the certctl(8) Modified: stable/12/contrib/llvm-project/FREEBSD-Xlist ============================================================================== --- stable/12/contrib/llvm-project/FREEBSD-Xlist Fri May 1 19:07:26 2020 (r360544) +++ stable/12/contrib/llvm-project/FREEBSD-Xlist Fri May 1 20:20:23 2020 (r360545) @@ -2,7 +2,9 @@ .arcconfig .clang-format .clang-tidy +.git-blame-ignore-revs .gitignore +CONTRIBUTING.md README.md clang/.arcconfig clang/.clang-format @@ -70,6 +72,7 @@ clang/lib/Tooling/DependencyScanning/CMakeLists.txt clang/lib/Tooling/Inclusions/CMakeLists.txt clang/lib/Tooling/Refactoring/CMakeLists.txt clang/lib/Tooling/Syntax/CMakeLists.txt +clang/lib/Tooling/Transformer/CMakeLists.txt clang/runtime/ clang/test/ clang/tools/CMakeLists.txt @@ -92,6 +95,7 @@ clang/tools/clang-format-vs/ clang/tools/clang-fuzzer/ clang/tools/clang-import-test/ clang/tools/clang-offload-bundler/ +clang/tools/clang-offload-wrapper/ clang/tools/clang-refactor/ clang/tools/clang-rename/ clang/tools/clang-scan-deps/ @@ -121,6 +125,7 @@ clang/utils/bash-autocomplete.sh clang/utils/builtin-defines.c clang/utils/check_cfc/ clang/utils/clangdiag.py +clang/utils/convert_arm_neon.py clang/utils/creduce-clang-crash.py clang/utils/find-unused-diagnostics.sh clang/utils/hmaptool/ @@ -159,9 +164,11 @@ compiler-rt/lib/fuzzer/scripts/ compiler-rt/lib/fuzzer/standalone/ compiler-rt/lib/fuzzer/tests/ compiler-rt/lib/gwp_asan/CMakeLists.txt +compiler-rt/lib/gwp_asan/scripts/ compiler-rt/lib/gwp_asan/tests/ compiler-rt/lib/hwasan/.clang-format compiler-rt/lib/hwasan/CMakeLists.txt +compiler-rt/lib/hwasan/scripts/ compiler-rt/lib/interception/.clang-format compiler-rt/lib/interception/CMakeLists.txt compiler-rt/lib/interception/tests/ @@ -180,6 +187,7 @@ compiler-rt/lib/sanitizer_common/scripts/ compiler-rt/lib/sanitizer_common/tests/ compiler-rt/lib/scudo/CMakeLists.txt compiler-rt/lib/scudo/standalone/CMakeLists.txt +compiler-rt/lib/scudo/standalone/benchmarks/ compiler-rt/lib/scudo/standalone/tests/ compiler-rt/lib/stats/CMakeLists.txt compiler-rt/lib/tsan/.clang-format @@ -196,10 +204,12 @@ compiler-rt/lib/ubsan_minimal/CMakeLists.txt compiler-rt/lib/xray/CMakeLists.txt compiler-rt/lib/xray/tests/ compiler-rt/test/ +compiler-rt/tools/ compiler-rt/unittests/ compiler-rt/utils/ compiler-rt/www/ debuginfo-tests/ +libc/ libclc/ libcxx/.arcconfig libcxx/.clang-format @@ -217,6 +227,7 @@ libcxx/include/CMakeLists.txt libcxx/include/__config_site.in libcxx/include/support/ libcxx/lib/ +libcxx/src/CMakeLists.txt libcxx/src/support/solaris/ libcxx/src/support/win32/ libcxx/test/ @@ -230,9 +241,21 @@ libunwind/cmake/ libunwind/docs/ libunwind/src/CMakeLists.txt libunwind/test/ +lld/CMakeLists.txt +lld/COFF/CMakeLists.txt +lld/Common/CMakeLists.txt +lld/ELF/CMakeLists.txt lld/MinGW/ lld/cmake/ +lld/docs/CMakeLists.txt +lld/lib/CMakeLists.txt +lld/lib/Core/CMakeLists.txt +lld/lib/Driver/CMakeLists.txt +lld/lib/ReaderWriter/CMakeLists.txt +lld/lib/ReaderWriter/MachO/CMakeLists.txt +lld/lib/ReaderWriter/YAML/CMakeLists.txt lld/test/ +lld/tools/lld/CMakeLists.txt lld/unittests/ lld/utils/ lld/wasm/ @@ -241,7 +264,6 @@ lldb/.clang-format lldb/.gitignore lldb/CMakeLists.txt lldb/CODE_OWNERS.txt -lldb/INSTALL.txt lldb/cmake/ lldb/docs/.htaccess lldb/docs/CMakeLists.txt @@ -259,14 +281,10 @@ lldb/docs/structured_data/ lldb/docs/testsuite/ lldb/docs/use/ lldb/examples/ -lldb/include/lldb/Host/Config.h lldb/include/lldb/Host/android/ lldb/include/lldb/Host/linux/ lldb/include/lldb/Host/macosx/ lldb/include/lldb/Host/windows/ -lldb/lit/ -lldb/lldb.xcodeproj/ -lldb/lldb.xcworkspace/ lldb/packages/ lldb/resources/ lldb/scripts/ @@ -288,6 +306,7 @@ lldb/source/Plugins/ABI/CMakeLists.txt lldb/source/Plugins/ABI/MacOSX-arm/CMakeLists.txt lldb/source/Plugins/ABI/MacOSX-arm64/CMakeLists.txt lldb/source/Plugins/ABI/MacOSX-i386/CMakeLists.txt +lldb/source/Plugins/ABI/SysV-arc/CMakeLists.txt lldb/source/Plugins/ABI/SysV-arm/CMakeLists.txt lldb/source/Plugins/ABI/SysV-arm64/CMakeLists.txt lldb/source/Plugins/ABI/SysV-hexagon/CMakeLists.txt @@ -377,6 +396,7 @@ lldb/source/Plugins/Process/gdb-remote/CMakeLists.txt lldb/source/Plugins/Process/mach-core/ lldb/source/Plugins/Process/minidump/CMakeLists.txt lldb/source/Plugins/ScriptInterpreter/CMakeLists.txt +lldb/source/Plugins/ScriptInterpreter/Lua/CMakeLists.txt lldb/source/Plugins/ScriptInterpreter/None/CMakeLists.txt lldb/source/Plugins/ScriptInterpreter/Python/CMakeLists.txt lldb/source/Plugins/StructuredData/CMakeLists.txt @@ -405,11 +425,9 @@ lldb/tools/darwin-debug/ lldb/tools/darwin-threads/ lldb/tools/debugserver/ lldb/tools/driver/CMakeLists.txt -lldb/tools/driver/lldb-Info.plist +lldb/tools/driver/lldb-Info.plist.in lldb/tools/intel-features/ lldb/tools/lldb-instr/CMakeLists.txt -lldb/tools/lldb-mi/CMakeLists.txt -lldb/tools/lldb-mi/lldb-Info.plist lldb/tools/lldb-perf/ lldb/tools/lldb-server/CMakeLists.txt lldb/tools/lldb-test/ @@ -417,14 +435,10 @@ lldb/tools/lldb-vscode/ lldb/unittests/ lldb/use_lldb_suite_root.py lldb/utils/TableGen/CMakeLists.txt -lldb/utils/git-svn/ lldb/utils/lit-cpuid/ lldb/utils/lldb-dotest/ lldb/utils/lui/ -lldb/utils/misc/ -lldb/utils/sync-source/ lldb/utils/test/ -lldb/utils/vim-lldb/ llgo/ llvm/.arcconfig llvm/.clang-format @@ -477,6 +491,8 @@ llvm/lib/CodeGen/MIRParser/LLVMBuild.txt llvm/lib/CodeGen/README.txt llvm/lib/CodeGen/SelectionDAG/CMakeLists.txt llvm/lib/CodeGen/SelectionDAG/LLVMBuild.txt +llvm/lib/DWARFLinker/CMakeLists.txt +llvm/lib/DWARFLinker/LLVMBuild.txt llvm/lib/DebugInfo/CMakeLists.txt llvm/lib/DebugInfo/CodeView/CMakeLists.txt llvm/lib/DebugInfo/CodeView/LLVMBuild.txt @@ -507,10 +523,16 @@ llvm/lib/ExecutionEngine/OProfileJIT/CMakeLists.txt llvm/lib/ExecutionEngine/OProfileJIT/LLVMBuild.txt llvm/lib/ExecutionEngine/Orc/CMakeLists.txt llvm/lib/ExecutionEngine/Orc/LLVMBuild.txt +llvm/lib/ExecutionEngine/OrcError/CMakeLists.txt +llvm/lib/ExecutionEngine/OrcError/LLVMBuild.txt llvm/lib/ExecutionEngine/PerfJITEvents/CMakeLists.txt llvm/lib/ExecutionEngine/PerfJITEvents/LLVMBuild.txt llvm/lib/ExecutionEngine/RuntimeDyld/CMakeLists.txt llvm/lib/ExecutionEngine/RuntimeDyld/LLVMBuild.txt +llvm/lib/Frontend/CMakeLists.txt +llvm/lib/Frontend/LLVMBuild.txt +llvm/lib/Frontend/OpenMP/CMakeLists.txt +llvm/lib/Frontend/OpenMP/LLVMBuild.txt llvm/lib/FuzzMutate/CMakeLists.txt llvm/lib/FuzzMutate/LLVMBuild.txt llvm/lib/Fuzzer/ @@ -713,6 +735,14 @@ llvm/lib/Target/SystemZ/MCTargetDesc/CMakeLists.txt llvm/lib/Target/SystemZ/MCTargetDesc/LLVMBuild.txt llvm/lib/Target/SystemZ/TargetInfo/CMakeLists.txt llvm/lib/Target/SystemZ/TargetInfo/LLVMBuild.txt +llvm/lib/Target/VE/CMakeLists.txt +llvm/lib/Target/VE/InstPrinter/CMakeLists.txt +llvm/lib/Target/VE/InstPrinter/LLVMBuild.txt +llvm/lib/Target/VE/LLVMBuild.txt +llvm/lib/Target/VE/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/VE/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/VE/TargetInfo/CMakeLists.txt +llvm/lib/Target/VE/TargetInfo/LLVMBuild.txt llvm/lib/Target/WebAssembly/AsmParser/CMakeLists.txt llvm/lib/Target/WebAssembly/AsmParser/LLVMBuild.txt llvm/lib/Target/WebAssembly/CMakeLists.txt @@ -762,6 +792,8 @@ llvm/lib/ToolDrivers/llvm-lib/CMakeLists.txt llvm/lib/ToolDrivers/llvm-lib/LLVMBuild.txt llvm/lib/Transforms/AggressiveInstCombine/CMakeLists.txt llvm/lib/Transforms/AggressiveInstCombine/LLVMBuild.txt +llvm/lib/Transforms/CFGuard/CMakeLists.txt +llvm/lib/Transforms/CFGuard/LLVMBuild.txt llvm/lib/Transforms/CMakeLists.txt llvm/lib/Transforms/Coroutines/CMakeLists.txt llvm/lib/Transforms/Coroutines/LLVMBuild.txt @@ -835,6 +867,7 @@ llvm/tools/llvm-exegesis/ llvm/tools/llvm-extract/CMakeLists.txt llvm/tools/llvm-extract/LLVMBuild.txt llvm/tools/llvm-go/ +llvm/tools/llvm-ifs/ llvm/tools/llvm-isel-fuzzer/ llvm/tools/llvm-itanium-demangle-fuzzer/ llvm/tools/llvm-jitlink/ @@ -871,6 +904,7 @@ llvm/tools/llvm-profdata/LLVMBuild.txt llvm/tools/llvm-rc/ llvm/tools/llvm-readobj/CMakeLists.txt llvm/tools/llvm-readobj/LLVMBuild.txt +llvm/tools/llvm-reduce/ llvm/tools/llvm-rtdyld/CMakeLists.txt llvm/tools/llvm-rtdyld/LLVMBuild.txt llvm/tools/llvm-shlib/ @@ -894,6 +928,7 @@ llvm/tools/remarks-shlib/ llvm/tools/sancov/ llvm/tools/sanstats/ llvm/tools/verify-uselistorder/ +llvm/tools/vfabi-demangle-fuzzer/ llvm/tools/xcode-toolchain/ llvm/tools/yaml2obj/ llvm/unittests/ @@ -910,12 +945,14 @@ llvm/utils/Misc/ llvm/utils/PerfectShuffle/ llvm/utils/Reviewing/ llvm/utils/TableGen/CMakeLists.txt +llvm/utils/TableGen/GlobalISel/CMakeLists.txt llvm/utils/TableGen/LLVMBuild.txt llvm/utils/TableGen/tdtags llvm/utils/Target/ llvm/utils/UpdateCMakeLists.pl llvm/utils/UpdateTestChecks/ llvm/utils/abtest.py +llvm/utils/add_argument_names.py llvm/utils/benchmark/ llvm/utils/bisect llvm/utils/bisect-skip-count @@ -953,6 +990,7 @@ llvm/utils/llvm-build/ llvm/utils/llvm-compilers-check llvm/utils/llvm-gisel-cov.py llvm/utils/llvm-lit/ +llvm/utils/llvm-locstats/ llvm/utils/llvm-native-gxx llvm/utils/llvm.grm llvm/utils/llvmdo @@ -980,6 +1018,7 @@ llvm/utils/vim/ llvm/utils/vscode/ llvm/utils/wciia.py llvm/utils/yaml-bench/ +mlir/ openmp/.arcconfig openmp/.gitignore openmp/CMakeLists.txt @@ -994,6 +1033,7 @@ openmp/runtime/doc/ openmp/runtime/src/CMakeLists.txt openmp/runtime/test/ openmp/runtime/tools/ +openmp/tools/ openmp/www/ parallel-libs/ polly/ Modified: stable/12/contrib/llvm-project/clang/include/clang-c/BuildSystem.h ============================================================================== --- stable/12/contrib/llvm-project/clang/include/clang-c/BuildSystem.h Fri May 1 19:07:26 2020 (r360544) +++ stable/12/contrib/llvm-project/clang/include/clang-c/BuildSystem.h Fri May 1 20:20:23 2020 (r360545) @@ -14,13 +14,12 @@ #ifndef LLVM_CLANG_C_BUILDSYSTEM_H #define LLVM_CLANG_C_BUILDSYSTEM_H -#include "clang-c/Platform.h" #include "clang-c/CXErrorCode.h" #include "clang-c/CXString.h" +#include "clang-c/ExternC.h" +#include "clang-c/Platform.h" -#ifdef __cplusplus -extern "C" { -#endif +LLVM_CLANG_C_EXTERN_C_BEGIN /** * \defgroup BUILD_SYSTEM Build system utilities @@ -148,9 +147,7 @@ CINDEX_LINKAGE void clang_ModuleMapDescriptor_dispose( * @} */ -#ifdef __cplusplus -} -#endif +LLVM_CLANG_C_EXTERN_C_END #endif /* CLANG_C_BUILD_SYSTEM_H */ Modified: stable/12/contrib/llvm-project/clang/include/clang-c/CXCompilationDatabase.h ============================================================================== --- stable/12/contrib/llvm-project/clang/include/clang-c/CXCompilationDatabase.h Fri May 1 19:07:26 2020 (r360544) +++ stable/12/contrib/llvm-project/clang/include/clang-c/CXCompilationDatabase.h Fri May 1 20:20:23 2020 (r360545) @@ -15,12 +15,11 @@ #ifndef LLVM_CLANG_C_CXCOMPILATIONDATABASE_H #define LLVM_CLANG_C_CXCOMPILATIONDATABASE_H -#include "clang-c/Platform.h" #include "clang-c/CXString.h" +#include "clang-c/ExternC.h" +#include "clang-c/Platform.h" -#ifdef __cplusplus -extern "C" { -#endif +LLVM_CLANG_C_EXTERN_C_BEGIN /** \defgroup COMPILATIONDB CompilationDatabase functions * \ingroup CINDEX @@ -169,8 +168,7 @@ clang_CompileCommand_getMappedSourceContent(CXCompileC * @} */ -#ifdef __cplusplus -} -#endif +LLVM_CLANG_C_EXTERN_C_END + #endif Modified: stable/12/contrib/llvm-project/clang/include/clang-c/CXErrorCode.h ============================================================================== --- stable/12/contrib/llvm-project/clang/include/clang-c/CXErrorCode.h Fri May 1 19:07:26 2020 (r360544) +++ stable/12/contrib/llvm-project/clang/include/clang-c/CXErrorCode.h Fri May 1 20:20:23 2020 (r360545) @@ -14,11 +14,10 @@ #ifndef LLVM_CLANG_C_CXERRORCODE_H #define LLVM_CLANG_C_CXERRORCODE_H +#include "clang-c/ExternC.h" #include "clang-c/Platform.h" -#ifdef __cplusplus -extern "C" { -#endif +LLVM_CLANG_C_EXTERN_C_BEGIN /** * Error codes returned by libclang routines. @@ -57,8 +56,7 @@ enum CXErrorCode { CXError_ASTReadError = 4 }; -#ifdef __cplusplus -} -#endif +LLVM_CLANG_C_EXTERN_C_END + #endif Modified: stable/12/contrib/llvm-project/clang/include/clang-c/CXString.h ============================================================================== --- stable/12/contrib/llvm-project/clang/include/clang-c/CXString.h Fri May 1 19:07:26 2020 (r360544) +++ stable/12/contrib/llvm-project/clang/include/clang-c/CXString.h Fri May 1 20:20:23 2020 (r360545) @@ -14,11 +14,10 @@ #ifndef LLVM_CLANG_C_CXSTRING_H #define LLVM_CLANG_C_CXSTRING_H +#include "clang-c/ExternC.h" #include "clang-c/Platform.h" -#ifdef __cplusplus -extern "C" { -#endif +LLVM_CLANG_C_EXTERN_C_BEGIN /** * \defgroup CINDEX_STRING String manipulation routines @@ -64,8 +63,7 @@ CINDEX_LINKAGE void clang_disposeStringSet(CXStringSet * @} */ -#ifdef __cplusplus -} -#endif +LLVM_CLANG_C_EXTERN_C_END + #endif Modified: stable/12/contrib/llvm-project/clang/include/clang-c/Documentation.h ============================================================================== --- stable/12/contrib/llvm-project/clang/include/clang-c/Documentation.h Fri May 1 19:07:26 2020 (r360544) +++ stable/12/contrib/llvm-project/clang/include/clang-c/Documentation.h Fri May 1 20:20:23 2020 (r360545) @@ -15,11 +15,10 @@ #ifndef LLVM_CLANG_C_DOCUMENTATION_H #define LLVM_CLANG_C_DOCUMENTATION_H +#include "clang-c/ExternC.h" #include "clang-c/Index.h" -#ifdef __cplusplus -extern "C" { -#endif +LLVM_CLANG_C_EXTERN_C_BEGIN /** * \defgroup CINDEX_COMMENT Comment introspection @@ -182,7 +181,12 @@ enum CXCommentInlineCommandRenderKind { * Command argument should be rendered emphasized (typically italic * font). */ - CXCommentInlineCommandRenderKind_Emphasized + CXCommentInlineCommandRenderKind_Emphasized, + + /** + * Command argument should not be rendered (since it only defines an anchor). + */ + CXCommentInlineCommandRenderKind_Anchor }; /** @@ -545,10 +549,7 @@ CINDEX_LINKAGE CXString clang_FullComment_getAsXML(CXC * @} */ - -#ifdef __cplusplus -} -#endif +LLVM_CLANG_C_EXTERN_C_END #endif /* CLANG_C_DOCUMENTATION_H */ Copied: stable/12/contrib/llvm-project/clang/include/clang-c/ExternC.h (from r358851, head/contrib/llvm-project/clang/include/clang-c/ExternC.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/contrib/llvm-project/clang/include/clang-c/ExternC.h Fri May 1 20:20:23 2020 (r360545, copy of r358851, head/contrib/llvm-project/clang/include/clang-c/ExternC.h) @@ -0,0 +1,39 @@ +/*===- clang-c/ExternC.h - Wrapper for 'extern "C"' ---------------*- C -*-===*\ +|* *| +|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| +|* Exceptions. *| +|* See https://llvm.org/LICENSE.txt for license information. *| +|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| +|* *| +|*===----------------------------------------------------------------------===*| +|* *| +|* This file defines an 'extern "C"' wrapper. *| +|* *| +\*===----------------------------------------------------------------------===*/ + +#ifndef LLVM_CLANG_C_EXTERN_C_H +#define LLVM_CLANG_C_EXTERN_C_H + +#ifdef __clang__ +#define LLVM_CLANG_C_STRICT_PROTOTYPES_BEGIN \ + _Pragma("clang diagnostic push") \ + _Pragma("clang diagnostic error \"-Wstrict-prototypes\"") +#define LLVM_CLANG_C_STRICT_PROTOTYPES_END _Pragma("clang diagnostic pop") +#else +#define LLVM_CLANG_C_STRICT_PROTOTYPES_BEGIN +#define LLVM_CLANG_C_STRICT_PROTOTYPES_END +#endif + +#ifdef __cplusplus +#define LLVM_CLANG_C_EXTERN_C_BEGIN \ + extern "C" { \ + LLVM_CLANG_C_STRICT_PROTOTYPES_BEGIN +#define LLVM_CLANG_C_EXTERN_C_END \ + LLVM_CLANG_C_STRICT_PROTOTYPES_END \ + } +#else +#define LLVM_CLANG_C_EXTERN_C_BEGIN LLVM_CLANG_C_STRICT_PROTOTYPES_BEGIN +#define LLVM_CLANG_C_EXTERN_C_END LLVM_CLANG_C_STRICT_PROTOTYPES_END +#endif + +#endif Copied: stable/12/contrib/llvm-project/clang/include/clang-c/FatalErrorHandler.h (from r358851, head/contrib/llvm-project/clang/include/clang-c/FatalErrorHandler.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/contrib/llvm-project/clang/include/clang-c/FatalErrorHandler.h Fri May 1 20:20:23 2020 (r360545, copy of r358851, head/contrib/llvm-project/clang/include/clang-c/FatalErrorHandler.h) @@ -0,0 +1,32 @@ +/*===-- clang-c/FatalErrorHandler.h - Fatal Error Handling --------*- C -*-===*\ +|* *| +|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| +|* Exceptions. *| +|* See https://llvm.org/LICENSE.txt for license information. *| +|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| +|* *| +\*===----------------------------------------------------------------------===*/ + +#ifndef LLVM_CLANG_C_FATAL_ERROR_HANDLER_H +#define LLVM_CLANG_C_FATAL_ERROR_HANDLER_H + +#include "clang-c/ExternC.h" + +LLVM_CLANG_C_EXTERN_C_BEGIN + +/** + * Installs error handler that prints error message to stderr and calls abort(). + * Replaces currently installed error handler (if any). + */ +void clang_install_aborting_llvm_fatal_error_handler(void); + +/** + * Removes currently installed error handler (if any). + * If no error handler is intalled, the default strategy is to print error + * message to stderr and call exit(1). + */ +void clang_uninstall_llvm_fatal_error_handler(void); + +LLVM_CLANG_C_EXTERN_C_END + +#endif Modified: stable/12/contrib/llvm-project/clang/include/clang-c/Index.h ============================================================================== --- stable/12/contrib/llvm-project/clang/include/clang-c/Index.h Fri May 1 19:07:26 2020 (r360544) +++ stable/12/contrib/llvm-project/clang/include/clang-c/Index.h Fri May 1 20:20:23 2020 (r360545) @@ -18,10 +18,11 @@ #include -#include "clang-c/Platform.h" +#include "clang-c/BuildSystem.h" #include "clang-c/CXErrorCode.h" #include "clang-c/CXString.h" -#include "clang-c/BuildSystem.h" +#include "clang-c/ExternC.h" +#include "clang-c/Platform.h" /** * The version constants for the libclang API. @@ -51,9 +52,7 @@ CINDEX_VERSION_MAJOR, \ CINDEX_VERSION_MINOR) -#ifdef __cplusplus -extern "C" { -#endif +LLVM_CLANG_C_EXTERN_C_BEGIN /** \defgroup CINDEX libclang: C Interface to Clang * @@ -1356,7 +1355,12 @@ enum CXTranslationUnit_Flags { * the case where these warnings are not of interest, as for an IDE for * example, which typically shows only the diagnostics in the main file. */ - CXTranslationUnit_IgnoreNonErrorsFromIncludedFiles = 0x4000 + CXTranslationUnit_IgnoreNonErrorsFromIncludedFiles = 0x4000, + + /** + * Tells the preprocessor not to skip excluded conditional blocks. + */ + CXTranslationUnit_RetainExcludedConditionalBlocks = 0x8000 }; /** @@ -2550,8 +2554,28 @@ enum CXCursorKind { */ CXCursor_BuiltinBitCastExpr = 280, - CXCursor_LastStmt = CXCursor_BuiltinBitCastExpr, + /** OpenMP master taskloop directive. + */ + CXCursor_OMPMasterTaskLoopDirective = 281, + /** OpenMP parallel master taskloop directive. + */ + CXCursor_OMPParallelMasterTaskLoopDirective = 282, + + /** OpenMP master taskloop simd directive. + */ + CXCursor_OMPMasterTaskLoopSimdDirective = 283, + + /** OpenMP parallel master taskloop simd directive. + */ + CXCursor_OMPParallelMasterTaskLoopSimdDirective = 284, + + /** OpenMP parallel master directive. + */ + CXCursor_OMPParallelMasterDirective = 285, + + CXCursor_LastStmt = CXCursor_OMPParallelMasterDirective, + /** * Cursor that represents the translation unit itself. * @@ -6753,7 +6777,6 @@ CINDEX_LINKAGE unsigned clang_Type_visitFields(CXType * @} */ -#ifdef __cplusplus -} -#endif +LLVM_CLANG_C_EXTERN_C_END + #endif Modified: stable/12/contrib/llvm-project/clang/include/clang-c/Platform.h ============================================================================== --- stable/12/contrib/llvm-project/clang/include/clang-c/Platform.h Fri May 1 19:07:26 2020 (r360544) +++ stable/12/contrib/llvm-project/clang/include/clang-c/Platform.h Fri May 1 20:20:23 2020 (r360545) @@ -14,10 +14,10 @@ #ifndef LLVM_CLANG_C_PLATFORM_H #define LLVM_CLANG_C_PLATFORM_H -#ifdef __cplusplus -extern "C" { -#endif +#include "clang-c/ExternC.h" +LLVM_CLANG_C_EXTERN_C_BEGIN + /* MSVC DLL import/export. */ #ifdef _MSC_VER #ifdef _CINDEX_LIB_ @@ -39,7 +39,6 @@ extern "C" { #endif #endif -#ifdef __cplusplus -} -#endif +LLVM_CLANG_C_EXTERN_C_END + #endif Modified: stable/12/contrib/llvm-project/clang/include/clang/AST/APValue.h ============================================================================== --- stable/12/contrib/llvm-project/clang/include/clang/AST/APValue.h Fri May 1 19:07:26 2020 (r360544) +++ stable/12/contrib/llvm-project/clang/include/clang/AST/APValue.h Fri May 1 20:20:23 2020 (r360545) @@ -53,6 +53,34 @@ class TypeInfoLValue { (public) void print(llvm::raw_ostream &Out, const PrintingPolicy &Policy) const; }; + +/// Symbolic representation of a dynamic allocation. +class DynamicAllocLValue { + unsigned Index; + +public: + DynamicAllocLValue() : Index(0) {} + explicit DynamicAllocLValue(unsigned Index) : Index(Index + 1) {} + unsigned getIndex() { return Index - 1; } + + explicit operator bool() const { return Index != 0; } + + void *getOpaqueValue() { + return reinterpret_cast(static_cast(Index) + << NumLowBitsAvailable); + } + static DynamicAllocLValue getFromOpaqueValue(void *Value) { + DynamicAllocLValue V; + V.Index = reinterpret_cast(Value) >> NumLowBitsAvailable; + return V; + } + + static unsigned getMaxIndex() { + return (std::numeric_limits::max() >> NumLowBitsAvailable) - 1; + } + + static constexpr int NumLowBitsAvailable = 3; +}; } namespace llvm { @@ -67,6 +95,17 @@ template<> struct PointerLikeTypeTraits struct PointerLikeTypeTraits { + static void *getAsVoidPointer(clang::DynamicAllocLValue V) { + return V.getOpaqueValue(); + } + static clang::DynamicAllocLValue getFromVoidPointer(void *P) { + return clang::DynamicAllocLValue::getFromOpaqueValue(P); + } + static constexpr int NumLowBitsAvailable = + clang::DynamicAllocLValue::NumLowBitsAvailable; +}; } namespace clang { @@ -97,13 +136,15 @@ class APValue { (public) }; class LValueBase { - typedef llvm::PointerUnion + typedef llvm::PointerUnion PtrTy; public: LValueBase() : Local{} {} LValueBase(const ValueDecl *P, unsigned I = 0, unsigned V = 0); LValueBase(const Expr *P, unsigned I = 0, unsigned V = 0); + static LValueBase getDynamicAlloc(DynamicAllocLValue LV, QualType Type); static LValueBase getTypeInfo(TypeInfoLValue LV, QualType TypeInfo); template @@ -124,6 +165,7 @@ class APValue { (public) unsigned getCallIndex() const; unsigned getVersion() const; QualType getTypeInfoType() const; + QualType getDynamicAllocType() const; friend bool operator==(const LValueBase &LHS, const LValueBase &RHS); friend bool operator!=(const LValueBase &LHS, const LValueBase &RHS) { @@ -140,6 +182,8 @@ class APValue { (public) LocalState Local; /// The type std::type_info, if this is a TypeInfoLValue. void *TypeInfoType; + /// The QualType, if this is a DynamicAllocLValue. *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Fri May 1 20:29: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 02FC52DEF2E; Fri, 1 May 2020 20:29:47 +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 49DP4V63WVz44nh; Fri, 1 May 2020 20:29: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 CB13EDF9A; Fri, 1 May 2020 20:29: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 041KTkKe059134; Fri, 1 May 2020 20:29:46 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 041KTkVo059133; Fri, 1 May 2020 20:29:46 GMT (envelope-from imp@FreeBSD.org) Message-Id: <202005012029.041KTkVo059133@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Fri, 1 May 2020 20:29:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360546 - head/sbin/nvmecontrol X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sbin/nvmecontrol X-SVN-Commit-Revision: 360546 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, 01 May 2020 20:29:47 -0000 Author: imp Date: Fri May 1 20:29:46 2020 New Revision: 360546 URL: https://svnweb.freebsd.org/changeset/base/360546 Log: Various improvements to this man page: o Be consistent about device-id and namespace-id o Use consistent arg markup for these o document you can use disk names too o document nsid command better o document the idenntify command o add a couple of examples. Differential Revision: https://reviews.freebsd.org/D24638 Modified: head/sbin/nvmecontrol/nvmecontrol.8 Modified: head/sbin/nvmecontrol/nvmecontrol.8 ============================================================================== --- head/sbin/nvmecontrol/nvmecontrol.8 Fri May 1 20:20:23 2020 (r360545) +++ head/sbin/nvmecontrol/nvmecontrol.8 Fri May 1 20:29:46 2020 (r360546) @@ -1,4 +1,5 @@ .\" +.\" Copyright (c) 2020 Warner Losh .\" Copyright (c) 2018-2019 Alexander Motin .\" Copyright (c) 2012 Intel Corporation .\" All rights reserved. @@ -34,7 +35,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 5, 2019 +.Dd April 30, 2020 .Dt NVMECONTROL 8 .Os .Sh NAME @@ -47,8 +48,8 @@ .Ic identify .Op Fl v .Op Fl x -.Aq device id -.Aq namespace id +.Op Fl n Ar nsid +.Aq Ar device-id | Ar namespace-id .Nm .Ic perftest .Aq Fl n Ar num_threads @@ -56,10 +57,10 @@ .Op Fl p .Aq Fl s Ar size_in_bytes .Aq Fl t Ar time_in_sec -.Aq namespace id +.Aq Ar namespace-id .Nm .Ic reset -.Aq controller id +.Aq Ar device-id .Nm .Ic logpage .Aq Fl p Ar page_id @@ -69,26 +70,25 @@ .Op Fl f Ar LSP .Op Fl i Ar LSI .Op Fl r -.Aq device id -.Aq namespace id +.Aq Ar device-id | Ar namespace-id .Nm .Ic ns active -.Aq device id +.Aq Ar device-id .Nm .Ic ns allocated -.Aq device id +.Aq Ar device-id .Nm .Ic ns attach .Aq Fl n Ar nsid .Aq Fl c Ar cntid -.Aq device id +.Aq Ar device-id .Nm .Ic ns attached .Aq Fl n Ar nsid -.Aq device id +.Aq Ar device-id .Nm .Ic ns controllers -.Aq device id +.Aq Ar device-id .Nm .Ic ns create .Aq Fl s Ar nsze @@ -100,33 +100,32 @@ .Op Fl l Ar pil .Op Fl L Ar flbas .Op Fl d Ar dps -.Aq device id +.Aq Ar device-id .Nm .Ic ns delete .Aq Fl n Ar nsid -.Aq device id +.Aq Ar device-id .Nm .Ic ns detach .Aq Fl n Ar nsid .Aq Fl c Ar cntid -.Aq device id +.Aq Ar device-id .Nm .Ic ns identify .Op Fl v .Op Fl x .Aq Fl n Ar nsid -.Aq device id +.Aq Ar device-id .Nm .Ic nsid -.Aq device id -.Aq namespace id +.Aq Ar device-id | Ar namespace-id .Nm .Ic resv acquire .Aq Fl c Ar crkey .Op Fl p Ar prkey .Aq Fl t Ar rtype .Aq Fl a Ar racqa -.Aq namespace id +.Aq Ar namespace-id .Nm .Ic resv register .Op Fl c Ar crkey @@ -134,25 +133,25 @@ .Aq Fl r Ar rrega .Op Fl i Ar iekey .Op Fl p Ar cptpl -.Aq namespace id +.Aq Ar namespace-id .Nm .Ic resv release .Aq Fl c Ar crkey .Aq Fl t Ar rtype .Aq Fl a Ar rrela -.Aq namespace id +.Aq Ar namespace-id .Nm .Ic resv report .Op Fl e .Op Fl v .Op Fl x -.Aq namespace id +.Aq Ar namespace-id .Nm .Ic firmware .Op Fl s Ar slot .Op Fl f Ar path_to_firmware .Op Fl a -.Aq device id +.Aq Ar device-id .Nm .Ic format .Op Fl f Ar fmt @@ -161,8 +160,7 @@ .Op Fl l Ar pil .Op Fl E .Op Fl C -.Aq device id -.Aq namespace id +.Aq Ar device-id | Ar namespace-id .Nm .Ic sanitize .Aq Fl a Ar sanact @@ -172,7 +170,7 @@ .Op Fl r .Op Fl I .Op Fl U -.Aq device id +.Aq Ar device-id .Nm .Ic power .Op Fl l @@ -181,25 +179,57 @@ .Nm .Ic wdc cap-diag .Op Fl o path_template -.Aq device id +.Aq Ar device-id .Nm .Ic wdc drive-log .Op Fl o path_template -.Aq device id +.Aq Ar device-id .Nm .Ic wdc get-crash-dump .Op Fl o path_template -.Aq device id +.Aq Ar device-id .\" .Nm .\" .Ic wdc purge -.\" .Aq device id +.\" .Aq device-id .\" .Nm .\" .Ic wdc purge-monitor -.\" .Aq device id +.\" .Aq device-id .Sh DESCRIPTION NVM Express (NVMe) is a storage protocol standard, for SSDs and other high-speed storage devices over PCI Express. .Pp +.Ss identify +The identify commands reports information from the drive's +.Dv IDENTIFY_CONTROLLER +if a +.Ar device-id +is specified. +It reports +.Dv IDENTIFY_NAMESPACE +data if a +.Ar namespace-id +is specified. +When used with disk names, the +.Dv IDENTIFY_NAMESPACE +data is reported, unless the namespace +.Ar nsid +is overridden with the +.Fl n +flag. +Then that namespace's data is reported, if it exists. +The command accepts the following parameters: +.Bl -tag -width 6n +.It Fl n +The namespace +.Aq nsid +to use instead of the namespace associated with the device. +A +.Ar nsid +of +.Dq 0 +is used to retrieve the +.Dv IDENTIFY_CONTROLLER +data associated with that drive. .Ss logpage The logpage command knows how to print log pages of various types. It also knows about vendor specific log pages from hgst/wdc and intel. @@ -250,6 +280,12 @@ will set Retain Asynchronous Event. Various namespace management commands. If namespace management is supported by device, allow list, create and delete namespaces, list, attach and detach controllers to namespaces. +.Ss nsid +Reports the namespace id and controller device associated with the +.Aq Ar namespace-id +or +.Aq Ar device-id +argument. .Ss resv acquire Acquire or preempt namespace reservation, using specified parameters: .Bl -tag -width 6n @@ -430,19 +466,54 @@ the drive's serial number and the type of dump it is f by .bin. These logs must be sent to the vendor for analysis. This tool only provides a way to extract them. +.Sh DEVICE NAMES +Where +.Aq Ar namespace-id +is required, you can use either the +.Pa nvmeXnsY +device, or the disk device such as +.Pa ndaZ +or +.Pa nvdZ . +The leading +.Pa /dev/ +is omitted. +Where +.Aq Ar device-id +is required, you can use either the +.Pa nvmeX +device, or the disk device such as +.Pa nda Z +or +.Pa nvdZ . +For commands that take an optional +.Aq nsid +you can use it to get information on other namespaces, or to query the +drive itself. +A +.Aq nsid +of +.Dq 0 +means query the drive itself. .Sh EXAMPLES .Dl nvmecontrol devlist .Pp Display a list of NVMe controllers and namespaces along with their device nodes. .Pp .Dl nvmecontrol identify nvme0 +.Dl nvmecontrol identify -n 0 nvd0 .Pp -Display a human-readable summary of the nvme0 IDENTIFY_CONTROLLER data. +Display a human-readable summary of the nvme0 +.Dv IDENTIFY_CONTROLLER +data. +In this example, nvd0 is connected to nvme0. .Pp .Dl nvmecontrol identify -x -v nvme0ns1 +.Dl nvmecontrol identify -x -v -n 1 nvme0 .Pp -Display an hexadecimal dump of the nvme0 IDENTIFY_NAMESPACE data for namespace -1. +Display an hexadecimal dump of the nvme0 +.Dv IDENTIFY_NAMESPACE +data for namespace 1. .Pp .Dl nvmecontrol perftest -n 32 -o read -s 512 -t 30 nvme0ns1 .Pp @@ -451,8 +522,10 @@ Each thread will issue a single 512 byte read command. Results are printed to stdout when 30 seconds expires. .Pp .Dl nvmecontrol reset nvme0 +.Dl nvmecontrol reset nda4 .Pp Perform a controller-level reset of the nvme0 controller. +In this example, nda4 is wired to nvme0. .Pp .Dl nvmecontrol logpage -p 1 nvme0 .Pp @@ -500,6 +573,24 @@ Set the current power mode. .Dl nvmecontrol power nvme0 .Pp Get the current power mode. +.Pp +.Dl nvmecontrol identify -n 0 nda0 +.Pp +Identify the drive data associated with the +.Pa nda0 +device. +The corresponding +.Pa nvmeX +devices is used automatically. +.Pp +.Dl nvmecontrol identify nda0 +.Pp +Get the namespace parameters associated with the +.Pa nda0 +device. +The corresponding +.Pa nvmeXnsY +device is used automatically. .Sh DYNAMIC LOADING The directories .Pa /lib/nvmecontrol From owner-svn-src-all@freebsd.org Fri May 1 20:29: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 C1A842DEF4E; Fri, 1 May 2020 20:29:53 +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 49DP4c74gdz44rW; Fri, 1 May 2020 20:29:52 +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 9A26CDF9B; Fri, 1 May 2020 20:29:52 +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 041KTqtr059189; Fri, 1 May 2020 20:29:52 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 041KTqYo059187; Fri, 1 May 2020 20:29:52 GMT (envelope-from imp@FreeBSD.org) Message-Id: <202005012029.041KTqYo059187@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Fri, 1 May 2020 20:29:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360547 - head/sbin/nvmecontrol X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sbin/nvmecontrol X-SVN-Commit-Revision: 360547 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, 01 May 2020 20:29:53 -0000 Author: imp Date: Fri May 1 20:29:51 2020 New Revision: 360547 URL: https://svnweb.freebsd.org/changeset/base/360547 Log: Document the passthru commands. Reviewed by: bcr@ (earlier version) Differential Revision: https://reviews.freebsd.org/D24639 Modified: head/sbin/nvmecontrol/nvmecontrol.8 head/sbin/nvmecontrol/passthru.c Modified: head/sbin/nvmecontrol/nvmecontrol.8 ============================================================================== --- head/sbin/nvmecontrol/nvmecontrol.8 Fri May 1 20:29:46 2020 (r360546) +++ head/sbin/nvmecontrol/nvmecontrol.8 Fri May 1 20:29:51 2020 (r360547) @@ -194,6 +194,14 @@ .\" .Nm .\" .Ic wdc purge-monitor .\" .Aq device-id +.Nm +.Ic admin-passthru +.Op args +.Aq Ar device-id +.Nm +.Ic io-passthru +.Op args +.Aq Ar namespace-id .Sh DESCRIPTION NVM Express (NVMe) is a storage protocol standard, for SSDs and other high-speed storage devices over PCI Express. @@ -466,6 +474,68 @@ the drive's serial number and the type of dump it is f by .bin. These logs must be sent to the vendor for analysis. This tool only provides a way to extract them. +.Ss passthru +The +.Dq admin-passthru +and +.Dq io-passthru +commands send NVMe commands to +either the administrative or the data part of the device. +These commands are expected to be compatible with nvme-cli. +Please see +.St The NVMe Standard +for details. +.Bl -tag -width 16n +.It Fl o -opcode Ar opcode +Opcode to send. +.It Fl 2 -cdw2 Ar value +32-bit value for CDW2. +.It Fl 3 -cdw3 Ar value +32-bit value for CDW3. +.It Fl 4 -cdw10 Ar value +32-bit value for CDW10. +.It Fl 5 -cdw11 Ar value +32-bit value for CDW11. +.It Fl 6 -cdw12 Ar value +32-bit value for CDW12. +.It Fl 7 -cdw13 Ar value +32-bit value for CDW13. +.It Fl 8 -cdw14 Ar value +32-bit value for CDW14. +.It Fl 9 -cdw15 Ar value +32-bit value for CDW15. +.It Fl l -data-len +Length of the data for I/O (bytes). +.It Fl m -metadata-len +Length of the metadata segment for command (bytes). +This is ignored and not implemented in +.Xr nvme 4 . +.It Fl f -flags +Nvme command flags. +.It Fl n -namespace-id +Namespace ID for command (Ignored). +.It Fl p -prefill +Value to prefill payload with. +.It Fl b -raw-binary +Output in binary format (otherwise a hex dump is produced). +.It Fl d -dry-run +Do not actually execute the command, but perform sanity checks on it. +.It Fl r -read +Command reads data from the device. +.It Fl s -show-command +Show all the command values on stdout. +.It Fl w -write +Command writes data to the device. +.El +Send arbitrary commands to the device. +Can be used to extract vendor specific logs. +Transfers to/from the device possible, but limited to +.Dv MAXPHYS +bytes. +Commands either read data or write it, but not both. +Commands needing metadata are not supported by the +.Xr nvme 4 +drive. .Sh DEVICE NAMES Where .Aq Ar namespace-id Modified: head/sbin/nvmecontrol/passthru.c ============================================================================== --- head/sbin/nvmecontrol/passthru.c Fri May 1 20:29:46 2020 (r360546) +++ head/sbin/nvmecontrol/passthru.c Fri May 1 20:29:51 2020 (r360547) @@ -292,7 +292,7 @@ static struct cmd io_pass_cmd = { .ctx_size = sizeof(struct options), .opts = opts, .args = args, - .descr = "Send a pass through Admin command to the specified device", + .descr = "Send a pass through I/O command to the specified device", }; CMD_COMMAND(admin_pass_cmd); From owner-svn-src-all@freebsd.org Fri May 1 21:22: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 C1A212B0005; Fri, 1 May 2020 21:22:27 +0000 (UTC) (envelope-from np@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 49DQFH4pbwz47py; Fri, 1 May 2020 21:22:27 +0000 (UTC) (envelope-from np@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 85F90EAE6; Fri, 1 May 2020 21:22:27 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 041LMROA096035; Fri, 1 May 2020 21:22:27 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 041LMRec096034; Fri, 1 May 2020 21:22:27 GMT (envelope-from np@FreeBSD.org) Message-Id: <202005012122.041LMRec096034@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Fri, 1 May 2020 21:22: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: r360548 - stable/12/sys/dev/cxgbe/iw_cxgbe X-SVN-Group: stable-12 X-SVN-Commit-Author: np X-SVN-Commit-Paths: stable/12/sys/dev/cxgbe/iw_cxgbe X-SVN-Commit-Revision: 360548 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, 01 May 2020 21:22:27 -0000 Author: np Date: Fri May 1 21:22:26 2020 New Revision: 360548 URL: https://svnweb.freebsd.org/changeset/base/360548 Log: MFC r360211: cxgbe/iw_cxgbe: Create a LinuxKPI pci device for an adapter and use it as the dma_device during RDMA registration. cxgbe's struct device cannot be used as-is because it's a native FreeBSD driver and ibcore is LinuxKPI based. Sponsored by: Chelsio Communications Modified: stable/12/sys/dev/cxgbe/iw_cxgbe/iw_cxgbe.h stable/12/sys/dev/cxgbe/iw_cxgbe/provider.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/cxgbe/iw_cxgbe/iw_cxgbe.h ============================================================================== --- stable/12/sys/dev/cxgbe/iw_cxgbe/iw_cxgbe.h Fri May 1 20:29:51 2020 (r360547) +++ stable/12/sys/dev/cxgbe/iw_cxgbe/iw_cxgbe.h Fri May 1 21:22:26 2020 (r360548) @@ -261,6 +261,7 @@ out: struct c4iw_dev { struct ib_device ibdev; + struct pci_dev pdev; struct c4iw_rdev rdev; u32 device_cap_flags; struct idr cqidr; Modified: stable/12/sys/dev/cxgbe/iw_cxgbe/provider.c ============================================================================== --- stable/12/sys/dev/cxgbe/iw_cxgbe/provider.c Fri May 1 20:29:51 2020 (r360547) +++ stable/12/sys/dev/cxgbe/iw_cxgbe/provider.c Fri May 1 21:22:26 2020 (r360548) @@ -434,6 +434,9 @@ c4iw_register_device(struct c4iw_dev *dev) CTR3(KTR_IW_CXGBE, "%s c4iw_dev %p, adapter %p", __func__, dev, sc); BUG_ON(!sc->port[0]); + ret = linux_pci_attach_device(sc->dev, NULL, NULL, &dev->pdev); + if (ret) + return (ret); strlcpy(ibdev->name, device_get_nameunit(sc->dev), sizeof(ibdev->name)); memset(&ibdev->node_guid, 0, sizeof(ibdev->node_guid)); memcpy(&ibdev->node_guid, sc->port[0]->vi[0].hw_addr, ETHER_ADDR_LEN); @@ -465,7 +468,7 @@ c4iw_register_device(struct c4iw_dev *dev) strlcpy(ibdev->node_desc, C4IW_NODE_DESC, sizeof(ibdev->node_desc)); ibdev->phys_port_cnt = sc->params.nports; ibdev->num_comp_vectors = 1; - ibdev->dma_device = NULL; + ibdev->dma_device = &dev->pdev.dev; ibdev->query_device = c4iw_query_device; ibdev->query_port = c4iw_query_port; ibdev->modify_port = c4iw_modify_port; @@ -517,8 +520,10 @@ c4iw_register_device(struct c4iw_dev *dev) ibdev->iwcm = iwcm; ret = ib_register_device(&dev->ibdev, NULL); - if (ret) + if (ret) { kfree(iwcm); + linux_pci_detach_device(&dev->pdev); + } return (ret); } @@ -531,6 +536,7 @@ c4iw_unregister_device(struct c4iw_dev *dev) dev->rdev.adap); ib_unregister_device(&dev->ibdev); kfree(dev->ibdev.iwcm); + linux_pci_detach_device(&dev->pdev); return; } #endif From owner-svn-src-all@freebsd.org Fri May 1 21:24: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 DF7C92B00D1; Fri, 1 May 2020 21:24:15 +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 49DQHM5YbPz47xP; Fri, 1 May 2020 21:24:15 +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 B9C36EAF1; Fri, 1 May 2020 21:24:15 +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 041LOF1e096160; Fri, 1 May 2020 21:24:15 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 041LOF5c096159; Fri, 1 May 2020 21:24:15 GMT (envelope-from imp@FreeBSD.org) Message-Id: <202005012124.041LOF5c096159@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Fri, 1 May 2020 21:24:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360549 - head/sys/dev/nvme X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/dev/nvme X-SVN-Commit-Revision: 360549 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, 01 May 2020 21:24:15 -0000 Author: imp Date: Fri May 1 21:24:15 2020 New Revision: 360549 URL: https://svnweb.freebsd.org/changeset/base/360549 Log: Rename ns notification function... This function is called whenever the namespace is added, deleted or changes. Update the name to reflect that. No functional change. Modified: head/sys/dev/nvme/nvme_sim.c Modified: head/sys/dev/nvme/nvme_sim.c ============================================================================== --- head/sys/dev/nvme/nvme_sim.c Fri May 1 21:22:26 2020 (r360548) +++ head/sys/dev/nvme/nvme_sim.c Fri May 1 21:24:15 2020 (r360549) @@ -315,7 +315,7 @@ err1: } static void * -nvme_sim_new_ns(struct nvme_namespace *ns, void *sc_arg) +nvme_sim_ns_change(struct nvme_namespace *ns, void *sc_arg) { struct nvme_sim_softc *sc = sc_arg; union ccb *ccb; @@ -339,7 +339,7 @@ nvme_sim_new_ns(struct nvme_namespace *ns, void *sc_ar } xpt_rescan(ccb); - return (ns); + return (sc_arg); } static void @@ -362,7 +362,7 @@ nvme_sim_init(void) if (nvme_use_nvd) return; - consumer_cookie = nvme_register_consumer(nvme_sim_new_ns, + consumer_cookie = nvme_register_consumer(nvme_sim_ns_change, nvme_sim_new_controller, NULL, nvme_sim_controller_fail); } From owner-svn-src-all@freebsd.org Fri May 1 21:24: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 872332B00FE; Fri, 1 May 2020 21:24:22 +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 49DQHT2X3cz4813; Fri, 1 May 2020 21:24:21 +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 76A23EAF2; Fri, 1 May 2020 21:24:20 +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 041LOK7w096214; Fri, 1 May 2020 21:24:20 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 041LOKec096213; Fri, 1 May 2020 21:24:20 GMT (envelope-from imp@FreeBSD.org) Message-Id: <202005012124.041LOKec096213@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Fri, 1 May 2020 21:24:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360550 - head/sys/dev/nvme X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/dev/nvme X-SVN-Commit-Revision: 360550 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, 01 May 2020 21:24:24 -0000 Author: imp Date: Fri May 1 21:24:19 2020 New Revision: 360550 URL: https://svnweb.freebsd.org/changeset/base/360550 Log: Add KASSERT to ensure sane nsid. All callers are currently filtering bad nsid to this function, however, we'll have undefined behavior if that's not true. Add the KASSERT to prevent that. Modified: head/sys/dev/nvme/nvme.c Modified: head/sys/dev/nvme/nvme.c ============================================================================== --- head/sys/dev/nvme/nvme.c Fri May 1 21:24:15 2020 (r360549) +++ head/sys/dev/nvme/nvme.c Fri May 1 21:24:19 2020 (r360550) @@ -285,13 +285,18 @@ void nvme_notify_ns(struct nvme_controller *ctrlr, int nsid) { struct nvme_consumer *cons; - struct nvme_namespace *ns = &ctrlr->ns[nsid - 1]; + struct nvme_namespace *ns; void *ctrlr_cookie; uint32_t i; + KASSERT(nsid <= NVME_MAX_NAMESPACES, + ("%s: Namespace notification to nsid %d exceeds range\n", + device_get_nameunit(ctrlr->dev), nsid)); + if (!ctrlr->is_initialized) return; + ns = &ctrlr->ns[nsid - 1]; for (i = 0; i < NVME_MAX_CONSUMERS; i++) { cons = &nvme_consumer[i]; if (cons->id != INVALID_CONSUMER_ID && cons->ns_fn != NULL && From owner-svn-src-all@freebsd.org Fri May 1 21:52: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 201722B0CCB; Fri, 1 May 2020 21:52:30 +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 49DQvy03Mbz49QR; Fri, 1 May 2020 21:52:30 +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 F1609F0B9; Fri, 1 May 2020 21:52:29 +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 041LqTBZ014391; Fri, 1 May 2020 21:52:29 GMT (envelope-from mhorne@FreeBSD.org) Received: (from mhorne@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 041LqTNM014390; Fri, 1 May 2020 21:52:29 GMT (envelope-from mhorne@FreeBSD.org) Message-Id: <202005012152.041LqTNM014390@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mhorne set sender to mhorne@FreeBSD.org using -f From: Mitchell Horne Date: Fri, 1 May 2020 21:52:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360551 - head/sys/riscv/riscv X-SVN-Group: head X-SVN-Commit-Author: mhorne X-SVN-Commit-Paths: head/sys/riscv/riscv X-SVN-Commit-Revision: 360551 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, 01 May 2020 21:52:30 -0000 Author: mhorne Date: Fri May 1 21:52:29 2020 New Revision: 360551 URL: https://svnweb.freebsd.org/changeset/base/360551 Log: Make mpentry independent of _start APs enter the kernel at the same point as the BSP, the _start routine. They then jump to mpentry, but not before storing the kernel's physical load address in the s9 register. Extract this calculation into its own routine, so that APs can be instructed to enter directly from mpentry. Differential Revision: https://reviews.freebsd.org/D24495 Modified: head/sys/riscv/riscv/locore.S Modified: head/sys/riscv/riscv/locore.S ============================================================================== --- head/sys/riscv/riscv/locore.S Fri May 1 21:24:19 2020 (r360550) +++ head/sys/riscv/riscv/locore.S Fri May 1 21:52:29 2020 (r360551) @@ -59,13 +59,6 @@ _start: lla gp, __global_pointer$ .option pop - /* Get the physical address kernel loaded to */ - lla t0, virt_map - ld t1, 0(t0) - sub t1, t1, t0 - li t2, KERNBASE - sub s9, t2, t1 /* s9 = physmem base */ - /* * a0 = hart id * a1 = dtbp @@ -87,6 +80,9 @@ _start: * Page tables */ 1: + /* Get the kernel's load address */ + jal get_physmem + /* Add L1 entry for kernel */ lla s1, pagetable_l1 lla s2, pagetable_l2 /* Link to next level PN */ @@ -224,6 +220,17 @@ va: call _C_LABEL(initriscv) /* Off we go */ call _C_LABEL(mi_startup) +/* + * Get the physical address the kernel is loaded to. Returned in s9. + */ +get_physmem: + lla t0, virt_map /* physical address of virt_map */ + ld t1, 0(t0) /* virtual address of virt_map */ + sub t1, t1, t0 /* calculate phys->virt delta */ + li t2, KERNBASE + sub s9, t2, t1 /* s9 = physmem base */ + ret + .align 4 initstack: .space (PAGE_SIZE * KSTACK_PAGES) @@ -302,6 +309,9 @@ ENTRY(mpentry) /* Setup stack pointer */ lla t0, bootstack ld sp, 0(t0) + + /* Get the kernel's load address */ + jal get_physmem /* Setup supervisor trap vector */ lla t0, mpva From owner-svn-src-all@freebsd.org Fri May 1 21:55: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 EA6172B0D89; Fri, 1 May 2020 21:55:51 +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 49DQzq5vpRz49bd; Fri, 1 May 2020 21:55:51 +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 C16F6F0CA; Fri, 1 May 2020 21:55:51 +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 041LtpJQ014632; Fri, 1 May 2020 21:55:51 GMT (envelope-from mhorne@FreeBSD.org) Received: (from mhorne@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 041LtpFL014631; Fri, 1 May 2020 21:55:51 GMT (envelope-from mhorne@FreeBSD.org) Message-Id: <202005012155.041LtpFL014631@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mhorne set sender to mhorne@FreeBSD.org using -f From: Mitchell Horne Date: Fri, 1 May 2020 21:55:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360552 - 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: 360552 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, 01 May 2020 21:55:52 -0000 Author: mhorne Date: Fri May 1 21:55:51 2020 New Revision: 360552 URL: https://svnweb.freebsd.org/changeset/base/360552 Log: Add support for HSM SBI extension The Hardware State Management (HSM) extension provides a set of SBI calls that allow the supervisor software to start and stop hart execution. The HSM extension has been implemented in OpenSBI and is present in the v0.7 release. [1] https://github.com/riscv/riscv-sbi-doc/blob/master/riscv-sbi.adoc Reviewed by: br Differential Revision: https://reviews.freebsd.org/D24496 Modified: head/sys/riscv/include/sbi.h head/sys/riscv/riscv/sbi.c Modified: head/sys/riscv/include/sbi.h ============================================================================== --- head/sys/riscv/include/sbi.h Fri May 1 21:52:29 2020 (r360551) +++ head/sys/riscv/include/sbi.h Fri May 1 21:55:51 2020 (r360552) @@ -55,6 +55,7 @@ #define SBI_ERR_INVALID_PARAM -3 #define SBI_ERR_DENIED -4 #define SBI_ERR_INVALID_ADDRESS -5 +#define SBI_ERR_ALREADY_AVAILABLE -6 /* SBI Base Extension */ #define SBI_EXT_ID_BASE 0x10 @@ -66,6 +67,16 @@ #define SBI_BASE_GET_MARCHID 5 #define SBI_BASE_GET_MIMPID 6 +/* Hart State Management (HSM) Extension */ +#define SBI_EXT_ID_HSM 0x48534D +#define SBI_HSM_HART_START 0 +#define SBI_HSM_HART_STOP 1 +#define SBI_HSM_HART_STATUS 2 +#define SBI_HSM_STATUS_STARTED 0 +#define SBI_HSM_STATUS_STOPPED 1 +#define SBI_HSM_STATUS_START_PENDING 2 +#define SBI_HSM_STATUS_STOP_PENDING 3 + /* Legacy Extensions */ #define SBI_SET_TIMER 0 #define SBI_CONSOLE_PUTCHAR 1 @@ -127,6 +138,30 @@ sbi_probe_extension(long id) { return (SBI_CALL1(SBI_EXT_ID_BASE, SBI_BASE_PROBE_EXTENSION, id).value); } + +/* Hart State Management extension functions. */ + +/* + * Start execution on the specified hart at physical address start_addr. The + * register a0 will contain the hart's ID, and a1 will contain the value of + * priv. + */ +int sbi_hsm_hart_start(u_long hart, u_long start_addr, u_long priv); + +/* + * Stop execution on the current hart. Interrupts should be disabled, or this + * function may return. + */ +void sbi_hsm_hart_stop(void); + +/* + * Get the execution status of the specified hart. The status will be one of: + * - SBI_HSM_STATUS_STARTED + * - SBI_HSM_STATUS_STOPPED + * - SBI_HSM_STATUS_START_PENDING + * - SBI_HSM_STATUS_STOP_PENDING + */ +int sbi_hsm_hart_status(u_long hart); /* Legacy extension functions. */ static __inline void Modified: head/sys/riscv/riscv/sbi.c ============================================================================== --- head/sys/riscv/riscv/sbi.c Fri May 1 21:52:29 2020 (r360551) +++ head/sys/riscv/riscv/sbi.c Fri May 1 21:55:51 2020 (r360552) @@ -113,6 +113,31 @@ sbi_print_version(void) printf("SBI Specification Version: %u.%u\n", major, minor); } +int +sbi_hsm_hart_start(u_long hart, u_long start_addr, u_long priv) +{ + struct sbi_ret ret; + + ret = SBI_CALL3(SBI_EXT_ID_HSM, SBI_HSM_HART_START, hart, start_addr, priv); + return (ret.error != 0 ? (int)ret.error : 0); +} + +void +sbi_hsm_hart_stop(void) +{ + (void)SBI_CALL0(SBI_EXT_ID_HSM, SBI_HSM_HART_STOP); +} + +int +sbi_hsm_hart_status(u_long hart) +{ + struct sbi_ret ret; + + ret = SBI_CALL1(SBI_EXT_ID_HSM, SBI_HSM_HART_STATUS, hart); + + return (ret.error != 0 ? (int)ret.error : (int)ret.value); +} + void sbi_init(void) { From owner-svn-src-all@freebsd.org Fri May 1 21:58: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 1B7202B0E36; Fri, 1 May 2020 21:58:20 +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 49DR2h0033z49nR; Fri, 1 May 2020 21:58:19 +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 EABD8F0D6; Fri, 1 May 2020 21:58:19 +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 041LwJAs014783; Fri, 1 May 2020 21:58:19 GMT (envelope-from mhorne@FreeBSD.org) Received: (from mhorne@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 041LwJmo014782; Fri, 1 May 2020 21:58:19 GMT (envelope-from mhorne@FreeBSD.org) Message-Id: <202005012158.041LwJmo014782@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mhorne set sender to mhorne@FreeBSD.org using -f From: Mitchell Horne Date: Fri, 1 May 2020 21:58:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360553 - head/sys/riscv/riscv X-SVN-Group: head X-SVN-Commit-Author: mhorne X-SVN-Commit-Paths: head/sys/riscv/riscv X-SVN-Commit-Revision: 360553 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, 01 May 2020 21:58:20 -0000 Author: mhorne Date: Fri May 1 21:58:19 2020 New Revision: 360553 URL: https://svnweb.freebsd.org/changeset/base/360553 Log: Use the HSM SBI extension to start APs The addition of the HSM SBI extension to OpenSBI introduces a new breaking change: secondary harts will remain parked in the firmware, until they are brought up explicitly via sbi_hsm_hart_start(). Add the call to do this, sending the secondary harts to mpentry. If the HSM extension is not present, secondary harts are assumed to be released by the firmware, as is the case for OpenSBI =< v0.6 and BBL. In the case that the HSM call fails we exclude the CPU, notify the user, and allow the system to proceed with booting. Reviewed by: markj (older version) Differential Revision: https://reviews.freebsd.org/D24497 Modified: head/sys/riscv/riscv/mp_machdep.c Modified: head/sys/riscv/riscv/mp_machdep.c ============================================================================== --- head/sys/riscv/riscv/mp_machdep.c Fri May 1 21:55:51 2020 (r360552) +++ head/sys/riscv/riscv/mp_machdep.c Fri May 1 21:58:19 2020 (r360553) @@ -97,6 +97,7 @@ static uint32_t cpu_reg[MAXCPU][2]; #endif static device_t cpu_list[MAXCPU]; +void mpentry(u_long hartid); void init_secondary(uint64_t); static struct mtx ap_boot_mtx; @@ -297,7 +298,7 @@ smp_after_idle_runnable(void *arg __unused) struct pcpu *pc; int cpu; - for (cpu = 1; cpu < mp_ncpus; cpu++) { + for (cpu = 1; cpu <= mp_maxid; cpu++) { if (bootstacks[cpu] != NULL) { pc = pcpu_find(cpu); while (atomic_load_ptr(&pc->pc_curpcb) == NULL) @@ -399,9 +400,11 @@ static boolean_t cpu_init_fdt(u_int id, phandle_t node, u_int addr_size, pcell_t *reg) { struct pcpu *pcpup; + vm_paddr_t start_addr; uint64_t hart; u_int cpuid; int naps; + int error; /* Check if this hart supports MMU. */ if (OF_getproplen(node, "mmu-type") < 0) @@ -440,6 +443,23 @@ cpu_init_fdt(u_int id, phandle_t node, u_int addr_size /* Check if we are able to start this cpu */ if (cpuid > mp_maxid) return (0); + + /* + * Depending on the SBI implementation, APs are waiting either in + * locore.S or to be activated explicitly, via SBI call. + */ + if (sbi_probe_extension(SBI_EXT_ID_HSM) != 0) { + start_addr = pmap_kextract((vm_offset_t)mpentry); + error = sbi_hsm_hart_start(hart, start_addr, 0); + if (error != 0) { + mp_ncpus--; + + /* Send a warning to the user and continue. */ + printf("AP %u (hart %lu) failed to start, error %d\n", + cpuid, hart, error); + return (0); + } + } pcpup = &__pcpu[cpuid]; pcpu_init(pcpup, cpuid, sizeof(struct pcpu)); From owner-svn-src-all@freebsd.org Fri May 1 21:59: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 AD7182B0F0B; Fri, 1 May 2020 21:59:47 +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 49DR4M49zNz4B0c; Fri, 1 May 2020 21:59:47 +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 8A5FCF0E8; Fri, 1 May 2020 21:59:47 +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 041LxlH8014890; Fri, 1 May 2020 21:59:47 GMT (envelope-from mhorne@FreeBSD.org) Received: (from mhorne@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 041Lxlwc014889; Fri, 1 May 2020 21:59:47 GMT (envelope-from mhorne@FreeBSD.org) Message-Id: <202005012159.041Lxlwc014889@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mhorne set sender to mhorne@FreeBSD.org using -f From: Mitchell Horne Date: Fri, 1 May 2020 21:59:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360554 - head/sys/riscv/riscv X-SVN-Group: head X-SVN-Commit-Author: mhorne X-SVN-Commit-Paths: head/sys/riscv/riscv X-SVN-Commit-Revision: 360554 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, 01 May 2020 21:59:47 -0000 Author: mhorne Date: Fri May 1 21:59:47 2020 New Revision: 360554 URL: https://svnweb.freebsd.org/changeset/base/360554 Log: Use the HSM SBI extension to halt CPUs Differential Revision: https://reviews.freebsd.org/D24498 Modified: head/sys/riscv/riscv/machdep.c Modified: head/sys/riscv/riscv/machdep.c ============================================================================== --- head/sys/riscv/riscv/machdep.c Fri May 1 21:58:19 2020 (r360553) +++ head/sys/riscv/riscv/machdep.c Fri May 1 21:59:47 2020 (r360554) @@ -473,9 +473,16 @@ void cpu_halt(void) { + /* + * Try to power down using the HSM SBI extension and fall back to a + * simple wfi loop. + */ intr_disable(); + if (sbi_probe_extension(SBI_EXT_ID_HSM) != 0) + sbi_hsm_hart_stop(); for (;;) __asm __volatile("wfi"); + /* NOTREACHED */ } /* From owner-svn-src-all@freebsd.org Fri May 1 22: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 ADF0B2B1DCE; Fri, 1 May 2020 22:37:09 +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 49DRvT41Rpz4CbK; Fri, 1 May 2020 22:37:09 +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 80117F886; Fri, 1 May 2020 22:37:09 +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 041Mb9ib039184; Fri, 1 May 2020 22:37:09 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 041Mb9uR039183; Fri, 1 May 2020 22:37:09 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <202005012237.041Mb9uR039183@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Fri, 1 May 2020 22:37: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: r360555 - stable/12/sys/fs/nfsserver X-SVN-Group: stable-12 X-SVN-Commit-Author: rmacklem X-SVN-Commit-Paths: stable/12/sys/fs/nfsserver X-SVN-Commit-Revision: 360555 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, 01 May 2020 22:37:09 -0000 Author: rmacklem Date: Fri May 1 22:37:09 2020 New Revision: 360555 URL: https://svnweb.freebsd.org/changeset/base/360555 Log: MFC: r360032 Add a sanity check for nes_numsecflavor to the NFS server. Ryan Moeller reported crashes in the NFS server that appear to be caused by stack corruption in nfsrv_compound(). It appears that the stack got corrupted just after a NFSv4.1 Lookup that crosses a server mount point. Although it is just a "theory" at this point, the most obvious way the stack could get corrupted would be if nfsvno_checkexp() somehow acquires an export with a bogus nes_numsecflavor value. This would cause the copying of the secflavors to run off the end of the array, which is allocated on the stack below where the corruption occurs. This sanity check is simple to do and would stop the stack corruption if the theory is correct. Otherwise, doing the sanity check seems to be a reasonable safety belt to add to the code. Modified: stable/12/sys/fs/nfsserver/nfs_nfsdport.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/fs/nfsserver/nfs_nfsdport.c ============================================================================== --- stable/12/sys/fs/nfsserver/nfs_nfsdport.c Fri May 1 21:59:47 2020 (r360554) +++ stable/12/sys/fs/nfsserver/nfs_nfsdport.c Fri May 1 22:37:09 2020 (r360555) @@ -3015,6 +3015,11 @@ nfsvno_checkexp(struct mount *mp, struct sockaddr *nam exp->nes_numsecflavor = 0; error = 0; } + } else if (exp->nes_numsecflavor < 1 || exp->nes_numsecflavor > + MAXSECFLAVORS) { + printf("nfsvno_checkexp: numsecflavors out of range\n"); + exp->nes_numsecflavor = 0; + error = EACCES; } else { /* Copy the security flavors. */ for (i = 0; i < exp->nes_numsecflavor; i++) @@ -3051,6 +3056,12 @@ nfsvno_fhtovp(struct mount *mp, fhandle_t *fhp, struct } else { vput(*vpp); } + } else if (exp->nes_numsecflavor < 1 || exp->nes_numsecflavor > + MAXSECFLAVORS) { + printf("nfsvno_fhtovp: numsecflavors out of range\n"); + exp->nes_numsecflavor = 0; + error = EACCES; + vput(*vpp); } else { /* Copy the security flavors. */ for (i = 0; i < exp->nes_numsecflavor; i++) From owner-svn-src-all@freebsd.org Fri May 1 23:07: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 E77F92B2488; Fri, 1 May 2020 23:07:23 +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 49DSZM5DYfz4Dm2; Fri, 1 May 2020 23:07:23 +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 759BAFE30; Fri, 1 May 2020 23:07:23 +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 041N7N3g057606; Fri, 1 May 2020 23:07:23 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 041N7NVv057605; Fri, 1 May 2020 23:07:23 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <202005012307.041N7NVv057605@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Fri, 1 May 2020 23:07: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: r360556 - stable/11/sys/fs/nfsserver X-SVN-Group: stable-11 X-SVN-Commit-Author: rmacklem X-SVN-Commit-Paths: stable/11/sys/fs/nfsserver X-SVN-Commit-Revision: 360556 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, 01 May 2020 23:07:24 -0000 Author: rmacklem Date: Fri May 1 23:07:23 2020 New Revision: 360556 URL: https://svnweb.freebsd.org/changeset/base/360556 Log: MFC: r360032 Add a sanity check for nes_numsecflavor to the NFS server. Ryan Moeller reported crashes in the NFS server that appear to be caused by stack corruption in nfsrv_compound(). It appears that the stack got corrupted just after a NFSv4.1 Lookup that crosses a server mount point. Although it is just a "theory" at this point, the most obvious way the stack could get corrupted would be if nfsvno_checkexp() somehow acquires an export with a bogus nes_numsecflavor value. This would cause the copying of the secflavors to run off the end of the array, which is allocated on the stack below where the corruption occurs. This sanity check is simple to do and would stop the stack corruption if the theory is correct. Otherwise, doing the sanity check seems to be a reasonable safety belt to add to the code. Modified: stable/11/sys/fs/nfsserver/nfs_nfsdport.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/fs/nfsserver/nfs_nfsdport.c ============================================================================== --- stable/11/sys/fs/nfsserver/nfs_nfsdport.c Fri May 1 22:37:09 2020 (r360555) +++ stable/11/sys/fs/nfsserver/nfs_nfsdport.c Fri May 1 23:07:23 2020 (r360556) @@ -2746,6 +2746,11 @@ nfsvno_checkexp(struct mount *mp, struct sockaddr *nam exp->nes_numsecflavor = 0; error = 0; } + } else if (exp->nes_numsecflavor < 1 || exp->nes_numsecflavor > + MAXSECFLAVORS) { + printf("nfsvno_checkexp: numsecflavors out of range\n"); + exp->nes_numsecflavor = 0; + error = EACCES; } else { /* Copy the security flavors. */ for (i = 0; i < exp->nes_numsecflavor; i++) @@ -2782,6 +2787,12 @@ nfsvno_fhtovp(struct mount *mp, fhandle_t *fhp, struct } else { vput(*vpp); } + } else if (exp->nes_numsecflavor < 1 || exp->nes_numsecflavor > + MAXSECFLAVORS) { + printf("nfsvno_fhtovp: numsecflavors out of range\n"); + exp->nes_numsecflavor = 0; + error = EACCES; + vput(*vpp); } else { /* Copy the security flavors. */ for (i = 0; i < exp->nes_numsecflavor; i++) From owner-svn-src-all@freebsd.org Sat May 2 00:07: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 94EF42B3E03; Sat, 2 May 2020 00:07:01 +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 49DTv93YJVz4HMN; Sat, 2 May 2020 00:07:01 +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 564201897D; Sat, 2 May 2020 00:07:01 +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 042071Ob094552; Sat, 2 May 2020 00:07:01 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 04206xTZ094527; Sat, 2 May 2020 00:06:59 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202005020006.04206xTZ094527@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Sat, 2 May 2020 00:06:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360557 - in head: lib/libipsec sbin/setkey sys/netipsec usr.bin/netstat X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in head: lib/libipsec sbin/setkey sys/netipsec usr.bin/netstat X-SVN-Commit-Revision: 360557 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, 02 May 2020 00:07:01 -0000 Author: jhb Date: Sat May 2 00:06:58 2020 New Revision: 360557 URL: https://svnweb.freebsd.org/changeset/base/360557 Log: Remove support for IPsec algorithms deprecated in r348205 and r360202. Examples of depecrated algorithms in manual pages and sample configs are updated where relevant. I removed the one example of combining ESP and AH (vs using a cipher and auth in ESP) as RFC 8221 says this combination is NOT RECOMMENDED. Specifically, this removes support for the following ciphers: - des-cbc - 3des-cbc - blowfish-cbc - cast128-cbc - des-deriv - des-32iv - camellia-cbc This also removes support for the following authentication algorithms: - hmac-md5 - keyed-md5 - keyed-sha1 - hmac-ripemd160 Reviewed by: cem, gnn (older verisons) Relnotes: yes Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D24342 Modified: head/lib/libipsec/pfkey_dump.c head/sbin/setkey/sample.cf head/sbin/setkey/setkey.8 head/sbin/setkey/test-pfkey.c head/sbin/setkey/token.l head/sys/netipsec/ipsec.c head/sys/netipsec/ipsec.h head/sys/netipsec/key.c head/sys/netipsec/xform_ah.c head/sys/netipsec/xform_esp.c head/usr.bin/netstat/ipsec.c Modified: head/lib/libipsec/pfkey_dump.c ============================================================================== --- head/lib/libipsec/pfkey_dump.c Fri May 1 23:07:23 2020 (r360556) +++ head/lib/libipsec/pfkey_dump.c Sat May 2 00:06:58 2020 (r360557) @@ -57,22 +57,10 @@ __FBSDID("$FreeBSD$"); #include "libpfkey.h" /* cope with old kame headers - ugly */ -#ifndef SADB_X_AALG_MD5 -#define SADB_X_AALG_MD5 SADB_AALG_MD5 -#endif -#ifndef SADB_X_AALG_SHA -#define SADB_X_AALG_SHA SADB_AALG_SHA -#endif #ifndef SADB_X_AALG_NULL #define SADB_X_AALG_NULL SADB_AALG_NULL #endif -#ifndef SADB_X_EALG_BLOWFISHCBC -#define SADB_X_EALG_BLOWFISHCBC SADB_EALG_BLOWFISHCBC -#endif -#ifndef SADB_X_EALG_CAST128CBC -#define SADB_X_EALG_CAST128CBC SADB_EALG_CAST128CBC -#endif #ifndef SADB_X_EALG_RC5CBC #ifdef SADB_EALG_RC5CBC #define SADB_X_EALG_RC5CBC SADB_EALG_RC5CBC @@ -147,10 +135,7 @@ static char *str_state[] = { static struct val2str str_alg_auth[] = { { SADB_AALG_NONE, "none", }, - { SADB_AALG_MD5HMAC, "hmac-md5", }, { SADB_AALG_SHA1HMAC, "hmac-sha1", }, - { SADB_X_AALG_MD5, "md5", }, - { SADB_X_AALG_SHA, "sha", }, { SADB_X_AALG_NULL, "null", }, { SADB_X_AALG_TCP_MD5, "tcp-md5", }, #ifdef SADB_X_AALG_SHA2_256 @@ -162,9 +147,6 @@ static struct val2str str_alg_auth[] = { #ifdef SADB_X_AALG_SHA2_512 { SADB_X_AALG_SHA2_512, "hmac-sha2-512", }, #endif -#ifdef SADB_X_AALG_RIPEMD160HMAC - { SADB_X_AALG_RIPEMD160HMAC, "hmac-ripemd160", }, -#endif #ifdef SADB_X_AALG_AES_XCBC_MAC { SADB_X_AALG_AES_XCBC_MAC, "aes-xcbc-mac", }, #endif @@ -173,14 +155,10 @@ static struct val2str str_alg_auth[] = { static struct val2str str_alg_enc[] = { { SADB_EALG_NONE, "none", }, - { SADB_EALG_DESCBC, "des-cbc", }, - { SADB_EALG_3DESCBC, "3des-cbc", }, { SADB_EALG_NULL, "null", }, #ifdef SADB_X_EALG_RC5CBC { SADB_X_EALG_RC5CBC, "rc5-cbc", }, #endif - { SADB_X_EALG_CAST128CBC, "cast128-cbc", }, - { SADB_X_EALG_BLOWFISHCBC, "blowfish-cbc", }, #ifdef SADB_X_EALG_RIJNDAELCBC { SADB_X_EALG_RIJNDAELCBC, "rijndael-cbc", }, #endif @@ -192,9 +170,6 @@ static struct val2str str_alg_enc[] = { #endif #ifdef SADB_X_EALG_AESGCM16 { SADB_X_EALG_AESGCM16, "aes-gcm-16", }, -#endif -#ifdef SADB_X_EALG_CAMELLIACBC - { SADB_X_EALG_CAMELLIACBC, "camellia-cbc", }, #endif { -1, NULL, }, }; Modified: head/sbin/setkey/sample.cf ============================================================================== --- head/sbin/setkey/sample.cf Fri May 1 23:07:23 2020 (r360556) +++ head/sbin/setkey/sample.cf Sat May 2 00:06:58 2020 (r360557) @@ -34,9 +34,9 @@ # parameters when you configure by manual keying. # ESP transport mode is recommended for TCP port number 110 between -# Host-A and Host-B. Encryption algorithm is blowfish-cbc whose key -# is "kamekame", and authentication algorithm is hmac-sha1 whose key -# is "this is the test key". +# Host-A and Host-B. Encryption algorithm is aes-cbc whose key +# is "kamekamekamekamekamekamekamekame", and authentication algorithm is +# hmac-sha2-512 whose key is "this is the test key". # # ============ ESP ============ # | | @@ -50,17 +50,17 @@ spdadd fec0::11[110] fec0::10[any] tcp -P in ipsec esp/transport//use ; add fec0::10 fec0::11 esp 0x10001 -m transport - -E blowfish-cbc "kamekame" - -A hmac-sha1 "this is the test key" ; + -E aes-cbc "kamekamekamekamekamekamekamekame" + -A hmac-sha2-512 "this is the test key" ; add fec0::11 fec0::10 esp 0x10002 -m transport - -E blowfish-cbc "kamekame" - -A hmac-sha1 "this is the test key" ; + -E aes-cbc "kamekamekamekamekamekamekamekame" + -A hmac-sha2-512 "this is the test key" ; # "[any]" is wildcard of port number. Note that "[0]" is the number of # zero in port number. -# Security protocol is old AH tunnel mode, i.e. RFC1826, with keyed-md5 +# Security protocol is old AH tunnel mode, i.e. RFC1826, with hmac-sha2-256 # whose key is "this is the test" as authentication algorithm. # That protocol takes place between Gateway-A and Gateway-B. # @@ -76,10 +76,10 @@ spdadd 10.0.2.0/24 10.0.1.0/24 any -P in ipsec ah/tunnel/172.16.0.2-172.16.0.1/require ; add 172.16.0.1 172.16.0.2 ah-old 0x10003 -m any - -A keyed-md5 "this is the test" ; + -A hmac-sha2-256 "this is the test" ; add 172.16.0.2 172.16.0.1 ah-old 0x10004 -m any - -A keyed-md5 "this is the test" ; + -A hmac-sha2-256 "this is the test" ; # If port number field is omitted such above then "[any]" is employed. # -m specifies the mode of SA to be used. "-m any" means wildcard of @@ -93,15 +93,15 @@ spdadd 10.0.1.0/24 10.0.2.0/24 any -P in ipsec ah/tunnel/172.16.0.1-172.16.0.2/require ; add 172.16.0.1 172.16.0.2 ah-old 0x10003 -m tunnel - -A keyed-md5 "this is the test" ; + -A hmac-sha2-256 "this is the test" ; add 172.16.0.2 172.16.0.1 ah-old 0x10004 -m tunnel - -A keyed-md5 "this is the test" ; + -A hmac-sha2-256 "this is the test" ; # AH transport mode followed by ESP tunnel mode is required between # Gateway-A and Gateway-B. -# Encryption algorithm is 3des-cbc, and authentication algorithm for ESP -# is hmac-sha1. Authentication algorithm for AH is hmac-md5. +# Encryption algorithm is aes-cbc, and authentication algorithm for ESP +# is hmac-sha2-512. Authentication algorithm for AH is hmac-sha2-256. # # ========== AH ========= # | ======= ESP ===== | @@ -118,25 +118,25 @@ spdadd fec0:0:0:2::/64 fec0:0:0:1::/64 any -P in ipsec ah/transport//require ; add fec0:0:0:1::1 fec0:0:0:2::1 esp 0x10001 -m tunnel - -E 3des-cbc "kamekame12341234kame1234" - -A hmac-sha1 "this is the test key" ; + -E aes-cbc "kamekame12341234kamekame12341234" + -A hmac-sha2-512 "this is the test key" ; add fec0:0:0:1::1 fec0:0:0:2::1 ah 0x10001 -m transport - -A hmac-md5 "this is the test" ; + -A hmac-sha2-256 "this is the test" ; add fec0:0:0:2::1 fec0:0:0:1::1 esp 0x10001 -m tunnel - -E 3des-cbc "kamekame12341234kame1234" - -A hmac-sha1 "this is the test key" ; + -E aes-cbc "kamekame12341234kamekame12341234" + -A hmac-sha2-512 "this is the test key" ; add fec0:0:0:2::1 fec0:0:0:1::1 ah 0x10001 -m transport - -A hmac-md5 "this is the test" ; + -A hmac-sha2-256 "this is the test" ; # ESP tunnel mode is required between Host-A and Gateway-A. -# Encryption algorithm is cast128-cbc, and authentication algorithm -# for ESP is hmac-sha1. +# Encryption algorithm is aes-cbc, and authentication algorithm +# for ESP is hmac-sha2-256. # ESP transport mode is recommended between Host-A and Host-B. -# Encryption algorithm is rc5-cbc, and authentication algorithm -# for ESP is hmac-md5. +# Encryption algorithm is aes-ctr, and authentication algorithm +# for ESP is hmac-sha2-512. # # ================== ESP ================= # | ======= ESP ======= | @@ -153,18 +153,18 @@ spdadd fec0:0:0:2::1[80] fec0:0:0:1::1[any] tcp -P in esp/tunnel/fec0:0:0:2::1-fec0:0:0:1::1/require ; add fec0:0:0:1::1 fec0:0:0:2::2 esp 0x10001 -m transport - -E cast128-cbc "12341234" - -A hmac-sha1 "this is the test key" ; + -E aes-cbc "kamekame12341234kamekame12341234" + -A hmac-sha2-256 "this is the test key" ; add fec0:0:0:1::1 fec0:0:0:2::1 esp 0x10002 - -E rc5-cbc "kamekame" - -A hmac-md5 "this is the test" ; + -E aes-ctr "kamekame12341234kamekame12341234f00f" + -A hmac-sha2-512 "this is the test" ; add fec0:0:0:2::2 fec0:0:0:1::1 esp 0x10003 -m transport - -E cast128-cbc "12341234" - -A hmac-sha1 "this is the test key" ; + -E aes-cbc "kamekame12341234kamekame12341234" + -A hmac-sha2-256 "this is the test key" ; add fec0:0:0:2::1 fec0:0:0:1::1 esp 0x10004 - -E rc5-cbc "kamekame" - -A hmac-md5 "this is the test" ; + -E aes-ctr "kamekame12341234kamekame12341234f00f" + -A hmac-sha2-512 "this is the test" ; # By "get" command, you can get a entry of either SP or SA. get fec0:0:0:1::1 fec0:0:0:2::2 ah 0x10004 ; @@ -189,29 +189,14 @@ flush ah ; # XXX add ::1 ::1 esp 10001 -m transport -E null ; -add ::1 ::1 esp 10002 -m transport -E des-deriv "12341234" ; -add ::1 ::1 esp-old 10003 -m transport -E des-32iv "12341234" ; add ::1 ::1 esp 10004 -m transport -E null -A null ; -add ::1 ::1 esp 10005 -m transport -E null -A hmac-md5 "1234123412341234" ; add ::1 ::1 esp 10006 -m tunnel -E null -A hmac-sha1 "12341234123412341234" ; -add ::1 ::1 esp 10007 -m transport -E null -A keyed-md5 "1234123412341234" ; -add ::1 ::1 esp 10008 -m any -E null -A keyed-sha1 "12341234123412341234" ; -add ::1 ::1 esp 10009 -m transport -E des-cbc "testtest" ; -add ::1 ::1 esp 10010 -m transport -E 3des-cbc "testtest12341234testtest" ; -add ::1 ::1 esp 10011 -m tunnel -E cast128-cbc "testtest1234" ; -add ::1 ::1 esp 10012 -m tunnel -E blowfish-cbc "testtest1234" ; -add ::1 ::1 esp 10013 -m tunnel -E rc5-cbc "testtest1234" ; -add ::1 ::1 esp 10014 -m any -E rc5-cbc "testtest1234" ; add ::1 ::1 esp 10015 -m transport -f zero-pad -E null ; add ::1 ::1 esp 10016 -m tunnel -f random-pad -r 8 -lh 100 -ls 80 -E null ; add ::1 ::1 esp 10017 -m transport -f seq-pad -f nocyclic-seq -E null ; add ::1 ::1 esp 10018 -m transport -E null ; #add ::1 ::1 ah 20000 -m transport -A null ; -add ::1 ::1 ah 20001 -m any -A hmac-md5 "1234123412341234"; add ::1 ::1 ah 20002 -m tunnel -A hmac-sha1 "12341234123412341234"; -add ::1 ::1 ah 20003 -m transport -A keyed-md5 "1234123412341234"; -add ::1 ::1 ah-old 20004 -m transport -A keyed-md5 "1234123412341234"; -add ::1 ::1 ah 20005 -m transport -A keyed-sha1 "12341234123412341234"; #add ::1 ::1 ipcomp 30000 -C oui ; add ::1 ::1 ipcomp 30001 -C deflate ; #add ::1 ::1 ipcomp 30002 -C lzs ; Modified: head/sbin/setkey/setkey.8 ============================================================================== --- head/sbin/setkey/setkey.8 Fri May 1 23:07:23 2020 (r360556) +++ head/sbin/setkey/setkey.8 Sat May 2 00:06:58 2020 (r360557) @@ -29,7 +29,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 9, 2017 +.Dd May 01, 2020 .Dt SETKEY 8 .Os .\" @@ -588,14 +588,8 @@ of the parameter: .Bd -literal -offset indent algorithm keylen (bits) comment -hmac-md5 128 ah: rfc2403 - 128 ah-old: rfc2085 hmac-sha1 160 ah: rfc2404 160 ah-old: 128bit ICV (no document) -keyed-md5 128 ah: 96bit ICV (no document) - 128 ah-old: rfc1828 -keyed-sha1 160 ah: 96bit ICV (no document) - 160 ah-old: 128bit ICV (no document) null 0 to 2048 for debugging hmac-sha2-256 256 ah: 128bit ICV (RFC4868) 256 ah-old: 128bit ICV (no document) @@ -603,8 +597,6 @@ hmac-sha2-384 384 ah: 192bit ICV (RFC4868) 384 ah-old: 128bit ICV (no document) hmac-sha2-512 512 ah: 256bit ICV (RFC4868) 512 ah-old: 128bit ICV (no document) -hmac-ripemd160 160 ah: 96bit ICV (RFC2857) - ah-old: 128bit ICV (no document) aes-xcbc-mac 128 ah: 96bit ICV (RFC3566) 128 ah-old: 128bit ICV (no document) tcp-md5 8 to 640 tcp: rfc2385 @@ -619,16 +611,10 @@ of the parameter: .Bd -literal -offset indent algorithm keylen (bits) comment -des-cbc 64 esp-old: rfc1829, esp: rfc2405 -3des-cbc 192 rfc2451 null 0 to 2048 rfc2410 -blowfish-cbc 40 to 448 rfc2451 -cast128-cbc 40 to 128 rfc2451 -des-deriv 64 ipsec-ciph-des-derived-01 rijndael-cbc 128/192/256 rfc3602 aes-ctr 160/224/288 draft-ietf-ipsec-ciph-aes-ctr-03 aes-gcm-16 160/224/288 rfc4106 -camellia-cbc 128/192/256 rfc4312 .Ed .Pp Note that the first 128/192/256 bits of a key for @@ -653,24 +639,17 @@ deflate rfc2394 .\" .Sh EXAMPLES Add an ESP SA between two IPv6 addresses using the -des-cbc encryption algorithm. +AES-GCM encryption algorithm. .Bd -literal -offset indent add 3ffe:501:4819::1 3ffe:501:481d::1 esp 123457 - -E des-cbc 0x3ffe05014819ffff ; + -E aes-gcm-16 0x3ffe050148193ffe050148193ffe050148193ffe ; .Pp .Ed .\" Add an authentication SA between two FQDN specified hosts: .Bd -literal -offset indent add -6 myhost.example.com yourhost.example.com ah 123456 - -A hmac-sha1 "AH SA configuration!" ; -.Pp -.Ed -Use both ESP and AH between two numerically specified hosts: -.Bd -literal -offset indent -add 10.0.11.41 10.0.11.33 esp 0x10001 - -E des-cbc 0x3ffe05014819ffff - -A hmac-md5 "authentication!!" ; + -A hmac-sha2-256 "AH SA configuration!" ; .Pp .Ed Get the SA information associated with first example above: Modified: head/sbin/setkey/test-pfkey.c ============================================================================== --- head/sbin/setkey/test-pfkey.c Fri May 1 23:07:23 2020 (r360556) +++ head/sbin/setkey/test-pfkey.c Sat May 2 00:06:58 2020 (r360557) @@ -319,15 +319,15 @@ key_setsadbprop() m_prop.sadb_prop_reserved[1] = 0; m_prop.sadb_prop_reserved[2] = 0; - /* the 1st is ESP DES-CBC HMAC-MD5 */ + /* the 1st is ESP AES-GCM-16 */ m_comb = (struct sadb_comb *)buf; - m_comb->sadb_comb_auth = SADB_AALG_MD5HMAC; - m_comb->sadb_comb_encrypt = SADB_EALG_DESCBC; + m_comb->sadb_comb_auth = SADB_AALG_NONE; + m_comb->sadb_comb_encrypt = SADB_X_EALG_AESGCM16; m_comb->sadb_comb_flags = 0; - m_comb->sadb_comb_auth_minbits = 8; - m_comb->sadb_comb_auth_maxbits = 96; - m_comb->sadb_comb_encrypt_minbits = 64; - m_comb->sadb_comb_encrypt_maxbits = 64; + m_comb->sadb_comb_auth_minbits = 0; + m_comb->sadb_comb_auth_maxbits = 0; + m_comb->sadb_comb_encrypt_minbits = 128; + m_comb->sadb_comb_encrypt_maxbits = 256; m_comb->sadb_comb_reserved = 0; m_comb->sadb_comb_soft_allocations = 0; m_comb->sadb_comb_hard_allocations = 0; @@ -338,15 +338,15 @@ key_setsadbprop() m_comb->sadb_comb_soft_usetime = 0; m_comb->sadb_comb_hard_usetime = 0; - /* the 2st is ESP 3DES-CBC and AH HMAC-SHA1 */ + /* the 2nd is ESP AES-CBC and AH HMAC-SHA2-256 */ m_comb = (struct sadb_comb *)(buf + sizeof(*m_comb)); - m_comb->sadb_comb_auth = SADB_AALG_SHA1HMAC; - m_comb->sadb_comb_encrypt = SADB_EALG_3DESCBC; + m_comb->sadb_comb_auth = SADB_X_AALG_SHA2_256; + m_comb->sadb_comb_encrypt = SADB_X_EALG_RIJNDAELCBC; m_comb->sadb_comb_flags = 0; - m_comb->sadb_comb_auth_minbits = 8; - m_comb->sadb_comb_auth_maxbits = 96; - m_comb->sadb_comb_encrypt_minbits = 64; - m_comb->sadb_comb_encrypt_maxbits = 64; + m_comb->sadb_comb_auth_minbits = 256; + m_comb->sadb_comb_auth_maxbits = 256; + m_comb->sadb_comb_encrypt_minbits = 128; + m_comb->sadb_comb_encrypt_maxbits = 256; m_comb->sadb_comb_reserved = 0; m_comb->sadb_comb_soft_allocations = 0; m_comb->sadb_comb_hard_allocations = 0; @@ -457,8 +457,8 @@ key_setsadbsa() m_sa.sadb_sa_spi = htonl(0x12345678); m_sa.sadb_sa_replay = 4; m_sa.sadb_sa_state = 0; - m_sa.sadb_sa_auth = SADB_AALG_MD5HMAC; - m_sa.sadb_sa_encrypt = SADB_EALG_DESCBC; + m_sa.sadb_sa_auth = SADB_AALG_NONE; + m_sa.sadb_sa_encrypt = SADB_X_EALG_AESGCM16; m_sa.sadb_sa_flags = 0; memcpy(m_buf + m_len, &m_sa, sizeof(struct sadb_sa)); Modified: head/sbin/setkey/token.l ============================================================================== --- head/sbin/setkey/token.l Fri May 1 23:07:23 2020 (r360556) +++ head/sbin/setkey/token.l Sat May 2 00:06:58 2020 (r360557) @@ -147,31 +147,20 @@ tcp { yylval.num = 0; return(PR_TCP); } /* authentication alogorithm */ {hyphen}A { BEGIN S_AUTHALG; return(F_AUTH); } -hmac-md5 { yylval.num = SADB_AALG_MD5HMAC; BEGIN INITIAL; return(ALG_AUTH); } hmac-sha1 { yylval.num = SADB_AALG_SHA1HMAC; BEGIN INITIAL; return(ALG_AUTH); } -keyed-md5 { yylval.num = SADB_X_AALG_MD5; BEGIN INITIAL; return(ALG_AUTH); } -keyed-sha1 { yylval.num = SADB_X_AALG_SHA; BEGIN INITIAL; return(ALG_AUTH); } hmac-sha2-256 { yylval.num = SADB_X_AALG_SHA2_256; BEGIN INITIAL; return(ALG_AUTH); } hmac-sha2-384 { yylval.num = SADB_X_AALG_SHA2_384; BEGIN INITIAL; return(ALG_AUTH); } hmac-sha2-512 { yylval.num = SADB_X_AALG_SHA2_512; BEGIN INITIAL; return(ALG_AUTH); } -hmac-ripemd160 { yylval.num = SADB_X_AALG_RIPEMD160HMAC; BEGIN INITIAL; return(ALG_AUTH); } aes-xcbc-mac { yylval.num = SADB_X_AALG_AES_XCBC_MAC; BEGIN INITIAL; return(ALG_AUTH); } tcp-md5 { yylval.num = SADB_X_AALG_TCP_MD5; BEGIN INITIAL; return(ALG_AUTH); } null { yylval.num = SADB_X_AALG_NULL; BEGIN INITIAL; return(ALG_AUTH_NOKEY); } /* encryption alogorithm */ {hyphen}E { BEGIN S_ENCALG; return(F_ENC); } -des-cbc { yylval.num = SADB_EALG_DESCBC; BEGIN INITIAL; return(ALG_ENC); } -3des-cbc { yylval.num = SADB_EALG_3DESCBC; BEGIN INITIAL; return(ALG_ENC); } null { yylval.num = SADB_EALG_NULL; BEGIN INITIAL; return(ALG_ENC); } simple { yylval.num = SADB_EALG_NULL; BEGIN INITIAL; return(ALG_ENC_OLD); } -blowfish-cbc { yylval.num = SADB_X_EALG_BLOWFISHCBC; BEGIN INITIAL; return(ALG_ENC); } -cast128-cbc { yylval.num = SADB_X_EALG_CAST128CBC; BEGIN INITIAL; return(ALG_ENC); } -des-deriv { yylval.num = SADB_EALG_DESCBC; BEGIN INITIAL; return(ALG_ENC_DESDERIV); } -des-32iv { yylval.num = SADB_EALG_DESCBC; BEGIN INITIAL; return(ALG_ENC_DES32IV); } rijndael-cbc { yylval.num = SADB_X_EALG_RIJNDAELCBC; BEGIN INITIAL; return(ALG_ENC); } aes-ctr { yylval.num = SADB_X_EALG_AESCTR; BEGIN INITIAL; return(ALG_ENC_SALT); } -camellia-cbc { yylval.num = SADB_X_EALG_CAMELLIACBC; BEGIN INITIAL; return(ALG_ENC); } aes-gcm-16 { yylval.num = SADB_X_EALG_AESGCM16; BEGIN INITIAL; return(ALG_ENC_SALT); } /* compression algorithms */ Modified: head/sys/netipsec/ipsec.c ============================================================================== --- head/sys/netipsec/ipsec.c Fri May 1 23:07:23 2020 (r360556) +++ head/sys/netipsec/ipsec.c Sat May 2 00:06:58 2020 (r360557) @@ -217,11 +217,6 @@ SYSCTL_INT(_net_inet_ipsec, OID_AUTO, filtertunnel, SYSCTL_VNET_PCPUSTAT(_net_inet_ipsec, OID_AUTO, ipsecstats, struct ipsecstat, ipsec4stat, "IPsec IPv4 statistics."); -struct timeval ipsec_warn_interval = { .tv_sec = 1, .tv_usec = 0 }; -SYSCTL_TIMEVAL_SEC(_net_inet_ipsec, OID_AUTO, crypto_warn_interval, CTLFLAG_RW, - &ipsec_warn_interval, - "Delay in seconds between warnings of deprecated IPsec crypto algorithms."); - #ifdef REGRESSION /* * When set to 1, IPsec will send packets with the same sequence number. Modified: head/sys/netipsec/ipsec.h ============================================================================== --- head/sys/netipsec/ipsec.h Fri May 1 23:07:23 2020 (r360556) +++ head/sys/netipsec/ipsec.h Sat May 2 00:06:58 2020 (r360557) @@ -287,8 +287,6 @@ VNET_DECLARE(int, crypto_support); VNET_DECLARE(int, async_crypto); VNET_DECLARE(int, natt_cksum_policy); -extern struct timeval ipsec_warn_interval; - #define IPSECSTAT_INC(name) \ VNET_PCPUSTAT_ADD(struct ipsecstat, ipsec4stat, name, 1) #define V_ip4_esp_trans_deflev VNET(ip4_esp_trans_deflev) Modified: head/sys/netipsec/key.c ============================================================================== --- head/sys/netipsec/key.c Fri May 1 23:07:23 2020 (r360556) +++ head/sys/netipsec/key.c Sat May 2 00:06:58 2020 (r360557) @@ -583,13 +583,8 @@ static struct supported_ealgs { int sadb_alg; const struct enc_xform *xform; } supported_ealgs[] = { - { SADB_EALG_DESCBC, &enc_xform_des }, - { SADB_EALG_3DESCBC, &enc_xform_3des }, { SADB_X_EALG_AES, &enc_xform_rijndael128 }, - { SADB_X_EALG_BLOWFISHCBC, &enc_xform_blf }, - { SADB_X_EALG_CAST128CBC, &enc_xform_cast5 }, { SADB_EALG_NULL, &enc_xform_null }, - { SADB_X_EALG_CAMELLIACBC, &enc_xform_camellia }, { SADB_X_EALG_AESCTR, &enc_xform_aes_icm }, { SADB_X_EALG_AESGCM16, &enc_xform_aes_nist_gcm }, { SADB_X_EALG_AESGMAC, &enc_xform_aes_nist_gmac }, @@ -600,11 +595,7 @@ static struct supported_aalgs { const struct auth_hash *xform; } supported_aalgs[] = { { SADB_X_AALG_NULL, &auth_hash_null }, - { SADB_AALG_MD5HMAC, &auth_hash_hmac_md5 }, { SADB_AALG_SHA1HMAC, &auth_hash_hmac_sha1 }, - { SADB_X_AALG_RIPEMD160HMAC, &auth_hash_hmac_ripemd_160 }, - { SADB_X_AALG_MD5, &auth_hash_key_md5 }, - { SADB_X_AALG_SHA, &auth_hash_key_sha1 }, { SADB_X_AALG_SHA2_256, &auth_hash_hmac_sha2_256 }, { SADB_X_AALG_SHA2_384, &auth_hash_hmac_sha2_384 }, { SADB_X_AALG_SHA2_512, &auth_hash_hmac_sha2_512 }, @@ -6381,8 +6372,6 @@ key_getsizes_ah(const struct auth_hash *ah, int alg, u * key size is restricted. Enforce this here. */ switch (alg) { - case SADB_X_AALG_MD5: *min = *max = 16; break; - case SADB_X_AALG_SHA: *min = *max = 20; break; case SADB_X_AALG_NULL: *min = 1; *max = 256; break; case SADB_X_AALG_SHA2_256: *min = *max = 32; break; case SADB_X_AALG_SHA2_384: *min = *max = 48; break; @@ -6413,7 +6402,6 @@ key_getcomb_ah() #if 1 /* we prefer HMAC algorithms, not old algorithms */ if (i != SADB_AALG_SHA1HMAC && - i != SADB_AALG_MD5HMAC && i != SADB_X_AALG_SHA2_256 && i != SADB_X_AALG_SHA2_384 && i != SADB_X_AALG_SHA2_512) Modified: head/sys/netipsec/xform_ah.c ============================================================================== --- head/sys/netipsec/xform_ah.c Fri May 1 23:07:23 2020 (r360556) +++ head/sys/netipsec/xform_ah.c Sat May 2 00:06:58 2020 (r360557) @@ -108,7 +108,6 @@ SYSCTL_VNET_PCPUSTAT(_net_inet_ah, IPSECCTL_STATS, sta #endif static unsigned char ipseczeroes[256]; /* larger than an ip6 extension hdr */ -static struct timeval md5warn, ripewarn, kpdkmd5warn, kpdksha1warn; static int ah_input_cb(struct cryptop*); static int ah_output_cb(struct cryptop*); @@ -185,25 +184,6 @@ ah_init0(struct secasvar *sav, struct xformsw *xsp, return EINVAL; } - switch (sav->alg_auth) { - case SADB_AALG_MD5HMAC: - if (ratecheck(&md5warn, &ipsec_warn_interval)) - gone_in(13, "MD5-HMAC authenticator for IPsec"); - break; - case SADB_X_AALG_RIPEMD160HMAC: - if (ratecheck(&ripewarn, &ipsec_warn_interval)) - gone_in(13, "RIPEMD160-HMAC authenticator for IPsec"); - break; - case SADB_X_AALG_MD5: - if (ratecheck(&kpdkmd5warn, &ipsec_warn_interval)) - gone_in(13, "Keyed-MD5 authenticator for IPsec"); - break; - case SADB_X_AALG_SHA: - if (ratecheck(&kpdksha1warn, &ipsec_warn_interval)) - gone_in(13, "Keyed-SHA1 authenticator for IPsec"); - break; - } - /* * Verify the replay state block allocation is consistent with * the protocol type. We check here so we can make assumptions @@ -317,11 +297,7 @@ ah_massage_headers(struct mbuf **m0, int proto, int sk ip->ip_tos = 0; ip->ip_ttl = 0; ip->ip_sum = 0; - - if (alg == CRYPTO_MD5_KPDK || alg == CRYPTO_SHA1_KPDK) - ip->ip_off &= htons(IP_DF); - else - ip->ip_off = htons(0); + ip->ip_off = htons(0); ptr = mtod(m, unsigned char *); Modified: head/sys/netipsec/xform_esp.c ============================================================================== --- head/sys/netipsec/xform_esp.c Fri May 1 23:07:23 2020 (r360556) +++ head/sys/netipsec/xform_esp.c Sat May 2 00:06:58 2020 (r360557) @@ -94,8 +94,6 @@ SYSCTL_VNET_PCPUSTAT(_net_inet_esp, IPSECCTL_STATS, st struct espstat, espstat, "ESP statistics (struct espstat, netipsec/esp_var.h"); -static struct timeval deswarn, blfwarn, castwarn, camelliawarn, tdeswarn; - static int esp_input_cb(struct cryptop *op); static int esp_output_cb(struct cryptop *crp); @@ -157,29 +155,6 @@ esp_init(struct secasvar *sav, struct xformsw *xsp) DPRINTF(("%s: 4-byte IV not supported with protocol\n", __func__)); return EINVAL; - } - - switch (sav->alg_enc) { - case SADB_EALG_DESCBC: - if (ratecheck(&deswarn, &ipsec_warn_interval)) - gone_in(13, "DES cipher for IPsec"); - break; - case SADB_EALG_3DESCBC: - if (ratecheck(&tdeswarn, &ipsec_warn_interval)) - gone_in(13, "3DES cipher for IPsec"); - break; - case SADB_X_EALG_BLOWFISHCBC: - if (ratecheck(&blfwarn, &ipsec_warn_interval)) - gone_in(13, "Blowfish cipher for IPsec"); - break; - case SADB_X_EALG_CAST128CBC: - if (ratecheck(&castwarn, &ipsec_warn_interval)) - gone_in(13, "CAST cipher for IPsec"); - break; - case SADB_X_EALG_CAMELLIACBC: - if (ratecheck(&camelliawarn, &ipsec_warn_interval)) - gone_in(13, "Camellia cipher for IPsec"); - break; } /* subtract off the salt, RFC4106, 8.1 and RFC3686, 5.1 */ Modified: head/usr.bin/netstat/ipsec.c ============================================================================== --- head/usr.bin/netstat/ipsec.c Fri May 1 23:07:23 2020 (r360556) +++ head/usr.bin/netstat/ipsec.c Sat May 2 00:06:58 2020 (r360557) @@ -123,15 +123,11 @@ struct val2str { static struct val2str ipsec_ahnames[] = { { SADB_AALG_NONE, "none", }, - { SADB_AALG_MD5HMAC, "hmac-md5", }, { SADB_AALG_SHA1HMAC, "hmac-sha1", }, - { SADB_X_AALG_MD5, "keyed-md5", }, - { SADB_X_AALG_SHA, "keyed-sha1", }, { SADB_X_AALG_NULL, "null", }, { SADB_X_AALG_SHA2_256, "hmac-sha2-256", }, { SADB_X_AALG_SHA2_384, "hmac-sha2-384", }, { SADB_X_AALG_SHA2_512, "hmac-sha2-512", }, - { SADB_X_AALG_RIPEMD160HMAC, "hmac-ripemd160", }, { SADB_X_AALG_AES_XCBC_MAC, "aes-xcbc-mac", }, { SADB_X_AALG_TCP_MD5, "tcp-md5", }, { SADB_X_AALG_AES128GMAC, "aes-gmac-128", }, @@ -142,13 +138,8 @@ static struct val2str ipsec_ahnames[] = { static struct val2str ipsec_espnames[] = { { SADB_EALG_NONE, "none", }, - { SADB_EALG_DESCBC, "des-cbc", }, - { SADB_EALG_3DESCBC, "3des-cbc", }, { SADB_EALG_NULL, "null", }, - { SADB_X_EALG_CAST128CBC, "cast128-cbc", }, - { SADB_X_EALG_BLOWFISHCBC, "blowfish-cbc", }, { SADB_X_EALG_RIJNDAELCBC, "rijndael-cbc", }, - { SADB_X_EALG_CAMELLIACBC, "camellia-cbc", }, { SADB_X_EALG_AESCTR, "aes-ctr", }, { SADB_X_EALG_AESGCM16, "aes-gcm-16", }, { SADB_X_EALG_AESGMAC, "aes-gmac", }, From owner-svn-src-all@freebsd.org Sat May 2 00:08: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 B27D42B3EEF; Sat, 2 May 2020 00:08:44 +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 49DTx844Tcz4HWG; Sat, 2 May 2020 00:08:44 +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 8718F18991; Sat, 2 May 2020 00:08:44 +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 04208iUI094667; Sat, 2 May 2020 00:08:44 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 04208i0C094664; Sat, 2 May 2020 00:08:44 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202005020008.04208i0C094664@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Sat, 2 May 2020 00:08:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360558 - head X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head X-SVN-Commit-Revision: 360558 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, 02 May 2020 00:08:44 -0000 Author: jhb Date: Sat May 2 00:08:44 2020 New Revision: 360558 URL: https://svnweb.freebsd.org/changeset/base/360558 Log: Document removal of deprecated IPsec algorithms. Modified: head/RELNOTES Modified: head/RELNOTES ============================================================================== --- head/RELNOTES Sat May 2 00:06:58 2020 (r360557) +++ head/RELNOTES Sat May 2 00:08:44 2020 (r360558) @@ -10,6 +10,11 @@ newline. Entries should be separated by a newline. Changes to this file should not be MFCed. +r360557: + Remove support for DES, Triple DES, Blowfish, Cast, and + Camellia ciphers from IPsec(4). Remove support for MD5-HMAC, + Keyed MD5, Keyed SHA1, and RIPEMD160-HMAC from IPsec(4). + r359945: Remove support for Triple DES, Blowfish, and MD5 HMAC from geli(4). From owner-svn-src-all@freebsd.org Sat May 2 00:10: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 3DFBE2B3FB1; Sat, 2 May 2020 00:10:26 +0000 (UTC) (envelope-from chs@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 49DTz60wtlz4Hf8; Sat, 2 May 2020 00:10:26 +0000 (UTC) (envelope-from chs@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 1B1A418997; Sat, 2 May 2020 00:10:26 +0000 (UTC) (envelope-from chs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0420APo6094824; Sat, 2 May 2020 00:10:25 GMT (envelope-from chs@FreeBSD.org) Received: (from chs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0420APw7094823; Sat, 2 May 2020 00:10:25 GMT (envelope-from chs@FreeBSD.org) Message-Id: <202005020010.0420APw7094823@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: chs set sender to chs@FreeBSD.org using -f From: Chuck Silvers Date: Sat, 2 May 2020 00:10:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360559 - head/sbin/dumpfs X-SVN-Group: head X-SVN-Commit-Author: chs X-SVN-Commit-Paths: head/sbin/dumpfs X-SVN-Commit-Revision: 360559 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, 02 May 2020 00:10:26 -0000 Author: chs Date: Sat May 2 00:10:25 2020 New Revision: 360559 URL: https://svnweb.freebsd.org/changeset/base/360559 Log: Print the fs last-mounted time too. Reviewed by: mckusick Approved by: mckusick (mentor) Sponsored by: Netflix Modified: head/sbin/dumpfs/dumpfs.c Modified: head/sbin/dumpfs/dumpfs.c ============================================================================== --- head/sbin/dumpfs/dumpfs.c Sat May 2 00:08:44 2020 (r360558) +++ head/sbin/dumpfs/dumpfs.c Sat May 2 00:10:25 2020 (r360559) @@ -156,7 +156,7 @@ dumpfsid(void) static int dumpfs(const char *name) { - time_t fstime; + time_t fstime, fsmtime; int64_t fssize; int32_t fsflags; int i; @@ -165,8 +165,10 @@ dumpfs(const char *name) case 2: fssize = afs.fs_size; fstime = afs.fs_time; - printf("magic\t%x (UFS2)\ttime\t%s", - afs.fs_magic, ctime(&fstime)); + fsmtime = afs.fs_mtime; + printf("magic\t%x (UFS2)\n", afs.fs_magic); + printf("last mounted time\t%s", ctime(&fsmtime)); + printf("last modified time\t%s", ctime(&fstime)); printf("superblock location\t%jd\tid\t[ %08x %08x ]\n", (intmax_t)afs.fs_sblockloc, afs.fs_id[0], afs.fs_id[1]); printf("ncg\t%d\tsize\t%jd\tblocks\t%jd\n", From owner-svn-src-all@freebsd.org Sat May 2 00:23: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 1DBA62B49E8; Sat, 2 May 2020 00:23:49 +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 49DVGY026Nz4Jvt; Sat, 2 May 2020 00:23:49 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from John-Baldwins-MacBook-Pro-164.local (unknown [IPv6:2601:648:8203:2990:10da:1785:4af1:96fa]) (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 981139E1F; Sat, 2 May 2020 00:23:48 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Subject: Re: svn commit: r360557 - in head: lib/libipsec sbin/setkey sys/netipsec usr.bin/netstat From: John Baldwin To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <202005020006.04206xTZ094527@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: <6cb8b3f0-10ca-4fca-faff-a3b5983e214c@FreeBSD.org> Date: Fri, 1 May 2020 17:23:46 -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: <202005020006.04206xTZ094527@repo.freebsd.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit 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, 02 May 2020 00:23:49 -0000 On 5/1/20 5:06 PM, John Baldwin wrote: > Author: jhb > Date: Sat May 2 00:06:58 2020 > New Revision: 360557 > URL: https://svnweb.freebsd.org/changeset/base/360557 > > Log: > Remove support for IPsec algorithms deprecated in r348205 and r360202. > > Examples of depecrated algorithms in manual pages and sample configs > are updated where relevant. I removed the one example of combining > ESP and AH (vs using a cipher and auth in ESP) as RFC 8221 says this > combination is NOT RECOMMENDED. > > Specifically, this removes support for the following ciphers: > - des-cbc > - 3des-cbc > - blowfish-cbc > - cast128-cbc > - des-deriv > - des-32iv > - camellia-cbc > > This also removes support for the following authentication algorithms: > - hmac-md5 > - keyed-md5 > - keyed-sha1 > - hmac-ripemd160 > > Reviewed by: cem, gnn (older verisons) > Relnotes: yes > Sponsored by: Chelsio Communications > Differential Revision: https://reviews.freebsd.org/D24342 Oops, forgot: PR: 245834 (exp-run) -- John Baldwin From owner-svn-src-all@freebsd.org Sat May 2 01:00: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 7AA932B5E4E; Sat, 2 May 2020 01:00:30 +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 49DW4t2hBzz4M4C; Sat, 2 May 2020 01:00:30 +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 574C6192D6; Sat, 2 May 2020 01:00:30 +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 04210UFk026242; Sat, 2 May 2020 01:00:30 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 04210Tgm026239; Sat, 2 May 2020 01:00:29 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202005020100.04210Tgm026239@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Sat, 2 May 2020 01:00:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360560 - head/sys/netipsec X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head/sys/netipsec X-SVN-Commit-Revision: 360560 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, 02 May 2020 01:00:30 -0000 Author: jhb Date: Sat May 2 01:00:29 2020 New Revision: 360560 URL: https://svnweb.freebsd.org/changeset/base/360560 Log: Don't pass bogus keys down for NULL algorithms. The changes in r359374 added various sanity checks in sessions and requests created by crypto consumers in part to permit backend drivers to make assumptions instead of duplicating checks for various edge cases. One of the new checks was to reject sessions which provide a pointer to a key while claiming the key is zero bits long. IPsec ESP tripped over this as it passes along whatever key is provided for NULL, including a pointer to a zero-length key when an empty string ("") is used with setkey(8). One option would be to teach the IPsec key layer to not allocate keys of zero length, but I went with a simpler fix of just not passing any keys down and always using a key length of zero for NULL algorithms. PR: 245832 Reported by: CI Modified: head/sys/netipsec/xform_ah.c head/sys/netipsec/xform_esp.c Modified: head/sys/netipsec/xform_ah.c ============================================================================== --- head/sys/netipsec/xform_ah.c Sat May 2 00:10:25 2020 (r360559) +++ head/sys/netipsec/xform_ah.c Sat May 2 01:00:29 2020 (r360560) @@ -215,8 +215,10 @@ ah_init0(struct secasvar *sav, struct xformsw *xsp, /* Initialize crypto session. */ csp->csp_auth_alg = sav->tdb_authalgxform->type; - csp->csp_auth_klen = _KEYBITS(sav->key_auth) / 8; - csp->csp_auth_key = sav->key_auth->key_data; + if (csp->csp_auth_alg != CRYPTO_NULL_HMAC) { + csp->csp_auth_klen = _KEYBITS(sav->key_auth) / 8; + csp->csp_auth_key = sav->key_auth->key_data; + }; csp->csp_auth_mlen = AUTHSIZE(sav); return 0; Modified: head/sys/netipsec/xform_esp.c ============================================================================== --- head/sys/netipsec/xform_esp.c Sat May 2 00:10:25 2020 (r360559) +++ head/sys/netipsec/xform_esp.c Sat May 2 01:00:29 2020 (r360560) @@ -220,9 +220,11 @@ esp_init(struct secasvar *sav, struct xformsw *xsp) /* Initialize crypto session. */ csp.csp_cipher_alg = sav->tdb_encalgxform->type; - csp.csp_cipher_key = sav->key_enc->key_data; - csp.csp_cipher_klen = _KEYBITS(sav->key_enc) / 8 - - SAV_ISCTRORGCM(sav) * 4; + if (csp.csp_cipher_alg != CRYPTO_NULL_CBC) { + csp.csp_cipher_key = sav->key_enc->key_data; + csp.csp_cipher_klen = _KEYBITS(sav->key_enc) / 8 - + SAV_ISCTRORGCM(sav) * 4; + }; csp.csp_ivlen = txform->ivsize; error = crypto_newsession(&sav->tdb_cryptoid, &csp, V_crypto_support); From owner-svn-src-all@freebsd.org Sat May 2 08:18: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 DF2892C8032; Sat, 2 May 2020 08:18:41 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (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 49DhpT47mGz3Q9H; Sat, 2 May 2020 08:18:41 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kib@localhost [127.0.0.1]) by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id 0428INX8005177 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Sat, 2 May 2020 11:18:26 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua 0428INX8005177 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id 0428INwQ005176; Sat, 2 May 2020 11:18:23 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Sat, 2 May 2020 11:18:23 +0300 From: Konstantin Belousov To: Hans Petter Selasky Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: Re: svn commit: r360525 - in stable/12: sys/arm64/arm64 sys/arm64/include sys/compat/linuxkpi/common/include/linux sys/compat/linuxkpi/common/src sys/dev/ofw sys/dev/pci sys/kern sys/sys sys/x86/includ... Message-ID: <20200502081823.GA3866@kib.kiev.ua> References: <202005010946.0419kRVc060976@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <202005010946.0419kRVc060976@repo.freebsd.org> X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FORGED_GMAIL_RCVD,FREEMAIL_FROM, NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on tom.home X-Rspamd-Queue-Id: 49DhpT47mGz3Q9H X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-5.99 / 15.00]; NEURAL_HAM_MEDIUM(-0.99)[-0.992,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: Sat, 02 May 2020 08:18:41 -0000 On Fri, May 01, 2020 at 09:46:27AM +0000, Hans Petter Selasky wrote: > Author: hselasky > Date: Fri May 1 09:46:27 2020 > New Revision: 360525 > URL: https://svnweb.freebsd.org/changeset/base/360525 > > Log: > MFC r346645, r346664, r346687, r347387, r347836, r347088, 347089, r346956, > r346957, r346958, r347088, r347089, r347385, r353938, r350570, > r350572 and r350573: > > Implement full bus_dma(9) support in the LinuxKPI and pull in all dependencies. > > Bump FreeBSD version to force recompilation of external modules. > > Sponsored by: Mellanox Technologies > > Modified: > stable/12/sys/arm64/arm64/busdma_bounce.c > stable/12/sys/arm64/include/bus_dma.h > stable/12/sys/arm64/include/bus_dma_impl.h > stable/12/sys/compat/linuxkpi/common/include/linux/device.h > stable/12/sys/compat/linuxkpi/common/include/linux/dma-mapping.h > stable/12/sys/compat/linuxkpi/common/include/linux/dmapool.h > stable/12/sys/compat/linuxkpi/common/include/linux/gfp.h > stable/12/sys/compat/linuxkpi/common/include/linux/io.h > stable/12/sys/compat/linuxkpi/common/include/linux/pci.h > stable/12/sys/compat/linuxkpi/common/include/linux/scatterlist.h > stable/12/sys/compat/linuxkpi/common/src/linux_pci.c > stable/12/sys/dev/ofw/ofwpci.c > stable/12/sys/dev/pci/vga_pci.c > stable/12/sys/kern/bus_if.m > stable/12/sys/kern/subr_bus.c > stable/12/sys/sys/bus.h > stable/12/sys/sys/bus_dma.h > stable/12/sys/sys/param.h > stable/12/sys/x86/include/bus_dma.h > stable/12/sys/x86/include/busdma_impl.h > stable/12/sys/x86/iommu/busdma_dmar.c > stable/12/sys/x86/x86/busdma_bounce.c > stable/12/usr.sbin/camdd/camdd.c > Directory Properties: > stable/12/ (props changed) The diff was truncated by commit mailer, so I inline the change: Index: sys/x86/include/busdma_impl.h =================================================================== --- sys/x86/include/busdma_impl.h (revision 360524) +++ sys/x86/include/busdma_impl.h (revision 360525) @@ -62,6 +62,7 @@ void *lockfuncarg, bus_dma_tag_t *dmat); int (*tag_destroy)(bus_dma_tag_t dmat); int (*tag_set_domain)(bus_dma_tag_t); + bool (*id_mapped)(bus_dma_tag_t, vm_paddr_t, bus_size_t); int (*map_create)(bus_dma_tag_t dmat, int flags, bus_dmamap_t *mapp); int (*map_destroy)(bus_dma_tag_t dmat, bus_dmamap_t map); int (*mem_alloc)(bus_dma_tag_t dmat, void** vaddr, int flags, It changed the layout of struct bus_dma_impl which is part of the KBI because it is accessed by inline wrappers of busdma KPI. End result is that all drivers binaries using busdma are broken. I believe it would be fine to move id_mapped to the end of the structure. From owner-svn-src-all@freebsd.org Sat May 2 09: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 AB3C92C9876; Sat, 2 May 2020 09:16:35 +0000 (UTC) (envelope-from rene@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 49Dk5H42Mjz3y0H; Sat, 2 May 2020 09:16:35 +0000 (UTC) (envelope-from rene@freebsd.org) Received: by freefall.freebsd.org (Postfix, from userid 1185) id 6440C5D4F; Sat, 2 May 2020 09:16:35 +0000 (UTC) Date: Sat, 2 May 2020 09:16:35 +0000 From: Rene Ladan To: Warner Losh Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r360540 - head/stand/libofw Message-ID: <20200502091635.GA16751@freefall.freebsd.org> References: <202005011750.041HoMaV058949@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <202005011750.041HoMaV058949@repo.freebsd.org> 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, 02 May 2020 09:16:35 -0000 On Fri, May 01, 2020 at 05:50:22PM +0000, Warner Losh wrote: > Author: imp > Date: Fri May 1 17:50:21 2020 > New Revision: 360540 > URL: https://svnweb.freebsd.org/changeset/base/360540 > > Log: > Remove more stray sparc64 ifdefs. > > Also, dmabuf appears to only be set for sparc64 case, but there was a > comment at its only use that says it was broken for some apple > adapters. #ifdef it all of that out now that nothing sets it. > > Modified: > head/stand/libofw/ofw_net.c > > Modified: head/stand/libofw/ofw_net.c > ============================================================================== > --- head/stand/libofw/ofw_net.c Fri May 1 17:17:01 2020 (r360539) > +++ head/stand/libofw/ofw_net.c Fri May 1 17:50:21 2020 (r360540) [...] > @@ -220,20 +220,6 @@ ofwn_init(struct iodesc *desc, void *machdep_hint) > #if defined(NETIF_DEBUG) > printf("ofwn_init: Open Firmware instance handle: %08x\n", netinstance); > #endif > - > -#ifndef __sparc64__ ^ Shouldn't this code always be present? > - dmabuf = NULL; > - if (OF_call_method("dma-alloc", netinstance, 1, 1, (64 * 1024), &dmabuf) > - < 0) { > - printf("Failed to allocate DMA buffer (got %p).\n", dmabuf); > - goto punt; > - } > - > -#if defined(NETIF_DEBUG) > - printf("ofwn_init: allocated DMA buffer: %p\n", dmabuf); > -#endif > -#endif > - René From owner-svn-src-all@freebsd.org Sat May 2 09:17: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 E9D9D2C990A; Sat, 2 May 2020 09:17:57 +0000 (UTC) (envelope-from rene@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 49Dk6s5xnjz3y6g; Sat, 2 May 2020 09:17:57 +0000 (UTC) (envelope-from rene@freebsd.org) Received: by freefall.freebsd.org (Postfix, from userid 1185) id A60C35D6F; Sat, 2 May 2020 09:17:57 +0000 (UTC) Date: Sat, 2 May 2020 09:17:57 +0000 From: Rene Ladan To: Warner Losh Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r360540 - head/stand/libofw Message-ID: <20200502091757.GB16751@freefall.freebsd.org> References: <202005011750.041HoMaV058949@repo.freebsd.org> <20200502091635.GA16751@freefall.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20200502091635.GA16751@freefall.freebsd.org> 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, 02 May 2020 09:17:58 -0000 On Sat, May 02, 2020 at 09:16:35AM +0000, Rene Ladan wrote: > On Fri, May 01, 2020 at 05:50:22PM +0000, Warner Losh wrote: > > Author: imp > > Date: Fri May 1 17:50:21 2020 > > New Revision: 360540 > > URL: https://svnweb.freebsd.org/changeset/base/360540 > > > > Log: > > Remove more stray sparc64 ifdefs. > > > > Also, dmabuf appears to only be set for sparc64 case, but there was a > > comment at its only use that says it was broken for some apple > > adapters. #ifdef it all of that out now that nothing sets it. > > > > Modified: > > head/stand/libofw/ofw_net.c > > > > Modified: head/stand/libofw/ofw_net.c > > ============================================================================== > > --- head/stand/libofw/ofw_net.c Fri May 1 17:17:01 2020 (r360539) > > +++ head/stand/libofw/ofw_net.c Fri May 1 17:50:21 2020 (r360540) > [...] > > @@ -220,20 +220,6 @@ ofwn_init(struct iodesc *desc, void *machdep_hint) > > #if defined(NETIF_DEBUG) > > printf("ofwn_init: Open Firmware instance handle: %08x\n", netinstance); > > #endif > > - > > -#ifndef __sparc64__ > ^ > Shouldn't this code always be present? Ah yes, but already fixed :) René From owner-svn-src-all@freebsd.org Sat May 2 13:42: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 A2A962D0334; Sat, 2 May 2020 13:42:04 +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 49Dqzc3tVPz4Cr9; Sat, 2 May 2020 13:42:04 +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 8099322903; Sat, 2 May 2020 13:42:04 +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 042Dg4l8008331; Sat, 2 May 2020 13:42:04 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 042Dg4E7008330; Sat, 2 May 2020 13:42:04 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202005021342.042Dg4E7008330@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Sat, 2 May 2020 13:42:04 +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: r360561 - stable/12 X-SVN-Group: stable-12 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: stable/12 X-SVN-Commit-Revision: 360561 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, 02 May 2020 13:42:04 -0000 Author: jhb Date: Sat May 2 13:42:03 2020 New Revision: 360561 URL: https://svnweb.freebsd.org/changeset/base/360561 Log: MFC 354661,354693: Fix WITH_CLANG_BOOTSTRAP without WITH_CLANG_IS_CC. 354661: Force MK_CLANG_IS_CC on in XMAKE. This ensures that a bootstrap clang compiler is always installed as cc in WORLDTMP. If it is only installed as 'clang' then /usr/bin/cc is used during the build instead of the bootstrap compiler. 354693: Refine r354661 to unbreak the GCC_BOOTSTRAP case. MK_CLANG_IS_CC controls installing links for GCC, not just clang. Set MK_CLANG_IS_CC to the value of MK_CLANG_BOOTSTRAP. This will leave it as "no" if no bootstrap compiler is being built or GCC 4.2.1 is being used as the bootstrap compiler, and "yes" if clang is being used as the bootstrap compiler. Modified: stable/12/Makefile.inc1 Directory Properties: stable/12/ (props changed) Modified: stable/12/Makefile.inc1 ============================================================================== --- stable/12/Makefile.inc1 Sat May 2 01:00:29 2020 (r360560) +++ stable/12/Makefile.inc1 Sat May 2 13:42:03 2020 (r360561) @@ -687,6 +687,7 @@ TMAKE= \ # TOOLS_PREFIX set in BMAKE XMAKE= ${BMAKE} \ TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ + MK_CLANG_IS_CC=${MK_CLANG_BOOTSTRAP} \ MK_GDB=no MK_TESTS=no # kernel-tools stage From owner-svn-src-all@freebsd.org Sat May 2 14:20: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 EAE4B2D0F62; Sat, 2 May 2020 14:20:32 +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 49Drr05y0yz4FYW; Sat, 2 May 2020 14:20:32 +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 C75A322F09; Sat, 2 May 2020 14:20:32 +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 042EKWIx029504; Sat, 2 May 2020 14:20:32 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 042EKW3d029502; Sat, 2 May 2020 14:20:32 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202005021420.042EKW3d029502@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Sat, 2 May 2020 14:20:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360562 - in head: sys/opencrypto tests/sys/opencrypto X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in head: sys/opencrypto tests/sys/opencrypto X-SVN-Commit-Revision: 360562 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, 02 May 2020 14:20:33 -0000 Author: jhb Date: Sat May 2 14:20:32 2020 New Revision: 360562 URL: https://svnweb.freebsd.org/changeset/base/360562 Log: Remove support for the algorithms deprecated in r348876. This removes support for the following algorithms: - ARC4 - Blowfish - CAST128 - DES - 3DES - MD5-HMAC - Skipjack Since /dev/crypto no longer supports 3DES, stop testing the 3DES KAT vectors in cryptotest.py. Reviewed by: cem (previous version) Relnotes: yes Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D24346 Modified: head/sys/opencrypto/cryptodev.c head/tests/sys/opencrypto/cryptotest.py Modified: head/sys/opencrypto/cryptodev.c ============================================================================== --- head/sys/opencrypto/cryptodev.c Sat May 2 13:42:03 2020 (r360561) +++ head/sys/opencrypto/cryptodev.c Sat May 2 14:20:32 2020 (r360562) @@ -291,11 +291,6 @@ struct fcrypt { struct mtx lock; }; -static struct timeval warninterval = { .tv_sec = 60, .tv_usec = 0 }; -SYSCTL_TIMEVAL_SEC(_kern, OID_AUTO, cryptodev_warn_interval, CTLFLAG_RW, - &warninterval, - "Delay in seconds between warnings of deprecated /dev/crypto algorithms"); - static int cryptof_ioctl(struct file *, u_long, void *, struct ucred *, struct thread *); static int cryptof_stat(struct file *, struct stat *, @@ -408,21 +403,9 @@ cryptof_ioctl( switch (sop->cipher) { case 0: break; - case CRYPTO_DES_CBC: - txform = &enc_xform_des; - break; case CRYPTO_3DES_CBC: txform = &enc_xform_3des; break; - case CRYPTO_BLF_CBC: - txform = &enc_xform_blf; - break; - case CRYPTO_CAST_CBC: - txform = &enc_xform_cast5; - break; - case CRYPTO_SKIPJACK_CBC: - txform = &enc_xform_skipjack; - break; case CRYPTO_AES_CBC: txform = &enc_xform_rijndael128; break; @@ -432,9 +415,6 @@ cryptof_ioctl( case CRYPTO_NULL_CBC: txform = &enc_xform_null; break; - case CRYPTO_ARC4: - txform = &enc_xform_arc4; - break; case CRYPTO_CAMELLIA_CBC: txform = &enc_xform_camellia; break; @@ -460,9 +440,6 @@ cryptof_ioctl( switch (sop->mac) { case 0: break; - case CRYPTO_MD5_HMAC: - thash = &auth_hash_hmac_md5; - break; case CRYPTO_POLY1305: thash = &auth_hash_poly1305; break; @@ -847,49 +824,6 @@ cod_free(struct cryptop_data *cod) free(cod, M_XDATA); } -static void -cryptodev_warn(struct csession *cse) -{ - static struct timeval arc4warn, blfwarn, castwarn, deswarn, md5warn; - static struct timeval skipwarn, tdeswarn; - const struct crypto_session_params *csp; - - csp = crypto_get_params(cse->cses); - switch (csp->csp_cipher_alg) { - case CRYPTO_DES_CBC: - if (ratecheck(&deswarn, &warninterval)) - gone_in(13, "DES cipher via /dev/crypto"); - break; - case CRYPTO_3DES_CBC: - if (ratecheck(&tdeswarn, &warninterval)) - gone_in(13, "3DES cipher via /dev/crypto"); - break; - case CRYPTO_BLF_CBC: - if (ratecheck(&blfwarn, &warninterval)) - gone_in(13, "Blowfish cipher via /dev/crypto"); - break; - case CRYPTO_CAST_CBC: - if (ratecheck(&castwarn, &warninterval)) - gone_in(13, "CAST128 cipher via /dev/crypto"); - break; - case CRYPTO_SKIPJACK_CBC: - if (ratecheck(&skipwarn, &warninterval)) - gone_in(13, "Skipjack cipher via /dev/crypto"); - break; - case CRYPTO_ARC4: - if (ratecheck(&arc4warn, &warninterval)) - gone_in(13, "ARC4 cipher via /dev/crypto"); - break; - } - - switch (csp->csp_auth_alg) { - case CRYPTO_MD5_HMAC: - if (ratecheck(&md5warn, &warninterval)) - gone_in(13, "MD5-HMAC authenticator via /dev/crypto"); - break; - } -} - static int cryptodev_op( struct csession *cse, @@ -1040,7 +974,6 @@ cryptodev_op( goto bail; } } - cryptodev_warn(cse); again: /* * Let the dispatch run unlocked, then, interlock against the @@ -1231,7 +1164,6 @@ cryptodev_aead( SDT_PROBE1(opencrypto, dev, ioctl, error, __LINE__); goto bail; } - cryptodev_warn(cse); again: /* * Let the dispatch run unlocked, then, interlock against the Modified: head/tests/sys/opencrypto/cryptotest.py ============================================================================== --- head/tests/sys/opencrypto/cryptotest.py Sat May 2 13:42:03 2020 (r360561) +++ head/tests/sys/opencrypto/cryptotest.py Sat May 2 14:20:32 2020 (r360562) @@ -51,7 +51,6 @@ def katg(base, glob): return iglob(os.path.join(katdir, base, glob)) aesmodules = [ 'cryptosoft0', 'aesni0', 'armv8crypto0', 'ccr0', 'ccp0' ] -desmodules = [ 'cryptosoft0', ] shamodules = [ 'cryptosoft0', 'aesni0', 'armv8crypto0', 'ccr0', 'ccp0' ] def GenTestCase(cname): @@ -331,46 +330,6 @@ def GenTestCase(cname): " Actual: " + repr(binascii.hexlify(r)) + \ " Expected: " + repr(data) + \ " on " + cname) - - ############### - ##### DES ##### - ############### - @unittest.skipIf(cname not in desmodules, 'skipping DES on %s' % (cname)) - def test_tdes(self): - for i in katg('KAT_TDES', 'TCBC[a-z]*.rsp'): - self.runTDES(i) - - def runTDES(self, fname): - columns = [ 'COUNT', 'KEYs', 'IV', 'PLAINTEXT', 'CIPHERTEXT', ] - with cryptodev.KATParser(fname, columns) as parser: - self.runTDESWithParser(parser) - - def runTDESWithParser(self, parser): - curfun = None - for mode, lines in next(parser): - if mode == 'ENCRYPT': - swapptct = False - curfun = Crypto.encrypt - elif mode == 'DECRYPT': - swapptct = True - curfun = Crypto.decrypt - else: - raise RuntimeError('unknown mode: %r' % repr(mode)) - - for data in lines: - curcnt = int(data['COUNT']) - key = data['KEYs'] * 3 - cipherkey = binascii.unhexlify(key) - iv = binascii.unhexlify(data['IV']) - pt = binascii.unhexlify(data['PLAINTEXT']) - ct = binascii.unhexlify(data['CIPHERTEXT']) - - if swapptct: - pt, ct = ct, pt - # run the fun - c = Crypto(cryptodev.CRYPTO_3DES_CBC, cipherkey, crid=crid) - r = curfun(c, pt, iv) - self.assertEqual(r, ct) ############### ##### SHA ##### From owner-svn-src-all@freebsd.org Sat May 2 14:23: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 DF6312D1188; Sat, 2 May 2020 14:23:55 +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 49Drvv5fKjz4FxK; Sat, 2 May 2020 14:23:55 +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 BD3D3230D9; Sat, 2 May 2020 14:23:55 +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 042ENtKU035234; Sat, 2 May 2020 14:23:55 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 042ENtfC035233; Sat, 2 May 2020 14:23:55 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202005021423.042ENtfC035233@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Sat, 2 May 2020 14:23:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360563 - head X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head X-SVN-Commit-Revision: 360563 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, 02 May 2020 14:23:55 -0000 Author: jhb Date: Sat May 2 14:23:55 2020 New Revision: 360563 URL: https://svnweb.freebsd.org/changeset/base/360563 Log: Document removal of deprecated algorithms from /dev/crypto. Modified: head/RELNOTES Modified: head/RELNOTES ============================================================================== --- head/RELNOTES Sat May 2 14:20:32 2020 (r360562) +++ head/RELNOTES Sat May 2 14:23:55 2020 (r360563) @@ -10,6 +10,10 @@ newline. Entries should be separated by a newline. Changes to this file should not be MFCed. +r360562: + Remove support for ARC4, Blowfish, Cast, DES, Triple DES, + MD5-HMAC, and Skipjack algorithms from /dev/crypto. + r360557: Remove support for DES, Triple DES, Blowfish, Cast, and Camellia ciphers from IPsec(4). Remove support for MD5-HMAC, From owner-svn-src-all@freebsd.org Sat May 2 16:55: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 898192D4689; Sat, 2 May 2020 16:55:00 +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 49DwGD3WVDz4P6g; Sat, 2 May 2020 16:55:00 +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 6F61824CF9; Sat, 2 May 2020 16:55:00 +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 042Gt0Hs027142; Sat, 2 May 2020 16:55:00 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 042Gsx9B027098; Sat, 2 May 2020 16:54:59 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202005021654.042Gsx9B027098@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Sat, 2 May 2020 16:54:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360564 - 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: 360564 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, 02 May 2020 16:55:00 -0000 Author: mav Date: Sat May 2 16:54:59 2020 New Revision: 360564 URL: https://svnweb.freebsd.org/changeset/base/360564 Log: Cleanup LUN addition/removal. - Make ctl_add_lun() synchronous. Asynchronous addition was used by Copan's proprietary code long ago and never for upstream FreeBSD. - Move LUN enable/disable calls from backends to CTL core. - Serialize LUN modification and partially removal to avoid double frees. - Slightly unify backends code. MFC after: 2 weeks Sponsored by: iXsystems, Inc. Modified: head/sys/cam/ctl/ctl.c head/sys/cam/ctl/ctl_backend.c head/sys/cam/ctl/ctl_backend.h head/sys/cam/ctl/ctl_backend_block.c head/sys/cam/ctl/ctl_backend_ramdisk.c head/sys/cam/ctl/ctl_private.h Modified: head/sys/cam/ctl/ctl.c ============================================================================== --- head/sys/cam/ctl/ctl.c Sat May 2 14:23:55 2020 (r360563) +++ head/sys/cam/ctl/ctl.c Sat May 2 16:54:59 2020 (r360564) @@ -469,10 +469,9 @@ static void ctl_ioctl_fill_ooa(struct ctl_lun *lun, ui struct ctl_ooa_entry *kern_entries); static int ctl_ioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flag, struct thread *td); -static int ctl_alloc_lun(struct ctl_softc *ctl_softc, struct ctl_lun *lun, - struct ctl_be_lun *be_lun); +static int ctl_enable_lun(struct ctl_lun *lun); +static int ctl_disable_lun(struct ctl_lun *lun); static int ctl_free_lun(struct ctl_lun *lun); -static void ctl_create_lun(struct ctl_be_lun *be_lun); static int ctl_do_mode_select(union ctl_io *io); static int ctl_pro_preempt(struct ctl_softc *softc, struct ctl_lun *lun, @@ -547,7 +546,6 @@ static int ctl_datamove_remote_xfer(union ctl_io *io, static void ctl_datamove_remote_read(union ctl_io *io); static void ctl_datamove_remote(union ctl_io *io); static void ctl_process_done(union ctl_io *io); -static void ctl_lun_thread(void *arg); static void ctl_thresh_thread(void *arg); static void ctl_work_thread(void *arg); static void ctl_enqueue_incoming(union ctl_io *io); @@ -1945,7 +1943,6 @@ ctl_init(void) "HA link state (0 - offline, 1 - unknown, 2 - online)"); STAILQ_INIT(&softc->lun_list); - STAILQ_INIT(&softc->pending_lun_queue); STAILQ_INIT(&softc->fe_list); STAILQ_INIT(&softc->port_list); STAILQ_INIT(&softc->be_list); @@ -1973,12 +1970,6 @@ ctl_init(void) return (error); } } - error = kproc_kthread_add(ctl_lun_thread, softc, - &softc->ctl_proc, &softc->lun_thread, 0, 0, "ctl", "lun"); - if (error != 0) { - printf("error creating CTL lun thread!\n"); - return (error); - } error = kproc_kthread_add(ctl_thresh_thread, softc, &softc->ctl_proc, &softc->thresh_thread, 0, 0, "ctl", "thresh"); if (error != 0) { @@ -2020,11 +2011,6 @@ ctl_shutdown(void) } mtx_destroy(&thr->queue_lock); } - while (softc->lun_thread != NULL) { - wakeup(&softc->pending_lun_queue); - if (softc->lun_thread != NULL) - pause("CTL thr shutdown", 1); - } while (softc->thresh_thread != NULL) { wakeup(softc->thresh_thread); if (softc->thresh_thread != NULL) @@ -4497,32 +4483,23 @@ hex2bin(const char *str, uint8_t *buf, int buf_size) } /* - * LUN allocation. + * Add LUN. * - * Requirements: - * - caller allocates and zeros LUN storage, or passes in a NULL LUN if he - * wants us to allocate the LUN and he can block. - * - ctl_softc is always set - * - be_lun is set if the LUN has a backend (needed for disk LUNs) - * * Returns 0 for success, non-zero (errno) for failure. */ -static int -ctl_alloc_lun(struct ctl_softc *ctl_softc, struct ctl_lun *ctl_lun, - struct ctl_be_lun *const be_lun) +int +ctl_add_lun(struct ctl_be_lun *be_lun) { + struct ctl_softc *ctl_softc = control_softc; struct ctl_lun *nlun, *lun; struct scsi_vpd_id_descriptor *desc; struct scsi_vpd_id_t10 *t10id; const char *eui, *naa, *scsiname, *uuid, *vendor, *value; - int lun_number, lun_malloced; + int lun_number; int devidlen, idlen1, idlen2 = 0, len; - if (be_lun == NULL) - return (EINVAL); - /* - * We currently only support Direct Access or Processor LUN types. + * We support only Direct Access, CD-ROM or Processor LUN types. */ switch (be_lun->lun_type) { case T_DIRECT: @@ -4532,22 +4509,10 @@ ctl_alloc_lun(struct ctl_softc *ctl_softc, struct ctl_ case T_SEQUENTIAL: case T_CHANGER: default: - be_lun->lun_config_status(be_lun->be_lun, - CTL_LUN_CONFIG_FAILURE); - break; + return (EINVAL); } - if (ctl_lun == NULL) { - lun = malloc(sizeof(*lun), M_CTL, M_WAITOK); - lun_malloced = 1; - } else { - lun_malloced = 0; - lun = ctl_lun; - } + lun = malloc(sizeof(*lun), M_CTL, M_WAITOK | M_ZERO); - memset(lun, 0, sizeof(*lun)); - if (lun_malloced) - lun->flags = CTL_LUN_MALLOCED; - lun->pending_sense = malloc(sizeof(struct scsi_sense_data *) * ctl_max_ports, M_DEVBUF, M_WAITOK | M_ZERO); lun->pending_ua = malloc(sizeof(ctl_ua_type *) * ctl_max_ports, @@ -4658,10 +4623,7 @@ ctl_alloc_lun(struct ctl_softc *ctl_softc, struct ctl_ } fail: free(lun->lun_devid, M_CTL); - if (lun->flags & CTL_LUN_MALLOCED) - free(lun, M_CTL); - be_lun->lun_config_status(be_lun->be_lun, - CTL_LUN_CONFIG_FAILURE); + free(lun, M_CTL); return (ENOSPC); } lun_number = be_lun->req_lun_id; @@ -4687,7 +4649,6 @@ fail: lun->backend = be_lun->be; be_lun->ctl_lun = lun; be_lun->lun_id = lun_number; - atomic_add_int(&be_lun->be->num_luns, 1); if (be_lun->flags & CTL_LUN_FLAG_EJECTED) lun->flags |= CTL_LUN_EJECTED; if (be_lun->flags & CTL_LUN_FLAG_NO_MEDIA) @@ -4743,15 +4704,27 @@ fail: ctl_softc->num_luns++; mtx_unlock(&ctl_softc->ctl_lock); - lun->be_lun->lun_config_status(lun->be_lun->be_lun, CTL_LUN_CONFIG_OK); + /* + * We successfully added the LUN, attempt to enable it. + */ + if (ctl_enable_lun(lun) != 0) { + printf("%s: ctl_enable_lun() failed!\n", __func__); + mtx_lock(&ctl_softc->ctl_lock); + STAILQ_REMOVE(&ctl_softc->lun_list, lun, ctl_lun, links); + ctl_clear_mask(ctl_softc->ctl_lun_mask, lun_number); + ctl_softc->ctl_luns[lun_number] = NULL; + ctl_softc->num_luns--; + mtx_unlock(&ctl_softc->ctl_lock); + free(lun->lun_devid, M_CTL); + free(lun, M_CTL); + return (EIO); + } + return (0); } /* - * Delete a LUN. - * Assumptions: - * - LUN has already been marked invalid and any pending I/O has been taken - * care of. + * Free LUN that has no active requests. */ static int ctl_free_lun(struct ctl_lun *lun) @@ -4778,7 +4751,6 @@ ctl_free_lun(struct ctl_lun *lun) /* * Tell the backend to free resources, if this LUN has a backend. */ - atomic_subtract_int(&lun->be_lun->be->num_luns, 1); lun->be_lun->lun_shutdown(lun->be_lun->be_lun); lun->ie_reportcnt = UINT32_MAX; @@ -4794,57 +4766,24 @@ ctl_free_lun(struct ctl_lun *lun) free(lun->pr_keys, M_DEVBUF); free(lun->write_buffer, M_CTL); free(lun->prevent, M_CTL); - if (lun->flags & CTL_LUN_MALLOCED) - free(lun, M_CTL); + free(lun, M_CTL); return (0); } -static void -ctl_create_lun(struct ctl_be_lun *be_lun) +static int +ctl_enable_lun(struct ctl_lun *lun) { - - /* - * ctl_alloc_lun() should handle all potential failure cases. - */ - ctl_alloc_lun(control_softc, NULL, be_lun); -} - -int -ctl_add_lun(struct ctl_be_lun *be_lun) -{ - struct ctl_softc *softc = control_softc; - - mtx_lock(&softc->ctl_lock); - STAILQ_INSERT_TAIL(&softc->pending_lun_queue, be_lun, links); - mtx_unlock(&softc->ctl_lock); - wakeup(&softc->pending_lun_queue); - - return (0); -} - -int -ctl_enable_lun(struct ctl_be_lun *be_lun) -{ struct ctl_softc *softc; struct ctl_port *port, *nport; - struct ctl_lun *lun; int retval; - lun = (struct ctl_lun *)be_lun->ctl_lun; softc = lun->ctl_softc; mtx_lock(&softc->ctl_lock); mtx_lock(&lun->lun_lock); - if ((lun->flags & CTL_LUN_DISABLED) == 0) { - /* - * eh? Why did we get called if the LUN is already - * enabled? - */ - mtx_unlock(&lun->lun_lock); - mtx_unlock(&softc->ctl_lock); - return (0); - } + KASSERT((lun->flags & CTL_LUN_DISABLED) != 0, + ("%s: LUN not disabled", __func__)); lun->flags &= ~CTL_LUN_DISABLED; mtx_unlock(&lun->lun_lock); @@ -4875,24 +4814,19 @@ ctl_enable_lun(struct ctl_be_lun *be_lun) return (0); } -int -ctl_disable_lun(struct ctl_be_lun *be_lun) +static int +ctl_disable_lun(struct ctl_lun *lun) { struct ctl_softc *softc; struct ctl_port *port; - struct ctl_lun *lun; int retval; - lun = (struct ctl_lun *)be_lun->ctl_lun; softc = lun->ctl_softc; mtx_lock(&softc->ctl_lock); mtx_lock(&lun->lun_lock); - if (lun->flags & CTL_LUN_DISABLED) { - mtx_unlock(&lun->lun_lock); - mtx_unlock(&softc->ctl_lock); - return (0); - } + KASSERT((lun->flags & CTL_LUN_DISABLED) == 0, + ("%s: LUN not enabled", __func__)); lun->flags |= CTL_LUN_DISABLED; mtx_unlock(&lun->lun_lock); @@ -5023,25 +4957,22 @@ ctl_lun_secondary(struct ctl_be_lun *be_lun) return (0); } +/* + * Remove LUN. If there are active requests, wait for completion. + * + * Returns 0 for success, non-zero (errno) for failure. + * Completion is reported to backed via the lun_shutdown() method. + */ int -ctl_invalidate_lun(struct ctl_be_lun *be_lun) +ctl_remove_lun(struct ctl_be_lun *be_lun) { struct ctl_lun *lun; lun = (struct ctl_lun *)be_lun->ctl_lun; - mtx_lock(&lun->lun_lock); + ctl_disable_lun(lun); - /* - * The LUN needs to be disabled before it can be marked invalid. - */ - if ((lun->flags & CTL_LUN_DISABLED) == 0) { - mtx_unlock(&lun->lun_lock); - return (-1); - } - /* - * Mark the LUN invalid. - */ + mtx_lock(&lun->lun_lock); lun->flags |= CTL_LUN_INVALID; /* @@ -13400,35 +13331,6 @@ ctl_work_thread(void *arg) mtx_sleep(thr, &thr->queue_lock, PDROP, "-", 0); } thr->thread = NULL; - kthread_exit(); -} - -static void -ctl_lun_thread(void *arg) -{ - struct ctl_softc *softc = (struct ctl_softc *)arg; - struct ctl_be_lun *be_lun; - - CTL_DEBUG_PRINT(("ctl_lun_thread starting\n")); - thread_lock(curthread); - sched_prio(curthread, PUSER - 1); - thread_unlock(curthread); - - while (!softc->shutdown) { - mtx_lock(&softc->ctl_lock); - be_lun = STAILQ_FIRST(&softc->pending_lun_queue); - if (be_lun != NULL) { - STAILQ_REMOVE_HEAD(&softc->pending_lun_queue, links); - mtx_unlock(&softc->ctl_lock); - ctl_create_lun(be_lun); - continue; - } - - /* Sleep until we have something to do. */ - mtx_sleep(&softc->pending_lun_queue, &softc->ctl_lock, - PDROP, "-", 0); - } - softc->lun_thread = NULL; kthread_exit(); } Modified: head/sys/cam/ctl/ctl_backend.c ============================================================================== --- head/sys/cam/ctl/ctl_backend.c Sat May 2 14:23:55 2020 (r360563) +++ head/sys/cam/ctl/ctl_backend.c Sat May 2 16:54:59 2020 (r360564) @@ -83,7 +83,6 @@ ctl_backend_register(struct ctl_backend_driver *be) #ifdef CS_BE_CONFIG_MOVE_DONE_IS_NOT_USED be->config_move_done = ctl_config_move_done; #endif - be->num_luns = 0; /* Call the backend's initialization routine. */ if (be->init != NULL) { Modified: head/sys/cam/ctl/ctl_backend.h ============================================================================== --- head/sys/cam/ctl/ctl_backend.h Sat May 2 14:23:55 2020 (r360563) +++ head/sys/cam/ctl/ctl_backend.h Sat May 2 16:54:59 2020 (r360564) @@ -80,14 +80,7 @@ typedef enum { MODULE_DEPEND(name, cam, 1, 1, 1) -typedef enum { - CTL_LUN_CONFIG_OK, - CTL_LUN_CONFIG_FAILURE -} ctl_lun_config_status; - typedef void (*be_callback_t)(void *be_lun); -typedef void (*be_lun_config_t)(void *be_lun, - ctl_lun_config_status status); /* * The lun_type field is the SCSI device type of this particular LUN. In @@ -136,16 +129,11 @@ typedef void (*be_lun_config_t)(void *be_lun, * should be padded with ASCII spaces. This field should NOT be NULL * terminated. * - * The lun_shutdown() method is the callback for the ctl_invalidate_lun() + * The lun_shutdown() method is the callback for the ctl_remove_lun() * call. It is called when all outstanding I/O for that LUN has been * completed and CTL has deleted the resources for that LUN. When the CTL * backend gets this call, it can safely free its per-LUN resources. * - * The lun_config_status() method is the callback for the ctl_add_lun() - * call. It is called when the LUN is successfully added, or when LUN - * addition fails. If the LUN is successfully added, the backend may call - * the ctl_enable_lun() method to enable the LUN. - * * The be field is a pointer to the ctl_backend_driver structure, which * contains the backend methods to be called by CTL. * @@ -173,7 +161,6 @@ struct ctl_be_lun { uint8_t serial_num[CTL_SN_LEN]; /* passed to CTL */ uint8_t device_id[CTL_DEVID_LEN];/* passed to CTL */ be_callback_t lun_shutdown; /* passed to CTL */ - be_lun_config_t lun_config_status; /* passed to CTL */ struct ctl_backend_driver *be; /* passed to CTL */ void *ctl_lun; /* used by CTL */ nvlist_t *options; /* passed to CTL */ @@ -212,7 +199,6 @@ struct ctl_backend_driver { #if 0 be_vfunc_t config_write_done; /* passed to backend */ #endif - u_int num_luns; /* used by CTL */ STAILQ_ENTRY(ctl_backend_driver) links; /* used by CTL */ }; @@ -221,22 +207,16 @@ int ctl_backend_deregister(struct ctl_backend_driver * struct ctl_backend_driver *ctl_backend_find(char *backend_name); /* - * To add a LUN, first call ctl_add_lun(). You will get the lun_config_status() - * callback when the LUN addition has either succeeded or failed. - * - * Once you get that callback, you can then call ctl_enable_lun() to enable - * the LUN. + * To add a LUN, call ctl_add_lun(). */ int ctl_add_lun(struct ctl_be_lun *be_lun); -int ctl_enable_lun(struct ctl_be_lun *be_lun); /* - * To delete a LUN, first call ctl_disable_lun(), then - * ctl_invalidate_lun(). You will get the lun_shutdown() callback when all + * To remove a LUN, first call ctl_remove_lun(). + * You will get the lun_shutdown() callback when all * I/O to the LUN has completed and the LUN has been deleted. */ -int ctl_disable_lun(struct ctl_be_lun *be_lun); -int ctl_invalidate_lun(struct ctl_be_lun *be_lun); +int ctl_remove_lun(struct ctl_be_lun *be_lun); /* * To start a LUN (transition from powered off to powered on state) call Modified: head/sys/cam/ctl/ctl_backend_block.c ============================================================================== --- head/sys/cam/ctl/ctl_backend_block.c Sat May 2 14:23:55 2020 (r360563) +++ head/sys/cam/ctl/ctl_backend_block.c Sat May 2 16:54:59 2020 (r360564) @@ -80,6 +80,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include @@ -121,7 +122,6 @@ SDT_PROVIDER_DEFINE(cbb); typedef enum { CTL_BE_BLOCK_LUN_UNCONFIGURED = 0x01, - CTL_BE_BLOCK_LUN_CONFIG_ERR = 0x02, CTL_BE_BLOCK_LUN_WAITING = 0x04, } ctl_be_block_lun_flags; @@ -153,7 +153,6 @@ typedef uint64_t (*cbb_getattr_t)(struct ctl_be_block_ */ struct ctl_be_block_lun { struct ctl_lun_create_params params; - char lunname[32]; char *dev_path; ctl_be_block_type dev_type; struct vnode *vn; @@ -169,7 +168,7 @@ struct ctl_be_block_lun { struct ctl_be_block_softc *softc; struct devstat *disk_stats; ctl_be_block_lun_flags flags; - STAILQ_ENTRY(ctl_be_block_lun) links; + SLIST_ENTRY(ctl_be_block_lun) links; struct ctl_be_lun cbe_lun; struct taskqueue *io_taskqueue; struct task io_task; @@ -186,10 +185,11 @@ struct ctl_be_block_lun { * Overall softc structure for the block backend module. */ struct ctl_be_block_softc { + struct sx modify_lock; struct mtx lock; uma_zone_t beio_zone; int num_luns; - STAILQ_HEAD(, ctl_be_block_lun) lun_list; + SLIST_HEAD(, ctl_be_block_lun) lun_list; }; static struct ctl_be_block_softc backend_block_softc; @@ -272,8 +272,6 @@ static int ctl_be_block_rm(struct ctl_be_block_softc * static int ctl_be_block_modify(struct ctl_be_block_softc *softc, struct ctl_lun_req *req); static void ctl_be_block_lun_shutdown(void *be_lun); -static void ctl_be_block_lun_config_status(void *be_lun, - ctl_lun_config_status status); static int ctl_be_block_config_write(union ctl_io *io); static int ctl_be_block_config_read(union ctl_io *io); static int ctl_be_block_lun_info(void *be_lun, struct sbuf *sb); @@ -296,7 +294,7 @@ static struct ctl_backend_driver ctl_be_block_driver = .lun_attr = ctl_be_block_lun_attr }; -MALLOC_DEFINE(M_CTLBLK, "ctlblk", "Memory used for CTL block backend"); +MALLOC_DEFINE(M_CTLBLK, "ctlblock", "Memory used for CTL block backend"); CTL_BACKEND_DECLARE(cbb, ctl_be_block_driver); static struct ctl_be_block_io * @@ -1761,13 +1759,10 @@ static int ctl_be_block_ioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flag, struct thread *td) { - struct ctl_be_block_softc *softc; + struct ctl_be_block_softc *softc = &backend_block_softc; int error; - softc = &backend_block_softc; - error = 0; - switch (cmd) { case CTL_LUN_REQ: { struct ctl_lun_req *lun_req; @@ -2230,11 +2225,10 @@ ctl_be_block_create(struct ctl_be_block_softc *softc, STAILQ_INIT(&be_lun->config_read_queue); STAILQ_INIT(&be_lun->config_write_queue); STAILQ_INIT(&be_lun->datamove_queue); - sprintf(be_lun->lunname, "cblk%d", softc->num_luns); - mtx_init(&be_lun->io_lock, "cblk io lock", NULL, MTX_DEF); - mtx_init(&be_lun->queue_lock, "cblk queue lock", NULL, MTX_DEF); + mtx_init(&be_lun->io_lock, "ctlblock io", NULL, MTX_DEF); + mtx_init(&be_lun->queue_lock, "ctlblock queue", NULL, MTX_DEF); cbe_lun->options = nvlist_clone(req->args_nvl); - be_lun->lun_zone = uma_zcreate(be_lun->lunname, CTLBLK_MAX_SEG, + be_lun->lun_zone = uma_zcreate("ctlblock", CTLBLK_MAX_SEG, NULL, NULL, NULL, NULL, /*align*/ 0, /*flags*/0); if (be_lun->lun_zone == NULL) { snprintf(req->error_str, sizeof(req->error_str), @@ -2246,7 +2240,7 @@ ctl_be_block_create(struct ctl_be_block_softc *softc, cbe_lun->lun_type = params->device_type; else cbe_lun->lun_type = T_DIRECT; - be_lun->flags = CTL_BE_BLOCK_LUN_UNCONFIGURED; + be_lun->flags = 0; cbe_lun->flags = 0; value = dnvlist_get_string(cbe_lun->options, "ha_role", NULL); if (value != NULL) { @@ -2311,7 +2305,6 @@ ctl_be_block_create(struct ctl_be_block_softc *softc, cbe_lun->req_lun_id = 0; cbe_lun->lun_shutdown = ctl_be_block_lun_shutdown; - cbe_lun->lun_config_status = ctl_be_block_lun_config_status; cbe_lun->be = &ctl_be_block_driver; if ((params->flags & CTL_LUN_FLAG_SERIAL_NUM) == 0) { @@ -2344,7 +2337,7 @@ ctl_be_block_create(struct ctl_be_block_softc *softc, TASK_INIT(&be_lun->io_task, /*priority*/0, ctl_be_block_worker, be_lun); - be_lun->io_taskqueue = taskqueue_create(be_lun->lunname, M_WAITOK, + be_lun->io_taskqueue = taskqueue_create("ctlblocktq", M_WAITOK, taskqueue_thread_enqueue, /*context*/&be_lun->io_taskqueue); if (be_lun->io_taskqueue == NULL) { @@ -2371,27 +2364,15 @@ ctl_be_block_create(struct ctl_be_block_softc *softc, /*num threads*/num_threads, /*priority*/PUSER, /*proc*/control_softc->ctl_proc, - /*thread name*/ - "%s taskq", be_lun->lunname); + /*thread name*/"block"); if (retval != 0) goto bailout_error; be_lun->num_threads = num_threads; - mtx_lock(&softc->lock); - softc->num_luns++; - STAILQ_INSERT_TAIL(&softc->lun_list, be_lun, links); - - mtx_unlock(&softc->lock); - retval = ctl_add_lun(&be_lun->cbe_lun); if (retval != 0) { - mtx_lock(&softc->lock); - STAILQ_REMOVE(&softc->lun_list, be_lun, ctl_be_block_lun, - links); - softc->num_luns--; - mtx_unlock(&softc->lock); snprintf(req->error_str, sizeof(req->error_str), "ctl_add_lun() returned error %d, see dmesg for " "details", retval); @@ -2399,42 +2380,20 @@ ctl_be_block_create(struct ctl_be_block_softc *softc, goto bailout_error; } - mtx_lock(&softc->lock); - - /* - * Tell the config_status routine that we're waiting so it won't - * clean up the LUN in the event of an error. - */ - be_lun->flags |= CTL_BE_BLOCK_LUN_WAITING; - - while (be_lun->flags & CTL_BE_BLOCK_LUN_UNCONFIGURED) { - retval = msleep(be_lun, &softc->lock, PCATCH, "ctlblk", 0); - if (retval == EINTR) - break; - } - be_lun->flags &= ~CTL_BE_BLOCK_LUN_WAITING; - - if (be_lun->flags & CTL_BE_BLOCK_LUN_CONFIG_ERR) { - snprintf(req->error_str, sizeof(req->error_str), - "LUN configuration error, see dmesg for details"); - STAILQ_REMOVE(&softc->lun_list, be_lun, ctl_be_block_lun, - links); - softc->num_luns--; - mtx_unlock(&softc->lock); - goto bailout_error; - } else { - params->req_lun_id = cbe_lun->lun_id; - } - - mtx_unlock(&softc->lock); - - be_lun->disk_stats = devstat_new_entry("cbb", params->req_lun_id, + be_lun->disk_stats = devstat_new_entry("cbb", cbe_lun->lun_id, cbe_lun->blocksize, DEVSTAT_ALL_SUPPORTED, cbe_lun->lun_type | DEVSTAT_TYPE_IF_OTHER, DEVSTAT_PRIORITY_OTHER); + mtx_lock(&softc->lock); + softc->num_luns++; + SLIST_INSERT_HEAD(&softc->lun_list, be_lun, links); + mtx_unlock(&softc->lock); + + params->req_lun_id = cbe_lun->lun_id; + return (retval); bailout_error: @@ -2465,12 +2424,18 @@ ctl_be_block_rm(struct ctl_be_block_softc *softc, stru params = &req->reqdata.rm; + sx_xlock(&softc->modify_lock); mtx_lock(&softc->lock); - STAILQ_FOREACH(be_lun, &softc->lun_list, links) { - if (be_lun->cbe_lun.lun_id == params->lun_id) + SLIST_FOREACH(be_lun, &softc->lun_list, links) { + if (be_lun->cbe_lun.lun_id == params->lun_id) { + SLIST_REMOVE(&softc->lun_list, be_lun, + ctl_be_block_lun, links); + softc->num_luns--; break; + } } mtx_unlock(&softc->lock); + sx_xunlock(&softc->modify_lock); if (be_lun == NULL) { snprintf(req->error_str, sizeof(req->error_str), "LUN %u is not managed by the block backend", @@ -2479,14 +2444,6 @@ ctl_be_block_rm(struct ctl_be_block_softc *softc, stru } cbe_lun = &be_lun->cbe_lun; - retval = ctl_disable_lun(cbe_lun); - if (retval != 0) { - snprintf(req->error_str, sizeof(req->error_str), - "error %d returned from ctl_disable_lun() for " - "LUN %d", retval, params->lun_id); - goto bailout_error; - } - if (be_lun->vn != NULL) { cbe_lun->flags |= CTL_LUN_FLAG_NO_MEDIA; ctl_lun_no_media(cbe_lun); @@ -2494,49 +2451,36 @@ ctl_be_block_rm(struct ctl_be_block_softc *softc, stru ctl_be_block_close(be_lun); } - retval = ctl_invalidate_lun(cbe_lun); + mtx_lock(&softc->lock); + be_lun->flags |= CTL_BE_BLOCK_LUN_WAITING; + mtx_unlock(&softc->lock); + + retval = ctl_remove_lun(cbe_lun); if (retval != 0) { snprintf(req->error_str, sizeof(req->error_str), - "error %d returned from ctl_invalidate_lun() for " + "error %d returned from ctl_remove_lun() for " "LUN %d", retval, params->lun_id); + mtx_lock(&softc->lock); + be_lun->flags &= ~CTL_BE_BLOCK_LUN_WAITING; + mtx_unlock(&softc->lock); goto bailout_error; } mtx_lock(&softc->lock); - be_lun->flags |= CTL_BE_BLOCK_LUN_WAITING; while ((be_lun->flags & CTL_BE_BLOCK_LUN_UNCONFIGURED) == 0) { - retval = msleep(be_lun, &softc->lock, PCATCH, "ctlblk", 0); - if (retval == EINTR) - break; - } + retval = msleep(be_lun, &softc->lock, PCATCH, "ctlblockrm", 0); + if (retval == EINTR) + break; + } be_lun->flags &= ~CTL_BE_BLOCK_LUN_WAITING; - - if ((be_lun->flags & CTL_BE_BLOCK_LUN_UNCONFIGURED) == 0) { - snprintf(req->error_str, sizeof(req->error_str), - "interrupted waiting for LUN to be freed"); + if (be_lun->flags & CTL_BE_BLOCK_LUN_UNCONFIGURED) { mtx_unlock(&softc->lock); - goto bailout_error; + free(be_lun, M_CTLBLK); + } else { + mtx_unlock(&softc->lock); + return (EINTR); } - STAILQ_REMOVE(&softc->lun_list, be_lun, ctl_be_block_lun, links); - - softc->num_luns--; - mtx_unlock(&softc->lock); - - taskqueue_drain_all(be_lun->io_taskqueue); - taskqueue_free(be_lun->io_taskqueue); - - if (be_lun->disk_stats != NULL) - devstat_remove_entry(be_lun->disk_stats); - - uma_zdestroy(be_lun->lun_zone); - - nvlist_destroy(cbe_lun->options); - free(be_lun->dev_path, M_CTLBLK); - mtx_destroy(&be_lun->queue_lock); - mtx_destroy(&be_lun->io_lock); - free(be_lun, M_CTLBLK); - req->status = CTL_LUN_OK; return (0); @@ -2557,8 +2501,9 @@ ctl_be_block_modify(struct ctl_be_block_softc *softc, params = &req->reqdata.modify; + sx_xlock(&softc->modify_lock); mtx_lock(&softc->lock); - STAILQ_FOREACH(be_lun, &softc->lun_list, links) { + SLIST_FOREACH(be_lun, &softc->lun_list, links) { if (be_lun->cbe_lun.lun_id == params->lun_id) break; } @@ -2635,66 +2580,41 @@ ctl_be_block_modify(struct ctl_be_block_softc *softc, /* Tell the user the exact size we ended up using */ params->lun_size_bytes = be_lun->size_bytes; + sx_xunlock(&softc->modify_lock); req->status = error ? CTL_LUN_WARNING : CTL_LUN_OK; return (0); bailout_error: + sx_xunlock(&softc->modify_lock); req->status = CTL_LUN_ERROR; return (0); } static void -ctl_be_block_lun_shutdown(void *be_lun) +ctl_be_block_lun_shutdown(void *lun) { - struct ctl_be_block_lun *lun = be_lun; - struct ctl_be_block_softc *softc = lun->softc; + struct ctl_be_block_lun *be_lun = lun; + struct ctl_be_block_softc *softc = be_lun->softc; - mtx_lock(&softc->lock); - lun->flags |= CTL_BE_BLOCK_LUN_UNCONFIGURED; - if (lun->flags & CTL_BE_BLOCK_LUN_WAITING) - wakeup(lun); - mtx_unlock(&softc->lock); -} + taskqueue_drain_all(be_lun->io_taskqueue); + taskqueue_free(be_lun->io_taskqueue); + if (be_lun->disk_stats != NULL) + devstat_remove_entry(be_lun->disk_stats); + uma_zdestroy(be_lun->lun_zone); + nvlist_destroy(be_lun->cbe_lun.options); + free(be_lun->dev_path, M_CTLBLK); + mtx_destroy(&be_lun->queue_lock); + mtx_destroy(&be_lun->io_lock); -static void -ctl_be_block_lun_config_status(void *be_lun, ctl_lun_config_status status) -{ - struct ctl_be_block_lun *lun; - struct ctl_be_block_softc *softc; - - lun = (struct ctl_be_block_lun *)be_lun; - softc = lun->softc; - - if (status == CTL_LUN_CONFIG_OK) { - mtx_lock(&softc->lock); - lun->flags &= ~CTL_BE_BLOCK_LUN_UNCONFIGURED; - if (lun->flags & CTL_BE_BLOCK_LUN_WAITING) - wakeup(lun); - mtx_unlock(&softc->lock); - - /* - * We successfully added the LUN, attempt to enable it. - */ - if (ctl_enable_lun(&lun->cbe_lun) != 0) { - printf("%s: ctl_enable_lun() failed!\n", __func__); - if (ctl_invalidate_lun(&lun->cbe_lun) != 0) { - printf("%s: ctl_invalidate_lun() failed!\n", - __func__); - } - } - - return; - } - - mtx_lock(&softc->lock); - lun->flags &= ~CTL_BE_BLOCK_LUN_UNCONFIGURED; - lun->flags |= CTL_BE_BLOCK_LUN_CONFIG_ERR; - wakeup(lun); + be_lun->flags |= CTL_BE_BLOCK_LUN_UNCONFIGURED; + if (be_lun->flags & CTL_BE_BLOCK_LUN_WAITING) + wakeup(be_lun); + else + free(be_lun, M_CTLBLK); mtx_unlock(&softc->lock); } - static int ctl_be_block_config_write(union ctl_io *io) { @@ -2858,10 +2778,11 @@ ctl_be_block_init(void) { struct ctl_be_block_softc *softc = &backend_block_softc; + sx_init(&softc->modify_lock, "ctlblock modify"); mtx_init(&softc->lock, "ctlblock", NULL, MTX_DEF); softc->beio_zone = uma_zcreate("beio", sizeof(struct ctl_be_block_io), NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0); - STAILQ_INIT(&softc->lun_list); + SLIST_INIT(&softc->lun_list); return (0); } @@ -2870,23 +2791,24 @@ static int ctl_be_block_shutdown(void) { struct ctl_be_block_softc *softc = &backend_block_softc; - struct ctl_be_block_lun *lun, *next_lun; + struct ctl_be_block_lun *lun; mtx_lock(&softc->lock); - STAILQ_FOREACH_SAFE(lun, &softc->lun_list, links, next_lun) { + while ((lun = SLIST_FIRST(&softc->lun_list)) != NULL) { + SLIST_REMOVE_HEAD(&softc->lun_list, links); + softc->num_luns--; /* - * Drop our lock here. Since ctl_invalidate_lun() can call + * Drop our lock here. Since ctl_remove_lun() can call * back into us, this could potentially lead to a recursive * lock of the same mutex, which would cause a hang. */ mtx_unlock(&softc->lock); - ctl_disable_lun(&lun->cbe_lun); - ctl_invalidate_lun(&lun->cbe_lun); + ctl_remove_lun(&lun->cbe_lun); mtx_lock(&softc->lock); } mtx_unlock(&softc->lock); - uma_zdestroy(softc->beio_zone); mtx_destroy(&softc->lock); + sx_destroy(&softc->modify_lock); return (0); } Modified: head/sys/cam/ctl/ctl_backend_ramdisk.c ============================================================================== --- head/sys/cam/ctl/ctl_backend_ramdisk.c Sat May 2 14:23:55 2020 (r360563) +++ head/sys/cam/ctl/ctl_backend_ramdisk.c Sat May 2 16:54:59 2020 (r360564) @@ -102,13 +102,11 @@ typedef enum { typedef enum { CTL_BE_RAMDISK_LUN_UNCONFIGURED = 0x01, - CTL_BE_RAMDISK_LUN_CONFIG_ERR = 0x02, CTL_BE_RAMDISK_LUN_WAITING = 0x04 } ctl_be_ramdisk_lun_flags; struct ctl_be_ramdisk_lun { struct ctl_lun_create_params params; - char lunname[32]; int indir; uint8_t **pages; uint8_t *zero_page; @@ -121,7 +119,7 @@ struct ctl_be_ramdisk_lun { uint64_t cap_used; struct ctl_be_ramdisk_softc *softc; ctl_be_ramdisk_lun_flags flags; - STAILQ_ENTRY(ctl_be_ramdisk_lun) links; + SLIST_ENTRY(ctl_be_ramdisk_lun) links; struct ctl_be_lun cbe_lun; struct taskqueue *io_taskqueue; struct task io_task; @@ -130,9 +128,10 @@ struct ctl_be_ramdisk_lun { }; struct ctl_be_ramdisk_softc { + struct sx modify_lock; struct mtx lock; int num_luns; - STAILQ_HEAD(, ctl_be_ramdisk_lun) lun_list; + SLIST_HEAD(, ctl_be_ramdisk_lun) lun_list; }; static struct ctl_be_ramdisk_softc rd_softc; @@ -157,8 +156,6 @@ static int ctl_backend_ramdisk_create(struct ctl_be_ra static int ctl_backend_ramdisk_modify(struct ctl_be_ramdisk_softc *softc, struct ctl_lun_req *req); static void ctl_backend_ramdisk_lun_shutdown(void *be_lun); -static void ctl_backend_ramdisk_lun_config_status(void *be_lun, - ctl_lun_config_status status); static struct ctl_backend_driver ctl_be_ramdisk_driver = { @@ -174,7 +171,7 @@ static struct ctl_backend_driver ctl_be_ramdisk_driver .lun_attr = ctl_backend_ramdisk_lun_attr, }; -MALLOC_DEFINE(M_RAMDISK, "ramdisk", "Memory used for CTL RAMdisk"); +MALLOC_DEFINE(M_RAMDISK, "ctlramdisk", "Memory used for CTL RAMdisk"); CTL_BACKEND_DECLARE(cbr, ctl_be_ramdisk_driver); static int @@ -183,8 +180,9 @@ ctl_backend_ramdisk_init(void) struct ctl_be_ramdisk_softc *softc = &rd_softc; memset(softc, 0, sizeof(*softc)); - mtx_init(&softc->lock, "ctlramdisk", NULL, MTX_DEF); - STAILQ_INIT(&softc->lun_list); + sx_init(&softc->modify_lock, "ctlrammod"); + mtx_init(&softc->lock, "ctlram", NULL, MTX_DEF); + SLIST_INIT(&softc->lun_list); return (0); } @@ -192,22 +190,24 @@ static int ctl_backend_ramdisk_shutdown(void) { struct ctl_be_ramdisk_softc *softc = &rd_softc; - struct ctl_be_ramdisk_lun *lun, *next_lun; + struct ctl_be_ramdisk_lun *lun; mtx_lock(&softc->lock); - STAILQ_FOREACH_SAFE(lun, &softc->lun_list, links, next_lun) { + while ((lun = SLIST_FIRST(&softc->lun_list)) != NULL) { + SLIST_REMOVE_HEAD(&softc->lun_list, links); + softc->num_luns--; /* - * Drop our lock here. Since ctl_invalidate_lun() can call + * Drop our lock here. Since ctl_remove_lun() can call * back into us, this could potentially lead to a recursive * lock of the same mutex, which would cause a hang. */ mtx_unlock(&softc->lock); - ctl_disable_lun(&lun->cbe_lun); - ctl_invalidate_lun(&lun->cbe_lun); + ctl_remove_lun(&lun->cbe_lun); mtx_lock(&softc->lock); } mtx_unlock(&softc->lock); mtx_destroy(&softc->lock); + sx_destroy(&softc->modify_lock); return (0); } @@ -889,12 +889,18 @@ ctl_backend_ramdisk_rm(struct ctl_be_ramdisk_softc *so int retval; params = &req->reqdata.rm; + sx_xlock(&softc->modify_lock); mtx_lock(&softc->lock); - STAILQ_FOREACH(be_lun, &softc->lun_list, links) { - if (be_lun->cbe_lun.lun_id == params->lun_id) + SLIST_FOREACH(be_lun, &softc->lun_list, links) { + if (be_lun->cbe_lun.lun_id == params->lun_id) { + SLIST_REMOVE(&softc->lun_list, be_lun, + ctl_be_ramdisk_lun, links); + softc->num_luns--; break; + } } mtx_unlock(&softc->lock); + sx_xunlock(&softc->modify_lock); if (be_lun == NULL) { snprintf(req->error_str, sizeof(req->error_str), "%s: LUN %u is not managed by the ramdisk backend", @@ -902,14 +908,6 @@ ctl_backend_ramdisk_rm(struct ctl_be_ramdisk_softc *so goto bailout_error; } *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Sat May 2 17:18: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 C0DC32D5257; Sat, 2 May 2020 17:18:32 +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 49DwnN4jbCz4QQ3; Sat, 2 May 2020 17:18:32 +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 9D092250AB; Sat, 2 May 2020 17:18:32 +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 042HIWmO039569; Sat, 2 May 2020 17:18:32 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 042HIWjX039568; Sat, 2 May 2020 17:18:32 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202005021718.042HIWjX039568@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Sat, 2 May 2020 17:18:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360565 - head/sys/opencrypto X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head/sys/opencrypto X-SVN-Commit-Revision: 360565 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, 02 May 2020 17:18:32 -0000 Author: jhb Date: Sat May 2 17:18:32 2020 New Revision: 360565 URL: https://svnweb.freebsd.org/changeset/base/360565 Log: Actually remove support for Triple DES, not just the warning. Missed in r360562. Modified: head/sys/opencrypto/cryptodev.c Modified: head/sys/opencrypto/cryptodev.c ============================================================================== --- head/sys/opencrypto/cryptodev.c Sat May 2 16:54:59 2020 (r360564) +++ head/sys/opencrypto/cryptodev.c Sat May 2 17:18:32 2020 (r360565) @@ -403,9 +403,6 @@ cryptof_ioctl( switch (sop->cipher) { case 0: break; - case CRYPTO_3DES_CBC: - txform = &enc_xform_3des; - break; case CRYPTO_AES_CBC: txform = &enc_xform_rijndael128; break; From owner-svn-src-all@freebsd.org Sat May 2 18:34: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 9F7D82D6E8F for ; Sat, 2 May 2020 18:34:30 +0000 (UTC) (envelope-from 01000171d6ab14d7-71688989-ef0c-4943-b952-6649f30b15f2-000000@amazonses.com) Received: from a8-52.smtp-out.amazonses.com (a8-52.smtp-out.amazonses.com [54.240.8.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 49DyT12sRXz4VMD for ; Sat, 2 May 2020 18:34:29 +0000 (UTC) (envelope-from 01000171d6ab14d7-71688989-ef0c-4943-b952-6649f30b15f2-000000@amazonses.com) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=ae7m2yrxjw65l2cqdpjxuucyrvy564tn; d=tarsnap.com; t=1588444468; h=Subject:To:References:From:Message-ID:Date:MIME-Version:In-Reply-To:Content-Type:Content-Transfer-Encoding; bh=V6scXrA3AhBns8eWsezfQPPqhUIAkXYvUhdf29mhEvw=; b=e1ZozKuAj+T+sL1KoDblZL+5H9v+KP/MnZ8ubufoLNSykK4YYQ/sbfSxgrNxJyRN H+Hs0LIHiLWBvnwLOaNvqG1LH4Fll9FHWd9COPcJpK9qvwjj64LEzVcclgZHnTpxS52 F4Nh2R6Rv0OhlntF9nh1C5OpxVhE0EfX9PypCzuA= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=224i4yxa5dv7c2xz3womw6peuasteono; d=amazonses.com; t=1588444468; h=Subject:To:References:From:Message-ID:Date:MIME-Version:In-Reply-To:Content-Type:Content-Transfer-Encoding:Feedback-ID; bh=V6scXrA3AhBns8eWsezfQPPqhUIAkXYvUhdf29mhEvw=; b=AY3MU8XiYOfXyd4z3NNxbezDMGghX1xXVpogQHJv//qNdZeHyCXECAqr23+FRe09 dI2AjZWcmZ9QbgypAkOr+V7bIWpk6ikbkMZYkGwEd/7IfcO5zThkWWkri/U4HN8wqxa 1VPpbPskYaj9KVgX1sVDL1RAk5wXPSgz1JYWisxg= Subject: Re: svn commit: r360508 - head/sys/cam/nvme To: Warner Losh , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <202004302108.03UL8xks087664@repo.freebsd.org> From: Colin Percival Autocrypt: addr=cperciva@tarsnap.com; prefer-encrypt=mutual; keydata= mQGhBElrAAcRBACDfDys4ZtK+ErCJ1HAzYeteKpm3OEsvT/49AjUTLihkF79HhIKrCQU+1KC zv7BwHCMLb6hq30As9L7iFKG7n5QFLFC4Te/VcITUnWHMG/c3ViLOfJGvi+9/nOEHaM1dVJY D6tEp5yM1nHmVQpo9932j4KGuGFR0LhOK5IHXOSfGwCgxSFDPdgxe2OEjWxjGgY+oV3EafcD +JROXCTjlcQiG/OguQH4Vks3mhHfFnEppLxTkDuYgHZQiUtpcT9ssH5khgqoTyMar05OUdAj ZIhNbWDh4LgTj+7ZmvLhXT5Zxw8LX9d7T36aTB8XDQSenDqEtinMWOb0TCBBLbsB8EFG1WTT ESbZci9jJS5yhtktuZoY/eM8uXMD/3k4FWFO80VRRkELSp+XSy/VlSQjyi/rhl2nQq/oOA9F oJbDaB0yq9VNhxP+uFBzBWSqeIX0t1ZWLtNfVFr4TRP5hihI5ICrg/0OpqgisKsU2NFe9xyO hyJLYmfD8ebpDJ/9k30C7Iju9pVrwLm1QgS4S2fqJRcR+U4WbjvP7CgStCVDb2xpbiBQZXJj aXZhbCA8Y3BlcmNpdmFAdGFyc25hcC5jb20+iGEEExECACEFAklrALYCGwMHCwkIBwMCAQQV AggDBBYCAwECHgECF4AACgkQOM7KaQxqam6/igCgn+z2k3V5ggNppmWrZstt1U2lugsAoL7L wS9V9yLtil3oWmHtwpUqYruEuQINBElrAAcQCAD3ZLMIsP4CIDoJORg+YY0lqLVBgcnF7pFb 4Uy2+KvdWofN+DKH61rZLjgXXkNE9M4EQC1B4lGttBP8IY2gs41y3AUogGdyFbidq99rCBz7 LTsgARHwFxZoaHmXyiZLEU1QZuMqwPZV1mCviRhN5E3rRqYNXVcrnXAAuhBpvNyj/ntHvcDN 2/m+ochiuBYueU4kX3lHya7sOj+mTsndcWmQ9soOUyr8O0r/BG088bMn4qqtUw4dl5/pglXk jbl7uOOPinKf0WVd2r6M0wLPJCD4NPHrCWRLLLAjwfjrtoSRvXxDbXhCdgGBa72+K8eYLzVs hgq7tJOoBWzjVK6XRxR7AAMGB/9Mo3iJ2DxqDecd02KCB5BsFDICbJGhPltU7FwrtbC7djSb XUrwsEVLHi4st4cbdGNCWCrp0BRezXZKohKnNAPFOTK++ZfgeKxrV2sJod+Q9RILF86tQ4XF 7A7Yme5hy92t/WgiU4vc/fWbgP8gV/19f8nunaT2E9NSa70mZFjZNu4iuwThoUUO5CV3Wo0Y UISsnRK8XD1+LR3A2qVyLiFRwh/miC1hgLFCTGCQ3GLxZeZzIpYSlGdQJ0L5lixW5ZQD9r1I 8i/8zhE6qRFAM0upUMI3Gt1Oq2w03DiXrZU0Fu/R8Rm8rlnkQKA+95mRTUq1xL5P5NZIi4gJ Z569OPMFiEkEGBECAAkFAklrAAcCGwwACgkQOM7KaQxqam41igCfbaldnFTu5uAdrnrghESv EI3CAo8AoLkNMks1pThl2BJNRm4CtTK9xZeH Message-ID: <01000171d6ab14d7-71688989-ef0c-4943-b952-6649f30b15f2-000000@email.amazonses.com> Date: Sat, 2 May 2020 18:34:28 +0000 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:68.0) Gecko/20100101 Thunderbird/68.4.2 MIME-Version: 1.0 In-Reply-To: <202004302108.03UL8xks087664@repo.freebsd.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-SES-Outgoing: 2020.05.02-54.240.8.52 Feedback-ID: 1.us-east-1.Lv9FVjaNvvR5llaqfLoOVbo2VxOELl7cjN0AOyXnPlk=:AmazonSES X-Rspamd-Queue-Id: 49DyT12sRXz4VMD X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; dkim=pass header.d=tarsnap.com header.s=ae7m2yrxjw65l2cqdpjxuucyrvy564tn header.b=e1ZozKuA; dkim=pass header.d=amazonses.com header.s=224i4yxa5dv7c2xz3womw6peuasteono header.b=AY3MU8Xi; dmarc=none; spf=pass (mx1.freebsd.org: domain of 01000171d6ab14d7-71688989-ef0c-4943-b952-6649f30b15f2-000000@amazonses.com designates 54.240.8.52 as permitted sender) smtp.mailfrom=01000171d6ab14d7-71688989-ef0c-4943-b952-6649f30b15f2-000000@amazonses.com X-Spamd-Result: default: False [-1.55 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_DKIM_ALLOW(-0.20)[tarsnap.com:s=ae7m2yrxjw65l2cqdpjxuucyrvy564tn,amazonses.com:s=224i4yxa5dv7c2xz3womw6peuasteono]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; R_SPF_ALLOW(-0.20)[+ip4:54.240.0.0/18]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[tarsnap.com]; TO_DN_SOME(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[tarsnap.com:+,amazonses.com:+]; RCVD_IN_DNSWL_NONE(0.00)[52.8.240.54.list.dnswl.org : 127.0.15.0]; IP_SCORE(-1.85)[ip: (-1.60), ipnet: 54.240.8.0/21(-4.60), asn: 14618(-3.01), country: US(-0.05)]; FORGED_SENDER(0.30)[cperciva@tarsnap.com,01000171d6ab14d7-71688989-ef0c-4943-b952-6649f30b15f2-000000@amazonses.com]; RCVD_COUNT_ZERO(0.00)[0]; MIME_TRACE(0.00)[0:+]; RWL_MAILSPIKE_VERYGOOD(0.00)[52.8.240.54.rep.mailspike.net : 127.0.0.19]; ASN(0.00)[asn:14618, ipnet:54.240.8.0/21, country:US]; FORGED_MUA_THUNDERBIRD_MSGID_UNKNOWN(2.50)[]; FROM_NEQ_ENVFROM(0.00)[cperciva@tarsnap.com, 01000171d6ab14d7-71688989-ef0c-4943-b952-6649f30b15f2-000000@amazonses.com] 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, 02 May 2020 18:34:30 -0000 On 2020-04-30 14:08, Warner Losh wrote: > Author: imp > Date: Thu Apr 30 21:08:59 2020 > New Revision: 360508 > URL: https://svnweb.freebsd.org/changeset/base/360508 > > - Unlock the periph before returning. We don't need to relock it to > release the ccb. You sure about that? I'm getting a panic here: panic: mutex CAM device lock not owned at /usr/src/sys/cam/cam_xpt.c:3983 KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe00d8243430 vpanic() at vpanic+0x182/frame 0xfffffe00d8243480 panic() at panic+0x43/frame 0xfffffe00d82434e0 __mtx_assert() at __mtx_assert+0xb0/frame 0xfffffe00d82434f0 xpt_release_ccb() at xpt_release_ccb+0x30/frame 0xfffffe00d8243520 ndaioctl() at ndaioctl+0x241/frame 0xfffffe00d8243730 -- Colin Percival Security Officer Emeritus, FreeBSD | The power to serve Founder, Tarsnap | www.tarsnap.com | Online backups for the truly paranoid From owner-svn-src-all@freebsd.org Sat May 2 18:54: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 308752D7662; Sat, 2 May 2020 18:54:26 +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 49Dyw20CJ6z4WRM; Sat, 2 May 2020 18:54:26 +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 0244726398; Sat, 2 May 2020 18:54:26 +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 042IsP3Q000790; Sat, 2 May 2020 18:54:25 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 042IsPBG000789; Sat, 2 May 2020 18:54:25 GMT (envelope-from cem@FreeBSD.org) Message-Id: <202005021854.042IsPBG000789@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Sat, 2 May 2020 18:54:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360566 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 360566 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, 02 May 2020 18:54:26 -0000 Author: cem Date: Sat May 2 18:54:25 2020 New Revision: 360566 URL: https://svnweb.freebsd.org/changeset/base/360566 Log: kern_exec.c: Produce valid code ifndef SYS_PROTO_H Reported by: Coccinelle Modified: head/sys/kern/kern_exec.c Modified: head/sys/kern/kern_exec.c ============================================================================== --- head/sys/kern/kern_exec.c Sat May 2 17:18:32 2020 (r360565) +++ head/sys/kern/kern_exec.c Sat May 2 18:54:25 2020 (r360566) @@ -233,7 +233,7 @@ struct fexecve_args { int fd; char **argv; char **envv; -} +}; #endif int sys_fexecve(struct thread *td, struct fexecve_args *uap) From owner-svn-src-all@freebsd.org Sat May 2 19:07: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 71F302D7941 for ; Sat, 2 May 2020 19:07:46 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qt1-x834.google.com (mail-qt1-x834.google.com [IPv6:2607:f8b0:4864:20::834]) (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 49DzCP3YRMz4Wvr for ; Sat, 2 May 2020 19:07:45 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qt1-x834.google.com with SMTP id w29so10668587qtv.3 for ; Sat, 02 May 2020 12:07:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=/yj7LphtV93g5dFmkjXes+BDHUjNvqvCs30OUsCzyN0=; b=z7ieyvZlPUOdJVHARZ/T3Fl3kIlQvCNst2EuAP0K96gMhRKR9dycWeyRcZKloq/fJA 5InmTlBu4/FQ01ax8IjKQPc3ufcH4jTJvr4avLoEh8k5qW/euK5eemfXkjAT5aM98WkW iGp65xPPawVZ3JJeIVGHKPp1/BAsC746+IaEntbCvBfK+KEqoDtAcMjVAvMp0XHoFCIA yJOBY9tO1GxtiKv1GacA9XEh92GBEVGsR721qq55hsB3rwEyYQeBNU4LN/lWMi2Y12C/ O460kRnEV9zJOByWISeE8jH9qqWFZgJhDXhv1k7s3kUSj++FUBs47AlukNQ3iVvD39Mo m2Kg== 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=/yj7LphtV93g5dFmkjXes+BDHUjNvqvCs30OUsCzyN0=; b=NcT3Q51LLMaB64rLpE55ShrzzcdFsNf2A/Y07e/7nfI1MRrrQSzucon7PjSiVc3PVB I85P/AAHuwseb0bpOiWh3/obqJTbW9d/n+DpoDASOAEDqnvtZOQsto31Ac6LsVX5FHV6 vj5vU57oKWbahg4c1Lgj0EEnPUfkxi1JoBDIcUfAVcblN5+FPkdo9BeA+gqvvcTNG1aN 624jfvbn/Lp9TRjI5jlzD2gDngNgjW0MF9oxEuukKPrIqrYfGlLfVIkJzoe4ghY6wUro wSfY9qWvEASvA+X9LZNwxVkdLwTtY0YwFe34MsRk3s8rGTzZybkTi5x9WKyruSADVXA6 ywLQ== X-Gm-Message-State: AGi0PuYQRD9iSPQmk+7iO5+Ecif6rMFckR8r0f03s0uiR4V1/CiLaLl1 i7YCFz0B1IKjqWfxZGtPEwOAJkJzjQ/ir+DBFmF+mQ== X-Google-Smtp-Source: APiQypLnwbDN97zEpRznMGRkzPJDAThyzepcv7S9hJlCVrE8cdaiHFywSLEQqXRq0LGsCbDiqlnQKDAQ1cwJwNF5xDU= X-Received: by 2002:ac8:3844:: with SMTP id r4mr9462807qtb.32.1588446464207; Sat, 02 May 2020 12:07:44 -0700 (PDT) MIME-Version: 1.0 References: <202004302108.03UL8xks087664@repo.freebsd.org> <01000171d6ab14d7-e7c44f4c-9bc1-4bb4-93e0-09cc66b777e2-000000@email.amazonses.com> In-Reply-To: <01000171d6ab14d7-e7c44f4c-9bc1-4bb4-93e0-09cc66b777e2-000000@email.amazonses.com> From: Warner Losh Date: Sat, 2 May 2020 13:07:32 -0600 Message-ID: Subject: Re: svn commit: r360508 - head/sys/cam/nvme To: Colin Percival Cc: Warner Losh , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org X-Rspamd-Queue-Id: 49DzCP3YRMz4Wvr X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bsdimp-com.20150623.gappssmtp.com header.s=20150623 header.b=z7ieyvZl; dmarc=none; spf=none (mx1.freebsd.org: domain of wlosh@bsdimp.com has no SPF policy when checking 2607:f8b0:4864:20::834) smtp.mailfrom=wlosh@bsdimp.com X-Spamd-Result: default: False [-4.02 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_DKIM_ALLOW(-0.20)[bsdimp-com.20150623.gappssmtp.com:s=20150623]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; 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)[bsdimp.com]; RCPT_COUNT_FIVE(0.00)[5]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[bsdimp-com.20150623.gappssmtp.com:+]; RCVD_IN_DNSWL_NONE(0.00)[4.3.8.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]; R_SPF_NA(0.00)[]; FORGED_SENDER(0.30)[imp@bsdimp.com,wlosh@bsdimp.com]; MIME_TRACE(0.00)[0:+,1:+,2:~]; IP_SCORE(-2.02)[ip: (-9.28), ipnet: 2607:f8b0::/32(-0.33), asn: 15169(-0.43), country: US(-0.05)]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[imp@bsdimp.com,wlosh@bsdimp.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: Sat, 02 May 2020 19:07:46 -0000 On Sat, May 2, 2020, 12:34 PM Colin Percival wrote: > On 2020-04-30 14:08, Warner Losh wrote: > > Author: imp > > Date: Thu Apr 30 21:08:59 2020 > > New Revision: 360508 > > URL: https://svnweb.freebsd.org/changeset/base/360508 > > > > - Unlock the periph before returning. We don't need to relock it to > > release the ccb. > > You sure about that? I'm getting a panic here: > > panic: mutex CAM device lock not owned at /usr/src/sys/cam/cam_xpt.c:3983 > KDB: stack backtrace: > db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame > 0xfffffe00d8243430 > vpanic() at vpanic+0x182/frame 0xfffffe00d8243480 > panic() at panic+0x43/frame 0xfffffe00d82434e0 > __mtx_assert() at __mtx_assert+0xb0/frame 0xfffffe00d82434f0 > xpt_release_ccb() at xpt_release_ccb+0x30/frame 0xfffffe00d8243520 > ndaioctl() at ndaioctl+0x241/frame 0xfffffe00d8243730 > Hmmm... I'm not.. I need to figure out why... I thought I was running with invariants... Warner -- > Colin Percival > Security Officer Emeritus, FreeBSD | The power to serve > Founder, Tarsnap | www.tarsnap.com | Online backups for the truly paranoid > From owner-svn-src-all@freebsd.org Sat May 2 20:15: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 A60742C15AD; Sat, 2 May 2020 20:15:00 +0000 (UTC) (envelope-from asomers@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 49F0j03xTkz4bgr; Sat, 2 May 2020 20:15:00 +0000 (UTC) (envelope-from asomers@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 820CE272A3; Sat, 2 May 2020 20:15:00 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 042KF0Cn049874; Sat, 2 May 2020 20:15:00 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 042KF08Z049872; Sat, 2 May 2020 20:15:00 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <202005022015.042KF08Z049872@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Sat, 2 May 2020 20:15:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360567 - in head/tests/sys: fs/fusefs mac/bsdextended X-SVN-Group: head X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: in head/tests/sys: fs/fusefs mac/bsdextended X-SVN-Commit-Revision: 360567 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, 02 May 2020 20:15:00 -0000 Author: asomers Date: Sat May 2 20:14:59 2020 New Revision: 360567 URL: https://svnweb.freebsd.org/changeset/base/360567 Log: Resolve conflict between the fusefs(5) and mac_bsdextended(4) tests mac_bsdextended(4), when enabled, causes ordinary operations to send many more VOP_GETATTRs to file system. The fusefs tests expectations aren't written with those in mind. Optionally expecting them would greatly obfuscate the fusefs tests. Worse, certain fusefs functionality (like attribute caching) would be impossible to test if the tests couldn't expect an exact number of GETATTR operations. This commit resolves that conflict by making two changes: 1. The fusefs tests will now check for mac_bsdextended, and skip if it's enabled. 2. The mac_bsdextended tests will now check whether the module is enabled, not merely loaded. If it's loaded but disabled, the tests will automatically enable it for the duration of the tests. With these changes, a CI system can achieve best coverage by loading both fusefs and mac_bsdextended at boot, and setting security.mac.bsdextended.enabled=0 PR: 244229 Reported by: lwhsu Reviewed by: cem MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D24577 Modified: head/tests/sys/fs/fusefs/utils.cc head/tests/sys/mac/bsdextended/matches_test.sh Modified: head/tests/sys/fs/fusefs/utils.cc ============================================================================== --- head/tests/sys/fs/fusefs/utils.cc Sat May 2 18:54:25 2020 (r360566) +++ head/tests/sys/fs/fusefs/utils.cc Sat May 2 20:14:59 2020 (r360567) @@ -70,6 +70,10 @@ const uint32_t default_max_write = MIN(libfuse_max_wri void check_environment() { const char *devnode = "/dev/fuse"; + const char *bsdextended_node = "security.mac.bsdextended.enabled"; + int bsdextended_val = 0; + size_t bsdextended_size = sizeof(bsdextended_val); + int bsdextended_found; const char *usermount_node = "vfs.usermount"; int usermount_val = 0; size_t usermount_size = sizeof(usermount_val); @@ -83,9 +87,19 @@ void check_environment() GTEST_SKIP() << strerror(errno); } } + // mac_bsdextended(4), when enabled, generates many more GETATTR + // operations. The fusefs tests' expectations don't account for those, + // and adding extra code to handle them obfuscates the real purpose of + // the tests. Better just to skip the fusefs tests if mac_bsdextended + // is enabled. + bsdextended_found = sysctlbyname(bsdextended_node, &bsdextended_val, + &bsdextended_size, NULL, 0); + if (bsdextended_found == 0 && bsdextended_val != 0) + GTEST_SKIP() << + "The fusefs tests are incompatible with mac_bsdextended."; ASSERT_EQ(sysctlbyname(usermount_node, &usermount_val, &usermount_size, NULL, 0), - 0);; + 0); if (geteuid() != 0 && !usermount_val) GTEST_SKIP() << "current user is not allowed to mount"; } Modified: head/tests/sys/mac/bsdextended/matches_test.sh ============================================================================== --- head/tests/sys/mac/bsdextended/matches_test.sh Sat May 2 18:54:25 2020 (r360566) +++ head/tests/sys/mac/bsdextended/matches_test.sh Sat May 2 20:14:59 2020 (r360567) @@ -16,6 +16,12 @@ check_ko() if ! sysctl -N security.mac.bsdextended >/dev/null 2>&1; then atf_skip "mac_bsdextended(4) support isn't available" fi + if [ $(sysctl -n security.mac.bsdextended.enabled) = "0" ]; then + # The kernel module is loaded but disabled. Enable it for the + # duration of the test. + touch enabled_bsdextended + sysctl security.mac.bsdextended.enabled=1 + fi } setup() @@ -68,6 +74,9 @@ cleanup() umount -f mnt if [ -f md_device ]; then mdconfig -d -u $( cat md_device ) + fi + if [ -f enabled_bsdextended ]; then + sysctl security.mac.bsdextended.enabled=0 fi } From owner-svn-src-all@freebsd.org Sat May 2 20:48: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 56A2E2C3A3B; Sat, 2 May 2020 20:48:00 +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 49F1R41gZVz4g43; Sat, 2 May 2020 20:48:00 +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 34B1D2784D; Sat, 2 May 2020 20:48:00 +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 042Km0Qp068823; Sat, 2 May 2020 20:48:00 GMT (envelope-from dab@FreeBSD.org) Received: (from dab@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 042Klwcr068812; Sat, 2 May 2020 20:47:58 GMT (envelope-from dab@FreeBSD.org) Message-Id: <202005022047.042Klwcr068812@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dab set sender to dab@FreeBSD.org using -f From: David Bright Date: Sat, 2 May 2020 20:47:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360568 - head/sys/dev/nvme X-SVN-Group: head X-SVN-Commit-Author: dab X-SVN-Commit-Paths: head/sys/dev/nvme X-SVN-Commit-Revision: 360568 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, 02 May 2020 20:48:00 -0000 Author: dab Date: Sat May 2 20:47:58 2020 New Revision: 360568 URL: https://svnweb.freebsd.org/changeset/base/360568 Log: Fix various Coverity-detected errors in nvme driver This fixes several Coverity-detected errors in the nvme driver. CIDs addressed: 1008344, 1009377, 1009380, 1193740, 1305470, 1403975, 1403980 Reviewed by: imp@, vangyzen@ MFC after: 5 days Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D24532 Modified: head/sys/dev/nvme/nvme.c head/sys/dev/nvme/nvme_ctrlr.c head/sys/dev/nvme/nvme_ns.c head/sys/dev/nvme/nvme_pci.c head/sys/dev/nvme/nvme_qpair.c head/sys/dev/nvme/nvme_sysctl.c head/sys/dev/nvme/nvme_test.c Modified: head/sys/dev/nvme/nvme.c ============================================================================== --- head/sys/dev/nvme/nvme.c Sat May 2 20:14:59 2020 (r360567) +++ head/sys/dev/nvme/nvme.c Sat May 2 20:47:58 2020 (r360568) @@ -138,7 +138,8 @@ nvme_attach(device_t dev) ctrlr->config_hook.ich_func = nvme_ctrlr_start_config_hook; ctrlr->config_hook.ich_arg = ctrlr; - config_intrhook_establish(&ctrlr->config_hook); + if (config_intrhook_establish(&ctrlr->config_hook) != 0) + return (ENOMEM); return (0); } Modified: head/sys/dev/nvme/nvme_ctrlr.c ============================================================================== --- head/sys/dev/nvme/nvme_ctrlr.c Sat May 2 20:14:59 2020 (r360567) +++ head/sys/dev/nvme/nvme_ctrlr.c Sat May 2 20:47:58 2020 (r360568) @@ -1335,6 +1335,7 @@ nvme_ctrlr_ioctl(struct cdev *cdev, u_long cmd, caddr_ struct nvme_get_nsid *gnsid = (struct nvme_get_nsid *)arg; strncpy(gnsid->cdev, device_get_nameunit(ctrlr->dev), sizeof(gnsid->cdev)); + gnsid->cdev[sizeof(gnsid->cdev) - 1] = '\0'; gnsid->nsid = 0; break; } @@ -1619,12 +1620,12 @@ nvme_ctrlr_resume(struct nvme_controller *ctrlr) goto fail; /* - * Now that we're reset the hardware, we can restart the controller. Any + * Now that we've reset the hardware, we can restart the controller. Any * I/O that was pending is requeued. Any admin commands are aborted with * an error. Once we've restarted, take the controller out of reset. */ nvme_ctrlr_start(ctrlr, true); - atomic_cmpset_32(&ctrlr->is_resetting, 1, 0); + (void)atomic_cmpset_32(&ctrlr->is_resetting, 1, 0); return (0); fail: @@ -1635,6 +1636,6 @@ fail: */ nvme_printf(ctrlr, "Failed to reset on resume, failing.\n"); nvme_ctrlr_fail(ctrlr); - atomic_cmpset_32(&ctrlr->is_resetting, 1, 0); + (void)atomic_cmpset_32(&ctrlr->is_resetting, 1, 0); return (0); } Modified: head/sys/dev/nvme/nvme_ns.c ============================================================================== --- head/sys/dev/nvme/nvme_ns.c Sat May 2 20:14:59 2020 (r360567) +++ head/sys/dev/nvme/nvme_ns.c Sat May 2 20:47:58 2020 (r360568) @@ -87,6 +87,7 @@ nvme_ns_ioctl(struct cdev *cdev, u_long cmd, caddr_t a struct nvme_get_nsid *gnsid = (struct nvme_get_nsid *)arg; strncpy(gnsid->cdev, device_get_nameunit(ctrlr->dev), sizeof(gnsid->cdev)); + gnsid->cdev[sizeof(gnsid->cdev) - 1] = '\0'; gnsid->nsid = ns->id; break; } Modified: head/sys/dev/nvme/nvme_pci.c ============================================================================== --- head/sys/dev/nvme/nvme_pci.c Sat May 2 20:14:59 2020 (r360567) +++ head/sys/dev/nvme/nvme_pci.c Sat May 2 20:47:58 2020 (r360568) @@ -243,11 +243,9 @@ nvme_ctrlr_configure_intx(struct nvme_controller *ctrl return (ENOMEM); } - bus_setup_intr(ctrlr->dev, ctrlr->res, + if (bus_setup_intr(ctrlr->dev, ctrlr->res, INTR_TYPE_MISC | INTR_MPSAFE, NULL, nvme_ctrlr_intx_handler, - ctrlr, &ctrlr->tag); - - if (ctrlr->tag == NULL) { + ctrlr, &ctrlr->tag) != 0) { nvme_printf(ctrlr, "unable to setup intx handler\n"); return (ENOMEM); } Modified: head/sys/dev/nvme/nvme_qpair.c ============================================================================== --- head/sys/dev/nvme/nvme_qpair.c Sat May 2 20:14:59 2020 (r360567) +++ head/sys/dev/nvme/nvme_qpair.c Sat May 2 20:47:58 2020 (r360568) @@ -671,9 +671,12 @@ nvme_qpair_construct(struct nvme_qpair *qpair, qpair->res = bus_alloc_resource_any(ctrlr->dev, SYS_RES_IRQ, &qpair->rid, RF_ACTIVE); - bus_setup_intr(ctrlr->dev, qpair->res, + if (bus_setup_intr(ctrlr->dev, qpair->res, INTR_TYPE_MISC | INTR_MPSAFE, NULL, - nvme_qpair_msix_handler, qpair, &qpair->tag); + nvme_qpair_msix_handler, qpair, &qpair->tag) != 0) { + nvme_printf(ctrlr, "unable to setup intx handler\n"); + goto out; + } if (qpair->id == 0) { bus_describe_intr(ctrlr->dev, qpair->res, qpair->tag, "admin"); Modified: head/sys/dev/nvme/nvme_sysctl.c ============================================================================== --- head/sys/dev/nvme/nvme_sysctl.c Sat May 2 20:14:59 2020 (r360567) +++ head/sys/dev/nvme/nvme_sysctl.c Sat May 2 20:47:58 2020 (r360568) @@ -146,16 +146,17 @@ static int nvme_sysctl_timeout_period(SYSCTL_HANDLER_ARGS) { struct nvme_controller *ctrlr = arg1; - uint32_t oldval = ctrlr->timeout_period; - int error = sysctl_handle_int(oidp, &ctrlr->timeout_period, 0, req); + uint32_t newval = ctrlr->timeout_period; + int error = sysctl_handle_int(oidp, &newval, 0, req); - if (error) + if (error || (req->newptr == NULL)) return (error); - if (ctrlr->timeout_period > NVME_MAX_TIMEOUT_PERIOD || - ctrlr->timeout_period < NVME_MIN_TIMEOUT_PERIOD) { - ctrlr->timeout_period = oldval; + if (newval > NVME_MAX_TIMEOUT_PERIOD || + newval < NVME_MIN_TIMEOUT_PERIOD) { return (EINVAL); + } else { + ctrlr->timeout_period = newval; } return (0); Modified: head/sys/dev/nvme/nvme_test.c ============================================================================== --- head/sys/dev/nvme/nvme_test.c Sat May 2 20:14:59 2020 (r360567) +++ head/sys/dev/nvme/nvme_test.c Sat May 2 20:47:58 2020 (r360568) @@ -100,7 +100,7 @@ nvme_ns_bio_test(void *arg) idx = atomic_fetchadd_int(&io_test->td_idx, 1); dev = io_test->ns->cdev; - offset = idx * 2048 * nvme_ns_get_sector_size(io_test->ns); + offset = idx * 2048ULL * nvme_ns_get_sector_size(io_test->ns); while (1) { @@ -120,6 +120,8 @@ nvme_ns_bio_test(void *arg) } else csw = dev->si_devsw; + if (csw == NULL) + panic("Unable to retrieve device switch"); mtx = mtx_pool_find(mtxpool_sleep, bio); mtx_lock(mtx); (*csw->d_strategy)(bio); From owner-svn-src-all@freebsd.org Sat May 2 22:39: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 C86AC2C6584; Sat, 2 May 2020 22:39:29 +0000 (UTC) (envelope-from glebius@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 49F3vj5JDRz3HGD; Sat, 2 May 2020 22:39:29 +0000 (UTC) (envelope-from glebius@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 96CF1D96; Sat, 2 May 2020 22:39:29 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 042MdTXk036066; Sat, 2 May 2020 22:39:29 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 042MdR7Z036054; Sat, 2 May 2020 22:39:27 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <202005022239.042MdR7Z036054@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Sat, 2 May 2020 22:39:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360569 - in head/sys: dev/cxgbe dev/cxgbe/crypto dev/cxgbe/tom kern sys X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: in head/sys: dev/cxgbe dev/cxgbe/crypto dev/cxgbe/tom kern sys X-SVN-Commit-Revision: 360569 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, 02 May 2020 22:39:29 -0000 Author: glebius Date: Sat May 2 22:39:26 2020 New Revision: 360569 URL: https://svnweb.freebsd.org/changeset/base/360569 Log: Continuation of multi page mbuf redesign from r359919. The following series of patches addresses three things: Now that array of pages is embedded into mbuf, we no longer need separate structure to pass around, so struct mbuf_ext_pgs is an artifact of the first implementation. And struct mbuf_ext_pgs_data is a crutch to accomodate the main idea r359919 with minimal churn. Also, M_EXT of type EXT_PGS are just a synonym of M_NOMAP. The namespace for the newfeature is somewhat inconsistent and sometimes has a lengthy prefixes. In these patches we will gradually bring the namespace to "m_epg" prefix for all mbuf fields and most functions. Step 1 of 4: o Anonymize mbuf_ext_pgs_data, embed in m_ext o Embed mbuf_ext_pgs o Start documenting all this entanglement Reviewed by: gallatin Differential Revision: https://reviews.freebsd.org/D24598 Modified: head/sys/dev/cxgbe/crypto/t4_kern_tls.c head/sys/dev/cxgbe/t4_sge.c head/sys/dev/cxgbe/tom/t4_cpl_io.c head/sys/dev/cxgbe/tom/t4_tls.c head/sys/kern/kern_mbuf.c head/sys/kern/kern_sendfile.c head/sys/kern/subr_bus_dma.c head/sys/kern/subr_sglist.c head/sys/kern/uipc_ktls.c head/sys/kern/uipc_mbuf.c head/sys/sys/mbuf.h head/sys/sys/sglist.h Modified: head/sys/dev/cxgbe/crypto/t4_kern_tls.c ============================================================================== --- head/sys/dev/cxgbe/crypto/t4_kern_tls.c Sat May 2 20:47:58 2020 (r360568) +++ head/sys/dev/cxgbe/crypto/t4_kern_tls.c Sat May 2 22:39:26 2020 (r360569) @@ -906,7 +906,7 @@ ktls_tcp_payload_length(struct tlspcb *tlsp, struct mb MBUF_EXT_PGS_ASSERT(m_tls); ext_pgs = &m_tls->m_ext_pgs; - hdr = (void *)ext_pgs->m_epg_hdr; + hdr = (void *)m_tls->m_epg_hdr; plen = ntohs(hdr->tls_length); /* @@ -962,7 +962,7 @@ ktls_payload_offset(struct tlspcb *tlsp, struct mbuf * MBUF_EXT_PGS_ASSERT(m_tls); ext_pgs = &m_tls->m_ext_pgs; - hdr = (void *)ext_pgs->m_epg_hdr; + hdr = (void *)m_tls->m_epg_hdr; plen = ntohs(hdr->tls_length); #ifdef INVARIANTS mlen = mtod(m_tls, vm_offset_t) + m_tls->m_len; @@ -1040,7 +1040,7 @@ ktls_wr_len(struct tlspcb *tlsp, struct mbuf *m, struc return (wr_len); } - hdr = (void *)ext_pgs->m_epg_hdr; + hdr = (void *)m_tls->m_epg_hdr; plen = TLS_HEADER_LENGTH + ntohs(hdr->tls_length) - ext_pgs->trail_len; if (tlen < plen) { plen = tlen; @@ -1064,7 +1064,7 @@ ktls_wr_len(struct tlspcb *tlsp, struct mbuf *m, struc wr_len += roundup2(imm_len, 16); /* TLS record payload via DSGL. */ - *nsegsp = sglist_count_ext_pgs(ext_pgs, ext_pgs->hdr_len + offset, + *nsegsp = sglist_count_ext_pgs(m_tls, ext_pgs->hdr_len + offset, plen - (ext_pgs->hdr_len + offset)); wr_len += ktls_sgl_size(*nsegsp); @@ -1543,7 +1543,7 @@ ktls_write_tunnel_packet(struct sge_txq *txq, void *ds (m->m_pkthdr.l2hlen + m->m_pkthdr.l3hlen + sizeof(*tcp))); /* Copy the subset of the TLS header requested. */ - copy_to_txd(&txq->eq, (char *)ext_pgs->m_epg_hdr + + copy_to_txd(&txq->eq, (char *)m_tls->m_epg_hdr + mtod(m_tls, vm_offset_t), &out, m_tls->m_len); txq->imm_wrs++; @@ -1604,7 +1604,7 @@ ktls_write_tls_wr(struct tlspcb *tlsp, struct sge_txq /* Locate the TLS header. */ MBUF_EXT_PGS_ASSERT(m_tls); ext_pgs = &m_tls->m_ext_pgs; - hdr = (void *)ext_pgs->m_epg_hdr; + hdr = (void *)m_tls->m_epg_hdr; plen = TLS_HEADER_LENGTH + ntohs(hdr->tls_length) - ext_pgs->trail_len; /* Determine how much of the TLS record to send. */ @@ -1799,7 +1799,7 @@ ktls_write_tls_wr(struct tlspcb *tlsp, struct sge_txq /* Recalculate 'nsegs' if cached value is not available. */ if (nsegs == 0) - nsegs = sglist_count_ext_pgs(ext_pgs, ext_pgs->hdr_len + + nsegs = sglist_count_ext_pgs(m_tls, ext_pgs->hdr_len + offset, plen - (ext_pgs->hdr_len + offset)); /* Calculate the size of the TLS work request. */ @@ -2031,7 +2031,7 @@ ktls_write_tls_wr(struct tlspcb *tlsp, struct sge_txq /* Populate the TLS header */ out = (void *)(tx_data + 1); if (offset == 0) { - memcpy(out, ext_pgs->m_epg_hdr, ext_pgs->hdr_len); + memcpy(out, m_tls->m_epg_hdr, ext_pgs->hdr_len); out += ext_pgs->hdr_len; } @@ -2067,7 +2067,7 @@ ktls_write_tls_wr(struct tlspcb *tlsp, struct sge_txq /* SGL for record payload */ sglist_reset(txq->gl); - if (sglist_append_ext_pgs(txq->gl, ext_pgs, ext_pgs->hdr_len + offset, + if (sglist_append_ext_pgs(txq->gl, m_tls, ext_pgs->hdr_len + offset, plen - (ext_pgs->hdr_len + offset)) != 0) { #ifdef INVARIANTS panic("%s: failed to append sglist", __func__); Modified: head/sys/dev/cxgbe/t4_sge.c ============================================================================== --- head/sys/dev/cxgbe/t4_sge.c Sat May 2 20:47:58 2020 (r360568) +++ head/sys/dev/cxgbe/t4_sge.c Sat May 2 22:39:26 2020 (r360569) @@ -2435,7 +2435,7 @@ count_mbuf_ext_pgs(struct mbuf *m, int skip, vm_paddr_ off = 0; len -= seglen; paddr = pmap_kextract( - (vm_offset_t)&ext_pgs->m_epg_hdr[segoff]); + (vm_offset_t)&m->m_epg_hdr[segoff]); if (*nextaddr != paddr) nsegs++; *nextaddr = paddr + seglen; @@ -2454,7 +2454,7 @@ count_mbuf_ext_pgs(struct mbuf *m, int skip, vm_paddr_ off = 0; seglen = min(seglen, len); len -= seglen; - paddr = ext_pgs->m_epg_pa[i] + segoff; + paddr = m->m_epg_pa[i] + segoff; if (*nextaddr != paddr) nsegs++; *nextaddr = paddr + seglen; @@ -2463,7 +2463,7 @@ count_mbuf_ext_pgs(struct mbuf *m, int skip, vm_paddr_ if (len != 0) { seglen = min(len, ext_pgs->trail_len - off); len -= seglen; - paddr = pmap_kextract((vm_offset_t)&ext_pgs->m_epg_trail[off]); + paddr = pmap_kextract((vm_offset_t)&m->m_epg_trail[off]); if (*nextaddr != paddr) nsegs++; *nextaddr = paddr + seglen; Modified: head/sys/dev/cxgbe/tom/t4_cpl_io.c ============================================================================== --- head/sys/dev/cxgbe/tom/t4_cpl_io.c Sat May 2 20:47:58 2020 (r360568) +++ head/sys/dev/cxgbe/tom/t4_cpl_io.c Sat May 2 22:39:26 2020 (r360569) @@ -1935,7 +1935,7 @@ aiotx_free_pgs(struct mbuf *m) #endif for (int i = 0; i < ext_pgs->npgs; i++) { - pg = PHYS_TO_VM_PAGE(ext_pgs->m_epg_pa[i]); + pg = PHYS_TO_VM_PAGE(m->m_epg_pa[i]); vm_page_unwire(pg, PQ_ACTIVE); } @@ -2003,7 +2003,7 @@ alloc_aiotx_mbuf(struct kaiocb *job, int len) (npages - 2) * PAGE_SIZE; } for (i = 0; i < npages; i++) - ext_pgs->m_epg_pa[i] = VM_PAGE_TO_PHYS(pgs[i]); + m->m_epg_pa[i] = VM_PAGE_TO_PHYS(pgs[i]); m->m_len = mlen; m->m_ext.ext_size = npages * PAGE_SIZE; Modified: head/sys/dev/cxgbe/tom/t4_tls.c ============================================================================== --- head/sys/dev/cxgbe/tom/t4_tls.c Sat May 2 20:47:58 2020 (r360568) +++ head/sys/dev/cxgbe/tom/t4_tls.c Sat May 2 22:39:26 2020 (r360569) @@ -1623,26 +1623,24 @@ t4_push_tls_records(struct adapter *sc, struct toepcb #ifdef KERN_TLS static int -count_ext_pgs_segs(struct mbuf_ext_pgs *ext_pgs, - struct mbuf_ext_pgs_data *ext_pgs_data) +count_ext_pgs_segs(struct mbuf *m) { vm_paddr_t nextpa; u_int i, nsegs; - MPASS(ext_pgs->npgs > 0); + MPASS(m->m_ext_pgs.npgs > 0); nsegs = 1; - nextpa = ext_pgs_data->pa[0] + PAGE_SIZE; - for (i = 1; i < ext_pgs->npgs; i++) { - if (nextpa != ext_pgs_data->pa[i]) + nextpa = m->m_epg_pa[0] + PAGE_SIZE; + for (i = 1; i < m->m_ext_pgs.npgs; i++) { + if (nextpa != m->m_epg_pa[i]) nsegs++; - nextpa = ext_pgs_data->pa[i] + PAGE_SIZE; + nextpa = m->m_epg_pa[i] + PAGE_SIZE; } return (nsegs); } static void -write_ktlstx_sgl(void *dst, struct mbuf_ext_pgs *ext_pgs, - struct mbuf_ext_pgs_data *ext_pgs_data, int nsegs) +write_ktlstx_sgl(void *dst, struct mbuf *m, int nsegs) { struct ulptx_sgl *usgl = dst; vm_paddr_t pa; @@ -1655,15 +1653,15 @@ write_ktlstx_sgl(void *dst, struct mbuf_ext_pgs *ext_p V_ULPTX_NSGE(nsegs)); /* Figure out the first S/G length. */ - pa = ext_pgs_data->pa[0] + ext_pgs->first_pg_off; + pa = m->m_epg_pa[0] + m->m_ext_pgs.first_pg_off; usgl->addr0 = htobe64(pa); - len = mbuf_ext_pg_len(ext_pgs, 0, ext_pgs->first_pg_off); + len = mbuf_ext_pg_len(&m->m_ext_pgs, 0, m->m_ext_pgs.first_pg_off); pa += len; - for (i = 1; i < ext_pgs->npgs; i++) { - if (ext_pgs_data->pa[i] != pa) + for (i = 1; i < m->m_ext_pgs.npgs; i++) { + if (m->m_epg_pa[i] != pa) break; - len += mbuf_ext_pg_len(ext_pgs, i, 0); - pa += mbuf_ext_pg_len(ext_pgs, i, 0); + len += mbuf_ext_pg_len(&m->m_ext_pgs, i, 0); + pa += mbuf_ext_pg_len(&m->m_ext_pgs, i, 0); } usgl->len0 = htobe32(len); #ifdef INVARIANTS @@ -1671,21 +1669,21 @@ write_ktlstx_sgl(void *dst, struct mbuf_ext_pgs *ext_p #endif j = -1; - for (; i < ext_pgs->npgs; i++) { - if (j == -1 || ext_pgs_data->pa[i] != pa) { + for (; i < m->m_ext_pgs.npgs; i++) { + if (j == -1 || m->m_epg_pa[i] != pa) { if (j >= 0) usgl->sge[j / 2].len[j & 1] = htobe32(len); j++; #ifdef INVARIANTS nsegs--; #endif - pa = ext_pgs_data->pa[i]; + pa = m->m_epg_pa[i]; usgl->sge[j / 2].addr[j & 1] = htobe64(pa); - len = mbuf_ext_pg_len(ext_pgs, i, 0); + len = mbuf_ext_pg_len(&m->m_ext_pgs, i, 0); pa += len; } else { - len += mbuf_ext_pg_len(ext_pgs, i, 0); - pa += mbuf_ext_pg_len(ext_pgs, i, 0); + len += mbuf_ext_pg_len(&m->m_ext_pgs, i, 0); + pa += mbuf_ext_pg_len(&m->m_ext_pgs, i, 0); } } if (j >= 0) { @@ -1694,8 +1692,7 @@ write_ktlstx_sgl(void *dst, struct mbuf_ext_pgs *ext_p if ((j & 1) == 0) usgl->sge[j / 2].len[1] = htobe32(0); } - KASSERT(nsegs == 0, ("%s: nsegs %d, ext_pgs %p", __func__, nsegs, - ext_pgs)); + KASSERT(nsegs == 0, ("%s: nsegs %d, m %p", __func__, nsegs, m)); } /* @@ -1813,8 +1810,7 @@ t4_push_ktls(struct adapter *sc, struct toepcb *toep, wr_len += AES_BLOCK_LEN; /* Account for SGL in work request length. */ - nsegs = count_ext_pgs_segs(&m->m_ext_pgs, - &m->m_ext.ext_pgs); + nsegs = count_ext_pgs_segs(m); wr_len += sizeof(struct ulptx_sgl) + ((3 * (nsegs - 1)) / 2 + ((nsegs - 1) & 1)) * 8; @@ -1892,8 +1888,7 @@ t4_push_ktls(struct adapter *sc, struct toepcb *toep, memcpy(buf, thdr + 1, toep->tls.iv_len); buf += AES_BLOCK_LEN; - write_ktlstx_sgl(buf, &m->m_ext_pgs, &m->m_ext.ext_pgs, - nsegs); + write_ktlstx_sgl(buf, m, nsegs); KASSERT(toep->tx_credits >= credits, ("%s: not enough credits", __func__)); Modified: head/sys/kern/kern_mbuf.c ============================================================================== --- head/sys/kern/kern_mbuf.c Sat May 2 20:47:58 2020 (r360568) +++ head/sys/kern/kern_mbuf.c Sat May 2 22:39:26 2020 (r360569) @@ -311,9 +311,6 @@ static void mb_reclaim(uma_zone_t, int); /* Ensure that MSIZE is a power of 2. */ CTASSERT((((MSIZE - 1) ^ MSIZE) + 1) >> 1 == MSIZE); -_Static_assert(offsetof(struct mbuf, m_ext) == - offsetof(struct mbuf, m_ext_pgs.m_ext), - "m_ext offset mismatch between mbuf and ext_pgs"); _Static_assert(sizeof(struct mbuf) <= MSIZE, "size of mbuf exceeds MSIZE"); /* @@ -984,7 +981,7 @@ _mb_unmapped_to_ext(struct mbuf *m) goto fail; m_new->m_len = seglen; prev = top = m_new; - memcpy(mtod(m_new, void *), &ext_pgs->m_epg_hdr[segoff], + memcpy(mtod(m_new, void *), &m->m_epg_hdr[segoff], seglen); } } @@ -1002,7 +999,7 @@ _mb_unmapped_to_ext(struct mbuf *m) seglen = min(seglen, len); len -= seglen; - pg = PHYS_TO_VM_PAGE(ext_pgs->m_epg_pa[i]); + pg = PHYS_TO_VM_PAGE(m->m_epg_pa[i]); m_new = m_get(M_NOWAIT, MT_DATA); if (m_new == NULL) goto fail; @@ -1036,7 +1033,7 @@ _mb_unmapped_to_ext(struct mbuf *m) else prev->m_next = m_new; m_new->m_len = len; - memcpy(mtod(m_new, void *), &ext_pgs->m_epg_trail[off], len); + memcpy(mtod(m_new, void *), &m->m_epg_trail[off], len); } if (ref_inc != 0) { @@ -1154,8 +1151,9 @@ mb_alloc_ext_pgs(int how, m_ext_free_t ext_free) #ifdef INVARIANT_SUPPORT void -mb_ext_pgs_check(struct mbuf_ext_pgs *ext_pgs) +mb_ext_pgs_check(struct mbuf *m) { + struct mbuf_ext_pgs *ext_pgs = &m->m_ext_pgs; /* * NB: This expects a non-empty buffer (npgs > 0 and @@ -1163,7 +1161,7 @@ mb_ext_pgs_check(struct mbuf_ext_pgs *ext_pgs) */ KASSERT(ext_pgs->npgs > 0, ("ext_pgs with no valid pages: %p", ext_pgs)); - KASSERT(ext_pgs->npgs <= nitems(ext_pgs->m_epg_pa), + KASSERT(ext_pgs->npgs <= nitems(m->m_epg_pa), ("ext_pgs with too many pages: %p", ext_pgs)); KASSERT(ext_pgs->nrdy <= ext_pgs->npgs, ("ext_pgs with too many ready pages: %p", ext_pgs)); @@ -1178,9 +1176,9 @@ mb_ext_pgs_check(struct mbuf_ext_pgs *ext_pgs) PAGE_SIZE, ("ext_pgs with single page too large: %p", ext_pgs)); } - KASSERT(ext_pgs->hdr_len <= sizeof(ext_pgs->m_epg_hdr), + KASSERT(ext_pgs->hdr_len <= sizeof(m->m_epg_hdr), ("ext_pgs with too large header length: %p", ext_pgs)); - KASSERT(ext_pgs->trail_len <= sizeof(ext_pgs->m_epg_trail), + KASSERT(ext_pgs->trail_len <= sizeof(m->m_epg_trail), ("ext_pgs with too large header length: %p", ext_pgs)); } #endif Modified: head/sys/kern/kern_sendfile.c ============================================================================== --- head/sys/kern/kern_sendfile.c Sat May 2 20:47:58 2020 (r360568) +++ head/sys/kern/kern_sendfile.c Sat May 2 22:39:26 2020 (r360569) @@ -203,7 +203,7 @@ sendfile_free_mext_pg(struct mbuf *m) for (i = 0; i < ext_pgs->npgs; i++) { if (cache_last && i == ext_pgs->npgs - 1) flags = 0; - pg = PHYS_TO_VM_PAGE(ext_pgs->m_epg_pa[i]); + pg = PHYS_TO_VM_PAGE(m->m_epg_pa[i]); vm_page_release(pg, flags); } @@ -1046,11 +1046,11 @@ retry_space: ext_pgs->nrdy++; } - ext_pgs->m_epg_pa[ext_pgs_idx] = VM_PAGE_TO_PHYS(pga); + m0->m_epg_pa[ext_pgs_idx] = VM_PAGE_TO_PHYS(pga); ext_pgs->npgs++; xfs = xfsize(i, npages, off, space); ext_pgs->last_pg_len = xfs; - MBUF_EXT_PGS_ASSERT_SANITY(ext_pgs); + MBUF_EXT_PGS_ASSERT_SANITY(m0); mtail->m_len += xfs; mtail->m_ext.ext_size += PAGE_SIZE; continue; Modified: head/sys/kern/subr_bus_dma.c ============================================================================== --- head/sys/kern/subr_bus_dma.c Sat May 2 20:47:58 2020 (r360568) +++ head/sys/kern/subr_bus_dma.c Sat May 2 22:39:26 2020 (r360569) @@ -141,7 +141,7 @@ _bus_dmamap_load_unmapped_mbuf_sg(bus_dma_tag_t dmat, off = 0; len -= seglen; error = _bus_dmamap_load_buffer(dmat, map, - &ext_pgs->m_epg_hdr[segoff], seglen, kernel_pmap, + &m->m_epg_hdr[segoff], seglen, kernel_pmap, flags, segs, nsegs); } } @@ -159,7 +159,7 @@ _bus_dmamap_load_unmapped_mbuf_sg(bus_dma_tag_t dmat, seglen = min(seglen, len); len -= seglen; error = _bus_dmamap_load_phys(dmat, map, - ext_pgs->m_epg_pa[i] + segoff, seglen, flags, segs, nsegs); + m->m_epg_pa[i] + segoff, seglen, flags, segs, nsegs); pgoff = 0; }; if (len != 0 && error == 0) { @@ -167,7 +167,7 @@ _bus_dmamap_load_unmapped_mbuf_sg(bus_dma_tag_t dmat, ("off + len > trail (%d + %d > %d)", off, len, ext_pgs->trail_len)); error = _bus_dmamap_load_buffer(dmat, map, - &ext_pgs->m_epg_trail[off], len, kernel_pmap, flags, segs, + &m->m_epg_trail[off], len, kernel_pmap, flags, segs, nsegs); } return (error); Modified: head/sys/kern/subr_sglist.c ============================================================================== --- head/sys/kern/subr_sglist.c Sat May 2 20:47:58 2020 (r360568) +++ head/sys/kern/subr_sglist.c Sat May 2 22:39:26 2020 (r360569) @@ -223,8 +223,9 @@ sglist_count_vmpages(vm_page_t *m, size_t pgoff, size_ * describe an EXT_PGS buffer. */ int -sglist_count_ext_pgs(struct mbuf_ext_pgs *ext_pgs, size_t off, size_t len) +sglist_count_ext_pgs(struct mbuf *m, size_t off, size_t len) { + struct mbuf_ext_pgs *ext_pgs = &m->m_ext_pgs; vm_paddr_t nextaddr, paddr; size_t seglen, segoff; int i, nsegs, pglen, pgoff; @@ -242,7 +243,7 @@ sglist_count_ext_pgs(struct mbuf_ext_pgs *ext_pgs, siz seglen = MIN(seglen, len); off = 0; len -= seglen; - nsegs += sglist_count(&ext_pgs->m_epg_hdr[segoff], + nsegs += sglist_count(&m->m_epg_hdr[segoff], seglen); } } @@ -260,7 +261,7 @@ sglist_count_ext_pgs(struct mbuf_ext_pgs *ext_pgs, siz off = 0; seglen = MIN(seglen, len); len -= seglen; - paddr = ext_pgs->m_epg_pa[i] + segoff; + paddr = m->m_epg_pa[i] + segoff; if (paddr != nextaddr) nsegs++; nextaddr = paddr + seglen; @@ -269,7 +270,7 @@ sglist_count_ext_pgs(struct mbuf_ext_pgs *ext_pgs, siz if (len != 0) { seglen = MIN(len, ext_pgs->trail_len - off); len -= seglen; - nsegs += sglist_count(&ext_pgs->m_epg_trail[off], seglen); + nsegs += sglist_count(&m->m_epg_trail[off], seglen); } KASSERT(len == 0, ("len != 0")); return (nsegs); @@ -284,8 +285,7 @@ sglist_count_mb_ext_pgs(struct mbuf *m) { MBUF_EXT_PGS_ASSERT(m); - return (sglist_count_ext_pgs(&m->m_ext_pgs, mtod(m, vm_offset_t), - m->m_len)); + return (sglist_count_ext_pgs(m, mtod(m, vm_offset_t), m->m_len)); } /* @@ -395,9 +395,9 @@ sglist_append_phys(struct sglist *sg, vm_paddr_t paddr * fails with EFBIG. */ int -sglist_append_ext_pgs(struct sglist *sg, struct mbuf_ext_pgs *ext_pgs, - size_t off, size_t len) +sglist_append_ext_pgs(struct sglist *sg, struct mbuf *m, size_t off, size_t len) { + struct mbuf_ext_pgs *ext_pgs = &m->m_ext_pgs; size_t seglen, segoff; vm_paddr_t paddr; int error, i, pglen, pgoff; @@ -413,7 +413,7 @@ sglist_append_ext_pgs(struct sglist *sg, struct mbuf_e off = 0; len -= seglen; error = sglist_append(sg, - &ext_pgs->m_epg_hdr[segoff], seglen); + &m->m_epg_hdr[segoff], seglen); } } pgoff = ext_pgs->first_pg_off; @@ -429,7 +429,7 @@ sglist_append_ext_pgs(struct sglist *sg, struct mbuf_e off = 0; seglen = MIN(seglen, len); len -= seglen; - paddr = ext_pgs->m_epg_pa[i] + segoff; + paddr = m->m_epg_pa[i] + segoff; error = sglist_append_phys(sg, paddr, seglen); pgoff = 0; }; @@ -437,7 +437,7 @@ sglist_append_ext_pgs(struct sglist *sg, struct mbuf_e seglen = MIN(len, ext_pgs->trail_len - off); len -= seglen; error = sglist_append(sg, - &ext_pgs->m_epg_trail[off], seglen); + &m->m_epg_trail[off], seglen); } if (error == 0) KASSERT(len == 0, ("len != 0")); @@ -455,8 +455,7 @@ sglist_append_mb_ext_pgs(struct sglist *sg, struct mbu /* for now, all unmapped mbufs are assumed to be EXT_PGS */ MBUF_EXT_PGS_ASSERT(m); - return (sglist_append_ext_pgs(sg, &m->m_ext_pgs, - mtod(m, vm_offset_t), m->m_len)); + return (sglist_append_ext_pgs(sg, m, mtod(m, vm_offset_t), m->m_len)); } /* Modified: head/sys/kern/uipc_ktls.c ============================================================================== --- head/sys/kern/uipc_ktls.c Sat May 2 20:47:58 2020 (r360568) +++ head/sys/kern/uipc_ktls.c Sat May 2 22:39:26 2020 (r360569) @@ -1374,7 +1374,7 @@ ktls_frame(struct mbuf *top, struct ktls_session *tls, m->m_len += pgs->hdr_len + pgs->trail_len; /* Populate the TLS header. */ - tlshdr = (void *)pgs->m_epg_hdr; + tlshdr = (void *)m->m_epg_hdr; tlshdr->tls_vmajor = tls->params.tls_vmajor; /* @@ -1387,7 +1387,7 @@ ktls_frame(struct mbuf *top, struct ktls_session *tls, tlshdr->tls_type = TLS_RLTYPE_APP; /* save the real record type for later */ pgs->record_type = record_type; - pgs->m_epg_trail[0] = record_type; + m->m_epg_trail[0] = record_type; } else { tlshdr->tls_vminor = tls->params.tls_vminor; tlshdr->tls_type = record_type; @@ -1552,7 +1552,7 @@ ktls_encrypt(struct mbuf_ext_pgs *pgs) len = mbuf_ext_pg_len(pgs, i, off); src_iov[i].iov_len = len; src_iov[i].iov_base = - (char *)(void *)PHYS_TO_DMAP(pgs->m_epg_pa[i]) + + (char *)(void *)PHYS_TO_DMAP(m->m_epg_pa[i]) + off; if (is_anon) { @@ -1576,8 +1576,8 @@ retry_page: npages += i; error = (*tls->sw_encrypt)(tls, - (const struct tls_record_layer *)pgs->m_epg_hdr, - pgs->m_epg_trail, src_iov, dst_iov, i, pgs->seqno, + (const struct tls_record_layer *)m->m_epg_hdr, + m->m_epg_trail, src_iov, dst_iov, i, pgs->seqno, pgs->record_type); if (error) { counter_u64_add(ktls_offload_failed_crypto, 1); @@ -1595,7 +1595,7 @@ retry_page: /* Replace them with the new pages. */ for (i = 0; i < pgs->npgs; i++) - pgs->m_epg_pa[i] = parray[i]; + m->m_epg_pa[i] = parray[i]; /* Use the basic free routine. */ m->m_ext.ext_free = mb_free_mext_pgs; Modified: head/sys/kern/uipc_mbuf.c ============================================================================== --- head/sys/kern/uipc_mbuf.c Sat May 2 20:47:58 2020 (r360568) +++ head/sys/kern/uipc_mbuf.c Sat May 2 22:39:26 2020 (r360569) @@ -163,11 +163,11 @@ CTASSERT(offsetof(struct mbuf, m_pktdat) % 8 == 0); #if defined(__LP64__) CTASSERT(offsetof(struct mbuf, m_dat) == 32); CTASSERT(sizeof(struct pkthdr) == 56); -CTASSERT(sizeof(struct m_ext) == 168); +CTASSERT(sizeof(struct m_ext) == 160); #else CTASSERT(offsetof(struct mbuf, m_dat) == 24); CTASSERT(sizeof(struct pkthdr) == 48); -CTASSERT(sizeof(struct m_ext) == 184); +CTASSERT(sizeof(struct m_ext) == 180); #endif /* @@ -195,19 +195,30 @@ mb_dupcl(struct mbuf *n, struct mbuf *m) KASSERT(!(n->m_flags & M_EXT), ("%s: M_EXT set on %p", __func__, n)); /* - * Cache access optimization. For most kinds of external - * storage we don't need full copy of m_ext, since the - * holder of the 'ext_count' is responsible to carry the - * free routine and its arguments. Exclusion is EXT_EXTREF, - * where 'ext_cnt' doesn't point into mbuf at all. + * Cache access optimization. + * + * o Regular M_EXT storage doesn't need full copy of m_ext, since + * the holder of the 'ext_count' is responsible to carry the free + * routine and its arguments. + * o EXT_PGS data is split between main part of mbuf and m_ext, the + * main part is copied in full, the m_ext part is similar to M_EXT. + * o EXT_EXTREF, where 'ext_cnt' doesn't point into mbuf at all, is + * special - it needs full copy of m_ext into each mbuf, since any + * copy could end up as the last to free. */ - if (m->m_ext.ext_type == EXT_EXTREF) - bcopy(&m->m_ext, &n->m_ext, sizeof(struct m_ext)); - else if (m->m_ext.ext_type == EXT_PGS) + switch (m->m_ext.ext_type) { + case EXT_PGS: + bcopy(&m->m_ext, &n->m_ext, m_epg_copylen); bcopy(&m->m_ext_pgs, &n->m_ext_pgs, sizeof(struct mbuf_ext_pgs)); - else + break; + case EXT_EXTREF: + bcopy(&m->m_ext, &n->m_ext, sizeof(struct m_ext)); + break; + default: bcopy(&m->m_ext, &n->m_ext, m_ext_copylen); + } + n->m_flags |= M_EXT; n->m_flags |= m->m_flags & (M_RDONLY | M_NOMAP); @@ -1623,7 +1634,7 @@ mb_free_mext_pgs(struct mbuf *m) MBUF_EXT_PGS_ASSERT(m); ext_pgs = &m->m_ext_pgs; for (int i = 0; i < ext_pgs->npgs; i++) { - pg = PHYS_TO_VM_PAGE(ext_pgs->m_epg_pa[i]); + pg = PHYS_TO_VM_PAGE(m->m_epg_pa[i]); vm_page_unwire_noq(pg); vm_page_free(pg); } @@ -1681,11 +1692,11 @@ retry_page: } } pg_array[i]->flags &= ~PG_ZERO; - pgs->m_epg_pa[i] = VM_PAGE_TO_PHYS(pg_array[i]); + mb->m_epg_pa[i] = VM_PAGE_TO_PHYS(pg_array[i]); pgs->npgs++; } pgs->last_pg_len = length - PAGE_SIZE * (pgs->npgs - 1); - MBUF_EXT_PGS_ASSERT_SANITY(pgs); + MBUF_EXT_PGS_ASSERT_SANITY(mb); total -= length; error = uiomove_fromphys(pg_array, 0, length, uio); if (error != 0) @@ -1788,7 +1799,8 @@ m_unmappedtouio(const struct mbuf *m, int m_off, struc seglen = min(seglen, len); off = 0; len -= seglen; - error = uiomove(&ext_pgs->m_epg_hdr[segoff], seglen, uio); + error = uiomove(__DECONST(void *, + &m->m_epg_hdr[segoff]), seglen, uio); } } pgoff = ext_pgs->first_pg_off; @@ -1804,7 +1816,7 @@ m_unmappedtouio(const struct mbuf *m, int m_off, struc off = 0; seglen = min(seglen, len); len -= seglen; - pg = PHYS_TO_VM_PAGE(ext_pgs->m_epg_pa[i]); + pg = PHYS_TO_VM_PAGE(m->m_epg_pa[i]); error = uiomove_fromphys(&pg, segoff, seglen, uio); pgoff = 0; }; @@ -1812,7 +1824,8 @@ m_unmappedtouio(const struct mbuf *m, int m_off, struc KASSERT((off + len) <= ext_pgs->trail_len, ("off + len > trail (%d + %d > %d, m_off = %d)", off, len, ext_pgs->trail_len, m_off)); - error = uiomove(&ext_pgs->m_epg_trail[off], len, uio); + error = uiomove(__DECONST(void *, &m->m_epg_trail[off]), + len, uio); } return (error); } Modified: head/sys/sys/mbuf.h ============================================================================== --- head/sys/sys/mbuf.h Sat May 2 20:47:58 2020 (r360568) +++ head/sys/sys/mbuf.h Sat May 2 22:39:26 2020 (r360569) @@ -231,13 +231,6 @@ struct pkthdr { #define MBUF_PEXT_FLAG_ANON 1 /* Data can be encrypted in place. */ - -struct mbuf_ext_pgs_data { - vm_paddr_t pa[MBUF_PEXT_MAX_PGS]; /* phys addrs of pgs */ - char trail[MBUF_PEXT_TRAIL_LEN]; /* TLS trailer */ - char hdr[MBUF_PEXT_HDR_LEN]; /* TLS header */ -}; - struct ktls_session; struct socket; @@ -266,49 +259,49 @@ struct m_ext { uint32_t ext_size; /* size of buffer, for ext_free */ uint32_t ext_type:8, /* type of external storage */ ext_flags:24; /* external storage mbuf flags */ - char *ext_buf; /* start of buffer */ - /* - * Fields below store the free context for the external storage. - * They are valid only in the refcount carrying mbuf, the one with - * EXT_FLAG_EMBREF flag, with exclusion for EXT_EXTREF type, where - * the free context is copied into all mbufs that use same external - * storage. - */ -#define m_ext_copylen offsetof(struct m_ext, ext_free) - m_ext_free_t *ext_free; /* free routine if not the usual */ - void *ext_arg1; /* optional argument pointer */ union { - void *ext_arg2; /* optional argument pointer */ - struct mbuf_ext_pgs_data ext_pgs; + struct { + /* + * Regular M_EXT mbuf: + * o ext_buf always points to the external buffer. + * o ext_free (below) and two optional arguments + * ext_arg1 and ext_arg2 store the free context for + * the external storage. They are set only in the + * refcount carrying mbuf, the one with + * EXT_FLAG_EMBREF flag, with exclusion for + * EXT_EXTREF type, where the free context is copied + * into all mbufs that use same external storage. + */ + char *ext_buf; /* start of buffer */ +#define m_ext_copylen offsetof(struct m_ext, ext_arg2) + void *ext_arg2; + }; + struct { + /* + * Multi-page M_EXTPG mbuf: + * o extpg_pa - page vector. + * o extpg_trail and extpg_hdr - TLS trailer and + * header. + * Uses ext_free and may also use ext_arg1. + */ + vm_paddr_t extpg_pa[MBUF_PEXT_MAX_PGS]; + char extpg_trail[MBUF_PEXT_TRAIL_LEN]; + char extpg_hdr[MBUF_PEXT_HDR_LEN]; + /* Pretend these 3 fields are part of mbuf itself. */ +#define m_epg_pa m_ext.extpg_pa +#define m_epg_trail m_ext.extpg_trail +#define m_epg_hdr m_ext.extpg_hdr +#define m_epg_copylen offsetof(struct m_ext, ext_free) + }; }; + /* + * Free method and optional argument pointer, both + * used by M_EXT and M_EXTPG. + */ + m_ext_free_t *ext_free; + void *ext_arg1; }; -struct mbuf_ext_pgs { - uint8_t npgs; /* Number of attached pages */ - uint8_t nrdy; /* Pages with I/O pending */ - uint8_t hdr_len; /* TLS header length */ - uint8_t trail_len; /* TLS trailer length */ - uint16_t first_pg_off; /* Offset into 1st page */ - uint16_t last_pg_len; /* Length of last page */ - uint8_t flags; /* Flags */ - uint8_t record_type; - uint8_t spare[2]; - int enc_cnt; - struct ktls_session *tls; /* TLS session */ - struct socket *so; - uint64_t seqno; - struct mbuf *mbuf; - STAILQ_ENTRY(mbuf_ext_pgs) stailq; -#if !defined(__LP64__) - uint8_t pad[8]; /* pad to size of pkthdr */ -#endif - struct m_ext m_ext; -}; - -#define m_epg_hdr m_ext.ext_pgs.hdr -#define m_epg_trail m_ext.ext_pgs.trail -#define m_epg_pa m_ext.ext_pgs.pa - /* * The core of the mbuf object along with some shortcut defines for practical * purposes. @@ -347,15 +340,48 @@ struct mbuf { * order to support future work on variable-size mbufs. */ union { - union { - struct { - struct pkthdr m_pkthdr; /* M_PKTHDR set */ - union { - struct m_ext m_ext; /* M_EXT set */ - char m_pktdat[0]; - }; + struct { + union { + /* M_PKTHDR set. */ + struct pkthdr m_pkthdr; + + /* M_EXTPG set. + * Multi-page M_EXTPG mbuf has its meta data + * split between the mbuf_ext_pgs structure + * and m_ext. It carries vector of pages, + * optional header and trailer char vectors + * and pointers to socket/TLS data. + */ + struct mbuf_ext_pgs { + /* Overall count of pages and count of + * pages with I/O pending. */ + uint8_t npgs; + uint8_t nrdy; + /* TLS header and trailer lengths. + * The data itself resides in m_ext. */ + uint8_t hdr_len; + uint8_t trail_len; + /* Offset into 1st page and lenght of + * data in the last page. */ + uint16_t first_pg_off; + uint16_t last_pg_len; + uint8_t flags; + uint8_t record_type; + uint8_t spare[2]; + int enc_cnt; + struct ktls_session *tls; + struct socket *so; + uint64_t seqno; + struct mbuf *mbuf; + STAILQ_ENTRY(mbuf_ext_pgs) stailq; + } m_ext_pgs; }; - struct mbuf_ext_pgs m_ext_pgs; + union { + /* M_EXT or M_EXTPG set. */ + struct m_ext m_ext; + /* M_PKTHDR set, neither M_EXT nor M_EXTPG. */ + char m_pktdat[0]; + }; }; char m_dat[0]; /* !M_PKTHDR, !M_EXT */ }; @@ -375,12 +401,12 @@ mbuf_ext_pg_len(struct mbuf_ext_pgs *ext_pgs, int pidx } #ifdef INVARIANT_SUPPORT -void mb_ext_pgs_check(struct mbuf_ext_pgs *ext_pgs); +void mb_ext_pgs_check(struct mbuf *m); #endif #ifdef INVARIANTS -#define MBUF_EXT_PGS_ASSERT_SANITY(ext_pgs) mb_ext_pgs_check((ext_pgs)) +#define MBUF_EXT_PGS_ASSERT_SANITY(m) mb_ext_pgs_check((m)) #else -#define MBUF_EXT_PGS_ASSERT_SANITY(ext_pgs) +#define MBUF_EXT_PGS_ASSERT_SANITY(m) #endif #endif Modified: head/sys/sys/sglist.h ============================================================================== --- head/sys/sys/sglist.h Sat May 2 20:47:58 2020 (r360568) +++ head/sys/sys/sglist.h Sat May 2 22:39:26 2020 (r360569) @@ -57,7 +57,6 @@ struct sglist { struct bio; struct mbuf; -struct mbuf_ext_pgs; struct uio; static __inline void @@ -88,8 +87,8 @@ sglist_hold(struct sglist *sg) struct sglist *sglist_alloc(int nsegs, int mflags); int sglist_append(struct sglist *sg, void *buf, size_t len); int sglist_append_bio(struct sglist *sg, struct bio *bp); -int sglist_append_ext_pgs(struct sglist *sg, struct mbuf_ext_pgs *ext_pgs, - size_t off, size_t len); +int sglist_append_ext_pgs(struct sglist *sg, struct mbuf *m, size_t off, + size_t len); int sglist_append_mb_ext_pgs(struct sglist *sg, struct mbuf *m); int sglist_append_mbuf(struct sglist *sg, struct mbuf *m0); int sglist_append_phys(struct sglist *sg, vm_paddr_t paddr, @@ -105,8 +104,7 @@ struct sglist *sglist_build(void *buf, size_t len, int struct sglist *sglist_clone(struct sglist *sg, int mflags); int sglist_consume_uio(struct sglist *sg, struct uio *uio, size_t resid); int sglist_count(void *buf, size_t len); -int sglist_count_ext_pgs(struct mbuf_ext_pgs *ext_pgs, size_t off, - size_t len); +int sglist_count_ext_pgs(struct mbuf *m, size_t off, size_t len); int sglist_count_mb_ext_pgs(struct mbuf *m); int sglist_count_vmpages(vm_page_t *m, size_t pgoff, size_t len); void sglist_free(struct sglist *sg); From owner-svn-src-all@freebsd.org Sat May 2 22:44: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 886F22C6871; Sat, 2 May 2020 22:44:24 +0000 (UTC) (envelope-from glebius@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 49F41N33bbz3Hj5; Sat, 2 May 2020 22:44:24 +0000 (UTC) (envelope-from glebius@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 64378F92; Sat, 2 May 2020 22:44:24 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 042MiOKw041898; Sat, 2 May 2020 22:44:24 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 042MiO0K041897; Sat, 2 May 2020 22:44:24 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <202005022244.042MiO0K041897@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Sat, 2 May 2020 22:44:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360570 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 360570 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, 02 May 2020 22:44:24 -0000 Author: glebius Date: Sat May 2 22:44:23 2020 New Revision: 360570 URL: https://svnweb.freebsd.org/changeset/base/360570 Log: In mb_unmapped_compress() we don't need mbuf structure to keep data, but we need buffer of MLEN bytes. This isn't just a simplification, but important fixup, because previous commit shrinked sizeof(struct mbuf) down below MSIZE, and instantiating an mbuf on stack no longer provides enough data. Reviewed by: gallatin Differential Revision: https://reviews.freebsd.org/D24598 Modified: head/sys/kern/kern_mbuf.c Modified: head/sys/kern/kern_mbuf.c ============================================================================== --- head/sys/kern/kern_mbuf.c Sat May 2 22:39:26 2020 (r360569) +++ head/sys/kern/kern_mbuf.c Sat May 2 22:44:23 2020 (r360570) @@ -853,7 +853,7 @@ int mb_unmapped_compress(struct mbuf *m) { volatile u_int *refcnt; - struct mbuf m_temp; + char buf[MLEN]; /* * Assert that 'm' does not have a packet header. If 'm' had @@ -876,12 +876,8 @@ mb_unmapped_compress(struct mbuf *m) if (*refcnt != 1) return (EBUSY); - m_init(&m_temp, M_NOWAIT, MT_DATA, 0); + m_copydata(m, 0, m->m_len, buf); - /* copy data out of old mbuf */ - m_copydata(m, 0, m->m_len, mtod(&m_temp, char *)); - m_temp.m_len = m->m_len; - /* Free the backing pages. */ m->m_ext.ext_free(m); @@ -889,8 +885,8 @@ mb_unmapped_compress(struct mbuf *m) m->m_flags &= ~(M_EXT | M_RDONLY | M_NOMAP); m->m_data = m->m_dat; - /* copy data back into m */ - m_copydata(&m_temp, 0, m_temp.m_len, mtod(m, char *)); + /* Copy data back into m. */ + bcopy(buf, mtod(m, char *), m->m_len); return (0); } From owner-svn-src-all@freebsd.org Sat May 2 22:49: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 DEF1D2C6979; Sat, 2 May 2020 22:49:15 +0000 (UTC) (envelope-from glebius@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 49F46z5XFfz3HsJ; Sat, 2 May 2020 22:49:15 +0000 (UTC) (envelope-from glebius@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 B4DE6F95; Sat, 2 May 2020 22:49:15 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 042MnFQ3042158; Sat, 2 May 2020 22:49:15 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 042MnFHE042155; Sat, 2 May 2020 22:49:15 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <202005022249.042MnFHE042155@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Sat, 2 May 2020 22:49:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360571 - in head/sys: kern sys X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: in head/sys: kern sys X-SVN-Commit-Revision: 360571 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, 02 May 2020 22:49:15 -0000 Author: glebius Date: Sat May 2 22:49:14 2020 New Revision: 360571 URL: https://svnweb.freebsd.org/changeset/base/360571 Log: Start moving into EPG_/epg_ namespace. There is only one flag, but next commit brings in second flag, so let them already be in the future namespace. Reviewed by: gallatin Differential Revision: https://reviews.freebsd.org/D24598 Modified: head/sys/kern/uipc_ktls.c head/sys/kern/uipc_mbuf.c head/sys/sys/mbuf.h Modified: head/sys/kern/uipc_ktls.c ============================================================================== --- head/sys/kern/uipc_ktls.c Sat May 2 22:44:23 2020 (r360570) +++ head/sys/kern/uipc_ktls.c Sat May 2 22:49:14 2020 (r360571) @@ -1545,7 +1545,7 @@ ktls_encrypt(struct mbuf_ext_pgs *pgs) * (from sendfile), anonymous wired pages are * allocated and assigned to the destination iovec. */ - is_anon = (pgs->flags & MBUF_PEXT_FLAG_ANON) != 0; + is_anon = (pgs->flags & EPG_FLAG_ANON) != 0; off = pgs->first_pg_off; for (i = 0; i < pgs->npgs; i++, off = 0) { @@ -1601,7 +1601,7 @@ retry_page: m->m_ext.ext_free = mb_free_mext_pgs; /* Pages are now writable. */ - pgs->flags |= MBUF_PEXT_FLAG_ANON; + pgs->flags |= EPG_FLAG_ANON; } /* Modified: head/sys/kern/uipc_mbuf.c ============================================================================== --- head/sys/kern/uipc_mbuf.c Sat May 2 22:44:23 2020 (r360570) +++ head/sys/kern/uipc_mbuf.c Sat May 2 22:49:14 2020 (r360571) @@ -1678,7 +1678,7 @@ m_uiotombuf_nomap(struct uio *uio, int how, int len, i prev->m_next = mb; prev = mb; pgs = &mb->m_ext_pgs; - pgs->flags = MBUF_PEXT_FLAG_ANON; + pgs->flags = EPG_FLAG_ANON; needed = length = MIN(maxseg, total); for (i = 0; needed > 0; i++, needed -= PAGE_SIZE) { retry_page: Modified: head/sys/sys/mbuf.h ============================================================================== --- head/sys/sys/mbuf.h Sat May 2 22:44:23 2020 (r360570) +++ head/sys/sys/mbuf.h Sat May 2 22:49:14 2020 (r360571) @@ -229,8 +229,6 @@ struct pkthdr { #define MBUF_PEXT_MAX_BYTES \ (MBUF_PEXT_MAX_PGS * PAGE_SIZE + MBUF_PEXT_HDR_LEN + MBUF_PEXT_TRAIL_LEN) -#define MBUF_PEXT_FLAG_ANON 1 /* Data can be encrypted in place. */ - struct ktls_session; struct socket; @@ -366,6 +364,7 @@ struct mbuf { uint16_t first_pg_off; uint16_t last_pg_len; uint8_t flags; +#define EPG_FLAG_ANON 0x1 /* Data can be encrypted in place. */ uint8_t record_type; uint8_t spare[2]; int enc_cnt; From owner-svn-src-all@freebsd.org Sat May 2 22:56: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 8E54F2C6E9B; Sat, 2 May 2020 22:56:23 +0000 (UTC) (envelope-from glebius@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 49F4HC3GVPz3JQK; Sat, 2 May 2020 22:56:23 +0000 (UTC) (envelope-from glebius@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 532C31183; Sat, 2 May 2020 22:56:23 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 042MuNXm048000; Sat, 2 May 2020 22:56:23 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 042MuNa3047999; Sat, 2 May 2020 22:56:23 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <202005022256.042MuNa3047999@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Sat, 2 May 2020 22:56:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360572 - in head/sys: kern sys X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: in head/sys: kern sys X-SVN-Commit-Revision: 360572 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, 02 May 2020 22:56:23 -0000 Author: glebius Date: Sat May 2 22:56:22 2020 New Revision: 360572 URL: https://svnweb.freebsd.org/changeset/base/360572 Log: Get rid of the mbuf self-pointing pointer. Reviewed by: gallatin Differential Revision: https://reviews.freebsd.org/D24598 Modified: head/sys/kern/uipc_ktls.c head/sys/sys/mbuf.h Modified: head/sys/kern/uipc_ktls.c ============================================================================== --- head/sys/kern/uipc_ktls.c Sat May 2 22:49:14 2020 (r360571) +++ head/sys/kern/uipc_ktls.c Sat May 2 22:56:22 2020 (r360572) @@ -1436,7 +1436,7 @@ ktls_enqueue_to_free(struct mbuf_ext_pgs *pgs) bool running; /* Mark it for freeing. */ - pgs->mbuf = NULL; + pgs->flags |= EPG_FLAG_2FREE; wq = &ktls_wq[pgs->tls->wq_index]; mtx_lock(&wq->mtx); STAILQ_INSERT_TAIL(&wq->head, pgs, stailq); @@ -1463,7 +1463,6 @@ ktls_enqueue(struct mbuf *m, struct socket *so, int pa KASSERT(pgs->tls->mode == TCP_TLS_MODE_SW, ("!SW TLS mbuf")); pgs->enc_cnt = page_count; - pgs->mbuf = m; /* * Save a pointer to the socket. The caller is responsible @@ -1496,12 +1495,11 @@ ktls_encrypt(struct mbuf_ext_pgs *pgs) so = pgs->so; tls = pgs->tls; - top = pgs->mbuf; + top = __containerof(pgs, struct mbuf, m_ext_pgs); KASSERT(tls != NULL, ("tls = NULL, top = %p, pgs = %p\n", top, pgs)); KASSERT(so != NULL, ("so = NULL, top = %p, pgs = %p\n", top, pgs)); #ifdef INVARIANTS pgs->so = NULL; - pgs->mbuf = NULL; #endif total_pages = pgs->enc_cnt; npages = 0; @@ -1654,14 +1652,14 @@ ktls_work_thread(void *ctx) mtx_unlock(&wq->mtx); STAILQ_FOREACH_SAFE(p, &local_head, stailq, n) { - if (p->mbuf != NULL) { - ktls_encrypt(p); - counter_u64_add(ktls_cnt_on, -1); - } else { + if (p->flags & EPG_FLAG_2FREE) { tls = p->tls; ktls_free(tls); m = __containerof(p, struct mbuf, m_ext_pgs); uma_zfree(zone_mbuf, m); + } else { + ktls_encrypt(p); + counter_u64_add(ktls_cnt_on, -1); } } } Modified: head/sys/sys/mbuf.h ============================================================================== --- head/sys/sys/mbuf.h Sat May 2 22:49:14 2020 (r360571) +++ head/sys/sys/mbuf.h Sat May 2 22:56:22 2020 (r360572) @@ -365,13 +365,13 @@ struct mbuf { uint16_t last_pg_len; uint8_t flags; #define EPG_FLAG_ANON 0x1 /* Data can be encrypted in place. */ +#define EPG_FLAG_2FREE 0x2 /* Scheduled for free. */ uint8_t record_type; uint8_t spare[2]; int enc_cnt; struct ktls_session *tls; struct socket *so; uint64_t seqno; - struct mbuf *mbuf; STAILQ_ENTRY(mbuf_ext_pgs) stailq; } m_ext_pgs; }; From owner-svn-src-all@freebsd.org Sat May 2 23:38: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 EEFD02C82D5; Sat, 2 May 2020 23:38:14 +0000 (UTC) (envelope-from glebius@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 49F5CV63Jfz3LWg; Sat, 2 May 2020 23:38:14 +0000 (UTC) (envelope-from glebius@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 ACBB5190C; Sat, 2 May 2020 23:38:14 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 042NcEsX072684; Sat, 2 May 2020 23:38:14 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 042NcD0F072681; Sat, 2 May 2020 23:38:13 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <202005022338.042NcD0F072681@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Sat, 2 May 2020 23:38:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360573 - in head/sys: kern sys X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: in head/sys: kern sys X-SVN-Commit-Revision: 360573 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, 02 May 2020 23:38:15 -0000 Author: glebius Date: Sat May 2 23:38:13 2020 New Revision: 360573 URL: https://svnweb.freebsd.org/changeset/base/360573 Log: Step 2.1: Build TLS workqueue from mbufs, not struct mbuf_ext_pgs. Reviewed by: gallatin Differential Revision: https://reviews.freebsd.org/D24598 Modified: head/sys/kern/kern_mbuf.c head/sys/kern/uipc_ktls.c head/sys/sys/ktls.h head/sys/sys/mbuf.h Modified: head/sys/kern/kern_mbuf.c ============================================================================== --- head/sys/kern/kern_mbuf.c Sat May 2 22:56:22 2020 (r360572) +++ head/sys/kern/kern_mbuf.c Sat May 2 23:38:13 2020 (r360573) @@ -1246,7 +1246,6 @@ mb_free_ext(struct mbuf *m) break; case EXT_PGS: { #ifdef KERN_TLS - struct mbuf_ext_pgs *pgs; struct ktls_session *tls; #endif @@ -1254,11 +1253,10 @@ mb_free_ext(struct mbuf *m) ("%s: ext_free not set", __func__)); mref->m_ext.ext_free(mref); #ifdef KERN_TLS - pgs = &mref->m_ext_pgs; - tls = pgs->tls; + tls = mref->m_ext_pgs.tls; if (tls != NULL && !refcount_release_if_not_last(&tls->refcount)) - ktls_enqueue_to_free(pgs); + ktls_enqueue_to_free(mref); else #endif uma_zfree(zone_mbuf, mref); Modified: head/sys/kern/uipc_ktls.c ============================================================================== --- head/sys/kern/uipc_ktls.c Sat May 2 22:56:22 2020 (r360572) +++ head/sys/kern/uipc_ktls.c Sat May 2 23:38:13 2020 (r360573) @@ -79,7 +79,7 @@ __FBSDID("$FreeBSD$"); struct ktls_wq { struct mtx mtx; - STAILQ_HEAD(, mbuf_ext_pgs) head; + STAILQ_HEAD(, mbuf) head; bool running; } __aligned(CACHE_LINE_SIZE); @@ -1430,16 +1430,19 @@ ktls_frame(struct mbuf *top, struct ktls_session *tls, } void -ktls_enqueue_to_free(struct mbuf_ext_pgs *pgs) +ktls_enqueue_to_free(struct mbuf *m) { + struct mbuf_ext_pgs *pgs; struct ktls_wq *wq; bool running; + pgs = &m->m_ext_pgs; + /* Mark it for freeing. */ pgs->flags |= EPG_FLAG_2FREE; wq = &ktls_wq[pgs->tls->wq_index]; mtx_lock(&wq->mtx); - STAILQ_INSERT_TAIL(&wq->head, pgs, stailq); + STAILQ_INSERT_TAIL(&wq->head, m, m_ext_pgs.stailq); running = wq->running; mtx_unlock(&wq->mtx); if (!running) @@ -1472,7 +1475,7 @@ ktls_enqueue(struct mbuf *m, struct socket *so, int pa wq = &ktls_wq[pgs->tls->wq_index]; mtx_lock(&wq->mtx); - STAILQ_INSERT_TAIL(&wq->head, pgs, stailq); + STAILQ_INSERT_TAIL(&wq->head, m, m_ext_pgs.stailq); running = wq->running; mtx_unlock(&wq->mtx); if (!running) @@ -1481,11 +1484,12 @@ ktls_enqueue(struct mbuf *m, struct socket *so, int pa } static __noinline void -ktls_encrypt(struct mbuf_ext_pgs *pgs) +ktls_encrypt(struct mbuf *top) { struct ktls_session *tls; struct socket *so; - struct mbuf *m, *top; + struct mbuf *m; + struct mbuf_ext_pgs *pgs; vm_paddr_t parray[1 + btoc(TLS_MAX_MSG_SIZE_V10_2)]; struct iovec src_iov[1 + btoc(TLS_MAX_MSG_SIZE_V10_2)]; struct iovec dst_iov[1 + btoc(TLS_MAX_MSG_SIZE_V10_2)]; @@ -1493,15 +1497,14 @@ ktls_encrypt(struct mbuf_ext_pgs *pgs) int error, i, len, npages, off, total_pages; bool is_anon; - so = pgs->so; - tls = pgs->tls; - top = __containerof(pgs, struct mbuf, m_ext_pgs); - KASSERT(tls != NULL, ("tls = NULL, top = %p, pgs = %p\n", top, pgs)); - KASSERT(so != NULL, ("so = NULL, top = %p, pgs = %p\n", top, pgs)); + so = top->m_ext_pgs.so; + tls = top->m_ext_pgs.tls; + KASSERT(tls != NULL, ("tls = NULL, top = %p\n", top)); + KASSERT(so != NULL, ("so = NULL, top = %p\n", top)); #ifdef INVARIANTS - pgs->so = NULL; + top->m_ext_pgs.so = NULL; #endif - total_pages = pgs->enc_cnt; + total_pages = top->m_ext_pgs.enc_cnt; npages = 0; /* @@ -1631,10 +1634,8 @@ static void ktls_work_thread(void *ctx) { struct ktls_wq *wq = ctx; - struct mbuf_ext_pgs *p, *n; - struct ktls_session *tls; - struct mbuf *m; - STAILQ_HEAD(, mbuf_ext_pgs) local_head; + struct mbuf *m, *n; + STAILQ_HEAD(, mbuf) local_head; #if defined(__aarch64__) || defined(__amd64__) || defined(__i386__) fpu_kern_thread(0); @@ -1651,14 +1652,12 @@ ktls_work_thread(void *ctx) STAILQ_CONCAT(&local_head, &wq->head); mtx_unlock(&wq->mtx); - STAILQ_FOREACH_SAFE(p, &local_head, stailq, n) { - if (p->flags & EPG_FLAG_2FREE) { - tls = p->tls; - ktls_free(tls); - m = __containerof(p, struct mbuf, m_ext_pgs); + STAILQ_FOREACH_SAFE(m, &local_head, m_ext_pgs.stailq, n) { + if (m->m_ext_pgs.flags & EPG_FLAG_2FREE) { + ktls_free(m->m_ext_pgs.tls); uma_zfree(zone_mbuf, m); } else { - ktls_encrypt(p); + ktls_encrypt(m); counter_u64_add(ktls_cnt_on, -1); } } Modified: head/sys/sys/ktls.h ============================================================================== --- head/sys/sys/ktls.h Sat May 2 22:56:22 2020 (r360572) +++ head/sys/sys/ktls.h Sat May 2 23:38:13 2020 (r360573) @@ -169,7 +169,6 @@ struct iovec; struct ktls_session; struct m_snd_tag; struct mbuf; -struct mbuf_ext_pgs; struct sockbuf; struct socket; @@ -212,7 +211,7 @@ void ktls_frame(struct mbuf *m, struct ktls_session *t uint8_t record_type); void ktls_seq(struct sockbuf *sb, struct mbuf *m); void ktls_enqueue(struct mbuf *m, struct socket *so, int page_count); -void ktls_enqueue_to_free(struct mbuf_ext_pgs *pgs); +void ktls_enqueue_to_free(struct mbuf *m); int ktls_get_rx_mode(struct socket *so); int ktls_set_tx_mode(struct socket *so, int mode); int ktls_get_tx_mode(struct socket *so); Modified: head/sys/sys/mbuf.h ============================================================================== --- head/sys/sys/mbuf.h Sat May 2 22:56:22 2020 (r360572) +++ head/sys/sys/mbuf.h Sat May 2 23:38:13 2020 (r360573) @@ -372,7 +372,7 @@ struct mbuf { struct ktls_session *tls; struct socket *so; uint64_t seqno; - STAILQ_ENTRY(mbuf_ext_pgs) stailq; + STAILQ_ENTRY(mbuf) stailq; } m_ext_pgs; }; union { From owner-svn-src-all@freebsd.org Sat May 2 23:46: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 A68472C86B2; Sat, 2 May 2020 23:46:31 +0000 (UTC) (envelope-from glebius@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 49F5P34LHTz3M0T; Sat, 2 May 2020 23:46:31 +0000 (UTC) (envelope-from glebius@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 8FB8F1AEE; Sat, 2 May 2020 23:46:31 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 042NkVCw078462; Sat, 2 May 2020 23:46:31 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 042NkUYk078455; Sat, 2 May 2020 23:46:30 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <202005022346.042NkUYk078455@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Sat, 2 May 2020 23:46:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360574 - in head: share/man/man9 sys/dev/cxgbe sys/dev/cxgbe/crypto sys/dev/cxgbe/tom sys/kern sys/sys X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: in head: share/man/man9 sys/dev/cxgbe sys/dev/cxgbe/crypto sys/dev/cxgbe/tom sys/kern sys/sys X-SVN-Commit-Revision: 360574 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, 02 May 2020 23:46:31 -0000 Author: glebius Date: Sat May 2 23:46:29 2020 New Revision: 360574 URL: https://svnweb.freebsd.org/changeset/base/360574 Log: Step 2.2: o Shrink sglist(9) functions to work with multipage mbufs down from four functions to two. o Don't use 'struct mbuf_ext_pgs *' as argument, use struct mbuf. o Rename to something matching _epg. Reviewed by: gallatin Differential Revision: https://reviews.freebsd.org/D24598 Modified: head/share/man/man9/sglist.9 head/sys/dev/cxgbe/crypto/t4_kern_tls.c head/sys/dev/cxgbe/t4_sge.c head/sys/dev/cxgbe/tom/t4_cpl_io.c head/sys/kern/subr_bus_dma.c head/sys/kern/subr_sglist.c head/sys/sys/sglist.h Modified: head/share/man/man9/sglist.9 ============================================================================== --- head/share/man/man9/sglist.9 Sat May 2 23:38:13 2020 (r360573) +++ head/share/man/man9/sglist.9 Sat May 2 23:46:29 2020 (r360574) @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd June 28, 2019 +.Dd April 24, 2020 .Dt SGLIST 9 .Os .Sh NAME @@ -34,9 +34,8 @@ .Nm sglist_alloc , .Nm sglist_append , .Nm sglist_append_bio , -.Nm sglist_append_ext_pgs, -.Nm sglist_append_mb_ext_pgs, .Nm sglist_append_mbuf , +.Nm sglist_append_mbuf_epg, .Nm sglist_append_phys , .Nm sglist_append_sglist , .Nm sglist_append_uio , @@ -46,8 +45,7 @@ .Nm sglist_clone , .Nm sglist_consume_uio , .Nm sglist_count , -.Nm sglist_count_ext_pgs , -.Nm sglist_count_mb_ext_pgs , +.Nm sglist_count_mbuf_epg , .Nm sglist_count_vmpages , .Nm sglist_free , .Nm sglist_hold , @@ -68,10 +66,8 @@ .Ft int .Fn sglist_append_bio "struct sglist *sg" "struct bio *bp" .Ft int -.Fn sglist_append_ext_pgs "struct sglist *sg" "struct mbuf_ext_pgs *ext_pgs" "size_t offset" "size_t len" +.Fn sglist_append_mbuf_epg "struct sglist *sg" "struct mbuf *m" "size_t offset" "size_t len" .Ft int -.Fn sglist_append_mb_ext_pgs "struct sglist *sg" "struct mbuf *m" -.Ft int .Fn sglist_append_mbuf "struct sglist *sg" "struct mbuf *m" .Ft int .Fn sglist_append_phys "struct sglist *sg" "vm_paddr_t paddr" "size_t len" @@ -92,10 +88,8 @@ .Ft int .Fn sglist_count "void *buf" "size_t len" .Ft int -.Fn sglist_count_ext_pgs "struct mbuf_ext_pgs *ext_pgs" "size_t offset" "size_t len" +.Fn sglist_count_mbuf_epg "struct mbuf *m" "size_t offset" "size_t len" .Ft int -.Fn sglist_count_mb_ext_pgs "struct mbuf *m" -.Ft int .Fn sglist_count_vmpages "vm_page_t *m" "size_t pgoff" "size_t len" .Ft void .Fn sglist_free "struct sglist *sg" @@ -158,20 +152,15 @@ and is bytes long. .Pp The -.Nm sglist_count_ext_pgs +.Nm sglist_count_mbuf_epg function returns the number of scatter/gather list elements needed to describe -the unmapped external mbuf buffer -.Fa ext_pgs . +the external multipage mbuf buffer +.Fa m . The ranges start at an offset of .Fa offset relative to the start of the buffer and is .Fa len bytes long. -The -.Nm sglist_count_mb_ext_pgs -function returns the number of scatter/gather list elements needed to describe -the physical address ranges of a single unmapped mbuf -.Fa m . .Pp The .Nm sglist_count_vmpages @@ -265,9 +254,11 @@ to the scatter/gather list .Fa sg . .Pp The -.Nm sglist_append_ext_pgs -function appends the physical address ranges described by the unmapped -external mbuf buffer +.Nm sglist_append_mbuf_epg +function appends the physical address ranges described by the +external multipage +.Xr mbuf 9 +buffer .Fa ext_pgs to the scatter/gather list .Fa sg . @@ -278,17 +269,9 @@ within and continue for .Fa len bytes. -.Pp -The -.Nm sglist_append_mb_ext_pgs -function appends the physical address ranges described by the unmapped -mbuf -.Fa m -to the scatter/gather list -.Fa sg . Note that unlike .Nm sglist_append_mbuf , -.Nm sglist_append_mb_ext_pgs +.Nm sglist_append_mbuf_epg only adds ranges for a single mbuf, not an entire mbuf chain. .Pp Modified: head/sys/dev/cxgbe/crypto/t4_kern_tls.c ============================================================================== --- head/sys/dev/cxgbe/crypto/t4_kern_tls.c Sat May 2 23:38:13 2020 (r360573) +++ head/sys/dev/cxgbe/crypto/t4_kern_tls.c Sat May 2 23:46:29 2020 (r360574) @@ -1064,7 +1064,7 @@ ktls_wr_len(struct tlspcb *tlsp, struct mbuf *m, struc wr_len += roundup2(imm_len, 16); /* TLS record payload via DSGL. */ - *nsegsp = sglist_count_ext_pgs(m_tls, ext_pgs->hdr_len + offset, + *nsegsp = sglist_count_mbuf_epg(m_tls, ext_pgs->hdr_len + offset, plen - (ext_pgs->hdr_len + offset)); wr_len += ktls_sgl_size(*nsegsp); @@ -1799,7 +1799,7 @@ ktls_write_tls_wr(struct tlspcb *tlsp, struct sge_txq /* Recalculate 'nsegs' if cached value is not available. */ if (nsegs == 0) - nsegs = sglist_count_ext_pgs(m_tls, ext_pgs->hdr_len + + nsegs = sglist_count_mbuf_epg(m_tls, ext_pgs->hdr_len + offset, plen - (ext_pgs->hdr_len + offset)); /* Calculate the size of the TLS work request. */ @@ -2067,7 +2067,7 @@ ktls_write_tls_wr(struct tlspcb *tlsp, struct sge_txq /* SGL for record payload */ sglist_reset(txq->gl); - if (sglist_append_ext_pgs(txq->gl, m_tls, ext_pgs->hdr_len + offset, + if (sglist_append_mbuf_epg(txq->gl, m_tls, ext_pgs->hdr_len + offset, plen - (ext_pgs->hdr_len + offset)) != 0) { #ifdef INVARIANTS panic("%s: failed to append sglist", __func__); Modified: head/sys/dev/cxgbe/t4_sge.c ============================================================================== --- head/sys/dev/cxgbe/t4_sge.c Sat May 2 23:38:13 2020 (r360573) +++ head/sys/dev/cxgbe/t4_sge.c Sat May 2 23:46:29 2020 (r360574) @@ -2413,23 +2413,21 @@ m_advance(struct mbuf **pm, int *poffset, int len) static inline int count_mbuf_ext_pgs(struct mbuf *m, int skip, vm_paddr_t *nextaddr) { - struct mbuf_ext_pgs *ext_pgs; vm_paddr_t paddr; int i, len, off, pglen, pgoff, seglen, segoff; int nsegs = 0; MBUF_EXT_PGS_ASSERT(m); - ext_pgs = &m->m_ext_pgs; off = mtod(m, vm_offset_t); len = m->m_len; off += skip; len -= skip; - if (ext_pgs->hdr_len != 0) { - if (off >= ext_pgs->hdr_len) { - off -= ext_pgs->hdr_len; + if (m->m_ext_pgs.hdr_len != 0) { + if (off >= m->m_ext_pgs.hdr_len) { + off -= m->m_ext_pgs.hdr_len; } else { - seglen = ext_pgs->hdr_len - off; + seglen = m->m_ext_pgs.hdr_len - off; segoff = off; seglen = min(seglen, len); off = 0; @@ -2441,9 +2439,9 @@ count_mbuf_ext_pgs(struct mbuf *m, int skip, vm_paddr_ *nextaddr = paddr + seglen; } } - pgoff = ext_pgs->first_pg_off; - for (i = 0; i < ext_pgs->npgs && len > 0; i++) { - pglen = mbuf_ext_pg_len(ext_pgs, i, pgoff); + pgoff = m->m_ext_pgs.first_pg_off; + for (i = 0; i < m->m_ext_pgs.npgs && len > 0; i++) { + pglen = mbuf_ext_pg_len(&m->m_ext_pgs, i, pgoff); if (off >= pglen) { off -= pglen; pgoff = 0; @@ -2461,7 +2459,7 @@ count_mbuf_ext_pgs(struct mbuf *m, int skip, vm_paddr_ pgoff = 0; }; if (len != 0) { - seglen = min(len, ext_pgs->trail_len - off); + seglen = min(len, m->m_ext_pgs.trail_len - off); len -= seglen; paddr = pmap_kextract((vm_offset_t)&m->m_epg_trail[off]); if (*nextaddr != paddr) @@ -5838,9 +5836,12 @@ write_ethofld_wr(struct cxgbe_rate_tag *cst, struct fw immhdrs -= m0->m_len; continue; } - - sglist_append(&sg, mtod(m0, char *) + immhdrs, - m0->m_len - immhdrs); + if (m0->m_flags & M_NOMAP) + sglist_append_mbuf_epg(&sg, m0, + mtod(m0, vm_offset_t), m0->m_len); + else + sglist_append(&sg, mtod(m0, char *) + immhdrs, + m0->m_len - immhdrs); immhdrs = 0; } MPASS(sg.sg_nseg == nsegs); Modified: head/sys/dev/cxgbe/tom/t4_cpl_io.c ============================================================================== --- head/sys/dev/cxgbe/tom/t4_cpl_io.c Sat May 2 23:38:13 2020 (r360573) +++ head/sys/dev/cxgbe/tom/t4_cpl_io.c Sat May 2 23:46:29 2020 (r360574) @@ -611,7 +611,8 @@ write_tx_sgl(void *dst, struct mbuf *start, struct mbu i = -1; for (m = start; m != stop; m = m->m_next) { if (m->m_flags & M_NOMAP) - rc = sglist_append_mb_ext_pgs(&sg, m); + rc = sglist_append_mbuf_epg(&sg, m, + mtod(m, vm_offset_t), m->m_len); else rc = sglist_append(&sg, mtod(m, void *), m->m_len); if (__predict_false(rc != 0)) @@ -742,7 +743,8 @@ t4_push_frames(struct adapter *sc, struct toepcb *toep break; } #endif - n = sglist_count_mb_ext_pgs(m); + n = sglist_count_mbuf_epg(m, + mtod(m, vm_offset_t), m->m_len); } else n = sglist_count(mtod(m, void *), m->m_len); Modified: head/sys/kern/subr_bus_dma.c ============================================================================== --- head/sys/kern/subr_bus_dma.c Sat May 2 23:38:13 2020 (r360573) +++ head/sys/kern/subr_bus_dma.c Sat May 2 23:46:29 2020 (r360574) @@ -116,14 +116,12 @@ _bus_dmamap_load_plist(bus_dma_tag_t dmat, bus_dmamap_ * Load an unmapped mbuf */ static int -_bus_dmamap_load_unmapped_mbuf_sg(bus_dma_tag_t dmat, bus_dmamap_t map, +_bus_dmamap_load_mbuf_epg(bus_dma_tag_t dmat, bus_dmamap_t map, struct mbuf *m, bus_dma_segment_t *segs, int *nsegs, int flags) { - struct mbuf_ext_pgs *ext_pgs; int error, i, off, len, pglen, pgoff, seglen, segoff; MBUF_EXT_PGS_ASSERT(m); - ext_pgs = &m->m_ext_pgs; len = m->m_len; error = 0; @@ -131,11 +129,11 @@ _bus_dmamap_load_unmapped_mbuf_sg(bus_dma_tag_t dmat, /* Skip over any data removed from the front. */ off = mtod(m, vm_offset_t); - if (ext_pgs->hdr_len != 0) { - if (off >= ext_pgs->hdr_len) { - off -= ext_pgs->hdr_len; + if (m->m_ext_pgs.hdr_len != 0) { + if (off >= m->m_ext_pgs.hdr_len) { + off -= m->m_ext_pgs.hdr_len; } else { - seglen = ext_pgs->hdr_len - off; + seglen = m->m_ext_pgs.hdr_len - off; segoff = off; seglen = min(seglen, len); off = 0; @@ -145,9 +143,9 @@ _bus_dmamap_load_unmapped_mbuf_sg(bus_dma_tag_t dmat, flags, segs, nsegs); } } - pgoff = ext_pgs->first_pg_off; - for (i = 0; i < ext_pgs->npgs && error == 0 && len > 0; i++) { - pglen = mbuf_ext_pg_len(ext_pgs, i, pgoff); + pgoff = m->m_ext_pgs.first_pg_off; + for (i = 0; i < m->m_ext_pgs.npgs && error == 0 && len > 0; i++) { + pglen = mbuf_ext_pg_len(&m->m_ext_pgs, i, pgoff); if (off >= pglen) { off -= pglen; pgoff = 0; @@ -163,9 +161,9 @@ _bus_dmamap_load_unmapped_mbuf_sg(bus_dma_tag_t dmat, pgoff = 0; }; if (len != 0 && error == 0) { - KASSERT((off + len) <= ext_pgs->trail_len, + KASSERT((off + len) <= m->m_ext_pgs.trail_len, ("off + len > trail (%d + %d > %d)", off, len, - ext_pgs->trail_len)); + m->m_ext_pgs.trail_len)); error = _bus_dmamap_load_buffer(dmat, map, &m->m_epg_trail[off], len, kernel_pmap, flags, segs, nsegs); @@ -187,7 +185,7 @@ _bus_dmamap_load_mbuf_sg(bus_dma_tag_t dmat, bus_dmama for (m = m0; m != NULL && error == 0; m = m->m_next) { if (m->m_len > 0) { if ((m->m_flags & M_NOMAP) != 0) - error = _bus_dmamap_load_unmapped_mbuf_sg(dmat, + error = _bus_dmamap_load_mbuf_epg(dmat, map, m, segs, nsegs, flags); else error = _bus_dmamap_load_buffer(dmat, map, Modified: head/sys/kern/subr_sglist.c ============================================================================== --- head/sys/kern/subr_sglist.c Sat May 2 23:38:13 2020 (r360573) +++ head/sys/kern/subr_sglist.c Sat May 2 23:46:29 2020 (r360574) @@ -223,9 +223,8 @@ sglist_count_vmpages(vm_page_t *m, size_t pgoff, size_ * describe an EXT_PGS buffer. */ int -sglist_count_ext_pgs(struct mbuf *m, size_t off, size_t len) +sglist_count_mbuf_epg(struct mbuf *m, size_t off, size_t len) { - struct mbuf_ext_pgs *ext_pgs = &m->m_ext_pgs; vm_paddr_t nextaddr, paddr; size_t seglen, segoff; int i, nsegs, pglen, pgoff; @@ -234,11 +233,11 @@ sglist_count_ext_pgs(struct mbuf *m, size_t off, size_ return (0); nsegs = 0; - if (ext_pgs->hdr_len != 0) { - if (off >= ext_pgs->hdr_len) { - off -= ext_pgs->hdr_len; + if (m->m_ext_pgs.hdr_len != 0) { + if (off >= m->m_ext_pgs.hdr_len) { + off -= m->m_ext_pgs.hdr_len; } else { - seglen = ext_pgs->hdr_len - off; + seglen = m->m_ext_pgs.hdr_len - off; segoff = off; seglen = MIN(seglen, len); off = 0; @@ -248,9 +247,9 @@ sglist_count_ext_pgs(struct mbuf *m, size_t off, size_ } } nextaddr = 0; - pgoff = ext_pgs->first_pg_off; - for (i = 0; i < ext_pgs->npgs && len > 0; i++) { - pglen = mbuf_ext_pg_len(ext_pgs, i, pgoff); + pgoff = m->m_ext_pgs.first_pg_off; + for (i = 0; i < m->m_ext_pgs.npgs && len > 0; i++) { + pglen = mbuf_ext_pg_len(&m->m_ext_pgs, i, pgoff); if (off >= pglen) { off -= pglen; pgoff = 0; @@ -268,7 +267,7 @@ sglist_count_ext_pgs(struct mbuf *m, size_t off, size_ pgoff = 0; }; if (len != 0) { - seglen = MIN(len, ext_pgs->trail_len - off); + seglen = MIN(len, m->m_ext_pgs.trail_len - off); len -= seglen; nsegs += sglist_count(&m->m_epg_trail[off], seglen); } @@ -277,18 +276,6 @@ sglist_count_ext_pgs(struct mbuf *m, size_t off, size_ } /* - * Determine the number of scatter/gather list elements needed to - * describe an EXT_PGS mbuf. - */ -int -sglist_count_mb_ext_pgs(struct mbuf *m) -{ - - MBUF_EXT_PGS_ASSERT(m); - return (sglist_count_ext_pgs(m, mtod(m, vm_offset_t), m->m_len)); -} - -/* * Allocate a scatter/gather list along with 'nsegs' segments. The * 'mflags' parameters are the same as passed to malloc(9). The caller * should use sglist_free() to free this list. @@ -390,24 +377,25 @@ sglist_append_phys(struct sglist *sg, vm_paddr_t paddr } /* - * Append the segments to describe an EXT_PGS buffer to a - * scatter/gather list. If there are insufficient segments, then this - * fails with EFBIG. + * Append the segments of single multi-page mbuf. + * If there are insufficient segments, then this fails with EFBIG. */ int -sglist_append_ext_pgs(struct sglist *sg, struct mbuf *m, size_t off, size_t len) +sglist_append_mbuf_epg(struct sglist *sg, struct mbuf *m, size_t off, + size_t len) { - struct mbuf_ext_pgs *ext_pgs = &m->m_ext_pgs; size_t seglen, segoff; vm_paddr_t paddr; int error, i, pglen, pgoff; + MBUF_EXT_PGS_ASSERT(m); + error = 0; - if (ext_pgs->hdr_len != 0) { - if (off >= ext_pgs->hdr_len) { - off -= ext_pgs->hdr_len; + if (m->m_ext_pgs.hdr_len != 0) { + if (off >= m->m_ext_pgs.hdr_len) { + off -= m->m_ext_pgs.hdr_len; } else { - seglen = ext_pgs->hdr_len - off; + seglen = m->m_ext_pgs.hdr_len - off; segoff = off; seglen = MIN(seglen, len); off = 0; @@ -416,9 +404,9 @@ sglist_append_ext_pgs(struct sglist *sg, struct mbuf * &m->m_epg_hdr[segoff], seglen); } } - pgoff = ext_pgs->first_pg_off; - for (i = 0; i < ext_pgs->npgs && error == 0 && len > 0; i++) { - pglen = mbuf_ext_pg_len(ext_pgs, i, pgoff); + pgoff = m->m_ext_pgs.first_pg_off; + for (i = 0; i < m->m_ext_pgs.npgs && error == 0 && len > 0; i++) { + pglen = mbuf_ext_pg_len(&m->m_ext_pgs, i, pgoff); if (off >= pglen) { off -= pglen; pgoff = 0; @@ -434,7 +422,7 @@ sglist_append_ext_pgs(struct sglist *sg, struct mbuf * pgoff = 0; }; if (error == 0 && len > 0) { - seglen = MIN(len, ext_pgs->trail_len - off); + seglen = MIN(len, m->m_ext_pgs.trail_len - off); len -= seglen; error = sglist_append(sg, &m->m_epg_trail[off], seglen); @@ -445,20 +433,6 @@ sglist_append_ext_pgs(struct sglist *sg, struct mbuf * } /* - * Append the segments to describe an EXT_PGS mbuf to a scatter/gather - * list. If there are insufficient segments, then this fails with - * EFBIG. - */ -int -sglist_append_mb_ext_pgs(struct sglist *sg, struct mbuf *m) -{ - - /* for now, all unmapped mbufs are assumed to be EXT_PGS */ - MBUF_EXT_PGS_ASSERT(m); - return (sglist_append_ext_pgs(sg, m, mtod(m, vm_offset_t), m->m_len)); -} - -/* * Append the segments that describe a single mbuf chain to a * scatter/gather list. If there are insufficient segments, then this * fails with EFBIG. @@ -478,7 +452,8 @@ sglist_append_mbuf(struct sglist *sg, struct mbuf *m0) for (m = m0; m != NULL; m = m->m_next) { if (m->m_len > 0) { if ((m->m_flags & M_NOMAP) != 0) - error = sglist_append_mb_ext_pgs(sg, m); + error = sglist_append_mbuf_epg(sg, m, + mtod(m, vm_offset_t), m->m_len); else error = sglist_append(sg, m->m_data, m->m_len); Modified: head/sys/sys/sglist.h ============================================================================== --- head/sys/sys/sglist.h Sat May 2 23:38:13 2020 (r360573) +++ head/sys/sys/sglist.h Sat May 2 23:46:29 2020 (r360574) @@ -87,10 +87,9 @@ sglist_hold(struct sglist *sg) struct sglist *sglist_alloc(int nsegs, int mflags); int sglist_append(struct sglist *sg, void *buf, size_t len); int sglist_append_bio(struct sglist *sg, struct bio *bp); -int sglist_append_ext_pgs(struct sglist *sg, struct mbuf *m, size_t off, - size_t len); -int sglist_append_mb_ext_pgs(struct sglist *sg, struct mbuf *m); int sglist_append_mbuf(struct sglist *sg, struct mbuf *m0); +int sglist_append_mbuf_epg(struct sglist *sg, struct mbuf *m0, size_t off, + size_t len); int sglist_append_phys(struct sglist *sg, vm_paddr_t paddr, size_t len); int sglist_append_sglist(struct sglist *sg, struct sglist *source, @@ -104,8 +103,7 @@ struct sglist *sglist_build(void *buf, size_t len, int struct sglist *sglist_clone(struct sglist *sg, int mflags); int sglist_consume_uio(struct sglist *sg, struct uio *uio, size_t resid); int sglist_count(void *buf, size_t len); -int sglist_count_ext_pgs(struct mbuf *m, size_t off, size_t len); -int sglist_count_mb_ext_pgs(struct mbuf *m); +int sglist_count_mbuf_epg(struct mbuf *m, size_t off, size_t len); int sglist_count_vmpages(vm_page_t *m, size_t pgoff, size_t len); void sglist_free(struct sglist *sg); int sglist_join(struct sglist *first, struct sglist *second); From owner-svn-src-all@freebsd.org Sat May 2 23:52: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 4C88B2C88DE; Sat, 2 May 2020 23:52:37 +0000 (UTC) (envelope-from glebius@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 49F5X51GMBz3MMP; Sat, 2 May 2020 23:52:37 +0000 (UTC) (envelope-from glebius@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 26B291CBF; Sat, 2 May 2020 23:52:37 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 042NqboM084639; Sat, 2 May 2020 23:52:37 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 042NqZr2084631; Sat, 2 May 2020 23:52:35 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <202005022352.042NqZr2084631@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Sat, 2 May 2020 23:52:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360575 - in head/sys: dev/cxgbe dev/cxgbe/tom kern sys X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: in head/sys: dev/cxgbe dev/cxgbe/tom kern sys X-SVN-Commit-Revision: 360575 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, 02 May 2020 23:52:37 -0000 Author: glebius Date: Sat May 2 23:52:35 2020 New Revision: 360575 URL: https://svnweb.freebsd.org/changeset/base/360575 Log: Step 2.3: Rename mbuf_ext_pg_len() to m_epg_pagelen() that uses mbuf argument. Reviewed by: gallatin Differential Revision: https://reviews.freebsd.org/D24598 Modified: head/sys/dev/cxgbe/t4_sge.c head/sys/dev/cxgbe/tom/t4_tls.c head/sys/kern/kern_mbuf.c head/sys/kern/subr_bus_dma.c head/sys/kern/subr_sglist.c head/sys/kern/uipc_ktls.c head/sys/kern/uipc_mbuf.c head/sys/sys/mbuf.h Modified: head/sys/dev/cxgbe/t4_sge.c ============================================================================== --- head/sys/dev/cxgbe/t4_sge.c Sat May 2 23:46:29 2020 (r360574) +++ head/sys/dev/cxgbe/t4_sge.c Sat May 2 23:52:35 2020 (r360575) @@ -2441,7 +2441,7 @@ count_mbuf_ext_pgs(struct mbuf *m, int skip, vm_paddr_ } pgoff = m->m_ext_pgs.first_pg_off; for (i = 0; i < m->m_ext_pgs.npgs && len > 0; i++) { - pglen = mbuf_ext_pg_len(&m->m_ext_pgs, i, pgoff); + pglen = m_epg_pagelen(m, i, pgoff); if (off >= pglen) { off -= pglen; pgoff = 0; Modified: head/sys/dev/cxgbe/tom/t4_tls.c ============================================================================== --- head/sys/dev/cxgbe/tom/t4_tls.c Sat May 2 23:46:29 2020 (r360574) +++ head/sys/dev/cxgbe/tom/t4_tls.c Sat May 2 23:52:35 2020 (r360575) @@ -1655,13 +1655,13 @@ write_ktlstx_sgl(void *dst, struct mbuf *m, int nsegs) /* Figure out the first S/G length. */ pa = m->m_epg_pa[0] + m->m_ext_pgs.first_pg_off; usgl->addr0 = htobe64(pa); - len = mbuf_ext_pg_len(&m->m_ext_pgs, 0, m->m_ext_pgs.first_pg_off); + len = m_epg_pagelen(m, 0, m->m_ext_pgs.first_pg_off); pa += len; for (i = 1; i < m->m_ext_pgs.npgs; i++) { if (m->m_epg_pa[i] != pa) break; - len += mbuf_ext_pg_len(&m->m_ext_pgs, i, 0); - pa += mbuf_ext_pg_len(&m->m_ext_pgs, i, 0); + len += m_epg_pagelen(m, i, 0); + pa += m_epg_pagelen(m, i, 0); } usgl->len0 = htobe32(len); #ifdef INVARIANTS @@ -1679,11 +1679,11 @@ write_ktlstx_sgl(void *dst, struct mbuf *m, int nsegs) #endif pa = m->m_epg_pa[i]; usgl->sge[j / 2].addr[j & 1] = htobe64(pa); - len = mbuf_ext_pg_len(&m->m_ext_pgs, i, 0); + len = m_epg_pagelen(m, i, 0); pa += len; } else { - len += mbuf_ext_pg_len(&m->m_ext_pgs, i, 0); - pa += mbuf_ext_pg_len(&m->m_ext_pgs, i, 0); + len += m_epg_pagelen(m, i, 0); + pa += m_epg_pagelen(m, i, 0); } } if (j >= 0) { Modified: head/sys/kern/kern_mbuf.c ============================================================================== --- head/sys/kern/kern_mbuf.c Sat May 2 23:46:29 2020 (r360574) +++ head/sys/kern/kern_mbuf.c Sat May 2 23:52:35 2020 (r360575) @@ -983,7 +983,7 @@ _mb_unmapped_to_ext(struct mbuf *m) } pgoff = ext_pgs->first_pg_off; for (i = 0; i < ext_pgs->npgs && len > 0; i++) { - pglen = mbuf_ext_pg_len(ext_pgs, i, pgoff); + pglen = m_epg_pagelen(m, i, pgoff); if (off >= pglen) { off -= pglen; pgoff = 0; Modified: head/sys/kern/subr_bus_dma.c ============================================================================== --- head/sys/kern/subr_bus_dma.c Sat May 2 23:46:29 2020 (r360574) +++ head/sys/kern/subr_bus_dma.c Sat May 2 23:52:35 2020 (r360575) @@ -145,7 +145,7 @@ _bus_dmamap_load_mbuf_epg(bus_dma_tag_t dmat, bus_dmam } pgoff = m->m_ext_pgs.first_pg_off; for (i = 0; i < m->m_ext_pgs.npgs && error == 0 && len > 0; i++) { - pglen = mbuf_ext_pg_len(&m->m_ext_pgs, i, pgoff); + pglen = m_epg_pagelen(m, i, pgoff); if (off >= pglen) { off -= pglen; pgoff = 0; Modified: head/sys/kern/subr_sglist.c ============================================================================== --- head/sys/kern/subr_sglist.c Sat May 2 23:46:29 2020 (r360574) +++ head/sys/kern/subr_sglist.c Sat May 2 23:52:35 2020 (r360575) @@ -249,7 +249,7 @@ sglist_count_mbuf_epg(struct mbuf *m, size_t off, size nextaddr = 0; pgoff = m->m_ext_pgs.first_pg_off; for (i = 0; i < m->m_ext_pgs.npgs && len > 0; i++) { - pglen = mbuf_ext_pg_len(&m->m_ext_pgs, i, pgoff); + pglen = m_epg_pagelen(m, i, pgoff); if (off >= pglen) { off -= pglen; pgoff = 0; @@ -406,7 +406,7 @@ sglist_append_mbuf_epg(struct sglist *sg, struct mbuf } pgoff = m->m_ext_pgs.first_pg_off; for (i = 0; i < m->m_ext_pgs.npgs && error == 0 && len > 0; i++) { - pglen = mbuf_ext_pg_len(&m->m_ext_pgs, i, pgoff); + pglen = m_epg_pagelen(m, i, pgoff); if (off >= pglen) { off -= pglen; pgoff = 0; Modified: head/sys/kern/uipc_ktls.c ============================================================================== --- head/sys/kern/uipc_ktls.c Sat May 2 23:46:29 2020 (r360574) +++ head/sys/kern/uipc_ktls.c Sat May 2 23:52:35 2020 (r360575) @@ -1550,7 +1550,7 @@ ktls_encrypt(struct mbuf *top) off = pgs->first_pg_off; for (i = 0; i < pgs->npgs; i++, off = 0) { - len = mbuf_ext_pg_len(pgs, i, off); + len = m_epg_pagelen(m, i, off); src_iov[i].iov_len = len; src_iov[i].iov_base = (char *)(void *)PHYS_TO_DMAP(m->m_epg_pa[i]) + Modified: head/sys/kern/uipc_mbuf.c ============================================================================== --- head/sys/kern/uipc_mbuf.c Sat May 2 23:46:29 2020 (r360574) +++ head/sys/kern/uipc_mbuf.c Sat May 2 23:52:35 2020 (r360575) @@ -1805,7 +1805,7 @@ m_unmappedtouio(const struct mbuf *m, int m_off, struc } pgoff = ext_pgs->first_pg_off; for (i = 0; i < ext_pgs->npgs && error == 0 && len > 0; i++) { - pglen = mbuf_ext_pg_len(ext_pgs, i, pgoff); + pglen = m_epg_pagelen(m, i, pgoff); if (off >= pglen) { off -= pglen; pgoff = 0; Modified: head/sys/sys/mbuf.h ============================================================================== --- head/sys/sys/mbuf.h Sat May 2 23:46:29 2020 (r360574) +++ head/sys/sys/mbuf.h Sat May 2 23:52:35 2020 (r360575) @@ -388,12 +388,14 @@ struct mbuf { #ifdef _KERNEL static inline int -mbuf_ext_pg_len(struct mbuf_ext_pgs *ext_pgs, int pidx, int pgoff) +m_epg_pagelen(const struct mbuf *m, int pidx, int pgoff) { + KASSERT(pgoff == 0 || pidx == 0, - ("page %d with non-zero offset %d in %p", pidx, pgoff, ext_pgs)); - if (pidx == ext_pgs->npgs - 1) { - return (ext_pgs->last_pg_len); + ("page %d with non-zero offset %d in %p", pidx, pgoff, m)); + + if (pidx == m->m_ext_pgs.npgs - 1) { + return (m->m_ext_pgs.last_pg_len); } else { return (PAGE_SIZE - pgoff); } From owner-svn-src-all@freebsd.org Sat May 2 23:58: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 2024D2C8BBE; Sat, 2 May 2020 23:58:21 +0000 (UTC) (envelope-from glebius@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 49F5fj02yxz3MWW; Sat, 2 May 2020 23:58:21 +0000 (UTC) (envelope-from glebius@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 F0ACE1CC6; Sat, 2 May 2020 23:58:20 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 042NwKe1084965; Sat, 2 May 2020 23:58:20 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 042NwKia084962; Sat, 2 May 2020 23:58:20 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <202005022358.042NwKia084962@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Sat, 2 May 2020 23:58:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360576 - in head/sys/dev: cxgbe/crypto cxgbe/tom mlx5/mlx5_en X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: in head/sys/dev: cxgbe/crypto cxgbe/tom mlx5/mlx5_en X-SVN-Commit-Revision: 360576 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, 02 May 2020 23:58:21 -0000 Author: glebius Date: Sat May 2 23:58:20 2020 New Revision: 360576 URL: https://svnweb.freebsd.org/changeset/base/360576 Log: Step 2.4: Stop using 'struct mbuf_ext_pgs' in drivers. Reviewed by: gallatin, hselasky Differential Revision: https://reviews.freebsd.org/D24598 Modified: head/sys/dev/cxgbe/crypto/t4_kern_tls.c head/sys/dev/cxgbe/tom/t4_cpl_io.c head/sys/dev/mlx5/mlx5_en/mlx5_en_hw_tls.c Modified: head/sys/dev/cxgbe/crypto/t4_kern_tls.c ============================================================================== --- head/sys/dev/cxgbe/crypto/t4_kern_tls.c Sat May 2 23:52:35 2020 (r360575) +++ head/sys/dev/cxgbe/crypto/t4_kern_tls.c Sat May 2 23:58:20 2020 (r360576) @@ -900,12 +900,10 @@ ktls_base_wr_size(struct tlspcb *tlsp) static u_int ktls_tcp_payload_length(struct tlspcb *tlsp, struct mbuf *m_tls) { - struct mbuf_ext_pgs *ext_pgs; struct tls_record_layer *hdr; u_int plen, mlen; MBUF_EXT_PGS_ASSERT(m_tls); - ext_pgs = &m_tls->m_ext_pgs; hdr = (void *)m_tls->m_epg_hdr; plen = ntohs(hdr->tls_length); @@ -924,8 +922,8 @@ ktls_tcp_payload_length(struct tlspcb *tlsp, struct mb * trim the length to avoid sending any of the trailer. There * is no way to send a partial trailer currently. */ - if (mlen > TLS_HEADER_LENGTH + plen - ext_pgs->trail_len) - mlen = TLS_HEADER_LENGTH + plen - ext_pgs->trail_len; + if (mlen > TLS_HEADER_LENGTH + plen - m_tls->m_ext_pgs.trail_len) + mlen = TLS_HEADER_LENGTH + plen - m_tls->m_ext_pgs.trail_len; /* @@ -953,7 +951,6 @@ ktls_tcp_payload_length(struct tlspcb *tlsp, struct mb static u_int ktls_payload_offset(struct tlspcb *tlsp, struct mbuf *m_tls) { - struct mbuf_ext_pgs *ext_pgs; struct tls_record_layer *hdr; u_int offset, plen; #ifdef INVARIANTS @@ -961,14 +958,13 @@ ktls_payload_offset(struct tlspcb *tlsp, struct mbuf * #endif MBUF_EXT_PGS_ASSERT(m_tls); - ext_pgs = &m_tls->m_ext_pgs; hdr = (void *)m_tls->m_epg_hdr; plen = ntohs(hdr->tls_length); #ifdef INVARIANTS mlen = mtod(m_tls, vm_offset_t) + m_tls->m_len; MPASS(mlen < TLS_HEADER_LENGTH + plen); #endif - if (mtod(m_tls, vm_offset_t) <= ext_pgs->hdr_len) + if (mtod(m_tls, vm_offset_t) <= m_tls->m_ext_pgs.hdr_len) return (0); if (tlsp->enc_mode == SCMD_CIPH_MODE_AES_GCM) { /* @@ -979,8 +975,8 @@ ktls_payload_offset(struct tlspcb *tlsp, struct mbuf * * the offset at the last byte of the record payload * to send the last cipher block. */ - offset = min(mtod(m_tls, vm_offset_t) - ext_pgs->hdr_len, - (plen - TLS_HEADER_LENGTH - ext_pgs->trail_len) - 1); + offset = min(mtod(m_tls, vm_offset_t) - m_tls->m_ext_pgs.hdr_len, + (plen - TLS_HEADER_LENGTH - m_tls->m_ext_pgs.trail_len) - 1); return (rounddown(offset, AES_BLOCK_LEN)); } return (0); @@ -1003,19 +999,17 @@ static int ktls_wr_len(struct tlspcb *tlsp, struct mbuf *m, struct mbuf *m_tls, int *nsegsp) { - struct mbuf_ext_pgs *ext_pgs; struct tls_record_layer *hdr; u_int imm_len, offset, plen, wr_len, tlen; MBUF_EXT_PGS_ASSERT(m_tls); - ext_pgs = &m_tls->m_ext_pgs; /* * Determine the size of the TLS record payload to send * excluding header and trailer. */ tlen = ktls_tcp_payload_length(tlsp, m_tls); - if (tlen <= ext_pgs->hdr_len) { + if (tlen <= m_tls->m_ext_pgs.hdr_len) { /* * For requests that only want to send the TLS header, * send a tunnelled packet as immediate data. @@ -1041,7 +1035,7 @@ ktls_wr_len(struct tlspcb *tlsp, struct mbuf *m, struc } hdr = (void *)m_tls->m_epg_hdr; - plen = TLS_HEADER_LENGTH + ntohs(hdr->tls_length) - ext_pgs->trail_len; + plen = TLS_HEADER_LENGTH + ntohs(hdr->tls_length) - m_tls->m_ext_pgs.trail_len; if (tlen < plen) { plen = tlen; offset = ktls_payload_offset(tlsp, m_tls); @@ -1058,14 +1052,14 @@ ktls_wr_len(struct tlspcb *tlsp, struct mbuf *m, struc */ imm_len = 0; if (offset == 0) - imm_len += ext_pgs->hdr_len; + imm_len += m_tls->m_ext_pgs.hdr_len; if (plen == tlen) imm_len += AES_BLOCK_LEN; wr_len += roundup2(imm_len, 16); /* TLS record payload via DSGL. */ - *nsegsp = sglist_count_mbuf_epg(m_tls, ext_pgs->hdr_len + offset, - plen - (ext_pgs->hdr_len + offset)); + *nsegsp = sglist_count_mbuf_epg(m_tls, m_tls->m_ext_pgs.hdr_len + offset, + plen - (m_tls->m_ext_pgs.hdr_len + offset)); wr_len += ktls_sgl_size(*nsegsp); wr_len = roundup2(wr_len, 16); @@ -1466,7 +1460,6 @@ ktls_write_tunnel_packet(struct sge_txq *txq, void *ds struct ip *ip, newip; struct ip6_hdr *ip6, newip6; struct tcphdr *tcp, newtcp; - struct mbuf_ext_pgs *ext_pgs; caddr_t out; TXQ_LOCK_ASSERT_OWNED(txq); @@ -1474,7 +1467,6 @@ ktls_write_tunnel_packet(struct sge_txq *txq, void *ds /* Locate the template TLS header. */ MBUF_EXT_PGS_ASSERT(m_tls); - ext_pgs = &m_tls->m_ext_pgs; /* This should always be the last TLS record in a chain. */ MPASS(m_tls->m_next == NULL); @@ -1577,7 +1569,6 @@ ktls_write_tls_wr(struct tlspcb *tlsp, struct sge_txq struct ulptx_idata *idata; struct cpl_tx_sec_pdu *sec_pdu; struct cpl_tx_data *tx_data; - struct mbuf_ext_pgs *ext_pgs; struct tls_record_layer *hdr; char *iv, *out; u_int aad_start, aad_stop; @@ -1603,20 +1594,19 @@ ktls_write_tls_wr(struct tlspcb *tlsp, struct sge_txq /* Locate the TLS header. */ MBUF_EXT_PGS_ASSERT(m_tls); - ext_pgs = &m_tls->m_ext_pgs; hdr = (void *)m_tls->m_epg_hdr; - plen = TLS_HEADER_LENGTH + ntohs(hdr->tls_length) - ext_pgs->trail_len; + plen = TLS_HEADER_LENGTH + ntohs(hdr->tls_length) - m_tls->m_ext_pgs.trail_len; /* Determine how much of the TLS record to send. */ tlen = ktls_tcp_payload_length(tlsp, m_tls); - if (tlen <= ext_pgs->hdr_len) { + if (tlen <= m_tls->m_ext_pgs.hdr_len) { /* * For requests that only want to send the TLS header, * send a tunnelled packet as immediate data. */ #ifdef VERBOSE_TRACES CTR3(KTR_CXGBE, "%s: tid %d header-only TLS record %u", - __func__, tlsp->tid, (u_int)ext_pgs->seqno); + __func__, tlsp->tid, (u_int)m_tls->m_ext_pgs.seqno); #endif return (ktls_write_tunnel_packet(txq, dst, m, m_tls, available, tcp_seqno, pidx)); @@ -1626,7 +1616,7 @@ ktls_write_tls_wr(struct tlspcb *tlsp, struct sge_txq offset = ktls_payload_offset(tlsp, m_tls); #ifdef VERBOSE_TRACES CTR4(KTR_CXGBE, "%s: tid %d short TLS record %u with offset %u", - __func__, tlsp->tid, (u_int)ext_pgs->seqno, offset); + __func__, tlsp->tid, (u_int)m_tls->m_ext_pgs.seqno, offset); #endif if (m_tls->m_next == NULL && (tcp->th_flags & TH_FIN) != 0) { txq->kern_tls_fin_short++; @@ -1681,10 +1671,10 @@ ktls_write_tls_wr(struct tlspcb *tlsp, struct sge_txq */ tx_max_offset = mtod(m_tls, vm_offset_t); if (tx_max_offset > TLS_HEADER_LENGTH + ntohs(hdr->tls_length) - - ext_pgs->trail_len) { + m_tls->m_ext_pgs.trail_len) { /* Always send the full trailer. */ tx_max_offset = TLS_HEADER_LENGTH + ntohs(hdr->tls_length) - - ext_pgs->trail_len; + m_tls->m_ext_pgs.trail_len; } if (tlsp->enc_mode == SCMD_CIPH_MODE_AES_CBC && tx_max_offset > TLS_HEADER_LENGTH) { @@ -1799,15 +1789,15 @@ ktls_write_tls_wr(struct tlspcb *tlsp, struct sge_txq /* Recalculate 'nsegs' if cached value is not available. */ if (nsegs == 0) - nsegs = sglist_count_mbuf_epg(m_tls, ext_pgs->hdr_len + - offset, plen - (ext_pgs->hdr_len + offset)); + nsegs = sglist_count_mbuf_epg(m_tls, m_tls->m_ext_pgs.hdr_len + + offset, plen - (m_tls->m_ext_pgs.hdr_len + offset)); /* Calculate the size of the TLS work request. */ twr_len = ktls_base_wr_size(tlsp); imm_len = 0; if (offset == 0) - imm_len += ext_pgs->hdr_len; + imm_len += m_tls->m_ext_pgs.hdr_len; if (plen == tlen) imm_len += AES_BLOCK_LEN; twr_len += roundup2(imm_len, 16); @@ -1923,13 +1913,13 @@ ktls_write_tls_wr(struct tlspcb *tlsp, struct sge_txq cipher_stop = 0; sec_pdu->pldlen = htobe32(16 + plen - - (ext_pgs->hdr_len + offset)); + (m_tls->m_ext_pgs.hdr_len + offset)); /* These two flits are actually a CPL_TLS_TX_SCMD_FMT. */ sec_pdu->seqno_numivs = tlsp->scmd0_short.seqno_numivs; sec_pdu->ivgen_hdrlen = htobe32( tlsp->scmd0_short.ivgen_hdrlen | - V_SCMD_HDR_LEN(offset == 0 ? ext_pgs->hdr_len : 0)); + V_SCMD_HDR_LEN(offset == 0 ? m_tls->m_ext_pgs.hdr_len : 0)); txq->kern_tls_short++; } else { @@ -1942,7 +1932,7 @@ ktls_write_tls_wr(struct tlspcb *tlsp, struct sge_txq aad_start = 1; aad_stop = TLS_HEADER_LENGTH; iv_offset = TLS_HEADER_LENGTH + 1; - cipher_start = ext_pgs->hdr_len + 1; + cipher_start = m_tls->m_ext_pgs.hdr_len + 1; if (tlsp->enc_mode == SCMD_CIPH_MODE_AES_GCM) { cipher_stop = 0; auth_start = cipher_start; @@ -1981,7 +1971,7 @@ ktls_write_tls_wr(struct tlspcb *tlsp, struct sge_txq V_CPL_TX_SEC_PDU_AUTHSTOP(auth_stop) | V_CPL_TX_SEC_PDU_AUTHINSERT(auth_insert)); - sec_pdu->scmd1 = htobe64(ext_pgs->seqno); + sec_pdu->scmd1 = htobe64(m_tls->m_ext_pgs.seqno); /* Key context */ out = (void *)(sec_pdu + 1); @@ -2021,8 +2011,8 @@ ktls_write_tls_wr(struct tlspcb *tlsp, struct sge_txq tx_data->rsvd = htobe32(tcp_seqno); } else { tx_data->len = htobe32(V_TX_DATA_MSS(mss) | - V_TX_LENGTH(tlen - (ext_pgs->hdr_len + offset))); - tx_data->rsvd = htobe32(tcp_seqno + ext_pgs->hdr_len + offset); + V_TX_LENGTH(tlen - (m_tls->m_ext_pgs.hdr_len + offset))); + tx_data->rsvd = htobe32(tcp_seqno + m_tls->m_ext_pgs.hdr_len + offset); } tx_data->flags = htobe32(F_TX_BYPASS); if (last_wr && tcp->th_flags & TH_PUSH) @@ -2031,8 +2021,8 @@ ktls_write_tls_wr(struct tlspcb *tlsp, struct sge_txq /* Populate the TLS header */ out = (void *)(tx_data + 1); if (offset == 0) { - memcpy(out, m_tls->m_epg_hdr, ext_pgs->hdr_len); - out += ext_pgs->hdr_len; + memcpy(out, m_tls->m_epg_hdr, m_tls->m_ext_pgs.hdr_len); + out += m_tls->m_ext_pgs.hdr_len; } /* AES IV for a short record. */ @@ -2067,8 +2057,8 @@ ktls_write_tls_wr(struct tlspcb *tlsp, struct sge_txq /* SGL for record payload */ sglist_reset(txq->gl); - if (sglist_append_mbuf_epg(txq->gl, m_tls, ext_pgs->hdr_len + offset, - plen - (ext_pgs->hdr_len + offset)) != 0) { + if (sglist_append_mbuf_epg(txq->gl, m_tls, m_tls->m_ext_pgs.hdr_len + offset, + plen - (m_tls->m_ext_pgs.hdr_len + offset)) != 0) { #ifdef INVARIANTS panic("%s: failed to append sglist", __func__); #endif @@ -2090,7 +2080,7 @@ ktls_write_tls_wr(struct tlspcb *tlsp, struct sge_txq txq->kern_tls_waste += mtod(m_tls, vm_offset_t); else txq->kern_tls_waste += mtod(m_tls, vm_offset_t) - - (ext_pgs->hdr_len + offset); + (m_tls->m_ext_pgs.hdr_len + offset); } txsd = &txq->sdesc[pidx]; Modified: head/sys/dev/cxgbe/tom/t4_cpl_io.c ============================================================================== --- head/sys/dev/cxgbe/tom/t4_cpl_io.c Sat May 2 23:52:35 2020 (r360575) +++ head/sys/dev/cxgbe/tom/t4_cpl_io.c Sat May 2 23:58:20 2020 (r360576) @@ -1924,19 +1924,17 @@ aiotx_free_job(struct kaiocb *job) static void aiotx_free_pgs(struct mbuf *m) { - struct mbuf_ext_pgs *ext_pgs; struct kaiocb *job; vm_page_t pg; MBUF_EXT_PGS_ASSERT(m); - ext_pgs = &m->m_ext_pgs; job = m->m_ext.ext_arg1; #ifdef VERBOSE_TRACES CTR3(KTR_CXGBE, "%s: completed %d bytes for tid %d", __func__, m->m_len, jobtotid(job)); #endif - for (int i = 0; i < ext_pgs->npgs; i++) { + for (int i = 0; i < m->m_ext_pgs.npgs; i++) { pg = PHYS_TO_VM_PAGE(m->m_epg_pa[i]); vm_page_unwire(pg, PQ_ACTIVE); } @@ -1954,7 +1952,6 @@ alloc_aiotx_mbuf(struct kaiocb *job, int len) struct vmspace *vm; vm_page_t pgs[MBUF_PEXT_MAX_PGS]; struct mbuf *m, *top, *last; - struct mbuf_ext_pgs *ext_pgs; vm_map_t map; vm_offset_t start; int i, mlen, npages, pgoff; @@ -1992,16 +1989,15 @@ alloc_aiotx_mbuf(struct kaiocb *job, int len) break; } - ext_pgs = &m->m_ext_pgs; - ext_pgs->first_pg_off = pgoff; - ext_pgs->npgs = npages; + m->m_ext_pgs.first_pg_off = pgoff; + m->m_ext_pgs.npgs = npages; if (npages == 1) { KASSERT(mlen + pgoff <= PAGE_SIZE, ("%s: single page is too large (off %d len %d)", __func__, pgoff, mlen)); - ext_pgs->last_pg_len = mlen; + m->m_ext_pgs.last_pg_len = mlen; } else { - ext_pgs->last_pg_len = mlen - (PAGE_SIZE - pgoff) - + m->m_ext_pgs.last_pg_len = mlen - (PAGE_SIZE - pgoff) - (npages - 2) * PAGE_SIZE; } for (i = 0; i < npages; i++) Modified: head/sys/dev/mlx5/mlx5_en/mlx5_en_hw_tls.c ============================================================================== --- head/sys/dev/mlx5/mlx5_en/mlx5_en_hw_tls.c Sat May 2 23:52:35 2020 (r360575) +++ head/sys/dev/mlx5/mlx5_en/mlx5_en_hw_tls.c Sat May 2 23:58:20 2020 (r360576) @@ -680,13 +680,11 @@ done: static int mlx5e_sq_tls_populate(struct mbuf *mb, uint64_t *pseq) { - struct mbuf_ext_pgs *ext_pgs; for (; mb != NULL; mb = mb->m_next) { if (!(mb->m_flags & M_NOMAP)) continue; - ext_pgs = &mb->m_ext_pgs; - *pseq = ext_pgs->seqno; + *pseq = mb->m_ext_pgs.seqno; return (1); } return (0);