FreeBSD git weekly: 2026-09-21 to 2026-09-27

Introduction

This is a display of mostly-automatically-classified git commits from 2026-09-21 to 2026-09-27.

DEBUG: This version of the report is primarily for checking the classifiers, and therefore contains extra information (in this colour).

Table of contents and commits per category:

(1) Highlighted commits (these are copies, not in stats)
2 1.2% Userland programs
20 11.8% Documentation
55 32.5% Hardware support
7 4.1% Networking
20 11.8% System administration
3 1.8% Libraries
2 1.2% Filesystems
31 18.3% Kernel
7 4.1% Build system
5 3.0% Internal organizational stuff
6 3.6% Testing
3 1.8% Style, typos, and comments
8 4.7% Contrib code
0 0.0% Reverted commits
0 0.0% Unclassified commits
169 100% total
Technical notes about this page

debug: info about the automatic classification

num % num changed stage
3 1.8% 0 01-style
23 13.6% 0 02-filenames_wildcards
6 3.6% 0 02b-filenames_wildcards2
79 46.7% 0 03-filenames_plain1
45 26.6% 0 04-filenames_plain2
6 3.6% 0 05-summary-prefix
7 4.1% 0 Manually-classified commits
0 0.0% 0 Unclassified commits

debug: more stats

num % stage
0 0.0% Misclassified commits
162 95.9% Classified commits, no corrections

debug: groups

0 0.0% num in revert
1 0.6% num in fixes
25 14.8% num in consecutive
26 15.4% Commits in groups

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.

misc: Avoid use of Unicode closing single quote
The Unicode closing single quotation mark is classified as a homoglyph
and can trip automated code quality checks in downstream CI pipelines or
cause code review UIs to refuse to display a file.  If used as an
apostrophe, use the ASCII single quote instead.  If used as a closing
single quote, replace with double quotes or no quotes at all.

Sponsored by:   Klara, Inc.
Sponsored by:   NetApp, Inc.
Reviewed by:    ziaee, obiwac, olce
Differential Revision:  https://reviews.freebsd.org/D59911
7399be2030f5e8619bf8d7b379d0b42d21ca8052 Dag-Erling Smørgrav 2026-09-23 12:43:13

debug: classified in 04-filenames_plain2 by 'sys/'

Userland programs

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

sdiff.1: Document exit status and --help
MFC after:    3 days
Approved by:    bnovkov (mentor)
Sponsored by:   fme AG
Differential Revision:  https://reviews.freebsd.org/D59927
14c7492637ec0644b5bb88da114e8cc76b9bf629 Mateusz Piotrowski 2026-09-23 14:19:05

debug: classified in 04-filenames_plain2 by 'usr.bin/'

whereis(1): Simplify code
Simplify the way we build paths.
Avoid decolonification of source paths.
Remove gnu directories and add non-tracked ones.

Fix a memory leak while here.

Approved by:            ngie@
Differential Revision:  https://reviews.freebsd.org/D59846
3963483523a422e8644ded8d079f82949fd5a8fb Fernando Apesteguía 2026-09-06 16:30:03

debug: classified in 04-filenames_plain2 by 'usr.bin/'

Documentation

Man pages, release notes, etc.

ufoma: Describe better, short SYNOPSIS, tag SPDX
This driver is for NTT DoCoMo 3G cellular equiment, which afaict all
went offline six months ago. Tidy up the entry until we can remove it.

MFC after:      3 days
acaab48a73229c54ca1b4ec197508285c3f97970 Alexander Ziaee 2026-09-21 03:31:10

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

ufshci.4: Canonicalize SYNOPSIS, LOADER TUNABLES
+ Update SYNOPSIS to the new standard format
+ Rename CONFIGURATION to the usual LOADER TUNABLES
+ Adjust tunable markup for inclusion in the search index
+ Editorial nit: Unwind a parenthetical

MFC after:      3 days
0a81077f432d74dd2d064fb5f2b1b2a546be5347 Alexander Ziaee 2026-09-21 16:06:59

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

ugen.4: Canonicalize SYNOPSIS + tag SPDX
MFC after:    3 days
8943d47938216bfe5e162aaf237f27de2e3ce659 Alexander Ziaee 2026-09-21 16:20:16

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

ugold.4: Canonicalize SYNOPSIS, HARDWARE, tag SPDX
MFC after:    3 days
6a075798bfdfc5ff50fc635fe8c2acbbee0178f2 Alexander Ziaee 2026-09-21 16:25:58

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

uhid.4: Canonicalize SYNOPSIS, tag SPDX
MFC after:    3 days
7d1edc5b36805f8fb80a75583c8e820ab58c9b7f Alexander Ziaee 2026-09-21 16:29:10

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

uhso.4: describe better, SYNOPSIS, HARDWARE, SPDX
+ Update SYNOPSIS to the new standard format
+ Give this a clearer description in apropos
+ Give this a clearer description in hardware note
+ Spinoff SYSCTL VARIABLES from HARDWARE
+ Pet linter for long lines and trailing punctuation
+ Tag SPDX

MFC after:      3 days
2407b84c683582ad2fb8840df5a13637d0a8f405 Alexander Ziaee 2026-09-21 16:43:06

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

ufoma.4: Improve HARDWARE introductory sentence
MFC after:    3 days
00d693e47efd305cfc011ffe85972483f4fe12f8 Alexander Ziaee 2026-09-21 16:50:47

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

uipaq.4: Canonicalize SYNOPSIS, tag SPDX
MFC after:    3 days
f1a4ac4aca47b2b6ac7ed4a06a6f3b0f253f13f3 Alexander Ziaee 2026-09-21 16:53:36

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

ukbd.4: Canonicalize SYNOPSIS, tag SPDX
Also add a missing Cd tag for consistency.

MFC after:      3 days
f4e7e5eced392b90fb265b06f4223c0301d777ff Alexander Ziaee 2026-09-21 17:02:13

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

uled.4: Canonicalize SYNOPSIS, tag SPDX
MFC after:    3 days
6204c60fc043925555ef9da3a1872a43d5c709df Alexander Ziaee 2026-09-21 20:44:17

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

ulpt.4: Canonicalize SYNOPSIS, tag SPDX
MFC after:    3 days
b952821be787253f230c920dad7118ef5339cda5 Alexander Ziaee 2026-09-21 20:46:09

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

umcs.4: Describe better, canonicalize SYNOPSIS
+ tag SPDX
+ improve apropos and hardware notes context
+ canonicalize SYNOPSIS

MFC after:      3 days
71a0ea70234d58292bdf4b1dfad4f81511bd3457 Alexander Ziaee 2026-09-21 20:59:21

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

umct.4: Canonicalize SYNOPSIS, HARDWARE, tag SPDX
MFC after:    3 days
2784767077f318b46871c0b0b013d9eab61ef5df Alexander Ziaee 2026-09-21 21:02:35

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

src.conf(5): regenerate after f6db138f97b7
MFC after:    2 weeks
MFC with:       f6db138f97b7 ("src.opts.mk: force the Dtrace tests ...")
d90a75af95107782d18771c91b0bc8c74e6cc4f3 Enji Cooper 2026-09-22 03:02:02

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

aq.4: Remove experimental note
I added the text when this driver was merely an import of
https://github.com/Aquantia/aqtion-freebsd with patches from ports applied.
nprice@ resolved issues and added support for newer cards and the note is
no longer applicable.

Reviewed by:    adrian
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D59909
0cb85c5b41fffef79584929e7b056cc64e9cc391 Ed Maste 2026-09-22 16:16:42

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

stat(2): Document st_bsdflags and SFBSD_NAMEDATTR
Those are FreeBSD-specific member and flag still better to be
documented.

Reviewed by:    kib
Sponsored by:   Sippy Software, Inc.
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D59915
72e391060bb6c83ed65ac7ca3936bd6e07ab1ebc Maxim Sobolev 2026-09-23 14:43:01

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

apm.8: Don't claim that zzz(8) invokes apm(8)
Fixes:                https://cgit.freebsd.org/src/commit/?id=aba599a6cc55 ("zzz: Rewrite to use new power device")
c934939aa711ed839631fca98ce8789a46960183 John Baldwin 2026-09-23 19:16:05

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

sesutil.8: Concise document description, tag SPDX
While here, fix two trivial typos.

MFC after:      3 days
ddaa6746a30b458ba234324622a66747d09a2b6c Alexander Ziaee 2026-09-23 21:41:16

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

geom: Document existing --libxo support in the manual pages
The standard list and status subcommands of every GEOM class emit
through libxo, and so does geom -p, but only geom.8 (list, status) and
gpart.8 (show) mentioned it.  Mark the list and status forms with
--libxo in all class manual pages, add the option description, and
cross-reference xo_options(7).  Also mark geom -p in geom.8.

Only forms whose output already goes through libxo are marked;
class-specific verbs such as gmirror dump still print directly and are
left alone.

Reviewed by:    adrian, bcr, carlavilla, des
MFC after:      3 days
Differential Revision:  https://reviews.freebsd.org/D59574
1d94247d0e3fe79fee7902383d27f51b089beb0d Li-Wen Hsu 2026-09-27 17:54:40

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

libthr.3: document LIBPTHREAD_PSHARED_LOCK_DESTROY_IMMEDIATE_GC
Sponsored by: The FreeBSD Foundation
MFC after:      1 week
c2f66b6616425e0e8edab3e893bc4cb58869140d Konstantin Belousov 2026-09-27 22:25:34

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

Hardware support

Hardware drivers and architecture-specific code.

arm64: Add a wfe function
And replace inline assembly

Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D59482
d95b62db76b9bb4d51bc5e555b26a3aaf8afa44a Andrew Turner 2026-09-18 11:27:25

debug: classified in 03-filenames_plain1 by 'sys/arm64/'

Commit group #0: arm64/smmu
arm64/smmu: Move smmu later

We need to wait for the interrupt drivers to attach before the smmu
driver. As both of these happened at BUS_PASS_INTERRUPT +
BUS_PASS_ORDER_MIDDLE there was no guarantee this would happen in the
correct order.

Fix by moving the smmu driver to BUS_PASS_ORDER_LATE.

Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D59485
0bcd0616ff86675869d998a491eccc38e413cdad Andrew Turner 2026-09-18 11:28:31

debug: classified in 03-filenames_plain1 by 'sys/arm64/'


arm64/smmu: Start handling errata

Handle the Arm MMU-600 erratum 1076982 where when we poll for a sync
command completion we can't use the wait-for-event instruction.

This is in preparation for later adding support for polling for sync
command completion and is not an issue on stable branches.

Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D59486
6dca6e2aa89d877cf2bc8135c6936008e2a6af72 Andrew Turner 2026-09-18 11:28:41

debug: classified in 03-filenames_plain1 by 'sys/arm64/'


arm64/smmu: Split out waiting for sync completion

In preparation for adding a non-MSI method split out waiting for sync
completions from smmu_sync.

While here fix the loop to wait for sync timeout to the worst case
Linux uses.

Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D59487
54393bf5361a653c530170da20323181e515d7a1 Andrew Turner 2026-09-18 11:28:51

debug: classified in 03-filenames_plain1 by 'sys/arm64/'


arm64/smmu: Support polling for sync completion

When the hardware doesn't support MSIs we need to poll to wait for
sync operations to complete. Add support for this to support booting
on this hardware.

Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D59488
0689a5ea451bdef62f7e81ffb3e5f580c5c99b2b Andrew Turner 2026-09-18 11:29:02

debug: classified in 03-filenames_plain1 by 'sys/arm64/'


arm64/smmu: Only MSI poll when cache-coherent

Only use the MSI polling method when we support MSIs and the SMMU is
cache-coherent.

The SMMU writes to a memory location. If it is not cache-coherent then
the CPU may read the existing value in its cache and miss the signal
the sync operation has completed.

Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D59489
50e01b6351b1a4955814cce021852c65a5b5bb9f Andrew Turner 2026-09-18 11:29:19

debug: classified in 03-filenames_plain1 by 'sys/arm64/'


arm64/smmu: Fix the SMMU-600 errata check

Fixes:  https://cgit.freebsd.org/src/commit/?id=6dca6e2aa89d ("arm64/smmu: Start handling errata")
Sponsored by:   Arm Ltd
a856958cab807699eada3e1ed2c46262a94a0aeb Andrew Turner 2026-09-22 14:11:23

debug: classified in 03-filenames_plain1 by 'sys/arm64/'

Commit group #1: vmm
vmm: Normalize a zero PIT count before starting channel 0

pit_timer_start_cntr0() does not schedule a callout when the initial
count is zero.  The counter write handler normalizes a programmed zero
count only after calling it, leaving an initially unarmed channel 0
without a scheduled timer event.

Move the existing normalization before the timer-start call.  Retain the
historical 0xffff representation of a zero count.

Reviewed by:    markj
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D59749
3330226fd33ae6b747c9edc97315244360ad5e54 Hayzam Sherif 2026-09-21 16:33:36

debug: classified in 03-filenames_plain1 by 'sys/amd64/'


vmm: Synchronize long-mode state when emulating CR0 writes

vmx_emulate_cr0_access() sets EFER.LMA and the IA-32e guest VM-entry
control when enabling paging with EFER.LME set, but does not clear them
when disabling paging.  This can leave an inconsistent guest state that
fails VM entry.

Update both fields in either direction based on EFER.LME and the CR0
value written to the VMCS.  Use the mask-adjusted CR0 value so the
resulting state remains consistent with the VMX fixed-bit requirements.

Reviewed by:    markj
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D59756
d400b1ca31fd9b12655c83f9a7b3e8cdb68646dd Hayzam Sherif 2026-09-21 16:33:55

debug: classified in 03-filenames_plain1 by 'sys/amd64/'


vmm: Fix a page wiring leak in MOVS emulation

When emulating a MOVS from MMIO to guest RAM, the kernel's
vm_copy_setup() wires the destination pages.  If the subsequent
MMIO read fails, emulate_movs() skips vm_copy_teardown(), leaking
the page wire references acquired during setup.

Run vm_copy_teardown() regardless of the MMIO read result, and
only copy the value to guest memory if the read succeeds.
Preserve the existing error return.

This matches illumos change 13309.

Reviewed by:    markj
Obtained from:  illumos 83cd75bb2949d26e6eb38ddefc60fdeed1909643
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D59823
ce5b70657f94d2051566664d3ea7167d104803b0 Hayzam Sherif 2026-09-21 16:34:08

debug: classified in 03-filenames_plain1 by 'sys/amd64/'


vmm: Re-arm the PIT callout for square wave mode

The 8254's square wave mode (mode 3) is periodic, with the same
interrupt rate as the rate generator mode (mode 2), but
vatpit_callout_handler() only re-arms the channel 0 callout for
TIMER_RATEGEN.  A guest that programs mode 3 therefore receives a
single IRQ0 and no further timer interrupts.

Re-arm the callout for TIMER_SQWAVE as well, matching illumos
change 13301.

Reviewed by:    markj
Obtained from:  illumos 93d78aba5b32996fc2ae893a6237a0d3972f86b2
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D59816
fc44154841fc2ebb1530a10cad719edb58559a88 Hayzam Sherif 2026-09-21 16:34:37

debug: classified in 03-filenames_plain1 by 'sys/amd64/'

amd64/*sigtramp.S: re-enable some cfi annotations for special registers
Also explicitly specify .cfi_sections to emit the cfi bytecode into the
loadable .eh_frame section.

Reviewed by:    mchoo
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D59838
64a73d1b6dc93d92daea1e2d0603fda1dddadf4a Konstantin Belousov 2026-09-19 09:46:19

debug: classified in 03-filenames_plain1 by 'sys/amd64/'

eqos: Reduce RX error noisiness
Reduce very common console messages:
        Receive error rdes3=30208000

As observed on the VisionFive v2 hardware after some large transfers.

Differentiate between overflow errors and others. Report the errors when
the length is non-zero (overflow errors).

Also, count errors for netstat purposes.

Reviewed by:    mhorne
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D59479
e67697869e7208e4fe5eb96ce3f3d1240b44d2e1 Brian Scott 2026-09-09 14:33:14

debug: classified in 03-filenames_plain1 by 'sys/dev/'

riscv: enable gpiopower driver
It is functional, and there are some RISC-V platforms which can benefit
from it.

Requested by:   Brian Scott <bscott@bunyatech.com.au>
Sponsored by:   The FreeBSD Foundation
c745fccd9b2647c1f84f8e38b3992640ea34c50d Mitchell Horne 2026-09-09 14:38:22

debug: classified in 03-filenames_plain1 by 'sys/riscv/'

hwpmc/amd: replace static pmcdesc[] and pc_amdpmcs[] with dynamic allocation
AMD_NPMCS_MAX = 342 (16 core + 6 L3 + 64 DF + 256 UMC). On a Zen 4
EPYC 9654 with 6 core, 6 L3, 16 DF, and 4 UMC counters, only 32
descriptors are needed; the static arrays over-allocate by ~10x.

Replace both amd_pmcdesc[AMD_NPMCS_MAX] and per-CPU pc_amdpmcs[AMD_NPMCS_MAX]
with mallocarray() sized to the actual registered PMC count:
  - amd_pmcdesc: allocated in pmc_amd_initialize()
  - pc_amdpmcs:  allocated per-CPU in amd_pcpu_init(), freed in fini()

Normalize amd_l3_npmcs and amd_df_npmcs against the AMDID2_PTSCEL2I
and AMDID2_PNXC feature bits before computing npmcs_total, so that
allocation, registration, and amd_get_msr() row offsets are all derived
from the same values.  Previously the ternary in npmcs_total excluded
L3/DF from the allocation while the globals retained their defaults,
causing amd_get_msr() to miscompute DF row offsets when L3 is absent.

amd_umc_npmcs comes from CPUID Fn8000_0022h EBX[23:16] (NumUMCCounters)
and is zero when the leaf is absent, so no additional feature flag is
needed.  See AMD64 APM Vol.3 Appendix E.

Fix three error-path memory leaks: amd_hwcheck() failure, goto error,
and finalize.  Reset amd_npmcs = 0 on the error path.

Tested on AMD EPYC 9654 (Zen 4, Family 19h Model 11h, 192 threads).
Full PMC test suite (IBS/UMCDF/PMC/L3/DF/TSC): 0 failures.

Signed-off-by: Osvaldo Janeri Filho <ojanerif@amd.com>
Reviewed by:    mhorne
MFC after:      1 week
Sponsored by:   AMD
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2415
8a0cab240f2146a000396c411df471df4b75bb9d Osvaldo Janeri Filho 2026-09-09 15:13:52

debug: classified in 03-filenames_plain1 by 'sys/dev/'

arm64/vmm: Fix translation regime in s2_tlbi_range
s2_tlbi_range under VHE is supposed to clear HCR_EL2.TGE, but it erroneously
clears an unrelated bit 27 in TCR_EL2 (HWU61). Since HCR_TGE determines which
translation regime will be used by a tlbi, the instruction targets the
wrong regime when it is not cleared.

Fix the register accessed by the function to actually clear HCR_EL2.TGE.

Signed-off-by: Kajetan Puchalski <kajetan.puchalski@arm.com>
Reviewed by:    andrew
Sponsored by:   Arm Ltd
Differential Revision:  https://github.com/freebsd/freebsd-src/pull/2435
334f81f411857ad7b3cdeaec20b44316dde01ae8 Kajetan Puchalski 2026-09-15 16:17:56

debug: classified in 03-filenames_plain1 by 'sys/arm64/'

jh7110_temp: CPU temperature sensor for JH7110
This patch adds a driver for the CPU temperature sensor on the jh7110
SoC.

The calibration numbers come from the OpenBSD driver but are reworked to
produce a result in K rather than C.

The temperature is exposed as a sysctl, dev.jh7110_temp.0.temperature
but I have also exposed it as dev.cpu.0.temperature because that's where
you find it on a RaspberryPi and amdtemp(4), so it's a lot more obvious.

(mhorne: Added 'starfive,jh7100-temp' compatible.)

Reviewed by:    mhorne, bnovkov
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D59478
fa28ede31dac57fdb191afd114c70439b9b41e4f Brian Scott 2026-09-22 13:31:47

debug: classified in 03-filenames_plain1 by '['sys/dev/', 'sys/riscv/']'

hwpmc: fix leak of IBS per-CPU array on unload
pmc_ibs_initialize() allocates the ibs_pcpu[] pointer array, and
pmc_ibs_finalize() exists to free it, but pmc_ibs_finalize() is
never called.  Every hwpmc unload on a CPU with IBS therefore leaks
one pmc_cpu_max()-sized pointer array.

Call pmc_ibs_finalize() from pmc_amd_finalize(), alongside the RAPL,
TSC and perf classes.  IBS is only initialized on CPUs that support
it, so make pmc_ibs_finalize() return early when ibs_pcpu is NULL,
making it safe to call when the class was skipped at initialize
time, as pmc_rapl_finalize() already is.

Tested on an AMD Ryzen 5 5600X (Zen 3, 12 threads) with INVARIANTS.
Before the change, each kldload/kldunload cycle leaked one 96-byte
M_PMC allocation, and DTrace showed the ibs_pcpu[] allocation from
pmc_ibs_initialize() as the only one never freed.  After the change,
50 load/unload cycles leave M_PMC InUse and MemUse unchanged, and
every allocation made at load is freed at unload.

Reviewed by:    mhorne
Fixes:          https://cgit.freebsd.org/src/commit/?id=e51ef8ae490f ("hwpmc: Initial support for AMD IBS")
Sponsored by:   NLINK (https://nlink.com.br), Recife, Brazil
Differential Revision:  https://reviews.freebsd.org/D59881
6d9f435739e5fb604f452d03ad7f2eb280bfc968 Paulo Fragoso 2026-09-22 14:00:31

debug: classified in 03-filenames_plain1 by 'sys/dev/'

x86: add definitions for the CORE_CAP and MEMORY_CTL MSRs
Reviewed by:  markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D59815
9aa031eb927720e26c8c11ce697f1c691ca0ef75 Konstantin Belousov 2026-09-18 14:33:54

debug: classified in 03-filenames_plain1 by 'sys/x86/'

x86: add cpu_stdext_feature5
Reviewed by:  markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D59815
71f08bfa02a93d5d165ce96abc9077f36e4963b6 Konstantin Belousov 2026-09-19 08:02:56

debug: classified in 03-filenames_plain1 by 'sys/x86/'

amd64 cpufunc.h: add WRMSRNS helpers
Reviewed by:  markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D59815
4a8acccc2e59b6ac5f4068471d94b40347ebeff0 Konstantin Belousov 2026-09-19 08:31:59

debug: classified in 03-filenames_plain1 by 'sys/amd64/'

Commit group #2: amd64
amd64: add md thread flags word

Use a hole in struct mdthread.

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D59815
dc975612213369f597449ced5a3c5edabc2aae6d Konstantin Belousov 2026-09-18 14:33:54

debug: classified in 03-filenames_plain1 by 'sys/amd64/'


amd64: handle #AC in kernel mode

Recover from it if PCB_ONFAULT handler is provided.

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D59815
c6d7235ac15d208435a839bf847dd898d9b1d9fe Konstantin Belousov 2026-09-20 16:40:15

debug: classified in 03-filenames_plain1 by 'sys/amd64/'


amd64: calculate if hardware supports disabling splitlocks

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D59815
d8c1abb0e3409314fb89400bc85b5051649e91ab Konstantin Belousov 2026-09-18 14:33:54

debug: classified in 03-filenames_plain1 by 'sys/amd64/'


amd64: support for tracking per-thread 'disable splitlocks' state

If hw supports it, on atomic operation that requires exclusive ownership
of more than one cache line, #AC is generated.
The state is maintained as the arch-private TDF_MD_SPLITLOCK_AC flag.

The state is inherited on thread creation from the thread spawning the
new one.  It is cleared on exec.

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D59815
e318f24c0f53b52bd280b827509ad752db0497bf Konstantin Belousov 2026-09-18 14:33:54

debug: classified in 03-filenames_plain1 by 'sys/amd64/'


amd64: add userspace control for disabling splitlocks

Thread can control it with sysarch(I386_SET_SPLITLOCK). The global
default is set with hw.splitlock_force.

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D59815
51cea5416a2421f29d22100bc71ab6486b1dc54a Konstantin Belousov 2026-09-18 14:33:54

debug: classified in 03-filenames_plain1 by '['sys/amd64/', 'sys/x86/']'


amd64: cache MSR_MEMORY_CTL in pcpu

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D59815
74d325fee2dbcb5f8541819481ce76f87c151a21 Konstantin Belousov 2026-09-19 07:43:34

debug: classified in 03-filenames_plain1 by 'sys/amd64/'


amd64: use WRMSRNS immediate form to update splitlock control, when available

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D59815
20c09e6fece29dbcf4835b4dd90e969f1b9b3e59 Konstantin Belousov 2026-09-19 07:54:00

debug: classified in 03-filenames_plain1 by 'sys/amd64/'

sound: Use uint8_t instead of legacy u_char
No functional change intended.

MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
2793e5498dd9bceada62ebe38967d89180bd15f6 Christos Margiolis 2026-09-22 16:11:23

debug: classified in 03-filenames_plain1 by 'sys/dev/'

sound: Retire the version constants
They exist only to fill in MODULE_DEPEND() and MODULE_VERSION(), and
every consumer passed the same value for all three, so the version
range never did anything. Use 1, like the rest of the tree does.

MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
Reviewed by:    kib, emaste
Differential Revision:  https://reviews.freebsd.org/D59873
32137c41065c3fa101bf0056b76889b98a7492cb Christos Margiolis 2026-09-22 17:34:16

debug: classified in 03-filenames_plain1 by '['sys/arm/', 'sys/dev/']'

powerpc/radix: fix double page offset in mmu_radix_sync_icache()
mmu_radix_sync_icache() adds the offset of va within its page to the
physical address it gets from mmu_radix_extract_locked().  That address
already includes the offset - the extract routines return the physical
address of the byte, not of the frame - so the offset is counted twice
and __syncicache() is handed frame + 2 * offset.

The hash MMU counterpart, moea64_sync_icache(), has to add the offset
because PVO_PADDR() yields only the frame.  Here the addition is wrong.

Fixes:  https://cgit.freebsd.org/src/commit/?id=6f0b2a235a13 ("powerpc/pmap: Add pmap_sync_icache() for radix pmap")
Reviewed by:    jhibbits
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D59870
9d0859637f99160e17b656df153effae3df31f8b Piotr Kubaj 2026-09-21 07:45:27

debug: classified in 03-filenames_plain1 by 'sys/powerpc/'

sys/powerpc/powerpc/elf64_machdep.c: enable ASLR on ELFv2
Turns out that ever since introducing ELFv2 support, it was missing
ASLR, it was only used for ELFv1 processes.

Reviewed by:    jhibbits (via IRC #powerpc64)
MFC after:      1 week
30ed27ff2556c591a1791105d1dfe7464d3f5b80 Piotr Kubaj 2026-09-23 13:41:27

debug: classified in 03-filenames_plain1 by 'sys/powerpc/'

nvme: do not touch INTMS/INTMC when configured for MSI-X
The single-vector MSI-X fallback installs the shared interrupt
handler, which masks interrupts through INTMS/INTMC around the
completion poll.
INTx and MSI are unaffected. Only MSI-X track the interrupt mode
and skip un/masking

Reviewed by:    ngie, imp, adrian
Differential Revision:  https://reviews.freebsd.org/D59637
ad57f212665e1642423afb83aef19e755833643f Abdelkader Boudih 2026-09-23 18:01:57

debug: classified in 03-filenames_plain1 by 'sys/dev/'

nvme: bound the AER error log byte-swap by the fetched length
The Get Log Page request for the error log is clamped to
NVME_MAX_AER_LOG_SIZE, but the byte-swap loop iterated ELPE + 1
entries. A controller reporting more than 63 entries makes the loop
overrun the 4 KiB log page buffer.

Reviewed by:    ngie, imp, adrian
Differential Revision:  https://reviews.freebsd.org/D59626
34f131f1de853ae824a6e67dd6429332d23b373d Abdelkader Boudih 2026-09-23 18:02:38

debug: classified in 03-filenames_plain1 by 'sys/dev/'

hwpmc: hwpmc: record page size to fix analysis in some case
This fixes a bug where a binary linked using max-page-size=0x200000
can result in a bogus relocation offset when running on a system
with a smaller page size.  This causes samples  to fall outside
the image mapping or be translated to the wrong address (resulting
in symbol resolution, or incorrect symbol resolution).  We noticed
this at Netflix because we run a patchset enabling 16k pages on
amd64 and have been compiling userspace with a 2MB page size.
Since we started doing this profiling userspace binaries has been
wonky.

Reviewed by: ali_mashtizadeh.com
Differential Revision: https://reviews.freebsd.org/D59771
Sponsored by: Netflix
2449fa9c4d8e60cca863396dc3c7d67cbc16359f Andrew Gallatin 2026-09-22 11:52:39

debug: classified in 05-summary-prefix by 'hwpmc:'

x86/NOTES: Drop stale comments about si(4)
This driver was removed several years ago.

Fixes:          https://cgit.freebsd.org/src/commit/?id=c1c9764296e5 ("Remove the si(4) driver and sicontrol(8) for Specialix serial cards.")
600c16c71ba1c1e0ad176437bcfeea12492d5ae7 John Baldwin 2026-09-23 19:15:11

debug: classified in 03-filenames_plain1 by 'sys/x86/'

sys: Remove orphaned build glue for le(4)
e702b1af009d2303431e099afa00936b287ee552 John Baldwin 2026-09-23 19:15:21

debug: classified in 03-filenames_plain1 by 'sys/i386/'

nvme: honor FLBAS Format Index Upper when selecting the LBA format
Added nvme_ns_data_format_index() in the nvme, nda, and nvmf
host paths as well as nvmecontrol and camdd.

Reviewed by:    imp, adrian
Differential Revision:  https://reviews.freebsd.org/D59627
2c41f7d8a034ee64a0aaa69a1aa5cb07748a1a32 Abdelkader Boudih 2026-09-24 14:19:51

debug: Commit manually moved from "unknown" to "hardware".

nvme: derive CC.CSS from CAP.CSS instead of hardcoding the NVM set
CC.CSS was always writting zero, which is a reserved encoding on a
controller that does not support the NVM command set.
Select 111b on admin-only controllers and 110b when the
I/O command set mechanism is available.

Reviewed by:    ngie, imp, adrian
Differential Revision:  https://reviews.freebsd.org/D59628
b99595c9c7f8b3cee9973ed0dd9c1599a575c5f9 Abdelkader Boudih 2026-09-24 14:20:13

debug: classified in 03-filenames_plain1 by 'sys/dev/'

llan: byte swap the receive queue entries
The receive queue of a PAPR logical LAN is filled in by the hypervisor, so
its fields are big endian, but llan_intr() read the offset and the length of
each frame natively.  On a little endian kernel the length of a 134 byte
frame reads as 0x86000000, and ether_input() discards the mbuf because m_len
is not even large enough for an ethernet header.  No frame is ever received.

Reproduced on a POWER9 pseries guest with a spapr-vlan interface.  Before:

  llan0: discard frame w/o leading ethernet header (len -2046820352
      pkt len -2046820352)
  llan0 1500 <Link#1> 52:54:00:12:34:56  123  118  0  5838733312  7  0

that is 118 input errors out of 123 packets, dhclient(8) never completes and
ping(8) loses every packet, although transmit works because the transmit
path passes the lengths in hcall registers rather than through memory.
Afterwards the interface gets a DHCP lease and ping reports no loss.

MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D59926
Approved by:    jhibbits
6429199a21136cad3c82b43618a6ca2958b90bbf Piotr Kubaj 2026-09-23 13:21:00

debug: classified in 03-filenames_plain1 by 'sys/powerpc/'

aq: Invalidate the descriptor cache after stopping all rings
Atlantic controllers can retain receive descriptors and their data
addresses after their rings are disabled. Reusing or releasing those
mappings without invalidating the device cache has caused observed
IOMMU and SMMU faults in the referenced Linux reports (7a1bb49461b1,
ed4d81c4b3f2 and 7526183cfdbe).

Move global cache invalidation out of the per-ring stop routine. Disable
every ring first, toggle invalidation once, and wait for its completion
indication. Exclude Atlantic A0, as in the upstream workaround. Report
a completion timeout rather than silently discarding it.

Reviewed by:    nprice
MFC after:      2 weeks
Sponsored by:   BBOX.io
Differential Revision:  https://reviews.freebsd.org/D59852
4993c1052f899b9a971815df5661ca241641ad8e Kevin Bowling 2026-09-17 02:35:58

debug: classified in 03-filenames_plain1 by 'sys/dev/'

aq: Report partial initialization failures to iflib
Stop initialization when hardware setup, ring initialization/start, or
datapath start fails. Run the existing best-effort stop/cache/reset
cleanup and report the failure through iflib_init_failed(). Do not keep
configuring later rings or publish the interface as running.

Reviewed by:    nprice
MFC after:      2 weeks
Sponsored by:   BBOX.io
Differential Revision:  https://reviews.freebsd.org/D59853
050683bb8e136981e4a1f66e845ab05c135630f4 Kevin Bowling 2026-09-07 11:50:58

debug: classified in 03-filenames_plain1 by 'sys/dev/'

i386 NOTES: Remove IPI_PREEMPTION remnant after move to x86 NOTES
Fixes:          https://cgit.freebsd.org/src/commit/?id=1f38677ba40b ("x86 NOTES: Move shared options from amd/i386 NOTES to x86 NOTES")
MFC after:      3 days
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D60011
7ce0ede913801c0e74f6d90beee2fc4eb5c6ef2f Olivier Certner 2026-09-24 15:33:45

debug: classified in 03-filenames_plain1 by 'sys/i386/'

nvme: share one handler between the interrupt coalescing sysctls
The int_coal_time and int_coal_threshold handlers differed only in which
controller field they updated before reprogramming the feature.

Reviewed by:    imp, adrian
Differential Revision:  https://reviews.freebsd.org/D60018
92dec9201bf9759fc760da49a175fc99f3277c6c Abdelkader Boudih 2026-09-25 21:42:15

debug: classified in 03-filenames_plain1 by 'sys/dev/'

nvmf: factor out the pending request abort loop
The routine is entered with the namespace lock held and drops it before
completing the requests, which preserves the existing locking.

Reviewed by:    imp, adrian
Differential Revision:  https://reviews.freebsd.org/D60019
130739e33acc1b55f6da297fdebb693d9d8feea8 Abdelkader Boudih 2026-09-25 21:42:23

debug: classified in 03-filenames_plain1 by 'sys/dev/'

nvme: collapse the per-counter qpair statistic sysctl handlers
A single handler that takes the counter's offset
within struct nvme_qpair in arg2.

No functional change

Reviewed by:    imp, adrian
Differential Revision:  https://reviews.freebsd.org/D60020
8a860e8286f2e2f20e6eb5b63d9ee1f0a62e0371 Abdelkader Boudih 2026-09-25 21:42:36

debug: classified in 03-filenames_plain1 by 'sys/dev/'

nvme: share one routine between Delete I/O CQ and Delete I/O SQ
Reviewed by:  imp, adrian
Differential Revision:  https://reviews.freebsd.org/D60021
4bfe52650c140694505dd136f24bb3649153124a Abdelkader Boudih 2026-09-25 21:42:42

debug: classified in 03-filenames_plain1 by 'sys/dev/'

ihwpstate_intel: update dev.hwpstate_intel.%d.epp sysctl description
Catch up with 8452afeb568: now dev.hwpstate_intel.%d.epp accepts
values from 0 to 255.  Update its description accordingly to sync
with the code and the man page.
10bd16d4e8279b0089f74caa457a849be77fc306 Maxim Konovalov 2026-09-26 02:39:35

debug: classified in 03-filenames_plain1 by 'sys/x86/'

uchcom: Set rate to 1 if 0
If userspace provides rate == 0, it causes kernel panic as rate is
directly used as a divident, which cannot be zero. Fix it by set the
rate to 1 if it is passed as 0.

Reviewed by:    imp, emaste
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D59111
228b1a011660ee1005bc4ab7c97113af8d87fe5c ShengYi Hung 2026-09-26 06:42:39

debug: classified in 03-filenames_plain1 by 'sys/dev/'

nvme: name the reserved Identify Controller fields at bytes 102 through 110
Bytes 102 through 110 of the I/O Command Set Independent Identify
Controller data structure were reserved padding.  Name them: Boot
Partition Capabilities (byte 102), CXL HDM Support Information (byte
103), NVM Subsystem Shutdown Latency (bytes 107:104) and Power Loss
Signaling Information (byte 110).  Bytes 109:108 stay reserved.

CXL HDM Support Information was added in NVM Express Base Specification
2.4, Figure 338; the others appear in 2.3, Figure 328.

Report the new fields from nvmecontrol identify.

Reviewed by:    imp, adrian
Differential Revision:  https://reviews.freebsd.org/D60000
22039031a15238c69497bbd9d8dea3cd97ee6bc6 Abdelkader Boudih 2026-09-26 08:22:46

debug: Commit manually moved from "unknown" to "hardware".

dpaa2: Don't return simplebus devinfo for a non-simplebus child
dpaa2_mc_simplebus_get_devinfo() must not treat the MC resource-container
device as a simplebus child. Return NULL when child is sc->rcdev instead
of forwarding OFW_BUS_GET_DEVINFO() for that device.

MFC after:      2  weeks
Differential Revision:  https://reviews.freebsd.org/D59836
12c3004129466634cbe5c34a1049dc0d5ecdff3b Michal Meloun 2026-09-26 07:23:52

debug: classified in 03-filenames_plain1 by 'sys/dev/'

ofw: Convert simplebus to device_get_softc_class().
Stop embedding struct simplebus_softc as the first member of subclass
softcs. Use device_get_softc_class() to locate the simplebus portion of
the device softc

MFC after:      2 months
Differential Revision:  https://reviews.freebsd.org/D59837
e2d42b0e6cc235c56484e274639b1df00c99760b Michal Meloun 2026-09-26 07:25:59

debug: classified in 03-filenames_plain1 by '['sys/arm/', 'sys/arm64/', 'sys/dev/']'

amd64: gate WRMSRNS immediate form on compiler support
This support was introduced in LLVM 20 and we still support releases
with LLVM 19 so it's too early to require LLVM 20.  Decay to the
non-immediate form when the compiler it too old.  This makes the ifunc
pointless, but limits the need for other ifdefs.

Reviewed by:    kib
Sponsored by:   Innovate UK
Differential Revision:  https://reviews.freebsd.org/D60023
53fe018630d06eeef6791cfacaa6dc9acdf4d669 Brooks Davis 2026-09-26 11:43:34

debug: classified in 03-filenames_plain1 by 'sys/amd64/'

arm64 pmap: Eliminate redundant icache synchronization
Creating an executable user-space mapping to write-back memory
synchronizes the icache with the page's contents, whether or not those
contents have changed since the previous synchronization.  Use the pmap
private page flag PGA_ICACHE_SYNCED to record that the icache has been
synchronized with a managed page's contents and that the page has no
writable mappings.  When the flag is set, the creation of another
executable mapping to the page can skip the synchronization.  The flag
is cleared when a writable mapping to the page is created, using a
single atomic operation that keeps PGA_WRITEABLE and PGA_ICACHE_SYNCED
from ever being simultaneously set, and when the page's last mapping is
destroyed.

Assisted-by:    Claude Code (Fable 5.1)
Reviewed by:    kib, markj
Differential Revision:  https://reviews.freebsd.org/D59865
ce0268cc1ef4b93cdc142b3711d6400f5de4cdc2 Alan Cox 2026-09-25 05:11:43

debug: classified in 03-filenames_plain1 by 'sys/arm64/'

tpm: Do not use timed tsleep() while polling during cold boot
Commit 4e0f283fb97a made tpm_tis12_init() wait for TPM_STS_CMD_READY
after aborting any command.  The wait is implemented by the driver's
existing tpm_waitfor_poll() loop, which sleeps with a one-tick tsleep()
between status reads.  Until now, that loop only ran from the resume and
command paths after boot.  From tpm_attach() it can panic with "timed
sleep before timers are working" when the TPM is attached from ACPI
during cold boot and the chip does not report ready on the first status
read.

Before 4e0f283fb97a, tpm_tis12_init() wrote TPM_STS_CMD_READY and
returned without waiting, so the polling loops only ran after boot.
tpm_request_locality() had the same latent hazard but its fast path
returns before sleeping whenever locality is already active.

Nothing calls wakeup() on the channels used by these polling loops, so
the sleeps are pure delays.  Use pause_sig(), which falls back to
DELAY() while the kernel is cold and returns EWOULDBLOCK, a value these
loops already tolerate.

The c argument to tpm_waitfor_poll() is now unused.  It is left in place
to keep this change minimal for MFC and can be removed in a follow-up.

Reviewed by:    kbowling
Fixes:          https://cgit.freebsd.org/src/commit/?id=4e0f283fb97a ("tpm: Bound TPM 1.2 locality ownership")
MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D60050
943686575d818c5cd3aaf2dfb912fabfb7dd7872 Joseph Mingrone 2026-09-26 19:12:47

debug: classified in 03-filenames_plain1 by 'sys/dev/'

Networking

Network-related commands, library, and kernel.

udp: Let jail policy rewrite the dstaddr for v6 sendto()s
When performing an unconnected sendto() on a v6 UDP socket in a classic
jail, we were not applying the usual policy of replacing the loopback
addr with the jail's primary IP.  Compare with, e.g., udp6_connect() or
the IPv4 udp_send().  Fix that.

Reported by:    Yuxiang Yang, Yizhou Zhao, Ao Wang, Xuewei Feng, Qi Li,
                and Ke Xu from Tsinghua University using GLM-5.1 from Z.ai
Reviewed by:    bz, glebius
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D59772
fecb9537a83b6746bc731a7cb3bcf6a33df79562 Mark Johnston 2026-09-21 14:05:01

debug: classified in 03-filenames_plain1 by 'sys/netinet6/'

pfsync: when importing a state clear take the interface name into account
When one pfsync host clears states it informs its peers about this.
While processing such messages, in pfsync_in_clr() we failed to take the
interface name into account.
This meant that if one host cleared states on one interface the peers
would clear all states, not just those on the affected interface.

Actually check for the interface in pfsync_in_clr()

Sponsored by:   Rubicon Communications, LLC ("Netgate")
6a34abbe976626019d61d9d08a624f4ed14ddbd0 Kristof Provost 2026-09-21 11:39:39

debug: classified in 03-filenames_plain1 by 'sys/netpfil/'

route/fib_algo: Remove redundant zeroing of fd_af
fd is allocated with M_ZERO and fd_num_af never decreases.
Therefore, no need for zeroing nhaf_count and nhaf_base here.

Fixes:  https://cgit.freebsd.org/src/commit/?id=633438224304 ("route/fib_algo: Fix nexthop index ...")
50eae683fab8c228606bab707295d9468f97c158 Pouria Mousavizadeh Tehrani 2026-09-22 19:05:38

debug: classified in 03-filenames_plain1 by 'sys/net/'

route/fib_algo: Respect immediate_sync in fd_ref_nhop
Now fd_ref_nhop() returns zero for cross family routes,
Do not schedule nhop references and try to rebuild it immediately
for connected and static routes.

PR:     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=298733
Fixes:  https://cgit.freebsd.org/src/commit/?id=633438224304 ("route/fib_algo: Fix nexthop index ...")
3d030136ad1906e6d463673a8d2ef313eb054fb3 Pouria Mousavizadeh Tehrani 2026-09-22 19:23:00

debug: classified in 03-filenames_plain1 by 'sys/net/'

pf: convert DIOCRINADEFINE to netlink
Sponsored by: Rubicon Communications, LLC ("Netgate")
219ce30638405481cf56ebc6921ac891ce9f9909 Kristof Provost 2026-09-23 15:42:44

debug: classified in 05-summary-prefix by 'pf:'

pf: convert DIOCOSFPFLUSH DIOCOSFPGET DIOCOSFPADD to netlink
Sponsored by: Rubicon Communications, LLC ("Netgate")
75c0a83762047c6c95c4bdd6b07bad005dc1d99e Kristof Provost 2026-09-24 17:20:15

debug: classified in 05-summary-prefix by 'pf:'

ipfilter: fix inverted range check on the lookup iterator unit
ipf_lookup_iterate() validates iter.ili_unit with

  if (iter.ili_unit < IPL_LOGALL && iter.ili_unit > IPL_LOGMAX)

or alternatively,

  if (iter.ili_unit < -1 && iter.ili_unit > 7)

ipf_lookup_add(), ipf_lookup_delete(), ipf_lookup_stats()
ipf_lookup_flush() validate with a ||

Submitted by calif.io for the OpenAI Patch The Planet program

Signed-off-by: Andrew Griffiths <andrew@calif.io>

Reviewed by:    markj
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D59726
cb035c19c3e76d547eb7d4bca1f1106b117c27a0 Andrew Griffiths 2026-09-06 20:44:35

debug: classified in 03-filenames_plain1 by 'sys/netpfil/'

System administration

Stuff in man section 8 (other than networking).

bhyveload: validate character disk devices
Currently, bhyveload(8) does not validate the supplied disk
image path. For example, it allows passing the /dev/null
device, which later fails in userboot because it does not
support DIOCGSECTORSIZE and DIOCGMEDIASIZE ioctls (see
userdisk_init() in stand/userboot/userboot/userboot_disk.c).

Fix that by checking DIOCGSECTORSIZE and DIOCGMEDIASIZE ioctls early.
A similar check already exists in bhyve(8). While here, make
cb_diskioctl() report the obtained sector size instead of
hard-coding 512.

Reviewed by:    markj
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D59253
51234535ddd6ec0afe9dd4e3f34a31b92d5cdd78 Roman Bogorodskiy 2026-08-28 17:51:31

debug: classified in 04-filenames_plain2 by 'usr.sbin/'

bhyve: fix boot device ordering
EDK2's QemuBootOrderLib inspects the bootorder file provided
via fw_cfg and requires it to be NUL-terminated. Otherwise,
it rejects the supplied bootorder and falls back to its
default boot order.

Currently, bhyve registers bootorder with qemu_fwcfg_add_file()
using bootorder_len returned by open_memstream(), which excludes
the trailing NUL byte.

Fix that by passing bootorder_len + 1 to qemu_fwcfg_add_file() so
the fw_cfg payload is properly NUL-terminated.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=279720
Reviewed by:    markj
Found with:     codex (gpt-5.6-sol)
MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D59859
b27a221ef79d6d77d6173897f12118e1126453d8 Roman Bogorodskiy 2026-09-20 14:41:55

debug: classified in 04-filenames_plain2 by 'usr.sbin/'

pciconf: Add -C option to filter by class name
Differential Revision:        https://reviews.freebsd.org/D59602
MFC after:      3 weeks
PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=289923
Reviewed by:    bnovkov
46d383af0dbdb3871354f344b9c1ba99da691121 Federico Angelilli 2026-09-21 18:23:10

debug: classified in 04-filenames_plain2 by 'usr.sbin/'

dummynet: do not overflow the points[ED_MAX_SAMPLES_NO] array
Otherwise, the following would segfault

dnctl pipe 1 config bw 1Mbit/s profile 1025points.txt

Found with:     Claude Code Sonnet 5
MFC after:      2 weeks
04fcf30961266cd77139b40774cb0d6ef6eb2be5 Maxim Konovalov 2026-09-21 23:32:09

debug: classified in 03-filenames_plain1 by 'sbin/'

jail(8): Preserve const qualifier on strchr(3) results
Reviewed by:  fuz, dteske
Approved by:    fuz (mentor), dteske (mentor)
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D59876
ab636e421d318a1175450d5652d8460dd2c48b76 Faraz Vahedi 2026-09-22 19:04:32

debug: classified in 04-filenames_plain2 by 'usr.sbin/'

bsnmp: validate the lower bound of error_index in responses
Check if the response's error_index is within a sane interval.
Otherwise, a rogue peer could crash us.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=298222
Reported by:    Robert Morris
Reviewed by:    markj
Discussed with: secteam (markj)
MFC after:      2 weeks
Analyzed with:  Claude Code Opus 5
296e3fd54ca8972fa6696974097a2f2705f8dfc4 Maxim Konovalov 2026-09-22 21:32:43

debug: classified in 04-filenames_plain2 by 'usr.sbin/'

bsnmpget: initialise the suboption value in getsubopt1()
Otherwise, "bsnmpget -o verbose -I cut" crashes.

Reported by:    clang static analyzer
MFC after:      2 weeks
5d169b5365b1f5cdf8586efa9421feaa4bfe40af Maxim Konovalov 2026-09-22 22:49:33

debug: classified in 04-filenames_plain2 by 'usr.sbin/'

loader.efi: Use EfiLoaderData memory type for ram disks
For the images we read into the memory, use EfiLoaderData memory type
instead of EfiReservedMemoryType. The kernel handles the former properly
and won't reallocate it. While the latter isn't necessarily mapped,
which can cause ram disks to fault when loaded. memdisk_uefi.efi
used the latter type, but also registered the device as an ACPI
RAM disk, which we don't do.

Fixes: https://cgit.freebsd.org/src/commit/?id=afee781523e45
Sponsored by: Netflix
85fb40bad584e7d8c503e5a99bb81cc2d3cf9fee Warner Losh 2026-09-24 06:48:16

debug: classified in 03-filenames_plain1 by 'stand/'

loader.efi: Be cautious about using GOPs
When we're searching for the EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID (GOPs) to
use, skip any whose Mode or Mode->Info pointers are NULL. The spec
requires these to be non-null, however, some firmwares seem to fail to
populate the Info when, for example, a monitor is not present. Work
around these bugs by skipping any GOPs with bad pointers.

PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=288900
Sponsored by:           Netflix
Differential Revision:  https://reviews.freebsd.org/D59830
b5f0e7f36afc20bf17e9e955454b445d686cda06 Warner Losh 2026-09-24 07:22:16

debug: classified in 03-filenames_plain1 by 'stand/'

cd9660: merge level 1 and 2 filename conversion
Merge the nearly identical level 1 and level 2 filename conversion
functions and add output buffer bounds checking.

Always NUL-terminate the converted filename, allowing the redundant
memset() in cd9660_translate_node_common() to be removed.

Signed-off-by: Manuel Einfalt <einfalt1@proton.me>
Reviewed by: emaste
Pull request: https://github.com/freebsd/freebsd-src/pull/2443
b9811d13572b93adff2da16508eef18872b24c85 Manuel Einfalt 2026-09-23 15:04:25

debug: classified in 04-filenames_plain2 by 'usr.sbin/'

makefs: Make target filesystem inodes 64 bits
Obtained from:        NetBSD 2501d4dfda92, 7022656d8ab2
884b961c74bdadb7d8c97a7763e3110e803c69be Ed Maste 2025-05-28 13:09:17

debug: classified in 04-filenames_plain2 by 'usr.sbin/'

makefs: Remove unused "mac68k" support
Obtained from:        OpenBSD 4f3c7809d4013a2eb3e75fc5e7bd2d8ae1f41843
fc544d3b57f27f1422969fca0002cb2bff30ab17 Ed Maste 2023-04-05 23:27:24

debug: classified in 04-filenames_plain2 by 'usr.sbin/'

virtual_oss(8): Fix cuse.ko check
There is no need at all to load the cuse module to just access the tool help.

kldload always checks for permissions first returning -EPERM if the user can't
load modules and -EEXIST if the user can, but the module is already loaded.

Approved by:            christos@
Differential Revision:  https://reviews.freebsd.org/D59844
MFC after:              2 weeks
5aac18d0faec96c768baf1a9de63a50de3796023 Fernando Apesteguía 2026-09-19 16:39:19

debug: classified in 04-filenames_plain2 by 'usr.sbin/'

fsck_msdosfs: fix head bitmap over-allocation on 32-bit platforms
bitmap_ctor() computed the allocation size as

        roundup2(bits, LONG_BIT) / (LONG_BIT / 8)

The dividend is a count of bits, so converting it to bytes requires
dividing by 8 (bits per byte), not by LONG_BIT / 8 (bytes per long).
The two divisors happen to coincide on LP64, but on ILP32 platforms
the head bitmap was allocated at twice the required size; for a
FAT32 file system with close to 2^28 clusters, that is 64 MiB instead
of 32 MiB.

The extra half of the allocation was never accessed, so there is no
functional change other than the reduced memory footprint.

MFC after:      3 days
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2440
269002da453895fc935101afefeb02d2c7d10360 Yunheeee 2026-09-26 03:10:04

debug: classified in 03-filenames_plain1 by 'sbin/'

Commit group #3: boot-test.sh
boot-test.sh: Add virtio-rng-pci to the EFI RAM-disk netboot qemu invocation

Since the PixieFail security fixes (CVE-2023-45237), EDK II's DxeNetLib --
underneath essentially all of NetworkPkg (Mnp/Arp/Ip4/Dhcp4/Tcp/Http) --
carries a DEPEX on EFI_RNG_PROTOCOL. With no RNG protocol producer
available, that DEPEX is never satisfied and the entire NetworkPkg driver
stack silently fails to load: no error, no assert, it just isn't there.

netboot-efi and netboot-ramdisk never noticed because they only ever touch
the raw EFI_SIMPLE_NETWORK_PROTOCOL via our own net.c, which has no such
dependency. A test that needs EDK II's own NetworkPkg (e.g. one exercising
EFI_HTTP_PROTOCOL) is the first to be affected.

RngDxe can satisfy the DEPEX from the RDRAND instruction alone on a
sufficiently recent edk2 build, but not every installed OVMF is that
recent. -device virtio-rng-pci provides an RNG unconditionally via
VirtioRngDxe, regardless of edk2 vintage or host CPU features.

Unfortunately, the edk2 shipped with qemu lacks the network this needs.

Sponsored by:           Netflix
58741fa51dc207123c18b3a4125af99cab798898 Warner Losh 2026-09-24 14:35:45

debug: Commit manually moved from "unknown" to "admin".


boot-test.sh: Add a http server per interface

Add the built-in python http server, bound to each of the interaces we
create to expand network testing to include http:// in various
scenarios.

Sponsored by:           Netflix
ab9130c737c718391cf5318a773ae500a955a4f9 Warner Losh 2026-09-24 14:39:21

debug: Commit manually moved from "unknown" to "admin".


boot-test.sh: Add netboot-http-efi test

Using iPXE, chainboot loader.efi with rootdev=http://${next-server}/
to test the loader's http:// code.

Sponsored by:           Netflix
a844bc229e8333e2eb88906a5566c9226ffdc2b2 Warner Losh 2026-09-24 14:46:06

debug: Commit manually moved from "unknown" to "admin".

Restore booting the partition the EFI boot image was loaded from.
BSDRP images are built with "poudriere image -t firmware", which puts
gptboot.efi on the ESP instead of loader.efi.  gptboot.efi reads the GPT
bootme attribute, picks the active system partition (BSDRP1 or BSDRP2),
chainloads /boot/loader.efi from it and hands loader.efi that partition
in LoadedImage->DeviceHandle (stand/efi/boot1/boot1.c:try_boot).

Since ce9bfd78167 ("loader.efi: Refactor try_boot_device_partitions"),
find_currdev() no longer tries that device: try_boot_device_partitions()
walks the parent disk while explicitly skipping dp->pd_handle, on the
assumption that the boot image always comes from an ESP holding no root
filesystem.  When chainloaded, the partition gptboot.efi selected is
therefore the one partition never considered, and loader.efi falls
through to the first other UFS partition on the disk - the previous
system.  Every A/B upgrade silently boots the old slice.

Commit 1c85c5eea09, which introduced try_boot_device_partitions(), did
try dp itself before its siblings; the refactor dropped it.  Restore it,
keeping the sibling walk as the fallback for the normal ESP case.

Fixes: https://cgit.freebsd.org/src/commit/?id=ce9bfd78167
Assisted-by: Claude Code (Fable 5, Opus 5)
Sponsored by: Netflix
9ecc2493ca5fbba852e175674b5cb8975b99af84 Warner Losh 2026-09-26 06:35:41

debug: classified in 03-filenames_plain1 by 'stand/'

boot-test.sh: Add gptboot.efi tests
Make sure that we can chainboot with gptboot.efi. Many projects use this
as their migration tool from gptboot to ping-pong partitions to boot
from. This tests that functionality which I recently broke.

Assisted-by: Claude Code (Fable 5, Opus 5)
Sponsored by:           Netflix
d8acc2a9a431b4d57ef79b2ca3113ecf33b95d8d Warner Losh 2026-09-24 15:02:23

debug: Commit manually moved from "unknown" to "admin".

ifconfig(8): show parent device for USB Ethernet interfaces
Report net.ue.<unit>.%parent as "parent interface", consistent with
wlan(4):

  # ifconfig ue0
  ue0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
          ether 00:00:5e:00:53:2a
          inet 192.0.2.10/24 broadcast 192.0.2.255
          parent interface: ure0
          media: Ethernet autoselect (2500Base-T <full-duplex>)
          status: active

Reviewed by:    aokblast
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D59060
ef27f784697c4f9d95a0d343b1001028714f4687 Li-Wen Hsu 2026-09-27 19:31:12

debug: classified in 03-filenames_plain1 by 'sbin/'

Libraries

libbsdconf: parse from a bounded in-memory buffer
Copy the descriptor into a buffer of at most 64 MiB (raise it with
BSDCONF_MAX_BYTES) and tokenize with bsdconf_scan(), the walker
bsdconf_put() already uses.  Input above the cap fails with EFBIG.
Bump libbsdconf to 1.2.0 and sysconf(8) to 2.0.

Suggested by:   fuz
Reviewed by:    fuz
Differential Revision:  https://reviews.freebsd.org/D59751
74cab6e2371fc35b58d5d3d018c7c3ad52809153 Devin Teske 2026-09-22 22:31:20

debug: classified in 05-summary-prefix by 'lib.*:'

libutil: Make free_iovec() zero its arguments, like the manpage claims
Approved by: kib
Differential Revision: https://reviews.freebsd.org/D59929
e8da57256d79bea8cfc25e5d838978c9fd1fc0a5 Gleb Popov 2026-09-23 15:32:55

debug: classified in 04-filenames_plain2 by 'lib/'

libthr: GC pshared locks not more than each 25msecs by default
Provide a tunable env variable to request immediate GC on destroy
to allow to return to the previous behavior.

Based on the report and patch by Atle Solbakken <atle.solbakken@gmail.com>.
PR:     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=268532
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
4472a048cf95c9c1593a8b04655a59096b44b0c9 Konstantin Belousov 2026-09-27 22:16:33

debug: classified in 04-filenames_plain2 by 'lib/'

Filesystems

fusefs: fix a deadlock caused by daemons that never initialize
If a daemon never responds to FUSE_INIT, but some process attempts to
access the mountpoint, and a different process (possibly the daemon
itself) attempts to unmount, a deadlock would result.

Fix this bug by blocking any thread that enters fuse_vfsop_root until
the daemon responds to FUSE_INIT or it times out.  That will block any
thread attempting to lookup a path in the fuse mountpoint, before it
even gets to fuse VOPs.  Remove less thorough initialization checks in
fuse_ticket_fetch and fuse_vnop_access that are no longer necessary.
And add a test case.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=287431
MFC after:      2 weeks
Sponsored by:   ConnectWise
Reviewed by:    js
Differential Revision: https://reviews.freebsd.org/D59737
0bd6348b52e1991fafc55128173c989dab36dfd9 Alan Somers 2026-09-15 21:23:50

debug: classified in 03-filenames_plain1 by 'sys/fs/'

filesystems: use g_vfs_close_unlocked(9)
As result, we lock the devvp vnode around calls to VOP_FSYNC() on
unmount. For instance, the vn_fsync_buf() implementation of fsync()
needs exclusive lock on the vnode to guarantee that all dirty buffers
are indeed synced.

Reviewed by:    markj
Tested by:      pho
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D59932
53edaad235c86e4426e97d63be48f0160bcc5267 Konstantin Belousov 2026-09-20 10:27:07

debug: classified in 03-filenames_plain1 by '['sys/fs/', 'sys/ufs/']'

Kernel

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

dtrace/arm64: Fix copyout and copyoutstr
Calling dtrace_copy and dtrace_copystr with the kaddr and uaddr
arguments inversed does not work with PAN. Rename them
dtrace_copyin_pan and dtrace_copyinstr_pan, respectively, and
implement dtrace_copyout_pan and dtrace_copyoutstr_pan.

Avoid excessive faulting by checkin DTrace's CPU flags. Implement the
trick from OpenSolaris/Illumos of only checking the flags when
crossing into a new page, altough more effectively by examining the
vaddr instead of the count.

Reviewed by:    markj
MFC after:      3 weeks
Differential Revision:  https://reviews.freebsd.org/D59449
a6deeaa2fb3b28a61ae56a85f2275f67fcf23262 Benjamin Jacobs 2026-09-16 13:07:01

debug: classified in 04-filenames_plain2 by 'sys/'

kern_linker: use __func__ correctly in diagnostics
__func__ is a variable not a string literal so pass it to printf.  This
only manifest when KLD_DEBUG was defined so wasn't tested by an kernel
including LINT.

Reported by:    Mark Millard <marklmi@yahoo.com>
Sponsored by:   Innovate UK
0a3d54a47eb6f71b2309fec79b2dce109bb72240 Brooks Davis 2026-09-21 09:30:15

debug: classified in 04-filenames_plain2 by 'sys/'

LINT: enable KLD_DEBUG
Without this, no kernel config contained this option so it was easy to
break.

Sponsored by:   Innovate UK
e376d28ce86135a12e3a9b31ca31fe80c59611be Brooks Davis 2026-09-21 09:51:26

debug: classified in 04-filenames_plain2 by 'sys/'

lockf: Truncate the active lock list earlier in lf_purgelocks()
Otherwise vfs_report_lockf() can race with lf_purgelocks() while the
latter is freeing active lock entries without any locks held.

Reviewed by:    kib
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D59768
e20ed58d265cd6eba9b28efc8e8956324937d4c3 Mark Johnston 2026-09-21 14:14:45

debug: classified in 04-filenames_plain2 by 'sys/'

Ignore LINUX_POLLREMOVE
This matches upstream behaviour since Linux's demangle_poll()
silently discards POLLREMOVE from the requested events.

Reviewed by:    emaste
Sponsored by:   Sippy Software, Inc.
Differential Revision:  https://reviews.freebsd.org/D59914
MFC after:      1 week
PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=297467
26b3ff1f5c4bb1c4c311638e92b229cbc94a44ec Maxim Sobolev 2026-09-22 18:37:52

debug: classified in 04-filenames_plain2 by 'sys/'

misc: Avoid use of Unicode closing single quote
The Unicode closing single quotation mark is classified as a homoglyph
and can trip automated code quality checks in downstream CI pipelines or
cause code review UIs to refuse to display a file.  If used as an
apostrophe, use the ASCII single quote instead.  If used as a closing
single quote, replace with double quotes or no quotes at all.

Sponsored by:   Klara, Inc.
Sponsored by:   NetApp, Inc.
Reviewed by:    ziaee, obiwac, olce
Differential Revision:  https://reviews.freebsd.org/D59911
7399be2030f5e8619bf8d7b379d0b42d21ca8052 Dag-Erling Smørgrav 2026-09-23 12:43:13

debug: classified in 04-filenames_plain2 by 'sys/'

vfs_register: prevent kernel crash
vfs_register hashes the filesystem name and uses it for sysctl oids.
A filesystem name which hashes to 0 crashes in sysctl_register_oid().

Map 0 to 1 to prevent the kernel crash.

This can be tested with "udf2" as the filesystem name.

MFC after:      1 month
MFC to:         stable/15 stable/14
Reviewed by:    kib
Differential Revision: https://reviews.freebsd.org/D59839
3897678132e71df70dbb18bf8e2f19124beee5d7 Alexander Leidinger 2026-09-23 12:30:42

debug: classified in 04-filenames_plain2 by 'sys/'

ktls: Fix an off-by-one bug in tls13_find_record_type()
If the entire plaintext is zero-filled, the backwards walk in
tls13_find_record_type() would return the offset of the last byte of the
TLS header.  This causes an underflow when decrypting, resulting in a
null pointer dereference.

Fix the bug and add a regression test.

Reviewed by:    gallatin, jhb
MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D59767
7c5e457d3afdc7742ee24f0b5ee6e5e7aa00a6bd Mark Johnston 2026-09-23 16:53:17

debug: classified in 04-filenames_plain2 by 'sys/'

posixshm: Fix a double unlock in shm_partial_page_invalidate()
For some reason, shm_partial_page_invalidate() unlocks the object upon
an error, but its callers don't expect this.  Don't do any special error
handling.  Keep the subroutine anyway since the name is a bit clearer
than vm_page_grab_zero_partial().

While here, normalize the object pointer used for locking in
shm_deallocate().

Reviewed by:    kib
Fixes:          https://cgit.freebsd.org/src/commit/?id=454bc887f250 ("uipc_shm: Implements fspacectl(2) support")
MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D59877
ba974faaf30b74472acc4f0dc5853a22d43951f2 Mark Johnston 2026-09-23 16:53:53

debug: classified in 04-filenames_plain2 by 'sys/'

linuxkpi: Fix double-cleanup in linux_pci_attach_device() error path
put_device() already triggers lkpi_pci_dev_release(), which removes
pdev from pci_devices, frees pdev->bus, destroys pcie_cap_lock, and
uninits the DMA private data.

Reported by:    gallatin
Fixes:          https://cgit.freebsd.org/src/commit/?id=66b25ddf9125 ("LinuxKPI: pci detach: implement a proper detach (release) path")
Reviewed by:    kib, gallatin, bz
Sponsored by:   NVidia networking
MFC after:      1 week
Differential Revision: https://reviews.freebsd.org/D59913
ac9c07a3e90888d69d0a524de520d4de8ae60de5 Slava Shwartsman 2026-09-22 17:21:13

debug: classified in 04-filenames_plain2 by 'sys/'

jail: set default root directory for a jail to its parent's root.
All default jail parameter values are an empty or otherwise standard
value, or are copied the jail's parent.  A notable exception is the
root directory, which is instead copied from the creating process's
jail.  Fix that to be in line with everything else.

This change affects only the default when no path is specified; if
a path of "/" is explicitly given, that will still be the creating
process's root directory.
10a3562a019b4eaaa0f5c50a15d739c43e41e8e7 Jamie Gritton 2026-09-23 23:25:35

debug: classified in 04-filenames_plain2 by 'sys/'

vm_page: Fix the error path in vm_page_alloc_contig_domain()
If we are inserting a run of pages into a VM object and fail at some
point due to a memory allocation failure, we have to free all of the
pages in the run.  We do that by resetting some fields and calling
vm_page_free_toq() on each page; this removes the page from the object
and frees it back to the buddy allocator.

If the page is supposed to be wired, we reset the reference count, but
this was done incorrectly: the VPRC_OBJREF flag must be retained as the
page still belongs to an object.  Resetting it to zero will cause a
panic in vm_page_free_prep(): vm_page_free_object_prep() will subtract
VPRC_OBJREF from the refcount, causing underflow, and
vm_page_free_prep() subsequently calls panic() if the refcount is
non-zero.

Reviewed by:    alc, kib
Fixes:          https://cgit.freebsd.org/src/commit/?id=fee2a2fa3983 ("Change synchonization rules for vm_page reference counting.")
MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D59908
742e58ddc989563f90a1d636cb29793641784ca1 Mark Johnston 2026-09-24 15:49:37

debug: classified in 04-filenames_plain2 by 'sys/'

lockf: Do not block in vfs_busy()
A race is possible otherwise: vfs_busy() may return after an unmounted
filesystem has been removed from the global mount list.  That is,
vfs_busy() will block until vfs_mount_destroy() sets MNTK_REFEXPIRE, and
at that point the mountpoint has been removed from the mountlist, so
TAILQ_FOREACH can return an invalid value.

Simply do not block if the mountpoint is being unmounted.

Reviewed by:    kib
Fixes:          https://cgit.freebsd.org/src/commit/?id=eca39864f702 ("Add sysctl KERN_LOCKF")
MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D59982
dd16a5f53b0b2e967d20d2900f18fc320997679b Mark Johnston 2026-09-24 16:14:34

debug: classified in 04-filenames_plain2 by 'sys/'

g_vfs_close_unlocked(9): wrapper around g_vfs_close(9)
that locks both bo vnode and topology.

Reviewed by:    markj
Tested by:      pho
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D59932
87962e08fa18797103c96c17fd8c88ada056e0c0 Konstantin Belousov 2026-09-20 10:27:07

debug: classified in 04-filenames_plain2 by 'sys/'

VFS: require locked vnode for fsync()
Stop exempting devfs nodes.

Reviewed by:    markj
Tested by:      pho
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D59932
30ad8440b46838b050360ed87e6165a067f1cf8a Konstantin Belousov 2026-09-20 03:22:39

debug: classified in 04-filenames_plain2 by 'sys/'

SYSCTL(9): Retire SYSCTL_NODE_CHILDREN()
It does not provide value over the pre-existing SYSCTL_STATIC_CHILDREN()
macro, which is widely used in the tree, whereas SYSCTL_NODE_CHILDREN()
is not.

Reviewed by:    markj
MFC after:      3 days
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D60009
4672ad1f16092c146261b4de485ec5eb5e8d127b Olivier Certner 2026-09-25 08:29:19

debug: classified in 04-filenames_plain2 by 'sys/'

sched: options: Regroup scheduler-related kernel options
This makes it easier to have a full list of them at a glance, and makes
for a natural place to add new ones.

MFC after:      3 days
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D60010
406d6658ff821fc43eb0b2b10df4ab09eb2e2e16 Olivier Certner 2026-09-24 14:59:07

debug: classified in 04-filenames_plain2 by 'sys/'

Commit group #4: NOTES
NOTES: SMP: Move PREEMPTION out of the debugging options section

It has been activated by default for more than 20 years.

Reviewed by:    mchoo, srcmgr (imp)
Fixes:          https://cgit.freebsd.org/src/commit/?id=444ba945136b ("Switch the default scheduler to 4BSD...")
MFC after:      3 days
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D60012
61ce73643f22f6f8273701eb978faa246bbca27d Olivier Certner 2026-09-24 16:00:32

debug: classified in 04-filenames_plain2 by 'sys/'


NOTES: IPI_PREEMPTION: Fix documentation, applies to all architectures

Move its description into 'sys/conf/NOTES' and update it to match reality.

Reviewed by:    scheduler (mchoo)
MFC after:      3 days
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D60013
d972d832f580c307cdfd87d563a382f40877dd10 Olivier Certner 2026-09-24 16:04:35

debug: classified in 04-filenames_plain2 by 'sys/'


NOTES: Multiple schedulers can be compiled in at once

Mention that ULE is the default scheduler when multiple ones are
compiled in and how the tunable 'kern.sched.name' can be used to select
another one.

While here, regroup SCHED_ULE and SCHED_4BSD, as they control if the
respective scheduler instances are compiled in, putting SCHED_STATS
aside.

Reviewed by:    mchoo
Fixes:          https://cgit.freebsd.org/src/commit/?id=75a66a92c92f ("- Add an option to compile in SCHED_STATS. ...")
Fixes:          https://cgit.freebsd.org/src/commit/?id=1322760fd127 ("sys: enable both SCHED_ULE and SCHED_4BSD for some configs")
MFC after:      3 days
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D60014
754d2c69f3589cdd0bc4649d9e85ecd59935d9d3 Olivier Certner 2026-09-24 16:23:05

debug: classified in 04-filenames_plain2 by 'sys/'

geom: Remove unused fields from struct bio
The corresponding machinery was removed in commit 0c4440c3aafe6, ten
yearso ago.

No functional change intended.

Reviewed by:    imp
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D59986
d80c01bfb26612bf036b8ed7f7bfd5cc04d949f3 Mark Johnston 2026-09-25 15:12:43

debug: classified in 04-filenames_plain2 by 'sys/'

jail: Simplify refcount manipulation routines
- refcount_acquire() returns the old value, use that to assert that the
  old value was non-zero.
- refcount_release() already asserts that the refcount value is
  non-zero, so don't bother asserting that again in the jail code.
- Use __diagused instead of having separate implementations for
  INVARIANTS and !INVARIANTS.

No functional change intended.

Reviewed by:    jamie
MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D59983
de6ee1fde8bbcc3dde643ae9f2122c8e2499fe29 Mark Johnston 2026-09-25 15:16:12

debug: classified in 04-filenames_plain2 by 'sys/'

jail: Fix a race in prison_deref()
If we're killing a jail which has some user refs pending, then we would
first drop our ref and then kill all processes in the prison.  However,
it's possible for the prison to be freed before we finish that
operation, generally if the processes exit on their own before
prison_proc_iterate() returns.

Thus, defer the release of the prison refcount until after we've killed
all procs.

Reviewed by:    jamie
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D59984
79af745f4c29ab3df037fcf0a4b4fb1ea393825f Mark Johnston 2026-09-25 15:16:24

debug: classified in 04-filenames_plain2 by 'sys/'

kasan: Fix the annotation for shadow map checks in atomic_load_*
atomic_load_* is a read, not a write.  Otherwise KASAN will report a
use-after-free via atomic_load_* as a write rather than a read.

MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
0aa055edc17267c6e971d29cabeffed0b1c59c32 Mark Johnston 2026-09-25 15:19:30

debug: classified in 04-filenames_plain2 by 'sys/'

imgact_aout: Remove a prototype for a non-existent function
aout_coredump() was removed in commit 1eecfae3e53cb3.

No functional change intended.

MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
4523cbbfef79eb63e287d9ebd88d9f3ebd885ba1 Mark Johnston 2026-09-24 19:03:36

debug: classified in 04-filenames_plain2 by 'sys/'

compat/linux: Fix IFLA_IFNAME translation for multi-message netlink
nlmsg_translate_ifname_nla() always used nw->ifp for the name,
which is fine for a single-message ifnet event, but an RTM_GETLINK
dump holds one RTM_NEWLINK per interface and is translated with
the ifp the writer had when the buffer was flushed.

The root of the problem is that msgs_to_linux() takes a single
ifp for a buffer that may contain messages about many interfaces.

Use ifi_index to resolve the name instead.

Reviewed by:    glebius
Differential Revision:  https://reviews.freebsd.org/D59595
287d60af18126ee0750fa2332896ede2b84a12dc Pouria Mousavizadeh Tehrani 2026-09-25 16:41:36

debug: classified in 04-filenames_plain2 by 'sys/'

sysvshm: Fix locking in shm_prison_set()
We were not acquiring the global sysvshm lock when handling cleanup of
sysvshm segments.  Acquire the lock in shm_prison_cleanup() instead, to
be consistent with the sysv semaphore code.

Reviewed by:    jamie
MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D60030
546d15061962a8c45c779210969015e30124fe8d Mark Johnston 2026-09-25 21:38:06

debug: classified in 04-filenames_plain2 by 'sys/'

linux: Exposes renderD nodes and chardev in sysfs
To allow normal users to render through the render device, we expose the
renderD node. This enables Wayland applications to use hardware
acceleration when running under the Linux emulator.

Additionally, libdrm and Mesa need to look up
/sys/dev/char/<major>:<minor> and <pcidev>/drm to identify the
corresponding renderer device (e.g., a renderD device). We expose this
path as well so that libdrm can locate the renderer.

Differential Revision: https://reviews.freebsd.org/D59190
102adf88e6e8f83a9ab9769732d168c501f8eb6c ShengYi Hung 2026-08-26 07:02:49

debug: classified in 04-filenames_plain2 by 'sys/'

uio: make *copyinuio take a void *
This aligns with copyinuio_t and avoids some hypothetical undefined
behavor around calling functions with mismatched types.

Reviewed by:    kib
Effort:         CHERI upstreaming
Sponsored by:   Innovate UK
Differential Revision:  https://reviews.freebsd.org/D60024
2a717d519e04c5af9f70fb0c0cad0e25aba62d0b Brooks Davis 2026-09-26 11:05:43

debug: classified in 04-filenames_plain2 by 'sys/'

vm_page: Replace PGA_EXECUTABLE with PGA_PMAP_PRIV1
At present, PGA_EXECUTABLE is only used by the powerpc mmu_oea64 pmap.
The MI layer only accesses this flag to assert that it is clear when a
managed page is freed.  Soon, we will need a similar, but not identical,
machine-dependent flag in the arm64 pmap.  So, we rename this flag to
PGA_PMAP_PRIV1, simply saying that it is reserved for use by the pmap.
Each pmap can then define a name that best reflects its own meaning.
However, we still assert that this flag is clear when a managed page is
freed.

No functional change.

Reviewed by:    kib, markj
Differential Revision:  https://reviews.freebsd.org/D59995
f29a09d977378fc8504bf284849fc0438ce29153 Alan Cox 2026-09-25 05:01:09

debug: classified in 04-filenames_plain2 by 'sys/'

linux(4): Fix signal mask restoration in epoll_pwait(2)/epoll_pwait2(2)
Since 80c7315d17ce ("Restore signal mask in epoll_pwait.") the caller's
signal mask is saved in a local variable, but TDP_OLDMASK is still set
and the TDA_SIGSUSPEND AST is still scheduled.  On return to user mode
that AST, or postsig() if a signal is delivered, then installs
td_oldsigmask, which this code never writes and which holds whatever
mask the thread had at its last sigsuspend(2), pselect(2) or ppoll(2).
As a result every epoll_pwait(2)/epoll_pwait2(2) call with a non-NULL
sigmask can leave the thread with a stale signal mask.  In addition, the
explicit restore at the end overwrote the return value, so EINTR (and
any other error) was reported to user space as 0.

Save the old mask in td_oldsigmask and let the AST restore it, as
kern_pselect() and kern_poll_kfds() do: schedule TDA_SIGSUSPEND if the
wait was interrupted, so the signal is delivered with the temporary mask
in place, and TDA_PSELECT otherwise.  This matches Linux, which restores
the saved mask unless the syscall returns -EINTR.

This deadlocks Bun-based programs such as Claude Code (>= 2.1.269) and
opencode.  JavaScriptCore suspends threads for conservative GC stack
scanning by sending SIGPWR and waiting for the target's handler, which
calls sigsuspend(2) with SIGPWR blocked.  Afterwards td_oldsigmask
contains SIGPWR, the event loop's next epoll_pwait2(2) (Bun always
passes an empty sigmask) blocks SIGPWR on the main thread, and the next
GC suspend request waits forever.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=298878
Fixes:          https://cgit.freebsd.org/src/commit/?id=80c7315d17ce ("Restore signal mask in epoll_pwait.")
MFC after:      1 week
16a284b1cdfd45ba99c2723e7f88497e76b235ad Grzegorz Junka 2026-09-27 19:22:20

debug: classified in 04-filenames_plain2 by 'sys/'

Build system

vmimage.subr: Include dangling symlinks in images
When creating VM images, we filter the METALOG file created by pkg(8)
when installing non-base packages, rejecting any lines which correspond
to files which don't exist; this solves a problem which arose when a
package was installed and then deinstalled (or upgraded) later in the
image-building process.

Unfortunately [ -e ... ] follows symlinks and is not basedir-aware, so
an absolute symlink which is valid *inside* the image is omitted from
the image if it points to something which isn't present in the build
host system.

Replace [ -e ... ] with [ -e ... ] || [ -L ... ] so that symlinks are
included even if dangling.

While I'm here, add quoting in case future paths become problematic.

Sponsored by:   Amazon
MFC after:      3 days
5a2328a17851ac609ab6c786d9b0db388f15e6b3 Colin Percival 2026-09-22 00:08:26

debug: classified in 02-filenames_wildcards by 'release/.*'

Remove Dtrace/ZFS tests if their knobs are disabled
Prior to this change, Dtrace and ZFS tests and their respective
directories would remain installed even if `${MK_DTRACE_TESTS}` == no or
`${MK_ZFS_TESTS}` == no.

This change enhances the logic to remove the tests when the respective
knobs are disabled so the tests will be removed when `make delete-old`
is run.

MFC after:      2 weeks
30c20ca26e105cffc5f37a95964cd9b2cad1b6cd Enji Cooper 2026-09-22 02:27:04

debug: classified in 03-filenames_plain1 by 'tools/build/'

src.opts.mk: force the Dtrace tests off if ${MK_DTRACE} == no
Prior to this change Dtrace's tests could be enabled even if
`${MK_DTRACE}` == no. Allowing this doesn't make sense so remove the
tests if `${MK_DTRACE}` is also disabled.

MFC after:      2 weeks
f6db138f97b78e641b07a7c3695ccf62b0f42f28 Enji Cooper 2026-09-22 02:34:33

debug: classified in 03-filenames_plain1 by 'share/mk/'

Remove CDDL and ctfconvert tests when their controlling knobs are disabled
In the event someone specified MK_CDDL == no prior to this change, all
tests under `/usr/tests/cddl` would stick around after the change,
resulting in errors. Similarly, MK_DTRACE == no removed ctfconvert,
which the ctfconvert tests relied on (but remained around after the knob
was disabled).

Remove the tests under the respective blocks now so they don't linger
around on systems where these knobs are disabled, resulting in false
positives when running the complete test suite.

The ctfconvert tests weren't specifically put under
`${MK_DTRACE_TESTS}` == no because ctfconvert was bundled separately
from the upstream provided Dtrace test suite.

MFC after:      2 weeks
MFC with:       30c20ca26 ("Remove Dtrace/ZFS tests if their knobs are disabled")
df6131e2b74d9f334c16387e9a46cafd6e27eb78 Enji Cooper 2026-09-22 02:46:52

debug: classified in 03-filenames_plain1 by 'tools/build/'

dtrace: Remove bogus Makefile.inc
This was added in the initial import of dtrace and overrides the
normal load/unload targets with a custom target that loads a hardcoded
set of modules.  Over time, the set of modules has not been updated
and is now incomplete.  It's also not really useful compared to the
default implementation of these targets used for loading or unloading
an individual module being actively developed.

This functionality is also available via dtraceall.ko which is how
users commonly load the full suite of dtrace modules.

Reviewed by:    imp, markj
Differential Revision:  https://reviews.freebsd.org/D59821
df7b90556859e1e5dbaf8d3dae2177ca607c0558 John Baldwin 2026-09-23 19:13:22

debug: classified in 02-filenames_wildcards by '.*Makefile'

llvm: remove Mips target support
The Mips architecture has been removed from all supported branches now.

MFC after:      1 week
b5d1e0c5a4929e2be3bc58aad8e5b707860ec0fd Dimitry Andric 2026-09-24 12:50:47

debug: Commit manually moved from "unknown" to "build".

build/options: Remove old, obolsete GCC options
These aren't referenced in the tree anymore, so remove them from
here. This doesn't chanage src.conf.5, so I didn't commit that file.

Sponsored by:           Netflix
d2cce990699909044645fa290517016aa2f58af7 Warner Losh 2026-09-24 14:32:32

debug: classified in 03-filenames_plain1 by 'tools/build/'

Internal organizational stuff

Add entries for third-party projects I maintain
Add myself formally as the "maintainer" for atf, kyua, and lutok, both
in the GitHub CODEOWNERS and MAINTAINERS files.

This change matches the herald rules I recently setup for these
third-party components.
9257ae7294cecb5cdb8e808f7e50732f487339ef Enji Cooper 2026-09-21 22:01:05

debug: classified in 03-filenames_plain1 by '['.github/', 'MAINTAINERS']'

MAINTAINERS: Add myself to routing subsystem
Add myself as the maintainer for routing subsystem
in the GitHub CODEOWNERS and MAINTAINERS files.
8b66c7ba04f2d13a81948dd833b294753de5e857 Pouria Mousavizadeh Tehrani 2026-09-22 17:08:19

debug: classified in 03-filenames_plain1 by '['.github/', 'MAINTAINERS']'

bsd-family-tree: add NetBSD 10.2
7b7ef798bfc56c56e80b88bc277d5c6158dcaee4 Maxim Konovalov 2026-09-22 22:10:39

debug: classified in 03-filenames_plain1 by 'share/misc/bsd-family-tree'

ObsoleteFiles.inc: Add another entry for perfmon.4.gz
This was installed in two different places.
9cfc15bdfbc4459491c55518a41c447dfdadcc51 John Baldwin 2026-09-23 19:15:28

debug: classified in 03-filenames_plain1 by 'ObsoleteFiles.inc'

Add christos@ to MAINTAINERS and .github/CODEOWNERS
Sponsored by: The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D59912
f492ef8318f580081047da41905c3b339e924387 Christos Margiolis 2026-09-26 13:28:09

debug: classified in 03-filenames_plain1 by '['.github/', 'MAINTAINERS']'

Testing

gh-bc/tests: run tests in parallel
Helps to mitigate failures due to timeout in CI on emulated architectures:
https://ci.freebsd.org/job/FreeBSD-main-riscv64-test/16565/testReport/usr.bin.gh-bc/

MFC after:      3 days
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D59547
1b9aea382e31f1c72bdfefbe01db51dc7bd60952 Siva Mahadevan 2026-09-21 18:15:52

debug: classified in 02b-filenames_wildcards2 by 'usr.bin/.*/tests/.*'

tarfs_test: split large file test into independent cases
This avoids globally set timeouts for the group of
tarfs_large tests on slower emulated architectures.

While here, lower each testcase's timeout to reflect
the reduction of work. On QEMU aarch64, the largest case
runs in ~500s on a modern desktop, so double that for a
conservative estimate.

Discussed with:         des
MFC after:              3 days
Sponsored by:           The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D59033
34c40126fd10abac06cd628c0563c57e777c9eef Siva Mahadevan 2026-09-21 18:24:55

debug: classified in 02b-filenames_wildcards2 by 'tests\/.*'

ipfw tests: cover layer-2 filtering of unmapped mbufs
Test that ipfw's layer-2 hook copes with unmapped mbufs, on the pass
and on the deny path.

Reviewed by:    glebius
Assisted-by:    Claude Code (Fable 5, Opus 5)
Differential Revision:  https://reviews.freebsd.org/D59390
044cae0404883d12f62f00d80896c6f81fb4c5ea Alexander Leidinger 2026-09-04 07:36:05

debug: classified in 02b-filenames_wildcards2 by 'tests\/.*'

tests/sys/kern: skip unix_connectat fdescfs cases when fdescfs is missing
unix_connectat's fdescfs cases call mount_fdescfs(), which skipped on ENODEV.
nmount(2) never returns ENODEV: vfs_donmount() remaps the ENODEV from a failed
fdescfs module load to EINVAL with errmsg "Invalid fstype", so the skip never
fired and the cases failed on kernels without fdescfs.

Approved by:    ngie, asomers
Sponsored by:   Netflix
Differential Revision:  https://reviews.freebsd.org/D59227
c14281f6bb462ca03383d92a0d88228e9426268e Nick Banks 2026-09-24 15:49:09

debug: classified in 02b-filenames_wildcards2 by 'tests\/.*'

pf tests: basic osfp test
Load, list and clear the fingerprints.

Sponsored by:   Rubicon Communications, LLC ("Netgate")
3c0846bd9c3dfbe82377f90ef8ef1ef26e746fb9 Kristof Provost 2026-09-24 14:31:41

debug: classified in 02b-filenames_wildcards2 by 'tests\/.*'

tests/sys/vfs: add ABI-root absolute symlink tests
Pin the overlay namei(9) uses for Linux ABI processes: a target under
the ABI root wins (PR 289739), a native-only target should retry from
the native root (PR 297426), an ENOENT past a resolved ABI target is
not retried, and the plain no-symlink native fallback is unchanged.
Skip without a Linux userland so CI stays green.  The two native-only
cases use atf_expect_fail until the retry lands.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=297426
Reviewed by:    kib
Differential Revision:  https://reviews.freebsd.org/D59990
b98d169d1f910e0b28c7ea2f26fcc09f83614ec9 Devin Teske 2026-09-26 18:12:33

debug: classified in 02b-filenames_wildcards2 by 'tests\/.*'

Style, typos, and comments

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

clk: Fix a few typos in the spacemit CCU driver
Fixes:        https://cgit.freebsd.org/src/commit/?id=dcb10e3add17
Reported by:    Bruno Banelli <bruno.banelli@sartura.hr> (p_idx typo)
b94772d9bcea0cb8b9123dc9e7e4440c6a2857d4 Bojan Novković 2026-09-22 15:15:56

debug: classified in 01-style by '[tT]ypo'

pwd(1): De-obfuscate, style(9)
In getcwd_logical(), test for a '.' or '..' component in one of the most
straightforward and intelligible ways possible.

In particular, this removes a superfluous re-test of the the component's
first character being '.' when the first one did not pass and, more
importantly, prevents the second test from relying on a side-effect in
the first.

While here, for better clarity, replace the loop that searches for '/'
with a simple call to strchrnul().

Add high-level comments about what is going on.

While here, test explicitly that pointed 'char' values are not 0 ('\0')
(style(9)).

While here, separate the successive steps of getcwd_logical() with blank
lines.

No functional change (intended).

Discussed with: emaste
Fixes:          https://cgit.freebsd.org/src/commit/?id=2df923c5d2d0 ("pwd: Clean up and adopt POSIX semantics")
MFC after:      3 days
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D59709
72bb9eb7b6decc34f343bdcbf0a8df0c73f9edd4 Olivier Certner 2026-09-07 16:09:54

debug: classified in 01-style by '[sS]tyle'

VFS: style
Wrap long lines, related to the nullfs mounts over regular files and
sockets type checks.  Also fix indent.

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
e40c72c823c6502906d4024933f0c119b5ca17cf Konstantin Belousov 2026-09-22 16:30:11

debug: classified in 01-style by '[sS]tyle'

Contrib code

mandoc: Drop -ieee754-2008 abbreviation
Improve manpage compatability by dropping an abbreviation macro that
compiler upstreams do not want, causing manuals using it to render
incorrectly on other toolchains or operating systems. It was only used
in three manuals, which are amended in this commit.

Reviewed by:    fuz, markj
MFC after:      no, these did not MFC
Requested by:   Ingo Schwarze <schwarze@openbsd.org>
Fixes:          https://cgit.freebsd.org/src/commit/?id=db3884b03989 ("contrib/mandoc: add -ieee754-2008")
Fixes:          https://cgit.freebsd.org/src/commit/?id=63cd0841de76 ("document .St -ieee754-2008 in mdoc")
Differential Revision:  https://reviews.freebsd.org/D59880
14b855d29603d9cdf76cdd2ddc8803633b856725 Alexander Ziaee 2026-09-22 05:00:01

debug: classified in 03-filenames_plain1 by 'contrib/'

[tests] lib/libc/gen:assert_test: skip tests when NDEBUG set
In the event that NDEBUG is specified in CFLAGS--which is most likely
triggered via `MK_ASSERT_DEBUG` == "no" -- all assert(3) statements are
optimized out by design. This breaks the assert(3) tests as they
specifically rely on assert(3) actually raising a `SIGABRT` instead of
quietly succeeding.

Skip both tests if `NDEBUG` is set. There's no sense running the
`assert(true)` test if the result could instead be a false positive.

MFC after:      2 weeks
6f3445006aa05550f14af65b04276c3d25169941 Enji Cooper 2026-09-22 06:22:57

debug: classified in 03-filenames_plain1 by 'contrib/'

Commit group #5: contrib/atf: upgrade to 0.26
contrib/atf: upgrade to 0.26

This new version gets contrib/atf in line with the published version of
the package up on [GitHub][github].

Please note that this release is a major update: it contains several
bugfixes and feature enhancements. Most were already present in the
FreeBSD src repo, but there were a large number of changes made in
addition to what was already present.

MFC after:      1 month

Merge commit '9c78088348bcf1059d82a62bb57a0746309d4312'

Conflicts:
        contrib/atf/.cirrus.yml
        contrib/atf/Makefile.am
        contrib/atf/Makefile.in
        contrib/atf/aclocal.m4
        contrib/atf/admin/ar-lib
        contrib/atf/admin/check-style-common.awk
        contrib/atf/admin/check-style.sh
        contrib/atf/admin/compile
        contrib/atf/admin/config.guess
        contrib/atf/admin/config.sub
        contrib/atf/admin/depcomp
        contrib/atf/admin/install-sh
        contrib/atf/admin/ltmain.sh
        contrib/atf/admin/missing
        contrib/atf/atf-c++/Makefile.am.inc
        contrib/atf/atf-c++/atf-c++.3
        contrib/atf/atf-c++/atf-c++.pc.in
        contrib/atf/atf-c++/check.cpp
        contrib/atf/atf-c++/check.hpp
        contrib/atf/atf-c++/detail/Makefile.am.inc
        contrib/atf/atf-c++/detail/process_test.cpp
        contrib/atf/atf-c/Makefile.am.inc
        contrib/atf/atf-c/atf-c.3
        contrib/atf/atf-c/atf-c.pc.in
        contrib/atf/atf-c/detail/Makefile.am.inc
        contrib/atf/atf-c/detail/fs.c
        contrib/atf/atf-c/detail/fs_test.c
        contrib/atf/atf-c/detail/process_test.c
        contrib/atf/atf-c/tc.c
        contrib/atf/atf-c/tc.h
        contrib/atf/atf-sh/Makefile.am.inc
        contrib/atf/atf-sh/atf-check.cpp
        contrib/atf/atf-sh/atf-check_test.sh
        contrib/atf/bootstrap/Makefile.am.inc
        contrib/atf/bootstrap/package.m4
        contrib/atf/bootstrap/testsuite
        contrib/atf/config.h
        contrib/atf/configure
        contrib/atf/configure.ac
        contrib/atf/doc/Makefile.am.inc
        contrib/atf/doc/atf-test-case.7
        contrib/atf/m4/developer-mode.m4
        contrib/atf/m4/libtool.m4
        contrib/atf/m4/ltoptions.m4
        contrib/atf/m4/ltsugar.m4
        contrib/atf/m4/ltversion.m4
        contrib/atf/m4/lt~obsolete.m4
        contrib/atf/m4/module-defs.m4
        contrib/atf/test-programs/Makefile.am.inc

[github]: https://github.com/freebsd/atf
952231086100bed7130212b5425e44ffd732913b Enji Cooper 2026-09-22 15:23:32

debug: classified in 05-summary-prefix by 'contrib/'


atf-sh: install kmod_test added as part of the 0.26 release

Fixes:  https://cgit.freebsd.org/src/commit/?id=952231086100 ("contrib/atf: upgrade to 0.26")
a4c71d0a207ac36a7bb7ecabc00f988d99e07187 Enji Cooper 2026-09-22 16:36:46

debug: classified in 02-filenames_wildcards by '.*Makefile'


integration_test: backport fix from freebsd/atf

See the related merge commit for more details.

MFC after:      28 days
Obtained from:  [freebsd/atf@2690b04c][upstream]
Fixes:          https://cgit.freebsd.org/src/commit/?id=95223108 ("contrib/atf: upgrade to 0.26")

Merge commit '8fd09407c8e64fd26d095c9b00990c545577db5a'

[upstream]: https://github.com/freebsd/atf/commit/2690b04cbc608af165a58426b7275c063b779f03
8d94a93d967bbb985813aa5561c823ab5f75bb73 Enji Cooper 2026-09-24 04:30:34

debug: classified in 03-filenames_plain1 by 'contrib/'

contrib/expat: import expat 2.8.5
Changes: https://github.com/libexpat/libexpat/blob/R_2_8_5/expat/Changes

Security:       CVE-2026-93990
MFC after:      3 days
c7b67985633c408cae69703ca443cbfd84d326a8 Philip Paeps 2026-09-23 04:27:57

debug: classified in 05-summary-prefix by 'contrib/'

edk2: Import Loadfile2.h and TcgService.h from edk2-stable202502
Verbatim import of these files, with unix line endings.

Sponsored by:           Netflix
e960cb4c033c8f65af1e8b09310c1bd5414f21ac Warner Losh 2026-09-24 06:34:26

debug: classified in 03-filenames_plain1 by 'sys/contrib'

edk2: Import FileInfo.h from edk2-stable202502
Sponsored by:         Netflix
4f06a8e49099e597c42dac4588196eb934e6fcd2 Warner Losh 2026-09-26 06:34:05

debug: classified in 03-filenames_plain1 by 'sys/contrib'

Reverted commits

-- no commits in this category this week --

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.21 at 2026-10-05 16:54:59+00:00.

This work is supported by Tarsnap Backup Inc.

Alternate version: 2026-09-21 (release)