]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/log
FreeBSD/FreeBSD.git
5 years agosnd_hda: Byteswap the buffer descriptor entries as needed
jhibbits [Tue, 31 Jul 2018 17:18:58 +0000 (17:18 +0000)]
snd_hda: Byteswap the buffer descriptor entries as needed

The buffer descriptor list entries should be in little endian format.  Byte swap
them on BE.  This is the last piece of the puzzle for snd_hda(4) to work on
PowerPC.

5 years agoRegenerate after r336980.
kib [Tue, 31 Jul 2018 17:16:06 +0000 (17:16 +0000)]
Regenerate after r336980.

5 years agoProvide compat32 shims for sched_rr_get_interval(2).
kib [Tue, 31 Jul 2018 17:15:31 +0000 (17:15 +0000)]
Provide compat32 shims for sched_rr_get_interval(2).

The interface uses struct timespec, which needs a translation.

Reported and reviewed by: asomers
PR: 230175
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D16525

5 years agoMove pkg/FreeBSD.conf to usr.sbin/pkg/
brd [Tue, 31 Jul 2018 16:42:03 +0000 (16:42 +0000)]
Move pkg/FreeBSD.conf to usr.sbin/pkg/

Approved by: bapt (mentor)
Differential Revision: https://reviews.freebsd.org/D16491

5 years agoMove blacklistd.conf to usr.sbin/blacklistd/
brd [Tue, 31 Jul 2018 16:39:38 +0000 (16:39 +0000)]
Move blacklistd.conf to usr.sbin/blacklistd/

This is prep for pkging base and helps tag and install config files with the
correct packages.

Approved by: bapt (mentor)
Differential Revision: https://reviews.freebsd.org/D16493

5 years agoRemove variable re-inserted during mis-application of r336973
kevans [Tue, 31 Jul 2018 16:08:17 +0000 (16:08 +0000)]
Remove variable re-inserted during mis-application of r336973

5 years agoRe-insert variable disappeared during mis-application of r336973
kevans [Tue, 31 Jul 2018 16:04:49 +0000 (16:04 +0000)]
Re-insert variable disappeared during mis-application of r336973

5 years agoconfig(8): Strip comments from env lines
kevans [Tue, 31 Jul 2018 16:03:30 +0000 (16:03 +0000)]
config(8): Strip comments from env lines

Consolidates the small bits of logic required for preprocessing a line
before inclusion into a file or nvlist.

5 years agolld: [ELF][ARM] Implement support for Tag_ABI_VFP_args
emaste [Tue, 31 Jul 2018 15:25:03 +0000 (15:25 +0000)]
lld: [ELF][ARM] Implement support for Tag_ABI_VFP_args

The Tag_ABI_VFP_args build attribute controls the procedure call
standard used for floating point parameters on ARM. The values are:

0 - Base AAPCS (FP Parameters passed in Core (Integer) registers
1 - VFP AAPCS (FP Parameters passed in FP registers)
2 - Toolchain specific (Neither Base or VFP)
3 - Compatible with all (No use of floating point parameters)

If the Tag_ABI_VFP_args build attribute is missing it has an implicit
value of 0.

We use the attribute in two ways:

* Detect a clash in calling convention between Base, VFP and Toolchain.

we follow ld.bfd's lead and do not error if there is a clash between an
implicit Base AAPCS caused by a missing attribute. Many projects
including the hard-float (VFP AAPCS) version of glibc contain assembler
files that do not use floating point but do not have Tag_ABI_VFP_args.

* Set the EF_ARM_ABI_FLOAT_SOFT or EF_ARM_ABI_FLOAT_HARD ELF header flag

for Base or VFP AAPCS respectively. This flag is used by some ELF
loaders.

References:
* Addenda to, and Errata in, the ABI for the ARM Architecture for
  Tag_ABI_VFP_args
* Elf for the ARM Architecture for ELF header flags

Fixes LLVM PR36009

PR: 229050
Obtained from: llvm r338377 by Peter Smith

5 years agoUse int for the pcpu_ssbd argument. This is included from userland and may
andrew [Tue, 31 Jul 2018 15:08:02 +0000 (15:08 +0000)]
Use int for the pcpu_ssbd argument. This is included from userland and may
not include the needed headers to get the bool definition.

Reported by: manu
Pointy hat to: andrew
Sponsored by: DARPA, AFRL

5 years agollvm: [ARM] Complete enumeration values for Tag_ABI_VFP_args
emaste [Tue, 31 Jul 2018 14:14:41 +0000 (14:14 +0000)]
llvm: [ARM] Complete enumeration values for Tag_ABI_VFP_args

The LLD implementation of Tag_ABI_VFP_args needs to check the rarely
seen values of 3 (toolchain specific) and 4 compatible with both Base
and VFP.  Add the missing enumeration values so that LLD can refer to
them without having to use the raw numbers.

Obtained from: llvm r338373 by Peter Smith

5 years agollvm: [ELF][ARM] Add Arm ABI names for float ABI ELF Header flags
emaste [Tue, 31 Jul 2018 14:12:09 +0000 (14:12 +0000)]
llvm: [ELF][ARM] Add Arm ABI names for float ABI ELF Header flags

The ELF for the Arm architecture document defines, for EF_ARM_EABI_VER5
and above, the flags EF_ARM_ABI_FLOAT_HARD and EF_ARM_ABI_FLOAT_SOFT.
These have been defined to be compatible with the existing
EF_ARM_VFP_FLOAT and EF_ARM_SOFT_FLOAT used by gcc for
EF_ARM_EABI_UNKNOWN.

This patch adds the flags in addition to the existing ones so that any
code depending on the old names will still work.

Obtained from: llvm r338370 by Peter Smith

5 years agoImplement the SSBD (CVE-2018-3639) workaround on arm64
andrew [Tue, 31 Jul 2018 12:53:27 +0000 (12:53 +0000)]
Implement the SSBD (CVE-2018-3639) workaround on arm64

This calls into the Arm Trusted Firmware to enable and disable the
workaround for the Speculative Store Bypass Disable (SSBD) issue, also
known as Spectre Variant 4.

As this may have a large performance overhead, and how exploitable SSBD is
is unknown we follow the Linux lead of allowing the administrator to select
between always on, always off, or only enabled in the kernel, with the
latter being the default.

PR: 228955
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D15819

5 years agomsdosfs: trim EOL whitespace
emaste [Tue, 31 Jul 2018 12:44:28 +0000 (12:44 +0000)]
msdosfs: trim EOL whitespace

5 years agocd9660: replace bcopy/bzero with C standard equivalents
emaste [Tue, 31 Jul 2018 12:36:46 +0000 (12:36 +0000)]
cd9660: replace bcopy/bzero with C standard equivalents

To reduce diffs against NetBSD.

5 years agoOnly NULL check the VNET pointer when VIMAGE is enabled in ibcore.
hselasky [Tue, 31 Jul 2018 11:23:44 +0000 (11:23 +0000)]
Only NULL check the VNET pointer when VIMAGE is enabled in ibcore.
Else a NULL VNET pointer should be ignored. This fixes address resolving
when VIMAGE is disabled.

MFC after: 3 days
Sponsored by: Mellanox Technologies

5 years agoFix INET only builds.
tuexen [Tue, 31 Jul 2018 06:27:05 +0000 (06:27 +0000)]
Fix INET only builds.

r336940 introduced an "unused variable" warning on platforms which
support INET, but not INET6, like MALTA and MALTA64 as reported
by Mark Millard. Improve the #ifdefs to address this issue.

Sponsored by: Netflix, Inc.

5 years agoMFV r336960: 9256 zfs send space estimation off by > 10% on some datasets
mav [Tue, 31 Jul 2018 01:02:22 +0000 (01:02 +0000)]
MFV r336960: 9256 zfs send space estimation off by > 10% on some datasets

illumos/illummos-gate@df477c0afa111b5205c872dab36dbfde391656de

Reviewed by: Matt Ahrens <matt@delphix.com>
Reviewed by: John Kennedy <john.kennedy@delphix.com>
Approved by: Richard Lowe <richlowe@richlowe.net>
Author:     Paul Dagnelie <pcd@delphix.com>

5 years agoMFV r336958: 9337 zfs get all is slow due to uncached metadata
mav [Tue, 31 Jul 2018 00:58:21 +0000 (00:58 +0000)]
MFV r336958: 9337 zfs get all is slow due to uncached metadata

This project's goal is to make read-heavy channel programs and zfs(1m)
administrative commands faster by caching all the metadata that they will
need in the dbuf layer. This will prevent the data from being evicted, so
that any future call to i.e. zfs get all won't have to go to disk (very
much).

illumos/illumos-gate@adb52d9262f45a04318fc6e188fe2b7f59d989a5

Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Thomas Caputi <tcaputi@datto.com>
Approved by: Richard Lowe <richlowe@richlowe.net>
Author:     Matthew Ahrens <mahrens@delphix.com>

5 years agoAdd a regression test related to PR 131876.
markj [Tue, 31 Jul 2018 00:48:08 +0000 (00:48 +0000)]
Add a regression test related to PR 131876.

If an error occurs while copying a SCM_RIGHTS message to userspace,
we free the mbuf containing externalized rights, leaking them.

PR: 131876
MFC after: 1 week
Sponsored by: The FreeBSD Foundation

5 years agoMFV r336955: 9236 nuke spa_dbgmsg
mav [Tue, 31 Jul 2018 00:47:27 +0000 (00:47 +0000)]
MFV r336955: 9236 nuke spa_dbgmsg

We should use zfs_dbgmsg instead of spa_dbgmsg.  Or at least,
metaslab_condense() should call zfs_dbgmsg because it's important and rare
enough to always log. It's possible that the message in zio_dva_allocate()
would be too high-frequency for zfs_dbgmsg.

illumos/illumos-gate@21f7c81cc1156e9202ce3412d3ecaa697c3b2222

Reviewed by: Serapheim Dimitropoulos <serapheim.dimitro@delphix.com>
Reviewed by: Pavel Zakharov <pavel.zakharov@delphix.com>
Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Richard Elling <Richard.Elling@RichardElling.com>
Approved by: Richard Lowe <richlowe@richlowe.net>
Author: Matthew Ahrens <mahrens@delphix.com>

5 years agoMFV r336952: 9192 explicitly pass good_writes to vdev_uberblock/label_sync
mav [Tue, 31 Jul 2018 00:37:45 +0000 (00:37 +0000)]
MFV r336952: 9192 explicitly pass good_writes to vdev_uberblock/label_sync

Currently vdev_label_sync and vdev_uberblock_sync take a zio_t and assume
that its io_private is a pointer to the good_writes count. They should
instead accept this argument explicitly.

illumos/illumos-gate@a3b5583021b7b45676bf1f0cc68adf7a97900b56

Reviewed by: Pavel Zakharov <pavel.zakharov@delphix.com>
Reviewed by: George Wilson <george.wilson@delphix.com>
Approved by: Richard Lowe <richlowe@richlowe.net>
Author: Matthew Ahrens <mahrens@delphix.com>

5 years agoMFV r336950: 9290 device removal reduces redundancy of mirrors
mav [Tue, 31 Jul 2018 00:25:39 +0000 (00:25 +0000)]
MFV r336950: 9290 device removal reduces redundancy of mirrors

Mirrors are supposed to provide redundancy in the face of whole-disk failure
and silent damage (e.g. some data on disk is not right, but ZFS hasn't
detected the whole device as being broken). However, the current device
removal implementation bypasses some of the mirror's redundancy.

illumos/illumos-gate@3a4b1be953ee5601bab748afa07c26ed4996cde6

Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Prashanth Sreenivasa <pks@delphix.com>
Reviewed by: Sara Hartse <sara.hartse@delphix.com>
Reviewed by: Serapheim Dimitropoulos <serapheim@delphix.com>
Reviewed by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed by: Tim Chase <tim@chase2k.com>
Approved by: Richard Lowe <richlowe@richlowe.net>
Author: Matthew Ahrens <mahrens@delphix.com>

5 years agoMFV r336948: 9112 Improve allocation performance on high-end systems
mav [Tue, 31 Jul 2018 00:02:42 +0000 (00:02 +0000)]
MFV r336948: 9112 Improve allocation performance on high-end systems

On high-end systems running async sequential write workloads, especially
NUMA systems with flash or NVMe storage, one significant performance
bottleneck is selecting a metaslab to do allocations from. This process
can be parallelized, providing significant performance increases for
these workloads.

illumos/illumos-gate@f78cdc34af236a6199dd9e21376f4a46348c0d56

Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Serapheim Dimitropoulos <serapheim.dimitro@delphix.com>
Reviewed by: Alexander Motin <mav@FreeBSD.org>
Approved by: Gordon Ross <gwr@nexenta.com>
Author: Paul Dagnelie <pcd@delphix.com>

5 years agoMFV r336946: 9238 ZFS Spacemap Encoding V2
mav [Mon, 30 Jul 2018 23:47:38 +0000 (23:47 +0000)]
MFV r336946: 9238 ZFS Spacemap Encoding V2

The current space map encoding has the following disadvantages:
[1] Assuming 512 sector size each entry can represent at most 16MB for a segment.
This makes the encoding very inefficient for large regions of space.
[2] As vdev-wide space maps have started to be used by new features (i.e.
device removal, zpool checkpoint) we've started imposing limits in the
vdevs that can be used with them based on the maximum addressable offset
(currently 64PB for a top-level vdev).

The new remains backwards compatible with the old one. The introduced
two-word entry format, besides extending the limits imposed by the single-entry
layout, also includes a vdev field and some extra padding after its prefix.

The extra padding after the prefix should is reserved for future usage (e.g.
new prefixes for future encodings or new fields for flags). The new vdev field
not only makes the space maps more self-descriptive, but also opens the doors
for pool-wide space maps.

One final important note is that the number of bits used for vdevs is reduced
to 24 bits for blkptrs. That was decided as we don't know of any setups that
use more than 16M vdevs for the time being and
we wanted to fit the vdev field in the space map. In addition that gives us
some extra bits in dva_t.

illumos/illumos-gate@17f11284b49b98353b5119463254074fd9bc0a28

Reviewed by: Matt Ahrens <mahrens@delphix.com>
Reviewed by: George Wilson <gwilson@zfsmail.com>
Approved by: Gordon Ross <gwr@nexenta.com>
Author: Serapheim Dimitropoulos <serapheim@delphix.com>

5 years agoMFV r336944: 9286 want refreservation=auto
mav [Mon, 30 Jul 2018 22:39:30 +0000 (22:39 +0000)]
MFV r336944: 9286 want refreservation=auto

When a ZFS volume is created with zfs create -V (but without -s), the
refreservation property is set to a value that is volsize plus the maximum
size of metadata. If refreservation is ever set to another value, it is
impossible to set it back to the automatically determined value. There are
other cases where refreservation may be wrong. These include receiving a
volume that was sent without properties and zfs clone.

We need:

zfs set refreservation=auto <volume>
zfs clone -o refreservation=auto <volume>

Each one would use the same function used by zfs create -V to determine the
proper value for refreservation.

illumos/illumos-gate@1c10ae76c0cb31326c320e7cef1d3f24a1f47125

Reviewed by: Allan Jude <allanjude@freebsd.org>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: John Kennedy <john.kennedy@delphix.com>
Reviewed by: Andy Stormont <astormont@racktopsystems.com>
Approved by: Richard Lowe <richlowe@richlowe.net>
Author: Mike Gerdts <mike.gerdts@joyent.com>

5 years agoMFV r336942: 9189 Add debug to vdev_label_read_config when txg check fails
mav [Mon, 30 Jul 2018 22:03:29 +0000 (22:03 +0000)]
MFV r336942: 9189 Add debug to vdev_label_read_config when txg check fails

illumos/illumos-gate@b6bf6e1540f30bd97b8d6e2c21d95e17841e0f23

Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Prashanth Sreenivasa <pks@delphix.com>
Approved by: Matt Ahrens <mahrens@delphix.com>
Author: Pavel Zakharov <pavel.zakharov@delphix.com>

5 years agoAllow implicit TCP connection setup for TCP/IPv6.
tuexen [Mon, 30 Jul 2018 21:27:26 +0000 (21:27 +0000)]
Allow implicit TCP connection setup for TCP/IPv6.

TCP/IPv4 allows an implicit connection setup using sendto(), which
is used for TTCP and TCP fast open. This patch adds support for
TCP/IPv6.
While there, improve some tests for detecting multicast addresses,
which are mapped.

Reviewed by: bz@, kbowling@, rrs@
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D16458

5 years agoSend consistent SEG.WIN when using timewait codepath for TCP.
tuexen [Mon, 30 Jul 2018 21:13:42 +0000 (21:13 +0000)]
Send consistent SEG.WIN when using timewait codepath for TCP.

When sending TCP segments from the timewait code path, a stored
value of the last sent window is used. Use the same code for
computing this in the timewait code path as in the main code
path used in tcp_output() to avoiv inconsistencies.

Reviewed by: rrs@
MFC after: 1 month
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D16503

5 years agomsdosfs: use same max filesize #define as NetBSD and move to header
emaste [Mon, 30 Jul 2018 20:36:51 +0000 (20:36 +0000)]
msdosfs: use same max filesize #define as NetBSD and move to header

For use by makefs msdosfs support.

Obtained from: NetBSD denode.h 1.6
Sponsored by: The FreeBSD Foundation

5 years agoFix some TCP fast open issues.
tuexen [Mon, 30 Jul 2018 20:35:50 +0000 (20:35 +0000)]
Fix some TCP fast open issues.

The following issues are fixed:
* Whenever a TCP server with TCP fast open enabled, calls accept(),
  recv(), send(), and close() before the TCP-ACK segment has been received,
  the TCP connection is just dropped and the reception of the TCP-ACK
  segment triggers the sending of a TCP-RST segment.
* Whenever a TCP server with TCP fast open enabled, calls accept(), recv(),
  send(), send(), and close() before the TCP-ACK segment has been received,
  the first byte provided in the second send call is not transferred.
* Whenever a TCP client with TCP fast open enabled calls sendto() followed
  by close() the TCP connection is just dropped.

Reviewed by: jtl@, kbowling@, rrs@
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D16485

5 years agoSilence newer gcc warnings.
rmacklem [Mon, 30 Jul 2018 20:25:32 +0000 (20:25 +0000)]
Silence newer gcc warnings.

Newer versions of gcc generate "set, but not used" warnings.
Add __unused macros to silence these warnings.
Although the variables are not being used, they are values parsed from
arguments to callback RPCs that might be needed in the future.

Requested by: mmacy

5 years agoAdd missing send/recv dtrace probes for TCP.
tuexen [Mon, 30 Jul 2018 20:13:38 +0000 (20:13 +0000)]
Add missing send/recv dtrace probes for TCP.

These missing probe are mostly in the syncache and timewait code.

Reviewed by: markj@, rrs@
MFC after: 1 month
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D16369

5 years agosnd_hda: Make codec control path endian safe
jhibbits [Mon, 30 Jul 2018 20:00:56 +0000 (20:00 +0000)]
snd_hda: Make codec control path endian safe

The CORB and RIRB buffers exist in DMA memory, but the device reads them as
little-endian only.  Read and write as LE into the DMA memory block, to work on
BE platforms.

5 years agosed: compile with the default WARNS level.
pfg [Mon, 30 Jul 2018 19:41:54 +0000 (19:41 +0000)]
sed: compile with the default WARNS level.

5 years agosed: unsign some indexes to fix sign-compare warnings.
pfg [Mon, 30 Jul 2018 18:29:46 +0000 (18:29 +0000)]
sed: unsign some indexes to fix sign-compare warnings.

Hinted by: OpenBSD (CVS 1.32)

MFC after:  1 week

5 years agoAdd ofw_bus_if.h to the SRCS list for ipmi module on powerpc64
jhibbits [Mon, 30 Jul 2018 18:29:20 +0000 (18:29 +0000)]
Add ofw_bus_if.h to the SRCS list for ipmi module on powerpc64

PR: 230194
Reported by: sbruno

5 years agoFollow up to r336919 and r336921: s/efi.rt_disabled/efi.rt.disabled/
kevans [Mon, 30 Jul 2018 18:13:20 +0000 (18:13 +0000)]
Follow up to r336919 and r336921: s/efi.rt_disabled/efi.rt.disabled/

The latter matches the rest of the tree better [0]. The UPDATING entry has
been updated to reflect this, and the new tunable is now documented in
loader(8) [1].

Reported by: imp [0], Shawn Webb [1]

5 years agoCorrect typo from r336921; BIOS/legacy boot...
kevans [Mon, 30 Jul 2018 17:59:18 +0000 (17:59 +0000)]
Correct typo from r336921; BIOS/legacy boot...

5 years agoRemove a redundant check.
markj [Mon, 30 Jul 2018 17:58:41 +0000 (17:58 +0000)]
Remove a redundant check.

MFC after: 3 days
Sponsored by: The FreeBSD Foundation

5 years agoamd64/GENERIC: Enable EFIRT by default
kevans [Mon, 30 Jul 2018 17:54:18 +0000 (17:54 +0000)]
amd64/GENERIC: Enable EFIRT by default

As noted in UDPATING, the new loader tunable efi.rt_disabled may be used to
disable EFIRT at runtime. It should have no effect if you are not booted via
UEFI boot.

MFC after: 6 weeks

5 years agoefirt: Add tunable to allow disabling EFI Runtime Services
kevans [Mon, 30 Jul 2018 17:40:27 +0000 (17:40 +0000)]
efirt: Add tunable to allow disabling EFI Runtime Services

Leading up to enabling EFIRT in GENERIC, allow runtime services to be
disabled with a new tunable: efi.rt_disabled. This makes it so that EFIRT
can be disabled easily in case we run into some buggy UEFI implementation
and fail to boot.

Discussed with: imp, kib
MFC after: 1 week

5 years agopowerpcspe: Unconditionally save an restore SPEFSCR on task switch
jhibbits [Mon, 30 Jul 2018 17:03:15 +0000 (17:03 +0000)]
powerpcspe: Unconditionally save an restore SPEFSCR on task switch

The SPEFSCR is not guarded by the SPV bit in MSR, it's just another SPR.
Protect processes from other tasks setting the SPEFSCR for their own needs.

5 years agoRemove unneeded CLDs instructions in the SMAP-ed version of several
kib [Mon, 30 Jul 2018 16:54:51 +0000 (16:54 +0000)]
Remove unneeded CLDs instructions in the SMAP-ed version of several
functions from support.S.

I believe they re-appeared due to me mis-merging my r327820 into the
topic branch.

Sponsored by: The FreeBSD Foundation

5 years agoEnable VIMAGE on arm64 again. A workaround for modules with static VNET
andrew [Mon, 30 Jul 2018 15:57:58 +0000 (15:57 +0000)]
Enable VIMAGE on arm64 again. A workaround for modules with static VNET
variables has been committed so these should work now.

PR: 223670
Sponsored by: DARPA, AFRL

5 years agoMake timespecadd(3) and friends public
asomers [Mon, 30 Jul 2018 15:46:40 +0000 (15:46 +0000)]
Make timespecadd(3) and friends public

The timespecadd(3) family of macros were imported from NetBSD back in
r35029. However, they were initially guarded by #ifdef _KERNEL. In the
meantime, we have grown at least 28 syscalls that use timespecs in some
way, leading many programs both inside and outside of the base system to
redefine those macros. It's better just to make the definitions public.

Our kernel currently defines two-argument versions of timespecadd and
timespecsub.  NetBSD, OpenBSD, and FreeDesktop.org's libbsd, however, define
three-argument versions.  Solaris also defines a three-argument version, but
only in its kernel.  This revision changes our definition to match the
common three-argument version.

Bump _FreeBSD_version due to the breaking KPI change.

Discussed with: cem, jilles, ian, bde
Differential Revision: https://reviews.freebsd.org/D14725

5 years agonewsyslog: fix compression arglist construction
bapt [Mon, 30 Jul 2018 15:46:24 +0000 (15:46 +0000)]
newsyslog: fix compression arglist construction

Reuse of the index variable in two nested loops resulted in only the first
argument in the list being used (fine for gzip, not fine for zstd). Also
add tests for xz and zstd, and fix the COMPRESS_SUFFIX_MAXLEN macro.

Submitted by: dnelson_1901_yahoo.com
Differential Revision: https://reviews.freebsd.org/D16509

5 years agosnd_hda: Print error codes in decimal, rather than hex
jhibbits [Mon, 30 Jul 2018 15:19:59 +0000 (15:19 +0000)]
snd_hda: Print error codes in decimal, rather than hex

It's easy to confuse the error code as naked it looks decimal (EINVAL is
reported as error 16, instead of error 22, so first reading looks like EBUSY).

5 years agosnd_hda: Only free streams DMA maps if the streams list has been created
jhibbits [Mon, 30 Jul 2018 15:15:33 +0000 (15:15 +0000)]
snd_hda: Only free streams DMA maps if the streams list has been created

If hdac_attach fails prior to allocating sc->streams, cleanup in the
hdac_attach_fail label will dereference a NULL pointer, panicking.

5 years agoRevert accidental change from r336908
emaste [Mon, 30 Jul 2018 15:10:06 +0000 (15:10 +0000)]
Revert accidental change from r336908

By default ld.lld should be the bootstrap linker (only) on i386 right
now.  Once the i386 exp-run with LLD_IS_LD has a good result this will
also be enabled by default.

Reported by: andrew
Pointy hat to: emaste

5 years agoAs with DPCPU_DEFINE_STATIC make VNET_DEFINE_STATIC non-static on arm64 in
andrew [Mon, 30 Jul 2018 15:05:07 +0000 (15:05 +0000)]
As with DPCPU_DEFINE_STATIC make VNET_DEFINE_STATIC non-static on arm64 in
modules. It also fails in the same way, we are unable to relocate static
variables as the compiler uses PC-relative loads with nothing for the
kernel linker to relocate.

Sponsored by: DARPA, AFRL

5 years agoMakefile.libcompat: correctly append to make variable
emaste [Mon, 30 Jul 2018 14:42:59 +0000 (14:42 +0000)]
Makefile.libcompat: correctly append to make variable

Reported by: hselasky
Pointy hat to: emaste

5 years agoMakefile.libcompat: use one variable assignment per line
emaste [Mon, 30 Jul 2018 14:28:00 +0000 (14:28 +0000)]
Makefile.libcompat: use one variable assignment per line

This makes it easier to carry or merge patches that remove gnu/
components.

5 years agoEnsure the DPCPU and VNET module spaces are aligned to hold a pointer.
andrew [Mon, 30 Jul 2018 14:25:17 +0000 (14:25 +0000)]
Ensure the DPCPU and VNET module spaces are aligned to hold a pointer.
Previously they may have been aligned to a char, leading to misaligned
DPCPU and VNET variables.

Sponsored by: DARPA, AFRL

5 years agoCorrect possible misleading error message in kqtest.
dab [Mon, 30 Jul 2018 14:21:49 +0000 (14:21 +0000)]
Correct possible misleading error message in kqtest.

ian@ pointed out that in the test_abstime() function time(NULL) is
used twice; once in an "if" test and again in the enclosed error
message. If the true branch was taken and the process got preempted
before the second time(NULL) call, by the time the error message was
generated enough time could have elapsed that the message could claim
that the event came "too early" but print an event time that was after
the expected timeout. Correct by making the time(NULL) call only once
and using that returned time in both the "if" test and the error
message.

Reported by: ian@
MFC after: 4 days
X-MFC-with: r336761, r336781, r336802
Sponsored by: Dell EMC

5 years agoRegen src.conf.5 after r336901, WITH_LLD_BOOTSTRAP on i386
emaste [Mon, 30 Jul 2018 12:58:33 +0000 (12:58 +0000)]
Regen src.conf.5 after r336901, WITH_LLD_BOOTSTRAP on i386

Sponsored by: The FreeBSD Foundation

5 years agoAs with DPCPU_DEFINE make it a compile error to use static with VNET_DEFINE.
andrew [Mon, 30 Jul 2018 12:44:44 +0000 (12:44 +0000)]
As with DPCPU_DEFINE make it a compile error to use static with VNET_DEFINE.
There is the VNET_DEFINE_STATIC macro for that.

5 years agoEnable ld.lld as bootstrap linker by default on i386
emaste [Mon, 30 Jul 2018 12:38:08 +0000 (12:38 +0000)]
Enable ld.lld as bootstrap linker by default on i386

Akin to r327783 for amd64.  lld has been usable for amd64 for quite some
time, but a couple of issues remained that affected i386.  These were
recently addressed upstream in lld and merged into FreeBSD or addressed
directly in FreeBSD (r326831, r326879, r326897, r326957, r333401,
r334626, r336664).

Similarly to the intial amd64 commit this change enables lld only as the
bootstrap linker (used to link the kernel and userland libraries and
executables), while GNU ld.bfd is still installed as /usr/bin/ld and
used for ports builds.  That will be changed shortly, after an exp-run.

This is a recommit of r327823 after additional lld fixes.

PR: 225128 (exp-run)
Relnotes: Yes
Sponsored by: The FreeBSD Foundation

5 years agoDisable VIMAGE on RISC-V.
br [Mon, 30 Jul 2018 12:22:49 +0000 (12:22 +0000)]
Disable VIMAGE on RISC-V.

Similar to r326179 ("Temporarily disable VIMAGE on arm64") creation of
if_lagg or epair on RISC-V results a kernel panic.

Sponsored by: DARPA, AFRL

5 years agoxen/grants: fix deadlocks in the free callbacks
royger [Mon, 30 Jul 2018 11:41:51 +0000 (11:41 +0000)]
xen/grants: fix deadlocks in the free callbacks

This fixes the panic caused by deadlocking when grant-table free
callbacks are used.

The cause of the recursion is: check_free_callbacks() is always called
with the lock gnttab_list_lock held. In turn the callback function is
also called with the lock held. Then when the client uses any of the grant
reference methods which also attempt the lock the gnttab_list_lock
mutex from within the free callback a deadlock happens.

Fix this by making the gnttab_list_lock recursive.

Submitted by: Pratyush Yadav <pratyush@freebsd.org>
Differential Revision: https://reviews.freebsd.org/D16505

5 years agoxen-blkfront: fix memory leak in xbd_connect error path
royger [Mon, 30 Jul 2018 11:27:51 +0000 (11:27 +0000)]
xen-blkfront: fix memory leak in xbd_connect error path

If gnttab_grant_foreign_access() fails for any of the indirection
pages, the code breaks out of both the loops without freeing the local
variable indirectpages, causing a memory leak.

Submitted by: Pratyush Yadav <pratyush@freebsd.org>
Differential Review: https://reviews.freebsd.org/D16136

5 years agoxen-blkfront: fix length check
royger [Mon, 30 Jul 2018 11:15:20 +0000 (11:15 +0000)]
xen-blkfront: fix length check

Length is an unsigned integer, so checking against < 0 doesn't make
sense. While there also make clear that a length of 0 always succeeds.

Submitted by: Pratyush Yadav <pratyush@freebsd.org>
Differential Review: https://reviews.freebsd.org/D16045

5 years agoRemove teh non-INTRNG code from the ARM GIC interrupt controller driver.
andrew [Mon, 30 Jul 2018 10:55:02 +0000 (10:55 +0000)]
Remove teh non-INTRNG code from the ARM GIC interrupt controller driver.

We don't build for the non-INTRNG case and it was makeing the code harder
to read.

5 years agoThis fixes a hole where rack could end up
rrs [Mon, 30 Jul 2018 10:23:29 +0000 (10:23 +0000)]
This fixes a hole where rack could end up
sending an invalid segment into the reassembly
queue. This would happen if you enabled the
data after close option.

Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D16453

5 years agoRequire ARMv5 for arm. All current kernels are for ARMv5 or later, and it
andrew [Mon, 30 Jul 2018 09:50:26 +0000 (09:50 +0000)]
Require ARMv5 for arm. All current kernels are for ARMv5 or later, and it
will allow us to clean out old ARMv4 (and earlier) specific assembly.

Relnotes: yes

5 years agoCorrect copyright dates.
obrien [Mon, 30 Jul 2018 07:01:00 +0000 (07:01 +0000)]
Correct copyright dates.

5 years agoPrepare for adding psind == 1 support to armv6's pmap_enter().
alc [Mon, 30 Jul 2018 01:54:25 +0000 (01:54 +0000)]
Prepare for adding psind == 1 support to armv6's pmap_enter().

Precompute the new PTE before entering the critical section.

Eliminate duplication of the pmap and pv list unlock operations in
pmap_enter() by implementing a single return path.  Otherwise, the
duplication will only increase with the upcoming support for psind == 1.

Reviewed by: mmel
Tested by: mmel
Discussed with: kib, markj
MFC after: 3 weeks
Differential Revision: https://reviews.freebsd.org/D16443

5 years agoCorrect typo and whitespace in UPDATING
emaste [Mon, 30 Jul 2018 00:04:42 +0000 (00:04 +0000)]
Correct typo and whitespace in UPDATING

PR: 230124
Submitted by: Samy Mahmoudi

5 years agoSilence newer gcc warnings.
rmacklem [Sun, 29 Jul 2018 21:51:17 +0000 (21:51 +0000)]
Silence newer gcc warnings.

Newer versions of gcc generate "set, but not used" warnings in the NFS server.
Add __unused macros to silence these warnings.

Requested by: mmacy

5 years agoRevert "devd: use C++ style casts"
eadler [Sun, 29 Jul 2018 21:00:18 +0000 (21:00 +0000)]
Revert "devd: use C++ style casts"

It seems that nullptr is not yet supported by all compilers used by
FreeBSD. :(

5 years agoUse SMAP on amd64.
kib [Sun, 29 Jul 2018 20:47:00 +0000 (20:47 +0000)]
Use SMAP on amd64.

Ifuncs selectors dispatch copyin(9) family to the suitable variant, to
set rflags.AC around userspace access.  Rflags.AC bit is cleared in
all kernel entry points unconditionally even on machines not
supporting SMAP.

Reviewed by: jhb
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D13838

5 years agoaudit(4): add tests for sysctl(3) and sysarch(2)
asomers [Sun, 29 Jul 2018 20:34:44 +0000 (20:34 +0000)]
audit(4): add tests for sysctl(3) and sysarch(2)

Submitted by: aniketp
MFC after: 2 weeks
Sponsored by: Google, Inc. (GSoC 2018)
Differential Revision: https://reviews.freebsd.org/D16116

5 years agofreebsd32_getrusage(2): skip freebsd32_rusage_out on error
asomers [Sun, 29 Jul 2018 19:20:13 +0000 (19:20 +0000)]
freebsd32_getrusage(2): skip freebsd32_rusage_out on error

PR: 230153
Reported by: kib
MFC after: 2 weeks
X-MFC-With: 336871
Differential Revision: https://reviews.freebsd.org/D16500

5 years agogetrusage(2): fix return value under 32-bit emulation
asomers [Sun, 29 Jul 2018 18:22:26 +0000 (18:22 +0000)]
getrusage(2): fix return value under 32-bit emulation

According to the man page, getrusage(2) should return EFAULT if the rusage
argument lies outside of the process's address space. But due to an
oversight in r100384, that's never been the case during 32-bit emulation.
Fix it.

PR: 230153
Reported by: tests(7)
Reviewed by: cem
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D16500

5 years agoThe device ID tables are used only within the driver, make them static so
ian [Sun, 29 Jul 2018 16:55:28 +0000 (16:55 +0000)]
The device ID tables are used only within the driver, make them static so
that both of these drivers can exist in the same kernel.

5 years agoAdd allow.mlock to jail parameters
antoine [Sun, 29 Jul 2018 12:41:56 +0000 (12:41 +0000)]
Add allow.mlock to jail parameters
It allows locking or unlocking physical pages in memory within a jail

This allows running elasticsearch with "bootstrap.memory_lock" inside a jail

Reviewed by: jamie@
Differential Revision: https://reviews.freebsd.org/D16342

5 years agodevd: use C++ style casts
eadler [Sun, 29 Jul 2018 08:43:08 +0000 (08:43 +0000)]
devd: use C++ style casts

5 years agodevd: use static where possible
eadler [Sun, 29 Jul 2018 08:43:05 +0000 (08:43 +0000)]
devd: use static where possible

5 years agotruncate: delintify
eadler [Sun, 29 Jul 2018 07:51:42 +0000 (07:51 +0000)]
truncate: delintify

5 years agotruncate: use better type for 'round'
eadler [Sun, 29 Jul 2018 07:51:40 +0000 (07:51 +0000)]
truncate: use better type for 'round'

5 years agoFix a variable name typo in r336845 that prevented the rc.d scripts
truckman [Sun, 29 Jul 2018 05:42:07 +0000 (05:42 +0000)]
Fix a variable name typo in r336845 that prevented the rc.d scripts
from being installed in the correct directory.

Resurrect a few rc.d scripts that were prematurely deleted from the
Makefile by r336845.

Reviewed by: brd

5 years agoFix a typo that prevented some rc scripts from being installed.
brd [Sun, 29 Jul 2018 03:20:05 +0000 (03:20 +0000)]
Fix a typo that prevented some rc scripts from being installed.

Approved by: will (mentor)
Differential Revision: https://reviews.freebsd.org/D16495

5 years agobeinstall: perform pre-installworld steps.
will [Sun, 29 Jul 2018 01:44:26 +0000 (01:44 +0000)]
beinstall: perform pre-installworld steps.

Since all post-installkernel steps are assumed to operate in the updated
installation, it's necessary to chroot all of the followup steps in the new
boot environment.  Set up and mount the source and object directories at the
same paths inside the BE root, and clean up to the extent changes were made.
This commit fixes upgrading using beinstall past the new ntpd user change.

Improve testability of changes to this script while I'm here.

Reported by: rpokala (earlier patch)

5 years agoFix the long term ULE load balancer so that it actually works. The
truckman [Sun, 29 Jul 2018 00:30:06 +0000 (00:30 +0000)]
Fix the long term ULE load balancer so that it actually works.  The
initial call to sched_balance() during startup is meant to initialize
balance_ticks, but does not actually do that since smp_started is
still zero at that time.  Since balance_ticks does not get set,
there are no further calls to sched_balance().  Fix this by setting
balance_ticks in sched_initticks() since we know the value of
balance_interval at that time, and eliminate the useless startup
call to sched_balance().  We don't need to randomize the intial
value of balance_ticks.

Since there is now only one call to sched_balance(), we can hoist
the tests at the top of this function out to the caller and avoid
the overhead of the function call when running a SMP kernel on UP
hardware.

PR: 223914
Reviewed by: kib
MFC after: 2 weeks

5 years agoMFV r336851:
mm [Sun, 29 Jul 2018 00:12:16 +0000 (00:12 +0000)]
MFV r336851:

Update vendor/libarchive/dist to git 2c8c83b9731ff822fad6cc8c670ea5519c366a14

Important vendor changes:
  PR #993: Chdir to -C directory for metalog processing
  OSS-Fuzz #4969: Check size of the extended time field in zip archives
  PR #973: Record informational compression level in gzip header

MFC after: 1 week

5 years agowpa_supplicant.8: Remove removed option
cem [Sat, 28 Jul 2018 23:59:36 +0000 (23:59 +0000)]
wpa_supplicant.8: Remove removed option

Our base version of wpa_supplicant does not support the -u option, so remove
it.

PR: 230102
Submitted by: D Green <dfrg AT xsmail.com>

5 years agoexec.3: Add BUGS section and document non-FreeBSD portability
cem [Sat, 28 Jul 2018 23:55:18 +0000 (23:55 +0000)]
exec.3: Add BUGS section and document non-FreeBSD portability

Requested by: kib (in part)

5 years agoUpdate vendor/libarchive/dist to git 2c8c83b9731ff822fad6cc8c670ea5519c366a14
mm [Sat, 28 Jul 2018 23:47:22 +0000 (23:47 +0000)]
Update vendor/libarchive/dist to git 2c8c83b9731ff822fad6cc8c670ea5519c366a14

Important vendor changes:
  PR #993: Chdir to -C directory for metalog processing
  OSS-Fuzz #4969: Check size of the extended time field in zip archives
  PR #973: Record informational compression level in gzip header

5 years agoMove nscd.conf from etc/ to usr.sbin/nscd/
brd [Sat, 28 Jul 2018 23:29:36 +0000 (23:29 +0000)]
Move nscd.conf from etc/ to usr.sbin/nscd/

Approved by: will (mentor)
Differential Revision: https://reviews.freebsd.org/D16490

5 years agoSwitch these to CONFS as well so they work with etcupdate/mergemaster.
brd [Sat, 28 Jul 2018 23:02:10 +0000 (23:02 +0000)]
Switch these to CONFS as well so they work with etcupdate/mergemaster.

Approved by: will (mentor)

5 years agorelease: arm: Add a GENERIC sdcard image
manu [Sat, 28 Jul 2018 20:45:36 +0000 (20:45 +0000)]
release: arm: Add a GENERIC sdcard image

This produce a generic sdcard image using armv7 GENERIC kernel that
just need some u-boot (or none if the board have u-boot or a SPI flash
for example).

Reviewed by: imp, gjb
Differential Revision: https://reviews.freebsd.org/D16410

5 years agoOpps, I missed moving a couple of files in r336845.
brd [Sat, 28 Jul 2018 20:41:33 +0000 (20:41 +0000)]
Opps, I missed moving a couple of files in r336845.

Approved by: will (mentor)
Differential Revision: https://reviews.freebsd.org/D16466

5 years agoMove rc startup scripts from etc/ to sbin/init/
brd [Sat, 28 Jul 2018 20:36:23 +0000 (20:36 +0000)]
Move rc startup scripts from etc/ to sbin/init/

This keeps most startup scripts as CONFS per discussion on src-committers from
back during BSDCan.

Approved by: will (mentor)
Differential Revision: https://reviews.freebsd.org/D16466

5 years agoUPDATING: Add note about efifb support and serial output
manu [Sat, 28 Jul 2018 20:33:08 +0000 (20:33 +0000)]
UPDATING: Add note about efifb support and serial output

5 years agoWhitespace only change, no functional change intended.
brd [Sat, 28 Jul 2018 20:31:03 +0000 (20:31 +0000)]
Whitespace only change, no functional change intended.

The padding makes it much easier to read, but occasionally means that commits
like this one have to be done to follow up.  I intentionally kept this
separate from r336841 to try and make things easier to follow later on.

Approved by: bapt (mentor)

5 years agoFix `make distribute' installing some configs which means CONFS was broken
brd [Sat, 28 Jul 2018 20:26:25 +0000 (20:26 +0000)]
Fix `make distribute' installing some configs which means CONFS was broken
with etcupdate and mergemaster.

Approved by: bapt (mentor)
Differential Revision: https://reviews.freebsd.org/D16478

5 years agoMove etc/shells to lib/libc/gen with getusershell(3).
brd [Sat, 28 Jul 2018 20:21:23 +0000 (20:21 +0000)]
Move etc/shells to lib/libc/gen with getusershell(3).

Approved by: will (mentor)
Differential Revision: https://reviews.freebsd.org/D16467

5 years agoModify the NFSv4.1 server so that it allows ReclaimComplete as done by ESXi 6.7.
rmacklem [Sat, 28 Jul 2018 20:21:04 +0000 (20:21 +0000)]
Modify the NFSv4.1 server so that it allows ReclaimComplete as done by ESXi 6.7.

I believe that a ReclaimComplete with rca_one_fs == TRUE is only
to be used after a file system has been transferred to a different
file server.  However, RFC5661 is somewhat vague w.r.t. this and
the ESXi 6.7 client does both a ReclaimComplete with rca_one_fs == TRUE
and one with ReclaimComplete with rca_one_fs == FALSE.
Therefore, just ignore the rca_one_fs == TRUE operation and return
NFS_OK without doing anything instead of replying NFS4ERR_NOTSUPP.
This allows the ESXi 6.7 NFSv4.1 client to do a mount.
After discussion on the NFSv4 IETF working group mailing list, doing this
along with setting a flag to note that a ReclaimComplete with rca_one_fs TRUE
was an appropriate way to handle this.
The flag that indicates that a ReclaimComplete with rca_one_fs == TRUE was
done may be used to disable replies of NFS4ERR_GRACE for non-reclaim
state operations in a future commit.

This patch along with r332790, r334492 and r336357 allow ESXi 6.7 NFSv4.1 mounts
work ok. ESX 6.5 NFSv4.1 mounts do not work well, due to what I believe are
violations of RFC-5661 and should not be used.

Reported by: andreas.nagy@frequentis.com
Tested by: andreas.nagy@frequentis.com, daniel@ftml.net (earlier version)
MFC after: 2 weeks
Relnotes: yes

5 years agoDisable -Wcast-align in libbsm and libauditd
asomers [Sat, 28 Jul 2018 20:04:39 +0000 (20:04 +0000)]
Disable -Wcast-align in libbsm and libauditd

Along with some pending upstream changes, this will allow raising the WARNS
level.

Reviewed by: cem, aniketp
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D16486

5 years agoBe more conservative about setting hw.uart.console
imp [Sat, 28 Jul 2018 19:44:20 +0000 (19:44 +0000)]
Be more conservative about setting hw.uart.console

Note when we've found a 8250 PNP node. Only try to set hw.uart.console
if we see one (otherwise ignore serial hints). The 8250 is the only
one known to have I/O ports, so limit the guessing to when we've
positively seen one.  And limit this to x86 since that's the only
platform where we have I/O ports. Otherwise, we'd set the serial port
to something crazy for the platform and fall off the cliff early in
boot.

Differential Revision:  https://reviews.freebsd.org/D16463