FreeBSD git weekly: 2025-12-22 to 2025-12-28

Introduction

This is a display of mostly-automatically-classified git commits from 2025-12-22 to 2025-12-28.

Table of contents and commits per category:

(0) Highlighted commits (these are copies, not in stats)
3 3.7% Userland programs
16 19.8% Documentation
11 13.6% Hardware support
8 9.9% Networking
8 9.9% System administration
4 4.9% Libraries
5 6.2% Filesystems
12 14.8% Kernel
7 8.6% Build system
0 0.0% Internal organizational stuff
2 2.5% Testing
0 0.0% Style, typos, and comments
5 6.2% Contrib code
0 0.0% Reverted commits
0 0.0% Unclassified commits
81 100% total
Technical notes about this page

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

Resurrect standalone command
While command(1) is now classified by POSIX as an intrinsic utility and
no longer required to exist as a standalone program, it turns out that
we still have a use for it (cf. env(1)), so resurrect it.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=291879
Fixes:          https://cgit.freebsd.org/src/commit/?id=4100bd6caa66 ("usr.bin: Remove intrinsic utilities")
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D54341
745c6c0431d01b4fc3247f4eac08a2181d71e008 Dag-Erling Smørgrav 2025-12-23 10:36:39
m4: avoid warnings about too-long initializer strings
Mark `digits` as `__non_string`, to avoid warnings from clang 21 similar
to:

    usr.bin/m4/misc.c:123:27: error: initializer-string for character array is too long, array size is 36 but initializer has size 37 (including the null terminating character); did you mean to use the 'nonstring' attribute? [-Werror,-Wunterminated-string-initialization]
      123 |         static char digits[36] = "0123456789abcdefghijklmnopqrstuvwxyz";
          |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

MFC after:      3 days
a3394b6a23fb66ccb7e588129d2465ef8ea26d30 Dimitry Andric 2025-12-26 00:30:25
sh: avoid warnings about too-long initializer strings
Mark `optletter` and `t_op::op_text` as `__non_string`, to avoid
warnings from clang 21 similar to:

    bin/sh/options.h:77:36: error: initializer-string for character array is too long, array size is 19 but initializer has size 20 (including the null terminating character); did you mean to use the 'nonstring' attribute? [-Werror,-Wunterminated-string-initialization]
       77 | const char optletter[NSHORTOPTS] = "efIimnsxvVECabupTPh";
          |                                    ^~~~~~~~~~~~~~~~~~~~~
    bin/test/test.c:153:3: error: initializer-string for character array is too long, array size is 2 but initializer has size 3 (including the null terminating character); did you mean to use the 'nonstring' attribute? [-Werror,-Wunterminated-string-initialization]
      153 |         {"==",  STREQ},
          |          ^~~~

MFC after:      3 days
Reviewed by:    jilles
Differential Revision: https://reviews.freebsd.org/D54362
e6546807f4c1a8a6a6fa53fceab7b8c80e3ed802 Dimitry Andric 2025-12-25 20:13:48

Documentation

Man pages, release notes, etc.

UPDATING: Add an entry for commit 9f49f436a9ec
60eb371c2b9aab8cfe3196dc960cc5db1f0ec584 Rick Macklem 2025-12-22 23:28:59
RELNOTES: Add an entry for 8e3fd450cc53 and friends
b94e4c7037b0face3206cf313fd8966d6aa1eaae Rick Macklem 2025-12-23 02:51:41
camcontrol.8: Descriptions before examples
This page has a lot of examples, so having them in the previous order
can be confusing. Rewrite to the normal order where the descriptions
come before the command, followed by a colon, which is still clear even
jumping to the middle of the section.

PR:                     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=291759
MFC after:              3 days
Reviewed by:            imp
Differential Revision:  https://reviews.freebsd.org/D54285
fbc321b9cdceecd3c97742868da5d500423cf484 Alexander Ziaee 2025-12-23 13:36:49
cdce.4: Minor polish
+ Tag spdx license identifier + Fix "e.g.,"s to quiet linter
+ Remove useless Nd quoting     + Put example in EXAMPLES

MFC after:      3 days
03752041e41b57af622f3649929789575a48258e Alexander Ziaee 2025-12-23 13:52:13
Commit group #0: udl.4: Consolidate HARDWARE and add HISTORY
udl.4: Consolidate HARDWARE and add HISTORY

Some of the information needed for the HARDWARE section was the entire
DESCRIPTION section, so merge the two. While here, add the HISTORY of
this driver, add "driver" to the document description matching other
drivers, and tag the SPDX license identifier for mechanical parsing.

MFC after:      3 days
97fa62708f67ce189bde22c98d9102da026b448c Alexander Ziaee 2025-12-23 14:35:37

udl.4: Tweak HARDWARE for hardware release note

Fixes:  https://cgit.freebsd.org/src/commit/?id=97fa62708f67 (udl.4: Consolidate HARDWARE and add HISTORY)
3c83b5d340f641259ea24e8af623e340eb8a21cc Alexander Ziaee 2025-12-23 14:56:09
bhyve.8: Fix consistency and terms in manpage
Correct inconsistent spelling of terms and duplication.

Reviewed by:    ziaee
MFC after:      3 days
Differential Revision:  https://reviews.freebsd.org/D54332
5819f8b285fc55a75e5dea56ffe73b376525150c Michael Osipov 2025-12-21 16:41:41
nfsd.8: Add a short paragraph w.r.t. NFSv3 vs NFSv4 setup
The nfsd can be configured to support NFSv3, NFSv4 or both
of them.

This patch adds a short paragraph to nfsd.8 to explain this.

This is a content change.

Reviewed by:    kib, zaiee (manpages)
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D54279
4f184fd35d81bbd85284d47d2a65aeece67e87d4 Rick Macklem 2025-12-24 16:29:29
bhyve_config.5: Fix consistency and terms in manpage
Correct inconsistent spelling of terms and duplication.

Reviewed by:    ziaee
MFC after:      3 days
Differential Revision:  https://reviews.freebsd.org/D54370
66604463e737f4754ae6268171031ceefc226837 Michael Osipov 2025-12-26 12:12:03
bhyve: Document that MAC address has to be unicast
bhyve accepts any MAC address even foreign as long it is a unicast one.

Reviewed by:    ziaee
MFC after:      3 days
Differential Revision:  https://reviews.freebsd.org/D54372
e1bfd541c7cdee1e184cacb2ea3bbebb3a500dfb Michael Osipov 2025-12-26 13:40:37
linprocfs.4: Improve docs around pid/self entries
Mark <pid> as a placeholder and document that self is a symlink to a directory.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=283080
Reviewed by:    ziaee
MFC after:      3 days
Differential Revision:  https://reviews.freebsd.org/D54358
0d31189cbce4de142a43b65037beb7bf8c09cf26 Michael Osipov 2025-12-24 18:12:25
vt.4: Remove Xr to nonexistent vidcontrol(8)
f22cffe43343d9d48c731952d94976c5deb9659e Ed Maste 2025-12-28 00:52:17
locking.9: Tweak the table column width to fit 80 characters
While here, add some white spaces to improve the readability of source
code.

Reviewed by:    ziaee, #manpages
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D54121
176075e661fc657845d788ab3451e690c4e9bac6 Zhenlei Huang 2025-12-28 15:57:51
ipfw.8: fix documentation bug for setmark
A mark set with "setmark" keyword is intended to be "sticky"
and documented as such but in fact it is not yet,
as current implementation lacks "sticky" feature
and its implementation will be not MFC'd, most probably.

Correct the manual page until the implementation improved.

MFC after:      3 days
Discussed with: Boris Lytochkin <lytboris@gmail.com> (author)
a7b8a5d37bcb0009297962137bfb6c6570e5af12 Eugene Grosbein 2025-12-28 17:05:22
ipfw.8: fix misprint after previous change
rulese -> ruleset

MFC after:      3 days
X-MFC-with:     a7b8a5d37bcb0009297962137bfb6c6570e5af12
9fdf49e8a501047b61a615ab1b4b133159ad76e1 Eugene Grosbein 2025-12-28 17:19:35
ipfw.8: document how to delete nat configuration instance
MFC after:      3 days
e51047118cb1d15abe8077a5b47b8063fa364ad9 Eugene Grosbein 2025-12-28 17:47:08

Hardware support

Hardware drivers and architecture-specific code.

Commit group #1: Quirk Realtek RTL8153 to config#1 so if_cdce claims it. Works much better.
Quirk Realtek RTL8153 to config#1 so if_cdce claims it.  Works much better.
1b1fb628a1aff05b661ebb063f1795aa24ab54c6 Poul-Henning Kamp 2025-12-22 21:23:45

cdce.4: Add RTL8153 to HARDWARE

Fixes:  https://cgit.freebsd.org/src/commit/?id=1b1fb628a1af (Quirk Realtek RTL8153 to config#1)
f7245a27e86c4c0012c8fb32c11bc4fdfbe64b62 Alexander Ziaee 2025-12-23 13:55:57
Hyper-V: hn: just call vf's ioctl when changing mtu
When changing mtu, if a vf is attached to the netvsc interface, just
calling its ioctl to change vf's mtu is good enough.

Tested by:      whu
MFC after:      3 days
Sponsored by:   Microsoft
44f656641c238cb3db31026f3e3bef36cd5231a8 Wei Hu 2025-12-23 04:23:39
mana: support jumbo packet size
Remove the restriction of up to 4k packet size. Now the driver
supports up to MJUM16BYTES size packets as long as hardware
supporting it.

Tested on VMs in Azure.

Tested by:      whu
MFC after:      1 week
Sponsored by:   Microsoft
d0a2bd2765b365c4be9b17c29306f848953e55a5 Wei Hu 2025-12-23 07:00:38
Specialize the REALTEK RTL8153 quirk to just rev=0x31fd
a7e0f6a3dc5f3c4d11066a4b6529bc8cb868694a Poul-Henning Kamp 2025-12-23 17:04:10
acpi: Free ivars in bus_child_deleted method
Reviewed by:  imp
Sponsored by:   Netflix
Differential Revision:  https://reviews.freebsd.org/D54309
5b39245ab6f37450fd025127b4fc76b5e5ba135e John Baldwin 2025-12-26 15:36:12
acpi_apei: Remove the hest member from the softc
This is only used during attach and freed after use, so just use a
local variable in the attach routine instead to avoid leaving a
dangling pointer around in the softc.

Reviewed by:    imp
Sponsored by:   Netflix
Differential Revision:  https://reviews.freebsd.org/D54310
88f8e3c5ab97025587d7df761c8ae72e2db6c1d3 John Baldwin 2025-12-26 15:36:24
Commit group #2: acpi
acpi: Reject duplicate handlers for ioctl commands

Reviewed by:    imp
Sponsored by:   Netflix
Differential Revision:  https://reviews.freebsd.org/D54311
4eb560faa725771e536a850a9467fbb592ab3c1b John Baldwin 2025-12-26 15:36:38

acpi: Use M_WAITOK in acpi_register_ioctl

This function is only called from device attach routines which can
sleep.

Reviewed by:    imp
Sponsored by:   Netflix
Differential Revision:  https://reviews.freebsd.org/D54312
425b41f81634fd5a8f7d038191560040d1d4d32c John Baldwin 2025-12-26 15:36:48

acpi: Statically initialize acpi_ioctl_hooks

Reviewed by:    imp
Sponsored by:   Netflix
Differential Revision:  https://reviews.freebsd.org/D54313
11757b1487e3e8ca0479dff5da0815b42aea3fe0 John Baldwin 2025-12-26 15:37:10
ocs_fc: Use __printflike() instead of format(printf)
The __printflike macro sets the format to freebsd_kprintf which recent
clang understands and warns about. Fixes the following error:
`passing 'printf' format string where 'freebsd_kprintf' format string is expected [-Werror,-Wformat]`

MFC after:      1 week
3c0ea1b629764c49611e3e3adfa0c44f9afa3558 Alex Richardson 2025-09-16 04:58:36

Networking

Network-related commands, library, and kernel.

net: on interface detach purge multicast addresses after protocols
We first want to give a chance to all owners of multicast addresses to
free them and only then run through the list of remaining ones.  It might
be that no addresses remain there normally, but this needs to be analyzed
deeper.  For now restore the sequence that was before 0d469d23715d to fix
a possible use after free.

Fixes:  https://cgit.freebsd.org/src/commit/?id=0d469d23715d690b863787ebfa51529e1f6a9092
77939d64f23da4b0b599fad6edd967ffd1d17217 Gleb Smirnoff 2025-12-21 18:56:00
pf: make eventhandler_tag's static
No functional change.
e3d6cf8c3f6c9203fbb60a16fde18cc751a80de1 Gleb Smirnoff 2025-12-21 19:49:59
ng_ether: refactor to use interface EVENTHANDLER(9)s
0bd0c3295ac09f759f2816b73cbd2d950e3bef7e Gleb Smirnoff 2025-12-21 22:13:58
if_tuntap: use ifnet_rename_event instead of ifnet_arrival_event
b275907fa338b1ed6e9b5b5dd1b5069c36605285 Gleb Smirnoff 2025-12-21 23:57:12
ipfw: fix bpf tap point lookup
The trick I blindly used works for pointers to structs, but not for rule
numbers that can differ only by 1.

PR:     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=291854
Fixes:  https://cgit.freebsd.org/src/commit/?id=3daae1ac1d82ecdcd855101bab5206e914b12350
129e15d4994311958db59a1718d4ff42d440ce2b Gleb Smirnoff 2025-12-22 01:18:27
sys/netipsec: ensure sah stability during input callback processing
Citing ae: this fixes some rare panics, that are reported in
derived projects: `panic: esp_input_cb: Unexpected address family'.

Reported by:    ae
Tested by:      ae, Daniel Dubnikov <ddaniel@nvidia.com>
Reviewed by:    ae, Ariel Ehrenberg <aehrenberg@nvidia.com> (previous version)
Sponsored by:   NVidia networking
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D54325
183513d15f2290a42b542753aaffe9de2152575b Konstantin Belousov 2025-12-09 08:55:11
pf: Fix state handling when ICMP packets are diverted
Commit 66f2f1c83247 ("pf: handle divert packets") missed a case that I
happened to hit while testing something.

Add a regression test for the ICMP case, based on the existing test.
Fix a buglet in the existing test (missing whitespace after "[").

Reviewed by:    kp
Sponsored by:   OPNsense
Sponsored by:   Klara, Inc.
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D54321
15178d8ed2904d5c4fa31a1531e60dcb1e0f9209 Mark Johnston 2025-12-20 18:18:50
pf: don't reject route-to'd too-large packets
If we're sending a packet via pf_route()/pf_route6() we check for packet
size and potentially generate ICMP(6) packet too big messages. If we do,
don't consider this a rejected packet. That is, return PF_PASS and set
the mbuf to NULL rather than returning PF_DROP.

This matters for locally generated packets, because with PF_DROP we
can end up returning EACCES to userspace, causing the connection to
terminate. Instead, with PF_PASS and a NULL mbuf this is translated to
PFIL_CONSUMED, which does not return an error to userspace.

MFC after:      2 weeks
Sponsored by:   Rubicon Communications, LLC ("Netgate")
2e7699355f08258365fb5f65d11ac297e20f78de Kristof Provost 2025-12-26 09:58:59

System administration

Stuff in man section 8 (other than networking).

fsck_msdosfs: avoid warnings about too-long initializer strings
Mark `dot_name` and `dotdot_name` as as `__non_string`, to avoid
warnings from clang 21 similar to:

    sbin/fsck_msdosfs/dir.c:466:39: error: initializer-string for character array is too long, array size is 11 but initializer has size 12 (including the null terminating character); did you mean to use the 'nonstring' attribute? [-Werror,-Wunterminated-string-initialization]
      466 | static const u_char dot_name[11]    = ".          ";
          |                                       ^~~~~~~~~~~~~
    sbin/fsck_msdosfs/dir.c:467:39: error: initializer-string for character array is too long, array size is 11 but initializer has size 12 (including the null terminating character); did you mean to use the 'nonstring' attribute? [-Werror,-Wunterminated-string-initialization]
      467 | static const u_char dotdot_name[11] = "..         ";
          |                                       ^~~~~~~~~~~~~

MFC after:      3 days
98c3d868fb5a7da7356c58e8c51423975bbd078b Dimitry Andric 2025-12-25 20:28:14
makefs: avoid warnings about too-long initializer strings
Mark `direntry::deName` as `__non_string`, to avoid warnings from clang
21 similar to:

  usr.sbin/makefs/msdos/msdosfs_vnops.c:512:4: error: initializer-string for character array is too long, array size is 11 but initializer has size 12 (including the null terminating character); did you mean to use the 'nonstring' attribute? [-Werror,-Wunterminated-string-initialization]
    512 |         {       ".          ",                          /* the . entry */
        |                 ^~~~~~~~~~~~~
  usr.sbin/makefs/msdos/msdosfs_vnops.c:522:4: error: initializer-string for character array is too long, array size is 11 but initializer has size 12 (including the null terminating character); did you mean to use the 'nonstring' attribute? [-Werror,-Wunterminated-string-initialization]
    522 |         {       "..         ",                          /* the .. entry */
        |                 ^~~~~~~~~~~~~

MFC after:      3 days
ba0a11512237681fc621670023d56195cb8c82ad Dimitry Andric 2025-12-26 00:22:03
snmp_pf: remove errno usage after pfctl_get_status_h change
pfctl_get_status_h() does not set errno, so don't log it.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=291936
Reviewed by:    kp
eaa424e3bde88f005c91f87a799c1905f1a5ebf5 Simon Wollwage 2025-12-26 10:47:26
bsnmpd: avoid warnings about too-long initializer strings
Mark `UTC` as `__non_string`, to avoid a warning from clang 21 similar
to:

    usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptc.c:339:29: error: initializer-string for character array is too long, array size is 3 but initializer has size 4 (including the null terminating character); did you mean to use the 'nonstring' attribute? [-Werror,-Wunterminated-string-initialization]
    --- all_subdir_usr.sbin ---
      339 |         static const char UTC[3] = "UTC";
          |                                    ^~~~~

MFC after:      3 days
3054e22e4524df24908d7e9379681c1ccf829b93 Dimitry Andric 2025-12-26 13:27:08
pmcannotate: avoid accessing uninitialized local variables
Initialize `tbfl` and `tofl` to NULL, and check whether they are
non-NULL before calling remove(3) on them, to avoid warnings from clang
21 similar to:

    usr.sbin/pmcannotate/pmcannotate.c:746:3: error: variable 'tbfl' is uninitialized when used here [-Werror,-Wuninitialized]
      746 |                 FATAL(exec, "%s: Impossible to locate the binary file\n",
          |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      747 |                     exec);
          |                     ~~~~~
    usr.sbin/pmcannotate/pmcannotate.c:57:9: note: expanded from macro 'FATAL'
       57 |         remove(tbfl);                                                   \
          |                ^~~~
    usr.sbin/pmcannotate/pmcannotate.c:695:12: note: initialize the variable 'tbfl' to silence this warning
      695 |         char *tbfl, *tofl, *tmpdir;
          |                   ^
          |                    = NULL
    usr.sbin/pmcannotate/pmcannotate.c:746:3: error: variable 'tofl' is uninitialized when used here [-Werror,-Wuninitialized]
      746 |                 FATAL(exec, "%s: Impossible to locate the binary file\n",
          |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      747 |                     exec);
          |                     ~~~~~
    usr.sbin/pmcannotate/pmcannotate.c:58:9: note: expanded from macro 'FATAL'
       58 |         remove(tofl);                                                   \
          |                ^~~~
    usr.sbin/pmcannotate/pmcannotate.c:695:19: note: initialize the variable 'tofl' to silence this warning
      695 |         char *tbfl, *tofl, *tmpdir;
          |                          ^
          |                           = NULL

MFC after:      3 days
cd880010c49a5d4ec529f4204d4e88cd27727255 Dimitry Andric 2025-12-26 13:37:47
acpidump: Extend the decoding of entries in the EINJ and ERST tables
- Decode the Action, Instruction, and Flags fields for these tables

- Omit the Flags field if it is zero

- Omit the Value field for instrunctions that do not use it

Reviewed by:    imp
Sponsored by:   Netflix
Differential Revision:  https://reviews.freebsd.org/D54308
6b2e4da4430029b16591c64aaef78bcd1644cedc John Baldwin 2025-12-26 15:35:59
loader: Fix powerpc64le by working around slof bug in qemu/slof
Fix powerpc 64 little endian booting by adding some padding. Due to

https://gitlab.com/slof/slof/-/blob/master/lib/libelf/elf32.c?ref_type=heads#L114
https://gitlab.com/slof/slof/-/blob/master/lib/libelf/elf32.c?ref_type=heads#L150

using <= instead of <, slof used to loop over the phdrs. It overruns by
1 and so on little endian it swizzles the first 32 bytes of .text. Work
around this by adding 32 bytes of padding after the headers. We should
fix this in slof, but it's in the just released QEMU 10.2, so we have to
pad things here for now.

Now powerpc64le + qemu works.

MFC After: 3 days (maybe EN too)
Reviewed by: adrian, jhibbits
Sponsored by: Netflix
424089a0fc82ee9db8659b8c1099bbbde8999473 Warner Losh 2025-12-28 05:27:03
loader: Use C99 initializations for file_format
For greppability, use C99 initializers for the struct file_format.

Sponsored by:           Netflix
8e8d7d489f7ba169b78b21fb84f8b4666fa871b8 Warner Losh 2025-12-28 05:37:56

Libraries

Commit group #3: Reduce number of external symbols in libllvm, libclang and liblldb
Reduce number of external symbols in libllvm, libclang and liblldb

In commit 2e47f35be5dc libllvm, libclang and liblldb were converted into
private shared libraries. This allowed clang, lld, lldb, and other llvm
tools to be linked against these shared libraries, which makes them
smaller and avoids duplication.

However, upstream builds the shared libraries using several visibility
options, which reduces the number of external symbols, and makes the
libraries a bit smaller.

On my test machine:
* libprivatellvm.so goes from 75643 to 34706 symbols (~54% reduction)
* libprivateclang.so goes from 53250 to 33531 symbols (~37% reduction)
* libprivatelldb.so goes from 27242 to 18798 symbols (~31% reduction)

Note: to get the full benefit, a clean build is required. Incremental
builds should still work, but I didn't want to force a full rebuild on
everybody.

MFC after:      1 week
cf1eaaf41cefe7e3aef45f6dab862191a3939ed8 Dimitry Andric 2025-12-21 21:37:57

Remove debug crutch I accidentally left in

Fixes:          https://cgit.freebsd.org/src/commit/?id=cf1eaaf41cef
MFC after:      1 week
3b1126208f44a90c7dc04a87207e54b22d45893c Dimitry Andric 2025-12-22 11:49:27

OptionalObsoleteFiles.inc: fix up WITH_LLVM_LINK_STATIC_LIBRARIES cases

In commit cf1eaaf41cef I added the WITH_LLVM_LINK_STATIC_LIBRARIES
src.conf(5) build knob, which also affects OptionalObsoleteFiles.inc.

However, the checks were incorrect: when WITH_LLVM_LINK_STATIC_LIBRARIES
is active, the OLD_LIBS libprivatellvm.so.19, libprivateclang.so.19 and
libprivatelldb.so.19 should always be cleaned up.

Fixes:          https://cgit.freebsd.org/src/commit/?id=cf1eaaf41cef
MFC after:      1 week
160077a4d75186a979f28f0778259c66d8cac8be Dimitry Andric 2025-12-24 15:52:48
cuse(3): annotate cuse_init() to suppress thread safety analysis
This avoids warnings from clang 21, similar to:

    /usr/src/lib/libcuse/cuse_lib.c:111:14: error: writing variable 'h_cuse' requires holding mutex 'm_cuse' exclusively [-Werror,-Wthread-safety-analysis]
      111 |         TAILQ_INIT(&h_cuse);
          |                     ^
    /usr/src/lib/libcuse/cuse_lib.c:111:14: error: writing variable 'h_cuse' requires holding mutex 'm_cuse' exclusively [-Werror,-Wthread-safety-analysis]
    /usr/src/lib/libcuse/cuse_lib.c:112:14: error: writing variable 'h_cuse_entered' requires holding mutex 'm_cuse' exclusively [-Werror,-Wthread-safety-analysis]
      112 |         TAILQ_INIT(&h_cuse_entered);
          |                     ^
    /usr/src/lib/libcuse/cuse_lib.c:112:14: error: writing variable 'h_cuse_entered' requires holding mutex 'm_cuse' exclusively [-Werror,-Wthread-safety-analysis]

MFC after:      3 days
5629b5cf79934e0b94ddbbd93b7756f74fe4050a Dimitry Andric 2025-12-25 18:02:27

Filesystems

nfsd: Add some support for POSIX draft ACLs
An internet draft (expected to become an RFC someday)
https://datatracker.ietf.org/doc/draft-ietf-nfsv4-posix-acls
describes an extension to NFSv4.2 to handle POSIX draft ACLs.

This is the second of several patches that implement the
above draft.

The only semantics change would be if you have exported
a UFS file system mounted with the "acl" option.
In that case, you would see the acl attribute supported.
This is bogus, but will be handled in the next commit.

Fixes:  https://cgit.freebsd.org/src/commit/?id=a35bbd5d9f5f ("nfscommon: Add some support for POSIX draft ACLs")
8e3fd450cc53d37fcf4e7f460f559d03c22c0d84 Rick Macklem 2025-12-22 00:04:24
nfscommon: Add some support for POSIX draft ACLs
An internet draft (expected to become an RFC someday)
https://datatracker.ietf.org/doc/draft-ietf-nfsv4-posix-acls
describes an extension to NFSv4.2 to handle POSIX draft ACLs.

This is the third of several patches that implement the
above draft.

There should be no semantics change for the series at
this point.

Fixes:  https://cgit.freebsd.org/src/commit/?id=a35bbd5d9f5f ("nfscommon: Add some support for POSIX draft ACLs")
949cff4dceffdbee70fa7741c1d61cf6c5255aeb Rick Macklem 2025-12-22 01:07:10
nfscl: Add some support for POSIX draft ACLs
An internet draft (expected to become an RFC someday)
https://datatracker.ietf.org/doc/draft-ietf-nfsv4-posix-acls
describes an extension to NFSv4.2 to handle POSIX draft ACLs.

This is the fourth of several patches that implement the
above draft.

There should be no semantics change for the series at
this point.

Fixes:  https://cgit.freebsd.org/src/commit/?id=a35bbd5d9f5f ("nfscommon: Add some support for POSIX draft ACLs")
0e724de9ed6f2d2914cb79686a4ceee7f6dd31a1 Rick Macklem 2025-12-22 02:05:04
nfs: Add some support for POSIX draft ACLs
An internet draft (expected to become an RFC someday)
https://datatracker.ietf.org/doc/draft-ietf-nfsv4-posix-acls
describes an extension to NFSv4.2 to handle POSIX draft ACLs.

This is the fifth of several patches that implement the
above draft.

This one mostly adds an extra argument to two functions
in nfscommon.ko.  Unfortunately, these functions are
called in many places, so the changes are numerous, but
straightforward.

Since the internal KAPI between the NFS modules is changed
by this commit, all of nfscommon.ko, nfscl.ko and nfsd.ko
must be rebuilt from sources.

There should be no semantics change for the series at
this point.

Fixes:  https://cgit.freebsd.org/src/commit/?id=a35bbd5d9f5f ("nfscommon: Add some support for POSIX draft ACLs")
9f49f436a9ec9441dacae8117280a83ddea7b9c6 Rick Macklem 2025-12-22 21:51:15
nfs: Add some support for POSIX draft ACLs
An internet draft (expected to become an RFC someday)
https://datatracker.ietf.org/doc/draft-ietf-nfsv4-posix-acls
describes an extension to NFSv4.2 to handle POSIX draft ACLs.

This is the final patch in the series that enables
the extension of NFSv4.2 to support POSIX draft ACLs.
At this time, only UFS mounted with the "acls" option
will work, and only for FreeBSD built with these patches.
Patches for client and server for the Linux kernel are
in the works.  (I'll admit my next little project is
cleaning the Linux patches up for submission for upstream.)

To make these changes really useful, the FreeBSD port
of OpenZFS needs to be patched to add POSIX draft ACL
support.  (Support for POSIX draft ACLs is already in
the Linux port of OpenZFS.)

Interopeability with NFSv4.2 clients and servers that
do not support this extension should not be a problem.

Fixes:  https://cgit.freebsd.org/src/commit/?id=a35bbd5d9f5f ("nfscommon: Add some support for POSIX draft ACLs")
e35191ccf3b3bdf02905f7e11dc0dd4796593c07 Rick Macklem 2025-12-22 23:22:09

Kernel

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

net: add ifnet_rename_event EVENTHANDLER(9) for interface renaming
and don't trigger ifnet_arrival_event and ifnet_departure_event for a
rename, as the interface isn't being detached from any protocol.  The
consumers of the arrival/departure events are divided into a few
categories:
- which indeed need to do the same actions as if interface was fully
  detached and attached: routing socket and netlink notifications to
  userland and the Linux sysfs.  All addressed by this commit.
- which build their logic based on an interface name, but should actually
  update their database on rename: packet filters.  This commit leaves
  them with the old behavior - emulate full detach & attach, but this
  should be improved.
- which shouldn't do anything on rename, not touched by the commit.
- ng_ether and if_tuntap, that are special and will be addressed by
  separate commits.
349fcf079ca32d5c93e45366d2b27638747affeb Gleb Smirnoff 2025-12-21 21:31:43
inotify: Avoid resetting the cookie
The IN_MOVED_FROM and _TO events only apply to names in a watched
directory, never to a watched directory itself.  So, the cookie value
there is always zero, and in particular we should not reset the
caller-provided cookie value, as it may be used later.

Add a regression test.

Reported by:    arrowd
MFC after:      1 week
da8ab13249420e85935b89794f333f0755e56385 Mark Johnston 2025-12-21 23:49:26
nvme: make the interface standard file
1aea5b0ba76a30cc9753fbc860c0f35a980b756b Gleb Smirnoff 2025-12-23 17:51:25
vnode_pager: use ptoa(), atop()
In vnode_pager.c, use ptoa() or atop() instead of arithmetic with
PAGE_SIZE or PAGE_SHIFT.

Reviewed by:    alc, kib
Differential Revision:  https://reviews.freebsd.org/D49330
1e8c2cb328bbb2d685acbcd269db32ad3ec45f26 Doug Moore 2025-12-23 18:34:20
Commit group #4: sys/font.h: avoid warnings about too-long initializer strings
sys/font.h: avoid warnings about too-long initializer strings

Mark `font_header::fh_magic` as `__non_string`, to avoid a warning from
clang 21 similar to:

    /usr/src/usr.bin/vtfontcvt/vtfontcvt.c:763:15: error: initializer-string for character array is too long, array size is 8 but initializer has size 9 (including the null terminating character); did you mean to use the 'nonstring' attribute? [-Werror,-Wunterminated-string-initialization]
      763 |                 .fh_magic = FONT_HEADER_MAGIC,
          |                             ^~~~~~~~~~~~~~~~~
    /usr/obj/usr/src/amd64.amd64/tmp/usr/include/sys/font.h:109:27: note: expanded from macro 'FONT_HEADER_MAGIC'
      109 | #define FONT_HEADER_MAGIC       "VFNT0002"
          |                                 ^~~~~~~~~~

MFC after:      3 days
e2c93ed09f259ed049923bdaa9b697b3586e2f1a Dimitry Andric 2025-12-26 14:31:43

tools.build: add sys/cdefs.h to SYSINCS, since lots of other headers use it

This is needed to let the legacy stage compile against newer versions of
sys/font.h, which transitively includes sys/cdefs.h, and requires the
new __nonstring macro from it.

Fixes:          https://cgit.freebsd.org/src/commit/?id=e2c93ed09f25
MFC after:      3 days
1c9ff80f06350fa44b7e50ce09ad665ab0082abb Dimitry Andric 2025-12-26 15:26:13

tools.build: also add sys/_visible.h to SYSINCS

This is needed since sys/cdefs.h includes sys/_visible.h.

Reported by:    kib
Fixes:          https://cgit.freebsd.org/src/commit/?id=1c9ff80f0635
MFC after:      3 days
086bedb11a853801e82234b8a1a64f0df52d9e52 Dimitry Andric 2025-12-26 23:07:53
vnode_pager: clean up undirty_pages()
The first (second) loop of vnode_pager_undirty_pages() includes an
if-test to test whether an iteration is the last (first). Move those
if-tests out of their loops.  That allows the compiler to unroll the
loops.

Reviewed by:    alc, kib
Differential Revision:  https://reviews.freebsd.org/D54353
939ac0c8fde22a4ad9cb9bfb5d94f29cad6ea040 Doug Moore 2025-12-26 22:07:34
kernel: MK_REPRODUCIBLE_PATHS for full paths vs /usr/src
There are many environments that you do not want the paths to be
canonicalized. For example, if I always build a product from a specific
path in a jail that's dependent on the product version, I don't want
that to be sanitized to /usr/src because when I have profiling tools run
against multiple kernels, I can't do A/B testing and results processing
if everything points to /usr/src (sadly, the profiling tools cannot
remap back to the original like gdb can). Since we need both active at
the same time, symbloic link fallbacks don't work.

We do want the rest of the build to be reproducible, however. We'll get
the same binaries if we rebuild later since we always rebuild with the
same path.

Turn them both on for maximum reproduction for environments where that
cannot be guaranteed.

Sponsored by:           Netflix
Input from:             emaste, ivy
Differential Revision:  https://reviews.freebsd.org/D52959
faeaa25f562493370a5da84b429ab0a117c3213a Warner Losh 2025-12-28 07:31:05
scsi: Make all da error messages greppable
Don't split the error messages across lines. We used to do that ages
ago, but have relaxed style(9) to encourage the opposite so all error
messages can be grepped. This constantly slows me down when I'm helping
others find issues, so start here by splitting according to normal
style(9) rules with a relaxed line length of 90.

Sponsored by:           Netflix
b67a7c062b65f29448ad5e9e001b03c99869c192 Warner Losh 2025-12-28 17:22:15
sys/xen: Use __printflike() instead of format(printf)
The __printflike macro sets the format to freebsd_kprintf which recent
clang understands and warns about. Fixes the following error:
`passing 'printf' format string where 'freebsd_kprintf' format string is expected [-Werror,-Wformat]`

MFC after:      1 week
4cd7be3e81863bd22aacccc34fc2e8b2cfcb14d9 Alex Richardson 2025-09-16 04:54:36
compat: linux: use appropriate variables for copying out old timers
We copyout &l_oval but do the conversions into &l_val, leaving us with
stack garbage.  A build with an LLVM21 cross-toolchain seems to catch
this.

Reported by:    Florian Limberger <flo purplekraken com>
Reviewed by:    markj
Fixes:          https://cgit.freebsd.org/src/commit/?id=a1fd2911ddb06 ("linux(4): Implement timer_settime64 syscall.")
MFC after:      3 days
Differential Revision: https://reviews.freebsd.org/D52985
541a98d7e28a8e4697ac2fa78dd4c4203c2c3a9c Kyle Evans 2025-12-28 22:02:04

Build system

src.conf: Add WITH_LLVM_LINK_STATIC_LIBRARIES build knob
In commit 2e47f35be5dc libllvm, libclang and liblldb were converted into
private shared libraries. This allowed clang, lld, lldb, and other llvm
tools to be linked against these shared libraries, which makes them
smaller and avoids duplication.

However, this also comes at the cost of some performance, since the
dynamic libraries are quite large, and contain lots of long symbols
(mangled C++ identifiers).

Add a WITH_LLVM_LINK_STATIC_LIBRARIES build knob that can be used to go
back to the previous behavior: libllvm, libclang and liblldb are built
as internal static libraries, i.e. only available during buildworld, and
fully linked into the various executables such as clang, lld, etc.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=287447
Reviewed by:    emaste
MFC after:      1 week
Differential Revision: https://reviews.freebsd.org/D50956
8d5a11cd0137d3ad70f6b06e063ea91a776d510a Dimitry Andric 2025-06-18 10:06:25
sys/modules/acpi/Makefile: One line per subdirectory
This makes diffs that add or remove modules easier to read.

Reviewed by:    imp
Sponsored by:   Netflix
Differential Revision:  https://reviews.freebsd.org/D54314
fe74d52de5dca506fe07693ffd6a35140bb55abd John Baldwin 2025-12-26 15:37:20
Build acpi kernel modules on aarch64
For now, the only kernel module built is acpi_ged.ko.

Sponsored by:   Netflix
Reviewed by:    imp
Differential Revision:  https://reviews.freebsd.org/D54315
bd8296bd81d55563f7ccafca77b7b74fb219df9e John Baldwin 2025-12-26 15:37:34
tests/ci: Use :H:H rather than ../..
In general we want to strip subdir components, rather than appending
`..`s.

Reviewed by:    lwhsu
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D54352
02376be32d6bcccc0c722c08779bd71e70516599 Ed Maste 2025-12-23 15:42:13
vt: Remove .fnt.uu from Makefile SUFFIXES
The uudecode make rule was removed years ago.

Fixes: https://cgit.freebsd.org/src/commit/?id=68510f3bac15 ("Remove uudecode make rule for vt fonts")
c910c7a3d224764adf53581cc097cefb6f963502 Ed Maste 2025-12-28 15:52:13
bsd.sys.mk: suppress some new clang 21 warnings for C++
Otherwise, these lead to many -Werror warnings in libc++ headers, due to
our use of -Wsystem-headers, which is not officially supported upstream:

Suppress -Wc++20-extensions, due to:

    /usr/include/c++/v1/__algorithm/simd_utils.h:96:50: error: explicit template parameter list for lambdas is a C++20 extension [-Werror,-Wc++20-extensions]
       96 | inline constexpr size_t __simd_vector_size_v = []<bool _False = false>() -> size_t {
          |                                                  ^

Suppress -Wc++23-lambda-attributes, due to:

    /usr/include/c++/v1/__format/format_functions.h:462:32: error: an attribute specifier sequence in this position is a C++23 extension [-Werror,-Wc++23-lambda-attributes]
      462 |   if (bool __is_identity = [&] [[__gnu__::__pure__]] // Make sure the compiler knows this call can be eliminated
          |                                ^

Suppress -Wnullability-completeness, due to:

    /usr/include/c++/v1/string:1068:80: error: pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
     1068 |   _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string(const _CharT* __s, size_type __n) {
          |                                                                                ^

MFC after:      3 days
63d1c3c43690ff3c3e76e1fb03c8640fe30a2663 Dimitry Andric 2025-12-25 18:44:34
bsd.sys.mk: add NO_WCHARACTER_CONVERSION and use it for googletest
This silences warnings about benign implicit character conversions in
googletest's gtest-printers.h.
ae31c10537edc1ed77a852e60bf3bd31fc38cba2 Dimitry Andric 2025-12-25 20:05:51

Internal organizational stuff

-- no commits in this category this week --

Testing

atf_python: support setting interface mtu
Teach the vnet support code to set interface MTU. Some tests make use of
this, so have the framework handle it.

Adapt a few pf tests to use this.

Reviewed by:    melifaro
Sponsored by:   Rubicon Communications, LLC ("Netgate")
Differential Revision:  https://reviews.freebsd.org/D54333
4f35a84b32412f5cf54e08cd97cd6eee407fb30e Kristof Provost 2025-12-21 10:28:29
fusefs: Fix further intermittency in the BadServer.ShortWrite test case
After being unmounted, the mockfs server would occasionally read from
/dev/fuse again, if the main function didn't exit fast enough, getting
an ENODEV error.  Handle that appropriately.

Reported by:    Siva Mahadevan <me@svmhdvn.name>
Fixes:          https://cgit.freebsd.org/src/commit/?id=d86025c1d49c84c4dc8c3635c83c078ad56e5a53
MFC after:      1 week
Reviewed by:    Siva Mahadevan <me@svmhdvn.name>
Differential Revision: https://reviews.freebsd.org/D54331
f51e9d0e0988df58c94db586ab5c8b5fd091c004 Alan Somers 2025-12-21 15:32:31

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

libpcap: fix resource leaks and set error messages
In finddevs_bpf() close the BPF device descriptor and free the device list
buffer before returning.

For ioctl() and malloc() errors, use pcapint_fmt_errmsg_for_errno() to
generate an error message.

Fix some comments.

(cherry picked from commit 6870404f35da32d63a0a8789edb010842dd6b208)
88b04633c29e3a8fd2ac88febd1aedf409ce6925 Guy Harris 2025-12-22 01:26:32
telnet: Remove usage of ALIGN
gcc doesn't like ALIGN() being applied to an array type.  Just use
__aligned instead.

Reported by:    Jenkins
Reviewed by:    brooks
Fixes:          https://cgit.freebsd.org/src/commit/?id=80203a27e964 ("Add sys/_align.h replacing machine/_align.h")
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D54290
3a4275a5f1f5dccd6918c4eff3b84488e322ad5d Mark Johnston 2025-12-22 15:18:52
MFV 762f11d98d5cd57ebbe85c36e9e86a557a91fe4e: xz 5.8.2.
MFC after:    7 days
ae12432049e7873ab3912643ae5d08297b8cbc49 Xin LI 2025-12-23 08:24:13
kyua: Fix prompt of "debug -p" command
ecb58f931d45d6fe4e8b60a172415cc387657a6b Igor Ostapenko 2025-12-25 20:41:22
kyua: Make "debug -p" skip writing stdout/stderr to tmp files
Reviewed by:  kp, ngie
Differential Revision:  https://reviews.freebsd.org/D54363
350f319731897f741b516db99636e7ced071dfa4 Igor Ostapenko 2025-12-26 20:06:56

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-01-05 20:10:40+00:00.

This work is supported by Tarsnap Backup Inc.

Alternate version: 2025-12-22 (debug) (contains info about the classification)