FreeBSD git weekly: 2026-03-02 to 2026-03-08

Introduction

This is a display of mostly-automatically-classified git commits from 2026-03-02 to 2026-03-08.

Table of contents and commits per category:

(2) Highlighted commits (these are copies, not in stats)
5 3.4% Userland programs
5 3.4% Documentation
31 20.9% Hardware support
11 7.4% Networking
12 8.1% System administration
9 6.1% Libraries
2 1.4% Filesystems
26 17.6% Kernel
16 10.8% Build system
1 0.7% Internal organizational stuff
5 3.4% Testing
13 8.8% Style, typos, and comments
11 7.4% Contrib code
1 0.7% Reverted commits
0 0.0% Unclassified commits
148 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.

sys: Retire le(4)
We retired most obsolete 10 and 10/100 Ethernet NIC drivers in 2019 --
see commits following ebcf740a32ae ("FCP-101: remove obsolete 10 and
10/100 Ethernet drivers.).

le(4) was retained with with the note "Emulated by QEMU, alternatives
don't yet work for mips64."  MIPS has since been removed from the tree
and emulators and virtual machines offer many other, more suitable
devices.

Reviewed by:    brooks
Relnotes:       Yes
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55516
7a323f873662dae95a061d1eaf8b1d9d1a0f8a23 Ed Maste 2025-10-24 17:26:03
netinet6: Remove support for connecting to IN6ADDR_ANY
RFC4291 section 2.5.2:
    The unspecified address must not be used as the destination address
    of IPv6 packets or in IPv6 Routing headers.  An IPv6 packet with a
    source address of unspecified must never be forwarded by an IPv6
    router.

We disallowed connections to IN6ADDR_ANY by default, as of commit
627e126dbb07 ("netinet6: Disallow connections to IN6ADDR_ANY").  As this
is actually disallowed by the RFC, just remove the support.

Reported by:    bz (in D54306)
Reviewed by:    bz, glebius
Relnotes:       yes
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D54942
a1789fa30c0b1e4c20a083c550f0ec2d50e480e4 Ed Maste 2026-01-27 21:29:20

Userland programs

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

diff3: Produce correct exit status
Use exit status 2 for errors, 1 only to indicate that differences were
found between the inputs (in some operating modes).

MFC after:      1 week
Sponsored by:   Klara, Inc.
Reviewed by:    ngie, bapt
Differential Revision:  https://reviews.freebsd.org/D55608
fe5341287c6c9bacc18879b25ed72ceb42e1c811 Dag-Erling Smørgrav 2026-03-02 08:52:06
lesspipe: Use zstdcat
zstdcat is equivalent to zstd -dcf, and matches our intention.

Suggested by:   delphij (in D55101)
Sponsored by:   The FreeBSD Foundation
34d7f100c1d9e6f21d2f79097e891f7a17749d1b Ed Maste 2026-02-23 18:59:55
diff3: Add SPDX-License-Identifier tag
Reviewed by: bapt
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55462
5778700fb8c54a33e5bb00a4a0c4e40fde2edbd9 Tuukka Pasanen 2026-02-12 09:27:34
/bin/ps: Fix display of negative nice values on ARMv7/aarch64
On Arm-based systems (and maybe others), 'char' defaults to unsigned,
causing negative nice values to be displayed incorrectly (e.g., 246
instead of -10). Explicitly using 'signed char' ensures consistent
behaviour across architectures.

[ tested on RPI2 and generic aarch64 qemu install ]

Before:
  # /usr/bin/nice --10 ps -l | awk '(NR == 1 || $(NF-1) == "ps")'
  UID   PID  PPID C PRI  NI  VSZ  RSS MWCHAN  STAT TT     TIME COMMAND
    0 23606 22800 2 -32 246 5400 2544 -       R<+   0  0:00.06 ps -l

After:
  # /usr/bin/nice --10 ps -l | awk '(NR == 1 || $(NF-1) == "ps")'
  UID   PID  PPID C PRI  NI  VSZ  RSS MWCHAN  STAT TT     TIME COMMAND
    0 23614 22800 3 -32 -10 5400 2544 -       R<+   0  0:00.05 ps -l

Signed-off-by: Jamie Landeg-Jones <jamie@catflap.org>
Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/2064
9006a731bc951c5b62efc4bf75a0c5b42586d279 Jamie Landeg-Jones 2026-03-07 01:18:20
uuidgen: generate UUIDs in bounded batches to respect kernel limit
The uuidgen(2) system call enforces a hard upper limit of 2048 UUIDs per
invocation. uuidgen(1) previously attempted to generate arbitrary counts
in a single call and allocated memory accordingly, leading to EINVAL
errors, unnecessary memory usage, and potential overflow risks.

Generate UUIDs in fixed-size batches, streaming output incrementally
while preserving existing semantics. Mirror the kernel limit explicitly
since it is not exposed via a public interface.

Signed-off-by: NVSRahul <nvsrahul@hotmail.com>
Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/1965
3570b19d74ed94dcc7fac2dcbf42b378bc72362e NVSRahul 2026-01-13 05:52:06

Documentation

Man pages, release notes, etc.

src.conf.5: Regen after commit c47cefba8312
e80c45dbf7d098677a607a29a55c07b85ea7f315 Ed Maste 2026-03-03 17:08:39
me.4: note that it is a point-to-point interface
Add explicit note that me(4) works as a point-to-point pseudo device.

MFC after:      1 week
f69eab727edbab1385e5ffc8b3f6cb5a233f62c0 Eugene Grosbein 2026-03-04 08:06:05
ichwd: Add manual for i6300esb watchdog
Reviewed by:    ziaee, mhorne
Approved by:    lwhsu (mentor)
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D54466
546d925cb44f1da7efee76bfebb42df8fdbc83a8 ShengYi Hung 2026-01-03 06:12:26
libsys/rename.2: remove commented-out CAVEAT section
FreeBSD UFS does not support hardlinks to directories.

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D55539
5f911eaba017645487a1eaee3609b26a77f0f174 Konstantin Belousov 2026-02-27 00:03:59
ports.7: Document DEFAULT_VERSIONS
MFC after:            3 days
Co-authored-by:         Adam Weinberger <adamw@FreeBSD.org>
Differential Revision:  https://reviews.freebsd.org/D55443
74aec9f02d9d8fbde250da1ecc881729c8baf489 Alexander Ziaee 2026-03-06 23:44:50

Hardware support

Hardware drivers and architecture-specific code.

arm64/pmap: fix pmap_is_valid_memattr()
The function pmap_is_valid_memattr(pmap, mode) checks whether the
given variable mode is between the two constant values
VM_MEMATTR_DEVICE and VM_MEMATTR_WRITE_THROUGH.
After the code for this function was written, the value of
VM_MEMATTR_DEVICE changed from 0 to 4. Since VM_MEMATTR_WRITE_THROUGH
is still 3, the condition is always false.
This patch changes the condition to check whether mode is equal to any
of the VM_MEMATTR* constants.

Reviewed by:            andrew, tuexen
MFC after:              1 week
Differential Revision:  https://reviews.freebsd.org/D55534
0272359ada144aa540c28fefaf996afa30dc0aa5 Timo Völker 2026-03-02 17:59:45
virtio: add loader tunables to sysctl
virtio_pci uses two loader tunables that should be more visible.
This patch adds these loader tunables to sysctl and describes them
in the virtio(4) man page.

Reviewed by:            imp (erlier version), tuexen
MFC after:              1 week
Differential Revision:  https://reviews.freebsd.org/D55533
c70755bc0d8f703dbaa1520c15e8213a95847dd5 Timo Völker 2026-03-02 18:15:37
sound: Notify devd on hw.snd.default_unit change
If we have virtual_oss running, this devd notification will make sure to
automatically transfer sound to the new default unit, while also making
sure that we switch to it only for the supported directions (recording
and/or playback).

For more information, please refer to 2ffaca551eaf ("snd_hda: Implement
automatic redirection between associations").

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Reviewed by:    imp
Differential Revision:  https://reviews.freebsd.org/D55530
d40189f8259e3565c69a40194f7b603d0ca648de Christos Margiolis 2026-03-03 11:32:32
sound: Notify devd when no devices are connected
Sponsored by: The FreeBSD Foundation
MFC after:      1 week
Reviewed by:    imp
Differential Revision:  https://reviews.freebsd.org/D55531
428517a7712e44b58e0687fbee4037a8ebe5bf5a Christos Margiolis 2026-03-03 11:32:38
virtio: Use bus_dma for ring and indirect buffer allocations
While the majority of virtio platforms will be fully coherent, some may
require cache maintenance or other specific device memory handling (eg for
secure partitioning). Using bus_dma allows for these usecases.

The virtio buffers are marked as coherent; this should ensure that sync
calls are no-ops in the common cases.

Reviewed by:    andrew
Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D54959
c499ad6f997c8c5f61c88925e6d1e826d0c0f6c4 Sarah Walker 2026-03-03 16:08:11
virtio_blk: Use bus_dma for command/ack buffer allocations
While the majority of virtio platforms will be fully coherent, some may
require cache maintenance or other specific device memory handling (eg for
secure partitioning). Using bus_dma allows for these usecases.

The virtio buffers are marked as coherent; this should ensure that sync
calls are no-ops in the common cases.

Reviewed by:    andrew, br
Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D54960
c8c37141a661cc9a6a51e43599d1afc8a3f0ef46 Sarah Walker 2026-03-03 16:27:38
nvme_sim: Fix a cut and paste error
Fix the error message in nvme_sim_ns_removed that was cut and pasted
from nvme_sim_ns_changed to reflect its new home.  No functional change.

Sponsored by:           Netflix
Differential Revision:  https://reviews.freebsd.org/D55522
244ae85eb97548fd81783f079ee26e0aa9f4b984 Warner Losh 2026-03-03 17:59:42
acpi_spmc: fix revision check reading name as integer
In acpi_spmc_get_constraints_spec(), the revision of the device
constraint detail package was mistakenly read from
constraint_obj->Package.Elements[0], which is the device name
(a string), instead of from the detail sub-package's first element.

Move the initialisation of 'detail' before the revision check and
read the revision from detail->Package.Elements[0] as the comment
already states

Approved by:    obiwac
Differential Revision:  https://reviews.freebsd.org/D55639
Sponsored by:   Netflix
4d876fc5fc427f9e4a110da5cc2ce62a21998b6c Olivier Cochard 2026-03-03 23:05:04
amdsmu: Sleep entry/exit hints for PMFW
amdsmu_suspend() and amdsmu_resume() for sending hints to the AMD SMU
power management firmware (PMFW) that we are entering and exiting
s2idle. We also dump sleep metrics once we tell it we're exiting sleep,
so the relevant metrics are updated.

Register these as acpi_post_dev_suspend and acpi_post_dev_resume
eventhandlers.

Reviewed by:    olce
Approved by:    olce
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D48721
2c60fce365f4398ff02a86b46e2862905f88fa97 Aymeric Wibo 2025-06-14 15:33:24
arm64: Treat the PMUVer field of ID_AA64DFR0 as unsigned
The PMUVer field of ID_AA64DFR0 contains an unsigned version of the
Performance Monitors Extension, but it is currently treated as signed.
Change it to unsigned.

Reviewed by:    andrew
Sponsored by:   Arm Ltd
Signed-off-by:  Kajetan Puchalski <kajetan.puchalski@arm.com>
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2062
e40e5458616d13b44cd407aa1afff620f8ff8766 Kajetan Puchalski 2026-03-04 15:16:35
arm64/vmm: Support PMU v3p9
The only new register is read-only. As the kernel just passes the
registers to the guest directly no further change should be needed.

Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D51764
d1650d226205cdf07fb19e0c9b10b47b941e8747 Andrew Turner 2026-03-04 16:35:57
acpi: Treat ACPI_IVAR_FLAGS as a global IVAR
The ACPI bus uses the flags IVAR for any device with a _PRW method
including devices such as PCI bridges/devices that are not direct
children of acpi0.

Reported by:    ngie
Reviewed by:    ngie
Fixes:          https://cgit.freebsd.org/src/commit/?id=0bb867e9f565 ("acpi: Split ACPI IVARs into global and private sets")
Differential Revision:  https://reviews.freebsd.org/D55561
00ff89c1e0c8d92fe644ea97b521ceb66d46e170 John Baldwin 2026-03-04 20:19:48
static dtb: add BTI note
Add BTI note to fdt_static_dtb.o
- resolves "Branch Target Exception" panic on FDT systems with static DTB
  due to missing landing pads (bti note has to be in all object files used
  for linkage)
- also required by bti_report linker feature

Reviewed by:    andrew
Differential Revision:  https://reviews.freebsd.org/D55636
dff2758b5fa7d4987b03f3a04e1b02b367fe9b73 Ruslan Bukin 2026-03-05 08:50:18
riscv: save FPE state in cpu_fork().
Save the Floating Point Extension (FPE) state before copying struct pcb.

Reviewed by:    br
Differential Revision:  https://reviews.freebsd.org/D53804
d3eaa40282c7734385d028b6a4fb9574d17255e3 Jari Sihvola 2026-03-05 08:57:22
arm64: Use a canonical address when TBI is enabled
When Top Byte Ignore (TBI) is enabled in a processor we need to pass
a canonical address to the vm subsystem.

Reviewed by:    alc, kib
Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D55619
570b8b25753c2be7657f0e906cb5a89c7f35b56e Andrew Turner 2026-03-05 14:27:37
arm64: Optimise the repeated TLBI workaround
It has been reported that the overhead of repeating all TLBI
instructions is too large [1]. The Software Developer Errata Notices
(SDEN) for the relevant Arm CPUs have been updated so a single
"tlbi vale1is, xzr" followed by "dsb ish"  is sufficient to work around
the issues.

Replace the places we repeat TLBI instructions with the new sequence.

[1] https://lore.kernel.org/linux-arm-kernel/20260218164348.2022831-1-mark.rutland@arm.com/

Reviewed by:    kib
Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D55646
80b4129bef8b908eb19fe47853cb6e45e4513d76 Andrew Turner 2026-03-05 14:28:01
acpi: Don't attach a "wake" sysctl node to devices without the ACPI flags IVAR
Not all bus drivers for ACPI-aware devices implement the ACPI flags
IVAR used by the acpi_wake_set_sysctl handler.  In some cases this may
be a feature as some new-bus devices share the same ACPI handle (e.g.
a pcibX device and its child pciY device) which can lead to confusing
results (e.g. setting the sysctl on pciY changes the behavior of the
parent pcibX device, but the "wake" sysctl for pcibX won't reflect the
new behavior, or reflect the device's state).

Reviewed by:    obiwac, ngie, imp
Differential Revision:  https://reviews.freebsd.org/D55562
d19f2af2b7f9c964622fd2eba7d077c6f221b652 John Baldwin 2026-03-05 19:07:09
Commit group #0: iwx: Fix 32-bit compilation
iwx: Fix 32-bit compilation

- Avoid shifts wider than integer types, by wrapping the corresponding
  checks into '#if __SIZEOF_SIZE_T__ > 32' blocks.  'bus_addr_t'
  currently has the same width as 'size_t' on all architectures (and
  this is not going to change for 32-bit architectures).
- Use appropriate printf(3) format for 'wk_keytsc'.

Reviewed by:    adrian
MFC after:      1 minute
MFC to:         stable/15
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D55667
35da55c28dbb56dd7056b7863efc5b547950d885 Olivier Certner 2026-03-05 12:31:51

iwx: Re-activate the 32-bit boundary cross check on 64-bit architectures

__SIZEOF_*__ is in bytes, not in bits...

Reported by:    brooks
Fixes:          https://cgit.freebsd.org/src/commit/?id=35da55c28dbb ("iwx: Fix 32-bit compilation")
MFC after:      1 minute
MFC to:         stable/15
Sponsored by:   The FreeBSD Foundation
c1567d49a8320fd23dff9dbce1186f2331538253 Olivier Certner 2026-03-06 16:33:21
amd64: align stack on 16 bytes when calling into a EFIRT method
Reported by:  Abdelkader Boudih
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
347cec10e25eacb2906a0a8105eff036850db766 Konstantin Belousov 2026-03-05 08:37:23
amd64: extract uprintf_signal printing into a helper
3e8a9995e9541a0bdd707f111e51ef46a544ee3e Konstantin Belousov 2026-02-18 19:04:39
amd64: print userspace fsbase and gsbase for uprintf_signal
272ea451199462dffd55dd580532eb28ddc92174 Konstantin Belousov 2026-03-04 03:22:26
nvme: Don't active memory space until all BARs are configured
In the current current behavior the 2nd and 3rd BARs can be activated
when they're configured with address zero. This change defers the
activation of all BARs until after they've all been configured with an
address.

This enables FreeBSD on Google Compute Engine C4-LSSD Machines.

Sponsored by:           Google
Tested by:              NetApp (previous version)
Reviewed by:            gallatin, imp
Discussed with:         jrtc27 (improved error reporting)
Differential Revision:  https://reviews.freebsd.org/D55541
b3d9e5013f3e5016ffbd3d3d6091194658af2b92 Matt Delco 2026-03-06 17:23:03
sys: Don't pass RF_ALLOCATED to bus_alloc_resource*
This is a nop as eventually these flags are passed to rman_reserve_resource
which unconditionally sets RF_ALLOCATED in the new flags for a region.
However, it's really a layering violation to use RF_ALLOCATED in relation
to struct resource objects outside of subr_rman.c as subr_rman.c uses
this flag to manage it's internal tracking of allocated vs free regions.

In addition, don't document this as a valid flag in the manual.  I
think the intention here was that if a caller didn't want to pass
RF_ACTIVE or RF_SHAREABLE, they could pass RF_ALLOCATED instead of 0,
but given the layering violation, I think it's best to just pass 0
instead in that case.

NB: The bhnd bus uses RF_ALLOCATED (along with RF_ACTIVE) in a
separate API to manage resource regions that are not struct resource
objects (but a separate wrapper object).  It would perhaps be cleaner
if the chipc_retain_region and chipc_release_region functions used
their own flag constants instead of reusing the rman(9) flags.

Reviewed by:    imp, kib
Differential Revision:  https://reviews.freebsd.org/D55683
1e4086d05297b711081fe06933677925c5ee6232 John Baldwin 2026-03-06 21:32:33
x86: change signatures of ipi_{bitmap,swi}_handler() to take pointer
to the frame instead of the frame itself. It is some stretch of the
amd64 ABI, and is not easily fullfilled when handlers are called from C
and not asm. In particular, the struct frame is passed by value but is
modified by callees, with the expectation that the caller will see the
modifications.

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D55679
fdc1f34506346fd26db8bfb80ba69d1af844c53a Konstantin Belousov 2026-02-27 03:54:06
use ASMC_FAN_FUNCS2 to avoid trying to read non-existent keys
Signed-off-by: tslight <tslight@pm.com>
Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/2051
cecd12ac3b4d98bd52dc0e802a4a38bc72f50e2c tslight 2026-02-26 07:44:44
Add ASMC support for Macbook Pro 8,3
Signed-off-by: tslight <tslight@pm.com>
Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/1992
16c82e28404ec959a7335ceae1d4f43881a50d9e tslight 2026-01-27 16:44:40
hwpmc: Remove left over k7, xscale and p4 references pmc
Support for these processors was removed a few years ago, but a few
references remain that should be removed.

Sponsored by: Netflix
Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/2039
e409e51f83963beaeb95eec82c5f43e44545d6b9 Ali Mashtizadeh 2026-02-20 21:05:41
Commit group #1: acpi_system76: Support for acpi-controlled buttons on System76
acpi_system76: Support for acpi-controlled buttons on System76

Add acpi_system76 for handling acpi-controlled buttons
on System76 Laptops.

Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D55694
cdad55809ef59239c3bbdc841ed307db68bb3971 Pouria Mousavizadeh Tehrani 2026-03-06 17:15:49

acpi_system76: unbreak LINT

Reported by: tinderbox
Fixes: https://cgit.freebsd.org/src/commit/?id=cdad55809ef5 ("acpi_system76: Support for ...")
Differential Revision: https://reviews.freebsd.org/D55694
fa4f625ed854cec2d7657783b955426fce8ff9ba Pouria Mousavizadeh Tehrani 2026-03-07 19:15:40
cxgbe: Shrink the size of csum_types
The checksum types fit in 4b and don't need a full 32b int.

MFC after:      1 week
Sponsored by:   Chelsio Communications
164bddf01b5718c6aec73be112b4dada78934c68 Navdeep Parhar 2026-03-08 19:34:32

Networking

Network-related commands, library, and kernel.

netinet6: Fix memory leak on auto_linklocal
release the refcount of link-local prefix information to ensure
it gets freed when the address is deleted.

Reviewed By: zlei, ivy
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D55593
b55bffeaaf9bae5dc7aa21eae441d89c999ebab8 Pouria Mousavizadeh Tehrani 2026-03-02 15:24:23
tcp: improve NOINET builds
Reported by:  bz
MFC after:      1 week
Sponsored by:   Netflix, Inc.
3d69387ece535fc33821d089aab241bfb9551d69 Michael Tuexen 2026-03-04 14:18:58
inpcb: use correct label name in a comment
df97a58afdea2dc23746c84ebeb60790d8786b22 Gleb Smirnoff 2026-02-28 05:10:54
hpts: remove no longer relevant comment
c5c54f7d21e573741d8ebcfc68d2a852ce416b54 Gleb Smirnoff 2026-03-04 08:20:01
rss: manifest RSS option in kernel with kern.features sysctl
78843218b0cc4679826c15829b355f27c17d3fc1 Gleb Smirnoff 2026-03-05 04:01:22
carp: fix global demotion counter to VRRP advertisements
When net.inet.carp.preempt=1 and a physical interface goes down, the global
V_carp_demotion counter is incremented. For CARP this was already reflected in
outgoing advertisements via DEMOTE_ADVSKEW(), but VRRP sent the raw
sc_vrrp_prio unchanged, so demotion had no effect.

Add DEMOTE_VRRP_PRIO(), a macro analogous to DEMOTE_ADVSKEW():
It subtracts V_carp_demotion from the configured priority and clamps the result
to [0, 254]. Priority 0 is VRRPv3's "resign" signal and causes backups to
preempt immediately. Priority 255 (IP address owner) is never demoted.

Reviewed by:    kp
Approved by:    kp
Sponsored by:   Netflix
Differential Revision:  https://reviews.freebsd.org/D55558
9f71153aec0cb455cd49af6d4ca7e4c16fd45d7a Olivier Cochard 2026-03-05 11:02:20
net80211: sta: use IEEE80211_STATUS_SUCCESS instead of magic 0
Rather than using the status != 0 check use the way more descriptive
status != IEEE80211_STATUS_SUCCESS definition.  This makes it a lot
more clear what is checked here.  While here add a comment in case
aof the (Re)Assoc Resp failure as we do not update state in that case
but rely on a timeout which will bounce us back to State 1
(cf. 802.11-2024, Figure 11-23) which means SCAN in our case, rather
than possibly moving us back to AUTH.  We will likely have to revisit
this when SAE hits the tree.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Reviewed by:    adrian
Differential Revision: https://reviews.freebsd.org/D55643
9b03cc2a70e4b6354c5f5b90e4c51b850b6b1dd2 Bjoern A. Zeeb 2026-03-02 10:33:53
ndp: Add support for Gratuitous Neighbor Discovery (GRAND)
Implement RFC 4861 Section 7.2.6 and RFC 9131, which is also
address one of the IPv6 deployment issues in RFC 9898 Section 3.9.
GRAND should be triggered by a change in link-layer address of interface
or by configuration of a new global ipv6 address after DAD completes.

Reviewed by: glebius
Differential Revision: https://reviews.freebsd.org/D55015
7f3b46fe54f16b24e9ce33294fb805f6e7f785c9 Pouria Mousavizadeh Tehrani 2026-03-05 17:58:14
ndp: Simplify and breakdown nd6_ra_input()
`nd6_ra_input()` is simplied to make it easier to add
additional options.

Reviewed by: glebius
Differential Revision: https://reviews.freebsd.org/D55267
0616521adc35cb252cb399f1147f103284f0f188 Pouria Mousavizadeh Tehrani 2026-03-05 18:01:30
netinet6: Remove support for connecting to IN6ADDR_ANY
RFC4291 section 2.5.2:
    The unspecified address must not be used as the destination address
    of IPv6 packets or in IPv6 Routing headers.  An IPv6 packet with a
    source address of unspecified must never be forwarded by an IPv6
    router.

We disallowed connections to IN6ADDR_ANY by default, as of commit
627e126dbb07 ("netinet6: Disallow connections to IN6ADDR_ANY").  As this
is actually disallowed by the RFC, just remove the support.

Reported by:    bz (in D54306)
Reviewed by:    bz, glebius
Relnotes:       yes
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D54942
a1789fa30c0b1e4c20a083c550f0ec2d50e480e4 Ed Maste 2026-01-27 21:29:20
net80211: fix VHT160/80P80/80 chanwidth selection in the "40-" case
Depending on the base channel ni_vht_chan2 - ni_vht_chan1 can be
negative.  Apply abs() as indicated in the comments right above
        | CCFS1 - CCFS0 | = 8  or > 16
in order to fix the channel width selection.

Sponsored by:   The FreeBSD Foundation
PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293645
Fixes:          https://cgit.freebsd.org/src/commit/?id=4bf049bfeefd9
MFC after:      3 days
Reviewed by:    adrian
Differential Revision: https://reviews.freebsd.org/D55717
6cfd2b93e68061c7831016b91c2e308d01658764 Bjoern A. Zeeb 2026-03-08 00:57:33

System administration

Stuff in man section 8 (other than networking).

crunch: ldconfig and ldd are unrelated to GNU ld
Move them to the usr.bin section.

Fixes: https://cgit.freebsd.org/src/commit/?id=de5663609e4c ("This is the new crunch utility for making...")
e4c8058cf48df2d98e89a7de66d189c71bd4c3fb Ed Maste 2026-03-02 19:34:29
pfctl: consistency
% pfctl -F ethernet
Ethernet rules cleared

% pfctl -s ethernet
pfctl: Unknown show modifier 'ethernet'

pfctl accepts 'ethernet' (or any prefix of it) in the -F flag but
accepts only 'ether' (or any prefix of it) in the -s flag, which seems
inconsistent.  This change brings the two to parity while remaining
backwards compatible.

Reviewed by:    kp
MFC after:      2 weeks
Signed-off-by: Seth Hoffert <seth.hoffert@gmail.com>
36acf1bd32ed5749af4a9f735aeea1a3434fe42f Seth Hoffert 2026-03-03 21:56:45
bhyve/virtio: Rework iovec handling functions for efficiency and clarity
Add check_iov_len() to check whether an iovec array covers a certain
length without the need to call count_iov() on the whole array first.

Garbage-collect the 'seek' argument to buf_to_iov(), used only by
virtio-scsi control request handling. The apparent benefit of using it
to copy only the final status byte instead of the whole TMF or AN
request (25 and 21 bytes, respectively) is dubious at best, given that
the extra code to handle this in buf_to_iov() allocates and frees a new
iovec array and uses seek_iov(), which traverses the whole array and
copies iovecs around.

Replace seek_iov() and truncate_iov(), used only by virtio-scsi, with
a single function split_iov() which combines the functionality of both
in a more efficient way:
While seek_iov() always copies all iovecs past the seek offset into a
new iovec array, split_iov() works in place and doesn't copy iovecs
unless actually necessary. By using split_iov(), we can avoid almost
all copying of iovecs in I/O handling code paths of virtio-scsi.

Reviewed by:    markj
Differential Revision: https://reviews.freebsd.org/D53468
a28cf86c4171fbd004d02f331026e1a946d85778 Hans Rosenfeld 2025-10-28 10:33:42
bhyve/virtio-scsi: Preallocate all I/O requests
By preallocating all I/O requests on all queues, we can take most
allocations out of the hot I/O code paths and simplify the code
significantly. While here, make sure we check all allocations for
success and make sure to handle failures gracefully.

Additionally, check for I/O request validity as early as possible,
and return illegal requests immediately.

Reviewed by:    markj
Differential Revision: https://reviews.freebsd.org/D53469
2a514d377b37a30356c5c27a07b4fb0fd6df4881 Hans Rosenfeld 2025-10-15 21:07:37
bhyve/virtio-scsi: Check LUN address validity
Instead of blindly trusting the guest OS driver that it sends us well-
formed LUN addresses, check the LUN address for validity and fail the
request if it is invalid. While here, constify the members of the virtio
requests which aren't device-writable anyway.

Reviewed by:    markj
Differential Revision: https://reviews.freebsd.org/D53470
4dfeadc32e464557c2aa450212ac419bc567d1e6 Hans Rosenfeld 2025-10-28 08:51:26
rc: virtual_oss: Silence potential hw.snd.default_unit error
PR:           https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293582
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
e85f221def717660c9daf4c0616dfb9cdfb75827 Christos Margiolis 2026-03-06 12:27:03
rtadvd: add multi pref64 support
Add support for multi pref64 in rtadvd and rtadvctl

Reviewed By: zlei, bz
Differential Revision: https://reviews.freebsd.org/D54636
0951901814d1def721ac9a4fc3657af5c9694228 Pouria Mousavizadeh Tehrani 2026-03-06 11:48:23
devinfo: Support PCI DBSF and ACPI handles for -p
When matching on a name of a device, match on ACPI handles and PCI
selectors in addition to device names.  This can be useful for
matching on devices without an attached driver.

For example: devinfo -p pci0:0:31:0

Reviewed by:    imp
Sponsored by:   Chelsio Communications
Differential Revision:  https://reviews.freebsd.org/D55673
ca25b1b26379e27bf2bab7742a7b383ca0bfc7d2 John Baldwin 2026-03-06 20:36:05
fsck_msdosfs: reduce the scope of dentry deletion
When dentry flag is ATTR_VOLUME because of 1 bit flip(from 0x10 to 0x18),
removede function will delete all dentry from invalid dentry postion,
so some normal dentries will be deleted in the same cluster.Unfortunately,
these normal directories and files will not be visible to the user
after wo do fsck_msdos

Signed-off-by: YangWen <anmuxixixi@gmail.com>
Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/1694
cb69951f7ee68c51ce465dba9b0d2f661c567c4b YangWen 2025-05-07 15:39:30
rc.d/zfs: align zfs mount verbosity in host and jail environments
ZFS script runs different startup seqneces depending on where it runs:
on the host (`zfs_start_main()`) or in a jail (`zfs_start_jail()`):

- `zfs_start_main()` mounts ZFS datasets in verbose mode `zfs mount -va`
- `zfs_start_jail()` mounts ZFS datasets silently `zfs mount -a`.

This change aligns the verbose levels.

NO_ISSUE

Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/2030
895a97c875a0f3fed3d4399762f6262b5a4aedb9 Samvel Khalatyan 2026-02-18 17:00:13
virtual_oss: Use virtual_oss_delay_ns() to avoid duplication
Sponsored by: The FreeBSD Foundation
MFC after:      1 week
3a410851bf02c247e71bcd06fdeec2706c6b6070 Christos Margiolis 2026-03-07 23:46:25
virtual_oss: Use virtual_oss_timestamp() to avoid duplication
Sponsored by: The FreeBSD Foundation
MFC after:      1 week
e75c8faf277dded0a80d469cb8182583716a2211 Christos Margiolis 2026-03-07 23:46:28

Libraries

mt(1)/libmt: Add LTO-10 density codes and specs.
These were obtained from IBM specs and actual tapes/drives.

Standard LTO-10 cartriges hold 30TB raw, 75TB with 2.5:1 compression.
Premium LTO-10 cartridges hold 40TB raw, 100TB with 2.5:1 compression.
LTO-10 tape drives are not backward compatible with previous generation
LTO tapes. (This is a change from older generation drives.)

Since the Premium tape is a new thing for LTO, we'll call this density
code LTO-10P vs. the standard LTO-10.  The barcode identifier for LTO-10
tapes is "LA"; the barcode identifier for LTO-10P tapes is "PA".

LTO-10 cartridges contain 1035m of tape, while LTO-10 Premium
cartridges contain 1337m of tape and have slightly higher density.
(Obtained from MAM data on actual tape cartridges and the density
report, obtained via 'mt getdensity'.)  LTO-10 cartridges use a
polyethylene naphthalate (PEN) film substrate. LTO-10 Premium
cartridges use an Aramid (aromatic polyamide) substrate that is thinner
and stronger, allowing a longer tape to fit in the same cartridge form
factor.

usr.bin/mt/mt.1:
        Add density codes and specs for LTO-10 and LTO-10P.

lib/libmt/mtlib.c:
        Add density codes for LTO-10 and LTO-10P.

Sponsored by:   Spectra Logic
MFC after:      3 days
930486f9be5c884d1d2f0aae9f81a3f5af1f2718 Kenneth D. Merry 2026-03-02 19:13:47
libutil: take a size_t in trimdomain()
INT_MAX is already larger than a reasonable hostname might be, but
size_t makes some of this easier to reason about as we do arithmetic
with it.  This would maybe not be worth it if we had to bump the
soversion because of it, but libutil does symbol versioning now so we
can provide a compat shim.

While we're here, fix some inconsistencies in argument names in the
manpage.

Reviewed by:    des
Obtained from:  https://github.com/apple-oss-distributions/libutil
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D54622
7e70589b1bee4853cb11e3d8eb963079b18ff534 Kyle Evans 2026-03-03 22:51:01
libutil: avoid an out-of-bounds read in trimdomain(3)
memchr(3) will happily believe we've passed in a valid object, but
hostsize could easily exceed the bounds of fullhost.  Clamp it down to
the string size to be safe and avoid UB.  This plugs a potential
overread noted in the compat shim that was just added.

Reviewed by:    des
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D54623
f268f95955f5f0f91f4d39e13bcd69a24e0d8ce4 Kyle Evans 2026-03-03 22:51:02
system(3): Unwrap execve()
There is no need to call execl(), which will allocate an array and copy
our arguments into it, when we can use a static array and call execve()
directly.

MFC after:      1 week
Sponsored by:   Klara, Inc.
Reviewed by:    kevans
Differential Revision:  https://reviews.freebsd.org/D55648
40e52e0edd038460a2a2aca017b3ac5a513fe37b Dag-Erling Smørgrav 2026-03-04 15:22:42
getnetconfig: make nc_error a thread local variable
Remove a bunch of complexity at the cost of 4 bytes of storage per
thread.

Reviewed by:    jhb
Sponsored by:   DARPA, AFRL
Differential Revision:  https://reviews.freebsd.org/D55310
db1ecd5854d4d9ed596d6411a01de0df6e41e629 Brooks Davis 2026-03-05 10:30:30
libc/armv7: remove default version for alloca
The alloca() interface has been a macro expanding to __builtin_alloca()
since 2003 (commit 79806b4cdce0, included in FreeBSD 5.2).  Even before
that virtually every compiler version I was able to test replaced
alloca() with compiler generated code when targeting C.

Hide it to prevent future (mis)use.

Reviewed by:    imp, kib
Differential Revision:  https://reviews.freebsd.org/D51858
4dd517acb6949d6fed5b16f26fbffb150749b121 Brooks Davis 2026-03-05 10:33:53
libc/quad: narrow list of symbols exposed for 32-bit arm
lld doesn't notice, but ld.bfd complains.

Reviewed by:    brooks
Differential Revision:  https://reviews.freebsd.org/D55657
27cfa8ec633ae7527dc6187c6a78db04983c9ccf John Baldwin 2026-03-05 19:07:09
libc/quad: Switch to per-arch lists of symbols
This more closely mirrors libc/quad/Makefile.inc and is easier to
read.

Reviewed by:    brooks
Differential Revision:  https://reviews.freebsd.org/D55658
54bf594851f671e231d2786cdacaf68f290ff738 John Baldwin 2026-03-05 19:07:09
libc/quad: fix missing closing #endif in Symbol.map
Without this lib32 libc.so.7 would be missing critical symbols,
including malloc / free and all syscall wrappers.
8dd28e13e41b6200e58d6e99981ff8323cff3711 Xin LI 2026-03-06 08:22:06

Filesystems

nfsclient: convert to use vn_delayed_setsize()
Reviewed by:  rmacklem
Tested by:      pho
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D55595
5c71df9850355e20cf8f89fb656b18ef79cdf178 Konstantin Belousov 2026-02-28 16:26:12
nfs_clstate.c: Handle the same stateid case correctly
When an NFSv4.1/4.2 sarver upgrades a read delegation to
a write delegation, it does not need to change the
delegation's stateid.

Without this patch, a DELEGRETURN of the stateid was done
for the case where the delegation stateid had not changed.
This return was bogus, since the delegation stateid now
represents the new write delegation.

This patch fixes the priblem by checking for "same stateid"
and only doing the DELEGRETURN when it is not the same.

PR:     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=289711
Tested by:      Peter Much <pmc@citylink.dinoex_sub.org>
MFC after:      2 weeks
016570c4463d5908953355ee1cf9a385ad9601b4 Rick Macklem 2026-03-08 21:09:36

Kernel

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

sys: Retire le(4)
We retired most obsolete 10 and 10/100 Ethernet NIC drivers in 2019 --
see commits following ebcf740a32ae ("FCP-101: remove obsolete 10 and
10/100 Ethernet drivers.).

le(4) was retained with with the note "Emulated by QEMU, alternatives
don't yet work for mips64."  MIPS has since been removed from the tree
and emulators and virtual machines offer many other, more suitable
devices.

Reviewed by:    brooks
Relnotes:       Yes
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55516
7a323f873662dae95a061d1eaf8b1d9d1a0f8a23 Ed Maste 2025-10-24 17:26:03
acpi: build dev/acpi_support/acpi_wmi_if.m on ARM64
Per Wikipedia, ACPI WMI support is available on all x86* platforms
and ARM platforms. Add the source to `files.arm64` so code that relies
on its headers (thunderbolt(4) for instance), can be built on ARM64.

MFC after:      1 month
Reviewed By:    andrew
Differential Revision: https://reviews.freebsd.org/D55535
876d2b8392e6570a835a500d8fd7c4a5b0abf844 Enji Cooper 2026-03-03 04:09:41
Only build USB-related modules if MK_USB != no
This change moves the thunderbolt module and other USB modules under a
MK_USB != no conditional to ensure that users not desiring USB support
can easily build systems without USB-specific drivers using this knob.

MFC after:      1 week
Reviewed By:    imp
Differential Revision: https://reviews.freebsd.org/D55576
c47cefba831240a1b3de375f18134b93cf998f5c Enji Cooper 2026-03-03 04:49:54
nvme xpt: convert restart to a bool.
restart is a boolean. While I'm here, convert to a bool.

Sponsored by:           Netflix
Differential Revision:  https://reviews.freebsd.org/D55518
3212aa86ac87fcd3b483d3f1668dcb26a3ab84b0 Warner Losh 2026-03-03 17:59:18
Commit group #2: nda
nda: Move ndasetgeom

Move ndasetgeom up in the file. We'll need it here for future
commits. Also, preserve the UNMAPPED_BIO flag since we can't observe
enough data from this routine to set it directly.

Sponsored by:           Netflix
Differential Revision:  https://reviews.freebsd.org/D55519
b1bd7fed589fb5381fa2595f1f08e74895868941 Warner Losh 2026-03-03 17:59:22

nda: Rescan the drive on open

SCSI and ATA drives rescan the drive on opens to catch changes to the
disk. We do it here to so we catch if a drive has been FORMATed or
SANITIZEd with different parameters. We don't use xpt_rescan() since we
don't want to interfere with boot or keep all busses locked (this rescan
won't change the bus, so we don't need the CAM topo lock).

Sponsored by:           Netflix
Differential Revision:  https://reviews.freebsd.org/D55520
5c2186b992546bce212dfad3e49012f4c69c2d0c Warner Losh 2026-03-03 17:59:31

nda: AC_GETDEV_CHANGED calls media chanaged for sectorsize change

When the sector size changes, we assume it's new media. When the
mediasize changes, we'll just resize the disk (we get called for both
events). When neither have changed, don't call either.

Some NVMe drives (but not all) post a async event on page 4 with the
sector size changes via a FORMAT command. We'll notice the new media
right away, rather than the next device open. As a practical effect,
this just means that certain geom operations will see it sooner. Since
most drive interaction goes through open, that will catch those drives
that do not post this event well enough.

Sponsored by:           Netflix
Differential Revision:  https://reviews.freebsd.org/D55521
628d7a3270b64b6c7fae3b0c98068c670162a154 Warner Losh 2026-03-03 17:59:36
nda: Assume all cases in ndaasync can sleep
The error recovery is nicer if we can wait for the tiny memory we need
to send the messages when the physpath changes. Since we've moved the
async handler into a sleepable context, we can wait for the allocation
to complete since async events are rare enough and it's not an
indefinite wait.

Also add a comment about the scope of AC_ADVINFO_CHANGED for nvme
drives. We could use it for broadcasting INDENTIFY changes in nvme
drives. However, the underlying mechanisms in NVMe don't really allow
for that (they are more fine-grained). So for namespace changes, for
example, we'll send AC_GETDEV_CHANGED instead of a AC_ADVINFO_CHANGED.

Sponsored by:           Netflix
Differential Revision:  https://reviews.freebsd.org/D55523
824530a5c4fd59427cda0eae0a4ac85212814958 Warner Losh 2026-03-03 18:00:15
LinuxKPI: avoid -Werror=unused-value in sort() from BUILD_BUG_ON_ZERO()
The BUILD_BUG_ON_ZERO() macro returns an (int)0 if it does not fail
at build time. LinuxKPI sort() has it as a guard for an unsupported
argument but ignores the return value.

This leads to gcc complaining:

/usr/src/sys/compat/linuxkpi/common/include/linux/build_bug.h:60:33: error: statement with no effect [-Werror=unused-value]
   60 | #define BUILD_BUG_ON_ZERO(x)    ((int)sizeof(struct { int:-((x) != 0); }))
      |                                 ^
/usr/src/sys/compat/linuxkpi/common/include/linux/sort.h:37:9: note: in expansion of macro 'BUILD_BUG_ON_ZERO'
   37 |         BUILD_BUG_ON_ZERO(swap);                        \
      |         ^~~~~~~~~~~~~~~~~
/usr/src/sys/contrib/dev/rtw89/core.c:2575:9: note: in expansion of macro 'sort'
 2575 |         sort(drift, RTW89_BCN_TRACK_STAT_NR, sizeof(*drift), cmp_u16, NULL);

Change to BUILD_BUG_ON() for the statement version.

Reported by:    CI
Co-authored-by: bz
Approved by:    emaste (mentor)
MFC after:      3 days
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D55634
f26cb4757eb74ceace39144933ae198ebf1b4f28 Siva Mahadevan 2026-03-03 19:09:35
Commit group #3: LinuxKPI
LinuxKPI: 802.11: move linuxkpi_ieee80211_handle_wake_tx_queue()

No functional changes.  Just moved the function within the file.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
3d3303b756ad4ee3ae520f6d07df6978d049a871 Bjoern A. Zeeb 2026-03-04 08:11:03

LinuxKPI: 802.11: improve prep_tx_info

Over time struct ieee80211_prep_tx_info has grown further fields.
One which is becoming mandatory is the subtype (of the mgmt frame).
iwlwifi(mld) has a WARN for it if it does not match, so we now have
to set this for proper operation.  In addition we are tyring to improve
the situation of setting/unsetting (prepare_tx/complete_tx) in various
states and cleanup the use of other fields but link_id which we now
leave as a marker for the future everywhere.
The general problem we are facing is that our hook surface in this case
is the state machine but likely would have to be tx/rx mgmt frames but
we would alos have to driver the TX queues from there which is tricky.
The long-term answer is to change net80211.

Further the hardware flag DEAUTH_NEED_MGD_TX_PREP is dead and was
removed again in favour of leting drivers deal with it.  iwlwifi(mvm)
likely being the only driver which ever used this.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
8f532c7b25d54906c307bfda6cb679632cc26313 Bjoern A. Zeeb 2026-03-02 12:51:55

LinuxKPI: pass attrs in more places in dma-mapping.h

Various macros (dma_map_sg_attrs, dma_unmap_sg_attrs,
dma_map_single_attrs, and dma_unmap_single_attrs) currently supress
passing on the attrs argument.  Their implementation (even though at
times still marked the argument __unused; we remove that) have long
gained support for handling the argument.
With ofed fixed (5edf24aac1d09), pass the argument through so that
other drivers using these functions may hopefully work just a bit
better as well.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Reviewed by:    kib
Differential Revision: https://reviews.freebsd.org/D55391
31c3cba807839a1a16e6f4bca91d530d9342b61a Bjoern A. Zeeb 2026-02-19 23:17:47
hpts: remove call into TCP HPTS from userret()
This hack introduced in d7955cc0ffdf and e3cbc572f154 proved to have more
ill side effects than benefits.  Sorry for that.

Now the HPTS soft clock is called only after the LRO completion.  Refactor
HPTS module linkage to address that and share the pointer only between
HPTS and LRO.

Reviewed by:            Nick Banks
Differential Revision:  https://reviews.freebsd.org/D55640
776604651ea640d65baa241c90fb0531aba30f29 Gleb Smirnoff 2026-03-05 03:16:00
LinuxKPI: 802.11: split (*bss_info_changed) up for more modern drivers
With the advent of MLO some of the updates (*bss_info_changed) would
have done are not per-link.  This had (*vif_cfg_changed) and
(*link_conf_changed) introduced which are used by iwlwifi, rtw89,
select mt76 drivers, and ath12k currently it seems.
A driver normally only supports on or the other set.

Factor out the call to (*bss_info_changed) into an internal function.
There split the options up depending on whether they are for the
vif or a link and leave a fallback to (*bss_info_changed) for older
drivers.

Add the mac80211 ops implementations for the two new calls along with
a currently unused backup option for (*bss_info_changed) for each
as I assume we will eventually call the directly rather than from the
internal wrapper function.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
9592f563c36bd207d98f1b3a13839b88d5760d97 Bjoern A. Zeeb 2026-01-03 20:10:00
LinuxKPI: 802.11: change teardown order of disassoc and sta rm
In lkpi_sta_auth_to_scan() we remove the sta from the firmware
for everything supporting (*sta_state).

We used to run into issues here with iwlwifi in that we had to
use a specific order: set vif->cfg.assoc = false, .aid = 0,
then remove the sta, and then send the mac update as otherwise
we would either have the sta silently removed (if we run
(*bss_info_change) first and fail then or silently not have the
sta removed and upon sta add we would trigger the fw crash.

The order of events seem to have changed now and especially BE200
(iwlwifi/mld) is picky about this and would crash the firmware with
something like:

        iwlwifi0: 0x20103311 | ADVANCED_SYSASSERT
        iwlwifi0: 0x00000000 | umac branchlink1
        iwlwifi0: 0xC00808AA | umac branchlink2
        iwlwifi0: 0xD00D6E90 | umac interruptlink1
        iwlwifi0: 0x0108C504 | umac interruptlink2
        iwlwifi0: 0x00000000 | umac data1 (link_id? seen weird values there though)
        iwlwifi0: 0x00000006 | umac data2 (fw_sta_id)
        iwlwifi0: 0x00000001 | umac data3

if it would still think we were assoc.

So the new order is as one would have expected initially:
set assoc = false, aid = 0;  do the remaining bss_conf (vif/link) changes
and issue the (*vif_cfg_changed) / (*link_info_changed) or for older
drivers (*bss_info_changed).  That will tell the mac we are no longer
associated.  And only then remove the sta from the firmware.

Update the comment there along so we do have the paper trail as to when
and why this changed.

Tested on:      BE200, AX210 (11ac)
Tested on:      AX200. 9260, 8265, 3165 (11a)
Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
f68ebebd8ae469e344f10ed2f3c4d9d983a29f41 Bjoern A. Zeeb 2026-03-05 09:58:28
witness: report a thread that can't sleep in WITNESS_WARN
Although this is not related to locking, but seems to be the right
place to catch violators, given that WITNESS_WARN is already used
widely in the kernel.

Reviewed by:            kib, markj
Differential Revision:  https://reviews.freebsd.org/D55316
6feb16b77e7df470c635bc3af65d448fd37deb10 Gleb Smirnoff 2026-03-05 18:43:17
VOP_RENAME(9): add flags argument
Reviewed by:  markj
Tested by:      pho
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D55539
e486066cf48a89ba87fab6b3d2b56f271f50439b Konstantin Belousov 2026-02-26 18:22:48
kern_renameat(9): add flags argument
Reviewed by:  markj
Tested by:      pho
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D55539
1f3020067ab3f3c5043d01ea1e3a3d2998a39d4a Konstantin Belousov 2026-02-26 18:30:14
sys: add renameat2(2) syscall
Reviewed by:  markj
Tested by:      pho
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D55539
28599a1e5f1b90676a818e0a4818cddd0839ad25 Konstantin Belousov 2026-02-26 18:33:33
renameat2(2): implement AT_RENAME_NOREPLACE flag
For msdosfs, tmpfs, and ufs.

Reviewed by:    markj
Tested by:      pho
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D55539
7aaec5f3faecf98e377c97e24dddb9c65f4b2e75 Konstantin Belousov 2026-02-26 18:57:24
linuxolator: translate LINUX_RENAME_NOREPLACE into our AT_RENAME_NOREPLACE
Reviewed by:  markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D55539
8feb8d221cfb842ee11d744d22571baec6c18cd8 Konstantin Belousov 2026-02-26 19:21:08
Regen
ef8292e339572dc669409d233f9e3d43f13acb87 Konstantin Belousov 2026-02-26 18:47:52
vfs: add VOP_DELAYED_SETSIZE() and related infrastructure
The change generalizes code that was initially developed for nfs client
to handle filesystems that needs to call vnode_pager_setsize() while
only owning the vnode lock shared.  Since vnode pager might need to trim
or extend the vnode vm_object' page queue, the vnode lock for the call
must be owned exclusive.  This is typical for filesystems with remote
authorative source of file attributes, like nfs/p9/fuse.

Handle the conflict by delaying the vnode_pager_setsize() to the next
vnode locking to avoid relock.  But if the next locking request is in
shared mode, lock it exclusively instead, perform the delayed
vnode_pager_setsize() call by doing VOP_DEFAULT_SETSIZE(), and then
downgrade to shared.

Filesystems that opt into the feature must provide the implementation of
VOP_DELAYED_SETSIZE() that actually calls vnode_pager_setsize(), and use
vn_delay_setsize() helper to mark the vnode as requiring the delay call.

Reviewed by:    rmacklem
Tested by:      pho
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D55595
45117ffcd533ddf995f654db60b10899ae8370ec Konstantin Belousov 2026-02-28 16:11:58
splice: optionally limit worker queues
Add a new tunable/sysctl (kern.ipc.splice.num_wq) which can be used
to limit the number of splice worker queues as a way to limit
splice cpu use.

The default (-1) keeps the current behavior of running one worker
for each core in the system.  An administrator can set it to 0 (either
via tunable, or before the first splice call via sysctl) to
effectively disable splice, or some number smaller than the number of
cores to limit splice thread use.

Reviewed by: markj
Differential Revision: https://reviews.freebsd.org/D55579
Sponsored by: Netflix
f1e8b1aca54312a2c7f0d22a83aaae44950dac6b Andrew Gallatin 2026-03-06 14:59:35
kern.post.mk: Replace "mkdir -p" with "install -d"
to create the 'dir' entry in METALOG

Signed-off-by: Marian Cingel <cingel.marian@gmail.com>
Reviewed by: imp, kevans
Pull Request: https://github.com/freebsd/freebsd-src/pull/1967
756500fa4b1ed0807e16c9063f27031544cd7706 Marian Cingel 2026-01-13 17:48:04
LinuxKPI: 802.11: lkpi_sta_auth_to_scan() fail graciously on lsta == NULL
Usually after a firmware crash, we see reports of crashes in
lkpi_sta_auth_to_scan().  One of the last ones was in the PR
mentioned below.

These crashes are often attributed as the problem while the real
problem happened before.

At this point try avoid the NULL pointer and to fail graciously if
lvif->iv_bss (lsta) is no longer set.  This way users have a chance
to possibly recover using netif restart wlan0 rather than dealing
with a panic.

See if this helps us to better track down the original problems
rather than the follow-up crash.

On a debug kernel the KASSERT should normally have caught that
condition as well but we see panics on page faults were the log
line was there but then the lsta->ni deref has happened, which is
after the KASSERT.  I have not checked if this is a reordering problem
or if the people reporting had IEEE80211_DEBUG on but not INVARIANTS.

Sponsored by:   The FreeBSD Foundation
PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=286219 #chttps://bugs.freebsd.org/bugzilla/show_bug.cgi?id=11
MFC after:      3 days
53c69fd933dc49f69d5603fb27ce51064ebe681e Bjoern A. Zeeb 2026-03-08 12:48:51

Build system

Run `make obj` before running `make test-includes`
Before this change, `make test-includes` (run as part of buildworld)
would place test files in the current directory, which would clutter up
git clones. Run `make obj` beforehand to ensure that the files are put
in `${.OBJDIR}` instead of `${.CURDIR}`. This helps cut down on the
noise significantly when running commands like `git status`.

MFC after:      1 week
Differential Revision: https://reviews.freebsd.org/D55499
912864912b71951f9a636190b1dba80528f588eb Enji Cooper 2026-03-03 05:59:50
src.opts.mk: Retire BSD_CPIO option
Prior to commit 6973701a00e3 ("1. Make the BSD version of cpio the
default [1]") GNU cpio was installed unconditionally.  The BSD_CPIO
option was added when we introduced the BSD licensed, libarchive-based
cpio, to support installation of GNU cpio, libarchive cpio, or both.

GNU cpio was removed long ago and there is no longer a need for this
option.  We can just install BSD cpio unconditionally.

Reviewed by:    des
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55467
b6bb2fc77e37fcb1efb4f83fcb2965f26b4db705 Ed Maste 2026-02-23 19:36:09
me.4: link if_me kernel module to its manual page.
MFC after:    1 week
46ba263d6eeb1c6029841b4c42f54912ad61de5c Eugene Grosbein 2026-03-04 07:29:26
virtual_oss(8): Expose ioctl interface
PR:           https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293545
Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
d15987cc06192f78a31040f2c142bcaf88e8a1ee Christos Margiolis 2026-03-04 18:06:17
Makefile.inc1: Don't force LLVM_BINUTILS off for cross-tools
Because of this setting we were still using ELF Tool Chain tools for
buildworld.  The sets of binary utilities are largely equivalent and
this went unnoticed after commit 1cae7121c667 ("Enable LLVM_BINUTILS
by default").

This was discovered recently because ELF Tool Chain objcopy produces
standalone debug files without phdrs and this caused an issue with a
3rd party ELF parser [1].  Remove the forced setting so that we use
LLVM's binutils to build the system.

[1] https://sourceware.org/bugzilla/show_bug.cgi?id=33876

Reviewed by:    imp, jhb
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55650
858f53dd43ecb84cf2597229e9dbda2f242d9dd6 Ed Maste 2026-03-04 15:06:26
cirrus-ci: move package_check after test
Liveness is often more important than minor packaging glitches (which
might well be the fault of a prior commit.)

Reviewed by:    emaste
Differential Revision:  https://reviews.freebsd.org/D55481
ea9bc84658308c8bdef94b2bda00781ef7c473a6 Brooks Davis 2026-03-05 10:23:51
Commit group #4: build: Retire LLVM_CXXFILT option
build: Retire LLVM_CXXFILT option

The LLVM_CXXFILT option was added when we used ELF Tool Chain tools by
default.  ELF Tool Chain's c++filt failed to demangle some symbols, so
we added a special case to install LLVM's version and enabled it by
default.

The rest of the LLVM tools are now used by default, as of commit
9fa94e1c099d ("Turn on WITH_LLVM_CXXFILT by default").  Simplify the
build logic by removing a special case and just include llvm-cxxfilt
with the rest of the LLVM utilities.

Reviewed by:    dim
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55654
5d757312ad591aae26b39943f113ebf3819718da Ed Maste 2026-03-04 19:03:42

usr.bin: Exclude ELF Tool Chain cxxfilt build

when LLVM_BINUTILS is enabled (which is the default).

PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293610
Fixes: https://cgit.freebsd.org/src/commit/?id=5d757312ad59 ("build: Retire LLVM_CXXFILT option")
Sponsored by: The FreeBSD Foundation
42e4df8b853186190b61428f0bd0f923cc525033 Ed Maste 2026-03-06 14:47:53

llvm-cxxfilt: Install as c++filt only with LLVM_BINUTILS

When building WITHOUT_LLVM_BINUTILS /usr/bin/c++filt is the one from
ELF Tool Chain.

PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293610
Fixes: https://cgit.freebsd.org/src/commit/?id=5d757312ad59 ("build: Retire LLVM_CXXFILT option")
Sponsored by: The FreeBSD Foundation
88dedd16ba659ea43bf5572a85e6f8151ee3fd87 Ed Maste 2026-03-06 15:49:22
bsd.linker.mk: Document ifunc, ifunc-noplt, riscv-relaxations features
Reviewed by:  emaste
Differential Revision:  https://reviews.freebsd.org/D55655
1b77f6ec6b9f5e0e916e2f559f045262645f2364 John Baldwin 2026-03-05 19:07:09
bsd.linker.mk: Sort list of linker features
Reindent the features as well to be friendly to long feature names.

Reviewed by:    emaste
Differential Revision:  https://reviews.freebsd.org/D55656
cf92fa337074b0ac36f89b826ecf0769a1c45609 John Baldwin 2026-03-05 19:07:09
bsd.linker.mk: Retire support for binutils 2.17.50
GNU binutils 2.17.50 is the last GPLv2 version, and we retained support
in FreeBSD while it was part of the in-tree toolchain.  The last parts
of binutils 2.17.50 were removed in commit 74e8d41e0ac8 ("Retire
BINUTILS and BINUTILS_BOOTSTRAP options") and there is no longer a need
for the build infrastructure.

We retain build-id and ifunc in LINKER_FEATURES unconditionally for now,
as they may be tested by 3rd-party Makefiles.  We can however stop
testing for them in the tree.

Reviewed by:    imp
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55674
9cea0f0be79dc080761154cb934db0218ae512f3 Ed Maste 2026-03-05 18:49:58
renameat2(2): document
Reviewed by:  markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D55539
619e49b2ba58e1ffd2ab111fef6d1e87d77e7391 Konstantin Belousov 2026-02-27 00:10:36
Add __unused workaround for linux/sys/types.h
Signed-off-by: Perdixky <3293789706@qq.com>
Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/2063
9f2eb94736eaf9a86cef75fe54c43c64132ec312 Perdixky 2026-03-05 12:26:03
libc/riscv64: temporarily disable strnlen() implementation until a fix is developed
strnlen() doesn't seem to cope well with a length argument such that
string pointer plus length overflows past the end of the address space.

Reviewed by:    fuz
MFC after:      1 week
PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293353, https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293296
Differential Revision:  https://reviews.freebsd.org/D55714
2a4e3112c811b9892e14e15cfd23538e7e47329c Strahinja Stanišić 2026-03-07 21:59:25
depend-cleanup.sh: rebuild strnlen.o on riscv64 if it came from strnlen.S
We have to switch back to the previous rule once the temporary
build fix has been replaced with a permanent fix.

MFC after:      1 week
See also:       2a4e3112c811b9892e14e15cfd23538e7e47329c
PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293353, https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293296
b5514e1c6d9e7ec09b299a983d1ce32852e0d9dc Robert Clausecker 2026-03-07 23:14:25

Internal organizational stuff

Add .editorconfig
FreeBSD developers use different text editors or sometimes use GUI
editors such as VSCode or Zed on different platforms for convinence.
However, there is lack of unified config for those editors to follow
style(9) including indent rules.

Although most "modern" editors support .editorconfig out of box, basic
editors such as vim needs a plugin for autoloading .editorconfig file.

Sponsored by:   The FreeBSD Foundation

Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/2024
75858ca528bfdef7101ac493baa1b43616c4153c Minsoo Choo 2026-02-15 19:14:28

Testing

Allow programs run under this program to have arguments.
bc9229035c5f46674cf06b48d66e9f039b3a9875 George V. Neville-Neil 2026-03-03 17:10:26
tests/net/bpf: hexdump(3) the packets if compare fails
d4083fb836cf5d06a2bc2d6fe7297fb5139c8fc6 Gleb Smirnoff 2026-03-05 03:57:59
tests/net/bpf: skip the bpf:inject test when RSS is present
With RSS the epair(4) may reorder packets making the test flaky. See
net/if_epair.c:epair_select_queue().
1abb62867f2a36acb689fdfed62af00b78d8f324 Gleb Smirnoff 2026-03-05 04:04:11
stress2: Added a new test scenario
05cbd5fc2b481d6503c69be95fe9a6d9a287bc6d Peter Holm 2026-03-06 09:03:11
stress2: Updated comments
b15dc3ff28dbb2c3f8eec51803dbca7569439773 Peter Holm 2026-03-06 09:03:53

Style, typos, and comments

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

Commit group #5: style.mdoc
style.mdoc: Li macro is undeprecated for some time

Previously, the mdoc linter warned against using Li as it was deprecated
upstream. However, upstream undeprecated it since last year. As usual
when it comes to style, the best thing to do is to follow the existing
style of the page. We have many manuals which prefer double quotes.

MFC after:              3 days
Citation:               https://cvsweb.bsd.lv/mandoc/mdoc.7?rev=1.297
Differential Revision:  https://reviews.freebsd.org/D55297
fae551b76785d2357b09e2c022a92f410d871b9b Alexander Ziaee 2026-03-02 10:20:01

style.mdoc: Remove synopsis formatting advice

Remove incorrect advice. The first rule was no spaces padding pipes
when showing alternates. Almost universally we not do this, and third
party manuals do not either. The second was using Cm to mark up symbols.
This advice is in conflict with mdoc(7), and the extended documentation
on mdoc linked below, which is also linked at the bottom of mdoc(7).

Conflicting information in our docs is a natural result of documentation
proliferation. The most important thing we can do to reduce technical
debt in the documentation is reduce the amount of doc overlap. Excessive
technical debt and conflicting rules is a barrier to new contributors.
This type of work requires thorough expertise, is not glamorous at all,
and to add insult to injury, is socially unsafe. To get new contributors
to the docs project, we must deduplicate documentation.

We have the mdoc manual, examples/mdoc, style.mdoc, and the fdp chapter
on manual pages. With this many, they will inevitably come to contain
conflicting information, and people will learn not to read them or work
on them.

MFC after:              3 days
Ref:                    https://mandoc.bsd.lv/mdoc/style/commands.html
Differential Revision:  https://reviews.freebsd.org/D55298
47326cb470278e891975354286481b5ba876929a Alexander Ziaee 2026-03-02 10:24:11

style.mdoc: Left angle bracket is not less-than

MFC after:              3 days
Differential Revision:  https://reviews.freebsd.org/D55300
06ac71cffba4a0f86334844453d0a6fb3c46aa12 Alexander Ziaee 2026-03-02 10:41:07
src.conf.5: Regen for typo fix in commit 8e9515839369
4c822e8b7de246bbf139e493ee33c73cdc4e4c28 Ed Maste 2026-03-03 14:24:38
LinuxKPI: 802.11: fix typo
Sponsored by: The FreeBSD Foundation
MFC after:      3 days
fa0f891d54449837b47f2ef2266163bdd9117879 Bjoern A. Zeeb 2026-02-17 03:05:16
bus_if: Fix typo
Reviewed by:  olce
Approved by:    olce
Fixes:  https://cgit.freebsd.org/src/commit/?id=4c4392e791b7 ("Add doxygen doc comments for most of newbus and the BUS interface.")
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D48721
bc3914737bce07a912a8024ba19983d7c388736c Aymeric Wibo 2026-03-04 15:39:27
INIT_ALL: Fix typo in option description
From GitHub pull request #2035; the change needs to be applied to the
source file for the option description, not the generated src.conf.5.
c9f3de0ba95b8da31d35fa92e0a54cf6f3d3f1dd Ed Maste 2026-03-04 18:31:29
src.conf.5: Fix "incompatibility" typo
MFC after:    3 days
Reviewed by:    ziaee
Signed-off-by:  Christos Longros <chris.longros@gmail.com>
Closes:         https://github.com/freebsd/freebsd-src/pull/2035
71e8b32415c2c70a95e89644782006f84de17f2d Christos Longros 2026-02-19 19:37:47
hid: Fix 'strenght' typo in hpen.c
Reviewed by:  wulf, obiwac
Approved by:    wulf, obiwac
Fixes:  https://cgit.freebsd.org/src/commit/?id=d97d5c0ce89d ("hid: Import hidmap-based drivers written by Greg V")
Differential Revision:  https://reviews.freebsd.org/D55626
2f440158c6865c93c9f8ef611b8673bba1f81dfa Majed Alkhaleefah 2026-03-04 23:40:38
LinuxKPI: 802.11: fix typo
Sponsored by: The FreeBSD Foundation
MFC after:      3 days
fa41408d6043df3779d94bd1ac871a5ba8f4dafb Bjoern A. Zeeb 2026-03-05 10:30:46
style.9: Encourage style changes when doing significant modifications
The rule of allowing style changes when about half or more of a file (or
group of files), coupled with the advice of avoiding stylistic changes,
could be interpreted as forbidding most style changes, even in heavily
modified functions.

In order to rule out that interpretation and ease transition towards our
prescribed style:
1. Clarify that avoiding stylistic changes concerns only "standalone"
   ones.
2. Actually encourage changing the style, and extend the cases where it
   is explicitly allowed to do so to any single logical unit as little
   as a function, keeping the existing "about half" of modified code as
   a rule of thumb.

When point 2 above applies, encourage to commit pure style changes
separately, and to add style-only commits to '.git-blame-ignore-revs'.

Add a specific note ruling out "horizontal" style changes spanning
unrelated directories in the whole tree, which make the merge (MFC)
process more difficult.

While here, be slightly more stringent on new kernel code.

While here, regroup the paragraphs talking about style, and put them at
the end (before the recent C++ section).

While here, rephrase the requirement on third-party maintained code to
be slightly less stringent.

Reviewed by:    jhb, imp
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D52885
af2c7d9f6452f2281a832b03375910f99230f924 Olivier Certner 2025-10-03 12:05:46
Fix hooks.sh comment typo
Signed-off-by: Kalevi Kolttonen <kalevi@kolttonen.fi>
Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/2013
3be98a0c86f956604be58a14c6a9bfe2f25af2d8 Kalevi Kolttonen 2026-02-10 23:15:51
Fix debug.sh comment typo
Signed-off-by: Kalevi Kolttonen <kalevi@kolttonen.fi>
Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/2012
d7922c3d2391c6db3dac77fa491d53e080162c79 Kalevi Kolttonen 2026-02-10 23:02:49

Contrib code

contrib/tzdata: import tzdata 2026a
6becc3dff922476d667c15f029e520da496d4295 Philip Paeps 2026-03-02 20:34:06
libedit: vendor import version 2026-03-04
MFC After:    1 week
28ff4d35f8b904952bf86b3264650d91cc0cb5d7 Baptiste Daroussin 2026-03-05 07:17:09
iwlwifi: fixup link_id for certain cases
In iwl_mvm_mld_vif_cfg_changed_station() if we do not do MLO (which we
do not do yet at all), dtim_period is not yet set but asssoc is
(our common case) the link_id can become -1 as active_links is always
0 for the non-MLO case.

This leads to logging of a WARN;
Invalid link ID for session protection: 4294967295

Fixup the link_id if it is -1 to be 0.  This is the deflink link_id so
that should always be fine in this case.

For Linux 7.0-rc2 that code is already gone so this is a local temporary
stopgap measure for the mvm-mld devices (e.g., some AX210).

Sponosred by:   The FreeBSD Foundation
MFC after:      3 days
760e0a18d3033152899fbd0e3f587dfe3c28d6bf Bjoern A. Zeeb 2026-03-05 09:47:10
libedit: fix use after free
6d2a147ae558ef423e3df451a9049200b291a8d0 Baptiste Daroussin 2026-03-05 16:12:51
zfs rename: properly cleanup on errors occuring before zfs_do_rename()
Reported and tested by:       arrowd
Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D55539
ed87040311b88e2c95a791aa049f2c37c857f048 Konstantin Belousov 2026-03-05 02:57:34
zfs: implement AT_RENAME_NOREPLACE
Reviewed by:  markj
Tested by:      pho
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D55539
7a1217ff3bbdd1ef40d1b94170c53611fadeb026 Konstantin Belousov 2026-03-01 13:16:55
Commit group #6: iwlwifi
iwlwifi: mld: move module_init() to SI_ORDER_SECOND

In FreeBSD the iwlwifi driver is a single kernel module.
As for iwlwifi/mvm we need to make sure the common "iwlwifi drv" code
is initialized before trying to register the mld sub-driver
in order for lists, etc. in the registration code to be initialized.
We do this by using an extended (FreeBSD specific) version of
module_init which overrides the order parameter of the SYSINIT.
Otherwise we can randomly (depending on SYSINIT run order) run into
a NULL pointer deref panic.

Sponsored by:   The FreeBSD Foundation
PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=291120
MFC after:      3 days
551c4cb74a807ceae55288bf273f5cfeb37c7c91 Bjoern A. Zeeb 2026-03-05 12:41:46

iwlwifi: adjust driver description

Adjust the module driver descriptions for mvm and mld to make it clear
that this is not a driver for Linux but a Linux-based driver for FreeBSD.
Cleanup surroundings.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
782fe2f8d90488a61ecdbe1d4b245900a88bee56 Bjoern A. Zeeb 2026-03-05 19:40:15

iwlwifi: mld: add LINUXKPI_PARAM_PREFIX

Add a LINUXKPI_PARAM_PREFIX to mld to properly export the
power_scheme module_param (sysctl).  This is especially needed given
mvm has the same parameter and we need to avoid a clash.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
7db8503bda2724ae145475c3260d581bb98613ad Bjoern A. Zeeb 2026-03-05 19:42:02
iwlwifi: update Intel's mvm/mld drivers
This version is based on
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
05f7e89ab9731565d8a62e3b5d1ec206485eeb0b ( tag: v6.19 ).

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
95dd8736f846dee1208fe4c306caf1b0baf3caba Bjoern A. Zeeb 2026-03-06 10:45:07
tzcode: Record merge of 2025b
Fixes:                https://cgit.freebsd.org/src/commit/?id=967a49a21a27 ("Update tzcode to 2025b")
9c9f27e8af285d778a312be2f8002c4404c1e77d Dag-Erling Smørgrav 2026-03-08 13:17:57

Reverted commits

Revert "mixer(8): Implement hot-swapping"
We now have devd rules in snd.conf that achieve this in a much cleaner
way.

This reverts commit 9aac27599acaffa21ff69c5be8a2d71d29cc3d6b.

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D55532
d00b32c2d70ce79fddb94dd990d2b162c8fc3a85 Christos Margiolis 2026-03-03 11:32:42

Unclassified commits

Not classified automatically, and waiting for manual attention.

-- no commits in this category this week --

Technical notes

Dates:

Automatic grouping:

Automatic categories:

Source code:


Generated with commits-periodical 0.20 at 2026-04-13 18:39:28+00:00.

This work is supported by Tarsnap Backup Inc.

Alternate version: 2026-03-02 (debug) (contains info about the classification)