]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/log
FreeBSD/FreeBSD.git
3 years agoarm64: fix incorrect HWCAP definitions
mhorne [Tue, 8 Sep 2020 15:08:20 +0000 (15:08 +0000)]
arm64: fix incorrect HWCAP definitions

FreeBSD exports CPU features as bits in the AT_HWCAP and AT_HWCAP2
vectors via elf_aux_info(3). This interface is similar to getauxval(3)
on Linux, and for simplicity to consumers we try to maintain an
identical set of feature flags on arm64.

The first batch of AT_HWCAP flags were added in r350166, corresponding
to definitions that already existed in Linux. Unfortunately, one flag
was missed, and a portion of the values are shifted one bit to the right
as a result.

Add the missing definition for HWCAP_ASIMDHP, and adjust the affected
values to match their Linux counterparts.

Although this is an ABI-breaking change, there is no plan to provide
compat code for old binaries. An audit of our ports tree and other
software via Debian code search indicates that there are not yet any
consumers of this interface for FreeBSD/arm64.

Bump __FreeBSD_version to be on the safe side, in case compat code needs
to be added in the future.

Reviewed by: emaste, manu
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D26329

3 years agosort(1): Remove duplicate option check
gbe [Tue, 8 Sep 2020 15:01:49 +0000 (15:01 +0000)]
sort(1): Remove duplicate option check

Reviewed by: lwhsu, emaste
Approved by: emaste
Obtained from: DragonFlyBSD
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D23892

3 years agonet: mitigate vnet / epair cleanup races
kp [Tue, 8 Sep 2020 14:54:10 +0000 (14:54 +0000)]
net: mitigate vnet / epair cleanup races

There's a race where dying vnets move their interfaces back to their original
vnet, and if_epair cleanup (where deleting one interface also deletes the other
end of the epair). This is commonly triggered by the pf tests, but also by
cleanup of vnet jails.

As we've not yet been able to fix the root cause of the issue work around the
panic by not dereferencing a NULL softc in epair_qflush() and by not
re-attaching DYING interfaces.

This isn't a full fix, but makes a very common panic far less likely.

PR: 244703, 238870
Reviewed by: lutz_donnerhacke.de
MFC after: 4 days
Differential Revision: https://reviews.freebsd.org/D26324

3 years agoRISC-V: enable MK_FORMAT_EXTENSIONS
mhorne [Tue, 8 Sep 2020 13:24:44 +0000 (13:24 +0000)]
RISC-V: enable MK_FORMAT_EXTENSIONS

This option was marked as broken because our riscv64-xtoolchain-gcc
package lacked support. Since we are moving away from xtoolchain gcc in
favor of freebsd-gcc9, there should be no issue in enabling this option
by default.

Notably, this enables -Wformat errors.

Reviewed by: kp, jhb
Differential Revision: https://reviews.freebsd.org/D26320

3 years agoRISC-V: fix some mismatched format specifiers
mhorne [Tue, 8 Sep 2020 13:21:13 +0000 (13:21 +0000)]
RISC-V: fix some mismatched format specifiers

RISC-V is currently built with -Wno-format, which is how these went
undetected. Address them now before re-enabling those warnings.

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

3 years agoMove gpio and hwpmc to the correct place in files.arm64
andrew [Tue, 8 Sep 2020 11:46:33 +0000 (11:46 +0000)]
Move gpio and hwpmc to the correct place in files.arm64

Sponsored by: Innovate UK

3 years agoAdd a GPIO driver for the Arm pl061 controller
andrew [Tue, 8 Sep 2020 11:35:35 +0000 (11:35 +0000)]
Add a GPIO driver for the Arm pl061 controller

A PL061 is a simple 8 pin GPIO controller. This GPIO device is used to
signal an internal request for shutdown on some virtual machines including
Arm-based Amazon EC2 instances.

Submitted by: Ali Saidi <alisaidi_amazon.com> (previouss version)
Reviewed by: Ali Saidi, manu
Differential Revision: https://reviews.freebsd.org/D24065

3 years agoAdd a few features to rcorder:
ae [Tue, 8 Sep 2020 10:36:11 +0000 (10:36 +0000)]
Add a few features to rcorder:

o Enhance dependency loop logging: print full chain instead of the
  last link competing the loop;
o Add -g option to generate dependency graph suitable for GraphViz
  visualization, loops and other graph generation issues are highlighted
  automatically;
o Add -p option that enables grouping items that can be processed in
  parallel.

Submitted by: Boris Lytochkin <lytboris at gmail>
Reviewed by: melifaro
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D25389

3 years agommc_da: universally use uint8_t for the partition index
avg [Tue, 8 Sep 2020 06:19:23 +0000 (06:19 +0000)]
mmc_da: universally use uint8_t for the partition index

Also, assert in sdda_init_switch_part() that the index is within the
defined range.

MFC after: 1 week

3 years agommc_da: fix a typo and a too long line
avg [Tue, 8 Sep 2020 06:18:34 +0000 (06:18 +0000)]
mmc_da: fix a typo and a too long line

MFC after: 1 week

3 years agommc_da: make sure that part_index is not used uninitialized in sddastart
avg [Tue, 8 Sep 2020 05:46:10 +0000 (05:46 +0000)]
mmc_da: make sure that part_index is not used uninitialized in sddastart

This is a fix to r334065.

Without this change I once got stuck I/O with endless partition switching:

(sdda0:aw_mmc_sim2:0:0:0): sddastart
(sdda0:aw_mmc_sim2:0:0:0): Partition  0 -> -525703168
(sdda0:aw_mmc_sim2:0:0:0): xpt_action: func 0x91d XPT_MMC_IO
(sdda0:aw_mmc_sim2:0:0:0): xpt_done: func= 0x91d XPT_MMC_IO status 0x1
(sdda0:aw_mmc_sim2:0:0:0): sddadone
(sdda0:aw_mmc_sim2:0:0:0): Card status: 00000000
(sdda0:aw_mmc_sim2:0:0:0): Current state: 4
(sdda0:aw_mmc_sim2:0:0:0): Compteting partition switch to 0

Note that -525703168 (an int) is 0xe0aa6800 in binary representation.
The partition indexes are actually stored as uint8_t, so that value
was converted / truncated to zero.

MFC after: 1 week

3 years agoAdd support to BELKIN B2B128 USB3 Ethernet Adapter to axge(4)
lwhsu [Tue, 8 Sep 2020 04:44:37 +0000 (04:44 +0000)]
Add support to BELKIN B2B128 USB3 Ethernet Adapter to axge(4)

Github PR: https://github.com/freebsd/freebsd/pull/439
Submitted by: https://github.com/jdpc86
MFC after: 2 weeks

3 years ago[PowerPC] Implement VDSO timebase access on powerpc*
bdragon [Tue, 8 Sep 2020 03:00:31 +0000 (03:00 +0000)]
[PowerPC] Implement VDSO timebase access on powerpc*

Implement the remaining pieces needed to allow userland timestamp reading.

Rewritten based on an intial essay into the problem by Justin Hibbits.
(Copyright changed to my own on his request.)

Tested on ppc64 (POWER9 Talos II), powerpcspe (e500v2 RB800), and
powerpc (g4 PowerBook).

Reviewed by: jhibbits (in irc)
Sponsored by: Tag1 Consulting, Inc.
Differential Revision: https://reviews.freebsd.org/D26347

3 years ago[PowerPC] Work around -O miscompile on powerpc 32 bit.
bdragon [Tue, 8 Sep 2020 01:27:03 +0000 (01:27 +0000)]
[PowerPC] Work around -O miscompile on powerpc 32 bit.

Work around llvm 11 miscompile in 32 bit powerpc that appears to cause ifuncs
to branch to the wrong address by forcing -O2. This worked in previous
versions because -O was mapped to -O2 previously (but is now -O1.)

While here, remove the old temporary workaround from r224882 that does the
opposite thing for powerpc non-DEBUG kernels, bringing it in line with other
platforms that compile at -O2.

This fixes kernel boot on powerpc and powerpcspe after the llvm11 transition.

Sponsored by: Tag1 Consulting, Inc.

3 years agosrc.conf.5: regen after r365439, WITH_/WITHOUT_CLEAN option
emaste [Tue, 8 Sep 2020 00:48:18 +0000 (00:48 +0000)]
src.conf.5: regen after r365439, WITH_/WITHOUT_CLEAN option

3 years agoAdd WITH_/WITHOUT_CLEAN option to replace NO_CLEAN
emaste [Tue, 8 Sep 2020 00:44:35 +0000 (00:44 +0000)]
Add WITH_/WITHOUT_CLEAN option to replace NO_CLEAN

This allows use of the standard src.conf configuration for controlling
whether the tree is cleaned before build or not.  The default is still
to clean.

Setting either NOCLEAN or NO_CLEAN will mention the new src.conf option.
NOCLEAN remains a .warning, while for now NO_CLEAN is .info.

Reviewed by: bdrewery (earlier version)
MFC after: 1 month
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D22762

3 years agoretire an old NO_CLEAN dependency cleanup hack
emaste [Tue, 8 Sep 2020 00:15:18 +0000 (00:15 +0000)]
retire an old NO_CLEAN dependency cleanup hack

We have some hacks to remove stale dependency files for NO_CLEAN
builds that are missed by make's dependency handling.  These are
intended to upport ongoing NO_CLEAN builds, and are no longer needed
after a sufficient amount of time elapses.

3 years agovm_object_split(): Handle orig_object type changes.
markj [Mon, 7 Sep 2020 23:28:33 +0000 (23:28 +0000)]
vm_object_split(): Handle orig_object type changes.

orig_object->type can change from OBJT_DEFAULT to OBJT_SWAP while
vm_object_split() is sleeping.  In this case some pages in new_object
may be left unbusied, but vm_object_split() attempts to unbusy all of
them.

Track the beginning of the busied range.  Add an assertion to verify
that pages are not re-added to the source object while sleeping.

Reported by: Olympios Petrakis <olympios.petrakis@netapp.com>
Reviewed by: alc, kib
Tested by: pho
MFC after: 1 week
Sponsored by: NetApp, Inc.
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D26223

3 years agoimgact_elf.c: unify check for phdr fitting into the first page.
kib [Mon, 7 Sep 2020 21:37:16 +0000 (21:37 +0000)]
imgact_elf.c: unify check for phdr fitting into the first page.

Similar to the userspace rtld check.

Reviewed by: dim, emaste (previous versions)
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D26339

3 years agortld: pass argc/argv/env to dso inits.
kib [Mon, 7 Sep 2020 21:32:27 +0000 (21:32 +0000)]
rtld: pass argc/argv/env to dso inits.

This is consistent with how array inits are called, and also makes us
more compatible with glibc environment.

Requested by: Alex S <iwtcex@gmail.com>
PR: 249162
Reviewed by: dim, emaste
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D26351

3 years ago[PowerPC] Initialize ELFv1 as a secondary sysvec to ELFv2.
bdragon [Mon, 7 Sep 2020 20:25:54 +0000 (20:25 +0000)]
[PowerPC] Initialize ELFv1 as a secondary sysvec to ELFv2.

In order to enable VDSO timekeeping, it is necessary that there be exactly
one primary FreeBSD sysvec for each of the host and (optionally) compat32.

So, switch ELFv1 to being a secondary sysvec of ELFv2, so it does not get
double-allocated in the shared page.

Since secondary sysvecs use the same sigcode allocation as the primary,
define both to use the main sigcode64, and adjust the sv_sigcode_base on
ELFv2 after initialization to point to the correct offset.

This has the desirable side effect of avoiding having a separate copy of
the signal trampoline in the shared page. Our sigcode64 was already written
to take advantage of trampoline sharing, it was just not being allocated
that way until now.

Submitted by: jhibbits
Sponsored by: Tag1 Consulting, Inc.

3 years agoMerge commit 47b0262d3 from llvm git (by me):
dim [Mon, 7 Sep 2020 20:10:03 +0000 (20:10 +0000)]
Merge commit 47b0262d3 from llvm git (by me):

  Add <stdarg.h> include to kmp_os.h, to get the va_list type, required
  after cde8f4c164a2. Sort system includes, while here.

The original merged commit works fine by itself on head, but fails to
compile on stable branches because stdarg.h is not implicitly pulled in.

MFC after: immediately, to fix failing builds on stable/{11,12}

3 years agoFix vdso compat32 timekeeping on !=x86.
bdragon [Mon, 7 Sep 2020 20:05:18 +0000 (20:05 +0000)]
Fix vdso compat32 timekeeping on !=x86.

Since x86 is the only 32-bit arch that has a 32-bit time_t, adjust the
private bintime32 struct in vdso to only use a 32 bit sec on amd64.

This matches the existing behavior in the compat code.

Noticed while implementing vdso timekeeping on powerpc.

This should also theoretically fix vdso timekeeping for arm binaries on
aarch64.

See tools attached to https://reviews.freebsd.org/D26347 for testing.

Reviewed by: kib (in irc)
Sponsored by: Tag1 Consulting, Inc.

3 years agoCall atf_skip function in cleanup procedure as it also triggers zfs.ko loading
lwhsu [Mon, 7 Sep 2020 18:15:58 +0000 (18:15 +0000)]
Call atf_skip function in cleanup procedure as it also triggers zfs.ko loading

PR: 249055
Sponsored by: The FreeBSD Foundation

3 years agontp: whitespace and typo fix in conf file
emaste [Mon, 7 Sep 2020 17:19:31 +0000 (17:19 +0000)]
ntp: whitespace and typo fix in conf file

PR: 248942
Submitted by: Jose Luis Duran (whitespace), igor (typo)
MFC after: 1 week

3 years agoWiFi: fix ieee80211_media_change() callers
bz [Mon, 7 Sep 2020 15:35:40 +0000 (15:35 +0000)]
WiFi: fix ieee80211_media_change() callers

In r178354 with the introduction of multi-bss ("vap") support factoring
out started and with r193340 ieee80211_media_change() no longer returned
ENETRESET but only 0 or error.
As ieee80211(9) tells the ieee80211_media_change() function should not
be called directly but is registered with ieee80211_vap_attach() instead.

Some drivers have not been fully converted.  After fixing the return
checking some of these functions were simply wrappers between
ieee80211_vap_attach() and ieee80211_media_change(), so remove the extra
function, where possible as well.

PR: 248955
Submitted by: Tong Zhang (ztong0001 gmail.com) (original)
MFC after: 3 days
Sponsored by: The FreeBSD Foundation

3 years agonsswitch.conf.5: style fixes
asomers [Mon, 7 Sep 2020 13:44:54 +0000 (13:44 +0000)]
nsswitch.conf.5: style fixes

Fix some whitespace, and remove the .Tn macro

Reported by: mandoc, igor
Reviewed by: bcr (manpages)
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D26345

3 years agoConsistently use the same gateway when adding/deleting interface routes.
melifaro [Mon, 7 Sep 2020 10:13:54 +0000 (10:13 +0000)]
Consistently use the same gateway when adding/deleting interface routes.

Use the same link-level gateway when adding or deleting interface routes.
This helps nexthop checking in the upcoming multipath changes.

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

3 years agoSlightly improve usb(4)
lwhsu [Mon, 7 Sep 2020 07:44:14 +0000 (07:44 +0000)]
Slightly improve usb(4)

- Mention USB 3.0
- Update links
- Fix `mandoc -T lint` warnings

Reviewed by: bcr, hselasky
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D26349

3 years agomusb/allwinner: add support for configuring phy as well as device mode
avg [Mon, 7 Sep 2020 06:53:29 +0000 (06:53 +0000)]
musb/allwinner: add support for configuring phy as well as device mode

At least on Orange Pi PC Plus even the host mode does not work without
enabling the phy and setting it to the host mode.

The driver will now parse dr_mode property and will try to configure
itself and the phy accordingly.
OTG mode is not supported yet, so it is treated as the device / peripheral
mode.

The phy is enabled -- powered on -- only for the host mode.

The device mode requires support from a phy driver, e.g., aw_usbphy on
Allwinner platform.
aw_usbphy does not support the device mode, so it cannnot work yet.

MFC after: 6 weeks

3 years agomusb/allwinner: add H3 support
avg [Mon, 7 Sep 2020 06:49:07 +0000 (06:49 +0000)]
musb/allwinner: add H3 support

MFC after: 6 weeks

3 years agomusb/allwinner: apply register filter in awusbdrd_bs_r_2() as well
avg [Mon, 7 Sep 2020 06:48:08 +0000 (06:48 +0000)]
musb/allwinner: apply register filter in awusbdrd_bs_r_2() as well

Otherwise, I get this panic:
panic: awusbdrd_reg: Invalid register 0x342

It looks that musb code both writes and reads at least MUSB2_REG_TXDBDIS.

MFC after: 5 weeks
X-MFC after: r365399

3 years agofixup r365398: add a missed file with all the new Allwinner musb_otg code
avg [Mon, 7 Sep 2020 06:44:24 +0000 (06:44 +0000)]
fixup r365398: add a missed file with all the new Allwinner musb_otg code

Obtained from: andrew
MFC after: 5 weeks
X-MFC with: r365398

3 years agoAllwinner USB DRD support (musb_otg)
avg [Mon, 7 Sep 2020 06:39:00 +0000 (06:39 +0000)]
Allwinner USB DRD support (musb_otg)

Allwinner USB DRD is based on the Mentor USB OTG controller, with a
different register layout and a few missing registers.

The code is by Andrew Turner (andrew).

Reviewed by: hselasky, manu
Obtained from: andrew
MFC after: 5 weeks
Differential Revision: https://reviews.freebsd.org/D5881

3 years agotwsi: some variants clear interrupt flag by writing 0, others by writing 1
avg [Mon, 7 Sep 2020 06:32:03 +0000 (06:32 +0000)]
twsi: some variants clear interrupt flag by writing 0, others by writing 1

Make that distinction more explicit and regular in the code.
The difference in behavior is documented in the respective datasheets.

Previously, the code handled the distinction by writing the control
register multiple times where at least one write was zero and another
was one.

This can be considered a follow-up to r363021.

Reviewed by: manu
MFC after: 4 weeks
Differential Revision: https://reviews.freebsd.org/D26308

3 years agotwsi: use tsleep instead of pause for better responsiveness
avg [Mon, 7 Sep 2020 06:29:41 +0000 (06:29 +0000)]
twsi: use tsleep instead of pause for better responsiveness

wakeup() does not have any effect on pause(), so if a transfer was
not finished by the time of the first check, then the thread
would sleep full 30 ms.

To do: protect the transfer and interrupt code with the mutex,
switch from tsleep from msleep

Reviewed by: manu
MFC after: 3 weeks
Differential Revision: https://reviews.freebsd.org/D26309

3 years agoaw_clk_nm: fix incorrect use of abs()
avg [Mon, 7 Sep 2020 06:27:18 +0000 (06:27 +0000)]
aw_clk_nm: fix incorrect use of abs()

abs() takes a (signed) int as input.
Instead, it was used with unsigned 64-bit integers.

So, add and use a new helper function to calculate a difference between
two uint64_t-s.

Reviewed by: manu
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D26307

3 years agonsswitch.conf(5): recommend placing cache after files
asomers [Sun, 6 Sep 2020 20:32:13 +0000 (20:32 +0000)]
nsswitch.conf(5): recommend placing cache after files

When cache precedes files, and nscd is configured to allow negative caching,
commands like "pw groupadd" can fail. The sequence of events looks like:

1. A command like pkg(8) looks up the group, and finds it absent.
2. pkg invokes pw(8) to add the group
3. pkg queries the group, but nscd says it doesn't exist, since it has a
   negative cache entry for that group.

See also: https://lists.freebsd.org/pipermail/freebsd-current/2012-January/031595.html

Reviewed by: bcr (manpages)
MFC after: 1 week
Sponsored by: Axcient
Differential Revision: https://reviews.freebsd.org/D26184

3 years agopadlock(4): fix instapanics with geli authentication
asomers [Sun, 6 Sep 2020 19:25:31 +0000 (19:25 +0000)]
padlock(4): fix instapanics with geli authentication

cryptodev_process implementations are supposed to return 0

PR: 247986
Submitted by: jhb
MFC after: 1 week

3 years agoRemove duplicated line.
oshogbo [Sun, 6 Sep 2020 15:44:09 +0000 (15:44 +0000)]
Remove duplicated line.

Reported by: lwhsu

3 years agotraceroute6: capsicumize it
oshogbo [Sun, 6 Sep 2020 14:04:02 +0000 (14:04 +0000)]
traceroute6: capsicumize it

Submitted by: Shubh Gupta <shubh@freebsd.org>
Sponsored by: Google (GSOC 2020)
Differential Revision: https://reviews.freebsd.org/D25604

3 years agoFollow-up r365371 by removing sentences which indicate the state of the
dim [Sun, 6 Sep 2020 09:08:06 +0000 (09:08 +0000)]
Follow-up r365371 by removing sentences which indicate the state of the
MK_MALLOC_PRODUCTION option on -CURRENT.

Also, for the sake of backwards compatibility, support the old way of
enabling 'production malloc', e.g. by adding a define in make.conf(5).

MFC after: 1 week
X-MFC-With: r365371

3 years agoTurn MALLOC_PRODUCTION into a regular src.conf(5) option
dim [Sat, 5 Sep 2020 23:30:17 +0000 (23:30 +0000)]
Turn MALLOC_PRODUCTION into a regular src.conf(5) option

For historical reasons, defining MALLOC_PRODUCTION in /etc/make.conf has
been used to turn off potentially expensive debug checks and statistics
gathering in the implementation of malloc(3).

It seems more consistent to turn this into a regular src.conf(5) option,
e.g. WITH_MALLOC_PRODUCTION / WITHOUT_MALLOC_PRODUCTION. This can then
be toggled similar to any other source build option, and turned on or
off by default for e.g. stable branches.

Reviewed by: imp, #manpages
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D26337

3 years agoUndo 'fix off by one' part of r365360.
kib [Sat, 5 Sep 2020 22:48:27 +0000 (22:48 +0000)]
Undo 'fix off by one' part of r365360.

Noted by: emaste
Sponsored by: The FreeBSD Foundation
MFC after: 6 days

3 years agortld: do not refuse to relocate objects without dynamic symtabs.
kib [Sat, 5 Sep 2020 22:44:38 +0000 (22:44 +0000)]
rtld: do not refuse to relocate objects without dynamic symtabs.

Such objects can still have valid relocations not requiring symbolic
references.

PR: 249121
Reported by: wsh@riski.sh
Sponsored by: The FreeBSD Foundation
MFC after: 1 week

3 years agortld: do not process absent dynamic.
kib [Sat, 5 Sep 2020 22:41:31 +0000 (22:41 +0000)]
rtld: do not process absent dynamic.

If object has no dynamic phdr, do not try to dereference NULL.  This
means that we cannot process any relocation, and that there cannot be
symbols defined, but it is up to static linker to produce meaningful
objects.

PR: 249121
Reported by: wsh@riski.sh
Sponsored by: The FreeBSD Foundation
MFC after: 1 week

3 years agosx: fix up manpage after r363113
mjg [Sat, 5 Sep 2020 20:22:02 +0000 (20:22 +0000)]
sx: fix up manpage after r363113

No date change as there is no new information.

Submitted by: sigsys@gmail.com
Differential Revision: https://reviews.freebsd.org/D26341

3 years agoUpdate to bmake-20200902
sjg [Sat, 5 Sep 2020 19:29:42 +0000 (19:29 +0000)]
Update to bmake-20200902

Lots of code refactoring, simplification and cleanup.
Lots of new unit-tests providing much higher code coverage.
All courtesy of rillig at netbsd.

Other significant changes:

o new read-only variable .SHELL which provides the path of the shell
  used to run scripts (as defined by  the .SHELL target).

o variable parsing detects more errors.

o new debug option -dl: LINT mode, does the equivalent of := for all
  variable assignments so that file and line number are reported for
  variable parse errors.

3 years agoci-qemu-test.sh: use pkgbase
emaste [Sat, 5 Sep 2020 19:03:34 +0000 (19:03 +0000)]
ci-qemu-test.sh: use pkgbase

Reviewed by: bcran (earlier), manu (earlier), imp
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D24276

3 years agotag bmake-20200902
sjg [Sat, 5 Sep 2020 16:44:37 +0000 (16:44 +0000)]
tag bmake-20200902

3 years agortsock.c: remove extraneous space
emaste [Sat, 5 Sep 2020 16:13:36 +0000 (16:13 +0000)]
rtsock.c: remove extraneous space

Submitted by: Neel Chauhan <neel AT neelc DOT org>
Differential Revision: https://reviews.freebsd.org/D26249

3 years agoImport bmake-20200902
sjg [Sat, 5 Sep 2020 16:11:04 +0000 (16:11 +0000)]
Import bmake-20200902

Lots of code refactoring, simplification and cleanup.
Lots of new unit-tests providing much higher code coverage.
All courtesy of rillig at netbsd.

Other significant changes:

o new read-only variable .SHELL which provides the path of the shell
  used to run scripts (as defined by  the .SHELL target).

o new debug option -dl: LINT mode, does the equivalent of := for all
  variable assignments so that file and line number are reported for
  variable parse errors.

3 years agortld: Handle ELF dso with program headers outside the first page.
kib [Sat, 5 Sep 2020 10:16:24 +0000 (10:16 +0000)]
rtld: Handle ELF dso with program headers outside the first page.

Reported by: Alex Arslan <alex.arslan@julialang.org>
PR: 229708
Reviewed by: dim (previous version), emaste
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D26323

3 years agoFix typo in comment.
imp [Sat, 5 Sep 2020 04:20:29 +0000 (04:20 +0000)]
Fix typo in comment.

Noticed by: bapt@

3 years agoFix a potential memory leak in the NFS over TLS handling code.
rmacklem [Sat, 5 Sep 2020 00:50:52 +0000 (00:50 +0000)]
Fix a potential memory leak in the NFS over TLS handling code.

For the TLS case where there is a "user@domain" name specified in the
X.509 v3 certificate presented by the client in the otherName component
of subjectAltName, a gid list is allocated via mem_alloc().
This needs to be free'd. Otherwise xp_gidp == NULL and free() handles that.
(The size argument to mem_free() is not used by FreeBSD, so it can be 0.)

This leak would not have occurred for any other case than NFS over TLS
with the "user@domain" in the client's certificate.

3 years agoDeclare dependency relationship once instead of twice for zpool
delphij [Sat, 5 Sep 2020 00:45:46 +0000 (00:45 +0000)]
Declare dependency relationship once instead of twice for zpool
and zvol.

3 years agovfs: avoid exposing partially constructed vnodes
chs [Sat, 5 Sep 2020 00:26:03 +0000 (00:26 +0000)]
vfs: avoid exposing partially constructed vnodes

If multiple threads race calling vfs_hash_insert() while creating vnodes
with the same identity, all of the vnodes which lose the race must be
destroyed before any other thread can see them. Previously this was
accomplished by the vput() in vfs_hash_insert() resulting in the vnode's
VOP_INACTIVE() method calling vgone() before the vnode lock was unlocked,
but at some point changes to the the vnode refcount/inactive logic have caused
that to no longer work, leading to crashes, so instead vfs_hash_insert()
must call vgone() itself before calling vput() on vnodes which lose the race.

Reviewed by: mjg, kib
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D26291

3 years agobbr: remove unused static function
bz [Sat, 5 Sep 2020 00:20:32 +0000 (00:20 +0000)]
bbr: remove unused static function

bbr_log_type_hrdwtso() is a file local static unused function.
Remove it to avoid warnings on kernel compiles.

Reviewed by: gallatin
Differential Revision: https://reviews.freebsd.org/D26331

3 years agouipc_ktls: remove unused static function
bz [Sat, 5 Sep 2020 00:19:40 +0000 (00:19 +0000)]
uipc_ktls: remove unused static function

m_segments() was added with r363464 but never used. Remove it to
avoid warnings when compiling kernels.

Reported by: rmacklem (also says jhb)
Reviewed by: gallatin, jhb
Differential Revision: https://reviews.freebsd.org/D26330

3 years agoMake zpool on GELI work again.
delphij [Fri, 4 Sep 2020 23:36:43 +0000 (23:36 +0000)]
Make zpool on GELI work again.

After OpenZFS import, zpool auto import behavior was moved to an
explicit "zpool import -a", and the zpool rc.d script was added
as a prerequisite of zvol.

However, in r299839, zvol was added as a prerequisite of dumpon,
making it to start very early and before all 'disks' providers.
At this time, dumping on a zvol is not supported, so remove this
requirement and make zpool depend on disks to allow zpool on
full disk encryption work.

Reviewed by: allanjude
Differential Revision: https://reviews.freebsd.org/D26333

3 years agoZFS: MFV 2.0-rc1-gfd20a8
mmacy [Fri, 4 Sep 2020 22:25:14 +0000 (22:25 +0000)]
ZFS: MFV 2.0-rc1-gfd20a8

- fixes jail delegation
- fixes raw kstat unsupported complaints
- exposes dbgmsg, dbuf, and checksum benchmark stats
- restore rename -u support

3 years agomake spa_stats.c common
mmacy [Fri, 4 Sep 2020 22:11:58 +0000 (22:11 +0000)]
make spa_stats.c common

3 years agoAnother missed move
mmacy [Fri, 4 Sep 2020 21:55:35 +0000 (21:55 +0000)]
Another missed move

3 years agoRound TF_SIZE up to the stack alignment (16-bytes).
brooks [Fri, 4 Sep 2020 21:55:22 +0000 (21:55 +0000)]
Round TF_SIZE up to the stack alignment (16-bytes).

The kernel adjusts the stack by TF_SIZE and the RISC-V ABI requires
that it remain 16-byte aligned.

Reported by: CHERI, jrtc27
Reviewed by: mhorne
Obtained from: CheriBSD
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D26328

3 years agoAdd missed move
mmacy [Fri, 4 Sep 2020 21:48:36 +0000 (21:48 +0000)]
Add missed move

3 years agoMaintain a stack alignment of 16-bytes.
brooks [Fri, 4 Sep 2020 21:46:10 +0000 (21:46 +0000)]
Maintain a stack alignment of 16-bytes.

This violated the RISC-V 64-bit ABI.  On CheriBSD this manifested as
a trap when attempting to store 16-byte aligned types while zeroing
the stack.

Reported by: CHERI, jrtc27
Reviewed by: mhorne, br
Obtained from: CheriBSD
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D26327

3 years agoUpdate vendor openzfs to fd20a8
mmacy [Fri, 4 Sep 2020 21:31:58 +0000 (21:31 +0000)]
Update vendor openzfs to fd20a8

3 years agotmpfs: drop spurious cache_purge in tmpfs_reclaim
mjg [Fri, 4 Sep 2020 19:30:15 +0000 (19:30 +0000)]
tmpfs: drop spurious cache_purge in tmpfs_reclaim

vgone already performs it.

3 years agoInitialize len to avoid ENOMEM from sysctl(3).
lwhsu [Fri, 4 Sep 2020 19:24:27 +0000 (19:24 +0000)]
Initialize len to avoid ENOMEM from sysctl(3).

PR: 248933
Sponsored by: The FreeBSD Foundation

3 years agoStop setting DEBUG_FLAGS in the zfs.ko Makefile.
markj [Fri, 4 Sep 2020 18:55:03 +0000 (18:55 +0000)]
Stop setting DEBUG_FLAGS in the zfs.ko Makefile.

Rely on system settings to decide whether or not to build with debug
symbols and extract them to a separate file.

Reported and tested by: rm

3 years agoumass: enhance debugging
bz [Fri, 4 Sep 2020 18:29:59 +0000 (18:29 +0000)]
umass: enhance debugging

Investigating a hang I found having some more error information
available would be helpful, so be more verbose and also tell cam/xpt
status in case of error/panic.

Reviewed by: hselasky
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D26287

3 years agoumass: fix a cam_sim leak in error case
bz [Fri, 4 Sep 2020 18:26:35 +0000 (18:26 +0000)]
umass: fix a cam_sim leak in error case

While debugging a hang I noticed that in case of error in
umass_cam_attach_sim() we miss a cam_sim_free() call.
Added that to not leak resources.

Reviewed by: hselasky
MFC after: 3 days
Differential Revision: D26287

3 years agocam_sim: harmonize code related to acquiring a mtx
bz [Fri, 4 Sep 2020 18:18:05 +0000 (18:18 +0000)]
cam_sim: harmonize code related to acquiring a mtx

cam_sim_free(), cam_sim_release(), and cam_sim_hold() all assign
a mtx variable during declaration and then if NULL or the mtx is
held may re-asign the variable and/or acquire/release a lock.

Harmonize the code, avoiding double assignments and make it look
the same for all three function (with cam_sim_free() not needing
an extra case).

No functional changes intended.

Reviewed by: imp; no-objections by: mav
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D26286

3 years agoice_ddp: Update package file to 1.3.16.0
erj [Fri, 4 Sep 2020 17:37:58 +0000 (17:37 +0000)]
ice_ddp: Update package file to 1.3.16.0

This package is intended to be used with ice(4) version 0.26.16. That
update will happen in a forthcoming commit.

MFC after: 3 days
Sponsored by: Intel Corporation

3 years agoktls: Check for a NULL send tag in ktls_cleanup()
gallatin [Fri, 4 Sep 2020 17:36:15 +0000 (17:36 +0000)]
ktls: Check for a NULL send tag in ktls_cleanup()

When using ifnet ktls, and when ktls_reset_send_tag()
fails to allocate a replacement tag, it leaves
the tls session's snd_tag pointer NULL. ktls_cleanup()
tries to release the send tag, and will trip over
this NULL pointer and panic unless NULL is checked for.

Reviewed by: jhb
Sponsored by: Netflix

3 years agofortune(6): Grammar fix for a hint on searching ports
gbe [Fri, 4 Sep 2020 13:05:00 +0000 (13:05 +0000)]
fortune(6): Grammar fix for a hint on searching ports

PR: 249078
Submitted by: PauAmma <pauamma at gundo dot com>
Reported by: PauAmma <pauamma at gundo dot com>
MFC after: 3 days

3 years agoFix kern_copyin test.
kib [Fri, 4 Sep 2020 12:52:16 +0000 (12:52 +0000)]
Fix kern_copyin test.

Main part is that kern_copyin on amd64 after LA57 should query the top
of UVA for correct operations. In fact it should started doing that
after the workaround for AMD bug with IRET in the last user page was
fixed by reducing UVA by a page.

Also since we started calculating top of UVA, fix MIPS according to
the comment.

Reported by: lwhsu
PR: 248933
Reviewed by: alc, markj
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D26312

3 years agoAvoid collisions with function names in openssl headers.
stevek [Fri, 4 Sep 2020 04:31:56 +0000 (04:31 +0000)]
Avoid collisions with function names in openssl headers.

Just using MD5, SHA1, RMD160 and SHA256 for defines collides with
functions of the same name in OpenSSL. This can cause compilation
issues in downstream consumers if they use OpenSSL for the hash
functions instead of libmd.

Reviewed by: sjg
Obtained from: Juniper Networks, Inc.
Differential Revision: https://reviews.freebsd.org/D26321

3 years agoAdd emulation support for the Linux kcov(4) ioctl API.
markj [Fri, 4 Sep 2020 00:12:28 +0000 (00:12 +0000)]
Add emulation support for the Linux kcov(4) ioctl API.

This makes it possible to run an unmodified Linux syzkaller executor
against the Linuxulator, and have it gather code coverage information.

Sponsored by: The FreeBSD Foundation

3 years agoQuiet int-to-pointer-cast warnings on i386 with GCC 9.
jhb [Fri, 4 Sep 2020 00:11:01 +0000 (00:11 +0000)]
Quiet int-to-pointer-cast warnings on i386 with GCC 9.

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

3 years agoRemove a duplicate declaration
mhorne [Thu, 3 Sep 2020 22:40:51 +0000 (22:40 +0000)]
Remove a duplicate declaration

This is already declared in sys/file.h, which is included directly.
Compiling with GCC9 emits an error.

Discussed with: rmacklem

3 years agoFix regression for IPv6 loopback routes.
melifaro [Thu, 3 Sep 2020 22:24:52 +0000 (22:24 +0000)]
Fix regression for IPv6 loopback routes.

After nexthop introduction, loopback routes for the interface addresses
 were created without embedding actual interface index in the gateway.
 The latter is needed to pass the IPv6 scope during transmission via loopback..

Fix the regression by actually using passed gateway data with interface index.

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

3 years agoAdd entries for the OID used for NFS-over-TLS "user@domain".
rmacklem [Thu, 3 Sep 2020 20:42:30 +0000 (20:42 +0000)]
Add entries for the OID used for NFS-over-TLS "user@domain".

The NFS-over-TLS server daemon (rpc.tlsservd) can optionally replace user
credentials in the RPC header with ones derived from a username specified
by the form "user@domain", if this exists in the client's X.509 v3 certificate.
Specifically, "user@domain" needs to be in the "otherName" component of
subjectjAltName, with a unique OID as assigned by this update.

This patch adds a subtree for the "otherName" component of subjectAltName in
X.509 v3 cerificates and a value for "user@domain" as used by NFS-over-TLS.

Reviewed by: phk, gordon
Differential Revision: https://reviews.freebsd.org/D26225

3 years agomac_framework.h: fix build with DEBUG_VFS_LOCKS and !MAC
avg [Thu, 3 Sep 2020 20:30:52 +0000 (20:30 +0000)]
mac_framework.h: fix build with DEBUG_VFS_LOCKS and !MAC

I have such a custom kernel configuration and its build failed with:
linking kernel.full
ld: error: undefined symbol: mac_vnode_assert_locked
>>> referenced by mac_framework.h:556 (/usr/devel/git/apu2c4/sys/security/mac/mac_framework.h:556)
>>>               tmpfs_vnops.o:(mac_vnode_check_stat)
>>> referenced by mac_framework.h:556 (/usr/devel/git/apu2c4/sys/security/mac/mac_framework.h:556)
>>>               vfs_default.o:(mac_vnode_check_stat)
>>> referenced by mac_framework.h:556 (/usr/devel/git/apu2c4/sys/security/mac/mac_framework.h:556)
>>>               ufs_vnops.o:(mac_vnode_check_stat)

3 years agoMerge commit f26fc568402f from llvm git (by me):
dim [Thu, 3 Sep 2020 18:34:01 +0000 (18:34 +0000)]
Merge commit f26fc568402f from llvm git (by me):

  Eliminate the sizing template parameter N from CoalescingBitVector

  Since the parameter is not used anywhere, and the default size of 16
  apparently causes PR47359, remove it. This ensures that IntervalMap
  will automatically determine the optimal size, using its NodeSizer
  struct.

  Reviewed By: dblaikie

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

This should fix 'Assertion failed: (Elements + Grow <= Nodes * Capacity
&& "Not enough room for elements"), function distribute, file
/usr/src/contrib/llvm-project/llvm/lib/Support/IntervalMap.cpp, line
123.' when building the x11-toolkits/py-wxPython40 port on a i386 host.

Reported by: zeising
MFC after: 6 weeks
X-MFC-With: r364284

3 years agoAdd a few more files to libllvm, which are required when doing sanitized
dim [Thu, 3 Sep 2020 18:27:13 +0000 (18:27 +0000)]
Add a few more files to libllvm, which are required when doing sanitized
builds, for example with -fsanitize=undefined.

MFC after: 6 weeks
X-MFC-With: r364284

3 years agoEnsure zpool-features(5) doesn't get removed by make delete-old.
dim [Thu, 3 Sep 2020 18:21:58 +0000 (18:21 +0000)]
Ensure zpool-features(5) doesn't get removed by make delete-old.

Apparently, somewhere in 2012 ZFS-on-FreeBSD moved it from section 5 to
7, but ZFS-on-Linux never did.

3 years agoarm64: update the set of HWCAP definitions
mhorne [Thu, 3 Sep 2020 17:07:58 +0000 (17:07 +0000)]
arm64: update the set of HWCAP definitions

This is in sync with what is defined for Linux 5.8. Note that all bits
in HWCAP are exhausted, and HWCAP2 has been added.

This also revealed an error in some of the existing definitions. We are
missing HWCAP_ASIMDHP, and as a result a portion of the HWCAP values are
shifted right by one bit. This will be fixed in an upcoming change, but
the values being added now are compatible with what Linux defines.

Reviewed by: emaste, markj, manu
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D26030

3 years agoVarious fixes to the load() function.
jhb [Thu, 3 Sep 2020 14:50:15 +0000 (14:50 +0000)]
Various fixes to the load() function.

- Use getline() instead of fgetln().  This ensures the returned string
  is always null-terminated without losing the last character if the
  last line in a file doesn't have a newline.  Also, while fgetln says
  the returned buffer can be modified, that doesn't actually seem safe
  as the current implementation means you are modifying stdio's
  internal buffer.

- Remove a spurious if before an ATF_REQUIRE that was clearly supposed
  to be non-optional.

- Remove a pointless compare of 'ptr' against '\0' (really NULL) that
  duplicated the middle condition in the for().

- Once a comment is found, skip the rest of the line, not just the
  current word.

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

3 years agoSwitch to an empty ttbr0 pagetable when the MMU is enabled
andrew [Thu, 3 Sep 2020 10:11:12 +0000 (10:11 +0000)]
Switch to an empty ttbr0 pagetable when the MMU is enabled

We don't need these pagetables after the early boot. Remove the chance we
write to memory we didn't expect to and remove architectural undefined
behaviour.

Reviewed by: alc (earlier version), mmel
Sponsored by: Innovate UK
Differential Revision: https://reviews.freebsd.org/D22606

3 years agoTemporarily skip sbin.bectl.bectl_test.* i386 kernel in CI
lwhsu [Thu, 3 Sep 2020 08:16:57 +0000 (08:16 +0000)]
Temporarily skip sbin.bectl.bectl_test.* i386 kernel in CI

kldload zfs.ko on i386 hangs in CI

Sponsored by: The FreeBSD Foundation

3 years agomove defintion of hw.i2c sysctl node from iicbb to iicbus
avg [Thu, 3 Sep 2020 08:02:19 +0000 (08:02 +0000)]
move defintion of hw.i2c sysctl node from iicbb to iicbus

MFC after: 2 weeks

3 years agotwsi: no need to compare boolean with boolean constant
avg [Thu, 3 Sep 2020 08:01:21 +0000 (08:01 +0000)]
twsi: no need to compare boolean with boolean constant

Testing the boolean directly is shorter and more idiomatic.

MFC after: 1 week

3 years agotwsi: replace a couple of errno codes with i2c error codes
avg [Thu, 3 Sep 2020 07:42:53 +0000 (07:42 +0000)]
twsi: replace a couple of errno codes with i2c error codes

Reviewed by: manu
MFC after: 1 week

3 years agodrm2: Fix build after r365264
zeising [Thu, 3 Sep 2020 05:25:39 +0000 (05:25 +0000)]
drm2: Fix build after r365264

Fix the build after r365264, I forgot to exclude arm in one more place.

Reported by: rpokala
Approved by: manu (implicit, build fix)
MFC after: 3 days
X-MFC-With: 365264
Pointy-hat to: zeising

3 years agoAvoid issues with STAGING by using LIBUCL_DIR for the source directory
stevek [Thu, 3 Sep 2020 03:48:42 +0000 (03:48 +0000)]
Avoid issues with STAGING by using LIBUCL_DIR for the source directory
variable name instead of LIBUCL (which would otherwise end up with the
staging directory used instead of the wanted source directory.)

Reviewed by: sjg
Obtained from: Juniper Networks, Inc.

3 years agomgb: correct macro argument name
emaste [Thu, 3 Sep 2020 02:17:55 +0000 (02:17 +0000)]
mgb: correct macro argument name

mgb had a longstanding typo in function-like macro MGB_NEXT_RING_IDX's
argument, but the macro had no consumers.  r365061 introduced a use of
the macro, after which mgb failed to build.

MFC after: 3 days
Sponsored by: The FreeBSD Foundation

3 years agoAlways report ENOSYS in init
brooks [Wed, 2 Sep 2020 23:17:33 +0000 (23:17 +0000)]
Always report ENOSYS in init

While rare, encountering an unimplemented system call early in init is
catastrophic and difficult to debug.  Even after a SIGSYS handler is
registered, such configurations are problematic.  As such, always report
such events for pid 1 (following kern.lognosys if non-zero).

Reviewed by: kevans, imp
Obtained from: CheriBSD (plus suggestions from kevans)
MFC after: 1 week
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D26288

3 years agoFix the variable name passed to OF_getprop().
jhb [Wed, 2 Sep 2020 22:27:30 +0000 (22:27 +0000)]
Fix the variable name passed to OF_getprop().

Reported by: tinderbox

3 years agolibifconfig now depends on libm due to usage of log10().
jhb [Wed, 2 Sep 2020 22:10:08 +0000 (22:10 +0000)]
libifconfig now depends on libm due to usage of log10().

ld.bfd in particular requires -lm to come after libifconfig on the
command line when linking rescue.

Reviewed by: freqlabs, adrian
Differential Revision: https://reviews.freebsd.org/D26258