FreeBSD git weekly: 2026-04-06 to 2026-04-12

Introduction

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

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

Table of contents and commits per category:

(2) Highlighted commits (these are copies, not in stats)
1 0.7% Userland programs
9 6.6% Documentation
24 17.5% Hardware support
21 15.3% Networking
15 10.9% System administration
7 5.1% Libraries
1 0.7% Filesystems
32 23.4% Kernel
10 7.3% Build system
0 0.0% Internal organizational stuff
6 4.4% Testing
2 1.5% Style, typos, and comments
8 5.8% Contrib code
1 0.7% Reverted commits
0 0.0% Unclassified commits
137 100% total
Technical notes about this page

debug: info about the automatic classification

num % num changed stage
1 0.7% 0 00-reverts
2 1.5% 0 01-style
16 11.7% 0 02-filenames_wildcards
5 3.6% 0 02b-filenames_wildcards2
64 46.7% 0 03-filenames_plain1
40 29.2% 0 04-filenames_plain2
3 2.2% 0 05-summary-prefix
6 4.4% 0 Manually-classified commits
0 0.0% 0 Unclassified commits

debug: more stats

num % stage
0 0.0% Misclassified commits
131 95.6% Classified commits, no corrections

debug: groups

0 0.0% num in revert
2 1.5% num in fixes
33 24.1% num in consecutive
35 25.5% 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: 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:'

Userland programs

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

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

Documentation

Man pages, release notes, etc.

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

Hardware support

Hardware drivers and architecture-specific code.

Commit group #0: 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/'

Networking

Network-related commands, library, and kernel.

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 #1: 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 #2: 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/'

System administration

Stuff in man section 8 (other than networking).

Commit group #3: 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 #4: 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/'

Libraries

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

Filesystems

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".

Kernel

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

Commit group #5: 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/'

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 #6: 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 #7: 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'

Build system

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 #8: 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'

Internal organizational stuff

-- no commits in this category this week --

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\/.*'

Style, typos, and comments

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

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'

Contrib code

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'

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'

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-04-13 18:39:31+00:00.

This work is supported by Tarsnap Backup Inc.

Alternate version: 2026-04-06 (release)