FreeBSD git weekly: 2026-03-30 to 2026-04-05

Introduction

This is a display of mostly-automatically-classified git commits from 2026-03-30 to 2026-04-05.

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:

(0) Highlighted commits (these are copies, not in stats)
0 0.0% Userland programs
0 0.0% Documentation
4 14.8% Hardware support
10 37.0% Networking
2 7.4% System administration
6 22.2% Libraries
0 0.0% Filesystems
2 7.4% Kernel
1 3.7% Build system
0 0.0% Internal organizational stuff
2 7.4% Testing
0 0.0% Style, typos, and comments
0 0.0% Contrib code
0 0.0% Reverted commits
0 0.0% Unclassified commits
27 100% total
Technical notes about this page

debug: info about the automatic classification

num % num changed stage
1 3.7% 0 02-filenames_wildcards
1 3.7% 0 02b-filenames_wildcards2
16 59.3% 0 03-filenames_plain1
8 29.6% 0 04-filenames_plain2
1 3.7% 0 Manually-classified commits
0 0.0% 0 Unclassified commits

debug: more stats

num % stage
0 0.0% Misclassified commits
26 96.3% Classified commits, no corrections

debug: groups

0 0.0% num in revert
0 0.0% num in fixes
0 0.0% num in consecutive
0 0.0% 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.

-- no commits in this category this week --

Userland programs

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

-- no commits in this category this week --

Documentation

Man pages, release notes, etc.

-- no commits in this category this week --

Hardware support

Hardware drivers and architecture-specific code.

vmm: Add missing AVX instructions for AVX512 in cpuid stdext
Reported by:    Tom <freebsd@fizz.buzz>
Reviewed by:    markj
Tested by:      Tom <freebsd@fizz.buzz>
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56021
e6eba5076929d0b193c9c94b2658c7e8f5da0669 ShengYi Hung 2026-03-22 02:26:56

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

nvme_sim: Fix name in module version metadata
MFC after:      1 week
Fixes:          https://cgit.freebsd.org/src/commit/?id=1e39b5d4833e ("nvme_sim: Attach as a child of nvme")
Sponsored by:   The FreeBSD Foundation
e220af9cee74082841db9e80cbb73f570f3a570f Olivier Certner 2026-03-30 09:17:04

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

acpi_apm: Narrow scope of ACPI_LOCK
This lock doesn't need to be held across seldrain/knlist_destroy.  It
is also redundant (and a bug) to hold it across knlist_add and
knlist_remove since it is the mutex for the knlist.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293901
Reported by:    Jiaming Zhang <r772577952@gmail.com>
Reviewed by:    markj
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D55994
cc2715cf1f864345ab175db691d4e152d5fb84af John Baldwin 2026-03-30 13:38:54

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

snd_uaudio: Retire sndcard_func usage
This is effectively a no-op, as it does not make use of the
sndcard_func->varinfo field, so eventually ua_probe() always succeeds.

Also change ua_probe()'s value to 0. There is no need to return
BUS_PROBE_DEFAULT, because snd_uaudio() attaches the sound(4)'s children
with bus_attach_children().

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D56160
0efd33382504d3172734fa21325fcabef9c7f063 Christos Margiolis 2026-03-30 14:13:16

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

Networking

Network-related commands, library, and kernel.

ifnet: Fix races in if_vmove_reclaim()
The thread running if_vmove_reclaim() may race with other threads those
running if_detach(), if_vmove_loan() or if_vmove_reclaim(). In case the
current thread loses race, two issues arise,

 1. It is unstable and unsafe to access ifp->if_vnet,
 2. The interface is removed from "active" list, hence if_unlink_ifnet()
    can fail.

For the first case, check against source prison's vnet instead, given
the interface is obtained from that vnet.

For the second one, return ENODEV to indicate the interface was on the
list but the current thread loses race, to distinguish from ENXIO, which
means the interface or child prison is not found. This is the same with
if_vmove_loan().

Reviewed by:    kp, pouria
Fixes:          https://cgit.freebsd.org/src/commit/?id=a779388f8bb3 if: Protect V_ifnet in vnet_if_return()
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D55997
ee9456ce37539da5b651945eea18502f290eb133 Zhenlei Huang 2026-03-30 16:00:01

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

ip_mroute: Start moving globals into a structure
I would like to support per-FIB multicast routing tables, such that one
can run a routing daemon per-FIB, with each daemon oblivious to the
existence of others.  Currently the multicast routing code is completely
unaware of FIBs.

To that end, start collecting various global variables in ip_mroute.c
into a per-VNET struct mfctable.  In a future patch this will be
expanded into an array of mfctable structures, one per FIB.  For now,
all of the state is collected into V_mfctables[0].

Each mfctable contains, among other things:
- a pointer to the routing socket, if routing is enabled,
- a hash table of routing cache entries,
- an table of network interfaces participating in the routing
  configuration

This change has no functional effect, it is just factoring out these
global variables to make the subsequent patches simpler.

MFC after:      2 weeks
Sponsored by:   Stormshield
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D55237
d50d0c002b982f193e36ede9fa2669d5dcf8467b Mark Johnston 2026-03-30 13:27:52

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

ip6_mroute: Start putting global variables into a structure
As in the IPv4 version of this change, I added a struct mf6ctable
structure which holds all global routing table state, soon to become
per-FIB state.

Note that much of the v6 multicast routing code was not VNETified; this
change fixes that too.

MFC after:      2 weeks
Sponsored by:   Stormshield
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D55238
a223d6c489c7ea9a384f3d2bbda1b05b00d4502d Mark Johnston 2026-03-30 13:29:01

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

net/route: Add an eventhandler for rt_numfibs changes
The multicast routing code will start implementing per-FIB routing
tables.  As a part of this, it needs to be notified when the number of
FIBs changes, so that it can expand its tables.

Add an eventhandler for this purpose.

MFC after:      2 weeks
Sponsored by:   Stormshield
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D55239
81dbacbb7d71a53eef99ce73f7e589a165c3e1d6 Mark Johnston 2026-03-30 13:30:19

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

ip(6)_mroute: Grow the routing tables when the number of FIBs changes
Use the new rtnumfibs_change event to expand the mfctable array when the
number of FIBs increases.

MFC after:      2 weeks
Sponsored by:   Stormshield
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D55240
97a4bc9a0da7cd63c660ce59a9dd7c87efe1f218 Mark Johnston 2026-03-30 13:30:38

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

ip_mroute: FIBify
Modify the control plane (ioctl and socket option handlers) to use the
routing socket FIB to index into the mfctable array.  Modify the
forwarding plane to use the mbuf's FIB to determine which routing table
to use.

MFC after:      2 weeks
Sponsored by:   Stormshield
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D55241
4c486fe402673c49443293cfb70ad4da61d39916 Mark Johnston 2026-03-30 13:31:29

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

ip6_mroute: FIBify
Modify the control plane (ioctl and socket option handlers) to use the
routing socket FIB to index into the mfctable array.  Modify the
forwarding plane to use the mbuf's FIB to determine which routing table
to use.

MFC after:      2 weeks
Sponsored by:   Stormshield
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D55242
0bb9c2b665d90934ae16eee152b6b4f4f4be0dd5 Mark Johnston 2026-03-30 13:31:55

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

ip6_mroute: Make ip6_mroute.h more self-contained
MFC after:    2 weeks
Sponsored by:   Stormshield
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D55243
d4339cebbe8e0b26f92a74eb5d4d9a20403c2ad1 Mark Johnston 2026-03-30 13:32:13

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

ip6_mroute: Pass the multicast interface number directly to del_m6if()
There's no need to pass a pointer to the interface number.  No
functional change intended.

MFC after:      2 weeks
Sponsored by:   Stormshield
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D55245
82272cbf56aa5646611c6f1049501cc345fcf6ec Mark Johnston 2026-03-30 13:33:11

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

ip6_mroute: Handle interface detach events
When an interface goes away we need to make sure the v6 multicast
routing tables don't carry any dangling references to the ifnet.  The v4
code handles this already.  Copy the approach there and use an
eventhandler to purge the corresponding MIF, if one exists, and further
go through all routes in the FIB and remove references to the interface.

MFC after:      2 weeks
Sponsored by:   Stormshield
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D55246
a1c042a9641c9df08010e87d0928703849ff9853 Mark Johnston 2026-03-30 13:33:32

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

System administration

Stuff in man section 8 (other than networking).

pkgbase: Move all of Kyua into the kyua package
Some Kyua directories were improperly tagged as belonging to the tests
package.  Move them to the kyua package, which contains all of the
files found in these directories.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294129
MFC after:      1 week
Reviewed by:    ivy, emaste
Differential Revision:  https://reviews.freebsd.org/D56159
40e8afadc393a102f4199228ae2047d3e6c71251 Dag-Erling Smørgrav 2026-03-30 14:03:18

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

rtld: check for overflow in parse_integer()
Reviewed by:  dim, emaste, markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56151
7cfffe25da3fbc2db4bcf073ff2d240f84233973 Konstantin Belousov 2026-03-29 22:45:13

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

Libraries

msun/x86: convert rest of the extern inline fenv functions to proper linkage
namely
        fegetexceptflag(3)
        fetestexcept(3)
        fesetround(3)
        fegetround(3)
        fesetenv(3)
Same as it was done in f39754d51b7dc65c4cf9f for feclearexcept(3).

PR:     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=277958
Reviewed by:    dim
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56139
5bc64b7d417dd1f105755e093f8e807bcdc2a666 Konstantin Belousov 2026-03-28 22:36:55

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

msun/aarch64: convert fenv functions to proper linkage
namely
        fegetexceptflag(3)
        fesetexceptflag(3)
        feraiseexcept(3)
        fetestexcept(3)
        fegetround(3)
        fesetround(3)
        fegetenv(3)
        feholdexcept(3)
        fesetenv(3)
        feupdateenv(3)
        feenableexcept(3)
        fedisableexcept(3)
        fegetexcept(3)

PR:     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=277958
Reviewed by:    dim
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56139
3a01e1e1a50cb9a9594aac2148dc920a6b295428 Konstantin Belousov 2026-03-28 23:13:44

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

msun/riscv: convert fenv functions to proper linkage
namely
        fegetexceptflag(3)
        fesetexceptflag(3)
        feraiseexcept(3)
        fetestexcept(3)
        fegetround(3)
        fesetround(3)
        fegetenv(3)
        feholdexcept(3)
        fesetenv(3)
        feupdateenv(3)
        feenableexcept(3)
        fedisableexcept(3)
        fegetexcept(3)

PR:     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=277958
Reviewed by:    dim
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56139
6b89f5360f8441ffd1a3e8db7375ed3ccdba7d2a Konstantin Belousov 2026-03-29 01:27:30

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

msun/powerpc: convert fenv functions to proper linkage
namely
        fegetexceptflag(3)
        fesetexceptflag(3)
        feraiseexcept(3)
        fetestexcept(3)
        fegetround(3)
        fesetround(3)
        fegetenv(3)
        feholdexcept(3)
        fesetenv(3)
        feupdateenv(3)
        feenableexcept(3)
        fedisableexcept(3)
        fegetexcept(3)

PR:     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=277958
Reviewed by:    dim
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56139
e4505a58a77f6f4f2df60d26ea99710af6c6b3cf Konstantin Belousov 2026-03-29 02:06:02

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

msun/arm: convert fenv functions to proper linkage
namely
        fegetexceptflag(3)
        fesetexceptflag(3)
        feraiseexcept(3)
        fetestexcept(3)
        fegetround(3)
        fesetround(3)
        fegetenv(3)
        feholdexcept(3)
        fesetenv(3)
        feupdateenv(3)
        feenableexcept(3)
        fedisableexcept(3)
        fegetexcept(3)

PR:     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=277958
Reviewed by:    dim
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56139
70674434e2424d61262322702d0415e54d8cc1a2 Konstantin Belousov 2026-03-29 03:10:18

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

msun: remove requirement to have C99 inline semantic
The 'extern inline' usage is removed.

PR:     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=277958
Reviewed by:    dim
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56139
d15733065c4221dcd5bb3622d225760f271f6fc9 Konstantin Belousov 2026-03-29 01:30:03

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

Filesystems

-- no commits in this category this week --

Kernel

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

vfs: Simplify vfs_write_resume()/vn_start_write_refed()
The call to vn_start_write_refed() from vfs_write_resume() with
'mplocked' set to 'true' exactly boils down to doing an increment of
'mnt_writeopcount', albeit with lots of unnecessary verifications.

Replace it with an inline incrementation.  As the original call was the
last with 'mplocked' with 'true', remove the 'mplocked' parameter from
vfs_write_resume(), simplifying its code accordingly ('mplocked' always
false).

While here, in vfs_write_resume(), initialize 'error' out of the mount
lock.

Reviewed by:    kib
MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56108
4deb934c1a1051d7ef41e9309d066742722ce180 Olivier Certner 2026-03-27 12:43:24

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

stat(2): Send to sticky(7) in the S_ISVTX description
Approved by: ziaee
Differential Revision: https://reviews.freebsd.org/D56015
0f147784de1037a662b0bd0aaa5f7f7bd7876e37 Gleb Popov 2026-03-21 11:11:15

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

Build system

LinuxKPI wlan drivers: update makefiles to not use WITH_
Up to now the LinuxKPI wlan drivers were using local variables starting
with a WITH_ prefix in their Makefiles.
That is likely to collide with other mechanisms like WITH_ and WITHOUT_
from src.conf.
Adjust the local variables to use a driver name prefix for now to control
what is built and what is not.
These variables are mainly for the time of development so we can
turn off/on a feature or bus attachment while working on it.  Otherwise
they are there for documentation purposes.  The only reason one would
change them locally would be if someone was to build a very custom
image and not want certain bits (e.g., USB support) being compiled into
the modules.

While here, try to harmonize some parts of the Makefiles.

Suggested by:   imp
Discussed with: imp
Reviewed by:    imp
Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Differential Revision: https://reviews.freebsd.org/D55977
e8166d7f378bb449315aff535909c153f3e71daf Bjoern A. Zeeb 2026-03-19 23:02:05

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

Internal organizational stuff

-- no commits in this category this week --

Testing

pkgbase: Move all of ATF into the atf package
Parts of ATF (including the licence and some of the documentation) were
for some reason part of the tests package instead of the atf package.
Moving them to where they logically belong poses no problem since tests
already depends on atf.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294129
MFC after:      1 week
Reviewed by:    ivy
Differential Revision:  https://reviews.freebsd.org/D56158
0a6dbf51d8ea112a1d164be260004ec795b4368d Dag-Erling Smørgrav 2026-03-30 14:03:03

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

tests: Add some simple regression tests for ip_mroute
These use atf_python to create a number of hosts linked to a router.
The router runs pimd (for IPv4) or ip6_mrouter (simplistic IPv6
multicast router that I wrote since I couldn't find one in the ports
tree).  The vnet_host*_handler() methods are invoked in different VNET
jails connected to the router; they register the connected epair with a
multicast group and verify that they can send messages to each other.

The tests are synchronized by sending messages over a unix domain
socket.  The flow is something like:
1) test startup_method() is called, the unix socket is created,
2) the superclass creates jails and links them together using the
   declared topology,
3) we wait for all child jails to start up and send a message on the
   unix socket indicating that they are ready
4) we start the routing daemon in the main jail,
5) the test actually starts; starttest() kicks off the
   vnet_host*_handlers(), which mostly just verify that they can send
   messages to each other using multicast packets
6) once they finish running, they signal their completion, and
   waittest() returns once they're all done

There are two tests, repeated for v4 and v6.  One just exchanges packets
between two hosts, and the other has four hosts divided across two FIBs.

MFC after:      2 weeks
Sponsored by:   Stormshield
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D55244
09e702ad40af0067017613070b42d72cbc2bec3a Mark Johnston 2026-03-30 13:32:35

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.

-- no commits in this category this week --

Contrib code

-- no commits in this category this week --

Reverted commits

-- no commits in this category this week --

Unclassified commits

Not classified automatically, and waiting for manual attention.

-- no commits in this category this week --

Technical notes

Dates:

Automatic grouping:

Automatic categories:

Source code:


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

This work is supported by Tarsnap Backup Inc.

Alternate version: 2026-03-30 (release)