]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/log
FreeBSD/FreeBSD.git
3 years agoUpdate Subversion to 1.14.0 LTS. See contrib/subversion/CHANGES for a
Dimitry Andric [Mon, 1 Jun 2020 10:27:05 +0000 (10:27 +0000)]
Update Subversion to 1.14.0 LTS. See contrib/subversion/CHANGES for a
summary of changes, or for a more thorough overview:

https://subversion.apache.org/docs/release-notes/1.14

NOTE: there is no need to dump and reload repositories, and the working
copy format is still the same as Subversion 1.8 through 1.13.

Relnotes: yes
MFC after: 2 weeks
X-MFC-With: r361677

3 years agoUpdate apr-util to 1.6.1. See contrib/apr-util/CHANGES for a summary of
Dimitry Andric [Mon, 1 Jun 2020 10:14:45 +0000 (10:14 +0000)]
Update apr-util to 1.6.1. See contrib/apr-util/CHANGES for a summary of
changes.

MFC after: 2 weeks
X-MFC-With: r361677

3 years agoFollow-up r361678 (update apr to 1.7.0) by also regenerating the apr
Dimitry Andric [Mon, 1 Jun 2020 10:08:18 +0000 (10:08 +0000)]
Follow-up r361678 (update apr to 1.7.0) by also regenerating the apr
internal headers through the upstream configure script, with some minor
custom tweaks.

MFC after: 2 weeks
X-MFC-With: r361677

3 years agoDocument long version of -b option
Baptiste Daroussin [Mon, 1 Jun 2020 09:15:15 +0000 (09:15 +0000)]
Document long version of -b option

PR: 234195
Submitted by: Fehmi Noyan Isi <fnoyanisi@yahoo.com>
Reported by: Andras Farkas <deepbluemistake@gmail.com>
MFC after: 3 days

3 years agodiff: restore compatibility with GNU diff regarding -N option
Baptiste Daroussin [Mon, 1 Jun 2020 09:09:36 +0000 (09:09 +0000)]
diff: restore compatibility with GNU diff regarding -N option

When -N is used the missing files are treated as empty.

PR: 233402
Submitted by: Fehmi Noyan Isi <fnoyanisi@yahoo.com>
Reported by: Roman Neuhauser <roman@sigpipe.cz>
MFC after: 3 days
Differential Revision: D25081

3 years agoRestore compatibility with GNU diff regarding --label
Baptiste Daroussin [Mon, 1 Jun 2020 09:01:13 +0000 (09:01 +0000)]
Restore compatibility with GNU diff regarding --label

Various options to "diff(1)" show filenames, and traditionally make use of the
"--label" parameter, if set.

Restore this behaviour in BSD diff.

While here add a regression test

PR: 244533
Submitted by: Jamie Landeg-Jones <jamie@catflap.org>
MFC after: 3 days

3 years ago[ath] Don't re-program the beacon timers if we miss a beacon in software-beacon STA...
Adrian Chadd [Mon, 1 Jun 2020 06:10:25 +0000 (06:10 +0000)]
[ath] Don't re-program the beacon timers if we miss a beacon in software-beacon STA mode.

This is something I added a few years ago to handle resyncing the beacon if
we miss a beacon or need to sync after association/reassociation/powersave.

However, if we're doing STA+AP mode (eg DWDS) then we don't want
to reprogram the beacons here; this may upset normal AP operation.
I missed checking for the sc->sc_swbmiss flag so I was reinitialising
the beacon timers after every beacon miss / TSFOOR option, and
that isn't likely good.

This plus ensuring that STA's are created with "-beacon" to disable
BMISS/TSFOOR processing will hopefully quieten some of the issues
I've seen with missed beacons / TSFOOR (out of range) interrupts
coming in when operating in STA mode.

Tested:

* AR9380/AR9580, STA+AP modes

3 years agoClarify which hints file is the source of an error message.
Peter Wemm [Mon, 1 Jun 2020 03:37:58 +0000 (03:37 +0000)]
Clarify which hints file is the source of an error message.

PR: 246688
Submitted by: Ashish Gupta <lrx337@gmail.com>
MFC after: 1 week

3 years agoapr: build some needed emulated 64-bit atomic bits after r361678
Kyle Evans [Mon, 1 Jun 2020 02:54:10 +0000 (02:54 +0000)]
apr: build some needed emulated 64-bit atomic bits after r361678

This should fix the build on armv{6,7}, mips, and mips64, which all need
emulated 64-bit atomics for apr.

X-MFC-With: r361678

3 years agocertctl: fix test syntax
Kyle Evans [Mon, 1 Jun 2020 01:25:19 +0000 (01:25 +0000)]
certctl: fix test syntax

test doesn't understand &&, but it does understand -a.

MFC after: 1 week

3 years agoOops, I didn't notice the "cd" is needed for each install line.
Rick Macklem [Sun, 31 May 2020 22:46:32 +0000 (22:46 +0000)]
Oops, I didn't notice the "cd" is needed for each install line.

3 years agoChange more Makefiles under usr.bin/svn to make them easier to
Dimitry Andric [Sun, 31 May 2020 22:40:39 +0000 (22:40 +0000)]
Change more Makefiles under usr.bin/svn to make them easier to
incrementally update. No functional change intended.

MFC after: 2 weeks
X-MFC-With: r361677

3 years agortld: Add -b option to allow to specify image name different from arg0.
Konstantin Belousov [Sun, 31 May 2020 22:37:33 +0000 (22:37 +0000)]
rtld: Add -b option to allow to specify image name different from arg0.

Sponsored by: The FreeBSD Foundation
MFC after: 1 week

3 years agoUpdate the Makefile to copy rpcsec_tls.h to /usr/include/rpc.
Rick Macklem [Sun, 31 May 2020 22:15:34 +0000 (22:15 +0000)]
Update the Makefile to copy rpcsec_tls.h to /usr/include/rpc.

3 years agoUpdate apr to 1.7.0. See contrib/apr/CHANGES for a summary of changes.
Dimitry Andric [Sun, 31 May 2020 22:12:56 +0000 (22:12 +0000)]
Update apr to 1.7.0. See contrib/apr/CHANGES for a summary of changes.

MFC after: 2 weeks
X-MFC-With: r361677

3 years agoChange Makefiles under usr.bin/svn to make them easier to incrementally
Dimitry Andric [Sun, 31 May 2020 22:04:51 +0000 (22:04 +0000)]
Change Makefiles under usr.bin/svn to make them easier to incrementally
update. No functional change intended.

MFC after: 2 weeks

3 years agortld: Fix indent in print_usage().
Konstantin Belousov [Sun, 31 May 2020 21:56:07 +0000 (21:56 +0000)]
rtld: Fix indent in print_usage().

Sponsored by: The FreeBSD Foundation
MFC after: 1 week

3 years agortld: Add -v switch to print some useful information about the rtld binary.
Konstantin Belousov [Sun, 31 May 2020 21:53:15 +0000 (21:53 +0000)]
rtld: Add -v switch to print some useful information about the rtld binary.

Sponsored by: The FreeBSD Foundation
MFC after: 1 week

3 years agoCorrect the release date for 2.11BSD
Warner Losh [Sun, 31 May 2020 21:38:33 +0000 (21:38 +0000)]
Correct the release date for 2.11BSD

2.11BSD was announced on March 14, 1991 in comp.bugs.2bsd by
Steven M. Schultz. The document has a 'revised January 1991'
date at the top.

Patch/1 in the official repo is dated March 31, 1991, and an identical copy of
it was posted to comp.bugs.2bsd on May 5, 1991. Patch 2 in 22 parts was likewise
posted May 18, 1991. This makes the Feb 1992 date too late. It's possible it's a
typo for Feb 1991 since that lines up with the announcement being 2 weeks
later. Without an extant copy of the 2.11 tape, however, it's hard to say for
sure. Go with the date we have the most independent, direct evidence for, which
is the announcement date.

3 years agortld: Add -p switch to direct exec mode summary line.
Konstantin Belousov [Sun, 31 May 2020 21:34:21 +0000 (21:34 +0000)]
rtld: Add -p switch to direct exec mode summary line.

Sponsored by: The FreeBSD Foundation
MFC after: 1 week

3 years agoVendor import svn-1.14.0.
Dimitry Andric [Sun, 31 May 2020 20:58:28 +0000 (20:58 +0000)]
Vendor import svn-1.14.0.

3 years agoVendor import apr-1.7.0
Dimitry Andric [Sun, 31 May 2020 20:56:05 +0000 (20:56 +0000)]
Vendor import apr-1.7.0

3 years agoFix panics when using iflib pseudo device support
Matt Macy [Sun, 31 May 2020 18:42:00 +0000 (18:42 +0000)]
Fix panics when using iflib pseudo device support

Reviewed by: gallatin@, hselasky@
MFC after: 1 week
Sponsored by: Netgate, Inc.
Differential Revision: https://reviews.freebsd.org/D23710

3 years agoHandle getcpu() calls in vsyscall emulation on amd64.
Mark Johnston [Sun, 31 May 2020 18:20:20 +0000 (18:20 +0000)]
Handle getcpu() calls in vsyscall emulation on amd64.

linux_getcpu() has been implemented since r356241.

PR: 246339
Submitted by: John Hay <john@sanren.ac.za>
MFC after: 1 week

3 years agoFix installation of libxo encoder modules.
Tijl Coosemans [Sun, 31 May 2020 17:20:17 +0000 (17:20 +0000)]
Fix installation of libxo encoder modules.

Because the install location was hardcoded in the Makefile as
/usr/lib/libxo/encoder, the lib32 version was installed over the native
version.  Replace /usr/lib with ${LIBDIR}.

Also define SHLIB_NAME instead of LIB + FILES.  This prevents building a
static library.

MFC after: 2 weeks

3 years agoreadelf: add more DT_FLAGS_1 flags
Ed Maste [Sun, 31 May 2020 15:31:47 +0000 (15:31 +0000)]
readelf: add more DT_FLAGS_1 flags

Reference:
https://docs.oracle.com/cd/E36784_01/html/E36857/chapter6-42444.html

> DF_1_SINGLETON  Singleton symbols exist.
> DF_1_STUB       Object is a stub.
> DF_1_PIE        Object is a position-independent executable.

Sponsored by: The FreeBSD Foundation

3 years agoRemove remnant of arm's ELF trampoline
Mitchell Horne [Sun, 31 May 2020 14:43:04 +0000 (14:43 +0000)]
Remove remnant of arm's ELF trampoline

The trampoline code used for loading gzipped a.out kernels on arm was
removed in r350436. A portion of this code allowed for DDB to find the
symbol tables when booting without loader(8), and some of this was
untouched in the removal. Remove it now.

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

3 years agoFix directly building in sys/modules
Li-Wen Hsu [Sun, 31 May 2020 05:02:15 +0000 (05:02 +0000)]
Fix directly building in sys/modules

Sponsored by: The FreeBSD Foundation

3 years agoAdd the .h file that describes the operations for the rpctls_syscall.
Rick Macklem [Sun, 31 May 2020 01:12:52 +0000 (01:12 +0000)]
Add the .h file that describes the operations for the rpctls_syscall.

This .h file will be used by the nfs-over-tls daemons to do the system
call that was added by r361599.

3 years agoelf_common.h: define DF_1_PIE
Ed Maste [Sat, 30 May 2020 19:57:26 +0000 (19:57 +0000)]
elf_common.h: define DF_1_PIE

DF_1_PIE indicates that the object is a position-independent executable.

Reference:
https://docs.oracle.com/cd/E36784_01/html/E36857/chapter6-42444.html

MFC after: 3 days
Sponsored by: The FreeBSD Foundation

3 years agobinutils: build as with BINUTILS || BINUTILS_BOOTSTRAP
Ed Maste [Sat, 30 May 2020 19:16:33 +0000 (19:16 +0000)]
binutils: build as with BINUTILS || BINUTILS_BOOTSTRAP

Previously we descended into as only if MK_BINUTILS was true, including
during the bootstrap tool phase.  BINUTILS is now disabled by default on
all archs, and we failed to build it during amd64 bootstrap.

Descend into as if either BINUTILS or BINUTILS_BOOTSTRAP is enabled.

This is not quite correct: we should either have the test also depend on
BOOTSTRAPPING, or set BINUTILS to the value of BINUTILS_BOOTSTRAP during
the bootstrap phase.  However, this simple change fixes the build and
has been tested, and binutils will be removed completely in the near
future.

3 years agocertctl.8: Correct the HISTORY section.
Mark Johnston [Sat, 30 May 2020 19:15:29 +0000 (19:15 +0000)]
certctl.8: Correct the HISTORY section.

certctl was merged to stable/12 after 12.1 was branched.

PR: 246190
Reported by: Michael Osipov <michael.osipov@siemens.com>
MFC after: 3 days

3 years agoctld: Fix a memory leak in uclparse_conf().
Mark Johnston [Sat, 30 May 2020 19:11:41 +0000 (19:11 +0000)]
ctld: Fix a memory leak in uclparse_conf().

PR: 246596
Submitted by: Patryk <patrykkotlowski@gmail.com>
MFC after: 1 week

3 years agoMakefile.inc1: remove BINUTILS_BOOTSTRAP linker support
Ed Maste [Sat, 30 May 2020 16:20:18 +0000 (16:20 +0000)]
Makefile.inc1: remove BINUTILS_BOOTSTRAP linker support

As of r359347 BINUTILS_BOOTSTRAP does not include the bfd linker.

3 years agoAdd deprecation notice to WITH_BINUTILS option description
Ed Maste [Sat, 30 May 2020 16:13:21 +0000 (16:13 +0000)]
Add deprecation notice to WITH_BINUTILS option description

3 years agoAdd deprecation notice to WITH_BINUTILS option description
Ed Maste [Sat, 30 May 2020 16:12:50 +0000 (16:12 +0000)]
Add deprecation notice to WITH_BINUTILS option description

3 years agoDisable BINUTILS by default on amd64
Ed Maste [Sat, 30 May 2020 16:12:00 +0000 (16:12 +0000)]
Disable BINUTILS by default on amd64

The retirement of obsolete binutils 2.17.50 has been in progress for
quite some time.  All tools other than GNU as were removed prior to this
commit, and it was built only on amd64 - installed as /usr/bin/as, and
used as a bootstrap tool.

The amd64 exp-run has completed and failures have now been addressed in
the individual ports, so disable it by default.

PR: 233611, 205250 [exp-run]
Sponsored by: The FreeBSD Foundation

3 years agosh: Allow more scripts without #!
Jilles Tjoelker [Sat, 30 May 2020 16:00:49 +0000 (16:00 +0000)]
sh: Allow more scripts without #!

Austin Group bugs #1226 and #1250 changed the requirements for shell scripts
without #! (POSIX does not specify #!; this is about the shell execution
when execve(2) returns an [ENOEXEC] error).

POSIX says we shall allow execution if the initial part intended to be
parsed by the shell consists of characters and does not contain the NUL
character.  This allows concatenating a shell script (ending with exec or
exit) and a binary payload.

In order to reject common binary files such as PNG images, check that there
is a lowercase letter or expansion before the last newline before the NUL
character, in addition to the check for the newline character suggested by
POSIX.

3 years agogenet: workaround for problem with ICMPv6 echo replies
Mike Karels [Sat, 30 May 2020 02:09:36 +0000 (02:09 +0000)]
genet: workaround for problem with ICMPv6 echo replies

The ICMPv6 echo reply is constructed with the IPv6 header too close to
the beginning of a packet for an Ethernet header to be prepended, so we
end up with an mbuf containing just the Ethernet header.  The GENET
controller doesn't seem to handle this, with or without transmit checksum
offload.  At least until we have chip documentation, do a pullup to
satisfy the chip.  Hopefully this can be fixed properly in the future.

3 years agogenet: fix issues with transmit checksum offload
Mike Karels [Sat, 30 May 2020 02:02:34 +0000 (02:02 +0000)]
genet: fix issues with transmit checksum offload

Fix problem with ICMP echo replies: check only deferred data checksum
flags, and not the received checksum status bits, when checking whether
a packet has a deferred checksum; otherwise echo replies are corrupted
because the received checksum status bits are still present.

Fix some unhandled cases in packet shuffling for checksum offload.

3 years agoRB_REMOVE invokes RB_REMOVE_COLOR either when child is red or child is
Doug Moore [Sat, 30 May 2020 01:48:12 +0000 (01:48 +0000)]
RB_REMOVE invokes RB_REMOVE_COLOR either when child is red or child is
null. In the first case, RB_REMOVE_COLOR just changes the child to
black and returns. With this change, RB_REMOVE handles that case, and
drops the child argument to RB_REMOVE_COLOR, since that value is
always null.

RB_REMOVE_COLOR is changed to remove a couple of unneeded tests, and
to eliminate some deep indentation.

RB_ISRED is defined to combine a null check with a test for redness,
to replace that combination in several places.

Reviewed by: markj
Tested by: pho
Differential Revision: https://reviews.freebsd.org/D25032

3 years agoOnly build ipsec modules if the kernel includes IPSEC_SUPPORT.
John Baldwin [Sat, 30 May 2020 00:47:03 +0000 (00:47 +0000)]
Only build ipsec modules if the kernel includes IPSEC_SUPPORT.

Honoring the kernel-supplied opt_ipsec.h in r361632 causes builds of
ipsec modules to fail if the kernel doesn't include IPSEC_SUPPORT.
However, the module can never be loaded into such a kernel, so only
build the modules if the kernel includes IPSEC_SUPPORT.

Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D25059

3 years ago[run] Don't add 11ng channels (2GHz) for RF2020
Adrian Chadd [Sat, 30 May 2020 00:07:42 +0000 (00:07 +0000)]
[run] Don't add 11ng channels (2GHz) for RF2020

Don't also add the 11ng channels if we're not in 11n mode or net80211 will
get super weird.

3 years ago[run] Set ampdu rxmax same as linux; RF2020 isn't an 11n NIC
Adrian Chadd [Sat, 30 May 2020 00:06:26 +0000 (00:06 +0000)]
[run] Set ampdu rxmax same as linux; RF2020 isn't an 11n NIC

This is from the linux driver:

* set the ampdu rx max to 32k for 1 stream devics like mine, and
  64k for larger ones
* Don't enable 11n bits for RF2020

3 years agogeom_part: Dispatch to partitions to create providers and aliases
Conrad Meyer [Fri, 29 May 2020 19:44:18 +0000 (19:44 +0000)]
geom_part: Dispatch to partitions to create providers and aliases

This allows partitions to create additional aliases of their own.  The
default method implementations preserve the existing behavior.

No functional change.

Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D24938

3 years agoAdd opt_ipsec.h to fix standalone builds after r361633.
John Baldwin [Fri, 29 May 2020 19:29:10 +0000 (19:29 +0000)]
Add opt_ipsec.h to fix standalone builds after r361633.

3 years agoConsistently include opt_ipsec.h for consumers of <netipsec/ipsec.h>.
John Baldwin [Fri, 29 May 2020 19:22:40 +0000 (19:22 +0000)]
Consistently include opt_ipsec.h for consumers of <netipsec/ipsec.h>.

This fixes ipsec.ko to include all of IPSEC_DEBUG.

Reviewed by: imp
MFC after: 2 weeks
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D25046

3 years agoHonor opt_ipsec.h from kernel builds.
John Baldwin [Fri, 29 May 2020 19:21:35 +0000 (19:21 +0000)]
Honor opt_ipsec.h from kernel builds.

To make this simpler, set the default contents of opt_ipsec.h
for standalone modules in sys/conf/config.mk.

Reviewed by: imp
MFC after: 2 weeks
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D25046

3 years agoRemove session locking from cfiscsi_pdu_update_cmdsn().
Alexander Motin [Fri, 29 May 2020 17:52:20 +0000 (17:52 +0000)]
Remove session locking from cfiscsi_pdu_update_cmdsn().

cs_cmdsn can be incremented with single atomic.  expcmdsn/maxcmdsn set in
cfiscsi_pdu_prepare() based on cs_cmdsn are not required to be updated
synchronously, only monotonically, that is achieved with lock there.

MFC after: 2 weeks
Sponsored by: iXsystems, Inc.

3 years agoregen src.conf.5 after BINUTILS changes
Ed Maste [Fri, 29 May 2020 17:39:25 +0000 (17:39 +0000)]
regen src.conf.5 after BINUTILS changes

3 years agoDisable BINUTILS by default on i386
Ed Maste [Fri, 29 May 2020 17:36:54 +0000 (17:36 +0000)]
Disable BINUTILS by default on i386

The retirement of obsolete binutils 2.17.50 has been in progress for
quite some time.  All tools other than GNU as were removed prior to this
commit, and it was built only on two archs:

i386, installed as /usr/bin/as
amd64, installed as /usr/bin/as and as a bootstrap tool

The i386 exp-run has completed and failures have been addressed in the
individual ports, so disable it there.

PR: 233611, 205250 [exp-run]
Sponsored by: The FreeBSD Foundation

3 years ago[run] Add initial 802.11n support.
Adrian Chadd [Fri, 29 May 2020 15:56:44 +0000 (15:56 +0000)]
[run] Add initial 802.11n support.

* Enable self-generated 11n frames
* add MCS rates for 1-stream and 2-stream rates; will do 3-stream
  once the rest of this tests out OK with other people.
* Hard-code 1 stream for now
* Add A-MPDU RX mbuf tagging
* RTS/CTS if doing RTSCTS in HT protmode as well as legacy; they're
  separate configuration flags
* Update the amrr rate index stuff - walk the rates array like others
  to find the right one - this now works for MCS and CCK/OFDM rates
* Add support for atheros fast frames/AMSDU support as we can generate
  those in net80211.

TODO:

* HT40 isn't enabled yet
* No A-MPDU support just yet; that requires some more firmware research
  and maybe porting some ath(4) A-MPDU support/tracking into net80211
* Short preamble flags aren't set yet for MCS; need to check the linux
  driver and see what's going on there
* Add 3x3 rates and set tx/rx stream configuration appropriately
* More 5GHz testing; I have a 3x3 dual band USB NIC coming soon that'll
  let me test this.
* Figure out why the RX path isn't performing as fast as it could -
  there's only a single buffer loaded at a time for the receive path
  in the USB bulk handler and this may not be super useful.

Tested:

* RT5390 usb, 1x1, RF5370 (2GHz radio), STA mode - A-MSDU TX, A-MPDU RX

Submitted by: Ashish Gupta <ashishgu@andrew.cmu.edu>
Differential Revision: https://reviews.freebsd.org/D22840

3 years agoReport STATUS_QUEUED/SENT in `ctladm dumpooa` output.
Alexander Motin [Fri, 29 May 2020 13:07:52 +0000 (13:07 +0000)]
Report STATUS_QUEUED/SENT in `ctladm dumpooa` output.

MFC after: 2 weeks
Sponsored by: iXsystems, Inc.

3 years agoFix O_IP_FLOW_LOOKUP opcode handling.
Andrey V. Elsukov [Fri, 29 May 2020 10:37:42 +0000 (10:37 +0000)]
Fix O_IP_FLOW_LOOKUP opcode handling.

Do not check table value matching when table lookup has failed.

Reported by: Sergey Lobanov
MFC after: 1 week

3 years agoRevert r361497, these cases are fixed by r361617.
Li-Wen Hsu [Fri, 29 May 2020 10:09:47 +0000 (10:09 +0000)]
Revert r361497, these cases are fixed by r361617.

PR: 246737
Sponsored by: The FreeBSD Foundation

3 years agouma: hide item_domain under ifdef NUMA
Mateusz Guzik [Fri, 29 May 2020 08:30:35 +0000 (08:30 +0000)]
uma: hide item_domain under ifdef NUMA

Fixes build warnings on mips.

3 years agodo not enable pci bridge decoding on resume until I/O windows are restored
Andriy Gapon [Fri, 29 May 2020 07:50:55 +0000 (07:50 +0000)]
do not enable pci bridge decoding on resume until I/O windows are restored

PCI bus driver restores most but not all of a child PCI-PCI bridge
configuration.  The bridge's I/O windows are restored by pcib driver and
that happens later in time.  This can be problematic because the Command
register is restored before the windows are restored.  If the firmware
programs the windows incorrectly or even does not program them at all,
then the bridge can start claiming I/O cycles that are not intended for
it.  This will continue until the correct windows are restored.

I have observed this problem with a buggy BIOS where after resuming from
S3 an I/O port window of a PCI-PCI bridge was configured with zero base
and limit causing the bridge to claim 0x0 - 0xFFF port range.  That
interfered with ACPI port access including ACPI PM Timer at port 0x808,
thus wreaking havoc in the time keeping.

The solution is to restore the Command register of PCI-PCI bridges after
the windows are restored in pcib driver.  While here, I decided that for
other PCI device types (normal and cardbus) it's better to restore the
Command register after their BARs are restored.

To do: per jhb's suggestion, move the window handling to pci driver.

Reviewed by: imp, jhb, kib
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D25028

3 years agocorefile_open_last: don't keep a locked vnode while locking other ones
Andriy Gapon [Fri, 29 May 2020 07:44:02 +0000 (07:44 +0000)]
corefile_open_last: don't keep a locked vnode while locking other ones

Consider this scenario:
- kern.corefile=/var/coredumps/%N.%U.%I.core
- multiple processes with the same name crash at the same time

It's possible that one process selects existing file N as oldvp while it
keeps looking for an unused file number.  Another process scans through
files and stumbles upon N.  That process would be blocked on the vnode
lock while holding the directory vnode exclusively locked.  The first
process would, thus, get blocked on the directory's vnode lock.

More generally, holding a file's vnode lock (oldvp) while trying to lock
its directory (for the next lookup) is a violation of the vnode locking
order.

I have observed this deadlock in the wild.

So, the change to keep oldvp "opened" but unlocked and to lock it again
only if it's to be returned as the result.
As kib noted, an alternative would be to keep the directory locked and
to use VOP_LOOKUP directly for scanning through existing core files.

Reviewed by: kib
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D25027

3 years agoIncrement the correct pointer when a crypto buffer spans an mbuf or iovec.
John Baldwin [Fri, 29 May 2020 05:41:21 +0000 (05:41 +0000)]
Increment the correct pointer when a crypto buffer spans an mbuf or iovec.

When a crypto_cursor_copyback() request spanned multiple mbufs or
iovecs, the pointer into the mbuf/iovec was incremented instead of the
pointer into the source buffer being copied from.

PR: 246737
Reported by: Jenkins, ZFS test suite
Sponsored by: Netflix

3 years agoMove EXPDATASN/R2TSN from PDU to CTL_PRIV_FRONTEND.
Alexander Motin [Fri, 29 May 2020 02:32:48 +0000 (02:32 +0000)]
Move EXPDATASN/R2TSN from PDU to CTL_PRIV_FRONTEND.

We any way have per-I/O space in CTL_PRIV_FRONTEND, while for PDU private
fields I have better use ideas.  Plus to me such use of PDU fields looked
a layering violation.

MFC after: 2 weeks
Sponsored by: iXsystems, Inc.

3 years agopowerpc: Stop advertising that POWER8 and POWER9 support HTM
Justin Hibbits [Fri, 29 May 2020 00:46:31 +0000 (00:46 +0000)]
powerpc: Stop advertising that POWER8 and POWER9 support HTM

HTM is on the chopping block, doesn't work on FreeBSD, and has only token
support in PowerISA 3.1 and POWER10.  Don't advertise something we'll never
support.

3 years agoOops two, missed syscall.mk as well.
Rick Macklem [Fri, 29 May 2020 00:10:19 +0000 (00:10 +0000)]
Oops two, missed syscall.mk as well.

3 years agoPermit SO_NO_DDP and SO_NO_OFFLOAD to be read via getsockopt(2).
John Baldwin [Fri, 29 May 2020 00:09:12 +0000 (00:09 +0000)]
Permit SO_NO_DDP and SO_NO_OFFLOAD to be read via getsockopt(2).

MFC after: 2 weeks
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D24627

3 years ago[mips] fix up the assembly generation of unaligned exception loads
Adrian Chadd [Fri, 29 May 2020 00:05:43 +0000 (00:05 +0000)]
[mips] fix up the assembly generation of unaligned exception loads

I noticed that unaligned accesses were returning garbage values.

Give test data like this:

char testdata[] = { 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf1, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 0x5a };

Iterating through uint32_t space 1 byte at a time should
look like this:

freebsd-carambola2:/mnt# ./test
Hello, world!
offset 0 pointer 0x410b00 value 0x12345678 0x12345678
offset 1 pointer 0x410b01 value 0x3456789a 0x3456789a
offset 2 pointer 0x410b02 value 0x56789abc 0x56789abc
offset 3 pointer 0x410b03 value 0x789abcde 0x789abcde
offset 4 pointer 0x410b04 value 0x9abcdef1 0x9abcdef1
offset 5 pointer 0x410b05 value 0xbcdef123 0xbcdef123
offset 6 pointer 0x410b06 value 0xdef12345 0xdef12345
offset 7 pointer 0x410b07 value 0xf1234567 0xf1234567

.. but to begin with it looked like this:

offset 0 value 0x12345678
offset 1 value 0x00410a9a
offset 2 value 0x00419abc
offset 3 value 0x009abcde
offset 4 value 0x9abcdef1
offset 5 value 0x00410a23
offset 6 value 0x00412345
offset 7 value 0x00234567

The amusing reason? The compiler is generating the lwr/lwl incorrectly.
Here's an example after I tried to replace the two macros with a single
invocation and offset, rather than having the compiler compile in addiu
to s3 - but the bug is the same:

1044: 8a620003 lwl v0,0(s3)
1048: 9a730000 lwr s3,3(s3)

.. which is just totally trashy and wrong.

This explicitly tells the compiler to treat the output as being read
and written to, which is what lwl/lwr does with the destination
register.

I think a subsequent commit should unify these macros to skip an addiu,
but that can be a later commit.

Reviewed by: jhb
Differential Revision: https://reviews.freebsd.org/D25040

3 years agoOops, missed syscall.h and sysproto.h for r361602.
Rick Macklem [Thu, 28 May 2020 23:57:50 +0000 (23:57 +0000)]
Oops, missed syscall.h and sysproto.h for r361602.

Pointy hat goes on me.

3 years agoRemove PDU_TOTAL_TRANSFER_LEN() macro.
Alexander Motin [Thu, 28 May 2020 23:55:46 +0000 (23:55 +0000)]
Remove PDU_TOTAL_TRANSFER_LEN() macro.

I don't see a point to copy io->scsiio.kern_total_len into the request
PDU private field.  The io is going to stay with us till the end, and
kern_total_len field is not changed after being first initialized.

MFC after: 2 weeks
Sponsored by: iXsystems, Inc.

3 years agorename in-tree libevent v1 to libevent1
Ed Maste [Thu, 28 May 2020 22:05:50 +0000 (22:05 +0000)]
rename in-tree libevent v1 to libevent1

r316063 installed pf's embedded libevent as a private lib, with headers
in /usr/include/private/event.  Unfortunately we also have a copy of
libevent v2 included in ntp, which needed to be updated for compatibility
with OpenSSL 1.1.

As unadorned 'libevent' generally refers to libevent v2, be explicit that
this one is libevent v1.

Reviewed by: vangyzen (earlier)
Differential Revision: https://reviews.freebsd.org/D17275

3 years agoAdd an UPDATING entry for r360964
Eric van Gyzen [Thu, 28 May 2020 22:05:33 +0000 (22:05 +0000)]
Add an UPDATING entry for r360964

Reported by: rpokala
Sponsored by: Dell EMC Isilon

3 years agoRevert part of r360964
Eric van Gyzen [Thu, 28 May 2020 21:56:31 +0000 (21:56 +0000)]
Revert part of r360964

ports/devel/linux_libusb builds FreeBSD libusb with GCC 4.8.5
from devel/linux-c7-devtools.  Restore the tests for older GCC
in bsd.sys.mk to accomodate such ports.

Reported by: tijl
Sponsored by: Dell EMC Isilon

3 years agoMake struct ctl_be_lun first element of struct ctl_be_*_lun.
Alexander Motin [Thu, 28 May 2020 21:30:29 +0000 (21:30 +0000)]
Make struct ctl_be_lun first element of struct ctl_be_*_lun.

It allows to remove some extra pointer dereferences and slightly tightens
up the code by unification.

MFC after: 2 weeks
Sponsored by: iXsystems, Inc.

3 years agoAdd an entry to Symbol.map for the rpctls_syscall added by r361599.
Rick Macklem [Thu, 28 May 2020 21:26:26 +0000 (21:26 +0000)]
Add an entry to Symbol.map for the rpctls_syscall added by r361599.

Reviewed by: brooks
Differential Revision: https://reviews.freebsd.org/D24949

3 years agoUpdate the files created from the new syscalls.master from r361599.
Rick Macklem [Thu, 28 May 2020 21:23:02 +0000 (21:23 +0000)]
Update the files created from the new syscalls.master from r361599.

Reviewed by: brooks
Differential Revision: https://reviews.freebsd.org/D24949

3 years agovt(4): Add support for `vidcontrol -C'
Jason A. Harmening [Thu, 28 May 2020 21:22:30 +0000 (21:22 +0000)]
vt(4): Add support for `vidcontrol -C'

Extract scrollback buffer initialization into a common routine, used both
during vt(4) init and in handling the CONS_CLRHIST ioctl.

PR: 224436
Reviewed by: emaste
Differential Revision: https://reviews.freebsd.org/D24815

3 years agoMFV: r361597
Jung-uk Kim [Thu, 28 May 2020 21:19:44 +0000 (21:19 +0000)]
MFV: r361597

Import ACPICA 20200528.

3 years agoAdd a syscall for the nfs-over-tls daemons to use.
Rick Macklem [Thu, 28 May 2020 21:06:10 +0000 (21:06 +0000)]
Add a syscall for the nfs-over-tls daemons to use.

The nfs-over-tls daemons need a system call to perform operations such as
associate a file descriptor with a krpc socket.
The daemons will not be in head for some time, but it will make it
easier for testers of nfs-over-tls to do testing if the system call
is in head (basically the stub for libc which will be commited soon).

Reviewed by: brooks
Differential Revision: https://reviews.freebsd.org/D24949

3 years agoImport ACPICA 20200528.
Jung-uk Kim [Thu, 28 May 2020 21:01:08 +0000 (21:01 +0000)]
Import ACPICA 20200528.

3 years agofortune: remove warning about potentially offensive fortunes
Ed Maste [Thu, 28 May 2020 20:39:27 +0000 (20:39 +0000)]
fortune: remove warning about potentially offensive fortunes

They were removed long ago.

PR: 246736
Submitted by: Ruby Lazuli Lord
MFC after: 3 days

3 years agoFix boot on systems where NUMA domain 0 is unpopulated.
Mark Johnston [Thu, 28 May 2020 19:41:00 +0000 (19:41 +0000)]
Fix boot on systems where NUMA domain 0 is unpopulated.

- Add vm_phys_early_add_seg(), complementing vm_phys_early_alloc(), to
  ensure that segments registered during hammer_time() are placed in the
  right domain.  Otherwise, since the SRAT is not parsed at that point,
  we just add them to domain 0, which may be incorrect and results in a
  domain with only several MB worth of memory.
- Fix uma_startup1() to try allocating memory for zones from any domain.
  If domain 0 is unpopulated, the allocation will simply fail, resulting
  in a page fault slightly later during boot.
- Change _vm_phys_domain() to return -1 for addresses not covered by the
  affinity table, and change vm_phys_early_alloc() to handle wildcard
  domains.  This is necessary on amd64, where the page array is dense
  and pmap_page_array_startup() may allocate page table pages for
  non-existent page frames.

Reported and tested by: Rafael Kitover <rkitover@gmail.com>
Reviewed by: cem (earlier version), kib
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D25001

3 years agoInclude the shells/bash port on Vagrant images, which prevents
Glen Barber [Thu, 28 May 2020 18:48:30 +0000 (18:48 +0000)]
Include the shells/bash port on Vagrant images, which prevents
a shell issue during startup.

PR: 245051
MFC after: 1 minute (if approved by re@)
X-MFC-for: 11.4-RC2
Sponsored by: Rubicon Communications, LLC (netgate.com)

3 years agoRemove ctl_free_beio() LUN and ctl_io dependencies.
Alexander Motin [Thu, 28 May 2020 18:12:05 +0000 (18:12 +0000)]
Remove ctl_free_beio() LUN and ctl_io dependencies.

This slightly simplifies the code, plus may be a ground for asynchronous
buffer free.

MFC after: 2 weeks
Sponsored by: iXsystems, Inc.

3 years agoAdd macros simplifying the fake preload setup
Mitchell Horne [Thu, 28 May 2020 14:56:11 +0000 (14:56 +0000)]
Add macros simplifying the fake preload setup

This is in preparation for booting via loader(8). Lift these macros from arm64
so we don't need to worry about the size when inserting new elements. This
could have been done in r359673, but I didn't think I would be returning to
this function so soon.

Reviewed by: markj
Differential Revision: https://reviews.freebsd.org/D24910

3 years agoFix connection event message string (n->\n)
Takanori Watanabe [Thu, 28 May 2020 13:48:33 +0000 (13:48 +0000)]
Fix connection event message string (n->\n)

PR: 246664
Submitted by: Marc Veldman (marc@bumblngdork.com)
Reported by: Jose Luis Duran (jlduran@gmail.com)

3 years agoFix NOINET6 build broken by r361575.
Alexander V. Chernikov [Thu, 28 May 2020 09:52:28 +0000 (09:52 +0000)]
Fix NOINET6 build broken by r361575.

Reported by: ci, hps

3 years agoChange return types of hash update functions in SHA-NI
Marcin Wojtas [Thu, 28 May 2020 09:13:20 +0000 (09:13 +0000)]
Change return types of hash update functions in SHA-NI

r359374 introduced crypto_apply function which takes as argument a function pointer
that is expected to return an int, however aesni hash update functions
return void.
Because of that the function pointer passed was simply cast with
its return value changed.
This resulted in undefined behavior, in particular when mbuf is used, (ipsec)
m_apply checks return value of function pointer passed to it
and in our case bogusly fails after calculating hash of the first mbuf
in chain.
Fix it by changing signatures of sha update routines in aesni and
dropping the casts.

Submitted by: Kornel Duleba
Reviewed by: jhb, cem
Obtained from: Semihalf
Sponsored by: Stormshield
Differential Revision: https://reviews.freebsd.org/D25030

3 years agoFix check for wMaxPacketSize in USB bluetooth driver,
Hans Petter Selasky [Thu, 28 May 2020 08:41:18 +0000 (08:41 +0000)]
Fix check for wMaxPacketSize in USB bluetooth driver,
in case device is not FULL speed.

MFC after: 3 days
Sponsored by: Mellanox Technologies

3 years agoImplement helper function, usbd_get_max_frame_length(), which allows kernel
Hans Petter Selasky [Thu, 28 May 2020 08:38:25 +0000 (08:38 +0000)]
Implement helper function, usbd_get_max_frame_length(), which allows kernel
device drivers to correctly predict the default USB transfer frame length.

MFC after: 3 days
Sponsored by: Mellanox Technologies

3 years agoxen/control: short circuit xctrl_on_watch_event on spurious event
Roger Pau Monné [Thu, 28 May 2020 08:20:16 +0000 (08:20 +0000)]
xen/control: short circuit xctrl_on_watch_event on spurious event

If there's no data to read from xenstore short-circuit
xctrl_on_watch_event to return early, there's no reason to continue
since the lack of data would prevent matching against any known event
type.

Sponsored by: Citrix Systems R&D
MFC with: r352925
MFC after: 1 week

3 years agoxen/blkfront: use the correct type for disk sectors
Roger Pau Monné [Thu, 28 May 2020 08:19:13 +0000 (08:19 +0000)]
xen/blkfront: use the correct type for disk sectors

The correct type to use to represent disk sectors is blkif_sector_t
(which is an uint64_t underneath). This avoid truncation of the disk
size calculation when resizing on i386, as otherwise the calculation
of d_mediasize in xbd_connect is truncated to the size of unsigned
long, which is 32bits on i386.

Note this issue didn't affect amd64, because the size of unsigned long
is 64bits there.

Sponsored by: Citrix Systems R&D
MFC after: 1 week

3 years agoxenpv: do not use low 1MB for Xen mappings on i386
Roger Pau Monné [Thu, 28 May 2020 08:18:34 +0000 (08:18 +0000)]
xenpv: do not use low 1MB for Xen mappings on i386

On amd64 we already avoid using memory below 4GB in order to prevent
clashes with MMIO regions, but i386 was allowed to use any hole in
the physical memory map in order to map Xen pages.

Limit this to memory above the 1MB boundary on i386 in order to avoid
clashes with the MMIO holes in that area.

Sponsored by: Citrix Systems R&D
MFC after: 1 week

3 years agoDon't allow USB device drivers to parent own interface.
Hans Petter Selasky [Thu, 28 May 2020 08:05:46 +0000 (08:05 +0000)]
Don't allow USB device drivers to parent own interface.
It will prevent proper USB device detach.

MFC after: 3 days
Sponsored by: Mellanox Technologies

3 years agoUse fib[46]_lookup() in mtu calculations.
Alexander V. Chernikov [Thu, 28 May 2020 08:00:08 +0000 (08:00 +0000)]
Use fib[46]_lookup() in mtu calculations.

fib[46]_lookup_nh_ represents pre-epoch generation of fib api,
providing less guarantees over pointer validness and requiring
on-stack data copying.

Conversion is straight-forwarded, as the only 2 differences are
requirement of running in network epoch and the need to handle
RTF_GATEWAY case in the caller code.

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

3 years agoMake NFS address selection use fib4_lookup().
Alexander V. Chernikov [Thu, 28 May 2020 07:35:07 +0000 (07:35 +0000)]
Make NFS address selection use fib4_lookup().

fib4_lookup_nh_ represents pre-epoch generation of fib api,
providing less guarantees over pointer validness and requiring
on-stack data copying.
Switch call to use new fib4_lookup(), allowing to eventually
deprecate old api.

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

3 years agoSwitch ip_output/icmp_reflect rt lookup calls with fib4_lookup.
Alexander V. Chernikov [Thu, 28 May 2020 07:31:53 +0000 (07:31 +0000)]
Switch ip_output/icmp_reflect rt lookup calls with fib4_lookup.

fib4_lookup_nh_ represents pre-epoch generation of fib api,
providing less guarantees over pointer validness and requiring
on-stack data copying.

Conversion is straight-forwarded, as the only 2 differences are
requirement of running in network epoch and the need to handle
RTF_GATEWAY case in the caller code.

Reviewed by: ae
Differential Revision: https://reviews.freebsd.org/D24976

3 years agoReplace ip6_ouput fib6_lookup_nh_<ext|basic> calls with fib6_lookup().
Alexander V. Chernikov [Thu, 28 May 2020 07:29:44 +0000 (07:29 +0000)]
Replace ip6_ouput fib6_lookup_nh_<ext|basic> calls with fib6_lookup().

fib6_lookup_nh_ represents pre-epoch generation of fib api,
providing less guarantees over pointer validness and requiring
on-stack data copying.

Conversion is straight-forwarded, as the only 2 differences are
requirement of running in network epoch and the need to handle
RTF_GATEWAY case in the caller code.

Reviewed by: ae
Differential Revision: https://reviews.freebsd.org/D24973

3 years agoSwitch gif(4) path verification to fib[46]_check_urfp().
Alexander V. Chernikov [Thu, 28 May 2020 07:26:18 +0000 (07:26 +0000)]
Switch gif(4) path verification to fib[46]_check_urfp().

fibX_lookup_nh_ represents pre-epoch generation of fib api,
providing less guarantees over pointer validness and requiring
on-stack data copying.
Use specialized fib[46]_check_urpf() from newer KPI instead,
to allow removal of older KPI.

Reviewed by: ae
Differential Revision: https://reviews.freebsd.org/D24978

3 years agoUnlock rtentry before calling for epoch(9) destruction as the destruction
Alexander V. Chernikov [Thu, 28 May 2020 07:23:27 +0000 (07:23 +0000)]
Unlock rtentry before calling for epoch(9) destruction as the destruction
  may happen immediately, leading to panic.

Reported by: bdragon

3 years agopowerpc/pmap: Remove some debug from r361544
Justin Hibbits [Thu, 28 May 2020 03:08:50 +0000 (03:08 +0000)]
powerpc/pmap: Remove some debug from r361544

3 years ago[PowerPC] Fix radix crash when passing -1 from userspace
Brandon Bergren [Thu, 28 May 2020 00:49:02 +0000 (00:49 +0000)]
[PowerPC] Fix radix crash when passing -1 from userspace

Found by running libc tests with radix enabled.

Detect unsigned integer wrapping with a postcondition.

Note: Radix MMU is not enabled by default yet.

Sponsored by: Tag1 Consulting, Inc.

3 years agoFix sosend() for the case where mbufs are passed in while doing ktls.
Rick Macklem [Wed, 27 May 2020 23:20:35 +0000 (23:20 +0000)]
Fix sosend() for the case where mbufs are passed in while doing ktls.

For kernel tls, sosend() needs to call ktls_frame() on the mbuf list
to be sent.  Without this patch, this was only done when sosend()'s
arguments used a uio_iov and not when an mbuf list is passed in.
At this time, sosend() is never called with an mbuf list argument when
kernel tls is in use, but will be once nfs-over-tls has been incorporated
into head.

Reviewed by: gallatin, glebius
Differential Revision: https://reviews.freebsd.org/D24674

3 years ago[ath] Update ath_rate_sample to use the same base type as ticks.
Adrian Chadd [Wed, 27 May 2020 22:48:34 +0000 (22:48 +0000)]
[ath] Update ath_rate_sample to use the same base type as ticks.

Until net80211 grows a specific ticks type that matches the system,
manually use the same type as the kernel/net80211 'ticks' type
(signed int.)

Tested:

* AR9380, STA mode