FreeBSD git weekly: 2025-11-03 to 2025-11-09

Introduction

This is a display of mostly-automatically-classified git commits from 2025-11-03 to 2025-11-09.

Table of contents and commits per category:

(1) Highlighted commits (these are copies, not in stats)
3 2.8% Userland programs
21 19.4% Documentation
14 13.0% Hardware support
10 9.3% Networking
9 8.3% System administration
2 1.9% Libraries
3 2.8% Filesystems
15 13.9% Kernel
22 20.4% Build system
3 2.8% Internal organizational stuff
1 0.9% Testing
0 0.0% Style, typos, and comments
1 0.9% Contrib code
4 3.7% Reverted commits
0 0.0% Unclassified commits
108 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.

UPDATING: mention pf's nat64 support
MFC after:    3 days
Sponsored by:   Rubicon Communications, LLC ("Netgate")
f939619a2f989656e1ecdfd7a2759e3ba44d4ec7 Kristof Provost 2025-11-05 09:59:43

Userland programs

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

ktrace: Only enable EXTERROR traces for 'x'
Add a missing break statement to avoid falling through to the '+'
case.

Fixes:          https://cgit.freebsd.org/src/commit/?id=96f4be881e8e ("ktrace(1): teach about KTR_EXTERR")
0b8d17c861194057261d898d94eb45ca9ea310b4 John Baldwin 2025-11-06 02:47:37
sh: Implement simple parameter expansion in PS1 and PS2
This change follows a localized approach within getprompt() and avoids
full parser reentry. While this means we don't support advanced
expansions like ${parameter#pattern}, it provides POSIX-compliant basic
parameter expansion without the complexity of making the parser
reentrant. This is sufficient for the vast majority of use cases.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=46441
f9e79facf874567f25147b24863e5198164e8d04 Matthew Phillips 2025-10-12 19:27:34
rm(1): remove whiteouts when forcibly removing directories
Commit 2ed053cde5 changed UFS' VOP_RMDIR() behavior to no longer
ignore whiteouts when determining whether a directory is empty,
unless explicitly requested by the caller.  However, this also
necessitates a change to rm(1) to avoid breaking the expected
behavior when forcibly removing directory hierarchies via `rm -fr`.
I neglected to make this follow-on change despite discussing it
in the review for the breaking commit (D45987).

Finally address the breakage by making `rm -fr` imply FTS_WHITEOUT
when rm(1) reads directory contents via fts_read(3).  While here,
also fix a logic error which produces a spurious 'No error' warning
message on stdout for each deleted whiteout.

Reported by:    csjp
Reviewed by:    csjp, kib, olce
MFC after:      3 days
Differential Revision:  https://reviews.freebsd.org/D53640
8b92a6ad597e224b616a8b1d6983f3b55c85308e Jason A. Harmening 2025-11-08 04:23:02

Documentation

Man pages, release notes, etc.

pf.conf.5: add nat-to/rdr-to to BNF
PR:           https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=290705
MFC after:      1 week
Sponsored by:   Rubicon Communications, LLC ("Netgate")
cd7f3e4d9e8305f866cf15e91b2ad01eb7685ba2 Kristof Provost 2025-11-03 16:05:25
cut.1: Align option list and tag spdx
MFC after:    3 days
16f37d97b9500a4fe2d0719161025515d477a5cd Alexander Ziaee 2025-11-03 23:21:10
buf.9: Sprinkle with mdoc macros
I did not bump the date here as the manual page looks more like a draft
and I'm not sure if it is actually up-to-date considering that it's
current Dd dates back to 1998.

MFC after:      3 days
Differential Revision:  https://reviews.freebsd.org/D52770
fc7f5452c6ff1a9d01a9d8d0638da593ae4f080c Mateusz Piotrowski 2025-11-04 11:04:43
makedev(9): drop an additional note about cdevpriv dtors
These were previously somewhat safe to call destroy_dev(9), but will now
also cause a deadlock in the same fashion that d_close doing so would
previously.  Amend the note to point it out, in case it's useful for
someone.

Reviewed by:    imp, kib, markj
Differential Revision:  https://reviews.freebsd.org/D53439
90314c04f10f583c37c59ec51fd628e3deaf3622 Kyle Evans 2025-11-05 00:28:02
posix_fallocate(2): move unsupported case to EOPNOTSUPP
ZFS has since been changed to use EOPNOTSUPP instead of EINVAL, and
fusefs/nfs are following suit.  POSIX Issue 8 had also made this move,
so it makes sense for us to standardize on EOPNOTSUPP.

Note in the HISTORY section where we're diverging from our previous
versions to align with the new standard.

Reviewed by:    asomers, imp (both previous version), kib
Differential Revision:  https://reviews.freebsd.org/D53537
737edb8fb52b6ed13ae4e09553a0d2ae2899cede Kyle Evans 2025-11-05 00:30:59
date.1: Lint with mandoc
Specifically, remove Tn macors, replace Li with Ql, and escape %N to
address date.1's rendering issues on man.freebsd.org.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=290801
Reported by:    jinwookjeongg@gmail.com
MFC after:      1 week
Sponsored by:   Klara, Inc.
e878ba8eea7206b3a435338c6eed0e4264e0ce14 Mateusz Piotrowski 2025-11-05 12:34:31
UPDATING: mention pf's nat64 support
MFC after:    3 days
Sponsored by:   Rubicon Communications, LLC ("Netgate")
f939619a2f989656e1ecdfd7a2759e3ba44d4ec7 Kristof Provost 2025-11-05 09:59:43
ice.4: Add ToC and E835 and editorial pass
This manual is large enough and well structured enough that we can have
a clickable table of contents. Use that to move some subsections which
should not appear in Hardware Release Note to the description section.
Adjust subsection names so this will work, preserving parentheticals
for search by moving them to the bodies just below.

Strip unnecessary copyright symbols and escaped hyphens. Copyright
symbols never appear in the content of manual pages, including other
Intel manual pages, and appear to break the Hardware Release Notes.
Escaped hyphens were necessary decades ago for manual pages written
in man(7), but this page is written in mdoc(7). Also misc touchups.

Add the recently added E835 devices to the supported HARDWARE list.
Add the speed ranges to description like the other ethernet drivers.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=290778
MFC after:      1 day
Fixes:          https://cgit.freebsd.org/src/commit/?id=09b48f811b4b (Add support for E835-XXV-4 adapter)
Fixes:          https://cgit.freebsd.org/src/commit/?id=b202176dc76d (Add PCI IDs for E835 devices)
Reviewed by:    kgalazka (previous version)
Reported by:    kgalazka (additional hardware has been added)
Reported by:    bigsneaky@duck.com (HW Relnote is truncating)
f30335c5cb5e18a1ef08f5ba1d6fa6fc06f39348 Alexander Ziaee 2025-11-05 21:59:20
inetd.8: Remove the enumeration of examples
The user can trivially see the list of examples in /etc/inetd.conf
by looking at the file, so there's no need to include an entire
paragraph in the manual enumerating the examples which are provided.

MFC after:      3 days
Reviewed by:    0mp
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D52740
a7c558b4ade848da31a6d36d1d47e7031bc7d82e Lexi Winter 2025-11-05 23:51:05
Commit group #0: mpr.4: Add Broadcom LSI 3808 to HARDWARE
mpr.4: Add Broadcom LSI 3808 to HARDWARE

The product brief "MegaRAID 9500 PCIe Gen 4.0 Tri-Mode Storage Adapters"
confirms that the LSI 3808 are supported in FreeBSD.

https://docs.broadcom.com/doc/MegaRAID-9500-Tri-Mode-Storage-Adapters

MFC after:              3 days
Reviewed by:            imp, ziaee
Differential Revision:  https://reviews.freebsd.org/D52760
744c8d55445300074fc1906ad50aa6f394c1b8cf Jiacong Fang 2025-09-28 04:03:57

mpr.4: Remove Broadcom LSI 3908 from support list

"This one is my fault due to incorrect merging" ~ziaee

MFC after:              3 days
Reviewed by:            ziaee
Fixes:                  https://cgit.freebsd.org/src/commit/?id=744c8d554453 (mpr.4: Add Broadcom LSI 3808)
Differential Revision:  https://reviews.freebsd.org/D53634
8caf467784ba9f502c52fb67d968e21b0ee5f9e0 Jiacong Fang 2025-11-07 18:40:20
mixer(8): Update FILES section
While here, change "N" to "X" to match sndctl.8's notation.

Sponsored by:   The FreeBSD Foundation
MFC after:      4 days
Reviewed by:    emaste
Differential Revision:  https://reviews.freebsd.org/D53503
26e7e9a6a2a2ee8101b0d06c83ac6d66b78a985d Christos Margiolis 2025-11-06 12:56:36
dumpon(8): Add a SYSCTL VARIABLES section
Document debug.minidump and machdep.dump_retry_count sysctl variables.

PR:                     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=259393
MFC after:              3 seconds
Reviewed by:            gbe (previous), markj, ziaee
Differential Revision:  https://reviews.freebsd.org/D32618
850841edf6c0867a170d2637f3dacfda33d5f3dd Felix Johnson 2025-11-06 16:32:42
ciss.4: Add p440ar to HARDWARE
PR:           https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=290425
MFC after:      3 seconds, this fixes the HW relnotes
Reported by:    jwb
a41ffaa330f5dbfc6b10f32ea2879755e07ba932 Alexander Ziaee 2025-11-06 16:51:13
dumpon.8: use .Nm macro when refer to itself
Bump .Dd too while I am here.
396fac02243911588abe56be387fbdab14469c49 Maxim Konovalov 2025-11-06 18:03:59
sysrc.8: Rewrite examples for mdoc conformance
Tag SPDX while here. This is not a content change, so do not bump date.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=274164
MFC after:      3 seconds
3f0dd7724658126dcfde488a994cf7698353a82c Alexander Ziaee 2025-11-06 18:42:06
ports.7: Add /var/db/ports to FILES
PR:           https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=272426
MFC after:      3 days
Co-authored-by: Piotr Smyrak <ps.ports@smyrak.com>
b8ff8a11c0d1d1f1b3bd1e60fae9c05ada7b28c5 Mateusz Piotrowski 2025-11-06 22:11:22
dtrace.1: Fix mdoc macros around -x
There should be no space between -x's "arg" and "=value".

MFC after:      3 days
753cef701dbea03627c1fe11dd5556e74df415b2 Mateusz Piotrowski 2025-11-06 23:04:01
jail.8: Add creating a jail from distribution set
PR:                   https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=200803
MFC after:              3 days
Reviewed by:            jamie
Differential Revision:  https://reviews.freebsd.org/D53631
d59903481dbaef9ef7e91ea4945d2355ae17c53a Alexander Ziaee 2025-11-07 18:38:54
utx.8: protect first name "Ed"
For some people "Ed" is a first name, but for mandoc it is a
macro (end of display block) and needs to be escaped.
385796001c415c2410989edceef01e4b50c6cdee Wolfram Schneider 2025-11-08 08:04:33
dtrace.1: Document DTRACE_DEBUG
Reviewed by:  markj
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D53627
f811c0a555546e4154dfa159e8f56b3ba1c70d0d Mateusz Piotrowski 2025-11-06 22:41:44

Hardware support

Hardware drivers and architecture-specific code.

tb_pci: Don't try to attach to PCI buses that aren't below a PCI-PCI brige
This driver is a subclass of the normal PCI bus driver that is
intended to be used for the logical child bus of a Thunderbolt PCI-PCI
bridge device.  To determine if a given PCI bus's parent is a TB
bridge, it examines the PCI device IDs of the parent pcibX device.
However, this only works for pcibX devices that are actual PCI-PCI
bridges and panics for PCI buses that are children of host bridges
such as the pci0 child of pcib0.

Probably this should not be reading device IDs (as that doesn't tell
you if the device driver for the PCI-PCI bridge is actually a TB
driver).  Instead, the TB PCI-PCI driver should be exporting a new
IVAR (with a globally unique number as we do for ACPI handles) that
returns the TB generation and the probe routine for this PCI bus
driver should be checking for that IVAR (the way acpi_pci.c checks for
the presence of an ACPI handle).

This fixes a panic on boot if tb.ko is loaded at boot time (which the
driver recommends for certain chipsets).

Reviewed by:    imp
Differential Revision:  https://reviews.freebsd.org/D53202
b9efaeb87a8f9cfc0cd87076a8b314785d6e04d9 John Baldwin 2025-11-03 15:24:23
vmm: Simplify the VM_ALLOC_MEMSEG ioctl a bit
We can free the mask earlier, simplifying some error paths.  No
functional change intended.

Reviewed by:    corvink, jhb, emaste
Sponsored by:   The FreeBSD Foundation
Sponsored by:   Klara, Inc.
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D53418
c3f41c02c9a5bf45504af59c351f0ae336719753 Mark Johnston 2025-11-04 13:52:01
amd64/vmm: Factor vcpu_notify_event() into two functions
vcpu_notify_event() previously took a boolean parameter which determines
whether the implementation should try to use a posted interrupt.  On
arm64 and riscv, the implementation of vcpu_notify_event() is otherwise
identical to that of amd64.

With the aim of deduplicating vcpu state management code, introduce a
separate amd64-only function which tries to use posted interrupts.  This
requires some duplication with vcpu_notify_event_locked(), but only a
little bit.

Then, fix up callers.  No functional change intended.

Reviewed by:    corvink, jhb
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D53419
78a3a1e78ad8812bcf82e30b52ba2f21c49a3407 Mark Johnston 2025-11-04 13:52:21
amd64/vmm: Remove useless global variables
No functional change intended.

Reviewed by:    corvink, jhb, emaste
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D53420
3faad9e26018dfc0ab6da21a53c0310656187d7b Mark Johnston 2025-11-04 13:54:07
vmm: Move the module load handler to vmm_dev.c
Move the vmm_initialized check out of vm_create() and into the legacy
sysctl handler.  If vmm_initialized is false, /dev/vmmctl will not be
available and so cannot be used to create VMs.

Introduce new MD vmm_modinit() and vmm_modcleanup() routines which
handle MD (de)initialization.

No functional change intended.

Reviewed by:    corvink
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D53421
e758074458df3b61773b7678ff47c4a835365d21 Mark Johnston 2025-11-04 13:54:27
vmm: Consolidate VM name length checking
vm_create() is only called from one place.  Rather than having similar
checks everywhere, move them to vmmdev_create().

We can safely assume that the name is nul-terminated, the vmmctl ioctl
handler and the legacy sysctl handler ensure this.  So, don't bother
with strnlen().

Finally, make sure that the name buffers are the same size on all
platforms.  VM_MAX_NAMELEN is supposed to be the maximum, not including
the nul terminator.

Reviewed by:    corvink
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D53422
7377c87e467343e71b3e803708b98e04ea8e84bd Mark Johnston 2025-11-04 13:55:07
amd64/vmm: Remove an unused function
Reviewed by:  corvink, emaste
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D53423
7214e0469234d90edd6deda4b181cd4862a9ace0 Mark Johnston 2025-11-04 13:56:02
vmm: Move vm_maxcpu handling into MI code
No functional change intended.

Reviewed by:    corvink
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D53477
c46e5dc65ba5c9666bb4452878e332dc49730843 Mark Johnston 2025-11-04 13:56:15
virtio: Fix polling in virtqueue_dequeue()
The access of vq->vq_ring.used->idx needs to be volatile-qualified,
otherwise the compiler may optimize virtqueue_poll() into an infinite
loop if there is no data available upon the first poll.

Prior to commit ad17789a8569 this wasn't a problem since an external
function call after each poll inhibited the optimization.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=289930
MFC after:      3 days
Sponsored by:   Klara, Inc.
Fixes:          https://cgit.freebsd.org/src/commit/?id=ad17789a8569 ("virtio: Remove the unused poll method")
f999ffdce3813eb946f10999ccffb8275c324469 Mark Johnston 2025-11-04 14:27:33
arm64/vmm: Move the vgic_max_cpu_count() check
vm_alloc_vcpu() is called quite frequently, and we don't need to apply
the vgic limit unless we're actually allocating a vcpu structure for the
first time.

No functional change intended.

Reviewed by:    andrew
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D53580
f3a7ed2047dffaebbfbb3920e993e9df424be728 Mark Johnston 2025-11-04 16:58:25
mmc_fdt: handle broken-cd property
The documented properties [1] for card-detection are one of:
 - cd-gpios
 - non-removable
 - broken-cd

In cd_setup() we handle the first two, but not the latter, resulting in
a silently undetected card on an affected system.

To work around this, force cd_disabled when broken-cd is specified, so
that the card detect helper function gets to run. A more complete
solution would implement some kind of polling mechanism to detect the
card's presence or removal.

Some variants of the Allwinner D1, such as the Lichee Rv, specify this
property in the mmc0 device node.

[1] sys/contrib/device-tree/Bindings/mmc/mmc-controller.yaml

Reported by:    Haowu Ge <gehaowu@bitmoe.com>
Tested by:      Haowu Ge <gehaowu@bitmoe.com>
Reviewed by:    imp, manu, mmel
MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D53546
768ee6d454821cc63247cb4ffe526c5a06accff0 Mitchell Horne 2025-11-05 14:37:36
mlx5: Preallocate ktls tags asynchronously
Change tag preallocation to happen asynchronously when an interface is
brought up, so as to reduce boot times when preallocating tags.

- A new mlx5-tls-prealloc_wq is allocated when preallocation is
  desired, and started when an interface is opened

- The bulk of the prealloc code remains the same, except the
  allocations are now M_NOWAIT. M_NOWAIT is needed because, since the
  preallocation is done asynchronously, and since tag allocation is
  not instant, we could race with a real TLS session trying to
  allocate a tag. Note that in this case, we take allocation failure
  as a sign that we were unable to obtain the entire zone due to there
  being other consumers.  This was suggested by @markj as a way to
  keep things simple, after discussing why uma_zone_get_cur() didn't
  immediately report a fully allocated zone.  If this turns out to be
  problematic, we could use uma_zone_set_maxaction() to stop
  pre-allocations (also suggested by Mark)

Reviewed by: glebius, kib, markj
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D53570
9349214a28152a3cb2424459976f571a9c8fc5df Andrew Gallatin 2025-11-05 23:58:33
Commit group #1: safe(4): add gone_in 16.0
safe(4): add gone_in 16.0

Reviewed by:    emaste
Differential Revision:  https://reviews.freebsd.org/D53426
9b7d2cee03e5d0b0723718047d4bc388d0745591 David E. O'Brien 2025-10-29 01:11:48

4f19c2e99b0d5429c5f0dee1952f170c699a4954 David E. O'Brien 2025-11-07 23:23:21

Networking

Network-related commands, library, and kernel.

tcp: drop SYN ACK segment for listening sockets
When a SYN ACK is received for a listening socket, just drop it
instead of killing the SYN-cache entry and send a RST.
This closes the possibility to kill a TCP connection during its
handling in the SYN-cache.

Reviewed by:            Nick Banks, Peter Lei
MFC after:              3 days
Sponsored by:           Netflix, Inc.
Differential Revision:  https://reviews.freebsd.org/D53540
239464e99321ede07664782426ec4e54cd8a618d Michael Tuexen 2025-11-03 10:50:49
ddb: provide inp_flags2 when printing inpcbs
Reviewed by:          markj, Peter Lei
MFC after:              3 days
Sponsored by:           Netflix, Inc.
Differential Revision:  https://reviews.freebsd.org/D53542
5f43b0cb7c3cb7c3209598f8c0818cb47cd9de96 Michael Tuexen 2025-11-03 11:17:29
ipsec_offload: do not leak drv_spi unr
in the ipsec_accel_sa_newkey_cb() when the SA offload is only enabled
on a specific different interface, not the current one.

Also remove no longer relevant XXX comment.

Noted and reviewed by:  slavash
Sponsored by:   NVidia networking
MFC after:      1 week
4accefc998e731581549163cf1a582948b2ad0de Konstantin Belousov 2025-10-30 14:50:22
if_tuntap: defer transient destroy_dev() to a taskqueue
We're in the dtor, so we can't destroy it now without deadlocking after
recent changes to make destroy_dev() provide a barrier.  However, we
know there isn't any other dtor to run, so we can go ahead and clean up
our state and just prevent a use-after-free if someone races to open
the device while we're trying to destroy it.  tunopen() now uses the
net epoch to protect against softc release by a concurrent
tun_destroy().

While we're here, allow a destroy operation to proceed if we caught a
signal in cv_wait_sig() but tun_busy dropped to 0 while we were waiting
to acquire the lock.

This was more of an inherent design flaw, rather than a bug in the
below-refed commit.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=290575
Fixes:  https://cgit.freebsd.org/src/commit/?id=4dbe6628179d ("devfs: make destroy_dev() a release [...]")
Reviewed by:    kib, markj
Differential Revision:  https://reviews.freebsd.org/D53438
96c1d8db39dfeea78ea3f27d67649252a39bbf2e Kyle Evans 2025-11-05 00:28:02
pf: convert DIOCRGETADDRS to netlink
Sponsored by: Rubicon Communications, LLC ("Netgate")
f27e44e2e3b5a745847e0277e66f60af585a522d Kristof Provost 2025-11-04 20:52:37
Commit group #2: ipfilter
ipfilter: Add htable (hash table) tunable

This is in preparation for addition of a hash table max size.

Reviewed by:            markj
MFC after:              1 week
Differential revision:  https://reviews.freebsd.org/D53283
c57262716b08717b6a9c5533941d4e0a2d180d46 Cy Schubert 2025-10-22 22:51:43

ipfilter: Add an htable max size tuneable.

Add an ipfilter runtime option (ipf -T) to adjust the default
maximum hash table size. Default it to 1024 entries. It will be
used by a subsequent commit to limit any damage due to excessively
large hash table input by the user.

Reviewed by:            markj
MFC after:              1 week
Differential revision:  https://reviews.freebsd.org/D53284
f3b94f47f55c502e8983f9bd294e963e75b2963a Cy Schubert 2025-10-22 22:56:50

ipfilter: Don't trust userland supplied iph_size

ipf_htable_create() trusts a user-supplied iph_size from iphtable_t
and computes the allocation size as iph->iph_size * sizeof(*iph->iph_table)
without checking for integer overflow. A sufficiently large iph_size
causes the multiplication to wrap, resulting in an under-sized allocation
for the table pointer array. Subsequent code (e.g., in ipf_htent_insert())
can then write past the end of the allocated buffer, corrupting kernel
memory and causing DoS or potential privilege escalation.

This is not typically a problem when using the ipfilter provided
userland tools as calculate the correct lengths. This mitigates a
rogue actor calling ipfilter ioctls directly.

Reported by:            Ilja Van Sprundel <ivansprundel@ioactive.com>
Reviewed by:            markj
MFC after:              1 week
Differential revision:  https://reviews.freebsd.org/D53286
df381bec2d2b73697a3d163177df042dd272022d Cy Schubert 2025-10-22 23:19:54
tcp: improve comments in the syncache code
Add a comment explaining why syncache entries are dropped and fix a
typo in a comment.

Reviewed by:            rrs, glebius
MFC after:              3 days
Sponsored by:           Netflix, Inc.
Differential Revision:  https://reviews.freebsd.org/D53564
17fb082104ee281365b72bd5135604cea5051df2 Michael Tuexen 2025-11-07 15:27:56
netlink: plug lock leak in genl_register_family()
335fc09ab8d25c3ced027d46f5a0f4103d5c8bee Bruno Silvestre 2025-11-08 18:02:32

System administration

Stuff in man section 8 (other than networking).

cron: Use reallocarray() to prevent integer overflow
Apply OpenBSD env.c,v 1.24 and 1.25, which replaces manual size
calculations with reallocarray() to prevent possible integer
overflow.

MFC after:      3 days
40d21618382108fefa84f8576b14302f65452718 Xin LI 2025-11-03 05:59:46
Refinements to the --libxo support for geom status and list sub commands.
Changes based on comments in D53110: tags should be lowercase; rename a
few containers so that the JSON/XML output says "DISK" or "MULTIPATH"
(depending on class) instead of a generic "Geom"; adds {t:} to trim
extra whitespaces that sometimes appeared in the value fields of
JSON/XML output.

Submitted-by: Johan Söllvander
MFC-after:    1 week
Differential Revision: https://reviews.freebsd.org/D53313
c174f518c9c8cf3a567c5f60414508ac951a2ae4 Kirk McKusick 2025-11-03 22:54:13
ifconfig: Fix invalid free() in ifbridge
parse_vlans() does 's = strdup(str)', then calls strsep(&s, ...), then
attempts to free(s) at the end of the function.  For the success case,
this is fine (s is NULL, so it's a trivial memory leak), but in the
error case, we will attempt to free an invalid pointer.

Fix this by storing the original return value from strdup() and freeing
that instead.

MFC after:      3 seconds
Reported by:    David Gwynne <dlg@openbsd.org>
Reviewed by:    zlei, kevans
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D53545
0899f7a3b791ed4878e7cb3859636ec980c76832 Lexi Winter 2025-11-04 00:53:25
Commit group #3: etc/mtree: Add package tags for /usr/include
etc/mtree: Add package tags for /usr/include

Set the default package to clibs-dev, since that's where the vast
majority of include files comes from.  Add explicit package tags
for the directories which are installed in their own package.

MFC after:      1 day
Reviewed by:    emaste
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D53577
436618a427b4baaf42d8221ef07d14e3ba787d3a Lexi Winter 2025-11-04 23:45:04

etc/mtree/BSD.include.dist: Remove libipt-dev

This package only exists on amd64, which means on other platforms we
produce an empty package containing nothing but this directory, and
without a base package (libipt) that package fails to install due to
a missing dependency.

For now, fix this by removing the libipt-dev package tag, which moves
this directory to clibs.

Fixes: https://cgit.freebsd.org/src/commit/?id=436618a427b4 ("etc/mtree: Add package tags for /usr/include")
Reported by:    cperciva
MFC after:      3 seconds
2a8a6179eb6cef8ba1a417a4c8a1f7063c704533 Lexi Winter 2025-11-06 10:19:22
ipfilter: Calculate the number of elements in ipf_errors
It serves no purpose to manually manage the IPF_NUM_ERRORS count.
Calculate it instead.

Reviewed by:            emaste, markj
MFC after:              1 week
Differential revision:  https://reviews.freebsd.org/D53308
ab3c9853285b4907dac147ce2f818e3fb44df5a3 Cy Schubert 2025-10-23 02:11:20
stand: Teach the zfs loader about dynamic gang headers
There is a pool feature, dynamic_gang_header, that is enabled by default
in new pools.  When this feature is active, gang headers may be larger
than 512 bytes.  The loader needs to be taught to cope with that.

Try using the vdev ashift to pick the gang block header size.  If the
checksum fails, fall back to the old gang block header size.

This is based on a patch by Paul Dagnelie, with testing, bug-fixing and
some simplifications from me.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=289690
Co-authored by: Paul Dagnelie <paul.dagnelie@klarasystems.com>
Reviewed by:    imp
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D53578
4d6801a6b5bdd4d055a00484a743cb4ada659669 Mark Johnston 2025-11-06 16:00:50
freebsd-update: Swap pkg(8) flags in check_pkgbase()
Unbootstrapped pkg will ignore -N if -r is specified first.  Flip the
order.

Prior to commit 66c75fa63aff this worked by accident.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=290393
Reported by:    olgeni
MFC after:      3 days
Fixes:          https://cgit.freebsd.org/src/commit/?id=66c75fa63aff ("freebsd-update: Fix the pkgbase check")
645352316be6901077dc1a3ce26f41934136f412 Mark Johnston 2025-11-06 16:06:12
bsdinstall: Fix newfs bsddialog menu
The second and third members of struct bsddialog_menuitem are `bool on`
and `unsigned int depth`. The newfs dialog options in bsdinstall's
partition tool had these two swapped, so the default selection did not
work.

PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=290857
Reviewed by: asiciliano
Fixes: https://cgit.freebsd.org/src/commit/?id=50e244964e9b ("bsdinstall/partedit: Replace libdialog with libbsddialog")
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D53639
4e36942420712c2ab6ebc2c646e61d47b2b68e7b Ed Maste 2025-11-07 22:53:01

Libraries

libpfctl: fix error handling
In two cases we returned E2BIG where it should have been a boolean ('false').

MFC after:      1 week
Sponsored by:   Rubicon Communications, LLC ("Netgate")
9bb1c46b4c38c44565fc24f13acdc19b0cb5a1c4 Kristof Provost 2025-11-03 13:55:44
ncurses: Move termcap and tabset to ncurses-lib
termcap and tabset are currently in runtime, but since ncurses is the
only thing which uses them, they belong in the ncurses package.

curses without termcap is not very useful, so put them in the -lib
subpackage rather than ncurses itself, so that installing ncurses-lib
provides a working curses.

This change moves files between packages so, until we have a proper
policy on how to handle this in release/stable branches, it should
not be MFC'd.

MFC after:      never
Discussed with: kevans
Reviewed by:    manu, kevans
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D53610
8a8f2ebd2d3e09cfc057b5ba6ced2fd3151cfb0f Lexi Winter 2025-11-06 14:29:56

Filesystems

fusefs: respect the server's FUSE_SETXATTR_EXT flag
FUSE protocol 7.33 extended the FUSE_SETXATTR request format.  But the
extension is optional.  The server must opt-in by setting the
FUSE_SETXATTR_IN flag during FUSE_INIT.  We were wrongly using the
extended format for any server using protocol 7.33 or later.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=290547
Co-authored-by: CismonX <admin@cismon.net>
Fixes:          https://cgit.freebsd.org/src/commit/?id=d5e3cf41e89 ("fusefs: Upgrade FUSE protocol to version 7.33")
MFC after:      3 days
e8449c0e0fcb8a3eb5872cbee5c3dde4b05a5f50 Alan Somers 2025-10-26 18:06:51
fusefs: standardize on OPNOTSUPP for posix_fallocate(2)
POSIX Issue 7 had allowed EINVAL for this case, but issue 8 moves it
to ENOTSUP instead.  ZFS uses the latter and we have some software in
ports already that's wanting to use that to detect the filesystem not
supporting it, so let's standardize on it.

Reviewed by:    imp (previous version), asomers, kib
Differential Revision:  https://reviews.freebsd.org/D53535
fa393807c57e80a01dde40c668650537490c1eaa Kyle Evans 2025-11-05 00:30:58
nfs_clvnops: standardize on EOPNOTSUPP for posix_fallocate(2)
POSIX Issue 7 had allowed EINVAL for this case, but issue 8 moves it
to ENOTSUP instead.  ZFS uses the latter and we have some software in
ports already that's wanting to use that to detect the filesystem not
supporting it, so let's standardize on it.

Reviewed by:    imp, kib, rmacklem
Differential Revision:  https://reviews.freebsd.org/D53536
b87436d8be8ea3f6d56c16d32933c138fed3fb12 Kyle Evans 2025-11-05 00:30:58

Kernel

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

sys/: rename bio_error variable to abio_error
to prevent future name collision with some buf/bio macros

Reviewed by:    mckusick
Sponsored by:   The FreeBSD Foundation
Differential revision:  https://reviews.freebsd.org/D53351
58e5f3b84df0aeaaf4b56a5e48bcb4b3e1d9c097 Konstantin Belousov 2025-10-25 08:37:14
Commit group #4: exterror(9)
exterror(9): add SETEXTERROR_KE() macro

It fills the extended error data into explicitly passed pointer to the
struct kexterr instead of td_kexterr for current thread.

Reviewed by:    mckusick
Sponsored by:   The FreeBSD Foundation
Differential revision:  https://reviews.freebsd.org/D53351
7746b51dae12b09266d02f02f8d3b772282ddaf1 Konstantin Belousov 2025-10-25 09:12:33

exterror(9): add two helpers

The exterr_set_from() function sets current thread extended error from
the pre-filled struct kexterr.

The exterr_clear() function clears some struct kexterr.

Reviewed by:    mckusick
Sponsored by:   The FreeBSD Foundation
Differential revision:  https://reviews.freebsd.org/D53351
069e2fb5506f8301cd9e2da1946c718bd268c50c Konstantin Belousov 2025-10-25 09:14:59

exterror(9): add infra for bufs and bios

The extended error can be stored in either struct bio or struct buf,
indicated by BIO_EXTERR bio_flag.  At some strategic places, it is
copied into the current thread extended error.

This structure is required because io request from the top might pass
down through several io threads and the context that can report meaningful
extended error does not belong to the thread that initiated the io.

Sizes before the change, on amd64 nodebug:
sizeof(struct buf) =  456
sizeof(struct bio) = 376

after:
sizeof(struct buf) =  496
sizeof(struct bio) = 408

WIP: more geom providers should handle BIO_EXTERR when passing cloned
bios down and then handling completions.

Reviewed by:    mckusick
Sponsored by:   The FreeBSD Foundation
Differential revision:  https://reviews.freebsd.org/D53351
6c406b5b93125d030f0e63716ff389ce1a6ec4c5 Konstantin Belousov 2025-10-25 09:18:28

libdtrace: Update io.d to chase changes to struct bio layout

Fixes:  https://cgit.freebsd.org/src/commit/?id=6c406b5b9312 ("exterror(9): add infra for bufs and bios")
1ca7542a1b31fffefaac5a2ff45ef23f908b33c2 Mark Johnston 2025-11-05 21:51:55
geom/geom_vfs.c: use EXTERROR_KE() in g_vfs_strategy for ENXIOs
As an example of use for the bp_exterr infrastructure.

Reviewed by:    mckusick
Sponsored by:   The FreeBSD Foundation
Differential revision:  https://reviews.freebsd.org/D53351
515fa5ff2e4db907379c284fb7e7df77b4096948 Konstantin Belousov 2025-10-25 09:17:02
sys/bio.h: print BIO_EXTERR flag
Noted by:     imp
Sponsored by:   The FreeBSD Foundation
8794e3718ec3b2a05a70e9c0afd6ab5cac503cdb Konstantin Belousov 2025-11-04 19:14:19
exterr: add exterr_db_print(), to be used by several ddb dumpers
Sponsored by: The FreeBSD Foundation
9521b0b91ea31b7f31b3800772ac6502c822ae56 Konstantin Belousov 2025-11-04 20:51:19
exterr: print exterr for struct buf and bio in ddb show commands
Noted by:     imp
Sponsored by:   The FreeBSD Foundation
7d495be8d4bd3a0e315233346b2f7267b8390612 Konstantin Belousov 2025-11-04 20:53:14
cam: Add a number of asserts to catch bad transactions
Ensure that we're in the right state / priority for each of the states
in the driver. These asserts assured that a prior patch that I committed
to fix a priority leak worked when a drive departed (and bounced back
too!). These have been running in our production since I committed the
change and haven't trigged.

Sponsored by:           Netflix
Differential Revision:  https://reviews.freebsd.org/D53259
b558ebb082ffa13f3c37aa8f7d7974b64e93fa93 Warner Losh 2025-11-06 18:52:43
kern_jail_set(): do not double-free opts
If vfs_buildopts() failed, vfs_freeopts() must not be called.

Reported and tested by: pho
Reviewed by:    jamie
Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Differential revision:  https://reviews.freebsd.org/D53612
3f5f52216f7e583aeb5580b13ba0f87e29d1ee43 Konstantin Belousov 2025-11-06 05:50:42
random: Have RANDOM_PURE_START be a cross-platform source
and one that will be with us in the long-term future.
(this helps reduce diffs in the future and for down-stream users
that trim entropy sources).  Also, move deprecated (removed in 16.0)
sources to the bottom of the list to reduce changes to 15.x.

Reviewed by:    glebius
Obtained from:  Juniper Networks
Differential Revision:  https://reviews.freebsd.org/D53311
068fea0aa15bceb7b6b01687542b58ee81d1d887 David E. O'Brien 2025-10-23 23:20:54
proc_set_cred(): Allow 'newcred' to have multiple references
This is an extension needed by next commit, where some additional
reference is kept on the credentials to be set on a process in order to
keep these credentials alive even after the process lock is released (an
intervening reset of process credentials could release the reference
that the process holds).

Only 'cr_users' is incremented, as the reference (counted in 'cr_ref')
comes from the caller, who passes it to the process.

Reviewed by:    kib, markj
MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D53636
5d46d11772c3280fd1c8ae09f20ce6c57f631c30 Olivier Certner 2025-11-06 22:25:57
setpgid(): Fix space before TAB in herald comment
No functional change.

With this tiny change, all the file becomes whitespace-clean.

MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
d05ab93913f340c5590eafa4cc09cc84aa86282e Olivier Certner 2025-11-09 22:35:42
kern: RACCT: Keep process credentials alive via references
In system calls changing process credentials, on RACCT, calls to
racct_proc_ucred_changed() must be issued on the new credentials.
Currently, this is done after the new credentials have been installed on
the process via proc_set_cred() or proc_set_cred_enforce_proc_lim(),
which modifies 'p_ucred'.  Only the process lock guarantees that the new
credentials pointed to by 'p_ucred' cannot themselves be concurrently
modified, which would cause their 'struct ucred' to potentially lose its
last reference from the process before the call to
racct_proc_ucred_changed(), which needs one.

For better code understandability and to avoid errors in future
modifications, stop relying on proc_set_cred*() storing the passed
'struct ucred' in the process 'p_ucred' and on the process lock to avoid
the reference taken by proc_set_cred*() to vanish.  Instead, ensure that
a reference is held when racct_proc_ucred_changed() is called.

As racct_proc_ucred_changed() is actually passed explicit pointers to
the old and new credentials, there is in fact no need to call it after
proc_set_cred().  Instead, call it before proc_set_cred() and its taking
over the reference.

Since setcred() uses proc_set_cred_enforce_proc_lim(), which can fail,
instead of proc_set_cred(), we instead take an additional reference with
crhold().  Indeed, racct_proc_ucred_changed() should update resource
accounting only if proc_set_cred_enforce_proc_lim() succeeds (an
alternative would be to call it in advance and then in case of failure
of the latter to call it again in order to backpedal the updated
accounting, but we don't see a compelling reason to do that instead of
taking an additional reference).

While here, add to the documentation of proc_set_cred_enforce_proc_lim()
that it does not take over the credentials reference in case of failure.
While here, in racct_proc_ucred_changed()'s herald comment, add the
precise condition in which this function must be called.

No functional change intended.

Reviewed by:    kib
MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D53563
c3d2b68c6933d0610bc3e09e9b94f963b4dc85aa Olivier Certner 2025-11-03 18:21:08

Build system

dtrace_vfs.4: Document the DTrace vfs provider
Reviewed by:  bcr
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D51317
2020e76450e2705d33d673a3d183c8f0a3910e28 Mateusz Piotrowski 2025-11-03 15:54:10
vmimage.subr: pkg autoremove after pkg install
A bug in pkg, which somehow only surfaced as a consequence of pkgbase,
results in pkg install sometimes pulling in false dependencies.  This
problem might be limited to cases when the lib32 pkgbase packages are
not installed.  In the case of EC2 "small" images, installing the
ebsnvme-id package results in binutils, gcc12-devel, gmp, indexinfo,
liblz4, mpc, mpfr, and zstd packages being installed.

These false dependencies are however not recorded as dependencies --
at some level pkg does understand that they're not needed -- so running
pkg autoremove immediately after pkg install cleans them up.

Note: This does not remove lines from METALOG corresponding to these
packages, and makefs emits an error when it attempts to create the
filesystem but cannot find the files listed in METALOG -- but makefs
does seem to complete normally despite the error messages.

This change should be reverted once the pkg issue has been located and
fixed.

Reviewed by:    ivy
MFC after:      3 days
Sponsored by:   https://www.patreon.com/cperciva
Differential Revision:  https://reviews.freebsd.org/D53543
6a13aeac3c1f98db7cf156f24a4d6bc8d3c321f6 Colin Percival 2025-11-03 01:16:19
Commit group #5: release
release: GCE builds depend on ftp

GCE images are required by Google to include their source code; we do
this by extracting {src,ports}.txz into the images, from the (legacy)
distribution sets.

Make sure those distribution sets actually exist.

Reviewed by:    ivy
MFC after:      3 days
Differential Revision:  https://reviews.freebsd.org/D53567
7f536b1c1146c4bc5cde336e1fe7a083f2874f11 Colin Percival 2025-11-03 21:41:14

release: Don't try to fetch distfiles for pkgbase

In order to comply with the require that GCE images must include their
source code, we fetch distfiles for all of the packages installed into
GCE images.  This fails for obvious reasons for packages with an origin
of base/*; filter those out to generate the list to fetch.

Reviewed by:    ivy
MFC after:      3 days
Differential Revision:  https://reviews.freebsd.org/D53568
05b3a45cd065c93cc1262d31675e3e102784400a Colin Percival 2025-11-03 21:42:56

release: Make fetch happen in GCE images

We want to fetch distfiles, regardless of whether they contain known
vulnerabilities or we're building images for a different version of
FreeBSD.

Reviewed by:    ivy
MFC after:      3 days
Differential Revision:  https://reviews.freebsd.org/D53569
8234c1899b305bcd23323a5870e459028b91bfe4 Colin Percival 2025-11-03 21:44:46
dtrace_callout_execute.4: Document the DTrace callout_execute provider
MFC after:    2 weeks
Fixes:          https://cgit.freebsd.org/src/commit/?id=91dd9aae1ab8 Add explicit static DTrace tracing to the callout mechanism
Differential Revision:  https://reviews.freebsd.org/D51397
3ccb2d9513e6a2e046e635c186da68acf8f8498b Mateusz Piotrowski 2025-11-04 11:10:55
kexec: Add basic kexec_load man page
Also add kexec reboot flag to the reboot man page.
a935c2a63f9270500cddab1d9868c6183c25d5a8 Justin Hibbits 2025-10-06 21:11:02
packages: Make set-base-dbg depend on set-optional-dbg
As set-base depends on set-optional, so should set-base-dbg depend on
set-optional-dbg.  Otherwise, people who install set-base-dbg will be
missing a bunch of debug packages.

MFC after:      1 day
Reviewed by:    emaste
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D53575
3bcb2977704556ebf5c8847eaa7a46692b0bc1d0 Lexi Winter 2025-11-04 23:51:34
libkadm5clnt: Fix library symlink install
libkadm5clnt_mit installs a symlink from libkadm5clnt.so for backward
compatibility, but it neglected to include the package tags, so the
symlink was missing from pkgbase builds.  Add ${DEV_TAG_ARGS} to the
install command.

Reported by:    Mark Millard <marklmi@yahoo.com>
MFC after:      1 day
Reviewed by:    emaste
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D53574
707507c27f69f16de0ce3efee21b20d4f76328f8 Lexi Winter 2025-11-04 23:53:21
libcasper: Move everything to the libcasper package
The libcasper package exists to contain libcasper, but for some reason
only the libcap_net service was in the package, with libcasper itself
and the rest of the services being in runtime.  Move everything to the
libcasper package, except tests which stay in the tests package.

MFC after:      1 day
Reviewed by:    emaste
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D53576
b8697ac70ebfce2d8e3df6c67bbf37910793b199 Lexi Winter 2025-11-05 00:26:54
atf: Move the tests back to the tests package
Commit 9065390ddc7b moved atf to its own package, but mistakenly moved
the tests as well.  Put the tests back into the test package.

Fixes:  https://cgit.freebsd.org/src/commit/?id=9065390ddc7b ("packages: Remove the tests-dev package")
MFC after:      1 day
Reviewed by:    emaste
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D53594
4b342830abd39cdc20b67a215e15309293673e75 Lexi Winter 2025-11-05 21:16:32
libcrypto: Install tests in the tests package
libcrypto's Makefile.inc used PACKAGE=openssl, which overrides the
PACKAGE=tests in libcrypto/tests/Makefile.  Use PACKAGE?=openssl
instead to avoid this.  This puts the OpenSSL tests in the tests
package where they belong.

MFC after:      1 day
Reviewed by:    manu, ngie
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D53595
c3b853fe522ead976863af086557be8863327eb0 Lexi Winter 2025-11-05 21:17:31
periodic: Move 320.whatis to the mandoc package
This periodic script only makes sense if mandoc is installed, so move
it to the mandoc package like other periodic scripts.

/usr/libexec/makewhatis.local only exists for the enjoyment of this
script, and doesn't work without mandoc installed, so move that as
well.

This change moves files between packages so, until we have a proper
policy on how to handle this in release/stable branches, it should
not be MFC'd.

MFC after:      never
Reviewed by:    ziaee, manu
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D53609
87121747de001666a42bb2e7ba824331280d226a Lexi Winter 2025-11-06 14:31:58
lib/googletest: Move to a new googletest package
gtest/gmock are not normally used by users unless running the tests,
so they shouldn't be in the utilities package.  Move them to a new
googletest package, to match what we did with ATF/Kyua.

While here, move tests dependencies from tests-all.ucl to tests.ucl,
which is the canonical place for that.

This change adds a new package to the system so, until we have a proper
policy on how to handle this in release/stable branches, it should not
be MFC'd.

MFC after:      never
Reported by:    emaste
Reviewed by:    manu
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D53607
0c90c9ad4649789feec86c776674491c35cc7e27 Lexi Winter 2025-11-06 14:34:41
lib/ofed: Move to the rdma package
We have an existing rdma package for IB/rdma-related files, but most
of ofed isn't in that package, making it rather useless.  Move all of
lib/ofed to the rdma package.

Add a separate rdma-lib package using LIB_PACKAGE, since utilities
depends on the rdma libraries and we don't want that to pull in all
of rdma.

This change moves files between packages so, until we have a proper
policy on how to handle this in release/stable branches, it should
not be MFC'd.

PR:     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=263227
MFC after:      never
Reviewed by:    manu
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D53604
c55f179fa773acd7b2ece09a7ac6fa440996a09c Lexi Winter 2025-11-06 14:39:26
iwlwifi: fix the gcc build
- Only apply the previously added CWARNFLAGS to `drv.c` instead of the
  whole module.
- Only apply `-Wno-initializer-overrides` to CWARNFLAGS in the clang
  scenario as it's not supported with gcc.

This fixes building the module with gcc and avoids accidentally
introducing tech debt with the module, in the event other issues are
accidentally introduced.

MFC after:      3 days
Fixes:          https://cgit.freebsd.org/src/commit/?id=6b627f8858 ("iwlwifi: update Intel's mvm/mld drivers")
Differential Revision:  https://reviews.freebsd.org/D53591
2ec6a2e5f01120ea8d4e667e7773d8b140e40c75 Enji Cooper 2025-11-04 22:52:41
dtrace_pid.4: Document the DTrace PID provider
MFC after:    2 weeks
Differential Revision:  https://reviews.freebsd.org/D51287
9fe88e5503239cb65e503e3b2b7344933a888644 Mateusz Piotrowski 2025-11-06 22:40:41
libsys: install manpage links for jail_attach_jd/jail_remove_jd
This was a minor oversight from their introduction.

Commit message by kevans@.

Fixes:  https://cgit.freebsd.org/src/commit/?id=851dc7f859c23 ("jail: add jail descriptors")
Reviewed by:    kevans
51c5e2b60247b3deb204a1d78ea6edc91a8ac652 Christian S.J. Peron 2025-11-07 01:08:17
release: Comply with Azure Marketplace requirements for aarch64
Azure requires the first 1 MB (2,048 sectors) of the OS disk to remain
empty for VM images:

  https://learn.microsoft.com/partner-center/marketplace-offers/azure-vm-certification-faq#vm-images-must-have-1-mb-of-free-space

Also append the BOOTPARTSOFFSET suffix for aarch64 images, which only
has an ESP partition for booting.

Co-authored-by: Brad Davis <brd@FreeBSD.org>
Approved by:    cperciva
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D53628
36095c942031f7f1613eec554f1c7615cbd891fd Li-Wen Hsu 2025-11-07 05:10:44
release: Add WITHOUT_QEMU to IMAKE
We have NO_ROOT here, so we need WITHOUT_QEMU to avoid problems.

15.0 candidate.

Reviewed by:    emaste, markj
MFC after:      3 days
Differential Revision:  https://reviews.freebsd.org/D53637
f89aa18848ae9924fbae48ba36e7b6b38bddce4c Colin Percival 2025-11-07 19:56:14
multicast tests: Run in VNET jails
The tests themselves create identically named jails, resulting in
spurious failures when the tests are run in parallel.

MFC after:      1 week
b3b279b801d571919c8bbd5de4325d8819ffd59a Mark Johnston 2025-11-09 13:00:19
geom_zero.4: Document
PR:   https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=250593
Reviewed by:    bcr, ziaee
Thanks to:      imp, markj
MFC after:      1 week
Fixes:  https://cgit.freebsd.org/src/commit/?id=3843eba85d98 Add unmapped BIO support to GEOM ZERO
Fixes:  https://cgit.freebsd.org/src/commit/?id=24e1fdcd1a69 Allow to specify the byte which will be used for filling read buffer
Fixes:  https://cgit.freebsd.org/src/commit/?id=565bc101112c Add a very simple and small GEOM class - ZERO
39acb7fd86eda721df402c2f1368b78cede161c3 Mateusz Piotrowski 2025-11-09 14:46:40

Internal organizational stuff

share/doc/llvm: Move to the clang package
This change moves files between packages so, until we have a proper
policy on how to handle this in release/stable branches, it should
not be MFC'd.

MFC after:      never
Reviewed by:    manu, dim
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D53608
6a12f58434e0f008aa9a1a8f8e4e1f78a15f13fc Lexi Winter 2025-11-06 14:33:05
BSD family tree: reduce OpenBSD-NetBSD crowding
OpenBSD was nearly against the NetBSD entries, especially in their
earlier lineages.  Now line up "OpenBSD" with | at the 'e'.

Reviewed by:    gordon (in person)
Differential Revision:  https://reviews.freebsd.org/D53509
09aeca28dd7583bb0b9b9d3a38dcc40cdbd870e3 David E. O'Brien 2025-10-31 22:10:20
bsd-family-tree: Re-center OpenBSD line
Commit 09aeca28dd75 ("BSD family tree: reduce OpenBSD-NetBSD crowding")
moved OpenBSD releases over 2 spaces.  Move the line through OpenBSD
releases over as well.

Reviewed by:    obrien
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D53635
1821cf482ff128b08bd65807e1f7aad7eb873e0b Ed Maste 2025-11-07 14:58:50

Testing

sh tests: Fix racy test11.0
This was sometimes exiting while the child fifo was created resulting in
[ENOTEMPTY] from rm.  The child fifo isn't needed, just sleep.

PR:     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=290837
Fixes:  https://cgit.freebsd.org/src/commit/?id=e31fb97148f ("read builtin: Empty variables on timeout")
MFC after:      3 days
5d55553e160a93788372785300f5bd07c2451f93 Bryan Drewery 2025-11-07 17:28:37

Style, typos, and comments

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

-- no commits in this category this week --

Contrib code

contrib/bsddialog: import 1.1
Add: slider dialog.
Imported to enable testing and to complete the geomman(8) utility.

Developed as part of the "Full Disk Administration Tool for FreeBSD"
project, Braulio Rivas (brauliorivas@), Google Summer of Code 2025.

Sponsored by:   Google LLC (GSoC 2025)

Merge commit '5a70558d32b9680c10ab579c7491652e0838cee4'
f2d966f6c13d93cccceb8e594a69d1a50471d314 Alfonso S. Siciliano 2025-11-03 20:17:27

Reverted commits

Commit & revert pair: openssh: Don't try to bind to unsupported addresses
openssh: Don't try to bind to unsupported addresses

When selecting an address to bind to, skip IPv4 addresses if the kernel
does not support the inet feature, and IPv6 addresses if the kernel does
not support the inet6 feature.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=195231
MFC after:      1 week
Reviewed by:    emaste
Differential Revision:  https://reviews.freebsd.org/D53561
e5ff8e7977434b150a66bb3e472c6d0e0f644cfa Dag-Erling Smørgrav 2025-11-04 11:31:48

Revert "openssh: Don't try to bind to unsupported addresses"

This doesn't actually do anything useful, since getifaddrs() will only
return supported addresses.  The root cause of the issue described in
the PR lies earlier in the connection timeline, around the start of the
ssh_create_socket() function.

This reverts commit e5ff8e7977434b150a66bb3e472c6d0e0f644cfa.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=195231
96e215ad8173185337cf3057b80f2a0723ca201a Dag-Erling Smørgrav 2025-11-04 20:13:11
Commit & revert pair: kern: RACCT: Keep process credentials alive via references
kern: RACCT: Keep process credentials alive via references

In system calls changing process credentials, on RACCT, calls to
racct_proc_ucred_changed() must be issued on the new credentials.
Currently, this is done after the new credentials have been installed on
the process via proc_set_cred() or proc_set_cred_enforce_proc_lim(),
which modifies 'p_ucred'.  Only the process lock guarantees that the new
credentials pointed to by 'p_ucred' cannot themselves be concurrently
modified, which would cause their 'struct ucred' to potentially lose its
last reference from the process before the call to
racct_proc_ucred_changed(), which needs one.

For better code understandability and to avoid errors in future
modifications, stop relying on proc_set_cred*() storing the passed
'struct ucred' in the process 'p_ucred' and on the process lock to avoid
the reference taken by proc_set_cred*() to vanish.  Instead, ensure that
a reference is held when racct_proc_ucred_changed() is called.

As racct_proc_ucred_changed() is actually passed explicit pointers to
the old and new credentials, there is in fact no need to call it after
proc_set_cred().  Instead, call it before proc_set_cred() and its taking
over the reference.

Since setcred() uses proc_set_cred_enforce_proc_lim(), which can fail,
instead of proc_set_cred(), we instead take an additional reference with
crhold().  Indeed, racct_proc_ucred_changed() should update resource
accounting only if proc_set_cred_enforce_proc_lim() succeeds (an
alternative would be to call it in advance and then in case of failure
of the latter to call it again in order to backpedal the updated
accounting, but we don't see a compelling reason to do that instead of
taking an additional reference).

While here, add to the documentation of proc_set_cred_enforce_proc_lim()
that it does not take over the credentials reference in case of failure.
While here, in racct_proc_ucred_changed()'s herald comment, add the
precise condition in which this function must be called.

No functional change intended.

Reviewed by:    kib
MFC after:      3 days
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D53563
a5d1a0c9bfcca38528b861c5afb51ea9b1696b65 Olivier Certner 2025-11-03 18:21:08

Revert "kern: RACCT: Keep process credentials alive via references"

The change causes a panic on boot with INVARIANTS kernels.  Revert for
now.

This reverts commit a5d1a0c9bfcca38528b861c5afb51ea9b1696b65.

Reported by:    syzbot+74624c6fcbb384ea0113@syzkaller.appspotmail.com
d7a138207fa4a2ff077d5d276f6413f1d8130032 Mark Johnston 2025-11-06 14:48:57

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 2025-12-15 20:56:01+00:00.

This work is supported by Tarsnap Backup Inc.

Alternate version: 2025-11-03 (debug) (contains info about the classification)