]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/log
FreeBSD/FreeBSD.git
4 years agoloader: Fully reset terminal settings, not just colors
freqlabs [Fri, 27 Mar 2020 17:37:31 +0000 (17:37 +0000)]
loader: Fully reset terminal settings, not just colors

Reviewed by: kevans
Reviewed by: tsoome
Approved by: mav (mentor)
MFC after: 1 week
Sponsored by: iXsystems, Inc.
Differential Revision: https://reviews.freebsd.org/D21733

4 years agoCreate and use a tests group for the tests user.
brooks [Fri, 27 Mar 2020 16:05:37 +0000 (16:05 +0000)]
Create and use a tests group for the tests user.

No user (except nobody) should be a member of the nobody group.

Reported by: rgrimes
Reviewed by: rgrimes
MFC after: 3 days
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D24199

4 years agobhyve: fix NVMe emulation update of SQHD
chuck [Fri, 27 Mar 2020 15:28:27 +0000 (15:28 +0000)]
bhyve: fix NVMe emulation update of SQHD

The SQHD field of a Completion Queue entry indicates the current
Submission Queue head pointer value. The head pointer represents the
next entry to be consumed and is updated after consuming the current
entry.

In the Admin queue processing, the current code updates the head pointer
after reporting the value to the host via the SQHD. This gives the
impression that the Controller is perpetually one command behind in its
processing of the Admin SQ. And while this doesn't appear to bother some
initiators, it is wrong.

Fix is to update the SQ head pointer prior to writing the SQHD value in
the completion.

While here, fix missed update of dword 0 (cdw0) in the completion
message.

Reported by: khng300
Reviewed by: jhb, imp
Approved by: jhb (maintainer)
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D24083

4 years agobhyve: fix NVMe emulation missed interrupts
chuck [Fri, 27 Mar 2020 15:28:22 +0000 (15:28 +0000)]
bhyve: fix NVMe emulation missed interrupts

The bhyve NVMe emulation has a race in the logic which generates command
completion interrupts. On FreeBSD guests, this manifests as kernel log
messages similar to:
    nvme0: Missing interrupt

The NVMe emulation code sets a per-submission queue "busy" flag while
processing the submission queue, and only generates an interrupt when
the submission queue is not busy.

Aside from being counter to the NVMe design (i.e. interrupt properties
are tied to the completion queue) and adding complexity (e.g. exceptions
to not generating an interrupt when "busy"), it causes a race condition
under the following conditions:
 - guest OS has no outstanding interrupts
 - guest OS submits a single NVMe IO command
 - bhyve emulation processes the SQ and sets the "busy" flag
 - bhyve emulation submits the asynchronous IO to the backing storage
 - IO request to the backing storage completes before the SQ processing
   loop exits and doesn't generate an interrupt because the SQ is "busy"
 - bhyve emulation finishes processing the SQ and clears the "busy" flag

Fix is to remove the "busy" flag and generate an interrupt when the CQ
head and tail pointers do not match.

Reported by: khng300
Reviewed by: jhb, imp
Approved by: jhb (maintainer)
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D24082

4 years agobhyve: use STAILQ in NVMe emulation
chuck [Fri, 27 Mar 2020 15:28:16 +0000 (15:28 +0000)]
bhyve: use STAILQ in NVMe emulation

Use the standard queue(3) macros instead of hand-crafted linked list
code.

Reviewed by: imp, jhb
Approved by: jhb (maintainer)
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D24081

4 years agobhyve: implement NVMe deallocate command
chuck [Fri, 27 Mar 2020 15:28:11 +0000 (15:28 +0000)]
bhyve: implement NVMe deallocate command

This adds support for the Dataset Management (DSM) command to the NVMe
emulation in general, and more specifically, for the deallocate
attribute (a.k.a. trim in the ATA protocol). If the backing storage for
the namespace supports delete (i.e. deallocate), setting the deallocate
attribute in a DSM will trim/delete the requested LBA ranges in the
underlying storage.

Reviewed by: jhb, araujo, imp
Approved by: jhb (maintainer)
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D21839

4 years agobhyve: refactor NVMe namespace initialization
chuck [Fri, 27 Mar 2020 15:28:05 +0000 (15:28 +0000)]
bhyve: refactor NVMe namespace initialization

Pass the struct pci_nvme_blockstore pointer for this namespace to the
namespace initialization function instead of only the desired eui64
value.

Minor functional change in that the code updates the eui64 value in the
blockstore.

Reviewed by: jhb, araujo
Approved by: jhb (maintainer)
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D21838

4 years agobhyve: refactor NVMe PRP memcpy
chuck [Fri, 27 Mar 2020 15:28:00 +0000 (15:28 +0000)]
bhyve: refactor NVMe PRP memcpy

Add a "copy direction" parameter to nvme_prp_memcpy such that data can
be copied to the memory specified by the PRP entries (current behavior)
or copied from the PRP entries (new behavior). The upcoming deallocate
functionality will use the copy from capability.

Reviewed by: jhb, araujo
Approved by: jhb (maintainer)
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D21837

4 years agoUse uint32_t where it is expected to be used. No functional change.
tuexen [Fri, 27 Mar 2020 11:08:11 +0000 (11:08 +0000)]
Use uint32_t where it is expected to be used. No functional change.

MFC after: 1 week

4 years agoChange default microphone level from 0 to 25.
hselasky [Fri, 27 Mar 2020 10:28:15 +0000 (10:28 +0000)]
Change default microphone level from 0 to 25.

Discussed with: Horse Ma <Shichun.Ma@dell.com>
MFC after: 1 week
Sponsored by: Mellanox Technologies

4 years agoImprove USB audio mixer support for USB audio class 1 and 2.
hselasky [Fri, 27 Mar 2020 10:22:35 +0000 (10:22 +0000)]
Improve USB audio mixer support for USB audio class 1 and 2.
- make sure volume controls are correctly mapped to "pcm" and "rec" depending
  on how they deliver audio to the USB host.
- make sure there are no duplicate record selections.
- remove internal only mixer class type.
- don't add software volume controls for recording only.
- some minor mixer code cleanup.

Tested by: Horse Ma <Shichun.Ma@dell.com>
MFC after: 1 week
Sponsored by: Mellanox Technologies

4 years agoNow that there are no remaining users of ld.bfd, remove the ld subdir.
bdragon [Fri, 27 Mar 2020 01:12:11 +0000 (01:12 +0000)]
Now that there are no remaining users of ld.bfd, remove the ld subdir.

4 years agoBump for powerpc/powerpcspe switch to lld.
bdragon [Fri, 27 Mar 2020 01:03:48 +0000 (01:03 +0000)]
Bump for powerpc/powerpcspe switch to lld.

4 years ago[PowerPC] Switch powerpc and powerpcspe to lld
bdragon [Fri, 27 Mar 2020 01:00:03 +0000 (01:00 +0000)]
[PowerPC] Switch powerpc and powerpcspe to lld

Now that LLD 10 is out, and required patches have landed, we are now ready
to finally switch away from the ancient in-tree ld.bfd.

Special thanks to Fangrui Song for many hours of work on getting the
32-bit powerpc lld ready for prime-time.

Reviewed by: emaste (earlier revision), jhibbits
Relnotes: yes
Differential Revision: https://reviews.freebsd.org/D24111

4 years agoMerge ACPICA 20200326.
jkim [Fri, 27 Mar 2020 00:29:33 +0000 (00:29 +0000)]
Merge ACPICA 20200326.

4 years agomsun: swap words order instead of bits order on BIG ENDIAN
alfredo [Thu, 26 Mar 2020 18:50:54 +0000 (18:50 +0000)]
msun: swap words order instead of bits order on BIG ENDIAN

The "for" loop on big endian was inverting all the bits instead of
just the words

Issue reported by TestSuite (msun lib nan_test case)

Submitted by: Renato Riolino <renato.riolino@eldorado.org.br>
Submitted by: Fernando Valle <fernando.valle@eldorado.org.br>
Reviewed by: pfg, alfredo
Approved by: jhibbits (mentor)
Sponsored by: Eldorado Research Institute (eldorado.org.br)
Differential Revision: https://reviews.freebsd.org/D23926

4 years agoDo not use macros in -width
0mp [Thu, 26 Mar 2020 17:58:52 +0000 (17:58 +0000)]
Do not use macros in -width

They do not expand.

MFC after: 1 day

4 years agoMerge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp
dim [Thu, 26 Mar 2020 17:46:32 +0000 (17:46 +0000)]
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp
llvmorg-10.0.0-0-gd32170dbd5b (aka 10.0.0 release).

PR: 244251
MFC after: 6 weeks
X-MFC-With: 358851

4 years agoInstall expected kyua docs.
brooks [Thu, 26 Mar 2020 17:34:17 +0000 (17:34 +0000)]
Install expected kyua docs.

The "kyua about" command assumes these files exist causing tests
supplied devel/kyua to fail.

Fix a bug defining the default KYUA_DOCDIR so the installed files can be
found.

Reported by: jenkins tests
Reviewed by: lwhsu
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D24187

4 years agoMerge commit 459e8e948 from llvm git (by Justin Hibbits):
dim [Thu, 26 Mar 2020 17:28:54 +0000 (17:28 +0000)]
Merge commit 459e8e948 from llvm git (by Justin Hibbits):

  [PowerPC]: Don't allow r0 as a target for LD_GOT_TPREL_L/32

  Summary:
  The linker is free to relax this (relocation R_PPC_GOT_TPREL16)
  against R_PPC_TLS, if it sees fit (initial exec to local exec). If r0
  is used, this can generate execution-invalid code (converts to 'addi
  %rX, %r0, FOO, which translates in PPC-lingo to li %rX, FOO). Forbid
  this instead.

  This fixes static binaries using locales on FreeBSD/powerpc (tested
  on FreeBSD/powerpcspe).

  Reviewed By: nemanjai
  Differential Revision: https://reviews.llvm.org/D76662

Requested by: jhibbits
MFC after: 6 weeks
X-MFC-With: 358851

4 years agoMerge commit f0990e104 from llvm git (by Justin Hibbits):
dim [Thu, 26 Mar 2020 17:27:41 +0000 (17:27 +0000)]
Merge commit f0990e104 from llvm git (by Justin Hibbits):

  [PowerPC]: e500 target can't use lwsync, use msync instead

  The e500 core has a silicon bug that triggers an illegal instruction
  program trap on any sync other than msync. Other cores will typically
  ignore illegal sync types, and the documentation even implies that
  the 'illegal' bits are ignored.

  Address this hardware deficiency by only using msync, like the PPC440.

  Differential Revision:  https://reviews.llvm.org/D76614

Requested by: jhibbits
MFC after: 6 weeks
X-MFC-With: 358851

4 years agocompat/linux/linux.h depends on queue.h since r353725.
markj [Thu, 26 Mar 2020 17:12:55 +0000 (17:12 +0000)]
compat/linux/linux.h depends on queue.h since r353725.

Sponsored by: The FreeBSD Foundation

4 years agoSimplify td_ucred handling in newnfs_connect().
markj [Thu, 26 Mar 2020 15:02:56 +0000 (15:02 +0000)]
Simplify td_ucred handling in newnfs_connect().

No functional change intended.

MFC after: 1 week

4 years agoRemove unused SYSINIT macros for capability rights.
markj [Thu, 26 Mar 2020 15:02:37 +0000 (15:02 +0000)]
Remove unused SYSINIT macros for capability rights.

Static rights are initialized in cap_rights_sysinit().

MFC after: 1 week

4 years ago[PowerPC64] Fix OPAL IPMI driver
luporl [Thu, 26 Mar 2020 12:17:49 +0000 (12:17 +0000)]
[PowerPC64] Fix OPAL IPMI driver

This change fixes a couple of issues with OPAL IPMI driver and
implements a mechanism to detect timeouts and discard old messages left
in receive queue, to avoid old messages from being confused with the
reply of new ones.

Reviewed by: jhibbits
Sponsored by: Eldorado Research Institute (eldorado.org.br)
Differential Revision: https://reviews.freebsd.org/D24185

4 years agoFix typo.
ae [Thu, 26 Mar 2020 12:00:26 +0000 (12:00 +0000)]
Fix typo.

MFC after: 2 weeks

4 years agoAdd property-based filters for syslogd.
ae [Thu, 26 Mar 2020 11:54:25 +0000 (11:54 +0000)]
Add property-based filters for syslogd.

Property-based filters allow substring and regular expressions
(see re_format(7)) matching against various message attributes.
Filter specification starts with '#:' or ':' followed by three
comma-separated fields property, operator, "value". Value must be
double-quoted. A double quote and backslash must be escaped by a
blackslash.

Following properties are supported as test value:
o msg - body of the message received;
o programname - program name sent the message;
o hostname - hostname of message's originator;
o source - an alias for hostname.

Supported operators:
o contains - true if filter value is found as a substring of property;
o isequal - true if filter value is equal to property;
o startswith - true if property starts with filter value;
o regex - true if property matches basic regular expression defined
    in filter value;
o ereregex - true if property matches extended regular expression
    defined in filter value;

Operator may be prefixed by '!' to invert compare logic or by
'icase_' to make comparison function case insensitive.

Submitted by: Boris N. Lytochkin <lytboris at gmail com>
MFC after: 2 weeks
Relnotes: yes
Differential Revision: https://reviews.freebsd.org/D23468

4 years agoAdd HISTORY sections to log(3) man page
carlavilla [Thu, 26 Mar 2020 11:24:43 +0000 (11:24 +0000)]
Add HISTORY sections to log(3) man page

PR: 240265
Submitted by: gbergling@gmail.com
Approved by: bcr@(mentor), imp@
MFC after: 1 day
Differential Revision: https://reviews.freebsd.org/D24148

4 years agoRemove deprecated options.
netchild [Thu, 26 Mar 2020 09:23:16 +0000 (09:23 +0000)]
Remove deprecated options.

4 years agoStop building libl and liby
manu [Thu, 26 Mar 2020 08:23:09 +0000 (08:23 +0000)]
Stop building libl and liby

Those libs aren't needed anymore so stop building them for the bootstrap tools
or the compat libs.

Reviewed by: bapt, emaste
X-Differential Revision: D24171

4 years agoBe more intelligent when classifying USB audio terminal types, so that we
hselasky [Thu, 26 Mar 2020 07:52:04 +0000 (07:52 +0000)]
Be more intelligent when classifying USB audio terminal types, so that we
don't end up using SOUND_MIXER_VOLUME for all undefined types.

MFC after: 1 week
Sponsored by: Mellanox Technologies

4 years agoMake mute controls available for USB audio mixers.
hselasky [Thu, 26 Mar 2020 07:46:16 +0000 (07:46 +0000)]
Make mute controls available for USB audio mixers.

Submitted by: Horse Ma <Shichun.Ma@dell.com>
MFC after: 1 week
Sponsored by: Mellanox Technologies

4 years agoFactor out USB audio mixer value range check.
hselasky [Thu, 26 Mar 2020 07:42:36 +0000 (07:42 +0000)]
Factor out USB audio mixer value range check.

MFC after: 1 week
Sponsored by: Mellanox Technologies

4 years agoAvoid scaling USB audio mixer values twice.
hselasky [Thu, 26 Mar 2020 07:37:00 +0000 (07:37 +0000)]
Avoid scaling USB audio mixer values twice.

MFC after: 1 week
Sponsored by: Mellanox Technologies

4 years agoExpand generic subword atomic primitives
cem [Wed, 25 Mar 2020 23:12:43 +0000 (23:12 +0000)]
Expand generic subword atomic primitives

The goal of this change is to make the atomic_load_acq_{8,16},
atomic_testandset{,_acq}_long, and atomic_testandclear_long primitives
available in MI-namespace.

The second goal is to get this draft out of my local tree, as anything that
requires a full tinderbox is a big burden out of tree.  MD specifics can be
refined individually afterwards.

The generic implementations may not be ideal for your architecture; feel
free to implement better versions.  If no subword_atomic definitions are
needed, the include can be removed from your arch's machine/atomic.h.
Generic definitions are guarded by defined macros of the same name.  To
avoid picking up conflicting generic definitions, some macro defines are
added to various MD machine/atomic.h to register an existing implementation.

Include _atomic_subword.h in arm and arm64 machine/atomic.h.

For some odd reason, KCSAN only generates some versions of primitives.
Generate the _acq variants of atomic_load.*_8, atomic_load.*_16, and
atomic_testandset.*_long.  There are other questionably disabled primitives,
but I didn't run into them, so I left them alone.  KCSAN is only built for
amd64 in tinderbox for now.

Add atomic_subword implementations of atomic_load_acq_{8,16} implemented
using masking and atomic_load_acq_32.

Add generic atomic_subword implementations of atomic_testandset_long(),
atomic_testandclear_long(), and atomic_testandset_acq_long(), using
atomic_fcmpset_long() and atomic_fcmpset_acq_long().

On x86, add atomic_testandset_acq_long as an alias for
atomic_testandset_long.

Reviewed by: kevans, rlibby (previous versions both)
Differential Revision: https://reviews.freebsd.org/D22963

4 years agoso_reuseport_lb_test: correct setsockopt parameter size
alfredo [Wed, 25 Mar 2020 20:20:08 +0000 (20:20 +0000)]
so_reuseport_lb_test: correct setsockopt parameter size

Change type of variable used in setsocketopt so correct size of
option is passed.

Test failure was identified when running the test on PowerPC64,
and the following error message was seen:

"bind () failed: Address already in use"

Submitted by: Fernando Valle <fernando.valle@eldorado.org.br>
Reviewed by: melifaro, adalava
Approved by: jhibbits (mentor)
Sponsored by: Eldorado Research Institute (eldorado.org.br)
Differential Revision: https://reviews.freebsd.org/D24164

4 years agoFix pkgfs stat so it satisfies libsecureboot
sjg [Wed, 25 Mar 2020 19:12:19 +0000 (19:12 +0000)]
Fix pkgfs stat so it satisfies libsecureboot

We need a valid st_dev, st_ino and st_mtime
to correctly track which files have been verified
and to update our notion of time.

ve_utc_set(): ignore utc if it would jump our current time
by more than VE_UTC_MAX_JUMP (20 years).

Allow testing of install command via userboot.
Need to fix its stat implementation too.

bhyveload also needs stat fixed - due to change to userboot.h

Call ve_error_get() from vectx_close() when hash is wrong.

Track the names of files we have hashed into pcr

For the purposes of measured boot, it is important
to be able to reproduce the hash reflected in
loader.ve.pcr
so loader.ve.hashed provides a list of names in the order they
were added.

Reviewed by: imp
MFC after: 1 week
Sponsored by: Juniper Networks
Differential Revision: https://reviews.freebsd.org//D24027

4 years agoRemove an optimization, which was incorrect a couple of times and
tuexen [Wed, 25 Mar 2020 18:20:37 +0000 (18:20 +0000)]
Remove an optimization, which was incorrect a couple of times and
therefore doesn't seem worth to be there.
In this case COOKIE where not retransmitted anymore, when the
socket was already closed.

MFC after: 1 week

4 years agoImprove consistency in debug output.
tuexen [Wed, 25 Mar 2020 18:14:12 +0000 (18:14 +0000)]
Improve consistency in debug output.

MFC after: 1 week

4 years agoMFOpenZFS: ZVOLs should not be allowed to have children
freqlabs [Wed, 25 Mar 2020 15:56:18 +0000 (15:56 +0000)]
MFOpenZFS: ZVOLs should not be allowed to have children

zfs create, receive and rename can bypass this hierarchy rule. Update
both userland and kernel module to prevent this issue and use pyzfs
unit tests to exercise the ioctls directly.

Note: this commit slightly changes zfs_ioc_create() ABI. This allow to
differentiate a generic error (EINVAL) from the specific case where we
tried to create a dataset below a ZVOL (ZFS_ERR_WRONG_PARENT).

Reviewed-by: Paul Dagnelie <pcd@delphix.com>
Reviewed-by: Matt Ahrens <mahrens@delphix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Tom Caputi <tcaputi@datto.com>
Signed-off-by: loli10K <ezomori.nozomu@gmail.com>
Approved by: mav (mentor)
MFC after: 2 weeks
Sponsored by: iXsystems, Inc.
openzfs/zfs@d8d418ff0cc90776182534bce10b01e9487b63e4

4 years agoRevert https://svnweb.freebsd.org/changeset/base/357829
tuexen [Wed, 25 Mar 2020 15:29:01 +0000 (15:29 +0000)]
Revert https://svnweb.freebsd.org/changeset/base/357829

This introduces a regression reported by koobs@ when running a pyhton
test suite on a loaded system.

This patch resulted in a failing accept() call, when the association
was setup and gracefully shutdown by the peer before accept was called.
So the following packetdrill script would fail:

+0.0 socket(..., SOCK_STREAM, IPPROTO_SCTP) = 3
+0.0 bind(3, ..., ...) = 0
+0.0 listen(3, 1) = 0
+0.0 < sctp: INIT[flgs=0, tag=1, a_rwnd=15000, os=1, is=1, tsn=1]
+0.0 > sctp: INIT_ACK[flgs=0, tag=2, a_rwnd=..., os=..., is=..., tsn=1, ...]
+0.1 < sctp: COOKIE_ECHO[flgs=0, len=..., val=...]
+0.0 > sctp: COOKIE_ACK[flgs=0]
+0.0 < sctp: DATA[flgs=BE, len=116, tsn=1, sid=0, ssn=0, ppid=0]
+0.0 > sctp: SACK[flgs=0, cum_tsn=1, a_rwnd=..., gaps=[], dups=[]]
+0.0 < sctp: SHUTDOWN[flgs=0, cum_tsn=0]
+0.0 > sctp: SHUTDOWN_ACK[flgs=0]
+0.0 < sctp: SHUTDOWN_COMPLETE[flgs=0]
+0.0 accept(3, ..., ...) = 4
+0.0 close(3) = 0
+0.0 recv(4, ..., 4096, 0) = 100
+0.0 recv(4, ..., 4096, 0) = 0
+0.0 close(4) = 0

Reported by: koops@

4 years agoUse consistent debug output.
tuexen [Wed, 25 Mar 2020 13:19:41 +0000 (13:19 +0000)]
Use consistent debug output.

MFC after: 1 week

4 years agoDon't restore the vnet too early in error cases.
tuexen [Wed, 25 Mar 2020 13:18:37 +0000 (13:18 +0000)]
Don't restore the vnet too early in error cases.

MFC after: 1 week

4 years agoFix formatting
0mp [Wed, 25 Mar 2020 10:11:37 +0000 (10:11 +0000)]
Fix formatting

Previously, the whole "jail_* variables" string would be stylized
as a variable. This is incorrect.

MFC after: 3 days

4 years agoRevert r359294 per manu's request
bapt [Wed, 25 Mar 2020 08:35:55 +0000 (08:35 +0000)]
Revert r359294 per manu's request

It breaks etcupdate

Reported by: cy

4 years agolibpmc: Always add the full include path for libpmcstat
manu [Wed, 25 Mar 2020 02:28:47 +0000 (02:28 +0000)]
libpmc: Always add the full include path for libpmcstat

Previously it was only added for aarch64, amd64 and i386

4 years agopkgbase: Stop threating rc files as config files
manu [Wed, 25 Mar 2020 01:36:23 +0000 (01:36 +0000)]
pkgbase: Stop threating rc files as config files

rc scripts arent configuration files so use FILES instead of CONFS.
While here put rc scripts into related package (sendmail in the FreeBSD-sendmail
package, wpa_supplicant in the FreeBSD-wpa etc ...)

Reviewed by: bapt, emaste
Differential Revision: https://reviews.freebsd.org/D24177

4 years agoRe-apply r359267 now that tools are using the proper include path
manu [Wed, 25 Mar 2020 01:35:13 +0000 (01:35 +0000)]
Re-apply r359267 now that tools are using the proper include path

Original commit message:
bsd.lib.mk: Do not include bsd.incs.mk for INTERNALLIB

f we're building an internal lib do not bother including bsd.incs.mk so we
will not install the headers.
This also "solves" a problem with pkgbase where a libXXX-development package
is created and due to how packages are created we add a dependency to a
libXXX package that doesn't exists.

4 years agopmc: Add include path for libpmcstat as it is an internallib
manu [Wed, 25 Mar 2020 01:32:16 +0000 (01:32 +0000)]
pmc: Add include path for libpmcstat as it is an internallib

Reviewed by: bapt
Differential Revision: https://reviews.freebsd.org/D24173

4 years agowlandebug: Add include path for libifconfig as it is a internallib
manu [Wed, 25 Mar 2020 01:31:26 +0000 (01:31 +0000)]
wlandebug: Add include path for libifconfig as it is a internallib

Reviewed by: bapt
Differential Revision: https://reviews.freebsd.org/D24172

4 years agoMakefile.inc1: override MACHINE for native-xtools
mhorne [Tue, 24 Mar 2020 23:25:54 +0000 (23:25 +0000)]
Makefile.inc1: override MACHINE for native-xtools

For the final step of the native-xtools target, "everything" is built
with TARGET and TARGET_ARCH set to the architecture we wish to
cross-build for. However, CROSSENV overwrites the values of MACHINE and
MACHINE_ARCH, setting them to be identical to TARGET and TARGET_ARCH.
For native-xtools this is undesirable since we are building binaries to
run on the host architecture, that can cross compile for the target
architecture.

When building native-xtools for RISC-V, this issue manifests as an invalid
argument for "-march". The compiler is invoked with the target triple of the
host architecture, but the CFLAGS inherited from bsd.cpu.mk are that of the
target architecture.

Reviewed by: imp, bdrewery
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D23838

4 years agoOnly call panic when building with INVARIANTS.
tuexen [Tue, 24 Mar 2020 23:04:07 +0000 (23:04 +0000)]
Only call panic when building with INVARIANTS.

MFC after: 1 week

4 years agoAnother cleanup of the timer code. Also be more pedantic about the
tuexen [Tue, 24 Mar 2020 22:44:36 +0000 (22:44 +0000)]
Another cleanup of the timer code. Also be more pedantic about the
parameters of the timer start and stop routines. Several inconsistencies
have been fixed in earlier commits. Now they will be catched when running
an INVARIANTS system.

MFC after: 1 week

4 years agoMakefile.inc1: remove old (2018) stale dependency hacks
emaste [Tue, 24 Mar 2020 21:37:34 +0000 (21:37 +0000)]
Makefile.inc1: remove old (2018) stale dependency hacks

We handle a number of stale dependency issues on an ad-hoc basis, in
order to support ongoing NO_CLEAN builds.  These hacks do not need to
be maintained indefinitely; now remove those for issues that are more
than a year old.

Sponsored by: The FreeBSD Foundation

4 years agoichwd: Add Atom C3000 watchdog ID.
jhibbits [Tue, 24 Mar 2020 21:28:48 +0000 (21:28 +0000)]
ichwd: Add Atom C3000 watchdog ID.

MFC after: 3 days
Sponsored by: Juniper Networks, Inc

4 years agoexec{l,v}{e,p} arrived in 7th Edition research Unix to support the Bourne Shell
imp [Tue, 24 Mar 2020 19:33:21 +0000 (19:33 +0000)]
exec{l,v}{e,p} arrived in 7th Edition research Unix to support the Bourne Shell
which introduced environment variables. Document that here. Verified by
consulting the TUHS archive.

4 years agoFix PNP matching for iflib NIC drivers
cem [Tue, 24 Mar 2020 19:20:10 +0000 (19:20 +0000)]
Fix PNP matching for iflib NIC drivers

The previous descriptor string specified that all fields were significant for
match.  However, the only significant fields for in-tree drivers are
vendor:devid, and the fictitious zero values constructed by PVID() did not
match real subvendor, subdevice, revision, and/or class values, resulting in no
automatic probe.

If a future iflib driver needs to match on other criteria, the descriptor
string can be updated accordingly.  (E.g., "V32" and ~0 for unspecified values
in PVID().)

Reported by: mav
Sponsored by: Dell EMC Isilon

4 years agoCorrect path in EXAMPLES ypldap.conf.5
carlavilla [Tue, 24 Mar 2020 19:12:28 +0000 (19:12 +0000)]
Correct path in EXAMPLES ypldap.conf.5

PR: 244743
Submitted by: alex@i.org.ua
Patch by: alex@i.org.ua
Approved by: bcr@(mentor), 0mp
MFC after: 1 day
Differential Revision: https://reviews.freebsd.org/D24144

4 years agoRemove the secondary_stacks array in arm64 and riscv kernels.
markj [Tue, 24 Mar 2020 18:43:23 +0000 (18:43 +0000)]
Remove the secondary_stacks array in arm64 and riscv kernels.

Instead, dynamically allocate a page for the boot stack of each AP when
starting them up, like we do on x86.  This shrinks the bss by
MAXCPU*KSTACK_PAGES pages, which corresponds to 4MB on arm64 and 256KB
on riscv.

Duplicate the logic used on x86 to free the bootstacks, by using a
sysinit to wait for each AP to switch to a thread before freeing its
stack.

While here, mark some static MD variables as such.

Reviewed by: kib
MFC after: 1 month
Sponsored by: Juniper Networks, Klara Inc.
Differential Revision: https://reviews.freebsd.org/D24158

4 years agoismt: Fix ISMT_DESC_ADDR_RW macro, slave addresses are already left-shifted
jhibbits [Tue, 24 Mar 2020 18:35:33 +0000 (18:35 +0000)]
ismt: Fix ISMT_DESC_ADDR_RW macro, slave addresses are already left-shifted

Reverts r293369.  The macro was orginally correct, since our SMBus
framework, unlike i2c, already requires addresses to be 8-bit, LSB-cleared.

MFC after: 3 days
Sponsored by: Juniper Networks, Inc

4 years agonewsyslog: Add fallthrough comments to appease Coverity.
markj [Tue, 24 Mar 2020 18:17:10 +0000 (18:17 +0000)]
newsyslog: Add fallthrough comments to appease Coverity.

CID: 100816510081661008167
MFC after: 1 week
Sponsored by: The FreeBSD Foundation

4 years agoAdd regression tests for newsyslog.conf's p flag.
markj [Tue, 24 Mar 2020 18:16:56 +0000 (18:16 +0000)]
Add regression tests for newsyslog.conf's p flag.

While here do a bit of cleanup:
- declare local variables as such,
- make tmpdir_create() clean up logfile directories, to handle a
  previously interrupt test run more gracefully.

MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation

4 years agonewsyslog: Fix stack corruption when initializing a zipwork structure.
markj [Tue, 24 Mar 2020 18:16:36 +0000 (18:16 +0000)]
newsyslog: Fix stack corruption when initializing a zipwork structure.

This happens when compressing a previously uncompressed already-rotated
file, as happens when handling the 'p' flag in newsyslog.conf.  The file
name is stored in a flexible array member, so these structures cannot be
stack allocated.

Also make sure that we call change_attrs() and do_zipwork() in dry-run
mode; they handle this properly, contrary to the commit log message for
r327451.

CID: 1008168
Github PR: https://github.com/freebsd/freebsd/pull/427
MFC after: 2 weeks
Submitted by: Radek Brich (original version)

4 years agoDisable rarely used architecture variants in make universe by default.
jhb [Tue, 24 Mar 2020 18:16:02 +0000 (18:16 +0000)]
Disable rarely used architecture variants in make universe by default.

If EXTRA_TARGETS is defined, build all supported architecture
variants.  By default, build architecture variants needed to provide
code coverage or that are commonly used.

Use this to disable building of all the hard-float and little-endian
MIPS architecture variants along with n32 by default.

Reviewed by: rpokala
Discussed with: imp, emaste
Differential Revision: https://reviews.freebsd.org/D24178

4 years agoiflib: simplify MPASS assertion
emaste [Tue, 24 Mar 2020 17:54:34 +0000 (17:54 +0000)]
iflib: simplify MPASS assertion

Submitted by: andrew

4 years agoiflib: split compound assertion
emaste [Tue, 24 Mar 2020 17:25:56 +0000 (17:25 +0000)]
iflib: split compound assertion

ThunderX cluster systems are panicking on boot with a failed assertion
MPASS(gtask != NULL && gtask->gt_taskqueue != NULL).  Split the
assertion so that it's clear which part is failing.

4 years agokern_copy_file_range(): check the file type.
kib [Tue, 24 Mar 2020 17:16:52 +0000 (17:16 +0000)]
kern_copy_file_range(): check the file type.

The syscall can only operate on valid vnode types.

Reported and tested by: pho
Sponsored by: The FreeBSD Foundation

4 years agoUse IP_FW_NAT44_DESTROY opcode for IP_FW3 socket option to destroy
ae [Tue, 24 Mar 2020 12:27:02 +0000 (12:27 +0000)]
Use IP_FW_NAT44_DESTROY opcode for IP_FW3 socket option to destroy
NAT instance.

The NAT44 group of opcodes for IP_FW3 socket option is modern way
to control NAT instances and this method can be used in future to
switch from numeric to named NAT instances, like was done for ipfw
tables.
The IP_FW_NAT_DEL opcode is the last remnant of old ipfw_ctl control
plane that doesn't support versioned operations. This interface will
be retired soon.

Reviewed by: melifaro
MFC after: 10 days
Sponsored by: Yandex LLC

4 years agoauditdistd: Remove useless linking with libl
manu [Tue, 24 Mar 2020 07:08:39 +0000 (07:08 +0000)]
auditdistd: Remove useless linking with libl

4 years agorescue: Remove useless linking with libl
manu [Tue, 24 Mar 2020 07:08:02 +0000 (07:08 +0000)]
rescue: Remove useless linking with libl

4 years agoRevert r359267.
manu [Tue, 24 Mar 2020 01:29:18 +0000 (01:29 +0000)]
Revert r359267.
This is not the correct solution and I should have done a clean buildworld.

4 years agobsd.lib.mk: Do not include bsd.incs.mk for INTERNALLIB
manu [Tue, 24 Mar 2020 01:09:04 +0000 (01:09 +0000)]
bsd.lib.mk: Do not include bsd.incs.mk for INTERNALLIB

If we're building an internal lib do not bother including bsd.incs.mk so we
will not install the headers.
This also "solves" a problem with pkgbase where a libXXX-development package
is created and due to how packages are created we add a dependency to a
libXXX package that doesn't exists.

Reported by: pizzamig
Reviewed by: pizzamig bapt emaste
Differential Revision: https://reviews.freebsd.org/D24166

4 years agopkgbase: Move telnetd and ftpd pam file to the utilities package
manu [Tue, 24 Mar 2020 01:08:06 +0000 (01:08 +0000)]
pkgbase: Move telnetd and ftpd pam file to the utilities package

Both programs are in this package so put the pam.d file in there too.

Reported by: emaste
Reviewed by: emaste
Differential Revision: https://reviews.freebsd.org/D24161

4 years agopkgbase: Move device.hints from the runtime to the bootloader package
manu [Tue, 24 Mar 2020 01:07:01 +0000 (01:07 +0000)]
pkgbase: Move device.hints from the runtime to the bootloader package

Also mark it as config file so if a user changes this file pkg will attempt
to merge the new file upon an update.
device.hints is neither related to runtime or loader but it make more sense
to have it in loader in case some user delete /boot/ and wants to recreate it,
now only two packages are required FreeBSD-bootloader and the kernel package.
While here change where we override the package for files installed in /boot,
this allow us to keep other tags (such as config).

Reported by: pizzamig
Reviewed by: bapt pizzamig emaste
Differential Revision: https://reviews.freebsd.org/D24159

4 years agoarm: Fix atomic long APIs to correct 'u_long' signedness
cem [Mon, 23 Mar 2020 23:00:13 +0000 (23:00 +0000)]
arm: Fix atomic long APIs to correct 'u_long' signedness

As defined in atomic(9) and implemented on other architectures, the
atomic(9) functions all act on unsigned pointers and types.  Prior to this
revision, arm implemented some atomic(9) 'long' sized routines with correct
unsigned type, but others were incorrectly signed.

Reviewed by: tinderbox
Sponsored by: Dell EMC Isilon

4 years agoUse the newer EINTEGRITY error when authentication fails.
jhb [Mon, 23 Mar 2020 21:26:32 +0000 (21:26 +0000)]
Use the newer EINTEGRITY error when authentication fails.

GELI used to fail with EINVAL when a read request spanned a disk
sector whose contents did not match the sector's authentication tag.
The recently-added EINTEGRITY more closely matches to the error in
this case.

Reviewed by: cem, mckusick
MFC after: 2 weeks
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D24131

4 years agoImprove LIBADD/_DP_* for kyua libraries.
brooks [Mon, 23 Mar 2020 21:21:38 +0000 (21:21 +0000)]
Improve LIBADD/_DP_* for kyua libraries.

This fixes build with ld.bfd as the linker (e.g. on powerpc).

This corrects a bug in D24103.

Sponsored by: DARPA

4 years agoBump for kyua import.
brooks [Mon, 23 Mar 2020 19:28:24 +0000 (19:28 +0000)]
Bump for kyua import.

Reported by: cy
Sponsored by: DARPA

4 years agoImport the kyua test framework.
brooks [Mon, 23 Mar 2020 19:01:23 +0000 (19:01 +0000)]
Import the kyua test framework.

Having kyua in the base system will simplify automated testing in CI and
eliminates bootstrapping issues on new platforms.

The build of kyua is controlled by WITH(OUT)_TESTS_SUPPORT.

Reviewed by: emaste
Obtained from: CheriBSD
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D24103

4 years agoAdd liblutok a lightweight C++ API for lua.
brooks [Mon, 23 Mar 2020 18:26:23 +0000 (18:26 +0000)]
Add liblutok a lightweight C++ API for lua.

It is added an INTERNALLIB and not installed.  It will be used by kyua.

This is a preparatory commit for D24103.

Reviewed by: emaste
Obtained from: CheriBSD
Sponsored by: DARPA

4 years agoarch.7: remove Default Tool Chain footnote about xtoolchain
emaste [Mon, 23 Mar 2020 18:17:56 +0000 (18:17 +0000)]
arch.7: remove Default Tool Chain footnote about xtoolchain

MIPS was the last arch to use external toolchain by default but uses
in-tree Clang and lld as of r359233, and now no table entries reference
the footnote.

4 years agoarch.7: update Default Tool Chain intro text
emaste [Mon, 23 Mar 2020 18:14:04 +0000 (18:14 +0000)]
arch.7: update Default Tool Chain intro text

All FreeBSD archs now use an in-tree toolchain - Clang and ELF Tool
Chain everywhere, and lld everywhere but 32-bit PowerPC (which still
uses ld.bfd).  No archs use external toolchain by default.

Sponsored by: The FreeBSD Foundation

4 years agoFix newvers.sh on macOS 10.15
arichardson [Mon, 23 Mar 2020 17:51:44 +0000 (17:51 +0000)]
Fix newvers.sh on macOS 10.15

It appears that the macOS /bin/sh echo now defaults to -e and therefore the
`#define VERSTR` included newline characters instead of \n. This caused compiler
errors due to unterminated strings. Fix by using printf instead of echo.
A less fragile solution might be to bootstrap the in-tree /bin/sh but that
requires more changes.

Reviewed By: brooks
Differential Revision: https://reviews.freebsd.org/D24136

4 years agoUpdate arch.7 .Dd for r359233
arichardson [Mon, 23 Mar 2020 17:51:39 +0000 (17:51 +0000)]
Update arch.7 .Dd for r359233

Suggested by: lwhsu

4 years agoAdd STANDARDS and HISTORY to getcontext(3), makecontext(3), and ucontext(3).
trasz [Mon, 23 Mar 2020 17:38:20 +0000 (17:38 +0000)]
Add STANDARDS and HISTORY to getcontext(3), makecontext(3), and ucontext(3).

Obtained from: NetBSD
MFC after: 2 weeks
Sponsored by: DARPA

4 years agoAdd the tests user, an unprivileged user from the default kyua config.
brooks [Mon, 23 Mar 2020 17:11:27 +0000 (17:11 +0000)]
Add the tests user, an unprivileged user from the default kyua config.

This is a preparatory commit for D24103.

Reviewed by: emaste
Obtained from: CheriBSD
MFC after: 3 days
Sponsored by: DARPA

4 years agoDocument when execl and execp entered unix.
imp [Mon, 23 Mar 2020 16:02:01 +0000 (16:02 +0000)]
Document when execl and execp entered unix.

For this, things are complicated. The first mention in the manual was in the 4th
edition manual (as an add on to exec(II)).  The 2nd and 3rd editions didn't have
these in the manual (either as a separate page, or as an add-on to exec(II)). We
don't have good 1st, 2nd or 3rd edition distributions to look in. However,
there's a tape labeled 'last1120c' that we do have. This tape contains the last
version of the V2 edition of the C compiler on it (just after C got struct). On
this tape there was a libc.sa archive that contains source for execl and
execp. This source is sufficiently different from the V5 sources (which are the
next ones we have sources for) and have a slightly different calling convention
than later sources, suggesting that the early date for the last1120c tape is
correct (in that era, the epoch changed every year, leading to a one or two year
ambiguity on when the files could have been modified) and it should be though of
as V2. Since this was also a time of compiler development, and the calling
convetions are known to be under evolution, and since the rest of the sources in
libc.sa are consistent, that's further evidence that V2 is likely. Finally, 2nd
edition was the last version to fully support the 11/20 because it lacked many
basic features and bell labs moved off it to the 11/45 as soon as they could
afford to buy one, around this time era. The unix manuals make it sound like V3
might have supported the 11/20, but the same intro could also be read to mean it
didn't, at all, and that V3 was the first rewrite for the 11/45 ahead of the
rewrite in C that came with V4.

Taken together, the evidence leans most heavily to V2 (90% IMHO), and slightly
to V3 (8%) or possibly V4 (2%). I've not put all this in the man page, but have
left it here in case someone notices in the future that V4 is the first manual
page for it.

4 years agoStart sentences from new lines
0mp [Mon, 23 Mar 2020 15:39:42 +0000 (15:39 +0000)]
Start sentences from new lines

Also, bump date after 359244.

4 years agoMake ICMP redirect processing depend on routing daemon.
melifaro [Mon, 23 Mar 2020 15:27:10 +0000 (15:27 +0000)]
Make ICMP redirect processing depend on routing daemon.

Submitted by:  lutz at donnerhacke.de
Reviewed by: melifaro,rgrimes
Differential Revision: https://reviews.freebsd.org/D23329

4 years agobsdbox: remove useless linking against libl
kevans [Mon, 23 Mar 2020 14:53:55 +0000 (14:53 +0000)]
bsdbox: remove useless linking against libl

All is good without it; just remove it.

Requested by: bapt

4 years agoRemove useless linking to libl
bapt [Mon, 23 Mar 2020 14:44:23 +0000 (14:44 +0000)]
Remove useless linking to libl

4 years agoRemove the link to libl which only contains a stub function
bapt [Mon, 23 Mar 2020 14:37:00 +0000 (14:37 +0000)]
Remove the link to libl which only contains a stub function
on yywrap, if the flex is told yywrap is not in use, then this linkage becomes
unnecessary

4 years agoRemove unneeded dependency on libl
bapt [Mon, 23 Mar 2020 14:33:29 +0000 (14:33 +0000)]
Remove unneeded dependency on libl

4 years agoRevove useless linking to yacc
bapt [Mon, 23 Mar 2020 14:11:49 +0000 (14:11 +0000)]
Revove useless linking to yacc

4 years agoSort UMA macros and create MLINKS for them
0mp [Mon, 23 Mar 2020 14:04:42 +0000 (14:04 +0000)]
Sort UMA macros and create MLINKS for them

This patch is a follow-up to r344518.

Reported by: ngie

Reviewed by: hselasky
Differential Revision: https://reviews.freebsd.org/D24165

4 years agoAdd tests verifying IPv4/IPv6 output for TCP/UDP/raw paths.
melifaro [Mon, 23 Mar 2020 12:21:32 +0000 (12:21 +0000)]
Add tests verifying IPv4/IPv6 output for TCP/UDP/raw paths.

Reviewed by: kp
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D24138

4 years agoCleanup the file and add two ASSERT variants for locks, which will be
tuexen [Mon, 23 Mar 2020 12:17:13 +0000 (12:17 +0000)]
Cleanup the file and add two ASSERT variants for locks, which will be
used shortly.

MFC after: 1 week

4 years agoUse Clang and LLD as the default toolchain for MIPS
arichardson [Mon, 23 Mar 2020 10:36:32 +0000 (10:36 +0000)]
Use Clang and LLD as the default toolchain for MIPS

Now that we have updated the in-tree version of LLVM to 10.0, we have all the
necessary LLVM changes to use Clang+LLD as the default toolchain for MIPS.

Relnotes: yes
Reviewed By: emaste, jhb, brooks, kevans
Differential Revision: https://reviews.freebsd.org/D23204

4 years agopw: do not removed home directories if not owned
bapt [Mon, 23 Mar 2020 08:23:22 +0000 (08:23 +0000)]
pw: do not removed home directories if not owned

When deleting a user, if its home directory does not belong to it, it should
not be removed. This is the promise that the manpage makes, the tool should
ensure that it respects that promise.

Add a regression test about it

PR: 244967
Submitted by: Eric Hanneken <eric@erichanneken.com>
MFC after: 3 days

4 years agoUse a GCC-compatile compiler flag in files.xlp
arichardson [Sun, 22 Mar 2020 22:18:06 +0000 (22:18 +0000)]
Use a GCC-compatile compiler flag in files.xlp

Seems like GCC doesn't like -Qunused-arguments, so use
-Wno-unused-command-line-argument, which is supported by both GCC and Clang.