From owner-svn-src-projects@freebsd.org Sun Sep 22 17:31:27 2019 Return-Path: Delivered-To: svn-src-projects@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F0DA5127C07 for ; Sun, 22 Sep 2019 17:31:27 +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 46bvdC61SZz41h3; Sun, 22 Sep 2019 17:31:27 +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 B27F01E9C; Sun, 22 Sep 2019 17:31:27 +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 x8MHVRrB083631; Sun, 22 Sep 2019 17:31:27 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x8MHVRlC083630; Sun, 22 Sep 2019 17:31:27 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201909221731.x8MHVRlC083630@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 22 Sep 2019 17:31:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r352600 - projects/clang900-import/contrib/llvm/tools/lld/ELF/Arch X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: projects/clang900-import/contrib/llvm/tools/lld/ELF/Arch X-SVN-Commit-Revision: 352600 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Sep 2019 17:31:28 -0000 Author: dim Date: Sun Sep 22 17:31:27 2019 New Revision: 352600 URL: https://svnweb.freebsd.org/changeset/base/352600 Log: Pull in r372513 from upstream lld trunk (by Simon Atanasyan): [mips] Deduce MIPS specific ELF header flags from `emulation` In case of linking binary blobs which do not have any ELF headers, we can deduce MIPS ABI ELF header flags from an `emulation` option. Patch by Kyle Evans. Requested by: kevans :) Modified: projects/clang900-import/contrib/llvm/tools/lld/ELF/Arch/MipsArchTree.cpp Modified: projects/clang900-import/contrib/llvm/tools/lld/ELF/Arch/MipsArchTree.cpp ============================================================================== --- projects/clang900-import/contrib/llvm/tools/lld/ELF/Arch/MipsArchTree.cpp Sun Sep 22 16:10:25 2019 (r352599) +++ projects/clang900-import/contrib/llvm/tools/lld/ELF/Arch/MipsArchTree.cpp Sun Sep 22 17:31:27 2019 (r352600) @@ -294,12 +294,30 @@ static uint32_t getArchFlags(ArrayRef files return ret; } +// If we don't have any input files, we'll have to rely on the information we +// can derive from emulation information, since this at least gets us ABI. +static uint32_t getFlagsFromEmulation() { + uint32_t ret = 0; + + if (config->emulation.empty()) + return 0; + + if (config->ekind == ELF32BEKind || config->ekind == ELF32LEKind) { + if (config->mipsN32Abi) + ret |= EF_MIPS_ABI2; + else + ret |= EF_MIPS_ABI_O32; + } + + return ret; +} + template uint32_t elf::calcMipsEFlags() { std::vector v; for (InputFile *f : objectFiles) v.push_back({f, cast>(f)->getObj().getHeader()->e_flags}); if (v.empty()) - return 0; + return getFlagsFromEmulation(); checkFlags(v); return getMiscFlags(v) | getPicFlags(v) | getArchFlags(v); } From owner-svn-src-projects@freebsd.org Mon Sep 23 17:05:47 2019 Return-Path: Delivered-To: svn-src-projects@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 94F36FA492 for ; Mon, 23 Sep 2019 17:05:47 +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 46cW173Rqtz4G8P; Mon, 23 Sep 2019 17:05:47 +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 3CC2E19FC8; Mon, 23 Sep 2019 17:05:47 +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 x8NH5lEb044339; Mon, 23 Sep 2019 17:05:47 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x8NH5kCw044337; Mon, 23 Sep 2019 17:05:46 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201909231705.x8NH5kCw044337@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Mon, 23 Sep 2019 17:05:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r352629 - projects/clang900-import/contrib/llvm/lib/Target/X86 X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: projects/clang900-import/contrib/llvm/lib/Target/X86 X-SVN-Commit-Revision: 352629 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Sep 2019 17:05:47 -0000 Author: dim Date: Mon Sep 23 17:05:46 2019 New Revision: 352629 URL: https://svnweb.freebsd.org/changeset/base/352629 Log: Pull in r372606 from upstream llvm trunk (by Sanjay Patel): [x86] fix assert with horizontal math + broadcast of vector (PR43402) https://bugs.llvm.org/show_bug.cgi?id=43402 This should fix 'Assertion failed: ((HOp.getValueType() == MVT::v2f64 || HOp.getValueType() == MVT::v4f64) && HOp.getValueType() == VT && "Unexpected type for h-op"), function foldShuffleOfHorizOp, file contrib/llvm/lib/Target/X86/X86ISelLowering.cpp, line 33661' when building the devel/llvm90 port with CPUTYPE=haswell. PR: 240759 Modified: projects/clang900-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp projects/clang900-import/contrib/llvm/lib/Target/X86/X86ISelLowering.h Modified: projects/clang900-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp ============================================================================== --- projects/clang900-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp Mon Sep 23 15:58:54 2019 (r352628) +++ projects/clang900-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp Mon Sep 23 17:05:46 2019 (r352629) @@ -33651,14 +33651,14 @@ static SDValue foldShuffleOfHorizOp(SDNode *N, Selecti // When the operands of a horizontal math op are identical, the low half of // the result is the same as the high half. If a target shuffle is also - // replicating low and high halves, we don't need the shuffle. + // replicating low and high halves (and without changing the type/length of + // the vector), we don't need the shuffle. if (Opcode == X86ISD::MOVDDUP || Opcode == X86ISD::VBROADCAST) { - if (HOp.getScalarValueSizeInBits() == 64) { + if (HOp.getScalarValueSizeInBits() == 64 && HOp.getValueType() == VT) { // movddup (hadd X, X) --> hadd X, X // broadcast (extract_vec_elt (hadd X, X), 0) --> hadd X, X assert((HOp.getValueType() == MVT::v2f64 || - HOp.getValueType() == MVT::v4f64) && HOp.getValueType() == VT && - "Unexpected type for h-op"); + HOp.getValueType() == MVT::v4f64) && "Unexpected type for h-op"); return updateHOp(HOp, DAG); } return SDValue(); Modified: projects/clang900-import/contrib/llvm/lib/Target/X86/X86ISelLowering.h ============================================================================== --- projects/clang900-import/contrib/llvm/lib/Target/X86/X86ISelLowering.h Mon Sep 23 15:58:54 2019 (r352628) +++ projects/clang900-import/contrib/llvm/lib/Target/X86/X86ISelLowering.h Mon Sep 23 17:05:46 2019 (r352629) @@ -422,7 +422,8 @@ namespace llvm { // Tests Types Of a FP Values for scalar types. VFPCLASSS, - // Broadcast scalar to vector. + // Broadcast (splat) scalar or element 0 of a vector. If the operand is + // a vector, this node may change the vector length as part of the splat. VBROADCAST, // Broadcast mask to vector. VBROADCASTM, From owner-svn-src-projects@freebsd.org Thu Sep 26 18:24:06 2019 Return-Path: Delivered-To: svn-src-projects@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5759613082E for ; Thu, 26 Sep 2019 18:24:06 +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 46fNc61Z1Vz3HVb; Thu, 26 Sep 2019 18:24:06 +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 1915A469F; Thu, 26 Sep 2019 18:24:06 +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 x8QIO54T059761; Thu, 26 Sep 2019 18:24:05 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x8QIO55l059757; Thu, 26 Sep 2019 18:24:05 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201909261824.x8QIO55l059757@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Thu, 26 Sep 2019 18:24:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r352763 - in projects/clang900-import: contrib/openmp/runtime/src lib share/man/man5 share/mk X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in projects/clang900-import: contrib/openmp/runtime/src lib share/man/man5 share/mk X-SVN-Commit-Revision: 352763 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Sep 2019 18:24:06 -0000 Author: dim Date: Thu Sep 26 18:24:04 2019 New Revision: 352763 URL: https://svnweb.freebsd.org/changeset/base/352763 Log: Enable OpenMP for powerpc64 Summary: When powerpc64 switches to LLVM, use this patch to enable OpenMP as well. OpenMP on PPC is only for 64-bits, so don't make a 32-bit libomp. A change to openmp files is necesssary (under review on https://reviews.llvm.org/D67190), because it determines ELF format version based on endianness, which is incorrect. Reviewed by: alfredo.junior_eldorado.org.br, #manpages Differential Revision: https://reviews.freebsd.org/D21532 Modified: projects/clang900-import/contrib/openmp/runtime/src/kmp_platform.h projects/clang900-import/contrib/openmp/runtime/src/z_Linux_asm.S projects/clang900-import/lib/Makefile projects/clang900-import/share/man/man5/src.conf.5 projects/clang900-import/share/mk/src.opts.mk Modified: projects/clang900-import/contrib/openmp/runtime/src/kmp_platform.h ============================================================================== --- projects/clang900-import/contrib/openmp/runtime/src/kmp_platform.h Thu Sep 26 17:07:30 2019 (r352762) +++ projects/clang900-import/contrib/openmp/runtime/src/kmp_platform.h Thu Sep 26 18:24:04 2019 (r352763) @@ -93,9 +93,9 @@ #define KMP_ARCH_X86 0 #define KMP_ARCH_X86_64 0 #define KMP_ARCH_AARCH64 0 -#define KMP_ARCH_PPC64_BE 0 -#define KMP_ARCH_PPC64_LE 0 -#define KMP_ARCH_PPC64 (KMP_ARCH_PPC64_LE || KMP_ARCH_PPC64_BE) +#define KMP_ARCH_PPC64_ELFv1 0 +#define KMP_ARCH_PPC64_ELFv2 0 +#define KMP_ARCH_PPC64 (KMP_ARCH_PPC64_ELFv2 || KMP_ARCH_PPC64_ELFv1) #define KMP_ARCH_MIPS 0 #define KMP_ARCH_MIPS64 0 @@ -117,12 +117,12 @@ #undef KMP_ARCH_X86 #define KMP_ARCH_X86 1 #elif defined __powerpc64__ -#if defined __LITTLE_ENDIAN__ -#undef KMP_ARCH_PPC64_LE -#define KMP_ARCH_PPC64_LE 1 +#if defined(_CALL_ELF) && _CALL_ELF == 2 +#undef KMP_ARCH_PPC64_ELFv2 +#define KMP_ARCH_PPC64_ELFv2 1 #else -#undef KMP_ARCH_PPC64_BE -#define KMP_ARCH_PPC64_BE 1 +#undef KMP_ARCH_PPC64_ELFv1 +#define KMP_ARCH_PPC64_ELFv1 1 #endif #elif defined __aarch64__ #undef KMP_ARCH_AARCH64 Modified: projects/clang900-import/contrib/openmp/runtime/src/z_Linux_asm.S ============================================================================== --- projects/clang900-import/contrib/openmp/runtime/src/z_Linux_asm.S Thu Sep 26 17:07:30 2019 (r352762) +++ projects/clang900-import/contrib/openmp/runtime/src/z_Linux_asm.S Thu Sep 26 18:24:04 2019 (r352763) @@ -1328,12 +1328,12 @@ KMP_LABEL(kmp_1): // return: r3 (always 1/TRUE) // .text -# if KMP_ARCH_PPC64_LE +# if KMP_ARCH_PPC64_ELFv2 .abiversion 2 # endif .globl __kmp_invoke_microtask -# if KMP_ARCH_PPC64_LE +# if KMP_ARCH_PPC64_ELFv2 .p2align 4 # else .p2align 2 @@ -1341,7 +1341,7 @@ KMP_LABEL(kmp_1): .type __kmp_invoke_microtask,@function -# if KMP_ARCH_PPC64_LE +# if KMP_ARCH_PPC64_ELFv2 __kmp_invoke_microtask: .Lfunc_begin0: .Lfunc_gep0: @@ -1385,7 +1385,7 @@ __kmp_invoke_microtask: .cfi_offset lr, 16 // Compute the size necessary for the local stack frame. -# if KMP_ARCH_PPC64_LE +# if KMP_ARCH_PPC64_ELFv2 li 12, 72 # else li 12, 88 @@ -1463,7 +1463,7 @@ __kmp_invoke_microtask: // for the microtask begins 48 + 8*8 == 112 bytes above r1 for ELFv1 and // 32 + 8*8 == 96 bytes above r1 for ELFv2. addi 4, 4, 40 -# if KMP_ARCH_PPC64_LE +# if KMP_ARCH_PPC64_ELFv2 addi 12, 1, 88 # else addi 12, 1, 104 @@ -1475,7 +1475,7 @@ __kmp_invoke_microtask: bdnz .Lnext .Lcall: -# if KMP_ARCH_PPC64_LE +# if KMP_ARCH_PPC64_ELFv2 std 2, 24(1) mr 12, 3 #else @@ -1491,7 +1491,7 @@ __kmp_invoke_microtask: mtctr 12 bctrl -# if KMP_ARCH_PPC64_LE +# if KMP_ARCH_PPC64_ELFv2 ld 2, 24(1) # else ld 2, 40(1) Modified: projects/clang900-import/lib/Makefile ============================================================================== --- projects/clang900-import/lib/Makefile Thu Sep 26 17:07:30 2019 (r352762) +++ projects/clang900-import/lib/Makefile Thu Sep 26 18:24:04 2019 (r352763) @@ -194,7 +194,9 @@ _libproc= libproc _librtld_db= librtld_db .endif +.if ${MACHINE_ARCH} != "powerpc" SUBDIR.${MK_OPENMP}+= libomp +.endif SUBDIR.${MK_OPENSSL}+= libmp SUBDIR.${MK_PMC}+= libpmc libpmcstat SUBDIR.${MK_RADIUS_SUPPORT}+= libradius Modified: projects/clang900-import/share/man/man5/src.conf.5 ============================================================================== --- projects/clang900-import/share/man/man5/src.conf.5 Thu Sep 26 17:07:30 2019 (r352762) +++ projects/clang900-import/share/man/man5/src.conf.5 Thu Sep 26 18:24:04 2019 (r352763) @@ -1550,12 +1550,12 @@ Enable building openldap support for kerberos. Set to not build LLVM's OpenMP runtime. .Pp This is a default setting on -arm/arm, arm/armv6, arm/armv7, arm64/aarch64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpcspe, riscv/riscv64 and sparc64/sparc64. +arm/arm, arm/armv6, arm/armv7, arm64/aarch64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpcspe, riscv/riscv64 and sparc64/sparc64. .It Va WITH_OPENMP Set to build LLVM's OpenMP runtime. .Pp This is a default setting on -amd64/amd64 and i386/i386. +amd64/amd64, i386/i386 and powerpc/powerpc64. .It Va WITHOUT_OPENSSH Set to not build OpenSSH. .It Va WITHOUT_OPENSSL Modified: projects/clang900-import/share/mk/src.opts.mk ============================================================================== --- projects/clang900-import/share/mk/src.opts.mk Thu Sep 26 17:07:30 2019 (r352762) +++ projects/clang900-import/share/mk/src.opts.mk Thu Sep 26 18:24:04 2019 (r352763) @@ -397,7 +397,8 @@ BROKEN_OPTIONS+=HYPERV .endif # NVME is only aarch64, x86 and powerpc64 -.if ${__T} != "aarch64" && ${__T} != "amd64" && ${__T} != "i386" && ${__T} != "powerpc64" +.if ${__T} != "aarch64" && ${__T} != "amd64" && ${__T} != "i386" && \ + ${__T} != "powerpc64" BROKEN_OPTIONS+=NVME .endif @@ -406,7 +407,8 @@ BROKEN_OPTIONS+=NVME BROKEN_OPTIONS+=BSD_CRTBEGIN .endif -.if ${COMPILER_FEATURES:Mc++11} && (${__T} == "amd64" || ${__T} == "i386") +.if ${COMPILER_FEATURES:Mc++11} && \ + (${__T} == "amd64" || ${__T} == "i386" || ${__T} == "powerpc64") __DEFAULT_YES_OPTIONS+=OPENMP .else __DEFAULT_NO_OPTIONS+=OPENMP From owner-svn-src-projects@freebsd.org Thu Sep 26 18:26:01 2019 Return-Path: Delivered-To: svn-src-projects@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 70C601308B2 for ; Thu, 26 Sep 2019 18:26:01 +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 46fNfK31Msz3HdD; Thu, 26 Sep 2019 18:26:01 +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 4B80F46B7; Thu, 26 Sep 2019 18:26:01 +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 x8QIQ11p059944; Thu, 26 Sep 2019 18:26:01 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x8QIPsP3059909; Thu, 26 Sep 2019 18:25:54 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201909261825.x8QIPsP3059909@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Thu, 26 Sep 2019 18:25:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r352764 - in projects/clang900-import: . cddl/contrib/opensolaris/lib/libzfs/common contrib/ipfilter/tools contrib/libarchive/cat contrib/libarchive/cpio contrib/libarchive/libarchive c... X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in projects/clang900-import: . cddl/contrib/opensolaris/lib/libzfs/common contrib/ipfilter/tools contrib/libarchive/cat contrib/libarchive/cpio contrib/libarchive/libarchive contrib/libarchive/libarch... X-SVN-Commit-Revision: 352764 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Sep 2019 18:26:01 -0000 Author: dim Date: Thu Sep 26 18:25:54 2019 New Revision: 352764 URL: https://svnweb.freebsd.org/changeset/base/352764 Log: Merge ^/head r352587 through r352763. Added: projects/clang900-import/lib/libc/sys/shm_open.c - copied unchanged from r352763, head/lib/libc/sys/shm_open.c projects/clang900-import/sys/kern/subr_filter.c - copied unchanged from r352763, head/sys/kern/subr_filter.c projects/clang900-import/sys/modules/tcp/bbr/ - copied from r352763, head/sys/modules/tcp/bbr/ projects/clang900-import/sys/netinet/tcp_stacks/bbr.c - copied unchanged from r352763, head/sys/netinet/tcp_stacks/bbr.c projects/clang900-import/sys/netinet/tcp_stacks/tcp_bbr.h - copied unchanged from r352763, head/sys/netinet/tcp_stacks/tcp_bbr.h projects/clang900-import/sys/sys/tim_filter.h - copied unchanged from r352763, head/sys/sys/tim_filter.h projects/clang900-import/tests/sys/kern/memfd_test.c - copied unchanged from r352763, head/tests/sys/kern/memfd_test.c Deleted: projects/clang900-import/lib/libc/i386/string/memchr.S Modified: projects/clang900-import/Makefile.inc1 projects/clang900-import/ObsoleteFiles.inc projects/clang900-import/RELNOTES projects/clang900-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c projects/clang900-import/contrib/ipfilter/tools/ippool_y.y projects/clang900-import/contrib/libarchive/cat/bsdcat.1 projects/clang900-import/contrib/libarchive/cpio/bsdcpio.1 projects/clang900-import/contrib/libarchive/libarchive/archive.h projects/clang900-import/contrib/libarchive/libarchive/archive_entry.3 projects/clang900-import/contrib/libarchive/libarchive/archive_entry_acl.3 projects/clang900-import/contrib/libarchive/libarchive/archive_entry_misc.3 projects/clang900-import/contrib/libarchive/libarchive/archive_entry_paths.3 projects/clang900-import/contrib/libarchive/libarchive/archive_entry_perms.3 projects/clang900-import/contrib/libarchive/libarchive/archive_entry_stat.3 projects/clang900-import/contrib/libarchive/libarchive/archive_entry_time.3 projects/clang900-import/contrib/libarchive/libarchive/archive_read.3 projects/clang900-import/contrib/libarchive/libarchive/archive_read_add_passphrase.3 projects/clang900-import/contrib/libarchive/libarchive/archive_read_data.3 projects/clang900-import/contrib/libarchive/libarchive/archive_read_disk.3 projects/clang900-import/contrib/libarchive/libarchive/archive_read_extract.3 projects/clang900-import/contrib/libarchive/libarchive/archive_read_filter.3 projects/clang900-import/contrib/libarchive/libarchive/archive_read_format.3 projects/clang900-import/contrib/libarchive/libarchive/archive_read_free.3 projects/clang900-import/contrib/libarchive/libarchive/archive_read_header.3 projects/clang900-import/contrib/libarchive/libarchive/archive_read_new.3 projects/clang900-import/contrib/libarchive/libarchive/archive_read_open.3 projects/clang900-import/contrib/libarchive/libarchive/archive_read_set_options.3 projects/clang900-import/contrib/libarchive/libarchive/archive_read_support_filter_gzip.c projects/clang900-import/contrib/libarchive/libarchive/archive_read_support_filter_lz4.c projects/clang900-import/contrib/libarchive/libarchive/archive_read_support_format_zip.c projects/clang900-import/contrib/libarchive/libarchive/archive_string.c projects/clang900-import/contrib/libarchive/libarchive/archive_util.3 projects/clang900-import/contrib/libarchive/libarchive/archive_write.3 projects/clang900-import/contrib/libarchive/libarchive/archive_write_blocksize.3 projects/clang900-import/contrib/libarchive/libarchive/archive_write_data.3 projects/clang900-import/contrib/libarchive/libarchive/archive_write_disk.3 projects/clang900-import/contrib/libarchive/libarchive/archive_write_disk_posix.c projects/clang900-import/contrib/libarchive/libarchive/archive_write_filter.3 projects/clang900-import/contrib/libarchive/libarchive/archive_write_finish_entry.3 projects/clang900-import/contrib/libarchive/libarchive/archive_write_format.3 projects/clang900-import/contrib/libarchive/libarchive/archive_write_free.3 projects/clang900-import/contrib/libarchive/libarchive/archive_write_header.3 projects/clang900-import/contrib/libarchive/libarchive/archive_write_new.3 projects/clang900-import/contrib/libarchive/libarchive/archive_write_open.3 projects/clang900-import/contrib/libarchive/libarchive/archive_write_set_format_iso9660.c projects/clang900-import/contrib/libarchive/libarchive/archive_write_set_format_mtree.c projects/clang900-import/contrib/libarchive/libarchive/archive_write_set_options.3 projects/clang900-import/contrib/libarchive/libarchive/archive_write_set_passphrase.3 projects/clang900-import/contrib/libarchive/libarchive/libarchive_changes.3 projects/clang900-import/contrib/libarchive/libarchive/libarchive_internals.3 projects/clang900-import/contrib/libarchive/libarchive/tar.5 projects/clang900-import/contrib/libarchive/libarchive/test/test_archive_write_add_filter_by_name.c projects/clang900-import/contrib/libarchive/libarchive/test/test_archive_write_set_format_filter_by_ext.c projects/clang900-import/contrib/libarchive/libarchive/test/test_read_format_raw.c projects/clang900-import/contrib/libarchive/libarchive/test/test_read_format_zip.c projects/clang900-import/contrib/libarchive/libarchive/test/test_read_format_zip_traditional_encryption_data.c projects/clang900-import/contrib/libarchive/libarchive/test/test_write_filter_zstd.c projects/clang900-import/contrib/libarchive/tar/bsdtar.1 projects/clang900-import/contrib/libarchive/tar/test/test_option_n.c projects/clang900-import/contrib/libarchive/tar/test/test_option_xattrs.c projects/clang900-import/contrib/libarchive/test_utils/test_main.c projects/clang900-import/contrib/netbsd-tests/usr.bin/grep/t_grep.sh projects/clang900-import/lib/libc/gen/posix_spawn.c projects/clang900-import/lib/libc/i386/string/Makefile.inc projects/clang900-import/lib/libc/include/libc_private.h projects/clang900-import/lib/libc/regex/engine.c projects/clang900-import/lib/libc/regex/regcomp.c projects/clang900-import/lib/libc/sys/Makefile.inc projects/clang900-import/lib/libc/sys/Symbol.map projects/clang900-import/lib/libc/sys/fcntl.2 projects/clang900-import/lib/libc/sys/mount.2 projects/clang900-import/lib/libc/sys/rfork.2 projects/clang900-import/lib/libc/sys/shm_open.2 projects/clang900-import/lib/libkvm/kvm_proc.c projects/clang900-import/lib/libregex/tests/libregex_test.sh projects/clang900-import/lib/libthr/thread/thr_mutex.c projects/clang900-import/lib/msun/src/e_exp.c projects/clang900-import/lib/msun/src/e_expf.c projects/clang900-import/lib/msun/src/s_expm1.c projects/clang900-import/lib/msun/src/s_expm1f.c projects/clang900-import/sbin/mount/mntopts.h projects/clang900-import/sbin/mount/mount.8 projects/clang900-import/sbin/mount/mount.c projects/clang900-import/sbin/nvmecontrol/perftest.c projects/clang900-import/sbin/ping6/ping6.c projects/clang900-import/share/mk/suite.test.mk projects/clang900-import/stand/efi/libefi/efi_console.c projects/clang900-import/stand/forth/menu.4th projects/clang900-import/stand/forth/menu.rc projects/clang900-import/stand/i386/libi386/vidconsole.c projects/clang900-import/stand/lua/color.lua projects/clang900-import/stand/lua/config.lua projects/clang900-import/stand/lua/logo-beastie.lua projects/clang900-import/stand/lua/logo-orb.lua projects/clang900-import/stand/lua/menu.lua projects/clang900-import/stand/lua/password.lua projects/clang900-import/sys/amd64/amd64/efirt_machdep.c projects/clang900-import/sys/amd64/amd64/elf_machdep.c projects/clang900-import/sys/amd64/amd64/pmap.c projects/clang900-import/sys/amd64/linux/linux_proto.h projects/clang900-import/sys/amd64/linux32/linux32_proto.h projects/clang900-import/sys/arm/arm/pmap-v6.c projects/clang900-import/sys/arm64/arm64/efirt_machdep.c projects/clang900-import/sys/arm64/arm64/pmap.c projects/clang900-import/sys/arm64/linux/linux_proto.h projects/clang900-import/sys/cam/scsi/scsi_da.c projects/clang900-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c projects/clang900-import/sys/cddl/dev/dtrace/amd64/dtrace_asm.S projects/clang900-import/sys/cddl/dev/dtrace/amd64/dtrace_subr.c projects/clang900-import/sys/cddl/dev/dtrace/i386/dtrace_asm.S projects/clang900-import/sys/cddl/dev/dtrace/i386/dtrace_subr.c projects/clang900-import/sys/compat/cloudabi/cloudabi_fd.c projects/clang900-import/sys/compat/freebsd32/freebsd32_proto.h projects/clang900-import/sys/compat/freebsd32/freebsd32_syscall.h projects/clang900-import/sys/compat/freebsd32/freebsd32_syscalls.c projects/clang900-import/sys/compat/freebsd32/freebsd32_sysent.c projects/clang900-import/sys/compat/freebsd32/freebsd32_systrace_args.c projects/clang900-import/sys/compat/freebsd32/syscalls.master projects/clang900-import/sys/compat/linsysfs/linsysfs.c projects/clang900-import/sys/conf/files projects/clang900-import/sys/conf/kern.mk projects/clang900-import/sys/conf/makeLINT.mk projects/clang900-import/sys/conf/options projects/clang900-import/sys/contrib/ipfilter/netinet/fil.c projects/clang900-import/sys/contrib/octeon-sdk/cvmx-app-init.h projects/clang900-import/sys/dev/agp/agp_i810.c projects/clang900-import/sys/dev/firewire/if_fwip.c projects/clang900-import/sys/dev/ixgbe/if_ix.c projects/clang900-import/sys/dev/ixgbe/if_ixv.c projects/clang900-import/sys/dev/ixgbe/ixgbe.h projects/clang900-import/sys/dev/jme/if_jme.c projects/clang900-import/sys/dev/nvme/nvme_ahci.c projects/clang900-import/sys/dev/nvme/nvme_ctrlr.c projects/clang900-import/sys/dev/nvme/nvme_ctrlr_cmd.c projects/clang900-import/sys/dev/nvme/nvme_pci.c projects/clang900-import/sys/dev/nvme/nvme_private.h projects/clang900-import/sys/dev/nvme/nvme_qpair.c projects/clang900-import/sys/dev/nvme/nvme_sysctl.c projects/clang900-import/sys/dev/pccard/pccard.c projects/clang900-import/sys/dev/vt/hw/fb/vt_fb.c projects/clang900-import/sys/dev/vt/vt.h projects/clang900-import/sys/dev/vt/vt_buf.c projects/clang900-import/sys/dev/vt/vt_core.c projects/clang900-import/sys/dev/vt/vt_cpulogos.c projects/clang900-import/sys/fs/nfs/nfsport.h projects/clang900-import/sys/fs/nfsclient/nfs_clbio.c projects/clang900-import/sys/fs/nfsclient/nfs_clnfsiod.c projects/clang900-import/sys/fs/nfsclient/nfs_clnode.c projects/clang900-import/sys/fs/nfsclient/nfs_clport.c projects/clang900-import/sys/fs/nfsclient/nfs_clrpcops.c projects/clang900-import/sys/fs/nfsclient/nfs_clsubs.c projects/clang900-import/sys/fs/nfsclient/nfs_clvfsops.c projects/clang900-import/sys/fs/nfsclient/nfs_clvnops.c projects/clang900-import/sys/i386/i386/pmap.c projects/clang900-import/sys/i386/i386/pmap_base.c projects/clang900-import/sys/i386/include/pmap_base.h projects/clang900-import/sys/i386/linux/linux_proto.h projects/clang900-import/sys/kern/capabilities.conf projects/clang900-import/sys/kern/init_sysent.c projects/clang900-import/sys/kern/kern_descrip.c projects/clang900-import/sys/kern/kern_exec.c projects/clang900-import/sys/kern/kern_fork.c projects/clang900-import/sys/kern/kern_sig.c projects/clang900-import/sys/kern/kern_thread.c projects/clang900-import/sys/kern/link_elf.c projects/clang900-import/sys/kern/makesyscalls.sh projects/clang900-import/sys/kern/sched_ule.c projects/clang900-import/sys/kern/subr_epoch.c projects/clang900-import/sys/kern/subr_lock.c projects/clang900-import/sys/kern/subr_stack.c projects/clang900-import/sys/kern/subr_terminal.c projects/clang900-import/sys/kern/syscalls.c projects/clang900-import/sys/kern/syscalls.master projects/clang900-import/sys/kern/systrace_args.c projects/clang900-import/sys/kern/uipc_shm.c projects/clang900-import/sys/kern/vfs_cache.c projects/clang900-import/sys/kern/vfs_mount.c projects/clang900-import/sys/kern/vfs_subr.c projects/clang900-import/sys/mips/cavium/std.octeon1 projects/clang900-import/sys/mips/mips/pmap.c projects/clang900-import/sys/modules/tcp/Makefile projects/clang900-import/sys/net/if.c projects/clang900-import/sys/net/if_ethersubr.c projects/clang900-import/sys/net/if_vlan.c projects/clang900-import/sys/net/iflib.c projects/clang900-import/sys/netinet/ip_output.c projects/clang900-import/sys/netinet/ip_var.h projects/clang900-import/sys/netinet/sctp_indata.c projects/clang900-import/sys/netinet/sctp_input.c projects/clang900-import/sys/netinet/sctputil.c projects/clang900-import/sys/netinet/sctputil.h projects/clang900-import/sys/netinet/tcp.h projects/clang900-import/sys/netinet/tcp_ratelimit.h projects/clang900-import/sys/netinet/tcp_stacks/rack.c projects/clang900-import/sys/netinet/tcp_stacks/rack_bbr_common.c projects/clang900-import/sys/netinet/tcp_stacks/rack_bbr_common.h projects/clang900-import/sys/netinet/tcp_stacks/sack_filter.c projects/clang900-import/sys/netinet/tcp_stacks/sack_filter.h projects/clang900-import/sys/netinet/tcp_stacks/tcp_rack.h projects/clang900-import/sys/netinet/tcp_syncache.c projects/clang900-import/sys/netinet/tcp_syncache.h projects/clang900-import/sys/powerpc/booke/pmap.c projects/clang900-import/sys/powerpc/include/atomic.h projects/clang900-import/sys/powerpc/powerpc/mp_machdep.c projects/clang900-import/sys/riscv/riscv/elf_machdep.c projects/clang900-import/sys/riscv/riscv/pmap.c projects/clang900-import/sys/sys/epoch.h projects/clang900-import/sys/sys/fcntl.h projects/clang900-import/sys/sys/file.h projects/clang900-import/sys/sys/mbuf.h projects/clang900-import/sys/sys/mman.h projects/clang900-import/sys/sys/mount.h projects/clang900-import/sys/sys/param.h projects/clang900-import/sys/sys/proc.h projects/clang900-import/sys/sys/signalvar.h projects/clang900-import/sys/sys/stack.h projects/clang900-import/sys/sys/syscall.h projects/clang900-import/sys/sys/syscall.mk projects/clang900-import/sys/sys/syscallsubr.h projects/clang900-import/sys/sys/sysproto.h projects/clang900-import/sys/sys/unistd.h projects/clang900-import/sys/sys/vnode.h projects/clang900-import/sys/vm/vm_page.c projects/clang900-import/sys/vm/vm_page.h projects/clang900-import/sys/x86/iommu/intel_idpgtbl.c projects/clang900-import/sys/x86/x86/tsc.c projects/clang900-import/tests/sys/kern/Makefile projects/clang900-import/tests/sys/kern/coredump_phnum_test.sh projects/clang900-import/tests/sys/posixshm/posixshm_test.c projects/clang900-import/tools/debugscripts/gdbinit.kernel projects/clang900-import/usr.bin/bsdiff/bspatch/bspatch.c projects/clang900-import/usr.bin/grep/grep.c projects/clang900-import/usr.bin/grep/util.c projects/clang900-import/usr.bin/kdump/kdump.c projects/clang900-import/usr.bin/truss/syscalls.c projects/clang900-import/usr.sbin/cron/cron/cron.h projects/clang900-import/usr.sbin/cron/cron/do_command.c projects/clang900-import/usr.sbin/cron/cron/popen.c projects/clang900-import/usr.sbin/cron/crontab/crontab.5 projects/clang900-import/usr.sbin/cron/lib/entry.c projects/clang900-import/usr.sbin/efibootmgr/efibootmgr.8 projects/clang900-import/usr.sbin/freebsd-update/freebsd-update.8 projects/clang900-import/usr.sbin/freebsd-update/freebsd-update.sh Directory Properties: projects/clang900-import/ (props changed) projects/clang900-import/cddl/ (props changed) projects/clang900-import/cddl/contrib/opensolaris/ (props changed) projects/clang900-import/cddl/contrib/opensolaris/lib/libzfs/ (props changed) projects/clang900-import/contrib/ipfilter/ (props changed) projects/clang900-import/contrib/libarchive/ (props changed) projects/clang900-import/contrib/netbsd-tests/ (props changed) projects/clang900-import/sys/cddl/contrib/opensolaris/ (props changed) projects/clang900-import/sys/contrib/ipfilter/ (props changed) projects/clang900-import/sys/contrib/octeon-sdk/ (props changed) Modified: projects/clang900-import/Makefile.inc1 ============================================================================== --- projects/clang900-import/Makefile.inc1 Thu Sep 26 18:24:04 2019 (r352763) +++ projects/clang900-import/Makefile.inc1 Thu Sep 26 18:25:54 2019 (r352764) @@ -947,7 +947,8 @@ _cleanobj_fast_depend_hack: .PHONY # Syscall stubs rewritten in C and obsolete MD assembly implementations # Date SVN Rev Syscalls # 20180604 r334626 brk sbrk -.for f in brk sbrk +# 20190916 r352703 shm_open +.for f in brk sbrk shm_open @if [ -e "${OBJTOP}/lib/libc/.depend.${f}.o" ] && \ egrep -qw '${f}\.[sS]' ${OBJTOP}/lib/libc/.depend.${f}.o; then \ echo "Removing stale dependencies for ${f} syscall wrappers"; \ Modified: projects/clang900-import/ObsoleteFiles.inc ============================================================================== --- projects/clang900-import/ObsoleteFiles.inc Thu Sep 26 18:24:04 2019 (r352763) +++ projects/clang900-import/ObsoleteFiles.inc Thu Sep 26 18:25:54 2019 (r352764) @@ -827,6 +827,9 @@ OLD_DIRS+=usr/lib/clang/6.0.1/lib OLD_DIRS+=usr/lib/clang/6.0.1 # 20181116: Rename test file. OLD_FILES+=usr/tests/sys/netinet/reuseport_lb +# 20181113: libufs version bumped to 7. +OLD_LIBS+=lib/libufs.so.6 +OLD_LIBS+=usr/lib32/libufs.so.6 # 20181112: Cleanup old libcap_dns. OLD_LIBS+=lib/casper/libcap_dns.so.1 OLD_LIBS+=usr/lib32/libcap_dns.so.1 Modified: projects/clang900-import/RELNOTES ============================================================================== --- projects/clang900-import/RELNOTES Thu Sep 26 18:24:04 2019 (r352763) +++ projects/clang900-import/RELNOTES Thu Sep 26 18:25:54 2019 (r352764) @@ -10,6 +10,11 @@ newline. Entries should be separated by a newline. Changes to this file should not be MFCed. +r352668: + cron(8) now supports the -n (suppress mail on succesful run) and -q + (suppress logging of command execution) options in the crontab format. + See the crontab(5) manpage for details. + r352304: ntpd is no longer by default locked in memory. rlimit memlock 32 or rlimit memlock 0 can be used to restore this behaviour. Modified: projects/clang900-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c ============================================================================== --- projects/clang900-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Thu Sep 26 18:24:04 2019 (r352763) +++ projects/clang900-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Thu Sep 26 18:25:54 2019 (r352764) @@ -948,39 +948,32 @@ typedef struct send_dump_data { } send_dump_data_t; static int -estimate_ioctl(zfs_handle_t *zhp, uint64_t fromsnap_obj, - boolean_t fromorigin, enum lzc_send_flags flags, uint64_t *sizep) +zfs_send_space(zfs_handle_t *zhp, const char *snapname, const char *from, + enum lzc_send_flags flags, uint64_t *spacep) { - zfs_cmd_t zc = { 0 }; libzfs_handle_t *hdl = zhp->zfs_hdl; + int error; - assert(zhp->zfs_type == ZFS_TYPE_SNAPSHOT); - assert(fromsnap_obj == 0 || !fromorigin); + assert(snapname != NULL); + error = lzc_send_space(snapname, from, flags, spacep); - (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); - zc.zc_obj = fromorigin; - zc.zc_sendobj = zfs_prop_get_int(zhp, ZFS_PROP_OBJSETID); - zc.zc_fromobj = fromsnap_obj; - zc.zc_guid = 1; /* estimate flag */ - zc.zc_flags = flags; - - if (zfs_ioctl(zhp->zfs_hdl, ZFS_IOC_SEND, &zc) != 0) { + if (error != 0) { char errbuf[1024]; (void) snprintf(errbuf, sizeof (errbuf), dgettext(TEXT_DOMAIN, - "warning: cannot estimate space for '%s'"), zhp->zfs_name); + "warning: cannot estimate space for '%s'"), snapname); - switch (errno) { + switch (error) { case EXDEV: zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, "not an earlier snapshot from the same fs")); return (zfs_error(hdl, EZFS_CROSSTARGET, errbuf)); case ENOENT: - if (zfs_dataset_exists(hdl, zc.zc_name, + if (zfs_dataset_exists(hdl, snapname, ZFS_TYPE_SNAPSHOT)) { zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, - "incremental source (@%s) does not exist"), - zc.zc_value); + "incremental source (%s) does not exist"), + snapname); } return (zfs_error(hdl, EZFS_NOENT, errbuf)); @@ -994,16 +987,15 @@ estimate_ioctl(zfs_handle_t *zhp, uint64_t fromsnap_ob case ERANGE: case EFAULT: case EROFS: - zfs_error_aux(hdl, strerror(errno)); + case EINVAL: + zfs_error_aux(hdl, strerror(error)); return (zfs_error(hdl, EZFS_BADBACKUP, errbuf)); default: - return (zfs_standard_error(hdl, errno, errbuf)); + return (zfs_standard_error(hdl, error, errbuf)); } } - *sizep = zc.zc_objset_type; - return (0); } @@ -1290,13 +1282,22 @@ dump_snapshot(zfs_handle_t *zhp, void *arg) (sdd->fromorigin || sdd->replicate); if (sdd->verbose || sdd->progress) { - (void) estimate_ioctl(zhp, sdd->prevsnap_obj, - fromorigin, flags, &size); - sdd->size += size; + char fromds[ZFS_MAX_DATASET_NAME_LEN]; - send_print_verbose(fout, zhp->zfs_name, - sdd->prevsnap[0] ? sdd->prevsnap : NULL, - size, sdd->parsable); + if (sdd->prevsnap[0] != '\0') { + (void) strlcpy(fromds, zhp->zfs_name, sizeof (fromds)); + *(strchr(fromds, '@') + 1) = '\0'; + (void) strlcat(fromds, sdd->prevsnap, sizeof (fromds)); + } + if (zfs_send_space(zhp, zhp->zfs_name, + sdd->prevsnap[0] ? fromds : NULL, flags, &size) != 0) { + size = 0; /* cannot estimate send space */ + } else { + send_print_verbose(fout, zhp->zfs_name, + sdd->prevsnap[0] ? sdd->prevsnap : NULL, + size, sdd->parsable); + } + sdd->size += size; } if (!sdd->dryrun) { @@ -2054,6 +2055,15 @@ zfs_send_one(zfs_handle_t *zhp, const char *from, int if (err == 0) { send_print_verbose(fout, zhp->zfs_name, from, size, flags.parsable); + if (flags.parsable) { + (void) fprintf(fout, "size\t%llu\n", + (longlong_t)size); + } else { + char buf[16]; + zfs_nicenum(size, buf, sizeof (buf)); + (void) fprintf(fout, dgettext(TEXT_DOMAIN, + "total estimated size is %s\n"), buf); + } } else { (void) fprintf(stderr, "Cannot estimate send size: " "%s\n", strerror(errno)); Modified: projects/clang900-import/contrib/ipfilter/tools/ippool_y.y ============================================================================== --- projects/clang900-import/contrib/ipfilter/tools/ippool_y.y Thu Sep 26 18:24:04 2019 (r352763) +++ projects/clang900-import/contrib/ipfilter/tools/ippool_y.y Thu Sep 26 18:25:54 2019 (r352764) @@ -309,11 +309,27 @@ range: addrmask { $$ = calloc(1, sizeof(*$$)); $$->ipn_info = 0; $$->ipn_addr = $1[0]; $$->ipn_mask = $1[1]; +#ifdef USE_INET6 + if (use_inet6) + $$->ipn_addr.adf_family = + AF_INET6; + else +#endif + $$->ipn_addr.adf_family = + AF_INET; } | '!' addrmask { $$ = calloc(1, sizeof(*$$)); $$->ipn_info = 1; $$->ipn_addr = $2[0]; $$->ipn_mask = $2[1]; +#ifdef USE_INET6 + if (use_inet6) + $$->ipn_addr.adf_family = + AF_INET6; + else +#endif + $$->ipn_addr.adf_family = + AF_INET; } | YY_STR { $$ = add_poolhosts($1); free($1); Modified: projects/clang900-import/contrib/libarchive/cat/bsdcat.1 ============================================================================== --- projects/clang900-import/contrib/libarchive/cat/bsdcat.1 Thu Sep 26 18:24:04 2019 (r352763) +++ projects/clang900-import/contrib/libarchive/cat/bsdcat.1 Thu Sep 26 18:25:54 2019 (r352764) @@ -34,16 +34,15 @@ .Nm .Op options .Op files -.Pp .Sh DESCRIPTION .Nm expands files to standard output. .Sh OPTIONS .Nm typically takes a filename as an argument or reads standard input when used in a -pipe. In both cases decompressed data it written to standard output. +pipe. +In both cases decompressed data it written to standard output. .Sh EXAMPLES -.Pp To decompress a file: .Pp .Dl bsdcat example.txt.gz > example.txt @@ -55,8 +54,8 @@ To decompress standard input in a pipe: Both examples achieve the same results - a decompressed file by redirecting output. .Sh SEE ALSO -.Xr uncompress 1 , -.Xr zcat 1 , .Xr bzcat 1 , +.Xr uncompress 1 , .Xr xzcat 1 , -.Xr libarchive-formats 5 , +.Xr zcat 1 , +.Xr libarchive-formats 5 Modified: projects/clang900-import/contrib/libarchive/cpio/bsdcpio.1 ============================================================================== --- projects/clang900-import/contrib/libarchive/cpio/bsdcpio.1 Thu Sep 26 18:24:04 2019 (r352763) +++ projects/clang900-import/contrib/libarchive/cpio/bsdcpio.1 Thu Sep 26 18:25:54 2019 (r352764) @@ -75,7 +75,6 @@ Pass-through. Read a list of filenames from standard input and copy the files to the specified directory. .El -.Pp .Sh OPTIONS Unless specifically stated otherwise, options are applicable in all operating modes. @@ -385,10 +384,10 @@ For best compatibility, scripts should limit themselve standard syntax. .Sh SEE ALSO .Xr bzip2 1 , -.Xr tar 1 , .Xr gzip 1 , .Xr mt 1 , .Xr pax 1 , +.Xr tar 1 , .Xr libarchive 3 , .Xr cpio 5 , .Xr libarchive-formats 5 , Modified: projects/clang900-import/contrib/libarchive/libarchive/archive.h ============================================================================== --- projects/clang900-import/contrib/libarchive/libarchive/archive.h Thu Sep 26 18:24:04 2019 (r352763) +++ projects/clang900-import/contrib/libarchive/libarchive/archive.h Thu Sep 26 18:25:54 2019 (r352764) @@ -52,7 +52,7 @@ */ #if defined(__BORLANDC__) && __BORLANDC__ >= 0x560 # include -#elif !defined(__WATCOMC__) && !defined(_MSC_VER) && !defined(__INTERIX) && !defined(__BORLANDC__) && !defined(_SCO_DS) && !defined(__osf__) +#elif !defined(__WATCOMC__) && !defined(_MSC_VER) && !defined(__INTERIX) && !defined(__BORLANDC__) && !defined(_SCO_DS) && !defined(__osf__) && !defined(__CLANG_INTTYPES_H) # include #endif Modified: projects/clang900-import/contrib/libarchive/libarchive/archive_entry.3 ============================================================================== --- projects/clang900-import/contrib/libarchive/libarchive/archive_entry.3 Thu Sep 26 18:24:04 2019 (r352763) +++ projects/clang900-import/contrib/libarchive/libarchive/archive_entry.3 Thu Sep 26 18:25:54 2019 (r352764) @@ -32,7 +32,7 @@ .Nm archive_entry_clear , .Nm archive_entry_clone , .Nm archive_entry_free , -.Nm archive_entry_new , +.Nm archive_entry_new .Nd functions for managing archive entry descriptions .Sh LIBRARY Streaming Archive Library (libarchive, -larchive) @@ -126,7 +126,6 @@ using the current locale. Similarly, if you store a wide string and then store a narrow string for the same data, the previously-set wide string will be discarded in favor of the new data. -.Pp .\" .Sh EXAMPLE .\" .Sh RETURN VALUES .\" .Sh ERRORS @@ -134,8 +133,8 @@ be discarded in favor of the new data. .Xr archive_entry_acl 3 , .Xr archive_entry_paths 3 , .Xr archive_entry_perms 3 , -.Xr archive_entry_time 3 -.Xr libarchive 3 , +.Xr archive_entry_time 3 , +.Xr libarchive 3 .Sh HISTORY The .Nm libarchive Modified: projects/clang900-import/contrib/libarchive/libarchive/archive_entry_acl.3 ============================================================================== --- projects/clang900-import/contrib/libarchive/libarchive/archive_entry_acl.3 Thu Sep 26 18:24:04 2019 (r352763) +++ projects/clang900-import/contrib/libarchive/libarchive/archive_entry_acl.3 Thu Sep 26 18:25:54 2019 (r352764) @@ -118,15 +118,16 @@ Streaming Archive Library (libarchive, -larchive) .Sh DESCRIPTION The .Dq Access Control Lists (ACLs) -extend the standard Unix perssion model. +extend the standard Unix permission model. The ACL interface of .Nm libarchive -supports both POSIX.1e and NFSv4 style ACLs. Use of ACLs is restricted by +supports both POSIX.1e and NFSv4 style ACLs. +Use of ACLs is restricted by various levels of ACL support in operating systems, file systems and archive formats. .Ss POSIX.1e Access Control Lists A POSIX.1e ACL consists of a number of independent entries. -Each entry specifies the permission set as bitmask of basic permissions. +Each entry specifies the permission set as a bitmask of basic permissions. Valid permissions in the .Fa permset are: @@ -147,13 +148,13 @@ The user specified by the name field. .It Dv ARCHIVE_ENTRY_ACL_USER_OBJ The owner of the file. .It Dv ARCHIVE_ENTRY_ACL_GROUP -The group specied by the name field. +The group specified by the name field. .It Dv ARCHIVE_ENTRY_ACL_GROUP_OBJ -The group who owns the file. +The group which owns the file. .It Dv ARCHIVE_ENTRY_ACL_MASK The maximum permissions to be obtained via group permissions. .It Dv ARCHIVE_ENTRY_ACL_OTHER -Any principal who is not file owner or a member of the owning group. +Any principal who is not the file owner or a member of the owning group. .El .Pp The principals @@ -164,12 +165,12 @@ and are equivalent to user, group and other in the classic Unix permission model and specify non-extended ACL entries. .Pp -All files with have an access ACL +All files have an access ACL .Pq Dv ARCHIVE_ENTRY_ACL_TYPE_ACCESS . This specifies the permissions required for access to the file itself. Directories have an additional ACL .Pq Dv ARCHIVE_ENTRY_ACL_TYPE_DEFAULT , -which controls the initial access ACL for newly created directory entries. +which controls the initial access ACL for newly-created directory entries. .Ss NFSv4 Access Control Lists A NFSv4 ACL consists of multiple individual entries called Access Control Entries (ACEs). @@ -197,11 +198,11 @@ The user specified by the name field. .It Dv ARCHIVE_ENTRY_ACL_USER_OBJ The owner of the file. .It Dv ARCHIVE_ENTRY_ACL_GROUP -The group specied by the name field. +The group specified by the name field. .It Dv ARCHIVE_ENTRY_ACL_GROUP_OBJ -The group who owns the file. +The group which owns the file. .It Dv ARCHIVE_ENTRY_ACL_EVERYONE -Any principal who is not file owner or a member of the owning group. +Any principal who is not the file owner or a member of the owning group. .El .Pp Entries with the @@ -216,9 +217,10 @@ integer. .Pp NFSv4 ACE permissions and flags are stored in the same .Fa permset -bitfield. Some permissions share the same constant and permission character but -have different effect on directories than on files. The following ACE -permissions are supported: +bitfield. +Some permissions share the same constant and permission character +but have different effect on directories than on files. +The following ACE permissions are supported: .Bl -tag -offset indent -compact -width ARCHIV .It Dv ARCHIVE_ENTRY_ACL_READ_DATA ( Sy r ) Read data (file). @@ -265,7 +267,8 @@ Inherit parent directory ACE to subdirectories. .It Dv ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY ( Sy i ) Only inherit, do not apply the permission on the directory itself. .It Dv ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT ( Sy n ) -Do not propagate inherit flags. Only first-level entries inherit ACLs. +Do not propagate inherit flags. +Only first-level entries inherit ACLs. .It Dv ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS ( Sy S ) Trigger alarm or audit on successful access. .It Dv ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS ( Sy F ) @@ -279,8 +282,8 @@ and .Fn archive_entry_acl_add_entry_w add a single ACL entry. For the access ACL and non-extended principals, the classic Unix permissions -are updated. An archive entry cannot contain both POSIX.1e and NFSv4 ACL -entries. +are updated. +An archive entry cannot contain both POSIX.1e and NFSv4 ACL entries. .Pp .Fn archive_entry_acl_clear removes all ACL entries and resets the enumeration pointer. @@ -300,7 +303,8 @@ for POSIX.1e ACLs and .It Dv ARCHIVE_ENTRY_ACL_TYPE_AUDIT .It Dv ARCHIVE_ENTRY_ACL_TYPE_ALARM .El -for NFSv4 ACLs. For POSIX.1e ACLs if +for NFSv4 ACLs. +For POSIX.1e ACLs if .Dv ARCHIVE_ENTRY_ACL_TYPE_ACCESS is included and at least one extended ACL entry is found, the three non-extended ACLs are added. @@ -312,7 +316,8 @@ add new .Pq or merge with existing ACL entries from .Pq wide -text. The argument +text. +The argument .Fa type may take one of the following values: .Bl -tag -offset indent -compact -width "ARCHIVE_ENTRY_ACL_TYPE_DEFAULT" @@ -322,11 +327,13 @@ may take one of the following values: .El Supports all formats that can be created with .Fn archive_entry_acl_to_text -or respective +or respectively .Fn archive_entry_acl_to_text_w . -Existing ACL entries are preserved. To get a clean new ACL from text +Existing ACL entries are preserved. +To get a clean new ACL from text .Fn archive_entry_acl_clear -must be called first. Entries prefixed with +must be called first. +Entries prefixed with .Dq default: are treated as .Dv ARCHIVE_ENTRY_ACL_TYPE_DEFAULT @@ -354,7 +361,7 @@ prepare reading the list of ACL entries with .Fn archive_entry_acl_next or .Fn archive_entry_acl_next_w . -The function returns either 0, if no non-extended ACLs are found. +The function returns 0 if no non-extended ACLs are found. In this case, the access permissions should be obtained by .Xr archive_entry_mode 3 or set using @@ -367,7 +374,8 @@ and .Fn archive_entry_acl_to_text_w convert the ACL entries for the given type into a .Pq wide -string of ACL entries separated by newline. If the pointer +string of ACL entries separated by newline. +If the pointer .Fa len_p is not NULL, then the function shall return the length of the string .Pq not including the NULL terminator @@ -415,7 +423,8 @@ are prefixed with .Dq default: . .Pp .Fn archive_entry_acl_types -get ACL entry types contained in an archive entry's ACL. As POSIX.1e and NFSv4 +get ACL entry types contained in an archive entry's ACL. +As POSIX.1e and NFSv4 ACL entries cannot be mixed, this function is a very efficient way to detect if an ACL already contains POSIX.1e or NFSv4 ACL entries. .Sh RETURN VALUES Modified: projects/clang900-import/contrib/libarchive/libarchive/archive_entry_misc.3 ============================================================================== --- projects/clang900-import/contrib/libarchive/libarchive/archive_entry_misc.3 Thu Sep 26 18:24:04 2019 (r352763) +++ projects/clang900-import/contrib/libarchive/libarchive/archive_entry_misc.3 Thu Sep 26 18:25:54 2019 (r352764) @@ -28,7 +28,7 @@ .Sh NAME .Nm archive_entry_symlink_type , .Nm archive_entry_set_symlink_type -.Nd miscellaneous functions for manipulating properties of archive_entry. +.Nd miscellaneous functions for manipulating properties of archive_entry .Sh LIBRARY Streaming Archive Library (libarchive, -larchive) .Sh SYNOPSIS @@ -42,7 +42,8 @@ The function .Fn archive_entry_symlink_type returns and the function .Fn archive_entry_set_symlink_type -sets the type of the symbolic link stored in an archive entry. These functions +sets the type of the symbolic link stored in an archive entry. +These functions have special meaning on operating systems that support multiple symbolic link types (e.g. Microsoft Windows). .Pp Modified: projects/clang900-import/contrib/libarchive/libarchive/archive_entry_paths.3 ============================================================================== --- projects/clang900-import/contrib/libarchive/libarchive/archive_entry_paths.3 Thu Sep 26 18:24:04 2019 (r352763) +++ projects/clang900-import/contrib/libarchive/libarchive/archive_entry_paths.3 Thu Sep 26 18:25:54 2019 (r352764) @@ -133,7 +133,7 @@ The accessor functions are named .Fn XXX_w . .It UTF-8 Unicode strings encoded as UTF-8. -This are convience functions to update both the multibyte and wide +These are convenience functions to update both the multibyte and wide character strings at the same time. .El .Pp @@ -141,13 +141,13 @@ The sourcepath is a pure filesystem concept and never archive directly. .Pp For that reason, it is only available as multibyte string. -The link path is a convience function for conditionally setting +The link path is a convenience function for conditionally setting hardlink or symlink destination. It doesn't have a corresponding get accessor function. .Pp .Fn archive_entry_set_XXX -is an alias for +is an alias for .Fn archive_entry_copy_XXX . .Sh SEE ALSO -.Xr archive_entry 3 -.Xr libarchive 3 , +.Xr archive_entry 3 , +.Xr libarchive 3 Modified: projects/clang900-import/contrib/libarchive/libarchive/archive_entry_perms.3 ============================================================================== --- projects/clang900-import/contrib/libarchive/libarchive/archive_entry_perms.3 Thu Sep 26 18:24:04 2019 (r352763) +++ projects/clang900-import/contrib/libarchive/libarchive/archive_entry_perms.3 Thu Sep 26 18:25:54 2019 (r352764) @@ -126,7 +126,7 @@ The corresponding functions and .Fn archive_entry_set_perm store the given user id, group id and permission in the entry. -The permission is also set as side effect of calling +The permission is also set as a side effect of calling .Fn archive_entry_set_mode . .Pp .Fn archive_entry_strmode @@ -143,12 +143,12 @@ The accessor functions are named .Fn XXX_w . .It UTF-8 Unicode strings encoded as UTF-8. -This are convience functions to update both the multibyte and wide +These are convenience functions to update both the multibyte and wide character strings at the same time. .El .Pp .Fn archive_entry_set_XXX -is an alias for +is an alias for .Fn archive_entry_copy_XXX . .Ss File Flags File flags are transparently converted between a bitmap @@ -182,7 +182,7 @@ The .Fn archive_entry_copy_fflags_text and .Fn archive_entry_copy_fflags_text_w -functions parse the provided text and sets the internal bitmap values. +functions parse the provided text and set the internal bitmap values. This is a platform-specific operation; names that are not meaningful on the current platform will be ignored. The function returns a pointer to the start of the first name that was not @@ -197,8 +197,8 @@ which stops parsing at the first unrecognized name.) .Xr archive_entry 3 , .Xr archive_entry_acl 3 , .Xr archive_read_disk 3 , -.Xr archive_write_disk 3 -.Xr libarchive 3 , +.Xr archive_write_disk 3 , +.Xr libarchive 3 .Sh BUGS The platform types .Vt uid_t Modified: projects/clang900-import/contrib/libarchive/libarchive/archive_entry_stat.3 ============================================================================== --- projects/clang900-import/contrib/libarchive/libarchive/archive_entry_stat.3 Thu Sep 26 18:24:04 2019 (r352763) +++ projects/clang900-import/contrib/libarchive/libarchive/archive_entry_stat.3 Thu Sep 26 18:25:54 2019 (r352764) @@ -54,7 +54,7 @@ .Nm archive_entry_rdevmajor , .Nm archive_entry_set_rdevmajor , .Nm archive_entry_rdevminor , -.Nm archive_entry_set_rdevminor , +.Nm archive_entry_set_rdevminor .Nd accessor functions for manipulating archive entry descriptions .Sh LIBRARY Streaming Archive Library (libarchive, -larchive) @@ -267,8 +267,8 @@ platforms. Some archive formats use the combined form, while other formats use the split form. .Sh SEE ALSO +.Xr stat 2 , .Xr archive_entry_acl 3 , .Xr archive_entry_perms 3 , .Xr archive_entry_time 3 , -.Xr libarchive 3 , -.Xr stat 2 +.Xr libarchive 3 Modified: projects/clang900-import/contrib/libarchive/libarchive/archive_entry_time.3 ============================================================================== --- projects/clang900-import/contrib/libarchive/libarchive/archive_entry_time.3 Thu Sep 26 18:24:04 2019 (r352763) +++ projects/clang900-import/contrib/libarchive/libarchive/archive_entry_time.3 Thu Sep 26 18:25:54 2019 (r352764) @@ -48,7 +48,7 @@ .Nm archive_entry_mtime_nsec , .Nm archive_entry_mtime_is_set , .Nm archive_entry_set_mtime , -.Nm archive_entry_unset_mtime , +.Nm archive_entry_unset_mtime .Nd functions for manipulating times in archive entry descriptions .Sh LIBRARY Streaming Archive Library (libarchive, -larchive) @@ -113,8 +113,8 @@ The current state can be queried using .Fn XXX_is_set . Unset time fields have a second and nanosecond field of 0. .Sh SEE ALSO -.Xr archive_entry 3 -.Xr libarchive 3 , +.Xr archive_entry 3 , +.Xr libarchive 3 .Sh HISTORY The .Nm libarchive Modified: projects/clang900-import/contrib/libarchive/libarchive/archive_read.3 ============================================================================== --- projects/clang900-import/contrib/libarchive/libarchive/archive_read.3 Thu Sep 26 18:24:04 2019 (r352763) +++ projects/clang900-import/contrib/libarchive/libarchive/archive_read.3 Thu Sep 26 18:25:54 2019 (r352764) @@ -155,7 +155,7 @@ to close the archive, then call .Fn archive_read_free to release all resources, including all memory allocated by the library. .\" -.Sh EXAMPLE +.Sh EXAMPLES The following illustrates basic usage of the library. In this example, the callback functions are simply wrappers around the standard @@ -217,16 +217,16 @@ myclose(struct archive *a, void *client_data) .\" .Sh ERRORS .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , -.Xr archive_read_new 3 , .Xr archive_read_data 3 , .Xr archive_read_extract 3 , .Xr archive_read_filter 3 , .Xr archive_read_format 3 , .Xr archive_read_header 3 , +.Xr archive_read_new 3 , .Xr archive_read_open 3 , .Xr archive_read_set_options 3 , .Xr archive_util 3 , +.Xr libarchive 3 , .Xr tar 5 .Sh HISTORY The Modified: projects/clang900-import/contrib/libarchive/libarchive/archive_read_add_passphrase.3 ============================================================================== --- projects/clang900-import/contrib/libarchive/libarchive/archive_read_add_passphrase.3 Thu Sep 26 18:24:04 2019 (r352763) +++ projects/clang900-import/contrib/libarchive/libarchive/archive_read_add_passphrase.3 Thu Sep 26 18:25:54 2019 (r352764) @@ -59,16 +59,16 @@ or empty, this function will do nothing and will be returned. Otherwise, .Cm ARCHIVE_OK -will be returned. +will be returned. .It Fn archive_read_set_passphrase_callback -Register callback function that will be invoked to get a passphrase -for decrption after trying all passphrases registered by the +Register a callback function that will be invoked to get a passphrase +for decryption after trying all the passphrases registered by the .Fn archive_read_add_passphrase function failed. .El .\" .Sh ERRORS .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , .Xr archive_read 3 , -.Xr archive_read_set_options 3 +.Xr archive_read_set_options 3 , +.Xr libarchive 3 Modified: projects/clang900-import/contrib/libarchive/libarchive/archive_read_data.3 ============================================================================== --- projects/clang900-import/contrib/libarchive/libarchive/archive_read_data.3 Thu Sep 26 18:24:04 2019 (r352763) +++ projects/clang900-import/contrib/libarchive/libarchive/archive_read_data.3 Thu Sep 26 18:25:54 2019 (r352764) @@ -28,7 +28,7 @@ .Dt ARCHIVE_READ_DATA 3 .Os .Sh NAME -.Nm archive_read_data +.Nm archive_read_data , .Nm archive_read_data_block , .Nm archive_read_data_skip , .Nm archive_read_data_into_fd @@ -118,7 +118,6 @@ functions. .\" .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , .Xr archive_read 3 , .Xr archive_read_extract 3 , .Xr archive_read_filter 3 , @@ -127,4 +126,5 @@ functions. .Xr archive_read_open 3 , .Xr archive_read_set_options 3 , .Xr archive_util 3 , +.Xr libarchive 3 , .Xr tar 5 Modified: projects/clang900-import/contrib/libarchive/libarchive/archive_read_disk.3 ============================================================================== --- projects/clang900-import/contrib/libarchive/libarchive/archive_read_disk.3 Thu Sep 26 18:24:04 2019 (r352763) +++ projects/clang900-import/contrib/libarchive/libarchive/archive_read_disk.3 Thu Sep 26 18:25:54 2019 (r352764) @@ -99,9 +99,10 @@ following values: .Bl -tag -compact -width "indent" .It Cm ARCHIVE_READDISK_HONOR_NODUMP Skip files and directories with the nodump file attribute (file flag) set. -By default, the nodump file atrribute is ignored. +By default, the nodump file attribute is ignored. .It Cm ARCHIVE_READDISK_MAC_COPYFILE -Mac OS X specific. Read metadata (ACLs and extended attributes) with +Mac OS X specific. +Read metadata (ACLs and extended attributes) with .Xr copyfile 3 . By default, metadata is read using .Xr copyfile 3 . @@ -120,7 +121,7 @@ or for more information on file attributes. .It Cm ARCHIVE_READDISK_NO_TRAVERSE_MOUNTS Do not traverse mount points. -By defaut, moint points are traversed. +By default, mount points are traversed. .It Cm ARCHIVE_READDISK_NO_XATTR Do not read extended file attributes (xattrs). By default, extended file attributes are read from disk. @@ -216,7 +217,7 @@ of some other operation. (For example, directory traversal libraries often provide this information.) .Pp Where necessary, user and group ids are converted to user and group names -using the currently registered lookup functions above. +using the currently-registered lookup functions above. This affects the file ownership fields and ACL values in the .Tn struct archive_entry object. @@ -226,7 +227,7 @@ More information about the object and the overall design of the library can be found in the .Xr libarchive 3 overview. -.Sh EXAMPLE +.Sh EXAMPLES The following illustrates basic usage of the library by showing how to use it to copy an item on disk into an archive. .Bd -literal -offset indent @@ -291,11 +292,11 @@ and functions. .\" .Sh SEE ALSO +.Xr tar 1 , .Xr archive_read 3 , .Xr archive_util 3 , .Xr archive_write 3 , .Xr archive_write_disk 3 , -.Xr tar 1 , .Xr libarchive 3 .Sh HISTORY The Modified: projects/clang900-import/contrib/libarchive/libarchive/archive_read_extract.3 ============================================================================== --- projects/clang900-import/contrib/libarchive/libarchive/archive_read_extract.3 Thu Sep 26 18:24:04 2019 (r352763) +++ projects/clang900-import/contrib/libarchive/libarchive/archive_read_extract.3 Thu Sep 26 18:25:54 2019 (r352764) @@ -126,7 +126,6 @@ and functions. .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , .Xr archive_read 3 , .Xr archive_read_data 3 , .Xr archive_read_filter 3 , @@ -134,4 +133,5 @@ functions. .Xr archive_read_open 3 , .Xr archive_read_set_options 3 , .Xr archive_util 3 , +.Xr libarchive 3 , .Xr tar 5 Modified: projects/clang900-import/contrib/libarchive/libarchive/archive_read_filter.3 ============================================================================== --- projects/clang900-import/contrib/libarchive/libarchive/archive_read_filter.3 Thu Sep 26 18:24:04 2019 (r352763) +++ projects/clang900-import/contrib/libarchive/libarchive/archive_read_filter.3 Thu Sep 26 18:25:54 2019 (r352764) @@ -147,8 +147,8 @@ and functions. .\" .Sh SEE ALSO -.Xr libarchive 3 , .Xr archive_read 3 , .Xr archive_read_data 3 , .Xr archive_read_format 3 , -.Xr archive_read_format 3 +.Xr archive_read_format 3 , +.Xr libarchive 3 Modified: projects/clang900-import/contrib/libarchive/libarchive/archive_read_format.3 ============================================================================== --- projects/clang900-import/contrib/libarchive/libarchive/archive_read_format.3 Thu Sep 26 18:24:04 2019 (r352763) +++ projects/clang900-import/contrib/libarchive/libarchive/archive_read_format.3 Thu Sep 26 18:25:54 2019 (r352764) @@ -102,7 +102,7 @@ For example, .Fn archive_read_support_format_tar enables support for a variety of standard tar formats, old-style tar, ustar, pax interchange format, and many common variants. -.It Fn archive_read_support_format_all +.It Fn archive_read_support_format_all Enables support for all available formats except the .Dq raw format (see below). @@ -125,7 +125,7 @@ it is not possible to accurately determine a format fo an empty file based purely on contents. So empty files are treated by libarchive as a distinct format. -.It Fn archive_read_support_format_raw +.It Fn archive_read_support_format_raw The .Dq raw format handler allows libarchive to be used to read arbitrary data. @@ -153,11 +153,11 @@ functions. .\" .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , .Xr archive_read_data 3 , .Xr archive_read_filter 3 , .Xr archive_read_set_options 3 , .Xr archive_util 3 , +.Xr libarchive 3 , .Xr tar 5 .Sh BUGS Many traditional archiver programs treat Modified: projects/clang900-import/contrib/libarchive/libarchive/archive_read_free.3 ============================================================================== --- projects/clang900-import/contrib/libarchive/libarchive/archive_read_free.3 Thu Sep 26 18:24:04 2019 (r352763) +++ projects/clang900-import/contrib/libarchive/libarchive/archive_read_free.3 Thu Sep 26 18:25:54 2019 (r352764) @@ -83,11 +83,11 @@ and functions. .\" .Sh SEE ALSO -.Xr libarchive 3 , -.Xr archive_read_new 3 , .Xr archive_read_data 3 , .Xr archive_read_filter 3 , .Xr archive_read_format 3 , +.Xr archive_read_new 3 , .Xr archive_read_open 3 , .Xr archive_read_set_options 3 , -.Xr archive_util 3 +.Xr archive_util 3 , +.Xr libarchive 3 Modified: projects/clang900-import/contrib/libarchive/libarchive/archive_read_header.3 ============================================================================== --- projects/clang900-import/contrib/libarchive/libarchive/archive_read_header.3 Thu Sep 26 18:24:04 2019 (r352763) +++ projects/clang900-import/contrib/libarchive/libarchive/archive_read_header.3 Thu Sep 26 18:25:54 2019 (r352764) @@ -79,7 +79,6 @@ functions. .\" .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , .Xr archive_read 3 , .Xr archive_read_data 3 , .Xr archive_read_extract 3 , @@ -88,4 +87,5 @@ functions. .Xr archive_read_open 3 , .Xr archive_read_set_options 3 , .Xr archive_util 3 , +.Xr libarchive 3 , .Xr tar 5 Modified: projects/clang900-import/contrib/libarchive/libarchive/archive_read_new.3 ============================================================================== --- projects/clang900-import/contrib/libarchive/libarchive/archive_read_new.3 Thu Sep 26 18:24:04 2019 (r352763) +++ projects/clang900-import/contrib/libarchive/libarchive/archive_read_new.3 Thu Sep 26 18:25:54 2019 (r352764) @@ -50,10 +50,10 @@ object can be found in the overview manual page for .\" .Sh ERRORS .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , .Xr archive_read_data 3 , .Xr archive_read_filter 3 , .Xr archive_read_format 3 , .Xr archive_read_set_options 3 , .Xr archive_util 3 , +.Xr libarchive 3 , .Xr tar 5 Modified: projects/clang900-import/contrib/libarchive/libarchive/archive_read_open.3 ============================================================================== --- projects/clang900-import/contrib/libarchive/libarchive/archive_read_open.3 Thu Sep 26 18:24:04 2019 (r352763) +++ projects/clang900-import/contrib/libarchive/libarchive/archive_read_open.3 Thu Sep 26 18:25:54 2019 (r352764) @@ -205,7 +205,7 @@ On failure, the callback should invoke .Fn archive_set_error to register an error code and message and return -.Cm ARCHIVE_FATAL. +.Cm ARCHIVE_FATAL . .\" .Sh EXAMPLE .\" .Sh RETURN VALUES @@ -223,11 +223,11 @@ functions. .\" .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , .Xr archive_read 3 , .Xr archive_read_data 3 , .Xr archive_read_filter 3 , .Xr archive_read_format 3 , .Xr archive_read_set_options 3 , .Xr archive_util 3 , +.Xr libarchive 3 , .Xr tar 5 Modified: projects/clang900-import/contrib/libarchive/libarchive/archive_read_set_options.3 ============================================================================== --- projects/clang900-import/contrib/libarchive/libarchive/archive_read_set_options.3 Thu Sep 26 18:24:04 2019 (r352763) +++ projects/clang900-import/contrib/libarchive/libarchive/archive_read_set_options.3 Thu Sep 26 18:25:54 2019 (r352764) @@ -212,7 +212,8 @@ Use to disable. .It Cm read_concatenated_archives Ignore zeroed blocks in the archive, which occurs when multiple tar archives -have been concatenated together. Without this option, only the contents of +have been concatenated together. +Without this option, only the contents of the first concatenated archive would be read. .El .El @@ -226,6 +227,6 @@ functions. .\" .Sh SEE ALSO .Xr tar 1 , -.Xr libarchive 3 , +.Xr archive_read 3 , .Xr archive_write_set_options 3 , -.Xr archive_read 3 +.Xr libarchive 3 Modified: projects/clang900-import/contrib/libarchive/libarchive/archive_read_support_filter_gzip.c ============================================================================== --- projects/clang900-import/contrib/libarchive/libarchive/archive_read_support_filter_gzip.c Thu Sep 26 18:24:04 2019 (r352763) +++ projects/clang900-import/contrib/libarchive/libarchive/archive_read_support_filter_gzip.c Thu Sep 26 18:25:54 2019 (r352764) @@ -131,12 +131,20 @@ archive_read_support_filter_gzip(struct archive *_a) */ static ssize_t peek_at_header(struct archive_read_filter *filter, int *pbits, - struct private_data *state) +#ifdef HAVE_ZLIB_H + struct private_data *state +#else + void *state +#endif + ) { const unsigned char *p; ssize_t avail, len; int bits = 0; int header_flags; +#ifndef HAVE_ZLIB_H + (void)state; /* UNUSED */ +#endif /* Start by looking at the first ten bytes of the header, which * is all fixed layout. */ @@ -153,8 +161,10 @@ peek_at_header(struct archive_read_filter *filter, int bits += 3; header_flags = p[3]; /* Bytes 4-7 are mod time in little endian. */ +#ifdef HAVE_ZLIB_H if (state) state->mtime = archive_le32dec(p + 4); +#endif /* Byte 8 is deflate flags. */ /* XXXX TODO: return deflate flags back to consume_header for use in initializing the decompressor. */ @@ -171,7 +181,9 @@ peek_at_header(struct archive_read_filter *filter, int /* Null-terminated optional filename. */ if (header_flags & 8) { +#ifdef HAVE_ZLIB_H ssize_t file_start = len; +#endif do { ++len; if (avail < len) @@ -181,11 +193,13 @@ peek_at_header(struct archive_read_filter *filter, int return (0); } while (p[len - 1] != 0); +#ifdef HAVE_ZLIB_H if (state) { /* Reset the name in case of repeat header reads. */ free(state->name); state->name = strdup((const char *)&p[file_start]); } +#endif } /* Null-terminated optional comment. */ @@ -236,24 +250,6 @@ gzip_bidder_bid(struct archive_read_filter_bidder *sel return (0); } -static int -gzip_read_header(struct archive_read_filter *self, struct archive_entry *entry) -{ - struct private_data *state; - - state = (struct private_data *)self->data; - - /* A mtime of 0 is considered invalid/missing. */ - if (state->mtime != 0) - archive_entry_set_mtime(entry, state->mtime, 0); - - /* If the name is available, extract it. */ - if (state->name) - archive_entry_set_pathname(entry, state->name); - - return (ARCHIVE_OK); -} - #ifndef HAVE_ZLIB_H /* @@ -277,6 +273,24 @@ gzip_bidder_init(struct archive_read_filter *self) #else +static int +gzip_read_header(struct archive_read_filter *self, struct archive_entry *entry) +{ + struct private_data *state; + + state = (struct private_data *)self->data; + + /* A mtime of 0 is considered invalid/missing. */ + if (state->mtime != 0) + archive_entry_set_mtime(entry, state->mtime, 0); + + /* If the name is available, extract it. */ + if (state->name) + archive_entry_set_pathname(entry, state->name); + + return (ARCHIVE_OK); +} + /* * Initialize the filter object. */ @@ -306,7 +320,9 @@ gzip_bidder_init(struct archive_read_filter *self) self->read = gzip_filter_read; self->skip = NULL; /* not supported */ self->close = gzip_filter_close; +#ifdef HAVE_ZLIB_H self->read_header = gzip_read_header; +#endif state->in_stream = 0; /* We're not actually within a stream yet. */ Modified: projects/clang900-import/contrib/libarchive/libarchive/archive_read_support_filter_lz4.c ============================================================================== --- projects/clang900-import/contrib/libarchive/libarchive/archive_read_support_filter_lz4.c Thu Sep 26 18:24:04 2019 (r352763) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Fri Sep 27 20:09:48 2019 Return-Path: Delivered-To: svn-src-projects@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 21DEF12B971 for ; Fri, 27 Sep 2019 20:09:48 +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 46g2vc0nYdz4G6R; Fri, 27 Sep 2019 20:09:48 +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 F22641E1F4; Fri, 27 Sep 2019 20:09:47 +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 x8RK9lKZ077082; Fri, 27 Sep 2019 20:09:47 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x8RK9iTq077065; Fri, 27 Sep 2019 20:09:44 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <201909272009.x8RK9iTq077065@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Fri, 27 Sep 2019 20:09:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r352817 - in projects/nfsv42/sys: amd64/amd64 amd64/linux amd64/linux32 amd64/sgx amd64/vmm arm/arm arm/freescale/imx arm/nvidia/drm2 arm/ti arm/ti/am335x arm64/arm64 arm64/conf arm64/i... X-SVN-Group: projects X-SVN-Commit-Author: rmacklem X-SVN-Commit-Paths: in projects/nfsv42/sys: amd64/amd64 amd64/linux amd64/linux32 amd64/sgx amd64/vmm arm/arm arm/freescale/imx arm/nvidia/drm2 arm/ti arm/ti/am335x arm64/arm64 arm64/conf arm64/intel arm64/linux cam cam/... X-SVN-Commit-Revision: 352817 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Sep 2019 20:09:48 -0000 Author: rmacklem Date: Fri Sep 27 20:09:43 2019 New Revision: 352817 URL: https://svnweb.freebsd.org/changeset/base/352817 Log: Merge in an up to date kernel from head. Added: projects/nfsv42/sys/arm64/intel/ - copied from r352815, head/sys/arm64/intel/ projects/nfsv42/sys/arm64/linux/linux_genassym.c - copied unchanged from r352815, head/sys/arm64/linux/linux_genassym.c projects/nfsv42/sys/dev/hwpmc/hwpmc_beri.c - copied unchanged from r352815, head/sys/dev/hwpmc/hwpmc_beri.c projects/nfsv42/sys/dev/hwpmc/hwpmc_beri.h - copied unchanged from r352815, head/sys/dev/hwpmc/hwpmc_beri.h projects/nfsv42/sys/dev/nvdimm/nvdimm_acpi.c - copied unchanged from r352815, head/sys/dev/nvdimm/nvdimm_acpi.c projects/nfsv42/sys/dev/psci/smccc_arm.S - copied unchanged from r352815, head/sys/dev/psci/smccc_arm.S projects/nfsv42/sys/dev/psci/smccc_arm64.S - copied unchanged from r352815, head/sys/dev/psci/smccc_arm64.S projects/nfsv42/sys/kern/subr_filter.c - copied unchanged from r352815, head/sys/kern/subr_filter.c projects/nfsv42/sys/modules/opal_nvram/ - copied from r352815, head/sys/modules/opal_nvram/ projects/nfsv42/sys/modules/tcp/bbr/ - copied from r352815, head/sys/modules/tcp/bbr/ projects/nfsv42/sys/netinet/tcp_stacks/bbr.c - copied unchanged from r352815, head/sys/netinet/tcp_stacks/bbr.c projects/nfsv42/sys/netinet/tcp_stacks/tcp_bbr.h - copied unchanged from r352815, head/sys/netinet/tcp_stacks/tcp_bbr.h projects/nfsv42/sys/powerpc/powernv/opal_nvram.c - copied unchanged from r352815, head/sys/powerpc/powernv/opal_nvram.c projects/nfsv42/sys/sys/arb.h - copied unchanged from r352815, head/sys/sys/arb.h projects/nfsv42/sys/sys/tim_filter.h - copied unchanged from r352815, head/sys/sys/tim_filter.h Deleted: projects/nfsv42/sys/dev/nand/ projects/nfsv42/sys/dev/psci/psci_arm.S projects/nfsv42/sys/dev/psci/psci_arm64.S projects/nfsv42/sys/fs/nandfs/ projects/nfsv42/sys/gnu/dts/include/dt-bindings/genpd/ projects/nfsv42/sys/mips/gxemul/ projects/nfsv42/sys/modules/drm/ projects/nfsv42/sys/modules/drm2/ projects/nfsv42/sys/modules/if_tap/ projects/nfsv42/sys/modules/if_tun/ projects/nfsv42/sys/modules/nand/ projects/nfsv42/sys/modules/nandfs/ projects/nfsv42/sys/modules/nandsim/ Modified: projects/nfsv42/sys/amd64/amd64/efirt_machdep.c projects/nfsv42/sys/amd64/amd64/elf_machdep.c projects/nfsv42/sys/amd64/amd64/pmap.c projects/nfsv42/sys/amd64/amd64/trap.c projects/nfsv42/sys/amd64/linux/linux_dummy.c projects/nfsv42/sys/amd64/linux/linux_proto.h projects/nfsv42/sys/amd64/linux/linux_systrace_args.c projects/nfsv42/sys/amd64/linux/syscalls.master projects/nfsv42/sys/amd64/linux32/linux32_dummy.c projects/nfsv42/sys/amd64/linux32/linux32_proto.h projects/nfsv42/sys/amd64/linux32/linux32_systrace_args.c projects/nfsv42/sys/amd64/linux32/syscalls.master projects/nfsv42/sys/amd64/sgx/sgx.c projects/nfsv42/sys/amd64/vmm/vmm.c projects/nfsv42/sys/arm/arm/pmap-v4.c projects/nfsv42/sys/arm/arm/pmap-v6.c projects/nfsv42/sys/arm/arm/trap-v4.c projects/nfsv42/sys/arm/arm/trap-v6.c projects/nfsv42/sys/arm/freescale/imx/imx6_machdep.c projects/nfsv42/sys/arm/nvidia/drm2/tegra_bo.c projects/nfsv42/sys/arm/ti/am335x/am335x_dmtpps.c projects/nfsv42/sys/arm/ti/ti_sysc.c projects/nfsv42/sys/arm64/arm64/efirt_machdep.c projects/nfsv42/sys/arm64/arm64/pmap.c projects/nfsv42/sys/arm64/arm64/trap.c projects/nfsv42/sys/arm64/conf/GENERIC projects/nfsv42/sys/arm64/linux/linux_dummy.c projects/nfsv42/sys/arm64/linux/linux_proto.h projects/nfsv42/sys/arm64/linux/linux_systrace_args.c projects/nfsv42/sys/arm64/linux/syscalls.master projects/nfsv42/sys/cam/cam_periph.c projects/nfsv42/sys/cam/scsi/scsi_da.c projects/nfsv42/sys/cam/scsi/scsi_enc_ses.c projects/nfsv42/sys/cddl/compat/opensolaris/kern/opensolaris_vfs.c projects/nfsv42/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c projects/nfsv42/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c projects/nfsv42/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c projects/nfsv42/sys/cddl/dev/dtrace/amd64/dtrace_asm.S projects/nfsv42/sys/cddl/dev/dtrace/amd64/dtrace_subr.c projects/nfsv42/sys/cddl/dev/dtrace/i386/dtrace_asm.S projects/nfsv42/sys/cddl/dev/dtrace/i386/dtrace_subr.c projects/nfsv42/sys/compat/cloudabi/cloudabi_fd.c projects/nfsv42/sys/compat/freebsd32/freebsd32_proto.h projects/nfsv42/sys/compat/freebsd32/freebsd32_syscall.h projects/nfsv42/sys/compat/freebsd32/freebsd32_syscalls.c projects/nfsv42/sys/compat/freebsd32/freebsd32_sysent.c projects/nfsv42/sys/compat/freebsd32/freebsd32_systrace_args.c projects/nfsv42/sys/compat/freebsd32/syscalls.master projects/nfsv42/sys/compat/linsysfs/linsysfs.c projects/nfsv42/sys/compat/linux/linux_file.c projects/nfsv42/sys/compat/linuxkpi/common/include/linux/interrupt.h projects/nfsv42/sys/compat/linuxkpi/common/include/linux/mm.h projects/nfsv42/sys/compat/linuxkpi/common/src/linux_compat.c projects/nfsv42/sys/compat/linuxkpi/common/src/linux_page.c projects/nfsv42/sys/compat/linuxkpi/common/src/linux_work.c projects/nfsv42/sys/conf/files projects/nfsv42/sys/conf/files.arm projects/nfsv42/sys/conf/files.arm64 projects/nfsv42/sys/conf/files.mips projects/nfsv42/sys/conf/files.powerpc projects/nfsv42/sys/conf/kern.mk projects/nfsv42/sys/conf/ldscript.riscv projects/nfsv42/sys/conf/makeLINT.mk projects/nfsv42/sys/conf/options projects/nfsv42/sys/conf/options.arm64 projects/nfsv42/sys/contrib/ipfilter/netinet/fil.c projects/nfsv42/sys/contrib/octeon-sdk/cvmx-app-init.h projects/nfsv42/sys/contrib/vchiq/interface/vchiq_arm/vchiq_2835_arm.c projects/nfsv42/sys/ddb/db_command.h projects/nfsv42/sys/ddb/db_lex.c projects/nfsv42/sys/ddb/db_lex.h projects/nfsv42/sys/ddb/db_run.c projects/nfsv42/sys/dev/agp/agp.c projects/nfsv42/sys/dev/agp/agp_i810.c projects/nfsv42/sys/dev/cxgbe/tom/t4_cpl_io.c projects/nfsv42/sys/dev/cxgbe/tom/t4_ddp.c projects/nfsv42/sys/dev/drm2/ttm/ttm_bo_vm.c projects/nfsv42/sys/dev/drm2/ttm/ttm_page_alloc.c projects/nfsv42/sys/dev/drm2/ttm/ttm_tt.c projects/nfsv42/sys/dev/firewire/if_fwip.c projects/nfsv42/sys/dev/hwpmc/pmc_events.h projects/nfsv42/sys/dev/ichiic/ig4_iic.c projects/nfsv42/sys/dev/iicbus/iiconf.c projects/nfsv42/sys/dev/iicbus/iiconf.h projects/nfsv42/sys/dev/ioat/ioat.c projects/nfsv42/sys/dev/ioat/ioat_internal.h projects/nfsv42/sys/dev/ixgbe/if_ix.c projects/nfsv42/sys/dev/ixgbe/if_ixv.c projects/nfsv42/sys/dev/ixgbe/ixgbe.h projects/nfsv42/sys/dev/jme/if_jme.c projects/nfsv42/sys/dev/md/md.c projects/nfsv42/sys/dev/netmap/netmap_freebsd.c projects/nfsv42/sys/dev/nvdimm/nvdimm.c projects/nfsv42/sys/dev/nvdimm/nvdimm_var.h projects/nfsv42/sys/dev/nvme/nvme_ahci.c projects/nfsv42/sys/dev/nvme/nvme_ctrlr.c projects/nfsv42/sys/dev/nvme/nvme_ctrlr_cmd.c projects/nfsv42/sys/dev/nvme/nvme_pci.c projects/nfsv42/sys/dev/nvme/nvme_private.h projects/nfsv42/sys/dev/nvme/nvme_qpair.c projects/nfsv42/sys/dev/nvme/nvme_sysctl.c projects/nfsv42/sys/dev/pccard/pccard.c projects/nfsv42/sys/dev/psci/psci.c projects/nfsv42/sys/dev/psci/psci.h projects/nfsv42/sys/dev/psci/smccc.h projects/nfsv42/sys/dev/ral/if_ral_pci.c projects/nfsv42/sys/dev/ral/rt2860.c projects/nfsv42/sys/dev/sound/pci/hda/hdac.c projects/nfsv42/sys/dev/sound/pci/hda/hdac.h projects/nfsv42/sys/dev/uart/uart_dev_ns8250.c projects/nfsv42/sys/dev/usb/controller/xhci.c projects/nfsv42/sys/dev/usb/usb_bus.h projects/nfsv42/sys/dev/usb/usb_ioctl.h projects/nfsv42/sys/dev/usb/usb_transfer.c projects/nfsv42/sys/dev/vt/hw/fb/vt_fb.c projects/nfsv42/sys/dev/vt/vt.h projects/nfsv42/sys/dev/vt/vt_buf.c projects/nfsv42/sys/dev/vt/vt_core.c projects/nfsv42/sys/dev/vt/vt_cpulogos.c projects/nfsv42/sys/dev/xen/gntdev/gntdev.c projects/nfsv42/sys/dev/xen/privcmd/privcmd.c projects/nfsv42/sys/fs/fuse/fuse_internal.c projects/nfsv42/sys/fs/fuse/fuse_io.c projects/nfsv42/sys/fs/fuse/fuse_node.h projects/nfsv42/sys/fs/fuse/fuse_vnops.c projects/nfsv42/sys/fs/msdosfs/fat.h projects/nfsv42/sys/fs/msdosfs/msdosfs_denode.c projects/nfsv42/sys/fs/msdosfs/msdosfs_fat.c projects/nfsv42/sys/fs/msdosfs/msdosfs_vfsops.c projects/nfsv42/sys/fs/msdosfs/msdosfsmount.h projects/nfsv42/sys/fs/nfs/nfsport.h projects/nfsv42/sys/fs/nfsclient/nfs_clbio.c projects/nfsv42/sys/fs/nfsclient/nfs_clnfsiod.c projects/nfsv42/sys/fs/nfsclient/nfs_clnode.c projects/nfsv42/sys/fs/nfsclient/nfs_clport.c projects/nfsv42/sys/fs/nfsclient/nfs_clrpcops.c projects/nfsv42/sys/fs/nfsclient/nfs_clsubs.c projects/nfsv42/sys/fs/nfsclient/nfs_clvfsops.c projects/nfsv42/sys/fs/nfsclient/nfs_clvnops.c projects/nfsv42/sys/fs/pseudofs/pseudofs.c projects/nfsv42/sys/fs/pseudofs/pseudofs.h projects/nfsv42/sys/fs/tmpfs/tmpfs_subr.c projects/nfsv42/sys/geom/nop/g_nop.c projects/nfsv42/sys/geom/nop/g_nop.h projects/nfsv42/sys/i386/i386/pmap.c projects/nfsv42/sys/i386/i386/pmap_base.c projects/nfsv42/sys/i386/i386/trap.c projects/nfsv42/sys/i386/include/pmap_base.h projects/nfsv42/sys/i386/linux/linux_dummy.c projects/nfsv42/sys/i386/linux/linux_proto.h projects/nfsv42/sys/i386/linux/linux_systrace_args.c projects/nfsv42/sys/i386/linux/syscalls.master projects/nfsv42/sys/kern/capabilities.conf projects/nfsv42/sys/kern/imgact_elf.c projects/nfsv42/sys/kern/init_sysent.c projects/nfsv42/sys/kern/kern_cpuset.c projects/nfsv42/sys/kern/kern_descrip.c projects/nfsv42/sys/kern/kern_environment.c projects/nfsv42/sys/kern/kern_exec.c projects/nfsv42/sys/kern/kern_fork.c projects/nfsv42/sys/kern/kern_kcov.c projects/nfsv42/sys/kern/kern_rangelock.c projects/nfsv42/sys/kern/kern_sendfile.c projects/nfsv42/sys/kern/kern_sig.c projects/nfsv42/sys/kern/kern_sysctl.c projects/nfsv42/sys/kern/kern_tc.c projects/nfsv42/sys/kern/kern_thread.c projects/nfsv42/sys/kern/kern_timeout.c projects/nfsv42/sys/kern/link_elf.c projects/nfsv42/sys/kern/makesyscalls.sh projects/nfsv42/sys/kern/sched_ule.c projects/nfsv42/sys/kern/subr_epoch.c projects/nfsv42/sys/kern/subr_lock.c projects/nfsv42/sys/kern/subr_pcpu.c projects/nfsv42/sys/kern/subr_stack.c projects/nfsv42/sys/kern/subr_terminal.c projects/nfsv42/sys/kern/sys_process.c projects/nfsv42/sys/kern/syscalls.c projects/nfsv42/sys/kern/syscalls.master projects/nfsv42/sys/kern/systrace_args.c projects/nfsv42/sys/kern/uipc_ktls.c projects/nfsv42/sys/kern/uipc_mbuf.c projects/nfsv42/sys/kern/uipc_shm.c projects/nfsv42/sys/kern/vfs_bio.c projects/nfsv42/sys/kern/vfs_cache.c projects/nfsv42/sys/kern/vfs_cluster.c projects/nfsv42/sys/kern/vfs_default.c projects/nfsv42/sys/kern/vfs_mount.c projects/nfsv42/sys/kern/vfs_mountroot.c projects/nfsv42/sys/kern/vfs_subr.c projects/nfsv42/sys/kern/vfs_vnops.c projects/nfsv42/sys/mips/cavium/std.octeon1 projects/nfsv42/sys/mips/include/pcpu.h projects/nfsv42/sys/mips/mips/pmap.c projects/nfsv42/sys/mips/mips/trap.c projects/nfsv42/sys/modules/Makefile projects/nfsv42/sys/modules/nvdimm/Makefile projects/nfsv42/sys/modules/tcp/Makefile projects/nfsv42/sys/net/bpf_zerocopy.c projects/nfsv42/sys/net/if.c projects/nfsv42/sys/net/if.h projects/nfsv42/sys/net/if_ethersubr.c projects/nfsv42/sys/net/if_spppsubr.c projects/nfsv42/sys/net/if_vlan.c projects/nfsv42/sys/net/iflib.c projects/nfsv42/sys/net/rtsock.c projects/nfsv42/sys/netinet/ip_output.c projects/nfsv42/sys/netinet/ip_var.h projects/nfsv42/sys/netinet/sctp_asconf.c projects/nfsv42/sys/netinet/sctp_auth.c projects/nfsv42/sys/netinet/sctp_crc32.c projects/nfsv42/sys/netinet/sctp_indata.c projects/nfsv42/sys/netinet/sctp_input.c projects/nfsv42/sys/netinet/sctputil.c projects/nfsv42/sys/netinet/sctputil.h projects/nfsv42/sys/netinet/tcp.h projects/nfsv42/sys/netinet/tcp_input.c projects/nfsv42/sys/netinet/tcp_ratelimit.c projects/nfsv42/sys/netinet/tcp_ratelimit.h projects/nfsv42/sys/netinet/tcp_sack.c projects/nfsv42/sys/netinet/tcp_stacks/rack.c projects/nfsv42/sys/netinet/tcp_stacks/rack_bbr_common.c projects/nfsv42/sys/netinet/tcp_stacks/rack_bbr_common.h projects/nfsv42/sys/netinet/tcp_stacks/sack_filter.c projects/nfsv42/sys/netinet/tcp_stacks/sack_filter.h projects/nfsv42/sys/netinet/tcp_stacks/tcp_rack.h projects/nfsv42/sys/netinet/tcp_syncache.c projects/nfsv42/sys/netinet/tcp_syncache.h projects/nfsv42/sys/netinet6/ip6_input.c projects/nfsv42/sys/netpfil/ipfw/ip_fw2.c projects/nfsv42/sys/opencrypto/ktls_ocf.c projects/nfsv42/sys/powerpc/aim/mmu_oea.c projects/nfsv42/sys/powerpc/aim/mmu_oea64.c projects/nfsv42/sys/powerpc/booke/pmap.c projects/nfsv42/sys/powerpc/include/atomic.h projects/nfsv42/sys/powerpc/powernv/opal.h projects/nfsv42/sys/powerpc/powernv/opal_hmi.c projects/nfsv42/sys/powerpc/powerpc/mp_machdep.c projects/nfsv42/sys/powerpc/powerpc/trap.c projects/nfsv42/sys/riscv/conf/GENERIC projects/nfsv42/sys/riscv/riscv/clock.c projects/nfsv42/sys/riscv/riscv/elf_machdep.c projects/nfsv42/sys/riscv/riscv/identcpu.c projects/nfsv42/sys/riscv/riscv/mp_machdep.c projects/nfsv42/sys/riscv/riscv/pmap.c projects/nfsv42/sys/riscv/riscv/trap.c projects/nfsv42/sys/sparc64/sparc64/pmap.c projects/nfsv42/sys/sparc64/sparc64/trap.c projects/nfsv42/sys/sys/buf.h projects/nfsv42/sys/sys/elf_common.h projects/nfsv42/sys/sys/epoch.h projects/nfsv42/sys/sys/fcntl.h projects/nfsv42/sys/sys/file.h projects/nfsv42/sys/sys/ktls.h projects/nfsv42/sys/sys/mbuf.h projects/nfsv42/sys/sys/mman.h projects/nfsv42/sys/sys/mount.h projects/nfsv42/sys/sys/param.h projects/nfsv42/sys/sys/pcpu.h projects/nfsv42/sys/sys/pmc.h projects/nfsv42/sys/sys/proc.h projects/nfsv42/sys/sys/rangelock.h projects/nfsv42/sys/sys/refcount.h projects/nfsv42/sys/sys/signal.h projects/nfsv42/sys/sys/signalvar.h projects/nfsv42/sys/sys/sockio.h projects/nfsv42/sys/sys/stack.h projects/nfsv42/sys/sys/syscall.h projects/nfsv42/sys/sys/syscall.mk projects/nfsv42/sys/sys/syscallsubr.h projects/nfsv42/sys/sys/sysctl.h projects/nfsv42/sys/sys/sysproto.h projects/nfsv42/sys/sys/unistd.h projects/nfsv42/sys/sys/vnode.h projects/nfsv42/sys/tools/fw_stub.awk projects/nfsv42/sys/ufs/ffs/ffs_softdep.c projects/nfsv42/sys/vm/device_pager.c projects/nfsv42/sys/vm/phys_pager.c projects/nfsv42/sys/vm/uma.h projects/nfsv42/sys/vm/vm_extern.h projects/nfsv42/sys/vm/vm_fault.c projects/nfsv42/sys/vm/vm_glue.c projects/nfsv42/sys/vm/vm_map.c projects/nfsv42/sys/vm/vm_object.c projects/nfsv42/sys/vm/vm_page.c projects/nfsv42/sys/vm/vm_page.h projects/nfsv42/sys/vm/vm_pageout.c projects/nfsv42/sys/vm/vm_param.h projects/nfsv42/sys/vm/vm_swapout.c projects/nfsv42/sys/x86/iommu/intel_idpgtbl.c projects/nfsv42/sys/x86/x86/tsc.c Directory Properties: projects/nfsv42/sys/ (props changed) projects/nfsv42/sys/arm64/conf/ (props changed) projects/nfsv42/sys/cddl/contrib/opensolaris/ (props changed) projects/nfsv42/sys/contrib/ipfilter/ (props changed) projects/nfsv42/sys/contrib/octeon-sdk/ (props changed) projects/nfsv42/sys/gnu/dts/include/ (props changed) Modified: projects/nfsv42/sys/amd64/amd64/efirt_machdep.c ============================================================================== --- projects/nfsv42/sys/amd64/amd64/efirt_machdep.c Fri Sep 27 20:08:19 2019 (r352816) +++ projects/nfsv42/sys/amd64/amd64/efirt_machdep.c Fri Sep 27 20:09:43 2019 (r352817) @@ -74,7 +74,7 @@ efi_destroy_1t1_map(void) if (obj_1t1_pt != NULL) { VM_OBJECT_RLOCK(obj_1t1_pt); TAILQ_FOREACH(m, &obj_1t1_pt->memq, listq) - m->wire_count = 0; + m->ref_count = VPRC_OBJREF; vm_wire_sub(obj_1t1_pt->resident_page_count); VM_OBJECT_RUNLOCK(obj_1t1_pt); vm_object_deallocate(obj_1t1_pt); Modified: projects/nfsv42/sys/amd64/amd64/elf_machdep.c ============================================================================== --- projects/nfsv42/sys/amd64/amd64/elf_machdep.c Fri Sep 27 20:08:19 2019 (r352816) +++ projects/nfsv42/sys/amd64/amd64/elf_machdep.c Fri Sep 27 20:09:43 2019 (r352817) @@ -267,7 +267,6 @@ elf_reloc_internal(linker_file_t lf, Elf_Addr relocbas */ printf("kldload: unexpected R_COPY relocation\n"); return (-1); - break; case R_X86_64_GLOB_DAT: /* S */ case R_X86_64_JMP_SLOT: /* XXX need addend + offset */ @@ -279,7 +278,7 @@ elf_reloc_internal(linker_file_t lf, Elf_Addr relocbas break; case R_X86_64_RELATIVE: /* B + A */ - addr = relocbase + addend; + addr = elf_relocaddr(lf, relocbase + addend); val = addr; if (*where != val) *where = val; Modified: projects/nfsv42/sys/amd64/amd64/pmap.c ============================================================================== --- projects/nfsv42/sys/amd64/amd64/pmap.c Fri Sep 27 20:08:19 2019 (r352816) +++ projects/nfsv42/sys/amd64/amd64/pmap.c Fri Sep 27 20:09:43 2019 (r352817) @@ -1539,13 +1539,13 @@ create_pagetables(vm_paddr_t *firstaddr) } for (j = 0; i < ndmpdp; i++, j++) { pdp_p[i] = DMPDphys + ptoa(j); - pdp_p[i] |= X86_PG_RW | X86_PG_V; + pdp_p[i] |= X86_PG_RW | X86_PG_V | pg_nx; } /* * Instead of using a 1G page for the memory containing the kernel, - * use 2M pages with appropriate permissions. (If using 1G pages, - * this will partially overwrite the PDPEs above.) + * use 2M pages with read-only and no-execute permissions. (If using 1G + * pages, this will partially overwrite the PDPEs above.) */ if (ndm1g) { pd_p = (pd_entry_t *)DMPDkernphys; @@ -1555,7 +1555,7 @@ create_pagetables(vm_paddr_t *firstaddr) bootaddr_rwx(i << PDRSHIFT); for (i = 0; i < nkdmpde; i++) pdp_p[i] = (DMPDkernphys + ptoa(i)) | X86_PG_RW | - X86_PG_V; + X86_PG_V | pg_nx; } /* And recursively map PML4 to itself in order to get PTmap */ @@ -1566,7 +1566,7 @@ create_pagetables(vm_paddr_t *firstaddr) /* Connect the Direct Map slot(s) up to the PML4. */ for (i = 0; i < ndmpdpphys; i++) { p4_p[DMPML4I + i] = DMPDPphys + ptoa(i); - p4_p[DMPML4I + i] |= X86_PG_RW | X86_PG_V; + p4_p[DMPML4I + i] |= X86_PG_RW | X86_PG_V | pg_nx; } /* Connect the KVA slots up to the PML4 */ @@ -1856,7 +1856,7 @@ pmap_init(void) ("pmap_init: page table page is out of range")); mpte->pindex = pmap_pde_pindex(KERNBASE) + i; mpte->phys_addr = KPTphys + (i << PAGE_SHIFT); - mpte->wire_count = 1; + mpte->ref_count = 1; /* * Collect the page table pages that were replaced by a 2MB @@ -1947,7 +1947,7 @@ pmap_init(void) if (lm_ents > LMEPML4I - LMSPML4I + 1) lm_ents = LMEPML4I - LMSPML4I + 1; if (bootverbose) - printf("pmap: large map %u PML4 slots (%lu Gb)\n", + printf("pmap: large map %u PML4 slots (%lu GB)\n", lm_ents, (u_long)lm_ents * (NBPML4 / 1024 / 1024 / 1024)); if (lm_ents != 0) { large_vmem = vmem_create("large", LARGEMAP_MIN_ADDRESS, @@ -1965,6 +1965,11 @@ pmap_init(void) } } +SYSCTL_UINT(_vm_pmap, OID_AUTO, large_map_pml4_entries, + CTLFLAG_RDTUN | CTLFLAG_NOFETCH, &lm_ents, 0, + "Maximum number of PML4 entries for use by large map (tunable). " + "Each entry corresponds to 512GB of address space."); + static SYSCTL_NODE(_vm_pmap, OID_AUTO, pde, CTLFLAG_RD, 0, "2MB page mapping counters"); @@ -3064,38 +3069,28 @@ pmap_extract_and_hold(pmap_t pmap, vm_offset_t va, vm_ { pd_entry_t pde, *pdep; pt_entry_t pte, PG_RW, PG_V; - vm_paddr_t pa; vm_page_t m; - pa = 0; m = NULL; PG_RW = pmap_rw_bit(pmap); PG_V = pmap_valid_bit(pmap); + PMAP_LOCK(pmap); -retry: pdep = pmap_pde(pmap, va); if (pdep != NULL && (pde = *pdep)) { if (pde & PG_PS) { - if ((pde & PG_RW) || (prot & VM_PROT_WRITE) == 0) { - if (vm_page_pa_tryrelock(pmap, (pde & - PG_PS_FRAME) | (va & PDRMASK), &pa)) - goto retry; - m = PHYS_TO_VM_PAGE(pa); - } + if ((pde & PG_RW) != 0 || (prot & VM_PROT_WRITE) == 0) + m = PHYS_TO_VM_PAGE((pde & PG_PS_FRAME) | + (va & PDRMASK)); } else { pte = *pmap_pde_to_pte(pdep, va); - if ((pte & PG_V) && - ((pte & PG_RW) || (prot & VM_PROT_WRITE) == 0)) { - if (vm_page_pa_tryrelock(pmap, pte & PG_FRAME, - &pa)) - goto retry; - m = PHYS_TO_VM_PAGE(pa); - } + if ((pte & PG_V) != 0 && + ((pte & PG_RW) != 0 || (prot & VM_PROT_WRITE) == 0)) + m = PHYS_TO_VM_PAGE(pte & PG_FRAME); } - if (m != NULL) - vm_page_wire(m); + if (m != NULL && !vm_page_wire_mapped(m)) + m = NULL; } - PA_UNLOCK_COND(pa); PMAP_UNLOCK(pmap); return (m); } @@ -3144,7 +3139,7 @@ pmap_kenter(vm_offset_t va, vm_paddr_t pa) pt_entry_t *pte; pte = vtopte(va); - pte_store(pte, pa | X86_PG_RW | X86_PG_V | pg_g); + pte_store(pte, pa | X86_PG_RW | X86_PG_V | pg_g | pg_nx); } static __inline void @@ -3155,7 +3150,7 @@ pmap_kenter_attr(vm_offset_t va, vm_paddr_t pa, int mo pte = vtopte(va); cache_bits = pmap_cache_bits(kernel_pmap, mode, 0); - pte_store(pte, pa | X86_PG_RW | X86_PG_V | pg_g | cache_bits); + pte_store(pte, pa | X86_PG_RW | X86_PG_V | pg_g | pg_nx | cache_bits); } /* @@ -3295,8 +3290,8 @@ pmap_remove_pt_page(pmap_t pmap, vm_offset_t va) } /* - * Decrements a page table page's wire count, which is used to record the - * number of valid page table entries within the page. If the wire count + * Decrements a page table page's reference count, which is used to record the + * number of valid page table entries within the page. If the reference count * drops to zero, then the page table page is unmapped. Returns TRUE if the * page table page was unmapped and FALSE otherwise. */ @@ -3304,8 +3299,8 @@ static inline boolean_t pmap_unwire_ptp(pmap_t pmap, vm_offset_t va, vm_page_t m, struct spglist *free) { - --m->wire_count; - if (m->wire_count == 0) { + --m->ref_count; + if (m->ref_count == 0) { _pmap_unwire_ptp(pmap, va, m, free); return (TRUE); } else @@ -3365,7 +3360,7 @@ _pmap_unwire_ptp(pmap_t pmap, vm_offset_t va, vm_page_ /* * After removing a page table entry, this routine is used to - * conditionally free the page, and manage the hold/wire counts. + * conditionally free the page, and manage the reference count. */ static int pmap_unuse_pt(pmap_t pmap, vm_offset_t va, pd_entry_t ptepde, @@ -3625,7 +3620,7 @@ _pmap_allocpte(pmap_t pmap, vm_pindex_t ptepindex, str } else { /* Add reference to pdp page */ pdppg = PHYS_TO_VM_PAGE(*pml4 & PG_FRAME); - pdppg->wire_count++; + pdppg->ref_count++; } pdp = (pdp_entry_t *)PHYS_TO_DMAP(*pml4 & PG_FRAME); @@ -3670,7 +3665,7 @@ _pmap_allocpte(pmap_t pmap, vm_pindex_t ptepindex, str } else { /* Add reference to the pd page */ pdpg = PHYS_TO_VM_PAGE(*pdp & PG_FRAME); - pdpg->wire_count++; + pdpg->ref_count++; } } pd = (pd_entry_t *)PHYS_TO_DMAP(*pdp & PG_FRAME); @@ -3699,7 +3694,7 @@ retry: if (pdpe != NULL && (*pdpe & PG_V) != 0) { /* Add a reference to the pd page. */ pdpg = PHYS_TO_VM_PAGE(*pdpe & PG_FRAME); - pdpg->wire_count++; + pdpg->ref_count++; } else { /* Allocate a pd page. */ ptepindex = pmap_pde_pindex(va); @@ -3750,7 +3745,7 @@ retry: */ if (pd != NULL && (*pd & PG_V) != 0) { m = PHYS_TO_VM_PAGE(*pd & PG_FRAME); - m->wire_count++; + m->ref_count++; } else { /* * Here if the pte page isn't mapped, or if it has been @@ -4215,7 +4210,7 @@ next_chunk: m_pc = SLIST_FIRST(&free); SLIST_REMOVE_HEAD(&free, plinks.s.ss); /* Recycle a freed page table page. */ - m_pc->wire_count = 1; + m_pc->ref_count = 1; } vm_page_free_pages_toq(&free, true); return (m_pc); @@ -4795,7 +4790,7 @@ pmap_demote_pde_locked(pmap_t pmap, pd_entry_t *pde, v } if (!in_kernel) { - mpte->wire_count = NPTEPG; + mpte->ref_count = NPTEPG; pmap_resident_count_inc(pmap, 1); } } @@ -4956,9 +4951,9 @@ pmap_remove_pde(pmap_t pmap, pd_entry_t *pdq, vm_offse KASSERT(mpte->valid == VM_PAGE_BITS_ALL, ("pmap_remove_pde: pte page not promoted")); pmap_resident_count_dec(pmap, 1); - KASSERT(mpte->wire_count == NPTEPG, - ("pmap_remove_pde: pte page wire count error")); - mpte->wire_count = 0; + KASSERT(mpte->ref_count == NPTEPG, + ("pmap_remove_pde: pte page ref count error")); + mpte->ref_count = 0; pmap_add_delayed_free_list(mpte, free, FALSE); } } @@ -5719,7 +5714,7 @@ retry: pte = pmap_pde_to_pte(pde, va); if (va < VM_MAXUSER_ADDRESS && mpte == NULL) { mpte = PHYS_TO_VM_PAGE(*pde & PG_FRAME); - mpte->wire_count++; + mpte->ref_count++; } } else if (va < VM_MAXUSER_ADDRESS) { /* @@ -5761,8 +5756,8 @@ retry: * Remove the extra PT page reference. */ if (mpte != NULL) { - mpte->wire_count--; - KASSERT(mpte->wire_count > 0, + mpte->ref_count--; + KASSERT(mpte->ref_count > 0, ("pmap_enter: missing reference to page table page," " va: 0x%lx", va)); } @@ -5883,7 +5878,7 @@ unchanged: * If both the page table page and the reservation are fully * populated, then attempt promotion. */ - if ((mpte == NULL || mpte->wire_count == NPTEPG) && + if ((mpte == NULL || mpte->ref_count == NPTEPG) && pmap_ps_enabled(pmap) && (m->flags & PG_FICTITIOUS) == 0 && vm_reserv_level_iffullpop(m) == 0) @@ -5985,10 +5980,10 @@ pmap_enter_pde(pmap_t pmap, vm_offset_t va, pd_entry_t pde = &pde[pmap_pde_index(va)]; oldpde = *pde; if ((oldpde & PG_V) != 0) { - KASSERT(pdpg->wire_count > 1, - ("pmap_enter_pde: pdpg's wire count is too low")); + KASSERT(pdpg->ref_count > 1, + ("pmap_enter_pde: pdpg's reference count is too low")); if ((flags & PMAP_ENTER_NOREPLACE) != 0) { - pdpg->wire_count--; + pdpg->ref_count--; CTR2(KTR_PMAP, "pmap_enter_pde: failure for va %#lx" " in pmap %p", va, pmap); return (KERN_FAILURE); @@ -6162,7 +6157,7 @@ pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va, v */ ptepindex = pmap_pde_pindex(va); if (mpte && (mpte->pindex == ptepindex)) { - mpte->wire_count++; + mpte->ref_count++; } else { /* * Get the page directory entry @@ -6179,7 +6174,7 @@ pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va, v if (*ptepa & PG_PS) return (NULL); mpte = PHYS_TO_VM_PAGE(*ptepa & PG_FRAME); - mpte->wire_count++; + mpte->ref_count++; } else { /* * Pass NULL instead of the PV list lock @@ -6198,7 +6193,7 @@ pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va, v } if (*pte) { if (mpte != NULL) { - mpte->wire_count--; + mpte->ref_count--; mpte = NULL; } return (mpte); @@ -6344,8 +6339,8 @@ pmap_object_init_pt(pmap_t pmap, vm_offset_t addr, vm_ atomic_add_long(&pmap_pde_mappings, 1); } else { /* Continue on if the PDE is already valid. */ - pdpg->wire_count--; - KASSERT(pdpg->wire_count > 0, + pdpg->ref_count--; + KASSERT(pdpg->ref_count > 0, ("pmap_object_init_pt: missing reference " "to page directory page, va: 0x%lx", addr)); } @@ -6535,13 +6530,13 @@ pmap_copy(pmap_t dst_pmap, pmap_t src_pmap, vm_offset_ PAGE_SIZE); atomic_add_long(&pmap_pde_mappings, 1); } else - dst_pdpg->wire_count--; + dst_pdpg->ref_count--; continue; } srcptepaddr &= PG_FRAME; srcmpte = PHYS_TO_VM_PAGE(srcptepaddr); - KASSERT(srcmpte->wire_count > 0, + KASSERT(srcmpte->ref_count > 0, ("pmap_copy: source page table page is unused")); if (va_next > end_addr) @@ -6563,7 +6558,7 @@ pmap_copy(pmap_t dst_pmap, pmap_t src_pmap, vm_offset_ KASSERT(dstmpte->pindex == pmap_pde_pindex(addr), ("dstmpte pindex/addr mismatch")); - dstmpte->wire_count++; + dstmpte->ref_count++; } else if ((dstmpte = pmap_allocpte(dst_pmap, addr, NULL)) == NULL) goto out; @@ -6596,7 +6591,7 @@ pmap_copy(pmap_t dst_pmap, pmap_t src_pmap, vm_offset_ goto out; } /* Have we copied all of the valid mappings? */ - if (dstmpte->wire_count >= srcmpte->wire_count) + if (dstmpte->ref_count >= srcmpte->ref_count) break; } } @@ -7006,9 +7001,9 @@ pmap_remove_pages(pmap_t pmap) KASSERT(mpte->valid == VM_PAGE_BITS_ALL, ("pmap_remove_pages: pte page not promoted")); pmap_resident_count_dec(pmap, 1); - KASSERT(mpte->wire_count == NPTEPG, - ("pmap_remove_pages: pte page wire count error")); - mpte->wire_count = 0; + KASSERT(mpte->ref_count == NPTEPG, + ("pmap_remove_pages: pte page reference count error")); + mpte->ref_count = 0; pmap_add_delayed_free_list(mpte, &free, FALSE); } } else { @@ -8738,7 +8733,7 @@ pmap_emulate_accessed_dirty(pmap_t pmap, vm_offset_t v m = PHYS_TO_VM_PAGE(*pte & PG_FRAME); - if ((mpte == NULL || mpte->wire_count == NPTEPG) && + if ((mpte == NULL || mpte->ref_count == NPTEPG) && pmap_ps_enabled(pmap) && (m->flags & PG_FICTITIOUS) == 0 && vm_reserv_level_iffullpop(m) == 0) { @@ -8929,12 +8924,12 @@ pmap_quick_remove_page(vm_offset_t addr) /* * Pdp pages from the large map are managed differently from either * kernel or user page table pages. They are permanently allocated at - * initialization time, and their wire count is permanently set to + * initialization time, and their reference count is permanently set to * zero. The pml4 entries pointing to those pages are copied into * each allocated pmap. * * In contrast, pd and pt pages are managed like user page table - * pages. They are dynamically allocated, and their wire count + * pages. They are dynamically allocated, and their reference count * represents the number of valid entries within the page. */ static vm_page_t @@ -9021,7 +9016,7 @@ retry: goto retry; mphys = VM_PAGE_TO_PHYS(m); *pde = mphys | X86_PG_A | X86_PG_RW | X86_PG_V | pg_nx; - PHYS_TO_VM_PAGE(DMAP_TO_PHYS((uintptr_t)pde))->wire_count++; + PHYS_TO_VM_PAGE(DMAP_TO_PHYS((uintptr_t)pde))->ref_count++; } else { MPASS((*pde & X86_PG_PS) == 0); mphys = *pde & PG_FRAME; @@ -9141,7 +9136,7 @@ pmap_large_map(vm_paddr_t spa, vm_size_t len, void **a X86_PG_V | X86_PG_A | pg_nx | pmap_cache_bits(kernel_pmap, mattr, TRUE); PHYS_TO_VM_PAGE(DMAP_TO_PHYS((uintptr_t)pde))-> - wire_count++; + ref_count++; inc = NBPDR; } else { pte = pmap_large_map_pte(va); @@ -9150,7 +9145,7 @@ pmap_large_map(vm_paddr_t spa, vm_size_t len, void **a X86_PG_A | pg_nx | pmap_cache_bits(kernel_pmap, mattr, FALSE); PHYS_TO_VM_PAGE(DMAP_TO_PHYS((uintptr_t)pte))-> - wire_count++; + ref_count++; inc = PAGE_SIZE; } } @@ -9219,8 +9214,8 @@ pmap_large_unmap(void *svaa, vm_size_t len) pde_store(pde, 0); inc = NBPDR; m = PHYS_TO_VM_PAGE(DMAP_TO_PHYS((vm_offset_t)pde)); - m->wire_count--; - if (m->wire_count == 0) { + m->ref_count--; + if (m->ref_count == 0) { *pdpe = 0; SLIST_INSERT_HEAD(&spgf, m, plinks.s.ss); } @@ -9233,13 +9228,13 @@ pmap_large_unmap(void *svaa, vm_size_t len) pte_clear(pte); inc = PAGE_SIZE; m = PHYS_TO_VM_PAGE(DMAP_TO_PHYS((vm_offset_t)pte)); - m->wire_count--; - if (m->wire_count == 0) { + m->ref_count--; + if (m->ref_count == 0) { *pde = 0; SLIST_INSERT_HEAD(&spgf, m, plinks.s.ss); m = PHYS_TO_VM_PAGE(DMAP_TO_PHYS((vm_offset_t)pde)); - m->wire_count--; - if (m->wire_count == 0) { + m->ref_count--; + if (m->ref_count == 0) { *pdpe = 0; SLIST_INSERT_HEAD(&spgf, m, plinks.s.ss); } @@ -9446,7 +9441,7 @@ static bool pmap_pti_free_page(vm_page_t m) { - KASSERT(m->wire_count > 0, ("page %p not wired", m)); + KASSERT(m->ref_count > 0, ("page %p not referenced", m)); if (!vm_page_unwire_noq(m)) return (false); vm_page_free_zero(m); @@ -9540,7 +9535,7 @@ pmap_pti_wire_pte(void *pte) VM_OBJECT_ASSERT_WLOCKED(pti_obj); m = PHYS_TO_VM_PAGE(DMAP_TO_PHYS((uintptr_t)pte)); - m->wire_count++; + m->ref_count++; } static void @@ -9550,8 +9545,8 @@ pmap_pti_unwire_pde(void *pde, bool only_ref) VM_OBJECT_ASSERT_WLOCKED(pti_obj); m = PHYS_TO_VM_PAGE(DMAP_TO_PHYS((uintptr_t)pde)); - MPASS(m->wire_count > 0); - MPASS(only_ref || m->wire_count > 1); + MPASS(m->ref_count > 0); + MPASS(only_ref || m->ref_count > 1); pmap_pti_free_page(m); } @@ -9563,7 +9558,7 @@ pmap_pti_unwire_pte(void *pte, vm_offset_t va) VM_OBJECT_ASSERT_WLOCKED(pti_obj); m = PHYS_TO_VM_PAGE(DMAP_TO_PHYS((uintptr_t)pte)); - MPASS(m->wire_count > 0); + MPASS(m->ref_count > 0); if (pmap_pti_free_page(m)) { pde = pmap_pti_pde(va); MPASS((*pde & (X86_PG_PS | X86_PG_V)) == X86_PG_V); @@ -10033,6 +10028,9 @@ sysctl_kmaps_dump(struct sbuf *sb, struct pmap_kernel_ case PAT_UNCACHEABLE: mode = "UC"; break; + case PAT_UNCACHED: + mode = "U-"; + break; case PAT_WRITE_PROTECTED: mode = "WP"; break; @@ -10040,13 +10038,13 @@ sysctl_kmaps_dump(struct sbuf *sb, struct pmap_kernel_ mode = "WC"; break; default: - printf("%s: unknown PAT mode %#x for range %#016lx-%#016lx\n", - __func__, i, range->sva, eva); + printf("%s: unknown PAT mode %#x for range 0x%016lx-0x%016lx\n", + __func__, pat_idx, range->sva, eva); mode = "??"; break; } - sbuf_printf(sb, "%#016lx-%#016lx r%c%c%c%c %s %d %d %d\n", + sbuf_printf(sb, "0x%016lx-0x%016lx r%c%c%c%c %s %d %d %d\n", range->sva, eva, (range->attrs & X86_PG_RW) != 0 ? 'w' : '-', (range->attrs & pg_nx) != 0 ? '-' : 'x', @@ -10281,25 +10279,25 @@ DB_SHOW_COMMAND(pte, pmap_print_pte) PG_V = pmap_valid_bit(pmap); pml4 = pmap_pml4e(pmap, va); - db_printf("VA %#016lx pml4e %#016lx", va, *pml4); + db_printf("VA 0x%016lx pml4e 0x%016lx", va, *pml4); if ((*pml4 & PG_V) == 0) { db_printf("\n"); return; } pdp = pmap_pml4e_to_pdpe(pml4, va); - db_printf(" pdpe %#016lx", *pdp); + db_printf(" pdpe 0x%016lx", *pdp); if ((*pdp & PG_V) == 0 || (*pdp & PG_PS) != 0) { db_printf("\n"); return; } pde = pmap_pdpe_to_pde(pdp, va); - db_printf(" pde %#016lx", *pde); + db_printf(" pde 0x%016lx", *pde); if ((*pde & PG_V) == 0 || (*pde & PG_PS) != 0) { db_printf("\n"); return; } pte = pmap_pde_to_pte(pde, va); - db_printf(" pte %#016lx\n", *pte); + db_printf(" pte 0x%016lx\n", *pte); } DB_SHOW_COMMAND(phys2dmap, pmap_phys2dmap) Modified: projects/nfsv42/sys/amd64/amd64/trap.c ============================================================================== --- projects/nfsv42/sys/amd64/amd64/trap.c Fri Sep 27 20:08:19 2019 (r352816) +++ projects/nfsv42/sys/amd64/amd64/trap.c Fri Sep 27 20:09:43 2019 (r352817) @@ -111,7 +111,7 @@ void __noinline trap(struct trapframe *frame); void trap_check(struct trapframe *frame); void dblfault_handler(struct trapframe *frame); -static int trap_pfault(struct trapframe *, int); +static int trap_pfault(struct trapframe *, bool, int *, int *); static void trap_fatal(struct trapframe *, vm_offset_t); #ifdef KDTRACE_HOOKS static bool trap_user_dtrace(struct trapframe *, @@ -155,10 +155,6 @@ static const char *const trap_msg[] = { [T_DTRACE_RET] = "DTrace pid return trap", }; -static int prot_fault_translation; -SYSCTL_INT(_machdep, OID_AUTO, prot_fault_translation, CTLFLAG_RWTUN, - &prot_fault_translation, 0, - "Select signal to deliver on protection fault"); static int uprintf_signal; SYSCTL_INT(_machdep, OID_AUTO, uprintf_signal, CTLFLAG_RWTUN, &uprintf_signal, 0, @@ -192,14 +188,11 @@ trap(struct trapframe *frame) struct thread *td; struct proc *p; register_t addr, dr6; - int signo, ucode; + int pf, signo, ucode; u_int type; td = curthread; p = td->td_proc; - signo = 0; - ucode = 0; - addr = 0; dr6 = 0; VM_CNT_INC(v_trap); @@ -345,47 +338,18 @@ trap(struct trapframe *frame) case T_PAGEFLT: /* page fault */ /* - * Emulator can take care about this trap? + * Can emulator handle this trap? */ if (*p->p_sysent->sv_trap != NULL && (*p->p_sysent->sv_trap)(td) == 0) return; - addr = frame->tf_addr; - signo = trap_pfault(frame, TRUE); - if (signo == -1) + pf = trap_pfault(frame, true, &signo, &ucode); + if (pf == -1) return; - if (signo == 0) + if (pf == 0) goto userret; - if (signo == SIGSEGV) { - ucode = SEGV_MAPERR; - } else if (prot_fault_translation == 0) { - /* - * Autodetect. This check also covers - * the images without the ABI-tag ELF - * note. - */ - if (SV_CURPROC_ABI() == SV_ABI_FREEBSD && - p->p_osrel >= P_OSREL_SIGSEGV) { - signo = SIGSEGV; - ucode = SEGV_ACCERR; - } else { - signo = SIGBUS; - ucode = T_PAGEFLT; - } - } else if (prot_fault_translation == 1) { - /* - * Always compat mode. - */ - signo = SIGBUS; - ucode = T_PAGEFLT; - } else { - /* - * Always SIGSEGV mode. - */ - signo = SIGSEGV; - ucode = SEGV_ACCERR; - } + addr = frame->tf_addr; break; case T_DIVIDE: /* integer divide fault */ @@ -440,7 +404,7 @@ trap(struct trapframe *frame) ("kernel trap doesn't have ucred")); switch (type) { case T_PAGEFLT: /* page fault */ - (void) trap_pfault(frame, FALSE); + (void)trap_pfault(frame, false, NULL, NULL); return; case T_DNA: @@ -712,17 +676,29 @@ trap_is_pti(struct trapframe *frame) (PCPU_GET(curpmap)->pm_cr3 & ~CR3_PCID_MASK)); } +/* + * Handle all details of a page fault. + * Returns: + * -1 if this fault was fatal, typically from kernel mode + * (cannot happen, but we need to return something). + * 0 if this fault was handled by updating either the user or kernel + * page table, execution can continue. + * 1 if this fault was from usermode and it was not handled, a synchronous + * signal should be delivered to the thread. *signo returns the signal + * number, *ucode gives si_code. + */ static int -trap_pfault(struct trapframe *frame, int usermode) +trap_pfault(struct trapframe *frame, bool usermode, int *signo, int *ucode) { struct thread *td; struct proc *p; vm_map_t map; - vm_offset_t va; + vm_offset_t eva; int rv; vm_prot_t ftype; - vm_offset_t eva; + MPASS(!usermode || (signo != NULL && ucode != NULL)); + td = curthread; p = td->td_proc; eva = frame->tf_addr; @@ -771,13 +747,15 @@ trap_pfault(struct trapframe *frame, int usermode) return (-1); } } - va = trunc_page(eva); - if (va >= VM_MIN_KERNEL_ADDRESS) { + if (eva >= VM_MIN_KERNEL_ADDRESS) { /* * Don't allow user-mode faults in kernel address space. */ - if (usermode) - return (SIGSEGV); + if (usermode) { + *signo = SIGSEGV; + *ucode = SEGV_MAPERR; + return (1); + } map = kernel_map; } else { @@ -819,7 +797,11 @@ trap_pfault(struct trapframe *frame, int usermode) trap_fatal(frame, eva); return (-1); } - rv = KERN_PROTECTION_FAILURE; + if (usermode) { + *signo = SIGSEGV; + *ucode = SEGV_PKUERR; + return (1); + } goto after_vmfault; } @@ -843,7 +825,7 @@ trap_pfault(struct trapframe *frame, int usermode) ftype = VM_PROT_READ; /* Fault in the page. */ - rv = vm_fault(map, va, ftype, VM_FAULT_NORMAL); + rv = vm_fault_trap(map, eva, ftype, VM_FAULT_NORMAL, signo, ucode); if (rv == KERN_SUCCESS) { #ifdef HWPMC_HOOKS if (ftype == VM_PROT_READ || ftype == VM_PROT_WRITE) { @@ -858,17 +840,17 @@ trap_pfault(struct trapframe *frame, int usermode) #endif return (0); } + + if (usermode) + return (1); after_vmfault: - if (!usermode) { - if (td->td_intr_nesting_level == 0 && - curpcb->pcb_onfault != NULL) { - frame->tf_rip = (long)curpcb->pcb_onfault; - return (0); - } - trap_fatal(frame, eva); - return (-1); + if (td->td_intr_nesting_level == 0 && + curpcb->pcb_onfault != NULL) { + frame->tf_rip = (long)curpcb->pcb_onfault; + return (0); } - return ((rv == KERN_PROTECTION_FAILURE) ? SIGBUS : SIGSEGV); + trap_fatal(frame, eva); + return (-1); } static void Modified: projects/nfsv42/sys/amd64/linux/linux_dummy.c ============================================================================== --- projects/nfsv42/sys/amd64/linux/linux_dummy.c Fri Sep 27 20:08:19 2019 (r352816) +++ projects/nfsv42/sys/amd64/linux/linux_dummy.c Fri Sep 27 20:09:43 2019 (r352817) @@ -99,11 +99,13 @@ DUMMY(migrate_pages); DUMMY(unshare); /* Linux 2.6.17: */ DUMMY(splice); -DUMMY(tee); DUMMY(sync_file_range); +DUMMY(tee); DUMMY(vmsplice); /* Linux 2.6.18: */ DUMMY(move_pages); +/* Linux 2.6.19: */ +DUMMY(getcpu); /* Linux 2.6.22: */ DUMMY(signalfd); /* Linux 2.6.27: */ @@ -111,7 +113,7 @@ DUMMY(signalfd4); DUMMY(inotify_init1); /* Linux 2.6.31: */ DUMMY(perf_event_open); -/* Linux 2.6.38: */ +/* Linux 2.6.36: */ DUMMY(fanotify_init); DUMMY(fanotify_mark); /* Linux 2.6.39: */ @@ -120,7 +122,6 @@ DUMMY(open_by_handle_at); DUMMY(clock_adjtime); /* Linux 3.0: */ DUMMY(setns); -DUMMY(getcpu); /* Linux 3.2: */ DUMMY(process_vm_readv); DUMMY(process_vm_writev); @@ -130,12 +131,11 @@ DUMMY(kcmp); DUMMY(finit_module); DUMMY(sched_setattr); DUMMY(sched_getattr); -/* Linux 3.14: */ -DUMMY(renameat2); /* Linux 3.15: */ -DUMMY(seccomp); -DUMMY(memfd_create); DUMMY(kexec_file_load); +/* Linux 3.17: */ +DUMMY(memfd_create); +DUMMY(seccomp); /* Linux 3.18: */ DUMMY(bpf); /* Linux 3.19: */ Modified: projects/nfsv42/sys/amd64/linux/linux_proto.h ============================================================================== --- projects/nfsv42/sys/amd64/linux/linux_proto.h Fri Sep 27 20:08:19 2019 (r352816) +++ projects/nfsv42/sys/amd64/linux/linux_proto.h Fri Sep 27 20:09:43 2019 (r352817) @@ -1125,9 +1125,9 @@ struct linux_sched_getattr_args { char flags_l_[PADL_(l_uint)]; l_uint flags; char flags_r_[PADR_(l_uint)]; }; struct linux_renameat2_args { - char oldfd_l_[PADL_(l_int)]; l_int oldfd; char oldfd_r_[PADR_(l_int)]; + char olddfd_l_[PADL_(l_int)]; l_int olddfd; char olddfd_r_[PADR_(l_int)]; char oldname_l_[PADL_(const char *)]; const char * oldname; char oldname_r_[PADR_(const char *)]; - char newfd_l_[PADL_(l_int)]; l_int newfd; char newfd_r_[PADR_(l_int)]; + char newdfd_l_[PADL_(l_int)]; l_int newdfd; char newdfd_r_[PADR_(l_int)]; char newname_l_[PADL_(const char *)]; const char * newname; char newname_r_[PADR_(const char *)]; char flags_l_[PADL_(unsigned int)]; unsigned int flags; char flags_r_[PADR_(unsigned int)]; }; @@ -1555,6 +1555,13 @@ int linux_io_uring_register(struct thread *, struct li #define nosys linux_nosys #endif /* COMPAT_FREEBSD11 */ + + +#ifdef COMPAT_FREEBSD12 + +#define nosys linux_nosys + +#endif /* COMPAT_FREEBSD12 */ #define LINUX_SYS_AUE_linux_open AUE_OPEN_RWTC #define LINUX_SYS_AUE_linux_newstat AUE_STAT Modified: projects/nfsv42/sys/amd64/linux/linux_systrace_args.c ============================================================================== --- projects/nfsv42/sys/amd64/linux/linux_systrace_args.c Fri Sep 27 20:08:19 2019 (r352816) +++ projects/nfsv42/sys/amd64/linux/linux_systrace_args.c Fri Sep 27 20:09:43 2019 (r352817) @@ -2297,9 +2297,9 @@ systrace_args(int sysnum, void *params, uint64_t *uarg /* linux_renameat2 */ case 316: { struct linux_renameat2_args *p = params; - iarg[0] = p->oldfd; /* l_int */ + iarg[0] = p->olddfd; /* l_int */ uarg[1] = (intptr_t) p->oldname; /* const char * */ - iarg[2] = p->newfd; /* l_int */ + iarg[2] = p->newdfd; /* l_int */ uarg[3] = (intptr_t) p->newname; /* const char * */ uarg[4] = p->flags; /* unsigned int */ *n_args = 5; Modified: projects/nfsv42/sys/amd64/linux/syscalls.master ============================================================================== --- projects/nfsv42/sys/amd64/linux/syscalls.master Fri Sep 27 20:08:19 2019 (r352816) +++ projects/nfsv42/sys/amd64/linux/syscalls.master Fri Sep 27 20:09:43 2019 (r352817) @@ -550,8 +550,8 @@ 315 AUE_NULL STD { int linux_sched_getattr(l_pid_t pid, \ void *attr, l_uint size, l_uint flags); } ; Linux 3.15: -316 AUE_NULL STD { int linux_renameat2(l_int oldfd, \ - const char *oldname, l_int newfd, \ +316 AUE_NULL STD { int linux_renameat2(l_int olddfd, \ + const char *oldname, l_int newdfd, \ const char *newname, unsigned int flags); } ; Linux 3.17: 317 AUE_NULL STD { int linux_seccomp(l_uint op, l_uint flags, \ Modified: projects/nfsv42/sys/amd64/linux32/linux32_dummy.c ============================================================================== --- projects/nfsv42/sys/amd64/linux32/linux32_dummy.c Fri Sep 27 20:08:19 2019 (r352816) +++ projects/nfsv42/sys/amd64/linux32/linux32_dummy.c Fri Sep 27 20:09:43 2019 (r352817) @@ -119,7 +119,7 @@ DUMMY(signalfd4); DUMMY(inotify_init1); /* Linux 2.6.31: */ DUMMY(perf_event_open); -/* Linux 2.6.33: */ +/* Linux 2.6.36: */ DUMMY(fanotify_init); DUMMY(fanotify_mark); /* Linux 2.6.39: */ @@ -137,11 +137,9 @@ DUMMY(kcmp); DUMMY(finit_module); DUMMY(sched_setattr); DUMMY(sched_getattr); -/* Linux 3.14: */ -DUMMY(renameat2); -/* Linux 3.15: */ -DUMMY(seccomp); +/* Linux 3.17: */ DUMMY(memfd_create); +DUMMY(seccomp); /* Linux 3.18: */ DUMMY(bpf); /* Linux 3.19: */ Modified: projects/nfsv42/sys/amd64/linux32/linux32_proto.h ============================================================================== --- projects/nfsv42/sys/amd64/linux32/linux32_proto.h Fri Sep 27 20:08:19 2019 (r352816) +++ projects/nfsv42/sys/amd64/linux32/linux32_proto.h Fri Sep 27 20:09:43 2019 (r352817) @@ -1199,9 +1199,9 @@ struct linux_sched_getattr_args { char flags_l_[PADL_(l_uint)]; l_uint flags; char flags_r_[PADR_(l_uint)]; }; struct linux_renameat2_args { - char oldfd_l_[PADL_(l_int)]; l_int oldfd; char oldfd_r_[PADR_(l_int)]; + char olddfd_l_[PADL_(l_int)]; l_int olddfd; char olddfd_r_[PADR_(l_int)]; char oldname_l_[PADL_(const char *)]; const char * oldname; char oldname_r_[PADR_(const char *)]; - char newfd_l_[PADL_(l_int)]; l_int newfd; char newfd_r_[PADR_(l_int)]; + char newdfd_l_[PADL_(l_int)]; l_int newdfd; char newdfd_r_[PADR_(l_int)]; char newname_l_[PADL_(const char *)]; const char * newname; char newname_r_[PADR_(const char *)]; char flags_l_[PADL_(unsigned int)]; unsigned int flags; char flags_r_[PADR_(unsigned int)]; }; @@ -1895,6 +1895,13 @@ int linux_io_uring_register(struct thread *, struct li #define nosys linux_nosys #endif /* COMPAT_FREEBSD11 */ + + +#ifdef COMPAT_FREEBSD12 + +#define nosys linux_nosys + +#endif /* COMPAT_FREEBSD12 */ #define LINUX32_SYS_AUE_linux_exit AUE_EXIT #define LINUX32_SYS_AUE_linux_fork AUE_FORK Modified: projects/nfsv42/sys/amd64/linux32/linux32_systrace_args.c ============================================================================== --- projects/nfsv42/sys/amd64/linux32/linux32_systrace_args.c Fri Sep 27 20:08:19 2019 (r352816) +++ projects/nfsv42/sys/amd64/linux32/linux32_systrace_args.c Fri Sep 27 20:09:43 2019 (r352817) @@ -2424,9 +2424,9 @@ systrace_args(int sysnum, void *params, uint64_t *uarg /* linux_renameat2 */ case 353: { struct linux_renameat2_args *p = params; - iarg[0] = p->oldfd; /* l_int */ + iarg[0] = p->olddfd; /* l_int */ uarg[1] = (intptr_t) p->oldname; /* const char * */ - iarg[2] = p->newfd; /* l_int */ + iarg[2] = p->newdfd; /* l_int */ uarg[3] = (intptr_t) p->newname; /* const char * */ uarg[4] = p->flags; /* unsigned int */ *n_args = 5; Modified: projects/nfsv42/sys/amd64/linux32/syscalls.master ============================================================================== --- projects/nfsv42/sys/amd64/linux32/syscalls.master Fri Sep 27 20:08:19 2019 (r352816) +++ projects/nfsv42/sys/amd64/linux32/syscalls.master Fri Sep 27 20:09:43 2019 (r352817) @@ -610,8 +610,8 @@ 352 AUE_NULL STD { int linux_sched_getattr(l_pid_t pid, \ void *attr, l_uint size, l_uint flags); } ; Linux 3.15: -353 AUE_NULL STD { int linux_renameat2(l_int oldfd, \ - const char *oldname, l_int newfd, \ +353 AUE_NULL STD { int linux_renameat2(l_int olddfd, \ + const char *oldname, l_int newdfd, \ const char *newname, unsigned int flags); } ; Linux 3.17: 354 AUE_NULL STD { int linux_seccomp(l_uint op, l_uint flags, \ Modified: projects/nfsv42/sys/amd64/sgx/sgx.c ============================================================================== --- projects/nfsv42/sys/amd64/sgx/sgx.c Fri Sep 27 20:08:19 2019 (r352816) +++ projects/nfsv42/sys/amd64/sgx/sgx.c Fri Sep 27 20:09:43 2019 (r352817) @@ -357,9 +357,7 @@ sgx_page_remove(struct sgx_softc *sc, vm_page_t p) vm_paddr_t pa; uint64_t offs; - vm_page_lock(p); (void)vm_page_remove(p); - vm_page_unlock(p); dprintf("%s: p->pidx %ld\n", __func__, p->pindex); Modified: projects/nfsv42/sys/amd64/vmm/vmm.c ============================================================================== --- projects/nfsv42/sys/amd64/vmm/vmm.c Fri Sep 27 20:08:19 2019 (r352816) +++ projects/nfsv42/sys/amd64/vmm/vmm.c Fri Sep 27 20:09:43 2019 (r352817) @@ -1002,9 +1002,7 @@ vm_gpa_release(void *cookie) { vm_page_t m = cookie; - vm_page_lock(m); vm_page_unwire(m, PQ_ACTIVE); - vm_page_unlock(m); } int @@ -1413,7 +1411,7 @@ vm_handle_paging(struct vm *vm, int vcpuid, bool *retu } map = &vm->vmspace->vm_map; - rv = vm_fault(map, vme->u.paging.gpa, ftype, VM_FAULT_NORMAL); + rv = vm_fault(map, vme->u.paging.gpa, ftype, VM_FAULT_NORMAL, NULL); VCPU_CTR3(vm, vcpuid, "vm_handle_paging rv = %d, gpa = %#lx, " "ftype = %d", rv, vme->u.paging.gpa, ftype); Modified: projects/nfsv42/sys/arm/arm/pmap-v4.c ============================================================================== --- projects/nfsv42/sys/arm/arm/pmap-v4.c Fri Sep 27 20:08:19 2019 (r352816) +++ projects/nfsv42/sys/arm/arm/pmap-v4.c Fri Sep 27 20:09:43 2019 (r352817) @@ -3415,14 +3415,14 @@ pmap_extract_and_hold(pmap_t pmap, vm_offset_t va, vm_ struct l2_dtable *l2; pd_entry_t l1pd; pt_entry_t *ptep, pte; - vm_paddr_t pa, paddr; - vm_page_t m = NULL; + vm_paddr_t pa; + vm_page_t m; u_int l1idx; + l1idx = L1_IDX(va); - paddr = 0; + m = NULL; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Fri Sep 27 22:18:51 2019 Return-Path: Delivered-To: svn-src-projects@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7405C12F0A3 for ; Fri, 27 Sep 2019 22:18:51 +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 46g5mW2XDzz4RjD; Fri, 27 Sep 2019 22:18:51 +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 3B3DB1F951; Fri, 27 Sep 2019 22:18:51 +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 x8RMIpv8058024; Fri, 27 Sep 2019 22:18:51 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x8RMIp1K058023; Fri, 27 Sep 2019 22:18:51 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <201909272218.x8RMIp1K058023@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Fri, 27 Sep 2019 22:18:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r352825 - projects/nfsv42/sys/fs/nfsserver X-SVN-Group: projects X-SVN-Commit-Author: rmacklem X-SVN-Commit-Paths: projects/nfsv42/sys/fs/nfsserver X-SVN-Commit-Revision: 352825 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Sep 2019 22:18:51 -0000 Author: rmacklem Date: Fri Sep 27 22:18:50 2019 New Revision: 352825 URL: https://svnweb.freebsd.org/changeset/base/352825 Log: Allow the NFSv4.2 Copy operation to do a synchronous copy when ca_synchronous is false. When ca_synchronous == false, the server can still choose to do a synchronous Copy, so that is what this patch makes it do. Modified: projects/nfsv42/sys/fs/nfsserver/nfs_nfsdserv.c Modified: projects/nfsv42/sys/fs/nfsserver/nfs_nfsdserv.c ============================================================================== --- projects/nfsv42/sys/fs/nfsserver/nfs_nfsdserv.c Fri Sep 27 22:11:50 2019 (r352824) +++ projects/nfsv42/sys/fs/nfsserver/nfs_nfsdserv.c Fri Sep 27 22:18:50 2019 (r352825) @@ -5250,15 +5250,13 @@ nfsrvd_copy_file_range(struct nfsrv_descript *nd, __un outlop->lo_end = outlop->lo_first + len; } - /* Only supports synchronous Copy. */ - if (*++tl != newnfs_true) { - nd->nd_repstat = NFSERR_OFFLOADNOREQS; - NFSM_BUILD(tl, uint32_t *, 2 * NFSX_UNSIGNED); - *tl++ = newnfs_true; - *tl = newnfs_true; - goto nfsmout; - } - cnt = fxdr_unsigned(int, *++tl); + /* + * At this time only consecutive, synchronous copy is supported, + * so ca_consecutive and ca_synchronous can be ignored. + */ + tl += 2; + + cnt = fxdr_unsigned(int, *tl); if ((nd->nd_flag & ND_DSSERVER) != 0 || cnt != 0) nd->nd_repstat = NFSERR_NOTSUPP; if (nd->nd_repstat == 0 && (inoff > OFF_MAX || outoff > OFF_MAX ||