FreeBSD git weekly: 2026-04-20 to 2026-04-26

Introduction

This is a display of mostly-automatically-classified git commits from 2026-04-20 to 2026-04-26.

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:

(2) Highlighted commits (these are copies, not in stats)
10 3.8% Userland programs
18 6.8% Documentation
31 11.7% Hardware support
23 8.6% Networking
7 2.6% System administration
7 2.6% Libraries
2 0.8% Filesystems
78 29.3% Kernel
21 7.9% Build system
1 0.4% Internal organizational stuff
9 3.4% Testing
2 0.8% Style, typos, and comments
33 12.4% Contrib code
24 9.0% Reverted commits
0 0.0% Unclassified commits
266 100% total
Technical notes about this page

debug: info about the automatic classification

num % num changed stage
25 9.4% 0 00-reverts
5 1.9% 0 01-style
27 10.2% 0 02-filenames_wildcards
10 3.8% 0 02b-filenames_wildcards2
98 36.8% 0 03-filenames_plain1
87 32.7% 0 04-filenames_plain2
6 2.3% 0 05-summary-prefix
8 3.0% 0 Manually-classified commits
0 0.0% 0 Unclassified commits

debug: more stats

num % stage
0 0.0% Misclassified commits
258 97.0% Classified commits, no corrections

debug: groups

12 4.5% num in revert
5 1.9% num in fixes
65 24.4% num in consecutive
82 30.8% 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.

Merge llvm-project release/21.x llvmorg-21.1.8-0-g2078da43e25a
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvm-project release/21.x llvmorg-21.1.8-0-g2078da43e25a,
a.k.a. 21.1.8 release.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
7351d001fc7f5a77a18a102e12a3ca2cbfd6988c Dimitry Andric 2026-01-10 15:55:44

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

Bump __FreeBSD_version for llvm 21.1.8 merge
8f95b8b19088bd8d73f6d14dab7afe848dfc0c35 Dimitry Andric 2026-04-25 12:34:45

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

Userland programs

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

caesar: Add SPDX-License-Identifier tags
Reviewed by:  imp
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55461
3cc113c94fb9635ba9f11f5dd797530b9231ca58 Tuukka Pasanen 2026-04-21 14:43:35

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

kdump: tweaks for the extended errors decoding
Format the message.
Convert category to the source name if known.

Still print the raw value for the category, and the values of the
EXTERROR() optional arguments.

Requested and reviewed by:      mckusick
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56542
5c89d661a023c83a2001cf5b354b09c7d3ac91d8 Konstantin Belousov 2026-04-21 06:13:04

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

termcap: fix screen entry standout mode (so/se) capabilities
so=\E[3m (italic) is incorrect, should be so=\E[7m (reverse video).
se=\E[23m (italic off) is incorrect, should be se=\E[27m (reverse off).

mr=\E[7m (reverse video) is correctly defined in the same entry.
screen-256color inherits from screen via tc=screen and is fixed
transitively.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294499
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2139
MFC after:      1 week

Signed-off-by: Dan Mahoney <freebsd@gushi.org>
2bff747bb04db6beb19678abc45edd96be0a1347 Dan Mahoney 2026-04-14 03:53:51

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

kdump(1): add sys/ prefix for exterror source file name
This makes it consistent with libc formatting.

Requested by:   mckusick
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
4d062dbc20dce5a94da8dca1253ac9337b951c51 Konstantin Belousov 2026-04-22 07:35:06

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

Commit group #0: ident: Clean up
ident: Clean up

* Use libcasper instead of reinventing it.

* Add long option support.

* Drop pointless use of temporary locales.

* Consistently check for stdio errors.

* Clean up the code.

* Clean up and expand the tests.

MFC after:      1 week
Reviewed by:    ngie
Differential Revision:  https://reviews.freebsd.org/D56505
394f6b1b0a658755a9420906fb7a459c3d9501a5 Dag-Erling Smørgrav 2026-04-22 08:19:35

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


ident: Fix typo in manual page

Fixes:          https://cgit.freebsd.org/src/commit/?id=394f6b1b0a65 ("ident: Clean up")
3e6a26df1fb7e0508e1f81f826f8945b15a8bb48 Dag-Erling Smørgrav 2026-04-25 18:06:19

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

debug: moved to userland because 'Need to be grouped with 394f6b1b0a658755a9420906fb7a459c3d9501a5'

printenv: Clean up
* Error out if more than one argument is given.

* Check for stdio errors.

* Clean up the code.

* Clean up and expand the tests.

MFC after:      1 week
Reviewed by:    ngie
Differential Revision:  https://reviews.freebsd.org/D56506
abdf2a711cabebc107a04fd286e441e2030827f0 Dag-Erling Smørgrav 2026-04-22 08:19:39

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

freebsd-version(1): Disable pathname expansion in -j option
Set the -f flag to sh(1) to disable pathname expansion.
Also, quote the jail variable to ensure correct behavior when passed
to jexec(8).

Signed-off-by:  Nami Arjmandi <namiarjmandi@gmail.com>
Reviewed by:    pouria
Pull-Request:   https://github.com/freebsd/freebsd-src/pull/2158
f3bd86ba18512aca7099af2d2d49da5e46708d17 Nami Arjmandi 2026-04-22 16:23:22

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

sh: Allow vfork on redirected simple commands
Things like `{ some_program; } >/dev/null` use vfork, so use vfork
similarly for things like `some_program >/dev/null`.

This cannot be done for command substitutions, because of two problems:

* Redirections might cause the error message for later redirections or
  for an unknown command to be sent to the pipe (to be substituted), and
  this might cause a deadlock if the message is too long.

* The assignment of the pipe needs to come before instead of after the
  redirections.

Reviewed by:    bdrewery
Differential Revision:  https://reviews.freebsd.org/D55190
7262e60119b8840ee400d281421b8e65d8af9d84 Jilles Tjoelker 2026-04-25 13:03:29

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

tail(1): Fix -r (reverse) to work on pseudo filesystems
Pseudo filesystems (e.g., procfs) advertise a zero file size.
Fix reverse() to handle such a case similarly as forward() so
that '-r' works on pseudo filesystems.

Signed-off-by:  Aaron LI <aly@aaronly.me>
Reviewed by:    pouria, Ricardo Branco <rbranco@suse.de>, des
Fixes:          https://cgit.freebsd.org/src/commit/?id=1fb3caee7 ("tail: Do not trust st_size if it equals zero.")
Pull-Request:   https://github.com/freebsd/freebsd-src/pull/2080
4feeca3193c316c18472cd40f215446fda3bd739 Aaron LI 2026-03-17 04:53:49

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

Documentation

Man pages, release notes, etc.

pfctl: clarify usage of load option flags
`pfctl -A`, `-N`, `-O`, and `-R` restrict which rule types and options
are loaded. The man page language ("Load only...") does not make it
clear that these options can be combined to (re)load multiple rule types
and/or options without reloading the entire packet filter.

Add language to make it explicitly clear that these flags combine.

Reviewed by:    kp
Signed-off-by:  Ross Williams <ross@ross-williams.net>
19eecf94fa16aac6f90a4610d2f342f70060674a Ross Williams 2026-04-17 15:19:23

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

membarrier.2: document MEMBARRIER_CMD_GET_REGISTRATIONS
Reviewed by:  markj, Ricardo Branco <rbranco@suse.com>
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56507
324b3c2892a53e5fd9b1d8795a31a59ee835c5de Konstantin Belousov 2026-04-18 18:47:02

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

geom manuals: Clarify units
The gpart manual says that sizes are specified in blocks, unless an SI
unit suffix is provided. This confuses new operators because GEOM uses
binary bytes, a large difference at modern storage pool sizes. Rewrite
suffixes in all GEOM manuals to consistently clarify this, matching what
we and the rest of the industry have been doing in other documentation.
While here, use non-breaking spaces between numbers and units, unless
they are already written with a hyphen.

MFC after:              3 days
Reviewed by:            fuz
Reported by:            bbaovanc <bbaovanc@bbaovanc.com>
Differential Revision:  https://reviews.freebsd.org/D56534
975e3605ebb15cbaf5a25c1c9d1f51aed41291d0 Alexander Ziaee 2026-04-20 17:21:23

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

bsdinstall.8: Document DISTRIBUTIONS defaults correctly
Some targets override the default value of DISTRIBUTIONS.
Document that in the manual page.

Reported by:    Nia Alarie <nia@NetBSD.org>
Reviewed by:    jlduran
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56528
4029e765436ff1633139c1afe1bc25185a0f4ef1 Mateusz Piotrowski 2026-04-20 15:52:25

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

src.conf.5: Regenerate
Last time I generated this, there were many copies of WITH_CASPER for
reasons unknown.

Sponsored by:           Netflix
e8156a7e5fffd0bf8dc09df542d9329b19bffecc Warner Losh 2026-04-21 15:23:58

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

tests.7: Provide better examples
Previous authors appear to have prioritized brevity over clarity.  This
unfortunately resulted in a manual page that left its reader with the
false impression that Kyua is difficult to use.  Attempt to correct
this by providing more and simpler examples with longer explanations.

While here, correct outdated information about where Kyua stores its
logs and results.

MFC after:      1 week
Reviewed by:    ziaee, ngie
Differential Revision:  https://reviews.freebsd.org/D56475
3d00db6b8b73ef7f89654a2928d247d62d39ee29 Dag-Erling Smørgrav 2026-04-22 08:19:32

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

src.conf(5): rebuild after introduction of WITHOUT_PKGCONF
Sponsored by: The FreeBSD Foundation
Reviewed by:    bapt, philip
Approved by:    philip (mentor)
57db556be43b5abb3dfb406fead6e0a9091f7531 Pierre Pronchery 2026-04-17 17:19:22

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

Commit group #1: build.7
build.7: Improve make delete-old example

Be more explicit that deleting old files and libraries needs to be
really after you're rebooted a third time and you're really actually
sure your applications aren't using old libs, following irc discussion.

Also adjust an example slightly to fit on 80 character console.

MFC after:              3 days
Discussed with:         emaste, fuz, jhb
Differential Revision:  https://reviews.freebsd.org/D54079
1d69c8e4ac7da648f63a830b23b872582469ba37 Alexander Ziaee 2026-04-22 17:24:38

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


build.7: Explain packaging a custom kernel

MFC after:              3 days (to 15 only)
Requested by:           vermaden
Discussed with:         emaste, ivy, Mark Millard <markmi_dsl-only.net>
Differential Revision:  https://reviews.freebsd.org/D56217
1bcd2e2f8311b737170e4bae8381dcb7de2c4413 Alexander Ziaee 2026-04-22 17:26:45

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


build.7: Explain specifying multiple KERNCONFs

MFC after:              3 days
Reviewed by:            ivy, mhorne
Differential Revision:  https://reviews.freebsd.org/D56281
b183dae4a9934ed9bb91763b5f9d9d4e4d4120a2 Alexander Ziaee 2026-04-22 17:31:04

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

freebsd-base.7: Add a caveat about dev branches
MFC after:            3 days (to 15)
Discussed with:         bapt, emaste, ivy
Differential Revision:  https://reviews.freebsd.org/D56389
886610c1003e0d0e270531f5a75b0f2c2b5eb2b8 Alexander Ziaee 2026-04-22 17:35:50

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

Explain relationship between file storage size and EOF.
32b0dfb326593b8dae31cc2bdc1e2d08ea70e9d7 Greg Lehey 2026-04-24 02:14:20

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

cam: Document kern.cam.max_high_power.
Sponsored by:         Netflix
Differential Revision:  https://reviews.freebsd.org/D56463
334adacbc1b26cd2fdfd6d8734b1066a862ef58b Warner Losh 2026-04-24 18:31:23

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

security(7): fix `mandoc -T lint` complaints
- Add `.Nm` section for securelevel(7) to match corresponding MLINKS entry.
- Fix the spelling for mac(4) (the actual subsystem manpage is spelled out in
  lowercase.

MFC after:      1 week
573a9e5764df04d2dbfb0cf174458936b0a97095 Enji Cooper 2026-04-24 04:12:00

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

hosts.equiv.5: correct nits to fix `mandoc -T lint` issues
- Rename `.Nm .rhosts` to `.Nm rhosts` to match the MLINK for the
  manpage.
- Use `.Pa` instead of `.Nm` when discussing the paths for `.rhosts` and
  `hosts.equiv.5` for explicitness and clarity.

Bump .Dd for the change.

MFC after:      1 week
af864dd4a2df50021f8a48c218a1f5968dbbb0c1 Enji Cooper 2026-04-24 04:50:01

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

split.1: grammar
PR:           https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294757
Reported by:    Ulrich Eduard
MFC after:      1 week
c0c7d1e1af4e42deb9c5a95c735602100c3cc1f2 Maxim Konovalov 2026-04-25 02:15:37

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

loader.efi(8): Document LoaderEnv and NextLoaderEnv EFI variables
Describe how the LoaderEnv and NextLoaderEnv variables can be used.

PR:                     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293054
Reviewed by:            imp
Sponsored by:           Wiesbaden Hackathon 202604
Differential Revision:  https://reviews.freebsd.org/D56633
4137c673fa963fdf409eba2f48d615350c988ffe Paarth Shirsat 2026-04-25 15:10:27

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

Fix reversion introduced in commit 32b0dfb326593b8dae31cc2bdc1e2d08ea70e9d7
Noted by: mckusick
1316cf5094a603981bab10764ebb29780299d1f3 Greg Lehey 2026-04-26 01:45:11

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

Hardware support

Hardware drivers and architecture-specific code.

nvmf_che: Don't leak a socket if an error occurs finalizing the socket
If soreserve() or sosetopt() (to set TCP_NODELAY) fails after claiming
the socket from the file descriptor, explicitly close the socket
before returning failure.

Sponsored by:   Chelsio Communications
Differential Revision:  https://reviews.freebsd.org/D55493
505f381cb96ee25bcf0df11cfaf15a601d969500 John Baldwin 2026-04-20 17:18:04

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

amd64: fix INVLPGB range invalidation
AMD64 Architecture Programmer's Manual Volume 3 says the following:

> ECX[15:0] contains a count of the number of sequential pages to
> invalidate in addition to the original virtual address, starting from
> the virtual address specified in rAX. A count of 0 invalidates a
> single page. ECX[31]=0 indicates to increment the virtual address at
> the 4K boundary. ECX[31]=1 indicates to increment the virtual address
> at the 2M boundary. The maximum count supported is reported in
> CPUID function 8000_0008h, EDX[15:0].

ECX[31] being what we call INVLPGB_2M_CNT, signaling to increment the
VA by 2M.

> This instruction invalidates the TLB entry or entries, regardless of
> the page size (4 Kbytes, 2 Mbytes, 4 Mbytes, or 1 Gbyte). [...]

Combined with this, my interpretation of the current code is: if
<va> is aligned on a PDE boundary, we'll use INVLPGB_2M_CNT to try and
invalidate <cnt> PDEs with a single call, but that only works if <va> is
the start of at least <cnt> 2M pages.  Otherwise, if <va> or any of the
subsequent PDEs isn't actually a superpage, then we would actually only
invalidate the *first* page within the PDE before skipping to the next
PDE, leaving the remainder of the 4K pages in between as they were.

The implication would seem to be that we would need to inspect the range
that we're trying to invalidate if we're planning on using
INVLPGB_2M_CNT at all, so this patch just simplifies it to a series of
4K invalidations.  My gut feeling is that we likely still come out on
top vs. the TLB shootdown we're avoiding.

This seems to explain some issues we've seen lately with fdgrowtable()
and kqueue on recent Zen4/Zen5 EPYC hardware, where we'd experience
corruption that we can't explain.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293382
Reviewed by:    alc, kib, markj
Differential Revision:  https://reviews.freebsd.org/D56458
1b8e5c02f5c07521129e06ff8ab7c660238fd75c Kyle Evans 2026-04-20 20:18:17

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

dpaa2: ni: add more stats and link information
In addition to the locally generated statistics counters, dpaa2 ni
provides a larger set of counters than we currently export via
sysctl.  Add (most of) the missing counters and descriptions.
Around Page 3/4 there are some things left to do if we want.
Also the manual was not clear on the descriptions of 3/0 and 3/1.

The second half of the change adds another sysctl note which exports
the link-state, speed, and capabilities set as a text-blob.  This is
especially interesting in case the "ni" stops passing packets.
From what I have found in that case the (internal) link state of the
ni goes DOWN but we do not see an interrupt for a link-state change.

Being able to diagnose the state helps to (manually) fix it for now
by changing the media status to 10BaseT or none and then back to auto.
That usually brings the internal link state back UP.

MFC after:      3 days
PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=279352
Reviewed by:    dsl, tuexen
Differential Revision: https://reviews.freebsd.org/D55321
c8cd633d78d04ff535960002ac9d1ab20f74b201 Bjoern A. Zeeb 2026-02-17 03:04:41

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

hwpmc: Implement IBS process sampling
This change enables process-wide sampling to work with IBS by ensuring
that read/write only gets or sets the current counter.

Reviewed by:    mhorne
Sponsored by:   Netflix
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2131
fd45987f1f66fe01b0cecede9e90c8aea5cae87e Ali Mashtizadeh 2026-04-07 23:30:51

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

ure: add USB device IDs for additional RTL8152/RTL8153 adapters
Add device IDs for several USB Ethernet adapters that use
RTL8152 and RTL8153 chips but are not yet recognized by ure(4).
This includes adapters from Cisco/Linksys, D-Link, Lenovo,
Microsoft Surface, Realtek, Samsung, and TP-Link.

All added devices use chip revisions already handled by
ure_read_chipver().

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

Reviewed by:    adrian
Differential Revision:  https://reviews.freebsd.org/D55748
76c082180719f42481289eb837e44b055efc003a Christos Longros 2026-04-21 14:14:09

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

powerpc: remove dead code call into x86 perfmon
FreeBSD and NetBSD has copied these lines from the x86 architecture when
porting to other machines and forgetting to delete them.

Reviewed by:    mhorne
Sponsored by:   Netflix
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2154
0ac31026e1e0fb4e4b8a2eaa8ce2ead6a945dc6e Ali Mashtizadeh 2026-04-20 22:23:57

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

linux: make sysent for membarrier
Regenerate linux syscall prototypes for membarrier(2).

Signed-off-by:  Ricardo Branco <rbranco@suse.de>
PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=281691
Reviewed by:    kib, pouria
Pull-Request:   https://github.com/freebsd/freebsd-src/pull/2147
81f60a964a50b9c22361bb811be9ca089561e80c Ricardo Branco 2026-04-18 10:18:12

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

hkbd/ukbd: sysctls to swap macbook kbd modifiers
Many applications, desktop environments, window managers & text editors
favor the usage of Alt or Ctrl over Super (Cmd). On a Macbook it is
quite annoying that the Super (Cmd) key gets pride of place by the spacebar.

The standard MacBook Cmd key location only really makes sense for macOS
or maybe in some tiling wm if Mod4/Super is your main modifier.
For most mainstream desktops and window managers, having Alt or Ctrl
in that location makes much much more sense.

This patch adds two sysctls for swapping either Opt(Alt) or Ctrl with Cmd(Super).

Linux has similar sysctls to this; allowing a user to make an Apple
keyboard more "orthodox"/useful at a level that takes effect independent
of typing context - ie) tty, Xorg and/or wayland.

Having a sysctl to do these swaps means that a user doesn't have to faff
about with both creating a custom vt keymap AND figure out which magic
setxkbmap incantation one needs to make one's keyboard behave as desired
across environments.

Signed-off-by: ~Not Toby <0x2b@0xff.art>

Reviewed by:    wulf
MFC after:      1 week
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2141
c0e26f7b29ddd2d081ac113d64807849e87737a2 ~Not Toby 2026-04-23 05:10:05

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

sound: Do not check for NULL before deleting ac97_info->methods
It is allocated with M_WAITOK in ac97_create().

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Pull Request:   https://ron-dev.freebsd.org/FreeBSD/src/pulls/17
aba2523261c1e541debe674c059c1ac16210fc04 Christos Margiolis 2026-04-18 10:33:58

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

arm64/vmm: Enable 16-bit VMIDs when in use by pmap
pmap_init always uses 16-bit VMIDs when supported, but we never enable
them in VTCR_EL2 (for ASIDs, locore enables them in TCR_EL1 and
pmap_init keys off whether they've been enabled, but the order in which
pmap_init and vmmops_modinit run is reversed). As a result, although the
full 16-bit value can be stored to VTTBR_EL2 and read back, the upper 8
bits are treated as 0, and so VMIDs that our VMID allocation believes
are distinct end up aliasing.

In future this interface may change such that vmm decides on the VMID
width and tells the pmap to use that, with appropriate support for
unloading and reloading vmm, but that can come as a follow-up change, as
this is a more minimal bug fix.

Reviewed by:    markj
Obtained from:  CheriBSD
Fixes:          https://cgit.freebsd.org/src/commit/?id=47e073941f4e ("Import the kernel parts of bhyve/arm64")
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D55860
44e4f45aec4469440af434098e61bd13982bbbc0 Jessica Clarke 2026-04-23 15:40:33

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

ahci(4): Add another device ID for Marvell 9128 SATA controller: 0x91a3
This was encountered on a Gigabyte GA-P55A-UD4 motherboard identifying itself
as:
ahci0@pci0:2:0:0:       class=0x01018f rev=0x11 hdr=0x00 vendor=0x1b4b device=0x91a3 subvendor=0x1458 subdevice=0xb000
    vendor     = 'Marvell Technology Group Ltd.'
    class      = mass storage
    subclass   = ATA

The physical chip has "88SE9128-NAA2" printed on it.

Similar code has been in Linux for a long time:
https://github.com/torvalds/linux/commit/50be5e3657cd2851a297dc0b3fd459f25829d29b

Co-authored-by: Michael Osipov <michaelo@FreeBSD.org>
PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=288526
Reviewed by:    jhb
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56464
c72edc2b2eb283450df8db05cf9321aee7de0bcb John W 2025-07-28 05:17:32

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

riscv: Switch the address argument to cpu_dcache_* to a pointer
No functional change, but this is friendlier for CHERI.

Effort:         CHERI upstreaming
Reviewed by:    kib
Sponsored by:   AFRL, DARPA
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2068
ef159bdd54cada6db8b0af6380fa9269d0f26a04 John Baldwin 2026-04-23 17:05:53

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

pmap_map_io_transient: Use void * instead of vm_offset_t for vaddr array
Effort:               CHERI upstreaming
Reviewed by:    kib
Sponsored by:   AFRL, DARPA
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2068
ec3a0b2a02ee2aa459aa72d751f6670b7f813f31 John Baldwin 2026-04-23 17:05:54

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

gve: Convert a couple of structure members from vm_offset_t to char *
Effort:               CHERI upstreaming
Reviewed by:    kib
Sponsored by:   AFRL, DARPA
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2068
025b39b854202b316f4c5ec3e00d727115ac0eaa John Baldwin 2026-04-23 17:05:54

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

powerpc aim64: Return vm_paddr_t from moea64_bootstrap_alloc
Consistently use vm_paddr_t for the type returned from
moea64_bootstrap_alloc and avoid temporarily smuggling it via a
pointer.  Instead, be explicit in the places that assume a 1:1
mapping.

Effort:         CHERI upstreaming
Reviewed by:    kib
Sponsored by:   AFRL, DARPA
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2068
c49cbf849dee9121ed3b972df56d240068d0423e John Baldwin 2026-04-23 17:05:54

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

amd64/aarch64 pmap: Switch type of pmap_preinit_mapping.va to void *
Effort:               CHERI upstreaming
Reviewed by:    kib
Sponsored by:   AFRL, DARPA
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2068
496453e9de3f27f84b6c68d2377f5e525d132967 John Baldwin 2026-04-23 17:05:55

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

pseries/llan: call init when ioctl sets interface UP
This should fix dhcp on an unitialized interface.  This solution was
found while comparing against another driver, SIOCSIFFLAGS is used by
dhclient to force the interface up before it has an IP address.
However, all setup work is done in llan_init(), so the interface would
not be enabled if configured via only the SIOCSIFFLAGS ioctl.  By
running llan_init() when the interface is forced up via SIOCSIFFLAGS,
the interface is initialized properly.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292164
74dff310698b9a4da9804ed0ded00428b0aebbe8 Justin Hibbits 2026-04-23 03:12:37

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

pmc: Implement the feature bits for recent Zen 4/5
Ensure that the optional MSRs and the user flags are guarded by the
cpuid feature flags.  This prevents the user from triggering undefined
behavior or crashes on AMD processors where some of these features are
not present.  As part of this, I added the branch target and DATA4 MSRs
to the IBS op state as those are only present on a subset of the Zen
chips that I have tested.

Reviewed by:    mhorne
Sponsored by:   Netflix
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2133
576c6e9620dff3e92f3c5d1e5be4d92c9eb29828 Ali Mashtizadeh 2026-04-08 05:36:53

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

i386: Remove perfmon performance monitoring facility
Remove the perfmon performance monitoring facility that was for Intel
Pentium and Pentium Pro processors.

Reviewed by: imp,mhorne,emaste
Pull Request: https://github.com/freebsd/freebsd-src/pull/2155
70ae0c4524d2c5d0aae3339e95f6bd4f3c480b6e Ali Mashtizadeh 2026-04-20 22:06:30

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

speaker(4): Update outdated comments
The comments in tone() were referring to pre-2000 logic that does not
exist any more. This patch updates them.

Signed-off-by: Raphael Poss <knz@thaumogen.net>
Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/1922
03a515e9890b0c6844457254e26dc34333b85127 Raphael Poss 2025-12-10 19:53:21

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

speaker(4): drop NEEDGIANT
When the frequency configuration logic was moved to clock.c in 2008, a
mutex lock was added there (timer_spkr_setfreq) to serialize accesses
to the I/O register.

Since then, no more calls to disable/enable_intr were needed in spkr.c
than they were needed in the other callers to the same timer_spkr
functions in syscons / kern_cons, that is, not at all. This is because
there are no other accesses remaining in the kernel to the i8254
timers after boot than through clock.c.

For context, see commits
e46598588587b4897f6604489364f83fffd4d033
and
93f5134aaf829826dbcbea457bfeb27389761854.

Signed-off-by: Raphael Poss <knz@thaumogen.net>
Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/1922
43b7cf42d425abc84a1313b7eed933438804a051 Raphael Poss 2025-12-10 20:12:22

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

speaker(4): make spkropen thread-safe
Signed-off-by: Raphael Poss <knz@thaumogen.net>
Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/1922
a80ec2b51ac6b8f2588b927913e40c7a3d2862e6 Raphael 'kena' Poss 2026-01-01 16:34:44

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

speaker(4): one ioctl / write at a time
If two processes are holding a spkr fd, we want orderly access to the
allocated tone buffer and the speaker itself.

Signed-off-by: Raphael Poss <knz@thaumogen.net>
Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/1922
e2199dc33f16332b3e138da3059ba57c25ef713d Raphael 'kena' Poss 2026-01-01 16:45:45

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

speaker(4): enable concurrent opens from different threads
Prior to this patch, a thread would get EBUSY on open(2) if another
thread had the speaker open.

With this patch, two or more threads/processes can use the speaker
device at the same time. When two or more threads write to the speaker
concurrently, individual melodies--single strings, as written by
write(2) or ioctl(2) with command SPKRTONE/SPKRTUNE--are played
atomically.

Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/1922
d76523a318d79767225ae020422a8f10046084af Raphael 'kena' Poss 2026-01-11 21:47:43

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

speaker(4): move static data to text
Make this data const (it doesn't change) which will also move it to
a text section.

Signed-off-by: Raphael Poss <knz@thaumogen.net>
Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/1922
f31e6b198faa98c4f8a7b681b4e01218f8468411 Raphael 'kena' Poss 2026-01-11 21:07:35

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

ena: Adjust ena_[rt]x_cleanup to return bool
The ena_[rt]x_cleanup functions are limited internally to a maximum
number of packets; this ensures that TX doesn't starve RX (or vice
versa) and also attempts to ensure that we get a chance to refill
the RX buffer ring before the device runs out of buffers and starts
dropping packets.

Historically these functions have returned the number of packets which
they processed which ena_cleanup compares to their respective budgets
to decide whether to reinvoke them.  This is unnecessary complication;
since the precise number of packets processed is never used, adjust
the APIs of those functions to return a bool indicating if they want
to be reinvoked (aka if they hit their limits).

Since ena_tx_cleanup now only uses work_done if diagnostics are
enabled (ena_log_io macros to nothing otherwise) eliminate that
variable and pass its value (ENA_TX_BUDGET - budget) to ena_log_io
directly.

No functional change intended; this will simplify a future commit.

Reviewed by:    akiyano
Sponsored by:   Amazon
MFC after:      6 days
Differential Revision:  https://reviews.freebsd.org/D56478
f6d2c8591c10d87050c358ef20428f13c19554ca Colin Percival 2026-04-17 17:13:44

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

ena: Budget rx descriptors, not packets
We had ENA_RX_BUDGET = 256 in order to allow up to 256 received
packets to be processed before we do other cleanups (handling tx
packets and, critically, refilling the rx buffer ring).  Since the
ring holds 1024 buffers by default, this was fine for normal packets:
We refill the ring when it falls below 7/8 full, and even with a large
burst of incoming packets allowing it to fall by another 1/4 before we
consider refilling the ring still leaves it at 7/8 - 1/4 = 5/8 full.

With jumbos, the story is different: A 9k jumbo (as is used by default
within the EC2 network) consumes 3 descriptors, so a single rx cleanup
pass can consume 3/4 of the default-sized rx ring; if the rx buffer
ring wasn't completely full before a packet burst arrives, this puts
us perilously close to running out of rx buffers.

This precise failure mode has been observed on some EC2 instance types
within a Cluster Placement Group, resulting in the nominal 10 Gbps
single-flow throughput between instances dropping to ~100 Mbps as a
result of repeated rx overruns causing packet loss and ultimately
retransmission timeouts.

To correct this, switch from processing up to ENA_RX_BUDGET (256)
packets to processing up to ENA_RX_DESC_BUDGET (256) descriptors (or
slightly more, if we hit the limit in the middle of a packet).  This
ensures that, even with jumbos, we refill the ring before processing
most of a ring worth of descriptors, and returns the throughput to
expected levels.

Note that theoretically up to ENA_PKT_MAX_BUFS (19) descriptors can be
used for a single packet, in which case even 54 packets would exhaust
the default rx buffer ring; it's not clear if this ever occurs in
practice, but this fix will address that case as well.

Reviewed by:    akiyano
Sponsored by:   Amazon
MFC after:      6 days
Differential Revision:  https://reviews.freebsd.org/D56479
0f7b8f79f67b25cb0727c7b7d604eb1eec91fef1 Colin Percival 2026-04-17 17:40:00

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

vt_core: delay the shutdown splash event handler
Even though the functions are currently executed in the correct order,
there's no garuntee that this will always be the case.

Reported by:    kevans
Discussed with: kevans
Fixes:          https://cgit.freebsd.org/src/commit/?id=4b862c713ac5556ab4bd1828b47c5eb9cb28e067
MFC after:      3 days
e72c59315e7a2bedd654ac7c6e82dd3ceba30ed2 Ahmad Khalifa 2026-04-20 20:11:27

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

vt_core: make sure the driver's functions exist
These are NULL if they're not implemented. Make sure all the functions
we need are there before doing anything.

Also invert the first if statment to lessen the indentation a bit.

Reported by:    Quentin Thébault <quentin.thebault@defenso.fr>
MFC after:      3 days
d1854272b646306de6546f8e5702e8072051d7f6 Ahmad Khalifa 2026-04-20 20:15:00

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

vtnet: remove loader tunable fixup_needs_csum
Removes the deprecated loader tunable fixup_needs_csum. Removes also
the sysctl counter rx_csum_bad_offset that is no longer in use.

Reviewed by:            tuexen
Event:                  Wiesbaden Hackathon 2026
Differential Revision:  https://reviews.freebsd.org/D55588
1bfd392b9e4dcddef3d80efaa517fafa648cd0b1 Timo Völker 2026-04-26 09:42:38

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

x86/ucode: fix gcc uninitialised warning
This fixes the case where selected_size is never set to anything
in the loop.  Whilst here, also set selected_fw to NULL so the case
of "no firmware" correctly sets everything to NULL/0.

```
  --- ucode_subr.o ---
  /workspace/src/sys/x86/x86/ucode_subr.c: In function 'ucode_amd_find':
  /workspace/src/sys/x86/x86/ucode_subr.c:237:25: warning: 'selected_size' may be used uninitialized [-Wmaybe-uninitialized]
    237 |         *selected_sizep = selected_size;
        |         ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/  workspace/src/sys/x86/x86/ucode_subr.c:105:16: note: 'selected_size' was declared here
    105 |         size_t selected_size;
        |                ^~~~~~~~~~~~~
```

Reviewed by:    emaste
Differential Revision:  https://reviews.freebsd.org/D55439
92e5f6e1995acb10628ab210cc9f19dbf74f2948 Adrian Chadd 2026-04-26 23:03:02

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

Networking

Network-related commands, library, and kernel.

sctp: initialize inp to avoid uninitialized use
If we take an early goto out_unlocked inp is uninitialized and then
may be used in SCTP_LTRACE_ERR_RET().  Initialize inp to NULL
to avoid warnings.

Found with:     gcc15 tinderbox build
MFC after:      3 days
Reviewed by:    tuexen, pouria
Differential Revision: https://reviews.freebsd.org/D56503
4cdbcc2b6a2e551529f7133665ef406869b48bf7 Bjoern A. Zeeb 2026-04-18 13:25:18

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

pf: be more robust against interface name conflicts
pf assumes that interface names are unique (and share a namespace with
interface group names).
Unfortunately the FreeBSD network stack has a few edge cases where this
assumption can be violated. Try to be more robust against this: rather
than changing the association between a kif and ifp just ignore the next
interface with the same name.

Sponsored by:   Rubicon Communications, LLC ("Netgate")
ff76ec3e9b287df9378f09ce29eca668162903f4 Kristof Provost 2026-04-20 09:22:13

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

pf: Use MTX_DUPOK to initialize hash chain mutexes
pf_udp_mapping_insert() may lock more than one row at a time.

Fixes:          https://cgit.freebsd.org/src/commit/?id=cd5ff4e841fb ("pf: use hashalloc(9) for key, id, src-node and udp-endpoint hashes")
Reviewed by:    kp
Differential Revision:  https://reviews.freebsd.org/D56501
ffad36e1d7002a7da751856b28eb50c36b137abb Mark Johnston 2026-04-20 16:48:40

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

iflib: Add a missing CURVNET_RESTORE() in the error path
Signed-off-by:        Peter Ganzhorn <peter.ganzhorn@gmail.com>
Reviewed by:    zlei
Fixes:          https://cgit.freebsd.org/src/commit/?id=6d49b41ee84b iflib: Add pfil hooks
MFC after:      3 days
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2150
f49f61f19463c21125bb1215cf8e0530f52953e3 Peter Ganzhorn 2026-04-20 16:59:59

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

ctld: Return from the inner "main" loop on EINTR
This ensures that child processes are reaped in the outer loop in
main().

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294035
Reviewed by:    asomers
Fixes:          https://cgit.freebsd.org/src/commit/?id=66b107e82b2f ("ctld: Use kevent(2) for socket events rather than select(2)")
Sponsored by:   Chelsio Communications
Differential Revision:  https://reviews.freebsd.org/D56525
e56687bb2d32ee4b1774300f3960427ca56b34bb Nikolay Denev 2026-04-20 17:18:50

debug: classified in 03-filenames_plain1 by 'usr.sbin/ctld/'

ctld: Support multiple physical ports in a target
PR:           https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293076
Reported by:    Ken J. Thomson <thomsonk@yandex.com>
Reviewed by:    asomers
Fixes:          https://cgit.freebsd.org/src/commit/?id=969876fcee57 ("ctld: parse config file independently of getting kernel info")
Sponsored by:   Chelsio Communications
Differential Revision:  https://reviews.freebsd.org/D55767
7bb2b3801554a58039ed9d1fd05b65ce24c6c661 John Baldwin 2026-04-20 17:19:25

debug: classified in 03-filenames_plain1 by 'usr.sbin/ctld/'

ctld: Update nchildren directly in wait_for_children
This results in slightly less duplicated code.

Reviewed by:    asomers
Sponsored by:   Chelsio Communications
Differential Revision:  https://reviews.freebsd.org/D56526
4b79ee8eb139696c1fe845d25a56439d02ab4131 John Baldwin 2026-04-20 17:19:49

debug: classified in 03-filenames_plain1 by 'usr.sbin/ctld/'

pf: do not allow flags to be changed with securelevel set
With securelevel set (for pf that means >= 3) we're expected to reject
rule changes. However, we allowed interface flags to be changed, which
would allow 'set skip on X' to be changed.

Remove DIOCSETIFFLAG and DIOCCLRIFFLAG from the securelevel whitelist.

MFC after:      1 week
Reported by:    cyberkittens
Sponsored by:   Rubicon Communications, LLC ("Netgate")
d5ca00f2d8743f0885c17f50c8c011cae285fbdb Kristof Provost 2026-04-13 13:48:39

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

Commit group #2: pf: only allow a subset of netlink calls when securelevel is set
pf: only allow a subset of netlink calls when securelevel is set

Extend the genl_cmd struct to allow calls to also carry a securelevel.
If that's set compare the current securelevel to only allow the call if
the level is lower than that.

If no value is specified continue to allow calls in any securelevel,
as before.

This allows us to easily implement the same securelevel restrictions for
pf as we have for the corresponding ioctls.

Reviewed by:    glebius
MFC after:      1 week
Sponsored by:   Rubicon Communications, LLC ("Netgate")
Differential Revision:  https://reviews.freebsd.org/D56390
9933bdcb12641839b7396ccd0c6b8a2d55d12744 Kristof Provost 2026-04-20 06:36:17

debug: classified in 03-filenames_plain1 by '['sys/netlink/', 'sys/netpfil/']'


netlink: fix LINT-NOVIMAGE build

Include the required header for securelevel_ge()

Fixes:          https://cgit.freebsd.org/src/commit/?id=9933bdcb1264 ("pf: only allow a subset of netlink calls when securelevel is set")
Sponsored by:   Rubicon Communications, LLC ("Netgate")
3103d39cd99f0a49414f907459d8fd3c11dc36b8 Kristof Provost 2026-04-22 21:33:30

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

loopback: fix use-after-free
Once we hand an mbuf over to netisr_queue() we may no longer access it.
Save the length before the call so we can use it to increment counters
afterwards.

Fixes:          https://cgit.freebsd.org/src/commit/?id=956acdce0505 ("loopback: Account for packet drops")
Sponsored by:   Rubicon Communications, LLC ("Netgate")
07a3501e6c85baa4236061f8af4c2772307835f4 Kristof Provost 2026-04-21 09:19:26

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

inpcb: remove always true condition in in_pcblookup_local()
We are searching through the hash that has only wildcard bindings.
This was missed by fdb987bebddf05e15a5af840379c7715a94aec1c.

Reviewed by:            markj
Differential Revision:  https://reviews.freebsd.org/D56488
14a47a8bed8758abd7ea6ced14e8a8d9bd2c97bc Gleb Smirnoff 2026-04-21 16:10:49

debug: classified in 03-filenames_plain1 by '['sys/netinet/', 'sys/netinet6/']'

tests/sys/netinet/tcp_hpts: Make a socket available in mock inpcbs
After commit 9b76228006d8, tcp_hptsi() dereferences inp_socket in order
to get the inpcb's VNET.  This means that mock inpcbs created by the
HPTS test fixture must set inp_socket.  Also set the current VNET there;
previously, it was NULL, and this was not noticed since VNET_DEBUG is
disabled even in debug kernels.

Fixes:  https://cgit.freebsd.org/src/commit/?id=9b76228006d8 ("inpcb: retire inp_vnet")
69e8d8b49d4bd889a42ba354f290f05d88bcd4b1 Mark Johnston 2026-04-21 14:31:18

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

pf: fix duplicate rule detection for automatic tables
We should look at the table name for automatic tables as well. These
are different tables, so the rules using them are (or can be) different
as well.

MFC after:      3 days
Reported by:    Michael Sinatra <michael@burnttofu.net>
Sponsored by:   Rubicon Communications, LLC ("Netgate")
fb838352751767e756bd45cd2040fa464ed4de20 Kristof Provost 2026-04-09 16:11:41

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

ctld: Don't add an iscsi port for targets with only kernel ports
PR:           https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293076
Reviewed by:    asomers
Fixes:          https://cgit.freebsd.org/src/commit/?id=969876fcee57 ("ctld: parse config file independently of getting kernel info")
Differential Revision:  https://reviews.freebsd.org/D56523
614ef718496eb6fd815ddcfde203bee8da1178b1 Ken J. Thomson 2026-04-23 19:15:48

debug: classified in 03-filenames_plain1 by 'usr.sbin/ctld/'

ctld: Ports without a portal group are not dummy ports
The default implementation of is_dummy should return false.  Only
portal group ports should possibly return true.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293076
Reported by:    Ken J. Thomson <thomsonk@yandex.com>
Fixes:          https://cgit.freebsd.org/src/commit/?id=6acc7afa34aa ("ctld: Convert struct port to a hierarchy of C++ classes")
Sponsored by:   Chelsio Communications
Differential Revision:  https://reviews.freebsd.org/D56524
3df5cc33d894edd6b0ae87e51f0e35c3501fb907 John Baldwin 2026-04-23 19:16:08

debug: classified in 03-filenames_plain1 by 'usr.sbin/ctld/'

ctld: Move the pidfile handle out to a global variable
This ensures it will be destroyed (removing the associated pidfile)
anytime the process exits, including from exit(3) calls.  This fixes
a few places that would "leak" the pidfile on certain errors.

This also removes the need for some convoluted logic where
configuration objects would hand-off ownership of the pidfile handle
from the old configuration to the new configuration.

Reviewed by:    asomers
Sponsored by:   Chelsio Communications
Differential Revision:  https://reviews.freebsd.org/D56527
aad4fec5d7e260a789456a8cc82b293064fab5f3 John Baldwin 2026-04-23 19:17:05

debug: classified in 03-filenames_plain1 by 'usr.sbin/ctld/'

pf: Document broadcast/multicast forwarding through route-to
pf_route() and pf_route6() forward broadcast and multicast traffic
when a route-to rule matches, without any check against the output
interface's broadcast domain. This is a deliberate property of the
route option code path, but it is not documented and the workaround
is non-obvious.

Document the behavior in pf.conf(5) with example block-out rules on
the target interface, scoped with the received-on qualifier so that
only forwarded traffic is dropped while the router's own broadcast
and multicast traffic continues to pass.

Add regression tests covering the full broadcast/multicast and
forwarded/local matrix on both IPv4 and IPv6.

Reviewed by:    glebius, kp
Approved by:    kp (mentor)
MFC after:      1 week
Sponsored by:   Rubicon Communications, LLC ("Netgate")
Differential Revision:  https://reviews.freebsd.org/D56559
4578c15ab914b6d71e93147f1b2e9b8048f394c8 R. Christian McDonald 2026-04-23 18:52:32

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

ctld: normalize iSCSI TargetName on login
Case-insensitive TargetName matching on logins was accidentally removed,
let's fix that by normalizing TargetName again according to RFC 3722.

PR:                     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294522
Fixes:                  https://cgit.freebsd.org/src/commit/?id=4b1aac931465f39c5c26bfa1d5539a428d340f20
Sponsored by:           ConnectWise
MFC after:              1 week
Reviewed by:            asomers, jhb
Approved by:            asomers (mentor)
Differential Revision:  https://reviews.freebsd.org/D56469
eb837cb8b2073c09bafaf3318f5bb103827b2bca Johan Söllvander 2026-04-24 07:44:43

debug: classified in 03-filenames_plain1 by 'usr.sbin/ctld/'

ip_mroute: Avoid leaking uninitialized bytes to the routing daemon
Reported by:  KMSAN
MFC after:      1 week
e0751ae801b3e29c6dd52905ef1d63d5cd643b0a Mark Johnston 2026-04-24 13:22:51

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

pfsync: rename unused variable
Make it more obvious that this field is not used.
No functional change.

Event:  Wiesbaden Hackathon 202604
4001613878fe3cb059833c8a4b6199975f8d82f3 Kristof Provost 2026-04-25 11:27:03

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

ifnet: if_detach(): Fix races with vmove operations
The rationality is that the driver private data holds a strong reference
to the interface, and the detach operation shall never fail. Given the
vmove operation, if_vmove_loan(), if_vmove_reclaim() or vnet_if_return()
is not atomic and spans multiple steps, acquire ifnet_detach_sxlock only
for if_detach_internal() and if_vmove() is not sufficient. It is possible
that the thread running if_detach() sees stale vnet, or the vmoving is
in progress, then if_unlink_ifnet() will fail.

Fix that by extending coverage of ifnet_detach_sxlock a bit to also
cover if_unlink_ifnet(), so that the entire detach and vmove operation
is serialized.

Given it is an error when the if_unlink_ifnet() fails, and if_detach()
is a public KPI, prefer panic() over assertion on failure, to indicate
explicitly that bad thing happens. That shall also prevent potential
corrupted status of the interface, which is a bit hard to diagnose.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292993
Reviewed by:    glebius
MFC after:      5 days
Differential Revision:  https://reviews.freebsd.org/D56374
ba7f47d47dc1a177e4d8f115f791ec25f3da0eab Zhenlei Huang 2026-04-25 19:56:07

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

tuntap: add SIOCGIFCAP and SIOCSIFCAP ioctls
Add SIOCGIFCAP ioctl-command for tun/tap character device to be used
by bhyve for offloading in the future.
Add SIOCSIFCAP for symmetry.

Reviewed by:            markj, pouria, tuexen
MFC after:              1 week
Event:                  Wiesbaden Hackathon 2026
Differential Revision:  https://reviews.freebsd.org/D51289
28932dc425e19267313d221c26d10d3638e1cc4b Timo Völker 2026-04-26 09:48:36

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

System administration

Stuff in man section 8 (other than networking).

pfctl: fix man page and error message for -S option
The `pfctl -S` flag was added to disable DNS resolution in
<https://reviews.freebsd.org/D50724> but documentation and error
messages refer to a `pfctl -N` flag for the same purpose. The `pfctl -N`
flag performs an unrelated function, so the docs and error messages need
to be changed. Caught this when revising documentation for the `-N`
flag.

Reviewed by:    kp
Signed-off-by:  Ross Williams <ross@ross-williams.net>
18de44e7b44209d94999523a93d83031e26a5719 Ross Williams 2026-04-17 15:20:18

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

rtld: fix processing of preloaded z_initfirst objects
After we found some preloaded z_initfirst object, we must process till
the end of the preload list still, not stopping on the first found
object.

Reported by:    des
Reviewed by:    des, markj, siderop1@netapp.com
Fixes:  https://cgit.freebsd.org/src/commit/?id=78aaab9f1cf359f3b7325e4369653f6b50593393
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56466
9b844b495e8e63439ffe523757ac7444a16317af Konstantin Belousov 2026-04-16 23:07:43

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

ifconfig: Fix segfault in geneve_status_nl
Initialize nla_geneve_link structure to zero to prevent
segfault when a TLV is not received by the netlink parser.

Reported by:    Seth Hoffert <seth.hoffert@gmail.com>
Fixes:          https://cgit.freebsd.org/src/commit/?id=688e289ee904 ("ifconfig: Add support for geneve (netlink)")
d95a73b4c7e314084f838c7b68ae9da8e4ba2982 Pouria Mousavizadeh Tehrani 2026-04-21 12:17:00

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

safe_set ignore leading white-space
Also treate ':' at the start of a line as for '#'
ie. a comment.
69cc351c4c911cfeda1851f3c18a4b61281708cb Simon J. Gerraty 2026-04-22 16:15:13

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

safe_set treat ':' and '#' differently
Treat '#' as a comment anywhere,
but ':' only at start of line.
566cc005812b72a4ba236764651dd8e82c94a166 Simon J. Gerraty 2026-04-22 16:37:35

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

rtlbtfw(8): Load firmware from filesystem with mmap()
rather than with read() to alleviate concerns about partial reads.
87ed6840a0a6320295f6abb43a987d20ae126cf7 Vladimir Kondratyev 2026-04-24 15:15:22

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

bsdinstall: fix root password prompt with backslashes
Use "read -r" to set the root password in "bsdinstall rootpass" to
prevent issues with passwords containing one or more backslash
characters.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294781
Discussed with: tuexen, crest
Approved by:    khorben
MFC after:      3 days
Event:          Wiesbaden Hackathon 202604
1566386b90d34dea7f30a0e6b511e178bd0d50b8 Lars Engels 2026-04-25 14:41:24

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

Libraries

libvmmapi: Check for allocation failure in vm_vcpu_open()
vm_vcpu_open() really should check the value returned from malloc() and
return NULL on failure. Also, all users of vm_vcpu_open() need to check
the returned value for NULL, too.

Reviewed by:    corvink, markj
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56346
91f03cde6604fdb940f30d81e4860118ee07f4b3 Hans Rosenfeld 2026-04-20 15:14:16

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

geom_part: Restore the human readable format of size
Prior to the change 4f809ffec69c, the sizes are formated by
humanize_number(3) with the flag HN_DECIMAL, which displays the result
using one decimal place when it is less than 10. That is more accurate
and useful. Add equivalent field modifier hn-decimal to xo_emit() to
restore the previous behavior.

Reported by:    Mark Millard
Reviewed by:    js
Fixes:          https://cgit.freebsd.org/src/commit/?id=4f809ffec69c gpart: add libxo support for "show" subcommand + man page updates
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56514
0d16792c6e983005581ed0176ed81e7302582196 Zhenlei Huang 2026-04-20 16:59:59

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

include/stdbit.h: declare size_t, (u)int*_t, and (u)int_least*_t
These are required by ISO/IEC 9899:2024 § 7.18.1 ¶ 1 but were forgotten
in my initial work.

The current approach leaks intptr_t, uintptr_t, intmax_t, and uintmax_t
through <sys/_stdint.h>.  This could be avoided using a more complicated
approach if desired.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294131
Fixes:          https://cgit.freebsd.org/src/commit/?id=6296500a85c8474e3ff3fe2f8e4a9d56dd0acd64
Reported by:    Collin Funk <collin.funk1@gmail.com>
Reviewed by:    imp
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56515
c8c9324c94dfd4eeecbcfe4a1d3daa047420d3e5 Robert Clausecker 2026-04-19 12:36:34

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

lib/msun: Replace manual checks with isnan() calls
The maximum and minimum functions, as well as nextafter and nexttoward,
were using manual NaN checks instead of the isnan() macro.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294692
Reviewed by:    fuz, kargl
MFC after:      1 month
f6e1f27e9f005447e88a9b37df8a75751b1e0c3a Jesús Blázquez 2026-04-21 15:23:20

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

libc/fls*.c: use *_WIDTH macros over CHAR_BIT * sizeof(type)
Makes the code easier to understand.

MFC after:      1 week
bc537e970d7e52d278952915b0b1842dfbb03afc Robert Clausecker 2026-04-22 22:47:23

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

Partially revert libc++ commit aa7f377c965c, restoring stdint.h
This partially reverts upstream libc++ commit aa7f377c965c:

  [libc++] Remove libc++'s own stdint.h and locale.h (#107436)

  These headers are not doing anything beyond the system or compiler
  provided equivalent headers, so there's no real reason to keep them
  around. Reducing the number of C headers we provide in libc++ simplifies
  our header layering and reduces the potential for confusion when headers
  are layered incorrectly.

The problem is that libc++'s own `stdint.h` _does_ do something: it
defines `__STDC_LIMIT_MACROS` and `__STDC_CONSTANT_MACROS` before
including the system `stdint.h`, causing the latter to expose macros
like `SIZE_MAX`, `UINT64_C`, and others.

If the `__STDC_LIMIT_MACROS` and `__STDC_CONSTANT_MACROS` macros are not
exposed, C++ programs compiled for standards before C++11 can fail with
errors due to those macros not being available.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
00bee6fcd77f7812e967f85d1cacbc349ff312b3 Dimitry Andric 2025-12-30 19:49:35

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

Fix up builds on Linux hosts after llvm 21.1.8 merge
This is because contrib/llvm-project/llvm/lib/Support/Unix/Threading.inc
attempts to use pthread_get_name_np(3) and pthread_set_name_np(3), which
are not defined on Linux.

Reported by:    ivy
PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
b6d823e39072daae9df4b47a15ea7142b7a55f1a Dimitry Andric 2026-04-25 15:20:27

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

Filesystems

nfs: make no-IP kernels compile
Compiling a LINT-NOIP kernel (assumingly also a NOINET) port and ip
are set but not used in nfsrv_getclientipaddr().

Hide the variables behind #ifdef checks and do likewise for the parsing
results.  Admittingly the code probably wants to be rewritten one day.

Found with:     gcc15 tinderbox build
MFC after:      3 days
Reviewed by:    rmacklem
Differential Revision: https://reviews.freebsd.org/D56502
395c8f0855e0039205d9cb97adec39d9b9307c8b Bjoern A. Zeeb 2026-04-18 13:27:39

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

fusefs: better handling for low-memory conditions
Under conditions of low memory, getblk can fail.  fusefs was not
handling those failures very systematically.  It was always using
PCATCH, which appears to have been originally copy/pasted from the NFS
client code, but isn't always appropriate:

* During fuse_vnode_setsize_immediate, which can be called from many
  different VOPs and from the vn_delayed_setsize mechanism, remove
  PCATCH.  Some of these callers cannot tolerate allocate failure.

* In fuse_inval_buf_range, don't assume that getblk will always succeed.

* When calling fuse_inval_buf_range from VOP_ALLOCATE,
  VOP_COPY_FILE_RANGE, or VOP_WRITE (with IO_DIRECT), return EINTR if
  the allocation fails.

* When calling fuse_inval_buf_range from VOP_DEALLOCATE, remove PCATCH.
  This VOP must not fail with EINTR.

No new tests, because I can't force any particular getblk call to fail.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293957
Sponsored by:   ConnectWise
Reported by:    zjk7@wp.pl
MFC after:      1 week
374548e930bd9452351059c14e697036d903b1c4 Alan Somers 2026-03-30 14:22:07

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

Kernel

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

membarrier(2): use atomic for lockless read of curproc->p_flag2
Reviewed by:  markj, Ricardo Branco <rbranco@suse.com>
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56507
950fd59955e10429c1325c327f0141a7e97fcfe5 Konstantin Belousov 2026-04-18 18:42:56

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

membarrier(2): implement the MEMBARRIER_CMD_GET_REGISTRATIONS command
Reported by:  Ricardo Branco <rbranco@suse.com>
Reviewed by:    markj, Ricardo Branco <rbranco@suse.com>
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56507
aaa10396a997bafc28ce6551e92563620caf3df4 Konstantin Belousov 2026-04-18 18:43:59

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

audit: Fix logging of IPv6 addresses
- kaudit_to_bsm: Log IPv6 as well as IPv4 and unix addrs
- au_to_sock_inet128: Treat ports the same way as au_to_sock_inet32() as
  just pushing a uint16 causes byte ordering problems on little endian.

Differential Revision: https://reviews.freebsd.org/D39633
Sponsored by: Netflix
Reviewed by: csjp
16de94eaf09b75a9a1e90254a6fe5812f55f4cab Andrew Gallatin 2026-04-20 21:35:46

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

tty: Avoid leaving dangling pointers in tty_drop_ctty()
The TIOCNOTTY handler detaches the calling process from its controlling
terminal.  It clears the link from the session to the tty, but not the
pointers from the tty to the session and process group.  This means that
sess_release() doesn't call tty_rel_sess(), and that pgdelete() doesn't
call tty_rel_pgrp(), so the pointers are left dangling.

Fix this by clearing pointers in tty_drop_ctty().  Add a standalone
regression test.

Approved by:    so
Security:       FreeBSD-SA-26:10.tty
Security:       CVE-2026-5398
Reported by:    Nicholas Carlini <npc@anthropic.com>
Reviewed by:    kib, kevans
Fixes:          https://cgit.freebsd.org/src/commit/?id=1b50b999f9b5 ("tty: implement TIOCNOTTY")
Differential Revision:  https://reviews.freebsd.org/D56046
093903a8d4c05d1adff79895a52a3e3009ff07a7 Mark Johnston 2026-03-23 15:22:48

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

Commit group #3: pkru: Fix handling of 1GB largepage mappings
pkru: Fix handling of 1GB largepage mappings

pmap_pkru_update_range() did not handle the case where a PDPE has PG_PS
set.  More generally, the SET_PKRU and CLEAR_PKRU sysarch
implementations did not check whether the request covers a "boundary" vm
map entry.  Fix this, add the missing PG_PS test, and add some tests.

Approved by:    so
Security:       FreeBSD-SA-26:11.amd64
Security:       CVE-2026-6386
Reported by:    Nicholas Carlini <npc@anthropic.com>
Reviewed by:    kib, alc
Differential Revision:  https://reviews.freebsd.org/D56184
ca87c0b8e396fff01d55f1985c2556934c35a950 Mark Johnston 2026-03-31 13:37:43

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


tests/posixshm: Check for hardware support in largepage_pkru

MFC after:      3 days
Fixes:          https://cgit.freebsd.org/src/commit/?id=ca87c0b8e396 ("pkru: Fix handling of 1GB largepage mappings")
75c66218401c00f4728d5312e2b933b8d3aefde1 Mark Johnston 2026-04-24 13:23:03

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

debug: moved to kernel because 'Need to be grouped with ca87c0b8e396fff01d55f1985c2556934c35a950'

epoch: Don't idle CPUs when there's pending epoch work
The epoch(9) subsystem implements per-CPU queues of object destructors
which get invoked once it is safe to do so.  These queues are polled via
hardclock().

When a CPU is about to go idle, we reduce the hardclock frequency to 1Hz
by default, to avoid unneeded wakeups.  This means that if there is any
garbage in these destructor queues, it won't be cleared for at least 1s
(and possibly longer) even if it would otherwise be safe to do so.

epoch_drain_callbacks() is used in some places to provide a barrier,
ensuring that all garbage present in the destructor queues is cleaned up
before returning.  It's implemented by adding a fake destructor in the
queues and blocking until it gets run on all CPUs.  The above-described
phenomenon means that it can take a long time for these calls to return,
even (especially) when some CPUs are idle.  This causes long delays when
destroying VNET jails, for instance, as epoch_drain_callbacks() is
invoked each time a network interface is destroyed.

Work around this problem by not disabling the hardclock timer if there
is garbage present in the destructor queues.  The implementation of
epoch_drain_callbacks() has other problems, but this small change on its
own gives a good improvement, especially when running networking
regression tests.  Moreover, we should aim to invoke destructors in a
timely manner, so the change is generally beneficial.

Reviewed by:    glebius
MFC after:      1 month
Differential Revision:  https://reviews.freebsd.org/D56508
dce56594991464c276f340ce963d0f5461566c78 Mark Johnston 2026-04-21 14:28:31

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

Commit group #4: linuxkpi
linuxkpi: Define diagnostic macros like `might_resched()` or `cant_sleep()`

They are no-ops on FreeBSD.

While here, move the already defined `might_sleep*()` macros from
<linux/wait.h> to <linux/kernel.h> where they belong.

The DRM generic code started to use `might_fault()` in Linux 6.12.

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56434
ad528a6b174e7090cb06062867e9a146b017205d Jean-Sébastien Pédron 2026-04-11 09:37:05

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


linuxkpi: Define `dev_err_probe*()`

They differ from other `dev_*()` logging functions by returning the
passed error code. The error code is also used to determine if the
message should be logged in the first place and at which log level.

The DRM generic code started to use it in Linux 6.12.

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56435
2357de8ea14f9ee6193eb9e31a9c208e1541163a Jean-Sébastien Pédron 2026-04-11 09:40:39

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


linuxkpi: Define `__GFP_THISNODE`

It is used to force the NUMA node to allocate from. This flag is
unimplemented for now because we don't have an implementation of
`alloc_pages_node()` yet.

The DRM TTM code started to use this flag in Linux 6.12.

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56436
8f95998393f42f368fe22abd9a25c7fa4304e02a Jean-Sébastien Pédron 2026-04-11 10:23:27

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


linuxkpi: Define `sort_r()`

Like Linux `sort()` and FreeBSD `qsort()`, `sort_r()` is a wrapper
around FreeBSD `qsort_r()`.

The i915 DRM driver started to use it in Linux 6.12.

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56437
4dab15e96d40352e1a0b161a2a1cd763176108b6 Jean-Sébastien Pédron 2026-04-11 12:42:14

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


linuxkpi: Define `MINORBITS`

We can't really define a proper value for this constant because minor
and major are encoded in a complex way on FreeBSD which cannot be
represented with a simple shift.

The DRM generic code started to use it in Linux 6.12.

In this context, `MINORBITS` is used to define an upper limit passed to
`xa_alloc()`. Therefore it is not used to encode or decode minors. It is
used as an arbitrary value. Therefore, we define the constant to 20,
like on Linux.

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56447
ae1f6954e2c82ad7f1d8b80155a921b908d51756 Jean-Sébastien Pédron 2026-04-13 21:47:22

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


linuxkpi: Add several `guid_*()` functions

The DRM generic code and the amdgpu DRM driver started to use several of
these functions in Linux 6.12. Likewise for `UUID_SIZE`.

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56448
cefd0ae770bfad534ec666099489a869387e8836 Jean-Sébastien Pédron 2026-04-13 22:36:18

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


linuxkpi: Include <linux/uuid.h> from <linux/mod_devicetable.h>

The DRM generic code started to deppend on this indirect include of
<linux/uuid.h> in Linux 6.12.

Reviewed by:    bz, emaste
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56449
18c71d97b227e0c6c1d11aa1fd168d19523a3b2e Jean-Sébastien Pédron 2026-04-13 22:38:36

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


linuxkpi: Add `fop_flags` to `struct file_operations`

... along with the `FOP_*` flag constants.

Note that this `fop_flags` field is not used on FreeBSD. It is added to
make the DRM drivers compile out of the box.

The DRM generic code and drivers started this in Linux 6.12.

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56450
a5ae030d9f8f5557502c4e51d2a083a70c513379 Jean-Sébastien Pédron 2026-04-13 23:12:18

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


linuxkpi: Pass a `const void *` to `krealloc()`

This matches the API on Linux.

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56451
bbd20c0795a7df35fc665165bf5f17d7f6533e54 Jean-Sébastien Pédron 2026-04-13 23:59:09

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


linuxkpi: Passing a size of zero to `krealloc()` frees the pointer

This matches the API on Linux.

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56452
2434fcfd0dd07847a8518351b4525ec488f4d0bd Jean-Sébastien Pédron 2026-04-14 00:00:23

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

kern/proc: expose reaper PID and subtree root in struct kinfo_proc
Expose process reaper metadata through struct kinfo_proc so userland
can reconstruct reaper hierarchies from kern.proc.all without adding
a new procctl(2) operation.

Two pid_t fields are added by carving 8 bytes from ki_sparestrings
(46 -> 38), restoring KI_NSPARE_INT to 2 and keeping sizeof(struct
kinfo_proc) unchanged:

  ki_reaper: PID of the owning reaper process
  ki_reapsubtree: PID of the direct child of the reaper that roots
                  the subtree the process belongs to

fill_kinfo_proc_pgrp() populates both fields under proctree_lock.
kvm_proclist() is updated for crash dump consumers. The freebsd32
compat struct and freebsd32_kinfo_proc_out() are updated accordingly.

PR:     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293871
Reviewed by:    kib
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56538
0f89380a3d208d67698f2d35afd35257e5fdbe09 GenericRikka 2026-04-20 23:32:49

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

Commit group #5: linux: Support PR_GET_CHILD_SUBREAPER prctl(2)
linux: Support PR_GET_CHILD_SUBREAPER prctl(2)

PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294651
Signed-off-by: Ricardo Branco <rbranco@suse.de>
Reviewed by: kib, pouria
Pull-Request: https://github.com/freebsd/freebsd-src/pull/2151
50ff71e956b631b56a878bd723a9b32dfbdac60f Ricardo Branco 2026-04-19 21:06:52

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


linux: Fix a typo in a header comment

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294651
Reported by:    Dmitry Lukhtionov <dmitryluhtionov@gmail.com>
Fixes:          https://cgit.freebsd.org/src/commit/?id=50ff71e956b6 ("linux: Support PR_GET_CHILD_SUBREAPER prctl(2)")
Pull-Request:   https://github.com/freebsd/freebsd-src/pull/2151
45827f9ad2e32ec8e4cdde62cbf722a48fb1b396 Pouria Mousavizadeh Tehrani 2026-04-22 10:17:50

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

debug: moved to kernel because 'Need to be grouped with 50ff71e956b631b56a878bd723a9b32dfbdac60f'

linux: Support LINUX_PR_GET_NO_NEW_PRIVS prctl(2)
PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294651
Signed-off-by: Ricardo Branco <rbranco@suse.de>
Reviewed by: kib, pouria
Pull-Request: https://github.com/freebsd/freebsd-src/pull/2151
98a868c61b931e37cf09adecd8542cbd874d333f Ricardo Branco 2026-04-19 21:16:48

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

kexec: Disallow kexec_load if securelevel > 0
kexec_load() + reboot is intended to be equivalent to a system reboot.
However kexec_load() can load arbitrary data as the target kernel,
leading to execution of arbitrary code, even though it's effectively in
a new context.  Rather than being equivalent to a system reboot, it's
also equivalent to kldload(), which loads arbitrary code into the
running kernel.  Since kldload() is blocked at securelevel 1, also block
kexec_load().

Reported by:    markj
Fixes:          https://cgit.freebsd.org/src/commit/?id=e02c57ff3 ("kern: Introduce kexec system feature (MI)")
Sponsored by:   Hewlett Packard Enterprise
Differential Revision:  https://reviews.freebsd.org/D56580
e3e8ec2ab620f026b42b4988fce49eff7cec16eb Justin Hibbits 2026-04-22 15:51:06

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

Commit group #6: linuxkpi
linuxkpi: Add `struct kmsg_dump_detail`

This structure is used in a modified definition of `struct kmsg_dumper`
field `dump` in Linux 6.12. Therefore this field has two definitions put
behind the values of `LINUXKPI_VERSION`.

The DRM generic code started to use it in Linux 6.12.

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56433
e692f36a678d4fad6054161e554eb5ec544fffa8 Jean-Sébastien Pédron 2026-04-11 09:28:01

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


linuxkpi: Add more `struct folio`-related functions

The i915 DRM driver started to replace the use of `struct page` by
`struct folio` in its GEM shmem code in Linux 6.12.

linuxkpi were missing a few more functions: `kmap_local_folio()`,
`memcpy_to_folio()` and `offset_in_folio()`. They are equivalent of
their `struct page` counterparts.

One difference is that `kmap_local_folio()` takes an offset argument and
the returned address takes this offset into account.

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56438
84fc57a369dfac882cb9e9333635aaa11978948f Jean-Sébastien Pédron 2026-04-11 14:19:39

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


linuxkpi: Define `fd_file()`

This macro simply returns the `file` field of the `struct fd`.

The DRM generic code and the amdgpu driver started to use it in
Linux 6.12.

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56440
373871696d3da5f9fe1dcd23c83be95dbaa1b41d Jean-Sébastien Pédron 2026-04-11 15:18:06

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


linuxkpi: Add `mem_is_zero()`

The DRM generic code and the i915 DRM driver started to replace the use
of `memchr_inv()` by a `mem_is_zero()` in Linux 6.12. We reuse the
previous use of `memchr_inv()` to implement `mem_is_zero()`.

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56442
ab77c26d3643b88b29d3526d60b939d1cca402f9 Jean-Sébastien Pédron 2026-04-12 10:16:55

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


linuxkpi: Add `kmemdup_array()`

It is similar to `kmemdup()` but takes a number of elements to duplicate
and their size.

The i915 DRM driver started to use it in Linux 6.12.

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56444
7643dd70a4dfa5fd874300a7161c24b808d6b134 Jean-Sébastien Pédron 2026-04-12 22:23:06

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


linuxkpi: <asm/unaligned.h> is moved to <linux/unaligned.h> in Linux 6.12

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56454
849e5b0b6167d7c819f6998fa3e67122af81d794 Jean-Sébastien Pédron 2026-04-14 12:29:53

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


linuxkpi: Define a guard for the `mutex` type

The amdgpu DRM driver started to use `guard(mutex)` in Linux 6.12.x.

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56571
7f59126493d44f21d9a2b1a0b5b81c30f9a438f0 Jean-Sébastien Pédron 2026-04-20 21:38:11

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


linuxkpi: Add `register_pm_notifier()` and `unregister_pm_notifier()`

They are empty stub returning success for now, like the previously
defined stubs in this header.

Several constant are also defined in the process.

The amdgpu DRM driver started to use them in Linux 6.12.x.

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56572
06cfd1047da6f3cdba80da371592980a7143a7b6 Jean-Sébastien Pédron 2026-04-20 22:04:27

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


linuxkpi: Add `atomic_read_acquire()`

This function calls `raw_atomic_read_acquire()` which is also added.

They are located in <linux/atomic/*.h> headers, both included from
<linux/atomic.h>.

The amdgpu DRM driver started to use this in Linux 6.12.x.

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56573
ade8a27ea4c28d12fabc2d5f8e44386a3add23d1 Jean-Sébastien Pédron 2026-04-20 23:34:39

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


linuxkpi: Define `system_state`

This is a global variable used to track the state of the system, like
booting, running, halting and so on.

This variable is based on the `enum system_states` enumeration.

For now, always set `system_state` to `SYSTEM_RUNNING`.

The amdgpu DRM driver started to use this in Linux 6.12.x.

Reviewed by:    emaste
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56575
305ebed50b4e2e2346d211c5a65320fa45c7fbc4 Jean-Sébastien Pédron 2026-04-21 00:14:41

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


linuxkpi: Define `DIV_U64_ROUND_UP()`

It is the same as `DIV64_U64_ROUND_UP()` but takes a 32-bit integer as
the divisor.

The amdgpu DRM driver started to use this in Linux 6.12.x.

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56576
002c08158f9e7eb61c467fe29ff8e24361fb8470 Jean-Sébastien Pédron 2026-04-21 00:32:18

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


linuxkpi: Add `rb_add()`

It is the same as `rb_add_cached()` but it works on `struct rb_root`, not
a `struc rb_root_cached`. It also does not return anything.

The DRM generic code started to use this in Linux 6.12.x.

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56577
cff716c2854c167ef7ff3a4785f5faed9b0a4f98 Jean-Sébastien Pédron 2026-04-21 00:38:56

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

linux: Add support for membarrier(2)
FreeBSD has a native membarrier(2) syscall which is mostly compatible
with Linux. This is a thin wrapper around kern_membarrier() that
translates all available commands and flags.

Also update the syscalls.master prototypes to match the Linux 5.10+
three-argument form.  Pre-5.10 binaries using the two-argument form
continue to work: cpu_id is only consulted for RSEQ commands, which
FreeBSD does not support and which kern_membarrier() rejects with
EINVAL, matching Linux semantics.

Signed-off-by:  Ricardo Branco <rbranco@suse.de>
PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=281691
Reviewed by:    kib, pouria
Pull-Request:   https://github.com/freebsd/freebsd-src/pull/2147
1594fe0b1029f246b3a14c8b21637091968362aa Ricardo Branco 2026-04-18 10:11:44

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

Commit group #7: linuxkpi
linuxkpi: Move {lower,upper}_32_bits macros to <linux/wordpart.h>

... from <linux/compiler.h>.

<linux/wordpart.h> is the header defining them on Linux 6.12 (I didn't
check older versions).

<linux/wordpart.h> is also included from <linux/kernel.h>.

The DRM generic code started to depend on <linux/wordpart.h> in Linux
6.12.

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56441
0a2f3b8ef16786a44fc88afd8862920df4527a3c Jean-Sébastien Pédron 2026-04-11 15:21:53

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


linuxkpi: Add Linux 6.12 variant of `kvrealloc()`

In Linux 6.12, the API changed to be closer to `krealloc()`:
* The function does not take the old size anymore
* The function becomes a wrapper around `krealloc()` with a fallback
  mechanism.

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56453
d74fa49d0c0476353af137d22b5ef8711c67b854 Jean-Sébastien Pédron 2026-04-14 00:01:26

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


linuxkpi: Move `ARRAY_SIZE` to <linux/array_size.h>

The DRM generic code started to import this header directly in Linux
6.12.x. Let's move the definition of `ARRAY_SIZE()` (the only thing that
<linux/array_size.h> defines) to this header.

Also, include <linux/array_size.h> from the same headers as Linux. This
includes <linux/kernel.h>, so the change should not break anything.

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56570
1c641d0436e377c57a767e37f56ce65253817d67 Jean-Sébastien Pédron 2026-04-20 21:34:08

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


linuxkpi: Add `memdup_array_user()`

The amdgpu DRM driver started this in Linux 6.12.x.

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56574
5dfbc6593cdacd5b4e4939e09d595b3a9c8e47da Jean-Sébastien Pédron 2026-04-21 00:01:11

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


linuxkpi: Define `min_array()` and `max_array()`

They are macros that return the minimum or maximum values of an array of
integers. They assume that the array contains elements.

The i915 DRM driver started to use `min_array()` in Linux 6.12.x.

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56583
9a2de1d2042d1c2730dd3049c26d481813b5f2bd Jean-Sébastien Pédron 2026-04-22 14:36:06

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


linuxkpi: Add `pci_dev_is_disconnected()`

For now, it is an empty stub that always return false. On Linux, it
looks at an internal error state of the device to determine if it is
disconnected.

The amdgpu DRM driver started this in Linux 6.12.x.

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56582
43b47418e769df02f43f2b4636dd5c7516fa51f8 Jean-Sébastien Pédron 2026-04-22 14:34:00

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


linuxkpi: Move `GENMASK()` to <linux/bits.h>

... from <linux/bitops.h>.

This matches the location on Linux.

<linux/bits.h> is also included from <linux/bitops.h>. Therefore it will
not break anything.

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56584
47e1ca7f3720c76fdc729e03034fa53c798b9318 Jean-Sébastien Pédron 2026-04-22 16:21:40

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

linuxkpi: Fix strlcpy size in linuxkpi_alloc_netdev()
`sizeof(*ndev->name)` is `sizeof(char)`, not IFNAMSIZ, so
the interface name was effectively limited to a single byte.
Use `sizeof(ndev->name)` for the `char name[IFNAMSIZ]` member.

Signed-off-by:  Weixie Cui <cuiweixie@gmail.com>
Reviewed by:    pouria
Pull-Request:   https://github.com/freebsd/freebsd-src/pull/2111
edb302bb49e00723030b84624f16217f18760564 Weixie Cui 2026-03-31 10:21:30

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

sys/README: update README.md
Add missing directories and fix alphabetical ordering

Signed-off-by:  Minsoo Choo <minsoo@minsoo.io>
Sponsored by:   FreeBSD Foundation
Reviewed by:    imp, mhorne, pouria
Pull-Request:   https://github.com/freebsd/freebsd-src/pull/2146
eb82fb188f0a190f774c3276612aa3b01f1e5f42 Minsoo Choo 2026-04-18 03:56:21

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

linuxkpi: Define `GFP_KERNEL_ACCOUNT` flag
This flag combines `GFP_KERNEL` and `__GFP_ACCOUNT`. The latter is also
defined in this commit. It is defined as a no-op flag as it is not
implemented.

The DRM generic code started to use it in Linux 6.12.x.

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56587
af01ffbfb1c0a0104d3a4c7dd1342ed7c81c6c54 Jean-Sébastien Pédron 2026-04-22 16:28:52

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

linuxkpi: Implement __GFP_THISNODE in alloc_pages()
It indicates to `alloc_pages()` to allocate the pages from the current
NUMA domain. If it couldn't, it should not retry elsewhere and return
failure.

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56590
06a51a510a60ca29193b2cdb8120b630ea9ef18c Jean-Sébastien Pédron 2026-04-22 16:27:32

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

LinuxKPI: Update seq_file to properly implement the iterator interface
The seq_file.rst documentation in the Linux kernel documents the
iterator interface for the seq_file structure.  In particular, the
ppos passed to seq_read is a logical offset into a seq_file managed by
the iterator interface, not an offset into the generated data.  For
example, if a seq_file outputs state for each node in a linked-list or
array, *ppos might be used as the index of the node to output, not a
byte offset.

Rewrite seq_read to honor this contract which fixes a few bugs:

- Treat *ppos as a logical iterator offset that is only updated by the
  next callback after outputting a single item via the show method.

- Use a loop to permit outputting descriptions of multiple items if
  the user buffer is large enough.

- Always invoke the stop method after terminating the loop to cleanup
  any state setup by start (e.g. if start allocated a buffer or
  obtained a lock, the stop method is called to cleanup).

While here, implement support for SEQ_SKIP as documented in the Linux
documentation even though it is not currently used in the tree.

Reviewed by:    bz
Sponsored by:   AFRL, DARPA
Differential Revision:  https://reviews.freebsd.org/D55899
f4418cf954c299fa0934f110d6f5e9d50f2d24c5 John Baldwin 2026-04-23 15:46:54

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

pmap_quick_(enter|remove)_page: Use void * instead of vm_offset_t
Effort:               CHERI upstreaming
Reviewed by:    kib
Sponsored by:   AFRL, DARPA
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2068
115065459cedf21a391f749fedb077b82b76ce67 John Baldwin 2026-04-23 17:05:53

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

busdma: Use char * instead of vm_offset_t for bounce page kernel pointers
Effort:               CHERI upstreaming
Reviewed by:    kib
Sponsored by:   AFRL, DARPA
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2068
fe9f0b18bf6a1f881fbe57da716ea429acd539c1 John Baldwin 2026-04-23 17:05:53

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

pmap_change_attr: Use void * instead of vm_offset_t
Effort:               CHERI upstreaming
Reviewed by:    kib
Sponsored by:   AFRL, DARPA
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2068
dfb804eb57f1e50f5c84060007e3b1e9c1edf253 John Baldwin 2026-04-23 17:05:53

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

pmap_change_prot: Use void * instead of vm_offset_t
Effort:               CHERI upstreaming
Reviewed by:    kib
Sponsored by:   AFRL, DARPA
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2068
d8863680744f2de6a97ca80d8eba3755f506203c John Baldwin 2026-04-23 17:05:54

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

sf_buf_kva: Return a pointer instead of a vm_offset_t
This removes the need for several casts to pointer in callers.

Effort:         CHERI upstreaming
Reviewed by:    kib
Sponsored by:   AFRL, DARPA
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2068
573e6313bc3b3d7d8da4531fbfaa2763dbe209a7 John Baldwin 2026-04-23 17:05:54

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

pmap_qenter/qremove: Use void * instead of vm_offset_t
Effort:               CHERI upstreaming
Reviewed by:    kib
Sponsored by:   AFRL, DARPA
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2068
e27501388fc0dc2a29f90cb24ba8d36e9bb6631f John Baldwin 2026-04-23 17:05:54

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

kva_alloc/free: Use void * instead of vm_offset_t
Effort:               CHERI upstreaming
Reviewed by:    kib
Sponsored by:   AFRL, DARPA
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2068
2d0634d2e74bb697573afaf888207a8ad1ba3242 John Baldwin 2026-04-23 17:05:54

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

vm_kstack: Use void * instead of vm_offset_t
Effort:               CHERI upstreaming
Reviewed by:    kib
Sponsored by:   AFRL, DARPA
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2068
8a0ff500d713ab314d2a728fdd1f34960ee055b7 John Baldwin 2026-04-23 17:05:54

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

sys: Switch td_kstack from vm_offset_t to char *
Effort:               CHERI upstreaming
Reviewed by:    kib
Sponsored by:   AFRL, DARPA
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2068
fe2957f591b55d9cbd70cf1325048012fc833fbb John Baldwin 2026-04-23 17:05:54

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

pmap_map: Use void * for the return value instead of vm_offset_t
Effort:               CHERI upstreaming
Reviewed by:    kib
Sponsored by:   AFRL, DARPA
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2068
ac7d52740249de51e805a7cd577b4374d6a6ae81 John Baldwin 2026-04-23 17:05:54

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

sys: Permit passing pointers to VIRT_IN_DMAP and DMAP_TO_PHYS
Add explicit uintptr_t casts to the arguments to these macros so that
the work both with virtual addresses (e.g. vm_offset_t) and pointers.

Drop no-longer-needed casts in various invocations of DMAP_TO_PHYS.

Effort:         CHERI upstreaming
Reviewed by:    kib
Sponsored by:   AFRL, DARPA
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2068
2c6d8f15bd45afddb87d9a435239f4280ebd26f7 John Baldwin 2026-04-23 17:05:54

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

PHYS_TO_DMAP: Return a void * instead of a vm_offset_t
Add a new PHYS_TO_DMAP_ADDR that still returns an address for use in
places that only need an address and not a pointer.

Effort:         CHERI upstreaming
Reviewed by:    kib
Sponsored by:   AFRL, DARPA
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2068
fe3e92e6868dce2ed94c98428b8df1f27ed3ef63 John Baldwin 2026-04-23 17:05:54

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

kmap_alloc_wait/kmap_free_wakeup: Use void * instead of vm_offset_t
Effort:               CHERI upstreaming
Reviewed by:    kib
Sponsored by:   AFRL, DARPA
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2068
30af462bd2641798a6ac29235b82e49ad386d363 John Baldwin 2026-04-23 17:05:55

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

DMAP_TO_VM_PAGE: Wrapper macro to map direct map address to a page
Effort:               CHERI upstreaming
Suggested by:   kib
Reviewed by:    kib
Sponsored by:   AFRL, DARPA
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2068
120a5e3e195f1f780d89ce689e23654422285d62 John Baldwin 2026-04-23 17:05:55

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

VM_PAGE_TO_DMAP: Wrapper macro to return direct map address for a page
Effort:               CHERI upstreaming
Reviewed by:    kib
Sponsored by:   AFRL, DARPA
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2068
9a6e9d7799235d3e122bcc8065e865ae265a6ce2 John Baldwin 2026-04-23 17:05:55

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

Bump __FreeBSD_version for changing various kernel APIs to use pointers
Effort:               CHERI upstreaming
Sponsored by:   AFRL, DARPA
68d2339bc6afadba0107208430af03731a2e3f4a John Baldwin 2026-04-23 17:05:55

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

Commit group #8: kern
kern: vfs: add MAC checks for mount/unmount/update

The unmount check is straightforward and only really needs the
struct mount and flags used, in case a MAC policy wants to reject
force-unmounts or do special handling for FSID-based unmounts.

The mount check offers as much information as I think might be of
interest to a MAC policy: the vnode to be mounted on, vfsconf, and
applicable mount options.   XNU also has a later version that just takes
a struct mount for everything that VFS_MOUNT() has to offer, but my
draft policy doesn't need any of that.  It also doesn't really need the
unmount check, but it seems reasonable to add it while I'm here.

The update check similarly passes the flags/options for the operation,
along with the struct mount and label.

Reviewed by:    kib, olce
Differential Revision:  https://reviews.freebsd.org/D55601
0faa88f26c239b19ea543309f2c70384438eae73 Kyle Evans 2026-04-23 18:47:09

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


kern: mac: sprinkle a bit of const correctness

mpc_name and mpc_fullname are string literals in correct usage, so they
should really be const instead.

mpc_ops aren't typically const, but the framework shouldn't be doing
anything to clobber it; thus, good to constify it as a reminder.

Switch to using a slightly more semantically correct `void **` in the
fastpath bits while we're here, since we only do arithmetic on the outer
layer of pointer and compare the inner to a pointer-typed (NULL).

Reviewed by:    bapt
Differential Revision:  https://reviews.freebsd.org/D55702
28b0084af332c34af3bdc60354bb7feea8ceeaa3 Kyle Evans 2026-04-23 18:47:09

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


kern: mac: bump the MAC_VERSION for 16.x

Reviewed by:    bapt
Differential Revision:  https://reviews.freebsd.org/D55703
7982985bdf58d2ee90d10d5710b28f5c3cd48bb1 Kyle Evans 2026-04-23 18:47:09

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

mac_seeotheruids: allow specificgid to be a list of groups
The specificgid functionality has historically allowed only a single
group to be exempt, but in practice one might want a few services to
be exempt for reasons.  From a security perspective, we probably don't
want to encourage unrelated users to be grouped together solely for
this purpose, as that creates one point of shared access that could be
used for nefarious purposes.

Normalize the group list as we do cr_groups to allow for linear matching
rather than quadratic, we just need to account for the differences in
FreeBSD 15.0+ where cr_groups is entirely supplementary groups vs.
earlier versions, where cr_groups[0] is the egid and the rest is
sorted.

Reviewed by:    csjp, des (earlier version)
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D56592
b675ff8eedc9ac93cdf1cfe33185b7a1a027df37 Kyle Evans 2026-03-01 03:42:25

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

pass(4): Allowlist CCB func_codes to harden passthrough ioctls
The pass(4) driver's CAMIOCOMMAND and CAMIOQUEUE ioctls accept arbitrary
CCBs from userland.  This device requires root to open, and thus send
these commands. Previously, the only func_code filter was a blocklist
check against the XPT_FC_XPT_ONLY flag.  This missed several dangerous
func_codes that lack that flag:

 - XPT_ABORT: the abort_ccb field is a raw kernel pointer from the
   user CCB payload.  xpt_action_default() dereferences it without
   validation, leading to kernel crashes or worse.

 - XPT_SASYNC_CB: the callback and callback_arg fields come directly
   from the user CCB payload and get registered as a kernel async
   callback, allowing arbitrary kernel code execution.

 - Target mode CCBs (XPT_EN_LUN, XPT_TARGET_IO, etc.) fall through
   directly to the SIM with user-controlled payloads.

Replace the XPT_FC_XPT_ONLY blocklist with an explicit allowlist of CCB
function codes that are known to be safe for userland to submit: I/O
operations (SCSI, ATA, NVMe, SMP, MMC), device queries, transport
settings, and a handful of safe control operations (NOOP, REL_SIMQ,
RESET_DEV, DEBUG). Normally, the /dev/pass* permissions only allow root
to access them, so this is only a safety issue by default.

Also reject CAM_DATA_PADDR and CAM_DATA_SG_PADDR, since these pass
user-supplied physical addresses directly to DMA with no validation,
which on systems without an IOMMU allows arbitrary host memory access.
Add `options PASS_UNSAFE_PADDR` to allow the old behavior.

Verified that camdd, camcontrol, smartmontools, and cdrtools use only
func_codes on the allowlist (XPT_SCSI_IO, XPT_ATA_IO, XPT_NVME_IO,
XPT_NVME_ADMIN, XPT_PATH_INQ, XPT_GDEV_TYPE, XPT_GET_TRAN_SETTINGS,
XPT_SET_TRAN_SETTINGS, XPT_RESET_DEV, XPT_DEBUG) and none use
CAM_DATA_PADDR.

PR:                     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293888, https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293890
Assisted-By:            Claude Opus 4.6 (1M context)
Sponsored by:           Netflix
Reviewed by:            jhb
Differential Revision:  https://reviews.freebsd.org/D56486
e1cff854997884ed9b7251d409d9c9c7a025606d Warner Losh 2026-04-24 18:29:53

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

cam: Set ccb_h.status on XPT_GDEVLIST early-return paths
XPT_GDEVLIST in xpt_action_default has two early-return paths (list
changed and index not found) that set cgdl->status but not ccb_h.status.
Since xpt_action sets ccb_h.status to CAM_REQ_INPROG before dispatching,
and XPT_GDEVLIST is an non-queued CCB, cam_periph_ccbwait skips the
sleep loop and immediately hits the KASSERT checking that status !=
CAM_REQ_INPROG, causing a panic.

Set ccb_h.status = CAM_REQ_CMP at the top of the code rather than the
bottom. Any future error paths will be right (since this command can't
fail at the command level, just in the status of the data level).

PR:                     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293899
Assisted-By:            Claude Opus 4.6 (1M context)
Sponsored by:           Netflix
Reviewed by:            jhb
Differential Revision:  https://reviews.freebsd.org/D56487
3454d97aaec12f4a8c676c34182200471eecae24 Warner Losh 2026-04-24 18:31:13

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

cam: kern.cam.max_high_power tuneable / sysctl
Create a tunable for the maxinum number of 'high power' commands to
schedule, kern.cam.max_high_power.  Default remains at 4.

Differential Revision:  https://reviews.freebsd.org/D56462
cb78764d47db973a1c9d08565143a1b1b7f17513 Scott Long 2026-04-24 18:31:29

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

net: Fix collision between SIOCGI2CPB and IPSECGREQID
It turns out interface ioctls are defined not just in sockio.h, but are
spread among many files.  When I added SIOCGI2CPB at the bottom of the
file, the next number (160) collided with an ioctl (IPSECGREQID) that
I was unaware of in another file.  Fix this by moving to a number that
is unclaimed.

Fixes: https://cgit.freebsd.org/src/commit/?id=cf1f21572897 (net: Add SIOCGI2CPB ioctl & add page/bank fields to ifi2creq)
Reported by: dhw
Reviewed by: imp
5923b363ca616e7cd4fdec1f4f0bf0c98b272468 Andrew Gallatin 2026-04-24 20:01:44

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

Commit group #9: kgss
kgss: remove KGSS_VNET_* macros family

The original idea was that something else than VNET(9) might be used for
kgss in jails, but that is very unlikely to happen.

Mechanical change done with sed+grep.  No functional change.

Reviewed by:            rmacklem
Differential Revision:  https://reviews.freebsd.org/D56560
50c5715159f172103f68fa90e5423a45aea2a626 Gleb Smirnoff 2026-04-25 02:55:45

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


kgss: remove unnecessary CURVNET_SET() and kgss_gssd_handle checks

These RPC methods correctly acquire the kgss_gssd_handle later with call
to kgss_gssd_client().

Reviewed by:            rmacklem
Differential Revision:  https://reviews.freebsd.org/D56561
2bd2f267f344c51c66fc18d963df8cec78db34c1 Gleb Smirnoff 2026-04-25 02:55:50

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


kgss: de-virtualize kgss_gssd_handle

The RPC client is more of a class rather than an instance.  RPCs from
different VNETs are served by the same client.  This makes the kgss layer
fully transparent to VIMAGE and not even required to be aware of it.

It is responsibility of the rpcsec_gss module to have curvnet set on the
calling thread when doing RPC calls via kgssapi.

This change should enable proper operation of an NFS server with gssd(8)
in a VIMAGE jail.

PR:                     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294501
Reviewed by:            rmacklem
Differential Revision:  https://reviews.freebsd.org/D56562
4602d45eb3b1d33e0ea0d97c4d18033af95d7fca Gleb Smirnoff 2026-04-25 02:55:55

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

Bump __FreeBSD_version for llvm 21.1.8 merge
8f95b8b19088bd8d73f6d14dab7afe848dfc0c35 Dimitry Andric 2026-04-25 12:34:45

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

nullfs: Clear inotify flags during reclaim
The inotify flags are copied from the lower vnode into the nullfs vnode
so that the INOTIFY() macro will invoke VOP_INOTIFY on the nullfs vnode;
this is then bypassed to the lower vnode.  However, when a nullfs vnode
is reclaimed we should clear these flags, as the vnode is now doomed and
no longer forwards VOPs to the lower vnode.

Add regression tests.  Remove a test in vn_inotify_revoke() which is no
longer needed after this change.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292495
Reviewed by:    kib
Reported by:    Jed Laundry <jlaundry@jlaundry.com>
Fixes:          https://cgit.freebsd.org/src/commit/?id=f1f230439fa4 ("vfs: Initial revision of inotify")
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56639
a02d794f5acd12ba3cf1de5c204a8dd56af47edd Mark Johnston 2026-04-26 01:35:37

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

conf/std.nodebug: disable DEBUG_LOCKS
MFC after:    1 week
Sponsored by:   The FreeBSD Foundation
85a04bea5a54d6879c8fbf49eea20aba7ca24692 Konstantin Belousov 2026-04-26 02:16:55

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

compat/linprocfs: Add some entries to /proc/sys/fs and /proc/sys/kernel
Add following sys/fs entries to linprocfs(4):
* proc/sys/fs/file-max
* proc/sys/fs/file-nr
* proc/sys/fs/nr_open
* proc/sys/fs/overflowuid
* proc/sys/fs/overflowgid
* proc/sys/fs/suid_dumpable
* proc/sys/fs/protected_hardlinks
Also, add /proc/sys/kernel/threads-max

Signed-off-by:  Ricardo Branco <rbranco@suse.de>
PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294713
Reviewed by:    markj, pouria
Pull-Request:   https://github.com/freebsd/freebsd-src/pull/2159
4f9f09d95103e1db6b7c75fce7cf3e8c448321e9 Ricardo Branco 2026-04-22 20:19:29

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

Build system

src.opts.mk: Sort options
Sort the options in each of the sections alphabetically.

Sponsored by:           Netflix
3d2fd7178663fa5314f6e90bb041c3bfb3b1bbaf Warner Losh 2026-04-21 15:23:20

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

makeman.lua: catch up to REQUIRED_OPTIONS change
161f8edc651c7 ("bsd.mkopt.mk: Prepare a list of all build options")
restructured things and now we should simply strip the leading double
underbar.  This fixes the oddity noticed in
4ed20e0236dd0 ("kshim/usb: Add build option."), where WITH_CASPER made
a surprise appearance.

This is a part of D56558, but not the meat of the change.

Reviewed by:    emaste, imp
8bbba9f681ecccc6f6adcdb820c28df71f028e37 Kyle Evans 2026-04-22 02:29:07

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

Commit group #10: pkgconf: import into the base system
pkgconf: import into the base system

This introduces the following option:

* MK_PKGCONF: determines if pkgconf and bomtool should be built

The objective is to allow the creation of SBOM information while
building FreeBSD's src tree. The build system cannot rely on the
presence of bomtool (and eventually also spdxtool) in the build
environment, except for having it as part of the src tree directly.

The framework implementing the generation of SBOM files is under review
in D56474.

This will also help simplifying the build, with the introduction of
another framework relying on the availability of pkgconf.

Sponsored by:           Alpha-Omega, The FreeBSD Foundation
Reviewed by:            bapt, philip
Approved by:            philip (mentor)
Differential Revision:  https://reviews.freebsd.org/D56404
b8352da33f3434f0ba6093df361261d1b1f973a1 Pierre Pronchery 2026-04-08 16:52:29

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


packages: Register pkgconf

This should fix the creation of the new packages introduced by the
import of pkgconf into the base system.

Fixes:          https://cgit.freebsd.org/src/commit/?id=b8352da33f34 ("pkgconf: import into the base system")
PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294724
Reviewed by:    ivy, ngie
Approved by:    ngie
Sponsored by:   The FreeBSD Foundation
Differential revision:  https://reviews.freebsd.org/D56589
c875afcbcdf70e61826f3461aa77008f9f08ae75 Pierre Pronchery 2026-04-22 20:59:55

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


libpkgconf: Fix paths

${LOCALBASE:U} evaluates to exactly the same thing as ${LOCALBASE}.
Presumably what was meant was ${LOCALBASE:U/usr/local}.

Fixes:          https://cgit.freebsd.org/src/commit/?id=b8352da33f34 ("pkgconf: import into the base system")
Reviewed by:    khorben
Differential Revision:  https://reviews.freebsd.org/D56642
4dd97955e68df02b26d59e4e7c9a8167947a5164 Dag-Erling Smørgrav 2026-04-26 13:41:47

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


depends-cleanup: Fix typos in comment

Fixes:          https://cgit.freebsd.org/src/commit/?id=4dd97955e68d ("libpkgconf: Fix paths")
1abfe75860d586b4aec3a6894f500281d5c63045 Dag-Erling Smørgrav 2026-04-26 18:14:03

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

debug: moved to build because 'Need to be grouped with 4dd97955e68df02b26d59e4e7c9a8167947a5164'

tests/sys/arch/aarch64: set TESTSDIR so Kyuafile is installed correctly
Fixes:                https://cgit.freebsd.org/src/commit/?id=0ddaa4c86d68 ("arm64: Add arm64 SVE tests")
Sponsored by:   The FreeBSD Foundation
81abe47cd5cd0e15813fc53b18a6cd744ceefa9e Li-Wen Hsu 2026-04-22 20:15:01

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

OpenSSL: move `-DOPENSSL_PIC` from `PIC_FLAG` to `SHARED_CFLAGS`
`PIC_FLAG` should be used strictly for `-fPIC`, `-fpic`, etc, options.
`SHARED_CFLAGS` is the more appropriate place to this flag to be set.

Requested by:   jrtc27
MFC after:      3 days
MFC with:       3797fe720a
48d6db4932c8ec04ca3df79119803f8c7c1570d7 Enji Cooper 2026-04-21 23:46:19

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

Remove `/usr/share/examples/oci` when MK_EXAMPLES == no
MFC after:    1 week
Fixes:          https://cgit.freebsd.org/src/commit/?id=d03c82c28da86 ("release: add optional OCI images")
ab53a4e9b95de1f6f58a8316b4c4eccf0b1760a2 Enji Cooper 2026-04-22 20:51:48

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

Preen/update list for share/examples/sound under `MK_EXAMPLES`
- Update sources to match current installed files list. This involved
  adding and removing some example files.
- Sort the list alphabetically so it'll be easier to spot future updates.

MFC after:      1 week
b9495bd8c13e95035366b4e699b9ebe9f3d5c543 Enji Cooper 2026-04-22 21:00:52

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

Remove all of /usr/tests/share/examples/... when MK_EXAMPLES == no
- Remove the generated files (`file1`).
- Remove the top-level example `Kyuafile`.

MFC after:      1 week
fb7df70a479f7cf972073f3a779adba2b4517c31 Enji Cooper 2026-04-22 21:06:37

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

makeman: switch over to the .lua implementation
Nobody will test it as long as it's not tied into the top-level target,
and we don't really have a good reason not to cut over to it since it
does produce identical results.  Switch over but do not remove the old
sh implementation yet, just in case.

Note that this replacement is driven by a significant speedup from how
the new version is designed: tha lua version actually tries to
parallelize its data collection efforts to speed up generation.

Reviewed by:    imp (previous version), emaste
Differential Revision:  https://reviews.freebsd.org/D56558
1f41f56991a1a8cc836fa41fa7bb59150b46e8d5 Kyle Evans 2026-04-23 02:56:05

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

packages: Convert world to a subdir build
Instead of driving the world package build from Makefile.inc1,
use a subdir build where each package has a subdirectory under
packages/ using the new <bsd.pkg.mk>.

Convert some metadata that was previously in the UCL files (e.g.
sets and dependencies) to Makefile variables.

Build the packages under objdir (not repodir), and use the new
stagepackages target to copy them to repodir when creating the
repository.

Determine an explicit list of packages to build in packages/Makefile
based on enabled src.conf options, and add logic to abort the build
if we attempt to build an empty package.  This inverts the previous
logic in Makefile.inc1 which would simply skip empty packages.

There are a few advantages to doing it this way:

* The package build works more like the rest of the build system,
  so it's more accessible to developers.

* We can customise the packages we build based on src.conf options,
  e.g. skipping a package entirely, or adjusting its dependencies
  based on what it actually requires.

* We have a specific list of packages that we want to build, and an
  unexpectedly missing package results in a build error, instead of
  silently producing a broken repository.

* It's possible to build (and in the future, install) an individual
  package without having to rebuild the entire repository.

This doesn't apply to the dtb, kernel-* or src-* packages; those
have their own build systems in Makefile.inc1 and will be converted
later.

MFC after:      4 weeks (stable/15 only)
Reviewed by:    jlduran, sjg, brooks
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D56087
bb75b0d581f74e22a68d7868ad1f5da1146a8de0 Lexi Winter 2026-04-24 14:10:01

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

Remove -fms-extensions throughout the tree
During a discussion about using -fms-extensions jhb pointed out that
we have them enabled in the kernel for gcc by default (even multiple
times in one part). I had missed all that and clang still failed on
my use case (needing another option).

The original cause for enabling them for our tree back then was that
we needed to support C11 anonymous struct/unions.
Our in-tree gcc 4.2.1, despite later patches, needed the
-fms-extensions to support these even though this was not the expected
use case for that option ( cc4a90c445aa0 enabled it globally for the
kernel).
clang at that time (or at least when it became default for 10.0)
already was fine (with C11).

Any later gcc (4.6.0 onwards) did not need that option anymore, even
when compiled for -std=iso9899:1990 (which does not support anonymous
structs/unions) unless one would add -pedantic (see gcc git 4bdd0a60b27a).
This is also the reason why userland cddl sources now compile with the
option removed despite CSTD=c99.

The only driver which needed the option recently was ccp, but that was
fixed in 8d3f41dbcb2a by jhb.

So cleanup all uses cases of -fms-extensions for the moment as they are
no longer needed given all compilers currently supported seem to be
fine without them and gcc-4.2.1 was removed from the tree in stable/13
in 2020 (a9854bc3812b).

Reported by:    jhb (all this but possibly the world CDDL parts)
Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Reviewed by:    emaste (earlier), imp, jhb, glebius
Differential Revision: https://reviews.freebsd.org/D55072
93d301d95ab230ea159b21b5412aac2ce5362ac5 Bjoern A. Zeeb 2026-02-03 01:51:40

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

Remove `cam.d` when MK_DTRACE == no
MFC with:     efb77950fdd
Fixes:  https://cgit.freebsd.org/src/commit/?id=efb77950fdd ("dtrace: Add definitiosn for the cam dtrace provider")
Differential Revision:  https://reviews.freebsd.org/D56588
944a4de2d2114954599d8220e87f09e9102f55d3 Enji Cooper 2026-04-22 21:09:25

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

Tentative fix for powerpc boot1.chrp linking problem.
4822a2cf990048c6eed7822fd34a1aeeb7c39cdf Dimitry Andric 2026-01-10 15:36:48

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

Revert "Tentative fix for powerpc boot1.chrp linking problem."
This reverts base 4822a2cf990048c6eed7822fd34a1aeeb7c39cdf. The change
in base aa0bc7cca153f67f8becec8a8fb259ff5fd30fd0 already fixed the
original issue, which is that newer versions of lld complain "section
'.text' address (0x38000) is smaller than image base (0x10000000);
specify --image-base".

Reported by:    ivy
PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
7f207b6443fe92c31a75b491272a0fad032d39ae Dimitry Andric 2026-04-25 17:06:55

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

Commit group #11: revert-pair-packages
packages: Register pkgconf

This should fix the creation of the new packages introduced by the
import of pkgconf into the base system.

Fixes:                  https://cgit.freebsd.org/src/commit/?id=b8352da33f34 ("pkgconf: import into the base system")
Sponsored by:           The FreeBSD Foundation
Differential revision:  https://reviews.freebsd.org/D56589
970cef9f652ec4d902b20cba6d99dce48458d7b6 Pierre Pronchery 2026-04-22 20:59:55

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'


Revert "packages: Register pkgconf"

This reverts commit 970cef9f652ec4d902b20cba6d99dce48458d7b6.

I made a mistake when rebasing 1342eb5a832fa10e689a29faab3acb6054e4778c;
I did not mean to re-introduce this one.
e0b74e7b17393988120d86e20e91bd38f03c93ad Pierre Pronchery 2026-04-25 19:23:23

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'

pkgconf: fix the build with GCC 14
Building pkgconf with GCC 14 currently fails with:
no option '-Wincompatible-pointer-types-discards-qualifiers'

This relaxes warnings for libpkgconf, pkgconf(1), and bomtool(1) until
the improvements are published upstream (see PR #444).

Co-authored-by: ngie
Approved by:    ngie
Sponsored by:   The FreeBSD Foundation
Event:          Wiesbaden Hackathon 202604
Differential Revision:  https://reviews.freebsd.org/D56591
1342eb5a832fa10e689a29faab3acb6054e4778c Pierre Pronchery 2026-04-22 23:42:43

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

apm: Only install rc script on i386
The apm(8) rc script only works on i386, but it's installed on all
platforms.  Only install it on i386, which avoids creating a useless
FreeBSD-apm package on other platforms.

While here, build the acpi package on i386.

MFC after:      2 weeks
Reviewed by:    imp
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D56629
b7daab8be1d4555f23a297e60e4128c01caabf82 Lexi Winter 2026-04-26 16:47:27

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

packages: make bhyve depend on acpi
bhyve(8) on amd64 needs iasl(8) to run, otherwise it fails with:

  /bin/sh: /usr/sbin/iasl: not found
  bhyve: BASL failed @ build_dsdt:484
      Failed to execute basl_compile(ctx, basl_fwrite_dsdt): Unknown
  error: 32512
  bhyve: BASL failed @ acpi_build:899
      Failed to execute build_dsdt(ctx): Unknown error: 32512
  Assertion failed: (error == 0), function bhyve_init_platform_late, file
  /home/pkgbuild/worktrees/main/usr.sbin/bhyve/amd64/bhyverun_machdep.c,
  line 394.

Register the "acpi" package which provides iasl(8) as a dependency for
bhyve on amd64.

Reviewed by:            markj (previous revision), ivy
Differential Revision:  https://reviews.freebsd.org/D56498
Sponsored by:           The FreeBSD Foundation
8a9c94cd59eed09477049635663a7113ab0582a5 Roman Bogorodskiy 2026-04-25 16:03:58

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

Internal organizational stuff

Remove usr/include/c++/v1/__fwd/get.h from ObsoleteFiles.inc.
b99d02027a0fe2e9f9a4aeb6fa3484847ddc5a57 Dimitry Andric 2026-02-10 14:34:48

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

Testing

tests/socket_afinet: Fix the bind_connected_port test
The test verifies that a socket can bind to a local address assigned by
connect(2) to a different socket.  It was however trying to bind to the
wrong address, and the check of the result was inverted, so this went
unnoticed.  It also needs to set SO_REUSEADDR for this to succeed.

Reported by:    glebius
MFC after:      1 week
d3d0466cae546254c50c80cf3e0c060bbbbba53c Mark Johnston 2026-04-20 15:07:20

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

tests/aio: Avoid skipping zvol tests
The underlying bugs which caused them to be flaky are now fixed.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=258766
9592b0870c83c1e70f162cf16a5f0645895d1d9b Mark Johnston 2026-04-20 16:16:28

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

tests/sys/net: Set require.kmods where appropriate
30b7621d46cc06053c0cb40bb691fbcecbfdab7f Mark Johnston 2026-04-21 14:30:36

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

tests/netinet6: fix missing require.progs
Approved by:  pouria
Sponsored by:   Netflix
Differential Revision:  https://reviews.freebsd.org/D56569
d8651498746e2b9f69abf664f540cbc9daa0aec1 Olivier Cochard 2026-04-22 07:35:56

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

ctl: require ctladm in addition to sg_opcodes
Each test case in opcodes.sh uses ctladm to create and remove the LUN it
exercises, but only sg_opcodes was listed in require.progs.
On systems where ctladm is not builded the tests would fail at setup instead of
being skipped cleanly.

Approved by:    asomers
Sponsored by:   Netflix
Differential Revision:  https://reviews.freebsd.org/D56568
19213b8eb33f8cb692abb1ee857778af347ddfeb Olivier Cochard 2026-04-22 14:14:04

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

ctladm tests: Only use allowed chars in IQN
_ isn't part of the allowed IQN format, but - is.

None functional change.

Reviewed by:            asomers, ngie
Approved by:            asomers (mentor)
MFC after:              1 week
Sponsored by:           ConnectWise
Differential Revision:  https://reviews.freebsd.org/D56557
51b65c6af2e19f1e944c67aa2b5252cd9dc9e2f7 Johan Söllvander 2026-04-22 14:19:42

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

jail: tests: cosmetic-ish improvements
The new version of incrementing `jid` is a little cleaner and harder to
mess up, and also fix a nwlin omission while we're here.

These comments were dropped on D51502; ngie takes a co-author credit
so that they're not blamed for the commit message, but I can't claim
that I tweaked their suggestions.

Co-authored-by: ngie
8d680381c89d8a8d1c0519a7eaa14ba41724b930 Kyle Evans 2026-04-23 02:59:21

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

tests/pf/nat: endpoint_independent: wait for tcpdump to start
This matches pflog.sh tests and fixes flaky tests found in CI[0].

[0] https://ci.freebsd.org/job/FreeBSD-main-amd64-test/28126/testReport/junit/sys.netpfil.pf/nat/endpoint_independent_exhaust/

PR:     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=289628
Reviewed by:    glebius
Approved by:    lwhsu (mentor)
Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Differential Revision:  https://reviews.freebsd.org/D56145
60000d94b4e85caf931230a8a7ae86888db00d01 Siva Mahadevan 2026-04-22 17:20:38

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

tests/ipfw: Make tests run more reliably in parallel
- Don't use /dev/null as the pidfile for inetd, that doesn't work
  properly.  Create a pidfile in the per-test scratch directory.
- Use atf_check to validate results from setup commands.

MFC after:      1 week
bea17411473bc58608badd425c223ee59d40a465 Mark Johnston 2026-04-26 00:33:45

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.

conf: remove trailing whitespace
This prevents unwanted change when saving files on IDEs (e.g. VSCode,
Zed)

Signed-off-by: Minsoo Choo <minsoo@minsoo.io>
Sponsored by:   The FreeBSD Foundation
Pull request:   https://github.com/freebsd/freebsd-src/pull/2152
a338f5a0e7b1b5c22595aacbac44582ed5e0fe86 Minsoo Choo 2026-04-20 03:08:01

debug: classified in 01-style by '[wW]hitespace'

CONTRIBUTING: fix typos in GitHub contribution guide
Signed-off-by: Roman <nnov.brody@gmail.com>
Pull-request: https://github.com/freebsd/freebsd-src/pull/2156
b6dd9d3593f3286d8225b3bd2ae9248dcf92864c Roman 2026-04-21 19:16:15

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

Contrib code

zfs: Fix the build on 32-bit platforms
Fixes:                https://cgit.freebsd.org/src/commit/?id=d8fbbd371ca1 ("zfs: merge openzfs/zfs@https://cgit.freebsd.org/src/commit/?id=1644e2ffd")
Reported by:    Jenkins
019a4878831cee46a8df79bd4b7c1ea93db0a7a8 Mark Johnston 2026-04-20 16:17:08

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

rtw89: fix mismerge
Due to FreeBSD-specific code it seems a code update was not applied
to the FreeBSD part during the v6.17 driver update.
Add the missing lines.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Fixes:          https://cgit.freebsd.org/src/commit/?id=b35044b38f74c
adb16cd389c3456cbd538b658c3c0af5145dde91 Bjoern A. Zeeb 2025-12-03 22:13:10

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

Add 'contrib/pkgconf/' from commit '6294b6ab217a2d5f1d2bc23a64505a228294c508'
git-subtree-dir: contrib/pkgconf
git-subtree-mainline: 45827f9ad2e32ec8e4cdde62cbf722a48fb1b396
git-subtree-split: 6294b6ab217a2d5f1d2bc23a64505a228294c508
a3cefe7f2b4df0f70ff92d4570ce18e517af43ec Pierre Pronchery 2026-04-22 13:13:42

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

contrib/tzdata: import tzdata 2026b
9b95cab0a2927dfe07dbe6dc0056a80d5c730414 Philip Paeps 2026-04-23 15:44:33

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

ncsw: Allow pmap_kextract to handle direct map addresses
Effort:               CHERI upstreaming
Reviewed by:    kib
Sponsored by:   AFRL, DARPA
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2068
bee1aae0b3f19df40452ee91096fa957104db12f John Baldwin 2026-04-23 17:05:55

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

Fix memory corruption bugs in BSM record parsing
fetch_newgroups_tok(3): clamp group count to AUDIT_MAX_GROUPS before the
loop to prevent a stack buffer overflow when a crafted record specifies
more than 16 groups.

fetch_execarg_tok(3), fetch_execenv_tok(3): add a bounds check at the
top of the string-walking loop to prevent an out-of-bounds read when the
previous string's nul byte is the last byte of the record buffer.

fetch_sock_unix_tok(3): clamp the memchr search length to the number of
bytes remaining in the buffer to prevent an out-of-bounds read on short
tokens. Also clamp slen to sizeof(path) to prevent a one-byte overflow
when no nul byte is found within the path data.

fetch_socket_tok: fix copy-paste error where the remote address was
written into l_addr instead of r_addr.
Previously reported by: @haginara

Define AU_UNIX_PATH_MAX as 108 (the largest sun_path across all
supported platforms) and use it in au_socketunix_t instead of the
hardcoded 104.

Update fetch_sock_unix_tok to derive its search bound from
sizeof(tok->tt.sockunix.path) so cross-platform records from Solaris and
Linux with paths up to 108 bytes parse correctly without truncation.

REF: https://github.com/openbsm/openbsm/pull/87

Reviewed by:    kevans, markj
Differential Revision:  https://reviews.freebsd.org/D56510
a46205a100b3201a60aaca26e4ac8097e1e136a7 Christian S.J. Peron 2026-04-23 20:26:50

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

tzcode: Update to 2026b
MFC after:    1 week
76f642310d55b1d3892c1b1626c427d12f97de3a Dag-Erling Smørgrav 2026-04-24 20:07:20

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

Merge llvm-project main llvmorg-21-init-19288-gface93e724f4
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvm-project main llvmorg-21-init-19288-gface93e724f4, the
last commit before the upstream release/21.x branch was created.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
700637cbb5e582861067a11aaca4d053546871d2 Dimitry Andric 2025-12-07 15:15:22

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

Adjust llvm-project main llvmorg-21-init-19288-gface93e724f4, part 1
This adjusts the llvmorg-21-init-19288-gface93e724f4 import: add partial
third-party/ top-level directory.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
3f16c588d1d8c46d7025f95003602807d9c1ddb9 Dimitry Andric 2025-12-07 19:01:02

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

Adjust llvm-project main llvmorg-21-init-19288-gface93e724f4, part 2
This adjusts the llvmorg-21-init-19288-gface93e724f4 import: add partial
libc/ top-level directory.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
8f6978f83cc64a2e644d9bdf380a6996d3acdc4b Dimitry Andric 2025-12-09 13:44:39

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

Adjust llvm-project main llvmorg-21-init-19288-gface93e724f4, part 3
This adjusts the llvmorg-21-init-19288-gface93e724f4 import: add more
items to the libc/ top-level directory.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
bb722a7d0f1642bff6487f943ad0427799a6e5bf Dimitry Andric 2025-12-09 14:04:07

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

Fixups after llvm-project main llvmorg-21-init-19288-gface93e724f4 merge
Fix various configuration fails, update generated headers, Makefiles, etc.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
770cf0a5f02dc8983a89c6568d741fbc25baa999 Dimitry Andric 2025-12-09 09:38:16

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

Merge llvm-project release/21.x llvmorg-21.1.7-0-gcd708029e0b2
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvm-project release/21.x llvmorg-21.1.7-0-gcd708029e0b2,
a.k.a. 21.1.7 release.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
e64bea71c21eb42e97aa615188ba91f6cce0d36d Dimitry Andric 2025-12-27 23:23:22

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

libcxx-compat: revert llvmorg-21-init-19251-g0c3a2faa8505:
  [libc++] Simplify the implementation of __libcpp_{,de}allocate (#147989)

  GCC 15 also supports `__buitin_operator_{new,delete}` now, so the
  `#else` cases are dead code. This patch inlines the calls to the wrapper
  functions and simplifies some surrounding code.

This is part of making libc++ 21 build with GCC 14.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
ad1f6ee5d7230a63c216cd9ad3b89d5b7d1c4a3a Dimitry Andric 2026-01-02 18:40:05

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

libcxx-compat: revert llvmorg-21-init-17684-gae9990ed9651:
  [libc++] Remove dead code from <type_traits> (#143854)

  Since we've upgraded to GCC 15 now, we can remove a bunch of dead code
  from `<type_traits>`.

This is part of making libc++ 21 build with GCC 14.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
f7bcd8d8c9336b97569265e5ad36b73b30357beb Dimitry Andric 2026-01-02 20:25:42

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

llvm-libc-macros: work around gcc defining LDBL_MANT_DIG as 53 on i386
Otherwise, gcc will not be able to compile parts of libc++ 21 in -m32
mode, resulting in errors similar to:

    In file included from /usr/src/contrib/llvm-project/libc/shared/str_to_float.h:13,
                     from /usr/src/contrib/llvm-project/libcxx/src/include/from_chars_floating_point.h:14,
                     from /usr/src/contrib/llvm-project/libcxx/src/charconv.cpp:12:
    /usr/src/contrib/llvm-project/libc/src/__support/str_to_float.h: In function 'void __llvm_libc::internal::set_implicit_bit(__llvm_libc::fputil::FPBits<T>&) [with T = long double]':
    /usr/src/contrib/llvm-project/libc/src/__support/str_to_float.h:77:10: error: 'struct __llvm_libc::fputil::FPBits<long double>' has no member named 'set_implicit_bit'
       77 |   result.set_implicit_bit(result.get_biased_exponent() != 0);
          |          ^~~~~~~~~~~~~~~~

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
718e5874be0306ea302fd2b8e1d97fc79682abbe Dimitry Andric 2026-01-02 20:32:05

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

Merge commit 598f21e9fcf7 from llvm git (by zhijian lin):
  [PowerPC] need to set CallFrameSize for the pass  PPCReduceCRLogicals when insert a new block (#151017)

  In the [ [CodeGen] Store call frame size in
  MachineBasicBlock](https://reviews.llvm.org/D156113), it mentions When a
  basic block has been split in the middle of a call sequence. the call
  frame size may not be zero, it need to set the setCallFrameSize for the
  new MachineBasicBlock. but in the function `splitMBB(BlockSplitInfo
  &BSI)` in the llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp , it do
  not setCallFrameSzie for the new MachineBasicBlock `NewMBB`, we will
  setCallFrameSzie in the patch.

  the patch fix the crash mention in
  https://github.com/llvm/llvm-project/pull/144594#issuecomment-2993736654

This fixes "error in backend: Found 1 machine code errors" while
crypto/openssh/packet.c for PowerPC64.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
48c35ae6ebfc6d9a2259979d915fd3bc5d6c01db Dimitry Andric 2026-01-10 14:45:16

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

Merge llvm-project release/21.x llvmorg-21.1.8-0-g2078da43e25a
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvm-project release/21.x llvmorg-21.1.8-0-g2078da43e25a,
a.k.a. 21.1.8 release.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
7351d001fc7f5a77a18a102e12a3ca2cbfd6988c Dimitry Andric 2026-01-10 15:55:44

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

Commit group #12: libcxx-compat
libcxx-compat: revert llvmorg-21-init-9130-g9e3982d9ae81:

  [libc++] Replace __libcpp_{ctz, clz} with __builtin_{ctzg, clzg} (#133920)

  `__libcpp_{ctz, clz}` were previously used as fallbacks for `__builtin_{ctzg, clzg}` to ensure compatibility with older compilers (Clang 18 and earlier), as `__builtin_{ctzg, clzg}` became available in Clang 19. Now that support for Clang 18 has been officially dropped in #130142, we can now safely  replace all instances of `__libcpp_{ctz, clz}` with `__count{l,r}_zero` (which internally call `__builtin_{ctzg, clzg}` and eliminate the fallback logic.

  Closes #131179.

This is part of making libc++ 21 build with clang 18.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
821fc643b3cad922e5438760eed9cad0d6d9b3b0 Dimitry Andric 2026-01-04 19:43:38

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


libcxx-compat: revert llvmorg-21-init-15984-g650b451d0065:

  [libc++] Simplify the implementation of pointer_traits a bit (#142260)

This is part of making libc++ 21 build with clang 18.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
bb6713d38cc0d988378394f599d81d3a83dbaf03 Dimitry Andric 2026-01-04 19:43:58

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


libcxx-compat: revert llvmorg-19-init-5639-ga10aa4485e83:

  [libc++] Simplify the implementation of remove_reference (#85207)

  GCC 13 introduced the type trait `__remove_reference`. We can simplify
  the implementation of `remove_reference` a bit by using it.

This is part of making libc++ 21 build with clang 18.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
a114ece3e6158f49088b0704b4afef07040d83f3 Dimitry Andric 2026-01-05 19:54:32

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


libcxx-compat: revert llvmorg-21-init-10154-ge43e8ec7afbd:

  [libc++] Remove dead implementation of is_nothrow_convertible and merge the remaining code into is_convertible.h (#137717)

  We can use the `__is_nothrow_convertible` builtin unconditionally now,
  which makes the implementation very simple, so there isn't much of a
  need to keep a separate header around.

This is part of making libc++ 21 build with clang 18.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
035396ceda495f456ca570fb715b04a7fc3b25c2 Dimitry Andric 2026-01-05 19:55:12

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


libcxx-compat: revert llvmorg-21-init-8400-g703cfe745b96:

  [libc++] Replace __libcpp_popcount by __builtin_popcountg (#133937)

  `__libcpp_popcount` was previously used as a fallback for `__builtin_popcountg` to ensure compatibility with older compilers (Clang 18 and earlier), as `__builtin_popcountg` became available in Clang 19. Now that support for Clang 18 has been officially dropped in #130142, we can now safely  replace all instances of `__libcpp_popcount` with `__builtin_popcountg` and eliminate the fallback logic.

This is part of making libc++ 21 build with clang 18.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
5465db314a03c11b15e00f22be1609027dfc152c Dimitry Andric 2026-01-05 20:14:13

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


libcxx-compat: fix llvmorg-21-init-18351-gfcc09b6f0267:

  [libc++] Fix std::make_exception_ptr interaction with ObjC (#135386)

  Clang treats throwing/catching ObjC types differently from C++ types,
  and omitting the `throw` in `std::make_exception_ptr` breaks ObjC
  invariants about how types are thrown/caught.

  Fixes #135089

  Co-authored-by: Louis Dionne <ldionne.2@gmail.com>

Only use lambdas when in !defined(_LIBCPP_CXX03_LANG), so this will
compile with clang 18 and lower, in C++03 mode and earlier.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
987ac31018cba9f1763ad3acfb68b933f58a4c52 Dimitry Andric 2026-01-05 20:31:45

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


libcxx-compat: fix llvmorg-21-init-12415-g3a86e0bd29f3:

  [libc++] Optimize std::getline (#121346)

  ```
  -----------------------------------------------
  Benchmark                   old             new
  -----------------------------------------------
  BM_getline_string        318 ns         32.4 ns
  ```

Move the __bump_stream() lamda in <istream> to a separate function, so
this will compile with clang 18 and lower, in C++03 mode and earlier.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
17f1a5e638f845e171ab4e3db2a07bf8c6ac3388 Dimitry Andric 2026-01-05 21:07:58

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

Merge commit 924f773f5e26 from llvm git (by Younan Zhang):
  [Clang] Don't diagnose missing members when looking at the instantiating class template (#180725)

  The perfect matching patch revealed another bug where recursive
  instantiations could lead to the escape of SFINAE errors, as shown in
  the issue.

  Fixes https://github.com/llvm/llvm-project/issues/179118

This fixes compile errors in the www/qt5-webengine port.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
3fd796204fe6aa2e8a2b70bb9ea95f7497247fa3 Dimitry Andric 2026-02-10 19:54:38

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

Merge commit d803c61aca0d from llvm git (by Corentin Jabot):
  [Clang] Fix a regression introduced by #147046 (#150893)

  Static functions have an implicit object argument during deduction.

This fixes an assertion while compiling the devel/corrade port.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
1dfe63e4f75fa2a8c94aaf4aefaf48d164bc90db Dimitry Andric 2026-02-14 20:42:18

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

Fixup mismerge in __cxx03/__type_traits/add_[lr]value_reference.h.
0f15398d123a9cf02711efddf5e4040f0066c6de Dimitry Andric 2026-02-14 23:19:40

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

Merge commit 787ba2426148 from llvm git (by Matheus Izvekov):
  [clang] create local instantiation scope for matching template template parameters (#183219)

  This fixes a bug where a partial substitution from the enclosing scope
  is used to prepopulate an unrelated template argument deduction.

  Fixes #181166

This fixes an expected error when building the devel/catch port.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
5ac874516b27474ab5b3d195544c72fb04b4b86e Dimitry Andric 2026-02-25 18:06:51

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

Merge commit c1d26c3c2510 from llvm git (by Nikolas Klauser):
  [libc++] Fix iostream size ABI break (#185839)

  In #124103 we changed the size of various iostream objects, which turns
  out to be ABI breaking when compiling non-PIE code.

  This ABI break is safe to fix, since for any programs allocating more
  memory for the iostream objects, the remaining bytes are simply unused
  now.

  Fixes #185724

This fixes the ABI break that causes programs that use the standard
streams to terminate in various interesting ways, usually by throwing an
unexpected std::bad_cast exception.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
4fc1fdd206c3db60ca521e3966f31044c7711398 Dimitry Andric 2026-03-12 13:24:01

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

Merge commit b0d2b57f7e47 from llvm git (by Phoebe Wang):
  [Headers][X86] Remove more duplicated typedefs (#153820)

  They are defined in mmintrin.h

This fixes a -Werror warning in openzfs, which compiles for C99, and C99
does not allow for typedef redefinitions.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
20450c2e792084f06974cff9d2338e2d0406883f Dimitry Andric 2026-03-23 14:58:06

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

Add a comment to llvm's OptParser.td, so dependent files get rebuilt.
3cbf898fb49fe087cdcafe2745cca3f7a20f4388 Dimitry Andric 2026-04-23 12:39:31

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

netbsd-tests: Fix the mmap_truncate_signal test
Add a volatile qualifier in the loop which triggers SIGBUS, as otherwise
the compiler is smart enough to elide it, replacing it with a check for
page != 0.

MFC after:      1 week
e3b8e55e710bf355f371d798aa943281007a7ea9 Mark Johnston 2026-04-26 01:53:45

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

Reverted commits

Commit & revert pair: Import tzdata 2026b
Import tzdata 2026b
5417f0bbde91c148b3c3982eb2ab23a675b5e8d1 Philip Paeps 2026-04-23 14:59:30

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'


Revert "Import tzdata 2026b"

This reverts commit 5417f0bbde91c148b3c3982eb2ab23a675b5e8d1.
5cfcccf767304b874c98b8c991ed3db2221407ec Philip Paeps 2026-04-23 15:26:56

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'

Commit & revert pair: speaker(4): move static data to bss
speaker(4): move static data to bss

Signed-off-by: Raphael Poss <knz@thaumogen.net>
Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/1922
690ef95b3354ac7a80aa469fa7a8f15f07962f83 Raphael 'kena' Poss 2026-01-11 21:07:35

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'


Revert "speaker(4): move static data to bss"

This reverts commit 690ef95b3354ac7a80aa469fa7a8f15f07962f83.

The commit message was wrong.
45a12d8a2656bdf38e95f8e481c72aea0db6997f Warner Losh 2026-04-24 22:04:14

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'

Commit & revert pair: nda: Filter non-storage nvme drives
nda: Filter non-storage nvme drives

Non-stroage drives have namespaces, but no storage attached. These
drives have a different interface type than storage drives, so ignore
them for the nvme_sim, which just handles storage.

Sponsored by:           Netflix
Differential Revision:  https://reviews.freebsd.org/D56461
b40205855e100a4bd95f89e97c15d268ef5b3a35 Warner Losh 2026-04-24 18:31:38

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'


Revert "nda: Filter non-storage nvme drives"

This reverts commit b40205855e100a4bd95f89e97c15d268ef5b3a35. There's an
aparent path lifetime issue in it that needs to be investigated.

Sponsored by:           Netflix
1f72d525fc7d26c1c605b50519b9da1c78fec437 Warner Losh 2026-04-26 03:16:05

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'

Commit & revert pair: imgact_elf: Fix uninitialized variable use in note_procstat_auxv
imgact_elf: Fix uninitialized variable use in note_procstat_auxv

Found building with latest clang

MFC after:      3 days
753a166bdeb3aeba02fd9678e7360f0929007368 Alex Richardson 2025-09-15 06:27:12

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'


Revert "imgact_elf: Fix uninitialized variable use in note_procstat_auxv"

This reverts commit 753a166bdeb3aeba02fd9678e7360f0929007368. It appears
to be unnecessary now.
e5e636cf5eb666a733592bd0ff85052904eb9287 Dimitry Andric 2026-04-25 14:06:34

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'

Commit group #13: Revert "libcxx-compat
Revert "libcxx-compat: update libcxx.imp for headers that were reintroduced by reverts"

This reverts commit caf0ccccc304e3e7938c9722f1deb0a362fd70d5, in
preparation for merging llvm 21.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
5945da0bc9ac42f531b1079a246eb8ce4f0d63db Dimitry Andric 2025-12-06 20:24:14

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'


Revert "libcxx-compat: install headers that were reintroduced by reverts"

This reverts commit 8ad38d5eb3985ef778a7d36093878b0b373ccedf, in
preparation for merging llvm 21.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
d6d48190ec6a62a20ef603011f215015c1d999fb Dimitry Andric 2025-12-06 20:24:14

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'


Revert "libcxx-compat: don't remove headers that were reintroduced by reverts"

This reverts commit 2b3703a4f4519e202c3bdf12e7e13d9b5fdbc3f3, in
preparation for merging llvm 21.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
3f6219840dbea7712554982a3c9f852c1c9664f4 Dimitry Andric 2025-12-06 20:24:14

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'


Revert "libcxx-compat: revert llvmorg-19-init-4003-g55357160d0e1:"

This reverts commit fd17362f6225085e60eabed8af7421838100b457, in
preparation for merging llvm 21.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
a24406d2e0e8eee8db03ed8d1ae7fb482cf912ab Dimitry Andric 2025-12-06 20:24:15

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'


Revert "libcxx-compat: revert llvmorg-19-init-4504-g937a5396cf3e:"

This reverts commit a7455c47801ea1e4c4eed10cab2072375f6f92a2, in
preparation for merging llvm 21, in preparation for merging llvm 21.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
3ca6facafc4c96fa9d6027b6f3b50b7c3e3a5dbf Dimitry Andric 2025-12-06 20:24:15

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'


Revert "libcxx-compat: revert llvmorg-19-init-5639-ga10aa4485e83:"

This reverts commit 267fa9ab814c23ca97b8b7e1740f4da51485ac72, in
preparation for merging llvm 21.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
3ac42330b1da72d68cc6d7c3f65e24a882ccfd47 Dimitry Andric 2025-12-06 20:24:15

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'


Revert "libcxx-compat: revert llvmorg-19-init-8667-g472b612ccbed:"

This reverts commit f7570f1eb0dc056dfce9d7500157538c670edaf6, in
preparation for merging llvm 21.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
a843ea3f246f3f137722db556aa07710e6a84b71 Dimitry Andric 2025-12-06 20:24:15

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'


Revert "libcxx-compat: revert llvmorg-19-init-17473-g69fecaa1a455:"

This reverts commit cab3680acf8e6ea40c686d4f26db4429e26a5331, in
preparation for merging llvm 21.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
501871ebf9d725ab1c6fb2c4da9bac77f60b37a7 Dimitry Andric 2025-12-06 20:24:15

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'


Revert "libcxx-compat: revert llvmorg-19-init-17727-g0eebb48fcfbc:"

This reverts commit f12b6acbe1ea1c425c0e21d80097115e4ad33017, in
preparation for merging llvm 21.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
1f9c1cd08dba0c46c1e1cea43b3bbea23af4fbaa Dimitry Andric 2025-12-06 20:24:15

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'


Revert "libcxx-compat: revert llvmorg-19-init-17728-g30cc12cd818d:"

This reverts commit 198b947ebc6834eade6acc52c5441a38693b8822, in
preparation for merging llvm 21.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
f8152c67d4272e155460e4b3057b41924df8af1c Dimitry Andric 2025-12-06 20:24:15

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'


Revert "libcxx-compat: revert llvmorg-19-init-17853-g578c6191eff7:"

This reverts commit 2facc097b9b28a81b925c924f27f09b40f29fd4d, in
preparation for merging llvm 21.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
3b0a0e64bd9f0a65f0dd62dc157597e6d9ecc933 Dimitry Andric 2025-12-06 20:24:15

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'


Revert "libcxx-compat: revert llvmorg-19-init-18062-g4dfa75c663e5:"

This reverts commit 6933315cf57fc3f505431bff7a0075df471d7453, in
preparation for merging llvm 21.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
f3b0cac70b80116e691ad1e6daa5110186233206 Dimitry Andric 2025-12-06 20:24:16

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'


Revert "libcxx-compat: revert llvmorg-19-init-18063-g561246e90282:"

This reverts commit 1d99ada3215dbc28665fe051f9ccf028a2a02ce8, in
preparation for merging llvm 21.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
6243d755fb82e62d2a3a2e031801e0443150454a Dimitry Andric 2025-12-06 20:24:16

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'

Commit & revert pair: loader.efi(8): Document LoaderEnv and NextLoaderEnv EFI variables
loader.efi(8): Document LoaderEnv and NextLoaderEnv EFI variables

Describe how the LoaderEnv and NextLoaderEnv variables can be used.

PR:                     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293054
Reviewed by:            imp
Sponsored by:           Wiesbaden Hackathon 202604
Differential Revision:  https://reviews.freebsd.org/D56633
cf7d4b04e9ae890f2a0f5811234e926f75a0c237 Bill Blake 2026-04-25 14:56:24

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'


Revert "loader.efi(8): Document LoaderEnv and NextLoaderEnv EFI variables"

This reverts commit cf7d4b04e9ae890f2a0f5811234e926f75a0c237.

I attributed the wrong author of the patch.
ed82c433efee1080fc5587325754afd6fcabd5d6 Paarth Shirsat 2026-04-25 15:06:39

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'

Unclassified commits

Not classified automatically, and waiting for manual attention.

-- no commits in this category this week --

Technical notes

Dates:

Automatic grouping:

Automatic categories:

Source code:


Generated with commits-periodical 0.20 at 2026-05-11 20:37:52+00:00.

This work is supported by Tarsnap Backup Inc.

Alternate version: 2026-04-20 (release)