FreeBSD git weekly: 2026-06-01 to 2026-06-07

Introduction

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

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:

(1) Highlighted commits (these are copies, not in stats)
1 4.2% Userland programs
0 0.0% Documentation
6 25.0% Hardware support
3 12.5% Networking
3 12.5% System administration
0 0.0% Libraries
2 8.3% Filesystems
5 20.8% Kernel
0 0.0% Build system
1 4.2% Internal organizational stuff
0 0.0% Testing
1 4.2% Style, typos, and comments
2 8.3% Contrib code
0 0.0% Reverted commits
0 0.0% Unclassified commits
24 100% total
Technical notes about this page

debug: info about the automatic classification

num % num changed stage
1 4.2% 0 01-style
15 62.5% 0 03-filenames_plain1
7 29.2% 0 04-filenames_plain2
1 4.2% 0 Manually-classified commits
0 0.0% 0 Unclassified commits

debug: more stats

num % stage
0 0.0% Misclassified commits
23 95.8% Classified commits, no corrections

debug: groups

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

fs/msdosfs: add support for file namws with surrogate pairs
Long file names are using UTF-16 symbols to represent international or
special characters. The implementation in FreeBSD did not support the
"Supplementary Private Use Area-B" (PUA-B), which requires a surrogate
pair to be represented in UTF-16 (Unicode code points beyond U+FFFF).

The PUA-B is used to represent emoji characters, which are supported
in file names on other common operating systems. The motivation for
this change was that removable media written on another system were
only partially readable on FreeBSD, since they contained emojis in
file names.

A test script that verifies correct operations on files names with
emojis has been added to the tools/test/stress2/misc directory under
the name msdos24.sh.

Reported by:    Fabian Keil <fk@fabiankeil.de>
Reviewed by:    ib
Approved by:    mkcusick
MFC after:      1 week
Relnotes:       yes
Differential Revision:  https://reviews.freebsd.org/D57313
f983cb362de77773efba8975eb0f4b247ce5e6f9 Stefan Eßer 2026-06-01 05:50:22

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

Userland programs

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

sh: Fix pipebuf limit
Since the factor is not 1, we need to provide a unit.

MFC after:      1 week
Fixes:          https://cgit.freebsd.org/src/commit/?id=5d92f20c7d31 ("bin/sh: support RLIMIT_PIPEBUF")
Reviewed by:    kib
Differential Revision:  https://reviews.freebsd.org/D57352
dfd2273d27627313f944650840381e878077e825 Dag-Erling Smørgrav 2026-06-01 08:51:24

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

Documentation

Man pages, release notes, etc.

-- no commits in this category this week --

Hardware support

Hardware drivers and architecture-specific code.

Commit group #0: ig4iic: Add PantherLake IDs
ig4iic: Add PantherLake IDs

MFC after:      2 weeks
Sponsored by:   Framework Computer Inc
Signed-off-by: Daniel Schaefer <dhs@frame.work>
39e297bf54a57a17d8b44c20e502d6f2c6db08f6 Daniel Schaefer 2026-05-31 11:18:31

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


spi: Remove incorrect pci id

This id is for SPI flash instead of spi bus

Fixes: https://cgit.freebsd.org/src/commit/?id=39e297bf54a5 ("ig4iic: Add PantherLake IDs")
MFC after:      2 weeks
Sponsored by:  The FreeBSD Foundation
Sponsored by:  Framework Computer Inc
4ccbceefeb0f2898e2e4bb951862125d0bc5ce34 ShengYi Hung 2026-06-01 08:41:12

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

amd64: do not switch back and restore UEFI IDT in wrmsr_early_safe_end()
The memory where the pre-OS IDT was located might be already consumed by
kernel.

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D57321
606d3cb1be5fd594c1f51addd063e7c13e16bdbc Konstantin Belousov 2026-05-29 07:32:41

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

amd64: there is no reason to copy ucode around in ucode_load_bsp()
PR:   https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294630
Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differrential revision: https://reviews.freebsd.org/D57368
16f21c5af35002b8361ffb2e83ff3c92cd899a3a Konstantin Belousov 2026-05-30 15:57:46

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

hwpstate_intel: Disable package control on hybrid CPU
In package control mode, the performance of all cores depends on the
most recent value written to the request field. If the last write comes
from an E-core, all cores are forced to align with the E-core
performance level, resulting in significant performance degradation.
Therefore, package control is disabled on hybrid-core systems.

Reviewed by:    olce
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Sponsored by:   Framework Computer Inc
Differential Revision: https://reviews.freebsd.org/D57377
7b26353a59d66dc1bc611fd042a49b9e3bd13699 ShengYi Hung 2026-06-01 09:46:37

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

linux: Add linux_pt_fpregset and bsd_to_linux_fpregset() for amd64
Add struct linux_pt_fpregset, the amd64 Linux NT_PRFPREG payload,
corresponding to user_i387_struct in Linux. The struct describes
the 512-byte FXSAVE area as exposed by PTRACE_GETREGSET.

Add bsd_to_linux_fpregset() to translate from FreeBSD's struct fpreg
to struct linux_pt_fpregset. Fields are extracted from the fpr_env[]
array which stores the FXSAVE environment packed as four 64-bit words.
The FP and XMM register banks are bulk-copied as opaque byte arrays.

Signed-off-by:  Ricardo Branco <rbranco@suse.de>
Reviewed by:    kib
Pull-Request:   https://github.com/freebsd/freebsd-src/pull/2165
b84d31ee74535a0026ff83f2a34c07b7557f9785 Ricardo Branco 2026-04-26 14:43:59

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

Networking

Network-related commands, library, and kernel.

lagg: Handle a port count of zero
The sc_count check in lagg_transmit_ethernet() and
lagg_transmit_infiniband() is racy, as the lagg protocol handlers are
only synchronized by net_epoch.  Handle a count of 0 in each protocol
handler where it's needed, namely in the RR and LB handlers.

Reported by:    Yuxiang Yang, Yizhou Zhao, Xuewei Feng, Qi Li, and Ke Xu from Tsinghua University using GLM5.1 from Z.ai
Reviewed by:    pouria, zlei
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D56942
49d90d9ddfc1ecda9ad9b6cb5565e5fbdcc14964 Mark Johnston 2026-06-01 16:40:43

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

net: Fix handling of unmapped user pages in if_getgroup()
We cannot call copyout() while in a net epoch section, unless the user
memory is wired.  Use the global ifnet lock to synchronize the accesses
instead.

Reported by:    emaste
Reviewed by:    zlei
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D57154
68004e56fdc22c11b4ec680e83309b4ea2bfe13a Mark Johnston 2026-06-01 16:44:15

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

nat64lsn: Fix type confusion panic when using wrong NAT64 instance type
When an ipfw rule references a NAT64 instance by name using
'nat64lsn', the kernel looks up the instance in the shared
srvstate[] array without verifying the instance type.
If the named instance is actually a nat64clat or nat64stl
instance (created with 'nat64clat' or 'nat64stl'), the code
incorrectly casts the instance to nat64lsn_instance and
dereferences the ->cfg pointer, which causes a kernel panic.

The root cause is that all NAT64 instance types share the same
srvstate[] array but have different struct layouts.
For nat64lsn_instance, the field after 'no' is a pointer to nat64lsn_cfg.
For nat64clat_cfg, the same offset contains an embedded nat64_config struct.

Fix by adding a type check after NAT64_LOOKUP() to verify that the
instance's etlv matches IPFW_TLV_NAT64LSN_NAME before proceeding.
If the type doesn't match, return IP_FW_DENY to reject the packet
safely rather than crashing.

Signed-off-by:  Teddy Engel <engel.teddy@gmail.com>
PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292023
Reported by:    pouria
Reviewed by:    ae
Pull-Request:   https://github.com/freebsd/freebsd-src/pull/2249
ea4888e63f6ac89c38982ffee693f89a5927e9c9 Teddy Engel 2026-06-01 16:42:56

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

System administration

Stuff in man section 8 (other than networking).

stand: Revert the EFI loader back to strict mode
The change to relaxed mode has had too many unintended breakages. Revert
back to strict mode until that works for all the cases that are
currently broken.

Fixes: https://cgit.freebsd.org/src/commit/?id=784150fd2535, https://cgit.freebsd.org/src/commit/?id=d69fc3a9dc71
PR:  https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=295289
Sponsored by: Netflix
a1d78374b5c426d43a287b9523660bce36cb55c8 Warner Losh 2026-06-01 03:34:59

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

bsdinstall: Add virtual_oss service option
Since virtual_oss is now part of base, there is no reason not to provide
an installer option to enable it, and make it more visible to new users,
who might also benefit from the devd rules in /etc/devd/snd.conf, which
use virtual_oss, as well as 8532b4a43636 ("rc: virtual_oss: Create a
loopback device in the default configuration").

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Reviewed by:    ivy
Pull-Request:   https://ron-dev.freebsd.org/FreeBSD/src/pulls/31
eb5aa5c337c8d52fc1a7e867f526ca770bbe6612 Christos Margiolis 2026-05-20 15:51:39

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

virtual_oss_cmd(8): Improve error messages
Sponsored by: The FreeBSD Foundation
MFC after:      1 week
4f7092eeb22d3882f54d67a35149533fef8376ca Christos Margiolis 2026-06-02 12:57:45

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

Libraries

-- no commits in this category this week --

Filesystems

fs/msdosfs: add support for file namws with surrogate pairs
Long file names are using UTF-16 symbols to represent international or
special characters. The implementation in FreeBSD did not support the
"Supplementary Private Use Area-B" (PUA-B), which requires a surrogate
pair to be represented in UTF-16 (Unicode code points beyond U+FFFF).

The PUA-B is used to represent emoji characters, which are supported
in file names on other common operating systems. The motivation for
this change was that removable media written on another system were
only partially readable on FreeBSD, since they contained emojis in
file names.

A test script that verifies correct operations on files names with
emojis has been added to the tools/test/stress2/misc directory under
the name msdos24.sh.

Reported by:    Fabian Keil <fk@fabiankeil.de>
Reviewed by:    ib
Approved by:    mkcusick
MFC after:      1 week
Relnotes:       yes
Differential Revision:  https://reviews.freebsd.org/D57313
f983cb362de77773efba8975eb0f4b247ce5e6f9 Stefan Eßer 2026-06-01 05:50:22

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

Avoid incorrect UFS1 timestamp corrections when system clock fails at boot.
Git 1111a44301da - main - Defer the January 19, 2038 date limit in
UFS1 file systems to February 7, 2106 - did so by changing the UFS1
32-bit signed timestamps to unsigned. With this change, time stamps
from before January 1, 1970 went from being negative numbers to
large positive numbers implying times in the future. When such a
time stamp is encountered when an inode is read into memory or when
it is encountered by fsck, its timestamp is replaced with the
kernel's current time.

Andre Albsmeier reported that he had a machine reboot after a power
failure and the battery that maintained its real-time clock had
died. The result was that the system booted with the time set to
five years earlier (absent a real-time clock value, the boot ROM
used the time that the boot ROM had last been updated). The net
result was that fsck reset the time stamps of all files newer than
five years old to the five year old time.

Andres's original request was for a flag in the file system superblock
to say that there are no timestamps from before 1970 in the file
system, so there shouldn't be anything to fix because of the signed
to unsigned switch. But this assumes that no one every does an rsync
or extracts a tar file or restores a dump that introduces an incorrect
time stamp on their system. So this approach was not taken.

This change compares the system's version of the current time to
the last modification time in the file system superblock. If the
current time is earlier than that time then use the last modification
time in the superblock as the value for the current time. There
should be no files in the file system with times newer than the
last modification time in the superblock.

The superblock time stamp is updated in the in-memory superblock
every time any change is made to anything in the file system. The
superblock is written to the disk every 30 seconds, so it may be
off by up to 30 seconds plus the time it sits in the disk cache
waiting to be written if the system has an unclean shutdown (such
as a power failure). Thus, the worst case scenario with this change
is that files written in the last 30 seconds plus disk cache delay
time before the crash may have their times adjusted back by up to
30 seconds plus the disk cache delay time.

Requested by: Andre Albsmeier
Approved by:  kib
Reviewed by:  kib, imp, Andre Albsmeier
MFC-after:    1 week
Differential Revision: https://reviews.freebsd.org/D57371
553ef188f7ecc23a384bd7ef1f3d5015fb8661da Kirk McKusick 2026-06-01 23:48:21

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

Kernel

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

MAC/do: Fix double-free on parse error after "executable paths" feature
parse_rules() has been calling toast_rules() in case of a parse error in
order to deallocate the 'struct rule' objects it has constructed up to
that point.

toast_rules() would take a pointer to a full 'struct rules' object, and
besides freeing all 'struct rule' referenced by it, would also free the
holding 'struct rules' itself.

With the introduction of the "executable paths" feature, and the
embedding of 'struct rules' into 'struct conf', meaning that the
lifecycle for 'struct rules' was no longer independent, toast_rules()
was changed not to free the passed 'struct rules' (as it was a field of
a 'struct conf' object).  Unfortunately, this change was not completed
with a reinitialization of the rules list head, so the 'struct conf'
object would continue to reference just-freed rules, which then would be
freed a second time on destruction of that container.

So, make toast_rules() re-initialize the rules list in 'struct rules',
which it logically has been having to do since not freeing the enclosing
'struct rules'.  This alone is enough to fix the bug, but let's use the
occasion to change the contract of parse_rules() and bring its herald
comment up-to-date: On error, parse_rules() now simply leaves already
constructed 'struct rule' objects in 'conf'.  The latter is eventually
destroyed and the rule objects reclaimed at that point.

Add a test trying to set an invalid rules configuration with the first
rule being valid and the second being invalid, which triggers the bug
(and an immediate panic() on an INVARIANTS kernel).

Reported by:    impost0r(ret2plt) <impostor@ret2p.lt>
Reviewed by:    markj
Fixes:          https://cgit.freebsd.org/src/commit/?id=9818224174c4 ("MAC/do: Executable paths feature (GSoC 2025's final state)")
Sponsored by:   The FreeBSD Foundation
79d0dbc9c6d6a1627c9f3eeab0633c232a6a0a34 Olivier Certner 2026-06-01 08:52:16

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

get/setpriority: Add capability mode checks
Reviewed by: oshogbo
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57345
72e34b3e3907d5fd63abf7b2246cae80641769b3 Ed Maste 2026-05-29 20:48:34

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

linuxulator: Return EINVAL for invalid inotify flags
We implement all of the currently-defined Linux inotify mask bits and
flags, with the same values as Linux.  Return EINVAL for unknown bits,
as Linux does.

This also moves the translation inline into linux_inotify_add_watch.

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57387
f77d37cffdf3951b7f28b97005467241aa27c183 Ed Maste 2026-06-01 18:22:09

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

linux: Implement PTRACE_GETREGSET NT_PRFPREG and NT_X86_XSTATE
Implement NT_PRFPREG and NT_X86_XSTATE for PTRACE_GETREGSET on amd64.
Chrome's crashpad handler uses these to collect floating-point and
extended CPU register state for crash dumps.

Other architectures retain the previous EINVAL stub behavior.

Signed-off-by:  Ricardo Branco <rbranco@suse.de>
PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=289285
Reviewed by:    kib
Pull-Request:   https://github.com/freebsd/freebsd-src/pull/2165
c515e6040614434a9262ee8b5ac54b81476ec7ff Ricardo Branco 2026-04-26 14:45:35

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

linux: Fix missing break in lsiginfo_to_siginfo()
Prevent LINUX_SI_TKILL from inadvertently falling through to
LINUX_SI_QUEUE, which incorrectly overwrote si_code with SI_QUEUE
instead of SI_LWP.
5dbbd764c8e116b04c75b79b1eedc0edcbb90435 Pawel Biernacki 2026-06-02 11:08:29

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

Build system

-- no commits in this category this week --

Internal organizational stuff

ObsoleteFiles: Add some ancient locale symlinks
These were dropped in 2021 but were never listed in ObsoleteFiles.inc,
so systems that have been upgraded from source since before that date
(or from 13.x) may still have them.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=295668
MFC after:      1 week
Fixes:          https://cgit.freebsd.org/src/commit/?id=0a36787e4c1f ("locales: separate unicode from other locales")
Reviewed by:    bapt
Differential Revision:  https://reviews.freebsd.org/D57331
1cef7e9eb0822c606fc34f975efd14b6daeff756 Dag-Erling Smørgrav 2026-06-02 08:36:53

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

Testing

-- no commits in this category this week --

Style, typos, and comments

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

style.9: Fix a typo (missing word)
Fixes:          https://cgit.freebsd.org/src/commit/?id=af2c7d9f6452 ("style.9: Encourage style changes when doing significant modifications")
MFC after:      1 day
Sponsored by:   The FreeBSD Foundation
1876f629b97608679f1bd71b9aa88a57b55c4574 Olivier Certner 2026-06-01 07:23:08

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

Contrib code

dma: support relaying to an LMTP endpoint
Approved by:          bapt
Differential Revision:  https://reviews.freebsd.org/D55627
Upstream:               https://github.com/corecode/dma/pull/152
84dd0acd1c8c93b8e5074f895a30dc49bc00c8d3 Pietro Cerutti 2026-06-01 12:19:57

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

Merge commit 63c29df8eceb from llvm git (by Dmitry Polukhin):
  [Serialization] Fix assertion on re-deserialized friend template spec… (#200566)

  …ialization in PCH (#198133)

  A friend function-template specialization declared inside a class
  template is serialized into a PCH. When the class template is later
  instantiated while loading the PCH, the friend specialization can be
  deserialized re-entrantly (VisitFriendDecl -> VisitFunctionDecl -> ...
  -> VisitFunctionDecl for the same specialization) at the same time as
  the canonical copy, producing two redeclarations of the same
  specialization in the template's specialization set.

  ASTDeclReader::VisitFunctionDecl asserted that this collision could only
  happen when merging declarations from different modules. Since
  38b3d87bd384, friend functions defined inside dependent class templates
  are loaded eagerly, so the collision can now also occur within a single
  PCH/AST file (non-modules build), tripping the assertion:

    Assertion failed: (Reader.getContext().getLangOpts().Modules &&
    "already deserialized this template specialization"), function
    VisitFunctionDecl

  The merge that follows (mergeRedeclarable) already links the two
  redeclarations correctly regardless of whether modules are enabled, so
  the fix is to drop the modules-only assumption and let the merge run.

  Fixes https://github.com/llvm/llvm-project/issues/198133

This fixes (well, simply removes :) an assertion when building the
cad/OrcaSlicer port with precompiled headers turned on.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=295296
MFC after:      3 days
86326398b73b81f84831fb5fc4c12d9219bc0f57 Dimitry Andric 2026-06-01 17:10:11

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

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-06-02 15:55:48+00:00.

This work is supported by Tarsnap Backup Inc.

Alternate version: 2026-06-01 (release)