]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/log
FreeBSD/FreeBSD.git
3 years agoVFS_QUOTACTL: Remove needless casts of arg
brooks [Thu, 17 Dec 2020 21:58:10 +0000 (21:58 +0000)]
VFS_QUOTACTL: Remove needless casts of arg

The argument is a void * so there's no need to cast it to caddr_t.

Update documentation to match function decleration.

Reviewed by: freqlabs
Obtained from: CheriBSD
MFC after: 1 week
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D27093

3 years agonet tests: Re-enable most if_clone tests
kp [Thu, 17 Dec 2020 21:54:25 +0000 (21:54 +0000)]
net tests: Re-enable most if_clone tests

All but one of these (tap_ipv6_up_stress) currently pass, so we should enable
them so we don't regress.

3 years agoFix f_pkt_into_t typo.
mav [Thu, 17 Dec 2020 21:02:58 +0000 (21:02 +0000)]
Fix f_pkt_into_t typo.

MFC after: 1 week

3 years agoUse __containerof() instead of home-rolled versions.
jhb [Thu, 17 Dec 2020 20:45:10 +0000 (20:45 +0000)]
Use __containerof() instead of home-rolled versions.

Reviewed by: imp, hselasky
Obtained from: CheriBSD
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D27582

3 years agoDescribe the commit message template our git hook script produces
emaste [Thu, 17 Dec 2020 20:31:45 +0000 (20:31 +0000)]
Describe the commit message template our git hook script produces

Reported by: rpokala

3 years agoUse a template assembly file for firmware object files.
jhb [Thu, 17 Dec 2020 20:31:17 +0000 (20:31 +0000)]
Use a template assembly file for firmware object files.

Similar to r366897, this uses the .incbin directive to pull in a
firmware file's contents into a .fwo file.  The same scheme for
computing symbol names from the filename is used as before to maximize
compatiblity and not require rebuilding existing .fwo files for
NO_CLEAN builds.  Using ld -o binary requires extra hacks in linkers
to either specify ABI options (e.g. soft- vs hard-float) or to ignore
ABI incompatiblities when linking certain objects (e.g.  object files
with only data).  Using the compiler driver avoids the need for these
hacks as the compiler driver is able to set all the appropriate ABI
options.

Reviewed by: imp, markj
Obtained from: CheriBSD
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D27579

3 years agoCleanups to *ERR* compat shims.
jhb [Thu, 17 Dec 2020 20:28:53 +0000 (20:28 +0000)]
Cleanups to *ERR* compat shims.

- Use [u]intptr_t casts to convert pointers to integers.

- Change IS_ERR* to return bool instead of long.

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

3 years agochmod +x the git commit message prep hook
emaste [Thu, 17 Dec 2020 20:11:31 +0000 (20:11 +0000)]
chmod +x the git commit message prep hook

3 years agoAdd initial version of git commit message preparation hook
emaste [Thu, 17 Dec 2020 19:58:29 +0000 (19:58 +0000)]
Add initial version of git commit message preparation hook

Start with a slightly modified version of the SVN commit template, to
allow developers to experiment.  This will be updated in the future as
our process and techniques evolve.

This can be installed by copying or symlinking into the .git/hooks/
directory.

Feedback from: cem, jhb
Reviewed by: imp
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D27633

3 years agoFix a race in tty_signal_sessleader() with unlocked read of s_leader.
kib [Thu, 17 Dec 2020 19:51:39 +0000 (19:51 +0000)]
Fix a race in tty_signal_sessleader() with unlocked read of s_leader.

Since we do not own the session lock, a parallel killjobc() might
reset s_leader to NULL after we checked it.  Read s_leader only once
and ensure that compiler is not allowed to reload.

While there, make access to t_session somewhat more pretty by using
local variable.

PR: 251915
Submitted by: Jakub Piecuch <j.piecuch96@gmail.com>
MFC after: 1 week

3 years agoUpdate the unbound version number from r368478.
cy [Thu, 17 Dec 2020 19:50:41 +0000 (19:50 +0000)]
Update the unbound version number from r368478.

Updating the version number is an extra manual step.

Pointy hat to: cy
Reported by: Herbert J. Skuhra <herbert _ gojira.at>
MFC after: 3 days

3 years agofd: reimplement close_range to avoid spurious relocking
mjg [Thu, 17 Dec 2020 18:52:30 +0000 (18:52 +0000)]
fd: reimplement close_range to avoid spurious relocking

3 years agoaudit: rework AUDIT_SYSCLOSE
mjg [Thu, 17 Dec 2020 18:52:04 +0000 (18:52 +0000)]
audit: rework AUDIT_SYSCLOSE

This in particular avoids spurious lookups on close.

3 years agofd: refactor closefp in preparation for close_range rework
mjg [Thu, 17 Dec 2020 18:51:09 +0000 (18:51 +0000)]
fd: refactor closefp in preparation for close_range rework

3 years agolualoader: fix lua-lint run
kevans [Thu, 17 Dec 2020 18:29:30 +0000 (18:29 +0000)]
lualoader: fix lua-lint run

luacheck rightfully complains that i is unused in the show-module-options
loop at the end (it was used for some debugging in the process).

We've added a new pager module that's compiled in, so declare that as an
acceptable global.

3 years agolualoader: cli: provide a show-module-options loader command
kevans [Thu, 17 Dec 2020 18:24:36 +0000 (18:24 +0000)]
lualoader: cli: provide a show-module-options loader command

This effectively dumps everything lualoader knows about to the console using
the libsa pager; that particular lua interface was added in r368591.

A pager stub implementation has been added that just dumps the output as-is
as a compat shim for older loader binaries that do not have lpager. This
stub should be moved into a more appropriate .lua file if we add anything
else that needs the pager.

3 years ago[ng_socket] Don't take the SOCKBUF_LOCK() twice in the RX data path.
afedorov [Thu, 17 Dec 2020 18:15:07 +0000 (18:15 +0000)]
[ng_socket] Don't take the SOCKBUF_LOCK() twice in the RX data path.

This is just a minor optimization, but it's sensitive. This gives an improvement of 30-50 kpps.

Reviewed by: kp, markj, glebius, lutz_donnerhacke.de
Approved by: vmaffione (mentor)
Sponsored by: vstack.com
Differential Revision: https://reviews.freebsd.org/D27382

3 years agoAdd IRQ resource to SPIBUS
manu [Thu, 17 Dec 2020 17:11:14 +0000 (17:11 +0000)]
Add IRQ resource to SPIBUS

Add capability to SPIBUS to have child device with IRQ.
For example many ADC chip have a dedicated pin to signal "data ready"
and the host can just wait for a interrupt to go out and read the result.

It is the same code as in R282674 and R282702 for IICBUS by Michal Meloun

Submitted by: Oskar Holmund <oskar.holmlund@ohdata.se>
Differential Revision: https://reviews.freebsd.org/D27396

3 years agoarm: Remove samsung exnynos port
manu [Thu, 17 Dec 2020 17:09:43 +0000 (17:09 +0000)]
arm: Remove samsung exnynos port

Remove the exynos SoC support, this haven't been updated in a while,
isn't present in GENERIC and nobody is motivated to resurect it.

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

3 years agoChange POSIX compliance level for visibility of strerror_l(3).
kib [Thu, 17 Dec 2020 17:08:25 +0000 (17:08 +0000)]
Change POSIX compliance level for visibility of strerror_l(3).

Third-party code tests for strerror_l(3) without specifying
_POSIX_SOURCE, and then expects that the function is prototyped with
_POSIX_SOURCE set to 200112.

Reported and tested by: antoine
Sponsored by: The FreeBSD Foundation
MFC after: 13 days

3 years agokyua: Only install examples if requested
manu [Thu, 17 Dec 2020 17:06:57 +0000 (17:06 +0000)]
kyua: Only install examples if requested

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

3 years agoDrop EFI_STAGING_SIZE back down to 64M
imp [Thu, 17 Dec 2020 17:02:09 +0000 (17:02 +0000)]
Drop EFI_STAGING_SIZE back down to 64M

vmware can't cope with anything larger than 64MB. Drop this back to
64MB everywhere but arm.

PR: 251866
MFC After: 1 week

3 years ago[bhyve] virtio-net: Do not allow receiving packets until features have been negotiated.
afedorov [Thu, 17 Dec 2020 16:52:40 +0000 (16:52 +0000)]
[bhyve] virtio-net: Do not allow receiving packets until features have been negotiated.

Enforce the requirement that the RX callback cannot be called after a reset until the features have been negotiated.
This fixes a race condition where the receive callback is called during a device reset.

Reviewed by: vmaffione, grehan
Approved by: vmaffione (mentor)
Sponsored by: vstack.com
Differential Revision: https://reviews.freebsd.org/D27381

3 years agobsdinstall: remove VTOC8 partition scheme option
mhorne [Thu, 17 Dec 2020 15:00:19 +0000 (15:00 +0000)]
bsdinstall: remove VTOC8 partition scheme option

Now that sparc64 has been removed, there are no kernels built with
support for the VTOC8 partitioning scheme by default. Remove the option
from the installer, as it is unsupported on all installer images
produced by re@.

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

3 years agoMake non-debug kernels installable.
nwhitehorn [Thu, 17 Dec 2020 14:20:36 +0000 (14:20 +0000)]
Make non-debug kernels installable.

Setting DEBUG_FLAGS results in make installkernel trying to install debug
information that doesn't exist if the kernel was built without it.

3 years agostrerror.3: Add an example for perror()
0mp [Thu, 17 Dec 2020 12:41:47 +0000 (12:41 +0000)]
strerror.3: Add an example for perror()

This is a nice and quick reference.

Reviewed by: jilles, yuripv
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D27623

3 years agofreebsd-update: unconditionally regenerate passwd/login.conf files
kevans [Thu, 17 Dec 2020 03:42:54 +0000 (03:42 +0000)]
freebsd-update: unconditionally regenerate passwd/login.conf files

The existing logic is nice in theory, but in practice freebsd-update will
not preserve the timestamps on these files. When doing a major upgrade, e.g.
from 12.1-RELEASE -> 12.2-RELEASE, pwd.mkdb et al. appear in the INDEX and
we clobber the timestamp several times in the process of packaging up the
existing system into /var/db/freebsd-update/files and extracting for
comparisons. This leads to these files not getting regenerated when they're
most likely to be needed.

Measures could be taken to preserve timestamps, but it's unclear whether
the complexity and overhead of doing so is really outweighed by the marginal
benefit.

I observed this issue when pkg subsequently failed to install a package that
wanted to add a user, claiming that the user was removed in the process.
bapt@ pointed to this pre-existing bug with freebsd-update as the cause.

PR: 234014, 232921
Reviewed by: bapt, emaste
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D27635

3 years ago/etc/services: attempt to bring the database to this century 2/2.
pfg [Thu, 17 Dec 2020 02:54:32 +0000 (02:54 +0000)]
/etc/services: attempt to bring the database to this century 2/2.

This is the final half of splitting r358153 in two, in order to avoid a build
system bugs and being able to merge an earlier change to previous releases.

Add a note to UPDATING to avoid people building from very old systems from
having issues with mergemaster

MFC after: 3 days (only 12-stable)

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

3 years agonl_langinfo(3): document recognized item names
yuripv [Thu, 17 Dec 2020 02:33:52 +0000 (02:33 +0000)]
nl_langinfo(3): document recognized item names

While here, remove .Tn macro usage (prompted by mandoc lint).

PR: 251468
Reviewed by: bapt
Differential Revision: https://reviews.freebsd.org/D27606

3 years agoMake mountcritremote dependent upon nfscbd.
rmacklem [Thu, 17 Dec 2020 00:20:57 +0000 (00:20 +0000)]
Make mountcritremote dependent upon nfscbd.

Although it is not often needed, the nfscbd(8) should be running when
NFSv4 mounts are done if callback functionality is required.
Callback functionality is required for the NFSv4 server to issue
delegations or pNFS layouts.

This patch adds nfscbd to the mountcritremote's REQUIRED line
to ensure it is started before NFS mounts specified in /etc/fstab
are done.

Reviewed by: 0mp
Differential Revision: https://reviews.freebsd.org/D27506

3 years agonewvers.sh: Speed up git_tree_modified
brooks [Thu, 17 Dec 2020 00:00:21 +0000 (00:00 +0000)]
newvers.sh: Speed up git_tree_modified

We're looking for file content differences, so ask the question of git
more directly. This helps a lot, saving tens of thousands of fork()s,
when the builder and editor see different stat() results (e.g., UIDs),
as they might with containers.

Submitted by: Nathaniel Wesley Filardo <nwf20@cl.cam.ac.uk>
Reviewed by: bdrewery, emaste, imp
Obtained from: CheriBSD
MFC after: 3 days
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D27646

3 years agoriscv: increase GENERICSD gap
mhorne [Wed, 16 Dec 2020 20:21:56 +0000 (20:21 +0000)]
riscv: increase GENERICSD gap

Leave more room for bootloaders at the beginning of the image. In
particular, the u-boot files for the HiFive Unleashed are ~5MB in size.

3 years agoAppend the branch commit count to _SNAP_SUFFIX for development
gjb [Wed, 16 Dec 2020 18:40:49 +0000 (18:40 +0000)]
Append the branch commit count to _SNAP_SUFFIX for development
snapshot builds.

Sponsored by: Rubicon Communications, LLC (netgate.com)

3 years agofd: remove redundant saturation check from fget_unlocked_seq
mjg [Wed, 16 Dec 2020 18:01:41 +0000 (18:01 +0000)]
fd: remove redundant saturation check from fget_unlocked_seq

refcount_acquire_if_not_zero returns true on saturation.
The case of 0 is handled by looping again, after which the originally
found pointer will no longer be there.

Noted by: kib

3 years agoComplete steps 5 and 9 from Committer's guide
otis [Wed, 16 Dec 2020 16:59:52 +0000 (16:59 +0000)]
Complete steps 5 and 9 from Committer's guide

Reviewed by: osa (mentor)
Approved by: osa (mentor)
Differential Revision: https://reviews.freebsd.org/D27632

3 years agoFix whitespace in r368698
jrtc27 [Wed, 16 Dec 2020 14:48:46 +0000 (14:48 +0000)]
Fix whitespace in r368698

MFC with: r368698

3 years agoFix whitespace in comment modified by r368697
jrtc27 [Wed, 16 Dec 2020 14:47:49 +0000 (14:47 +0000)]
Fix whitespace in comment modified by r368697

3 years agoUse the standard method for localizing of MSI-X table bar.
mmel [Wed, 16 Dec 2020 14:39:24 +0000 (14:39 +0000)]
Use the standard method for localizing of MSI-X table bar.

Current way, hardcoded value plus heuristic is not conform to the PCI(e)
specification and it fails on systems where MSI-X bar is not initialized by
BIOS/ACPI (many arm or arm64 systems for example).
Instead, use the standard PCI(e) capability for determining of
MSIX table bar address.

MFC after: 3 weeks
Differential Revision: https://reviews.freebsd.org/D27265

3 years agoAllocate right number of pages for the bounced buffers crossing the page.
mmel [Wed, 16 Dec 2020 14:36:57 +0000 (14:36 +0000)]
Allocate right number of pages for the bounced buffers crossing the page.

One of the disadvantages of our current busdma code is the fact that
we process the bounced buffer in a page-by-page manner. This means that
the short (subpage) buffer allocated across page boundaries is bounced
to 2 separate pages.

This suboptimal behavior is consistent across all platforms and can be
related to (probably unimplementable or incompatible with bouncing)
BUS_DMA_KEEP_PG_OFFSET flag.

Therefore, allocate one additional page to be fully comply with this
requirement.

Discused with: markj
PR: 251018

3 years agoRemove contrib/binutils, unused after r368667
emaste [Wed, 16 Dec 2020 14:01:04 +0000 (14:01 +0000)]
Remove contrib/binutils, unused after r368667

3 years agosrc.conf.5: regen after r368667, GDB retirement
emaste [Wed, 16 Dec 2020 14:00:42 +0000 (14:00 +0000)]
src.conf.5: regen after r368667, GDB retirement

3 years agoImplement strerror_l().
kib [Wed, 16 Dec 2020 09:02:09 +0000 (09:02 +0000)]
Implement strerror_l().

Only for the arches that provide user-mode TLS.

PR: 251651
Requested by: yuri
Discussed with: emaste, jilles, tijl
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D27495
MFC after: 2 weeks

3 years agoUse more standard types for manipulating pointers.
jhb [Wed, 16 Dec 2020 00:27:28 +0000 (00:27 +0000)]
Use more standard types for manipulating pointers.

- Use a uintptr_t cast to get the virtual address of a pointer in
  USB_P2U() instead of a ptrdiff_t.

- Add offsets to a char * pointer directly without roundtripping the
  pointer through a ptrdiff_t in USB_ADD_BYTES().

Reviewed by: imp, hselasky
Obtained from: CheriBSD
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D27581

3 years agoUse uintptr_t instead of unsigned long for integers holding pointers.
jhb [Wed, 16 Dec 2020 00:17:54 +0000 (00:17 +0000)]
Use uintptr_t instead of unsigned long for integers holding pointers.

Reviewed by: imp, gallatin
Obtained from: CheriBSD
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D27580

3 years agoUse uintptr_t instead of unsigned long for pointers.
jhb [Wed, 16 Dec 2020 00:13:32 +0000 (00:13 +0000)]
Use uintptr_t instead of unsigned long for pointers.

The sense_ptr thing is quite broken.  As near as I can tell, the
driver tries to copyout to a physical address rather than whatever
user address the sense buffer should be copied to.  It is not
immediately obvious what user address the sense buffer should be
copied to.

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

3 years agoUse the 't' modifier to print a ptrdiff_t.
jhb [Wed, 16 Dec 2020 00:11:30 +0000 (00:11 +0000)]
Use the 't' modifier to print a ptrdiff_t.

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

3 years agoloader: allow loader to accept zfs feature com.delphix:bookmark_written
tsoome [Tue, 15 Dec 2020 22:37:03 +0000 (22:37 +0000)]
loader: allow loader to accept zfs feature com.delphix:bookmark_written

We do not need to actually read bookmarks, just whitelist this feature.

Reported by: mjg

3 years agoloader: allow loader to accept zfs feature com.datto:bookmark_v2
tsoome [Tue, 15 Dec 2020 21:48:35 +0000 (21:48 +0000)]
loader: allow loader to accept zfs feature com.datto:bookmark_v2

We do not need to actually read bookmarks, just whitelist this feature

Reported by: jpaetzel

3 years agoBugfix to not hide jailparam flags, which for example changes the output
jamie [Tue, 15 Dec 2020 20:56:35 +0000 (20:56 +0000)]
Bugfix to not hide jailparam flags, which for example changes the output
"vnet=2" to the less opaque "vnet=inherit"

Reported by: kevans
MFC after: 5 days

3 years agoRevert r368523 which fixed contig allocs waiting forever.
bdrewery [Tue, 15 Dec 2020 19:38:16 +0000 (19:38 +0000)]
Revert r368523 which fixed contig allocs waiting forever.

This needs to account for empty NUMA domains or domains which do not
satisfy the requested range.

Discussed with: markj

3 years agohme(4): remove stray directories
brooks [Tue, 15 Dec 2020 18:46:23 +0000 (18:46 +0000)]
hme(4): remove stray directories

Sponsored by:  DARPA
Differential Revision: https://reviews.freebsd.org/D27526

3 years agoRemove Doxyfiles for removed drivers
brooks [Tue, 15 Dec 2020 18:44:41 +0000 (18:44 +0000)]
Remove Doxyfiles for removed drivers

Reported by: emaste

3 years agoRemove additional GDB leftovers missed in r368667
emaste [Tue, 15 Dec 2020 18:12:03 +0000 (18:12 +0000)]
Remove additional GDB leftovers missed in r368667

3 years agoAdd relnote for r368667, GDB 6.1.1 removal
emaste [Tue, 15 Dec 2020 17:52:04 +0000 (17:52 +0000)]
Add relnote for r368667, GDB 6.1.1 removal

3 years agoRetire obsolete GDB 6.1.1
emaste [Tue, 15 Dec 2020 17:44:19 +0000 (17:44 +0000)]
Retire obsolete GDB 6.1.1

GDB 6.1.1 was released in June 2004 and is long obsolete. It does not
support all of the architectures that FreeBSD does, and imposes
limitations on the FreeBSD kernel build, such as the continued use of
DWARF2 debugging information.

It was kept (in /usr/libexec/) only for use by crashinfo(8), which
extracts some basic information from a kernel core dump after a crash.
Crashinfo already prefers gdb from port/package if installed.

Future work may add kernel debug support to LLDB or find another path
for crashinfo's needs, but in any case we do not want to ship the
excessively outdated GDB in FreeBSD 13.

Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D27610

3 years agoImprove handling of alternate settings in the USB stack.
hselasky [Tue, 15 Dec 2020 15:36:41 +0000 (15:36 +0000)]
Improve handling of alternate settings in the USB stack.

Move initialization of num_altsetting under USB_CFG_INIT, else
there will be a page fault when enumerating USB devices.

PR: 251856
MFC after: 1 week
Submitted by: Ma, Horse <Shichun.Ma@dell.com>
Sponsored by: Mellanox Technologies // NVIDIA Networking

3 years agorelease: Rename arm64/RPI3.conf to arm64/RPI.conf
manu [Tue, 15 Dec 2020 15:13:06 +0000 (15:13 +0000)]
release: Rename arm64/RPI3.conf to arm64/RPI.conf

We now have a u-boot port and config.txt for booting on all 64bits
variant of the RPI boards (RPI2v1.1, RPI3* and RPI4*) so use
the new u-boot-rpi-arm64 and the config_arm64.txt files.

Discussed with: karels, kevans

3 years agoImprove handling of alternate settings in the USB stack.
hselasky [Tue, 15 Dec 2020 12:05:07 +0000 (12:05 +0000)]
Improve handling of alternate settings in the USB stack.

Allow setting the alternate interface number to fail when there is only
one alternate setting present, to comply with the USB specification.

Refactor how iface->num_altsetting is computed.

Bump the __FreeBSD_version due to change of core USB structure.

PR: 251856
MFC after: 1 week
Submitted by: Ma, Horse <Shichun.Ma@dell.com>
Sponsored by: Mellanox Technologies // NVIDIA Networking

3 years agoImprove handling of alternate settings in the USB stack.
hselasky [Tue, 15 Dec 2020 11:51:17 +0000 (11:51 +0000)]
Improve handling of alternate settings in the USB stack.

Limit the number of alternate settings to 256.
Else the alternate index variable may wrap around.

PR: 251856
MFC after: 1 week
Submitted by: Ma, Horse <Shichun.Ma@dell.com>
Sponsored by: Mellanox Technologies // NVIDIA Networking

3 years agoWhen receiving a file having a length, which is a mulitple of the blocksize,
tuexen [Tue, 15 Dec 2020 09:43:18 +0000 (09:43 +0000)]
When receiving a file having a length, which is a mulitple of the blocksize,
close the file once it is received.

Reported by: Timo Voelker
MFC after: 1 week

3 years agoRemove more cx,ctau leftovers
emaste [Tue, 15 Dec 2020 01:45:19 +0000 (01:45 +0000)]
Remove more cx,ctau leftovers

Missed in r359178

3 years agoFix LINT-NOINET6 build after r368571.
melifaro [Mon, 14 Dec 2020 22:54:32 +0000 (22:54 +0000)]
Fix LINT-NOINET6 build after r368571.

Reported by: mjg

3 years agoamd64 pmap: fix PCID mode invalidations
kib [Mon, 14 Dec 2020 22:52:29 +0000 (22:52 +0000)]
amd64 pmap: fix PCID mode invalidations

When r362031 moved local TLB invalidation after shootdown IPI send, it
moved too much.  In particular, PCID-mode clearing of the pm_gen
generation counters must occur before IPIs are send, which is in fact
described by the comment before seq_cst fence in the invalidation
functions.

Fix it by extracting pm_gen clearing into new helper
pmap_invalidate_preipi(), which is executed before a call to
smp_masked_tlb_shootdown().

Rest of the local invalidation callbacks is simplified as result, and
become very similar to the remote shootdown handlers (to be merged in
some future).

Move pin of the thread to pmap_invalidate_preipi(), and do unpin in
smp_masked_tlb_shootdown().

Reported and tested by: mjg (previous version)
Reviewed by: alc, cem (previous version), markj
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D227588

3 years agoEnable ROUTE_MPATH support in GENERIC kernels.
melifaro [Mon, 14 Dec 2020 22:23:08 +0000 (22:23 +0000)]
Enable ROUTE_MPATH support in GENERIC kernels.

Ability to load-balance traffic over multiple path is a must-have thing for routers.
It may be used by the servers to balance outgoing traffic over multiple default gateways.

The previous implementation, RADIX_MPATH stayed in the shadow for too long.
It was not well maintained, which lead us to a vicious circle - people were using
 non-contiguous mask or firewalls to achieve similar goals. As a result, some routing
 daemons implementation still don't have multipath support enabled for FreeBSD.

Turning on ROUTE_MPATH by default would fix it. It will allow to reduce networking
 feature gap to other operating systems. Linux and OpenBSD enabled similar support
 at least 5 years ago.

ROUTE_MPATH does not consume memory unless actually used. It enables around ~1k LOC.

It does not bring any behaviour changes for userland.
Additionally, feature is (temporarily) turned off by the net.route.multipath sysctl
 defaulting to 0.

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

3 years agoImprove the counting of blocks used to transfer a file from the
tuexen [Mon, 14 Dec 2020 22:13:58 +0000 (22:13 +0000)]
Improve the counting of blocks used to transfer a file from the
server to the client in case of not using an OACK: Don't miss
the first block in case of it is not also the last one.

MFC after: 1 week

3 years agoRemove unused functions and variables in cpufunc.[ch].
mmel [Mon, 14 Dec 2020 14:00:54 +0000 (14:00 +0000)]
Remove unused functions and variables in cpufunc.[ch].

3 years agoFinish implementation of ARM PMU interrupts.
mmel [Mon, 14 Dec 2020 13:10:19 +0000 (13:10 +0000)]
Finish implementation of ARM PMU interrupts.
The ARM PMU may use single per-core interrupt or may use multiple generic
interrupts, one per core. In this case, special attention must be paid to
the correct identification of the physical location of the core, its order
in the external database (FDT) and the associated cpuid.

Also keep in mind that a SoC can have multiple different PMUs
(usually one per cluster)

3 years agoVerify (and fix) the context_id argument passed to the mpentry () by PSCI.
mmel [Mon, 14 Dec 2020 11:57:43 +0000 (11:57 +0000)]
Verify (and fix) the context_id argument passed to the mpentry () by PSCI.

Some older PSCI implementations corrupt (or do not pass) the context_id
argument to newly started secondary cores. Although the ideal solution to this
problem is u-boot update, we can find the correct value for the argument (cpuid)
by comparing of real core mpidr register with the value stored in pcu->mpidr.

MFC after: 2 weeks

3 years agoBe bug compatible with other operating systems by allowing non-sequential
hselasky [Mon, 14 Dec 2020 11:56:16 +0000 (11:56 +0000)]
Be bug compatible with other operating systems by allowing non-sequential
interface numbering for USB descriptors in userspace. Else certain USB
control requests using the interface number, won't be recognized by the
USB firmware.

Refer to section 9.2.3 in the USB 2.0 specification:
Interfaces are numbered from zero to one less than the number of concurrent interfaces
supported by the configuration.

PR: 251784
MFC after: 1 week
Sponsored by: Mellanox Technologies // NVIDIA Networking

3 years agoloader: Ignore the .interp section on RISC-V
jrtc27 [Mon, 14 Dec 2020 00:54:05 +0000 (00:54 +0000)]
loader: Ignore the .interp section on RISC-V

Without this we risk having the .interp section be placed earlier in the
file and mess with section offsets; in particular it has been seen to be
placed at the start of the file and cause the PE/COFF header to not be
at address 0. This is the same fix as was done for arm64 in r365578.

Reviewed by: mhorne, imp
Approved by: mhorne, imp
Differential Revision: https://reviews.freebsd.org/D27603

3 years agostrdup.3: Function appeared in 4.3BSD-Reno, not 4.4BSD
jrtc27 [Mon, 14 Dec 2020 00:50:45 +0000 (00:50 +0000)]
strdup.3: Function appeared in 4.3BSD-Reno, not 4.4BSD

Linux claims 4.3BSD, we claim 4.4BSD and OpenBSD claims 4.3BSD-Reno. It turns
out that OpenBSD got it right: the function was added in late 1988 a few months
after 4.3BSD-Tahoe, well in advance of 4.3BSD-Reno.

Reviewed by: bcr
Approved by: bcr
Differential Revision: https://reviews.freebsd.org/D27392

3 years agomips: Fix sub-word atomics implementation
jrtc27 [Mon, 14 Dec 2020 00:47:59 +0000 (00:47 +0000)]
mips: Fix sub-word atomics implementation

These aligned the address but then always used the least significant
bits of the value in memory, which is the wrong half 50% of the time for
16-bit atomics and the wrong quarter 75% of the time for 8-bit atomics.
These bugs were all present in r178172, the commit that added the mips
port, and have remained for its entire existence to date.

Reviewed by: jhb (mentor)
Approved by: jhb (mentor)
Differential Revision: https://reviews.freebsd.org/D27343

3 years agoloader: Print autoboot countdown immediately, not at 9
jrtc27 [Mon, 14 Dec 2020 00:46:24 +0000 (00:46 +0000)]
loader: Print autoboot countdown immediately, not at 9

For the first second otime and ntime are equal so no message gets
printed. Instead we should print the countdown right from the start,
although we do it at the end of the first iteration so that if a key has
already been pressed then the message is suppressed.

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

3 years agoHarden the handling of outgoing streams in case of an restart or INIT
tuexen [Sun, 13 Dec 2020 23:51:51 +0000 (23:51 +0000)]
Harden the handling of outgoing streams in case of an restart or INIT
collision. This avouds an out-of-bounce access in case the peer can
break the cookie signature. Thanks to Felix Wilhelm from Google for
reporting the issue.

MFC after: 1 week

3 years agouipc: disable prediction in unp_pcb_lock_peer
mjg [Sun, 13 Dec 2020 21:32:19 +0000 (21:32 +0000)]
uipc: disable prediction in unp_pcb_lock_peer

The branch is not very predictable one way or the other, at least during
buildkernel where it only correctly matched 57% of calls.

3 years agoPatch annotation in sigdeferstop
mjg [Sun, 13 Dec 2020 21:30:42 +0000 (21:30 +0000)]
Patch annotation in sigdeferstop

Probability flipped since sigdefer handling was moved away from regular VOP
calls.

3 years agocache: fix ups bad predicts
mjg [Sun, 13 Dec 2020 21:29:39 +0000 (21:29 +0000)]
cache: fix ups bad predicts

- last level fallback normally sees CREATE; the code should be optimized to not
get there for said case
- fast path commonly fails with ENOENT

3 years agovfs: correctly predict last fdrop on failed open
mjg [Sun, 13 Dec 2020 21:28:15 +0000 (21:28 +0000)]
vfs: correctly predict last fdrop on failed open

Arguably since the count is guaranteed to be 1 the code should be modified
to avoid the work.

3 years agoFix TDP_WAKEUP/thr_wake(curthread->td_tid) after r366428.
kib [Sun, 13 Dec 2020 19:45:42 +0000 (19:45 +0000)]
Fix TDP_WAKEUP/thr_wake(curthread->td_tid) after r366428.

Reported by: arichardson
Reviewed by: arichardson, markj
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D27597

3 years agoCorrect indent.
kib [Sun, 13 Dec 2020 19:43:45 +0000 (19:43 +0000)]
Correct indent.

Sponsored by: The FreeBSD Foundation

3 years agoFix WITHOUT_ICONV build
se [Sun, 13 Dec 2020 19:06:59 +0000 (19:06 +0000)]
Fix WITHOUT_ICONV build

Move the include of langinfo.h out of the WITH_ICONV condition block,
since it is not dependent on ICONV. This was correct when nl_langinfo()
had only been called in the WITH_ICONV case, but that is no longer the
case.

Submitted by: yuripv

3 years agoRevert r368606
se [Sun, 13 Dec 2020 19:03:38 +0000 (19:03 +0000)]
Revert r368606

The issue will be fixed in a different way.

Reported by: yuripv

3 years agofd: fix fdrop prediction when closing a fd
mjg [Sun, 13 Dec 2020 18:06:24 +0000 (18:06 +0000)]
fd: fix fdrop prediction when closing a fd

Most of the time this is the last reference, contrary to typical fdrop use.

3 years agoMFV r368607:
mm [Sun, 13 Dec 2020 16:26:37 +0000 (16:26 +0000)]
MFV r368607:
Sync libarchive with vendor.

Vendor changes:
  Issue #1461: Unbreak build without lzma
  Issue #1462: warc reader: Fix build with gcc11
  Issue #1463: Fix code compatibility in test_archive_read_support.c
  Issue #1464: Use built-in strnlen on platforms where not available
  Issue #1465: warc reader: fix undefined behaviour in deconst() function

MFC after: 3 days
X-MFC-With: 368234

3 years agoFix WITHOUT_ICONV build
se [Sun, 13 Dec 2020 09:38:50 +0000 (09:38 +0000)]
Fix WITHOUT_ICONV build

There was an unprotected use of nl_langinfo() to determine the order of
day vs. month in the generated output.

When building without ICONV support, the order will be: month, day.

3 years ago[PowerPC] Floating-point exception trap followup
bdragon [Sun, 13 Dec 2020 03:58:43 +0000 (03:58 +0000)]
[PowerPC] Floating-point exception trap followup

* Fix incorrect operation on 32-bit caused by incorrectly-sized storage
  for a temporary FPSCR.
* Fix several whitespace problems.
* Don't try to enable VSX during cleanup_fpscr().

Reviewed by: alfredo, jhibbits (earlier version)
Sponsored by: Tag1 Consulting, Inc.
Differential Revision: https://reviews.freebsd.org/D27453

3 years agolocale: fix mode for installed files to be 644, not 755
yuripv [Sat, 12 Dec 2020 23:41:47 +0000 (23:41 +0000)]
locale: fix mode for installed files to be 644, not 755

While here, drop '-c' flag to install as it's default and provided for
backward compatibility only.

3 years agoClean up more resouces of an existing SCTP association in case of
tuexen [Sat, 12 Dec 2020 22:23:45 +0000 (22:23 +0000)]
Clean up more resouces of an existing SCTP association in case of
a restart.

This fixes a use-after-free scenario, which was reported by Felix
Wilhelm from Google in case a peer is able to modify the cookie.
However, this can also be triggered by an assciation restart under
some specific conditions.

MFC after: 1 week

3 years agostand: liblua: add a pager module
kevans [Sat, 12 Dec 2020 21:25:38 +0000 (21:25 +0000)]
stand: liblua: add a pager module

This is nearly a 1:1 mapping of the pager API from libsa.  The only real
difference is that pager.output() will accept any number of arguments and
coerce all of them to strings for output using luaL_tolstring (i.e. the
__tostring metamethod will be used).

The only consumer planned at this time is the upcoming "show-module-options"
implementation.

MFC after: 1 week

3 years agopf: Allow net.pf.request_maxcount to be set from loader.conf
kp [Sat, 12 Dec 2020 20:14:39 +0000 (20:14 +0000)]
pf: Allow net.pf.request_maxcount to be set from loader.conf

Mark request_maxcount as RWTUN so we can set it both at runtime and from
loader.conf. This avoids usings getting caught out by the change from tunable
to run time configuration.

Suggested by: Franco Fichtner
MFC after: 3 days

3 years agoamdtemp(4): Add missing Family 17h models
cem [Sat, 12 Dec 2020 19:43:38 +0000 (19:43 +0000)]
amdtemp(4): Add missing Family 17h models

Add missing model numbers M20h (Dali, Zen1), M60H (Renoir, Zen2), and
M90H (Van Gogh, Zen2).

Submitted by: Greg V <greg AT unrelenting.technology>

3 years agoamdsmn(4), amdtemp(4): add support for Family 19h (Zen 3)
cem [Sat, 12 Dec 2020 19:34:12 +0000 (19:34 +0000)]
amdsmn(4), amdtemp(4): add support for Family 19h (Zen 3)

Zen 3 "Vermeer" support, tested on Ryzen 9 5950X.

Model numbers from https://en.wikichip.org/wiki/amd/cpuid "Extended
Model" column.

Submitted by: Greg V <greg AT unrelenting.technology>
Differential Revision: https://reviews.freebsd.org/D27552

3 years agoProvide userland notification of gpio pin changes ("userland gpio interrupts").
ian [Sat, 12 Dec 2020 18:34:15 +0000 (18:34 +0000)]
Provide userland notification of gpio pin changes ("userland gpio interrupts").

This is an import of the Google Summer of Code 2018 project completed by
Christian Kramer (and, sadly, ignored by us for two years now).  The goals
stated for that project were:

    FreeBSD already has support for interrupts implemented in the GPIO
    controller drivers of several SoCs, but there are no interfaces to take
    advantage of them out of user space yet. The goal of this work is to
    implement such an interface by providing descriptors which integrate
    with the common I/O system calls and multiplexing mechanisms.

The initial imported code supports the following functionality:

 -  A kernel driver that provides an interface to the user space; the
    existing gpioc(4) driver was enhanced with this functionality.
 -  Implement support for the most common I/O system calls / multiplexing
    mechanisms:
     -  read() Places the pin number on which the interrupt occurred in the
        buffer. Blocking and non-blocking behaviour supported.
     - poll()/select()
     - kqueue()
     - signal driven I/O. Posting SIGIO when the O_ASYNC was set.
 -  Many-to-many relationship between pins and file descriptors.
     -  A file descriptor can monitor several GPIO pins.
     -  A GPIO pin can be monitored by multiple file descriptors.
 -  Integration with gpioctl and libgpio.

I added some fixes (mostly to locking) and feature enhancements on top of
the original gsoc code.  The feature ehancements allow the user to choose
between detailed and summary event reporting.  Detailed reporting provides
a record describing each pin change event.  Summary reporting provides the
time of the first and last change of each pin, and a count of how many times
it changed state since the last read(2) call.  Another enhancement allows
the recording of multiple state change events on multiple pins between each
call to read(2) (the original code would track only a single event at a time).

The phabricator review for these changes timed out without approval, but I
cite it below anyway, because the review contains a series of diffs that
show how I evolved the code from its original state in Christian's github
repo for the gsoc project to what is being commited here.  (In effect,
the phab review extends the VC history back to the original code.)

Submitted by: Christian Kramer
Obtained from: https://github.com/ckraemer/freebsd/tree/gsoc2018
Differential Revision: https://reviews.freebsd.org/D27398

3 years agoxargs: compile yesexpr as ERE
yuripv [Sat, 12 Dec 2020 15:38:32 +0000 (15:38 +0000)]
xargs: compile yesexpr as ERE

yesexpr is an extended regular expression for quite some time now,
use appropriate flag when compiling it.

PR: 238762
Reviewed by: kevans
Differential Revision: https://reviews.freebsd.org/D27509

3 years agolualoader: config: fix module enabled check
kevans [Sat, 12 Dec 2020 14:53:34 +0000 (14:53 +0000)]
lualoader: config: fix module enabled check

A last minute rewrite left this logically wrong; if it's present in
modules_blacklist, then we do not load it.

3 years agoUse getlocalbase() instead of compiled in LOCALBASE to locate calendars
se [Sat, 12 Dec 2020 11:51:29 +0000 (11:51 +0000)]
Use getlocalbase() instead of compiled in LOCALBASE to locate calendars

3 years agoChange getlocalbase() to not allocate any heap memory
se [Sat, 12 Dec 2020 11:23:52 +0000 (11:23 +0000)]
Change getlocalbase() to not allocate any heap memory

After the commit of the current version, Scott Long pointed out, that an
attacker might be able to cause a use-after-free access if this function
returned the value of the sysctl variable "user.localbase" by freeing
the allocated memory without the cached address being cleared in the
library function.

To resolve this issue, I have proposed the originally suggested version
with a statically allocated buffer in a review (D27370). There was no
feedback on this review and after waiting for more than 2 weeks, the
potential security issue is fixed by this commit. (There was no security
risk in practice, since none of the programs converted to use this
function attempted to free the buffer. The address could only have
pointed into the heap if user.localbase was set to a non-default value,
into r/o data or the environment, else.)

This version uses a static buffer of size LOCALBASE_CTL_LEN, which
defaults to MAXPATHLEN. This does not increase the memory footprint
of the library at this time, since its data segment grows from less
than 7 KB to less than 8 KB, i.e. it will get two 4 KB pages on typical
architectures, anyway.

Compiling with LOCALBASE_CTL_LEN defined as 0 will remove the code
that accesses the sysctl variable, values between 1 and MAXPATHLEN-1
will limit the maximum size of the prefix. When built with such a
value and if too large a value has been configured in user.localbase,
the value defined as ILLEGAL_PREFIX will be returned to cause any
file operations on that result to fail. (Default value is "/dev/null/",
the review contained "/\177", but I assume that "/dev/null" exists and
can not be accessed as a directory. Any other string that can be assumed
not be a valid path prefix could be used.)

I do suggest to use LOCALBASE_CTL_LEN to size the in-kernel buffer for
the user.localbase variable, too. Doing this would guarantee that the
result always fit into the buffer in this library function (unless run
on a kernel built with a different buffer size.)

The function always returns a valid string, and only in case it is built
with a small static buffer and run on a system with too large a value in
user.localbase, the ILLEGAL_PREFIX will be returned, effectively causing
the created path to be non-existent.

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

3 years agogeom(8): list geoms with /dev/ prefix
rew [Sat, 12 Dec 2020 07:22:38 +0000 (07:22 +0000)]
geom(8): list geoms with /dev/ prefix

Allow geom(8) to list geoms with the '/dev/' prefix.

`geom part show` accepts the '/dev/' prefix but `geom part list` does not.

Modify find_geom() in sbin/geom/core/geom.c to be consistent with the behavior
of find_geom() in lib/geom/part/geom_part.c.

PR:             188213
Reported by:    Ronald F. Guilmette <rfg@tristatelogic.com>
Reviewed by:    imp, kevans
Approved by:    kevans (mentor)
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D27556

3 years agolualoader: provide module-manipulation commands
kevans [Sat, 12 Dec 2020 05:57:42 +0000 (05:57 +0000)]
lualoader: provide module-manipulation commands

Specifically, we have:
- enable-module
- disable-module
- toggle-module

These can be used to add/remove modules to be loaded or force modules to be
loaded in spite of modules_blacklist. In the typical case, a user is
expected to use them to recover an issue happening due to a module directive
they've added to their loader.conf or because they discover that they've
under-specified what to load.

MFC after: 1 week

3 years agoRemove unused headers.
delphij [Sat, 12 Dec 2020 02:26:43 +0000 (02:26 +0000)]
Remove unused headers.

MFC after: 2 weeks