FreeBSD git weekly: 2026-04-13 to 2026-04-19

Introduction

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

Table of contents and commits per category:

(4) Highlighted commits (these are copies, not in stats)
4 1.8% Userland programs
20 9.1% Documentation
42 19.1% Hardware support
43 19.5% Networking
13 5.9% System administration
5 2.3% Libraries
0 0.0% Filesystems
43 19.5% Kernel
17 7.7% Build system
0 0.0% Internal organizational stuff
10 4.5% Testing
7 3.2% Style, typos, and comments
13 5.9% Contrib code
3 1.4% Reverted commits
0 0.0% Unclassified commits
220 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.

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

Reviewed by:    glebius, adrian
Discussed with: zlei, kp
Relnotes:       yes
Differential Revision: https://reviews.freebsd.org/D54172
e44d2e941e8ebd74e6a1b1fdbed83fe86671cbc6 Pouria Mousavizadeh Tehrani 2026-04-11 14:12:01
release: remove Oracle Cloud Infrastructure build targets
Oracle's previous support is no longer available to the project.
Repeated attempts to find a sponsor within Oracle's cloud business
have not been successful.

The last published official images are from 15.0-RELEASE.

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

Relnotes:       yes
Sponsored by:   SkunkWerks, GmbH
Differential Revision:  https://reviews.freebsd.org/D56360
MFC after:      3 days
3b108068121ba30fb3dbed569d6757da2ab529a4 Dave Cottlehuber 2026-04-12 22:29:44
rc.d/NETWORKING: remove the NETWORK alias
NETWORKING is the documented placeholder, while
/etc/rc.d/NETWORKING still provides the legacy alias
NETWORK.

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

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

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

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293652
Reviewed by:    michaelo, jlduran
Relnotes:       yes
Differential Revision:  https://reviews.freebsd.org/D56300
47a9af4b39bf174efed7f6d43644d4b0bc0c9886 Aotian Cao 2026-04-08 07:58:00
nd6: Add support for route information (RFC 4191)
Implement RFC 4191 by handling received Router Adverisement (RA)
packets with route information option.
For default routes, use the route information's lifetime and
preference to overwrite the RA's lifetime/preference.
Also install and update more-specific route prefixes with the
option's lifetime and expire them when their lifetime elapses.

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

Userland programs

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

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

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

MFC after:      3 days
Reviewed by:    emaste, jilles, jlduran, ziaee
Signed-off-by:  Kristofer Peterson <kris@tranception.com>
Closes:         https://github.com/freebsd/freebsd-src/pull/2093
81b2055c49dec8884d7bb23503f1dfeac37ac95d Kristofer Peterson 2026-03-24 14:56:48
du: Complete libxo transition
* Use xo_warn() / xo_err() instead of warn() / err().

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

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

* Reorder SEE ALSO section.

MFC after:      1 week
Sponsored by:   Klara, Inc.
Reviewed by:    allanjude
Differential Revision:  https://reviews.freebsd.org/D56402
6c18dd3eb42b50fddb6d9605ddde1362ae9c504a Dag-Erling Smørgrav 2026-04-15 14:12:30
mkimg: Fix parsing of filenames containing colons
When using PART_KIND_FILE (-p type:=filename), mkimg uses a colon
to separate an optional offset (e.g., filename:offset).

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

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

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

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

PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=257960
Signed-off-by: Aaditya Singh <aadityavksingh@gmail.com>
Reviewed by: jlduran
Pull Request: https://github.com/freebsd/freebsd-src/pull/2041
50c1240ebfaf920ad12f05eb16d00f8b5b9d72e0 Aaditya Singh 2026-02-21 18:13:54
yacc: Fix SYSTEM_NAME
This usually gets bumped by re@ when the version number changes in
sys/conf/newvers.sh, but apparently we forgot for the past two major
versions.
6a3e2223ff35781fb837862f7cf7aaaa991968d9 Colin Percival 2026-04-16 20:33:58

Documentation

Man pages, release notes, etc.

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

Reviewed by:    ziaee
Differential Revision: https://reviews.freebsd.org/D55181
b0ef03f0c4bc2a7715e4b8ea4ead8dd73dffdd95 Pouria Mousavizadeh Tehrani 2026-04-13 12:38:53
timeout.1: Document non-POSIX options
MFC after:            3 days
Reviewed by:            Aaron Li <aly@aaronly.me>, ziaee
Differential Revision:  https://reviews.freebsd.org/D56090
b1bc748430b5ee79ae103c464dbf5ebc8802f782 Artem Bunichev 2026-04-13 01:15:41
ciss.4: List all devices supported by ciss(4)
PR:           https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=285744
Reviewed by:    ziaee
MFC after:      3 days
Differential Revision:  https://reviews.freebsd.org/D56285
54f5d20492d231b5c2ddc6f1d94dbffa1707d820 Michael Osipov 2026-04-06 18:21:48
libthr.3: describe what we mean by C runtime environment.
Reviewed by:  emaste
Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Differential revision:  https://reviews.freebsd.org/D56384
fa912e3b9b5c074793bb1899f8256ea4baf72631 Konstantin Belousov 2026-04-14 00:10:49
libthr.3: describe SIGTHR
Explain how SIGTHR is used and that it should be not touched by user
code.  Note about SIGLIBRT.

Reviewed by:    emaste
Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Differential revision:  https://reviews.freebsd.org/D56384
934a35ac2bbbcf8cd65d8824fa824eb5c6170c88 Konstantin Belousov 2026-04-13 23:42:51
Bourne shell -> POSIX shell
The FreeBSD shell is a POSIX compatible shell. It evolved over several
decades from the Almquist shell, which was preceeded a decade before
that by the Bourne shell. Most readers today have never seen a Bourne
shell. If someone wants to learn to use our shell, they need to look for
tutorials on the POSIX shell. Align descriptions through out the tree
with this reality, consistent with it's manual and common parlance.

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

MFC after:              3 days
Reviewed by:            carlavilla
Differential Revision:  https://reviews.freebsd.org/D56382
dc140a9fc151f3717bce2157f49070daafa13ec0 Alexander Ziaee 2026-04-14 13:02:53
freebsd-base.7: Break examples into subsections
Break the examples into subsections, so that we can have multi-step
examples.

MFC after:              3 days (to 15 only)
Discussed with:         ivy
Differential Revision:  https://reviews.freebsd.org/D55526
5f922bd20d81af4b5759b8f104d5c22ee3e5cd1b Alexander Ziaee 2026-04-14 13:20:38
freebsd-base.7: Add an example for unregistering
MFC after:            3 days
Reviewed by:            ivy, emaste
Discussed with:         bapt, des, emaste, ivy, phk, pi
Differential Revision:  https://reviews.freebsd.org/D55458
998d501ae61a3e3c800e6d102d8ab5253c7c1b91 Alexander Ziaee 2026-04-14 13:21:50
sockstat: Unbreak SEE ALSO section
MFC after:    1 week
Fixes:          https://cgit.freebsd.org/src/commit/?id=7b35b4d19630 ("sockstat: add libxo support")
a6bd704850a615ae81076855a2083c7ab6481df1 Dag-Erling Smørgrav 2026-04-15 09:36:40
sysctl.3: Correct kern and kern.proc type descriptions
Fix several incorrect sysctl.3 type and mutability descriptions so the
manpage matches the actual kern and kern.proc interfaces.

Signed-off-by: Tyler Waddell <tyler.waddell112@gmail.com>
Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/2128
32cc01e75aabc117c2c19c25291aa25eb1ec3cef brothersw 2026-04-07 18:45:08
newsyslog.conf(5): use "rotated" instead of "trimmed"
The man page used "trimmed" to describe log rotation, which is
misleading as it suggests the file is truncated to a specific
size rather than being rotated (renamed and a new file created).
Replace all instances of "trimmed" with "rotated" to match the
actual behavior and the terminology used elsewhere in the page.

PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=278671
Signed-off-by: Kit Dallege <xaum.io@gmail.com>
Reviewed by: imp,ziaee
Pull Request: https://github.com/freebsd/freebsd-src/pull/2099
e0b22342f52b22b1762b09ab16bbc520cf0f2882 Kit Dallege 2026-03-27 04:25:35
rc.conf.5: Document virtual_oss(8)
Sponsored by: The FreeBSD Foundation
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56225
a3094f522fec70f9e5cf3f12dc6e7a9b5f706459 Christos Margiolis 2026-04-16 14:51:06
pkru.3: Remove a qualifier
Now that i386 kernels are deprecated, we don't really need to mention
this limitation.  It's also a bit dated since PKRU is supported with
5-level paging as well.

Reviewed by:    alc, kib
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56415
fe6bf738aaeb3d5fd74aabfcbf01eba827df6594 Mark Johnston 2026-04-16 17:46:05
pkru.3: Note that the kernel may not respect PKRU protections
There are cases where the kernel will be able to access memory covered
by a PKRU key which nomially prohibits accesses.  I believe regular
copyin()/copyout() are subject to the contents of PKRU, but memory
accesses via uiomove_fromphys() will not be.  This can arise when
performing fault I/O, for instance.  I didn't test, but I suspect AIO is
another case.

Update the man page to acknowledge this.

Reviewed by:    alc, kib
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56416
fa77fecb0e06ec697e3d7a9ed899e568f1d2090c Mark Johnston 2026-04-16 17:46:11
ntp_adjtime.2: Increase visibility
+ s/ntp/ntpd/ for correctness + apropos results in document description
+ silence a linter warning by escaping a period with a zero-width space

MFC after:      3 days
b49b3ccd40bda02f530c679f23f42ba9e0e4b2e2 Alexander Ziaee 2026-04-17 00:30:38
ippool(5): Correct example in man page
The example provided puts the semicolon in the wrong place. It must
come after the file:// specification, not in it.

MFC after:      1 week
f5d0b30e4af1163bdc18a893b17236517b67790a Cy Schubert 2026-04-17 04:05:59
virtual_oss.8: Remove CPU performance example
See also:     https://github.com/freebsd/virtual_oss/issues/2
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
788d71e73f1b4fdac572dae72d3eac5cfb0f9f18 Christos Margiolis 2026-04-17 20:47:16
README: Update and harmonize
MFC after:    1 week
Reviewed by:    imp, markj, jhb
Differential Revision:  https://reviews.freebsd.org/D56499
480ba21efdc7df5d972083e64c88c39357877c0b Dag-Erling Smørgrav 2026-04-18 14:12:32
Doxygen subsystem config: exclude the content of the .git directory
315f665fe1ac97ea2ca946e51ced24f7b21fb22e Alexander Leidinger 2026-04-19 12:46:35
pdfork.2: correct pdrfork's HISTORY section
Since pdrfork will be included in FreeBSD 15.1

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

Hardware support

Hardware drivers and architecture-specific code.

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

Reported by:    gcc -Wsizeof-pointer-div
Reviewed by:    imp
Fixes:          https://cgit.freebsd.org/src/commit/?id=82ff1c334b97 ("nvme: Allow larger user request sizes")
Differential Revision:  https://reviews.freebsd.org/D56368
8085c5a5c1e50eb478fb7b59fae201d9ab4207f0 Ryan Libby 2026-04-12 23:39:41
arm64: Add a cmap page to pmap
When modifying mappings in pmap we may need to perform a
break-before-make sequence. This creates an invalid mapping, then
recreates it with the changes.

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

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

Reviewed by:    kib
Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D56306
c208439cdb588d91aead9403cec3d4acf4a8bebf Andrew Turner 2026-04-13 11:50:32
arm64: Handle changing self-referential DMAP pages
Support changing the property of a DMAP page that holds it's own page
table entry.

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

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

Reviewed by:    kib
Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D55943
5809584275363d6b2f44981d8561a126a1344360 Andrew Turner 2026-04-13 11:50:47
Commit group #0: arm64
arm64: mte: cleanup cache register definitions

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

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

arm64: mte: add system register definitions

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

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

arm64: mte: configure initial state for system registers

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

Reviewed by:    andrew
Sponsored by:   Arm Ltd
Signed-off-by:  Harry Moulton <harry.moulton@arm.com>
Differential Revision:  https://reviews.freebsd.org/D55946
58de79153622145cb6fc57bc92c4de678876992f Harry Moulton 2026-04-13 11:54:38
nvme: Use passed in max_pages.
Noticed by: jhb
Sponsored by: Netflix
2b954770ddd7a4246c2100373d86ef5316becd81 Warner Losh 2026-04-13 23:30:24
x86: Mark LOCORE to prevent build failure on i386 platform
PR:     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294468
Reported by:    dan.kotowski@a9development.com
Tested by:      dan.kotowski@a9development.com
Discussed with: kib
Fixes:  https://cgit.freebsd.org/src/commit/?id=9289df1949cd ("x86: Add zen identifier helper function")
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56377
43d632779b7d1df6c96a5cc0f506c13e09a845f3 ShengYi Hung 2026-04-13 14:46:43
sound examples: Add mmap example
This example opens separate OSS capture and playback channels in mmap
mode, places them into a sync group, and starts them together so both
ring buffers advance on the same device timeline. It then monitors the
capture mmap pointer with SNDCTL_DSP_GETIPTR, converts that pointer into
monotonic absolute progress using the reported block count, and copies
newly recorded audio from the input ring to the matching region of the
output ring.

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

MFC after:      1 week
Reviewed by:    christos
Differential Revision:  https://reviews.freebsd.org/D53749
3524d4ebbe1f562dd76dc553c085386aadfd2682 Goran Mekić 2026-04-14 10:57:53
acpi_apm: Don't recurse on ACPI_LOCK in apmreadfilt
The lock is already held by the caller since it is used as the knlist
lock.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293901
Reported by:    Jiaming Zhang <r772577952@gmail.com>
Fixes:          https://cgit.freebsd.org/src/commit/?id=cc2715cf1f86 ("acpi_apm: Narrow scope of ACPI_LOCK")
8c941e313e3925b17e49b093244c159db7a112f8 John Baldwin 2026-04-14 13:25:37
asmc: add raw SMC key read/write interface
This patch adds a debugging interface to read and write arbitrary
Apple SMC keys by name through sysctl, enabling hardware exploration
 and control of undocumented features.

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

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

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

Reviewed by:    ngie, adrian, markj
Differential Revision:  https://reviews.freebsd.org/D54441
3e27114a7f961aac49d75a663a55332375d0bef3 Abdelkader Boudih 2026-04-15 04:20:52
thunderbolt: Support generic USB4 NHIs
Check a PCI device's class, subclass, and progif to figure out if it is
a USB4 NHI. nhi_identifiers is completely removed as only these generic
USB4 NHIs are supported anyway, and all remnants of ICM-supporting code
are removed too. All devices now use the HCM.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=290827
Reviewed by:    jhb, ngie
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D52861
bb36c457ea49d80ca3109ef25ca41a614f9738b8 Aymeric Wibo 2026-04-15 12:04:17
appleir: Add Apple IR receiver driver
HID driver for Apple IR receivers (USB HID, vendor 0x05ac).
Supports Apple Remote and generic IR remotes using NEC protocol.

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

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

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

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

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

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

Differential Revision:  https://reviews.freebsd.org/D55472
a85c4ab626ef52530400ace1957daaa35dd07534 Abdelkader Boudih 2026-04-14 02:29:43
asmc: add support for MacBookPro13,1
This commit adds support for the MacBookPro13,1 (late 2016, 13-inch). The SMC
keys were collected from https://logi.wiki/index.php/SMC_Sensor_Codes. Two
temperature keys are omitted because they fail to be read: TI0P (IO Proximity)
and Ta0P (Ambient Air).

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

Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/2137
b5b9c65a689457e608cc31831ed690d303d63ffa Marcus Gartner 2026-04-11 02:03:18
asmc: correctly label ASMC_KEY_FANMINSPEED as read-write
Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/2137
31744051c8a1c8baca219d93ace6e3e1a5463a45 Marcus Gartner 2026-04-11 02:02:52
Fix xhci detection on Raspberry Pi 400
If you use the FreeBSD pre-build Raspberry Pi image, it does not include
the specific .dtb file for the Raspberry Pi 400. On this hardware, it
will fall back to attempting to load the Raspberry Pi 4 .dtb file
instead.

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

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

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

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

MFC After: 5 days
Reviewed by: imp, Ali Mashtizadeh
Pull Request: https://github.com/freebsd/freebsd-src/pull/2115
7634043970078f63eea03bb8975bd3fe1e883130 Vince 2026-04-02 01:28:50
uvscom: Fix baud rate validation in uvscom_pre_param()
The switch fell through from the supported B150–B115200 cases into default
and returned EINVAL for every speed.  Break out before default so valid
rates return success, matching uvscom_cfg_param().

Signed-off-by: Weixie Cui <cuiweixie@gmail.com>
Reviewed by: imp,aokblast
Pull Request: https://github.com/freebsd/freebsd-src/pull/2110
75e7709f4f3c9e1576af45715730c286c1ec3b24 Weixie Cui 2026-03-31 10:17:28
libpmc: surface raw TSC in pmclog events
The pmclog record header carries the raw TSC for each event. Export it
in struct pmclog_ev, fix JSON output to emit it unsigned, and preserve
the installed header ABI by overlaying pl_tsc with the legacy pl_ts
storage.

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

Sponsored by: AMD
Signed-off-by: Andre Silva <andasilv@amd.com>
Reviewed by: imp, mhorne, Ali Mashtizadeh
Pull Request: https://github.com/freebsd/freebsd-src/pull/2085
fbbf71f5813b041526c4d439d9961e8a8281d291 Andre Silva 2026-03-31 20:28:04
acpi: Return "unknown D-state" in acpi_d_state_to_str() if unknown
Some ACPI debugging prints call acpi_d_state_to_str() on unset D-states
(i.e. ACPI_STATE_UNKNOWN), so return a string explicitly saying "unknown
D-state" instead of just panicking.

Fixes:          https://cgit.freebsd.org/src/commit/?id=84bbfc32a3f4 ("acpi_powerres: D3cold support")
Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
dc9ff9e5d078fd923adc3dc5426b5f219156ea43 Aymeric Wibo 2026-04-16 07:12:33
hwpstate_amd: Cache cpuid
Reviewed by:    olce
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56305
e48e9794589993da039a2f4d1c66f8fdd6421155 ShengYi Hung 2026-04-08 12:58:34
Commit group #1: ofw: bool-ify OF_hasprop()
ofw: bool-ify OF_hasprop()

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

This is style only; no functional change intended.

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

OF_getprop.9: update OF_hasprop() signature

The return type has been converted to a bool.

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

raspberry_virtgpio: fix OF_hasprop() usage

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

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

No functional change intended.

MFC after:      3 days
Sponsored by:   The FreeBSD Foundation
Fixes:          https://cgit.freebsd.org/src/commit/?id=b60cd486a652 ("ofw: bool-ify OF_hasprop()")
ce6b4973ba8c6503d3b6dc12d9e6b42ce274d912 Mitchell Horne 2026-04-16 16:05:25
clk_fixed: quiet a warning message
Frequently there are some unused/unspecified fixed clocks present in a
device tree. Each one emits a warning before it fails to attach, which
results in (sometimes many) repeated messages which are not
user-actionable.

Put this warning behind the bootverbose flag.

MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56204
8728e21bd694dbb813c149206c5c89290f9c32f5 Mitchell Horne 2026-04-16 14:13:04
arm64: mte: add tagged memory attribute
Add the Normal-Tagged memory attribute introduced with MTE.

Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D55948
aa2d89cb4263f5d638b150efb4a2e6adab4ee9d6 Harry Moulton 2026-04-16 13:30:15
mlx5e: Ensure rx timestamps are monotonically increasing
The clock calibration routine currently can result in rx timestamps
jumping backwards, which can confuse the TCP stack.
Ensure they are monotonically increasing by estimating what
we'd calculate as the next timestamp and clamp the calibration
so new timestamps are no earlier in time.

Reviewed by: kib, nickbanks_netflix.com
Tested by: nickbanks_netflix.com
Differential Revision: https://reviews.freebsd.org/D56427
Sponsored by: Netflix
ce33f96fcf2f2d0d49c406274bcc64df72fe530e Andrew Gallatin 2026-04-16 16:26:07
Commit group #2: etherswitch: Add minimal support for mv88e6170 switch
etherswitch: Add minimal support for mv88e6170 switch
680e6e30c02019c2a18c2ecfef3723b9adaa9ce5 Justin Hibbits 2026-04-16 22:35:32

e6000sw.4: Mention MV88E6171

Fixes:  https://cgit.freebsd.org/src/commit/?id=680e6e30c020 (etherswitch: Add minimal support for mv88e6170)
Reviewed by:            jhibbits
Differential Revision:  https://reviews.freebsd.org/D56455
b2aea7a042b6b6e6f1f4922e7e32b6d350a81327 Alexander Ziaee 2026-04-17 15:21:05
e6000/fdt: Ignore disabled switch ports
Instead of trying to parse a bogus node, just skip it if marked
disabled.
2fc58102426ebb3a662675da2600591922a21082 Justin Hibbits 2026-04-16 22:35:45
powerpc/pmap: Add support for page sizes found on E6500
E6500 cores (MMUv2) support all powers-of-2 page sizes from 4k to 1TB,
not just powers of 4.  By using the other page sizes (8k, 32k, etc) we
can save on TLB1 space, saving up to ~1/3 of used TLB1 entries.
1fc50a4e68a1635f76d24694fc6ea8b94193c087 Justin Hibbits 2026-02-01 03:44:21
mpc85xx: Support timebase sync on T-series devices
Freescale T-series QorIQ devices use a different register to twiddle the
timebase enable.
603a29b9b3126763c934afbed64fc43bf539469b Justin Hibbits 2026-04-16 22:36:54
powerpc/intr setup: Don't check intr name for IPI
Since whether or not the irq is an IPI is passed into
powerpc_setup_intr_int(), use this as the check for IPI instead of
checking the name string.
a249ddf07873be97967dd83df4d098ea95d0c92a Justin Hibbits 2026-04-16 22:37:01
asmc: add automatic voltage/current/power/ambient sensor detection
Apple SMCs contain numerous undocumented voltage, current, power,
and ambient light sensors. This change adds automatic detection
and registration of these sensors as sysctls.

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

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

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

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

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

Reviewed by:    adrian
Differential Revision:  https://reviews.freebsd.org/D55807
aae9068404947dd9ffd8522359d0f9dffaa70414 Abdelkader Boudih 2026-04-17 02:31:21
rge: add disable_aspm tunable for PCIe power management
Add a per-interface loader tunable dev.rge.%d.disable_aspm to
disable PCIe ASPM (L0s/L1) and ECPM on the RTL8125/8126/8127.

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

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

Reviewed by:    adrian
Differential Revision:  https://reviews.freebsd.org/D56103
4390c37b5c94b6de4cb4bdbcc3967efe74fa7517 Christos Longros 2026-04-17 02:34:55
ixgbe: improve MDIO performance by reducing semaphore/IPC delays
Each MDIO transfer takes 8ms, and all of that is spent in a set
of DELAY() calls, which is consuming a LOT of CPU.

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

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

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

Locally tested:

* C3558 (Denverton) w/ X553 backplane

Reviewed by:    kbowling
Differential Revision:  https://reviews.freebsd.org/D50295
f46d75c90f5feb87259635134dde4da328282842 Adrian Chadd 2026-04-17 17:11:53
powerpc64: fix builds
Oops, I missed 'device ix' in here, and it now requires mdio.
b4be4a7890e7f3a94acc08440e28d480434f5bb8 Adrian Chadd 2026-04-17 19:32:23
uart/pci: recover ADL AMT device after FIFO size probing
When the Alder Lake Serial-over-LAN device is put into loopback mode and
repeated writes are performed to the data register it results in the device
ending up in a non-functional state afterwards.

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

Sponsored by: Citrix Systems R&D
Differential revision: https://reviews.freebsd.org/D56107
Reviewed by: imp
45c8ddc874bb9149ed20cb46b6ef8bdd0567714c Roger Pau Monné 2026-03-27 09:55:02
uart/pci: use different probe return values
For PCI devices listed in pci_ns8250_ids return BUS_PROBE_SPECIFIC, while
for generic UART devices not explicitly listed in pci_ns8250_ids return
BUS_PROBE_GENERIC.  This allows more specific drivers to take over those
devices, and the generic UART PCI driver will only be used as a fallback.

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

Reported by: markj
Sponsored by: Citrix Systems R&D
Differential revision: https://reviews.freebsd.org/D56467
Reviewed by: markj imp
2ac5b9bd0b132ac0fb69800724dbfcab45ccc35c Roger Pau Monné 2026-04-17 12:46:39
Commit group #3: acpi_spmc(4): Small probe improvements/fixes
acpi_spmc(4): Small probe improvements/fixes

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

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

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

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

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

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

Reviewed by:    obiwac
Fixes:          https://cgit.freebsd.org/src/commit/?id=bd05b47fbd8b ("acpi_spmc(4): Small probe improvements/fixes")
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56483
0a764beb6215f067787fba1723f211b7ef0eeeb0 Olivier Certner 2026-04-17 21:02:06
kshim/usb: Add build option.
Add WITH{,OUT}_LOADER_USB to build the kshim usb library. Nothing
in-tree uses it, but this will make it easier to keep building. Updated
src.conf.5 with a few extra changes...

Sponsored by:           Netflix
4ed20e0236dd0ce64aa4d79659288a56e1b1344b Warner Losh 2026-04-18 02:41:26
dpaa2: Extract checksum statuses on ingress
In order to enable RX checksum offloading we need to check the
meta-information for the (good) frames to see if the L3/4 checksums
were calculated and if there was an error.

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

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

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

Networking

Network-related commands, library, and kernel.

ifnet: vnet_if_return(): Avoid unnecessary recursive acquisition of ifnet_detach_sxlock
vnet_if_return() will be invocked by vnet_sysuninit() on vnet destructing,
while the lock ifnet_detach_sxlock has been acquired in vnet_destroy()
already.

With this change the order of locking is more clear. There should be no
functional change.

Reviewed by:    pouria
Fixes:          https://cgit.freebsd.org/src/commit/?id=868bf82153e8 if: avoid interface destroy race
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56288
f1fae67afbb13a41d488d0e0ec66b1805925019c Zhenlei Huang 2026-04-13 04:38:43
ifnet: Move SIOCSIFVNET from ifhwioctl() to ifioctl()
SIOCSIFVNET is not a hardware ioctl. Move it to where it belongs.

Where here, rewrite the logic of checking whether we are moving the
interface from and to the same vnet or not, since it is obviously not
stable to access the interface's vnet, given the current thread may
race with other threads those running if_vmove().

MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D55880
38bd7ef62f318f791e232e217855307a9d75efa0 Zhenlei Huang 2026-04-13 04:38:44
if_clone: Make ifnet_detach_sxlock opaque to consumers
The change e133271fc1b5e introduced ifnet_detach_sxlock, and change
6d2a10d96fb5 widened its coverage, but there are still consumers,
net80211 and tuntap e.g., want it. Instead of sprinkling it everywhere,
make it opaque to consumers.

Out of tree drivers shall also benefit from this change.

Reviewed by:    kp
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D56298
e9fc0c538264355bd3fd9120c650078281c2a290 Zhenlei Huang 2026-04-13 04:38:44
Commit group #4: ifconfig: Add support for geneve (netlink)
ifconfig: Add support for geneve (netlink)

This implementation is netlink only

Differential Revision: https://reviews.freebsd.org/D55184
688e289ee904fe625d92f93680a71753d03ba2ee Pouria Mousavizadeh Tehrani 2026-04-11 18:38:41

ifconfig: Fix printf on geneve for 32-bit architectures

Replace uint64_t type with uintmax_t in printf to fix warnings
on 32-bit architectures.

Reported by:    Jenkins
Fixes:          https://cgit.freebsd.org/src/commit/?id=688e289ee904 ("ifconfig: Add support for geneve")
Differential Revision: https://reviews.freebsd.org/D55184
bc793ad78734acc4833f8f38bfb505e810c52963 Pouria Mousavizadeh Tehrani 2026-04-13 16:55:26

ifconfig: Do not build geneve with WITHOUT_NETLINK_SUPPORT

geneve(4) is netlink-only, therefore, don't build it with
WITHOUT_NETLINK_SUPPORT=1 set.

Reported by:    kp
Fixes:          https://cgit.freebsd.org/src/commit/?id=688e289ee904 ("ifconfig: Add support for geneve (netlink)")
Differential Revision: https://reviews.freebsd.org/D55184
19887b9c4cec9c6468481ef415bbf94f68592856 Pouria Mousavizadeh Tehrani 2026-04-16 22:40:02
iflib: Fix panic observed while doing sysctl -a with if_bnxt unload
Observed below kernel panic calltrace while performing sysctl -a
operation while unloading the if_bnxt driver,

Fatal trap 9: general protection fault while in kernel mode

KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe02a7569940
vpanic() at vpanic+0x136/frame 0xfffffe02a7569a70
panic() at panic+0x43/frame 0xfffffe02a7569ad0
trap_fatal() at trap_fatal+0x68/frame 0xfffffe02a7569af0
calltrap() at calltrap+0x8/frame 0xfffffe02a7569af0

trap 0x9, rip = 0xffffffff80c0b411, rsp = 0xfffffe02a7569bc0, rbp = 0xfffffe02a7569be0 ---
sysctl_handle_counter_u64() at sysctl_handle_counter_u64+0x61/frame 0xfffffe02a7569be0
sysctl_root_handler_locked() at sysctl_root_handler_locked+0x9c/frame 0xfffffe02a7569c30
sysctl_root() at sysctl_root+0x22f/frame 0xfffffe02a7569cb0
userland_sysctl() at userland_sysctl+0x196/frame 0xfffffe02a7569d50
sys___sysctl() at sys___sysctl+0x65/frame 0xfffffe02a7569e00
amd64_syscall() at amd64_syscall+0x169/frame 0xfffffe02a7569f30
fast_syscall_common() at fast_syscall_common+0xf8/frame 0xfffffe02a7569f30

Root Cause:
iflib adds per-device sysctl nodes under the device tree using the device
sysctl context. Some of those nodes are counter sysctl that point at fields
inside txq→ift_br. When the if_bnxt driver is unloaded, iflib_device_deregister
runs and calls iflib_tx_structures_free, which frees the txqs ift_br. The device
sysctl tree is only freed when the device is destroyed. If sysctl -a runs during
unload, it can still traverse the device tree and call sysctl_handle_counter_u64
for those nodes. The handler does counter_u64_fetch(*(counter_u64_t *)arg1).
By then arg1 can point into freed memory and leads to use after free type kernel panic.

Fix:
flib now uses its own sysctl context for all iflib-related nodes
instead of using device’s context. And iflib sysctl context is now
removed before any queue/ring memory is freed.

MFC after:      2 weeks
Reviewed by:    gallatin, ssaxena, #iflib
Differential Revision: https://reviews.freebsd.org/D55981
d2b96f654a672f6059c5c623c276dcd76841ed12 Sreekanth Reddy 2026-04-13 06:28:08
iflib: drain admin task and fix teardown order on register failure
When IFDI_ATTACH_POST() fails (or netmap attach fails), iflib tears down with
ether_ifdetach(), taskqueue_free(ifc_tq), and IFDI_DETACH(). CTX_LOCK is still
held after ether_ifattach. ether_ifdetach() and taskqueue_drain(admin) must not
run under CTX_LOCK.

Teardown ordering (match iflib_device_deregister):

- Free the per-interface admin taskqueue after IFDI_DETACH / IFDI_QUEUES_FREE, not before.
- Drop IFNET_WLOCK() across IFDI_DETACH / IFDI_QUEUES_FREE so driver detach can sleep in
LinuxKPI workqueue drain, then retake IFNET_WLOCK() before iflib_free_intr_mem and fail_unlock.

MFC after:      2 weeks
Reviewed by:    gallatin, kgalazka, #iflib
Differential Revision: https://reviews.freebsd.org/D56316
439132310ae1f623f6c0a3dc241d0a34e98e040b Sumit Saxena 2026-04-13 06:33:46
routing: Fix use-after-free in finalize_nhop
FIB_NH_LOG calls the `nhop_get_upper_family(nh)` to read
`nh->nh_priv->nh_upper_family` for failure logging.
Call FIB_NH_LOG before freeing nh so failures are logged
without causing a panic.

MFC after: 3 days
7d38eb720a8d8345949986d779e785984ae19ae0 Pouria Mousavizadeh Tehrani 2026-04-14 09:36:53
inpcb: remove last use of relic u_quad_t
76b90c1d31b9bbe803f1d521398e0c1a10553a3b Gleb Smirnoff 2026-04-14 16:02:00
Commit group #5: tcp_close: Use in6_pcbdisconnect for INET6 sockets
tcp_close: Use in6_pcbdisconnect for INET6 sockets

This also fixes the LINT-NOINET builds.

Fixes:          https://cgit.freebsd.org/src/commit/?id=40dbb06fa73c ("inpcb: retire INP_DROPPED and in_pcbdrop()")
4fadf2466468dd6dcb6cf9e3739ed696a18c1bb4 John Baldwin 2026-04-14 18:07:51

inpcb: make in6_pcbdisconnect() just like in_pcbdisconnect()

Allow to be passed with already unconnected inpcb.

Fixes:  https://cgit.freebsd.org/src/commit/?id=4fadf2466468dd6dcb6cf9e3739ed696a18c1bb4
6b00c652db7f43c698e8e3a902f266025c3126ac Gleb Smirnoff 2026-04-14 23:23:26
in_pcb: Fix RIPCB_HASH in kernels without INET or INET6
Only use hashes for protocols that are enabled in the kernel
configuration.

Fixes:          https://cgit.freebsd.org/src/commit/?id=ece716c5d347 ("raw ip: move hash table manipulation to inpcb layer")
0b77f92575cdfecb9920041c7c1d4cc26245e2ec John Baldwin 2026-04-14 18:25:19
if_geneve: Fix build without INET or without INET6
f4e5b45b11628416f596b3aec2ccd3056800a171 John Baldwin 2026-04-14 18:28:31
ifconfig: add CMIS support for 400GbE optics
Add support for CMIS based optics, typically used by 400GbE
and faster ethernet optics.   The CMIS standard requires paged
support for i2c ioctls.

This has been tested on an Nvidia ConnectX-7 and Broadcom
Thor2 400GbE NIC, and I have verified that optics vendor information,
light levels, and temperatures match the information provided by
various vendor tools.

Differential Revision: https://reviews.freebsd.org/D56265
Reviewed by: kbowling, sumit.saxena_broadcom.com
Sponsored by: Netflix
963f1a5455c9f94457c1fa122d18ab9c059db834 Andrew Gallatin 2026-04-05 21:43:48
Commit group #6: lro: move pkt rejection checks to leafs to avoid queueing non-LRO'able pkts
lro: move pkt rejection checks to leafs to avoid queueing non-LRO'able pkts

When lro mbuf queuing is enabled, we should not queue easily
reject-able packets. Queuing them does a bit of extra work (sorting,
timestamps) and can potentially delay urgent packets such as LACP
PDUs. This change moves simple rejection tests from lro_rx_common()
into lro_rx and (more importantly) into tcp_lro_queue_mbuf().

Note this change only moves the easy checks on forwarding and packet
metadata, where the rejection criteria is already hot in cache. It
does not move parsing and looking inside the packet to verify the
ether protocol, ip protocol, etc. This could be done, but we risk
essentially doubling the cache misses per-packet by doing so.

Differential Revision: https://reviews.freebsd.org/D56337
Reviewed by: rrs, tuexen
Sponsored by: Netflix
f707cc00ed124828e367b020d6b417842321f641 Andrew Gallatin 2026-04-13 21:33:17

tcp lro: fix vnet handling

Reported by:            Shawn Webb
Reviewed by:            glebius, rrs
Fixes:                  https://cgit.freebsd.org/src/commit/?id=f707cc00ed12 ("lro: move pkt rejection checks to leafs to avoid queueing")
Sponsored by:           Netflix, Inc.
Differential Revision:  https://reviews.freebsd.org/D56420
2d13620c6e1be7f8136095f648a6b824158d0941 Michael Tuexen 2026-04-15 20:31:48
loopback: Account for packet drops
Make loopback packet drops more obvious by reporting them
in interface stats visable via netstat -ni
Since loopback uses netisr, packets can be dropped if the
netisr queue overflows.  These drops are visible via
netisr -Q, but its not an obvious place to look.

Differential Revision: https://reviews.freebsd.org/D56356
Reviewed by: glebius, tuexen
Sponsored by: Netflix
956acdce0505ca8028d287d3b44789c623c8f37e Andrew Gallatin 2026-04-14 19:43:28
routing: Make ip[6]_tryforward() FIB-aware for local traffic
`ip_tryforward()` and `ip6_tryforward()` checks whether the destination
address is local or not without considering if it belongs to the current FIB.
If the destination is local but not in our FIB, forward it instead
of returning it to ip_input().

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292319
Reviewed by:    zlei
MFC after:      1 week
MFC to:         stable/15
Differential Revision: https://reviews.freebsd.org/D56353
bf41d86df0d9dc4a1342c579f4e72db3c66b3443 Pouria Mousavizadeh Tehrani 2026-04-11 12:58:28
ip_mroute: Fix a lock leak in X_ip_mforward()
If a FIB does not have a router configured, X_ip_mforward() would leak a
lock.  Plug the leak.

The IPv6 counterpart did not have such a check.  It wouldn't send an
upcall to a non-existent router anyway due to the router_ver check, but
we should verify that a router is present anyway.

Add regression test cases to exercise these code paths.

Reported by:    Claude Opus 4.6
Fixes:          https://cgit.freebsd.org/src/commit/?id=0bb9c2b665d9 ("ip6_mroute: FIBify")
Sponsored by:   Klara, Inc.
Sponsored by:   Stormshield
18b7115cba2f698909a4801dc2cc1b04b1f4f210 Mark Johnston 2026-04-15 15:01:58
bpf: fix handling the read timeout on ppc64
On platforms other than amd64, BIOCSRTIMEOUT is equal to
BIOCSRTIMEOUT32. Therefore, running the COMPAT_FREEBSD32 code
basically clears tv_usec on big endian platforms. When tcpdump is
used, the timeout requested is 100ms, which gets cleared to 0 on
ppc64 platforms. This results in tcpdump showing the packets only
when the read buffer is full.
Thanks to kib for guiding me to the correct fix.

Reported by:            ivy
Reviewed by:            adrian, kib
MFC after:              3 days
Differential Revision:  https://reviews.freebsd.org/D56399
04b994d19eec68a6b5d27ff4b0fa223a05f00e1f Michael Tuexen 2026-04-15 19:24:05
nd6: Add support for route information (RFC 4191)
Implement RFC 4191 by handling received Router Adverisement (RA)
packets with route information option.
For default routes, use the route information's lifetime and
preference to overwrite the RA's lifetime/preference.
Also install and update more-specific route prefixes with the
option's lifetime and expire them when their lifetime elapses.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=263982
Reviewed by:    markj
Tested by:      Marek Zarychta <zarychtam@plan-b.pwste.edu.pl>
Relnotes:       yes
Differential Revision: https://reviews.freebsd.org/D55449
c8d25804f56ae7c35eaa492b6110807a2675d41a Pouria Mousavizadeh Tehrani 2026-04-16 14:23:49
in_mcast: Fix a lock leak in inp_set_source_filters()
MFC after:    3 days
Reported by:    Claude Opus 4.6
bebc1a5b09e358b420077a1b5c0f85f8e7f0812f Mark Johnston 2026-04-16 19:57:57
tcp: use RFC 6191 for connection recycling in TIME-WAIT
Implement the criteria specified in RFC 6191 for recycling TCP
connections in TIME-WAIT.

Reviewed by:            rscheff, Marius Halden
Sponsored by:           Netflix, Inc.
Differential Revision:  https://reviews.freebsd.org/D56321
3a54aa3b0911bef15e014b8a8185e116efb0a918 Michael Tuexen 2026-04-17 07:11:41
Commit group #7: pf
pf: fix error handling in pf_sourcelim_add()

There are two issues in pf_sourcelim_add() error path:
  - stale pointers are left in pf_sourcelim_id_tree_inactive when
    duplicate source limiter instance is found in pf_sourcelim_nm_tree

  - overload table may leak when insertion of new source limiter instance
    fails.

Both issues reported and patch submitted by:
    Renaud Allard <renaud () allard ! it>

OK sashan@

Obtained from:  OpenBSD, sashan <sashan@openbsd.org>, 32063577ec
Sponsored by:   Rubicon Communications, LLC ("Netgate")
05ac1013984ced5b8b57430fe92a7074e34054ce Kristof Provost 2026-04-16 13:49:26

pf: pf_frag_compare() should not be using subtraction to compare fragment IDs

Issues reported and patch submitted by:
    Renaud Allard <renaud () allard ! it>

OK sashan@

Obtained from:  OpenBSD, sashan <sashan@openbsd.org>, 747740863c
Sponsored by:   Rubicon Communications, LLC ("Netgate")
5b7192230a15bbf2378b8f74278d21d4766c5110 Kristof Provost 2026-04-16 13:51:54

pf: use correct address family in pfr_pool_get()

pfr_pool_get() in call to pfr_prepare_network()must use af
instead of hardcoded AF_INET

Issues reported and patch submitted by:
    Renaud Allard <renaud () allard ! it>

OK sashan@

Obtained from:  OpenBSD, sashan <sashan@openbsd.org>, 8e156a5ebe
Sponsored by:   Rubicon Communications, LLC ("Netgate")
3c9cd6e4dc59202f2b150a5456541629b633af3b Kristof Provost 2026-04-16 13:53:15
in_mcast: Avoid calling sysctl_wire_old_buffer() in an epoch section
Wiring a virtual address range may require the thread to sleep, and this
is not permitted in an epoch section.

MFC after:      1 week
c1b514c88c76a4de906775d47b06388e62ab6845 Mark Johnston 2026-04-17 12:42:54
iflib: ignore reclaim coalescing when low on tx descriptors
If we are low on TX descriptors, bypass iflib_txq_can_reclaim()
and force a reclaim. This is intended to reduce the number of
output drops under heavy load when using simple transmit.

Differential Revision: https://reviews.freebsd.org/D56339
Sponsored by: Netflix
52e7958702be469a61a5e3173c20a08fc0721b4d Andrew Gallatin 2026-04-17 15:52:36
Commit group #8: iflib: accurately count bytes/segments for TSO
iflib: accurately count bytes/segments for TSO

When using software based ifnet counters, iflib has not factored
TSO into account when reporting the segments and bytes sent.
So it will underreport NIC bandwidth by a small percent,
and will undercount sent segments by a large factor.
Fix this by calculating the number of added segments the NIC
will send, and add header size multiplied by that number
to arrive at a correct accounting of segments and bytes sent.
This makes these software counters directly comparable to
hardware counters.

Doing this requires moving the calculation into iflib_encap() where
we have already parsed the packet and know the header size, MSS, etc.

Differential Revision: https://reviews.freebsd.org/D56338
Sponsored by: Netflix
3fade68cfdf95ee0b517b5d69b270bd8da633404 Andrew Gallatin 2026-04-17 15:45:22

iflib: fix book keeping

iflib_txq_drain() returns the number of consumed entries. In the case
of TSO, a single entry can contain multiple TCP packets.

Reported by:            Ricardo Branco, David Wolfskill
Reviewed by:            gallatin
Fixes:                  https://cgit.freebsd.org/src/commit/?id=3fade68cfdf9 ("iflib: accurately count bytes/segments for TSO")
Sponsored by:           Netflix, Inc.
Differential Revision:  https://reviews.freebsd.org/D56509
cca22c36c306dfabe13b1d1de10e8d27ef3c3bce Michael Tuexen 2026-04-18 19:57:40
carp: define CARP_AUTHLEN for carp_authlen field
Replace the bare 7 with a named constant.
d9e7dd4a19b81a78a801973f8f5231f46a6d20b8 Christos Longros 2026-04-17 18:32:01
Commit group #9: nd6
nd6: Break nd6_prefix_update out of prelist_update

if PI exists, call prefix_update, instead of doing it inside
the prelist_update.
no functional change intended.

Reviewed by: markj
Differential Revision: https://reviews.freebsd.org/D56130
d96e8cb4e72847ac545423460af122fa14b2b1f1 Pouria Mousavizadeh Tehrani 2026-04-16 22:18:02

nd6: Break pfxrtr_add out of nd6_prelist_add

Updating defrouter only required by `prelist_update()`.
since `nd6_prelist_add()` is a public function, exclude unsed
dr logic from it.

Reviewed by: markj
Differential Revision: https://reviews.freebsd.org/D56131
ced1de238fbe620e2b110c34561d63656bd2043c Pouria Mousavizadeh Tehrani 2026-04-16 22:19:18

nd6: Change prelist_update return type to void

The return value of `prelist_update()` is unused.

Reviewed by: markj, zlei
Differential Revision: https://reviews.freebsd.org/D56132
d022dd82059b6173505377d47e3d0048906f8311 Pouria Mousavizadeh Tehrani 2026-04-16 22:20:47

nd6: Ignore entire PI if violates RFC 4862 section 5.5.3

Ignore prefix information update earlier in `prelist_update()`.
If PI is invalid or autonomous bit is unset, we better to let our
SLAAC address expire and if we don't have any previous matching
prefix, better not to create new one.
Because either our router don't want us to have one anymore, or
the very RA is malicious.

Reviewed by: ae
Differential Revision: https://reviews.freebsd.org/D56133
05f2acd34483e9a2aa3d3b3d53e398cadab199ad Pouria Mousavizadeh Tehrani 2026-04-16 22:27:33

nd6: Remove anycast check in prelist_update

RFC 2462 is obsoleted by RFC 4862 and it made statements more
clear than before.
Considering SLAAC can't create anycast addresses by itself, remove
its check.
While here, update comments based on RFC 4862.

Reviewed by: markj, zlei
Differential Revision: https://reviews.freebsd.org/D56134
e8081190617741e348fc85f17ff90b066407fc0f Pouria Mousavizadeh Tehrani 2026-04-16 22:31:52

nd6: Break nd6_prefix_lifetime_update out of prelist_update

Logic of updating prefix lifetime is big enough that deserves
its own function.
While here, fix style.

Reviewed by: markj
Differential Revision: https://reviews.freebsd.org/D56135
5f27592e149fbbb6318ef6c4b72482e1a7a41ef4 Pouria Mousavizadeh Tehrani 2026-04-17 14:16:51

nd6: Remove goto and unused condition in prelist_update

While here, style it.

Reviewed by: markj, zlei
Differential Revision: https://reviews.freebsd.org/D56136
72043945c3c6e924ac57ace76ec0a4447d05d905 Pouria Mousavizadeh Tehrani 2026-04-17 16:57:47
net80211: radiotap: add more VHT flags, and struct
Add the struct for VHT information and flags for the known and flag
field as documented on radiotap.org.  iwlwifi has started filling in
these details.

While here, add Copyright information for all the additions in the
last years.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
125b09de09ec5ca1939de0207090513453b5908e Bjoern A. Zeeb 2026-04-14 15:21:27
routing: Initialize V_rt_numfibs earlier during boot
V_rt_numfibs can be set at compile time (with the ROUTETABLES kernel
config option) or boot time (with the net.fibs tunable).
vnet_rtables_init(), running during SI_PROTO_DOMAIN, was checking the
tunable and updating V_rt_numfibs accordingly, but that means that
earlier SYSINITs, such as vnet_mroute_init(), see the compile-time value
for V_rt_numfibs before it gets corrected in vnet_rtables_init().

Fix this by initializing V_rt_numfibs earlier, so that SYSINITs are less
likely to use the wrong value.

Add a comment describing the weird, preexisting semantic of resetting
rt_numfibs to 1 in VNET jails.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294510
Reviewed by:    glebius, zlei, pouria
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56473
2b264cb802b9b45306b1f3dfd3e9d4edfb23b2f6 Mark Johnston 2026-04-18 12:20:00
routing: Use a better error number in sysctl_fibs()
ENOTCAPABLE is for capsicum and its use here is inappropriate.  In
particular, note that syscallret() treats this value specially.

Reviewed by:    glebius, pouria, zlei
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56481
8de0fc10a1c2d65bdb39eff862266ab1f87902c8 Mark Johnston 2026-04-18 12:21:22
tcp: Allocate t_tcpreq_info on demand
When TCP_REQUEST_TRK is enabled, the tcb grows by 600 bytes
to accommodate the t_tcpreq_info[MAX_TCP_TRK_REQ] array.
Even when the option is enabled, not every connection is using
this feature.  So let's allocate it on-demand, and save 600
bytes in the common case.

Sponsored by: Netflix
Reviewed by: rrs, tuexen
Differential Revision: https://reviews.freebsd.org/D56484
29336f1c9d25c32896620a00a6218c332b37c4b7 Andrew Gallatin 2026-04-17 20:01:36

System administration

Stuff in man section 8 (other than networking).

diskinfo: Align and alphabetize options
MFC after:    3 days
afe57c12e97d5c8773d829c2914f35462a7cdd0c Alexander Ziaee 2026-04-13 01:59:33
rc.d/NETWORKING: remove the NETWORK alias
NETWORKING is the documented placeholder, while
/etc/rc.d/NETWORKING still provides the legacy alias
NETWORK.

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

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

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

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293652
Reviewed by:    michaelo, jlduran
Relnotes:       yes
Differential Revision:  https://reviews.freebsd.org/D56300
47a9af4b39bf174efed7f6d43644d4b0bc0c9886 Aotian Cao 2026-04-08 07:58:00
periodic/daily: show verbose zpool status when errors are detected
When zpool status -x reports errors, the output only shows basic error
counts without identifying which files are affected. Replace the
unconditional echo of the brief status with verbose output (zpool
status -v) in the error path so administrators can see exactly which
files have been damaged.

The healthy/no-pools path still shows the brief status.

PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=223243
Signed-off-by: Po Han Chen <hypery11@gmail.com>
Reviewed by: imp, jlduran, asomers
Pull Request: https://github.com/freebsd/freebsd-src/pull/2089
92378e0405a8caf77372cd1028970b1f7c7cf364 Po Han Chen 2026-03-23 05:00:29
pmcstat: print raw TSC in decoded log output
Extend pmcstat -R output to include the raw TSC for each decoded record
and print tsc_freq from the initialize record so TSC deltas can be
converted to elapsed time.

Update the pmcstat documentation to describe the decoded output and the
architecture-specific TSC behavior.

Sponsored by: AMD
Signed-off-by: Andre Silva <andasilv@amd.com>
Reviewed by: imp, mhorne, Ali Mashtizadeh
Pull Request: https://github.com/freebsd/freebsd-src/pull/2085
ee12645ec737eb940554769af2c275524ea20d37 Andre Silva 2026-03-31 20:28:39
virtual_oss: Introduce virtual_oss_default_control_device rc variable
The -t option gives the user the ability to create a control device for
a given virtual_oss(8) instance, so that the instance's configuration
can be manipulated during runtime with virtual_oss_cmd(8). As is
expected, the control device's name is not known, since it is specified
by the user.

This patch introduces a virtual_oss_default_control_device rc variable,
which defaults to "vdsp.ctl". The goal of this is that third-party
programs and scripts can access the control device of the default
virtual_oss(8) configuration without guessing. This is especially useful
for sbin/devd/snd.conf which deals with hot-swapping sound devices using
virtual_oss(8).

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D55670
70e27ecba51892cbe4cc94bbf785c6dd261dfd57 Christos Margiolis 2026-04-16 14:51:02
stand/libofw: make OF_hasprop() part of the library
Currently it is only needed by powerpc ofwfdt.c, and defined statically
there. Make it available as part of libofw, mirroring what we have in
the kernel.

Two small tweaks are made to the implementation:
  1. Return type is changed to bool
  2. Return 'true' when OF_getproplen() == 0. This matches the expected
     semantics of the kernel version, described in OF_hasprop(9).

Reviewed by:    manu, imp, adrian
MFC after:      3 days
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56429
48a05f833c7d0c089d37522cc234039ec823edf4 Mitchell Horne 2026-04-16 17:48:46
rtadvd(8): Set route info lifetime to 0 during shutdown
RFC 4191 section 3.1: if the received route's lifetime
is zero, the route is removed from the Routing Table if present.
Also, do not tell route information option is unknown.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=263982
Reviewed by:    markj
Differential Revision: https://reviews.freebsd.org/D55448
4dc6522d57c748cdaddd8327909574360a3de517 Pouria Mousavizadeh Tehrani 2026-04-01 13:29:15
pfctl: fix how source and state limiters are wired into rbtrees
i messed up when we added support for names on these things. the
id and names are each supposed to be unique, which is checked by
putting the one limiter into an rb tree based on their id and another
based on their name. unfortunately i used the same RBT_ENTRY fields
for both trees, which meant using both trees on the same limiter
corrupted the topology, which goes badly when you want to use
multiple limiters.

found by, tested, and ok dgl@ (who is not me, this is not a typo)
ok jmatthew@

Obtained from:  OpenBSD, dlg <dlg@openbsd.org>, f951d642cc
Sponsored by:   Rubicon Communications, LLC ("Netgate")
6f8ea66cbcf2e2e5bc82e8f0c2e0038a3c7d6a9e Kristof Provost 2026-04-16 09:16:29
loader.efi: Defer efi_translate(e_entry) until after bi_load
bi_load itself loads various things into the staging area which can
cause it to grow, which may result in the staging area moving, including
the kernel. Therefore the address we get for the kernel entry point
prior to bi_load may not be correct afterwards when we actually call it,
and so we must defer the translation.

On arm and riscv (but not arm64, which predates both of them in
loader.efi and did not gain a copy of arm's added printf when arm
support was added) we also printf this entry point to the console, which
we can no longer do since bi_load calls ExitBootServices, so remove this
printf that, in practice, seems to not be so useful, given nobody ever
felt the need to add it to arm64. If anyone really feels this is an
important printf to have then bi_load will need to be split so we can
call printf after all the loading and potential reallocation of the
staging area, but before ExitBootServices is called.

We may also want to make this code more uniform and shared between the
three architectures here, since there isn't much architecture-specific
about this (and something like the RISC-V boot hart protocol could
easily be made an MD hook).

Reviewed by:    imp
Fixes:          https://cgit.freebsd.org/src/commit/?id=0cafabf97fae ("Add support for arm64 to loader.efi and boot1.efi")
Fixes:          https://cgit.freebsd.org/src/commit/?id=ea7796a9ae6b ("EFI: don't call printf after ExitBootServices, since it uses Boot Services")
Fixes:          https://cgit.freebsd.org/src/commit/?id=2192efc03bc4 ("RISC-V boot1.efi and loader.efi support")
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56431
ab1d659e78e454995b7c2b4566e035269b215e48 Jessica Clarke 2026-04-17 14:20:12
boot1.chrp: Improve comment for the SLOF hack
Since this original comment was written, the actual issue in SLOF
was diagnosed and documented in commit 424089a0fc, which fixed it
for loader(8).  Update the comment in boot1 to be more informative
to future readers.

MFC after:      3 days
Reviewed by:    jhibbits, adrian
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D56470
eb0279550d52962241b4178101cd7f7d732eb682 Lexi Winter 2026-04-17 16:56:33
ping6: treat setsockopt failures as fatal
ping6 needs IPV6_RECVPKTINFO and IPV6_RECVHOPLIMIT to process
incoming replies. When these options fail, replies are silently
dropped and ping6 appears to hang. Use err(3) instead of warn(3)
so the user gets a clear error and immediate exit.

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

Reviewed by:    pouria, jlduran, glebius
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56237
9a4a9f623bbaf991b3ba580593d47f2ee9f7b03b Christos Longros 2026-04-17 18:19:24
stand/common/load_elf: Do kernel module relocations for PPC
reloc_ptr() skips relocations for the kernel module, because on most
platforms the kernel is ET_EXEC and this is not required.  On PPC,
the kernel is ET_DYN and we need to relocate here, otherwise the
module metadata will not be loaded properly and the kernel module
will have an incorrect version, preventing module dependencies from
resolving.

This fixes loading kernel modules from loader.conf on powerpc.

Diagnosed by:   jrtc27
Reviewed by:    jrtc27, adrian
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D56457
ba94d75749721fae999f756cb227638f9d4398a8 Lexi Winter 2026-04-18 12:07:10
service(8): Replace indentation in usage()
The -d option was indented with spaces instead of tabs, and this broke
formatting.

Before:

-d                Enable debugging of rc.d scripts
-j              Perform actions within the named jail

After:

-d              Enable debugging of rc.d scripts
-j              Perform actions within the named jail

MFC after:      1 week
554f5aa526266057672740e22af0a75cc32bddd5 Christos Margiolis 2026-04-19 10:40:31

Libraries

libarchive: merge from vendor branch
libarchive 3.8.7

Important bugfixes:
 #2871 libarchive: fix handling of option failures
 #2897 iso9660: fix undefined behavior
 #2898 RAR: fix LZSS window size mismatch after PPMd block
 #2900 CAB: fix NULL pointer dereference during skip
 #2911 libarchive: do not continue with truncated numbers
 #2919 CAB: Fix Heap OOB Write in CAB LZX decoder
 #2934 iso9660: fix posibble heap buffer overflow on 32-bit systems
 #2939 cpio: Fix -R memory leak
 #2947 libarchive: lzop and grzip filter support

Important bugfixes between 3.8.5 and 3.8.6:
 #2860 bsdunzip: fix ISO week year and Gregorian year confusion
 #2864 7zip: ix SEGV in check_7zip_header_in_sfx via ELF offset validation
 #2875 7zip: fix out-of-bounds access on ELF 64-bit header
 #2877 RAR5 reader: fix infinite loop in rar5 decompression
 #2878 mtree reader: Fix file descriptor leak in mtree parser cleanup
       (CWE-775)
 #2892 RAR5 reader: fix potential memory leak
 #2893 RAR5: fix SIGSEGV when archive_read_support_format_rar5 is called
       twice
 #2895 CAB reader: fix memory leak on repeated calls to
       archive_read_support_format_cab

Obtained from:  libarchive
Vendor commit:  ded82291ab41d5e355831b96b0e1ff49e24d8939
MFC after:      1 week
eb5165bb491138f60d9004bc4c781490016d9288 Martin Matuska 2026-04-13 13:47:17
lib/libifconfig: Fix pointer-sign warnings
Fix all pointer-sign warnings generated when compiling libifconfig.

One of these warnings comes from the misuse of snl_add_msg_attr_string
for a byte array.  Though userland treats carpr_key as a string, it is
actually an array of bytes.  Handle it as such in libifconfig.

While here, fix a small consistency nit in ifconfig_sfp_get_sfp_dump.

Signed-off-by: Ryan Moeller <rmoeller.dev@gmail.com>
Reviewed by: imp, zlei
Pull Request: https://github.com/freebsd/freebsd-src/pull/1850
20cd1b475a1ef9dfca30726999aa1b9a02d5bc39 Ryan Moeller 2025-09-18 15:04:35
libpfctl: fix add state/source limiter
When processing the return data from these calls pass the limiter
pointer, not the limiter pointer pointer.

Sponsored by:   Rubicon Communications, LLC ("Netgate")
13b4a14c719ab7c65ccaab86ddc79f0edc312aa3 Kristof Provost 2026-04-16 12:30:35
libarchive: Update configuration
PR:           https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294577
MFC after:      1 week
Reviewed by:    mm
Differential Revision:  https://reviews.freebsd.org/D56468
05bbe5e3883492dd2afa52039da1fac45c5059a0 Dag-Erling Smørgrav 2026-04-18 08:25:31
mixer(3): Rename _mixer_readvol() to mixer_readvol()
No functional change intended.

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
c39237a4fd2b1472e452052103156c915942d070 Christos Margiolis 2026-04-18 11:50:04

Filesystems

-- no commits in this category this week --

Kernel

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

compat/linux: Add Linux i2c-dev ioctl compatibility support
Implement Linux I2C ioctl translation in the Linux compatibility layer
and wire iicbus cdevs up for in-kernel rdwr handling.
Support common i2c-dev requests including SLAVE, FUNCS, and RDWR,
while rejecting unsupported 10-bit and SMBus operations.

Signed-off-by:  YAO, Xin <mr.yaoxin@outlook.com>
Reviewed by:    imp, adrian, pouria
Differential Revision: https://reviews.freebsd.org/D56251
26740e8f80da17c78bee6fa322e6bb1f2669be5c YAO, Xin 2026-04-13 12:28:48
if_geneve: Add Support for Geneve (RFC8926)
geneve creates a generic network virtualization tunnel interface
for Tentant Systems over an L3 (IP/UDP) underlay network that provides
a Layer 2 (ethernet) or Layer 3 service using the geneve protocol.
This implementation is based on RFC8926.

Reviewed by:    glebius, adrian
Discussed with: zlei, kp
Relnotes:       yes
Differential Revision: https://reviews.freebsd.org/D54172
e44d2e941e8ebd74e6a1b1fdbed83fe86671cbc6 Pouria Mousavizadeh Tehrani 2026-04-11 14:12:01
linux: add sysfs filetype support for Linux statfs()
Added MAGIC number below and map to linsysfs in bsd_to_linux_ftype()

This maps:
  - `linsysfs` -> `LINUX_SYSFS_MAGIC` (`0x62656572`)

Signed-off-by: YAO, Xin <mr.yaoxin@outlook.com>

Reviewed by:    emaste
Pull request:   https://github.com/freebsd/freebsd-src/pull/2119
a3c457398f269c913aaa4d9dedcc72a70c02e845 YAO, Xin 2026-04-04 14:02:59
inpcb: retire inp_vnet
Now that a functional inpcb can not outlive its socket, just use socket's
vnet pointer.
9b76228006d8f0e45dea03d305eeac587d7a8500 Gleb Smirnoff 2026-04-14 16:02:00
qcom_gcc: Only build on arm64 for kernels with FDT
This fixes the build of the LINT-ACPI kernel.

Fixes:          https://cgit.freebsd.org/src/commit/?id=4e3fdced7f78 ("qcom_gcc: migrate the MSM8916 support to qcom_gcc")
c48381df77e15fda271555dcd5ef0cbbbd7cd9bf John Baldwin 2026-04-14 18:35:16
sys/time: appease gcc -Wtype-limits
In environments where time_t is 32 bits, including the 32-bit library
build on amd64, the overflow being tested for cannot happen, and gcc
complains with -Wtype-limits, causing the gcc build to fail.  Work
around this by ifdef'ing out the saturation code on i386.

Reviewed by:    imp, jfree
Discussed with: markj
Fixes:  https://cgit.freebsd.org/src/commit/?id=e3799530b3ba ("sys/time: Add saturating sbt conversions")
Differential Revision:  https://reviews.freebsd.org/D56369
00dccc3164c6dff38350a1baeeea7238acf2efc3 Ryan Libby 2026-04-15 08:08:37
linuxkpi: Fix an off-by-one error in the kfifo implementation
"total" is the number of slots in the array, so wraparound needs to be
done when "first" or "last" is greater than or equal to the number of
slots.

Note that no consumers of the code are currently connected to the kernel
build.

Reported by:    Stanislav Fort <stanislav.fort@aisle.com>
Reviewed by:    bz, emaste
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56371
52d2fc702b85d56b35f8828fe7efca3cde0d25b7 Mark Johnston 2026-04-15 13:33:04
arm64: Define the .iplt section placement.
Ensure that the .plt and .ipld sections are in the executable memory segment.

MFC after:      1 week
Reviewed by:    andrew
Differential Revision: https://reviews.freebsd.org/D56403
1dddb580f950a27fb9859b2879755dde114c9d8b Michal Meloun 2026-04-15 09:32:54
vm_swapout: Remove a special case from vm_swapout_map_deactivate_pages()
John points out that this probably should have been removed in commit
472888018ce, which removed a special case where we'd set desired=0 if
the target process has P_INMEM clear.  It's not obvious to me that the
desired=0 case can't arise by setting an RSS limit to 0, but I'm not
sure why we'd try to go the extra mile in that case anyway.

Reported by:    jhb
Reviewed by:    kib
MFC after:      2 weeks
Fixes:          https://cgit.freebsd.org/src/commit/?id=472888018ce1 ("proc: Remove kernel stack swapping support, part 6")
Differential Revision:  https://reviews.freebsd.org/D56140
b6b0afefec4739923897d984448704ce34a21e6b Mark Johnston 2026-04-15 18:00:38
glabel(8): Fix debug message for already existing labels
Remove the duplicate (incorrect) name.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294542
Reviewed by:    markj
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56400
92c69c791c436eb966fab806393b70e53cde6874 Michael Osipov 2026-04-14 08:38:59
Commit group #10: kern_descrip.c: Clarify allocation and freeing of fd map in fdgrowtable()
kern_descrip.c: Clarify allocation and freeing of fd map in fdgrowtable()

When expanding a file table, the condition for allocating a new map
is NDSLOTS(nnfiles) > NDSLOTS(onfiles) whereas for freeing the old map
is NDSLOTS(onfiles) > NDSLOTS(NDFILE).

If a previously expanded file table were to be expanded slightly again
such that the map did not need to be increased, then fdgrowtable could
still free the current map.

This does not happen currently as nnfiles is rounded up to a multiple of
NDENTRIES at the beginning of fdgrowtable() so that every enlargement
after the first enlargement will always require a larger map.

Though the logic is currently correct, it is unclear and should the
earlier rounding up of nnfiles be relaxed or remove, the logic would
be incorrect. This patch therefore adds comments and invariants checking
the size of the table and map, and updates the map free condition so
that it is absolutely clear that the old map will only be deallocated
if a new map has been allocated.

Signed-off-by: Kristofer Peterson <kris@tranception.com>
Reviewed by: kib, kevans
Pull Request: https://github.com/freebsd/freebsd-src/pull/2029
e75b324c93a14ab68d79d9247943ae10da184657 Kristofer Peterson 2026-02-18 13:56:53

file: Fix a format string assertion

Reported by:    Jenkins
Fixes:          https://cgit.freebsd.org/src/commit/?id=e75b324c93a1 ("kern_descrip.c: Clarify allocation and freeing of fd map in fdgrowtable()")
0dac997f2434a30785d71d7513b4ebfc3eecf0d7 Mark Johnston 2026-04-16 20:21:51
openat(2): check that userspace pass known and allowed flags
Reviewed by:  markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56365
8a5601cff1ea32ab63df1377f61620e4f91999b3 Konstantin Belousov 2026-04-12 10:48:47
arm64: mte: handle synchronous tag check faults
The Memory Tagging Extension supports both Synchronous and Asynchronous
faults, called Tag Check Faults, which are configurable via
SCTLR_EL1.TCF0 for userspace and SCTLR_EL1.TCF for the kernel.

This commit adds support for handling synchronous tag check faults at
EL0 and EL1, although these are only enabled on a per-process basis in
userspace, kernel space does not enable tag check faults. A TCF in the
kernel will cause a kernel panic like any other virtual memory fault,
and a TCF in userspace will result in a SIGSEGV

Reviewed by:    kib
Sponsored by:   Arm Ltd
Signed-off-by:  Harry Moulton <harry.moulton@arm.com>
Differential Revision:  https://reviews.freebsd.org/D55947
6f9e9eba984f5c8d8a022c0ec99f844a911687fe Harry Moulton 2026-04-16 13:29:14
so_splice: Fix the KTLS check for the sink socket in so_splice()
Reviewed by:  gallatin
Reported by:    Claude Sonnet 4.6
Fixes:          https://cgit.freebsd.org/src/commit/?id=1000cc4a0d39 ("so_splice: Disallow splicing with KTLS-enabled sockets")
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56385
d88a159da42a75dbd46ea4f6f9c8059975dab5e8 Mark Johnston 2026-04-16 19:57:36
i386: mark the stack as non-executable
Sponsored by:         Netflix
Reviewed by:            jhb
Differential Revision:  https://reviews.freebsd.org/D56411
62a19cd59b54a030c21a5529ed491ba2060140ca Warner Losh 2026-04-17 04:41:49
syscalls: Preserve the attributes of the args
Lightly parse and preserve the attributes of the args as attributes.

Sponsored by:           Netflix
Reviewed by:            brooks
Differential Revision:  https://reviews.freebsd.org/D56407
2a1745da389bd3bb9fd32c25cf221fa32866debd Warner Losh 2026-04-17 04:42:01
syscall: Create a script to export the data as json
Create a script to export the parsed data as json. Include the
annotations for the system call arguments, since they are helpful to
downstream uses.

Sponsored by:           Netflix
Reviewed by:            brooks
Differential Revision:  https://reviews.freebsd.org/D56408
b3b23f284a67317309af7c30bb70d5f461f3f02f Warner Losh 2026-04-17 04:42:10
Commit group #11: linux
linux: Support ICMP6_FILTER socket option translation

Handle Linux IPPROTO_ICMPV6 socket options in the Linuxulator and map
ICMP6_FILTER for both getsockopt(2) and setsockopt(2).

Linux and FreeBSD use inverted bit semantics for struct icmp6_filter, so
invert the filter contents before/after calling setsockopt/getsockopt.

Signed-off-by:  Ricardo Branco <rbranco@suse.de>
PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294434
Reviewed by:    pouria
Pull-Request:   https://github.com/freebsd/freebsd-src/pull/2138
64e2715f5d8f03ab7e763a49a0e102d755673810 Ricardo Branco 2026-04-12 11:01:47

linux: Support IPPROTO_RAW socket option translation

Handle Linux IPPROTO_RAW socket options in the Linuxulator for both
getsockopt(2) and setsockopt(2). Detect the socket family and remap
the level to IPPROTO_IPV6 for AF_INET6, reusing the existing option
translators.

This fixes IPV6_CHECKSUM for IPv6 raw sockets, which Linux programs
set at level IPPROTO_RAW rather than IPPROTO_IPV6.

Signed-off-by:  Ricardo Branco <rbranco@suse.de>
PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294434
Reviewed by:    pouria
Pull-Request:   https://github.com/freebsd/freebsd-src/pull/2138
caaa7a07fed4a16e753c0064482c0eaa0900607b Ricardo Branco 2026-04-12 14:08:38

linux: Translate IPv6 hoplimit ancillary data for recvmsg

Signed-off-by:  Ricardo Branco <rbranco@suse.de>
Reviewed by:    pouria
Pull-Request:   https://github.com/freebsd/freebsd-src/pull/2138
cd34d8dea4adb69b3d7189c7b98dbc9516da3e4a Ricardo Branco 2026-04-12 14:43:05
dtrace: Improve dmesg kernel message prefix
Provide intuitive log search keywords and increased system consistency.

MFC after:              2 weeks
Reported by:            mav
Reviewed by:            0mp, dteske
OpenZFS change:         d45c8d648 (Improve dmesg kernel message prefix)
Differential Revision:  https://reviews.freebsd.org/D55765
49e9b3061df036a73e8bc424c026158f3f57b183 Alexander Ziaee 2026-04-17 15:25:01
ixgbe: add MDIO bus support
This works enough to let me see the marvell switch on the MDIO bus.

It uses clause 22, which ixgbe's existing MDIO code doesn't currently
support, so it's implemented in a new source file.

Since mdio(4) is now required, add it where appropriate to GENERIC kernels.

Reviewed by:    kbowling
Differential Revision:  https://reviews.freebsd.org/D50128
cfec995c87f39e59c80554b85625b4aaa8ddf8db Adrian Chadd 2026-04-17 17:11:42
Commit group #12: LinuxKPI
LinuxKPI: 802.11: factor out chandef/chanctx initialization

Factor out chandef and chanctx initialization from lkpi_sta_scan_to_auth().
This makes the code a lot more readable and prepares for the next steps
that will re-use some of this.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
695f0f0d037a876fa27c0cdca9890e09fd75429e Bjoern A. Zeeb 2026-01-03 20:10:24

LinuxKPI: 802.11: save the default channel

Add a field to struct lkpi_hw to save the default channel for later
reuse.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
ced6909dd69b8476121dc291e01fa56ae14520e5 Bjoern A. Zeeb 2026-03-10 20:02:43

LinuxKPI: 802.11: keep chanctx on a reserved list

Keep the chanctx around as we may swap them.

In the future (11be) these lists likely need to be (a) limited to
maximum number of chanctx possible (see struct ieee80211_iface_limit),
and (b) with that also by radio.

For the moment keep this simple and start with a single chanctx
and build up from there when we get there.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
e62c92c0a5cfc000cf3c200e43738834ccc6472e Bjoern A. Zeeb 2026-03-23 00:47:57

LinuxKPI: 802.11: factor out getting and setting a chanctx

Further factor out acquiring the chanctx (either set or new),
as well as populating a chanctx with information.
This further simplifies lkpi_sta_scan_to_auth() and gives us
more reusable function blocks.

Sponsored by:   The FreeBSD Foundation
MFC after;      3 days
88cb1e17f471276e831c298c48acf9aca6ae29a6 Bjoern A. Zeeb 2026-03-23 03:55:14

LinuxKPI: 802.11: rework lkpi_ic_set_channel()

We are called by net80211 when channel changes are happening and
we have to map this to LinuxKPI 802.11.  There are multiple cases:
(1) it is a hardware scan and net80211 still changes the channel;
    we do not need to;
(2) it is a software scan (the magic fallback case) in which case
    we let net80211 drive the scan channel and we need to keep
    a copy of the scan_chandef (see follow-up commit);
(3) no scanning but a normal channel change triggerd by net80211;
    in that case we could (should?) setup the full flags right away
    but deferred LinuxKPI logic currently handle this for us as not
    in all cases the information was fully available from net80211
    in times we would have needed it.  We only do this in order
    to handle the emulate chanctx cases but do not change the
    channel otherwise; scan_to_auth will set the correct chanctx.
(3a) we have no (active) chanctx for that, create/set one,
(3b) we do have an (active) chanctx for this, use it but reset to
     defaults.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
491f5876bfb40a4f70f523b5d14bccf6b53d2b0c Bjoern A. Zeeb 2026-03-10 19:14:43

LinuxKPI: 802.11: improve emulate chanctx implementation

Now that all dependencies are implemented improve our chanctx emulation.
Some drivers still rely on chandef information for channel work.

In order to only do chanctx updates within mac80211 in Linux and
likewise in the LinuxKPI 802.11 compat layer, emulation functions
were introduced which claim to support chanctx driver operation but
in reality convert these to chandef field updates and (*config)
downcalls.

This is relevant to several mt76 chipsets (at least 7615, 7915),
and rtw88 and certain rtw89 chipsets (8851b, and the ones not supporting
SCAN_OFFLOAD or BEACON_FILTER) for us.

Migrate the logic out of the header and improve it.

Make use of the introduced dflt_chandef and scan_chandef fields,
add comparison of chandefs to see if we have to update, etc.

Also add strict checks for driver settings in linuxkpi_ieee80211_alloc_hw()
to make sure all preconditions are correctly met.  Store the result
if we are using the emulation functions in a field, so we can later
check on it and also leave a note to the users if emulation is used
in order to improve debugging on possible problem reports.

Use the new field that we use emulation in lkpi_ic_set_channel() instead
of a hand crafted check.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Fixes:          https://cgit.freebsd.org/src/commit/?id=ac1d519c01ca8 ("LinuxKPI: 802.11: adjustments for v6.11..")
166a7344df582f98a88f2b37b7aa3dc4558c9438 Bjoern A. Zeeb 2026-03-10 11:16:12

LinuxKPI: 802.11: add chandef tracing

Add chandef tracing so we can follow what is set and unset in the
chanctx emulation for drivers still needing this.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
72b9dda511b6944068fb18c2f2e059bca48d9edd Bjoern A. Zeeb 2026-04-03 19:59:02

LinuxKPI: 802.11: start filling vif->cfg.ap_addr

vif->cfg.ap_addr is used by various drivers now and is the BSSID for
non-MLO or the AP addr for MLO configurations.

If this is unset rtw89 gets cranky and certain packets are likely not
going out correctly (also for iwlwifi).

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
dc886a4428712aa4fcdcf8cd9e850b048c923bbf Bjoern A. Zeeb 2026-04-16 23:42:03

LinuxKPI: 802.11: make sure dtim_period is set

When going from ASSOC to RUN LinuxKPI based wireless drivers have
certian expectations written in various ways.  I believe mac80211
waits to see a beacon before setting the vif to assoc (or the sta
to AUTHORIZED).  We have some comments in lkpi_update_dtim_tsf()
for that.
In practice we can filter out the beacons already and know when
they came in as we count them but it is hard to split up the
state machine and defer the work.

So we make sure that dtim_period is set to at least 1 before
calling the (*vif_cfg_change) after setting assoc to true;
0 is a reserved value according to the standards.

We will update it once we see a beacon and in case the value
differs from 1 shortly afterwards from the recv_mgmt callback.

While iwlwifi seems to have coped with our initial implementation,
rtw89 may hit a DIV 0 if dtim_period is 0 depending on how well
the rx path races with our unlocking in assoc_to_run.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
9f20a4ebf044eb0cab83397c83f13bb3958abf6a Bjoern A. Zeeb 2026-04-17 02:34:51
Commit group #13: LinuxKPI
LinuxKPI: move hex2bin() from kernel.h to new hex.h

New Linux v7.0 drivers include hex.h.  Rather than adding a dummy
header, migrate the kernel.h hex2bin() into hex.h, where it belongs.
Care needs to be taken as the _h2b() helper function is still used by
other bits in kernel.h.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Reviewed by:    emaste, dumbbell
Differential Revision: https://reviews.freebsd.org/D56391
98297ff3cfbb42df86fa7af51a2740d5aa7236eb Bjoern A. Zeeb 2026-04-14 13:36:40

LinuxKPI: add default_gfp()

Various new allocation macros can take an optional gfp_t argument.
If the argument is not given we need to set the GFP_KERNEL default.
While this is only internally used and I initialy called it differently,
should this spread elsewhere having the same name as in Linux will be
good.

Sponsored by:   The FreeBSD Foundaton
MFC after:      3 days
Reviewed by:    dumbbell
Differential Revision: https://reviews.freebsd.org/D56392
35b90c21f48056e85b70dbbe2209b6c3a4927315 Bjoern A. Zeeb 2026-04-14 13:40:24

LinuxKPI: conditionally add __flex_counter()

__flex_counter() is used by overflow.h and needed for "flex allocations".
It is either a void * typed 0 (NULL) (like this for _Generic checks),
or uses __builtin_counted_by_ref.

The latter was added to gcc and llvm fairly recently and while for gcc
the __has_builtin() check suffices, clang had parts broken until recently
so needs an extra check for the next major version.  The fixed hash is
currently not part of any tag to use, so we play it save (and hope 23
will have it).  It will be a while until we will see the builting to be
used but at least we will be prepared for it.  See inline comments for
the commit hashes and versions which added the feature.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Reviewed by:    dumbbell
Differential Revision: https://reviews.freebsd.org/D56393
524df650a92f648e19ba27d6727bdc79c8efdbbb Bjoern A. Zeeb 2026-04-14 15:06:56

LinuxKPI: sync overflow.h from Linux v7.0

overflow.h was imported directly from Linux in 3208d4ad2b8320a.
Update the file to the newer version as needed for v7.0 driver updates.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Obtained from:  git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
                028ef9c96e96197026887c0f092424679298aae8 (tag: v7.0)
Reviewed by:    emaste, dumbbell
Differential Revision: https://reviews.freebsd.org/D56394
d2c85255d4fca37ec9774f85f867f8fc89a51269 Bjoern A. Zeeb 2026-04-14 13:50:44

LinuxKPI: add kmalloc_obj[s], kzalloc_obj[s], and kzalloc_flex

Drivers in Linux v7.0 seem to have changed to the new allocation
macros using a sweep.  Add the ones I encountered with wireless
drivers so far.  They all take an optional argument for a gfp_t,
which default_gfp() deals with.

The plural version "objs" takes an extra nitems argument in addition
to the size.  We use size_mul() to possibly detect overflows.

The "flex" version uses an extra variable to track the variable sized
array allocations and if supported by the compiler will use
__builtin_counted_by_ref() to properly track bounds.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Reviewed by:    dumbbell
Differential Revision: https://reviews.freebsd.org/D56395
c72ac6af086962d236f4712761abacac0c62b48e Bjoern A. Zeeb 2026-04-14 15:13:18

LinuxKPI: implement devm_kmemdup_array()

Implement devm_kmemdup_array() using devm_kmemdup() in order to
prepare for Linux v7.0 based drivers.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Reviewed by:    dumbbell
Differential Revision: https://reviews.freebsd.org/D56396
f1834d03af617a93993056bb902082452673f89f Bjoern A. Zeeb 2026-04-14 13:35:36
pipe: retire the unused PIPE_LWANT macro
8c94a1ea155586a70369f263a5e01b26a1b37d58 Mateusz Guzik 2026-04-18 08:17:56
Commit group #14: LinuxKPI
LinuxKPI: 802.11: set IEEE80211_MIN_ACTION_SIZE according to struct

IEEE80211_MIN_ACTION_SIZE came up in the mt76 vendor subtree merge
as one of the non-mechanical changes which made me look.
Rather than (incorrectly) hand counting the offset from the beginning
of a frame, use the offset from the beginning of struct ieee80211_mgmt.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
f252ce00898d17f4892534934b8097cd7ccb9e26 Bjoern A. Zeeb 2026-04-15 07:50:35

LinuxKPI: 802.11: Add structures and functions for NAN support

In Linux v7.0 iwlwifi(4) started to add support for Wi-Fi Aware(tm)
also known as Neighbor Awareness Networking (NAN).

Add structures and fields for this as needed so far to keep the driver
compiling.  net80211 has no support for it as a new mode.

We may consider a dedicated header file for these parts in the future
depending on how much more is to come.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
a0112b013f93a47489051fed54ea48c077e59de4 Bjoern A. Zeeb 2026-04-18 11:26:59

LinuxKPI: 802.11: add struct/fields and functions for v7.0

Add 802.11 struct fields and functions support for Linux v7.0 based
wireless drivers (at least iwlwifi, rtw88, rtw89).

While here cleanup some other bits.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
25e776a5438005db59c6d474b5d47c42d2a341b9 Bjoern A. Zeeb 2026-04-14 15:23:31
gdb: Print a stack trace if a python command raises an error
MFC after:    1 week
9899c8da0c19e66bedf37dd914e13880089877e2 Mark Johnston 2026-04-18 12:23:18

Build system

geneve.4: Add geneve manual
Reviewed by: ziaee, adrian
Differential Revision: https://reviews.freebsd.org/D55182
adecd4c4cd05b404ff81dbfce88b772e2b754a7f Pouria Mousavizadeh Tehrani 2026-04-11 18:51:58
release: remove Oracle Cloud Infrastructure build targets
Oracle's previous support is no longer available to the project.
Repeated attempts to find a sponsor within Oracle's cloud business
have not been successful.

The last published official images are from 15.0-RELEASE.

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

Relnotes:       yes
Sponsored by:   SkunkWerks, GmbH
Differential Revision:  https://reviews.freebsd.org/D56360
MFC after:      3 days
3b108068121ba30fb3dbed569d6757da2ab529a4 Dave Cottlehuber 2026-04-12 22:29:44
pkgbase: remove incorrect clang shlib requires
The FreeBSD-clang package contains a 32-bit shared object at
/usr/lib/clang/19/lib/freebsd/libclang_rt.asan-i386.so

This is expected, since clang uses this object when compiling for i386
targets with asan enabled.

What is not expected is that the FreeBSD-clang package currently depends
on 32-bit libc packages due to pkg's shared library analysis, making it
impossible to install pkgbase on x86_64 without any lib32 packages.

This commit leverages a new pkg feature implemented in [1], but could
be landed before a pkg version including that feature is released
without any ill effects. Unknown keys in package manifests are ignored.

[1]: https://github.com/freebsd/pkg/pull/2594

Reviewed by:    ivy
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D54792
2018ae4e3b6a2d7c147933cb36642f6a54830907 Isaac Freund 2026-01-20 14:57:17
pkgbase: only provide shlibs from /lib,/usr/lib,/usr/lib32
Reviewed by:  bapt
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D54793
e11eba76cfbd6b439ad40faeb8ffccf4241e7034 Isaac Freund 2026-01-20 14:57:11
rockchip: support CM3588 board
Signed-off-by: Martin Filla <freebsd@sysctl.cz>
Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/2086
aa462efde6dc009eed0e09272b5359950193b0be Martin Filla 2026-03-16 14:35:06
br.lenovo.kdb: add it to Makefile
This keyboard was implemented but wasn't actually installed to the
system.

Fixes: https://cgit.freebsd.org/src/commit/?id=9357c694e8dca627c25b15529e8435b2ab3dd48b
MFC after: 1 day
Relnotes: yes
6fb5df548e4a581f958f60544b7fa8ba1716c4c6 Alfredo Dal'Ava Junior 2026-04-17 03:44:46
us.intl.acc.kbd: add it to Makefile
This keyboard was implemented but wasn't actually installed to the
system.

Fixes: https://cgit.freebsd.org/src/commit/?id=a049678039e40bdf523230852f78887a12435def
Discussed with: imp
MFC after: 1 day
Relnotes: yes
3b373d484046a94d050a7901feadc001f35fa97f Alfredo Dal'Ava Junior 2026-04-17 05:01:54
bnxt_en: fix module Makefile for LinuxKPI
Rather than manually including the include directory for LinuxKPI
use the provided macro.  Before there was no -I for the dummy
directory and as files synced from Linux under a permissive license
may include them the build would fail.  overflow.h will include
linux/const.h which only exists as a dummy header at this point
on FreeBSD.

Sponsored by:   The FreeBSD Foundation
Fixes:          https://cgit.freebsd.org/src/commit/?id=35b53f8c989f6
MFC after:      3 days
Reviewed by:    emaste
Differential Revision: https://reviews.freebsd.org/D56424
f5cd992fa902ebb27a3a1042ee8e0d4d351bb361 Bjoern A. Zeeb 2026-04-16 10:05:51
rtw88: update module Makefile for v7.0 driver version
Update LINUXKPI_VERSION to reflect that the driver is based on
Linux v7.0.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
90383181aae908d2c696f8d66c19645011b4c388 Bjoern A. Zeeb 2026-04-18 13:40:21
boot1.chrp: Specify --image-base
This is required for LLVM 22's ld.lld to avoid a build error:

ld.lld: error: section '.text' address (0x38000) is smaller than image base (0x10000000); specify --image-base
ld.lld: error: section '.rodata' address (0x3b308) is smaller than image base (0x10000000); specify --image-base
ld.lld: error: section '.data' address (0x3b610) is smaller than image base (0x10000000); specify --image-base
ld.lld: error: section '.bss' address (0x3f618) is smaller than image base (0x10000000); specify --image-base

Use 0x38000 for the image base, which is the address of the lowest
(and only) LOAD segment in the file.

Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D56459
aa0bc7cca153f67f8becec8a8fb259ff5fd30fd0 Lexi Winter 2026-04-18 20:07:40
iwlwifi: update module Makefile for v7.0 driver version
Add the new file for nan in the mld subdriver.

Update LINUXKPI_VERSION to reflect that the driver is based on
Linux v7.0.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
9ed3331fb5822b93313edae42cc529eb25e1a6cc Bjoern A. Zeeb 2026-04-18 20:37:11
rtw89: update module Makefile for v7.0 driver version
Update LINUXKPI_VERSION to reflect that the driver is based on
Linux v7.0.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
3780e6f9db01cc4f7d53d67ed1fc992a8f64c53f Bjoern A. Zeeb 2026-04-18 20:50:30
mt76: update module Makefile for v7.0 driver version
Update LINUXKPI_VERSION to reflect that the driver is based on
Linux v7.0.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
1c50cb1d75625bea2ba928697ea1cbafa29dd245 Bjoern A. Zeeb 2026-04-18 21:02:57
athk_common / ath10k: update module Makefiles for v7.0 driver version
Update LINUXKPI_VERSION to reflect that the driver is based on
Linux v7.0.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
4546eb0c27f22236be8179616e1f0a3e88ddfbbe Bjoern A. Zeeb 2026-04-19 15:12:15
brcm80211: update module Makefiles for v7.0 driver version
Update LINUXKPI_VERSION to reflect that the driver is based on
Linux v7.0.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
634a48f3673ff8af9848846a6bff1a8c068d205d Bjoern A. Zeeb 2026-04-19 15:17:29
ath11k: update module Makefiles for v7.0 driver version
Update LINUXKPI_VERSION to reflect that the driver is based on
Linux v7.0.

Add optional support for the new cfr (channel frequency response)
file/option.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
20cf11812ac722852322f2f2994698d7a5fa8dc6 Bjoern A. Zeeb 2026-04-19 15:28:50
ath12k: update module Makefiles for v7.0 driver version
Update LINUXKPI_VERSION to reflect that the driver is based on
Linux v7.0.

Handle the file changes and the extra wifi7/ subdirectory.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
5cfadb6633128dccc32b1e4f84386ad705adc721 Bjoern A. Zeeb 2026-04-19 15:48:58

Internal organizational stuff

-- no commits in this category this week --

Testing

geneve: Add tests for geneve
Add tests for each combinations of geneve modes, address families
and multicast.

Differential Revision: https://reviews.freebsd.org/D55183
aa9f669d09a7a193d470477398815f45a42c0270 Pouria Mousavizadeh Tehrani 2026-04-11 18:45:08
CTL: add ATF tests for REPORT SUPPORTED OPCODES
This includes a regression test for CVE-2024-42416

MFC after:      2 weeks
Sponsored by:   ConnectWise
Reviewed by:    emaste
Differential Revision: https://reviews.freebsd.org/D46613
6dd86310e54d3f2dd9f688670913b9176176246c Alan Somers 2026-04-14 17:35:54
du: Fix t_flag test case
MFC after:    1 week
Fixes:          https://cgit.freebsd.org/src/commit/?id=3e5550d25c6d ("du: Add regression tests")
Sponsored by:   Klara, Inc.
e99b3f5e318626b45510e29993aabca1d161bfa0 Dag-Erling Smørgrav 2026-04-15 14:50:32
tests/fusefs: appease gcc -Wcast-qual
Fix gcc build error.

Reviewed by:    asomers, kib
Fixes:  https://cgit.freebsd.org/src/commit/?id=7e68af7ce2c1 ("fusefs: redo vnode attribute locking")
Differential Revision:  https://reviews.freebsd.org/D56370
0c09c6527b16953d355125bee7a839f743a39dad Ryan Libby 2026-04-15 16:32:22
tests: kqueue: improve diagnostics for our CPONFORK test
Notably, confirm in the child that our close-on-fork fd is actually
closed, and break RECV_ALL out into a table and check each bit
individually to provide a better message when the test fails.

While we're here, just switch to waitid() rather than trying to identify
the point where we have to make the switch.  This reduces maintenance
slightly, as keeping our assertion static would require still adding to
a _RECV_ALL mask *just* for that purpose.

Reviewed by:    kib, markj (both slightly earlier version)
Differential Revision:  https://reviews.freebsd.org/D56372
51d2c38010824b90d7462711896a88165db9d015 Kyle Evans 2026-04-17 03:57:06
pf tests: test having multiple state limiters
Sponsored by: Rubicon Communications, LLC ("Netgate")
95fe1ba5579df2fe204ad30d892160966677ae98 Kristof Provost 2026-04-16 13:46:59
tests/socket_afinet: Remove a conditional skip
The test runs without any unexpected results when mac_portacl is loaded.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=238781
MFC after:      1 week
9f6041fb579106aa6fa358071a14eddabd581998 Mark Johnston 2026-04-17 12:48:39
tests/netinet6: Add SLAAC and RA validation tests to ndp
* RA hop limit validation
* RA source address validation
* Multi router RA validation
* Two hour rule RA validation
* SLAAC onlink prefix switching test

Reviewed by: glebius
Differential Revision: https://reviews.freebsd.org/D56128
c173f02045c8cfae219b26be99f9e02f291965fa Pouria Mousavizadeh Tehrani 2026-04-17 20:25:18
tests/netinet6: Add test for route information option
Test handling of receiving multiple route information options in RA.

Reviewed by: glebius
Differential Revision: https://reviews.freebsd.org/D56216
f6bcc0925f0ea838da5183dc503f847e56d15cc8 Pouria Mousavizadeh Tehrani 2026-04-17 20:27:50
du: Set BLOCKSIZE before running tests
Several testcases assume BLOCKSIZE=K, so set it at the top of the
script.  This fixes an issue where the tests would sometimes fail
when run under sudo.

MFC after:      1 week
Sponsored by:   Klara, Inc.
Reviewed by:    kevans
Differential Revision:  https://reviews.freebsd.org/D56476
d618ba314d1452c1cb4360e15ae1c80adac48306 Dag-Erling Smørgrav 2026-04-18 12:48:04

Style, typos, and comments

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

rc.conf: Fix typo in comment
The correct path is /etc/defaults/rc.conf (defaults in plural).

Reviewed by:    netchild
Fixes:          https://cgit.freebsd.org/src/commit/?id=cc4eb1ea1040 ("Add support for a /etc/defaults/vendor.conf override file")
MFC after:      3 days
Differential Revision:  https://reviews.freebsd.org/D56456
8e08080ee581dfd30c128d032035da7b6ae44463 Jose Luis Duran 2026-04-17 13:55:16
sctp(4): Fix a typo in a source code comment
- s/initited/initiated/

Obtained from:  NetBSD
MFC after:      3 days
a154d72775cbf3f0679fb2f989b3d1a035ae41c9 Gordon Bergling 2026-04-17 14:59:26
librpcsec_gss: Fix a typo in a source code comment
- s/verfier/verifier/

MFC after:      3 days
59dacd7f008f54a335ec49e747bb8ddac67b0a83 Gordon Bergling 2026-04-19 07:57:03
stand/powerpc: Fix a typo in a source code comment
- s/limitiations/limitations/

MFC after:      3 days
4177af3b0e2db36238bbd6f973943f830d1ff46f Gordon Bergling 2026-04-19 08:01:18
thunderbolt: Fix a typo in a source code comment
- s/Inititalize/Initialize/

MFC after:      3 days
33e0180a306b9ed60df5eae1818c40ef65750525 Gordon Bergling 2026-04-19 08:04:12
msdosfs(4): Fix two typos in source code comments
- s/unititialized/uninitialized/

MFC after:      3 days
96246330c1c47ea06b7e781ddd87de45d541494f Gordon Bergling 2026-04-19 08:06:45
rpcsec_gss(3): Fix a typo in a source code comment
- s/verfier/verifier/

MFC after:      3 days
6323e2be6102e2a152b4420db272f7e880017cf0 Gordon Bergling 2026-04-19 08:08:56

Contrib code

Fix default for .MAKE.SAVE_DOLLARS
NetBSD make defaults this to "yes",
bmake defauts it to "no" to retain the traditional behavior.

The default is dealt with in bmake's Makefile but that does not
address boot-strap.

For now, just change the ifdef in main.

PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294436
e272f4a61e78037ec8477ba9e9afcbe3ae2cd8e3 Simon J. Gerraty 2026-04-13 17:38:50
rtw89: add a warn about beacon_int or dtim_period being 0
While after the changes to LinuxKPI 802.11 we should never be assoc
and not have dtim_period set, we have seen before that this could
happen.  Add a WARN as that will help debugging the following DIV 0.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
99bbfb77e3c395805fe0a7f19006c5c29136f9fc Bjoern A. Zeeb 2026-04-17 02:40:03
libarchive: Staticize some variables
This code was not being built due to errors in our libarchive
configuration.  Now that those have been addressed, staticize some
variables that trip a “no previous extern declaration” error.  This
is a subset of upstream PR 2962.

MFC after:      1 week
Reviewed by:    mm
Differential Revision:  https://reviews.freebsd.org/D56471
7e9d974bc023755161742f66c8c77546bab88586 Dag-Erling Smørgrav 2026-04-18 08:25:35
rtw88: update Realtek's rtw88 driver
This version is based on
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ).

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
41b641cc0537d1288cc05332bb4c5de3dcb12589 Bjoern A. Zeeb 2026-04-18 14:21:04
iwlwifi: update Intel's mvm/mld drivers
This version is based on
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ).

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
b2bd08185e4984c70179c195f712cef5a136d21b Bjoern A. Zeeb 2026-04-18 20:35:37
rtw89: update Realtek's rtw89 driver
This version is based on
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ).

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
422e9c5d878e14ec16bb89ef6df65d964d5ce2f1 Bjoern A. Zeeb 2026-04-18 20:48:44
mt76: update Mediatek's mt76 driver
This version is based on
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ).

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
63a40b65c9be74193bb07a76fd66c249bd562eae Bjoern A. Zeeb 2026-04-18 21:01:39
zfs: merge openzfs/zfs@1644e2ffd
Notable upstream pull request merges:
 #18148 d1b0a6982 draid: add failure domains support
 #18167 f203fedde Add zoned_uid property with additive least privilege
                  authorization
 #18191 -multiple FreeBSD: Fix a couple of races involving zvol creation
                  and teardown
 #18213 33ed68fc2 zpool create: report which device caused failure
 #18235 931deb290 Prevent range tree corruption race by updating
                  dnode_sync()
 #18282 b44a3ecf4 zpool: Change zpool offline spares policy
 #18310 -multiple Fix s_active leak in zfsvfs_hold() when z_unmounted is
                  true
 #18351 ce837a28e Bridge speculative and prescient prefetchers
 #18380 fc659bd6d draid: fix import failure after disks replacements
 #18385 16858492e FreeBSD: Implement relatime property
 #18390 a22b3f670 abd: Fix stats asymmetry in case of Direct I/O
 #18399 7b1682a82 Add support for POSIX_FADV_DONTNEED
 #18403 5cb95ad89 fix memleak in spa_errlog.c
 #18405 0752cf067 draid: allow seq resilver reads from degraded vdevs
 #18407 e635d27eb Add ability to set user properties while changing
                  encryption key
 #18414 2abf469be draid: fix cksum errors after rebuild with degraded disks
 #18415 -multiple Fix snapshot automount deadlock during concurrent zfs recv
 #18421 1644e2ffd Fix read corruption after block clone after truncate

Obtained from:  OpenZFS
OpenZFS commit: 1644e2ffd2640fa3e2c191ceaf048a5fc8399493
d8fbbd371ca11d9ad4b29b9d3a316885a5da0b15 Martin Matuska 2026-04-18 22:21:01
ath-common: update common Atheros/QCA code
This version is based on
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ).

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
ff18554fd6e616f5d965322be477dc406a2906bc Bjoern A. Zeeb 2026-04-19 15:07:36
ath10k: update Atheros/QCA's ath10k driver
This version is based on
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ).

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
02b46313fd1461338703a1e02c667b8dbcc36237 Bjoern A. Zeeb 2026-04-19 15:09:30
brcm80211: update Broadcom wireless brcmsmac and brcmfmac drivers
This version is based on
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ).

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
117d9331fedeb5c5657a796423c4f7b311f40770 Bjoern A. Zeeb 2026-04-19 15:16:04
ath11k: update Atheros/QCA's ath11k driver
This version is based on
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ).

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
4ed5b949d5e25456124a4d280d27e9719f90e9be Bjoern A. Zeeb 2026-04-19 15:27:01
ath12k: update Atheros/QCA's ath12k driver
This version is based on
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ).

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
60bac4d6438b6bcb3d7b439684211d05396d90ce Bjoern A. Zeeb 2026-04-19 15:38:33

Reverted commits

Revert "EC2: Add clibs-lib32 pkg to small/builder images"
This should no longer be necessary after 2018ae4e3b6a.

This reverts commit cfe0b7d37e552d78762c029f5b15e0f36d9d0d38.
fa31e76a4c147eb5148595c9f3615040fcac74e5 Colin Percival 2026-04-13 19:42:57
Commit & revert pair: sound: Remove some forward declarations from sound.h and uaudio.h
sound: Remove some forward declarations from sound.h and uaudio.h

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
602249f033d146d9c731d8b1cb4b2e0899c61ad9 Christos Margiolis 2026-04-18 10:50:03

Revert "sound: Remove some forward declarations from sound.h and uaudio.h"

This reverts commit 602249f033d146d9c731d8b1cb4b2e0899c61ad9.
ec077230fd941336c37f8bfdce3bb3e4c9d809b4 Christos Margiolis 2026-04-18 11:30:20

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-21 17:15:22+00:00.

This work is supported by Tarsnap Backup Inc.

Alternate version: 2026-04-13 (debug) (contains info about the classification)