FreeBSD git weekly: 2026-04-01 to 2026-07-31

Introduction

This is a display of mostly-automatically-classified git commits from 2026-04-01 to 2026-07-31.

This report is still in progress.

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:

(14) Highlighted commits (these are copies, not in stats)
23 2.0% Userland programs
88 7.6% Documentation
224 19.4% Hardware support
124 10.7% Networking
92 8.0% System administration
43 3.7% Libraries
15 1.3% Filesystems
245 21.2% Kernel
90 7.8% Build system
7 0.6% Internal organizational stuff
43 3.7% Testing
38 3.3% Style, typos, and comments
80 6.9% Contrib code
45 3.9% Reverted commits
0 0.0% Unclassified commits
1157 100% total
Technical notes about this page

debug: info about the automatic classification

num % num changed stage
45 3.9% 0 00-reverts
42 3.6% 0 01-style
152 13.1% 0 02-filenames_wildcards
46 4.0% 0 02b-filenames_wildcards2
491 42.4% 0 03-filenames_plain1
312 27.0% 0 04-filenames_plain2
28 2.4% 0 05-summary-prefix
40 3.5% 0 Manually-classified commits
1 0.1% 0 Unclassified commits

debug: more stats

num % stage
0 0.0% Misclassified commits
1116 96.5% Classified commits, no corrections

debug: groups

24 2.1% num in revert
22 1.9% num in fixes
251 21.7% num in consecutive
297 25.7% 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.

RELNOTES: Document WITHOUT_BZIP2* removal
2d843b7c9758ad767216c1ae88c49157314857a7 Lexi Winter 2026-04-03 13:53:43

debug: classified in 03-filenames_plain1 by 'RELNOTES'

RELNOTES: Make an entry for supporting an NFSv4 root fs
dc752c26b7e5013557dbc141644e4add1015351d Rick Macklem 2026-04-07 19:30:40

debug: classified in 03-filenames_plain1 by 'RELNOTES'

MFV: zstd 1.5.7.
MFC after:    2 weeks
Relnotes:       yes
c0d9a07101a1e72769ee0619a583f63a078fb391 Xin LI 2026-04-08 21:22:45

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

if_geneve: Add Support for Geneve (RFC8926)
geneve creates a generic network virtualization tunnel interface
for Tentant Systems over an L3 (IP/UDP) underlay network that provides
a Layer 2 (ethernet) or Layer 3 service using the geneve protocol.
This implementation is based on RFC8926.

Reviewed by:    glebius, adrian
Discussed with: zlei, kp
Relnotes:       yes
Differential Revision: https://reviews.freebsd.org/D54172
e44d2e941e8ebd74e6a1b1fdbed83fe86671cbc6 Pouria Mousavizadeh Tehrani 2026-04-11 14:12:01

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

release: remove Oracle Cloud Infrastructure build targets
Oracle's previous support is no longer available to the project.
Repeated attempts to find a sponsor within Oracle's cloud business
have not been successful.

The last published official images are from 15.0-RELEASE.

https://marketplace.oracle.com/app/freebsd-release

Relnotes:       yes
Sponsored by:   SkunkWerks, GmbH
Differential Revision:  https://reviews.freebsd.org/D56360
MFC after:      3 days
3b108068121ba30fb3dbed569d6757da2ab529a4 Dave Cottlehuber 2026-04-12 22:29:44

debug: classified in 02-filenames_wildcards by '['.*Makefile', 'release/.*']'

rc.d/NETWORKING: remove the NETWORK alias
NETWORKING is the documented placeholder, while
/etc/rc.d/NETWORKING still provides the legacy alias
NETWORK.

The NETWORKING script was originally introduced to avoid
conflicts with NetBSD's lowercase network script on
case-insensitive file systems.  The NETWORK alias was
retained for compatibility with older scripts.

Following the discussion in PR 293652, remove the legacy
NETWORK alias from 16-CURRENT.  Keeping both names adds
more confusion than value now that NETWORKING is the
documented placeholder and current base system and ports
tree uses are already clean.

Add an UPDATING entry to note that local RC scripts using
REQUIRE: NETWORK should be migrated to REQUIRE: NETWORKING.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293652
Reviewed by:    michaelo, jlduran
Relnotes:       yes
Differential Revision:  https://reviews.freebsd.org/D56300
47a9af4b39bf174efed7f6d43644d4b0bc0c9886 Aotian Cao 2026-04-08 07:58:00

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

nd6: Add support for route information (RFC 4191)
Implement RFC 4191 by handling received Router Adverisement (RA)
packets with route information option.
For default routes, use the route information's lifetime and
preference to overwrite the RA's lifetime/preference.
Also install and update more-specific route prefixes with the
option's lifetime and expire them when their lifetime elapses.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=263982
Reviewed by:    markj
Tested by:      Marek Zarychta <zarychtam@plan-b.pwste.edu.pl>
Relnotes:       yes
Differential Revision: https://reviews.freebsd.org/D55449
c8d25804f56ae7c35eaa492b6110807a2675d41a Pouria Mousavizadeh Tehrani 2026-04-16 14:23:49

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

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/'

groups.7: New manual page of standard group names
Import groups(7) from NetBSD, with tweaks for our system. The group
list is sorted by GID. All the group names from /usr/src/etc/group
are described, except "uucp". The FILES section was added on top of
the original manual page.

PR:                     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=264966
Relnotes:               yes
MFC after:              3 days
Obtained from:          NetBSD
Reviewed by:            des, ziaee
Differential Revision:  https://reviews.freebsd.org/D54114
e09104dfb76a36b65a64bd315bd1520941c4beed Artem Bunichev 2026-04-28 13:48:52

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

RELNOTES: Add an entry for recent improvements to multicast routing
Reviewed by:  kevans
Sponsored by;   Stormshield
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D56710
6c09b7608905af2eaff4b5dfa6cbbd42ce286db6 Mark Johnston 2026-04-29 14:22:41

debug: classified in 03-filenames_plain1 by 'RELNOTES'

ports.7/FILES: Expand and refactor into 3 tables
Add make.conf, CHANGES, CONTRIBUTING.Md, UPDATING, and Tools/scripts.
Refactor the FILES section of the ports reference manual into a bigger
table with three sections separated by root directory. Remove preceeding
article from all but "the big Kahuna", and root dirs where reasonable.

MFC after:              3 days
Relnotes:               yes
Reported by:            adamw, arrowd, linimon
Differential Revision:  https://reviews.freebsd.org/D55441
28deec9b7e2b08b00160eb39de84ade6f27eb125 Alexander Ziaee 2026-05-03 17:25:41

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

bsdinstall: do pkgbase installations with the "script" command
"bsdinstall script" will now do a pkgbase installation by default.  The
system components to install can be specified in the COMPONENTS
variable, and have the same names as those used in the interactive
installer.  bsdinstall will still do a legacy distset installation if
DISTRIBUTIONS is defined in the installerconfig file.

MFC:            1 week
PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=290375
Sponsored by:   ConnectWise
Reviewed by:    ziaee, ivy, jduran
Differential Revision: https://reviews.freebsd.org/D56717
dc14ae4217a0babb1240f813b642edc2d7b955a6 Alan Somers 2026-04-28 17:27:17

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

EC2: Don't enable firstboot_pkgs in small flavour
The EC2 "base" flavour installs the devel/py-awscli package at boot
time by default; we don't do this in the "small" flavour, so the
default behaviour was to update the FreeBSD-ports repository and
then do nothing with it.

Turn off firstboot_pkgs by default; if someone is using the "small"
flavour of AMIs and wants to install packages at instance launch
time, they simply need to add 'firstboot_pkgs_enable="YES"' to
/etc/rc.conf (which they must already be editing via user-data, in
order to provide the list of packages they want installed).

Sponsored by:   Amazon
MFC after:      3 days
MFC to:         stable/15
Relnotes:       EC2 "small" images now have firstboot_pkgs_enable="NO".
61df4be487cfbfd27b0959e1eb66ef0d8f84562f Colin Percival 2026-05-16 18:58:13

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

Userland programs

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

truss: add support for decoding Netlink messages
Netlink usage is growing in FreeBSD. This patch adds support to
`truss(1)` to decode Netlink headers in sendmsg/recvmsg calls, making
debugging network configuration tools significantly easier.

Changes:

libsysdecode: Add `sysdecode_netlink()` to parse struct `nlmsghdr`.
truss: Detect `AF_NETLINK` sockets and decode the message payload.

Reviewed by:    kp
Signed-off-by:  Ishan Agrawal <iagrawal9990@gmail.com>
Github PR:      https://github.com/freebsd/freebsd-src/pull/1950
8ef0093f297af7c917037f058af9813105e67662 Ishan Agrawal 2026-01-06 12:05:59

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

find: add -xattr and -xttrname
We use -xattr in our openrsync tests for convenience, and it seems like
a good addition to FreeBSD.  -xattr and -xattrname will both consult all
available namespaces by default, but -xattrname allows filtering by
namespace using a "user:" or "system:" prefix.

Inspired by:    https://github.com/apple-oss-distributions/shell_cmds
Reviewed by:    kib, rmacklem
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D55286
22fba3a9d64140d80a9e2093cfc02c9c503b2e19 Kyle Evans 2026-04-09 02:41:12

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

sh: Increase default history size to POSIX mandated minimum of 128
The default history size in bin/sh is currently 100 however POSIX.1-2024
mandates that a default greater than or equal to 128 shall be used,
therefore this increases the default history size in /bin/sh to 128.

POSIX standards reference:
https://pubs.opengroup.org/onlinepubs/9799919799/utilities/sh.html#tag_20_110_08

MFC after:      3 days
Reviewed by:    emaste, jilles, jlduran, ziaee
Signed-off-by:  Kristofer Peterson <kris@tranception.com>
Closes:         https://github.com/freebsd/freebsd-src/pull/2093
81b2055c49dec8884d7bb23503f1dfeac37ac95d Kristofer Peterson 2026-03-24 14:56:48

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

du: Complete libxo transition
* Use xo_warn() / xo_err() instead of warn() / err().

* Add a test case for the POSIX-mandated stdout error check.

* While here, don't assume the size of off_t, address some style issues,
  and broaden the use of bool instead of int.

* Reorder SEE ALSO section.

MFC after:      1 week
Sponsored by:   Klara, Inc.
Reviewed by:    allanjude
Differential Revision:  https://reviews.freebsd.org/D56402
6c18dd3eb42b50fddb6d9605ddde1362ae9c504a Dag-Erling Smørgrav 2026-04-15 14:12:30

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

mkimg: Fix parsing of filenames containing colons
When using PART_KIND_FILE (-p type:=filename), mkimg uses a colon
to separate an optional offset (e.g., filename:offset).

strsep() was being used to split the string at the first colon.
This caused failures when the filename itself contained a colon
(e.g., "th:is").

This patch uses stat() to check if the entire string exists as a
file. If so, use it directly without splitting.

If the full string is not a valid file, fall back to splitting
at the right-most colon using strrchr().

Uses errc() to fail and exit immediately when an existing directory
is input instead of a file in PART_KIND_FILE mode.

PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=257960
Signed-off-by: Aaditya Singh <aadityavksingh@gmail.com>
Reviewed by: jlduran
Pull Request: https://github.com/freebsd/freebsd-src/pull/2041
50c1240ebfaf920ad12f05eb16d00f8b5b9d72e0 Aaditya Singh 2026-02-21 18:13:54

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

yacc: Fix SYSTEM_NAME
This usually gets bumped by re@ when the version number changes in
sys/conf/newvers.sh, but apparently we forgot for the past two major
versions.
6a3e2223ff35781fb837862f7cf7aaaa991968d9 Colin Percival 2026-04-16 20:33:58

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

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/'

bin/sh: make it possible to use as interactive init
If the /sbin/init binary is broken somehow, the way out is to set the
loader environment variable init_path to something else.  The most
natural choice would be either /bin/sh or /rescue/sh.  Unfortunately,
this does not work because the init process starts withoud stdin/out
descriptors.

Make it nicer to users by teaching /bin/sh startup code to open standard
descriptors on /dev/console if the shell is run as init.

Reviewed by:    imp, jilles, zlei
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56536
d7338bb4914d120e5719d3216b23a509c49ed3be Konstantin Belousov 2026-04-20 18:03:39

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

Commit group #1: stat: fix use of devname(3)
stat: fix use of devname(3)

Besides being a little hard to parse through visually, this had its own
bug of inspecting st->st_mode to determine what to pass to devname(3),
which is only correct for st_rdev.

For st_dev, you're likely to be looking at files or directories and
attempting to assess what device they're located on, so the mode is
meaningless- we just have to assume that our filesystems are on
character devices and attempt to resolve st_dev as such.

Reviewed by:    des, kib (previous version)
Differential Revision:  https://reviews.freebsd.org/D56565
4d4acdbfc22c84081037f31cff4fb03d18373036 Kyle Evans 2026-05-01 03:00:26

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


stat: The devname test case requires root

Fixes:          https://cgit.freebsd.org/src/commit/?id=4d4acdbfc22c ("stat: fix use of devname(3)")
72b1aae09bf0bcc01c76df757699e27ad7cf7ecc Dag-Erling Smørgrav 2026-05-02 17:28:50

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

debug: moved to userland because 'Need to be grouped with 4d4acdbfc22c84081037f31cff4fb03d18373036'

stat: Drop unused code and conditionals
We haven't pulled from upstream in over 15 years, and the codebases
have diverged so far it is unlikely that we ever will.

* Drop NetBSD and OpenBSD version control information.

* Drop support for building on non-BSD / non-POSIX platforms.

* Fix a few minor style issues.

Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D56771
0095c1425633cb6a40fd86fc870ac5945363df2f Dag-Erling Smørgrav 2026-05-03 15:35:06

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

lockf: Avoid spinning when operating on an fd
When operating on a file descriptor, acquire_lock() would ignore the
flags argument and always operate in non-blocking mode, resulting in
unnecessary busy-looping.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294832
MFC after:      1 week
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D56722
d90513ea85693da0ca5955173609f4e81e38ae16 Christian Ullrich 2026-05-03 15:35:10

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

mdo: Avoid relying on header pollution
The uses of PAGE_SIZE and roundup2() require param.h.

MFC after:      1 week
35a36d4a54df244e93bf280345426a600e394a90 Mark Johnston 2026-05-12 17:46:17

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

find: Include signal.h to get a definition for sig_atomic_t
MFC after:    1 week
5615db1007bdc935ac6592a66721320ccd8335ce Mark Johnston 2026-05-12 17:46:29

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

Documentation

Man pages, release notes, etc.

Commit group #2: procctl.2: Align list indentation
procctl.2: Align list indentation

Remove 81 lines of whitespace at default manual rendering width.

MFC after: 3 days
db9bbe131c92f55e6cf03657dc030c9eea93a9fb Alexander Ziaee 2026-04-02 03:07:28

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


982b3c5565ff72a584833b5dfe5e6f732fd70914 Konstantin Belousov 2026-04-04 06:30:30

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

posix_spawn.3: fix formatting of xref
Sponsored by: The FreeBSD Foundation
MFC after:      3 days
59e9a4c05a81a25aaf355cb18c24835abad96ff2 Konstantin Belousov 2026-04-02 07:42:16

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

src.conf.5: Regen after MK_CROSS_COMPILER=no change
8f34b6b84c958f24a2f717b13876d57cdac07fd9 Ed Maste 2026-04-01 19:19:31

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

mq_open(2): document sysctl limit EINVAL and ENFILE conditions
Document two missing error conditions for mq_open(2):

- EINVAL: returned when mq_maxmsg exceeds kern.mqueue.maxmsg or
  mq_msgsize exceeds kern.mqueue.maxmsgsize.
- ENFILE: add kern.mqueue.maxmq sysctl name to the existing entry.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=243209
Reviewed by:    mhorne
MFC after:      1 week
Signed-off-by:  Kit Dallege <xaum.io@gmail.com>
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2098
3e9f4fd6fc50300d052d5619d82a14d3488483d5 Kit Dallege 2026-04-02 17:37:49

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

posix_spawn_file_action_addopen.3: ignoring close failure is now approved
Reviewed by:  dim
Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Differential revision:  https://reviews.freebsd.org/D56222
b7b485efac8c1b601b9c0ada39921bad0e342970 Konstantin Belousov 2026-04-02 08:06:52

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

RELNOTES: Document WITHOUT_BZIP2* removal
2d843b7c9758ad767216c1ae88c49157314857a7 Lexi Winter 2026-04-03 13:53:43

debug: classified in 03-filenames_plain1 by 'RELNOTES'

fmax.3: Add caveat for going beyond C std requirements
libm's fmax and fmin family of functions treat +0.0 as greater than
-0.0.  This is not required by the C standard, so the user may not see
this behaviour due to compiler optimization.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294214
Reviewed by:    fuz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56230
7764e9ca28a9702aed4ba7391e055ec2fcf35c41 Ed Maste 2026-04-02 21:59:42

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

RELNOTES: Make an entry for supporting an NFSv4 root fs
dc752c26b7e5013557dbc141644e4add1015351d Rick Macklem 2026-04-07 19:30:40

debug: classified in 03-filenames_plain1 by 'RELNOTES'

RELNOTES: Update the entry for commit 8b9775912cbc
cc2f8f3786d6e0ef01e2b2feadb804c1f86716da Rick Macklem 2026-04-07 20:04:36

debug: classified in 03-filenames_plain1 by 'RELNOTES'

lockf.1: Organize and provide error numbers
Add error numbers to the exit codes so that readers can decode them
without having to use a separate utility. Organize exits by error code.
Mark up the error constants with the error constant macro, even though
this is really not very helpful because people will search for the error
code, the macro is explicitly for the constants and not the codes.

While where, align and alphabetize the options list as well, fix
misaligned padding in an example, and a one-sentance-per-line error.

MFC after:              3 days
Reported by:            Antranig Vartanian <antranigv@freebsd.am>
Differential Revision:  https://reviews.freebsd.org/D48470
dd201e407e48ba59bdfa1f71d41acfdac1a9c562 Alexander Ziaee 2026-04-08 20:08:43

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

RELNOTES: catchup on changes I have made
5dc4da1a408b2219b622c498d53c58580e58132d Baptiste Daroussin 2026-04-09 06:44:08

debug: classified in 03-filenames_plain1 by 'RELNOTES'

arcmsr.4: Improve HARDWARE introductory sentence
MFC after:    3 days
ff32dbb1d14f05bf77e356ae68c82c048c88888f Alexander Ziaee 2026-04-10 15:26:29

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

msun/math.3: reference new functions f{max,min}imum{,_num,_mag}()
See also:     D55834, D56236
MFC after:      1 month
47ca491ca425d0d3d8e2a8a3cac40d6565d8ab6a Robert Clausecker 2026-03-31 16:55:11

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

nfsv4.4: Document setup of a NFSv4 root fs
Commit 8b9775912cbc added support for an NFSv4 mounted
root file system.  This patch documents how to set this
up.  It also includes some minor updates and fixes
some formatting.

This is a content change.

Reviewed by:    kib
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56317
Fixes:  https://cgit.freebsd.org/src/commit/?id=8b9775912cbc ("nfs_diskless: Add support for an NFSv4 root fs")
6698596cd2abd9eae3ac02efe1c257766da5d24a Rick Macklem 2026-04-11 19:36:56

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

fork.2: note that all methods to pre-resolve symbols have consequences
Reviewed by:  imp
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56362
660498986a8e56025d9d2f9c6a0813c09a27ba8e Konstantin Belousov 2026-04-12 09:16:13

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

ifconfig.8: Add geneve(4) parameters
Add geneve parameters to ifconfig manual.

Reviewed by:    ziaee
Differential Revision: https://reviews.freebsd.org/D55181
b0ef03f0c4bc2a7715e4b8ea4ead8dd73dffdd95 Pouria Mousavizadeh Tehrani 2026-04-13 12:38:53

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

timeout.1: Document non-POSIX options
MFC after:            3 days
Reviewed by:            Aaron Li <aly@aaronly.me>, ziaee
Differential Revision:  https://reviews.freebsd.org/D56090
b1bc748430b5ee79ae103c464dbf5ebc8802f782 Artem Bunichev 2026-04-13 01:15:41

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

ciss.4: List all devices supported by ciss(4)
PR:           https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=285744
Reviewed by:    ziaee
MFC after:      3 days
Differential Revision:  https://reviews.freebsd.org/D56285
54f5d20492d231b5c2ddc6f1d94dbffa1707d820 Michael Osipov 2026-04-06 18:21:48

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

libthr.3: describe what we mean by C runtime environment.
Reviewed by:  emaste
Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Differential revision:  https://reviews.freebsd.org/D56384
fa912e3b9b5c074793bb1899f8256ea4baf72631 Konstantin Belousov 2026-04-14 00:10:49

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

libthr.3: describe SIGTHR
Explain how SIGTHR is used and that it should be not touched by user
code.  Note about SIGLIBRT.

Reviewed by:    emaste
Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Differential revision:  https://reviews.freebsd.org/D56384
934a35ac2bbbcf8cd65d8824fa824eb5c6170c88 Konstantin Belousov 2026-04-13 23:42:51

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

Bourne shell -> POSIX shell
The FreeBSD shell is a POSIX compatible shell. It evolved over several
decades from the Almquist shell, which was preceeded a decade before
that by the Bourne shell. Most readers today have never seen a Bourne
shell. If someone wants to learn to use our shell, they need to look for
tutorials on the POSIX shell. Align descriptions through out the tree
with this reality, consistent with it's manual and common parlance.

We made a similar change to the doc tree in b4d6eb01540fe.

MFC after:              3 days
Reviewed by:            carlavilla
Differential Revision:  https://reviews.freebsd.org/D56382
dc140a9fc151f3717bce2157f49070daafa13ec0 Alexander Ziaee 2026-04-14 13:02:53

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

freebsd-base.7: Break examples into subsections
Break the examples into subsections, so that we can have multi-step
examples.

MFC after:              3 days (to 15 only)
Discussed with:         ivy
Differential Revision:  https://reviews.freebsd.org/D55526
5f922bd20d81af4b5759b8f104d5c22ee3e5cd1b Alexander Ziaee 2026-04-14 13:20:38

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

freebsd-base.7: Add an example for unregistering
MFC after:            3 days
Reviewed by:            ivy, emaste
Discussed with:         bapt, des, emaste, ivy, phk, pi
Differential Revision:  https://reviews.freebsd.org/D55458
998d501ae61a3e3c800e6d102d8ab5253c7c1b91 Alexander Ziaee 2026-04-14 13:21:50

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

sockstat: Unbreak SEE ALSO section
MFC after:    1 week
Fixes:          https://cgit.freebsd.org/src/commit/?id=7b35b4d19630 ("sockstat: add libxo support")
a6bd704850a615ae81076855a2083c7ab6481df1 Dag-Erling Smørgrav 2026-04-15 09:36:40

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

sysctl.3: Correct kern and kern.proc type descriptions
Fix several incorrect sysctl.3 type and mutability descriptions so the
manpage matches the actual kern and kern.proc interfaces.

Signed-off-by: Tyler Waddell <tyler.waddell112@gmail.com>
Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/2128
32cc01e75aabc117c2c19c25291aa25eb1ec3cef brothersw 2026-04-07 18:45:08

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

newsyslog.conf(5): use "rotated" instead of "trimmed"
The man page used "trimmed" to describe log rotation, which is
misleading as it suggests the file is truncated to a specific
size rather than being rotated (renamed and a new file created).
Replace all instances of "trimmed" with "rotated" to match the
actual behavior and the terminology used elsewhere in the page.

PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=278671
Signed-off-by: Kit Dallege <xaum.io@gmail.com>
Reviewed by: imp,ziaee
Pull Request: https://github.com/freebsd/freebsd-src/pull/2099
e0b22342f52b22b1762b09ab16bbc520cf0f2882 Kit Dallege 2026-03-27 04:25:35

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

rc.conf.5: Document virtual_oss(8)
Sponsored by: The FreeBSD Foundation
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56225
a3094f522fec70f9e5cf3f12dc6e7a9b5f706459 Christos Margiolis 2026-04-16 14:51:06

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

pkru.3: Remove a qualifier
Now that i386 kernels are deprecated, we don't really need to mention
this limitation.  It's also a bit dated since PKRU is supported with
5-level paging as well.

Reviewed by:    alc, kib
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56415
fe6bf738aaeb3d5fd74aabfcbf01eba827df6594 Mark Johnston 2026-04-16 17:46:05

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

pkru.3: Note that the kernel may not respect PKRU protections
There are cases where the kernel will be able to access memory covered
by a PKRU key which nomially prohibits accesses.  I believe regular
copyin()/copyout() are subject to the contents of PKRU, but memory
accesses via uiomove_fromphys() will not be.  This can arise when
performing fault I/O, for instance.  I didn't test, but I suspect AIO is
another case.

Update the man page to acknowledge this.

Reviewed by:    alc, kib
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56416
fa77fecb0e06ec697e3d7a9ed899e568f1d2090c Mark Johnston 2026-04-16 17:46:11

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

ntp_adjtime.2: Increase visibility
+ s/ntp/ntpd/ for correctness + apropos results in document description
+ silence a linter warning by escaping a period with a zero-width space

MFC after:      3 days
b49b3ccd40bda02f530c679f23f42ba9e0e4b2e2 Alexander Ziaee 2026-04-17 00:30:38

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

ippool(5): Correct example in man page
The example provided puts the semicolon in the wrong place. It must
come after the file:// specification, not in it.

MFC after:      1 week
f5d0b30e4af1163bdc18a893b17236517b67790a Cy Schubert 2026-04-17 04:05:59

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

virtual_oss.8: Remove CPU performance example
See also:     https://github.com/freebsd/virtual_oss/issues/2
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
788d71e73f1b4fdac572dae72d3eac5cfb0f9f18 Christos Margiolis 2026-04-17 20:47:16

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

README: Update and harmonize
MFC after:    1 week
Reviewed by:    imp, markj, jhb
Differential Revision:  https://reviews.freebsd.org/D56499
480ba21efdc7df5d972083e64c88c39357877c0b Dag-Erling Smørgrav 2026-04-18 14:12:32

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

Doxygen subsystem config: exclude the content of the .git directory
315f665fe1ac97ea2ca946e51ced24f7b21fb22e Alexander Leidinger 2026-04-19 12:46:35

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

pdfork.2: correct pdrfork's HISTORY section
Since pdrfork will be included in FreeBSD 15.1

Reviewed by:    kib
MFC after:      1 week
Differential Revision: https://reviews.freebsd.org/D56513
9d39213d222395eb40323102db018cbedf773ddf Alan Somers 2026-04-19 15:26:50

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

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 #3: 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]'

init.8: document init_path among loader tunables
Reviewed by:  imp, jilles
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56536
9e6ae89d831a4ddce0925ac3682d602a71f1b26d Konstantin Belousov 2026-04-26 10:20:16

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

init.8: add RECOVERING section
Reviewed by:  imp, jilles
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56536
e378d97eeb2b8961f312cc04d4751579a7b70741 Konstantin Belousov 2026-04-26 10:28:05

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

chroot.2: "filedescriptors" => "file descriptors"
"filedescriptors" is the odd one out when looking at other manual pages.

MFC after:      3 days
Sponsored by:   The FreeBSD Foundation
4c6d8aa069f2ac22f801fa69add61085631b3356 Olivier Certner 2026-04-27 10:16:30

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

intro.7: Reference groups.7
0f91468c040eb2129618e5ac251afc2529edb462 Alexander Ziaee 2026-04-28 13:56:23

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

build.7: Explain update-packages repo signing
MFC after:            3 days
Reported by:            kevans
Reviewed by:            kevans, ngie
Differential Revision:  https://reviews.freebsd.org/D56607
ab98fd3234304ea10db3dee70205828d372c443a Alexander Ziaee 2026-04-28 16:55:11

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

reallocarray.3: Fix formatting
c1650792b8dd354c964b55999a712f5ae2ad6c0b Mark Johnston 2026-04-28 17:30:46

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

group.7: spell priority
d5db883af2cc46bf884ba3fd067cec68f44fc66d Maxim Konovalov 2026-04-28 17:44:40

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

RELNOTES: Add an entry for recent improvements to multicast routing
Reviewed by:  kevans
Sponsored by;   Stormshield
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D56710
6c09b7608905af2eaff4b5dfa6cbbd42ce286db6 Mark Johnston 2026-04-29 14:22:41

debug: classified in 03-filenames_plain1 by 'RELNOTES'

kerneldoc: also ingest .md (markdown files)
The doxygen tooling has supported ingesting markdown files for a number
of years.  Adding this option allows them to be ingested into the
subsys builds.

Reviewed by:    netchild
Differential Revision:  https://reviews.freebsd.org/D56652
4c99836ac72abb3ec64ee801ac5758ae70cf9a9b Adrian Chadd 2026-04-29 14:58:19

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

debug.sh.8: Add FILES section
Which contains only the source code file.

While here, remove trailing empty lines in the end of the page.

Reviewed by:    mhorne
Differential Revision:  https://reviews.freebsd.org/D56659
0ed292531e0457f271b838dd9dc99a86534d3a99 Artem Bunichev 2026-04-30 13:49:14

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

fexecve(2): call out a scenario where you want !O_EXEC
We note a reason why you might need it, but there's an equally important
reason you may need to omit it: interpreted programs.  Add a note
accordingly, along with the workaround configuration if there's reason
you can't help it.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294780
Reviewed by:    Jan Bramkamp <crest_freebsd_rlwinm.de>, kib
Differential Revision:  https://reviews.freebsd.org/D56704
9c18d55a768a3e60ecaba1325e9a3e00a25dee26 Kyle Evans 2026-05-01 03:02:55

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

man/math.3: mention fmaximum_mag_num, fminimum_mag_num
9f98195ff615417f7af875b65cdaf220239206db Robert Clausecker 2026-05-02 14:53:08

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

ports.7/FILES: Expand and refactor into 3 tables
Add make.conf, CHANGES, CONTRIBUTING.Md, UPDATING, and Tools/scripts.
Refactor the FILES section of the ports reference manual into a bigger
table with three sections separated by root directory. Remove preceeding
article from all but "the big Kahuna", and root dirs where reasonable.

MFC after:              3 days
Relnotes:               yes
Reported by:            adamw, arrowd, linimon
Differential Revision:  https://reviews.freebsd.org/D55441
28deec9b7e2b08b00160eb39de84ade6f27eb125 Alexander Ziaee 2026-05-03 17:25:41

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

nvram.8: Align option list and tag SPDX
MFC after:    3 days
33fbfceeb4d9daf1145089a10ce7b25110d8840f Alexander Ziaee 2026-05-03 17:39:27

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

man: Kill off MANSUBDIRs
Three architecture dependent manuals are installed to MANSUBDIRs,
creating at least two empty manual page directories on everyone's
boxxen. Move those manuals to their canonical area, enhancing clarity,
grepability, removing useless inodes, and increasing consistency with
the rest of the architecture dependent manuals which are unconditionally
installed, and noted at the top of the rendered manual.

MFC after: 3 days
809504f331fd3588e36b54255196379bdb59890a Alexander Ziaee 2026-05-03 17:53:25

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

ocs_fc.4: Cleanup
+ more consistent document description
+ enumerate available options in synopsis in vt.4 style
+ tag spdx
+ tweak list rendering
+ cleanup HARDWARE
+ reflow excessively long lines silencing linter warnings
+ fix link macros

MFC after:              3 days
Reported by:            michaelo (hardware notes)
Differential Revision:  https://reviews.freebsd.org/D56753
dd97c3d83f9a92bbeb9740ceff4c1c74c451293e Alexander Ziaee 2026-05-03 18:27:05

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

vis.3: Try to better describe VIS_SAFE
The current text fails to draw the reader's attention to the fact that
VIS_SAFE essentially exempts certain characters from being encoded.

While here, fix some markup nits.

MFC after:      1 week
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D56716
8acc4c16c6635c3cd8871d0ee1221b62d48d71b9 Dag-Erling Smørgrav 2026-05-04 12:08:10

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

zone.9: Add a missing newline
MFC after:    3 days
c295f026376035fee1a9e44efa2af30d46b7884a Mateusz Piotrowski 2026-05-04 18:28:36

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

freebsd-base.7: Document adding a local repo
MFC after:            1 day
Discussed with:         bcr, ivy, kevans, ngie
Differential Revision:  https://reviews.freebsd.org/D56608
c4af3f13a4e9932968d92872aaf22312a6e79e4e Alexander Ziaee 2026-05-06 21:23:52

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

cam: Cross-reference dtrace_cam.4 and cam.4
While here, remove empty sections from cam.4.

MFC after:      3 days
Fixes:          https://cgit.freebsd.org/src/commit/?id=1a7151f79664 cam: Add probes for xpt actions
640af0d9067bee6e8f300c158f0cf928e666977c Mateusz Piotrowski 2026-05-07 13:11:13

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

d.7: Document macro variables
MFC after:    1 week
2b9301a22bc677239d3c0dc783d970f17e7ca294 Mateusz Piotrowski 2026-05-07 14:20:46

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

smartpqi.4: Document runtime debug_level sysctl
Update smartpqi(4) to document the dev.smartpqi.<unit>.debug_level
sysctl for runtime debug level changes, and note that device
add/remove and controller event messages always appear in dmesg
regardless of the debug_level setting.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294161
Reviewed by:    imp
Approved by:    imp
MFC after:      2 weeks

Differential Revision:  https://reviews.freebsd.org/D56832
e9912b7e88e7d66c0ab5fec1cfe61dcd18377166 John Hall 2026-05-04 22:14:28

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

gpart(7): Fix reference to the zfsprops man page
6499888ca741bf3db90d7fd352d5480f7314337f Paarth Shirsat 2026-05-09 13:58:36

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

spkr.4: Reflect latest changes and add history
- speaker(4) was recently modernized to lock the driver per-playback
  instead of per-open. Update the man page to explain this change.

- added a reference to MML and SMX in the historical context to make
  it easier for users to find additional documentation online.

Signed-off-by:  Raphael Poss <knz@thaumogen.net>
Reviewed by:    ziaee
Closes:         https://github.com/freebsd/freebsd-src/pull/2183
e26b5e0749340d4e4557881b6634b044bce3fa61 Raphael 'kena' Poss 2026-05-08 13:10:29

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

libc/ctime.3: timegm() is in C23.
See also:     D53951, https://wiki.freebsd.org/C23
MFC after:      1 week
68251761c77b2f5ff927cf19bba7d4efa88799de Robert Clausecker 2026-05-14 10:24:30

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

libc/timespec_get*.3: expose STANDARDS section
We now have .St -isoC-2023, so the STANDARDS section can go live.

Fixes:          https://cgit.freebsd.org/src/commit/?id=9b5d724cad10087e34165199e55f15f2df744ed5
MFC after:      1 week
aa92784fcb8a375231058d67f7ccaeaa3e42ed33 Robert Clausecker 2026-05-14 10:32:11

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

RELNOTES: Add an entry for commit b92b9da33006
074c42ade353caedca05e3234c3cb20f28bf5231 Rick Macklem 2026-05-14 23:04:26

debug: classified in 03-filenames_plain1 by 'RELNOTES'

bhyve.8: Fix formatting of -G's "w" prefix
"w" is a command modifier, not an argument. Use Cm.

Fixes:  https://cgit.freebsd.org/src/commit/?id=2cdff9918e79 byhve: add option to specify IP address for gdb
MFC after:      3 days
7abddbb3cdeeff0d4d991aee52e92382e847e8a2 Mateusz Piotrowski 2026-05-15 09:48:43

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

bhyve.8: Improve readability by not breaking -f's synopsis
MFC after:    3 days
e0c3d21e3b43c664fbec3b070612c17a72c39482 Mateusz Piotrowski 2026-05-15 09:49:43

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

p9fs.4: Cross-reference mount(8)
MFC after:    3 days
ae0fd05a333b0ab9e6f020b07a0e483e6f85538a Mateusz Piotrowski 2026-05-15 10:11:29

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

man: iwlwifi/rtw88/rtw89: update man pages for Linux v7.0 based updates
For all:
- harmonize Copyright/license section according to style.9 and used
  SPDX only.
- mention that the current generation of the driver is based on
  Linux version 7.0.
- make linuxkpi.4 and linuxkpi_wlan.4 .Xr as the man pages do exist
  these days.

iwlwifi: update the card/chipset names supported (while we still can)
iwlwififw: leave a comment only that we can no longer update the
  man page and it will be removed in the future.
rtw88: update supported chipsets and add note to BUGS sections
rtw89: update supported chipsets and add note to BUGS sections

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Reviewed by:    ziaee
Differential Revision: https://reviews.freebsd.org/D57019
0a2f7683bf0cbd57d7cdba0713a3e30b24cbf9b4 Bjoern A. Zeeb 2026-05-15 16:29:48

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

route.8: Describe weight modifier
Describe `-weight` argument in the route manual.

Reviewed by: glebius, ziaee
Differential Revision: https://reviews.freebsd.org/D56246
355989b21712cbb7173cbec4a036c541e6f08c0e Pouria Mousavizadeh Tehrani 2026-04-14 07:49:29

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

locking.9: warn about using sleepable lock address as a sleep channel
Reviewed by:  markj
Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Differential revision:  https://reviews.freebsd.org/D57012
56bc43f5d02bd0745d597db44c285bf78d083762 Konstantin Belousov 2026-05-15 11:05:45

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

nlist.3: Replace a.out(5) Xref with elf(5)
ELF support was added to nlist() in 1997, and a.out support was removed
in 2020.  The man page was not updated for either of these changes.

Fixes: https://cgit.freebsd.org/src/commit/?id=77909f597881 ("Initial elf nlist support, ...")
Fixes: https://cgit.freebsd.org/src/commit/?id=86cfa7e70b2b ("nlist: retire long-obsolete aout support")
Sponsored by: The FreeBSD Foundation
876a17321c896427d70de94101df4d888a19189b Ed Maste 2026-05-18 14:50:22

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

Hardware support

Hardware drivers and architecture-specific code.

bce: Fix SYSCTL_IN error check in bce_sysctl_nvram_write()
The condition after SYSCTL_IN was inverted: success (error == 0) returned
immediately and skipped the NVRAM write path, while failure fell through.
Return only when SYSCTL_IN fails.

Signed-off-by: Weixie Cui <cuiweixie@gmail.com>
Reviewed-by: ngie
Pull-Request: https://github.com/freebsd/freebsd-src/pull/2113
f3b59bf28504f901f4fcb568004a92c02fa371ed Weixie Cui 2026-03-31 13:51:46

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

pmap: Do not use PMAP_LOCK_INIT with kernel_pmap
The kernel_pmap lock is a bit special: it does not need the DUPOK flag,
and it really belongs to a different lock class.  If it belongs to the
same class as regular pmap locks, then witness may report warnings when
performing UMA allocations under a regular pmap lock, if the allocation
triggers a pmap_growkernel() call.

Replace instances of PMAP_LOCK_INIT(kernel_pmap) with inline mtx_init()
calls to silence some witness warnings for harmless behaviour I see with
some uncommitted test programs.

Reviewed by:    alc, kib
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D56185
c6a1c1260f02e44b7f44b1e3735ce5dbd785544d Mark Johnston 2026-04-01 09:15:26

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

acpi_spmc: Fail probe if acpi_spmc device already attached
We cannot have more than one SPMC device.

Reviewed by:    olce
Approved by:    olce
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56062
0307db7744d4cfe0d610ebece226dd20fdcc4ed5 Aymeric Wibo 2026-04-01 11:54:57

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

acpi_spmc: Call new MS turn on display DSM
Microsoft added a new function index (turn on display, 9) to their DSM
set. This revision calls this, which fixes S0ix on certain machines,
such as the Lenovo Yoga Slim 7i Aura, who's ECs use this method as a
trigger to restore power to certain devices.

See commit 229ecbaac6b3 ("ACPI: x86: s2idle: Invoke Microsoft _DSM
Function 9 (Turn On Display)") on Linux.

Also see the following:
https://learn.microsoft.com/en-us/windows-hardware/design/device-experiences/modern-standby-firmware-notifications#turn-on-display-notification-function-9

Reviewed by:    olce
Approved by:    olce
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56062
683f7a8374ff67417ac45949bd56a12c23781232 Aymeric Wibo 2026-04-01 11:56:03

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

splash: add shutdown splash
This commit adds a shutdown splash to the existing kernel startup splash(4)
screen feature. It can be customized by providing a PNG image to the
shutdown_splash directive loader.conf(5).

Sponsored by:   Defenso
MFC after:      2 weeks
Reviewed by:    vexeduxr, ziaee, manu
Differential Revision:  https://reviews.freebsd.org/D55140
4b862c713ac5556ab4bd1828b47c5eb9cb28e067 Quentin Thébault 2026-04-02 16:38:47

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

virtio: use modern mode for transitional device by default
This patch changes the default value of the loader tunable
hw.virtio.pci.transitional to 1. This means, virtio uses the
modern mode for transitional devices by default.

The return values of vtpci_modern_probe() and vtpci_legacy_probei()
were chosen to prefer modern mode, but hw.virtio.pci.transitional=0
prevents modern mode.
Setting hw.virtio.pci.transitional to 1 by default seems a better fit.

Reviewed by:            tuexen
Differential Revision:  https://reviews.freebsd.org/D55894
0b39d72d0491c77e3e9883015b1fac46663c71de Timo Völker 2026-04-04 14:49:54

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

Commit group #4: sound
sound: Mark some snd_fmt* functions as static

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D56238
f369d4148b93410fe7f8ea989f66790403d23ce8 Christos Margiolis 2026-04-07 15:44:15

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


sound: Retire unused CHN_N_* defines

These still haven't been implemented by the original author, and there
doesn't seem to be much use for them anyway.

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D56239
2d84c8a3d3d673081c803f8aadc4eae8f6a221d8 Christos Margiolis 2026-04-07 15:44:21

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


sound: Simplify parts of chn_notify()

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D56240
8b18fc456bb136112e166508a9182718cdd44be2 Christos Margiolis 2026-04-07 15:44:29

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


sound: De-macro array definitions in chn_calclatency()

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D56263
66a82f5fa471b8eda018b7566c3725a6742dfc0c Christos Margiolis 2026-04-07 15:44:34

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


sound: Make chn_reset() control flow clearer

I think this is cleaner than playing around with return values.

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D56264
8007a78bfe1f41b7055f8677f8ac9ae4cc2fbc7c Christos Margiolis 2026-04-07 15:44:39

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

arm64/apple: Fix malloc size for per-CPU arrays in AIC attach
sizeof(*sc->sc_ipimasks) * mp_maxid + 1 is parsed as
(sizeof(*sc->sc_ipimasks) * mp_maxid) + 1, so the buffers were one byte
short of a full (mp_maxid + 1) element count.  Multiply by (mp_maxid + 1)
for sc_ipimasks and sc_cpuids.

Signed-off-by: Weixie Cui <cuiweixie@gmail.com>
Reviewed-by: kevans, ngie
Pull-Request: https://github.com/freebsd/freebsd-src/pull/2112
e8053023e7c07214a7b0a97f0f087ba02b329157 Weixie Cui 2026-03-31 10:24:08

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

hwpstate_amd: Expose nodes as much as possible in legacy pstate
Reviewed by:    olce
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D55606
095cbb1bb7f7b4f742b0a500aa2c61a8c97d4b41 ShengYi Hung 2026-04-08 07:45:11

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

acpi: Parse _S3D in s2idle instead of _S255D
Previously, when entering s2idle, we were parsing the _S255D object to
get the shallowest D-state supported by device, as
acpi_stype_to_sstate() returns -1 for s2idle.

Instead, we should read _S3D.

Relevant document:
https://uefi.org/htmlspecs/ACPI_Spec_6_4_html/07_Power_and_Performance_Mgmt/device-power-management-objects.html#s3d-s3-device-state

Reviewed by:    olce
Tested by:      emaste, olce
Approved by:    olce
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D55118
19ab46cc66045ea936475f1a1e08763eb2fd663e Aymeric Wibo 2026-03-04 13:09:14

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

dpaa2: Extract frame-specific routines to dpaa2_frame.[h,c]
As soon as we need information from the hardware frame annotation to
make sure that checksums of the ingress frames were verified by the
DPAA2 HW, I've decided to make a preparation and extracted all of the
frame related routines into the separate dpaa2_frame.[h,c] along with
some clean up and improvements, e.g. no more dpaa2_fa, but dpaa2_swa
and dpaa2_hwa structures to describe software and hardware frame
annotations respectively, dpaa2_fa_get_swa/dpaa2_fa_get_hwa to obtain
those annotations from the frame descriptor. The next step is to
implement dpaa2_fa_get_hwa.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292006
Approved by:    tuexen
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56315
8e994533806d8aa0ae4582a52d811ede2b19bb26 Dmitry Salychev 2026-01-25 16:53:57

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

virtio_blk: Fix initialisation of dump request structure
Commit c8c37141 ("virtio_blk: Use bus_dma for command/ack buffer
allocations") failed to update initialisation of the dedicated dump
request structure. This caused a panic on attempting to dump core to a
virtio_blk device.

Reviewed by:    asomers
Sponsored by:   Arm Ltd
Pull Request:   https://reviews.freebsd.org/D56156
f54209510b1b30b1445792db7d33401f7c7a97d6 Sarah Walker 2026-04-09 10:52:05

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

hwpmc: Fix compile warning
.../sys/dev/hwpmc/hwpmc_mod.c:4640:1: warning: unused function 'pmc_is_multipart' [-Wunused-function]
 4640 | pmc_is_multipart(struct pmc_sample *ps)
      | ^~~~~~~~~~~~~~~~
1 warning generated.

Reviewed by:    mhorne
Fixes:          https://cgit.freebsd.org/src/commit/?id=e51ef8ae490f - main - hwpmc: Initial support for AMD IBS
Sponsored by:   Chelsio Communications
Differential Revision:  https://reviews.freebsd.org/D56296
2f3dcbb5ef27edfee1d560395fda3c2c7fd5e5cd Navdeep Parhar 2026-04-07 20:02:06

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

hwpmc: Fix bug when stopping ibs-op
In ibs_stop_pmc I accidently cleared the fetch max count value rather
than the op max count value, when stopping the op counter.  This
mitigates a bug in early pre-zen processors, but breaks using both
counters simultaneously.  I also found that the max op count mask needs
to be extended for recent zen processors.

Reported by:    Andre Fernando da Silva
Reviewed by:    mhorne
Sponsored by:   Netflix
Fixes:  https://cgit.freebsd.org/src/commit/?id=e51ef8ae490f ("hwpmc: Initial support for AMD IBS")
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2120
7a1aaca06c3384f90202dafa60440081d67d00fd Ali Mashtizadeh 2026-04-04 21:30:03

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

hwpmc: prevent IBS fetch from getting stuck
Both fetch and op IBS sampling have the same problem where we need to
rewrite the control MSR to ensure sampling continues at the correct
rate.  I also like this because it resets the counter reducing the
chances that we collect a sample inside the NMI handler.

Reported by:    Aalok Agarwal
Reviewed by:    mhorne
Sponsored by:   Netflix
Fixes:  https://cgit.freebsd.org/src/commit/?id=e51ef8ae490f ("hwpmc: Initial support for AMD IBS")
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2130
f86ba3eec5961c0217b5458663e0eae5bbad314e Ali Mashtizadeh 2026-04-07 23:33:03

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

ix(4): Add support for firmware logging for E610 adapters
This is part 3 of the support for the new Intel Ethernet E610
family of devices

The ix driver now enables firmware logging on Intel E610 devices
for debugging with Customer Support. Logs are enabled by default
and generated in binary format that requires decoding by support
teams. The collected data is firmware and hardware related for
debugging purposes only.

When the driver loads, it creates a fw_log sysctl node under the
debug section. Events are organized into categories (modules) for
targeted logging, and users can adjust verbosity levels as needed.

This adds sysctl support for the firmware logging feature and
updates the ix(4) manual page with documentation.

Signed-off-by: Yogesh Bhosale <yogesh.bhosale@intel.com>
Co-developed-by: Krzysztof Galazka <krzysztof.galazka@intel.com>

Reviewed by:    ziaee, kbowling
Tested by:      Mateusz Moga <mateusz.moga@intel.com>
MFC after:      1 weeks
Sponsored by:   Intel Corporation
Differential Revision:  https://reviews.freebsd.org/D53973
6b58d10fc6d51ddcf5ee81628ead74d3dadb9bf6 Bhosale, Yogesh 2026-04-09 18:05:29

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

nvme: Allow larger user request sizes
We have a small buffer for pages on the stack, but if the user wants to
do an I/O larger than this we currently fail w/o a way for the user to
know the max size. It's not hard to allocate an array for the uncommon
case of very large I/Os, and the performance advantage of the array is
small in that case anyway. In addition, this allows firmware upgrades
using the full transfer size of the device as a happy accident too.

Sponsored by:           Netflix
Reviewed by:            chs, chuck
Differential Revision:  https://reviews.freebsd.org/D55638
82ff1c334b97e5b68e6330e90f0aa6ae0f6af9aa Warner Losh 2026-04-09 16:18:31

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

x86: Add zen identifier helper function
Reviewed by:    kib
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56330
2358492b0347b11178fb594069330820f11ec81f ShengYi Hung 2026-04-09 08:14:57

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

rge: add Wake-on-LAN support for magic packet
Advertise IFCAP_WOL_MAGIC when PCI power management is available
and enable it by default.  On suspend or shutdown, rge_setwol()
enables the WOL_MAGIC and WOL_LANWAKE bits in CFG3/CFG5, disables
the RXDV gate, and enables PM so the NIC stays powered to watch
for magic packets.

Move hardware-specific WOL register configuration into
rge_wol_config() in if_rge_hw.c to keep hardware-specific
functions in sync with OpenBSD.

Update rge.4 to document WoL support.

Tested on FreeBSD 16.0-CURRENT bare metal with Realtek RTL8125
on a Gigabyte B650 Gaming X AX motherboard.

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

Reviewed by:    adrian
Differential Revision:  https://reviews.freebsd.org/D56259
fc68534a9ad93f6df1756ffa8e707c30a35ce4d7 Christos Longros 2026-04-10 17:31:38

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

qcom_gcc: migrate the MSM8916 support to qcom_gcc
* migrate the MSM8916 (snapdragon 410) support to qcom_gcc
* add the full qcom_gcc / qcom_clk list to files.arm64, replacing
  the MSM8916 stub in sys/arm64/qualcomm .

Differential Revision:  https://reviews.freebsd.org/D49706
4e3fdced7f78c067e048c4d9ec42341c30b7899d Adrian Chadd 2026-04-10 22:09:58

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

ixgbe: Fix MRQC register value.
Focus on the MRQE field of the MRQC register, which is 4 bits wide,
and we use these 3 types of values.

  - IXGBE_MRQC_RSSEN 0x1  (non VF mode)
  - IXGBE_MRQC_VMDQRSS32EN 0xA (less than 33 VFs)
  - IXGBE_MRQC_VMDQRSS64EN 0xB (less than 65 VFs)

If we always take a bitwise OR with IXGBE_MRQC_RSSEN,
IXGBE_MRQC_VMDQRSS32EN will never be chosen.
Select these 3 types of values for the proper case.

Signed-off-by: Yuichiro NAITO <naito.yuichiro@gmail.com>

MFC after:      1 week
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2132
938c076b9b0bc458a3877b52535527d37199fc09 Yuichiro NAITO 2026-04-07 15:25:09

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

hid: Change Usage Page names to match documentation
According to "HID Usage Tables FOR Universal Serial Bus (USB)"
Usage Page ID range 0x93-0xF1CF is "Reserved" and Usage Page ID range
0xFF00-0xFFFF is "Vendor-defined".

MFC after:      1 week
2ba6ce584a8cab75262cb86a5daf310d6706890c Vladimir Kondratyev 2026-04-12 18:09:22

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

bcm5974(4): Fix pre-2015 Apple touchpad support
These devices appeared to stop sending reports via mouse USB interface
after switching to RAW mode. Fix it with changing Usage of Top Level
Collection to one found in HID report descriptor of proper interface.

MFC after:      1 week
d6477cd3a5c3aec6a3492c8423852b09239583a3 Vladimir Kondratyev 2026-04-12 18:09:22

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

bcm5974(4): Do not handle pressure on non-ForceTouch devices
They always report it value as zero breaking pressure-driven drivers
like moused(8) and xf86-input-synaptics.

MFC after:      1 week
9d0404cfe92c18b7697b3e4ad4a5790b12d2261e Vladimir Kondratyev 2026-04-12 18:09:23

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

wsp(4): Do not handle pressure on non-ForceTouch devices
They always report it value as zero breaking pressure-driven drivers
like moused(8) and xf86-input-synaptics.

MFC after:      1 week
dc5a94962e21a267550a2c20a0c4707d06843942 Vladimir Kondratyev 2026-04-12 18:09:23

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

wsp(4): Make evdev interface operational if sysmouse one is not opened
Before this change evdev interface sent only copy of data sent through
the sysmouse interface. It worked as /dev/wsp0 device node was
automatcaly opened by devd(8) with starting of moused(8).
Starting with 15.0 moused(8) does not open sysmouse interface by default
thus making wsp(4) device dysfunctional.
Fix it with adding extra checks of interfaces state.

MFC after:      1 week
817e6995a19cb6f35851d0191bb1099a73d98bb9 Vladimir Kondratyev 2026-04-12 18:09:23

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

nvme_ctrlr_linux_passthru_cmd: correct size of upages_small array
The size broke when upages was converted from array to double pointer.

Reported by:    gcc -Wsizeof-pointer-div
Reviewed by:    imp
Fixes:          https://cgit.freebsd.org/src/commit/?id=82ff1c334b97 ("nvme: Allow larger user request sizes")
Differential Revision:  https://reviews.freebsd.org/D56368
8085c5a5c1e50eb478fb7b59fae201d9ab4207f0 Ryan Libby 2026-04-12 23:39:41

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

arm64: Add a cmap page to pmap
When modifying mappings in pmap we may need to perform a
break-before-make sequence. This creates an invalid mapping, then
recreates it with the changes.

When modifying DMAP mappings we may be changing the mapping that
contains its own page table then after breaking the old entry we are
unable to create the new entry.

To fix this create a map that can be used & won't be affected by the
break-before-make sequence.

Reviewed by:    kib
Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D56306
c208439cdb588d91aead9403cec3d4acf4a8bebf Andrew Turner 2026-04-13 11:50:32

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

arm64: Handle changing self-referential DMAP pages
Support changing the property of a DMAP page that holds it's own page
table entry.

Because we need to perform a break-before-make sequence to change the
properties of pages a page that also holds it's own page table entry
will fault in the make part of the sequence.

Handle this by mapping the page with a temporary mapping as we already
do when demoting a superpage.

Reviewed by:    kib
Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D55943
5809584275363d6b2f44981d8561a126a1344360 Andrew Turner 2026-04-13 11:50:47

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

Commit group #5: arm64
arm64: mte: cleanup cache register definitions

Cleanup the definitions in armreg.h for the CSSIDR_EL1, CLIDR_EL1 and
CSSELR_EL1 system register to prepare for additional bitfeilds for
Memory Tagging Extension (MTE).

Reviewed by:    andrew
Sponsored by:   Arm Ltd
Signed-off-by:  Harry Moulton <harry.moulton@arm.com>
Differential Revision:  https://reviews.freebsd.org/D55944
7e718b9a8eec6b5ed86b3b5509fb09dd590a3b60 Harry Moulton 2026-04-13 11:52:10

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


arm64: mte: add system register definitions

Add system register and bit field definitions for Memory Tagging
Extension (MTE) in ARMv8.5.

Reviewed by:    andrew
Sponsored by:   Arm Ltd
Signed-off-by:  Harry Moulton <harry.moulton@arm.com>
Co-authored-by: Andrew Turner <andrew@FreeBSD.org>
Differential Revision:  https://reviews.freebsd.org/D55945
aa555b6004d605ff0fd48832340b0c32f14d51d4 Harry Moulton 2026-04-13 11:53:37

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


arm64: mte: configure initial state for system registers

The fields in SCTLR_EL1 and HCR_EL2 for enabling MTE are set, and if the
ID_AA64PFR1_EL1 register shows MTE is present, the GCR_EL1 register is
also configured, and the two TFSR registers which hold pending tag check
faults are cleared.

Reviewed by:    andrew
Sponsored by:   Arm Ltd
Signed-off-by:  Harry Moulton <harry.moulton@arm.com>
Differential Revision:  https://reviews.freebsd.org/D55946
58de79153622145cb6fc57bc92c4de678876992f Harry Moulton 2026-04-13 11:54:38

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

nvme: Use passed in max_pages.
Noticed by: jhb
Sponsored by: Netflix
2b954770ddd7a4246c2100373d86ef5316becd81 Warner Losh 2026-04-13 23:30:24

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

x86: Mark LOCORE to prevent build failure on i386 platform
PR:     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294468
Reported by:    dan.kotowski@a9development.com
Tested by:      dan.kotowski@a9development.com
Discussed with: kib
Fixes:  https://cgit.freebsd.org/src/commit/?id=9289df1949cd ("x86: Add zen identifier helper function")
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56377
43d632779b7d1df6c96a5cc0f506c13e09a845f3 ShengYi Hung 2026-04-13 14:46:43

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

sound examples: Add mmap example
This example opens separate OSS capture and playback channels in mmap
mode, places them into a sync group, and starts them together so both
ring buffers advance on the same device timeline. It then monitors the
capture mmap pointer with SNDCTL_DSP_GETIPTR, converts that pointer into
monotonic absolute progress using the reported block count, and copies
newly recorded audio from the input ring to the matching region of the
output ring.

The main loop is driven by an absolute monotonic frame clock rather than
a fixed relative usleep delay. Wakeups are scheduled from the sample
rate using a small frame step similar to the SOSSO timing model, while
the audio path itself stays intentionally simple: just copy input to
output, with no explicit xrun recovery or processing beyond ring
wraparound handling.

MFC after:      1 week
Reviewed by:    christos
Differential Revision:  https://reviews.freebsd.org/D53749
3524d4ebbe1f562dd76dc553c085386aadfd2682 Goran Mekić 2026-04-14 10:57:53

debug: classified in 05-summary-prefix by 'sound examples:'

acpi_apm: Don't recurse on ACPI_LOCK in apmreadfilt
The lock is already held by the caller since it is used as the knlist
lock.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293901
Reported by:    Jiaming Zhang <r772577952@gmail.com>
Fixes:          https://cgit.freebsd.org/src/commit/?id=cc2715cf1f86 ("acpi_apm: Narrow scope of ACPI_LOCK")
8c941e313e3925b17e49b093244c159db7a112f8 John Baldwin 2026-04-14 13:25:37

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

asmc: add raw SMC key read/write interface
This patch adds a debugging interface to read and write arbitrary
Apple SMC keys by name through sysctl, enabling hardware exploration
 and control of undocumented features.

The interface provides four sysctls under dev.asmc.0.raw.*:
  - key - Set the 4-character SMC key name (e.g., "AUPO")
  - value - Read/write key value as a hex string
  - len - Auto-detected key value length (can be overridden)
  - type - Read-only 4-character type string (e.g., "ui8", "flt")

Implementation includes a new asmc_key_getinfo() function using SMC
command 0x13 to query key metadata. The interface automatically
detects key lengths and types, uses hex string encoding for
arbitrary binary values, and is safe for concurrent access via
CTLFLAG_NEEDGIANT.

This interface was essential for discovering that the AUPO key
enables Wake-on-LAN from S5 state, and for mapping all 297 SMC keys
on Mac Mini 5,1.

Reviewed by:    ngie, adrian, markj
Differential Revision:  https://reviews.freebsd.org/D54441
3e27114a7f961aac49d75a663a55332375d0bef3 Abdelkader Boudih 2026-04-15 04:20:52

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

thunderbolt: Support generic USB4 NHIs
Check a PCI device's class, subclass, and progif to figure out if it is
a USB4 NHI. nhi_identifiers is completely removed as only these generic
USB4 NHIs are supported anyway, and all remnants of ICM-supporting code
are removed too. All devices now use the HCM.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=290827
Reviewed by:    jhb, ngie
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D52861
bb36c457ea49d80ca3109ef25ca41a614f9738b8 Aymeric Wibo 2026-04-15 12:04:17

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

appleir: Add Apple IR receiver driver
HID driver for Apple IR receivers (USB HID, vendor 0x05ac).
Supports Apple Remote and generic IR remotes using NEC protocol.

Supported hardware:
- Apple IR Receiver (0x8240, 0x8241, 0x8242, 0x8243, 0x1440)

Apple Remote protocol (proprietary 5-byte HID reports):
- Key down/repeat/battery-low detection
- 17-key mapping with two-packet command support
- Synthesized key-up via 125ms callout timer

Generic IR remotes (NEC protocol):
- Format: [0x26][0x7f][0x80][code][~code]
- Checksum: code + ~code = 0xFF
- Default keymap with 8 common codes
- See: https://techdocs.altium.com/display/FPGA/NEC+Infrared+Transmission+Protocol

Output via evdev with standard KEY_* codes.
Raw HID access available at /dev/hidraw0 for custom remapping.

Based on protocol reverse-engineering by James McKenzie et al.
Reference: drivers/hid/hid-appleir.c (Linux)

Tested on Mac Mini 2011 (0x05ac:0x8242).

Differential Revision:  https://reviews.freebsd.org/D55472
a85c4ab626ef52530400ace1957daaa35dd07534 Abdelkader Boudih 2026-04-14 02:29:43

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

asmc: add support for MacBookPro13,1
This commit adds support for the MacBookPro13,1 (late 2016, 13-inch). The SMC
keys were collected from https://logi.wiki/index.php/SMC_Sensor_Codes. Two
temperature keys are omitted because they fail to be read: TI0P (IO Proximity)
and Ta0P (Ambient Air).

Note that the with this model the `dev.asmc.0.fan.0.minspeed` setting only
applies when the fans have been activated by the system. In my testing, the fans
did not spin up until CPU temperatures hit about 80C. At lower temperatures, the
fans will happily ignore the minimum speed and remain at 0 rpm.

Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/2137
b5b9c65a689457e608cc31831ed690d303d63ffa Marcus Gartner 2026-04-11 02:03:18

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

asmc: correctly label ASMC_KEY_FANMINSPEED as read-write
Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/2137
31744051c8a1c8baca219d93ace6e3e1a5463a45 Marcus Gartner 2026-04-11 02:02:52

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

Fix xhci detection on Raspberry Pi 400
If you use the FreeBSD pre-build Raspberry Pi image, it does not include
the specific .dtb file for the Raspberry Pi 400. On this hardware, it
will fall back to attempting to load the Raspberry Pi 4 .dtb file
instead.

The Pi 4 .dtb file reports the board compatible name as
"raspberrypi,4-model-b" The Pi 400 .dtb file reports the board
compatible name as "raspberrypi,400" However, it's even better to
use the generic name.

When using the official Pi 400 .dtb file from the Raspberry Pi Firmware
collection, the FreeBSD xhci driver currently fails to recognize this,
and thus fails to initialize the xhci device. This means no external
USB, or internal USB (which feeds the build-in keyboard)

The official Raspberry Pi FreeBSD image has been working on the Pi 400
"on accident" simply because it didn't include the Pi 400 .dtb file
prior to this. But the Stratipi Builder uses the full Raspberry Pi
firmware suite and hit this bug.

As a note: this is probably also a bug on the Compute Module 4 (CM4),
but I don't own one of these devices in order to test/validate it.

MFC After: 5 days
Reviewed by: imp, Ali Mashtizadeh
Pull Request: https://github.com/freebsd/freebsd-src/pull/2115
7634043970078f63eea03bb8975bd3fe1e883130 Vince 2026-04-02 01:28:50

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

uvscom: Fix baud rate validation in uvscom_pre_param()
The switch fell through from the supported B150–B115200 cases into default
and returned EINVAL for every speed.  Break out before default so valid
rates return success, matching uvscom_cfg_param().

Signed-off-by: Weixie Cui <cuiweixie@gmail.com>
Reviewed by: imp,aokblast
Pull Request: https://github.com/freebsd/freebsd-src/pull/2110
75e7709f4f3c9e1576af45715730c286c1ec3b24 Weixie Cui 2026-03-31 10:17:28

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

libpmc: surface raw TSC in pmclog events
The pmclog record header carries the raw TSC for each event. Export it
in struct pmclog_ev, fix JSON output to emit it unsigned, and preserve
the installed header ABI by overlaying pl_tsc with the legacy pl_ts
storage.

Update pmclog(3) to document the TSC semantics and the legacy alias.

Sponsored by: AMD
Signed-off-by: Andre Silva <andasilv@amd.com>
Reviewed by: imp, mhorne, Ali Mashtizadeh
Pull Request: https://github.com/freebsd/freebsd-src/pull/2085
fbbf71f5813b041526c4d439d9961e8a8281d291 Andre Silva 2026-03-31 20:28:04

debug: classified in 03-filenames_plain1 by 'lib/libpmc/'

acpi: Return "unknown D-state" in acpi_d_state_to_str() if unknown
Some ACPI debugging prints call acpi_d_state_to_str() on unset D-states
(i.e. ACPI_STATE_UNKNOWN), so return a string explicitly saying "unknown
D-state" instead of just panicking.

Fixes:          https://cgit.freebsd.org/src/commit/?id=84bbfc32a3f4 ("acpi_powerres: D3cold support")
Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
dc9ff9e5d078fd923adc3dc5426b5f219156ea43 Aymeric Wibo 2026-04-16 07:12:33

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

hwpstate_amd: Cache cpuid
Reviewed by:    olce
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56305
e48e9794589993da039a2f4d1c66f8fdd6421155 ShengYi Hung 2026-04-08 12:58:34

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

Commit group #6: ofw: bool-ify OF_hasprop()
ofw: bool-ify OF_hasprop()

Adjust the function signature and the few callers that don't treat it
this way already.

This is style only; no functional change intended.

Reviewed by:    andrew
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56203
b60cd486a652f0427e525b4482ac598be5460459 Mitchell Horne 2026-04-16 14:12:41

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


OF_getprop.9: update OF_hasprop() signature

The return type has been converted to a bool.

Reported by:    manu
Sponsored by:   The FreeBSD Foundation
Fixes:          https://cgit.freebsd.org/src/commit/?id=b60cd486a652 ("ofw: bool-ify OF_hasprop()")
47b0ac1cadc91eee5e98813169b590c443135fbc Mitchell Horne 2026-04-16 15:57:48

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


raspberry_virtgpio: fix OF_hasprop() usage

The function returns a bool. This driver was merged recently (by me) and
I missed this instance.

While here, adjust the ofw_bus_status_okay() call similarly. This
function still returns an int, but this usage is more widely used in our
drivers.

No functional change intended.

MFC after:      3 days
Sponsored by:   The FreeBSD Foundation
Fixes:          https://cgit.freebsd.org/src/commit/?id=b60cd486a652 ("ofw: bool-ify OF_hasprop()")
ce6b4973ba8c6503d3b6dc12d9e6b42ce274d912 Mitchell Horne 2026-04-16 16:05:25

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

clk_fixed: quiet a warning message
Frequently there are some unused/unspecified fixed clocks present in a
device tree. Each one emits a warning before it fails to attach, which
results in (sometimes many) repeated messages which are not
user-actionable.

Put this warning behind the bootverbose flag.

MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56204
8728e21bd694dbb813c149206c5c89290f9c32f5 Mitchell Horne 2026-04-16 14:13:04

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

arm64: mte: add tagged memory attribute
Add the Normal-Tagged memory attribute introduced with MTE.

Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D55948
aa2d89cb4263f5d638b150efb4a2e6adab4ee9d6 Harry Moulton 2026-04-16 13:30:15

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

mlx5e: Ensure rx timestamps are monotonically increasing
The clock calibration routine currently can result in rx timestamps
jumping backwards, which can confuse the TCP stack.
Ensure they are monotonically increasing by estimating what
we'd calculate as the next timestamp and clamp the calibration
so new timestamps are no earlier in time.

Reviewed by: kib, nickbanks_netflix.com
Tested by: nickbanks_netflix.com
Differential Revision: https://reviews.freebsd.org/D56427
Sponsored by: Netflix
ce33f96fcf2f2d0d49c406274bcc64df72fe530e Andrew Gallatin 2026-04-16 16:26:07

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

Commit group #7: etherswitch: Add minimal support for mv88e6170 switch
etherswitch: Add minimal support for mv88e6170 switch
680e6e30c02019c2a18c2ecfef3723b9adaa9ce5 Justin Hibbits 2026-04-16 22:35:32

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


e6000sw.4: Mention MV88E6171

Fixes:  https://cgit.freebsd.org/src/commit/?id=680e6e30c020 (etherswitch: Add minimal support for mv88e6170)
Reviewed by:            jhibbits
Differential Revision:  https://reviews.freebsd.org/D56455
b2aea7a042b6b6e6f1f4922e7e32b6d350a81327 Alexander Ziaee 2026-04-17 15:21:05

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

debug: moved to hardware because 'Need to be grouped with 680e6e30c02019c2a18c2ecfef3723b9adaa9ce5'

e6000/fdt: Ignore disabled switch ports
Instead of trying to parse a bogus node, just skip it if marked
disabled.
2fc58102426ebb3a662675da2600591922a21082 Justin Hibbits 2026-04-16 22:35:45

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

powerpc/pmap: Add support for page sizes found on E6500
E6500 cores (MMUv2) support all powers-of-2 page sizes from 4k to 1TB,
not just powers of 4.  By using the other page sizes (8k, 32k, etc) we
can save on TLB1 space, saving up to ~1/3 of used TLB1 entries.
1fc50a4e68a1635f76d24694fc6ea8b94193c087 Justin Hibbits 2026-02-01 03:44:21

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

mpc85xx: Support timebase sync on T-series devices
Freescale T-series QorIQ devices use a different register to twiddle the
timebase enable.
603a29b9b3126763c934afbed64fc43bf539469b Justin Hibbits 2026-04-16 22:36:54

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

powerpc/intr setup: Don't check intr name for IPI
Since whether or not the irq is an IPI is passed into
powerpc_setup_intr_int(), use this as the check for IPI instead of
checking the name string.
a249ddf07873be97967dd83df4d098ea95d0c92a Justin Hibbits 2026-04-16 22:37:01

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

asmc: add automatic voltage/current/power/ambient sensor detection
Apple SMCs contain numerous undocumented voltage, current, power,
and ambient light sensors. This change adds automatic detection
and registration of these sensors as sysctls.

New sysctl trees:
  dev.asmc.0.voltage.*  - Voltage sensors (millivolts)
  dev.asmc.0.current.*  - Current sensors (milliamps)
  dev.asmc.0.power.*    - Power sensors (milliwatts)
  dev.asmc.0.ambient.*  - Ambient light sensors

Implementation:
- Scans all SMC keys at attach time via asmc_key_dump_by_index()
- Identifies sensors by key prefix patterns:
  - Voltage: VC*, VD*, VG*, VP*, VI*
  - Current: I{C,D,G,M,N,O,H,P,B,A,L}*
  - Power:   P{C,D,N,S,T,H,F,Z,z}*
  - Light:   ALV*, ALS*
- Dynamically creates sysctls for detected sensors
- Supports 8 fixed-point SMC data types:
  - sp78, sp87, sp4b, sp5a, sp69, sp96, sp2d, ui16
- Auto-converts all values to milli-units (mV, mA, mW)

On Mac Mini 5,1, detects:
- 7 voltage sensors
- 18 current sensors
- 27 power sensors
- 2 ambient light sensors

Enables power consumption monitoring, voltage rail debugging,
and ambient light detection without hardcoding model-specific
sensor lists.

Tested on:
  - Mac Mini 5,1 (2011) running FreeBSD 15.0-RELEASE
  - 54 sensors auto-detected and exposed via sysctl
  - All sensor types verified with multimeter readings
  - Fixed-point conversions validated against known values
  - Memory management tested (malloc/free on detach)

Reviewed by:    adrian
Differential Revision:  https://reviews.freebsd.org/D55807
aae9068404947dd9ffd8522359d0f9dffaa70414 Abdelkader Boudih 2026-04-17 02:31:21

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

rge: add disable_aspm tunable for PCIe power management
Add a per-interface loader tunable dev.rge.%d.disable_aspm to
disable PCIe ASPM (L0s/L1) and ECPM on the RTL8125/8126/8127.

Disabling ASPM reduces latency at the cost of higher power
consumption. Default is off (ASPM left as configured by BIOS).

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

Reviewed by:    adrian
Differential Revision:  https://reviews.freebsd.org/D56103
4390c37b5c94b6de4cb4bdbcc3967efe74fa7517 Christos Longros 2026-04-17 02:34:55

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

ixgbe: improve MDIO performance by reducing semaphore/IPC delays
Each MDIO transfer takes 8ms, and all of that is spent in a set
of DELAY() calls, which is consuming a LOT of CPU.

* Change the timeout in ixgbe_hic_unlocked() - doing IPC to the
  on-chip firmware - to a 1uS delay and bump timeout appropriately.
  This seems to finish in a couple of microseconds on my local
  test devices.

* Change the 2ms sleep in ixgbe_release_swfw_sync_X540() to 2ms
  for EEPROM/flash, and 10uS otherwise.  10uS seems to work fine
  on my local testing, but the config EEPROM doesn't read right
  without this extra delay.

The first change shouldn't change the driver behaviour, but the
latter change is more intrusive and needs some wider testing.
(My guess here is that there SHOULD have been some completion
check somewhere in the EEPROM/flash IO path, and these sleeps
are masking them.)

Locally tested:

* C3558 (Denverton) w/ X553 backplane

Reviewed by:    kbowling
Differential Revision:  https://reviews.freebsd.org/D50295
f46d75c90f5feb87259635134dde4da328282842 Adrian Chadd 2026-04-17 17:11:53

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

powerpc64: fix builds
Oops, I missed 'device ix' in here, and it now requires mdio.
b4be4a7890e7f3a94acc08440e28d480434f5bb8 Adrian Chadd 2026-04-17 19:32:23

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

uart/pci: recover ADL AMT device after FIFO size probing
When the Alder Lake Serial-over-LAN device is put into loopback mode and
repeated writes are performed to the data register it results in the device
ending up in a non-functional state afterwards.

Recovering the device to a working state requires re-writing the LCR
register with it's current value (no effective change).  This should be
harmless on all other devices.

Sponsored by: Citrix Systems R&D
Differential revision: https://reviews.freebsd.org/D56107
Reviewed by: imp
45c8ddc874bb9149ed20cb46b6ef8bdd0567714c Roger Pau Monné 2026-03-27 09:55:02

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

uart/pci: use different probe return values
For PCI devices listed in pci_ns8250_ids return BUS_PROBE_SPECIFIC, while
for generic UART devices not explicitly listed in pci_ns8250_ids return
BUS_PROBE_GENERIC.  This allows more specific drivers to take over those
devices, and the generic UART PCI driver will only be used as a fallback.

This fixes an issue where the UART PCI driver would attach to multiport PCI
UART devices, that instead need to use the puc(4) driver to multiplex the
device.

Reported by: markj
Sponsored by: Citrix Systems R&D
Differential revision: https://reviews.freebsd.org/D56467
Reviewed by: markj imp
2ac5b9bd0b132ac0fb69800724dbfcab45ccc35c Roger Pau Monné 2026-04-17 12:46:39

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

Commit group #8: acpi_spmc(4): Small probe improvements/fixes
acpi_spmc(4): Small probe improvements/fixes

Remove the test on presence of an ACPI handle, this is implied by
ACPI_ID_PROBE() succeeding.

Set 'sc->dev' early, so that acpi_spmc_check_dsm_set() using
device_printf() will print the driver name.

Add a missing newline after printing that more DSM functions are
implemented then expected.

Reviewed by:    obiwac
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56483
bd05b47fbd8b7301983dc4ceaf0498fb8d5ca9f2 Olivier Certner 2026-04-10 14:15:09

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


acpi_spmc(4): Remove redundant setting of 'sc->dev' on attach

Should have been part of the previous commit (but PEBCAK).

Reviewed by:    obiwac
Fixes:          https://cgit.freebsd.org/src/commit/?id=bd05b47fbd8b ("acpi_spmc(4): Small probe improvements/fixes")
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56483
0a764beb6215f067787fba1723f211b7ef0eeeb0 Olivier Certner 2026-04-17 21:02:06

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

kshim/usb: Add build option.
Add WITH{,OUT}_LOADER_USB to build the kshim usb library. Nothing
in-tree uses it, but this will make it easier to keep building. Updated
src.conf.5 with a few extra changes...

Sponsored by:           Netflix
4ed20e0236dd0ce64aa4d79659288a56e1b1344b Warner Losh 2026-04-18 02:41:26

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

dpaa2: Extract checksum statuses on ingress
In order to enable RX checksum offloading we need to check the
meta-information for the (good) frames to see if the L3/4 checksums
were calculated and if there was an error.

The way the buffere are setup, the needed frame meta-information is
already requested. All we have to do is make sure it is really part
of the RX frame, that it is valid, and if the respective bits are set.

Also do not forget to set the (dummy) csum_data as otherwise upper
layers will just be cranky. An artefact of the past which likely
should disappear.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292006
Reviewed by:    bz, tuexen
Tested by:      bz, tuexen
Approved by:    tuexen
Obtained from:  bz (initial version, D55320)
MFC after:      3 days
Sponsored by:   Traverse Technologies (providing Ten64 HW for testing)
Differential Revision:  https://reviews.freebsd.org/D56383
4a6d7fc1a00b69925b3edc39acef0391487a8e3e Dmitry Salychev 2026-04-13 12:46:49

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

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/'

amd64: ia32_fetch_syscall_args() does not need to check params != NULL
Whatever params pointer is, it does not matter.  copyin() handles any
values.  In fact, params cannot be ever NULL.

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56630
912f9dfca451e359dda7cdf45539b7c19764f54d Konstantin Belousov 2026-04-25 09:46:50

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

amd64 ia32_syscall(): only allow for ILP32 processes
64bit processes can issue INT $0x80 instruction, and get the syscall
dispatched through ia32_syscall().  This works because syscall argument
fetch and result return are selected from the process sysent.

But, ia32_syscall() does not verify some conditions and does not perform
some actions which are considered unnecessary because the caller is
supposed to only access lower 4G.  The INT syscall path breaks this
assumption.

We never supported such hack, so disable it.  Send the offending thread
SIGBUS as if #GP was issued by hardware due to IDT vector 0x80 having
not numerically high enough DPL value.

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56630
bd8edba0792b71be3f8ed5dea9c22287e95c986a Konstantin Belousov 2026-04-25 09:49:08

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

if_awg: Add missing awg_poll() prototype
The function awg_poll() was missing a prototype, which causes the build
to fail if DEVICE_POLLING is enabled, which it is in the ARMADAXP config.

MFC after:      2 weeks
Reviewed by:    tuexen, mmel, adrian
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D56651
c73cd9ca3ff875a65b6969b7183eb7fcdb23857c Lexi Winter 2026-04-27 06:57:13

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

virtio_net: Use bus_dma for rxq/txq buffers
While the majority of virtio platforms will be fully coherent, some may
require cache maintenance or other specific device memory handling (eg for
secure partitioning). Using bus_dma allows for these usecases.

The virtio buffers are marked as coherent; this should ensure that sync
calls are no-ops in the common cases.

Reviewed by:    andrew
Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D55492
c16c95192f01237a876eb7bc336e3bbda9310171 Sarah Walker 2026-02-16 14:19:13

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

virtio_net: Use bus_dma for command/ack buffers
While the majority of virtio platforms will be fully coherent, some may
require cache maintenance or other specific device memory handling (eg for
secure partitioning). Using bus_dma allows for these usecases.

The virtio buffers are marked as coherent; this should ensure that sync
calls are no-ops in the common cases.

Reviewed by:    andrew
Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D55564
b5bad6df467cc95bea641afe674c55cd5b9f1510 Sarah Walker 2026-02-27 14:17:15

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

arm64: Stop using cpu_tlb_flushID in kexec
It will be removed soon & replaces with pmap_s1_invalidate_all_kernel.
This allows us to handle errata that cpu_tlb_flushID is missing
workarounds for.

Sponsored by:   Arm Ltd
4bdbb6f7f7c6913d6296279a856a0bb229ecb83f Andrew Turner 2026-04-27 11:34:56

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

arm64: Remove cpu_tlb_flushID now it's unused
Reviewed by:  alc
Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D52185
04e4268f60e432097427e3d757aac6bc0ae24044 Andrew Turner 2026-04-27 10:57:32

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

arm64: Ditch arm64-specific unsound PCPU optimisation
The current arm64 PCPU implementation uses a global register asm
variable to use x18, which we reserve with -ffixed-x18, from C. Inside a
critical_enter() or sched_pin(), it is vital that any PCPU reads use the
right PCPU pointer, as often the whole point of the critical_enter() or
sched_pin() is to ensure consistent PCPU use (e.g. for SMR it relies on
zpcpu giving the same SMR state). critical_enter() and sched_pin() both
include atomic_interrupt_fence(), i.e. asm volatile("" ::: "memory"),
barriers to ensure that memory accesses don't get moved by the compiler
outside the critical section, which on most architectures will also
order the read of the PCPU pointer itself (whether due to the read being
another asm volatile statement, or due to using a segment-relative
memory access as on x86). However, this approach on arm64 is in no sense
a memory access, and therefore the register access is not ordered with
respect to the the critical_enter() or sched_pin(), or more specifically
the curthread->td_critnest++ / curthread->td_pinned++ within.

In practice upstream today this works out ok because the read of x18 is
inlined into the actual PCPU_GET/ADD/SET memory accesses (i.e. you will
get something like ldr xN, [x18, #imm-or-xM] for PCPU_GET, etc.), and
since *that* instruction is ordered properly due to being a memory
access, the x18 ends up being read in the right place. However, that is
not in any way guaranteed, it just relies on the hope that compiler
optimisations will be perfect at inlining the use. Moreover, PCPU_PTR is
definitely not a memory access in this world, it's just pointer
arithmetic on x18, and so that has nothing ordering it. This can be
observed with the following test function compiled into the kernel:

    void
    pcpu_test(void)
    {
            extern void __weak_symbol use_pcpu_ptr(void *);
            critical_enter();
            use_pcpu_ptr(PCPU_PTR(curthread));
            critical_exit();
    }

Obviously, this is a bit contrived as you could just read curthread
directly via its atomic definition that bypasses any worries about PCPU
atomicity, but it illustrates the point. With the in-tree LLVM*, this
ends up being compiled for me to:

    paciasp
    stp     x29, x30, [sp, #-0x10]!
    mov     x29, sp
    ldr     x8, [x18]
    ldr     w9, [x8, #0x4fc]
    mov     x0, x18
    add     w9, w9, #0x1
    str     w9, [x8, #0x4fc]
    bl      use_pcpu_ptr
    ...

Note that, although the PCPU_PTR was within the critical section in the
C source, the read of x18 into x0, the argument register passed to
use_pcpu_ptr, has been hoisted to before the str, which is storing the
new, incremented, value of td_critnest to curthread, and so there is a
window within which we have to hope the thread is not preempted and
migrated to a different CPU, otherwise it will pass a pointer to the
wrong CPU's pc_curthread PCPU member.

Initially it would seem as though the solution to this would be to add
an additional barrier to critical_enter() / sched_pin() to ensure the
register reads could not be hoisted like this. However, I have not been
able to find a sequence that works reliably across both GCC and Clang,
independent of optimisation level. Using inline asm with x18 marked as a
clobber, using "=r"(pcpup), and using "+r"(pcpup) all run into various
issues; some combinations don't actually seem to be a barrier, and for
Clang at -O0 some combinations will actually generate writes to x18**,
at which point you then have to hope that the kernel is compiled with
optimisations, and that the redundant writes are optimised away such
that x18 is just passed through. But that just gets us back to hoping
optimisation works, which isn't a solution to the problem, it just
trades one point of fragility for another.

In talking to GCC developers, who seemed rather horrified by the
implications of trying to do this (which is effectively "register
volatile", a combination that's explicitly forbidden), we could not find
a solution to this, and so I have concluded that the only reliable to
have a sound PCPU implementation is to ditch this optimisation and
follow other non-x86 architectures in using inline asm in one form or
another; specifically, this adopts riscv's approach of just calling
get_pcpu(), which, curiously, was already implemented in inline asm here
on arm64, rather than reading pcpup.

Anyone who feels strongly enough about PCPU performance is welcome to
try to find a working approach, but such proposals should be heavily
scrutinised to be certain that they won't come back to bite us in
future. In particular, this caused a lot of problems downstream in
CheriBSD's experimental compartmentalised kernel, which is trialling
interposing on PCPU accesses in order to restrict access within
compartments. As a result, even PCPU_GET/SET/ADD can look like PCPU_PTR,
as they pass an opaque PCPU reference to wrapper functions, and so this
case gets hit all over the kernel, giving highly-confusing panics with
locks that aren't owned by the current thread or SMR use allegedly not
within an smr_enter().

The ia64 port encountered the same issue and reached the same conclusion
in e31ece45b7a4 ("Fix the PCPU access macros."), though went to the
trouble of trying to fold the offset into the inline assembly (assuming
it fit, with no fallback if not, since it's using the add pseudo-op that
will be expanded to either adds with a 14-bit immediate or, if somehow
that doesn't fit, addl with a 22-bit immediate). Curiously though it
left pcpup around as a footgun. sparc64 had similar code but was never
fixed. It also defined a curpcb in the same manner which was presumably
similarly broken, but looks to have been entirely unreferenced from C,
only referenced in actual assembly files. Alpha also had the same
design, but it was removed whilst critical_enter() was extern rather
than static inline so uses of the pointer could not have been hoisted,
and whilst sched_pin() didn't have any form of atomic_interrupt_fence()
to even try to make PCPU well-ordered.

 * At time of writing, when that was LLVM 19, not verified at time of
   commit with LLVM 21.

** For "+r"(pcpup), Clang's initial code generation is to do:

       mov xTtmp1, x18
       mov x18, xTmp1
       /* asm (empty) */
       mov xTmp2, x18
       mov x18, xTmp2

   since its interpretation of what that means is "read the value of
   pcpup, and make sure that value is in x18 for the duration of the
   assembly due to the asm("x18") on pcpup", and similarly for the output
   side.

Reviewed by:    andrew, jhb
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56601
551d47c5677a5eaf0a1ed2ea3b2b1406b192764d Jessica Clarke 2026-04-27 12:53:29

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

Commit group #9: qcom_tlmm
qcom_tlmm: prepare for supporting multiple TLMM platforms

* Create a set of callbacks implementing the hardware specific
  GPIO bus operations
* Migrate the IPQ4018 TLMM setup code into qcom_tlmm_ip4018.c

Differential Revision:  https://reviews.freebsd.org/D56349
20baee6bfed2f39008955dce1f0ce31eb10805f3 Adrian Chadd 2025-02-10 00:49:45

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


qcom_tlmm: extend the IPQ4018 pinmux function mask to 4 bits

It's 4 bits, not 3. Oops.

Differential Revision:  https://reviews.freebsd.org/D56350
fedc032e110aea98cc976f71ef934c564fc0a8ad Adrian Chadd 2026-04-07 10:08:20

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


qcom_tlmm: add i2c pull up strength config option

The X1E and others have a separate configuration bit to increase the
pull-up drive strength for i2c busses.

Add the plumbing; it doesn't do anything just yet.

Differential Revision:  https://reviews.freebsd.org/D56351
f65a4854bf82f60002e268928614e379da852005 Adrian Chadd 2026-04-07 10:09:44

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

ena: Report RX overrun errors
Extract rx_overruns from the keep alive descriptor reported by
the device and expose it via sysctl hw stats.

RX overrun errors occur when a packet arrives but there are not
enough free buffers in the RX ring to receive it.

MFC after: 2 weeks
Sponsored by: Amazon, Inc.
Differential Revision: https://reviews.freebsd.org/D56640
e3f4a63af63bea70bc86b6c790b14aa5ee99fcd0 David Arinzon 2026-04-15 12:13:56

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

ena: Update driver version to v2.8.3
Features:
* Report RX overrun errors via sysctl hw stats

Bug Fixes:
* Budget rx descriptors, not packets, to fix jumbo frame throughput

Minor Changes:
* pmap_change_attr void * API change for FreeBSD 16.0+
* Adjust ena_[rt]x_cleanup to return bool

MFC after: 2 weeks
Sponsored by: Amazon, Inc.
Differential Revision: https://reviews.freebsd.org/D56641
af7911d3b732b8e0d4254c5d0bf60d74ced89157 Arthur Kiyanovski 2026-04-25 18:47:26

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

Commit group #10: bnxt_en
bnxt_en: Add core SR-IOV infrastructure

Introduce the foundational building blocks for SR-IOV Virtual Function
support on Broadcom NetXtreme-C/E adapters.

* Add bnxt_sriov.h: defines the extended bnxt_vf_info structure (per-VF
  firmware FID, MAC addresses, VLAN, flags, DMA command buffers, resource
  counts), the bnxt_resc_map helper, flag macros (BNXT_VF_TRUST,
  BNXT_VF_SPOOFCHK, etc.), and prototypes for all SR-IOV functions.

* Add bnxt_sriov.c: implements the SR-IOV attachment sequence
  (bnxt_sriov_attach), the iflib IOV callbacks (bnxt_iov_init,
  bnxt_iov_uninit, bnxt_iov_vf_add), VF resource allocation and
  firmware configuration helpers (bnxt_alloc_vf_resources,
  bnxt_cfg_hw_sriov, bnxt_hwrm_func_vf_resc_cfg, bnxt_hwrm_func_buf_rgtr,
  bnxt_hwrm_func_vf_resource_free), and the per-VF parameter helper.

* Extend bnxt.h: include bnxt_sriov.h; extend bnxt_pf_info with VF-
  tracking fields (vf array, firmware FID/MAC, resource-reservation
  strategy, DMA page management, sysctl context); replace the upstream
  bnxt_vf_info stub with the full definition from bnxt_sriov.h; extend
  bnxt_func_qcfg with allocation counters required by the VF resource
  configuration path; add vf_resc_cfg_input and sriov_lock to bnxt_softc.

* Update Makefile to build bnxt_sriov.c and include bnxt_sriov.h.

* Wire up PCI-IOV device methods (pci_iov_init / pci_iov_uninit /
  pci_iov_add_vf) and iflib IOV callbacks (ifdi_iov_init / ifdi_iov_uninit
  / ifdi_iov_vf_add) in if_bnxt.c; call bnxt_sriov_attach() from
  bnxt_attach_post() on P5+ Physical Functions.

MFC after:      1 month
Reviewed by:    ssaxena
Differential Revision: https://reviews.freebsd.org/D56197
f2f831b2c151a9d989a94fc7c894118c802ef348 Chandrakanth Patil 2026-03-31 16:59:00

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


bnxt_en: Add VF load path and PF/VF context differentiation

Teach the driver to distinguish a Physical Function from a Virtual
Function at probe time and configure each appropriately.

* Introduce bnxt_is_vf_device() to identify all known VF device IDs
  (NetXtreme-C/E Gen1-3, Thor1/2, Hyper-V variants).  Add corresponding
  PVID entries to bnxt_vendor_info_array.

* Refactor the iflib shared context: rename bnxt_sctx_init to
  bnxt_sctx_template, add a Thor2-specific bnxt_sctx_template_p7, and
  build per-call PF/VF instances via bnxt_init_sctx_variants(); the VF
  instance carries IFLIB_IS_VF.  bnxt_register() selects the correct sctx.

* bnxt_attach_pre(): replace the hard-coded NPAR/VF switch with
  bnxt_set_flags_by_devid(); on a VF call bnxt_approve_mac() to request
  PF approval for the firmware-assigned MAC address.

* bnxt_hwrm_func_qcaps(): populate fw_fid and MAC for PF and VF contexts
  separately; for PF call iflib_set_mac() and record max_msix_vfs; for VF
  handle the case where the PF has not yet assigned a MAC.

* bnxt_hwrm_func_qcfg(): populate the new alloc_* counters used by the VF
  resource configuration path; record registered_vfs for PF and VLAN/trust
  state for VF.

* bnxt_init(): call bnxt_update_vf_mac() on VFs after each bring-up.

MFC after:      1 month
Reviewed by:    ssaxena
Differential Revision: https://reviews.freebsd.org/D56198
a5bedb41e5d6b3680981f109c3e89fb5ffd8eee1 Chandrakanth Patil 2026-03-31 16:59:01

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


bnxt_en: Add VF forwarded HWRM request handling

Enable the Physical Function to proxy HWRM commands issued by Virtual
Functions through the firmware forwarded-request mechanism.

When a VF issues a command that requires PF arbitration, the firmware
delivers a CMPL_BASE_TYPE_HWRM_FWD_REQ completion to the PF async ring.

* bnxt_process_async_msg() recognises CMPL_BASE_TYPE_HWRM_FWD_REQ,
  identifies the originating VF by its firmware function ID, sets the
  corresponding bit in pf.vf_event_bmap, and raises
  BNXT_HWRM_EXEC_FWD_REQ_SP_EVENT to schedule deferred processing.

* bnxt_sp_task() dispatches to bnxt_hwrm_exec_fwd_req(), which iterates
  over all pending VF bits and calls bnxt_vf_req_validate_snd() for each.

* bnxt_vf_req_validate_snd() inspects the encapsulated request type:
  HWRM_FUNC_VF_CFG (MAC change) is handled by bnxt_vf_configure_mac()
  which enforces trust/existing-MAC rules; HWRM_CFA_L2_FILTER_ALLOC is
  handled by bnxt_vf_validate_set_mac(); HWRM_FUNC_CFG is forwarded
  as-is; all other commands are rejected.

All forwarded-request code is guarded by #ifdef PCI_IOV.

MFC after:      1 month
Reviewed by:    ssaxena
Differential Revision: https://reviews.freebsd.org/D56199
fcf100da9b381ad9d81f94499fdadea15ae2b431 Chandrakanth Patil 2026-03-31 16:59:01

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


bnxt_en: Add per-VF trust, spoof-check and promiscuous controls

Expose per-VF policy knobs via the FreeBSD sysctl tree and enforce
them at the data-path level.

Trust (dev.bnxt.<unit>.vfN.trusted):
  bnxt_set_vf_trust() sets/clears BNXT_VF_TRUST and sends
  HWRM_FUNC_CFG with FLAGS_TRUSTED_VF_ENABLE/DISABLE.
  bnxt_create_trusted_vf_sysctls() / bnxt_destroy_trusted_vf_sysctls()
  manage the sysctl lifetime with VF creation/teardown.

Spoof-check (dev.bnxt.<unit>.vfN.spoofchk):
  bnxt_set_vf_spoofchk() issues HWRM_FUNC_CFG with
  SRC_MAC_ADDR_CHECK_ENABLE/DISABLE.

Promiscuous gating:
  bnxt_is_trusted_vf() queries firmware via HWRM_FUNC_QCFG.
  bnxt_promisc_ok() returns false for untrusted VFs, preventing them
  from entering promiscuous mode.  bnxt_promisc_set() is updated to
  gate the PROMISCUOUS and ANYVLAN_NONVLAN mask bits on bnxt_promisc_ok().

bnxt_iov_vf_add() applies the initial trust/spoof-check policy from the
nvlist schema.  bnxt_iov_init() creates the sysctl trees after
bnxt_cfg_hw_sriov() succeeds.  bnxt_iov_uninit() tears them down.

MFC after:      1 month
Reviewed by:    ssaxena
Differential Revision: https://reviews.freebsd.org/D56200
ea4ab7e36ed9cf153c374782be446254a7d11822 Chandrakanth Patil 2026-03-31 16:59:01

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


bnxt_en: Re-enable SR-IOV after firmware reset

When the firmware undergoes a hot-reset and the driver re-opens the
device, previously active Virtual Functions lose their resource
configuration.  bnxt_reenable_sriov() restores that configuration by
replaying bnxt_cfg_hw_sriov() with the saved resource parameters.

The function is called from bnxt_fw_reset_task() in the
BNXT_FW_RESET_STATE_OPENING state, guarded by #ifdef PCI_IOV.
Because bnxt_cfg_hw_sriov() is a no-op when active_vfs is zero the
call is safe on any PF regardless of whether VFs were ever created.

MFC after:      1 month
Reviewed by:    ssaxena
Differential Revision: https://reviews.freebsd.org/D56201
8743209350cb4b7db6d367df99da0a7ae3bc5d39 Chandrakanth Patil 2026-03-31 16:59:02

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


bnxt_en: VF ring reservation, HWRM registration, and PF-only operation guards

VFs require separate HWRM commands for ring reservation and async
completion ring setup, so a common PF/VF dispatcher is introduced and
the async CR path is extended to handle both.  The PF must populate the
VF request forwarding bitmap during driver registration so the firmware
correctly forwards VF-originated HWRM commands.  VF reservation strategy
and min-guaranteed capability flags are now parsed for correct resource
partitioning, and PF-only operations (DCB, NVM, package version sysctl)
are guarded against VF invocation.

The short command buffer allocation is also reordered before the function
reset to ensure extended HWRM messages are available when needed, a
prerequisite uncovered during VF bring-up.

MFC after:      1 month
Reviewed by:    ssaxena
Differential Revision: https://reviews.freebsd.org/D56232
c972c5acbac472a5dc797856f39f478862b6c6ea Chandrakanth Patil 2026-04-02 23:04:45

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


bnxt_en: Address review comments for core SR-IOV support

This patch addresses the code review comments provided for:
https://reviews.freebsd.org/D56197

* P7 VF PCI ID: rename NETXTREME_E_P7_VF to E_P7_VF (P7/Thor2 line drops the
  Netxtreme name in product strings; other VF device IDs are unchanged).
* Use the return value of bnxt_vf_parse_schema() in bnxt_iov_vf_add() to
  decide when to call bnxt_set_vf_admin_mac(); make parse_schema() return
  bool and remove the has_admin_mac field.
* In bnxt_free_vf_resources(), fix indentation after dma_free_coherent() so
  the NULL assignment is clearly separate from the call.
* In bnxt_hwrm_func_vf_resource_free(), use first_vf_id/last_vf_id in the
  HWRM_FUNC_VF_RESC_FREE loop.

MFC after:      1 month
Reviewed by:    ssaxena
Differential Revision: https://reviews.freebsd.org/D56644
7c450d1127c7f08361f848c0ac57189910da8d3b Chandrakanth Patil 2026-04-26 18:11:31

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


bnxt_en: add bnxt_sriov.c to sys/conf/files for built-in kernel builds

The SR-IOV series added bnxt_sriov.c and listed it in sys/modules/bnxt/bnxt_en/Makefile,
but kernels that build bnxt into the image only compile sources named in sys/conf/files.
Add bnxt_sriov.c next to the other bnxt_en entries so built-in bnxt (including LINT)
links the SR-IOV implementation and avoids undefined symbols referenced from if_bnxt.c.

Fixes: https://cgit.freebsd.org/src/commit/?id=f2f831b2c151 ("bnxt_en: Add core SR-IOV infrastructure")

MFC after:      1 month
Reviewed by:    ssaxena
Differential Revision: https://reviews.freebsd.org/D56688
c21c63fb565f1bc7f9564dbf12068c864f8891d8 Chandrakanth Patil 2026-04-28 14:10:13

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

debug: moved to hardware because 'Need to be grouped with f2f831b2c151a9d989a94fc7c894118c802ef348'

amd64: Make EFI runtime faults look less like panics
EFI runtime faults may be mistaken for kernel panics, and do not
necessarily represent actual problems.  Try to differentiate them some
more by printing "EFI runtime trap" rather than "Fatal trap".

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=291193
Reviewed by:    kib
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56309
ddabf7f3ea4f0497dc5a5ffcbbb1d852ea77a4cd Ed Maste 2025-11-26 19:28:13

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

hwpmc: Add IBS capability control policy
Reject unsupported AMD IBS and PMU control bits before programming the
MSRs.

Initialize IBS fetch/op allow masks from CPUID feature bits and validate
user-provided IBS control values against those masks. Keep the
load-latency filter dependency on L3MissOnly, but avoid decoding fields
that are already constrained by the mask.

Apply the same reserved-bit policy to the AMD PMU raw-config path by
checking core, L3, and data fabric configs against subclass-specific
masks.

Fix the IBS CPUID feature bit definitions used by the policy.

Reviewed by:    mhorne, Ali Mashtizadeh <ali@mashtizadeh.com>
Sponsored by:   AMD
Signed-off-by:  Andre Silva <andasilv@amd.com>
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2140
39f48829a045e22c39e7099fa39c1a8b7d3fa7f4 Andre Silva 2026-04-23 19:45:26

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

hwpmc: Add extra_mask sysctls per counter type
Expose kern.hwpmc.{ibs_fetch,ibs_op,amd_core,amd_l3,amd_df}_extra_mask
as RWTUN uint64s that OR into the CPUID-derived allow mask at
validation time. Default 0, so the strict policy applies unless an
administrator opts bits back in — intended for testing the wrmsr_safe
path in PR #2157.

Reviewed by:    mhorne, Ali Mashtizadeh <ali@mashtizadeh.com>
Sponsored by:   AMD
Signed-off-by:  Andre Silva <andasilv@amd.com>
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2140
146b30bad9f65a098e6c09ae93bb1da2ff59616d Andre Silva 2026-04-23 19:27:06

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

arm64: Support some per-thread sctlr_el1 fields
This will be used to enable MTE from userspace.

Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D55950
01ff0fa77d33dde6b6f6a0ff83b0028f76243796 Andrew Turner 2026-04-29 11:34:39

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

arm64: Fix a MTE check
It should be for FEAT_MTE2 as the registers aren't implemented for
FEAT_MTE.

While here fix the style of the comment explaining the check.

Reported by:    markj
Fixes:          https://cgit.freebsd.org/src/commit/?id=58de79153622 ("arm64: mte: configure initial state for system registers")
Sponsored by:   Arm Ltd
2783fb7e7321911b4159d7f41d1c80cae40a7552 Andrew Turner 2026-04-29 11:34:49

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

netmap: check for possible out-of-bound write with options
Submitted by: hari.thirusangu@sophos.com
MFC after:      2 weeks
0216ea8598af7d4170a8660f48981fb12b7b1d67 Vincenzo Maffione 2026-04-29 20:59:17

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

Commit group #11: powerpc/pic: Add a PIC_AP_INIT() to set up AP PIC info
powerpc/pic: Add a PIC_AP_INIT() to set up AP PIC info

pc_cpuid may not match the PIC's idea of a given CPU.  Since openpic
has a WHOAMI register, we can use that to get the PIC's idea of the CPU.
This needs to be done on each AP, so add a PIC_AP_INIT device method so
the PIC can perform any AP-specific initialization at AP bootstrap time.

This fixes SMP on e6500, which is still lacking SMT support.

Differential Revision:  https://reviews.freebsd.org/D56421
40bcad56f1b8b3a0eed9af68de5535a784c004d9 Justin Hibbits 2026-04-30 00:12:18

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


powerpc/pic: fix the openpic CPU logic to work on powermac

Earlier work (40bcad56f - powerpc/pic: Add a PIC_AP_INIT() to
set up AP PIC info) broke booting my dual G5 powermac.

After much digging, jhibbits@ and I discovered that the openpic
implementation for the memory/bus controller used in the G5 CPUs
doesn't implement /all/ of the openpic specification.
Notably it sticks the WHOAMI register in a different location.
This is reading 0x0 back for all the PICs which is .. very not great.

So to restore the previous behaviour, use a quick for now that jhibbits@
can set appropriately to trust WHOAMI.

I've tested this on my dual G5 PPC and it boots/runs fine.

Fixes: https://cgit.freebsd.org/src/commit/?id=40bcad56f

Reviewed by:    jhibbits
Differential Revision:  https://reviews.freebsd.org/D56751
6a0610cb50181d1797d1a8c5d60ad76c666a625e Adrian Chadd 2026-05-01 00:07:48

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

powerpc/openpic: Increase the maximum number of IRQs allowed
The Freescale MPIC supports up to 2048 IRQs, but since we only build an
array of 768 interrupts in intr_machdep, clamp the max at 512.  The most
any Freescale PowerPC chip actually supports is 452 on the T4240, so 512
is sufficient.

As part of this, increase the vector mask to the full openpic vector
mask, and use this limit as the terminator for the dispatch loop,
instead of a hard-coded 255.

Differential Revision:  https://reviews.freebsd.org/D56422
605f53705d6dc57ed391353cecf3ce84a4283740 Justin Hibbits 2026-04-30 00:13:11

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

iicmux: Return the right error codes
I2C subsystem errors belong in the IIC_* error space.  It's pretty clear
this is what is intended in the code.
0a705587e4720cdb0317efb80e9452d236c5cfcf Justin Hibbits 2026-04-22 22:49:16

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

mpc85xx/msi: Add compat string for T208x/T4xxx SoCs
59a844b9cea7bbe92b3899805acd1699c5006ed7 Justin Hibbits 2026-04-16 01:48:21

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

asmc: replace hardcoded model table with universal probing
Probe SMC keys at attach time to detect hardware capabilities,
supporting all Intel Apple machines without per-model entries.

Sensors are discovered by scanning sorted SMC key ranges for
known prefixes and types. Capabilities such as SMS, fan safe
speed, and ambient light are detected by key presence.

A global key description table provides human-readable names
for well-known temperature sensors.

Tested on:
 - MacBook Pro (Early 2007, Mid 2014, Mid 2015)
 - MacBook Air (Early 2015, Mid 2017)
 - iMac (Mid 2011, Late 2013)
 - Mac mini (Mid 2011)

Reviewed by:    adrian
Differential Revision:  https://reviews.freebsd.org/D56405
e7f4269dbfad02119934c35d523cb33ff8c93493 Abdelkader Boudih 2026-04-30 00:38:38

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

dev/ichsmb: disable block buffer if supported
In order to improve the efficiency of block read/write calls, Intel has
introduced a block buffer. Instead of generating an interrupt after
receiving/sending a single byte, the data is buffered in the block buffer. It
allows the SMBus controller to generate a single interrupt for the whole
transfer. At the moment, we don't support that and don't expect the SMBus
controller to behave in that way. Unfortunately, BIOS code can also access the
SMBus controller and may enable the block buffer. Poorly written BIOS code may
also keep the block buffer enabled breaking our driver. Therefore, we should
check if the device supports a block buffer and disable it for every request
because we don't know if some BIOS code has reconfigured the SMBus controller
in between.

Reviewed by:            emaste
MFC after:              1 week
Sponsored by:           Beckhoff Automation GmbH & Co. KG
Pull Request:           https://github.com/freebsd/freebsd-src/pull/2161
226b37dc3ad5641c18f8542c18baea3ea641c5af Corvin Köhne 2026-03-30 09:33:20

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

snd_uaudio: Support Roland UA-33
Apply the appropriate quirk. Also, introduce a new uaudio_vendor_audio
table, similar to uaudio_vendor_midi, which includes non-standard USB
audio devices. The Roland UA-33 needs this, bceause it comes with
bInterfaceClass = 0xff (vendor-specific), so snd_uaudio(4) doesn't
detect it.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294814
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Reviewed by:    emaste
Pull Request:   https://ron-dev.freebsd.org/FreeBSD/src/pulls/24
549e740619873716b796a841a10f56fae3c3ad49 Christos Margiolis 2026-04-28 16:39:45

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

sound: Retire unused snddev_info->bufsz
Sponsored by: The FreeBSD Foundation
MFC after:      1 week
5e9f2a6aefabec01c587a169fd5efe3a2720a8e5 Christos Margiolis 2026-04-30 18:45:20

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

mfi(4)/mrsas(4): Set sysctl name for driver versions consistently
Instead of printing the driver version over and over again if multiple
controllers are used, set a sysctl name for the used driver version.

Approved by:    imp, ziaee
MFC after:      3 days
Differential Revision:  https://reviews.freebsd.org/D56110
ea1764e5fcf0fc11680dc104e663ae3d1d0fd7be Michael Osipov 2026-02-25 19:48:34

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

amdsmu: Add Krackan Point support
Reviewed by:  obiwac, emaste
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56619
9c77fb6aaa366cbabc80ee1b834bcfe4df135491 Tom Jones 2026-04-24 12:47:04

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

Remove extraneous tab characters at EOL in various _stdint.h files
MFC after:    3 days
daeab702f9adbbb718ecf48e17de8dd619cfe7b8 Dimitry Andric 2026-05-01 18:08:26

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

Define stdint.h macros unconditionally
Similar to glibc, define all the stdint.h macros such as `SIZE_MAX`,
`UINT64_C`, etc unconditionally. I.e. no longer check whether
`__STDC_CONSTANT_MACROS` or `__STDC_LIMIT_MACROS` are defined. See also
<https://sourceware.org/bugzilla/show_bug.cgi?id=15366>.

This is part of reverting base 00bee6fcd77f, which reverted an upstream
libc++ commit that eliminated libc++'s stdint.h wrapper header.

Submitted by:   Nikolas Klauser <nikolasklauser@berlin.de>
MFC after:      1 week
Reviewed by:    imp
Differential Revision: https://reviews.freebsd.org/D56746
966fb94cb3575ccd39da211165d0858fd0eb0ef2 Dimitry Andric 2026-05-01 18:07:11

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

Commit group #12: powerpc
powerpc: initial straight port of busdma_machdep.c -> busdma_bounce.c

This is a straight port of the code and doesn't yet handle
different implementations (which will be in a subsequent commit.)

Locally tested:

* G5 SMP (2x PPC970mp)
* power8 / power9 pseries QEMU VM
* power8 powernv

Differential Revision:  https://reviews.freebsd.org/D55313
3bcb7c2a33206d52cecb349b77b2a631728bc7d1 Adrian Chadd 2026-02-14 17:03:27

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


powerpc: create a tag with the parents implementation if supplied

If a parent tag is supplied then use its implementation.

Differential Revision:  https://reviews.freebsd.org/D55314
330e4f6acbdc360c0dc466f4d54bc63e663d307a Adrian Chadd 2026-02-15 02:10:31

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


powerpc: add in some busdma domain setup

* Implement the basic tag domain set routine
* Set the domain to the parent domain if provided

This is just plumbing for eventual work to re-allocate things into
the currently configured domain.

Differential Revision:  https://reviews.freebsd.org/D55315
df3bd7201efc88b0518c9fe7997f3dbf656eccd5 Adrian Chadd 2026-02-15 02:28:07

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


powerpc: refactor common busdma tag setup

Refactor the common busdma tag setup code into busdma_machdep.c

Locally tested:

* qemu VM, pseries-9 / power9
* qemu VM, pseries-8 / power8

Differential Revision:  https://reviews.freebsd.org/D55340
00ec88d2aa8d8267b1e80991d5e632bb9f012b07 Adrian Chadd 2026-02-18 06:50:12

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


powerpc: use local flags for bounce buffers instead of common flags

Migrate to using local flags for bounce buffers instead of the
common flag field.

Differential Revision: https://reviews.freebsd.org/D56208
7c57d2499ceee81aa386430d4d9e6d9080d50f94 Adrian Chadd 2026-04-01 00:04:28

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


powerpc: busdma declaration shuffling

Shuffle some of the declarations around to match other implementations.
Expected to be a no-op.

Differential Revision: https://reviews.freebsd.org/D56243
c7040d3eaa03a9dd27fde69ccf585a76dfbb2c6c Adrian Chadd 2026-04-01 00:23:56

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


powerpc: refactor dmamap setup; free dmamap in error paths

* refactor the dmamap allocation / setup path for future code changes
  to align with arm64 busdma code;
* free the dmamap allocation if the dma segment list can't be allocated;
* free the dmamap allocation during the busdma dmamem allocation path
  if the actual memory allocation itself fails.

Locally tested:

* POWER9 ppc64le native boot, Raptor Engineering Blackbird
* POWER8 ppc6le, IBM POWER S822LC

https://reviews.freebsd.org/D56244
0de6295af231aa5c13e1da2f40b29106962b6363 Adrian Chadd 2026-04-01 05:21:15

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

vt_core: don't draw the splash if a panic occurred
The shutdown splash draws over all the useful info if ddb(4) is
disabled. Don't draw the splash screen if we're rebooting because of a
panic.

MFC after:      3 days
bc83f414583ccaf337ef3b7c019df7727d6a3aae Ahmad Khalifa 2026-05-03 13:18:38

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

iicbus/rtc: Add driver for the Ricoh rs5c372 RTC
This RTC chip supports 2 alarm timers in addition to RTC functionality,
but this driver only supports the RTC at this time.
d22051b18e9b7512c5cf033d7b6eee2df03c985b Justin Hibbits 2026-04-22 02:15:02

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

Commit group #13: dpaa
dpaa: Migrate from NCSW base to a home-grown driver

The NCSW reference base requires tuning for each target, and currently
is configured for FMANv2.  This doesn't readily work on FMANv3 devices,
such as the T-series powerpc, or the LS1043 ARM.  Since Freescale/NXP
abandoned the NCSW driver a decade ago, it makes sense to abandon it
ourselves as well.  This new driver uses a combination of the NCSW
driver and the Linux driver (BSD/GPL dual licensed) as a reference, but
contains no actual code from them.

The DPAA (Data Path Acceleration Architecture) subsystem consists of the
following components:

* BMan -- Buffer Manager.  Manages buffer pools of different sizes (one
  size per pool, up to 64 pools)
* QMan -- Queue Manager.  Manages the interfaces between DPAA-based
  components and the CPU(s).
* FMan -- Frame Manager.  Responsible for all ethernet-related
  processing.  Consists itself of the following components:
  * Ports -- interfaces to the QMan.  An ethernet interface consists of
    2 ports.
    Ports use "Next-invoked action" (NIA) descriptors to form a pipeline
    for processing on receive and transmit.
  * Parser -- performs protocol header parsing and validation.  Both
    hardware and software parsers are available.
  * KeyGen -- Key generator, used to start the classification process
    (for the Policer), generating FQIDs and other keys based on the
    frame input.
  * Policer -- performs traffic shaping and classification
* MAC -- SoC specific ethernet MAC (dTSEC, TGEC, mEMAC).  Currently
  supports dTSEC and mEMAC, along with their MDIO blocks.

Additional components not yet handled:
SEC -- Security engine (crypto)
RE -- RAID engine
RapidIO
DCE -- Decompression/Compression engine, supports ZLIB, DEFLATE, and
GZIP, as well as base64 encoding and decoding.

BMan and QMan are accessed via cache-coherent portals, using ring
buffers as I/O.  The intent is for portals to be per-CPU (core/thread)
to reduce locking contention and improve performance.  This driver pins
interrupt handlers to the CPU "owning" a given portal, and uses critical
sections to prevent switching while accessing the portal.
fd8d34ce272ba40f3e0218198ba542a29c390a4a Justin Hibbits 2026-04-24 03:38:19

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


dpaa: Enable checksum offloading for IPv4 and IPv6

Enable the FMan hardware parser to take advantage of some offloading.
This enables receive and transmit checksum offloading for both IPv4 and
IPv6.

Additional offloading capabilities the DPAA supports include:
* vlan parsing
* Transmit rate limiting
* IEEE-1588 timestamps
* Soft parsing for custom protocol checking
* Congestion handling
6464974c5a56a9f899f8a673385711253f9fcbd0 Justin Hibbits 2026-04-25 20:50:34

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


dpaa: Support jumbo frames as multi-buffer frames
9d423705db8b4188ed7c02d31b93393f0f8e680e Justin Hibbits 2026-04-29 20:22:56

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

dpaa: Fix copyright headers
Reported by:  ziaee@
Fixes:  https://cgit.freebsd.org/src/commit/?id=fd8d34ce27 ("dpaa: Migrate from NCSW base to a home-grown driver")
7a40b8a89e7da2a7e8d8e132bc37885b22e9bfb1 Justin Hibbits 2026-05-04 01:43:44

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

rs5c372a: Fix copyright header
Reported by:  ziaee@
Fixes:  https://cgit.freebsd.org/src/commit/?id=d22051b18 ("iicbus/rtc: Add driver for the Ricoh rs5c372 RTC")
7b5a23b12451a71a8377c7ef674b716a54751e92 Justin Hibbits 2026-05-04 01:45:11

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

asmc: rename wol sysctl to auto_poweron
Older SMC firmware exposed AUPO as a Wake-on-LAN control. On updated
firmware, the key controls automatic power-on when AC power is restored
after a power loss; WoL is handled by the GBE controller instead.
Rename the sysctl to reflect the current semantics. No compatibility
alias is provided as the sysctl has not appeared in any release.

Reviewed by:    ziaee, adrian
Differential Revision:  https://reviews.freebsd.org/D56747
36b399f55e3fa16063188b6f8ad8eaaf8c2215ab Abdelkader Boudih 2026-05-04 14:26:44

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

mii: Fix SMSC name
The LAN8700 / LAN8710 PHYs were Standard Microsystems Corporation (SMSC)
parts.  I presume SMC was chosen as an abbreviation, but the company
always used SMSC as its short name.

SMSC was acquired by Microchip in 2012.  I kept the pre-acquisition
name, as NetBSD (from where we obtained miidevs) uses SMSC.

Reviewed by:    adrian
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56819
89c883c09ab5e0fdca7ac5dfe74fcc46b7669eb5 Ed Maste 2026-05-04 23:13:44

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

acpi_panasonic: acquire serial lock before calling hkey_sound_mute in shutdown
acpi_panasonic_shutdown() calls hkey_sound_mute() without holding
the ACPI serial lock. Every other call site holds
`ACPI_SERIAL_BEGIN(panasonic)` before calling it, as the locking
model is caller-owned.

This seems to affect the whole Panasonic Toughtbook lineup btw.

Reviewed by:    ngie
Differential Revision:  https://reviews.freebsd.org/D56718
7619d14d08a0036a07dce670f55b9568f8133b38 Abdelkader Boudih 2026-05-05 19:49:01

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

smsc: Add missing newline to PHY timeout error printf
0979bfb0ec804590a782ea33b787ec0989c1f1a4 Ed Maste 2026-05-05 23:50:46

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

ichsmb: add Ice Lake-LP (0x34a3) and Ice Lake-N (0x38a3) SMBus device IDs
Add PCI device IDs for two Ice Lake PCH SMBus controller variants:
- 0x34a3 (Ice Lake-LP), previously listed as the generic "Ice Lake" entry (ID_ICELAKE), renamed to ID_ICELAKELP for clarity.
- 0x38a3 (Ice Lake-N), a separate PCH variant not previously supported.

Reviewed by:    adrian
Differential Revision:  https://reviews.freebsd.org/D56732
081d3ab24e03d271a0de3b173802fbe71f52e8aa Abdelkader Boudih 2026-05-05 23:59:10

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

mlx5en: destroy TIR before DEK during TLS RX teardown
Reorder the TLS RX teardown sequence so the TIR is destroyed before
the DEK.  DESTROY_TIR for a TLS-enabled TIR issues a TRA RX fence
that drains all in-flight packets from the crypto pipeline.  If the
DEK is destroyed first, packets still in flight hit a TPT encryption
error (vendor syndrome 0x55) because the key they reference is
already gone.

Reviewed by:    kib
Sponsored by:   Nvidia networking
MFC after:      1 week
bf636accdde4bb9af2c6c07af5420dffffd82332 Ariel Ehrenberg 2026-04-15 21:45:07

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

virtio_p9fs: Fix kernel panic on module unload
The virtio_p9fs module event handler can be invoked multiple times.
Previously, this caused p9_init_zones() and p9_register_trans() to be
executed multiple times, leaking UMA zones and corrupting the transport
list. During module unload, p9_destroy_zones() was also called multiple
times on the same zone pointers, triggering a duplicate free kernel panic
in uma_zdestroy().

This patch introduces a static reference counter in vt9p_modevent() to
ensure the zones and transports are only initialized and destroyed exactly
once, aligning with the approach used by other virtio drivers like vtnet.

Reviewed by:    kib, markj
MFC after:      1 week
Differential Revision: https://reviews.freebsd.org/D56497
3fe5069ce2bf5b2702f3be6531ce6a05c584e64d Alex Richardson 2026-05-07 04:21:23

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

smartpqi: Add runtime sysctl for debug_level and log device state changes
The smartpqi driver did not log device add/remove or controller events
to syslog, and hw.smartpqi.debug_level could only be set at boot via
loader.conf with no runtime sysctl interface.

Add a read-write sysctl at dev.smartpqi.N.debug_level for runtime
debug level changes. Add device_printf calls for device addition,
removal, and controller events (hotplug, hardware, physical/logical
device, AIO state/config changes) so state changes always appear in
dmesg. Add DBG_DISC logging for discovery state transitions. Fix
spelling errors in strings and comments across the driver.

Bump driver version to 14.4691.1.2000 / 15.2.1.2000.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294161
Reviewed by:    imp
Approved by:    imp
MFC after:      2 weeks

Differential Revision:  https://reviews.freebsd.org/D56832
0d48d6d7bba77d6c3736ce56ea5667bfbde89705 John Hall 2026-05-04 21:43:27

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

cxgbe(4): Updates to the hw and fw headers and config file
MFC after:    1 week
Sponsored by:   Chelsio Communications
1bef5535c1f191055e545cad029eabe939d93d24 Navdeep Parhar 2026-03-09 18:19:49

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

hwpstate_amd: Initialize CPPC driver type
Assign the driver type instead of preserving uninitialized stack data

PR:     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294899
Reviewed by:    aokblast
072f79d0a287528b11da866d6115f726a69eca0d Laurent Chardon 2026-04-30 12:08:30

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

pci: use uint32_t for eecp
eecp holds the extended capability offset. If that offset is larger
than 0xff, storing it in uint8_t truncates it, which can make the
early EHCI/XHCI capability walk read the wrong location and loop during
boot.

Seen on AMD device 1022:151e, where HCCPARAMS1 = 0x0118ffc5 and the
first xHCI extended capability offset is 0x460. Widen eecp to uint32_t
in xhci_early_takeover(), matching xhci_pci_take_controller().

Signed-off-by: Gisle Nes <gisle@gisle.net>
Reviewed by:    zlei, aokblast
MFC after:      3 days
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2127
Closes:         https://github.com/freebsd/freebsd-src/pull/2127
555ffd9022de0c497881bafc413e3e1d05af10d4 Gisle Nes 2026-04-07 16:48:15

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

rge: add the Intel Killer E5000 PCI ID
This and the E3000 are both handled by the r8169 driver in Linux, and
reportedly this is infact just a straight re-brand of the RTL8126.

Tested by:      "Sinetek" on Discord
Reviewed by:    adrian
Differential Revision:  https://reviews.freebsd.org/D56917
92f623e4a98876c897669be0f1220887c996918e Kyle Evans 2026-05-11 15:26:03

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

smart: Connect contrib/smart to build
Reviewed by:  fuz, jrm
Relnotes:       yes
Differential Revision:  https://reviews.freebsd.org/D56638
25942dddc8a81a338d4615db99b8e7cbb8550449 Chuck Tuffli 2026-04-28 16:55:50

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

Commit group #14: riscv: IOMMU support
riscv: IOMMU support

Support for RISC-V IOMMU spec v1.0.1 (ratified)
  https://github.com/riscv-non-isa/riscv-iommu

Supports translation for PCI devices only.
Supports 1 or 2-level device-directory-table (DDT).
Supports SV39 and SV48 virtual memory system (on per-device basis).
Supports both "standard" and "extended" device-context (DC) structure.
Supports "bypass" mode to disable translation for a particular device.
Supports WSI (Wire-Signalled Interrupts) only.

This includes both PCI-bus and FDT attachment drivers.

Note in case of PCI-bus attachment, interrupts are not available. In this
case no error report is provided in case of translation fault. Otherwise
interrupts are not needed.

Differential Revision:  https://reviews.freebsd.org/D55922
bcecad2c24aa500913559c00f1be8b364a3ff150 Ruslan Bukin 2026-05-12 10:09:04

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


riscv: Add IOMMU to NOTES

Reported by:    bz, ivy
Fixes:          https://cgit.freebsd.org/src/commit/?id=bcecad2c24aa ("riscv: IOMMU support")
5f60d8a8f2978f998da55d4e3cd0cb0e073bfc21 Dag-Erling Smørgrav 2026-05-16 18:32:25

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

if_eqos_starfive: Read MAC address from device tree
u-boot/opensbi determines the ethernet MAC address from ROM and passes
it to the OS in the device tree. This change sets the correct MAC
address from this source. This prevents the eqos class driver from
generating random MAC addresses at each boot.

Tested on Starfive VisionFive 2, riscv64 SBC.

Reviewed by:    mhorne
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56782
351fad05e075c388dece4cd6dd8613494b870bad Brian Scott 2026-05-11 16:54:04

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

Commit group #15: g_part,mkimg: Add additional GPT partition types
g_part,mkimg: Add additional GPT partition types

Add the hifive-fsbl, hifive-bbl, and xbootldr aliases to mkimg(1).
Add the xbootldr alias to geom(4), and thus gpart(8).

The "hifive" partition types are defined and used by various RISC-V SBCs
for locating firmware.

"xbootldr", or the Extended Boot Loader Partition is defined here:
https://uapi-group.org/specifications/specs/boot_loader_specification/

Reviewed by:    emaste, markj, mhorne
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56784
dab8138e13dea539a387c458979403980a137bf2 Brian Scott 2026-05-11 16:24:46

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


gpart.8: add entry for xbootldr partition type

Reviewed by:    emaste, markj
Sponsored by:   The FreeBSD Foundation
Fixes:  https://cgit.freebsd.org/src/commit/?id=dab8138e13de ("g_part,mkimg: Add additional GPT partition types")
Differential Revision:  https://reviews.freebsd.org/D56969
54d0ae979d9596399f33dc7d7245866f86ab7f8e Mitchell Horne 2026-05-12 14:13:12

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

debug: moved to hardware because 'Need to be grouped with dab8138e13dea539a387c458979403980a137bf2'

vt: Clear cut-paste selection if the area intersects with the filled region
* cut-paste buffer stays unchanged

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=260069
Reported by:    emaste

Reviewed by:    imp
Approved by:    imp (mentor)
Differential Revision:  https://reviews.freebsd.org/D56922
8db0553ed6d8636d82a26896237099526b93be19 Aleksandr Rybalko 2026-05-12 15:56:20

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

Commit group #16: arm64: Add RSI detection for CCA
arm64: Add RSI detection for CCA

Detect the presence of the Realm Services Interface (RSI). This detection is
performed early in bootup; PSCI initialisation has been moved to initarm() to
faciliate this.

Reviewed by:    andrew
Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D56598
76a2904c352b497b32fc902523e3e485f7b06ffd Sarah Walker 2026-05-12 11:27:13

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


arm64: Fix the includes for rsi.c

This depended on header pollution only present when FDT is defined. As
FDT isn't check for in this file we can remove opt_platform.h and
include the correct set of vm header files.

Reported by:    ivy
Fixes:  https://cgit.freebsd.org/src/commit/?id=76a2904c352b ("arm64: Add RSI detection for CCA")
Sponsored by:   Arm Ltd
b8606c3406eab69637be616260c977c9a8f14ff3 Andrew Turner 2026-05-14 08:31:06

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

arm64: Load SOCDEV_PA as a literal rather than an immediate
When EARLY_PRINTK is used in a realm environment, the UART physical
address must be in the unprotected address space. The resulting
physical address will not generally fit in an immediate, so use a
literal instead.

Reviewed by:    andrew
Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D56600
a6add87b5e174702261f3b8e8022791ed4ab9898 Sarah Walker 2026-05-12 12:15:49

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

u3g: Add Telit LM960A18 LTE modem
The patch in the PR failed to apply, so I manually applied the same
changes.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=295231
Submitted by:   Mike Tancsa <mike@sentex.net>
Reviewed by:    emaste
eacf4f50bfb19aa0278db5e8982d73c6d77ca24c Ed Maste 2026-05-12 19:52:16

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

Commit group #17: acpi_spmc(4)
acpi_spmc(4): Fix comments on constraints storage

The fields themselves are not unused, we actually fill them, but once
filled we indeed do not use their values (yet).  See the '#ifdef notyet'
section in acpi_spmc_check_constraints().

No functional change.

Reviewed by:    emaste, obiwac, imp
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56798
a652d97630599c089a722d4cb881e2731c5336a8 Olivier Certner 2026-05-04 11:38:58

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


acpi_spmc(4): Remove XXX from a comment about retrieving constraints

There is really nothing we can do about a DSM function that works on
first call but fails on subsequent calls, except calling it only once,
which we already do.

While here, soften the comment message, as failure was observed with
some specific machines only.

No functional change.

Reviewed by:    emaste, obiwac
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56799
beca41dfb55f0b83612fe8a2aec508944c4b2138 Olivier Certner 2026-05-04 11:56:52

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


acpi_spmc(4): Constraints: Rename the Intel-format parser

...from acpi_spmc_get_constraints_spec() to
acpi_spmc_get_constraints_intel(), as really there is no ACPI
specification proper and parsing the constraints is done according to
some *Intel* specification (even if it is true that, by contrast, AMD
has none).

No functional change (intended).

Reviewed by:    obiwac, imp
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56800
704b96509d3c720be382f13d3d020b40acc21e31 Olivier Certner 2026-05-04 12:57:05

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


acpi_spmc(4): Factor out code to test for a DSM's presence

...through a new function has_dsm(), which slightly simplifies reading.

No functional change (intended).

Reviewed by:    obiwac, imp
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56801
a648c45c9dc13de0457ea51d1ebd333b06ccff8e Olivier Certner 2026-05-04 13:16:08

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


acpi_spmc(4): Clear confusion between DSMs and their functions

Stick to the ACPI specification's terminology where DSM means "device
specific method", but is in fact a set of multiple functions (actually,
there is one set of functions per DSM revision, with the set for some
revision in theory including those of the previous revisions), by
renaming some of the fields of 'struct acpi_spmc_softc' and local
variables accordingly.

To this end, rename appropriate structures, fields, parameters and
variables, mechanically.

No functional change (intended).

Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56802
27d99ff07908a0333774b4c364a798154ae9fa8c Olivier Certner 2026-05-04 14:48:10

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


acpi_spmc(4): Introduce supports_function()

For better readability and because this stance will be used in many
more places in a subsequent commit.

No functional change (intended).

Reviewed by:    imp (older version), obiwac
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56803
f77731ee95c179cede7dec0e87bc8146a2c546bc Olivier Certner 2026-05-04 14:52:31

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


acpi_spmc(4): softc: Remove unused 'obj'

No functional change (intended).

Reviewed by:    imp (older version), obiwac
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56804
868f50f649808320e9433ab321f450fa22bcddba Olivier Certner 2026-05-04 15:03:05

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


acpi_spmc(4): Factor out printing DSM call error, delineate function

Introduce failed_to_call_dsm(), which prepends "function" before the
function index for better clarity.  For now, it prints the function
number, as before, but will soon print a human-readable name.

Reviewed by:    imp (older version), obiwac
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56805
3c2d2bcc6f5d6e7819f0675afb8464e525c87cb3 Olivier Certner 2026-05-04 15:40:46

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


acpi_spmc(4): Human-readably print supported DSMs and their functions

To this end, revamp how DSMs and their functions are represented.
Replace enumerations, which only bring minimal advantages, with plain
macros, allowing to get rid of 'union dsm_index' and in passing the associated bug
that an underlying type smaller than 'int' is aliased to an 'int', which
assumes little-endian architectures.  Associate to each function
a printable name, in the form of a per-DSM array that maps a function
index into a string.  Make sure that every used array and their number
of items are sized at compile-time and are declared constant, and that
as little code as possible depends on the particular set of present DSMs
and associated functions.

Since the set of DSMs and sets of per-DSM functions are represented as
bitsets, introduce print_bit_field() to print such sets.  This new
function is akin to printf("%b", ...) but with more flexibility.  It
takes a function associating a name to some bit index and an opaque
pointer, allowing to leverage existing structures containing names
instead of imposing the use of a separate string containing all names to
be printed.  It also provides a default name to bits without an explicit
name, composed of a common prefix and the bit index as a suffix.

Reviewed by:    imp (older version), obiwac
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56756
cc628a66b4c4d8423830491ebfd69333f7d02378 Olivier Certner 2026-05-04 15:54:40

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


acpi_spmc(4): Rename functions parsing constraints

Rename acpi_spmc_get_constraints_intel() and
acpi_spmc_get_constraints_amd() ("get" => "parse") to reflect that they
are actually just parsing the constraints passed by
acpi_spmc_get_constraints().

No functional change (intended).

Reviewed by:    imp, obiwac
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56806
ee00031940d647962457d64e86a2e433a2f7a2ed Olivier Certner 2026-05-04 11:35:23

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


acpi_spmc(4): Constraints: Simplify some assertions

While here, capitalize their messages.

Reviewed by:    imp, obiwac
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56807
98ad729f3e98b75ae79cd4b539fe2767f8a6f89e Olivier Certner 2026-05-04 11:48:16

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


acpi_spmc(4): Constraints: Clearer message on handle retrieve error

Currently, the "failed to get handle for ..." log messages on attach are
a bit alarming and no context is provided.  Print out that these are
retrieved when trying to match constraints and that such failures are
ignored, which should make administrators worry less.

While here, remove duplicated handle retrieving code in
acpi_spmc_check_constraints() because:
1. As is, it is dead code: We 'continue' if the handle is NULL, i.e.,
   not already resolved, before trying to resolve it again.
2. This code is called after device suspension, which might make some
   objects disappear from the ACPI namespace.  In any case, it seems
   unlikely that, suddenly, new objects would appear.

Reviewed by:    imp, obiwac
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56808
a78c9a2a47f2209328bd25e527bd20cfab6d3665 Olivier Certner 2026-05-04 12:00:39

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


acpi_spmc(4): Stop pretending that all constraints are verified

We do not check these constraints (yet), so stop printing that they are
verified.

While here, make the (not compiled in at the moment) "constraint
violated" message more terse, and move the warning it contains to
outside of the loop (no need to print it repeatedly if multiple
constraints are violated).

While here, bail out early if there are no constraints to avoid printing
(in the future) that constraints are respected even when there are none.

Reviewed by:    imp (older version), obiwac
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56809
0cef5efbbf939c3ca89bd29047a230cbedb2c9bb Olivier Certner 2026-05-04 12:04:08

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


acpi_spmc(4): Check DSMs only on attach, do not return 0 on probe

Once we have recognized a device by PNP ID, declare support
unconditionally on probe, and only check for DSMs in attach.

We do this for these reasons:
1. PNP0D80 is de-facto a device supposed to hold DSMs related to
   suspend-to-idle, so we assume it cannot be used for other purposes.
   And if that changes, we need another architecture anyway (e.g., have
   a new driver claiming those devices and behaving like a bus, to which
   this driver would be a sub-driver).
2. If there are no DSMs that we support on such a device, then a new DSM
   was added that the driver does not know about and which "replaces"
   (in terms of functionality) the known ones, or the firmware is buggy.
   In both cases, failing the attach instead of the probe is reasonable,
   as that leads to printing some error which we (and probably users
   too) would like to know about.
3. This is a step to enable multiple instances of this driver (just to
   be a good citizen, and also to be future proof against weird
   firmwares that would, e.g., implement the Microsoft DSM on another
   device than the Intel one).

Reviewed by:    imp (older version), obiwac
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56810
6bd543f7a82a3cbb10db3a79590d5179be403660 Olivier Certner 2026-05-04 12:40:44

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


acpi_spmc(4): Print supported functions after DSMs

This makes things more top-down, as expected when probing devices.

Reviewed by:    imp, obiwac
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56811
ebad66abbc1f25a761add6481de99abf474b2d87 Olivier Certner 2026-05-04 16:19:31

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


acpi_spmc(4): INVARIANTS: Do not panic on getting constraints failure

Just continue without constraints checking in this case.

To this end, remove the 'constraints_populated' field from 'struct
acpi_spmc_softc' and any reference to it.

However, we introduce another boolean, 'sc->get_constraints_succeeded',
in order to check (under INVARIANTS) that acpi_spmc_get_constraints() is
called only once on success.  Calling that function another time after
a success would leak memory.  It would be easy to change that function
to support multiple calls (e.g., by adding a call to
acpi_spmc_free_constraints() near its start), however trying to retrieve
the constraints again simply looks like wasted time as the same results
are expected to be returned on each call.

Reviewed by:    imp, obiwac
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56812
e5615cd8094f75a17572b3dae810f48ae8401d6c Olivier Certner 2026-05-04 19:10:25

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


acpi_spmc(4): Gracefully support a standalone Microsoft DSM

In acpi_spmc_get_constraints(), stop assuming that if there is no AMD
DSM, then the Intel one is present.  Although this is likely to be the
overwhelming majority of cases on amd64, there is no technical reason
nor constraint in our code that really needs assuming that.  On (so far
hypothetical) machines with only the Microsoft DSM, this assumption
would cause a cryptic and irrelevant error message (and, prior to the
previous commit, a panic on INVARIANTS).

Warn the user if both the Intel and AMD DSMs are present, and use the
constraints reported by the Intel one (see the comment for why).

Reviewed by:    imp (older version), obiwac
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56813
921a6d6c38f5b099b1290a614689d70df2e0f0d4 Olivier Certner 2026-05-04 19:17:21

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


acpi_spmc(4): In-kernel strdup() cannot fail, remove dead code

No functional change (intended).

Reviewed by:    imp, obiwac
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56814
0813dc0325476599841268f405d4bce8b341b2db Olivier Certner 2026-05-04 19:41:14

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


acpi_spmc(4): Constraint parsing: Clearer error messages

Reviewed by:    imp, obiwac
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56815
ee13d62417f28ee22331ab81ecac2ed3457ea1e1 Olivier Certner 2026-05-04 19:42:40

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


acpi_spmc(4): Global message on constraints parsing failure

...in order to indicate to users that power state constraints will not
be checked at all.

Reviewed by:    imp, obiwac
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56816
5ba100a35cc5999d86a975fea9383d279f12e177 Olivier Certner 2026-05-04 19:49:32

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


acpi_spmc(4): Enable multiple instances

Support the (so far hypothetical) case of a machine with multiple
instances of the PNP0D80 device (e.g., if multiple DSMs are not
implemented on the same device), by allowing multiple instances of the
device to co-exist.

This is achieved by moving 'supported_functions' from 'struct dsm' into
the softc, so each instance has its own view of which functions are
supported.

Consequently, the check on the instance unit on probe can be removed.

Reviewed by:    imp (older version), obiwac
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56817
310cbb8924fa8f0ace9c5f555cf74b7c1e4396a2 Olivier Certner 2026-05-04 20:19:40

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


acpi_spmc(4): acpi_spmc_probe_dsm(): Remove passing superfluous handle

The handle is already held by the softc, which is also passed.

No functional change (intended).

Reviewed by:    imp, obiwac
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56818
f56201cee3e8f90dd17ec287b43997983d23fdfe Olivier Certner 2026-05-04 20:21:41

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


acpi_spmc(4): Add a sysctl knob to request verbosity

The driver will be more verbose on this knob being non-zero or
'bootverbose' being set.  The corresponding variable is typed as an
integer to leave room for expansion.  To be used in subsequent commits.

Reviewed by:    obiwac
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56875
37c59fdc3b4d25304982a4d39931da5c2ec4c2e6 Olivier Certner 2026-05-07 15:59:37

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


acpi_spmc(4): Be less verbose by default

Do not print by default details of failures that are unlikely to help
a normal user and to have a crucial influence on whether suspension
works correctly.  Do so only on a verbose boot or if requested
explicitly by the user via 'debug.acpi.spmc.verbose'.

In particular:
- On an Intel Framework laptop, the Microsoft DSM only reports the
  SLEEP_ENTRY and SLEEP_EXIT functions.  That makes some sense since,
  according to its specification, all functions of a Microsoft DSM
  except these two are in fact redundant with Intel DSM's ones (also,
  that of AMD DSM's ones).  Those functions being missing are only
  a potential problem if there is no other DSM than Microsoft's (yet to
  be observed in the field).
- The details of malformed/unapplicable constraints or ones with a newer
  format the driver does not know about are not readily actionable
  pieces of information, but rather debug/developer-oriented ones.  When
  verbosity is not requested, only print the details of the first such
  failure to encourage reporting and at the same time avoid cluttering
  the output.
- Detecting and printing unknown DSM functions is not directly
  actionable either, and the driver not using these functions may not
  prevent suspending (but might, e.g., prevent reaching deeper sleep
  states).

Reviewed by:    obiwac
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56876
6da01f06ef7964f8a58369e7d1605ce10a49b82c Olivier Certner 2026-05-05 12:36:57

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


acpi_spmc(4): acpi_spmc_run_dsm(): Rename, rename parameters, constify

This function actually runs a function of a given DSM.  Remove the
'_dsm' suffix to remove the inaccuracy and make things simpler.

Reviewed by:    obiwac
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56877
d765d209c3dc5d1eca781cab97c8579969b1e7d5 Olivier Certner 2026-05-06 12:02:25

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


acpi_spmc(4): Factor out testing for present DSMs/functions

Since we are now keeping in the softc the information about which DSM
functions are available (in supported_functions[]), the 'dsms' field
there is somewhat redundant.

Make it completely redundant by keeping the bit representing the
enumeration function itself in each element of supported_functions[],
and then remove the field.

As a result, convert has_dsm() to rely on supports_function().

Adapt acpi_spmc_dsm_check_functions() so that it does not take into
account the enumeration function bit.

While here, use the self-explanatory stance
IDX_TO_BIT(DSM_ENUM_FUNCTIONS) instead of a hardcoded 1.

Reviewed by:    obiwac
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56878
ba4f05b55fb4b006f1bbe26d3ad3527f48e85939 Olivier Certner 2026-05-06 09:31:19

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


acpi_spmc(4): Only run DSM functions reported present

Examination of the DSDT in a Framework laptop generally hints at
firmware designers sometimes providing ACPI methods for convenience
(e.g., same firmware for multiple models) but not using them (or not
expecting them to be used) depending on tweaks or the actual hardware
platform.

On an Intel Framework laptop, we specifically observe the presence of
a Microsoft DSM that just reports availability of the SLEEP_ENTRY and
SLEEP_EXIT (7 and 8) functions although the Microsoft specification
requires other functions, whose purpose is similar to corresponding
Intel DSM's ones (such as DISPLAY_OFF).  However, we currently always
call the latter even on the Microsoft DSM.  On that laptop, fortunately,
the way the code is structured in the _DSM method leads to nothing being
executed on this call.

Given the similarity of intent between most functions from the Microsoft
DSM on one side and those of ADM and Intel on the other, it is
imaginable that other firmware developers could use a strategy where
functions are in fact aliased, in which case insisting on calling the
Microsoft's DSM function even if not enumerated would cause the action
to be performed twice (because we also call the corresponding function
on the Intel/AMD DSM), which may or may not cause other problems and in
any case seems a waste.

So, by default, do not try to run any function that is not enumerated,
as that looks like the safest approach.  Add a debug sysctl(8) knob to
revert to the previous behavior, just in case
('debug.acpi.spmc.force_call_expected_functions').

acpi_spmc_run() now checks if a DSM/function combination has been
enumerated, and skips the actual call if it does not.  This allows to
remove all checks from the acpi_spmc_*_notif() functions, making the
code much more compact.

acpi_spmc_get_constraints() now checks whether
DSM_GET_DEVICE_CONSTRAINTS is supported in order to determine which DSM
to use and whether to call the function at all.

Reviewed by:    obiwac
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56879
65ecfb4a66f377ca72569d7a96de0347b4541b52 Olivier Certner 2026-05-06 11:53:02

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


acpi_spmc(4): softc: Move supported functions into a DSM info structure

This is in preparation to adding the revision as a probed information.

Reviewed by:    obiwac
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56880
b092ee520618a8e8df7f4d7fb095e8940dd0d305 Olivier Certner 2026-05-06 13:15:27

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


acpi_spmc(4): Trivial simplification in detach function

Reviewed by:    obiwac
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56881
b82e41d394054fdc357bc9e03b9a48a2e6983a91 Olivier Certner 2026-05-07 07:53:36

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


acpi_spmc(4): Auto-detect DSM revisions by default

Which revisions to use for the Intel and AMD DSMs is unclear.  For the
Intel one, the written specification indicates only 0, but Linux uses
1 (possibly an oversight).  For the AMD one, for which there is no
specification, Linux uses 0, but at least on the Framework 13 AMD 7040
series, the "enumerate functions" function only returns a mask that
covers all the functions we expect when called with revision 2.

Introduce an auto-detection strategy where each revision starting from
0 is tried in turn up to some limit (included; default: 15).  As soon as
a revision implements all expected functions, we stop the loop and use
that one, in effect selecting the minimum revision that implements all
we need, which should avoid potential backwards-compatibility problems.
If no revision implements all expected functions, the highest available
revision in the checked range is selected, but higher revisions that do
not bring new functions are discarded (see the explanatory comment in
acpi_spmc_probe_dsm()).

The revision policy is still tunable using the same existing sysctl(8)
knobs 'debug.acpi.spmc.intel_dsm_revision' and
'debug.acpi.spmc.amd_dsm_revision'.  They have been extended so that
a negative value indicates to use the auto-detection mechanism up to
a revision of minus the value.  As before, a 0 or positive value
requests a specific revision.  A new knob is introduced for the
Microsoft DSM just in case ('debug.acpi.spmc.ms_dsm_revision').

Since now the revision can be auto-detected, and thus depends on
a particular device instance, move it into 'struct dsm_info' on the
softc.  This also enables finishing the split between static and
dynamic/tunable information, allowing to constify all the DSM
descriptors.

Print the revision eventually used along with the supported functions.

Tested on an Intel Framework laptop.

Reviewed by:    obiwac
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56882
69a303ace76f42630ca07bcc5d2d090774a0364d Olivier Certner 2026-05-07 08:22:13

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


acpi_spmc(4): If verbose, print called functions

...as a debugging aid, in order to be able to check that some functions
are effectively called and to identify them quickly if they cause
a hang.

Reviewed by:    obiwac
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56883
91d3fb31e858404f62d4a3afae2e209796968c3d Olivier Certner 2026-05-07 16:15:21

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


acpi_spmc(4): Update copyright

Sponsored by:   The FreeBSD Foundation
23005ed3a1c8f6c111dff71b17daa6549b59a98a Olivier Certner 2026-05-12 15:10:34

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

cxgbe(4): Query and report IPsec offload related parameters
MFC after:    2 weeks
Sponsored by:   Chelsio Communications
e03c00b47b1af560b280c32576e7fc06b0a58224 Navdeep Parhar 2026-05-12 18:04:55

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

arm64/vmm: Enforce a data barrier before tlbi for non-VHE
Exception entry does not include an implicit, architectural data
barrier.

Reported by:    Ben Simner <ben.simner@cl.cam.ac.uk>
Reviewed by:    andrew
Fixes:          https://cgit.freebsd.org/src/commit/?id=5577bb2f67ff ("arm64/vmm: Support tlbi from VHE")
Differential Revision:  https://reviews.freebsd.org/D56855
04987aa1d8099e5f8f5dd8c68e65f315b3f1fd6c John Baldwin 2026-05-13 16:33:52

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

usbdevs: Add TP-Link UB500 (RTL8761BUV) USB ID
This device is not yet supported.

Unfortunately some recently purchased UB400 dongles also contain this
Realtek IC.

Sponsored by:   The FreeBSD Foundation
4cdcacb9b2969b681b9547da61535b09e9e67478 Ed Maste 2026-05-14 13:32:45

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

sound: Fix lock order reversal in dsp_poll()
chn_poll() may hold both rdch and wrch channel locks while calling
chn_trigger(rdch).  chn_trigger() switches the lock order from
"channel -> dsp dev" to "dsp dev -> channel" by temporarily dropping
the channel lock before acquiring the dsp lock.

However, only rdch was unlocked during the transition while wrch
remained locked. Since wrch is also a channel lock and witness had
already established the lock order requirement:

    dsp dev -> channel

witness reports a lock order reversal when pcm_lock() is acquired while
wrch is still held.

Avoid holding rdch and wrch simultaneously during chn_trigger()
lock-order switching by only keeping the channel locks when needed.

The issue can be reliably reproduced by starting pipewire,
pipewire-pulse, and pavucontrol.

Reviewed by:    christos
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57009
776584319fb4d66cdb1c2f91bed154dfe6a74e5e ShengYi Hung 2026-05-15 08:43:47

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

sound: Improve hw.snd.compat_linux_mmap
- Reject PROT_EXEC in all cases when Linux support is not compiled in.
- Define sysctl only when Linux support is compiled in.
- Document better.

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Reviewed by:    emaste
Pull Request:   https://ron-dev.freebsd.org/FreeBSD/src/pulls/29
b9c10eeb380b3ba629421062af8658e79a9171cd Christos Margiolis 2026-05-15 14:07:59

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

sound: Force-disable hw.snd.compat_linux_mmap by default
Eventually this hack will be removed, so start by disabling it by
default.

Sponsored by:   The FreeBSD Foundation
MFC after:      12 months
Reviewed by:    emaste
Pull Request:   https://ron-dev.freebsd.org/FreeBSD/src/pulls/29
9354e204f5ac797cbf1ef8e05294703c378bc9b6 Christos Margiolis 2026-05-15 14:47:10

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

wtap: use typed rssi and noise floor values
Adjust the rssi and nf arguments to typed int8_t and adjust the maths
for rssi to be consistant with what net80211 expects.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Reviewed by:    lwhsu, adrian
Differential Revision: https://reviews.freebsd.org/D57020
d201e4e8491901d1de6bcaeb581a0bf958bf86f2 Bjoern A. Zeeb 2026-05-13 21:14:39

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

thunderbolt: make code -Wunused clean
This change modifies code paths and uses `__diagused` to address `-Wunused`
issues that occur when `THUNDERBOLT_DEBUG` == `0`.

MFC after:      1 month
Differential Revision:  https://reviews.freebsd.org/D55575
1836330791789f18d0c9f0a63322a7f33b373c5b Enji Cooper 2026-02-26 08:06:49

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

riscv: fix GENERIC-NODEBUG build
Reported by:  bz
7eb71fd267c6cab43650720b9ed89f72cdcc5a3b Ruslan Bukin 2026-05-16 20:17:44

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

x86: remove sys/mount.h from genassym.c
The header is not needed, and causes some issues with build because it
requires vnode_if.h generated due to transient dependency from vnode.h.

While there, remove unneeded explicit sys/cdefs.h and sys/param.h usage.

Reported and tested by:         thierry
Fixes:  https://cgit.freebsd.org/src/commit/?id=1d5e4020e36e ("vnode: add VIRF_KNOTE flag")
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
72ab129799a231e322b119de3f9c1263e76527b8 Konstantin Belousov 2026-05-16 19:27:40

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

intelhfi: Add IA32_PM_ENABLE bit flag define
Reviewed by: Minsoo Choo <minsoo@minsoo.io>
Differential Revision: https://reviews.freebsd.org/D56919
436f47a80c20a4d8395d30f81684b2d5dd35991e Koine Yuusuke 2026-05-17 15:58:41

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

qcom_tlmm: remove annoying debugging
Yes this printf is for local debugging and not required at all on anything.

Pointed out by: andrew@
32f854663d76ea06529ca8990ec0d116c8acb32b Adrian Chadd 2026-05-18 17:03:20

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

Networking

Network-related commands, library, and kernel.

Commit group #18: ip6_mroute: FIBify
ip6_mroute: Fix the type name in sysctl_mfctable()

No functional change since apparently it's fine to compute the size of
a pointer type when the base type is undefined.

Fixes:  https://cgit.freebsd.org/src/commit/?id=0bb9c2b665d9 ("ip6_mroute: FIBify")
0dbbed21a643f6c95bebe23008a332ff68adb203 Mark Johnston 2026-04-01 11:13:05

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

ipfw_nptv6: fix handling the ifaddr removal event
The result of IN6_ARE_MASKED_ADDR_EQUAL() macro is not an integer, so
threat it as a boolean value.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294114
Reported by:    Peter Much <pmc citylink dinoex sub org>
MFC after:      1 week
d9d7b59486499615a5fdce54443ce62aecf557e8 Andrey V. Elsukov 2026-04-02 10:14:29

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

nd6: Fix delayed NA for proxy addresses
Delayed proxy addresses need special handling, since
they can use link-local ifa as their source address and
have different link-layer data in their response.

Fixes:          https://cgit.freebsd.org/src/commit/?id=f37fbe30f559
Reviewed by:    glebius, markj
Differential Revision: https://reviews.freebsd.org/D55850
cf275806b6eddd66a3d82be56b3672dc5afab525 Pouria Mousavizadeh Tehrani 2026-03-13 14:25:01

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

tcp: retire TF_SENTSYN
This TF_-flag is only used in the RACK stack and not really needed.
So replace it, since glebius@ needs a TF_ flag and right now all
of them are taken.
No functional change intended.

Reviewed by:            rrs, glebius, rscheff, Nick Banks
Sponsored by:           Netflix, Inc.
Differential Revision:  https://reviews.freebsd.org/D56025
32cc4beb0a8c3cadc0de4c255ba512fd7b196607 Michael Tuexen 2026-04-03 19:22:11

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

Commit group #19: ip_mroute: FIBify
Fix nooptions VIMAGE build

The recent FIBify commits deref struct thread without including
sys/proc.h, which can result in a compiler error.  This becomes
apparent when building with LINT-NOVIMAGE, as net/vnet.h includes
sys/proc.h.  Fix this by directly including sys/proc.h

Fixes: https://cgit.freebsd.org/src/commit/?id=4c486fe40267 ("ip_mroute: FIBify"), https://cgit.freebsd.org/src/commit/?id=0bb9c2b665d9 ("ip6_mroute: FIBify")
3f79bc9ca336f634e1afa262ccf5155882550a8a Andrew Gallatin 2026-04-04 23:10:45

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

ifnet: Add some sanity checks
To be more robust since the checking is now performed where the
interface is referenced.

While here, remove a redundant check from if_vmove_loan().

Reviewed by:    kp, glebius, pouria
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D55875
00d96da231d007673a1672452748d8ea4f6788ae Zhenlei Huang 2026-04-07 04:33:05

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

netstat(1): '-w': Banners to appear before a new statistics line, not after
Recurring banners except the first are printed just after the latest
interval's statistics line, giving the false impression that the latter
are omitted.  It is also better to print a new banner only if it is
going to be followed by a new line of statistics, in case netstat(1) is
interrupted or we have reached the number of iterations specified by
'-q'.

Fix this by pushing printing these banners inside the loop producing
statistics lines, after having waited for the next interval.

The first banner is printed before the loop, as we want it to be printed
immediately at launch, even if at this point we do not have statistics
to display (we have to wait for an interval to compute these, as they
are based on a difference).

While here, remove the 'goto' spaghetti by putting banner printing into
its own private function and using a proper infinite loop in
sidewaysintpr().

While here, document the why of the 21 statistics line span between two
banners.

While here, check for the number of output lines of statistics once such
a line has effectively been printed.  This allows to remove the internal
incrementation performed when reading '-w''s argument, which was a hack
to compensate the misplaced check.

While here, in the manual page, simplify the description of the '-w'
mode and mention that passing 0 to '-q' means "no count limit".

Reviewed by:    glebius
Fixes:          https://cgit.freebsd.org/src/commit/?id=84c1edcbad7d ("Rewrite netstat/if.c to use ...")
Fixes:          https://cgit.freebsd.org/src/commit/?id=bf10ffe1d3a9 ("Add a new option, -q howmany, ...")
MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56227
31749859525b2b79634dc7c066c3563be5b1e3fd Olivier Certner 2026-04-02 19:13:02

debug: classified in 03-filenames_plain1 by 'usr.bin/netstat/'

netstat: Add -F support for -g
This change adds the ability to examine the contents of multicast
routing tables for other FIBs without the need for executing
`netstat` with `setfib(1)`.

MFC after:      3 days
Sponsored by:   Klara, Inc.
Sponsored by:   Stormshield
Differential Revision:  https://reviews.freebsd.org/D56205
Reviewed by:    glebius, markj, zlei
cff675e83cdb6c9027e94df9d010439e42e27dee Bojan Novković 2026-03-26 09:39:10

debug: classified in 03-filenames_plain1 by 'usr.bin/netstat/'

ip6_mroute: VNETify counters
Commit a223d6c489c7 made most of the ip6_mroute state per-VNET, but
failed to do this for a couple of counter structures.  Make them
per-VNET too.

Reported by:    zlei
Reviewed by:    pouria, zlei
Fixes:          https://cgit.freebsd.org/src/commit/?id=a223d6c489c7 ("ip6_mroute: Start putting global variables into a structure")
Differential Revision:  https://reviews.freebsd.org/D56253
77df0240307ebbc606e17c9b83c0d940d33c2649 Mark Johnston 2026-04-08 04:20:04

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

nd6: Remove DRAFT_IETF_6MAN_IPV6ONLY_FLAG and EXPERIMENTAL options
The draft-ietf-6man-ipv6only-flag has been obsoleted by RFC 8925.
Remove the EXPERIMENTAL compile option from the kernel and remove
DRAFT_IETF_6MAN_IPV6ONLY_FLAG from userland.
This compile option was not enabled by default.
Also regenerate src.conf.5.

Reviewed by: bz
Differential Revision: https://reviews.freebsd.org/D56228
87bea33a67cad31661a6fb9ea4c62a5fc266cd98 Pouria Mousavizadeh Tehrani 2026-04-02 20:01:55

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

inpcb: use hashalloc(9)
While here remove ipi_lbgrouphashmask, as it is always has the same value
as ipi_porthashmask.

Differential Revision:  https://reviews.freebsd.org/D56174
8e1513dc67388b8551f202d19440815b8c9120e3 Gleb Smirnoff 2026-04-12 17:25:57

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

netinet: use hashalloc(9) for IP address hash
While here, slightly restyle ip_vnet_init() and use sparse initializer for
pfil_head_args.  There is no functional change wrt to pfil(9) hook
registration.

Differential Revision:  https://reviews.freebsd.org/D56175
adba114dfbfb02c6f332237abf070cbcc480f914 Gleb Smirnoff 2026-04-12 17:26:03

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

gif: use hashalloc(9)
Functional change is that on destruction INVARIANTS checks will run.  Also
the mask is no longer hardcoded, so makes it easier to make hash size a
tunable.

Reviewed by:            ae
Differential Revision:  https://reviews.freebsd.org/D56176
9992eb435829a910a2a25c564bf8d2ad7c6557b0 Gleb Smirnoff 2026-04-12 17:26:08

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

tcp lro: use hashalloc(9)
Reviewed by:          tuexen, rrs
Differential Revision:  https://reviews.freebsd.org/D56177
87ef3067acbddbf85f0bdef6d53bdde2b51cbc50 Gleb Smirnoff 2026-04-12 17:26:12

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

pf: use hashalloc(9) for key, id, src-node and udp-endpoint hashes
Reviewed by:          kp
Differential Revision:  https://reviews.freebsd.org/D56113
cd5ff4e841fb4236fa07da61b7c94531148881b8 Gleb Smirnoff 2026-04-12 17:26:16

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

Commit group #20: inpcb
inpcb: apply smr_advance(9)/smr_wait(9) trick only to reusable sockets

The protocols marked with PR_CONNREQUIRED can never go through pr_connect
after being disconnected.  This is a tiny improvement of fdb987bebddf0.

While here push clearing of the addresses under the same condition.
Although this clearing originates from pre-FreeBSD times, it actually
makes sense only for protocols that can reconnect.

Reviewed by:            pouria, markj
Differential Revision:  https://reviews.freebsd.org/D55661
202370905f11be4e2c7afa18e73d374204fda08e Gleb Smirnoff 2026-04-12 18:30:44

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


inpcb: retire the inpcbinfo list lock

With the SMR locking of inpcbs the use of this lock reduced down to the
global list and generation number.  It was used only on an inpcb creation
and destruction.  Use the inpcbinfo hash lock for this purpose.

Reviewed by:            pouria, rrs, markj
Differential Revision:  https://reviews.freebsd.org/D55966
2cfe62664ab74756e40e17f7b8692d7a07531b83 Gleb Smirnoff 2026-04-12 18:30:59

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


inpcb: retire the inpcb global list

The iteration over all pcbs is possible without the global list. The
newborn inpcbs are put on a global list of unconnected inpcbs, then after
connect(2) or bind(2) they move to respective hash slot list.

This adds a bit of complexity to inp_next(), but the storage scheme is
actually simplified.

One potential problem before this change was that a couple of pcbs fall
into the same hash slot and are linked A->B there, but they also sit next
to each other in the global list, linked as B->A.  This can deadlock of
course.  The problem was never observed in the wild, but I was able to
instrument it with lots of effort: just few pcbs in the system, hash size
reduced down to 2 and a lot of repetitive calls into two kinds of
iterators.

However the main motivation is not the above problem, but make a step
towards splitting the big hash lock into per-slot locks.

Differential Revision:  https://reviews.freebsd.org/D55967
ac5b9628002c7c97929984eb578918077d564be4 Gleb Smirnoff 2026-04-12 18:31:09

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


inpcb: make in_pcbdisconnect() acquire the hash lock internally

Should be no functional change.

Reviewed by:            pouria, markj
Differential Revision:  https://reviews.freebsd.org/D55968
0ba87ded9d072b7b0605d2f4e8a7232b33b8787e Gleb Smirnoff 2026-04-12 18:32:06

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

netinet6: remove INP_DROPPED checks from setsockopt(2)
The INP_DROPPED is going to become an internal flag for inpcb.  As of now
it means a TCP pcb that is in TCPS_CLOSED.  There is nothing wrong with
calling setsockopt(2) on such socket, although has no practical use.

This deletes a piece of code from 56713d16a06c5 / D16201.  There is no
description of the panic fixed, but I will speculate that the panic was
about in6p->in6p_outputopts being NULL as the inpcb already went through
in_pcbfree_deferred().  This also can be related to compressed TIME-WAIT,
that is also gone now.

With current locking this shouldn't be possible.  An inpcb goes through
in_pcbfree() only with pr_detach method, which is called from sofree(),
and the latter is called on losing the very last socket reference.  So, at
the point when in_pcbfree() is called, the socket has lost its file
descriptor reference and there can not be any running setsockopt() on it.

Leave the call to ip6_pcbopt() still embraced with INP_WLOCK(), since we
are modifying inpcb contents.

NB: the IPv6 setsockopt(2) definitely has room for improvement.  Several
memory allocations should be moved out of lock and made M_WAITOK.
Covering large piece of setsockopt(2) code with epoch(9) just because
ip6_setpktopts() calls ifnet_byindex() isn't correct either.

Reviewed by:            markj
Differential Revision:  https://reviews.freebsd.org/D56169
ce283e115b023514a8886c1c1f1c68df7cd5e9a9 Gleb Smirnoff 2026-04-12 18:32:15

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

Commit group #21: inpcb
inpcb: make in_pcbbind() acquire the hash lock internally

Reviewed by:            markj
Differential Revision:  https://reviews.freebsd.org/D55970
8b4d0bec43116f5d4d1fba89d1b81f1d05805147 Gleb Smirnoff 2026-04-12 18:33:20

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


inpcb: make in_pcbconnect() acquire the hash lock internally

Reviewed by:            pouria, rrs, markj
Differential Revision:  https://reviews.freebsd.org/D55971
2c48736c55c2154327f7e9219d4d69224181ab72 Gleb Smirnoff 2026-04-12 18:33:30

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


inpcb: make in6_pcbsetport() acquire the hash lock internally

Reviewed by:            pouria, rrs, markj
Differential Revision:  https://reviews.freebsd.org/D55972
d7c409174d25f925c1e93f54957cdadb4545da3a Gleb Smirnoff 2026-04-12 18:33:41

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

udp: make in_pcbbind_setup() acquire the hash lock internally
Reviewed by:          pouria, rrs, markj
Differential Revision:  https://reviews.freebsd.org/D55973
acb79b56b1eb9ccd3efb519b6527116714ebf876 Gleb Smirnoff 2026-04-12 18:33:51

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

raw ip: remove extra argument to rip_dodisconnect()
No functional change.
1d0ea3dfb9cbc26e77491bacef1cbc5d72e0375d Gleb Smirnoff 2026-04-12 18:34:05

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

raw ip: move hash table manipulation to inpcb layer
The SOCK_RAW socket is a multiple receiver socket by its definition.  An
incoming packet may be copied to multiple sockets.  Thus, incoming packet
handling is expensive.  Systems with many thousands of raw sockets usually
have them connect(2)-ed to different destinations.  This allows for some
improvement of the input handling, which was introduced by 9ed324c9a588
back in 2008.  This optimization was made specifically for L2TP/PPTP VPN
concentrators based on ports/net/mpd5.

This change generalizes the idea of 9ed324c9a588, so that it potentially
can be used with IPv6 raw sockets.  This also eliminates last use of the
pcbinfo hash lock outside of in_pcb.c.

While here make a speculative design decision: put into the hash table
sockets that did only connect(2).  Previously, we were indexing only
sockets that were protocol bound, did bind(2) and did connect(2).  My
speculation is that only the remote IP provides some real entropy into the
hash and local address and proto are expected to be the same for majority
of the sockets.  My other speculation is that VPN concentrators other than
mpd5 may not bind(2) their sockets, thus not getting any use of the hash.

Differential Revision:  https://reviews.freebsd.org/D56172
ece716c5d34728a170f1dfe1b3389c267d6ddd1e Gleb Smirnoff 2026-04-12 18:35:13

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

ifnet: vnet_if_return(): Avoid unnecessary recursive acquisition of ifnet_detach_sxlock
vnet_if_return() will be invocked by vnet_sysuninit() on vnet destructing,
while the lock ifnet_detach_sxlock has been acquired in vnet_destroy()
already.

With this change the order of locking is more clear. There should be no
functional change.

Reviewed by:    pouria
Fixes:          https://cgit.freebsd.org/src/commit/?id=868bf82153e8 if: avoid interface destroy race
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56288
f1fae67afbb13a41d488d0e0ec66b1805925019c Zhenlei Huang 2026-04-13 04:38:43

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

ifnet: Move SIOCSIFVNET from ifhwioctl() to ifioctl()
SIOCSIFVNET is not a hardware ioctl. Move it to where it belongs.

Where here, rewrite the logic of checking whether we are moving the
interface from and to the same vnet or not, since it is obviously not
stable to access the interface's vnet, given the current thread may
race with other threads those running if_vmove().

MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D55880
38bd7ef62f318f791e232e217855307a9d75efa0 Zhenlei Huang 2026-04-13 04:38:44

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

if_clone: Make ifnet_detach_sxlock opaque to consumers
The change e133271fc1b5e introduced ifnet_detach_sxlock, and change
6d2a10d96fb5 widened its coverage, but there are still consumers,
net80211 and tuntap e.g., want it. Instead of sprinkling it everywhere,
make it opaque to consumers.

Out of tree drivers shall also benefit from this change.

Reviewed by:    kp
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D56298
e9fc0c538264355bd3fd9120c650078281c2a290 Zhenlei Huang 2026-04-13 04:38:44

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

Commit group #22: ifconfig: Add support for geneve (netlink)
ifconfig: Add support for geneve (netlink)

This implementation is netlink only

Differential Revision: https://reviews.freebsd.org/D55184
688e289ee904fe625d92f93680a71753d03ba2ee Pouria Mousavizadeh Tehrani 2026-04-11 18:38:41

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


ifconfig: Fix printf on geneve for 32-bit architectures

Replace uint64_t type with uintmax_t in printf to fix warnings
on 32-bit architectures.

Reported by:    Jenkins
Fixes:          https://cgit.freebsd.org/src/commit/?id=688e289ee904 ("ifconfig: Add support for geneve")
Differential Revision: https://reviews.freebsd.org/D55184
bc793ad78734acc4833f8f38bfb505e810c52963 Pouria Mousavizadeh Tehrani 2026-04-13 16:55:26

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


ifconfig: Do not build geneve with WITHOUT_NETLINK_SUPPORT

geneve(4) is netlink-only, therefore, don't build it with
WITHOUT_NETLINK_SUPPORT=1 set.

Reported by:    kp
Fixes:          https://cgit.freebsd.org/src/commit/?id=688e289ee904 ("ifconfig: Add support for geneve (netlink)")
Differential Revision: https://reviews.freebsd.org/D55184
19887b9c4cec9c6468481ef415bbf94f68592856 Pouria Mousavizadeh Tehrani 2026-04-16 22:40:02

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

debug: moved to network because 'Need to be grouped with 688e289ee904fe625d92f93680a71753d03ba2ee'

iflib: Fix panic observed while doing sysctl -a with if_bnxt unload
Observed below kernel panic calltrace while performing sysctl -a
operation while unloading the if_bnxt driver,

Fatal trap 9: general protection fault while in kernel mode

KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe02a7569940
vpanic() at vpanic+0x136/frame 0xfffffe02a7569a70
panic() at panic+0x43/frame 0xfffffe02a7569ad0
trap_fatal() at trap_fatal+0x68/frame 0xfffffe02a7569af0
calltrap() at calltrap+0x8/frame 0xfffffe02a7569af0

trap 0x9, rip = 0xffffffff80c0b411, rsp = 0xfffffe02a7569bc0, rbp = 0xfffffe02a7569be0 ---
sysctl_handle_counter_u64() at sysctl_handle_counter_u64+0x61/frame 0xfffffe02a7569be0
sysctl_root_handler_locked() at sysctl_root_handler_locked+0x9c/frame 0xfffffe02a7569c30
sysctl_root() at sysctl_root+0x22f/frame 0xfffffe02a7569cb0
userland_sysctl() at userland_sysctl+0x196/frame 0xfffffe02a7569d50
sys___sysctl() at sys___sysctl+0x65/frame 0xfffffe02a7569e00
amd64_syscall() at amd64_syscall+0x169/frame 0xfffffe02a7569f30
fast_syscall_common() at fast_syscall_common+0xf8/frame 0xfffffe02a7569f30

Root Cause:
iflib adds per-device sysctl nodes under the device tree using the device
sysctl context. Some of those nodes are counter sysctl that point at fields
inside txq→ift_br. When the if_bnxt driver is unloaded, iflib_device_deregister
runs and calls iflib_tx_structures_free, which frees the txqs ift_br. The device
sysctl tree is only freed when the device is destroyed. If sysctl -a runs during
unload, it can still traverse the device tree and call sysctl_handle_counter_u64
for those nodes. The handler does counter_u64_fetch(*(counter_u64_t *)arg1).
By then arg1 can point into freed memory and leads to use after free type kernel panic.

Fix:
flib now uses its own sysctl context for all iflib-related nodes
instead of using device’s context. And iflib sysctl context is now
removed before any queue/ring memory is freed.

MFC after:      2 weeks
Reviewed by:    gallatin, ssaxena, #iflib
Differential Revision: https://reviews.freebsd.org/D55981
d2b96f654a672f6059c5c623c276dcd76841ed12 Sreekanth Reddy 2026-04-13 06:28:08

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

iflib: drain admin task and fix teardown order on register failure
When IFDI_ATTACH_POST() fails (or netmap attach fails), iflib tears down with
ether_ifdetach(), taskqueue_free(ifc_tq), and IFDI_DETACH(). CTX_LOCK is still
held after ether_ifattach. ether_ifdetach() and taskqueue_drain(admin) must not
run under CTX_LOCK.

Teardown ordering (match iflib_device_deregister):

- Free the per-interface admin taskqueue after IFDI_DETACH / IFDI_QUEUES_FREE, not before.
- Drop IFNET_WLOCK() across IFDI_DETACH / IFDI_QUEUES_FREE so driver detach can sleep in
LinuxKPI workqueue drain, then retake IFNET_WLOCK() before iflib_free_intr_mem and fail_unlock.

MFC after:      2 weeks
Reviewed by:    gallatin, kgalazka, #iflib
Differential Revision: https://reviews.freebsd.org/D56316
439132310ae1f623f6c0a3dc241d0a34e98e040b Sumit Saxena 2026-04-13 06:33:46

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

routing: Fix use-after-free in finalize_nhop
FIB_NH_LOG calls the `nhop_get_upper_family(nh)` to read
`nh->nh_priv->nh_upper_family` for failure logging.
Call FIB_NH_LOG before freeing nh so failures are logged
without causing a panic.

MFC after: 3 days
7d38eb720a8d8345949986d779e785984ae19ae0 Pouria Mousavizadeh Tehrani 2026-04-14 09:36:53

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

inpcb: remove last use of relic u_quad_t
76b90c1d31b9bbe803f1d521398e0c1a10553a3b Gleb Smirnoff 2026-04-14 16:02:00

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

Commit group #23: tcp_close: Use in6_pcbdisconnect for INET6 sockets
tcp_close: Use in6_pcbdisconnect for INET6 sockets

This also fixes the LINT-NOINET builds.

Fixes:          https://cgit.freebsd.org/src/commit/?id=40dbb06fa73c ("inpcb: retire INP_DROPPED and in_pcbdrop()")
4fadf2466468dd6dcb6cf9e3739ed696a18c1bb4 John Baldwin 2026-04-14 18:07:51

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


inpcb: make in6_pcbdisconnect() just like in_pcbdisconnect()

Allow to be passed with already unconnected inpcb.

Fixes:  https://cgit.freebsd.org/src/commit/?id=4fadf2466468dd6dcb6cf9e3739ed696a18c1bb4
6b00c652db7f43c698e8e3a902f266025c3126ac Gleb Smirnoff 2026-04-14 23:23:26

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

in_pcb: Fix RIPCB_HASH in kernels without INET or INET6
Only use hashes for protocols that are enabled in the kernel
configuration.

Fixes:          https://cgit.freebsd.org/src/commit/?id=ece716c5d347 ("raw ip: move hash table manipulation to inpcb layer")
0b77f92575cdfecb9920041c7c1d4cc26245e2ec John Baldwin 2026-04-14 18:25:19

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

if_geneve: Fix build without INET or without INET6
f4e5b45b11628416f596b3aec2ccd3056800a171 John Baldwin 2026-04-14 18:28:31

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

ifconfig: add CMIS support for 400GbE optics
Add support for CMIS based optics, typically used by 400GbE
and faster ethernet optics.   The CMIS standard requires paged
support for i2c ioctls.

This has been tested on an Nvidia ConnectX-7 and Broadcom
Thor2 400GbE NIC, and I have verified that optics vendor information,
light levels, and temperatures match the information provided by
various vendor tools.

Differential Revision: https://reviews.freebsd.org/D56265
Reviewed by: kbowling, sumit.saxena_broadcom.com
Sponsored by: Netflix
963f1a5455c9f94457c1fa122d18ab9c059db834 Andrew Gallatin 2026-04-05 21:43:48

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

Commit group #24: lro: move pkt rejection checks to leafs to avoid queueing non-LRO'able pkts
lro: move pkt rejection checks to leafs to avoid queueing non-LRO'able pkts

When lro mbuf queuing is enabled, we should not queue easily
reject-able packets. Queuing them does a bit of extra work (sorting,
timestamps) and can potentially delay urgent packets such as LACP
PDUs. This change moves simple rejection tests from lro_rx_common()
into lro_rx and (more importantly) into tcp_lro_queue_mbuf().

Note this change only moves the easy checks on forwarding and packet
metadata, where the rejection criteria is already hot in cache. It
does not move parsing and looking inside the packet to verify the
ether protocol, ip protocol, etc. This could be done, but we risk
essentially doubling the cache misses per-packet by doing so.

Differential Revision: https://reviews.freebsd.org/D56337
Reviewed by: rrs, tuexen
Sponsored by: Netflix
f707cc00ed124828e367b020d6b417842321f641 Andrew Gallatin 2026-04-13 21:33:17

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


tcp lro: fix vnet handling

Reported by:            Shawn Webb
Reviewed by:            glebius, rrs
Fixes:                  https://cgit.freebsd.org/src/commit/?id=f707cc00ed12 ("lro: move pkt rejection checks to leafs to avoid queueing")
Sponsored by:           Netflix, Inc.
Differential Revision:  https://reviews.freebsd.org/D56420
2d13620c6e1be7f8136095f648a6b824158d0941 Michael Tuexen 2026-04-15 20:31:48

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

loopback: Account for packet drops
Make loopback packet drops more obvious by reporting them
in interface stats visable via netstat -ni
Since loopback uses netisr, packets can be dropped if the
netisr queue overflows.  These drops are visible via
netisr -Q, but its not an obvious place to look.

Differential Revision: https://reviews.freebsd.org/D56356
Reviewed by: glebius, tuexen
Sponsored by: Netflix
956acdce0505ca8028d287d3b44789c623c8f37e Andrew Gallatin 2026-04-14 19:43:28

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

routing: Make ip[6]_tryforward() FIB-aware for local traffic
`ip_tryforward()` and `ip6_tryforward()` checks whether the destination
address is local or not without considering if it belongs to the current FIB.
If the destination is local but not in our FIB, forward it instead
of returning it to ip_input().

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292319
Reviewed by:    zlei
MFC after:      1 week
MFC to:         stable/15
Differential Revision: https://reviews.freebsd.org/D56353
bf41d86df0d9dc4a1342c579f4e72db3c66b3443 Pouria Mousavizadeh Tehrani 2026-04-11 12:58:28

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

ip_mroute: Fix a lock leak in X_ip_mforward()
If a FIB does not have a router configured, X_ip_mforward() would leak a
lock.  Plug the leak.

The IPv6 counterpart did not have such a check.  It wouldn't send an
upcall to a non-existent router anyway due to the router_ver check, but
we should verify that a router is present anyway.

Add regression test cases to exercise these code paths.

Reported by:    Claude Opus 4.6
Fixes:          https://cgit.freebsd.org/src/commit/?id=0bb9c2b665d9 ("ip6_mroute: FIBify")
Sponsored by:   Klara, Inc.
Sponsored by:   Stormshield
18b7115cba2f698909a4801dc2cc1b04b1f4f210 Mark Johnston 2026-04-15 15:01:58

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

bpf: fix handling the read timeout on ppc64
On platforms other than amd64, BIOCSRTIMEOUT is equal to
BIOCSRTIMEOUT32. Therefore, running the COMPAT_FREEBSD32 code
basically clears tv_usec on big endian platforms. When tcpdump is
used, the timeout requested is 100ms, which gets cleared to 0 on
ppc64 platforms. This results in tcpdump showing the packets only
when the read buffer is full.
Thanks to kib for guiding me to the correct fix.

Reported by:            ivy
Reviewed by:            adrian, kib
MFC after:              3 days
Differential Revision:  https://reviews.freebsd.org/D56399
04b994d19eec68a6b5d27ff4b0fa223a05f00e1f Michael Tuexen 2026-04-15 19:24:05

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

nd6: Add support for route information (RFC 4191)
Implement RFC 4191 by handling received Router Adverisement (RA)
packets with route information option.
For default routes, use the route information's lifetime and
preference to overwrite the RA's lifetime/preference.
Also install and update more-specific route prefixes with the
option's lifetime and expire them when their lifetime elapses.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=263982
Reviewed by:    markj
Tested by:      Marek Zarychta <zarychtam@plan-b.pwste.edu.pl>
Relnotes:       yes
Differential Revision: https://reviews.freebsd.org/D55449
c8d25804f56ae7c35eaa492b6110807a2675d41a Pouria Mousavizadeh Tehrani 2026-04-16 14:23:49

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

in_mcast: Fix a lock leak in inp_set_source_filters()
MFC after:    3 days
Reported by:    Claude Opus 4.6
bebc1a5b09e358b420077a1b5c0f85f8e7f0812f Mark Johnston 2026-04-16 19:57:57

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

tcp: use RFC 6191 for connection recycling in TIME-WAIT
Implement the criteria specified in RFC 6191 for recycling TCP
connections in TIME-WAIT.

Reviewed by:            rscheff, Marius Halden
Sponsored by:           Netflix, Inc.
Differential Revision:  https://reviews.freebsd.org/D56321
3a54aa3b0911bef15e014b8a8185e116efb0a918 Michael Tuexen 2026-04-17 07:11:41

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

Commit group #25: pf
pf: fix error handling in pf_sourcelim_add()

There are two issues in pf_sourcelim_add() error path:
  - stale pointers are left in pf_sourcelim_id_tree_inactive when
    duplicate source limiter instance is found in pf_sourcelim_nm_tree

  - overload table may leak when insertion of new source limiter instance
    fails.

Both issues reported and patch submitted by:
    Renaud Allard <renaud () allard ! it>

OK sashan@

Obtained from:  OpenBSD, sashan <sashan@openbsd.org>, 32063577ec
Sponsored by:   Rubicon Communications, LLC ("Netgate")
05ac1013984ced5b8b57430fe92a7074e34054ce Kristof Provost 2026-04-16 13:49:26

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


pf: pf_frag_compare() should not be using subtraction to compare fragment IDs

Issues reported and patch submitted by:
    Renaud Allard <renaud () allard ! it>

OK sashan@

Obtained from:  OpenBSD, sashan <sashan@openbsd.org>, 747740863c
Sponsored by:   Rubicon Communications, LLC ("Netgate")
5b7192230a15bbf2378b8f74278d21d4766c5110 Kristof Provost 2026-04-16 13:51:54

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


pf: use correct address family in pfr_pool_get()

pfr_pool_get() in call to pfr_prepare_network()must use af
instead of hardcoded AF_INET

Issues reported and patch submitted by:
    Renaud Allard <renaud () allard ! it>

OK sashan@

Obtained from:  OpenBSD, sashan <sashan@openbsd.org>, 8e156a5ebe
Sponsored by:   Rubicon Communications, LLC ("Netgate")
3c9cd6e4dc59202f2b150a5456541629b633af3b Kristof Provost 2026-04-16 13:53:15

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

in_mcast: Avoid calling sysctl_wire_old_buffer() in an epoch section
Wiring a virtual address range may require the thread to sleep, and this
is not permitted in an epoch section.

MFC after:      1 week
c1b514c88c76a4de906775d47b06388e62ab6845 Mark Johnston 2026-04-17 12:42:54

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

iflib: ignore reclaim coalescing when low on tx descriptors
If we are low on TX descriptors, bypass iflib_txq_can_reclaim()
and force a reclaim. This is intended to reduce the number of
output drops under heavy load when using simple transmit.

Differential Revision: https://reviews.freebsd.org/D56339
Sponsored by: Netflix
52e7958702be469a61a5e3173c20a08fc0721b4d Andrew Gallatin 2026-04-17 15:52:36

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

Commit group #26: iflib: accurately count bytes/segments for TSO
iflib: accurately count bytes/segments for TSO

When using software based ifnet counters, iflib has not factored
TSO into account when reporting the segments and bytes sent.
So it will underreport NIC bandwidth by a small percent,
and will undercount sent segments by a large factor.
Fix this by calculating the number of added segments the NIC
will send, and add header size multiplied by that number
to arrive at a correct accounting of segments and bytes sent.
This makes these software counters directly comparable to
hardware counters.

Doing this requires moving the calculation into iflib_encap() where
we have already parsed the packet and know the header size, MSS, etc.

Differential Revision: https://reviews.freebsd.org/D56338
Sponsored by: Netflix
3fade68cfdf95ee0b517b5d69b270bd8da633404 Andrew Gallatin 2026-04-17 15:45:22

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


iflib: fix book keeping

iflib_txq_drain() returns the number of consumed entries. In the case
of TSO, a single entry can contain multiple TCP packets.

Reported by:            Ricardo Branco, David Wolfskill
Reviewed by:            gallatin
Fixes:                  https://cgit.freebsd.org/src/commit/?id=3fade68cfdf9 ("iflib: accurately count bytes/segments for TSO")
Sponsored by:           Netflix, Inc.
Differential Revision:  https://reviews.freebsd.org/D56509
cca22c36c306dfabe13b1d1de10e8d27ef3c3bce Michael Tuexen 2026-04-18 19:57:40

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

carp: define CARP_AUTHLEN for carp_authlen field
Replace the bare 7 with a named constant.
d9e7dd4a19b81a78a801973f8f5231f46a6d20b8 Christos Longros 2026-04-17 18:32:01

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

Commit group #27: nd6
nd6: Break nd6_prefix_update out of prelist_update

if PI exists, call prefix_update, instead of doing it inside
the prelist_update.
no functional change intended.

Reviewed by: markj
Differential Revision: https://reviews.freebsd.org/D56130
d96e8cb4e72847ac545423460af122fa14b2b1f1 Pouria Mousavizadeh Tehrani 2026-04-16 22:18:02

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


nd6: Break pfxrtr_add out of nd6_prelist_add

Updating defrouter only required by `prelist_update()`.
since `nd6_prelist_add()` is a public function, exclude unsed
dr logic from it.

Reviewed by: markj
Differential Revision: https://reviews.freebsd.org/D56131
ced1de238fbe620e2b110c34561d63656bd2043c Pouria Mousavizadeh Tehrani 2026-04-16 22:19:18

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


nd6: Change prelist_update return type to void

The return value of `prelist_update()` is unused.

Reviewed by: markj, zlei
Differential Revision: https://reviews.freebsd.org/D56132
d022dd82059b6173505377d47e3d0048906f8311 Pouria Mousavizadeh Tehrani 2026-04-16 22:20:47

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


nd6: Ignore entire PI if violates RFC 4862 section 5.5.3

Ignore prefix information update earlier in `prelist_update()`.
If PI is invalid or autonomous bit is unset, we better to let our
SLAAC address expire and if we don't have any previous matching
prefix, better not to create new one.
Because either our router don't want us to have one anymore, or
the very RA is malicious.

Reviewed by: ae
Differential Revision: https://reviews.freebsd.org/D56133
05f2acd34483e9a2aa3d3b3d53e398cadab199ad Pouria Mousavizadeh Tehrani 2026-04-16 22:27:33

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


nd6: Remove anycast check in prelist_update

RFC 2462 is obsoleted by RFC 4862 and it made statements more
clear than before.
Considering SLAAC can't create anycast addresses by itself, remove
its check.
While here, update comments based on RFC 4862.

Reviewed by: markj, zlei
Differential Revision: https://reviews.freebsd.org/D56134
e8081190617741e348fc85f17ff90b066407fc0f Pouria Mousavizadeh Tehrani 2026-04-16 22:31:52

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


nd6: Break nd6_prefix_lifetime_update out of prelist_update

Logic of updating prefix lifetime is big enough that deserves
its own function.
While here, fix style.

Reviewed by: markj
Differential Revision: https://reviews.freebsd.org/D56135
5f27592e149fbbb6318ef6c4b72482e1a7a41ef4 Pouria Mousavizadeh Tehrani 2026-04-17 14:16:51

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


nd6: Remove goto and unused condition in prelist_update

While here, style it.

Reviewed by: markj, zlei
Differential Revision: https://reviews.freebsd.org/D56136
72043945c3c6e924ac57ace76ec0a4447d05d905 Pouria Mousavizadeh Tehrani 2026-04-17 16:57:47

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

net80211: radiotap: add more VHT flags, and struct
Add the struct for VHT information and flags for the known and flag
field as documented on radiotap.org.  iwlwifi has started filling in
these details.

While here, add Copyright information for all the additions in the
last years.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
125b09de09ec5ca1939de0207090513453b5908e Bjoern A. Zeeb 2026-04-14 15:21:27

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

routing: Initialize V_rt_numfibs earlier during boot
V_rt_numfibs can be set at compile time (with the ROUTETABLES kernel
config option) or boot time (with the net.fibs tunable).
vnet_rtables_init(), running during SI_PROTO_DOMAIN, was checking the
tunable and updating V_rt_numfibs accordingly, but that means that
earlier SYSINITs, such as vnet_mroute_init(), see the compile-time value
for V_rt_numfibs before it gets corrected in vnet_rtables_init().

Fix this by initializing V_rt_numfibs earlier, so that SYSINITs are less
likely to use the wrong value.

Add a comment describing the weird, preexisting semantic of resetting
rt_numfibs to 1 in VNET jails.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294510
Reviewed by:    glebius, zlei, pouria
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56473
2b264cb802b9b45306b1f3dfd3e9d4edfb23b2f6 Mark Johnston 2026-04-18 12:20:00

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

routing: Use a better error number in sysctl_fibs()
ENOTCAPABLE is for capsicum and its use here is inappropriate.  In
particular, note that syscallret() treats this value specially.

Reviewed by:    glebius, pouria, zlei
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56481
8de0fc10a1c2d65bdb39eff862266ab1f87902c8 Mark Johnston 2026-04-18 12:21:22

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

tcp: Allocate t_tcpreq_info on demand
When TCP_REQUEST_TRK is enabled, the tcb grows by 600 bytes
to accommodate the t_tcpreq_info[MAX_TCP_TRK_REQ] array.
Even when the option is enabled, not every connection is using
this feature.  So let's allocate it on-demand, and save 600
bytes in the common case.

Sponsored by: Netflix
Reviewed by: rrs, tuexen
Differential Revision: https://reviews.freebsd.org/D56484
29336f1c9d25c32896620a00a6218c332b37c4b7 Andrew Gallatin 2026-04-17 20:01:36

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

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 #28: 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/'

tests/tcp_hpts_test: Fix resource leaks
When a KTEST_EQUAL assertion fails, the test function returns, but this
can cause it to leak locks, which can trigger a panic under witness.
Add a variant which causes control flow to jump to a label in case of
failure, and use that to prevent this problem.

Reviewed by:    Nick Banks <nickbanks@netflix.com>, tuexen
MFC after:      1 weeks
Differential Revision:  https://reviews.freebsd.org/D56647
f7bf9fd6199c99284dbc899928d8ad62861da414 Mark Johnston 2026-04-27 01:17:36

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

pf: improve ASCONF chunk validation
When processing an ASCONF chunk we failed to verify that the chunk
length was at least 8 bytes. As a result we might end up passing a
negative length to pf_multihome_scan(). Fortunately this merely meant
the function did nothing, but we should discard such invalid packets, so
explicitly check for this.

MFC after:      1 week
Reported by:    Mark Johnston
Sponsored by:   Orange Business Services
bea1c2fcd7839fd90a8ce96d6dc6a033779bc3c2 Kristof Provost 2026-04-28 08:54:24

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

ctld: kernel-sourced portal groups are not dummies
The current and historical versions of ctld would flag our initial set
of kernel ports as dummies, because their portal groups were empty since
portals come from the configuration on-disk.

As a result, we would never try to remove a kernel port at startup that
didn't exist in the configuration (possibly a feature if you wanted
concurrent ctld(8)), and we would always try to port->kernel_add() on
ports in the configuration (even if they actually did have an existing
kernel port).

Flag these portal groups as kernel groups so that we avoid trying to add
ports that already exist.  It may be the case that the kernel_remove()
loop in conf::apply() needs to do something other than the current
`oldport->is_dummy()` to avoid removing ports that it isn't supposed to
be managing, but that wuld also seem to apply to LUNs that would be
removed today.

Reviewed by:    jhb
Differential Revision:  https://reviews.freebsd.org/D51782
d9c0594191f5c45d7f3c737350321ee59bfce9bf Kyle Evans 2026-04-28 20:51:50

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

pf: improve SCTP validation
As per RFC5061 "4.2.  New Parameter Types" the add/delete IP address
parameters (0xc001, 0xc002) may not be present in an INIT or INIT-ACK
chunk. They are only allowed to be present in an ASCONF chunk.

This also prevents unbounded recursion while parsing an SCTP packet.

Approved by:    so
Security:       FreeBSD-SA-26:14.pf
Security:       CVE-2026-7164
PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294799
Reported by:    Igor Gabriel Sousa e Souza
Sponsored by:   Orange Business Services
6f9ddb329b07099e392c78b6e4fef1c6252de0dc Kristof Provost 2026-04-26 09:34:55

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

inpcb: improve some internal function names
The 'hash' subword doesn't bring any additional information.  All inpcb
lookup functions operate on hashes.

For lookup functions that work on either exact hash or wild hash just
perform s/hash_//.  Rename in_pcblookup_hash() into
in_pcblookup_with_lock(), emphasizing its difference to
in_pcblookup_smr().  Rename in_pcblookup_hash_locked() to
in_pcblookup_internal(), as it doesn't return a locked inpcb and is used
only for internal purposes.  Note that the IPv6 sibling of this function
already lives by name in6_pcblookup_internal().  Some future changes will
make such naming more justified.

No functional change.

Reviewed by:            pouria, markj
Differential Revision:  https://reviews.freebsd.org/D56482
9b8eb70ca974c2c700f228adaceb9a6b9e918d00 Gleb Smirnoff 2026-04-29 16:19:03

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

inpcb: allow to specify different sizes for port and load balance hashes
Understand zero size as instruction to not allocate the hash.  Do not
allocate both hashes for rawip(4).  There are no functional changes to TCP
or UDP.

Reviewed by:            markj
Differential Revision:  https://reviews.freebsd.org/D56705
6883b120c53735ff1681ef96d257f376731f56b3 Gleb Smirnoff 2026-04-29 16:19:14

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

if_gre(4): Fix gre_clone_dump_nl address dump
Fix stack overflow by passing in_aliasreq instead of ifr
during netlink dump.

Fixes:  https://cgit.freebsd.org/src/commit/?id=e1e18cc12e68 ("if_gre: Add netlink support with tests")
c5a92616c41f9132d585c533e66dee88e98c73f2 Pouria Mousavizadeh Tehrani 2026-04-29 17:42:27

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

routing: Implement merge of nhgrp in new multipath route
Routing subsystem allows creating new multipath routes by
nexthop groups (e.g RTA_MULTIPATH in netlink), in case of
a second nexthop group on the same route, don't panic and
merge the existing nhgrp with new one.

Reviewed by: melifaro (except one comment)
Differential Revision: https://reviews.freebsd.org/D56187
dd945c6ba4ff8d444c4cb90a911d96c66b6fc4aa Pouria Mousavizadeh Tehrani 2026-03-31 19:13:48

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

netlink: Fix RTA_MULTIPATH on RTM_GETROUTE
Before this patch, netlink never returned RTA_MULTIPATH.
Also, add RTA_MULTIPATH attribute in way that don't confuse
non-mpath support consumers.

Differential Revision: https://reviews.freebsd.org/D56188
84bb3648d2151576ebd707b592942a1fd77aa2c4 Pouria Mousavizadeh Tehrani 2026-04-08 19:16:35

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

routing: Expire nhops inside the nhgrp
Fix route expiration of nhops that exists inside a nhgrp.

Differential Revision: https://reviews.freebsd.org/D56189
8a64738f5a93ea878425ee3f51e1b9efbd3f5d6e Pouria Mousavizadeh Tehrani 2026-04-19 10:58:25

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

Commit group #29: krb5: import MIT 1.22.2
krb5: import MIT 1.22.2

Merge commit '90c687295e2d62f9411fc5b571f5af4e8ee187a7'
736e411a737b9f57c1303e6d15c5afd4f63af0d3 Cy Schubert 2026-04-30 19:24:20

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


krb5: Adjust version to 1.22.2

Fixes:          https://cgit.freebsd.org/src/commit/?id=736e411a737b
8f46ba065143d9d89968a20b23844287d54c04a2 Cy Schubert 2026-05-01 00:57:39

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


krb5: Adjust additional version strings

Fixes:          https://cgit.freebsd.org/src/commit/?id=736e411a737b
c64ee36e5d09ecee4ce4951047014c8461734fb5 Cy Schubert 2026-05-01 14:40:19

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

krb5: Fix two NegoEx parsing vulnerabilities
Bring in upstream commit 2e75f0d93 fixing two CVEs. Upstream commit
log is:

 In parse_nego_message(), check the result of the second call to
 vector_base() before dereferencing it.  In parse_message(), check for
 a short header_len to prevent an integer underflow when calculating
 the remaining message length.

 Reported by Cem Onat Karagun.

 CVE-2026-40355:

 In MIT krb5 release 1.18 and later, if an application calls
 gss_accept_sec_context() on a system with a NegoEx mechanism
 registered in /etc/gss/mech, an unauthenticated remote attacker can
 trigger a null pointer dereference, causing the process to terminate.

 CVE-2026-40356:

 In MIT krb5 release 1.18 and later, if an application calls
 gss_accept_sec_context() on a system with a NegoEx mechanism
 registered in /etc/gss/mech, an unauthenticated remote attacker can
 trigger a read overrun of up to 52 bytes, possibly causing the process
 to terminate.  Exfiltration of the bytes read does not appear
 possible.
c9dd7bffa58c50b2f7ed9e66ace39197c468d8e6 Cy Schubert 2026-04-30 19:27:31

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

pfsync: reject invalid SCTP states
SCTP states should always have a src scrub object associated with them.
Crafted pfsync packets might not have this, leading to us derferencing a
NULL pointer on cleanup.

Validate the pfsync state insertion packet to make sure this is correct.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294989
MFC after:      1 week
Sponsored by:   Rubicon Communications, LLC ("Netgate")
bf6d00afdb6171ba04a1c5a7fde904cde87d212d Kristof Provost 2026-05-04 16:08:35

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

pf: do not reject rules with colliding hashes
We insert rules in pf_krule_global solely for the benefit of the
'keepcounters' feature. Failing to insert (beause the rule hash
collides, or an identical rule already exists) would be worse than
restoring counts to the wrong rule (or failing to restore them at all).

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=282863, https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294860, https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294859, https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294858
MFC after:      3 days
Sponsored by:   Rubicon Communications, LLC ("Netgate")
Differential Revision:  https://reviews.freebsd.org/D56745
a0e4c65f1814a7a677364dc29bb703f84323d175 Kristof Provost 2026-04-29 15:04:44

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

pfctl: handle errors from PFNL_CMD_GETSTATES
Sponsored by: Rubicon Communications, LLC ("Netgate")
c24b1d9359b899c7532d5b296f37cf3d74a36942 Kristof Provost 2026-05-05 16:57:25

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

if_vlan: Use the exclusive lock everywhere
Running sys/net tests in parallel reveals some panics which look like
the one below:

```
shared lock of (sx) vlan_sx @ /home/markj/sb/main/src/sys/net/if_vlan.c:2395
while exclusively locked from /home/markj/sb/main/src/sys/net/if_vlan.c:1850
panic: excl->share
cpuid = 9
time = 1776467219
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe00d84e0780
vpanic() at vpanic+0x136/frame 0xfffffe00d84e08b0
panic() at panic+0x43/frame 0xfffffe00d84e0910
witness_checkorder() at witness_checkorder+0xdb1/frame 0xfffffe00d84e0ad0
_sx_slock_int() at _sx_slock_int+0x64/frame 0xfffffe00d84e0b10
vlan_ioctl() at vlan_ioctl+0x25c/frame 0xfffffe00d84e0b70
if_setflag() at if_setflag+0xdc/frame 0xfffffe00d84e0be0
ifpromisc() at ifpromisc+0x27/frame 0xfffffe00d84e0c00
vlan_setflags() at vlan_setflags+0x64/frame 0xfffffe00d84e0c30
vlan_unconfig_locked() at vlan_unconfig_locked+0xb7/frame 0xfffffe00d84e0c70
vlan_clone_destroy() at vlan_clone_destroy+0x5d/frame 0xfffffe00d84e0cb0
if_clone_destroyif_flags() at if_clone_destroyif_flags+0x8c/frame 0xfffffe00d84e0cf0
if_clone_detach() at if_clone_detach+0x106/frame 0xfffffe00d84e0d20
vnet_destroy() at vnet_destroy+0x154/frame 0xfffffe00d84e0d50
prison_deref() at prison_deref+0xaf5/frame 0xfffffe00d84e0dc0
sys_jail_remove() at sys_jail_remove+0x1a7/frame 0xfffffe00d84e0e00
amd64_syscall() at amd64_syscall+0x169/frame 0xfffffe00d84e0f30
fast_syscall_common() at fast_syscall_common+0xf8/frame 0xfffffe00d84e0f30
--- syscall (508, FreeBSD ELF64, jail_remove), rip = 0x25bd44705ca, rsp = 0x25bcfe72ab8, rbp = 0x25bcfe72b40 ---
```

All vlan interfaces are locked by a single recursive global lock.  There
are cases, like in the panic above where vlans are stacked on top of
each other, where the driver tries to acquire an exclusive lock while
holding a shared lock, and vice versa.

With longer-term goals of making the networking regression test suites
stable when run in parallel, and simplifying network control plane
locking, which I find is quite complex and buggy, let's change if_vlan
to use the exclusive lock everywhere.

Reviewed by:    pouria, zlei, kp, glebius
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D56778
486c2dfaa7b9ed1ed79662584c9b0f4fd0c23d67 Mark Johnston 2026-05-06 11:48:24

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

pfctl: optionally print the rule in the state overview
When dumping states optionally (at '-vv') also show the rule which
created the state. This can be helpful if the ruleset changed and we
want to know what rule created the state.

Sponsored by:   Rubicon Communications, LLC ("Netgate")
726ff260ecfa38878aec982456c44ddb0f9c791b Kristof Provost 2026-05-05 12:42:16

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

if_geneve: Fix uninitialized variable use in geneve_udp_input()
Set the ifp variable as soon as soft_c becomes available
so that interface statistics can be incremented.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=295129
Reported by:    Robert Morris <rtm@lcs.mit.edu>
Fixes:          https://cgit.freebsd.org/src/commit/?id=e44d2e941e8e ("if_geneve: Add Support for Geneve ...")
70ef02b5d3fdbc4f51ea81404c4cbca310083ce6 Pouria Mousavizadeh Tehrani 2026-05-10 19:25:53

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

if_media: Claim 10BASE-T1S and 10BASE-T1L constants
These are two single-pair Ethernet (SPE) variants that run at 10 Mbps.
10BASE-T1S has automotive origins and supports multiple nodes on up to
25m of cable.  10BASE-T1L is intended for building and industrial
automation and supports long-distance point to point links of over 1km.

Reviewed by:    kbowling
Differential Revision: https://reviews.freebsd.org/D56952
a3036edd0292291a71fb74ba2bce355159ac6913 Ed Maste 2026-05-04 23:48:25

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

ipfw: fix IPv6 flow label matching
* do not require just only ip6 proto for flow-id opcode in ipfw(8).
  ipv6-icmp, tcp, udp should be fine too.
* fix off-by-one bug leading to out-of-bounds read.
* apply IPV6_FLOWLABEL_MASK before comparison in flow6id_match(),
  so flow-id opcode will match a specified flow label. No need to
  take protocol version and traffic class into account.
* add the test to verify that opcode is working correctly.

Reviewed by:    pouria
Obtained from:  Yandex LLC
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56869
3d39eadcdeb301e95abdc94b1ad5d1255fa0f446 Boris Lytochkin 2026-05-12 07:44:10

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

lacp: fix link state with multiple aggregators
When we have multiple aggregators, the link state should reflect the
state of the active aggregator.

This change was prompted by a script pruning 10GbE interfaces from an
lacp bundle with 100GbE interfaces. Mixing speeds like this creates multiple
aggregators.  When the last 10GbE interface was removed, lagg0 would loose
link because the current aggregator's port count would drop to 0, even
though the 100GbE aggregator had active ports. This left the system in a
hard to diagnose state where lagg0 reported "active", but all outgoing
IP traffic was dropped, due to the RT_LINK_IS_UP() check noticing lagg0's
if_link_state was marked as down.

Reviewed by: zlei
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D56579
9f69446d45484c16d2b9b9bf71bbb2fca86cb6e5 Andrew Gallatin 2026-05-12 12:52:24

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

tests/tcp_hpts_test: Fix more resource leaks
Address leaks that I missed in commit f7bf9fd6199c
("tests/tcp_hpts_test: Fix resource leaks").

Reviewed by:    Nick Banks <nickbanks@netflix.com>, tuexen
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56943
26bffe5695d7cab2e797ce4ad153f324c0262f48 Mark Johnston 2026-05-12 17:44:31

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

if_vxlan: Update *m0 after a pullup
vxlan_input()'s caller is supposed to free *m0 if it is non-NULL after
the function returns.  vxlan_input() failed to update *m0 after the
pullup however, so if it hits an error case after the pullup, we'll free
the mbuf twice.  Currently this can happen only if the interface is
brought down or due to a packet loop.

Reported by:    Yuxiang Yang, Yizhou Zhao, Xuewei Feng, Qi Li, and Ke Xu from Tsinghua University using GLM5.1 from Z.ai
Reviewed by:    pouria, zlei
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56944
a6c4fe2d1a38885914b1c3e85508b965ccdb7874 Mark Johnston 2026-05-12 17:50:15

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

rtnetlink: Check for allocation failure in nlattr_get_multipath()
Check for alloction failure on `npt_alloc()` for RTA_MULTIPATH
attributes in `nlattr_get_multipath()`.
Also, add tests for maximum number of rtnexthop in rtnetlink.

Reported by:    Joshua Rogers of AISLE Research Team
Reviewed by:    markj
MFC after:      3 days
Differential Revision: https://reviews.freebsd.org/D56954
188631e43a1a5d2985156141c2e244a925670683 Pouria Mousavizadeh Tehrani 2026-05-11 19:53:21

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

rtnetlink: Align RTA_MULTIPATH length validation in nlattr_get
Fix length validation of RTA_MULTIPATH attributes in
nlattr_get_multipath() by making sure the user request is align.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=295102
Reported by:    Robert Morris <rtm@lcs.mit.edu>
Reviewed by:    markj
Fixes:          https://cgit.freebsd.org/src/commit/?id=7e5bf68495cc ("netlink: add netlink support")
MFC after:      3 days
Differential Revision: https://reviews.freebsd.org/D56963
4329663a861ef74796b79b6b0872cfe10d31c591 Pouria Mousavizadeh Tehrani 2026-05-12 11:34:28

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

openssh: Add reference for another local patch
A bug fix was committed locally and submitted upstream.  Document it in
our upgrade instructions, as these sometimes take a long time before
getting merged.

Sponsored by:   The FreeBSD Foundation
6531070132b0210aaaeb08c0dc93cb272bed348e Ed Maste 2026-05-15 16:16:45

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

openssh: Fix SIZEOF_TIME_T in freebsd-configure.sh
Sponsored by: The FreeBSD Foundation
Reviewed by:    jlduran
Differential Revision: https://reviews.freebsd.org/D57053
0b0e5daf4333a0faf93133f7d2c7b3743eead9d8 Ed Maste 2026-05-17 17:05:26

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

openssh: Regen config.h to fix i386 SIZEOF_TIME_T
Fixes: https://cgit.freebsd.org/src/commit/?id=2574974648c6 ("OpenSSH: Update to 10.3p1")
Sponsored by:   The FreeBSD Foundation
f5993872faf5dbd5c142857e9633b11e330f8c38 Ed Maste 2026-05-18 02:52:12

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

Commit group #30: tcp: Make RFC 6191 support configurable
tcp: Make RFC 6191 support configurable

Add a default-on per-VIMAGE sysctl for RFC 6191 connection recycling.
This makes it possible to merge the change to older branches where it
can be switched off by default to minimize risk.

MFC after:      1 week
Sponsored by:   Klara, Inc.
Sponsored by:   Modirum MDPay
Reviewed by:    pouria, marius.h_lden.org, tuexen
Differential Revision:  https://reviews.freebsd.org/D57045
2af70d7a384934cee497fb6d75678e04f1416287 Dag-Erling Smørgrav 2026-05-18 14:50:14

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


tcp: Fix typo in RFC 6191 sysctl

Fixes:          https://cgit.freebsd.org/src/commit/?id=2af70d7a3849 ("tcp: Make RFC 6191 support configurable")
MFC after:      1 week
Sponsored by:   Klara, Inc.
Sponsored by:   Modirum MDPay
78074011acee4c3e859ffd37009abb56cc6c8c56 Dag-Erling Smørgrav 2026-05-18 14:59:25

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

debug: moved to network because 'Need to be grouped with 2af70d7a384934cee497fb6d75678e04f1416287'

System administration

Stuff in man section 8 (other than networking).

rtadvd: Fix validation of the MTU parameter when parsing config
MFC after:    1 week
607f6be6ec19f49ff595226afe1c8aa6515c59a0 Mark Johnston 2026-04-01 12:14:24

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

route(8): Show weight of nexthop in multipath routes
Reviewed by: zlei, markj
Differential Revision: https://reviews.freebsd.org/D56202
759d8a13a3b4510b7fab4d6c32e5a8de5ab056e7 Pouria Mousavizadeh Tehrani 2026-03-31 19:50:51

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

bhyve/virtio: Fix comparison of integer expressions of different signedness
It's a bit silly to have iov_to_buf() and buf_to_iov() return a ssize_t
to begin with, just to be able to return -1 for error. Change this to
size_t and use 0 as an error indicator, which won't require any changes
to the code using these functions.

While here, switch iov_to_buf() to use reallocf() instead of realloc().

Reviewed by: jhb
Fixes: https://cgit.freebsd.org/src/commit/?id=2a514d377b37 ("bhyve/virtio-scsi: Preallocate all I/O requests")
Differential Revision: https://reviews.freebsd.org/D55800
970e0db1c38b8b5f873e7c9797bb9abcad76a1d7 Hans Rosenfeld 2026-03-09 18:10:54

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

rtld: allow dlopen("#<number>/<path>")
When a specially formatted path is passed to dlopen(), of the form
  #number/path
and the number is the valid dirfd file descriptor listed in the
LD_LIBRARY_FDS, interpret it as a relative path name against dirfd
number.

This complements the result returned from dladdr() for such objects
in dli_fname.

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56152
ffbf3fecdeffa17c0745e7ed342989acb620d68e Konstantin Belousov 2026-03-29 22:45:49

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

rtld: add test for dlopen("#dirfd/path")
Reviewed by:  markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:   https://reviews.freebsd.org/D56152
72252591ac01037fa53501adb88f00d5d3cc09ed Konstantin Belousov 2026-03-30 00:42:00

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

Commit group #31: tunefs: Don't lower WARNS
tunefs: Don't lower WARNS

Use casts to silence the alignment warnings instead of potentially
suppressing other legitimate warnings.

MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56033
c5e79c7e93dda07c383be9b99a1a91894652f546 Dag-Erling Smørgrav 2026-04-02 11:21:59

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


tunefs: Fix alignment warning on arm64

MFC after:      1 week
Fixes:          https://cgit.freebsd.org/src/commit/?id=c5e79c7e93dd ("tunefs: Don't lower WARNS")
Reviewed by:    bakul
Differential Revision:  https://reviews.freebsd.org/D56229
616f47f176c308a29b1f4a6bba1b1a4dc01c3091 Dag-Erling Smørgrav 2026-04-02 21:23:47

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

tunefs: Add tests
MFC after:    1 week
Reviewed by:    ngie
Differential Revision:  https://reviews.freebsd.org/D56034
6630c3a73688ae3c33df892f6802bea5b8460e17 Dag-Erling Smørgrav 2026-04-02 11:22:05

debug: classified in 03-filenames_plain1 by '['etc/', 'sbin/']'

New version of jng (2.0)
Changes for jng 1.0 -> 2.0 include:

+ Add experimental MSS clamping
+ Add support for ng_bridge(4) NGM_BRIDGE_GET_STATS (getstats)
+ Add JSON formatted ng_bridge(4) statistics (see above) via "jng stats -j <name>"
+ Add error messages
+ Minor refactoring for code readability (read: quietly() function)
+ Rename eiface variables to jiface to clarify as-for jail interface (not ng_eiface(4))
+ Fix missing description for alternate form of "jng show" usage
+ Update "jng show <name>" to accept multiple names (now "jng show <name> …" is allowed)
+ Update "jng shutdown <name>" to accept multiple names (now "jng shutdown <name> …" is allowed)
+ Add "-a" option to "jng stats" (as-in "jng stats -a") to show all ng_bridge(4) stats
+ Update "jng stats <name>" to accept any kind of name (make it easier to use)
+ Add version ident
+ Remove extraneous line in LICENSE section
+ Add -h to usage statements
+ Bump copyright

Reviewed by:    jlduran
Differential Revision:  https://reviews.freebsd.org/D43516
8e68f940c1d19aaf441c56b46583cbd9ab7448de Devin Teske 2026-04-04 19:39:22

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

Commit group #32: tunefs: Better fix for arm64 alignment issues
tunefs: Better fix for arm64 alignment issues

Rather than trust that the compiler will lay out the stack frame the
way we expect it to, use a union to force the correct alignment.

MFC after:      1 week
Fixes:          https://cgit.freebsd.org/src/commit/?id=616f47f176c3 ("tunefs: Fix alignment warning on arm64")
Reviewed by:    kevans, mckusick
Differential Revision:  https://reviews.freebsd.org/D56245
8244dd326265867293b2286efc3d571f06ef0dab Dag-Erling Smørgrav 2026-04-07 13:54:28

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


tunefs: Fix pointer arithmetic

While here, remove a bogus const which has been there for years.

MFC after:      1 week
Reported by:    ivy@
Fixes:          https://cgit.freebsd.org/src/commit/?id=1b83e8a3f840 ("Constify string pointers.")
Fixes:          https://cgit.freebsd.org/src/commit/?id=8244dd326265 ("tunefs: Better fix for arm64 alignment issues")
Reviewed by:    kevans
Differential Revision:  https://reviews.freebsd.org/D56343
9d95d806691e4ef1411c6c3b892d8b774754d724 Dag-Erling Smørgrav 2026-04-11 19:23:08

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

lualoader: allow the local module to filter out the BE list
This allows something like the following local.lua to install a filter
to implement its own notion of hidden BEs using a naming convention of
a leading dot to hide them:

-- file: /boot/lua/local.lua
local core = require("core")

local function be_hide(be)
    if core.isSingleUserBoot() then
        -- All BEs are accepted for single-user
        return true
    end

    local name = be:match("/([^/]+)$")
    if not name then
        -- Accept malformed BEs, for whatever reason
        return true
    end

    return name:match("^%.") == nil
end

if core.bootenvFilter then
    -- Just in case we need to be compatible with older versions of
    -- core.lua without the filtering functionality.
    core.bootenvFilter(be_hide)
end
-- EOF

Requested by:   Marek Zarychta
Reviewed by:    imp
Differential Revision:  https://reviews.freebsd.org/D55359
bf0881060ecd75ce79683b82ebcd4809eadf7cf5 Kyle Evans 2026-04-08 12:49:18

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

Commit group #33: arm64: Add arm64 SVE tests
arm64: Add arm64 SVE tests

Add the tests/sys/arch directory for architecture-specific tests and
use it to add arm64 SVE tests. These test the kernel is managing the
SVE state in a way we expect.

These tests require SVE hardware support to run so will skip when they
can't detect it.

Reviewed by:    markj
Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D43311
0ddaa4c86d68e8dacee8a78877e5742d53c122b3 Andrew Turner 2026-04-08 14:17:55

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


test/sys/arch: Fix arch without test/sys/arch/${MACHINE_ARCH}

Fixes:          https://cgit.freebsd.org/src/commit/?id=0ddaa4c86d68 ("arm64: Add arm64 SVE tests")
Sponsored by:   The FreeBSD Foundation
8672683ec80a6767b1aa12dedeed94d20ec57911 Li-Wen Hsu 2026-04-09 15:49:56

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

debug: moved to admin because 'Need to be grouped with 0ddaa4c86d68e8dacee8a78877e5742d53c122b3'

installer: Add download.freebsd.org to mirror list
download.freebsd.org is backed by project mirrors and a CDN, which
should benefit most users.

Sponsored by:   The FreeBSD Foundation
Reviewed by:    delphij (releng)
MFC after:      3 days
Differential Revision: https://reviews.freebsd.org/D54849
45079cdf8b517adf803db7dc7aa85e5728cfeb2f Li-Wen Hsu 2026-04-09 04:06:19

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

gptzfsboot: boot prompt should emit new line on input
In case the user did input, we should put newline
on screen to avoid possible error messages to get
mixed with user input.
c1c97f18b5b9110b3222816ed9129a882b6b5931 Toomas Soome 2026-04-09 10:48:15

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

loader.efi: panic() should show stack trace
Because panic() does provide mechanism to have architecture specific
panic call, we can instruct it to print out stack trace too
(in hope we actually can print). While there, also implement simple
check to detect loop in trace.

illumos issue: https://www.illumos.org/issues/17887
aacf448007f7adbcdb528556cabcd120c9e8cb75 Toomas Soome 2026-04-09 11:36:12

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

Allow passing xtras to safe_set
This allows safe_set to be leveraged in other contexts
where additional chars like '*' or '!' or even '\[\]' need to
be preserved in the result.
de9fe28ab8476ca25a63066503f5fb40dcdd5719 Simon J. Gerraty 2026-04-10 16:08:02

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

Pass severity to vectx_open() rather than vectx_close()
file_loadraw() can have a need to load unverified files
like "dtrace_dof".  Allow severity_guess() to look at the filename
but if it returns less than VE_MUST check that the type is not
one we insist on verifying.

In vectx_open if severity < VE_MUST we can allow it to be unverified.
If passed VE_GUESS we call severity_guess().
Regardless, we record severity in ctx so it is available to vectx_close().

Sponsored by: Hewlett Packard Enterprise Development LP

Reviewed by:    khng
Differential Revision:  https://reviews.freebsd.org/D56297
35bbdfad28626255c63360d98c45e41f2c692ef0 Simon J. Gerraty 2026-04-10 17:43:15

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

hccontrol: Support generic Bluetooth LE AdvData
hccontrol LE_Set_Advertising_Data does not currently allow construction
of manufacturer-specific type 0xFF AdvData.  Fixed by a new data-entry
option -b "b1,b2,b3,...,bn" where b's are 8-bit byte strings (octets).

Signed-off-by: F. Duncanh <fduncanh@gmail.com>
Reviewed by: takawata, pouria
Pull Request: https://github.com/freebsd/freebsd-src/pull/2082
2c6feab253297c21d00601ceef818fcbe4da70d8 F. Duncanh 2026-03-18 05:14:26

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

loader.efi.8/efibootmgr.8: Don't use contradicting term 'EFI BIOS'
Both (U)EFI and BIOS are completely different things, be precise and don't use
them together.

Reviewed by:    imp
MFC after:      3 days
Differential Revision:  https://reviews.freebsd.org/D56329
4f684e929de1275b1099b17b2a2cff0d3f4af223 Michael Osipov 2026-04-09 11:39:41

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

mfiutil(4)/mrsasutil(4): "show drives" truncates information
Improve mfi_pd_inq_string() by
* Reusing buffer sizes from cam/cam.h according to SCSI specification + NULL byte
* Don't truncate vendor-specific information by escaping into a too small buffer
* Use cam_strvis() from libcam instead of old, outdated local copy
* Recaculate size of inq_string based on the reused buffer sizes and
  format statements

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294354
Reviewed by:    imp
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D56328
850eb149e7ab0733fcf9469a607dca223ff467ad Michael Osipov 2026-04-09 09:19:36

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

daemon(8): Add "--output-file -o" to list of options enabling supervision mode
This is the small internal doc fix from https://reviews.freebsd.org/D46313

Reviewed by:    michaelo
Approved by:    (blanket; comment fix)
MFC after:      3 days
Differential Revision:  https://reviews.freebsd.org/D55325
e9a69948a8837601d71e556550a272ca85c03e48 Andre Albsmeier 2026-04-12 16:10:59

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

iwmbtfw(8): Identify device type based on HCI quieries result
rather than on VID/PID. Later is not reliable for some types.
VID/PID identification can be restored by specifying of -p option.

Tested by:      arrowd, wulf
PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=290639
MFC after:      1 week
84488787f42bc62b428da37793ac45d1411f2b74 Vladimir Kondratyev 2026-04-12 18:09:22

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

diskinfo: Align and alphabetize options
MFC after:    3 days
afe57c12e97d5c8773d829c2914f35462a7cdd0c Alexander Ziaee 2026-04-13 01:59:33

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

rc.d/NETWORKING: remove the NETWORK alias
NETWORKING is the documented placeholder, while
/etc/rc.d/NETWORKING still provides the legacy alias
NETWORK.

The NETWORKING script was originally introduced to avoid
conflicts with NetBSD's lowercase network script on
case-insensitive file systems.  The NETWORK alias was
retained for compatibility with older scripts.

Following the discussion in PR 293652, remove the legacy
NETWORK alias from 16-CURRENT.  Keeping both names adds
more confusion than value now that NETWORKING is the
documented placeholder and current base system and ports
tree uses are already clean.

Add an UPDATING entry to note that local RC scripts using
REQUIRE: NETWORK should be migrated to REQUIRE: NETWORKING.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293652
Reviewed by:    michaelo, jlduran
Relnotes:       yes
Differential Revision:  https://reviews.freebsd.org/D56300
47a9af4b39bf174efed7f6d43644d4b0bc0c9886 Aotian Cao 2026-04-08 07:58:00

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

periodic/daily: show verbose zpool status when errors are detected
When zpool status -x reports errors, the output only shows basic error
counts without identifying which files are affected. Replace the
unconditional echo of the brief status with verbose output (zpool
status -v) in the error path so administrators can see exactly which
files have been damaged.

The healthy/no-pools path still shows the brief status.

PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=223243
Signed-off-by: Po Han Chen <hypery11@gmail.com>
Reviewed by: imp, jlduran, asomers
Pull Request: https://github.com/freebsd/freebsd-src/pull/2089
92378e0405a8caf77372cd1028970b1f7c7cf364 Po Han Chen 2026-03-23 05:00:29

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

pmcstat: print raw TSC in decoded log output
Extend pmcstat -R output to include the raw TSC for each decoded record
and print tsc_freq from the initialize record so TSC deltas can be
converted to elapsed time.

Update the pmcstat documentation to describe the decoded output and the
architecture-specific TSC behavior.

Sponsored by: AMD
Signed-off-by: Andre Silva <andasilv@amd.com>
Reviewed by: imp, mhorne, Ali Mashtizadeh
Pull Request: https://github.com/freebsd/freebsd-src/pull/2085
ee12645ec737eb940554769af2c275524ea20d37 Andre Silva 2026-03-31 20:28:39

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

virtual_oss: Introduce virtual_oss_default_control_device rc variable
The -t option gives the user the ability to create a control device for
a given virtual_oss(8) instance, so that the instance's configuration
can be manipulated during runtime with virtual_oss_cmd(8). As is
expected, the control device's name is not known, since it is specified
by the user.

This patch introduces a virtual_oss_default_control_device rc variable,
which defaults to "vdsp.ctl". The goal of this is that third-party
programs and scripts can access the control device of the default
virtual_oss(8) configuration without guessing. This is especially useful
for sbin/devd/snd.conf which deals with hot-swapping sound devices using
virtual_oss(8).

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D55670
70e27ecba51892cbe4cc94bbf785c6dd261dfd57 Christos Margiolis 2026-04-16 14:51:02

debug: classified in 03-filenames_plain1 by '['libexec/', 'sbin/']'

stand/libofw: make OF_hasprop() part of the library
Currently it is only needed by powerpc ofwfdt.c, and defined statically
there. Make it available as part of libofw, mirroring what we have in
the kernel.

Two small tweaks are made to the implementation:
  1. Return type is changed to bool
  2. Return 'true' when OF_getproplen() == 0. This matches the expected
     semantics of the kernel version, described in OF_hasprop(9).

Reviewed by:    manu, imp, adrian
MFC after:      3 days
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56429
48a05f833c7d0c089d37522cc234039ec823edf4 Mitchell Horne 2026-04-16 17:48:46

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

rtadvd(8): Set route info lifetime to 0 during shutdown
RFC 4191 section 3.1: if the received route's lifetime
is zero, the route is removed from the Routing Table if present.
Also, do not tell route information option is unknown.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=263982
Reviewed by:    markj
Differential Revision: https://reviews.freebsd.org/D55448
4dc6522d57c748cdaddd8327909574360a3de517 Pouria Mousavizadeh Tehrani 2026-04-01 13:29:15

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

pfctl: fix how source and state limiters are wired into rbtrees
i messed up when we added support for names on these things. the
id and names are each supposed to be unique, which is checked by
putting the one limiter into an rb tree based on their id and another
based on their name. unfortunately i used the same RBT_ENTRY fields
for both trees, which meant using both trees on the same limiter
corrupted the topology, which goes badly when you want to use
multiple limiters.

found by, tested, and ok dgl@ (who is not me, this is not a typo)
ok jmatthew@

Obtained from:  OpenBSD, dlg <dlg@openbsd.org>, f951d642cc
Sponsored by:   Rubicon Communications, LLC ("Netgate")
6f8ea66cbcf2e2e5bc82e8f0c2e0038a3c7d6a9e Kristof Provost 2026-04-16 09:16:29

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

loader.efi: Defer efi_translate(e_entry) until after bi_load
bi_load itself loads various things into the staging area which can
cause it to grow, which may result in the staging area moving, including
the kernel. Therefore the address we get for the kernel entry point
prior to bi_load may not be correct afterwards when we actually call it,
and so we must defer the translation.

On arm and riscv (but not arm64, which predates both of them in
loader.efi and did not gain a copy of arm's added printf when arm
support was added) we also printf this entry point to the console, which
we can no longer do since bi_load calls ExitBootServices, so remove this
printf that, in practice, seems to not be so useful, given nobody ever
felt the need to add it to arm64. If anyone really feels this is an
important printf to have then bi_load will need to be split so we can
call printf after all the loading and potential reallocation of the
staging area, but before ExitBootServices is called.

We may also want to make this code more uniform and shared between the
three architectures here, since there isn't much architecture-specific
about this (and something like the RISC-V boot hart protocol could
easily be made an MD hook).

Reviewed by:    imp
Fixes:          https://cgit.freebsd.org/src/commit/?id=0cafabf97fae ("Add support for arm64 to loader.efi and boot1.efi")
Fixes:          https://cgit.freebsd.org/src/commit/?id=ea7796a9ae6b ("EFI: don't call printf after ExitBootServices, since it uses Boot Services")
Fixes:          https://cgit.freebsd.org/src/commit/?id=2192efc03bc4 ("RISC-V boot1.efi and loader.efi support")
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56431
ab1d659e78e454995b7c2b4566e035269b215e48 Jessica Clarke 2026-04-17 14:20:12

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

boot1.chrp: Improve comment for the SLOF hack
Since this original comment was written, the actual issue in SLOF
was diagnosed and documented in commit 424089a0fc, which fixed it
for loader(8).  Update the comment in boot1 to be more informative
to future readers.

MFC after:      3 days
Reviewed by:    jhibbits, adrian
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D56470
eb0279550d52962241b4178101cd7f7d732eb682 Lexi Winter 2026-04-17 16:56:33

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

ping6: treat setsockopt failures as fatal
ping6 needs IPV6_RECVPKTINFO and IPV6_RECVHOPLIMIT to process
incoming replies. When these options fail, replies are silently
dropped and ping6 appears to hang. Use err(3) instead of warn(3)
so the user gets a clear error and immediate exit.

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

Reviewed by:    pouria, jlduran, glebius
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56237
9a4a9f623bbaf991b3ba580593d47f2ee9f7b03b Christos Longros 2026-04-17 18:19:24

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

stand/common/load_elf: Do kernel module relocations for PPC
reloc_ptr() skips relocations for the kernel module, because on most
platforms the kernel is ET_EXEC and this is not required.  On PPC,
the kernel is ET_DYN and we need to relocate here, otherwise the
module metadata will not be loaded properly and the kernel module
will have an incorrect version, preventing module dependencies from
resolving.

This fixes loading kernel modules from loader.conf on powerpc.

Diagnosed by:   jrtc27
Reviewed by:    jrtc27, adrian
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D56457
ba94d75749721fae999f756cb227638f9d4398a8 Lexi Winter 2026-04-18 12:07:10

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

service(8): Replace indentation in usage()
The -d option was indented with spaces instead of tabs, and this broke
formatting.

Before:

-d                Enable debugging of rc.d scripts
-j              Perform actions within the named jail

After:

-d              Enable debugging of rc.d scripts
-j              Perform actions within the named jail

MFC after:      1 week
554f5aa526266057672740e22af0a75cc32bddd5 Christos Margiolis 2026-04-19 10:40:31

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

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/'

caroot: Clean up
* Get certdata.txt directly from the NSS Mercurial repository, rather
  than from the Mozilla Firefox repository which imports it from NSS at
  irregular intervals.

* Instead of always fetching the latest certdata.txt, fetch a specific
  version.  For this commit, we set this to the version that was last
  imported in May 2025.

* Add a refrence to the MPL to the generated files.

* Regenerate with latest OpenSSL.  This is purely cosmetic; mostly, the
  certificate names now contain less unnecessary whitespace and some
  elements are quoted.

MFC after:      1 week
Reviewed by:    michaelo, kevans
Differential Revision:  https://reviews.freebsd.org/D56620
ce33d6396aadb0613f1e74661bdbec571f836a60 Dag-Erling Smørgrav 2026-04-27 09:32:19

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

caroot: Regenerate
Regenerate using certificate data from NSS 3.123.1.

MFC after:      1 week
Reviewed by:    kevans
07b52233e8b74c5ac884b9c9a894f57fad8dbd00 Dag-Erling Smørgrav 2026-04-27 09:32:51

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

Commit group #34: mixer(8): Deprecate some unintuitive control values
mixer(8): Deprecate some unintuitive control values

This is a follow-up to cc7479d7dc9b ("mixer(8): Improve mute and recsrc
controls"). These deprecated values will be completely removed on
2026-06-15.

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Reviewed by:    0mp
Pull Request:   https://ron-dev.freebsd.org/FreeBSD/src/pulls/21
a28bb575c89c8de62684419ece1ff5e070e4ce24 Christos Margiolis 2026-04-23 12:06:15

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


mixer(8) tests: Remove tests for deprecated control values

Fixes:          https://cgit.freebsd.org/src/commit/?id=a28bb575c89c ("mixer(8): Deprecate some unintuitive control values")
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
54922e4ec8909829a7ca8d2158c2a514a06df094 Christos Margiolis 2026-04-27 22:59:38

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

debug: moved to admin because 'Need to be grouped with a28bb575c89c8de62684419ece1ff5e070e4ce24'

bsdinstall: Add SPDX-License-Identifier tags
Reviewed by:  emaste
Sponsored by:   The FreeBSD Foundation
80c73c89dc6a156a119350d7c28c6db1f3b741df Tuukka Pasanen 2026-02-16 09:10:57

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

bsdinstall: Improve auto-partition message
Manually tuning ZFS for systems with <8GB ram hasn't been necessary at
least since the switch to OpenZFS. We have users reporting using 1GB RAM
with no manual tuning/issues. Further, the page this links to is a stale
wiki page, which is causing complaints. Remove this misleading note and
replace it with a similar message for UFS. While here, reword that note
to be a bit clearer.

PR:                     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=287719
MFC after:              3 days
Differential Revision:  https://reviews.freebsd.org/D50971
5ed26c21e4ff1d478d4611abbf3dc14cc1b77244 Alexander Ziaee 2026-04-28 16:59:19

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

efibootmgr: Show attributes, category and optional data when verbose
Also rework a bit the way device path are displayed for consistency.

Signed-off-by:  stephane.rochoy@stormshield.eu
Reviewed by:    imp
Sponsored by:   Stormshield
Pull-Request:   https://github.com/freebsd/freebsd-src/pull/2167
76de40889eed130442b67e14249f96e2e8f88f48 Stéphane Rochoy 2026-04-24 07:03:31

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

cron: log when a crontab path is too long
Log via syslog when snprintf truncates the crontab path, instead of
silently skipping the entry.

Signed-off-by:  Christos Longros <chris.longros@gmail.com>
Reviewed by:    bcr, kevans
Differential Revision:  https://reviews.freebsd.org/D56235
91bfba010bcda665cc24a76af631cc85fcb0c688 Chris Longros 2026-04-29 04:06:29

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

Commit group #35: dhclient: Check for unexpected characters in some DHCP server options
dhclient: Check for unexpected characters in some DHCP server options

Some options are written directly to the lease file, which may be parsed
by subsequent dhclient invocations.  We must make sure that a malicious
server can't control the "medium" field of a lease definition, otherwise
they can achieve RCE by injecting one into the lease file, whereupon it
will be passed to dhclient-script, which passes it through eval.

Approved by:    so
Security:       FreeBSD-SA-26:12.dhclient
Security:       CVE-2026-42511
Reported by:    Joshua Rogers of AISLE Research Team (https://aisle.com/)
8008e4b88daf37015d16c4ac709b91804b586575 Mark Johnston 2026-04-27 20:03:09

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


dhclient: Improve server and filename validation

* Don't iterate over each string three times; once is enough.

* Reject control characters (anything below space) in addition to the
  double quote and backslash.

* If an unsafe character is encountered, discard the string instead of
  rejecting the entire lease.

* If backslashes are encountered in the file name option, convert them
  to forward slashes instead of rejecting the option.

* Tweak the warning messages a bit.  Looking through the rest of the
  code, it seems to me that notes generally end with a period while
  warnings generally don't.

Fixes:          https://cgit.freebsd.org/src/commit/?id=8008e4b88daf ("dhclient: Check for unexpected characters in some DHCP server options")
PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294886
MFC after:      1 week
Reviewed by:    brooks, markj
Differential Revision:  https://reviews.freebsd.org/D56740
873a195ba63575e46686cfd6ea9670a0ca340fa0 Dag-Erling Smørgrav 2026-04-30 16:45:35

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

dhclient: Fix reallocation of dhclient script environments
When the number of DHCP options exceeds a threshold, script_set_env()
will reallocate the environment, stored as an array of pointers.  The
calculation of the array size failed to multiply by the pointer size,
resulting in a smaller than expected buffer which admits out-of-bounds
writes.

Approved by:    so
Security:       FreeBSD-SA-26:15.dhclient
Security:       CVE-2026-42511
Reported by:    Joshua Rogers of AISLE Research Team (https://aisle.com/)
5d8e32aad2a8316b0aab8a93a677a63e4c3df422 Mark Johnston 2026-04-27 20:56:21

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

md5: Encode non-printable filenames
Encode filenames in the VIS_CSTYLE | VIS_OCTAL style regardless of
output mode.  When reading filenames from a checksum file, attempt to
decode them, and use the decoded name unless the decoded name does not
exist but the undecoded one does.

This breaks compatibility with GNU coreutils, which unfortunately uses
a non-reversible encoding when outputting filenames containing
non-printable characters.

While here, drop a sentence about preimage attacks against MD5 and SHA1
from the manual page, as I no longer trust it to be true.

MFC after:      1 week
Reviewed by:    bcr, markj
Differential Revision:  https://reviews.freebsd.org/D56615
70fde0ed6bbbb1f84c440190ba1e5435f8c90e13 Dag-Erling Smørgrav 2026-04-29 18:41:05

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

bhyve: allow read/write to full CRB buffer
For some reason, we've incorrectly calculated the size of the CRB data buffer
register. There's no need to divide the CRB data buffer size by 4. We should
allow access to the whole buffer instead.

Reviewed by:            markj
MFC after:              1 week
Sponsored by:           Beckhoff Automation GmbH & Co. KG
Pull Request:           https://github.com/freebsd/freebsd-src/pull/2169
75909086a45da3c5aeaff8152728111cf798c6bc Corvin Köhne 2026-04-02 06:36:40

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

etcupdate: fix arguments order of diff command
Due to misplacement of the second -L argument of diff command, it is
treated by getopt_long as an error.

Also add -l option for a diff command that alters the way it shows
differences. Instead of printing full diff, it reports changed file
the same way as added/removed files are reported.

Reviewed by:    imp
Obtained from:  Yandex LLC
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56708
6d65c91b9a4743bbffc3508bf754e68b65bbd494 Boris Lytochkin 2026-04-30 11:31:34

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

dmesg(8): Add -t and -f options for converting timestamps
Kernel timestamps are relative to kern.boottime.
With -t, kern.boottime is added and converted to either
a default format or the one specified using the -f option.

Signed-off-by:  Andre Albsmeier <mail@ghub.e4m.org>
Reviewed by:    kib, pouria
Discussed with: imp
Pull-Request:   https://github.com/freebsd/freebsd-src/pull/1985
a7233085558db6d2ee0251891a85a7e74dddcb7e Andre Albsmeier 2026-01-23 11:10:18

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

devfs: add bpf example
Add an example for allowing members of the network group to read from
bpf devices. In particular, this allows members of the network group
to monitor traffic without running with root privileges.

Reviewed by:            markj, glebius
Sponsored by:           Netflix, Inc.
Differential Revision:  https://reviews.freebsd.org/D56742
cf678e30ca015c93edc8a43aeff58cce3249c3af Michael Tuexen 2026-04-30 20:35:07

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

route(8): Add route get for multipath routes with -o flag
Get the next hops of the specified route.
route.8 manual will be updated when other actions for
this option are implemented.

Reviewed by: glebius
Differential Revision: https://reviews.freebsd.org/D56191
39b19ce77bc0f1b9a6a685fff22f52932dcb7cf3 Pouria Mousavizadeh Tehrani 2026-04-19 11:07:22

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

Commit group #36: ping: use CLOCK_REALTIME for ICMP Originate Timestamp
ping: use CLOCK_REALTIME for ICMP Originate Timestamp

RFC 792 defines the ICMP Originate Timestamp field as milliseconds
since midnight UTC.  However, ping(8) currently derives this value
from CLOCK_MONOTONIC, which represents time since an unspecified
starting point and is not related to UTC.

The issue was introduced by commit 1ad76f1b6047, which replaced
gettimeofday(2) with clock_gettime(CLOCK_MONOTONIC) for timekeeping
in ping(8).

Fix this by using CLOCK_REALTIME when generating the ICMP originate
timestamp.

Before:

$ ping -Mt -c1 127.0.0.1
ICMP_TSTAMP
PING 127.0.0.1 (127.0.0.1): 56 data bytes
<...> time=0.061 ms tso=16:50:31 tsr=17:38:28 tst=17:38:28

(note the tso is off)

After:

$ ping -Mt -c1 127.0.0.1
ICMP_TSTAMP
PING 127.0.0.1 (127.0.0.1): 56 data bytes
<...> time=0.038 ms tso=17:42:09 tsr=17:42:09 tst=17:42:09

Reviewed by:            asomers, glebius
Fixes:                  https://cgit.freebsd.org/src/commit/?id=1ad76f1b6047
MFC after:              1 month
Differential Revision:  https://reviews.freebsd.org/D56759
069681afd58a711eb7407be4a9c9a05f787d250f Maxim Konovalov 2026-05-01 17:45:27

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


tests/ping: Fix date(1) invocations

Fixes:  https://cgit.freebsd.org/src/commit/?id=069681afd58a ("ping: use CLOCK_REALTIME for ICMP Originate Timestamp")
667dd9eafa4d5352efdfcdc1a9e228c23fbc60f5 Mark Johnston 2026-05-03 19:05:55

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

debug: moved to admin because 'Need to be grouped with 069681afd58a711eb7407be4a9c9a05f787d250f'

bsdinstall: Always use pkg.FreeBSD.org
The FreeBSD-base bits are accessible via pkg.FreeBSD.org, even for
releases, so there is no need to point at pkgbase.FreeBSD.org.

MFC after:      3 days
89b97931d6d415d7a2504d8ea2c99beafd77cf24 Colin Percival 2026-05-05 02:43:59

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

init: allow to specify a custom path for rc(8)
This is useful for testing alternative service managers
without modifying /etc/rc

MFC After:      1 weeks
Reviewed by:    kib
Differential Revision:  https://reviews.freebsd.org/D56828
9f2ad7c09709e01ff6b856df0315e91ddc20df32 Baptiste Daroussin 2026-05-05 12:00:41

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

certctl: Unstickify (un)trusted certificates
Ever since certctl was rewritten in C, the rehash command has reingested
TRUSTDESTDIR / UNTRUSTDESTDIR in addition to TRUSTPATH / UNTRUSTPATH.
This seemed like a good idea at the time but was, in retrospect, a
mistake, as it means a (un)trusted certificate remains (un)trusted
forever (or at least until it expires) even if it is removed from
(UN)TRUSTPATH.  Among other issues, it causes ports QA to fail for any
port that either installs certificates or depends on a port that does.

Although this behavior was undocumented, the change may surprise users
who have added certificates manually, so update the manual page to point
it out and add prominent warnings to the trust and untrust commands.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=290078
MFC after:      1 week
Reviewed by:    kevans, bcr
Differential Revision:  https://reviews.freebsd.org/D56617
2fef18ff594328a771b6aa659e8ffa5a7e076540 Dag-Erling Smørgrav 2026-05-05 22:30:52

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

devmatch: read linker.hints from all module paths
Previously, devmatch would stop at the first linker.hints file
found in kern.module_path. This meant modules installed in
/boot/modules/ were invisible to devmatch if /boot/kernel/
contained a linker.hints file (which it always does).

Merge hints from all directories in kern.module_path.
This allows third-party or out-of-tree kernel modules in
/boot/modules/ to be auto-loaded by devmatch just like
built-in modules.

Reviewed by:            imp
Differential Revivion:  https://reviews.freebsd.org/D56847
748402ebf2d7a08b13d0b21694afdaad55cfa9cd Baptiste Daroussin 2026-05-06 13:11:16

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

bhyve/virtio-scsi: Don't invoke iov_to_buf() in an assert() expression
If anyone would build bhyve with -DNDEBUG, any code in the expression
in assert() won't be executed.  Instead put the return value in a
temporary variable to assert that it has the expected value.

Reviewed by: emaste, markj (earlier version)
Fixes: https://cgit.freebsd.org/src/commit/?id=2a514d377b37 ("bhyve/virtio-scsi: Preallocate all I/O requests")
Differential Revision: https://reviews.freebsd.org/D55803
bc9f667eb11d9b47541f834faefbc6aac077cee2 Hans Rosenfeld 2026-03-10 19:14:10

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

rtadvd(8): Honor pltime/vltime in interface declarations
Currently rtadvd ignores interface pltime/vltime specifications
unless the (static) address range is also included in the config file.
This extends the validity of a pltime and/or vltime stanza in
the config file for an interface to delegated addresses from
an upstream provider.

Signed-off-by:  tickerguy <karl@denninger.net>
PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=288426
Reviewed by:    pouria
Pull Request:   https://github.com/freebsd/freebsd-src/pull/1863
103f9883d1ed7431c432caa6ab9c61cd4d0831d0 tickerguy 2025-09-29 16:05:29

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

nuageinit: only parse user_data as yaml when necessary
This fixes a regression introduced in cae280931c9e which prevents
user_data as a shell script to be used

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=295062
Reported by:    Ross McKelvie <ross@exitzero.uk>
MFC After:      1 day
c316ec259011e9e22e40eaa72d834f3bfac95c28 Baptiste Daroussin 2026-05-06 20:14:17

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

nuageninit: modify the test to show the issue fixed inc316ec259011
Ensure the script used is invalid when parsed by libyaml which
highlight the issue revealed in PR295062

while at here validate the mode of the file is properly changed

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=295062
MFC After:      1 day
2a86992ab5019b4997ccadf7427011ba44e33c97 Baptiste Daroussin 2026-05-06 20:45:50

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

jail: avoid leaking jail config fds to exec.* hooks
The jail(8) command must not leave parsed configuration files open
since the file descriptors will be leaked to child processes
including the untrusted exec.start or exec.stop hooks.

While fopen() doesn't provide direct access to O_CLOEXEC, it does
provide access to FD_CLOEXEC via "e" in the mode string which
provides the desired defense in depth against leaking file descriptors
into exec.* hooks since those always execve() into a shell.

Jail configuration is potentially sensitive and some hooks execute from
within the jail context, leaving some opening for the jail to exfiltrate
information about the host environment.

(Commit message wordsmithed by kevans)

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=295052
Reviewed by:    kevans
MFC after:      3 days
276d9b88a9e6fd6fd90e57c36444756ad297d2ab Jan Bramkamp 2026-05-06 23:28:53

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

jail: open the fstab files with fopen("re")
This protects against accidentally leaking them past fork()+exec()
in future refactorings.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=295052
Reviewed by:    kevans
58811b0ae096c134af372bcf475aea1d8d0e3c08 Jan Bramkamp 2026-05-06 23:28:53

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

devd: Use PF_LOCAL instead of PF_INET
Avoid dependency on INET (IPv4) by using PF_LOCAL,
allowing media check to work on systems without INET support.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=295045
Reviewed by:    kevans
MFC after:      1 week
b2e4da0b53ad082768b8f6f83766e030fd00d02a Marek Zarychta 2026-05-07 01:28:08

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

pfctl: relax interface name requirement
The FreeBSD network stack, for better or worse, does not impose any
requirements on interface names. As such it's valid for an interface
name to start with a number (or indeed, be something like '⭐').

Allow this in pfctl, and add a test case for the specific case of
interface names starting with a number.

Note that we don't support UTF-8 names fully, so those may still fail.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=295064
MFC after:      1 week
Sponsored by:   Rubicon Communications, LLC ("Netgate")
4e7c1ff95a5187faee524055f22c4cf4134d1147 Kristof Provost 2026-05-07 09:58:17

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

fsck_msdosfs: fix FAT header correction not persisting in cache mode
When fsck_msdosfs runs with FAT32 cache mode (used for large
filesystems that cannot be mmap'd), a detected FAT header correction
was written into the in-memory buffer but the corresponding cache
entry (fat32_cache_allentries[0]) was never marked dirty.  As a
result, fat_flush_fat32_cache_entry() skipped it, the corrected
bytes were never written to disk, and copyfat() propagated the
uncorrected on-disk data to all backup FAT copies.  Every subsequent
fsck run would repeat the same "FAT starts with odd byte sequence /
FIXED" cycle indefinitely.

Fix by marking fat32_cache_allentries[0].dirty = true after applying
the in-memory correction, ensuring the chunk is flushed before
copyfat() runs.

Obtained from:  https://android-review.googlesource.com/c/platform/external/fsck_msdos/+/4047981
MFC after:      3 days
10e342c1ec78af5a0b97739c806b16a632118fa5 Lianwei Wang 2026-05-09 04:56:12

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

BSD.root.dist: Correct tag for /etc/sysctl.kld.d
This is only used by rc.subr and belongs in rc, not runtime.

Fixes:          https://cgit.freebsd.org/src/commit/?id=fa6d67cd16b5 ("BSD.root.dist: Add package tag for all directories")
MFC after:      3 days
Reviewed by:    ivy
Differential Revision:  https://reviews.freebsd.org/D56900
44338ccd12685621c4b1c57e692a4f27f5a655d3 Dag-Erling Smørgrav 2026-05-09 09:04:08

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

stand/i386: quiet executable stack warning
Reviewed by:  imp, kib
Differential Revision:  https://reviews.freebsd.org/D56908
0f6c880fcecdbb9cc84ed03ee85a518dd3c66f12 Ryan Libby 2026-05-10 04:25:43

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

Commit group #37: nuageinit
nuageinit: add decode_base64 tests
68fd0feacb8ce5da9c47deea5505b3241b2ba6ec Baptiste Daroussin 2026-05-07 17:17:56

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


nuageinit: add addsudo tests
a49b3b10aae2db1f4a4ecf310fdedc80eb6bb7e2 Baptiste Daroussin 2026-05-10 15:54:47

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


nuageinit: add adddoas tests
0f92bee2b3e08ffa34720a2eeffbce01af3f19f9 Baptiste Daroussin 2026-05-10 15:54:48

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


nuageinit: add update_sshd_config tests
8b03193289e87fd243acc50c5128c80459792667 Baptiste Daroussin 2026-05-10 15:54:48

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

nuageinit: fix command injection and related issues
- Add shell_escape() helper to safely escape shell arguments
- Apply shell_escape to all user-controlled values in shell commands:
  adduser (usershow, useradd, lock, primary_group, groups)
  addgroup (groupshow, groupadd, members)
  exec_change_password (usermod)
  settimezone (tzsetup root and timezone)
  install_package (pkg package names)
- Escape double quotes in hostname when writing rc.conf.d/hostname
- Add missing 'local' declaration for resolvconf_command in nameservers()
- Escape interface name in resolvconf -a command
- Change open_resolvconf_conf() from 'w' to 'a' mode to prevent
  data loss when nameservers() is called multiple times
- Clean up stale resolvconf.conf at the start of each boot
  (skip on postnet to preserve config written by first call)

MFC After: 1 day
8b70a203be10411c560ed303ab25713d70b316e9 Baptiste Daroussin 2026-05-07 18:22:14

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

bsdinstall: do pkgbase installations with the "script" command
"bsdinstall script" will now do a pkgbase installation by default.  The
system components to install can be specified in the COMPONENTS
variable, and have the same names as those used in the interactive
installer.  bsdinstall will still do a legacy distset installation if
DISTRIBUTIONS is defined in the installerconfig file.

MFC:            1 week
PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=290375
Sponsored by:   ConnectWise
Reviewed by:    ziaee, ivy, jduran
Differential Revision: https://reviews.freebsd.org/D56717
dc14ae4217a0babb1240f813b642edc2d7b955a6 Alan Somers 2026-04-28 17:27:17

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

hastd: Include param.h instead of relying on pollution in hooks.c
This is needed at least for MAX() and PATH_MAX.

MFC after:      1 week
fae5815a1d7ef6ef07a15231ca695cba0f848e18 Mark Johnston 2026-05-12 17:46:34

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

edquota: Include param.h
Required for MAXPATHLEN and MAXLOGNAME.

MFC after:      1 week
ee2d1a1a5a1877f8ce7b9eee94479ec702880bd7 Mark Johnston 2026-05-12 17:46:40

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

reboot: Include limits.h for PATH_MAX
MFC after:    1 week
9461071d5cd901c968dcd7f4a114905995f90d66 Mark Johnston 2026-05-12 17:46:45

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

fsck_ffs: Avoid relying on param.h pollution from libufs.h
- gjournal.c needs param.h to get a definition of isclr().
- fsck.h needs signal.h for sig_atomic_t.

Sort includes while here.

Reviewed by:    kib
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56858
3cd3900b690d8296094921cec844da3f72d30cbb Mark Johnston 2026-05-12 17:47:11

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

ipfw: treat ipv6 address with zero mask as 'any'
Make the behaviour similar for both IPv4 and IPv6. Also add
the corresponding tests.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294733
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56618
2872268c7f6d473aae9b02ebb5d2c24fc2cff9b1 Andrey V. Elsukov 2026-05-17 10:12:20

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

limits: Further RLIMIT_VMM cleanup
Teach limits(1), sh(1), and setclassresources(3) about RLIMIT_VMM.

Fixes:          https://cgit.freebsd.org/src/commit/?id=1092ec8b3375 ("kern: Introduce RLIMIT_VMM")
Reviewed by:    bnovkov
Differential Revision:  https://reviews.freebsd.org/D57031
363ea40c765424b3cbd9b96790235af030fcc8ff Dag-Erling Smørgrav 2026-05-17 16:23:50

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

fwget: update realtek and intel pci entries
For Realtek we only add new entries.

For Intel the old way of extracting IDs from the driver no longer
works.  The new list is shortened as we drop more specific entries
which were already covered by wildcard entries.  The new lists are
also sorted within the groups.
There are 4 entries the new driver no longer carries but are still
present in older versions, so we keep them manually.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
ca67cfa5237f7ac537ca8611054b5af2098e2d86 Bjoern A. Zeeb 2026-05-17 23:10:15

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

freebsd-update: Skip /etc/ssl/cert.pem
We already run `certctl rehash` at the end, there is no point in asking
users upgrading from 15.0 to 15.1 to manually merge the trust store.

MFC after:      3 days
Reviewed by:    cperciva
Differential Revision:  https://reviews.freebsd.org/D57028
2509ddee9bdb2240ba2f622e3a55a98ebc2aa4ae Dag-Erling Smørgrav 2026-05-18 16:22:04

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

Libraries

posix_spawn: actions chdir and fchdir are now required by POSIX
Drop the _np suffix.

Reviewed by:    dim
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56222
7caa71145c5eea5925c295e0cdd95b517005acf9 Konstantin Belousov 2026-04-02 07:57:58

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

lib/msun: Added fmaximum and fminimum family. Tests and man page
Starting from the existing fmax{,f,l} functions I've added the fmaximum
family, which handles NaN according to the newest standard (propagating
it).

This commit is a PoC for GSoC 2026.

Reviewed by:    fuz, kargl
MFC after:      1 month
Differential Revision:  https://reviews.freebsd.org/D55834
e55db843ef45a8788f69e110d97210fb3968b92f Jesús Blázquez 2026-03-31 16:31:15

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

Add boot_setenv
Move is_restricted_var() to libsa/environment.c so it can be leveraged
by boot_setenv called from subr_boot with not truted input.

Also, allow for local tuning via ENV_IS_RESTRICTED_ALLOWED_LIST and
ENV_IS_RESTRICTED_LIST

Sponsored by:   Hewlett Packard Enterprise Development LP.

Reviewed by:    kevans, imp
Differential Revision:  https://reviews.freebsd.org/D56287
a371b008d13f84cf4448bf6d700641ecc15c206b Simon J. Gerraty 2026-04-07 16:29:07

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

lib/msun/aarch64: provide export file for arch-specific fenv methods
Reported and tested by:       fluffy
Reviewed by:    emaste
Fixes:  https://cgit.freebsd.org/src/commit/?id=3a01e1e1a50cb9a9594aac2148dc920a6b295428
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56283
96a685c229f2ce440591f98d33d36776e56dd55c Konstantin Belousov 2026-04-06 16:41:23

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

libgcc_s: export __extendhftf2
We've compiled it since the LLVM 13 import in 2021, but for some reason
never exported it.  A user of CheriBSD recently caused Morello LLVM to
emit a reference to it so finish the job and export it.

Reviewed by:    dim, emaste
Fixes:          https://cgit.freebsd.org/src/commit/?id=6e75b2fbf9a0 ("Merge llvm-project release/13.x llvmorg-13.0.0-rc1-97-g23ba3732246a")
MFC after:      1 week
Sponsored by:   DARPA, AFRL
See also:       https://github.com/CTSRD-CHERI/cheribsd/issues/2614
Differential Revision:  https://reviews.freebsd.org/D56310
a7e07d0d57f1a2f2c94c6be1e3f33c03635235d1 Brooks Davis 2026-04-08 15:31:03

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

libc: fix memfd_create's HUGETLB handling
The 'simplification' commit referenced below actually broke one aspect
of MFD_HUGETLB: the caller isn't supposed to be required to specify a
size.  MFD_HUGETLB by itself without a shift mask just requests a large
page, so we revert that part of memfd_create() back.

While we're here, fix up the related parts of the manpages a little bit,
since MFD_HUGETLB is actually supported.  The manpage claims that we
would return ENOSYS if forced mappings weren't supported, but this was
actually not true.  However, that seems like a very important
distinction to make between ENOSYS and EOPNOTSUPP, so fix the
implementation to match the docs.

Fixes:  https://cgit.freebsd.org/src/commit/?id=8b8cf4ece660f ("memfd_create: simplify HUGETLB support [...]")
Reviewed by:    kib, markj
Differential Revision:  https://reviews.freebsd.org/D56114
9a8d333368baef356f0a611b47ec592568dd14f9 Kyle Evans 2026-04-09 02:37:00

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

cap_dns: plug a memory leak
9f1be4bfebd08b249877267a1634c249c9f6d221 Mariusz Zaborski 2026-04-10 10:19:05

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

lib/msun: Added fmaximum_mag and fmaximum_num families
Added support for the f{maximum,minimum}_{mag,num} families, the new
C23 standard functions for maximum magnitude and number-preferring
maximum.  This includes modifying fmax.3, on top of D56230, to
recommend the use of fmaximum_num and fminimum_num.

Reviewed by:    fuz, kargl
MFC after:      1 month
Differential Revision:  https://reviews.freebsd.org/D56236
4e30c12973c73539bef01be3870a90b6346141e8 Jesús Blázquez 2026-04-11 08:11:44

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

unistd.h: _Fork(2) is required by POSIX 2024
Reviewed by:  imp
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56362
f286933c950f6308117c8400f36f3160f6227491 Konstantin Belousov 2026-04-12 08:57:51

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

libarchive: merge from vendor branch
libarchive 3.8.7

Important bugfixes:
 #2871 libarchive: fix handling of option failures
 #2897 iso9660: fix undefined behavior
 #2898 RAR: fix LZSS window size mismatch after PPMd block
 #2900 CAB: fix NULL pointer dereference during skip
 #2911 libarchive: do not continue with truncated numbers
 #2919 CAB: Fix Heap OOB Write in CAB LZX decoder
 #2934 iso9660: fix posibble heap buffer overflow on 32-bit systems
 #2939 cpio: Fix -R memory leak
 #2947 libarchive: lzop and grzip filter support

Important bugfixes between 3.8.5 and 3.8.6:
 #2860 bsdunzip: fix ISO week year and Gregorian year confusion
 #2864 7zip: ix SEGV in check_7zip_header_in_sfx via ELF offset validation
 #2875 7zip: fix out-of-bounds access on ELF 64-bit header
 #2877 RAR5 reader: fix infinite loop in rar5 decompression
 #2878 mtree reader: Fix file descriptor leak in mtree parser cleanup
       (CWE-775)
 #2892 RAR5 reader: fix potential memory leak
 #2893 RAR5: fix SIGSEGV when archive_read_support_format_rar5 is called
       twice
 #2895 CAB reader: fix memory leak on repeated calls to
       archive_read_support_format_cab

Obtained from:  libarchive
Vendor commit:  ded82291ab41d5e355831b96b0e1ff49e24d8939
MFC after:      1 week
eb5165bb491138f60d9004bc4c781490016d9288 Martin Matuska 2026-04-13 13:47:17

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

lib/libifconfig: Fix pointer-sign warnings
Fix all pointer-sign warnings generated when compiling libifconfig.

One of these warnings comes from the misuse of snl_add_msg_attr_string
for a byte array.  Though userland treats carpr_key as a string, it is
actually an array of bytes.  Handle it as such in libifconfig.

While here, fix a small consistency nit in ifconfig_sfp_get_sfp_dump.

Signed-off-by: Ryan Moeller <rmoeller.dev@gmail.com>
Reviewed by: imp, zlei
Pull Request: https://github.com/freebsd/freebsd-src/pull/1850
20cd1b475a1ef9dfca30726999aa1b9a02d5bc39 Ryan Moeller 2025-09-18 15:04:35

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

libpfctl: fix add state/source limiter
When processing the return data from these calls pass the limiter
pointer, not the limiter pointer pointer.

Sponsored by:   Rubicon Communications, LLC ("Netgate")
13b4a14c719ab7c65ccaab86ddc79f0edc312aa3 Kristof Provost 2026-04-16 12:30:35

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

libarchive: Update configuration
PR:           https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294577
MFC after:      1 week
Reviewed by:    mm
Differential Revision:  https://reviews.freebsd.org/D56468
05bbe5e3883492dd2afa52039da1fac45c5059a0 Dag-Erling Smørgrav 2026-04-18 08:25:31

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

mixer(3): Rename _mixer_readvol() to mixer_readvol()
No functional change intended.

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
c39237a4fd2b1472e452052103156c915942d070 Christos Margiolis 2026-04-18 11:50:04

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

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/'

libgcc_s: Add a linker script to link to libgcc
When using outline atomics on arm64 the compiler will create a call to
a function that performs the atomic operation. This allows us to use
the fastest operation depending on the hardware.

As these functions are implemented in libgcc create a linker script
so libraries that link against libgcc_s will include libgcc to pull
them in.

Reviewed by:    imp, jhb
Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D45268
e63eee84cad59f63338a539e73bed07917932088 Andrew Turner 2026-04-27 10:54:18

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

hwpmc_ibs: Add external error handling
Add EXTERR_CAT_HWPMC_IBS to the external error categories and replace generic
EINVAL returns in ibs_allocate_pmc() with EXTERROR() calls that provide
detailed error messages.

This will be augmented with additional cases in the near future.

Reviewed by:    mhorne
Sponsored by:   AMD
Signed-off-by:  Andre Silva <andasilv@amd.com>
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2134
a9a562a08e77ac024066a6ca7ab77e7e25e007dc Andre Silva 2026-04-06 20:55:43

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

libiscsiutil: preserve errno across warning logs
Various calls in the implementation can clobber errno; preserve it for
the caller since none of these will bubble up pass/fail to simplify
some future error handling in ctld.

Reviewed by:    jhb
Differential Revision:  https://reviews.freebsd.org/D56539
fe9d81d7c6602e9b18cde2aaf8cbd5f65b87c091 Kyle Evans 2026-04-28 20:51:50

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

efivar: Move dump functions into libefivar
To allow their use by efibootmgr.

Signed-off-by:  stephane.rochoy@stormshield.eu
Reviewed by:    imp
Sponsored by:   Stormshield
Pull-Request:   https://github.com/freebsd/freebsd-src/pull/2167
48363f39f1417df3e39da53f219596f8501c9452 Stéphane Rochoy 2026-04-24 12:10:19

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

libifconfig: Skip bridge VLAN config for span members
bridge(4) doesn't support BRDGGIFVLANSET for span members, which
means if a span interface is configured, libifconfig will fail to
fetch bridge members.  Skip this for IFBIF_SPAN members.

PR:     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292634
MFC after:      3 days
Reported by:    Emrion <kmachine@free.fr>
Reviewed by:    pouria, zlei
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D56694
454322c08b8aa181939c8d920472f03cfd591032 Lexi Winter 2026-04-29 03:11:20

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

libnv: switch fd_wait() from select(2) to poll(2)
The previous implementation used FD_SET() on a stack-allocated fd_set,
which is an out-of-bounds write whenever the socket fd is >= FD_SETSIZE
(1024).

Approved by:    so
Security:       FreeBSD-SA-26:16.libnv
Security:       CVE-2026-39457
Reported by:    Joshua Rogers of AISLE Research Team (https://aisle.com/)
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D56689
f5ea3dce2cbe1ee2068c5e5c11bb066f5789685b Mariusz Zaborski 2026-04-28 14:35:10

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

ssp: fix our gets_s implementation under _FORTIFY_SOURCE
Annex K specifies an interface for handling constraint violations from
gets_s, but we previously broke this for some classes of get_s misuse.

Provide a more nuanced version that tries to dodge errors that would
trigger a constraint handler while still providing value.  Notably, we
don't want to trigger a failure unless the passed-in length reasonably
fits within an RSIZE_MAX, because gets_s will immediately call larger
lengths bogus and fail.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294881
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D56734
d98f4f0698ef0c5178882c544b4c38542d4780f0 Kyle Evans 2026-05-01 02:57:51

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

tests: fix remaining test failures under _FORTIFY_SOURCE
The getgroups test is a NetBSD tests, so just apply our larger hammer
and disable the feature entirely.  The audit test can take a more
surgical approach and use __ssp_real() appropriately, since it's a local
one.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294881
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D56735
910f78a5143af32dfcb237a463397aa0c31c07df Kyle Evans 2026-05-01 02:57:51

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

lib/clang: Fix bootstrapping on macOS after LLVM 21 merge
Fixes:                https://cgit.freebsd.org/src/commit/?id=770cf0a5f02d ("Fixups after llvm-project main llvmorg-21-init-19288-gface93e724f4 merge")
MFC after:      1 month
50bd6ee0cce9d3959828b0267b06ea0403781f41 Jessica Clarke 2026-05-01 16:55:28

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

lib/msun: fmaximum_mag_num family. Tests and man page
Added the fmaximum_mag_num{,f,l} and fminimum_mag_num{,f,l} functions.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294719
Reviewed by:    fuz, kargl
MFC after:      1 month
f62d826a6f5b9022b0cedfe22a698998ad9cb7f4 Jesús Blázquez 2026-04-21 17:17:00

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

lib/msun: Replaced pattern to force exception in _num families
Replaced the old pattern of using a ternary to force addition
(raising exceptions for sNaN's) with a new one using a volatile
variable. The _mag_num family was already implemented with this pattern

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294719
Reviewed by:    fuz, kargl
MFC after:      1 month
7c20e15592a07ea457cacb0d6706948815c8420e Jesús Blázquez 2026-04-27 16:43:41

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

libc: add freadlink(3)
Sponsored by: The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56365
ae6a13deb8e33a52188643e09171207e1d7171e8 Konstantin Belousov 2026-04-12 08:56:26

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

Add O_SYMLINK emulation
for MacOSX partial compatibility, defined as O_PATH | O_SYNC | O_DIRECT.

libc openat() wrapper is modified to fstat() the descriptor and re-open
in the normal mode if the type is not symlink.

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56365
f9458655e78f6532e962a13d28d6a6086b4156de Konstantin Belousov 2026-04-12 08:48:32

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

libusb: Add libusb_endpoint_transfer_type enum
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
261002908ffd9f13d19d1c6be6f82edac26b6938 ShengYi Hung 2026-05-05 14:39:29

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

libusb: fix incorrect status type when completion on cancel the events
Reviewed by:    lwhsu, markj
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D51736
06271366982eb6fe59502fcdf95a1a22e0671d5f ShengYi Hung 2025-08-05 09:41:17

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

libc: correct posix_spawn_file_actions_init ENOMEM error
The return value of posix_spawn_file_actions_init() is an error number.

Reviewed by:    kib
Differential Revision:  https://reviews.freebsd.org/D56911
3ca8ec19b6ecc8ae4413d0505ce2d0efdd3e52c8 Jilles Tjoelker 2026-05-09 22:01:50

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

libc: add freadlink(3)
Sponsored by: The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56365
a2e0822543e93a8d815acd2d1c3d51ef73d6e262 Konstantin Belousov 2026-04-12 08:56:26

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

[libm] implementation of rsqrt, rsqrtf, and rsqrtl
From the PR:
The attached diff implements the inverse square root function, i.e,
rsqrt(x) = 1 / sqrt(x).  Exhaustive testing of the float version
suggests that it is correctly rounded in round-to-nearest for all
test values in the range [0x1p-127,0x1p126].
Exhaustive testing of rsqrt and rsqrtl cannot be done, but 1100M
values of x for rsqrt and 400M values for rsqrtl were tested.  All
tested values were correctly rounded.

I do not have access to LD128 (i.e., IEEE 128-bit floating point)
hardware, so the implementation of rsqrtl() is untested.

The following is a summary of changes to source code.

* lib/msun/Makefile:
  . Add s_rsqrt.c and s_rsqrtf.c to COMMON_SRCS.
  . For non-53-bit long double targets, add s_rsqrtl.c to COMMON_SRCS.
  . Add MLINKS for rsqrt.3, rsqrtf.3, and rsqrtl.3 to sqrt.3.

* lib/msun/Symbol.map:
  . Add rsqrt, rsqrtf, and rsqrtl to the Symbol map for shared libm.so.

* lib/msun/man/sqrt.3:
  . Update the sqrt.3 manual page to include information for rsqrt[fl].
  . Note, these function come from ISO C23 (and IEEE-754 2008).

* lib/msun/src/math.h:
  . Add prototypes for new functions.

* lib/msun/src/math_private.h:
  . Add _SPLIT, _FAST2SUM, _SLOW2SUM, _XADD, _MUL, and _XMUL
    macros to perform type-type arthimetic (i.e., float-float).

* src/s_rsqrt.c:
  . New file with the implementation of 'double rsqrt(double)'.
  . For 53-bit long double targets, add a weak reference for rsqrtl.

* src/s_rsqrtf.c:
  . New file with the implementation of 'float rsqrt(float)'.

* src/s_rsqrtl.c
  . New file with the implementation of 'long double rsqrt(long double)'.
    Note, the LD80 version uses bit twiddling and LD128 version is a
    straight C language implementation.  The LD128 is untested due to
    lack of hardware.

PR:     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=295089
MFC after:      1 week
3085fc9d97bd83785ba3ba43e0378d7d67987d1f Steve Kargl 2026-05-08 14:06:08

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

libutil: Include param.h in quotafile.c
Required for MAXPATHLEN.

MFC after:      1 week
237900f17f091d059a3ead6a5320285654f4bfa0 Mark Johnston 2026-05-12 17:47:04

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

libufs: Avoid using param.h constants in libufs.h
MAXBSIZE is defined in param.h, which defines many other things.  To
avoid forcing all consumers of libufs.h to include param.h, let's
instead redefine it and verify the definition in inode.c.

Reviewed by:    kib
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56859
271d25a066b59df1e2bb774990948c985382126a Mark Johnston 2026-05-12 17:47:17

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

cap_net: fix error propagation for ENOTCAPABLE in cap_getaddrinfo
Fixes:                https://cgit.freebsd.org/src/commit/?id=b60053fde172 ("libcasper: Fix inconsistent error codes of cap_get{addr,name}info()")
ee04ee95ab386147c57d3b4efcc5774e8d64330b Mariusz Zaborski 2026-05-12 09:48:56

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

cap_net: do not allow new limits to drop keys from the old ones
If the old limit had family/hosts/sockaddr set, the new limit must
have them too. Before, a missing key in the new limit was treated as
"allow any", which let a caller silently extend their limits.

Reported by:    Joshua Rogers of AISLE Research Team
Reviewed by:    markj
MFC after:      1 day
Differential Revision:  https://reviews.freebsd.org/D56991
d705a519525f2acae3c1efba11436ec6ee8aea0a Mariusz Zaborski 2026-05-12 08:33:41

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

Filesystems

cd9660: Add length checks to Rock Ridge parser
* cd9660_rrip_slink() did not check that the lengths of individual
  entries do not exceed the length of the overall record.

* cd9660_rrip_altname() did not check that the length of the record
  was at least 5 before subtracting 5 from it.

Note that in both cases, a better solution would be to check the length
of the data before calling the handler, or immediately upon entry of
the handler, but this would require significant refactoring.

MFC after:      1 week
Reported by:    Calif.io in collaboration with Claude and Anthropic Research
Reported by:    Adam Crosser, Praetorian
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D56215
d0afead876076f605c363f03d92304d1bd75be1c Dag-Erling Smørgrav 2026-04-01 17:14:16

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

nfsid.h: Put the nfsd_idargs structure in a new .h
This patch moves the definition of the nfsd_idargs
structure out of nfs.h and into a new file called
nfsid.h.

This is being done so that it can be included in
nfs_diskless.c in a future commit.

There should be no semantics change from this
commit.

MFC after:      1 week
Fixes:  https://cgit.freebsd.org/src/commit/?id=8b9775912cbc ("nfs_diskless: Add support for an NFSv4 root fs")
e6db4dd9d7216067388ae91ac73c3917a93f9420 Rick Macklem 2026-04-06 14:09:01

debug: Commit manually moved from "unknown" to "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/'

nfscl: Disable use of callbacks for NFSv4.0
The only use for callbacks for NFSv4.0 is delegations
and delegations rarely work well for NFSv4.0 anyhow.

Therefore, this patch disables callbacks for the
NFSv4.0 client.  This is the same behavior as
occurred when the nfscbd(8) daemon was not running.

This change allowed a function called nfscl_getmyip()
to be removed from the kernel, which is nice since
maintaining this function was bothersome, due to its
use of routing, etc.

MFC after:      2 weeks
71ac1ec5c9d990e7881e75f04140eb0bfe473a21 Rick Macklem 2026-04-30 21:37:36

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

nfsd: Get rid of NFSD_VNET macros
When the nfsd was vnet'd, the VNET macros were hidden
behind macros that had the NFSD_ prefix on them.
This was done because, at the time, it was thought
that something other than vnet might be used for this.
That has not happened and probably will not happen,
so this patch replaces these obscuring macros with
the regular vnet ones.

There should be no semantics change caused by
this commit.

Discussed with: bz, glebius
MFC after:      1 month
821976facf746ef241e1524b44bb1de0af98fdc0 Rick Macklem 2026-05-02 21:36:43

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

fdescfs: do not change vnode type on VOP_GETATTR()
There is no point to do it.  The VNON type is good enough for fdescfs
operations, and changing the type on stat(2) is arbitrary and does not
serve much purpose, because we recalculate the returned file type on
each stat(2) anyway.

But setting the type to VLNK has undesired consequence of namei()
trying VOP_READLINK() there, which might fail since it defer the
calculation of path to vn_fullpath().

Submitted by:   Mike <mmpestorich@gmail.com>
PR:     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294768
MFC after:      2 weeks
fbecfc4aa028964f972a0457809aa041d415f61b Konstantin Belousov 2026-05-03 19:09:15

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

nfsd: Disable use of callbacks for NFSv4.0
Commit 71ac1ec5c9d9 disabled callbacks for the NFS
client for NFSv4.0.  This patch does the same for
the NFSv4.0 server.

The only use for callbacks for NFSv4.0 is delegations
and delegations rarely work well for NFSv4.0 anyhow.

Therefore, this patch disables callbacks for the
NFSv4.0 server.  This is the same behavior as
occurs when vfs.nfsd.issue_delegations is 0.

This change allowed the functions called
nfsrv_getclientipaddr() and nfsrv_getipnumber() to be
removed from the kernel.

MFC after:      2 weeks
457c621add0a531273ee27798c924c6aaeacc4c1 Rick Macklem 2026-05-03 23:25:45

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

nfs_nfsdserv.c: Clip number of callback slots
The client tells the server how many callback slots
it can handle in the callback session.  However, the
NFSv4.1/4.2 server can only handle a maximum of
NFSV4_SLOTS slots.  This patch clips the client's
value to that, to avoid using too high a slot#
for a callback.

Fortunately, I do not know of an extant client that
specifies a value greater than NFSV4_SLOTS, so this
patch is not really needed, as yet.  Also, the client
rarely uses a slot# above 0 when doing callbacks.

MFC after:      2 weeks
03e9e83f358678bab5e4c1ddf9c9d8faa7183cbb Rick Macklem 2026-05-05 00:04:00

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

nfs_clsubs.c: Fix ncl_getcookie() when "pos" is negative
In ncl_getcookie(), a very large value for "off" for
a directory can result in "pos" being set to a bogus
value (including a negative one), due to truncation.
When "pos" is negative, is can skip past the
while (pos >= NFSNUMCOOKIES) loop and return a
bogus pointer instead of NULL.

This patch changes the type to u_int and also adds
a sanity check for a very large "off" to ensure that
a NULL pointer is returned for this case.

This bug has been in the code for decades and I am
not aware of any report of it causing a problem for
users.

Reviewed by:    markj
Reported by:    Joshua Rogers of AISLE Research Team
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D56779
448b4c3f7f7dd4c7e1707d7b833a26294c297182 Rick Macklem 2026-05-06 14:54:55

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

p9fs: implement basic pathconf support
This is needed for various pjdfstest tests which fail with syntax errors
if pathconf _PC_NAME_MAX/_PC_PATH_MAX return -1. For NAME_MAX we can use
the 9P2000.L Tstatfs call to get namelen from the host. While this could
theoretically be different for nested filesystems in the shared mount it
is a much better guess than just returning 255.
There does not seem to be a way to get the host PATH_MAX, so we just
return the conservative kernel default.

Found while fixing https://github.com/CTSRD-CHERI/cheribsd/issues/2617.

Reviewed by:    markj, kib
MFC after:      1 week
Differential Revision: https://reviews.freebsd.org/D56493
96b2f4a9124158f27c4c27c32f6fa1a6018250fb Alex Richardson 2026-05-07 04:22:23

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

p9fs: Fix creating files with restrictive permissions
When a file is created via p9fs with restrictive permissions (like 000),
the 9P TCREATE request successfully creates and natively opens the file,
returning an open, writable file descriptor. Previously, p9fs would
attempt a subsequent TOPEN. That TOPEN would fail with EACCES due to the
restrictive mode, leaving a 0-byte file and causing operations like 'mv'
to abort.

We now preserve the writable descriptor returned by TCREATE so that the
subsequent VOP_OPEN can use it directly, avoiding the failing TOPEN.
Additionally, p9fs_compatible_mode now appropriately isolates the base
access intent when matching fids, preventing extended flags from
breaking the match.

A test case for this behavior has been submitted to pjdfstest:
https://github.com/pjd/pjdfstest/pull/87

Resolves: https://github.com/CTSRD-CHERI/cheribsd/issues/2617

Reviewed by:    markj
MFC after:      1 week
Differential Revision: https://reviews.freebsd.org/D56494
40d59ee35dc106cda88d66e37527975a32596cd7 Alex Richardson 2026-05-07 04:23:27

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

Commit group #38: ufs: support unmapped bufs for indirect blocks in bmap
ufs: support unmapped bufs for indirect blocks in bmap

Use unmapped bufs for indirect block buffers in bmap, and use sf_bufs
for transient mapping them when we need to read the specific pointer.

[kib note: I changed the original patch to use sf_buf instead of
explicit DMAP utilization, making the change MI].

Tested by:      pho
Reviewed by:    kib
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D53424
bab04ddf1fd4b7a77d1cfae4a67ededf1f35ee0d Chuck Silvers 2026-05-07 12:43:53

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


ufs: ufs_bmap_seekdata() needs mapped buffer for scan

PR:     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=295348
Reported and tested by:  Alastair Hogge <agh@riseup.net>
Reviewed by:    mckusick
Fixes:  https://cgit.freebsd.org/src/commit/?id=bab04ddf1fd4 ("ufs: support unmapped bufs for indirect blocks in bmap")
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D57036
8ad8643a66735d28dac53a772856c94ca65b2bf3 Konstantin Belousov 2026-05-17 00:09:21

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

nullfs: do not allow to mount a vnode over itself
This causes recursion in VFS that is not worth handling.

PR:     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=275570
Reported by:    Alex S <iwtcex@gmail.com>
Reviewed by:    markj
Tested by:      pho
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D57043
7bdf2b5d5fbabfc8749c4ff6e618c3e843b14de0 Konstantin Belousov 2026-05-16 22:16:45

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

Kernel

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

vmm: Restore the ability to create VMs as root in a jail
The new PRIV_VMM_CREATE and DESTROY permissions should be allowed by
jails, so need to be added to the list in prison_priv_check().  Then,
modify vmmdev_create() to verify that the jail was created with the
allow.vmm flag.  This is already verified when opening /dev/vmmctl, but
checking again doesn't hurt and ensures that one can't pass the
allow.vmm policy by passing a vmmctl fd along a unix domain socket from
outside the jail.

Rename vmm_priv_check() to vmm_jail_priv_check() to make the function's
purpose more clear.

Reported by:    novel
Reviewed by:    bnovkov
Fixes:          https://cgit.freebsd.org/src/commit/?id=d4c05edd410e ("vmm: Add privilege checks to vmmctl operations")
Differential Revision:  https://reviews.freebsd.org/D56119
f3c772361f3b6213ec7ae7de993b6953357c7b48 Mark Johnston 2026-04-01 09:25:27

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

linuxkpi: Handle bin attributes in sysfs attribute groups
For instance, this is used by DRM drivers to declare the EDID property
of an GPU output connector:

    sysctl -b sys.device.drmn1.card0.card0-DP-1.edid | edid-decode

    ...
    Block 0, Base EDID:
      EDID Structure Version & Revision: 1.4
      Vendor & Product Identification:
        Manufacturer: SAM
        Model: 29814
        Serial Number: 810635354 (0x3051505a)
        Made in: week 15 of 2025
    ...

Reviewed by:    bz, emaste, wulf
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55176
5bb0f63020669bd3675c651ba7745fc4356edc1a Jean-Sébastien Pédron 2026-02-08 10:11:39

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

compat/linux: map TCP_USER_TIMEOUT sockopt into TCP_MAXUNACKTIME
After reading both manual pages, our TCP_MAXUNACKTIME is fairly
similar to the TCP_USER_TIMEOUT, the only considerable difference
is ours is in seconds and linux's in milliseconds.

Round up linux's in setsockopt(2) to a next whole second and
clamp ours getter to UINT_MAX ms.

Reviewed by:    tuexen, glebius
Differential Revision: https://reviews.freebsd.org/D56168
MFC after:      2 weeks
Sponsored by:   Sippy Software, Inc.
5d4a39d8ed775d607e0702f317f687491ac0a23d Maxim Sobolev 2026-04-01 21:42:50

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

Commit group #39: kqueue
kqueue: compare against the size in kqueue_expand

This is a cosmetic change, rather than a functional one: comparing the
knlistsize against the fd requires a little bit of mental gymnastics to
confirm that this is fine and not doing unnecessary work in some cases.

Notably, one must consider that kq_knlistsize only grows in KQEXTENT
chunks, which means that concurrent threads trying to grow the kqueue
to consecutive fds will usually not result in the list being replaced
twice.  One can also more clearly rule out classes of arithmetic
problems in the final `else` branch.

Reviewed by:    kib, markj
Differential Revision:  https://reviews.freebsd.org/D56209
0b4f0e0515d0c7ec855cd654ae5dc562f4931cae Kyle Evans 2026-04-01 22:30:48

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


kqueue: avoid a possible fork-deadlock

kqueue_fork_copy() is likely to have transitioned at least one knote
through a flux state, so we should check whether we need to wake
anything up on the way out to avoid a possible deadlock.

This was a part of D56210, but we'll close the review with the next
commit.

Fixes:  https://cgit.freebsd.org/src/commit/?id=b11289f87123f ("kqueuex(2): add KQUEUE_CPONFORK")
Reviewed by:    kib, markj
14d0baf2e89202cec3f9cb03a573372ccbc568b2 Kyle Evans 2026-04-01 22:30:48

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


kqueue: simplify knote_fdclose()

The influx logic in knote_fdclose() is a little misguided, the resulting
wakeup() call should always be redundant: knote_drop_detached() will
always issue a wakeup before it returns, so anything waiting on *that*
knote that had entered fluxwait should have been woken up then.  This is
the obvious divergence from the other influx/wakeup pattern in the
implementation, which will kn_influx-- and then issue the wakeup after
it has processed all of the knotes it can make progress on.

While we're here, the kq_knlist cannot shrink, so we can avoid that
condition in the loop and avoid potentially excessive wakeups from
fluxwait on kqueues that we didn't touch.

Reviewed by:    kib, markj
Differential Revision:  https://reviews.freebsd.org/D56210
ff1050d2a366bd288a6ebbf63f98003272513f92 Kyle Evans 2026-04-01 22:30:48

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


kqueue: add some kn_knlist assertions around knlist_(add|remove)

We currently assert that kn_status is accurate, but there's more room
for error.  Neither of these are very likely, but currently we'd blow up
in SLIST*() macros instead of providing more obvious diagnostics.  It's
perhaps only worth testing these because knlist_remove() requires
getting logic across both f_attach() and f_detach() correct.

Reviewed by:    kib, markj
Differential Revision:  https://reviews.freebsd.org/D56211
306c9049c642da6a59a5dc088589605a9aa38b87 Kyle Evans 2026-04-01 22:30:48

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


kqueue_fork_copy_knote(): zero kn_knlist for the copy before calling knlist_add()

Reported by:    pho, dhw
Fixes:  https://cgit.freebsd.org/src/commit/?id=306c9049c642da6a59a5dc088589605a9aa38b87
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
aab1ef4527f1b0935add3e8dba9e928e0623376f Konstantin Belousov 2026-04-02 11:02:14

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

kqueue: assert that kqueue knote lists own the knotes
Reviewed by:  kevans, markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56212
51db69c14fb1a1c2dc807695e6f564d498d33d5a Konstantin Belousov 2026-03-31 09:13:35

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

subr_module: account for MODINFOMD_EFI_ARCH
b3d6829f4998ad8ac8c65d39ac9513ba85a9974b Ahmad Khalifa 2026-04-03 07:13:29

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

nfs_diskless: Add support for an NFSv4 root fs
Without this patch, diskless root NFS file systems
could only be mounted via NFSv3 (or NFSv2).
This patch adds the basic support needed to mount
a root fs via NFSv4.

At this time, the NFSv4 mount will only work if
the following is done on the NFS server configuration:
- The root directory specified in the "V4:" line in
  /etc/exports must be "/".  This is needed since the
  path to mount must be the same for NFSv3 and NFSv4.
- The NFS server must be configured to do both NFSv3
  and NFSv4, since the bootstrap code still uses NFSv3.
- The NFSv4 server must be configured with:
  vfs.nfs.enable_uidtostring=1
  vfs.nfsd.enable_stringtouid=1
  since the NFSv4 root fs cannot be running nfsuserd(8)
  when it is booting.  (This limitation may be removed
  in a future commit by hard-wiring enough id<-->name
  mapping entries to handle things until the nfsuserd(8)
  is running.)

To enable the root fs to be mounted via NFSv4, it needs:
- in the root file system's /boot/loader.conf
  boot.nfsroot.options="nfsv4"
  (Additional options like rsize=65536,wsize=65536 can
   also be specified.)
- in the root file system's /etc/sysctl.conf
  vfs.nfs.enable_uidtostring=1

Requested by:   Dan Shelton <dan.f.dhelton@gmail.com>
MFC after:      1 week
8b9775912cbc7bb3c05c1fdfc3597dc4b68a9b9e Rick Macklem 2026-04-05 16:00:24

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

net: Add SIOCGI2CPB ioctl & add page/bank fields to ifi2creq
This commit adds page & bank fields to ifi2creq in preparation
for adding CMIS support for 400g optics to ifconfig.
The new ioctl SIOCGI2CPB is added, so that drivers can distinguish
between callers asking for page/bank selection and legacy callers
that simply failed to zero out all ifi2creq fields.

The mlx5en(4) driver and iflib(4) driver frameork have been updated
to use this new SIOCGI2CPB ioctl and support page/bank operations.
A follow-on patchset will add support to ifconfig for reporting
data from CMIS optics.

This has been tested on Nvidia ConnectX-7 and Broadcom Thor2 (using
out of tree driver) based NICs.

Differential Revision: https://reviews.freebsd.org/D55912
Sponsored by: Netflix Inc.
Reviewed by: kib
cf1f21572897ffc85789fbb1792603967297f6fc Andrew Gallatin 2026-04-05 19:58:10

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

Commit group #40: linuxkpi
linuxkpi: Add `strtomem()` and `strtomem_pad()`

The DRM generic code started to use `strtomem_pad()` in Linux 6.11.

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55729
362136ed4987230269740f54531f6a945f00d135 Jean-Sébastien Pédron 2026-03-02 23:04:09

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


linuxkpi: Move `_RET_IP_` to <linux/instruction_pointer.h>

This matches the declaration on Linux.

Reviewed by:    bz, emaste
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55730
8af854ea479a140a6e284d74e481d0b547408df2 Jean-Sébastien Pédron 2026-03-02 23:06:54

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


linuxkpi: Define `_THIS_IP_`

For now, the macro is not implemented and it returns 0.

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

Reviewed by:    bz, emaste
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55731
56251304258a50fe31bac5cd7da74a4d25497606 Jean-Sébastien Pédron 2026-03-02 23:09:02

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


linuxkpi: Add mising functions in <linux/kmsg_dump.h>

The DRM generic code started to use `kmsg_dump_get_buffer()` and
`kmsg_dump_rewind()` in Linux 6.11.

Reviewed by:    bz, emaste
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55732
f2ad06a0801aaa987a40b8374b6baa8f510cb77a Jean-Sébastien Pédron 2026-03-02 23:50:55

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


linuxkpi: Define `CONFIG_PGTABLE_LEVELS`

This is a kernel configuration constant that is expected to be defined.

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

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55733
7bf93680807e518853262f3f961f88eb8ec03c83 Jean-Sébastien Pédron 2026-03-04 20:34:37

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


linuxkpi: Define `PMD_SHIFT`

For now, only define it for x86 architectures.

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

Reviewed by:    bz, emaste
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55734
be92ad6b12a5046cecf25477e7a3e88f70e5daee Jean-Sébastien Pédron 2026-03-04 20:36:20

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


linuxkpi: Add <linux/linux_logo.h>

It only defines the `struct linux_logo` structure for now. It does not
define any actual logo.

Reviewed by:    bz, emaste
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55735
ca6ea6df1f9241346d043a2091484ac9ced6580e Jean-Sébastien Pédron 2026-03-04 20:49:50

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


linuxkpi: Add <linux/mfd/core.h>

To be exact, there was a dummy file with no content before. This commit
defines `struct mfd_cell` and adds two function stubs.

The function stubs are not implemented but still return success. They
log a message to indicate they need to be implemented.

Also, unlike Linux, <linux/mfd/core.h> includes <linux/ioport.h>. This
works around the fact that we can't include <linux/ioport.h> from
<linux/pci.h>, due to a conflict with the FreeBSD-native `struct
resource`.

The amdgpu DRM driver started to use it in Linux 6.11.

Reviewed by:    bz, emaste
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55736
356d6f47d3b54b34aaba9e60aa551f3d615d0e2f Jean-Sébastien Pédron 2026-03-08 09:40:38

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


linuxkpi: Add field `flags` to `struct resource`

This in the Linux version of `struct resource`, not the FreeBSD native
structure.

The amdgpu DRM driver started to use it in Linux 6.11.

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55737
ddf89d899b8d2d0e26c1a22c92f3ac1eddeac9f6 Jean-Sébastien Pédron 2026-03-08 09:44:12

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


linuxkpi: Document why <linux/pci.h> can't include <linux/ioport.h>

Reviewed by:    bz, emaste
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55738
91e54839545f6cb91bb1a5f768ddd6c1e2420b48 Jean-Sébastien Pédron 2026-03-08 09:45:48

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


linuxkpi: Define `MIN_T()` and `MAX_T()`

There are the same as `MIN()` and `MAX()` except that they take a type
to cast both arguments to compare.

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

Reviewed by:    bz, emaste
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55739
ece26db020db3a21b1a4c6b608f77a9ed5be5924 Jean-Sébastien Pédron 2026-03-08 11:18:22

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


linuxkpi: Define missing `SZ_*` below 1 kib

The amdgpu DRM driver started to use it in Linux 6.11.

Reviewed by:    bz, emaste
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55740
5ee604b2446fa0f3fb949b21a587884ad65b5737 Jean-Sébastien Pédron 2026-03-08 11:23:54

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


linuxkpi: Add <linux/ascii85.h>

This is used by the i915 DRM driver for some time to log more details
about a GPU error, but the code was commented out.

Reviewed by:    emaste
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56282
0eaa57625d0fbe9960eabbaaedd522acdf673648 Jean-Sébastien Pédron 2026-03-09 19:04:12

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


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/'


linuxkpi: Add `struct xa_limit` support to xarray

The `xa_alloc*()` functions family takes a `struct xa_limit` to describe
the range of IDs the caller wants to allocate. We were using a single
mask to qualify a maximum ID only.

This commit changes that to use the same `struct xa_limit`. The logic
did not change, except it now supports a minimum ID as well.

The definition of `XA_LIMIT()` macro is adapted, as well as the
definitions of `xa_limit_*` (only `xa_limit_32b` existed, the other two
are added with this commit).

The DRM generic code started to use this `struct xa_limit` in Linux
6.12.

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

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


linuxkpi: Define `DEFINE_XARRAY*()` macros

The `DEFINE_XARRAY*()` macros are used to declare a static xarray.

As the structure embeds a mutex(9), we also need to declare the static
mutex after the `struct xarray`. Thus the slightly awkward definition
of `DEFINE_XARRAY_FLAGS()`.

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

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56446
796fff59a5d32bc3be14feaeb228fc15ef43eb32 Jean-Sébastien Pédron 2026-04-13 21:44:16

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


linuxkpi: Add `copy_from_user_inatomic_nontemporal()` function

In Linux 7.1, `__copy_from_user_inatomic_nocache()` was renamed to
`copy_from_user_inatomic_nontemporal()`. This change was backported to
several LTS branches.

This includes Linux 6.12.x and the i915 DRM driver started to use it in
that version.

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56719
713b4ce8ef46d7df4ffe50ab6733bb128dbe3cbd Jean-Sébastien Pédron 2026-04-29 22:14:59

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

Bump __FreeBSD_version to 1600015 after linuxkpi changes for DRM 6.11
As of this commit, all changes to linuxkpi required by the DRM drivers
from Linux 6.11 were committed.

Sponsored by:   The FreeBSD Foundation
36fe65cc7a31962e80a45d8b0fa6a401653a3deb Jean-Sébastien Pédron 2026-04-06 19:29:01

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

nfs_diskless: Fix handling of nfsuserd case for NFSv4
Commit 8b9775912cbc added support for an NFSv4 mounted
root file system, but only if the NFSv4 configuration
used id numbers in the strings.

This patch adds support for the case where the NFSv4
configuration uses name<-->id mappings via nfsuserd(8)
by priming the mapping cache with just enough entries
so that it works until the nfsuserd(8) is running.
They are listed in nfs_prime_userd[] in
sys/fs/nfs/nfs_commonsubs.c.

The entries in nfs_prime_userd[] are also wired into
the kernel's cache for name<-->id mappings when nfsuserd(8)
starts up.  This is necessary, since an upcall to the
nfsuserd(8) daemon for a mapping when looking up the
path to the passwd/group database files (/etc) will
hang the system, due to a vnode lock being held on
the entry in the path which blocks nfsuserd(8) from
accessing files.

To enable this case, the following must be put in the
NFS root file system's /boot/loader.conf:
boot.nfsroot.options="nfsv4"
boot.nfsroot.user_domain="<user.domain>"
where <user.domain> must be the same as nfsuserd
uses (usually set via the -domain flag).
If boot.nfsroot.user_domain does not exist or is
the empty string, ids is strings is configured.

MFC after:      1 week
Requested by:   Dan Shelton <dan.f.shelton@gmail.com>
Fixes:  https://cgit.freebsd.org/src/commit/?id=8b9775912cbc ("nfs_diskless: Add support for an NFSv4 root fs")
53b4ae3bf0f7e625d51fa263a5bd3859792d61e3 Rick Macklem 2026-04-07 15:50:21

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

imgact_elf: Unconditionally initialize a variable in a note handler
In the sb == NULL case, we are computing the size of the note using a
dummy sbuf drain handler which counts bytes and discards the contents of
the buffer, so the fact that "structsize" is uninitialized doesn't
matter.  But, the compiler may complain about this, so we might as well
just initialize it unconditionally to silence the warning, as other
handlers already do.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292811
MFC after:      1 week
8a68c2509c00ae0dbeab64064bb600cfac787a73 Mark Johnston 2026-04-08 04:19:56

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

vm_fault: Reset m_needs_zeroing properly
- When allocating a page, we should only consider the PG_ZERO flag when
  handling the top-level page.
- Unconditionally reset the flag when restarting the fault handler.
  Previously, vm_fault_busy_sleep() would fail to reset it.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294039
Reviewed by:    kib
Tested by:      Peter Much <pmc@citylink.dinoex.sub.org>
MFC after:      3 days
Fixes:          https://cgit.freebsd.org/src/commit/?id=cff67bc43df1 ("vm_fault: only rely on PG_ZERO when the page was newly allocated")
Differential Revision:  https://reviews.freebsd.org/D56234
04132e01004316ddd0e0cde6ef15b100b7b1844d Mark Johnston 2026-04-08 04:21:09

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

compat/linprocfs: Fix auxv sbuf leak
linprocfs_doauxv() allocates an automatic sbuf before validating
whether the requested read can be satisfied.

When the computed auxv read length exceeds IOSIZE_MAX, or when the
buffer length is too big, the function returns early without
releasing the sbuf.

Route these early exits through a shared cleanup path so the sbuf is
always deleted after sbuf_new_auto() succeeds.

Signed-off-by:  Shunchao Hu <ankohuu@gmail.com>
Reviewed by:    des, spmzt, zlei, aokblast
MFC after:      2 weeks
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2118
16aa49f6d1bbe70cd3e851139eb63d566de49b12 Shunchao Hu 2026-04-04 10:27:53

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

geom: Make g_waitidle() wait for orphaned providers
This is motivated by the following race in the ZFS zvol code.

When a zvol is created, we create a GEOM-backed zvol, which results in a
/dev/zvol/<zvol path> device file, created by GEOM::dev.  If volmode=dev
is specified, zvol_set_volmode_impl() will wither the GEOM, then create
a device file with the same name.  This sometimes fails because
g_wither_geom() is asynchronous, so we end up trying to create a device
file while the old one still exists.  I want to fix this by adding a
g_waitidle() call to zvol_os_remove_minor().

g_waitidle() is not sufficient: GEOM::dev does not destroy the device
until g_dev_orphan() is called.  (In fact the device destruction is
asynchronous too, but the delist_dev() call is sufficient to address
this race.)  So, I propose modifying g_waitidle() to block until
orphaned providers are processed.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=258766
Reviewed by:    mav, imp, kib
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D55049
36d971464ac21f6531cb9eaa377f4e1dd915a2ad Mark Johnston 2026-04-09 01:08:45

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

kqueue: don't leak file refs on failure to knote_attach()
We'll subsequently just knote_free() since the knote is barely
constructed, but that bypasses any logic that might release references
on owned files/fops.  Defer clearing those until the knote actually owns
them and update the comment to draw the line more clearly.

Reviewed by:    kib
Differential Revision:  https://reviews.freebsd.org/D56318
0bf4d22c37083170961c31694b90551538901a1c Kyle Evans 2026-04-09 02:37:00

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

kqueue: slightly clarify the flow in knlist_cleardel()
This is purely a cosmetic change to make it a little easier on the eyes,
rather than jumping back to the else branch up top.  Re-flow it to use
another loop on the outside and just inline the re-lock before we repeat
after awaking from fluxwait.

The !killkn path should maybe issue a wakeup if there's a thread in
KQ_SLEEP so that userland can observe the EOF, but this isn't a
practical problem today: pretty much every case of knlist_clear is tied
to a file descriptor and called in the close(2) path.  As a consequence,
potentially affected knotes are almost always destroyed before we even
get to knlist_clear().

Reviewed by:    kib, markj
Differential Revision:  https://reviews.freebsd.org/D56226
c6dd40f2d35d596ca60a5d87616c3e4a0fd4f676 Kyle Evans 2026-04-09 02:37:00

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

<sys/extattr.h>: use designated initializers for EXTATTR_NAMESPACE_NAMES
This is not a functional change, but it makes it more clear upon
inspection of the definition that the mapping property described is
preserved.  Maybe more importantly, if one ends up getting an index
wrong or punching a hole in the name array unexpectedly, then it'll
hopefully manifest more clearly as a (null) or nullptr deref rather than
potentially just emitting the wrong namespace name.

It's noted that this almost certainly invalidates its use in C++, but
there aren't really any known C++ consumers of it- let's just cross
that bridge if we get there.

Reviewed by:    kib, mckusick, rmacklem
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D55323
84ce651836e0d037f611cd33a5c65e1d57049432 Kyle Evans 2026-04-09 02:41:12

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

freebsd32: Fix freebsd11_nstat copyout condition
freebsd11_freebsd32_nstat() invoked copyout(2) when
freebsd11_cvtnstat32() failed and skipped copyout on success. This is
backwards.

Fix this to match freebsd11_freebsd32_nlstat() and freebsd11_nstat(),
and only copy the nstat32 result to userspace when conversion succeeds.

Signed-off-by:  Weixie Cui <cuiweixie@gmail.com>
Reviewed by:    mhorne
MFC after:      1 week
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2109
c6224994ac70b4f71ef9e11903bb2e50ed2b1bfe Weixie Cui 2026-03-31 10:12:32

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

sys/kobj.h: Make self-sufficient
kobj.h just needs sys/types.h (because it uses u_int, it can't use
sys/_types.h). kobj.h isn't a standard thing, so we don't need to be
careful about namespace pollution.

Sponsored by:           Netflix
428034ad0dbe3e39fc9cc96656688dd1f3d408a9 Warner Losh 2026-04-04 06:53:00

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

subr_early.c: cleanup includes
Sponsored by: The FreeBSD Foundation
MFC after:      1 week
4da93b9a8a5411f7386e79053d9c46df29627594 Konstantin Belousov 2026-04-10 10:16:28

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

kevent: do not check knote lists being empty before removing a knote
If a knote belongs to the list, there is no reason to check for the list
emptiness.  On the other hand, if the knote does not belong to the list,
then checking for emptiness is not enough since there might be a
different knote there.

Reviewed bu:    kevans, markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56341
31069fdbdae1027a6f1af7d56d418de4428ac6d9 Konstantin Belousov 2026-04-10 08:27:51

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

compat/linprocfs: Update /proc/partitions output
Linux /proc/partitions reports the major/minor pair, the device size in
1K blocks, and the device name.  linprocfs still printed obsolete
statistics columns and reported the size in bytes.

Update linprocfs_dopartitions() to emit the Linux-style header and
report provider sizes in 1K blocks.

Signed-off-by: Shunchao Hu <ankohuu@gmail.com>
Reviewed by:    des
MFC after:      2 weeks
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2126
Closes:         https://github.com/freebsd/freebsd-src/pull/2126
5f5cc3c67ae8a4d9a27e750bef98a9ce1a6b2cf5 Shunchao Hu 2026-04-07 13:07:31

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

zstd: disable weak-symbol tracing hooks in the kernel
zstd's tracing API (zstd_trace.h) declares ZSTD_trace_compress_begin()
and friends as __attribute__((weak)) externals, gated on the
ZSTD_HAVE_WEAK_SYMBOLS compile-time probe.  That probe has covered
x86_64 and i386 since at least zstd 1.5.6, and was extended to aarch64
and riscv in 1.5.7.

In a static kernel image there is no dynamic linker to patch the PLT GOT
entries at runtime.  On amd64 the undefined weak symbols resolve directly
to NULL, so the "!= NULL" guard in the zstd source correctly suppresses
every call through the stubs.  On aarch64 and riscv the ABI requires
GOT-based indirection for external calls: the PLT stub address is
non-NULL, the guard passes, and the call lands in an uninitialized GOT
slot.  Because this happens before exception handlers are in place the
machine resets silently, making the kernel unbootable after the zstd
1.5.7 import.

The upstream-supported suppression is ZSTD_NO_TRACE (zstd_internal.h),
which skips inclusion of zstd_trace.h entirely and forces ZSTD_TRACE=0.
Add it to ZSTD_C alongside the existing ZSTD_* defines, and while here
group all three -DZSTD_* flags onto a single line in alphabetical order
with ${.IMPSRC} on its own line.

Reported by:    many
Tested by:      lwhsu
X-MFC-with:     c0d9a07101a1
de2ea5423cc63b62e7e42d11b667aa634109fc28 Bjoern A. Zeeb 2026-04-11 16:24:32

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

Commit group #41: hash(9): introduce hashalloc()/hashfree() KPI
hash(9): introduce hashalloc()/hashfree() KPI

This is a more extendable version than traditional hashinit(9).  It allows
different kinds of slot headers with optional locks.

Implement traditional hashinit()/hashdestroy() on top of it.

Reviewed by:            pouria, gallatin
Differential Revision:  https://reviews.freebsd.org/D55904
abf68d1cf02550c3c0341f5bb90be0d34f655a15 Gleb Smirnoff 2026-04-12 17:25:51

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


411c28b6caa4a55d89cc34d77b33141b78ced590 Gleb Smirnoff 2026-04-12 21:10:27

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

Commit group #42: inpcb: retire INP_DROPPED and in_pcbdrop()
inpcb: retire INP_DROPPED and in_pcbdrop()

The inpcb flag INP_DROPPED served two purposes.

It was used by TCP and subsystems running on top of TCP as a flag that
marks a connection that is now in TCPS_CLOSED, but was in some other state
before (not a new-born connection). Create a new TCP flag TF_DISCONNECTED
for this purpose.

The in_pcbdrop() was a TCP's version of in_pcbdisconnect() that also sets
INP_DROPPED.  Use in_pcbdisconnect() instead.

Second purpose of INP_DROPPED was a negative lookup mask in
inp_smr_lock(), as SMR-protected lookup may see inpcbs that had been
removed from the hash.  We already have had INP_INHASHLIST that marks
inpcb that is in hash.  Convert it into INP_UNCONNECTED with the opposite
meaning.  This allows to combine it with INP_FREED for the negative lookup
mask.

The Chelsio/ToE and kTLS changes are done with some style refactoring,
like moving inp/tp assignments up and using macros for that.  However, no
deep thinking was taken to check if those checks are really needed, it
could be that some are not.

Reviewed by:            rrs
Differential Revision:  https://reviews.freebsd.org/D56186
40dbb06fa73cac37d57563c07e55efd0cabbd488 Gleb Smirnoff 2026-04-12 18:33:07

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


151a1eab3b785129d279af601ed716eda74886a8 Gleb Smirnoff 2026-04-12 21:45:40

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

debug: moved to kernel because 'Need to be grouped with 40dbb06fa73cac37d57563c07e55efd0cabbd488'

compat/linux: Add Linux i2c-dev ioctl compatibility support
Implement Linux I2C ioctl translation in the Linux compatibility layer
and wire iicbus cdevs up for in-kernel rdwr handling.
Support common i2c-dev requests including SLAVE, FUNCS, and RDWR,
while rejecting unsupported 10-bit and SMBus operations.

Signed-off-by:  YAO, Xin <mr.yaoxin@outlook.com>
Reviewed by:    imp, adrian, pouria
Differential Revision: https://reviews.freebsd.org/D56251
26740e8f80da17c78bee6fa322e6bb1f2669be5c YAO, Xin 2026-04-13 12:28:48

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

if_geneve: Add Support for Geneve (RFC8926)
geneve creates a generic network virtualization tunnel interface
for Tentant Systems over an L3 (IP/UDP) underlay network that provides
a Layer 2 (ethernet) or Layer 3 service using the geneve protocol.
This implementation is based on RFC8926.

Reviewed by:    glebius, adrian
Discussed with: zlei, kp
Relnotes:       yes
Differential Revision: https://reviews.freebsd.org/D54172
e44d2e941e8ebd74e6a1b1fdbed83fe86671cbc6 Pouria Mousavizadeh Tehrani 2026-04-11 14:12:01

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

linux: add sysfs filetype support for Linux statfs()
Added MAGIC number below and map to linsysfs in bsd_to_linux_ftype()

This maps:
  - `linsysfs` -> `LINUX_SYSFS_MAGIC` (`0x62656572`)

Signed-off-by: YAO, Xin <mr.yaoxin@outlook.com>

Reviewed by:    emaste
Pull request:   https://github.com/freebsd/freebsd-src/pull/2119
a3c457398f269c913aaa4d9dedcc72a70c02e845 YAO, Xin 2026-04-04 14:02:59

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

inpcb: retire inp_vnet
Now that a functional inpcb can not outlive its socket, just use socket's
vnet pointer.
9b76228006d8f0e45dea03d305eeac587d7a8500 Gleb Smirnoff 2026-04-14 16:02:00

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

qcom_gcc: Only build on arm64 for kernels with FDT
This fixes the build of the LINT-ACPI kernel.

Fixes:          https://cgit.freebsd.org/src/commit/?id=4e3fdced7f78 ("qcom_gcc: migrate the MSM8916 support to qcom_gcc")
c48381df77e15fda271555dcd5ef0cbbbd7cd9bf John Baldwin 2026-04-14 18:35:16

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

sys/time: appease gcc -Wtype-limits
In environments where time_t is 32 bits, including the 32-bit library
build on amd64, the overflow being tested for cannot happen, and gcc
complains with -Wtype-limits, causing the gcc build to fail.  Work
around this by ifdef'ing out the saturation code on i386.

Reviewed by:    imp, jfree
Discussed with: markj
Fixes:  https://cgit.freebsd.org/src/commit/?id=e3799530b3ba ("sys/time: Add saturating sbt conversions")
Differential Revision:  https://reviews.freebsd.org/D56369
00dccc3164c6dff38350a1baeeea7238acf2efc3 Ryan Libby 2026-04-15 08:08:37

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

linuxkpi: Fix an off-by-one error in the kfifo implementation
"total" is the number of slots in the array, so wraparound needs to be
done when "first" or "last" is greater than or equal to the number of
slots.

Note that no consumers of the code are currently connected to the kernel
build.

Reported by:    Stanislav Fort <stanislav.fort@aisle.com>
Reviewed by:    bz, emaste
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56371
52d2fc702b85d56b35f8828fe7efca3cde0d25b7 Mark Johnston 2026-04-15 13:33:04

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

arm64: Define the .iplt section placement.
Ensure that the .plt and .ipld sections are in the executable memory segment.

MFC after:      1 week
Reviewed by:    andrew
Differential Revision: https://reviews.freebsd.org/D56403
1dddb580f950a27fb9859b2879755dde114c9d8b Michal Meloun 2026-04-15 09:32:54

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

vm_swapout: Remove a special case from vm_swapout_map_deactivate_pages()
John points out that this probably should have been removed in commit
472888018ce, which removed a special case where we'd set desired=0 if
the target process has P_INMEM clear.  It's not obvious to me that the
desired=0 case can't arise by setting an RSS limit to 0, but I'm not
sure why we'd try to go the extra mile in that case anyway.

Reported by:    jhb
Reviewed by:    kib
MFC after:      2 weeks
Fixes:          https://cgit.freebsd.org/src/commit/?id=472888018ce1 ("proc: Remove kernel stack swapping support, part 6")
Differential Revision:  https://reviews.freebsd.org/D56140
b6b0afefec4739923897d984448704ce34a21e6b Mark Johnston 2026-04-15 18:00:38

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

glabel(8): Fix debug message for already existing labels
Remove the duplicate (incorrect) name.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294542
Reviewed by:    markj
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56400
92c69c791c436eb966fab806393b70e53cde6874 Michael Osipov 2026-04-14 08:38:59

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

Commit group #43: kern_descrip.c: Clarify allocation and freeing of fd map in fdgrowtable()
kern_descrip.c: Clarify allocation and freeing of fd map in fdgrowtable()

When expanding a file table, the condition for allocating a new map
is NDSLOTS(nnfiles) > NDSLOTS(onfiles) whereas for freeing the old map
is NDSLOTS(onfiles) > NDSLOTS(NDFILE).

If a previously expanded file table were to be expanded slightly again
such that the map did not need to be increased, then fdgrowtable could
still free the current map.

This does not happen currently as nnfiles is rounded up to a multiple of
NDENTRIES at the beginning of fdgrowtable() so that every enlargement
after the first enlargement will always require a larger map.

Though the logic is currently correct, it is unclear and should the
earlier rounding up of nnfiles be relaxed or remove, the logic would
be incorrect. This patch therefore adds comments and invariants checking
the size of the table and map, and updates the map free condition so
that it is absolutely clear that the old map will only be deallocated
if a new map has been allocated.

Signed-off-by: Kristofer Peterson <kris@tranception.com>
Reviewed by: kib, kevans
Pull Request: https://github.com/freebsd/freebsd-src/pull/2029
e75b324c93a14ab68d79d9247943ae10da184657 Kristofer Peterson 2026-02-18 13:56:53

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


file: Fix a format string assertion

Reported by:    Jenkins
Fixes:          https://cgit.freebsd.org/src/commit/?id=e75b324c93a1 ("kern_descrip.c: Clarify allocation and freeing of fd map in fdgrowtable()")
0dac997f2434a30785d71d7513b4ebfc3eecf0d7 Mark Johnston 2026-04-16 20:21:51

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

openat(2): check that userspace pass known and allowed flags
Reviewed by:  markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56365
8a5601cff1ea32ab63df1377f61620e4f91999b3 Konstantin Belousov 2026-04-12 10:48:47

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

arm64: mte: handle synchronous tag check faults
The Memory Tagging Extension supports both Synchronous and Asynchronous
faults, called Tag Check Faults, which are configurable via
SCTLR_EL1.TCF0 for userspace and SCTLR_EL1.TCF for the kernel.

This commit adds support for handling synchronous tag check faults at
EL0 and EL1, although these are only enabled on a per-process basis in
userspace, kernel space does not enable tag check faults. A TCF in the
kernel will cause a kernel panic like any other virtual memory fault,
and a TCF in userspace will result in a SIGSEGV

Reviewed by:    kib
Sponsored by:   Arm Ltd
Signed-off-by:  Harry Moulton <harry.moulton@arm.com>
Differential Revision:  https://reviews.freebsd.org/D55947
6f9e9eba984f5c8d8a022c0ec99f844a911687fe Harry Moulton 2026-04-16 13:29:14

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

so_splice: Fix the KTLS check for the sink socket in so_splice()
Reviewed by:  gallatin
Reported by:    Claude Sonnet 4.6
Fixes:          https://cgit.freebsd.org/src/commit/?id=1000cc4a0d39 ("so_splice: Disallow splicing with KTLS-enabled sockets")
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56385
d88a159da42a75dbd46ea4f6f9c8059975dab5e8 Mark Johnston 2026-04-16 19:57:36

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

i386: mark the stack as non-executable
Sponsored by:         Netflix
Reviewed by:            jhb
Differential Revision:  https://reviews.freebsd.org/D56411
62a19cd59b54a030c21a5529ed491ba2060140ca Warner Losh 2026-04-17 04:41:49

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

syscalls: Preserve the attributes of the args
Lightly parse and preserve the attributes of the args as attributes.

Sponsored by:           Netflix
Reviewed by:            brooks
Differential Revision:  https://reviews.freebsd.org/D56407
2a1745da389bd3bb9fd32c25cf221fa32866debd Warner Losh 2026-04-17 04:42:01

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

syscall: Create a script to export the data as json
Create a script to export the parsed data as json. Include the
annotations for the system call arguments, since they are helpful to
downstream uses.

Sponsored by:           Netflix
Reviewed by:            brooks
Differential Revision:  https://reviews.freebsd.org/D56408
b3b23f284a67317309af7c30bb70d5f461f3f02f Warner Losh 2026-04-17 04:42:10

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

Commit group #44: linux
linux: Support ICMP6_FILTER socket option translation

Handle Linux IPPROTO_ICMPV6 socket options in the Linuxulator and map
ICMP6_FILTER for both getsockopt(2) and setsockopt(2).

Linux and FreeBSD use inverted bit semantics for struct icmp6_filter, so
invert the filter contents before/after calling setsockopt/getsockopt.

Signed-off-by:  Ricardo Branco <rbranco@suse.de>
PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294434
Reviewed by:    pouria
Pull-Request:   https://github.com/freebsd/freebsd-src/pull/2138
64e2715f5d8f03ab7e763a49a0e102d755673810 Ricardo Branco 2026-04-12 11:01:47

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


linux: Support IPPROTO_RAW socket option translation

Handle Linux IPPROTO_RAW socket options in the Linuxulator for both
getsockopt(2) and setsockopt(2). Detect the socket family and remap
the level to IPPROTO_IPV6 for AF_INET6, reusing the existing option
translators.

This fixes IPV6_CHECKSUM for IPv6 raw sockets, which Linux programs
set at level IPPROTO_RAW rather than IPPROTO_IPV6.

Signed-off-by:  Ricardo Branco <rbranco@suse.de>
PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294434
Reviewed by:    pouria
Pull-Request:   https://github.com/freebsd/freebsd-src/pull/2138
caaa7a07fed4a16e753c0064482c0eaa0900607b Ricardo Branco 2026-04-12 14:08:38

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


linux: Translate IPv6 hoplimit ancillary data for recvmsg

Signed-off-by:  Ricardo Branco <rbranco@suse.de>
Reviewed by:    pouria
Pull-Request:   https://github.com/freebsd/freebsd-src/pull/2138
cd34d8dea4adb69b3d7189c7b98dbc9516da3e4a Ricardo Branco 2026-04-12 14:43:05

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

dtrace: Improve dmesg kernel message prefix
Provide intuitive log search keywords and increased system consistency.

MFC after:              2 weeks
Reported by:            mav
Reviewed by:            0mp, dteske
OpenZFS change:         d45c8d648 (Improve dmesg kernel message prefix)
Differential Revision:  https://reviews.freebsd.org/D55765
49e9b3061df036a73e8bc424c026158f3f57b183 Alexander Ziaee 2026-04-17 15:25:01

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

ixgbe: add MDIO bus support
This works enough to let me see the marvell switch on the MDIO bus.

It uses clause 22, which ixgbe's existing MDIO code doesn't currently
support, so it's implemented in a new source file.

Since mdio(4) is now required, add it where appropriate to GENERIC kernels.

Reviewed by:    kbowling
Differential Revision:  https://reviews.freebsd.org/D50128
cfec995c87f39e59c80554b85625b4aaa8ddf8db Adrian Chadd 2026-04-17 17:11:42

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

Commit group #45: LinuxKPI
LinuxKPI: 802.11: factor out chandef/chanctx initialization

Factor out chandef and chanctx initialization from lkpi_sta_scan_to_auth().
This makes the code a lot more readable and prepares for the next steps
that will re-use some of this.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
695f0f0d037a876fa27c0cdca9890e09fd75429e Bjoern A. Zeeb 2026-01-03 20:10:24

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


LinuxKPI: 802.11: save the default channel

Add a field to struct lkpi_hw to save the default channel for later
reuse.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
ced6909dd69b8476121dc291e01fa56ae14520e5 Bjoern A. Zeeb 2026-03-10 20:02:43

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


LinuxKPI: 802.11: keep chanctx on a reserved list

Keep the chanctx around as we may swap them.

In the future (11be) these lists likely need to be (a) limited to
maximum number of chanctx possible (see struct ieee80211_iface_limit),
and (b) with that also by radio.

For the moment keep this simple and start with a single chanctx
and build up from there when we get there.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
e62c92c0a5cfc000cf3c200e43738834ccc6472e Bjoern A. Zeeb 2026-03-23 00:47:57

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


LinuxKPI: 802.11: factor out getting and setting a chanctx

Further factor out acquiring the chanctx (either set or new),
as well as populating a chanctx with information.
This further simplifies lkpi_sta_scan_to_auth() and gives us
more reusable function blocks.

Sponsored by:   The FreeBSD Foundation
MFC after;      3 days
88cb1e17f471276e831c298c48acf9aca6ae29a6 Bjoern A. Zeeb 2026-03-23 03:55:14

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


LinuxKPI: 802.11: rework lkpi_ic_set_channel()

We are called by net80211 when channel changes are happening and
we have to map this to LinuxKPI 802.11.  There are multiple cases:
(1) it is a hardware scan and net80211 still changes the channel;
    we do not need to;
(2) it is a software scan (the magic fallback case) in which case
    we let net80211 drive the scan channel and we need to keep
    a copy of the scan_chandef (see follow-up commit);
(3) no scanning but a normal channel change triggerd by net80211;
    in that case we could (should?) setup the full flags right away
    but deferred LinuxKPI logic currently handle this for us as not
    in all cases the information was fully available from net80211
    in times we would have needed it.  We only do this in order
    to handle the emulate chanctx cases but do not change the
    channel otherwise; scan_to_auth will set the correct chanctx.
(3a) we have no (active) chanctx for that, create/set one,
(3b) we do have an (active) chanctx for this, use it but reset to
     defaults.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
491f5876bfb40a4f70f523b5d14bccf6b53d2b0c Bjoern A. Zeeb 2026-03-10 19:14:43

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


LinuxKPI: 802.11: improve emulate chanctx implementation

Now that all dependencies are implemented improve our chanctx emulation.
Some drivers still rely on chandef information for channel work.

In order to only do chanctx updates within mac80211 in Linux and
likewise in the LinuxKPI 802.11 compat layer, emulation functions
were introduced which claim to support chanctx driver operation but
in reality convert these to chandef field updates and (*config)
downcalls.

This is relevant to several mt76 chipsets (at least 7615, 7915),
and rtw88 and certain rtw89 chipsets (8851b, and the ones not supporting
SCAN_OFFLOAD or BEACON_FILTER) for us.

Migrate the logic out of the header and improve it.

Make use of the introduced dflt_chandef and scan_chandef fields,
add comparison of chandefs to see if we have to update, etc.

Also add strict checks for driver settings in linuxkpi_ieee80211_alloc_hw()
to make sure all preconditions are correctly met.  Store the result
if we are using the emulation functions in a field, so we can later
check on it and also leave a note to the users if emulation is used
in order to improve debugging on possible problem reports.

Use the new field that we use emulation in lkpi_ic_set_channel() instead
of a hand crafted check.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Fixes:          https://cgit.freebsd.org/src/commit/?id=ac1d519c01ca8 ("LinuxKPI: 802.11: adjustments for v6.11..")
166a7344df582f98a88f2b37b7aa3dc4558c9438 Bjoern A. Zeeb 2026-03-10 11:16:12

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


LinuxKPI: 802.11: add chandef tracing

Add chandef tracing so we can follow what is set and unset in the
chanctx emulation for drivers still needing this.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
72b9dda511b6944068fb18c2f2e059bca48d9edd Bjoern A. Zeeb 2026-04-03 19:59:02

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


LinuxKPI: 802.11: start filling vif->cfg.ap_addr

vif->cfg.ap_addr is used by various drivers now and is the BSSID for
non-MLO or the AP addr for MLO configurations.

If this is unset rtw89 gets cranky and certain packets are likely not
going out correctly (also for iwlwifi).

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
dc886a4428712aa4fcdcf8cd9e850b048c923bbf Bjoern A. Zeeb 2026-04-16 23:42:03

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


LinuxKPI: 802.11: make sure dtim_period is set

When going from ASSOC to RUN LinuxKPI based wireless drivers have
certian expectations written in various ways.  I believe mac80211
waits to see a beacon before setting the vif to assoc (or the sta
to AUTHORIZED).  We have some comments in lkpi_update_dtim_tsf()
for that.
In practice we can filter out the beacons already and know when
they came in as we count them but it is hard to split up the
state machine and defer the work.

So we make sure that dtim_period is set to at least 1 before
calling the (*vif_cfg_change) after setting assoc to true;
0 is a reserved value according to the standards.

We will update it once we see a beacon and in case the value
differs from 1 shortly afterwards from the recv_mgmt callback.

While iwlwifi seems to have coped with our initial implementation,
rtw89 may hit a DIV 0 if dtim_period is 0 depending on how well
the rx path races with our unlocking in assoc_to_run.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
9f20a4ebf044eb0cab83397c83f13bb3958abf6a Bjoern A. Zeeb 2026-04-17 02:34:51

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

Commit group #46: LinuxKPI
LinuxKPI: move hex2bin() from kernel.h to new hex.h

New Linux v7.0 drivers include hex.h.  Rather than adding a dummy
header, migrate the kernel.h hex2bin() into hex.h, where it belongs.
Care needs to be taken as the _h2b() helper function is still used by
other bits in kernel.h.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Reviewed by:    emaste, dumbbell
Differential Revision: https://reviews.freebsd.org/D56391
98297ff3cfbb42df86fa7af51a2740d5aa7236eb Bjoern A. Zeeb 2026-04-14 13:36:40

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


LinuxKPI: add default_gfp()

Various new allocation macros can take an optional gfp_t argument.
If the argument is not given we need to set the GFP_KERNEL default.
While this is only internally used and I initialy called it differently,
should this spread elsewhere having the same name as in Linux will be
good.

Sponsored by:   The FreeBSD Foundaton
MFC after:      3 days
Reviewed by:    dumbbell
Differential Revision: https://reviews.freebsd.org/D56392
35b90c21f48056e85b70dbbe2209b6c3a4927315 Bjoern A. Zeeb 2026-04-14 13:40:24

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


LinuxKPI: conditionally add __flex_counter()

__flex_counter() is used by overflow.h and needed for "flex allocations".
It is either a void * typed 0 (NULL) (like this for _Generic checks),
or uses __builtin_counted_by_ref.

The latter was added to gcc and llvm fairly recently and while for gcc
the __has_builtin() check suffices, clang had parts broken until recently
so needs an extra check for the next major version.  The fixed hash is
currently not part of any tag to use, so we play it save (and hope 23
will have it).  It will be a while until we will see the builting to be
used but at least we will be prepared for it.  See inline comments for
the commit hashes and versions which added the feature.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Reviewed by:    dumbbell
Differential Revision: https://reviews.freebsd.org/D56393
524df650a92f648e19ba27d6727bdc79c8efdbbb Bjoern A. Zeeb 2026-04-14 15:06:56

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


LinuxKPI: sync overflow.h from Linux v7.0

overflow.h was imported directly from Linux in 3208d4ad2b8320a.
Update the file to the newer version as needed for v7.0 driver updates.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Obtained from:  git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
                028ef9c96e96197026887c0f092424679298aae8 (tag: v7.0)
Reviewed by:    emaste, dumbbell
Differential Revision: https://reviews.freebsd.org/D56394
d2c85255d4fca37ec9774f85f867f8fc89a51269 Bjoern A. Zeeb 2026-04-14 13:50:44

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


LinuxKPI: add kmalloc_obj[s], kzalloc_obj[s], and kzalloc_flex

Drivers in Linux v7.0 seem to have changed to the new allocation
macros using a sweep.  Add the ones I encountered with wireless
drivers so far.  They all take an optional argument for a gfp_t,
which default_gfp() deals with.

The plural version "objs" takes an extra nitems argument in addition
to the size.  We use size_mul() to possibly detect overflows.

The "flex" version uses an extra variable to track the variable sized
array allocations and if supported by the compiler will use
__builtin_counted_by_ref() to properly track bounds.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Reviewed by:    dumbbell
Differential Revision: https://reviews.freebsd.org/D56395
c72ac6af086962d236f4712761abacac0c62b48e Bjoern A. Zeeb 2026-04-14 15:13:18

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


LinuxKPI: implement devm_kmemdup_array()

Implement devm_kmemdup_array() using devm_kmemdup() in order to
prepare for Linux v7.0 based drivers.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Reviewed by:    dumbbell
Differential Revision: https://reviews.freebsd.org/D56396
f1834d03af617a93993056bb902082452673f89f Bjoern A. Zeeb 2026-04-14 13:35:36

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

pipe: retire the unused PIPE_LWANT macro
8c94a1ea155586a70369f263a5e01b26a1b37d58 Mateusz Guzik 2026-04-18 08:17:56

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

Commit group #47: LinuxKPI
LinuxKPI: 802.11: set IEEE80211_MIN_ACTION_SIZE according to struct

IEEE80211_MIN_ACTION_SIZE came up in the mt76 vendor subtree merge
as one of the non-mechanical changes which made me look.
Rather than (incorrectly) hand counting the offset from the beginning
of a frame, use the offset from the beginning of struct ieee80211_mgmt.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
f252ce00898d17f4892534934b8097cd7ccb9e26 Bjoern A. Zeeb 2026-04-15 07:50:35

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


LinuxKPI: 802.11: Add structures and functions for NAN support

In Linux v7.0 iwlwifi(4) started to add support for Wi-Fi Aware(tm)
also known as Neighbor Awareness Networking (NAN).

Add structures and fields for this as needed so far to keep the driver
compiling.  net80211 has no support for it as a new mode.

We may consider a dedicated header file for these parts in the future
depending on how much more is to come.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
a0112b013f93a47489051fed54ea48c077e59de4 Bjoern A. Zeeb 2026-04-18 11:26:59

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


LinuxKPI: 802.11: add struct/fields and functions for v7.0

Add 802.11 struct fields and functions support for Linux v7.0 based
wireless drivers (at least iwlwifi, rtw88, rtw89).

While here cleanup some other bits.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
25e776a5438005db59c6d474b5d47c42d2a341b9 Bjoern A. Zeeb 2026-04-14 15:23:31

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

gdb: Print a stack trace if a python command raises an error
MFC after:    1 week
9899c8da0c19e66bedf37dd914e13880089877e2 Mark Johnston 2026-04-18 12:23:18

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

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 #48: 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/'

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 #49: 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 #50: 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 #51: 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 #52: 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 #53: 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/'

kern/init_main.c: path is for the binary, not process
Reviewed by:  imp, jilles
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56536
a268af3447ebaa9712174ba2d226ffdc66f68e98 Konstantin Belousov 2026-04-26 10:15:18

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

linux: Ignore sigaction(2) flags SA_UNSUPPORTED and SA_EXPOSE_TAGBITS
SA_UNSUPPORTED was introduced in Linux 5.11 to probe support
for other flags such as SA_EXPOSE_TAGBITS, introduced
at the same time. Ignore both.

Signed-off-by:  Ricardo Branco <rbranco@suse.de>
PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=289285
Reviewed by:    pouria, kib
Pull-Request:   https://github.com/freebsd/freebsd-src/pull/2163
fdea83a5f63b881ade91c6cc9dfbf173137512c5 Ricardo Branco 2026-04-26 09:44:53

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

execve: Fix an operator precedence bug
The buggy version allowed userspace to overflow the copy into adjacent
execve KVA regions, which enables, among other things, injecting
environment variables into privileged processes.

Approved by:    so
Security:       FreeBSD-SA-26:13.exec
Security:       CVE-2026-7270
Reported by:    Ryan Austin of Calif.io
Reviewed by:    brooks, kib
Fixes:          https://cgit.freebsd.org/src/commit/?id=f373437a01a3 ("Add helper functions to copy strings into struct image_args.")
Differential Revision:  https://reviews.freebsd.org/D56665
8e8ddb05d07142e95cf84e32bf93b9ecb3f90283 Mark Johnston 2026-04-22 17:58:35

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

tcp: release nic ktls send tags when entering time wait
When under heavy load or churn, inline ktls offload NICs may run out
of hardware resources described by ktls send tags.  Rather than
waiting for connections to pass through the time_wait state, reclaim
the ktls send tags early, at entry to time_wait. By preventing
potentially tens or hundreds of thousands of sessions from holding
send tags in time_wait, this allows more ktls sessions to be offloaded
to hardware.

Reviewed by: glebius, kib, nickbanks_netflix.com, rrs, tuexen
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D56610
72e2ae505c4a081d4b4759f51e25bf6e17c99442 Andrew Gallatin 2026-04-29 23:26:05

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

dtrace: Add missing file for powerpc kernel build
787b5e136735e979398bca2057310d0fd594a3bc Justin Hibbits 2026-04-28 00:14:12

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

Commit group #54: preload: add "show preload" DDB command
preload: add "show preload" DDB command

This is the DDB equivalent of the debug.dump_modinfo sysctl which
outputs pretty-printed bootloader metadata.

Move sbuf_db_printf_drain to subr_prf.c and expose it for general use.

Reviewed By: jmg
Differential Revision: https://reviews.freebsd.org/D53763
b683fd0b3206b35214f7f87805246e5c74552942 Stephen J. Kiernan 2026-04-30 05:19:09

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


ddb.4: add 'show preload' entry

For the recently added command.

Fixes:  https://cgit.freebsd.org/src/commit/?id=b683fd0b3206 ("preload: add "show preload" DDB command")
16dd592982887fb3bc27460c50215cd54157ac5f Mitchell Horne 2026-04-30 13:22:21

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

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

linuxkpi: Define `VFM_*()` macros in <asm/cpu_device_id.h>
They use another set of constants and macros in <asm/intel-family.h>.

All these macros are defined regardless of the architecture, even though
they are specific to x86. Perhaps we should restrict them using #ifdefs.

The amdgpu DRM driver started to used `VFM_MODEL()` and the
`INTEL_*LAKE*` constants in Linux 6.12.x.

Reviewed by:    bz, olce
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56585
65dc0e9071a5ea206d6fbf070c974ebcfdea3680 Jean-Sébastien Pédron 2026-04-22 16:23:16

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

sx: Add `sx_has_waiters()` macro
This macro will return non-zero if there are threads waiting for this
lock; otherwise, it will return zero.

The function assumes (but does not assert) that the caller already holds
the lock and that it is interested in other threads waiting for it to
release the lock.

The motivation to add this is the implementation of
`rwsem_is_contended()` in linuxkpi.

This Linux function indicates the same thing to the caller: if other
threads are waiting for this semaphore.

The amdgpu DRM driver started to use `rwsem_is_contended()` in Linux
6.12.

Reviewed by:    bz, olce
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56443
eebb643bb3799ae90dd248f0b5047ec481b26f68 Jean-Sébastien Pédron 2026-04-12 17:20:25

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

Bump __FreeBSD_version to 1600018 after linuxkpi changes for DRM 6.12.84
As of this commit, all changes to linuxkpi required by the DRM drivers
from Linux 6.12.84 were committed.

Sponsored by:   The FreeBSD Foundation
1569e2334ab5b2ee1e2b7893cb05c17a27d3eca8 Jean-Sébastien Pédron 2026-04-30 17:54:30

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

uipc_shm.c: make large page allocation interruptible
in cases there is no page pressure or when the user lost patience
waiting for very large allocation.  Other case is already handled by
vm_wait_intr().

Reported by:    "Lizzie from Eden Emulator project"
Reviewed by:    adrian, markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56725
839d3266d8c6f6471cb92a3c0ae32eb16d117427 Konstantin Belousov 2026-04-28 02:34:49

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

linux: Implement setfsuid(2) and setfsgid(2) as no-ops
These system calls exist to decouple the Linux filesystem credentials
from the effective credentials, avoiding signal exposure during
privilege transitions.
The signal permission model that motivated this was revised
in Linux 2.0, making these syscalls obsolete for new applications.

Implement both syscalls as no-ops that return the current effective
UID/GID as the previous filesystem UID/GID.
Linux returns the previous filesystem UID/GID for these syscalls
with no error indication.

Same for the equivalent setfsuid16() & setfsgid16() system calls.

Signed-off-by:  Ricardo Branco <rbranco@suse.de>
PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294879
Reviewed by:    kib, pouria
Pull-Request:   https://github.com/freebsd/freebsd-src/pull/2175
f4ae41b7ea5efb8381a5df234b3f5e1f7569f9b0 Ricardo Branco 2026-04-29 18:27:22

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

namei: Preserve ABI root for absolute symlinks before fallback
D40479 changed namei() so that an absolute symlink target
encountered during an ABI-root lookup restarts from the native root.
This helps the native fallback case, but it also makes successful
lookups inside an ABI root escape that root while following absolute
symlinks.

Only switch absolute symlink lookup to the native root after namei()
is already in the restarted/native fallback pass.
Do not mark the lookup as restarted merely because an absolute
symlink was encountered while still resolving inside the ABI root.

This preserves the intended native fallback behavior while keeping
absolute symlinks within a successfully resolved ABI-root path in
the ABI namespace.

Signed-off-by:  Ricardo Branco <rbranco@suse.de>
PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=289739
Reviewed by:    kib
Fixes:          https://cgit.freebsd.org/src/commit/?id=cea7c564c70a ("namei: Reset the lookup to ...")
Pull-Request:   https://github.com/freebsd/freebsd-src/pull/2166
459ac3044b516af698d7342431bdbcf784fdf7a4 Ricardo Branco 2026-04-26 16:44:39

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

ctl_ioctl_frontend: Reject out-of-range initiator IDs
Various places in CTL assume that initiator IDs are not larger than
CTL_MAX_INIT_PER_PORT.  Other IDs such as lun IDs are validated in
places such as ctl_scsiio_precheck, but initiator IDs submitted by
userland were not previously validated.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=291059
Reported by:    Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org>
Reviewed by:    asomers
Sponsored by:   Chelsio Communications
Differential Revision:  https://reviews.freebsd.org/D56628
6f8312bdff236ad64d1c15c239051359d8245a68 John Baldwin 2026-05-02 16:43:29

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

nfscl: Fix handling of gssd upcalls for the NFS client
Without this patch, all upcalls to the gssd daemon are
done in vnet0 (outside of any vnet jail).  This does
not work well, because a user principal's credential
cache can be within the jail (/tmp/krb5cc_NNN in the
jail's namespace).

This patch modifies the client so that RPCs done
from within vnet jails does an upcall to a gssd
daemon running within the vnet jail.  It required
that the cache of uid->credential shorthands in
the rpcsec_gss be vnet'd.

The situation is still less than ideal and sec=krb5[ip]
mounts that are visible within vnet jails is still
not something I would recommend, but it can work ok
with this patch.

Vnet'ng the NFS client so that mounts can be done
within vnet jails is probably more useful, but that
will require additional work.

Discussed with: glebius
MFC after:      1 month
a6e527f893df2cbbd941839a93e50ae39ac0db55 Rick Macklem 2026-05-02 19:36:00

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

Add O_SYMLINK emulation
for MacOSX partial compatibility, defined as O_PATH | O_NOFOLLOW.
fstat(2) and freadlink(3) works on the resulting file descriptors,
but reads on the regular file do not.

More complete but more hackish version was developed but deemed too
hackish.

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56365
2213820b6f4cd22bbfdc0f45741c3e7d17ae82c0 Konstantin Belousov 2026-04-20 20:02:13

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

bufspace_wait(): only try to help bufdaemon if there is a chance to help
Only call buf_flush() if there are some dirty buffers belonging to the
vnode we are allocating the buffer for.  Otherwise the bd dirty queue
scan cannot find anything and it makes no sense to spend CPU doing it.
067cfac2e7bd9dc857fb6cc504c01b0249bcd1b7 Konstantin Belousov 2026-04-22 05:09:34

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

sys/rangelock.h: explicitly enumerate padding at the end of the structure
Sponsored by: The FreeBSD Foundation
MFC after:      1 week
Differential revision:
a770638ecf16515d8922111c3fdd417aba6c045e Konstantin Belousov 2026-04-26 02:22:52

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

struct vnode: assign v_rl.resv1 as v_vrflag
Sponsored by: The FreeBSD Foundation
MFC after:      1 week
Differential revision:
d990e8f0e9478194569ba28c366b0c0c0f414e7b Konstantin Belousov 2026-04-26 02:31:50

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

vfs: convert vfs_op_thread_* macros to static inlines
Sponsored by: The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56611
a61a696e78a967b149a6e39b1f98ada26217a6bb Konstantin Belousov 2026-04-24 01:26:11

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

vnode: add VIRF_KNOTE flag
to indicate non-empty vnode knote list.  Use it instead of
VN_KNLIST_EMPTY() and guard note activations with it.

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56611
7fe74a02764e5899b10cdc45ab34182b961d5d19 Konstantin Belousov 2026-04-24 01:31:27

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

vfs: convert VFS_OPs from macros to static inlines
Sponsored by: The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56611
48bf024f2ef5afeba3500bd92a04283370479edf Konstantin Belousov 2026-04-24 01:31:27

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

krpc: Get rid of KRPC_VNET macros
When the krpc was vnet'd, the VNET macros were hidden
behind macros that had the KRPC_ prefix on them.
This was done because, at the time, it was thought
that something other than vnet might be used for this.
That has not happened and probably will not happen,
so this patch replaces these obscuring macros with
the regular vnet ones.

There should be no semantics change caused by
this commit.

Discussed with: bz, glebius
MFC after:      1 month
d8d9e1cf5e055433565a7e686bc096a8494d2bb8 Rick Macklem 2026-05-03 21:25:06

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

unix: Make sure we signal EOF on the write side when disconnecting
Add a regression test.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294014
Reported by:    diizzy
Reviewed by:    glebius
MFC after:      1 week
Fixes:          https://cgit.freebsd.org/src/commit/?id=d15792780760 ("unix: new implementation of unix/stream & unix/seqpacket")
Differential Revision:  https://reviews.freebsd.org/D56764
476805133f5736c2c8638e41d2b5d8dd2c597f3a Mark Johnston 2026-05-03 15:46:22

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

execve: Add guard pages around execve KVA buffers
This helps ensure that overflows will trigger a panic instead of
silently corrupting adjacent buffers, as happened in SA-26:13.exec.

Extend kmap_alloc_wait() to support allocation of guard pages on both
sides of a KVA allocation.  Modify the exec_map setup accordingly.  Add
the "vm.exec_map_guard_pages" tunable to provide control over the guard
page allocations.

Reviewed by:    kib
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D56711
eca4dd133883c9e9aaeca68e0119a638ba0aaca7 Mark Johnston 2026-05-04 15:38:54

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

linuxkpi: Implement `module_*()` APIs as static functions
This fixes an "unused variable" warning when building DRM drivers.

Reviewed by:    emaste
MFC after:      3 days
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56780
658bb99db9c7872f92ccb86ed2674c72636436d2 Jean-Sébastien Pédron 2026-05-04 07:45:38

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

nfs_pub: move from vfs_subr.c to vfs_export.c
nfs_pub is used only in vfs_export.c.

Reviewed by:    kib, rmacklem
Differential Revision:  https://reviews.freebsd.org/D56777
6f84579ae4d107635e32fc3fcfc34669adc7b3f5 Ryan Libby 2026-05-05 05:55:11

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

mac_veriexec_priv_check block proc_write_*regs*
Writing to /proc/$pid/regs can also be leveraged to mess with memory.

Only allow a trusted process to do so.

Sponsored by: Hewlett Packard Enterprise Development LP.

Reviewed by:    olce
Differential Revision:  https://reviews.freebsd.org/D56763
adad6862228d1799e7e12c724b2534b4184f7d45 Simon J. Gerraty 2026-05-05 17:29:54

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

Commit group #55: eventhandler: Fix a race when pruning eventhandlers
eventhandler: Fix a race when pruning eventhandlers

By default, eventhandler_deregister() blocks until it reaches some point
where no threads are invoking the event.  At this point, it knows that
1) no threads are currently executing the handler,
2) some thread has freed the eventhandler structure by virtue of having
   called eventhandler_prune_list(),
so it is safe to return.

Suppose a thread is trying to deregister an event handler.  A different
thread prunes it, and wakes up the first thread.  Before the first
thread runs, a third thread grabs the event handler lock, and starts
executing handlers.  The first thread observes el_runcount > 0, and goes
back to sleep.  The third thread sees no event handlers to prune, and
doesn't wake up the first thread, which sleeps forever.

This change fixes the race and tries to make eventhandler_invoke() more
efficient: keep a count of the number of dead list entries and only
prune the list if there is at least one dead entry.  Also, in
eventhandler_deregister(), we only need to sleep if some dead entries
are present, rather than sleeping whenever some thread is running
handlers.

Reviewed by:    kib
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D56767
735b16d490aee158beb54c415b716475a0d19cda Mark Johnston 2026-05-06 11:48:05

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


eventhandler: Fix the NODEBUG build

Reported by:    Michael Butler <imb@protected-networks.net>
Fixes:          https://cgit.freebsd.org/src/commit/?id=735b16d490ae ("eventhandler: Fix a race when pruning eventhandlers")
3d8928114c4fec6cefbb1cd566ef8d1b3d2999e2 Mark Johnston 2026-05-06 14:39:52

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

sys/cdefs.h: Introduce __maybe_unused attribute
The __maybe_unused attribute should be used for variables which may or
may not be used, such as when their only use is in an assertion. This
attribute is functionally identical to __unused, suppressing compiler
warnings for particular variable if it remains unused.

Reviewed by:    Minsoo Choo <minsoo@minsoo.io>, imp
Differential Revision:  https://reviews.freebsd.org/D56517
84a95741805d84f0074a34d61b93ccf86f422cf3 Hans Rosenfeld 2026-04-16 18:22:44

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

kobj: Assert class passed to kobj_init_static is compiled
Inspired by discussion in
https://github.com/freebsd/freebsd-src/pull/2016

Reviewed by:    imp
Differential Revision:  https://reviews.freebsd.org/D56624
5a6e5954d14b589bcba0125d10a6c7b62b588f4b John Baldwin 2026-05-06 20:53:46

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

kobj: Use M_WAITOK in kobj_init
Blocking allocation is safe in all of the current callers of kobj_init
(most of them do a M_WAITOK malloc of the structure passed as the
first argument to kobj_init just before calling it).  kobj_init
doesn't return an error code but instead panics if the nested malloc
in kobj_class_compile1 fails, so using M_WAITOK here is more robust.

Reviewed by:    imp
Differential Revision:  https://reviews.freebsd.org/D56625
5df7dae10dc02ade8639b0171e0d3cc8db790e41 John Baldwin 2026-05-06 20:53:46

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

Remove PROC_CHECK_PRIV macro from sys_process.c
Just put the priv_check calls in the code.

Reviewed by:    kib
Differential Revision:  https://reviews.freebsd.org/D56864
586838724e4086016ad62f0914248fc58ce26e35 Simon J. Gerraty 2026-05-07 03:49:06

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

sys: Make priority.h and rtprio.h include all dependencies
This ensures this header can be included without an explicit or implicit
sys/types.h include first. This causes issues building SPEC2017 which
includes sys/rtprio.h and then we get an error due to missing u_char
definition.

Reviewed by:    emaste
MFC after:      1 week
Differential Revision: https://reviews.freebsd.org/D52041
3daa43b1bb2cf68f32993e342f59eb146afb7c24 Alex Richardson 2026-05-07 04:20:39

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

p9fs: Move UMA zone initialization to VFS module lifecycle
Previously, the UMA zones required for 9P requests (p9fs_buf_zone,
p9fs_req_zone, etc.) were initialized and destroyed in the
virtio_p9fs transport module. This caused issues when unloading
the core p9fs module.

This change moves p9_init_zones() and p9_destroy_zones() into
p9fs_init() and p9fs_uninit() inside p9fs_vfsops.c so that they
are correctly bound to the VFS filesystem module lifecycle via
vfs_modevent, aligning p9fs with standard FreeBSD VFS semantics.

Found while fixing https://github.com/CTSRD-CHERI/cheribsd/issues/2617.

Reviewed by:    kib
MFC after:      1 week
Differential Revision: https://reviews.freebsd.org/D56492
1ed2ef42e01771f5d8ca9be61e07dcf0fd47feba Alex Richardson 2026-05-07 04:21:50

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

bufspace_wait(): only try to help bufdaemon if there is a chance to help
Only call buf_flush() if there are some dirty buffers belonging to the
vnode we are allocating the buffer for.  Otherwise the bd dirty queue
scan cannot find anything and it makes no sense to spend CPU doing it.

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
ce4e8c478a261ce6c7af7d81817f86420c5239b9 Konstantin Belousov 2026-04-22 05:09:34

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

vm_map_growstack(): consistently use local vars instead of curthread/proc
Reviewed by:  markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56863
642dd17ee94377c3d5533d05d0d9a58b88f60387 Konstantin Belousov 2026-05-07 16:00:31

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

vm_map_growstack(): give a hint to user that stack was blown out
Reviewed by:  markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56863
18c5a26f8a747583b9bca3a6a1ae9db1ed4591a3 Konstantin Belousov 2026-05-06 22:53:59

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

vm_map_growstack(): use local for p->p_vmspace
Noted by:     alc
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
8eef59db254283eaaee47be94d4ea9f2fef4f2ad Konstantin Belousov 2026-05-07 19:58:18

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

Fix LOCAL_PEERCRED in 32-bit compat mode
Previously the cr_pid field would be incorrectly copied to userland, due
to a size mismatch between the structure as defined in 32-bit vs 64-bit
builds.  Fix it by converting the structure before copying it to
userland.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294833
Sponsored by:   ConnectWise
MFC after:      1 week
Reviewed by:    emaste
Differential Revision: https://reviews.freebsd.org/D56675
1d24638d3e8875e4b99a4b5e39f4241e37221b3d Alan Somers 2026-04-27 23:46:53

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

types: provide __SIZEOF_{INT{8,16,32,64},TIME,TIME32}_T
Suggested by: kib
Reviewed by:    imp, kib
Discussed with: emaste, jrtc27
Differential Revision:  https://reviews.freebsd.org/D56783
94323513dd5070bf1fc3c191c560bd7e17da8931 Ryan Libby 2026-05-08 19:37:24

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

sys/time: rework saturation ifdef to avoid direct arch ref
Suggested by: kib
Reviewed by:    imp, kib
Differential Revision:  https://reviews.freebsd.org/D56401
324d53c26b2399d9b44fdd08e9c5af650f4ec3ae Ryan Libby 2026-05-08 19:37:24

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

vfs_subr: mark uma zone and smr pointers __read_mostly
Reviewed by:  kib
Differential Revision:  https://reviews.freebsd.org/D56892
58e5b4dbd9594f9553cfe9df68a19a294e245ed7 Ryan Libby 2026-05-10 04:25:12

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

Add O_SYMLINK emulation
for MacOSX partial compatibility, defined as O_PATH | O_NOFOLLOW.
fstat(2) and freadlink(3) works on the resulting file descriptors,
but reads on the regular file do not.

More complete but more hackish version was developed but deemed too
hackish.

Sponsored by:   The FreeBSD Foundation
MFC after:      2 weeks
Differential revision:  https://reviews.freebsd.org/D56365
428da7d65b1c41c81a8786f66c1ce2f4242ac8bb Konstantin Belousov 2026-04-20 20:02:13

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

vfs: convert vfs_op_thread_* macros to static inlines
Reviewed by:  markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56611
32cf4514cad66ff69ffc96ede20d8debc9b96790 Konstantin Belousov 2026-04-24 01:26:11

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

vnode: add VIRF_KNOTE flag
to indicate non-empty vnode knote list.  Use it instead of
VN_KNLIST_EMPTY() and guard note activations with it.

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56611
1d5e4020e36e1cc9e906200c9c3c784ef43d977e Konstantin Belousov 2026-04-24 01:31:27

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

vop_read_pgcache_post(): report inotify IN_ACCESS same as for vop_read_post()
Reviewed by:  markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56611
e9a5eb0e5e44e79d0f8dc71274b0183926abd562 Konstantin Belousov 2026-05-06 20:29:28

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

vfs: convert VFS_OPs from macros to static inlines
Reviewed by:  markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56611
a57420b214b04de3d066236b555925ffbcb93daa Konstantin Belousov 2026-04-24 01:31:27

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

sys/vnode.h: remove stale comment
The source sweep is not going to happen.

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56611
5e4947f7e08a90ba50f9e8cea9ae5e128717cb5f Konstantin Belousov 2026-04-24 02:06:02

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

sys/cdefs.h: move __BEGIN_DECLS/__END_DECLS into a helper sys/_decls.h
There are situations where nothing from sys/cdefs.h is needed except for
the declaration braces.  More, the other facilities from sys/cdefs.h
might unnecessarly pollute the namespace.

Reviewed by:    markj, imp
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56889
ea72f6d5a8b9386a09e23fbdc933effb007ca899 Konstantin Belousov 2026-05-08 14:13:35

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

linux: address executable stack warnings
Mark assembly files as not requiring executable stacks.

This still leaves linux32_vdso.so without a .note.GNU-stack section in
the gcc build for now.

Reviewed by:    imp, kib
Differential Revision:  https://reviews.freebsd.org/D56894
bac7bd5038e09d12dfdbf79a87b25443e02d0ba9 Ryan Libby 2026-05-11 05:39:27

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

power: Rename sleep types
Make sleep type names clearer and more consistent, and allow space for
something like "os_hibernate" once that gets added to FreeBSD.

Reviewed by:    jaeyoon, olce, markj
Approved by:    jaeyoon, olce, markj
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56920
95b4436e989df29f6368f13832cb13d7cbc52eac Aymeric Wibo 2026-05-11 17:11:36

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

power: Rename power transition enum
Just so it isn't so long.  Changing now before the API freezes, after
discussion with olce@.

While here, improve the wording in the comments for power transitions
and sleep types a bit.

Reviewed by:    olce
Approved by:    olce
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56953
6f451c60918f2152ebe89f561f04e5219cecffa6 Aymeric Wibo 2026-05-12 09:46:19

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

vm: Add flags for unprotected allocations
Unprotected allocations are intended to be accessible outside of the current
VM on systems such as Arm CCA.

Reviewed by:    markj
Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D56518
cd2512eaab5cd402a0177a8078b9234b215b39bd Sarah Walker 2026-05-12 12:16:00

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

physmem: Add a way to read all memory
In Arm CCA we need to find all memory to protect it. This needs to find
all memory, ignoring any excluded memory to protect it from the host.

Add physmem_all that reads all physical memory regions.

Co-developed-by: Andrew Turner <andrew@> (writing tests & commit message)
Sponsored by:   Arm Ltd
f9ba99eaa24fb41a69c5480621427fe64333986f Sarah Walker 2026-05-12 11:10:32

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

arm64: VM/PMAP changes for CCA guest support
When in a realm:

- Mappings with mode VM_MEMATTR_DEVICE and VM_MEMATTR_DEVICE_NP are
  unprotected
- Imported busdma buffers in protected memory are always bounced
- If EARLY_PRINTK is in use, the UART physical address must be in the
  unprotected address space

Reviewed by:    andrew
Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D56599
56abdbc5f709fc0e18624b3b7586647459922a41 Sarah Walker 2026-05-12 11:29:20

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

sys: Fix heap disclosure in compat7 kern.proc.filedesc sysctl
Reported by: Yuxiang Yang, Yizhou Zhao, Ao Wang, Xuewei Feng, Qi Li, and Ke Xu from Tsinghua University using GLM-5.1 from Z.ai

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56976
e68433e1990d5f1bcc1bdd270d65f1e4792a8e1b Ed Maste 2026-05-12 16:25:01

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

sys/time.h: add bintime2us() helper
Add a microsecond conversion helper to complement the existing
bintime2ns(). The body mirrors bintime2ns().
This will be used by an upcoming eventlog(9) framework as well as
the TCP code in upcoming changes.

Approved by:            gallatin, tuexen
Sponsored by:           Netflix, Inc.
Differential Revision:  https://reviews.freebsd.org/D56972
d1aee9f1535b02dc3db2a5bd1ac75213068a675a Nick Banks 2026-05-12 19:26:24

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

vmem: Include param.h in the userspace port as well
It is required at least for NBBY.

MFC after:      1 week
fab4acbb7db8ffc7082d1b60b3c8e446a7cfef90 Mark Johnston 2026-05-12 17:46:24

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

cpuset: Move userspace declarations out of _cpuset.h
The _*.h headers are for structure definitions and should avoid
dependencies on other headers.  This convention is violated by using
__BEGIN_DECLS/__END_DECLS.

Move the declarations to cpuset.h, I see no reason they can't be there.

Reviewed by:    olce, brooks, kib
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56856
8b4b995effb7911cc13706dc309d5e03c83b9a94 Mark Johnston 2026-05-12 17:47:25

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

igmp: Avoid leaving dangling pointers in the state-change queue
When igmp_v3_merge_state_changes() is iterating over state-change
packets, there is a case where it'll free a queued packet but will fail
to remove it from the queue.  Fix that.

Reported by:    Yuxiang Yang, Yizhou Zhao, Xuewei Feng, Qi Li, and Ke Xu from Tsinghua University using GLM5.1 from Z.ai
Reviewed by:    pouria, glebius
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56947
beab4a237a45aea809e81802b9e1e9ff30f3d929 Mark Johnston 2026-05-12 17:53:49

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

power: Power device and ioctl for state transitions
Create new /dev/power node with super simple ioctl for initiating sleep
state transitions.

This is meant as a generic interface to replace the ACPI- and
APM-specific interfaces. This allows for non-ACPI states to be entered,
such as suspend-to-idle when setting kern.power.suspend=suspend_to_idle.

Reviewed by:    markj, olce
Approved by:    markj, olce
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D55508
d649825e83482f796f492f2000b20ce1b5db6f63 Aymeric Wibo 2026-05-10 09:04:32

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

bq_insert: delay the BUF_UNLOCK if not bd_flush()ing
Reduce bufqueue lock contention by delaying the BUF_UNLOCK to after
dropping the bufqueue lock.  Still do the early BUF_UNLOCK if we
actually have to bd_flush.

Reviewed by:    kib, markj
Sponsored by:   Dell Inc.
Differential Revision:  https://reviews.freebsd.org/D56948
2a56cedac2e43c77e037e2d0c7e5af2ccb083c53 Ryan Libby 2026-05-13 17:43:21

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

vfs_bio: mark uma zone pointer __read_mostly
Reviewed by:  kib, olce
Sponsored by:   Dell Inc.
Differential Revision:  https://reviews.freebsd.org/D56949
e30e507a7737eb7cc2d2592a26171a2d5cf6c4f5 Ryan Libby 2026-05-13 17:43:21

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

vnlru: avoid cache line contention
Reviewed by:  kib, olce
Sponsored by:   Dell Inc.
Differential Revision:  https://reviews.freebsd.org/D56951
33355275247c462e1204bd1db5905a7d132eb502 Ryan Libby 2026-05-13 17:43:21

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

ptrace: clear TDP_USERWR after transparent attach only on attach
The flag indicates that the modifying ptrace op was issued, and clearing
it after transparent attach is needed to not leak the flag to later
operations, since it is cleared on the syscall enter.

But clearing it there unconditionally is too strong.  The clearing
should be only done for attach situation.

Reported by:    Alex S <iwtcex@gmail.com>
Fixes:  https://cgit.freebsd.org/src/commit/?id=99976934274de6fa19f049a0b6eac10856710f96
Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56928
cb31a266167c8bde3488fbdd6bf24c38b6f59977 Konstantin Belousov 2026-05-11 01:12:30

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

linux/io: handle memtype_wc mapping for !DMAP range
The amdgpu driver in drm-kmod will attempt to update/reserve certain GPU
VRAM ranges as write-combining. Depending on the system, this address
range may fall outside of FreeBSD's constructed DMAP. We cannot use
pmap_change_attr() in this case.

When INVARIANTS is enabled, this results in the following:

  panic: physical address 0x880000000 not covered by the DMAP

Add a guard against triggering the KASSERT in PHYS_TO_DMAP().

This limitation in our implementation of arch_io_reserve_memtype_wc() is
already known in drm-kmod's amdgpu_bo_init(), and errors are ignored
there (see "BSDFIXME"). This change is only to eliminate the preventable
assertion failure within this scheme.

Tested by:      kevans
Reviewed by:    kib, emaste
MFC after:      3 days
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56971
988c03980452a56fb0fbb15e18b0a644602d0ab3 Mitchell Horne 2026-05-14 14:20:22

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

Commit group #56: subr_uio.c: Remove a KASSERT() for large NFS server I/O
subr_uio.c: Remove a KASSERT() for large NFS server I/O

When the NFS server is set to allow an I/O size greater
than 1Mbyte (not allowed in FreeBSD's main yet), a
KASSERT() in allocuio() can fail when:
zfs_freebsd_write()->zfs_write()->zfs_uiocopy()
->cloneuio()->allocuio()
is called for a large NFS server write.

Since the userland API callers to allocuio() already
check that the size does not exceed UIO_MAXIOV,
there does not seem to be a need to a KASSERT()
here.

Removing the KASSERT() allows NFS server writes
of greater than 1Mbyte to work, once the NFS code
is patched to allow them.

Reviewed by:    kib
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D57005
13d3bd165e225eec9af91b6e3361c2482931f95b Rick Macklem 2026-05-14 22:17:55

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


nfsd: Allow vfs.nfsd.srvmaxio to be up to 4Mbytes

Without this patch, the maximum setting for
vfs.nfsd.srvmaxio was 1Mbyte.  This patch increases
that to 4Mbytes.

The same as for any setting above 128Kbytes, settings up to
4Mbytes require that kern.ipc.maxsockbuf be increased.
(A message generated after setting vfs.nfsd.srvmaxio via
the /etc/rc.conf variable nfs_server_maxio will indicate
the minimum setting, which will be somewhat greater than
four times the setting of vfs.nfsd.srvmaxio.)

Requested by:   Cedric Blancher <cedric.blancher@gmail.com>
MFC after:      2 weeks
Fixes:  https://cgit.freebsd.org/src/commit/?id=13d3bd165e22 ("subr_uio.c: Remove a KASSERT() for large NFS server I/O")
b92b9da3300655c86dcd42ea8a5ba45badd90847 Rick Macklem 2026-05-14 22:33:23

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

debug: moved to kernel because 'Need to be grouped with 13d3bd165e225eec9af91b6e3361c2482931f95b'

linux: Fix some problems with header pollution
- Avoid including sys/proc.h in linux_vdso_gtod.c.  It's not needed, but
  the implicit inclusion of sys/param.h via sys/ucred.h->bsm/audit.h was
  bringing in some required definitions.
- Include a couple of required headers: sys/time.h (for struct bintime),
  and limits.h (for INT_MAX).
- Move some helpers from linux.h, which depend on sys/param.h for NODEV,
  to the one CU where they're actually used.

No functional change intended.

Reviewed by:    imp, kib, emaste
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D56982
b99954433d42d978b257e846dbfe568e9af7b140 Mark Johnston 2026-05-15 00:39:25

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

jail: replace PR_ALLOW_ALL_STATIC hex constant with symbolic OR
No functional change intended.

Reviewed by:    kib
Differential Revision:  https://reviews.freebsd.org/D57014
394f8ff461e69e30c36570618bb24fd474856f6a Mariusz Zaborski 2026-05-15 12:31:31

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

net80211: define a type for rssi values
Due to net80211 keeping values in 0.5dBm relative to the noise floor
an int8_t is not good enough to prevent a double wrap around, which
means the reported rssi values can be wrong (see D50928 or likely
a commit in the future for more information).

In order to address the problem and not break the userspace API,
start by defining a type within the kernel and use that.  In a
next step we will then update the int8_t to int16_t to avoid the
problem up to the ioctl code.  This will then allow us to work
on the the user space API indepedently (see PR 293016 for possible
impact outside the base system).

No functional changes intended.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Reviewed by:    adrian
Differential Revision: https://reviews.freebsd.org/D57021
96eaa6857ffe009c141c5a6dbea88f96efed9b2d Bjoern A. Zeeb 2025-06-19 00:05:27

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

kernel: address executable stack warnings in amd64 gcc build
Mark assembly files as not requiring executable stacks.

Reviewed by:    kib
Differential Revision:  https://reviews.freebsd.org/D56946
755c1e039adfd68ecf4d5954e13fe54263c34a03 Ryan Libby 2026-05-16 20:24:45

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

sys/mount.h: restore KNF_NOKQLOCK in VFS_KNOTE_{,UN}LOCKED() call to KNOTE()
ZFS needs to take internal sleepable lock in its implementation of
VOP_GETATTR().  Due to this, kq must be unlocked around calls to the vfs
filter methods.

Fixes:  https://cgit.freebsd.org/src/commit/?id=1d5e4020e36e ("vnode: add VIRF_KNOTE flag")
Reported and tested by: des
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
43a8585cb2bb0e284df672174a57780e53107d27 Konstantin Belousov 2026-05-16 19:11:43

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

linuxulator: fix SO_PEERCRED emulation after 1d24638d3e8
For Linux binaries, sopt->sopt_td may be null.  And there's also no
need to check it, since struct l_ucred has the same layout on 32-bit
systems as on 64-bit ones.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=295333
Reported by:    Miguel Gomes <miguel.dias.gomes@protonmail.com>
Fixes:          https://cgit.freebsd.org/src/commit/?id=1d24638d3e8 ("Fix LOCAL_PEERCRED in 32-bit compat mode")
MFC after:      3 days
Reviewed by:    emaste
Differential Revision: https://reviews.freebsd.org/D57032
4cee16d471d47f4673e4d2c66f7a96d4e6d86ee9 Alan Somers 2026-05-16 18:03:49

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

elf_common.h: Add SHT_LLVM_ADDRSIG
Reported by:  bz
Sponsored by:   The FreeBSD Foundation
22c054c4cce719662d503685138433eb27d40001 Ed Maste 2026-05-18 15:15:59

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

Build system

src.opts.mk: !CROSS_COMPILER implies !LLVM_BINUTILS_BOOTSTRAP
This fixes the build when WITHOUT_CROSS_COMPILER is set.

Reported by: fuz, vishwin
Fixes: https://cgit.freebsd.org/src/commit/?id=17494c6e6b7d ("build: Boostrap LLVM_BINUTILS for cross-tools")
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56219
7d82731e4311880845b0109484df6562ab0cd213 Ed Maste 2026-04-01 18:27:05

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

release: Restore licenses for kyua and ncurses
These were modified to avoid triggering a libucl bug which is now fixed.

MFC after:      1 week
Reviewed by:    ivy, kevans
Differential Revision:  https://reviews.freebsd.org/D52824
d7259292ae0b9c2aef4bdc1b8bd62674c38f7ad4 Dag-Erling Smørgrav 2026-04-02 21:42:10

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

libsamplerate: Only build when virtual_oss is built
Gate libsamplerate behind MK_CUSE and MK_SOUND, like virtual_oss.
Nothing else uses this library, so there's no point building it
if we aren't building virtual_oss.

This avoids building a useless FreeBSD-sound package containing
only this library when WITHOUT_SOUND is set.

MFC after:      1 week
Reviewed by:    christos, emaste
Differential Revision:  https://reviews.freebsd.org/D56164
Sponsored by:           https://www.patreon.com/bsdivy
baa7a870d65db324d4dd781702e7ccefde20a3ee Lexi Winter 2026-04-03 13:42:20

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

libauditd: Don't build if WITHOUT_AUDIT is set
When WITHOUT_AUDIT is set, nothing is built that uses this library,
so don't build the library.  This avoids building the FreeBSD-audit
package when WITHOUT_AUDIT is set.

MFC after:      never
Reviewed by:    csjp, imp, emaste
Differential Revision:  https://reviews.freebsd.org/D56157
Sponsored by:           https://www.patreon.com/bsdivy
b13d7062b3a65ba600745fef6a2b4058444e5f6c Lexi Winter 2026-04-03 13:43:18

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

Remove WITHOUT_BZIP2, WITHOUT_BZIP2_SUPPORT
WITHOUT_BZIP2_SUPPORT only affects a single binary, gzip(1); it doesn't
remove bzip2 support from other bits (e.g., libarchive) and there are
no similar options for gzip, xz or zstd.

WITHOUT_BZIP2 has not done anything at all since it was first added
in 2007.

MFC after:      never
Discussed on:   arch@
Reviewed by:    imp, des, adrian, delphij, emaste
Differential Revision:  https://reviews.freebsd.org/D56148
Sponsored by:           https://www.patreon.com/bsdivy
ab9257599a551cf4be8738ec52205998f4e7dd81 Lexi Winter 2026-04-03 13:50:09

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

packages: Fix build with libucl 0.9.3
In libucl 0.9.3, macros and includes are disabled by default when
creating a new UCL parser.  This breaks the package build, which
relies on includes.  Fix this by explicitly passing zero flags
to ucl.parser().

MFC after:      3 days
Fixes:          https://cgit.freebsd.org/src/commit/?id=abda442d92fd ("contrib/libucl:  Import libucl 0.9.3")
Reviewed by:    kevans, bapt
Reported by:    freebsd@walstatt-de.de
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D56266
63d0e3e3aa2483420f828686336d6615616363d5 Lexi Winter 2026-04-06 17:11:22

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

We also get _HOST_OSREL from host-target.mk
b2751d956e5b32507bb63aff2db3e5d6b3b38ad1 Simon J. Gerraty 2026-04-06 18:50:11

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

Commit group #57: flua: Always build as a bootstrap tool
flua: Always build as a bootstrap tool

We want to use flua from the source tree (not the host) during package
build, firstly to protect us from breaking changes in lua or libucl,
and secondly to allow (in future) cross-building of packages from
Linux or macOS.

Since we don't know if the user will be building packages during the
bootstrap phase, and because flua is fairly small and generally useful,
build it as a bootstrap tool unconditionally.

MFC after:      2 weeks
Reviewed by:    kevans, emaste
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D56270
50de0bf50512aa98d18f21ac1347941396596944 Lexi Winter 2026-04-07 10:41:53

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


tools/build/Makefile: Always add md4.h to SYSINCS

Since libmd was added to the bootstrap, building main on stable/14
fails because of an incompatibility in its old md4.h.  Fix this by
always including md4.h in the bootstrap headers, instead of only
doing so when building on a non-FreeBSD host.

Fixes:          https://cgit.freebsd.org/src/commit/?id=50de0bf50512 ("flua: Always build as a bootstrap tool")
Reported by:    olce
Reviewed by:    olce, kevans
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D56327
0dd9c4abf0e56b9d4f6f7204a68b1475f2bbf1fc Lexi Winter 2026-04-09 14:30:20

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

packages: Always use the bootstrap flua
To avoid breaking the build due to incompatible changes in flua or lua
libraries on the host, use the bootstrap flua for the package build.

MFC after:      2 weeks
Reviewed by:    kevans, emaste
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D56271
359d6e31afe3d28addedf9a8f550b382a5faa478 Lexi Winter 2026-04-07 10:42:44

debug: classified in 02-filenames_wildcards by '['.*Makefile', 'release/.*']'

libc: Add missing MLINK for stravis(3)
MFC after:    1 week
Fixes:          https://cgit.freebsd.org/src/commit/?id=8dfeba04eb36 ("Update to a June 8th snapshot of (un)vis form NetBSD.")
Reviewed by:    ziaee
Differential Revision:  https://reviews.freebsd.org/D56260
a09d06bc5bff64baab76220a66c3501b89899134 Dag-Erling Smørgrav 2026-04-07 11:04:37

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

lib/msun: centralize addition of the arch-specific symbol map files
This also adds the aarch64 symbols, exporting them.

Reported and tested by: fluffy
Reviewed by:    emaste
Fixes:  https://cgit.freebsd.org/src/commit/?id=3a01e1e1a50cb9a9594aac2148dc920a6b295428
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56283
c913dce86e7b6ff9c0c3265631529586aaf8520a Konstantin Belousov 2026-04-06 17:46:45

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

crypto/openssl: add new manpage from release 3.5.6
MFC after:      1 day (the security issues warrant a quick backport).
MFC with:       10a428653ee7216475f1ddce3fb4cbf1200319f8
9f7080ba6bcf18d013ae3b91dc9d92cfa731a8c0 Enji Cooper 2026-04-09 02:00:10

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

nlsysevent: add manpage
Reviewed by:  des
72d701eb1d83cfb3479e4c839412325ff9efc97c Baptiste Daroussin 2026-04-09 08:50:41

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

[OpenSSL] Add missing header file (openssl/ml_kem.h)
Add missing header file (openssl/ml_kem.h) of OpenSSL 3.5

Reviewed by:    fluffy, ngie
Approved by:    ngie (maintainer)
Differential Revision:  https://reviews.freebsd.org/D56291
98118af4f08a020c8c5925e933bdd523d6a6e8aa Po-Chuan Hsieh 2026-04-12 18:07:14

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

geneve.4: Add geneve manual
Reviewed by: ziaee, adrian
Differential Revision: https://reviews.freebsd.org/D55182
adecd4c4cd05b404ff81dbfce88b772e2b754a7f Pouria Mousavizadeh Tehrani 2026-04-11 18:51:58

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

release: remove Oracle Cloud Infrastructure build targets
Oracle's previous support is no longer available to the project.
Repeated attempts to find a sponsor within Oracle's cloud business
have not been successful.

The last published official images are from 15.0-RELEASE.

https://marketplace.oracle.com/app/freebsd-release

Relnotes:       yes
Sponsored by:   SkunkWerks, GmbH
Differential Revision:  https://reviews.freebsd.org/D56360
MFC after:      3 days
3b108068121ba30fb3dbed569d6757da2ab529a4 Dave Cottlehuber 2026-04-12 22:29:44

debug: classified in 02-filenames_wildcards by '['.*Makefile', 'release/.*']'

pkgbase: remove incorrect clang shlib requires
The FreeBSD-clang package contains a 32-bit shared object at
/usr/lib/clang/19/lib/freebsd/libclang_rt.asan-i386.so

This is expected, since clang uses this object when compiling for i386
targets with asan enabled.

What is not expected is that the FreeBSD-clang package currently depends
on 32-bit libc packages due to pkg's shared library analysis, making it
impossible to install pkgbase on x86_64 without any lib32 packages.

This commit leverages a new pkg feature implemented in [1], but could
be landed before a pkg version including that feature is released
without any ill effects. Unknown keys in package manifests are ignored.

[1]: https://github.com/freebsd/pkg/pull/2594

Reviewed by:    ivy
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D54792
2018ae4e3b6a2d7c147933cb36642f6a54830907 Isaac Freund 2026-01-20 14:57:17

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

pkgbase: only provide shlibs from /lib,/usr/lib,/usr/lib32
Reviewed by:  bapt
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D54793
e11eba76cfbd6b439ad40faeb8ffccf4241e7034 Isaac Freund 2026-01-20 14:57:11

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

rockchip: support CM3588 board
Signed-off-by: Martin Filla <freebsd@sysctl.cz>
Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/2086
aa462efde6dc009eed0e09272b5359950193b0be Martin Filla 2026-03-16 14:35:06

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

br.lenovo.kdb: add it to Makefile
This keyboard was implemented but wasn't actually installed to the
system.

Fixes: https://cgit.freebsd.org/src/commit/?id=9357c694e8dca627c25b15529e8435b2ab3dd48b
MFC after: 1 day
Relnotes: yes
6fb5df548e4a581f958f60544b7fa8ba1716c4c6 Alfredo Dal'Ava Junior 2026-04-17 03:44:46

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

us.intl.acc.kbd: add it to Makefile
This keyboard was implemented but wasn't actually installed to the
system.

Fixes: https://cgit.freebsd.org/src/commit/?id=a049678039e40bdf523230852f78887a12435def
Discussed with: imp
MFC after: 1 day
Relnotes: yes
3b373d484046a94d050a7901feadc001f35fa97f Alfredo Dal'Ava Junior 2026-04-17 05:01:54

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

bnxt_en: fix module Makefile for LinuxKPI
Rather than manually including the include directory for LinuxKPI
use the provided macro.  Before there was no -I for the dummy
directory and as files synced from Linux under a permissive license
may include them the build would fail.  overflow.h will include
linux/const.h which only exists as a dummy header at this point
on FreeBSD.

Sponsored by:   The FreeBSD Foundation
Fixes:          https://cgit.freebsd.org/src/commit/?id=35b53f8c989f6
MFC after:      3 days
Reviewed by:    emaste
Differential Revision: https://reviews.freebsd.org/D56424
f5cd992fa902ebb27a3a1042ee8e0d4d351bb361 Bjoern A. Zeeb 2026-04-16 10:05:51

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

rtw88: update module Makefile for v7.0 driver version
Update LINUXKPI_VERSION to reflect that the driver is based on
Linux v7.0.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
90383181aae908d2c696f8d66c19645011b4c388 Bjoern A. Zeeb 2026-04-18 13:40:21

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

boot1.chrp: Specify --image-base
This is required for LLVM 22's ld.lld to avoid a build error:

ld.lld: error: section '.text' address (0x38000) is smaller than image base (0x10000000); specify --image-base
ld.lld: error: section '.rodata' address (0x3b308) is smaller than image base (0x10000000); specify --image-base
ld.lld: error: section '.data' address (0x3b610) is smaller than image base (0x10000000); specify --image-base
ld.lld: error: section '.bss' address (0x3f618) is smaller than image base (0x10000000); specify --image-base

Use 0x38000 for the image base, which is the address of the lowest
(and only) LOAD segment in the file.

Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D56459
aa0bc7cca153f67f8becec8a8fb259ff5fd30fd0 Lexi Winter 2026-04-18 20:07:40

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

iwlwifi: update module Makefile for v7.0 driver version
Add the new file for nan in the mld subdriver.

Update LINUXKPI_VERSION to reflect that the driver is based on
Linux v7.0.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
9ed3331fb5822b93313edae42cc529eb25e1a6cc Bjoern A. Zeeb 2026-04-18 20:37:11

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

rtw89: update module Makefile for v7.0 driver version
Update LINUXKPI_VERSION to reflect that the driver is based on
Linux v7.0.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
3780e6f9db01cc4f7d53d67ed1fc992a8f64c53f Bjoern A. Zeeb 2026-04-18 20:50:30

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

mt76: update module Makefile for v7.0 driver version
Update LINUXKPI_VERSION to reflect that the driver is based on
Linux v7.0.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
1c50cb1d75625bea2ba928697ea1cbafa29dd245 Bjoern A. Zeeb 2026-04-18 21:02:57

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

athk_common / ath10k: update module Makefiles for v7.0 driver version
Update LINUXKPI_VERSION to reflect that the driver is based on
Linux v7.0.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
4546eb0c27f22236be8179616e1f0a3e88ddfbbe Bjoern A. Zeeb 2026-04-19 15:12:15

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

brcm80211: update module Makefiles for v7.0 driver version
Update LINUXKPI_VERSION to reflect that the driver is based on
Linux v7.0.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
634a48f3673ff8af9848846a6bff1a8c068d205d Bjoern A. Zeeb 2026-04-19 15:17:29

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

ath11k: update module Makefiles for v7.0 driver version
Update LINUXKPI_VERSION to reflect that the driver is based on
Linux v7.0.

Add optional support for the new cfr (channel frequency response)
file/option.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
20cf11812ac722852322f2f2994698d7a5fa8dc6 Bjoern A. Zeeb 2026-04-19 15:28:50

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

ath12k: update module Makefiles for v7.0 driver version
Update LINUXKPI_VERSION to reflect that the driver is based on
Linux v7.0.

Handle the file changes and the extra wifi7/ subdirectory.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
5cfadb6633128dccc32b1e4f84386ad705adc721 Bjoern A. Zeeb 2026-04-19 15:48:58

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

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 #58: 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 #59: 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'

init: build dynamically
This makes it easier to downgrade kernel when it stops providing some
syscall required by libc.  In this case, it is enough to downgrade libc
as well, our crt1 delegates all non-trivial work to
libc::__libc_start1().  With static init, the /sbin/init should be
downgraded as well, which might be not easy.

This does not mean that we support forward compatibility.

Reviewed by:    imp, jilles, zlei
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56536
24d887436dcd5b6c18a7505e477c79cae3002c3a Konstantin Belousov 2026-04-20 17:52:59

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

packages: Don't build quotacheck if WITHOUT_QUOTAS=yes
PR:   https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294775
Fixes:  https://cgit.freebsd.org/src/commit/?id=bb75b0d581f7 ("packages: Convert world to a subdir build")
MFC after:      2 weeks
Reported by:    Alastair Hogge <agh@riseup.net>
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D56635
221b1d4156a2bfe71a473e5abf6a739c063e60d8 Lexi Winter 2026-04-27 05:45:48

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

makeman.lua: Downgrade `make showconfig` error to warning
The sh-based makeman silently ignored errors from `make showconfig`.
Ignore errors also from makeman.lua (but emit a warning).

We may want to revisit this in the future, but want makeman.lua to
behave identically for now.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294822
Reviewed by:    kevans
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56663
ea27ec183d0ff26e1273202841a02041b6d93955 Ed Maste 2026-04-26 19:30:17

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

pkg-stage: Improve symlink creation
Invoke ln with -n and -f.  In normal use it doesn't matter, but during
development this might be run in a partially populated leftover tree.

Reviewed by:    ivy
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D52883
4846afc9104a1b4aeec31dc7c324f69ad5ffab1b Ed Maste 2025-05-05 18:01:21

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

make-pkg-package: Add set -e; abort if a cmd fails
This makes it less likely we will silently generate broken artifacts.

Reviewed by:    ivy
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56671
0068c706f8ce872c735ddcc383c5cd5ab85acc88 Ed Maste 2025-10-04 20:14:43

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

Makefile.inc1: Use ln -n instead of ln -h
We support both -h and -n, but GNU coreutils only supports -n,
so use that instead.  This fixes the package build on Linux.

MFC after:      2 weeks
Reviewed by:    (wosch, imp) (previous version), emaste
Better fix than the original patch suggested by: jrtc27
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D56656
d455c4bb69eca975854262207687db50a5edc434 Lexi Winter 2026-04-27 21:26:45

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

Makefile.inc1: Always use ${PKG_CMD}
Previously we had a mix of ${PKG_CMD} and bare 'pkg', which is
wrong, and breaks the build when 'pkg' isn't in the tools path,
e.g. when cross-building.

MFC after:      2 weeks
Reviewed by:    wosch, emaste
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D56655
b866d05ea2860f9ccc27c75ff0501372896b5bf2 Lexi Winter 2026-04-27 21:29:43

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

libzpool: Set -Wno-error=typedef-redefinition for clang
In some versions of LLVM (at least 21), the <*intrin.h> headers contain
unguarded duplicate typedefs; this isn't permitted prior to C11, and
libzpool is built as C99.  FreeBSD's LLVM backported LLVM PR #153820
to fix this, but other versions of LLVM (e.g., upstream, or on Linux)
don't have the patch, so this breaks the build.

Add -Wno-error=typedef-redefinition to downgrade this from an error
to a warning.

MFC after:      2 weeks
Reviewed by:    dim, emaste
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D56653
036ff38ebd5a52f26fc2f20238a492a9d0c5f2e6 Lexi Winter 2026-04-27 21:31:47

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

packages: Fix clang conditional
Various src.conf options can cause us to build something that ends up
in the clang package, but MK_TOOLCHAIN is not one of them; copy the
proper conditional from lib/Makefile to decide if we need to build
the package.

This fixes the build when LLVM/clang is entirely disabled.

Fixes:  https://cgit.freebsd.org/src/commit/?id=bb75b0d581f7 ("packages: Convert world to a subdir build")
MFC after:      2 weeks
Reviewed by:    emaste
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D56657
e6d112bbbbf0b09f0f18a85a0a3c6d5a49aff653 Lexi Winter 2026-04-27 22:15:13

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

groups.7: New manual page of standard group names
Import groups(7) from NetBSD, with tweaks for our system. The group
list is sorted by GID. All the group names from /usr/src/etc/group
are described, except "uucp". The FILES section was added on top of
the original manual page.

PR:                     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=264966
Relnotes:               yes
MFC after:              3 days
Obtained from:          NetBSD
Reviewed by:            des, ziaee
Differential Revision:  https://reviews.freebsd.org/D54114
e09104dfb76a36b65a64bd315bd1520941c4beed Artem Bunichev 2026-04-28 13:48:52

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

acpi: Remove userland bits on non-ACPI platforms
ACPI is only supported on amd64, arm64 and i386.  Don't install the
power_profile rc script or devd configuration on other platforms.

This avoids creating a useless FreeBSD-acpi package on those platforms.

MFC after:      2 weeks
Reviewed by:    imp
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D56650
c4b244af42a1f20937939a824b753a92c9c0a46f Lexi Winter 2026-04-28 19:37:33

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

llvm: Move libprivatelldb to the lldb package
Set PACKAGE=lldb in lldb.pre.mk rather than in individual Makefiles;
change lib/clang/Makefile.inc from PACKAGE=clang to PACKAGE?=clang to
avoid overwriting it.

This is safe to MFC to stable/15 since the moved library will be
picked up automatically by pkg.

MFC after:      2 weeks
Reviewed by:    emaste
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D56674
7970815be40b1fa604a6554f5ee0f95f834454b5 Lexi Winter 2026-04-28 19:38:36

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

packages: Make create-sets.sh more robust
Use ${PKG_CMD} rather than bare 'pkg' to fix the build when pkg is
not in the tools path.  Provide a default in case it's not set for
some reason (e.g., running the script by hand).

Since set -- $(...) does not trigger an exit from set -e if the
command fails, this failure was silent and resulted in sets not
being built correctly if we failed to run pkg.  Use a temporary
variable, which does trigger set -e, to fail correctly.

MFC after:      2 weeks
Reviewed by:    sjg
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D56676
d1c176fedfc99d61c1dc8037ab549bec48c17bea Lexi Winter 2026-04-28 19:39:14

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

Makefile.inc1: Only copy locales to INSTALLTMP on FreeBSD
Makefile.inc1 copies locales to ${INSTALLTMP} to avoid issues when
running make installworld on a live system.  However, this can break
on non-FreeBSD systems, e.g. on openSUSE where /usr/share/locales
has mode 0555, which means after we copy it, we can't delete it,
so the build fails.

Since this functionality is only useful when installing over a
live system, disable it when the build host is not FreeBSD.

MFC after:      2 weeks
Reviewed by:    kevans, emaste
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D56677
4429630d1ca9d90c886bae1eaa0d8ee32d0fee12 Lexi Winter 2026-04-28 19:42:39

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

bc: Fix tests
Stop generating test scripts at build time.  The dc test script is
broken and simply fixing the code that generates it won't help as there
is no reliable way to ensure it gets regenerated if it already exists in
the object tree.

MFC after:      1 week
Reviewed by:    se
Differential Revision:  https://reviews.freebsd.org/D56511
67a63eae7b2d10d29983c9698894f1bfff4ffc6e Dag-Erling Smørgrav 2026-04-29 15:14:13

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

Commit group #60: llvm-*: Move all LLVM_BINUTILS symlinks to toolchain package
llvm-*: Move all LLVM_BINUTILS symlinks to toolchain package

Some of the LLVM binary utilities were included in the Clang package
(because they did not set an explicit PACKAGE).

Add a new Makefile under clang/toolchain to create the symlinks and man
links for ar, c++filt, nm, and so on (without the llvm-* prefix) when
LLVM_BINUTILS is enabled (as it is by default).

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293610
Reviewed by:    bapt, ivy, brooks
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55692
c4f08d46c7f717cc8c66bf702c006765a5b6b1a9 Ed Maste 2026-03-06 14:46:18

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


toolchain: Correct LLVM_BINUTILS pkg pkg dependency

The LLVM binutils are in the clang package.

Reported by: jlduran
Fixes: https://cgit.freebsd.org/src/commit/?id=c4f08d46c7f7 ("llvm-*: Move all LLVM_BINUTILS symlinks to toolchain package")
9b0d9401e6a46456a84500375c36008cfcfcc508 Ed Maste 2026-05-02 02:30:15

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

libzpool: force inlining of xxhash after removing xxhash.c
libzpool had a number of undefined symbols related to xxhash after
xxhash.c was removed from the build.

Fixes:  https://cgit.freebsd.org/src/commit/?id=8a62a2a5659d ("zfs: merge openzfs/zfs@https://cgit.freebsd.org/src/commit/?id=f8e5af53e")
Reviewed by:    jhb
Differential Revision:  https://reviews.freebsd.org/D56770
050b3ff753e04ce142ac751a0d76b5ee3beda9c5 Ryan Libby 2026-05-02 16:59:06

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

Commit group #61: bsd.endian.mk: Optimize the handling of big/little endian determination.
bsd.endian.mk: Optimize the handling of big/little endian determination.

Add variables to contain lists of MACHINE_ARCH values to use
to determine little or big endian.

Only error out about not being able to determine endianess if
TARGET_ENDIANNESS is empty and not cross-compiling.

Reviewed by:    sjg
Obtained from:  Hewlett Packard Enterprise Development LP
Differential Revision:  https://reviews.freebsd.org/D44629
01674e15dedb15f8ce498af0680c50bb075c5482 Stephen J. Kiernan 2024-04-03 23:25:19

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


bsd.endian.mk: Avoid use of M_ListToSkip

While the src build works fine with M_ListToSkip, it can break the
ports build. For now, it is safer just to do the actual variable
modifiers in place.

Reported by:    se
Fixes:          https://cgit.freebsd.org/src/commit/?id=01674e15dedb ("bsd.endian.mk: Optimize the handling...")
b89155be25a7f501980a165e225b28abd886c1e5 Stephen J. Kiernan 2026-05-03 19:35:22

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

tests/timerfd: Serialize
At least one of these tests changes the system clock, which potentially
interferes with concurrently running tests and causes them to fail.

MFC after:      1 week
001cfc7b8aa38122c4e0fe8ae48fae3556a1f2b6 Mark Johnston 2026-05-03 15:46:52

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

llvm: Don't install /usr/bin/{gcov,objdump} twice
Commit c4f08d46c7f7 moved the symlinks for the LLVM binutils from LLVM
itself to the toolchain (usr.bin/clang/toolchain), but did not remove
the links for /usr/bin/gcov and /usr/bin/objdump from the llvm version,
meaning we installed them twice, once in the clang package and once in
the toolchain package.

Remove the links from the llvm version and move the MLINKs to toolchain,
which is where the other MLINKs dwell.

While here, fix toolchain to use the correct build option for llvm-cov,
MK_LLVM_COV.

Fixes: https://cgit.freebsd.org/src/commit/?id=c4f08d46c7f7 ("llvm-*: Move all LLVM_BINUTILS symlinks to toolchain package")
Reported by:    jrm
Reviewed by:    jrm, dim, emaste
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D56788
045a9ef829fa30c2ba7af47ab34d3b2443024207 Lexi Winter 2026-05-04 13:49:20

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

packages: Make create-sets.sh more robust during release
Commit d1c176fedfc9 made create-sets.sh exit when it encounters an
error, instead of creating an empty repository.  However, this turns
out to cause some issues:

1. A package not having any sets is considered an error, but during
   the release build, we stuff a 'pkg' package into the repository
   which doesn't have any sets, which causes a failure.  Avoid this
   by simply ignoring the pkg package.

2. No error was printed in this case, which made the problem hard
   to diagnose.  Add an explicit error message.

3. A similar problem occurred running on a repository which already
   contained sets, which is not usually done during the build, but
   is not necessarly an inappropriate thing to do.  Fix this one by
   ignoring set packages when looking for sets.

While here, fix another issue that might cause packages to be wrongly
skipped if the path to the repository contains a '-' character, since
we didn't strip the path before testing the package name.

PR:     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294966
Fixes:  https://cgit.freebsd.org/src/commit/?id=d1c176fedfc9 ("packages: Make create-sets.sh more robust")
MFC after:      2 weeks
Reported by:    Alastair Hogge <agh@riseup.net>
Reviewed by:    emaste
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D56792
8e8d87856241f69c277dc5fab48c5c66312475d6 Lexi Winter 2026-05-05 00:31:20

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

ath{10,11,12}k: Add missing header in Makefile
Reviewed by:    bz
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56693
efc0ced5c46f3332bf1847f2889659e7f5412852 ShengYi Hung 2026-04-28 14:27:21

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

Makefile.vm: Split error condition
Make it clear which of two possible cases applies.

Reviewed by: cperciva
Differential Revision: https://reviews.freebsd.org/D56837
76d756eaa6823aad282cc53ec4e41a9777d89adc Ed Maste 2026-05-05 21:12:25

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

dtrace: Document the syscall provider
MFC after:    1 week
Differential Revision:  https://reviews.freebsd.org/D56831
242050278a377f5ca6906545ddc924b60ad8aa58 Mateusz Piotrowski 2026-05-05 12:57:53

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

dtrace_mib.4: Document the DTrace MIB provider
Reviewed by:  kp
MFC after:      1 week
Obtained from:  60d8dbbef075 netinet: add a probe point for IP, IP6, ICMP, ICMP6, UDP and TCP stats counters
Differential Revision:  https://reviews.freebsd.org/D53709
ef19cae25337e7449f338914650bbfab0fbea99f Mateusz Piotrowski 2025-07-18 15:46:25

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

stand/libsa/zfs: disable ZSTD_TRACE and DYNAMIC_BMI2 code paths
Enabling ZSTD_TRACE leaves behind undefined weak symbols, which causes a
problem for gcc builds.  The bfd linker emits an obscure error about
overlapping FDEs.  We don't need ZSTD_TRACE for libsa, so just disable
it.

Also disable BMI2 instruction optimizations.  The addition of the
optional BMI2 code paths caused the boot loader binaries to grow larger
(28 KiB for clang, 32 KiB for gcc).  The boot loader binaries are size
constrained, and this pushed the gcc-generated lua_loader.bin over the
500000 byte limit, and the clang one to within 4k of the limit.

Fixes:  https://cgit.freebsd.org/src/commit/?id=8a62a2a5659d ("zfs: merge openzfs/zfs@https://cgit.freebsd.org/src/commit/?id=f8e5af53e")
Reviewed by:    delphij, imp, mm
Differential Revision:  https://reviews.freebsd.org/D56866
944a4eb089b33241b21979253e0a373ce0bdf984 Ryan Libby 2026-05-07 17:30:05

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

uio.9: Document uiomove_fromphys()
Reviewed by:  kib
Discussed with: markj, royger
MFC after:      3 days
Differential Revision:  https://reviews.freebsd.org/D54070
076e44839160f74f96fda83fa81c3acb41b9ebc8 Mateusz Piotrowski 2026-03-20 07:52:28

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

Make "make update-packages" idempotent
If the user runs "make update-packages" without bumping BRANCH, then it
isn't possible to copy packages from the old location to the new one
(because the two locations are the same).  So just skip that step.

Sponsored by:           ConnectWise
PR:                     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=295085
MFC after:              1 week
Reviewed by:            ivy, emaste
Differential Revision:  https://reviews.freebsd.org/D56872
bd1e789b8452a8c2f166a3b4defb95330c71dadd Alan Somers 2026-05-07 18:18:29

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

dtrace_dtmalloc.4: Document the DTrace dtmalloc provider
MFC after:    1 week
Discussed with: christos, markj, ziaee
Differential Revision:  https://reviews.freebsd.org/D51396
03bc95b060a91ed9d410270d00d1dd4f8edcdcc7 Mateusz Piotrowski 2025-07-17 20:55:49

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

Cirrus-CI: Bump toolchain to LLVM 21
Cirrus-CI is shutting down at the end of the month, but we can still
finish with an up-to-date working build with an LLVM version matching
the in-tree toolchain.

Sponsored by:   The FreeBSD Foundation
e6475c8f353981baeddb544f5a9deb48956f2815 Ed Maste 2026-05-12 23:35:11

debug: classified in 03-filenames_plain1 by '.cirrus.yml'

src.opts.mk: Comment about CTF & DTRACE relationship
WITH_CTF enables building userland components with CTF, and not the ctf*
tools as one might expect.  The tools are actually included with the
DTRACE knob.  Add a comment where the dependency is handled, as this has
caused confusion.

Reported by:    ivy
Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56977
f6178451eea5b1ce6802fbb0e6eceb555c7b4841 Ed Maste 2026-05-12 17:19:46

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

Commit group #62: Cloud releases: Switch to firstboot_pkg_upgrade
Cloud releases: Switch to firstboot_pkg_upgrade

Cloud images are deployed with base system packages. Introduce a
firstboot package auto updater to patch the base system on first boot.

MFC after:              1 hour
MFC to:                 stable/15
Reviewed by:            cperciva
Sponsored by:           Google Cloud
Differential Revision:  https://reviews.freebsd.org/D56890
464a351267dc0d1843b919dd72ad1c70c24815ce Alexander Ziaee 2026-05-14 21:05:07

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


Cloud releases: More firstboot_pkg_upgrade

Update a couple more cloudware images which I forgot about earlier.

Reviewed by:    ziaee
Fixes: https://cgit.freebsd.org/src/commit/?id=464a351267dc ("Cloud releases: Switch to firstboot_pkg_upgrade")
Differential Revision:  https://reviews.freebsd.org/D57006
4080419d9a2d88d44d20baaf3ea01934561819c1 Colin Percival 2026-05-14 21:14:09

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

EC2: Don't enable firstboot_pkgs in small flavour
The EC2 "base" flavour installs the devel/py-awscli package at boot
time by default; we don't do this in the "small" flavour, so the
default behaviour was to update the FreeBSD-ports repository and
then do nothing with it.

Turn off firstboot_pkgs by default; if someone is using the "small"
flavour of AMIs and wants to install packages at instance launch
time, they simply need to add 'firstboot_pkgs_enable="YES"' to
/etc/rc.conf (which they must already be editing via user-data, in
order to provide the list of packages they want installed).

Sponsored by:   Amazon
MFC after:      3 days
MFC to:         stable/15
Relnotes:       EC2 "small" images now have firstboot_pkgs_enable="NO".
61df4be487cfbfd27b0959e1eb66ef0d8f84562f Colin Percival 2026-05-16 18:58:13

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

p9fs.4: MLINK to virtio_p9fs.4
Technically, virtio_p9fs is an emulated device that masquerades
as a p9fs mount, but it does not make sense to have two separate manual
pages.

Reviewed by:    bnovkov, dfr
MFC after:      3 days
Differential Revision:  https://reviews.freebsd.org/D57013
30f500e97b57d36ebb8483cb8b8921507350cd0f Mateusz Piotrowski 2026-05-15 12:05:46

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

Internal organizational stuff

CONTRIBUTING.md: Make quality expectations section more concise
FreeBSD has not yet established an AI submission policy.  For now remove
text that implies we have.
fba8bd02340f0111a4f81c538718edcc46554794 Ed Maste 2026-04-04 21:19:28

debug: classified in 03-filenames_plain1 by 'CONTRIBUTING.md'

Add myself as a committer
Approved by:    makc (mentor)
c84049c0bef5be3a59159e9a9ae88e22caff429b Kenneth Raplee 2026-04-04 21:07:53

debug: classified in 03-filenames_plain1 by 'share/misc/committers-ports.dot'

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'

git-arc: Add a create-draft mode
Make it possible to create a review without publishing it.  This should
be useful when one wants to restrict the visibility of a review, as that
cannot be done via the command line.  Note that a draft review is still
publicly visible if one can guess the URL, but creating one does not
result in email notifications to subscribers etc., nor does a draft
appear in the creating user's activity log.

Once a draft is ready, one can publish it via the web UI.

Reviewed by:    jrm
Differential Revision:  https://reviews.freebsd.org/D56664
448ec129bcef6bf147b76956ec588e357a21d310 Mark Johnston 2026-04-28 14:02:58

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

README.md: Add packages/ directory
Fixes:        https://cgit.freebsd.org/src/commit/?id=bb75b0d581f7 ("packages: Convert world to a subdir build")
MFC after:      2 weeks
Reviewed by:    des, emaste
Differential Revision:  https://reviews.freebsd.org/D56839
e3e5b86e3b9e00f1fe89e54d13dcd665e63eb4c6 Lexi Winter 2026-05-06 14:45:54

debug: classified in 03-filenames_plain1 by 'README.md'

git-arc: Update the usage message to mention create -d
Fixes:        https://cgit.freebsd.org/src/commit/?id=448ec129bcef ("git-arc: Add a create-draft mode")
54625dfb363a4a00841ef7d7ee8e5cc5ea1156e0 Mark Johnston 2026-05-07 17:18:32

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

mtree: Remove unused MANSUBDIRs
MFC after:    3 days
Fixes:          https://cgit.freebsd.org/src/commit/?id=809504f331fd ("man: Kill off MANSUBDIRs")
Reviewed by:    ziaee
Differential Revision:  https://reviews.freebsd.org/D57029
1dc1b95163b9e5cf5cbd52c2b979568724746eac Dag-Erling Smørgrav 2026-05-16 16:16:57

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

Testing

yes: fix argv test race between fork and exec
The argv test checks ps(1) output immediately after backgrounding yes(1), but
the forked child briefly shows the parent shell's argv before exec(2) replaces it.
This caused intermittent failures where ps(1) captured the atf shell wrapper
command line instead of "yes y".

Approved by:    des
Sponsored by:   Netflix
Differential Revision:  https://reviews.freebsd.org/D56231
c5961b6fcfe0f3587be11187a9c666a7fa200f4b Olivier Cochard 2026-04-06 17:17:49

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

pf tests: explicitly test zeroing counters within an anchor
While here fix the match pattern in the existing test.

Sponsored by:   Rubicon Communications, LLC ("Netgate")
6642ba36f1860599a4c5562dc24f5dff080bbb42 Kristof Provost 2026-04-07 14:07:45

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

stat: Nits in readlink tests
* The f_flag test may fail if a component of the full path to the
  temporary directory is a symbolic link.

* The n_flag test had an empty head; give it a description.

* Use consistent quoting.

MFC after:      1 week
Sponsored by:   Klara, Inc.
Reviewed by:    kevans
Differential Revision:  https://reviews.freebsd.org/D56293
1c793e7cbe2ecded388fd51fb20274891620a6f4 Dag-Erling Smørgrav 2026-04-08 11:26:23

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

libc/tests/string: add a more comprehensive unit test for strrchr()
The unit tests are patterned after those for memrchr().
This catches the issue found in 293915.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293915
Reviewed by:    strajabot
Reported by:    safonov.paul@gmail.com
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56037
8b5d77bbcbd98e684226950be1c779e108059d8d Robert Clausecker 2026-03-22 21:39:42

debug: classified in 03-filenames_plain1 by 'lib/libc/tests/'

stat: Nits in stat tests
* Use ourselves as test file instead of /COPYRIGHT, which may or may not
  be present in the test environment.

* atf-check understands \n in strings, use it.

* Some file systems don't like creating small holes, so create large ones
  instead.  This means we need two variables: ps (page size) is the
  minimum size of a data region and the alignment for a hole, while hs
  (hole size) is the minimum size of the holes we create.  This makes no
  difference on FreeBSD but makes it easier to port the test to other
  platforms.

MFC after:      1 week
Sponsored by:   Klara, Inc.
Reviewed by:    kevans
Differential Revision:  https://reviews.freebsd.org/D56304
8cbd3949297d56e3960dcde73bd7e2277ac4bee8 Dag-Erling Smørgrav 2026-04-08 15:35:35

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

tests: kqueue: add a basic test for CPONFORK
Just copy over a timer and a write-filter, be sure that we can observe
both in the child.  Maybe the timer should check for a minimum time
passed, but I don't know that we'd be likely to get that wrong.

This also adds a negative test with a kqueue that is *not* set for
CPONFORK being added to the first one, made readable, and confirming
that we don't see a knote for it in the child.

Some other improvements to the test noted in the review are planned in
the short term, but they're not particularly worth blocking adding this
as a basic sanity check.

Reviewed by:    kib, markj
Differential Revision:  https://reviews.freebsd.org/D56223
0c9cec8b66e7033f50059329704515d5222b9ff4 Kyle Evans 2026-04-09 02:37:00

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

geneve: Add tests for geneve
Add tests for each combinations of geneve modes, address families
and multicast.

Differential Revision: https://reviews.freebsd.org/D55183
aa9f669d09a7a193d470477398815f45a42c0270 Pouria Mousavizadeh Tehrani 2026-04-11 18:45:08

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

CTL: add ATF tests for REPORT SUPPORTED OPCODES
This includes a regression test for CVE-2024-42416

MFC after:      2 weeks
Sponsored by:   ConnectWise
Reviewed by:    emaste
Differential Revision: https://reviews.freebsd.org/D46613
6dd86310e54d3f2dd9f688670913b9176176246c Alan Somers 2026-04-14 17:35:54

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

du: Fix t_flag test case
MFC after:    1 week
Fixes:          https://cgit.freebsd.org/src/commit/?id=3e5550d25c6d ("du: Add regression tests")
Sponsored by:   Klara, Inc.
e99b3f5e318626b45510e29993aabca1d161bfa0 Dag-Erling Smørgrav 2026-04-15 14:50:32

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

tests/fusefs: appease gcc -Wcast-qual
Fix gcc build error.

Reviewed by:    asomers, kib
Fixes:  https://cgit.freebsd.org/src/commit/?id=7e68af7ce2c1 ("fusefs: redo vnode attribute locking")
Differential Revision:  https://reviews.freebsd.org/D56370
0c09c6527b16953d355125bee7a839f743a39dad Ryan Libby 2026-04-15 16:32:22

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

tests: kqueue: improve diagnostics for our CPONFORK test
Notably, confirm in the child that our close-on-fork fd is actually
closed, and break RECV_ALL out into a table and check each bit
individually to provide a better message when the test fails.

While we're here, just switch to waitid() rather than trying to identify
the point where we have to make the switch.  This reduces maintenance
slightly, as keeping our assertion static would require still adding to
a _RECV_ALL mask *just* for that purpose.

Reviewed by:    kib, markj (both slightly earlier version)
Differential Revision:  https://reviews.freebsd.org/D56372
51d2c38010824b90d7462711896a88165db9d015 Kyle Evans 2026-04-17 03:57:06

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

pf tests: test having multiple state limiters
Sponsored by: Rubicon Communications, LLC ("Netgate")
95fe1ba5579df2fe204ad30d892160966677ae98 Kristof Provost 2026-04-16 13:46:59

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

tests/socket_afinet: Remove a conditional skip
The test runs without any unexpected results when mac_portacl is loaded.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=238781
MFC after:      1 week
9f6041fb579106aa6fa358071a14eddabd581998 Mark Johnston 2026-04-17 12:48:39

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

tests/netinet6: Add SLAAC and RA validation tests to ndp
* RA hop limit validation
* RA source address validation
* Multi router RA validation
* Two hour rule RA validation
* SLAAC onlink prefix switching test

Reviewed by: glebius
Differential Revision: https://reviews.freebsd.org/D56128
c173f02045c8cfae219b26be99f9e02f291965fa Pouria Mousavizadeh Tehrani 2026-04-17 20:25:18

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

tests/netinet6: Add test for route information option
Test handling of receiving multiple route information options in RA.

Reviewed by: glebius
Differential Revision: https://reviews.freebsd.org/D56216
f6bcc0925f0ea838da5183dc503f847e56d15cc8 Pouria Mousavizadeh Tehrani 2026-04-17 20:27:50

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

du: Set BLOCKSIZE before running tests
Several testcases assume BLOCKSIZE=K, so set it at the top of the
script.  This fixes an issue where the tests would sometimes fail
when run under sudo.

MFC after:      1 week
Sponsored by:   Klara, Inc.
Reviewed by:    kevans
Differential Revision:  https://reviews.freebsd.org/D56476
d618ba314d1452c1cb4360e15ae1c80adac48306 Dag-Erling Smørgrav 2026-04-18 12:48:04

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

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\/.*'

tests/net/if_clone_test: Add a test for races between if_detach() and if_vmove_reclaim()
Ideally we shall have tests for all possible races. It is races between
if_detach(), if_vmove_loan(), if_vmove_reclaim() and vnet_if_return().
Well that requires too many tests and it appears to be less valuable to
have them all. So focus on potential in future regressions related to
recent fixes [1] and [2] only.

[1] ee9456ce3753 ifnet: Fix races in if_vmove_reclaim()
[2] ba7f47d47dc1 ifnet: if_detach(): Fix races with vmove operations

MFC after:      3 days
Differential Revision:  https://reviews.freebsd.org/D56606
f4be16983dea4904f85ac20e921ad2a8c18a0f79 Zhenlei Huang 2026-04-27 19:17:21

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

tests/netgraph: Add a test for races between if_detach() and vnet_if_return()
A ng_eiface(4) or physical interface does not involve the cloner hence
the detaching is a bit different with epair(4). Add more tests to cover
that.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292993
MFC after:      3 days
Differential Revision:  https://reviews.freebsd.org/D56609
0988abd52352ae0977cd3e5c10316b7d94e1cac8 Zhenlei Huang 2026-04-27 19:17:22

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

tests: Temporarily skip two testcases
The changes [1] and [2] made to CURRENT introduce races between ifnet
detach and vmove operations. That requires extra effort to fix. They
are not MFCed to stable branches so the latter are not affected.
Temporarily skip two affected tests on CURRENT right now.

[1] 0bf42a0a05b9 bpf: virtualize bpf_iflist
[2] a4d766caf711 bpf: add a crutch to support if_vmove

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292993
Discussed with: kp
afa4648b6a30603faab56b649605a3393eac9986 Zhenlei Huang 2026-04-27 19:17:22

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

sys.net.if_wg.wg_key_peerdev_makeshared: Add require metadata
Add require.user root and require.kmods if_wg to
wg_key_peerdev_makeshared_head(), consistent with the other wg tests.

Without if_wg.ko causes ifconfig wg create to fail with EINVAL.  The
test also needs root to create jails.

Sponsored by:   The FreeBSD Foundation
41c5a4a2f888765b513efb13befe32fa084ad7cb Li-Wen Hsu 2026-04-28 17:06:25

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

tests/sys/arch/amd64: add a program to check INT $0x80 behavior on amd64
Requested and reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56654
2c2ec6bbc9cc7762a250ffe903bda6c2e44d25ff Konstantin Belousov 2026-04-27 04:23:36

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

tests/netlink: Add nexthop group tests for multipath
Added tests:
* Test for creating multiple routes.
* Test for merge multiple nexthops into a single nexthop group.
* Test for nexthop expirations from a nexthop group.

Reviewed by: glebius
Differential Revision: https://reviews.freebsd.org/D56190
23b8d16c6641362833a8decdcb98b643006c3f5c Pouria Mousavizadeh Tehrani 2026-04-19 11:04:01

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

ping: fix listing test cases when scapy is not installed
The ATF-python test program was attempting to list test cases that
require scapy.  But it attempted to import the scapy module before the
test cases had been listed, resulting in an ImportError that kyua
interpreted as a test program crash.

Fix this behavior by handling that ImportError well enough to list test
cases, but not run them.  If scapy isn't present, Kyua will refuse to
run the test cases.  But it needs to be able to list them in order to
know to skip them.

Sponsored by:           ConnectWise
MFC after:              2 weeks
Reviewed by:            maxim
Differential Revision:  https://reviews.freebsd.org/D56765
3e845b1090565912375c5578cf0399d27b7fa70c Alan Somers 2026-05-01 23:06:35

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

tests/carp: Rework unicast_v4
For unicast tests, it is sufficient to use wait_for_carp() to verify
the setup is sane. Additional sanity checks are not necessarily
required but can serve purpose for redundancy.

For some unclear reason routed(8) is advertising route to carp BACKUP.
That makes the test flaky. Also routed(8) is marked deprecated and may
be removed from base in the future. Let's just add static route entry
manually for additional sanity checks.

Other noticeable changes:
  1. Add atf_check to configuration steps to prevent potential failure
on setup. That helps diagnosing on failure.
  2. Shorten the names of jails to improve readability.
  3. Prefer `[ifconfig|route|sysctl] -j` over `jexec [ifconfig|route|sysctl]`
to make the lines shorter.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294817
Reviewed by:    glebius (previous version), pouria, markj
Fixes:          https://cgit.freebsd.org/src/commit/?id=93fbdef51a13 tests: carp: Update test case unicast_v4 to catch PR https://cgit.freebsd.org/src/commit/?id=284872
MFC after:      3 days
Differential Revision:  https://reviews.freebsd.org/D56761
9137c66c2ea6cc09e3a6f8a042ecdc5a62e0f39e Zhenlei Huang 2026-05-03 11:02:15

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

lockf: Test that lockf does not spin on fd
PR:           https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294832
MFC after:      1 week
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D56723
0733afdb4dad58cfe7ad7f5994e26bf148d78199 Dag-Erling Smørgrav 2026-05-03 15:35:15

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

tests/if_lagg: Minor improvements
- Set require.kmods instead of relying on ifconfig to load if_lagg.ko,
  as this doesn't work when running within a jail.
- Simplify helper functions which create tap and lagg devices.

MFC after:      1 week
47ae0135d461854b72b905ac77bf3e1f5b2868bc Mark Johnston 2026-05-03 15:48:49

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

amd/int0x80 test: fix inline asm for gcc
Gcc complained about the unused %0 asm argument.

Fixes:  https://cgit.freebsd.org/src/commit/?id=2c2ec6bbc9cc ("tests/sys/arch/amd64: add a program to check INT $0x80 behavior on amd64")
Reviewed by:    kib, markj
Differential Revision:  https://reviews.freebsd.org/D56781
d5728351a58b87764f3302eb8c4ca9f35e99e8b6 Ryan Libby 2026-05-04 16:34:41

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

tests: Add a simple regression test for an execve overflow bug
MFC after:    2 weeks
41b03932e59068decf03b7975889841f71c73ec4 Mark Johnston 2026-05-04 15:39:55

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

stat: Set the timezone before testing -t flag
The test assumes UTC, which is what I use on my development systems and
clearly what is used on our CI runners.

MFC after:      1 week
Sponsored by:   Klara, Inc.
Reviewed by:    kevans
Differential Revision:  https://reviews.freebsd.org/D56836
49e496d2776870fb36ed8ea4c8139b5eb9f7f747 Dag-Erling Smørgrav 2026-05-05 17:59:36

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

md5: Don't generate test cases just to skip them
Don't waste time generating Perl test cases for algorithms that are not
supported in Perl mode only to skip them when they are run.

MFC after:      1 week
Reviewed by:    ngie
Differential Revision:  https://reviews.freebsd.org/D56687
fd386e76fa2b29d99525c246cbfc05768a1f4a76 Dag-Erling Smørgrav 2026-05-05 19:44:29

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

stat: Expand devname test case
Test what happens when we ask for the rdev of a non-device.

MFC after:      1 week
Sponsored by:   Klara, Inc.
Reviewed by:    kevans
Differential Revision:  https://reviews.freebsd.org/D56838
2c88636e0e7a0316d5e6d146874bdb2751f75c40 Dag-Erling Smørgrav 2026-05-07 18:45:14

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

tests/ip_mroute: Remove test timeouts
The configured timeout of 30s is a bit too low for a couple of tests
which create 4+ VNET jails when running tests in parallel and with
kernel sanitizers enabled.  There's no reason to have custom timeouts,
just use the default.

MFC after:      1 week
3b16e96b005c723717aa6a4ebc48000354e64fa1 Mark Johnston 2026-05-12 17:45:08

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

tests/sys/arch/amd64: Add a basic ptrace syscall tampering test
Signed-off-by: Alex S <iwtcex@gmail.com>
Reviewed-by: kib
Pull-request: https://github.com/freebsd/freebsd-src/pull/2190
96f262dcacdbfb56e94c60985b07f9f8ee2d046b Alex S 2026-05-11 23:52:20

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

amd64/ptrace-sce-tamper test: get rid of PT_TRACE_ME
PT_TRACE_ME is only useful in combination with exec and there is no
exec in this test.

Signed-off-by:  Alex S <iwtcex@gmail.com>
MFC after:      1 week
8dd43304b397715a4313bcaebbf493b607a7099f Alex S 2026-05-16 01:16:32

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.

pause.3: Fix a typo in the manual page
- s/reimplemeted/reimplemented/

MFC after:      3 days
9eea5eccf40d408ad22ac06d9962b3a98a0f0628 Gordon Bergling 2026-04-04 07:02:01

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

bhnd(4): Fix a typo in a source code comment
- s/impementations/implementations/

MFC after:      3 days
04be4d04bbcbd061455b4424488b06927487a948 Gordon Bergling 2026-04-04 07:03:51

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

isci(4): Fix a couple of typos in source code comments
- s/THis/This/
- s/impementation/implementation/

MFC after:      3 days
adc41a72b8843047d02265a6ab2d8a5025a9ce89 Gordon Bergling 2026-04-04 07:05:51

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

ixl(4): Fix a typo in a source code comment
- s/seperated/separated/

MFC after:      3 days
ef3703a8cd9ade13d0c7a685577100e1fc18ee09 Gordon Bergling 2026-04-04 07:06:58

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

shlib-compat: Fix two typos in error messages
- s/implemeted/implemented/

MFC after:      3 days
3957e233dd9cf7b7599dd0a5efc59a78adfa9441 Gordon Bergling 2026-04-04 07:08:25

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

bsdconfig(8): Fix a typo in a source code comment
- s/THis/This/

MFC after:      3 days
b427b661be01e7b112531ba0b1ea27377a963bb8 Gordon Bergling 2026-04-04 07:09:56

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

virtio.4: fix typo
Reviewed by:  tuexen
Fixes:          https://cgit.freebsd.org/src/commit/?id=c70755bc0d8f ("virtio: add loader tunables to sysctl")
MFC after:      3 days
39c44fc55f0ed595623fb6d66a4060b7be32fa51 Timo Völker 2026-04-04 14:43:07

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

CONTRIBUTING.md: Correct typo
Reported by:  vladlen
cb813145f0ad72705cb4ccf80222a408abe3d54c Ed Maste 2026-04-05 12:21:44

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

mfiutil.8: Fix typo - missing macro for dev node
MFC after: 3 days
2bcdab574598e729273f7ddc7d898ffdb43b63b9 Alexander Ziaee 2026-04-02 03:20:45

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

tuning.7: Fix suds typo in manual pages
MFC after:            3 days
Fixes:                  https://cgit.freebsd.org/src/commit/?id=fc32c802158f Add two new manual pages
Differential Revision:  https://reviews.freebsd.org/D55814
f9160912415eef078c32317e02695bc0cc775d39 Alice Cariboni 2026-04-09 15:35:47

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

rc.conf: Fix typo in comment
The correct path is /etc/defaults/rc.conf (defaults in plural).

Reviewed by:    netchild
Fixes:          https://cgit.freebsd.org/src/commit/?id=cc4eb1ea1040 ("Add support for a /etc/defaults/vendor.conf override file")
MFC after:      3 days
Differential Revision:  https://reviews.freebsd.org/D56456
8e08080ee581dfd30c128d032035da7b6ae44463 Jose Luis Duran 2026-04-17 13:55:16

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

sctp(4): Fix a typo in a source code comment
- s/initited/initiated/

Obtained from:  NetBSD
MFC after:      3 days
a154d72775cbf3f0679fb2f989b3d1a035ae41c9 Gordon Bergling 2026-04-17 14:59:26

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

librpcsec_gss: Fix a typo in a source code comment
- s/verfier/verifier/

MFC after:      3 days
59dacd7f008f54a335ec49e747bb8ddac67b0a83 Gordon Bergling 2026-04-19 07:57:03

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

stand/powerpc: Fix a typo in a source code comment
- s/limitiations/limitations/

MFC after:      3 days
4177af3b0e2db36238bbd6f973943f830d1ff46f Gordon Bergling 2026-04-19 08:01:18

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

thunderbolt: Fix a typo in a source code comment
- s/Inititalize/Initialize/

MFC after:      3 days
33e0180a306b9ed60df5eae1818c40ef65750525 Gordon Bergling 2026-04-19 08:04:12

debug: classified in 01-style by '[tT]ypo'

msdosfs(4): Fix two typos in source code comments
- s/unititialized/uninitialized/

MFC after:      3 days
96246330c1c47ea06b7e781ddd87de45d541494f Gordon Bergling 2026-04-19 08:06:45

debug: classified in 01-style by '[tT]ypo'

rpcsec_gss(3): Fix a typo in a source code comment
- s/verfier/verifier/

MFC after:      3 days
6323e2be6102e2a152b4420db272f7e880017cf0 Gordon Bergling 2026-04-19 08:08:56

debug: classified in 01-style by '[tT]ypo'

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'

Commit group #63: fix typo
fix typo: remove duplicate 'the' in ffs_vfsops comment

Signed-off-by: Felipe Matarazzo <felipemps@protonmail.com>
Reviewed-by: ngie
Pull-Request: https://github.com/freebsd/freebsd-src/pull/2174
82525a8ead6b778f4eb0f7a6a2dbe327fa69fcfe Felipe Matarazzo 2026-04-29 16:14:29

debug: classified in 01-style by '[tT]ypo'


fix typo: duplicate 'the' in OP_NOTROOT comment

Signed-off-by: Felipe Matarazzo <felipemps@protonmail.com>
Reviewed-by: ngie
Pull-Request: https://github.com/freebsd/freebsd-src/pull/2174
713332b4eb79be2ca6de36c47853eef099214913 Felipe Matarazzo 2026-04-29 16:14:32

debug: classified in 01-style by '[tT]ypo'


fix typo: lenght -> length in netlink comment

Signed-off-by: Felipe Matarazzo <felipemps@protonmail.com>
Reviewed-by: ngie
Pull-Request: https://github.com/freebsd/freebsd-src/pull/2174
e1841a50d6a570517c2f3c9b94b9496cb5b60a9e Felipe Matarazzo 2026-04-29 16:14:35

debug: classified in 01-style by '[tT]ypo'


fix typo: seperate -> separate in tcp_ratelimit comment

Signed-off-by: Felipe Matarazzo <felipemps@protonmail.com>
Reviewed-by: ngie
Pull-Request: https://github.com/freebsd/freebsd-src/pull/2174
0e235f77360c5c72dac28af105e6c9ed3cb66c09 Felipe Matarazzo 2026-04-29 16:14:37

debug: classified in 01-style by '[tT]ypo'


fix typo: remove extra 'the' in rack.c comment

Signed-off-by: Felipe Matarazzo <felipemps@protonmail.com>
Reviewed-by: ngie
Pull-Request: https://github.com/freebsd/freebsd-src/pull/2174
a8cb5cb40005e698c7c4e21d1eb761822ad8c82c Felipe Matarazzo 2026-04-29 16:14:40

debug: classified in 01-style by '[tT]ypo'


fix typo: writting -> writing in sack_filter

Signed-off-by: Felipe Matarazzo <felipemps@protonmail.com>
Reviewed-by: ngie
Pull-Request: https://github.com/freebsd/freebsd-src/pull/2174
092528b05d1fb0776fecb345ce99b1b68e8122b1 Felipe Matarazzo 2026-04-29 16:14:43

debug: classified in 01-style by '[tT]ypo'

fix typos in rtsx.c comments: freqency and wich
Signed-off-by: Felipe Matarazzo <felipemps@protonmail.com>
Reviewed-by: ngie
Pull-Request: https://github.com/freebsd/freebsd-src/pull/2174
deb17abdeffef072a0c45eb92c798d1f7b3ce7c5 Felipe Matarazzo 2026-04-29 16:14:46

debug: classified in 01-style by '[tT]ypo'

fix typo: recieved -> received in test comment
Signed-off-by: Felipe Matarazzo <felipemps@protonmail.com>
Reviewed-by: ngie
Pull-Request: https://github.com/freebsd/freebsd-src/pull/2174
0e680203d59aac1a0e77f0d297d3ccb9777be749 Felipe Matarazzo 2026-04-29 16:14:49

debug: classified in 01-style by '[tT]ypo'

blocklistd: Fix RFC1918 typo
The address in the configuration file example was intended to be from
the 192.168.0.0/16 range of IPv4 private addresses (RFC1918).

Reported on mastodon.social at
https://mastodon.social/@asmodai/116316630762241486.

Fix submitted upstream by emaste@.  Fixing locally first.

Reviewed by:    emaste
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56773
5a6d9479ae2271a97dd23ceee8ad284770302874 Jose Luis Duran 2026-05-03 05:31:51

debug: classified in 01-style by '[tT]ypo'

sysctl: Fix typo in DDB help text example
96840278032f856669597129e9d16c818e40dc15 Justin Hibbits 2026-05-03 18:49:31

debug: classified in 01-style by '[tT]ypo'

Fix typo in curthread
8334d46162e46f400b04b93d79e310153380d643 Simon J. Gerraty 2026-05-05 20:14:36

debug: classified in 01-style by '[tT]ypo'

freebsd-base.7: style
09d81767e32cb437da0ac7d1c3b51eed01591b82 Maxim Konovalov 2026-05-07 01:50:45

debug: classified in 01-style by '[sS]tyle'

thunderbolt: Fix typo in comment
Reported by:  adrian
Sponsored by:   The FreeBSD Foundation
fdd7daa2318ed3177e2674b9a3d18d21e2035ee1 Aymeric Wibo 2026-05-09 17:22:41

debug: classified in 01-style by '[tT]ypo'

clock_gettime.2: Fix a couple of typos
Reviewed by:  emaste
Differential Revision:  https://reviews.freebsd.org/D56990
52fa2f9f8d57e4dde555567794c6b3e0e242b8a1 John Baldwin 2026-05-13 18:11:26

debug: classified in 01-style by '[tT]ypo'

cap_fileargs: fix typo
69e9d5d306699d40148256722d7240dbb5da8fb5 Mariusz Zaborski 2026-05-13 19:51:44

debug: classified in 01-style by '[tT]ypo'

cap_dns: fix typos
4569c022db0bd2242eed883c33207980ddb00019 Mariusz Zaborski 2026-05-13 19:55:29

debug: classified in 01-style by '[tT]ypo'

cap_net: fix typos
efc1f50ec4999e4222e1f1b3d6d2f668f9169afb Mariusz Zaborski 2026-05-13 19:56:09

debug: classified in 01-style by '[tT]ypo'

cap_sysctl: fix typo
45fa572b94e7c61de5797ea877af3dade91af23f Mariusz Zaborski 2026-05-13 19:57:20

debug: classified in 01-style by '[tT]ypo'

style.mdoc: Explain why not to abuse Nm
MFC after:            3 days
Reviewed by:            0mp
Differential Revision:  https://reviews.freebsd.org/D55299
bcd50fe5c3c6e70c710e13378999814e9df43d3c Alexander Ziaee 2026-05-15 12:49:20

debug: classified in 01-style by '[sS]tyle'

Contrib code

MFV: xz 5.8.3.
Security:     CVE-2026-34743
MFC after:      3 days
f81c1f4339cd20ea89dad51c0f7d96e0e34313a9 Xin LI 2026-04-01 01:45:14

debug: classified in 05-summary-prefix by 'MFV:'

contrib/expat: import expat 2.7.5
Changes: https://github.com/libexpat/libexpat/blob/R_2_7_5/expat/Changes
         https://github.com/libexpat/libexpat/blob/R_2_7_4/expat/Changes

Security:       CVE-2026-32776
Security:       CVE-2026-32777
Security:       CVE-2026-32778
Security:       CVE-2026-24515
Security:       CVE-2026-25210
MFC after:      3 days
ae04c7bbf065278687fa930e81a96767e9009d38 Philip Paeps 2026-04-02 00:12:18

debug: classified in 05-summary-prefix by 'contrib/'

posix_spawn test: switch to POSIX spelling for addchdir and addfchdir
Reviewed by:  dim
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56222
e56858f05fd7071a39de7f7b1e632426fdf0624d Konstantin Belousov 2026-04-03 02:56:19

debug: classified in 03-filenames_plain1 by 'contrib/'

contrib/libucl: Import libucl 0.9.3
Differential Revision: https://reviews.freebsd.org/D54583
Approved by: bapt
MFC after:  3 days

Changelog: https://github.com/vstakhov/libucl/releases/tag/0.9.3
abda442d92fdbadcf81c79bc9ddba001d133c429 Muhammad Moinur Rahman 2026-04-03 11:53:18

debug: classified in 03-filenames_plain1 by 'contrib/'

Merge bmake-20260313
Merge commit 'fe271bdb43cf88ee129d94c0e286fe618fd28e89'
34a3834eadd03bec7703b8fbf9123f27b1114986 Simon J. Gerraty 2026-04-06 18:29:01

debug: classified in 05-summary-prefix by 'Merge '

libfido2: Update to 1.16.0
Sponsored by: The FreeBSD Foundation
febb0da5bf4bc99828ebede7abcb039514ac367a Ed Maste 2026-04-07 13:14:41

debug: classified in 03-filenames_plain1 by 'contrib/'

contrib/libucl: Revert to old behavior of macros
Enable macros and includes by default as this is breaking package
building on HEAD. libucl 0.9.3 by default changed the behavior of
includes and macros. These were previously enabled but it switched to
disabled which breaks the package building in HEAD. This is a temporary
workaround for now to fix the package building specially for
releng/15.0. This might be reverted post EOL of 15.0 in the coming
months.

Reported by:    ivy
Fixes: https://cgit.freebsd.org/src/commit/?id=abda442d92fd ("contrib/libucl: Import libucl 0.9.3")
Tested by:      ivy
Approved by:    ivy, kevans
Differential Revision:  https://reviews.freebsd.org/D56294
a71fea51cecfe3bb70247ad62668e380e0f069ad Muhammad Moinur Rahman 2026-04-07 18:27:20

debug: classified in 03-filenames_plain1 by 'contrib/'

MFV: zstd 1.5.7.
MFC after:    2 weeks
Relnotes:       yes
c0d9a07101a1e72769ee0619a583f63a078fb391 Xin LI 2026-04-08 21:22:45

debug: classified in 05-summary-prefix by 'MFV:'

MFV: crypto/openssl: update to 3.5.6
This change brings in version 3.5.6 of OpenSSL, which features
several security fixes (the highest of which is a MEDIUM severity
issue), as well as some miscellaneous feature updates.

Please see the release notes [1] for more details.

PS Apologies for the confusing merge commits -- I was testing out a
new automated update process and failed to catch the commit message
issues until after I pushed the change.

1. https://github.com/openssl/openssl/blob/openssl-3.5.6/NEWS.md

MFC after:      1 day (the security issues warrant a quick backport).
Merge commit 'ab5fc4ac933ff67bc800e774dffce15e2a541e90'
10a428653ee7216475f1ddce3fb4cbf1200319f8 Enji Cooper 2026-04-09 01:44:24

debug: classified in 03-filenames_plain1 by 'crypto/openssl/'

crypto/openssl: update artifacts to match 3.5.6 release artifacts
A new manpage and any associated links will be added in the next commit.

MFC after:      1 day (the security issues warrant a quick backport).
MFC with:       10a428653ee7216475f1ddce3fb4cbf1200319f8
5254e16213ff1bb136ef24e0b0fe30625ac53563 Enji Cooper 2026-04-09 01:54:40

debug: classified in 05-summary-prefix by 'crypto/openssl:'

sys/contrib/zstd: further narrow FREEBSD-Xlist
We don't need any docs or examples in tree, as well
as any upstream-specific build infrastructure.

Differential Revision: https://reviews.freebsd.org/D55836
7c9418613a31571e4eceda55a417f7183d26acb5 Siva Mahadevan 2026-04-09 04:43:42

debug: classified in 03-filenames_plain1 by 'sys/contrib'

MFV: zstd: Remove entries listed in FREEBSD-Xlist
111a42d7d78a88ba6ff7b5d61b0867faccc00276 Xin LI 2026-04-09 04:48:39

debug: classified in 03-filenames_plain1 by 'sys/contrib'

Fix default for .MAKE.SAVE_DOLLARS
NetBSD make defaults this to "yes",
bmake defauts it to "no" to retain the traditional behavior.

The default is dealt with in bmake's Makefile but that does not
address boot-strap.

For now, just change the ifdef in main.

PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294436
e272f4a61e78037ec8477ba9e9afcbe3ae2cd8e3 Simon J. Gerraty 2026-04-13 17:38:50

debug: classified in 03-filenames_plain1 by 'contrib/'

rtw89: add a warn about beacon_int or dtim_period being 0
While after the changes to LinuxKPI 802.11 we should never be assoc
and not have dtim_period set, we have seen before that this could
happen.  Add a WARN as that will help debugging the following DIV 0.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
99bbfb77e3c395805fe0a7f19006c5c29136f9fc Bjoern A. Zeeb 2026-04-17 02:40:03

debug: classified in 03-filenames_plain1 by 'sys/contrib'

libarchive: Staticize some variables
This code was not being built due to errors in our libarchive
configuration.  Now that those have been addressed, staticize some
variables that trip a “no previous extern declaration” error.  This
is a subset of upstream PR 2962.

MFC after:      1 week
Reviewed by:    mm
Differential Revision:  https://reviews.freebsd.org/D56471
7e9d974bc023755161742f66c8c77546bab88586 Dag-Erling Smørgrav 2026-04-18 08:25:35

debug: classified in 03-filenames_plain1 by 'contrib/'

rtw88: update Realtek's rtw88 driver
This version is based on
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ).

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
41b641cc0537d1288cc05332bb4c5de3dcb12589 Bjoern A. Zeeb 2026-04-18 14:21:04

debug: classified in 03-filenames_plain1 by 'sys/contrib'

iwlwifi: update Intel's mvm/mld drivers
This version is based on
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ).

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
b2bd08185e4984c70179c195f712cef5a136d21b Bjoern A. Zeeb 2026-04-18 20:35:37

debug: classified in 03-filenames_plain1 by 'sys/contrib'

rtw89: update Realtek's rtw89 driver
This version is based on
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ).

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
422e9c5d878e14ec16bb89ef6df65d964d5ce2f1 Bjoern A. Zeeb 2026-04-18 20:48:44

debug: classified in 03-filenames_plain1 by 'sys/contrib'

mt76: update Mediatek's mt76 driver
This version is based on
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ).

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
63a40b65c9be74193bb07a76fd66c249bd562eae Bjoern A. Zeeb 2026-04-18 21:01:39

debug: classified in 03-filenames_plain1 by 'sys/contrib'

zfs: merge openzfs/zfs@1644e2ffd
Notable upstream pull request merges:
 #18148 d1b0a6982 draid: add failure domains support
 #18167 f203fedde Add zoned_uid property with additive least privilege
                  authorization
 #18191 -multiple FreeBSD: Fix a couple of races involving zvol creation
                  and teardown
 #18213 33ed68fc2 zpool create: report which device caused failure
 #18235 931deb290 Prevent range tree corruption race by updating
                  dnode_sync()
 #18282 b44a3ecf4 zpool: Change zpool offline spares policy
 #18310 -multiple Fix s_active leak in zfsvfs_hold() when z_unmounted is
                  true
 #18351 ce837a28e Bridge speculative and prescient prefetchers
 #18380 fc659bd6d draid: fix import failure after disks replacements
 #18385 16858492e FreeBSD: Implement relatime property
 #18390 a22b3f670 abd: Fix stats asymmetry in case of Direct I/O
 #18399 7b1682a82 Add support for POSIX_FADV_DONTNEED
 #18403 5cb95ad89 fix memleak in spa_errlog.c
 #18405 0752cf067 draid: allow seq resilver reads from degraded vdevs
 #18407 e635d27eb Add ability to set user properties while changing
                  encryption key
 #18414 2abf469be draid: fix cksum errors after rebuild with degraded disks
 #18415 -multiple Fix snapshot automount deadlock during concurrent zfs recv
 #18421 1644e2ffd Fix read corruption after block clone after truncate

Obtained from:  OpenZFS
OpenZFS commit: 1644e2ffd2640fa3e2c191ceaf048a5fc8399493
d8fbbd371ca11d9ad4b29b9d3a316885a5da0b15 Martin Matuska 2026-04-18 22:21:01

debug: classified in 03-filenames_plain1 by 'sys/contrib'

ath-common: update common Atheros/QCA code
This version is based on
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ).

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
ff18554fd6e616f5d965322be477dc406a2906bc Bjoern A. Zeeb 2026-04-19 15:07:36

debug: classified in 03-filenames_plain1 by 'sys/contrib'

ath10k: update Atheros/QCA's ath10k driver
This version is based on
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ).

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
02b46313fd1461338703a1e02c667b8dbcc36237 Bjoern A. Zeeb 2026-04-19 15:09:30

debug: classified in 03-filenames_plain1 by 'sys/contrib'

brcm80211: update Broadcom wireless brcmsmac and brcmfmac drivers
This version is based on
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ).

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
117d9331fedeb5c5657a796423c4f7b311f40770 Bjoern A. Zeeb 2026-04-19 15:16:04

debug: classified in 03-filenames_plain1 by 'sys/contrib'

ath11k: update Atheros/QCA's ath11k driver
This version is based on
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ).

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
4ed5b949d5e25456124a4d280d27e9719f90e9be Bjoern A. Zeeb 2026-04-19 15:27:01

debug: classified in 03-filenames_plain1 by 'sys/contrib'

ath12k: update Atheros/QCA's ath12k driver
This version is based on
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ).

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
60bac4d6438b6bcb3d7b439684211d05396d90ce Bjoern A. Zeeb 2026-04-19 15:38:33

debug: classified in 03-filenames_plain1 by 'sys/contrib'

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 #64: 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/'

contrib/expat: import expat 2.8.0
Changes: https://github.com/libexpat/libexpat/blob/R_2_8_0/expat/Changes

Security:       CVE-2026-41080
MFC after:      1 week
e3935639d8d8b6556cad18e1c90e419a65f26b40 Philip Paeps 2026-04-27 10:38:10

debug: classified in 05-summary-prefix by 'contrib/'

contrib/openresolv: MFV openresolv 3.17.4
Reviewed by:  pfg
Approved by:    lwhsu (mentor)
Differential Revision:  https://reviews.freebsd.org/D56269
cb0e3a5fba5fe48607db8c1042bfe6a1164e0db7 Siva Mahadevan 2026-04-28 19:25:49

debug: classified in 03-filenames_plain1 by 'contrib/'

libnv: fix heap overflow in nvlist_recv()
nvlist_check_header() validated nvlh_size for overflow before
performing conversion. An mallicous user can set
NV_FLAG_BIG_ENDIAN in the header and craft nvlh_size so that
the orginall value passes the check, but after the conversion the
sizeof(nvlist_header) + size can overflow.
This can lead to a heap buffer overflow.

Approved by:    so
Security:       FreeBSD-SA-26:17.libnv
Security:       CVE-2026-35547
Fixes:          https://cgit.freebsd.org/src/commit/?id=36fa90dbde0060aacb5677d0b113ee168e839071
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D56342
e2219bbd634f673f774ddf118dfe19e531e08a45 Mariusz Zaborski 2026-04-28 14:36:09

debug: classified in 03-filenames_plain1 by 'sys/contrib'

zfs: merge openzfs/zfs@84ffe564d
Notable upstream pull request merges:
 #18387 656285140 Handle raidz errors <= nparity rather than ignoring
 #18401 1cebe8a38 libzfs: report invalid permission name in zfs allow
 #18430 513710ed2 Fix "panic: cache_vop_rename: lingering negative entry"
 #18440 37e3a260f dmu_direct: avoid UAF in dmu_write_direct_done()
 #18445 2eee4ac1e Fix: draid autopkgtests fail on s390x architecture
 #18448 8da472973 key lookup failure should always return EACCES
 #18456 4a58ab8ce zfs.4: document five missing module parameters

Obtained from:  OpenZFS
OpenZFS commit: 84ffe564dff1b7f69d397817ef292cbe2c5ebad3
f9590540c524607d22fa7e718c758725c4365375 Martin Matuska 2026-05-02 07:17:59

debug: classified in 03-filenames_plain1 by 'sys/contrib'

zfs: merge openzfs/zfs@a12c6ed62
Notable upstream pull request merges:
 #18473 b8d959640 Fix rare cksum errors after rebuild
 #18477 e78a51dd6 Fix off-by-one in PREVIOUSLY_REDACTED handler that drops
                  last block
 #18482 d5099c330 Initialize vr_last_txg for rebuild
 #18483 872f01019 Zstd: rework ZSTD_isError symbol renaming
 #18489 366b1f9a3 Fix long POSIX_FADV_DONTNEED for single block files

Obtained from:  OpenZFS
OpenZFS commit: a12c6ed62fcd06093b95616515e4716b0b0bc038
efa8679e7f69c9cc225613827d9f75644cca5b3b Martin Matuska 2026-05-06 21:46:01

debug: classified in 03-filenames_plain1 by 'sys/contrib'

Merge commit 871038759afb from llvm git (by Marco Elver):
  Thread Safety Analysis: Fix pointer handling of variables with deprecated attributes (#148974)

  de10e44b6fe7 ("Thread Safety Analysis: Support warning on
  passing/returning pointers to guarded variables") added checks for
  passing pointer to guarded variables. While new features do not
  necessarily need to support the deprecated attributes (`guarded_var`,
  and `pt_guarded_var`), we need to ensure that such features do not cause
  the compiler to crash.

  As such, code such as this:

          struct {
            int v __attribute__((guarded_var));
          } p;

          int *g() {
            return &p.v;  // handleNoMutexHeld() with POK_ReturnPointer
          }

  Would crash in debug builds with the assertion in handleNoMutexHeld()
  triggering. The assertion is meant to capture the fact that this helper
  should only be used for warnings on variables (which the deprecated
  attributes only applied to).

  To fix, the function handleNoMutexHeld() should handle all POK cases
  that apply to variables explicitly, and produce a best-effort warning.

  We refrain from introducing new warnings to avoid unnecessary code bloat
  for deprecated features.

  Fixes: https://github.com/llvm/llvm-project/issues/140330

This fixes an assertion while building the net/openvswitch port:
"Assertion failed: ((POK == POK_VarAccess || POK == POK_VarDereference)
&& "Only works for variables"), function handleNoMutexHeld, file
/usr/src/contrib/llvm-project/clang/lib/Sema/AnalysisBasedWarnings.cpp,
line 2120.'

Reported by:    cy
PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=295101, https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after:      1 month
d9b272a19d39f71665b529860bfed731bcfd99f5 Dimitry Andric 2026-05-08 17:59:54

debug: classified in 03-filenames_plain1 by 'contrib/'

Fix some memory leaks when fetching the mibII.
Reviewed by:  glebius
Sponsored by:   Netflix
Differential Revision:  <https://reviews.freebsd.org/D55998>
7906084ba2fd50022f38ce2e8d0bcef212a4ff19 Chuck Silvers 2026-05-09 15:52:14

debug: classified in 03-filenames_plain1 by 'contrib/'

Document some more OIDs that are used by bsnmp.
27ad506d26209e72d3cb2055de98f8a2eccc83be Hartmut Brandt 2026-05-09 16:04:45

debug: classified in 03-filenames_plain1 by 'contrib/'

Add 'contrib/smart/' from commit 'eb3b1302382b1d0cbe37eeebabfcdd546aa2fc4e'
git-subtree-dir: contrib/smart
git-subtree-mainline: 95b4436e989df29f6368f13832cb13d7cbc52eac
git-subtree-split: eb3b1302382b1d0cbe37eeebabfcdd546aa2fc4e
7419d6e463fee40f0f52cd5bc46a93cbb7ac6114 Chuck Tuffli 2026-05-11 21:50:04

debug: classified in 03-filenames_plain1 by 'contrib/'

acpica: Merge ACPICA 20260408
Merge commit '69ae37302ee98839857791a261546e19d078cdb8'
7697e6c4df7188ee3a2aa66f73c572c27479bdf2 Jung-uk Kim 2026-05-11 23:29:58

debug: classified in 03-filenames_plain1 by 'sys/contrib'

smart: Merge smart 1.0.3
Merge commit 'd2d20bb5099dc1c443a4b783d43b8a45338c85d2'
346be36e8861e26bfed44cbf960903d0055f6660 Chuck Tuffli 2026-05-12 14:33:03

debug: classified in 03-filenames_plain1 by 'contrib/'

Commit group #65: OpenSSH: Update to 10.1p1
OpenSSH: Update to 10.1p1

Full release notes are available at
https://www.openssh.com/txt/release-10.1

Selected highlights from the release notes:

Potentially-incompatible changes

 * ssh(1): add a warning when the connection negotiates a non-post
   quantum key agreement algorithm.

 * ssh(1), sshd(8): major changes to handling of DSCP marking/IPQoS

 * ssh(1), sshd(8): deprecate support for IPv4 type-of-service (ToS)
   keywords in the IPQoS configuration directive.

 * ssh-add(1): when adding certificates to an agent, set the expiry
   to the certificate expiry time plus a short (5 min) grace period.

 * ssh-agent(1), sshd(8): move agent listener sockets from /tmp to
   under ~/.ssh/agent for both ssh-agent(1) and forwarded sockets
   in sshd(8).

Security

 * ssh(1): disallow control characters in usernames passed via the
   commandline or expanded using %-sequences from the configuration
   file, and disallow \0 characters in ssh:// URIs.

New features

 * ssh(1), sshd(8): add SIGINFO handlers to log active channel and
   session information.

Sponsored by:   The FreeBSD Foundation
644b4646c7acab87dc20d4e5dd53d2d9da152989 Ed Maste 2026-05-12 20:24:10

debug: classified in 05-summary-prefix by 'OpenSSH:'


pam_ssh: Fix build - chase OpenSSH function signature change

Reported by: dch
Fixes: https://cgit.freebsd.org/src/commit/?id=644b4646c7ac ("OpenSSH: Update to 10.1p1")
Sponsored by: The FreeBSD Foundation
b76b05c04cc9ed2cd053c7b367c92628447ede6f Ed Maste 2026-05-12 22:49:29

debug: classified in 04-filenames_plain2 by 'lib/'

debug: moved to contrib because 'Need to be grouped with 644b4646c7acab87dc20d4e5dd53d2d9da152989'

OpenSSH: Update to 10.2p1
Full release notes are available at
https://www.openssh.com/txt/release-10.2

Selected highlights from the release notes:

Bugfixes
--------

 * ssh(1): fix mishandling of terminal connections when
   ControlPersist was active that rendered the session unusable.
   bz3872

Sponsored by:   The FreeBSD Foundation
e68aa5ab80ab57bdbcbe94dd2922a018d675e7f0 Ed Maste 2026-05-12 21:12:09

debug: classified in 05-summary-prefix by 'OpenSSH:'

contrib/expat: import expat 2.8.1
Changes: https://github.com/libexpat/libexpat/blob/R_2_8_1/expat/Changes

Security:       CVE-2026-45186
MFC after:      1 week
9cc9b8b372842b9a941d235c5e9949a214e5284f Philip Paeps 2026-05-13 03:17:00

debug: classified in 05-summary-prefix by 'contrib/'

Merge bmake-20260508
Merge commit 'ef402bba84260816d3e8d6e2439b0bc7eddc9446'
1729d2f741a12a42c61ed5308ee156a0d1cd1918 Simon J. Gerraty 2026-05-13 04:24:08

debug: classified in 05-summary-prefix by 'Merge '

mandoc: Add an entry for libsys to lib.in
Reviewed by:  brooks, emaste
Obtained from:  CheriBSD
Sponsored by:   AFRL, DARPA
Differential Revision:  https://reviews.freebsd.org/D56849
538f0564c1197605d7ab80ba39cbf27cc9c90fed John Baldwin 2026-05-13 16:33:12

debug: classified in 03-filenames_plain1 by 'contrib/'

mandoc: Updating FreeBSD thead library descriptions
Remove libkse as it has been obsolete for many years and drop 1:1 from
description of libthr.

Reviewed by:    brooks
Sponsored by:   AFRL, DARPA
Differential Revision:  https://reviews.freebsd.org/D56850
8766e2122ac02ff4d86c254d8ef1c41d4a7f76a0 John Baldwin 2026-05-13 16:33:29

debug: classified in 03-filenames_plain1 by 'contrib/'

Commit group #66: OpenSSH: Update to 10.3p1
OpenSSH: Update to 10.3p1

Full release notes are available at
https://www.openssh.com/txt/release-10.3

Selected highlights from the release notes:

 * ssh(1), sshd(8): remove bug compatibility for implementations
   that don't support rekeying. If such an implementation tries to
   interoperate with OpenSSH, it will now eventually fail when the
   transport needs rekeying.

 * ssh(1), sshd(8): support IANA-assigned codepoints for SSH agent
   forwarding, as per draft-ietf-sshm-ssh-agent. Support for the new
   names is advertised via the EXT_INFO message. If a server offers
   support for the new names, then they are used preferentially.

 * ssh(1): add a ~I escape option that shows information about the
   current SSH connection.

 * sshd(8): add 'invaliduser' penalty to PerSourcePenalties, which is
   applied to login attempts for usernames that do not match real
   accounts. Defaults to 5s to match 'authfail' but allows
   administrators to block such attempts for longer if desired.

 * Support the ed25519 signature scheme via libcrypto.

Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56999
2574974648c68c738aec3ff96644d888d7913a37 Ed Maste 2026-05-14 18:59:30

debug: classified in 05-summary-prefix by 'OpenSSH:'


blocklist: Add back probes

The banner exchange was moved to the sshd-auth process in upstream
commit bb781f02d4efd178e329a62a838962bee16e3e9b.  Add it back.

Add back fatal exit probe.

NetBSD PR:      bin/60270 (GNATS)
Reviewed by:    emaste
Fixes:          https://cgit.freebsd.org/src/commit/?id=2574974648c6 ("OpenSSH: Update to 10.3p1")
Differential Revision:  https://reviews.freebsd.org/D57027
3d246db08333c06df343281d5aaebfd07ea08252 Jose Luis Duran 2026-05-16 22:00:02

debug: moved to contrib because 'Need to be grouped with 2574974648c68c738aec3ff96644d888d7913a37'

rtw89: firmware: extend script to extract fwget entries
The so far so consistent (file)names got an outlier so add the
one character longer pattern as well to catch that.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
56460a6a420a066ea6eeadc3725bfdaf49f8142b Bjoern A. Zeeb 2026-05-17 23:16:33

debug: classified in 03-filenames_plain1 by 'sys/contrib'

iwlwifi: firmware: reduce script to extract fwget information
Due to driver changes it is no longer feasible to extract the full
PCI ID / firmware / card type information in one go as we used to
be able to.
We have already changed the way we extract firmware information for
ports and marked the iwlwififw.4 man page as obsolete.

Reduce the script to simply extarct the fwget(8) information and,
compared to the old times, sort each section so diffs will be easier
to see in the future.  This was particular helpful this time to make
sure we do not lose entries with the change of technique.

We also keep the script in the best perl spirit to do the job but
not to win a price, especially given it seems we have to change
matters every (other) year.

Given we can no longer extract firmware information for the PCI IDs,
we need to "manually" check against the ports that names match.
Ideally we will simplify things for everything "mld-only" one day
to only have a single firmware package for these (even if size
increases slightly).

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
4f6c60c3d3c44aa3df23f280f2fe247f7a930efa Bjoern A. Zeeb 2026-05-17 23:25:21

debug: classified in 03-filenames_plain1 by 'sys/contrib'

Reverted commits

inpcb: move local address assignment out of in_pcbdisconnect()
The logic of clearing local address at the protocol level makes sense.  It
is feature of UDP, not of any protocol, that local address is cleared on
disconnect.  This code can be tracked down to pre-FreeBSD times.

For example, for TCP we want a disconnected socket to return previously
used local address with getsockname(2).  The TCP has successfully evaded
that by not calling in_pcbdisconnect() and calling in_pcbdetach() in the
very old code and in_pcbdrop() later.   After D55661 TCP again has this
potential bug masked.  Better make it right than rely on such
unintentional evasions.

The raw IP sockets don't use in_pcbdisconnect(), but they are going to in
the near future.  If in_pcbdisconnect() clears local address for them,
that would be a larger bug than just getsockname().  A raw socket may be
bound with bind(2) and then connect(2)ed, and then disconnected, e.g.
connect(INADDR_ANY).  And when we run raw IP socket through
in_pcbdisconnect() we don't want to lose local address.

This reverts D38362.
This reverts commit 2589ec0f365777faacf36bd1eb24706538836b17.

Reviewed by:            rrs, markj
Differential Revision:  https://reviews.freebsd.org/D56170
edece33b38ebcba46bd4d81382ebdb5a634a0c6d Gleb Smirnoff 2026-04-12 18:34:57

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'

Revert "EC2: Add clibs-lib32 pkg to small/builder images"
This should no longer be necessary after 2018ae4e3b6a.

This reverts commit cfe0b7d37e552d78762c029f5b15e0f36d9d0d38.
fa31e76a4c147eb5148595c9f3615040fcac74e5 Colin Percival 2026-04-13 19:42:57

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'

Commit & revert pair: sound: Remove some forward declarations from sound.h and uaudio.h
sound: Remove some forward declarations from sound.h and uaudio.h

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
602249f033d146d9c731d8b1cb4b2e0899c61ad9 Christos Margiolis 2026-04-18 10:50:03

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'


Revert "sound: Remove some forward declarations from sound.h and uaudio.h"

This reverts commit 602249f033d146d9c731d8b1cb4b2e0899c61ad9.
ec077230fd941336c37f8bfdce3bb3e4c9d809b4 Christos Margiolis 2026-04-18 11:30:20

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'

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 #67: 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'

Commit & revert pair: Vendor import of smart at 1.0.2
Vendor import of smart at 1.0.2

smart/diskhealth is a command line application to monitor disk health
from a storage device via SMART.

Reviewed by:    fuz, jrm
Relnotes:       yes
Differential Revision:  https://reviews.freebsd.org/D56638
68e5b71517e947b4e3f349c970af362b47b45f27 Chuck Tuffli 2026-04-28 16:55:50

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'


Revert "Vendor import of smart at 1.0.2"

This reverts commit 68e5b71517e947b4e3f349c970af362b47b45f27.
e139a49b5d8e9385b4d42ea1ec3850bc80d7f989 Chuck Tuffli 2026-04-28 18:49:22

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'

Commit & revert pair: build: provide a FORTIFY_SOURCE.<src file> override
build: provide a FORTIFY_SOURCE.<src file> override

For native files we can do more minimal fixes to avoid this large of a
hammer, but for third party files it may not be worth the effort to try
and patch them.  NetBSD has the original _FORTIFY_SOURCE implementation
that ours is based on, for instance, but tests sourced from there can't
do an __ssp_real(foo) without being certain that `foo` actually has a
fortified definition.

This change does always define _FORTIFY_SOURCE as a result, so gate it
on CFLAGS not already containing _FORTIFY_SOURCE definitions.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294881
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D56733
c46a0b590716144d772eeba83ca88d96ee12c2f1 Kyle Evans 2026-05-01 02:57:51

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'


Revert "build: provide a FORTIFY_SOURCE.<src file> override"

This reverts commit c46a0b590716144d772eeba83ca88d96ee12c2f1.  It broke
the build and I'm not awake yet.
8583bcb5b400c4e4d18a563cd749ee9b23750e0a Kyle Evans 2026-05-01 12:19:17

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'

Revert 00bee6fcd77f, which partially reverted libc++ commit aa7f377c965c
After base 966fb94cb357, this revert is no longer necessary: stdint.h
will unconditionally define macros such as `SIZE_MAX`, `UINT64_C`, and
others.

Submitted by:   Nikolas Klauser <nikolasklauser@berlin.de>
MFC after:      1 month
Reviewed by:    imp
Differential Revision: https://reviews.freebsd.org/D56746
19ff93c921a9d31770bcfc194c078e7a42a5f14f Dimitry Andric 2026-05-01 18:12:55

debug: Commit manually moved from "unknown" to "reverts".

Commit & revert pair: sys/vnode.h: remove stale comment
sys/vnode.h: remove stale comment

The source sweep is not going to happen.

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56611
f193f5a749b696e6c05fa2c47c24522b1624b1a7 Konstantin Belousov 2026-04-24 02:06:02

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'


Revert erronously pushed series of commits, which should not be.

Sorry for the mess.

Revert "sys/vnode.h: remove stale comment"
This reverts commit f193f5a749b696e6c05fa2c47c24522b1624b1a7.

Revert "vfs: convert VFS_OPs from macros to static inlines"
This reverts commit 48bf024f2ef5afeba3500bd92a04283370479edf.

Revert "vnode: add VIRF_KNOTE flag"
This reverts commit 7fe74a02764e5899b10cdc45ab34182b961d5d19.

Revert "vfs: convert vfs_op_thread_* macros to static inlines"
This reverts commit a61a696e78a967b149a6e39b1f98ada26217a6bb.

Revert "struct vnode: assign v_rl.resv1 as v_vrflag"
This reverts commit d990e8f0e9478194569ba28c366b0c0c0f414e7b.

Revert "sys/rangelock.h: explicitly enumerate padding at the end of the structure"
This reverts commit a770638ecf16515d8922111c3fdd417aba6c045e.

Revert "bufspace_wait(): only try to help bufdaemon if there is a chance to help"
This reverts commit 067cfac2e7bd9dc857fb6cc504c01b0249bcd1b7.

Revert "Add O_SYMLINK emulation"
This reverts commit f9458655e78f6532e962a13d28d6a6086b4156de.

Revert "libc: add freadlink(3)"
This reverts commit ae6a13deb8e33a52188643e09171207e1d7171e8.

Revert "Add O_SYMLINK emulation"
This reverts commit 2213820b6f4cd22bbfdc0f45741c3e7d17ae82c0.
9ca9a79ea67e8569c31ecc328e001b35908f491c Konstantin Belousov 2026-05-03 20:10:06

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'

Revert "virtio_net: Use bus_dma for command/ack buffers"
This reverts commit b5bad6df467cc95bea641afe674c55cd5b9f1510.

Revert until we can fix reported issues
c8167ebb742c36cb1fc32cc543afb4016b4fc174 Andrew Turner 2026-05-05 09:16:23

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'

Revert "virtio_net: Use bus_dma for rxq/txq buffers"
This reverts commit c16c95192f01237a876eb7bc336e3bbda9310171.

Revert until we can fix reported issues
dc00f118405e8638ceb13b288e14164a8a9ba669 Andrew Turner 2026-05-05 09:17:51

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'

Commit & revert pair: libusb: change callback register handler to int
libusb: change callback register handler to int

libusb upstream uses int for register handler. This causes some library
user (like pyusb) to assume that we have int in all implementations and
therefore provides a 4 byte storage only. This causes Segmentation
fault as we will right the pointer.

Reviewed by:    adrian
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D54211
ce9ced951a0b9d004a3b007d4ac6e9087a1301a2 ShengYi Hung 2025-12-13 15:12:11

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'


Revert "libusb: change callback register handler to int"

This reverts commit ce9ced951a0b9d004a3b007d4ac6e9087a1301a2.

We should handle backward compatibility before introducing this patch as
people may rely on old ABI.
bf2c6d23ad0988a8b5dccebccdbc6fda9482c6a2 ShengYi Hung 2026-05-05 16:46:07

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'

Revert "zstd: disable weak-symbol tracing hooks in the kernel"
This reverts commit de2ea5423cc63b62e7e42d11b667aa634109fc28 which is
no longer needed after 1dddb580f950 .

Tested by:      mmel
822366134658ee59922d7f3e37db7bbb8956aaaf Xin LI 2026-05-06 08:27:55

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'

Revert "Skip sys.netinet6.frag6.frag6_19.frag6_19 in CI"
Per [siva@'s comment on the PR][1], this testcase now passes cleanly in CI.

PR:     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=274941
MFC after:      1 week

[1]: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=274941#c6

This reverts commit 86e87c3bd1b377242aafe7e2222ae17ca0be96d9.
3348fa7a45fdf14a7af509e306229bd211444f1e Enji Cooper 2026-05-06 23:08:26

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'

Revert "mlx5e: Ensure rx timestamps are monotonically increasing"
This reverts commit ce33f96fcf2f2d0d49c406274bcc64df72fe530e.

It turns out that doing it this way did indeed prevent backwards
movement of timestamps, however it also lead to an ever increasing
error, eventually yielding timestamps hundreds or thousands of
seconds in the future.

Back this out until we can come up with a solution that prevents
backards timestamps and also avoids accumulating error.

Sponsored by: Netflix
23b263dfbf5ec24de2f6e1abc2a4eb04869b3e07 Andrew Gallatin 2026-05-12 12:55:54

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'

Revert "nvme: Only attach to storage NVMe devices"
This reverts commit 0a19464bf7afa35ce2aa7649152bc3a7629faa98. It's
incorrect for ahci attachments. Reverting to merge to stable/15
to merge to releng/15.1 for the release.

Sponsored by:           Netflix
fb4e7898a359a5044e6794c7fe8a698d29af1fd3 Warner Losh 2026-05-14 15:35:35

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'

Commit & revert pair: asmc: fix asmc_key_dump() page fault on T2 MMIO backend
asmc: fix asmc_key_dump() page fault on T2 MMIO backend

asmc_key_dump() used I/O port macros (ASMC_DATAPORT_WRITE/READ,
asmc_command()) unconditionally. On T2 Macs, sc_ioport is NULL
(MMIO backend is used instead), causing a page fault when
ASMC_DEBUG triggers asmc_dumpall() during attach.

Add an MMIO guard at the top of asmc_key_dump(): delegate to
asmc_key_dump_by_index() + asmc_key_read() for MMIO devices,
consistent with the rest of the T2 code paths.

Reviewed by:    adrian
Differential Revision:  https://reviews.freebsd.org/D56748
3abc07947c14f5c30e5328d56a2da8dbf8412ebf Abdelkader Boudih 2026-05-18 14:01:20

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'


Revert "asmc: fix asmc_key_dump() page fault on T2 MMIO backend"

This reverts commit 3abc07947c14f5c30e5328d56a2da8dbf8412ebf.

I'm not sure how this built locally for me but obviously failed
in CI; I'll go figure that out with the submitter and come back.
af5cdcd8b18c9a24cc317f1886dd3c32b253ef27 Adrian Chadd 2026-05-18 16:58:59

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-18 17:44:05+00:00.

This work is supported by Tarsnap Backup Inc.

Alternate version: 2026-04-01 (release)