FreeBSD git weekly: 2026-02-16 to 2026-02-22

Introduction

This is a display of mostly-automatically-classified git commits from 2026-02-16 to 2026-02-22.

Table of contents and commits per category:

(2) Highlighted commits (these are copies, not in stats)
19 9.4% Userland programs
17 8.4% Documentation
39 19.3% Hardware support
14 6.9% Networking
26 12.9% System administration
13 6.4% Libraries
1 0.5% Filesystems
28 13.9% Kernel
13 6.4% Build system
7 3.5% Internal organizational stuff
13 6.4% Testing
5 2.5% Style, typos, and comments
5 2.5% Contrib code
2 1.0% Reverted commits
0 0.0% Unclassified commits
202 100% total
Technical notes about this page

Highlighted commits

For extra visibility, these are copies of commits found in other sections. Most (if not all) come from the commit message containing "Relnotes:", or commits modifying UPDATING.

bhyve: fix USB mouse requests
USB HCI requests may not include HCI transfer block structures (i.e.,
xfer->data[] == NULL), but in several places, the USB mouse emulation
code assumes one will exist. This can lead to a NULL pointer dereference
and a SEGV in the bhyve process as observed via experiments with an
Ubuntu guest and PyUSB code. Note that many of the cases processing
other request types already checked for data == NULL.

While in the neighborhood, fix a typo in the loop iterating over the
usb_data_xfer_block array which used the wrong variable to check for
valid data (idx vs. i).

Reported by: danmcd@edgecast.io
Obtained from: SmartOS
MFC after: 1 week
Relnotes: yes

Reviewed by:    imp
Differential Revision:  https://reviews.freebsd.org/D54661
10d5404adb11773969a600428d1abeb4308d98aa Chuck Tuffli 2026-02-19 22:27:49
hwpstate_amd(4): CPPC: Switch the default to maximum performance
Set controls to maximum performance to avoid regressions now that CPPC
is activated by default and to match what the P-state support does.

Relnotes:       yes
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D55253
80d32a6b1d73e0c81303417fa280ac74ef1f417a Olivier Certner 2026-02-09 17:45:07

Userland programs

Commits about commands found in man section 1 (other than networking).

m4: Fix eval output width
According to POSIX, the optional third argument is the minimum number
of digits to print regardless of sign.  We interpreted it as the minimum
width of the output including the sign.  Additionally, the variable used
to hold this value was confusingly named “maxdigits”.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293214
MFC after:      1 week
Sponsored by:   Klara, Inc.
Reviewed by:    imp
Differential Revision:  https://reviews.freebsd.org/D55311
507c611aeac7ca9aed12353b1044bb21ab00afae Dag-Erling Smørgrav 2026-02-17 14:01:34
csh: Add SPDX-License-Identifier tags
Reviewed by: imp
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55206
10a8680b4e9a728a20825d1c8425487bc1a43700 Tuukka Pasanen 2026-02-09 08:00:56
date: Add SPDX-License-Identifier tags
Reviewed by: imp
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55207
62269b2f23859a20bc6a68ca64648217c421c616 Tuukka Pasanen 2026-02-09 08:03:08
ed: Add SPDX-License-Identifier tags
Reviewed by: imp
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55208
9eeab27c56db507f88c3334172e62357c092707e Tuukka Pasanen 2026-02-09 08:05:17
getfacl: Add SPDX-License-Identifier tags
Reviewed by: imp
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55209
6e8bb77b4c23837d95ba9fb50b41b948c21cbdc3 Tuukka Pasanen 2026-02-09 08:06:07
kenv: Add SPDX-License-Identifier tags
Reviewed by: imp
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55210
5705d171dacc69bcdbfc17849a9dc898249dae2e Tuukka Pasanen 2026-02-09 08:07:32
pwait: Add SPDX-License-Identifier tags
Reviewed by: imp
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55211
0a1fd13e73200756b61d06c949622b4f6bba7dad Tuukka Pasanen 2026-02-09 08:09:10
setfacl: Add SPDX-License-Identifier tags
Reviewed by: imp
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55212
575e89cb1786a00387e9c1391055263068c4e0ae Tuukka Pasanen 2026-02-09 08:09:45
sh: Add SPDX-License-Identifier tags
Reviewed by: imp
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55213
632c73b4bfd48b89b7c2318079fd50835b8b5016 Tuukka Pasanen 2026-02-09 08:10:25
sleep: Add SPDX-License-Identifier tags
Reviewed by: imp
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55215
f4eccc3add7b91532396970913792fa264fc5430 Tuukka Pasanen 2026-02-09 08:11:04
sync: Add SPDX-License-Identifier tags
Reviewed by: immp
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55216
0486b5243f094160fd782c1dc15f28392072b259 Tuukka Pasanen 2026-02-09 08:38:13
stty: Add SPDX-License-Identifier tags
Reviewed by: imp
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55217
743a7f954c2720fa318e9e1f7ca1c549977560f9 Tuukka Pasanen 2026-02-09 08:11:41
diff: Drop unnecessary casts, fix none algo
MFC after:    1 week
Sponsored by:   Klara, Inc.
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D55349
d5404462f691230423dc8cc543c6fdc44f34ec31 Dag-Erling Smørgrav 2026-02-18 18:28:21
beep: Add SPDX-License-Identifier tag
Reviewed by: emaste
Sponsored by: The FreeBSD Foundation
7e313584ab1075195ab735c1452375cf2388b162 Tuukka Pasanen 2026-02-09 08:23:16
mkimg: Add SPDX-License-Identifier tags
Reviewed by: emaste
Sponsored by: The FreeBSD Foundation
971696b22f7acc8c45600bb56b972340e9b912e8 Tuukka Pasanen 2026-02-09 08:32:54
diff: Add SPDX-License-Identifier tag
Reviewed by: emaste
Sponsored by: The FreeBSD Foundation
878cee8d9b9b4c7c5530b0960306c04b1b691325 Tuukka Pasanen 2026-02-09 08:26:19
etdump: Add SPDX-License-Identifier tags
Reviewed by: emaste
Sponsored by: The FreeBSD Foundation
2d1c5f43a2a5a4d3021530c7048e72f39b2ab8d0 Tuukka Pasanen 2026-02-09 08:27:55
resizewin: Add SPDX-License-Identifier tags
Reviewed by: emaste
Sponsored by: The FreeBSD Foundation
c33076859fa319396beb10470ad4101f1c3c5571 Tuukka Pasanen 2026-02-16 08:55:27
vtfontcvt: Add SPDX-License-Identifier tag
Reviewed by: emaste
Sponsored by: The FreeBSD Foundation
f12a0dca86b529069a940f09aba796dd4e28c66f Tuukka Pasanen 2026-02-16 09:01:58

Documentation

Man pages, release notes, etc.

Commit group #0: open.2: stop making impression that fd must be directory
open.2: stop making impression that fd must be directory

Reviewed by:    des, rmacklem
Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Differential revision:  https://reviews.freebsd.org/D55302
5bcccc702b29a0e173a5916b001771dd7b280c7c Konstantin Belousov 2026-02-16 07:28:22

open.2: grammar improvements

Submitted by:   matteo
Fixes:  https://cgit.freebsd.org/src/commit/?id=5bcccc702b29a0e173a5916b001771dd7b280c7c
MFC after:      3 days
f1f142c01db43c7dc8d0d172fc1726da2ee01972 Konstantin Belousov 2026-02-16 15:34:35
sh.1: Document the exit status of return
It's not obvious that if `exitstatus` is omitted,
the exit status of the function is taken from the last executed command.

MFC after:              3 days
Reviewed by:            jilles, ziaee
Differential Revision:  https://reviews.freebsd.org/D55026
931d4f0ae4f2dcd088bb92459ff19c8b6aafc2cc Artem Bunichev 2026-02-16 17:14:00
sh.1: Fix ordering of Cm and Aq macros
MFC after:    3 days
Reviewed by:    ziaee
Fixes:  https://cgit.freebsd.org/src/commit/?id=2711852bd9ac (sh.1: Provide detailed job control documentation)
Differential Revision:  https://reviews.freebsd.org/D55194
e5213ca4a3ca742fd8d3b8db413a561b28fa6989 Artem Bunichev 2026-02-16 17:21:21
pdfork.2: add EFAULT as possible error, explain some consequences of it
Reviewed by:  markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D55306
db80ea9b88628168d2bb7f17a60b73568a8ea102 Konstantin Belousov 2026-02-16 10:18:07
trimdomain.3: Explain DISPLAY a bit more
MFC after:            3 days
Reported by:            jrtc27
Reviewed by:            des
Differential Revision:  https://reviews.freebsd.org/D54629
960719762f0a1f6689ec58bc6d8ce21c4daa9096 Alexander Ziaee 2026-02-17 17:22:26
mitigations.7: Describe LASS
Reviewed by:  kib, markj
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55281
b20883e8210eb30c8ffba467c4bc9fce89bde6c4 Ed Maste 2026-02-13 20:31:51
devd.conf.5: Fix cross-references to devfs(4)
Fixes:                https://cgit.freebsd.org/src/commit/?id=1687d77197c0 (man filesystems: move driver pages)
MFC after:      3 days
Reviewed by:    ziaee
Sponsored by:   Defenso
Signed-off-by:  Quentin Thébault <quentin.thebault@defenso.fr>
Closes:         https://github.com/freebsd/freebsd-src/pull/2015
59b7f3ed69df1031e11cdaa3a571248487af91ba Quentin Thébault 2026-02-11 07:39:17
sh.1: Reference editline(7)
Key bindings for command line editing are documented in editline(7).

MFC after:              3 days
Reviewed by:            jilles, ziaee
Differential Revision:  https://reviews.freebsd.org/D54767
009be09172348c352db5d74f6ece2f4cb47ee193 Artem Bunichev 2026-02-18 18:16:38
mitigations.7: spell
1e36ee76757662bf6a672ebd7ad77a6dc674853b Maxim Konovalov 2026-02-18 18:50:14
Commit group #1: vmm.4: Add information on VM access control
vmm.4: Add information on VM access control

Add a section to vmm.4 explaining how vmm device file ownership works.

MFC after:      2 months
Sponsored by:   The FreeBSD Foundation
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D54742
d26c8ae527bbf2cc3da98c0857f634f162622752 Mark Johnston 2026-02-19 14:38:59

vmm.4: Fix width

Reported by:    ziaee
Fixes:          https://cgit.freebsd.org/src/commit/?id=d26c8ae527bb ("vmm.4: Add information on VM access control")
3a0c63a7e0e7f8bd43b0d6b97a627198297e3bdb Mark Johnston 2026-02-19 17:20:17
RELNOTES: Document some recent vmm changes
83cf9b52e96086f598ed21f0f7830b74f4f4476a Mark Johnston 2026-02-19 17:16:59
lpr: Add deprecation notice
These programs require elevated privileges to work and have not seen
regular maintenance in decades.  Unless someone steps up and overhauls
them, we will have to remove them before 16.0.  Better-maintained
alternatives are available in ports (print/cups, sysutils/LPRng).

MFC after:      3 days
d57dee7ab66f60537b557cb602be194e3eed253d Dag-Erling Smørgrav 2026-02-19 17:55:06
stdckdint.3: Fix standard in comment
Sponsored by: Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D55360
637a8ec157935c76839185d9068e6f4bc42047bc Aymeric Wibo 2026-02-21 23:20:18
ufs_disk_close.3: Correct include header macro
This manual used the library macro to mark up a header file, causing
pollution in the apropos database for libraries, as well as omission
from the apropos database for headers. This also renders differently,
enclosing the header in angle brackets.

MFC after:      3 days
456ae9820823fcd078746318620925792f112c9a Alexander Ziaee 2026-02-21 21:24:20
ports.7: Add port files to FILES
Add terse descriptions for the individual files that make up a port to
the FILES section of the ports reference manual.

MFC after:              3 days
Reviewed by:            adamw
Differential Revision:  https://reviews.freebsd.org/D55404
451f593194cbea74bcae53b4b8e6e55f6b2ec12d Alexander Ziaee 2026-02-22 02:51:13

Hardware support

Hardware drivers and architecture-specific code.

ichsmb: Add Intel Raptor Lake SMBus controller support
Add PCI device ID 0x7a23 for Intel 700 Series (Raptor Lake) chipset SMBus controller.
This enables hardware monitoring functionality on 13th and 14th generation Intel Core platforms.

Reviewed by:    adrian
Differential Revision:  https://reviews.freebsd.org/D54957
e4bcfe4ebf03e321a5f8317491cdeea49e4f6357 Abdelkader Boudih 2026-02-16 03:58:41
powerpc: enable HPT superpages by default
It's time to flip these on and see if anything happens in -HEAD.
It can be turned back off before 16.0-RELEASE if there are problems.

Reviewed by:    jhibbits
Differential Revision:  https://reviews.freebsd.org/D55071
f412a5c565dedf5b6ea7cf3e43b57766ec0da63c Adrian Chadd 2026-02-16 17:49:46
powerpc: document the magic constants for 16MB page size
After discussion with jhibbits@, we pulled out what is supported here
and how it's supported.

Reviewed by:    imp
Differential Revision:  https://reviews.freebsd.org/D55093
995090202cae47567cc5b0d92301692d49c1c035 Adrian Chadd 2026-02-16 17:49:52
mfi(4)/mrsas(4): Print driver versions consistently
Reviewed by:  ziaee, des
MFC after:      3 days
Differential Revision:  https://reviews.freebsd.org/D54519
93122ead724b3ba0ccdaedadcd371ec53f9a9844 Michael Osipov 2025-12-21 17:13:21
acpi_gpiobus: Reuse the existing IVAR index for an ACPI handle
ACPI_IVAR_HANDLE is a global index shared across multiple busses,
there is no need for a unique constant here.

Reviewed by:    vexeduxr, imp
Differential Revision:  https://reviews.freebsd.org/D54155
b9f1e45e685b5e007d0c3a9513ac13e6d82e9518 John Baldwin 2026-02-17 20:44:58
bus: Drop a couple of unused IVAR indices
This changes the in-kernel ABI, but that is permitted across major
versions and is cleaner than leaving these around forever.

Differential Revision:  https://reviews.freebsd.org/D54160
824ce81f74b5aece73620c94693dcf3c718e96c4 John Baldwin 2026-02-17 20:45:38
arm64: Explicitly use movz
This appeases GNU as which doesn't map the mov alias to movz.

Reviewed by:    andrew
Differential Revision:  https://reviews.freebsd.org/D55160
4092df8820ea01951ab6df6cfd4fdc5b239e636e John Baldwin 2026-02-17 20:46:35
arm bcm2835: Appease a warning from GCC
No code currently uses the vc_audio_msg_type_names array of strings.

Reported by:    -Wunused-variable
Differential Revision:  https://reviews.freebsd.org/D55162
c7f7b67411b2ac325b548422191896cfa66d15cb John Baldwin 2026-02-17 20:46:48
arm64: Fix the ESR_ELx_EC_MASK definition
Sponsored by: Arm Ltd
f4d1a3ab0271216df05bab14c641d8023cc43a04 Andrew Turner 2026-02-18 15:10:44
arm64: Add more HWCAP values
Sponsored by: Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D55219
3a960425df759a7bb8f946d23f035c63f3a5de7a Andrew Turner 2026-02-18 15:28:14
pcib: Assume a window where both the base and limit are 0 is uninitialized
Since the low bits of a window's limit are hardwired to 1, this
configuration looks like a minimally sized window at address 0.
However, PCI resources are not generally at address 0 (see the
__PCI_BAR_ZERO_VALID macro that was only defined on sparc64), and some
PCI-PCI bridges report these register values after a reset.  The
result today is a lot of spam in dmesg as the minimally-sized windows
fail to allocate.  By ignoring these windows and treating them as
closed the end result is the same, but there is less spam during boot.

Reported by:    jrtc27
Differential Revision:  https://reviews.freebsd.org/D43922
349808d8bd197165390a286bccdaa29a1d77c7ab John Baldwin 2026-02-18 16:04:54
nvme: fix panic if we boot w/o a namespace
If we format a drive, and then crash, we'll come back up. nvme_sim_ns
device won't attach because we don't have a namespace. Some drives (all?
I couldn't find it in the standard) send an AER with a namespace change,
which causes a NULL dereference because s_sim wasn't initialized because
we didn't attach. So, if we get into the ns_changed routine, bail early
if we didn't attach. We'll attach later, and deal with the ns correctly
if it's really there, or not attach one if it's not.

Sponsored by:           Netflix
c8d63d63679fc0d8a67b33499a2a2edd444c8e2e Warner Losh 2026-02-17 08:00:34
nvme: Fix sim unit number to match nvme device
The CAM sim unit numbner should match the nvme device number. We need
this to match unit numbers in some wiring scenarios. For example:

hint.nvme.0.at="UEFI:PciRoot(0x3)/Pci(0x1,0x1)/Pci(0x0,0x0)"
hint.nvme.1.at="UEFI:PciRoot(0x3)/Pci(0x1,0x2)/Pci(0x0,0x0)"
hint.nvme.2.at="UEFI:PciRoot(0x3)/Pci(0x1,0x3)/Pci(0x0,0x0)"
hint.nvme.3.at="UEFI:PciRoot(0x3)/Pci(0x1,0x4)/Pci(0x0,0x0)"
hint.scbus.33.at="nvme0"
hint.nda.0.at="scbus33"
hint.scbus.34.at="nvme1"
hint.nda.1.at="scbus34"
hint.scbus.35.at="nvme2"
hint.nda.2.at="scbus35"
hint.scbus.36.at="nvme3"
hint.nda.3.at="scbus36"

If the devices that are nvme0 and nvme3 are the only ones populated, you
still want them associated with nda0 and nda3.

The nvme_sim device changes meant we were passing the wrong device's
unit number to cam_sim_alloc. This fixes the problem.

Sponsored by:           Netflix
8aa560491cfad7953c7c089f4847951e867ef47c Warner Losh 2026-02-17 21:08:46
acpi: Factor out message printing on failure of AcpiEnterSleepStatePrep()
To this end, create a small wrapper, acpi_EnterSleepStatePrep(), which
itself prints the failure message.

While here, when trying to power down (acpi_shutdown_final()), and
AcpiEnterSleepStatePrep() failed, print an additional message more
explicit about the power down request having failed.

Reviewed by:    obiwac
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D55225
781c9b0a595f9af501ad836a120aedba91c13a0b Olivier Certner 2026-01-28 16:06:30
acpi: Factor out the power off code into acpi_poweroff()
While here, make it print that we are trying to power off upfront, not
really treating differently power off preparation via
acpi_EnterSleepStatePrep() and actual power off via
AcpiEnterSleepState(), which the user does not care about.

While here, capitalize the messages.

Reviewed by:    obiwac
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D55226
ffdfca5982b60cb4145a53f965b8c51600d2f323 Olivier Certner 2026-01-28 16:40:51
iommu_gas: Fix assertion.
placeholder entry end changed to 0 in f591287756368
("iommu_gas: make placeholder entry at the start of the GAS zero size")

Reviewed by:    kib
Differential Revision:  https://reviews.freebsd.org/D55326
7e8284c6ad95bb7a0fc84d4d945ee98737efdd36 Ruslan Bukin 2026-02-19 13:56:36
riscv: GENERIC: enable KERN_TLS
This unskips 585 sys/kern/ktls_test testcases[0] in CI. All 585 tests currently pass.

[0] https://ci.freebsd.org/view/Test/job/FreeBSD-main-riscv64-test/16514/testReport/sys.kern/

Approved by:            emaste (mentor)
MFC after:              3 days
Sponsored by:           The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D55376
1e649491b8567151270095fda3bce8faea394952 Siva Mahadevan 2026-02-19 17:37:44
asmc: use `ASMC_FAN_FUNCS2` with the Macmini4,1
The Macmini4,1 model does not have "fansafespeed" support. This issue
typically manifests with messages like so:

```
asmc0: asmc_key_read for key F0Sf failed 10 times, giving up
```

Swap out `ASMC_FAN_FUNCS` with `ASMC_FAN_FUNCS2` to explicitly drop
"fansafespeed" checks in the driver for the model as it doesn't support
that hardware feature.

MFC after:      1 week
Reported by:    @probonopd
Closes:         https://github.com/helloSystem/ISO/issues/357
7b862cf8a252d80ab1fb90fa5371fd8462c7c16f Enji Cooper 2026-02-20 05:43:37
asmc: use symbolic names with the MacPro3,1 model
Use `ASMC_LIGHT_FUNCS_DISABLED` and `ASMC_SMS_FUNCS_DISABLED` instead of
the unrolled versions of the macros.

This makes it easier to adjust the underlying macros/fields for
`struct asmc_model`.

No functional change intended.

MFC after:      1 week
90edc16166a6fef03d2384247d07d64656f03309 Enji Cooper 2026-02-20 06:24:38
chore: asmc: use designated initializers in macros
This code cleanup makes it easier for human readers to understand what each
of the fields actually represents, as well as makes it easier to modify
what the macros actually do under the covers, without introducing
potential human errors.

No functional change intended.

MFC after:      1 week
ef1cde51032d395492caae302fedf183c58a482b Enji Cooper 2026-02-20 06:31:21
Commit group #2: hwpstate_amd(4)
hwpstate_amd(4): Consistency of cached CPPC_REQUEST value

If writing to the CPPC_REQUEST MSR fails, make sure we do not set the
softc's 'cppc.request' field to the intended new value.  Both
set_cppc_request_cb() and enable_cppc_cb() were changed to this effect.

In case enable_cppc_cb() could not read CPPC_REQUEST, mark that through
a new softc flag, HWPFL_CPPC_REQUEST_NOT_READ, so that we do not keep
and use a wrong value when the content of CPPC_REQUEST is read/written
through sysctl(9) knobs, but instead retry reading the MSR (this is the
purpose of the new get_cppc_request() sub-function).

When setting CPPC_REQUEST has failed, distinguish the case where it
could not be read at all from the case where it could not be written, by
respectively returning EIO and EOPNOTSUPP in these cases.  The previous
return value of EFAULT was confusing as sysctl(3) documents it as
happening if the passed arguments are invalid.

While here, add some herald comment before sysctl_cppc_dump_handler()
clarifying that the intent of this function is to always query the
hardware directly, bypassing any cached value in the softc.

Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D55251
7f36d7a9505ab21f67ed806b18fbbe365043ed50 Olivier Certner 2026-02-09 16:21:57

hwpstate_amd(4): CPPC: Allow attaching even if CAPABILITY_1 cannot be read

If that MSR cannot be read, we fallback to defaults specified by the
ACPI specification, as we are already doing when the minimum and maximum
values in there look bogus.

Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D55252
b69a396de211feb1dcfe6a7e95d1b23ae53f916a Olivier Certner 2026-02-09 17:19:51

hwpstate_amd(4): CPPC: Switch the default to maximum performance

Set controls to maximum performance to avoid regressions now that CPPC
is activated by default and to match what the P-state support does.

Relnotes:       yes
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D55253
80d32a6b1d73e0c81303417fa280ac74ef1f417a Olivier Certner 2026-02-09 17:45:07
hwpstate_amd(4): Fix punctuation in 'desired_performance' knob's description
To be consistent with that of the others.

No functional change.

Sponsored by:   The FreeBSD Foundation
f1b93fc50f019c122636d6f8780f109d7be26862 Olivier Certner 2026-02-20 09:17:24
i386,amd64: Explicitly set ECX=0 in do_cpuid() to be future-proof
In principle, do_cpuid() should only be used for CPUID leaves without
sub-leaves.  Even accessing sub-leaf zero (ECX=0), one must use
cpuid_count(ax, 0) rather than cpuid(ax).

However, one might assume do_cpuid(ax) is equivalent to
cpuid_count(ax, 0), but the old do_cpuid() did not initialize ECX before
executing the CPUID instruction.  If ECX contained a non-zero value, the
instruction could return unexpected results, potentially leading to
subtle and hard-to-debug issues, especially in ported code.

To be future-proof and to help port code, adjust do_cpuid(ax) to be
cpuid_count(ax, 0) to explicitly set ECX=0.

It's believed that this change does not fix any real bugs in FreeBSD.

See also the DragonFly commit:
https://github.com/DragonFlyBSD/DragonFlyBSD/commit/0087a1d163488a57787a9a6431dd94070b1988d4

Signed-off-by: Aaron LI <aly@aaronly.me>
Reviewed by: kib
Pull Request: https://github.com/freebsd/freebsd-src/pull/2027
89d7b30c652c98ea12abc5eb9424464cbfb45953 Aaron LI 2026-02-16 04:00:12
nvmf: Limit the default I/O queue size to 128 entries
Previously the size defaulted to the maximum supported size reported
by the remote host.  The value of 128 matches the default on Linux and
avoids excessive resource usage for I/O queues.

Sponsored by:   Chelsio Communications
1602f0013bddc7b59b0b8de94c0e6cd742ffc9be John Baldwin 2026-02-20 19:21:18
sound: Detect unsupported formats
This way we can avoid edge-cases like
8af6aee96ed609456900c6dd92dafabac5e89c0a ("virtual_oss(8): Remove
floating point formats from preference list").

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Reviewed by:    emaste
Differential Revision:  https://reviews.freebsd.org/D55403
3deae7b786743193531f4e69527e789de52644c5 Christos Margiolis 2026-02-21 11:36:58
asmc: resource cleanup simplifications
This change makes `asmc_detach(..)` reentrant by setting freed resources
to known invalid values when done, and makes `asmc_attach(..)` call
`asmc_detach(..)` instead of attempting to the semi-equivalent way of
cleaning up the driver resources allocated in `asmc_detach(..)`.

MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D55413
eda36ae09dd1fab78bd377739fc5d6c65c61f5d7 Enji Cooper 2026-01-30 06:55:08
powerpc64: initial conversion of oea64 to rwlocks
Convert the oea64 mmu code to rwlocks.

Reviewed by:    jhibbits
Differential Revision:  https://reviews.freebsd.org/D54936
19a18bb750e8ed88207664b4959e433b7e68e926 Adrian Chadd 2026-02-22 02:22:46
rsu: migrate to new net80211 encryption key API
Migrate to the new encryption key API rather than poking at the
key struct directly.

Differential Revision:  https://reviews.freebsd.org/D54483
6a6152bc292fbd86015507978c6d3556ef3915a1 Adrian Chadd 2026-02-22 03:29:44
HYM8563: Add support for clock output.
The RTC contains a configurable clock output.

MFC after:      3 weeks
6b77d34f449128e6591131ec3d1822e2df3d8d8a Michal Meloun 2025-11-06 19:19:37
OFW: Improve OFW_CPU.
Accept the assigned clock on the CPU node.
Don't report a missing "clock-frequency" property if the CPU node has
a "clocks" property.

MFC after:      3 weeks
4840558e521934345793ef83b0d45a72fd615a7b Michal Meloun 2025-11-06 19:01:18
TCA64xx: Convert mutex to SX lock.
I2C devices are permitted to sleep during transfers.

MFC after:      3 weeks
2ade7208068d1d215f8b9754b448566354d6944c Michal Meloun 2025-11-06 19:11:17
fdt,simple_mfd: Map memory as shareable.
It may be submapped in child drivers.

MFC after:      3 weeks
f40ed4881e2581d56b1a63ffb0122e017b2139f3 Michal Meloun 2025-11-06 19:21:49
pci_dw: improve pci_dw
Add support for 64-bit ranges.
Process 'bus-range' property.
Add some debug prints.

MFC after:      3 weeks
92c66dc5f8723083530efbbc5cfa4068105f472c Michal Meloun 2024-10-07 16:50:10
regulator_fixed: add support for 'gpios' property
This is a newer version of the "gpio" property.

MFC after:      3 weeks
9de43130f989896d92dda22ed73ca3033863efd7 Michal Meloun 2025-11-06 19:37:14
rge: fix callout setup/teardown; handle invalid ethernet address
* Do the callout init early; since some of the teardown path expects
  the callout to be valid

* Handle an invalid ethernet address by generating a local one.

PR:     kern/https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293307

Reviewed by:    zlei
Differential Revision:  https://reviews.freebsd.org/D55419
d5ca52182e522a192d0c8fbdaa438f50e200082f John 2026-02-22 18:06:39
rge: correctly free busdma memory / zero things out only if allocated
* Only free busdma memory that was allocated
* Don't free tx/rx rings until their buffers have also been freed

PR:     kern/https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293307

Reviewed by:    zlei
Differential Revision:  https://reviews.freebsd.org/D55420
d1947d0a1a55f905e5ed076d46d4f75a00c6f823 John 2026-02-22 18:06:44
rge: log silicon revision during attach
The initial import from OpenBSD contained chip revision printf() calls
commented out, as OpenBSD's bare printf() style does not translate to
FreeBSD's device_printf() idiom. The result is that users cannot
distinguish RTL8125 from RTL8125B, RTL8125D_1, RTL8125D_2 etc. via
dmesg alone, even though all variants show as '<RTL8125>' from the PCI
probe string.

Add proper device_printf() calls including the raw hwrev value,
consistent with how re(4) reports chip revisions.

Signed-off-by: Christos Longros <chris.longros@gmail.com>

Reviewed by:    zlei, imp, adrian
Differential Revision:  https://reviews.freebsd.org/D55402
acbf7498f5e11b00ffcd6c12bdb8bd1eddeb6d7f Christos Longros 2026-02-22 18:06:50

Networking

Network-related commands, library, and kernel.

pf: convert DIOCRTSTADDRS to netlink
Sponsored by: Rubicon Communications, LLC ("Netgate")
281282e9357b95b679d36ca6d8561e96c1263937 Kristof Provost 2026-02-13 16:21:33
netlink: force uninline of nl_receive_message()
The entire netlink(4) message processing thread is all inlined into
nl_taskqueue_handler() making it difficult to dtrace(1) on a message
level.
11c1b69885be9c20fba8f7b0d41bd6da8202b972 Gleb Smirnoff 2026-02-16 23:39:29
ipfilter: Avoid negative array indicies
Array indices must always be posive. We avoid this by making each index
unsigned. This mitigates out-of-bounds reads and writes.

Reported by:            Ilja Van Sprundel <ivansprundel@ioactive.com>
Reviewed by:            glebius
MFC after:              3 days
Differential revision:  https://reviews.freebsd.org/D55260
3fdbd8a07a2dcb8fe3cec19fc59ef064453e4755 Cy Schubert 2026-02-11 19:30:38
krb5: Make the build a bit quieter
compile_et.sh is run during buildworld and prints a bunch of debug
output.  It's intrusive and probably not needed, at least by default, so
let's make the build output a bit cleaner.  This is an upstream script,
but it hasn't been modified in 15 years so the local modification is
unlikely to cause any pain.

Also remove a print that shows up in buildworld -s output.

Reviewed by:    cy
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D55317
4c247f120492d999ac90efcfc73e5fea29206d1f Mark Johnston 2026-02-17 14:45:50
Commit group #3: if_gre: Add netlink support with tests
if_gre: Add netlink support with tests

Migrate to new if_clone KPI and implement netlink support
for gre(4). Also refactor some of the gre specific ioctls.

Reviewed by: glebius, zlei
Differential Revision: https://reviews.freebsd.org/D54443
e1e18cc12e68762b641646b203d9ac42d10e3b1f Pouria Mousavizadeh Tehrani 2026-02-18 18:12:35

gre tests: Add required_kmods to gre netlink test

Fixes: https://cgit.freebsd.org/src/commit/?id=e1e18cc12e68
Differential Revision: https://reviews.freebsd.org/D54443
1635ba90615a5d9342604d495b71ac5380030b36 Pouria Mousavizadeh Tehrani 2026-02-20 07:50:20

gre tests: Fix gcc warnings on gre netlink tests

Avoid using `snl_add_msg_attr_ip` for now and directly use
`snl_add_msg_attr_ip4` to silence gcc warnings.

Fixes: https://cgit.freebsd.org/src/commit/?id=e1e18cc12e68
Differential Revision: https://reviews.freebsd.org/D54443
49fa0079cfc850917723e2163c51622eb5462429 Pouria Mousavizadeh Tehrani 2026-02-20 16:45:13
pf: avoid NULL deref on purged states
States can be invalidated and still be present in the state table for a
while (until the pf_purge thread cleans them up). These states might not
have keys set, so we must make sure a state is not purged before we try
to access those keys.

MFC after:      1 week
Sponsored by:   Rubicon Communications, LLC ("Netgate")
d60082f16e4c91d4b97d8b3b56b39fa348ecfbda Kristof Provost 2026-02-18 18:23:42
netinet6: spell Identifiers in the comment
59eafd8726e2be08807650a8f67714124aa75dbd Maxim Konovalov 2026-02-19 04:26:09
icmp6: clear csum_flags on mbuf reuse
When icmp6 sends an ICMPv6 message, it reuses the mbuf of the packet
that triggered the ICMPv6 message and prepends an IPv6 and ICMPv6
header. For a locally generated packet with checksum offloading, the
mbuf still has csum_flags set indicating that a SCTP/TCP/UDP checksum
has to be computed and inserted. Since this not the case anymore,
csum_flags need to be cleared.

PR:                     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293227
Reviewed by:            kp, zlei, tuexen
MFC after:              3 days
Differential Revision:  https://reviews.freebsd.org/D55367
ada4dc77577f7162353e8c2916ba5c258b6210f0 Timo Völker 2026-02-19 14:15:10
ctld: Honor the default maximum I/O queue size for NVMeoF controllers
<dev/nvmf.h> exports a constant to set the default maximum I/O queue
size which is used by ctl(4) if an explicit size is not set.  This
value was chosen to match Linux's default, but it also avoids
excessive resource usage for I/O queues.

ctld was using the absolute maxium size as the default instead.

Sponsored by:   Chelsio Communications
0788e7c40ddbeedfd9713842440a8db2a8f7ea2f John Baldwin 2026-02-20 18:56:00
tcp: improve validation of received TCP over UDP packets
Reviewed by:          glebius, pouria
MFC after:              3 days
Sponsored by:           Netflix, Inc.
Differential Revision:  https://reviews.freebsd.org/D55410
e1886559ea477add82a0a86cddf728f6778f1603 Michael Tuexen 2026-02-20 21:21:37
tcp: cleanup
No functional change intended.

Reviewed by:            pouria, rrs, Timo Völker
MFC after:              1 week
Sponsored by:           Netflix, Inc.
Differential Revision:  https://reviews.freebsd.org/D55415
c984c7593e11aa95f21f79bb5425a9d5e9181945 Michael Tuexen 2026-02-22 17:44:10
net/if_vlan.c: do not leak vlan sx slock in vlan_clone_dump_nl()
Reported by:  pho
Reviewed by:    markj
Fixes:  https://cgit.freebsd.org/src/commit/?id=d4062b9f16e46f039f2b5b40dd35592b5dabf00c
Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Differential revision:  https://reviews.freebsd.org/D55447
dfcd04c4c811096e5183a406d0f001a7c0ffa60a Konstantin Belousov 2026-02-21 18:54:52

System administration

Stuff in man section 8 (other than networking).

bhyve: Fix a misleading error message
The ioctl might fail because it's run in a jail which doesn't have
permission to invoke ppt ioctls.

Reviewed by:    jhb
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D55070
7ab5e3f29a50bc9294a139cc0e8e661a7c036ba3 Mark Johnston 2026-02-16 14:56:39
syslogd: Improve handling of configuration errors
Make parse_selector() print a warning to stderr and continue parsing the
config if it encounters an invalid facility or priority.  Note that
because the parsing is done from a casper service, there isn't a good
mechanism to log errors; the warnings are visible only when syslogd is
started in debug mode.

Reported by:    Doug Hardie <bc979@lafn.org>
MFC after:      1 week
Fixes:          https://cgit.freebsd.org/src/commit/?id=f4b4a10abb26 ("syslogd: Move selector parsing into its own function")
Reviewed by:    jfree, jlduran, eugen, delphij
Differential Revision:  https://reviews.freebsd.org/D55033
29ec3907f193e205a1c2118c182ec43e51baf717 Mark Johnston 2026-02-16 19:50:45
bhyve: Propagate errors from rfb_recv_* functions
Update rfb_recv_* functions to return -1 on failure and 0 on success.
Update rfb_handle to check these return values and drop the connection
if an error occurs.

Signed-off-by: Hayzam Sherif <hayzam@gmail.com>

Reviewed by:    markj
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
757b0bf5cf46230bcbeeb298f734b9bb7cde1817 Hayzam Sherif 2026-02-16 17:46:35
recoverdisk: Ensure medium_read is multiple of small_read.
d7d0369ad331d17ca2bc0076b2f1ab8bed88c5f4 Poul-Henning Kamp 2026-02-17 18:33:41
bhyveload: If disk cannot be opened RW try RO. (=same as bhyve)
Not expecting it to turn into yak-shaving: kevans
0f2b7181ea5acbabe11bf2c732078e8898c02c40 Poul-Henning Kamp 2026-02-17 18:36:04
camcontrol: Add SPDX-License-Identifier tag
Reviewed by: imp
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55269
25ed5ee654a8cd7d9f694307c62bb84ff4d16866 Tuukka Pasanen 2026-02-09 08:12:25
newfs_msdos: Add SPDX-License-Identifier tags
Reviewed by: emaste
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55274
8ac992645850318d8b2cf93b083372b99b6374e1 Tuukka Pasanen 2026-02-09 08:20:05
decryptcore: Add SPDX-License-Identifier tag
Reviewed by: emaste
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55270
299d3e944a15cbffc8ed16a49869e1eaec1fb493 Tuukka Pasanen 2026-02-09 08:14:10
ipfw: Add SPDX-License-Identifier tag
Reviewed by: emaste
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55273
904e0dcd2967cfe72899e7285e6cd6e9977ae68c Tuukka Pasanen 2026-02-09 08:19:20
nvmecontrol: Add SPDX-License-Identifier tags
Reviewed by: emaste
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55275
f8517c21d57f1db005c0d15e14d16252e8e4bfd0 Tuukka Pasanen 2026-02-09 08:21:25
nvmecontrol: Remove an incorrect use of PAGE_SIZE
The mdts value is in terms of the nvme page size, not the host page
size. On many architectures these are both 4k, however on arm64 it is
possible to build a system with the host page size of 16k.

Use NVME_MPS_SHIFT to get the correct nvme page shift.

Reviewed by:    imp
Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D55334
bfb7c81f93b534f8c10928d80ea56c8177a6f39f Andrew Turner 2026-02-18 14:20:57
devmatch: Add SPDX-License-Identifier tag
Reviewed by: emaste
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55271
835813c88ab6e44590c2d47e2d66fe153cf9dfc5 Tuukka Pasanen 2026-02-09 08:17:45
ifconfig: Add SPDX-License-Identifier tags
Reviewed by: emaste
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55272
d685228989020f7bceebdaf6ea79be09305d2954 Tuukka Pasanen 2026-02-09 08:18:34
ed: add missing test entry in mtree
Reported by:  olce
9a6e77e3dbc0daa7c4a3e816a73bc45d0af27b9e Baptiste Daroussin 2026-02-19 11:56:23
ypserv: Add SPDX-License-Identifier tags
Reviewed by: emaste
Sponsored by: The FreeBSD Foundation
ac8189e6de8fb5de31d5b662f1d406f27285ac74 Tuukka Pasanen 2026-02-16 09:46:12
yppush: Add SPDX-License-Identifier tag
Reviewed by: emaste
Sponsored by: The FreeBSD Foundation
d6bec77ad8f80438f10bb3fe7a8bc8e9265e2858 Tuukka Pasanen 2026-02-16 09:45:25
virtual_oss: Add SPDX-License-Identifier tags
Reviewed by: emaste
Sponsored by: The FreeBSD Foundation
6d5a428056b52c7ce47b01d6af8aaaff6feecfdd Tuukka Pasanen 2026-02-16 09:43:58
makefs: Add SPDX-License-Identifier tags
Reviewed by: emaste
Sponsored by: The FreeBSD Foundation
6010b73fa9574b8e651b08451f30ba9c05f3f894 Tuukka Pasanen 2026-02-16 09:26:43
bhyve: Fix unchecked stream I/O in RFB handler
Convert rfb_send_* helpers to return status codes and check their
results. Add missing checks for stream_read() and stream_write() returns
during the handshake in rfb_handle() to avoid acting on failed I/O.

Signed-off-by:  Hayzam Sherif <hayzam@gmail.com>

Reviewed by:    markj
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D55343
818971cc403e78d42b77eb6c18a2d2a073e5541f Hayzam Sherif 2026-02-19 19:24:02
bhyve: fix USB mouse requests
USB HCI requests may not include HCI transfer block structures (i.e.,
xfer->data[] == NULL), but in several places, the USB mouse emulation
code assumes one will exist. This can lead to a NULL pointer dereference
and a SEGV in the bhyve process as observed via experiments with an
Ubuntu guest and PyUSB code. Note that many of the cases processing
other request types already checked for data == NULL.

While in the neighborhood, fix a typo in the loop iterating over the
usb_data_xfer_block array which used the wrong variable to check for
valid data (idx vs. i).

Reported by: danmcd@edgecast.io
Obtained from: SmartOS
MFC after: 1 week
Relnotes: yes

Reviewed by:    imp
Differential Revision:  https://reviews.freebsd.org/D54661
10d5404adb11773969a600428d1abeb4308d98aa Chuck Tuffli 2026-02-19 22:27:49
fstyp: Add SPDX-License-Identifier tags
Reviewed by: emaste
Sponsored by: The FreeBSD Foundation
836ac989933bcd5b662979bfdec429a201c123a6 Tuukka Pasanen 2026-02-16 09:22:39
bhyve: Add SPDX-License-Identifier tag
Reviewed by: emaste
Sponsored by: The FreeBSD Foundation
499d0f04f55e52327d624d27ead3a0d16e3b465a Tuukka Pasanen 2026-02-16 09:02:51
loader.efi: tss_pa setup seems to be flawed in trap.c
since sd_lobase is 24 bits, we would need to shift 24 bits, not 16.

Reviewed by:    kib
Differential Revision:  https://reviews.freebsd.org/D55178
dc11af08a4983237a90c3500ecf500ed41b0802b Toomas Soome 2026-02-21 08:49:34
loader.efi: free_tables() appears to free tss_pa twice.
we check and reset loader_gdt_pa, but use FreePages(tss_pa).

Reviewed by:    kib
Differential Revision:  https://reviews.freebsd.org/D55179
f2186bbd63fc4185a42740dfee8c403e3d9b2ae9 Toomas Soome 2026-02-21 15:20:54
loader.efi: efi_redirect_exceptions does use uninitialized pointer
loader_idt.rd_base is not set when we are attempting to bcopy(),
resulting to data stored to page 0 and therefore corrupting it.

Reviewed by:    kib
Differential Revision:  https://reviews.freebsd.org/D55180
23605a8e5124dcbd27aa3a8bfbca20ee2b179361 Toomas Soome 2026-02-21 15:27:35
ttys: Correct comment about required statuses
The status field also accepts onifconsole and onifexists,
so it looks crusty saying that it only accepts on and off.

Reviewed by:    imp
Closes:         https://github.com/freebsd/freebsd-src/pull/2042
6d15e0efa0b3a85cf69f3c72d3f24f4f97850a03 Alexander Ziaee 2026-02-22 07:37:45

Libraries

libusb: make libusb_hotplug_get_user_data actually return user_data
MFC After:    2 days
Reviewed by:    adrian
Differential Revision:  https://reviews.freebsd.org/D55291
be522176951d8b542de9354f4ec9ac7603745b71 Baptiste Daroussin 2026-02-15 19:39:18
libusb: dequeue next transfer on completion to prevent stalls
The transfer proxy callbacks (bulk/interrupt, control, isochronous)
only called libusb10_submit_transfer_sub() in the START path to
pipeline the second kernel transfer slot. On completion or error,
no attempt was made to dequeue the next pending transfer from
tr_head onto the now-free slot.

When more than two async transfers were submitted on the same
endpoint, the third (and subsequent) transfers would remain stuck
on tr_head indefinitely, since no completion ever triggered their
submission. This caused a protocol-level deadlock in applications
like adb that submit header + payload + zero-length terminator as
three separate bulk transfers in sequence.

Fix by calling libusb10_submit_transfer_sub() after every
libusb10_complete_transfer() in all three proxy callbacks.

MFC After:      2 weeks
Reviewed by:    adrian
Differential Revision:  https://reviews.freebsd.org/D55289
38c18332642500fdfe075a82f88e033f6673a53f Baptiste Daroussin 2026-02-15 18:07:07
libc: print extended errors from warn(3) and vwarn(3)
Noted and reviewed by:        mckusick
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D55327
ffbf95907039821b69dfe1607d1695b46af82e35 Konstantin Belousov 2026-02-17 11:12:02
libc: improve include usage for exterror sources
Include sys/types.h by exterr.h, since size_t is used.
Drop include of sys/exterr_cat.h, it is useless for the only prototype
provided.

Reviewed by:    mckusick
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D55337
1443a455a96e587a7b49608def79495e9d74513f Konstantin Belousov 2026-02-17 20:56:50
libfetch: Restore timeout functionality
PR:           https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293124
MFC after:      1 week
Fixes:          https://cgit.freebsd.org/src/commit/?id=792ef1ae7b94 ("Refactor fetch_connect() and fetch_bind() to improve readability and avoid repeating the same DNS lookups.")
Reverts:        8f8a7f6fffd7 ("libfetch: apply timeout to SSL_read()")
Reviewed by:    eugen, imp
Differential Revision:  https://reviews.freebsd.org/D55293
73b82d1b0a2f09224e6d0f7a13dd73c66d740207 Dag-Erling Smørgrav 2026-02-18 15:10:47
stddef.h: add ptraddr_t
I'd missed that stddef.h is standalone and isn't a copy of sys/stddef.h
in my initial merge.

Effort:         CHERI upstreaming
Reviewed by:    kib
Sponsored by:   Innovate UK
Fixes:          https://cgit.freebsd.org/src/commit/?id=dca634d1544b ("new type: ptraddr_t")
Differential Revision:  https://reviews.freebsd.org/D55305
cb59eec9ebbf1ae3a24223431ed1d947674c8c6a Brooks Davis 2026-02-19 15:04:51
Commit group #4: stddef.h: centralize definition of offsetof()
stddef.h: centralize definition of offsetof()

Move to sys/_offsetof.h and use __builtin_offsetof() instead of
__offsetof to avoid reintroducing sys/cdefs.h polution in stddef.h.

This has the side effect of allowing sys/stddef.h to be included after
stddef.h which can happen in compatability headers.

Effort:         CHERI upstreaming
Sponsored by:   DARPA, AFRL
Reviewed by:    imp, kib
Differential Revision:  https://reviews.freebsd.org/D55307
2adc3f0db1877dbe9801e6dacfa9ae8df8879549 Brooks Davis 2026-02-19 15:05:22

types.h: use central definition of offsetof()

Previously this broke if included after (sys/)stddef.h.

Reported by:    des
Fixes:          https://cgit.freebsd.org/src/commit/?id=2adc3f0db187 ("stddef.h: centralize definition of offsetof()")
dcbd1fccdc66ec33f0652be34a1c8bdd5293f90c Brooks Davis 2026-02-19 16:13:57
libnetbsd: import `__CTASSERT(..)` macros
These compile-time assert macros are similar to `Static_assert` on FreeBSD.

These macros are in use in newer versions of `contrib/netbsd-tests`.

Obtained from:  https://github.com/NetBSD/src (c26cc77b3a0b26b95a2)
MFC after:      1 week
d1f1402dff63dd163d4ba4ac65f7f2ffd00c5e08 Enji Cooper 2026-02-20 20:24:46
Commit group #5: libfetch
libfetch: Clean up fetch_info usage

* Provide a wrapper for the common if (verbose) fetch_info(...) idiom.

* Replace remaining instances of fprintf(stderr, ...) with fetch_info().

* Fix a few style nits.

MFC after:      1 week
Reviewed by:    imp
Differential Revision:  https://reviews.freebsd.org/D55405
1b7c4d29fdfc975facdc43f6da50947cf3bb8e4a Dag-Erling Smørgrav 2026-02-21 01:18:11

libfetch: Fail hard if interrupted while connecting

This fixes an issue where the first address that DNS returns is blocked
by a packet filter, so we hang for a while, then the user hits Ctrl-C,
interrupting connect(2), whereupon we move on to the next address, get
a connection, request the file, and return to fetch(1), which sees that
SIGINT was caught and bails.

Note that we make no attempt to enforce fetchTimeout in the connection
phase, and never have.  It's feasible, but non-trivial, so we'll leave
it as an exercise for future us.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293312
MFC after:      1 week
Reviewed by:    imp
Differential Revision:  https://reviews.freebsd.org/D55406
afbdcd402bb439bd3d487baaad63b68e95929265 Dag-Erling Smørgrav 2026-02-21 01:18:15

libfetch: Gracefully skip unsupported protocols

If socket() fails because the address family or protocol is unsupported,
just continue with the next address.

MFC after:      1 week
Reviewed by:    imp
Differential Revision:  https://reviews.freebsd.org/D55407
b5d570e711da1dad303312bebaf1bd2fb720f0dc Dag-Erling Smørgrav 2026-02-21 01:18:18
libc: Roll {l,ll,imax}abs(3) manpages into just abs(3)
No need to have 4 separate manpages for these functions. Use opportunity
to change parameter names in the source from j -> i to reflect the name
used in POSIX. (The ISO C standard uses j but i is a better name
anyway.)

Reviewed by:    des, rpokala
Approved by:    rpokala
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D55361
98ffaae49fea5c478230ef68086bcea89a6f654b Aymeric Wibo 2026-02-19 03:02:19

Filesystems

fusefs: remove the obsolete rename_lock
This lock was included in the original GSoC submission.  Its purpose
seems to have been to prevent concurrent FUSE_RENAME operations for the
current mountpoint, as well as to synchronize FUSE_RENAME with
fuse_vnode_setparent.  But it's obsolete, now that ef6ea91593e added
mnt_renamelock .

MFC after:      2 weeks
Sponsored by:   ConnectWise
Reviewed by:    kib
Differential Revision: https://reviews.freebsd.org/D55231
7755a406a6ae3801e885a79f714155f97c4d2bc6 Alan Somers 2026-02-10 20:45:23

Kernel

Kernel stuff (other than networking, filesystems, and drivers).

sys/compat/freebsd32: FF clock struct: Don't pack, use 'ffcounter32'
Packing 'struct ffclock_estimate32', in absence of substitution of
'ffcounter' (some 'uint64_t') by a 32-bit compatible type, was necessary
on amd64 since 'uint64_t' is 8-byte aligned, which leaves a padding gap
of 4-byte between fields 'update_time' and 'update_ffcount'.  This gap
does not exist on i386 (or amd64 32-bit mode), as 'uint64_t' there is
only 4-byte aligned.

Change the type of the 'update_ffcount' and 'leapsec_next' fields to the
recently introduced 'freebsd32_uint64_t', and adapt copy-in and copy-out
accordingly.  Using `CP()` previously worked due to the '__packed__'
attribute.

Reviewed by:    kib
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D55282
7c2fc4419db43a8a7d1886b0b8e08aa97bfa31e4 Olivier Certner 2026-02-13 17:03:31
sys/abi_types.h: time32_t is 64-bit on non-x86 architectures
As long as 'sys/compat/freebsd32/freebsd32.h' is used unconditionally on
all platforms (in 'kern_umtx.c' at least), the rule of thumb is to
ensure that 'struct foo32' on a 32-bit arch is type-compatible with
'struct foo' on the same arch.  In practice, this is very simple to
achieve: All 'foo32' types should be compatible with 'foo' on 32-bit
architectures, which is what we are supposed to do already for compat'
structures by design.  The recently introduced 'freebsd32_uint64_t' type
typically supports that.

This change fixes commit 87632ddf67b0 ("openzfs sys/types32.h: use
abi_compat.h for time32_t") which was defining 'time32_t' to 'in32_t'
for all 32-bit architectures, which is wrong but on i386.  By luck, this
did not change the size of whole 'struct ffclock_estimate32' (whose size
is compile-time asserted) because 'struct bintime32''s one would stay
the same, as even if its field 'sec' was incorrectly sized after that
commit, the 'frac' one is 64-bit and 64-bit aligned on all non-x86
architectures so its offset in 'struct bintime32' would stay the same.

Reviewed by:    kib
Fixes:          https://cgit.freebsd.org/src/commit/?id=87632ddf67b0 ("openzfs sys/types32.h: use abi_compat.h for time32_t")
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D55283
4ccca2100887943b11187787004bc8efc2a149c6 Olivier Certner 2026-02-13 17:20:13
vmm: Allow the use of PCI passthrough in a jail
After commit e11768e94787 ("vmm: Add PRIV_DRIVER checks for passthru
ioctls"), it is not possible to use PCI passthru from jails, as
PRIV_DRIVER is not granted to jails.  Apparently some users expect this
to work, understanding that jailing bhyve provides little security
benefit in this configuration.

I believe we should disable ppt access in jails even when allow.vmm is
configured.  To provide an escape hatch for users, add a new
allow.vmm_ppt jail configuration knob, and check it when handling ppt
ioctls in jails.  Also add a new PRIV_VMM_PPTDEV to replace the use of
PRIV_DRIVER.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292750
Reviewed by:    corvink
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D55066
c71354030a26900e564f0c80a8abdff7e77b3c9e Mark Johnston 2026-02-16 14:56:25
pdrfork(2): do require RFPROCDESC | RFPROC
when RFSPAWN is not specified, as stated in the man page.
rfork(2) cannot modify non-curproc, which is why RFPROC is required,
the syscall cannot act on arbitrary process descriptor.
If RFPROCDESC is not specified, the syscall does not make sense,
use rfork(2).

Reported and tested by: pho
Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D55306
b05be03ceea0a95f7783ddc890885f34bb4023d4 Konstantin Belousov 2026-02-14 16:38:23
dtrace: Implement ustackdepth for arm64
MFC after:    2 weeks
Differential Revision:  https://reviews.freebsd.org/D52475
afd64316c869eb00dde4d6b4af61bca0cb2197f1 Mark Johnston 2026-02-17 17:37:42
bus: Document special ranges of IVARs
Some IVAR indices are special in that they have global meaning across
multiple buses where as other IVARs are always private to the local bus.
Try to document this a bit and add constants for the various ranges to
avoid future conflicts.

This is a no-op, but IVAR indices are now generally defined as enums
as that makes it easier to define them in terms of ranges.

Reviewed by:    imp, royger, andrew
Differential Revision:  https://reviews.freebsd.org/D54159
6cf4e30252fe48b230b9d76cac20576d5b3d2ffa John Baldwin 2026-02-17 20:45:13
bus: Change a few bus drivers to use consistent IVAR ranges
A few bus drivers used 1 instead of 0 as the starting index of their
private IVARs.  Fix those drivers to start at BUS_IVARS_PRIVATE for
consistency.

Differential Revision:  https://reviews.freebsd.org/D54934
e3d2108a6e90098010c62638ab9f8bdf974e2c39 John Baldwin 2026-02-17 20:45:25
arm gicv3: Use private IVAR range for GICV3 IVARs
Suggested by: andrew
Differential Revision:  https://reviews.freebsd.org/D54191
dc47d99c5022540477489d2b850b92a537965c0f John Baldwin 2026-02-17 20:45:48
bus: Renumber global IVAR ranges
Use a more consistent scheme for allocating shared IVAR index ranges.

Differential Revision:  https://reviews.freebsd.org/D54161
87984eddde4dca3ded908f70d2699788e9d8d019 John Baldwin 2026-02-17 20:46:06
sdt: Disable SDT probes in kernel modules for GCC on aarch64
For PIC code, the existing assembly constraints do compile on aarch64.
Some kernel modules build ok using the 'p' constraint with the 'a'
operand modifier, but not all.

Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D55166
5a02f004fbacee9b2d59b59b11f8910e5736b89c John Baldwin 2026-02-17 20:48:04
vfs_mount.c: Don't call VFS_MOUNT() if only exports are being updated
PR#293198 reports a hang within ZFS when exports
are being updated concurrently with a VOP_SETEXTATTR().
The hang appears to be caused by mishandling of the
z_teardown_lock, but fixing handling of this lock appears
to be a major effort. Since the hang occurs when
VFS_MOUNT() acquires a write/exclusive z_teardown_lock,
which rarely occurs, except when exports are being updated,
this patch avoids the VFS_MOUNT() call for this case.

Avoiding a VFS_MOUNT() call fixes the hang for the case
reported by PR#293198 and is also an optimization.
As such, this patch avoids the VFS_MOUNT() call when only exports
are being updated similar to what was already being done
within vnet prisons.

PR:     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293198
Reviewed by:    kib, markj
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D55318
935cf3284f520c90a63baaadb762caaa30084f5c Rick Macklem 2026-02-17 22:57:42
smp: Use bitwise operation to count cpu number
Previously, we iterated over all CPUs using CPU_FOREACH and checked
individual bits to count valid CPUs. Refactor this to use a bitwise AND
and popcount to count the number of enabled bits directly.

Approved by:    markj (mentor)
MFC after:      2 weeks
Differential Revision: https://reviews.freebsd.org/D54474
e387d9438ba0258b88ebe03ef139bc6fd70b5a46 ShengYi Hung 2026-01-03 16:32:50
intrng: Shuffle unhandled interrupts too
When interrupt vectors are first allocated, they get assigned to
CPU #0; at SI_SUB_SMP / SI_ORDER_SECOND (aka once we have multiple
CPUs), the intr_irq_shuffle SYSINIT clears their CPU sets with the
effect of forcing them to be assigned to new CPUs later.

In case where interrupt vectors were allocated *but not yet bound*
this code did not run, with the effect that those interrupts would
remain pinned to CPU #0 forever.  This affected the ena(4) driver,
which allocates interrupts for I/O when the device is attached but
doesn't set them up until the interface is brought up much later in
the boot process (and, crucially, long after intr_irq_shuffle runs).

Adjust intr_irq_shuffle to clear the CPU set for an interrupt source
even if it currently has no handlers, so that it will be properly
assigned to a CPU when it is used later.

Reviewed by:    andrew, mhorne
MFC after:      1 month
Sponsored by:   Amazon
Differential Revision:  https://reviews.freebsd.org/D55284
b2ba4131b9b08d6231392c0b798d0ff35809f600 Colin Percival 2026-02-14 00:35:26
kqueue: Make kn_sfflags unsigned
This is used to hold a copy of the original fflags, which is unsigned.

MFC after:      3 days
Reviewed by:    kib, markj
Differential Revision:  https://reviews.freebsd.org/D55348
d379432808ed286dc051a34138ae250addbc469c Dag-Erling Smørgrav 2026-02-18 18:28:16
vm_page.h: Materialize a spare bit
No functional change (intended).

MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
d18aaeff8fd314e79642062d95110ad174bd1882 Olivier Certner 2026-02-16 12:53:16
sys/syscallsubr.h: assorted tidying
- gc unused struct kevent
- sort kern_frmdirat, kern_funlinkat, kern_kexec_load, and kern_kqueue
- put user_ functions in their own section

Effort:         CHERI upstreaming
Reviewed by:    kib
Sponsored by:   Innovate UK
Differential Revision:  https://reviews.freebsd.org/D55309
a31127e6dfbfd96e512e0a238f4359c90849e3fb Brooks Davis 2026-02-19 15:06:29
vmm: Add privilege checks to vmmctl operations
In preparation for supporting creation of VMs by unprivileged users, add
some restrictions:
- Disallow creation of non-transient VMs by unprivileged users.  That
  is, if an unprivileged user creates a VM, the VM must be destroyed
  automatically once the last fd referencing it is gone.
- Disallow destroying VMs created by a different user, unless the caller
  has the PRIV_VMM_DESTROY privilege.

Reviewed by:    bnovkov
MFC after:      2 months
Sponsored by:   The FreeBSD Foundation
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D54740
d4c05edd410e7925875c844c0642929410f22053 Mark Johnston 2026-02-19 14:38:29
vmm: Enable unprivileged bhyve
- Add the vmm group.
- Let /dev/vmmctl belong to the vmm group by default, and give group
  write permissions.
- When creating a VM's device files, make them owned by the creating
  process' effective UID.

Reviewed by:    bnovkov
MFC after:      2 months
Sponsored by:   The FreeBSD Foundation
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D54741
af099eaa5ec3604639807b7c5d3ed5be336e5643 Mark Johnston 2026-02-19 14:38:46
vmm: Start using exterror
For now, just describe the error where an unprivileged user attempts to
run a VM without DESTROY_ON_CLOSE semantics, i.e., monitor mode.

Reviewed by:    bnovkov
MFC after:      2 months
Sponsored by:   The FreeBSD Foundation
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D54743
bc7862bc916c3b81bcdc374e5144ab2f5bf62b19 Mark Johnston 2026-02-19 14:39:12
cpufreq(4): cpufreq_levels_sysctl(): Remove always false NULL test
'sc->levels_buf' is initialized with malloc(M_WAITOK), so can never be
NULL.  Another sysctl handler function (cpufreq_curr_sysctl()) already
relies on that.

MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
953b9164c3d93e820a53b4fdebbde7fabb7b7644 Olivier Certner 2026-02-12 12:33:46
procctl(PROC_REAP_KILL): use pgrp pg_killsx sx to sync with fork
PROC_REAP_KILL must guarantee that all reaper descendants are signalled.
In particular, it must ensure that forked but not yet fully linked
descendants cannot escape killing. Currently, proc_reap() fullfils the
guarantee by single-threading stopping the target process, which moves
the target to the userspace boundary, so the target cannot fork while
the signal is sent.

Single-threading has undesirable effect of sometimes terminating sleeps
with EINTR.

Since the time that the bug with PROC_REAP_KILL was fixed, we grow
the pg_killsx mechanism that is similarly used by the process group
signalling to ensure that no member of the process group escapes.
Reuse pg_killsx for PROC_REAP_KILL as well.

Besides the functional change of no longer causing spurious EINTR, not
single-threading the target means that we no longer need to delegate the
work to the taskqueue.

PR:     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=290844
Reported by:    bdrewery
Reviewed by:    des, markj
Tested by:      des, pho
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D55288
be140717a0a4bbfa7176d334c36364d34a0b1bc5 Konstantin Belousov 2026-02-15 11:05:36
reap_kill_subtree_once(): reap_kill_proc_work() might drop proctree_lock
Due to this, restart the iteration over the p_reapsiblings if the lock
was dropped.

Reviewed by:    markj
Tested by:      pho
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D55288
0e67c3f675eab3a9c00b76e3886ace7700ef1bd4 Konstantin Belousov 2026-02-16 15:20:02
procctl(PROC_REAP_KILL): align error reporting with pgkill(2)
ESRCH from cr_cansignal() means that the target process should be not
visible to the initiator.  So do not report pids with ESRCH result.

Noted by:       markj
Reviewed by:    markj, olce
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D55341
5c8af592f69a31da94c45722dcd74afcf0ab375e Konstantin Belousov 2026-02-18 08:22:51
sysctl: Avoid calling priv_check() unnecessarily
After commit 7d1d9cc440f80 we only serialize large sysctl requests for
non-root users, but we should avoid calling priv_check() unless the
request actually is large, as that's not the common case.  In
particular, priv_check() might not be cheap to evaluate if MAC hooks are
installed.

Reviewed by:    olce, kib
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D55377
0fa6ce255661acc984a45deaf2d710149b957ce6 Mark Johnston 2026-02-21 16:16:32
pipe: Avoid unnecessary priv_check() calls in pipespace_new()
Running out of pipe map KVA is a rare case, so reorder checks
accordingly, presuming that calling priv_check() is more expensive than
the calculation.  In particular, priv_check() might not be cheap to
evaluate if MAC hooks are installed.

Reviewed by:    olce, kib
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D55378
fa77660a3ccbd5f30e88093703b0f93892ef35d7 Mark Johnston 2026-02-21 16:28:49
HYM8563: Add HYM563 RTC driver to common config.
MFC after:    3 weeks
dc9a7b15b78b2b3d141c3a8c83fb2c88b54c2762 Michal Meloun 2025-11-06 19:52:50
buf: Relax an assertion in BUF_UNLOCK
The BUF_UNLOCK macro asserts that B_REMFREE is not set, as it is up to
the lock owner to complete the dequeue from the free list before
releasing the lock.  However, if the thread has acquired the lock
multiple times, then releasing the recursive lock should be ok.  Modify
the assertion to reflect this.

This was triggered by an out-of-tree filesystem.

Reviewed by:    kib
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D55418
eaeb356ce3491f05b6a99ccd485180a42df22c46 Mark Johnston 2026-02-22 19:26:17
arm: Add EARLY_PRINTF for ns8250 on arm/aarch64 platforms.
Reviewed  by: adrian (previous version)
MFC after:      3 weeks
d2dea8b46a8a61359c5185f4af3cc1761139bcb4 Michal Meloun 2025-02-02 14:22:34

Build system

OpenSSL: install EVP_CIPHER_CTX_get_app_data.3 once
A separate EVP_CIPHER_CTX_get_app_data.3 was added in the OpenSSL 3.5.5
import, but the link to EVP_EncryptInit.3 was still being installed
which stomped on the file and created inconsistent entries in the METALOG.

Reviewed by:    emaste
Found by:       package_check script in Cirrus-CI
Fixes:          https://cgit.freebsd.org/src/commit/?id=1731fc70f734 ("OpenSSL: update vendor sources to match 3.5.5 content")
Sponsored by:   Innovate UK
Differential Revision:  https://reviews.freebsd.org/D55332
c4130a8a84e1ce0fc9c05d2b48f83e66ade302aa Brooks Davis 2026-02-17 18:24:29
Commit group #6: OptionalObsoleteFiles: Add figpar to dialog section
OptionalObsoleteFiles: Add figpar to dialog section

MFC after:      3 days
Fixes:          https://cgit.freebsd.org/src/commit/?id=15d781b53233 ("lib: Gate libfigpar under MK_DIALOG")
Reviewed by:    jhb, emaste
Differential Revision:  https://reviews.freebsd.org/D55330
bc6c827078b7ab62271ce7ac1c4439b82fd2f98c Dag-Erling Smørgrav 2026-02-17 22:58:36

OptionalObsoleteFiles: Add missing figpar MLINKS

MFC after:      3 days
Fixes:          https://cgit.freebsd.org/src/commit/?id=bc6c827078b7 ("OptionalObsoleteFiles: Add figpar to dialog section")
efcfba9b31ad11ec901085c38b79e40289b9e7bc Dag-Erling Smørgrav 2026-02-18 08:12:26
libc: add man page for uexterr_gettext(3)
Reviewed by:  mckusick
Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Differential revision:  https://reviews.freebsd.org/D55336
a03f285afafae243396c9bc7892cbe717a3ac37d Konstantin Belousov 2026-02-17 20:46:09
OptionalObsoleteFiles: Add missing dpv MLINK
MFC after:    3 days
32ec8e29a6c3025a864f85678db63a8568c8fc86 Dag-Erling Smørgrav 2026-02-18 10:06:50
ed: convert test suite to ATF/kyua
MFC After:    1 week
f015e48a4a0482787b46e972754619a75475439c Baptiste Daroussin 2026-02-17 16:14:09
build: add stddef.h to define ptraddr_t as required
Effort:               CHERI upstreaming
Sponsored by:   Innovate UK
Reviewed by:    kib
Co-authored-by: Alfredo Mazzinghi <am2419@cl.cam.ac.uk>
Co-authored-by: Alex Richardson <Alexander.Richardson@cl.cam.ac.uk>
Differential Revision:  https://reviews.freebsd.org/D55308
89c3ae5fc9cc24af940699b7e282fd24763f7ffa Brooks Davis 2026-02-19 15:05:50
OptionalObsoleteFiles: Don't mark /usr/lib/debug/boot directory obsolete
The intent of the currect code is to ignore anything under
/usr/lib/debug/boot/*.  But we also should make sure that
/usr/lib/debug/boot directory is also ignored and is not marked
obsolete.  If we don't do that, `make DBATCH_DELETE_OLD_FILES
delete-old` will try to rmdir(1) this directory, which will cause an
error, since /usr/lib/debug/boot may have nested directories like
kernel/ and modules/.

Reviewed by:    markj
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D55077
c8191c3d613928d8bd6060aa2f7da349b4090cc1 Artem Bunichev 2026-02-19 19:09:48
packages: Don't create empty packages
If a package plist only contains directories, but no files, do not
create the package.

This fixes an issue where setting "package=foo" in mtree causes the
"foo" package to always be created, even if nothing else installs in
that package, because the mtree entry is always added to the plist.

This most often happens:

* With architecture-specific directories, because mtree can't install
  a directory conditionally based on architecture, and

* With packages that are completely empty when a particular src.conf
  knob is disabled, because mtree will still create the directories.

Although it's theoretically possible that we might want to create a
package that only contains directories, there are no such packages
today.

MFC after:      2 weeks (stable/15 only)
Reviewed by:    manu, des
Differential Revision:  https://reviews.freebsd.org/D55412
Sponsored by:   https://www.patreon.com/bsdivy
7965c93e4d4103ba6ed7ac1e5f1599c93cbcdbf7 Lexi Winter 2026-02-21 20:19:42
build: Move all of lp under LPR option
* Tag related directories with package=lp

* Make the examples/printing directory conditional on MK_LPR

* Make the hosts.lpd(5) manual page conditional on MK_LPR

MFC after:      3 days
d4f6cb75424950ee776833ebc6b57855c094a610 Dag-Erling Smørgrav 2026-02-20 18:20:04
libc: Roll {l,ll,imax}div(3) manpages into just div(3)
No need to have 4 separate manpages for these functions.

Reviewed by:    ziaee, rpokala, des
Approved by:    rpokala, des
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D55360
c242bf1b70796313dabb5594b5aacdf4c20377aa Aymeric Wibo 2026-02-21 23:14:23
pkg-stage.sh: Add ext2 and ntfs
Having these packages available on release media may help users who
need to sneakernet other packages (e.g. firmware) from systems running
Linux or Windows.

Suggested by:   vladlen, ziaee
MFC after:      3 days
6881fd278d80ac63b4d511fc130a79ff16d1bb48 Colin Percival 2026-02-22 00:38:01
dtb: generate .DTB for some RK3588 based boards.
MFC after:    3 weeks
67fc0ff33d202bf90d93e0553271742ccd779bab Michal Meloun 2025-11-06 19:44:43

Internal organizational stuff

ObsoleteFiles: Deduplicate
Since we dropped support for profile libraries, all optional entries for
them are now non-optional.  Most of them were already duplicated there,
a few were not.

MFC after:      3 days
Reviewed by:    jhb, emaste
Differential Revision:  https://reviews.freebsd.org/D55329
f9f4a022a8583763903771915eafcd064184766a Dag-Erling Smørgrav 2026-02-17 22:58:31
CODEOWNERS: Add myself for sys/arm64/vmm
Sponsored by: Arm Ltd
a6ad3d4ca05058b2b78f91be941e1da0bb272ff5 Andrew Turner 2026-02-17 09:52:47
Use OLD_FILES for libtpool symlink and static libraries
Fixes:                https://cgit.freebsd.org/src/commit/?id=b78806b156f7 ("Remove additional libtpool and libuutil-related files")
a346348e45ec9f61c9fcc0e8f16042cc98f405f0 John Baldwin 2026-02-18 15:47:18
git-arc: Tweak heuristic for email address
In the email address heuristic, assume guest-* are external
contributors. It's a new convention, apparently.

Sponsored by:           Netflix
4fb507cae916d04fcd1e80e69923c5ca5c4340eb Warner Losh 2026-02-09 16:14:16
.github: support all stable branches
If this eventually poses a problem for unsupported branches we can fix
them directly.

Sponsored by:   Innovate UK

Reviewed by:    emaste
Differential Revision:  https://reviews.freebsd.org/D53838
1e189279576497498cafad6f8c0a36a377b786a3 Brooks Davis 2026-02-19 14:43:57
CONTRIBUTING.md: Github to Phabricator move adivce
When moving from Github to Phabricator, request that the original github
pull request be closed with the URL of the Phab. This cuts down on
clutter and helps us track things better.

Sponsored by:           Netflix
80950a079b20ed59616525fbca8ccaf3b6afcebc Warner Losh 2026-02-21 15:28:21
.gitignore: ignore additional unwanted files
Ignore more files generated by toolchains, e.g., `.pico`, etc. Ignore the
`.DS_Store` produced by macOS as well because all they provide is
additional file metadata that shouldn't be committed to `git`.

MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D55096
4544f34f2d30ee63ab1eec9fa52c31bd92d457ca Enji Cooper 2026-02-04 07:39:03

Testing

Commit group #7: pdrfork(2) tests
pdrfork(2) tests: RFPROCDESC|RFPROC are required

Tested by:      pho
Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D55306
68ba270f4fc7799929a3d59d710f44e5e9087def Konstantin Belousov 2026-02-15 15:00:57

pdrfork(2) tests: do not rely on (int *)-1 being invalid address

Explicitly mmap guard and use it as the invalid address instead.

Tested by:      pho
Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D55306
d6bf2d14a941a88e27a82a3f91790353e134b8f6 Konstantin Belousov 2026-02-15 15:09:48

pdrfork(2) tests: catch runaway child for EFAULT test

Reported and tested by: pho
Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D55306
44843695bc4e36abd15835d627da7d38c06f2219 Konstantin Belousov 2026-02-16 10:04:26

pdrfork(2) tests: split basic_usage

into pdrfork(2) call itself, and basic_usage_tail() that checks the
pdrfork(2) results.

Tested by:      pho
Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D55306
94e4de77dec809fa5a6975e3495a41d1924c25ad Konstantin Belousov 2026-02-15 15:22:19

pdrfork(2) tests: should wait for the child to exit

Tested by:      pho
Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D55306
f90ee665d035a5e4aea0bcaa18793e683ea253ed Konstantin Belousov 2026-02-15 16:53:48

pdrfork(2) tests: enable on x86

Use pfrfork_thread(3) instead of pdrfork(RFSPAWN) to make tests working
on x86.

Tested by:      pho
Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D55306
793e891f4ad1ef450f562a241fb0bd3b21d72251 Konstantin Belousov 2026-02-15 15:23:03
pdwait(2) tests: do not rely on (int *)-1 being invalid address
Explicitly mmap guard and use it as the invalid address instead.

MFC after:      1 week
05492ff6f636108c4fac40c259defe9b2eac7833 Alan Somers 2026-02-17 00:25:58
aio(4) tests: do not rely on (int *)-1 being invalid address
Explicitly mmap guard and use it as the invalid address instead.

MFC after:      1 week
dc9a8d300ba5c4c319589d78231e9d0e76576cbf Alan Somers 2026-02-17 00:27:02
capsicum-tests: remove Linux support
Now that this project is part of freebsd-src, it no longer needs to be
portable.  Remove Linux-only tests, cross-os compatibility code, and
compatibility with older FreeBSD versions.  Leave in place some
originally Linux-only tests that could now be ported to FreeBSD, like the
pipe2 tests.

Sponsored by:   ConnectWise
Reviewed by:    oshogbo
Differential Revision: https://reviews.freebsd.org/D54985
fba81b33aabff74ad03d5f9f9663c176cf060fa6 Alan Somers 2026-01-29 20:39:20
ndp tests: Fix an assertion in ndp_prefix_lifetime_extend
Here we have two interface addresses sharing a v6 prefix with finite
lifetime.  The intent was to make sure that adding the second address
didn't cause the prefix's valid lifetime to drop from 20s to 10s, but of
course, while the test is running it may drop from 20s to 19s, causing
the test to fail spuriously.  Relax the check a bit to avoid this.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293152
Fixes:          https://cgit.freebsd.org/src/commit/?id=74999aac5eff ("in6: Modify address prefix lifetimes when updating address lifetimes")
MFC after:      1 week
Sponsored by:   Klara, Inc.
eb425dfab19be8720cf29d560b4e778fc3531106 Mark Johnston 2026-02-17 17:08:34
ndp tests: Fix flakiness in ndp_slaac_default_route
The test sends RAs in order to test SLAAC handling in another host.
The router needs to also set net.inet6.ip6.forwarding=1, otherwise NAs
sent from it have the ROUTER flag clear, and upon receiving such an NA
the host will automatically delete routes learned from the router.

Fixes:          https://cgit.freebsd.org/src/commit/?id=feda329622bc ("netinet6 tests: Add a regression test for default router handling")
MFC after:      1 week
Sponsored by:   Klara, Inc.
1eb727727a9acb5f1e66e3f70b0146e7c9c5f710 Mark Johnston 2026-02-17 19:03:35
tests/ipfw: fix log:bpf test flakyness
There were several problems:

o Using 'netstat -B' is not a reliable way to make sure that all tcpdumps
  have attached to bpf(4).  The problem is that tcpdump (via libpcap) does
  several ioctl(2)s after the attach including two BIOCSETF.  Each of them
  flushes the input buffer.  So we can see tcpdump attached in 'netstat -B'
  and start sending packets and the packet will be captured by bpf(4)
  before BIOCSETF and freed and tcpdump won't read anything.  Instead of
  using netstat(1), use ps(1) and make sure each tcpdump is blocked on the
  "bpf" wait channel, which guarantees it is done with ioctl(2)s and is now
  blocked in read(2).
o Using 'nc -w 0' sets timeout not only on the connect(2) (as documented)
  but also on poll(2), which is not documented.  There is a race in shell
  that will make stdin not yet filled by 'echo foo' when nc(1) does
  poll(2).  With zero timeout, this poll(2) will immediately return and nc
  will exit.
o The waiting loop had two errors: using wrong variable name as well as
  invoking a subshell, that actually can't wait on the pid.
o The reading tcpdump was lacking '-q' option, that prevents any protocol
  interpretations.  Sometimes, when random port chosen by nc(1) would
  match some well-known (to tcpdump) port, the output would differ from
  the expected.

PR:     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293241
38edf96b1787ce3d8c00e4466348dab891c7a9ea Gleb Smirnoff 2026-02-19 02:39:00
syslogd/tests: use kern.features to detect INET support
This fixes INET feature detection with kernel configs
that do not include the kern.conftxt sysctl, such as
riscv64 currently[0].

[0] https://ci.freebsd.org/view/Test/job/FreeBSD-main-riscv64-test/16514/testReport/usr.sbin.syslogd/syslogd_forwarded_format_test/O_flag_bsd_forwarded_legacy/

Reviewed by:    markj
Approved by:    emaste (mentor)
MFC after:      3 days
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D55383
c721ceeb3ef0b29d06e6c3c634579f3bc85cc28b Siva Mahadevan 2026-02-19 20:53:26

Style, typos, and comments

These could go in other categories, but it's more clear if they're here instead.

Correct Identifer typo in SPDX tags
07d29f9c177e731e4497bedf5fde09176c90b444 Ed Maste 2026-02-18 19:20:12
src.conf.5: Fix "incompatibility" typo
MFC after:    3 days
Reviewed by:    ziaee
Signed-off-by:  Christos Longros <chris.longros@gmail.com>
Closes:         https://github.com/freebsd/freebsd-src/pull/2035
102fed041d7f9aec6b962e215f53347a7e5d1a20 Christos Longros 2026-02-19 19:37:47
asmc: code style modernization and minor cleanups
- Allow `ASMC_DEBUG` to be treated as a variadic macro.
- Add ellipses around `sizeof(..)` calls.
- Reindent some of the lines to better follow style(9) with line
  wrapping.

A number of other clang-format changes were not taken as they are not
compatible with style(9).

MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D55394
e20e26e4e271ecb74e40d9a95ed3112ceaf9604f Enji Cooper 2026-02-20 03:51:13
fix typo in efi/loader/arch/amd64/trap.c
Rename grap_faults to grab_faults

Reviewed by:    kib
Differential Revision:  https://reviews.freebsd.org/D55177
503374af390eb84ec72167ab0be4751b2fe0a446 Toomas Soome 2026-02-21 08:40:48
ttys: Align comment whitespace and wrapping
This doesn't lengthen or shorten any configuration,
only comments, so merging the configuration will be safe.

Reviewed by:    imp
Closes:         https://github.com/freebsd/freebsd-src/pull/2042
0a492eb9c648e3ee11d36d14f6a0e3ed73b3da92 Alexander Ziaee 2026-02-22 07:32:46

Contrib code

ee: add unicode support
- Add native support for unicode everywhere.
- Remove Big5 specific code (and the menu entry)

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=291279
MFC After:      1 month
Tested by:       Marek Zarychta
Differential Revision:  https://reviews.freebsd.org/D55303
62fba0054d9eb2303116f54be1f9bc0e7b75cc15 Baptiste Daroussin 2026-02-14 05:44:54
vchiq: Fix return type of vchiq_copy_from_user
Change the function definition to map the declaration and consistently
return an enum value.  This fixes the following error reported by GCC:

sys/contrib/vchiq/interface/vchiq_arm/vchiq_2835_arm.c:322:1: error: conflicting types for 'vchiq_copy_from_user' due to enum/integer mismatch; have 'int(void *, const void *, int)' [-Werror=enum-int-mismatch]
  322 | vchiq_copy_from_user(void *dst, const void *src, int size)
      | ^~~~~~~~~~~~~~~~~~~~
In file included from sys/contrib/vchiq/interface/vchiq_arm/vchiq_arm.h:38,
                 from sys/contrib/vchiq/interface/vchiq_arm/vchiq_2835_arm.c:61:
sys/contrib/vchiq/interface/vchiq_arm/vchiq_core.h:647:1: note: previous declaration of 'vchiq_copy_from_user' with type 'VCHIQ_STATUS_T(void *, const void *, int)'
  647 | vchiq_copy_from_user(void *dst, const void *src, int size);
      | ^~~~~~~~~~~~~~~~~~~~

Differential Revision:  https://reviews.freebsd.org/D55163
1101292a555d24c11d7630b638dc25e1ed22c061 John Baldwin 2026-02-17 20:47:00
Merge commit bfb276e55c76 from upstream OpenZFS (by Jessica Clarke)
  Once upon a time, 32-bit PowerPC did indeed have a 32-bit time_t, but
  FreeBSD 12.0 switched to a 64-bit time_t for PowerPC as an ABI break,
  which predates the addition of FreeBSD support to OpenZFS. Moreover,
  64-bit PowerPC has existed since FreeBSD 9.0, where __powerpc__ is also
  defined (alongside __powerpc64__ to disambiguate), which has always had
  a 64-bit time_t. This code has therefore always been wrong for all
  PowerPC variants. Fix this by limiting the 32-bit case to just i386,
  which is the only architecture in FreeBSD to have a 32-bit time_t and
  not have broken ABI, due to its special legacy compatibility status.

  Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
  Reviewed-by: Alexander Motin <alexander.motin@TrueNAS.com>
  Signed-off-by: Jessica Clarke <jrtc27@jrtc27.com>
  Closes #18217
  Closes #18218

Reported by:    fuz
MFC after:      1 day
45c1e44779e3d365f5e31f75546d48ce34e4ee05 Jessica Clarke 2026-02-18 18:45:26
MFV: less v692.
e2abec625bf07c054f7ac2df2402d6c454113df8 Xin LI 2026-02-21 05:33:50
Retire GNU diff3
We added the option to build BSD diff3 in commit 2201f7c49f11 ("Build
BSD diff3 if GNU diff3 is disabled.") and made it the default in
4d5c434ed16e ("diff3: use bsd diff3 by default") after resolving
deficiencies relative to GNU diff3.  Thus, we can now remove the GNU
diff3 build infrastructure and source.

Reviewed by:    bapt, ziaee
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D46878
9a44e42a2b8f5f78695016344e760d72ad0b1220 Ed Maste 2024-10-02 16:30:57

Reverted commits

Commit & revert pair: fortune: fix netstat tip
fortune: fix netstat tip

netstati <mumble> 8 reports in bytes per second (averaged over 8
seconds) rather than bits per second because it reports the total
in bits over the 8 seconds...

Sponsored by:           Netflix
8e593a1f143203cace2e14bd6629a8ebdf9b47dc Warner Losh 2026-02-10 14:59:58

Revert "fortune: fix netstat tip"

This reverts commit 8e593a1f143203cace2e14bd6629a8ebdf9b47dc. I was
totally wrong, so just revert and get on with it.

Sponsored by:           Netflix
00e0b7bdb93972590362c5942b489ffed2a2ea20 Warner Losh 2026-02-19 05:53:47

Unclassified commits

Not classified automatically, and waiting for manual attention.

-- no commits in this category this week --

Technical notes

Dates:

Automatic grouping:

Automatic categories:

Source code:


Generated with commits-periodical 0.20 at 2026-03-30 17:58:25+00:00.

This work is supported by Tarsnap Backup Inc.

Alternate version: 2026-02-16 (debug) (contains info about the classification)