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

Introduction

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

DEBUG: This version of the report is primarily for checking the classifiers, and therefore contains extra information (in this colour).

Table of contents and commits per category:

(5) Highlighted commits (these are copies, not in stats)
1 0.5% Userland programs
8 4.2% Documentation
54 28.4% Hardware support
15 7.9% Networking
14 7.4% System administration
12 6.3% Libraries
5 2.6% Filesystems
41 21.6% Kernel
12 6.3% Build system
5 2.6% Internal organizational stuff
8 4.2% Testing
6 3.2% Style, typos, and comments
8 4.2% Contrib code
1 0.5% Reverted commits
0 0.0% Unclassified commits
190 100% total
Technical notes about this page

debug: info about the automatic classification

num % num changed stage
1 0.5% 0 00-reverts
6 3.2% 0 01-style
15 7.9% 0 02-filenames_wildcards
7 3.7% 0 02b-filenames_wildcards2
87 45.8% 0 03-filenames_plain1
53 27.9% 0 04-filenames_plain2
7 3.7% 0 05-summary-prefix
14 7.4% 0 Manually-classified commits
0 0.0% 0 Unclassified commits

debug: more stats

num % stage
0 0.0% Misclassified commits
176 92.6% Classified commits, no corrections

debug: groups

0 0.0% num in revert
1 0.5% num in fixes
41 21.6% num in consecutive
42 22.1% Commits in groups

Highlighted commits

For extra visibility, these are copies of commits found in other sections. Most (if not all) come from the commit message containing "Relnotes:", or commits modifying UPDATING.

libc/resolv: Refactor the option parser
Start the loop by finding the end of the option name, the name-value
separator (if any), and the end of the option.  Use those pointers to
simplify matching the option name and parsing the option value, and
validate option names and values more strictly.  This means that:

* We no longer accept trailing garbage in an option name or value.  For
  instance, we would previously interpret “edns0123” as “edns0” and
  “timeout:3xyz” as “timeout:3”.  This was actually quite lucky because
  we also failed to recognize the newline at the end of the option line
  as a whitespace character.

* For options that take a numerical argument, we would previously accept
  negative values and treat non-numerical arguments as 0, while large
  numerical arguments would be capped to the option's maximum permitted
  value.  Now, any failure to parse the argument, including overflow,
  results in the option being left unchanged.

MFC after:      1 week
Relnotes:       yes
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D57923
9bfdfecd27359130aa4ef63fc0aa32f98f9e7b50 Dag-Erling Smørgrav 2026-07-06 12:23:29

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

libc/resolv: Reimplement the sortlist parser
When we switched from the BIND4 resolver to the BIND9 resolver, the
sortlist parser was inadvertently disabled due to a missing #define, and
nobody seemed to notice.  The sorting code remained enabled in the
resolver, but there was no way to set a sort order.

Reimplement the sortlist parser, but correctly, and update the manual
accordingly.  The new parser accepts IPv4 and IPv6 addresses with or
without a mask or prefix length, just like the old one, except IPv6
support was a bit wonky in the original code.

Fixes:          https://cgit.freebsd.org/src/commit/?id=5342d17f09a8 ("Update the resolver in libc to BIND9's one.")
Relnotes:       yes
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D57925
fbe0257b5613f457af42f82efb2e3bc9395d0557 Dag-Erling Smørgrav 2026-07-06 12:23:37

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

routing: Replace unreachable nhops in nhgrp
If a nhop gets an interface event, revalidate the nhops and
immediately try to recompile existing nexthop groups by
replacing unreachable nexthops with reachable ones.
If none are available, recompile them back to
their normal position in nexthop group slots.

Reviewed by:    glebius
Discussed with: markj
Relnotes:       yes
Differential Revision: https://reviews.freebsd.org/D57389
be42ac4dceacedb0e4f676a0614e14d125fab36b Pouria Mousavizadeh Tehrani 2026-06-01 20:07:27

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

tcp_bblog.4: Add a manual page for TCP Blackbox Logging
The tcp_bblog facility provides structured logging of TCP stack activity
for debugging and performance analysis. It is implemented in the kernel
and allows per-connection tracing of TCP events with low overhead.

Reviewed by:    tuexen, ziaee
MFC after:      1 week
Relnotes:       yes
Differential Revision:  https://reviews.freebsd.org/D56252
62e22d7cfc1ca1c25bede6aaeca370c163a9a1ef Gordon Bergling 2026-07-12 10:25:01

debug: classified in 02-filenames_wildcards by '.*Makefile'

chflags: Add a new UF_DONTCACHE flag
This internet draft (which is close to being an RFC)
specifies a new NFSv4.2 attribute which tells the NFSv4.2
client to not cache file data. (Similar to O_DIRECT, but
triggered by this attribute set on the file on the NFSv4.2
server and not by the application's open(2).)

https://datatracker.ietf.org/doc/draft-ietf-nfsv4-uncacheable-files/

This patch adds a new chflags(1) flag called UF_DONTCACHE to
implement this.

Patches for NFS and ZFS will be done separately.

Reviewed by:    kib
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D58181
74654ba3b1b3bcf6ba8870a54310accbb6adbf0b Rick Macklem 2026-07-12 22:45:28

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

Userland programs

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

chflags: Add a new UF_DONTCACHE flag
This internet draft (which is close to being an RFC)
specifies a new NFSv4.2 attribute which tells the NFSv4.2
client to not cache file data. (Similar to O_DIRECT, but
triggered by this attribute set on the file on the NFSv4.2
server and not by the application's open(2).)

https://datatracker.ietf.org/doc/draft-ietf-nfsv4-uncacheable-files/

This patch adds a new chflags(1) flag called UF_DONTCACHE to
implement this.

Patches for NFS and ZFS will be done separately.

Reviewed by:    kib
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D58181
74654ba3b1b3bcf6ba8870a54310accbb6adbf0b Rick Macklem 2026-07-12 22:45:28

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

Documentation

Man pages, release notes, etc.

resolver(5): Overhaul
* Modernize the markup

* Describe the comment syntax

* Drop obsolete advice

* Capitalize sentences

* Improve the language

* Replace no_tld_query with no-tld-query; both are supported, but all the
  other multi-word options use hyphens rather than underscores.

* Add missing ENVIRONMENT section

* Redo the example

MFC after:      1 week
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D57921
4319e4bf42f2f5a71ac32cb18cef8f7677fdf7f7 Dag-Erling Smørgrav 2026-07-06 12:23:20

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

inotify.2: Fix formatting and lint
MFC after:    1 week
92dfe30ba254b50a74e14f33ad1d2a0c03393960 Mark Johnston 2026-07-06 12:50:51

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

pdfork.2: document EINVAL for pdwait(2)
Reviewed by:  markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D57124
1cced493289962858c961b06b161b44ca43e7ac7 Konstantin Belousov 2026-05-20 02:05:02

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

pdfork.2: clarify that PD_DAEMON acts on current file
Also do not start a new list for each flag item.

Reviewed by:    markj
MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
Differential revision:  https://reviews.freebsd.org/D57124
5a5affd457eb3ab89b57c9c512a8843d9011133f Konstantin Belousov 2026-05-25 17:49:50

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

pdfork.2: grammar
Submitted by: des
MFC after:      1 week
849a51ac8371f45a61e93c7b5787da93cf751c75 Konstantin Belousov 2026-07-07 08:05:20

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

pdfork.2: grammar
Submitted by: des
MFC after:      1 week
a2426d1cd89e8cee08612951c133663dd8834838 Konstantin Belousov 2026-07-08 06:08:55

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

rename.2: Document AT_RENAME_EXCHANGE
Reviewed by:  mckusick
Discussed with: markj
Tested by:      pho
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D57658
3055c47f6024b087a90021edb05992304a119827 Konstantin Belousov 2026-06-19 08:40:25

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

chflags.1: Document the new UF_DONTCACHE flag
Commit 74654ba3b1b3 added and new chflags(1) flag called
"udontcache" or "dontcache".  This patch documents this flag.

This is a content change.

Reviewed by:    kib
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D58181
4830670a3f946054f7963ab747bb6f36b187224d Rick Macklem 2026-07-12 22:56:52

debug: classified in 02-filenames_wildcards by '.*\.[1-9]'

Hardware support

Hardware drivers and architecture-specific code.

sound: track kqueue low watermark per-knote for mmaped channels
Use kn->kn_sdata to track the last bs->total value for each knote
attached to an mmaped channel. An event is delivered only when the total
byte counter has advanced by at least c->lw since the last delivery.
After delivery kn_sdata is updated to the current total.

Each knote tracks its own watermark independently, so multiple knotes
attached to the same mmaped channel all receive events correctly.

Non-mmap channels keep the existing level-triggered behavior via
chn_polltrigger().

MFC after:      1 week
Reviewed by:    christos
Differential Revision:  https://reviews.freebsd.org/D57833
24576c39789ca13846b9450155923ee0e377aeb4 Goran Mekić 2026-07-06 12:06:17

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

Commit group #0: arm64/vmm
arm64/vmm: Add FEAT_NV2 definitions

Add the definitions for the VNCR_EL2 register and all of the offsets
to registers in memory relative to the page stored in VNCR_EL2.

Signed-off-by:  Kajetan Puchalski <kajetan.puchalski@arm.com>
Reviewed by:    andrew
Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D56550
5c7315317f5f383168981eb4ab944e340acaf212 Kajetan Puchalski 2026-07-06 14:15:47

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


arm64/vmm: Use the VNCR_EL2 memory page to store guest registers

Wherever possible, move the storage space for guest register values from
the hypctx struct into a preallocated memory page matching the layout of
the page pointed to by VNCR_EL2.
This will streamline implementing support for nested virtualization, but
the implementation itself is not reliant on the presence of nested
virtualization architecture features.

Signed-off-by:  Kajetan Puchalski <kajetan.puchalski@arm.com>
Reviewed by:    andrew
Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D56551
dd08cb0c8d6e1737d2dddf978a0291f09911a715 Kajetan Puchalski 2026-07-06 14:16:34

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


arm64/vmm: Store non-VNCR registers in an array

Move non-VNCR EL0 and EL1 registers into a dedicated array inside of
hypctx. This enables uniform accesses to both VNCR and non-VNCR guest
register state through hypctx_[read|write]_sys_reg().

The accessors are _not_ used for non-VNCR EL2 registers in order to
create a clear separation between guest-visible and guest-invisible
register state.

Signed-off-by:  Kajetan Puchalski <kajetan.puchalski@arm.com>
Reviewed by:    andrew
Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D56552
d2e3e76ab902001c62e8c9a6286d2979b0f2a0de Kajetan Puchalski 2026-07-06 14:17:03

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


arm64/vmm: Refactor vmm_hyp.c

Refactor vmm_hyp.c to split register reload logic by type of register,
streamline the implementation and improve readability.

Signed-off-by:  Kajetan Puchalski <kajetan.puchalski@arm.com>
Reviewed by:    andrew
Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D56553
e3cd6d1047831f58bf704d207ba559c21af63e03 Kajetan Puchalski 2026-07-06 14:17:31

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


arm64/vmm: Move vttbr_el2 & vtimer into struct hypctx

Move vttbr_el2 & vtimer from struct hyp into struct hypctx to streamline
the logic and handle them in the same way as other *_el2 registers are
already being handled.

Signed-off-by:  Kajetan Puchalski <kajetan.puchalski@arm.com>
Reviewed by:    andrew
Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D56554
f4c3458ab3ce52ba9b234bee7711d0cb9a0745ac Kajetan Puchalski 2026-07-06 14:17:58

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


arm64/vmm: Move host-side EL2 regs into sys_regs

Move EL2 host registers that are not visible to the guest into
hypctx->sys_regs. Prefix them with HOST_ to distinguish from EL2
registers which are part of the guest's own state (e.g. in VNCR).

Signed-off-by:  Kajetan Puchalski <kajetan.puchalski@arm.com>
Reviewed by:    andrew
Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D56555
ee2642678a2ca1cb968fcb2795496bc56eacbe7b Kajetan Puchalski 2026-07-06 14:18:19

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


arm64/vmm: Make remaining registers use hypctx_*_sys_reg

Move vgic, timer and trapframe registers into sys_regs to handle them
in the same way as all the other registers.

Signed-off-by:  Kajetan Puchalski <kajetan.puchalski@arm.com>
Reviewed by:    andrew
Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D56556
35164034e390f56f83efe5bf073d36812b19df23 Kajetan Puchalski 2026-07-06 14:18:50

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

powerpc/pmap(booke): Fix TLB TID eviction
Fix tid_set_busy() for when `pmap` is NULL. Obviously a NULL pointer
cannot be correctly used, so I'm not sure how it worked in testing on
64-bit.
dec79d2b47b3cb797d45b8bee7a1640dec85ebcc Justin Hibbits 2026-07-05 23:03:31

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

powerpc/booke(pmap): Flash-invalidate TLB on TID rollover
When the TID rolls over on a given CPU, simply flash-invalidate the
TLB instead of walking the TLB to only invalidate the repurposed TID.
Walking 256 entries is expensive, and we'll likely be inserting a bunch
new ones anyway in the new environment, since 256 really only handles
1MB of storage, so the likelihood of other mappings continuing to exist
in the TLB when their thread owner is scheduled again is very very
small.
4dd9e4ed9771630388cdf49ba3bcd1a608b05c9c Justin Hibbits 2026-07-05 23:05:13

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

mlx5_ib: do not consume CMD/PAGE_REQUEST events in the DEVX notifier
DEVX event notifier returned true for the command-completion and
page-request events. This is causing mlx5_eq_int() to skip the core EQ
handler, so the firmware command interface and the page supply stop
being serviced and the device wedges.

This commit also make notifier registration and dispatch safe against
the EQ interrupt running concurrently: publish the table pointer before
the callback and load it with acquire semantics. run the callback under
RCU, and drain it with synchronize_rcu() on teardown. Otherwise the
interrupt handler could observe a half-initialized notifier or race with
cleanup.

Reviewed by:    kib
Tested by:      Wafa Hamzah <wafah@nvidia.com>
Sponsored by:   Nvidia networking
MFC after:      1 month
2e3b3ce881490adcef17905450d0402030975051 Ariel Ehrenberg 2026-06-09 11:20:08

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

mlx5_ib: register DEVX objects in the uverbs ioctl parse tree
Import Linux upstream commits a8b92ca1b0e5ce620e425e9d2f89ce44f1a82a82
and c59450c463695a016e823175bac421cff219935d.

The DEVX object and method definitions were already present, but nothing
pointed ib_device.driver_def at them.  ibcore therefore never merged
them into the uverbs uapi tree and every DEVX ioctl came back as
EPROTONOSUPPORT.

Reviewed by:    kib
Tested by:      Wafa Hamzah <wafah@nvidia.com>
Sponsored by:   Nvidia networking
MFC after:      1 month
705d6cf4bf25f7b87f017322e04c6a1a37f1fac0 Ariel Ehrenberg 2026-06-09 11:20:23

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

mlx5ib: implement the MLX5_IB_OBJECT_UAR ioctl object
Import Linux upstream commit 342ee59de98a2ecdf15a46849a2534e7c808eb1f.

The dynamic UAR object was declared in the ABI headers but had no handler,
so the ioctl was rejected and dynamic-UAR contexts could not allocate a
doorbell UAR at all.

Implement the alloc and destroy methods following the upstream driver:
grab a UAR stamped with the caller's DEVX uid, expose it to user space
through an rdma_user_mmap entry (write-combining or non-cached as
requested), and free it on destroy.

Reviewed by:    kib
Tested by:      Wafa Hamzah <wafah@nvidia.com>
Sponsored by:   Nvidia networking
MFC after:      1 month
b7ca46b161d869c839b1d4a544f64d5661a9082f Ariel Ehrenberg 2026-06-04 15:07:52

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

mlx5: mark completion EQs as a shared resource for DEVX uids
A firmware object owned by a DEVX uid may only reference resources owned
by the same uid or ones explicitly marked as shared.  Completion EQs
were created with uid 0, so a CQ owned by a DEVX uid could not attach to
its EQ and CREATE_CQ failed with "bad resource".

Create completion EQs with MLX5_SHARED_RESOURCE_UID on devices that
support user contexts, so uid-owned CQs can use them.

The code follows the Linux commit d2c8a1554c10d5e0443b1f97f480d7dacd55cf55
("IB/mlx5: Enable UAR to have DevX UID").

Reviewed by:    kib
Tested by:      Wafa Hamzah <wafah@nvidia.com>
Sponsored by:   Nvidia networking
MFC after:      1 month
bfe14bfeb8dcefc606bdf76c40987467bbd36d92 Ariel Ehrenberg 2026-06-04 15:46:17

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

Commit group #1: mlx5ib
mlx5ib: allocate IB queue counters as a shared resource

A QP owned by a DEVX uid references the port's queue counter.  The
counter was allocated with uid 0, so RST2INIT_QP on a uid-owned QP
failed with "bad resource state".

Allocate and free the IB queue counters directly and, on devices that
support user contexts, stamp them with MLX5_SHARED_RESOURCE_UID so
uid-owned QPs can use them.

The code follows the Linux commit d2c8a1554c10d5e0443b1f97f480d7dacd55cf55
("IB/mlx5: Enable UAR to have DevX UID").

Reviewed by:    kib
Tested by:      Wafa Hamzah <wafah@nvidia.com>
Sponsored by:   Nvidia networking
MFC after:      1 month
412aa220aeb920dcbc0f2b3effbbb51ad41c7fc3 Ariel Ehrenberg 2026-06-04 15:46:28

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


mlx5ib: encode dynamic UAR mmap offsets in the reserved command range

The UAR ioctl handed user space a raw mmap offset, so the first dynamic
UAR landed at page offset 0.  mlx5_ib_mmap() decodes offset 0 as the
legacy regular-page command and routed the mapping through the old bfreg
path, which rejects dynamic-UAR contexts, so mmap() failed with EINVAL
and mlx5dv_devx_alloc_uar() returned NULL.

Follow the upstream scheme: reserve the mmap command range [9, 255] for
rdma_user_mmap entries and return command-encoded offsets, so the
dynamic-UAR mappings decode to the intended mlx5_ib_mmap() path.

Reviewed by:    kib
Tested by:      Wafa Hamzah <wafah@nvidia.com>
Sponsored by:   Nvidia networking
MFC after:      1 month
631e57d54c137e9393c47075db09a6c7fb84c6ed Ariel Ehrenberg 2026-06-08 10:55:47

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


mlx5ib: advertise write-combining support for dynamic BlueFlame UARs

Import Linux upstream commit 1f3db161881b7e21efb149e0ae8152b79a571a8f.

dev->wc_support was never set, so it was always false and the UAR ioctl
refused BlueFlame (write-combining) UAR allocations with EOPNOTSUPP.
That breaks QP creation in pure dynamic-UAR mode, where user space asks
for a BF doorbell UAR.

Reviewed by:    kib
Tested by:      Wafa Hamzah <wafah@nvidia.com>
Sponsored by:   Nvidia networking
MFC after:      1 month
80902b8b7cd409ade11048dc78212e7d43475c65 Ariel Ehrenberg 2026-06-08 10:56:04

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

Commit group #2: mlx5
mlx5: pass the full EQE to the DEVX event notifier

The DEVX event notifier and its helpers expect a full struct mlx5_eqe
and read eqe->data from it, but mlx5_eq_int() passed &eqe->data, so the
data offset was applied twice.

Reviewed by:    kib
Tested by:      Wafa Hamzah <wafah@nvidia.com>
Sponsored by:   Nvidia networking
MFC after:      1 month
0e9bbbdcbea8edc6ad259a9428234b494014bc4e Ariel Ehrenberg 2026-06-15 08:15:54

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


mlx5: guard against a NULL CQ event handler in mlx5_cq_event()

DEVX and mlx5en created CQs are registered without an asynchronous
event handler (mcq.event is NULL).  An asynchronous CQ_ERROR event for
such a CQ made mlx5_cq_event() call through a NULL pointer and panic.

Reviewed by:    kib
Tested by:      Wafa Hamzah <wafah@nvidia.com>
Sponsored by:   Nvidia networking
MFC after:      1 month
284e06dec78ffbbf8919dc0aa11073ecabba7176 Ariel Ehrenberg 2026-06-15 08:16:17

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


mlx5: propagate the DEVX uid through SRQ create and destroy

The SRQ command builders never stamped the owning DEVX uid into the
firmware CREATE_SRQ/CREATE_RMP/CREATE_XRC_SRQ commands, so a basic SRQ
was always created with uid 0.  Every modern libmlx5 context runs with a
DEVX uid, and the QPs that reference the SRQ carry that uid, so firmware
rejected CREATE_QP with "bad resource": a uid-owned QP may not reference
a uid-0 SRQ.

Reviewed by:    kib
Tested by:      Wafa Hamzah <wafah@nvidia.com>
Sponsored by:   Nvidia networking
MFC after:      1 month
07f780cb7f8eab1aa6e84d3ed6785144d0d3cc47 Ariel Ehrenberg 2026-06-15 19:00:47

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

x86/local_apic.c: Add support for installing a thermal interrupt handler
The thermal interrupt is initially masked.

Thermal interrupt handling is enabled by calling lapic_enable_thermal(),
which installs a (single) handler.

[olce: Wrote the commit message.]

Reviewed by:    kib, olce
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D44454
87ba088fa3108dd180008a04f25760ec71476c87 Koine Yuusuke 2026-07-01 15:28:21

debug: classified in 03-filenames_plain1 by '['sys/amd64/', 'sys/x86/']'

Commit group #3: acpi: Add a pseudo-bus for APEI devices to manage resources
acpi: Add a pseudo-bus for APEI devices to manage resources

Different APEI tables can reuse the same registers (and sometimes
different views of the same register, e.g. 32- vs 64-bit mappings of
the same register).  To enable this sharing, apei0 now acts as a bus
device managing a pool of allocated resources and handing out mappings
to child devices which handle individual tables.

Most of the previous apei(4) driver has been moved into a new
hest0 device that is a child of apei0.

Reviewed by:    gallatin
Sponsored by:   Netflix
Differential Revision:  https://reviews.freebsd.org/D58024
9313f6b01485ad9a0b7cc59b459f5714533587c3 John Baldwin 2026-07-07 18:13:51

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


acpi: fix instant panic in hest_attach()

Since now there is a pseudo-bus between our device and acpi0, we need to
go deeper.

Fixes:  https://cgit.freebsd.org/src/commit/?id=9313f6b01485ad9a0b7cc59b459f5714533587c3
6cfc526e7f91534db46a3cff3c2dd2744310e24f Gleb Smirnoff 2026-07-07 21:14:43

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

acpi_einj: Support for ACPI error injection
This driver parses the ACPI EINJ table and builds a list of
instructions associated with known actions.  It then exports ioctls to
fetch the set of supported errors and inject system errors by
executing specific sequences of actions.  This can be used to test
error reporting facilities for events such as ECC errors.

Reviewed by:    gallatin
Sponsored by:   Netflix
Differential Revision:  https://reviews.freebsd.org/D58025
bc49842769bd3657a5a1e7de878c0ce8780a2f86 John Baldwin 2026-07-07 18:15:27

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

fwohci: fix LPS delay, PHY_INT storm, and SID timeout recovery
Fixed the post-LPS delay from 500us to the IEEE 1394a-2000 s6.1 mandated
10ms ceiling. Handled PHY_INT by clearing W1C status bits in register 5
(masked ISBR to avoid spurious bus resets). Added a SID timeout callout
that recovers the state machine when a remote device fails to complete
self-ID. Fixed FW_PHY_SPD operator precedence and gated noisy messages
behind bootverbose/firewire_debug.

Reviewed by:    adrian
Differential Revision:  https://reviews.freebsd.org/D58033
4b3d035668211c19fc6fd5d4d207c2e8f96e7ad3 Abdelkader Boudih 2026-07-08 05:30:44

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

Commit group #4: fwcam
fwcam: add dynamic resolution and frame rate support

Read V_MODE_INQ and V_RATE_INQ registers for all supported formats
during probe, caching the camera's actual capabilities.  Use these
to validate SMODE ioctl requests before writing to the camera.

Writing an unsupported combination caused the camera to
stop responding, requiring a physical power cycle.

Tested with: Apple iSight (external FireWire)

Reviewed by:    adrian
Differential Revision:  https://reviews.freebsd.org/D58090
f4825e91cf77d6f0fa6c8d8407956e9e1c52f2df Abdelkader Boudih 2026-07-08 05:31:03

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


fwcam: set ISO speed from device link speed

iso_speed was never initialized, defaulting to S100 regardless of the
camera's actual link speed. Some cameras firmwares reject ISO_EN
when the speed field in the ISO_CHANNEL register
does not match their capabilities.

Reviewed by:    adrian
Differential Revision:  https://reviews.freebsd.org/D58091
4e0fc4d44dc18d0d3fd3d79f9074b068f2ee6eeb Abdelkader Boudih 2026-07-08 05:31:22

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


fwcam: write video mode registers before enabling ISO streaming

The IIDC spec (s3.1) requires the video mode to be programmed before ISO
enable. Without this, cameras that power up with invalid default
mode/rate combinations reject the ISO_EN write.

This can happen when the firmware of teh camera is outdated or
vendor never updated it.

Differential Revision:  https://reviews.freebsd.org/D58092
84044a77a620751d104f772345be66445ebe4fe0 Abdelkader Boudih 2026-07-08 05:31:32

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

fwcamctl: add control utility for fwcam(4) IIDC FireWire cameras
fwcamctl provides userland access to /dev/fwcam0.  Supported
subcommands: info (camera state, format, mode, rate, features),
snap (capture a frame as PPM), mode (set format/mode/rate), and
feat (get/set camera feature registers).

snap converts YUV422, YUV411, YUV444, RGB8, and Mono8 pixel
formats to RGB24 PPM with no external dependencies.  A configurable
frame skip (default 5) allows auto-exposure and auto-white-balance
to settle before capture.

(from adrian - yes, I've successfully captured images from an
Apple isight camera on firewire with this tool and in-tree support.)

Reviewed by:    adrian
Differential Revision:  https://reviews.freebsd.org/D57914
94f24c0ee23964f751fabc908a7564a388c9d1a1 Abdelkader Boudih 2026-07-08 05:31:46

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

sound: Remove dead code in dsp_ioctl()
Sponsored by; The FreeBSD Foundation
MFC after:      1 week
69c4e2b68a588272de6ab86e302d87188bfef2a6 Christos Margiolis 2026-07-08 18:11:54

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

sound: Pass format and speed as arguments to sndbuf_create()
Sponsored by: The FreeBSD Foundation
MFC after:      1 week
815dc35b7b5ed694fc1986d054149e375b8a17bd Christos Margiolis 2026-07-08 18:18:49

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

fwcam: defer ISO streaming to first read
Moved ISO start to first usage. Opening the device now
only validates state and increments the open count, allowing info
queries and mode changes without starting the camera. ISO streaming
begins on demand when userland first reads frame data.
This avoid the camera led to turn-on at attach.

Reviewed by:    adrian
Differential Revision:  https://reviews.freebsd.org/D58100
56d4dee82de1b5c8c77d5be79f7bf4183b327b57 Abdelkader Boudih 2026-07-09 02:52:12

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

fwcam: retry ISO enable after re-powering camera
Some IIDC cameras power down the sensor when inactive (e.g. lens
cover closed) and reject ISO enable with EIO. Re-power the camera
and retry once before failing.

Reviewed by:    adrian
Differential Revision:  https://reviews.freebsd.org/D58101
d128ddf32e87a672dbbbc26cfece71e241e0ffa0 Abdelkader Boudih 2026-07-09 02:52:29

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

fwisound: add Apple FireWire audio driver
Expose audio capture from Apple FireWire devices as a standard
pcm(4)/dsp(4) device via the newpcm framework.

(adrian: I've tested this on an isight camera and looped
it back to USB speakers via "sox -t oss /dev/dsp3 -t oss /dev/dsp4")

Reviewed by:    adrian
Differential Revision:  https://reviews.freebsd.org/D58109
cd7b65080f2f2e038ddba42048f24f8e98b011f2 Abdelkader Boudih 2026-07-09 02:52:43

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

hrfkill: Add driver to report RFKILL button press
This driver only reports the RFKILL button presses.

This is needed for the "airplane" key on some Framework laptops.

Reviewed by:    wulf, ziaee
Event:          Halifax Hackathon 202606
Location:       vishwin@'s car
Co-authored-by: Daniel Shaefer
Sponsored by:   Framework Computer Inc
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D57838
e2d56447b3a9d2ef9bd0b80c3aaa69e681f4be0f Aymeric Wibo 2026-06-25 02:03:36

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

netmap: Don't assume that user-provided strings are nul-terminated
MFC after:    1 week
Sponsored by:   The FreeBSD Foundation
e1ab35148dd425340a88a2acaf10b972cb119f8f Mark Johnston 2026-07-08 17:11:05

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

usb/quirks: More USB mass storage quirk sorting
0b95429fde2ae83c159ca991458608a97ca6b93a Dag-Erling Smørgrav 2026-07-09 13:38:53

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

usbdevs: Add Microchip 10BASE-T1S eval board
USB vendor:product 184f:0051

Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56794
707ee7ff952c5aa50884f96f7ed26f756c9723b5 Ed Maste 2026-05-04 15:33:24

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

MINIMAL: Add device md
This can't be a loadable module, so add it to MINIMAL

Sponsored by:           Netflix
Differential Revision:  https://reviews.freebsd.org/D58067
f273414c11e46c1e388aebc6bd45f83e91beeb11 Warner Losh 2026-07-10 04:04:04

debug: classified in 03-filenames_plain1 by '['sys/amd64/', 'sys/i386/']'

x86/local_apic.c: Factor out version read and max LVT slot computation
This makes the code slightly more compact and easier to read.

No functional change intended.

Reviewed by:    bnovkov
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D58110
060ecf296664fd150328ac6dcdc24764a427bc3a Olivier Certner 2026-07-08 12:59:28

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

x86/local_apic.c: Fiddle with thermal LVT slot only if supported
The thermal LVT slot does not necessarily exist.

According to Intel's Software Developers Manual, for Intel processors
supporting 64-bit operation (amd64), probably even the earliest ones
should have a local APIC with such a slot (the slot was introduced with
Pentium 4 and Xeon processors according to the manual, and the 64-bit
implementation in some later versions of them).  AMD's Architecture
Programmer's Manual also seems to imply that all AMD processors
supporting amd64 should have the slot too.  So this change may not be
needed when i386's code is dropped, but it does not hurt to have it, and
it might ease possible MFCs.

Change the signature of lapic_enable_thermal() so that it can report
failure (if there is no local APIC or if there is no thermal LVT slot).

Reviewed by:    bnovkov, kib
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D58086
c18ec05395b36bdd12b0129533a553f27eb9b067 Olivier Certner 2026-07-02 14:26:21

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

riscv: Add vendor and arch IDs for the SpacemiT K1 CPU
Differential Revision:        https://reviews.freebsd.org/D56923
Reviewed by:    mhorne
84148cc1a9262452a1d39576dbb5ab7866dddf7b Bojan Novković 2026-04-14 17:01:01

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

riscv/pmap.c: Add a ddb command for inspecting PTEs
This change implements the equivalent of the amd64-specific
'show pte' ddb command used to dump the page table entries
associated with a specific virtual address.

Differential Revision:  https://reviews.freebsd.org/D56924
Reviewed by:    mhorne
10487e30c0a70cedb2ade55e88c0dbbfc8e59f24 Bojan Novković 2026-04-14 17:02:21

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

riscv/mp_machdep.c: Flush the TLB after releasing APs
Spurious page faults caused by cached invalid entries may occur when
starting APs and potentially panic the kernel if we're running in
a non-sleepable context.

Fix this avoidable panic by flushing the TLB after the AP is released.

Differential Revision:  https://reviews.freebsd.org/D57003
Reviewed by:    markj
7489f0bf84e4c88ad6cfbf4c8cf91bd7bede56f6 Bojan Novković 2026-05-13 15:49:01

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

riscv/pmap.c: Handle spurious kernel page faults in critical sections
The Privileged ISA specification permits caching of invalid PTEs
12.2.1. Supervisor Memory-Management Fence Instruction), which may
result in a spurious page fault. Such faults are handled by 'pmap_fault'
which locks the kernel pmap before inspecting and possibly updating the
offending L2 entry.
Unfortunately, spurious faults may also occur when we're already holding
the kernel_pmap lock or running in a critical section, where any attempt
to grab the pmap lock will result in a kernel panic.

Fix this avoidable panic by performing a lockless lookup to determine
whether a valid kernel mapping exits and flushing appropriate TLB entry.

Differential Revision:  https://reviews.freebsd.org/D56925
Reviewed by:    jrtc27, mhorne, markj
7a5ef20a977c2d1ae5b94e6e6e927ac7a566ff10 Bojan Novković 2026-06-10 19:13:03

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

hwpstate_amd(4): Restore CPU ID cache after introducing cpu_get_pcpuid()
Using cpu_get_pcpuid() directly or having a CPU ID cache does not really
make any significant difference.  With cache: Less function calls, less
space on stack, but an additional allocation in the softc, who stays
permanently.  Without cache: Some function calls, but one less slot in
the softc, and no data duplication (but that info never changes).

The main reason for this change is to reduce conflicts with some
work-in-progress by aokblast@.

While here, move the check that a per-CPU structure is provided by the
bus from the attach to the probe method, as it is already used by
hwpstate_probe_pstate() there.

Reviewed by:    aokblast
Sponsored by:   The FreeBSD Foundation
1a3d61552546407786148221a961b0ce810ebabb Olivier Certner 2026-07-07 09:56:34

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

hwpstate_intel(4): Introduce a CPU ID cache
To minimize the diff with hwpstate_intel(4).  See previous commit there
for the rationale.

Reviewed by:    aokblast
Sponsored by:   The FreeBSD Foundation
7cc2f18e12ed3dd19522c5b8e96519282189a83b Olivier Certner 2026-07-07 12:52:58

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

kvm: Support non-default CPUID leaf
KVM does not always use 0x40000000 as its CPUID base. For example, QEMU
adds a 0x100 offset when nested virtualization is detected and the host
exposes Hyper-V enlightenment hints. To accommodate this behavior,
switch the detection logic to use the CPUID leaf returned by do_cpuid(),
making the implementation more flexible.

See:
https://github.com/qemu/qemu/blob/master/target/i386/kvm/kvm.c#L2300

Reviewed by:    kib
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D58146
86691d52a6d3796ad36ba474cf0a9493f6d99202 ShengYi Hung 2026-07-10 09:21:11

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

rockchip: fix stack overflow in rk8xx_rtc
Presumably surfaced by -fstack-protector-strong, rk8xx_settime was
triggering SSP when ntpd set the time on the RockPro64, at the very
least.  A minor oops meant that the weeks mask was getting tossed into
the wrong field, and the mask was never populated.  The mask is 0x7 for
all three of these, thus overflowing the `data` array in settime by one
byte.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=296719
Reported by:    jsm, "Tenkawa" on Discord
Reviewed by:    mmel
Differential Revision:  https://reviews.freebsd.org/D58182
d387a43ec8e2663b2d8bc0c8cb02d3a2ff14b6e6 Kyle Evans 2026-07-12 14:51:05

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

fwdv: add AV/C DV capture driver for FireWire camcorders
Add fwdv(4) driver for DV video capture from FireWire camcorders
using AV/C protocol and isochronous streaming.

Supports AV/C tape transport commands (play, stop, ff, rewind, pause,
record, eject) with NTSC/PAL auto-detection and read(2) interface
for frame capture.

Reviewed by:    adrian
Differential Revision:  https://reviews.freebsd.org/D58122
23a6997e3071cea8d8fc5238792fdd0ad5b5dc9a Abdelkader Boudih 2026-07-12 15:25:52

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

rge: fix multicast add/removal by using if_getdrvflags()
Using if_getflags() to check IFF_DRV_RUNNING is wrong;
if_getdrvflags() is required.  This issue resulted in the
multicast filter not being updated.

This was an oversight by me in my initial port.

Thanks to danilo@ for reporting it and Oleg <oleglelchuk@gmail.com>
for the fix.

PR: kern/https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=295176
7aa34e12c9e198bf8b7e74370ff702def5ec2649 Adrian Chadd 2026-07-12 15:26:46

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

hidwacom: Add Wacom ExpressKey Remote driver
The Wacom ExpressKey Remote (ACK-411050) is a wireless button pad
with 18 programmable buttons and a touch ring, used as a companion
device with Wacom tablets.

It communicates via a USB wireless receiver (0x056a:0x0331) using a
vendor-specific HID report (ID 0x11).

This driver exposes the device via evdev:
  - 18 buttons: BTN_0–BTN_Z, BTN_BASE, BTN_BASE2
  - Touch ring position via ABS_WHEEL (0–71; reports 0 on release)
  - Pad activity marker via ABS_MISC (set to 15/PAD_DEVICE_ID when
    any input is active, 0 when idle that matches Linux wacom driver
    convention)
  - Remote serial number via MSC_SERIAL (for userland per-remote
    identification)

Battery level, charging state, and touch ring mode (3 LEDs, values 0–2)
are exposed as per-device sysctls (dev.hidwacom.0.battery, .charging,
.ring_mode) rather than overloading evdev misc codes. The ring mode
sysctl is preserved across device idle periods.

Protocol was decoded from USB traffic analysis and cross-referenced
against the Linux wacom_remote_irq() implementation in
drivers/hid/wacom_wac.c.

Reviewed by:    adrian
Differential Revision:  https://reviews.freebsd.org/D56729
Discussed with: ziaee
4085d1991e2a9e155e3d928955ce8ba53512b8da Abdelkader Boudih 2026-07-12 17:11:07

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

bluetooth: signal devd on netgraph device events
Currently, devd emits events for external adapters only.

Send Netgraph init/disconnect events to devd so the internal adapter's
state could be asserted from userland.

(adrian - indentation changes.)

Signed-off-by: Kirill Orlov (-k) <slowdive@me.com>
Reviewed-by: adrian, imp
Pull-Request: https://github.com/freebsd/freebsd-src/pull/2196

debug: classified in 05-summary-prefix by 'bluetooth:'

usbdump: add -t to omit timestamps
Matches tcpdump naming, but without getting more intense as you add more
-t.  This slightly reduces the post-processing needed on usbdump output
to diff two transactions.

Reviewed by:    adrian
Differential Revision:  https://reviews.freebsd.org/D58196
87fb416ac8828d07fdf23a2c0d35d88efafce2af Kyle Evans 2026-07-12 19:50:24

debug: classified in 03-filenames_plain1 by 'usr.sbin/usbdump/'

Networking

Network-related commands, library, and kernel.

if_ovpn: Fix memory leak in VNET during unload
Unloading if_ovpn while it's in use by other vnets causes
memory leaks and panics.
Fix this by reverting VNET_SYSUNINIT and adjusting the SI_SUB
initialization order.

Reviewed by:    markj
MFC after:      1 week
Differential Revision: https://reviews.freebsd.org/D54175
bf142ea4760bd4391092d9cc0038a0870cf7e0b2 Pouria Mousavizadeh Tehrani 2026-07-06 16:23:56

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

pf: revert netlink commands back to enum
Revert pf_nl.h part of 017690e50913 and use new libsysdecode build glue
that parses enums.

Reviewed by:    kp, glebius
Differential Revision:  https://reviews.freebsd.org/D57866
f01c509568f25c8003bf2b0c5f6fa008e5f8f810 Gleb Smirnoff 2026-07-06 19:41:25

debug: classified in 05-summary-prefix by 'pf:'

raw ip: fix race of two connect(2)
The historical design of sockets is that on a re-connect the disconnect is
performed at the socket layer in soconnectat().  Since SMP times this is
known to be racy and the function has appopriate comment.  I missed that
in the recent change.  The pr_connect method should normally expect the
socket to be already disconnected, however should be able to handle a race
where socket is actually connected.  Convert the check that incorrectly
tried to handle normal path of re-connect into check that handles the
race.

Reported by:    markj
Fixes:  https://cgit.freebsd.org/src/commit/?id=ece716c5d34728a170f1dfe1b3389c267d6ddd1e
ee5d87a3e2ca1c169ca2032fcb12841a499356c9 Gleb Smirnoff 2026-07-06 21:30:41

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

if_bridge: Remove unused disable parameter in bridge_stop
The ```int disable``` parameter is included in the bridge_stop function
signature but is not used in the function body.

I had noticed this when tracing the driver's path while learning more
about the ifnet library.

This parameter originally appeared when importing the driver from NetBSD.
However, the FreeBSD ifnet library no longer requires an if_stop function.
Meaning that the function signature can be changed to only contain needed
parameters for our bridge driver.

Discussed with: freebsd-net@ mailing list
Signed-off-by:  Acesp25 <acesp25@freebsd.org>
Reviewed by:    kp
Pull-Request:   https://github.com/freebsd/freebsd-src/pull/2290
3e3752ce73b75b8d1089eb09c8b63d4bdde46219 Acesp25 2026-06-21 01:34:50

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

netinet6: further refactor in6_pcbconnect()
A mistake from 90ea8e89d9b7 is that in6_pcblookup_internal() was skipped
for an inpcb that had unspecified local address.  This is incorrect, as
such inpcb could have already have a port set, and in_pcb_lport_dest()
shall not be called on such inpcb.  That could lead to creation of an
alised connection in the database.

This makes the function almost identical to in_pcbconnect().  While here,
fix minor bug of missing INP_ANONPORT.  This flag has no use in kernel,
but affects netstat(1) output in certain mode.

Fixes:  https://cgit.freebsd.org/src/commit/?id=90ea8e89d9b751e8b5ae90ef3397883b035788e5
Reviewed by:            pouria
Differential Revision:  https://reviews.freebsd.org/D57987
3fdb1b6f10b33f9ac62a80d75898a89c153445fc Gleb Smirnoff 2026-07-07 16:27:57

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

inpcb: make net.inet.ip.portrange port number limiting sysctls unsigned
And make net.inet.ip.portrange.randomized boolean.

Reviewed by:            pouria, tuexen, markj
Differential Revision:  https://reviews.freebsd.org/D57291
1ea204b91909fe6c2060b1fa522b31bb5b8c7dd1 Gleb Smirnoff 2026-07-07 16:28:48

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

if_epair: support IFCAP_MEXTPG
Enable IFCAP_MEXTPG by default, which may bring performance benefits.
Allow it to be disabled, and when disabled assert that we do not receive
any mbufs with M_EXTPG set. This is useful for testing.
Default the tests to disabling MEXTPG support.

Reviewed by:    zlei
Sponsored by:   Rubicon Communications, LLC ("Netgate")
Differential Revision:  https://reviews.freebsd.org/D58054
c38abd64dbc18ec10a4f80e74ae4a304c075aa5c Kristof Provost 2026-07-06 09:16:41

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

pf: fix a crash on sendfile()
The network layer must not pass unmapped (M_EXTPG) mbufs to if_output()
of network interfaces without IFCAP_MEXTPG. pf should convert these
mbufs by mb_unmapped_to_ext() for such interfaces but it didn't.
The problem had occurred on sendfile because sendfile system call
uses unmapped mbufs for the file data.

Reported by:    feld
Reviewed by:    kp, glebius
Differential Revision:  https://reviews.freebsd.org/D58021
8a14fcd23a201944f3eb5086403d10cfe1fc128f KUROSAWA Takahiro 2026-07-07 19:43:32

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

lagg: re-check port caps after bringing up a port
Some nic drivers (including iflib) do not initialize if_hwassist
until after the interface is brought up.  If a lagg member is included
in a lagg when its not yet been brought up, that will cause lagg to see
if_hwassist=0 and will disable all checksum offload, etc, on the interface.
This is almost impossible to debug without kgdb or dtrace, as ifconfig does
not surface if_hwassist.

Fix this by re-calculating lagg caps (including if_hwassist) after adding a port.

I encountered this problem when I had a commented-out if_foo1=up entry in
my rc.conf that i neglected to uncomment when I was re-configuring a lagg.

Sponsored by: Netflix
Reviewed by: markj, zlei
Differential Revision: https://reviews.freebsd.org/D58062
1cce5ef05d7ba077b0cb29d30b59f3a862e7e5ae Andrew Gallatin 2026-07-08 12:24:35

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

netinet6: Fix ND link-layer address option layout for IPoIB
RFC 4391 (IP over InfiniBand), section 9.3, lays the ND source/target
link-layer address option out as type, length (3), two reserved zero
octets, then the 20-octet IPoIB link-layer address.
The ND code assumed the Ethernet layout (RFC 4861, section 4.6.1)
everywhere and read/wrote the address directly after the option
header, i.e. two octets early.
The option-length sanity check computes 24 for both layouts for
a 20-octet address, so the mismatch was silent.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=296585
Reviewed by:    adrian, pouria
Sponsored by:   VersatusHPC
Differential Revision: https://reviews.freebsd.org/D58096
bac4760524a2a15ce75e35251f0c9cdf31732f3f Vinícius Ferrão 2026-07-09 07:05:53

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

openssh: fix GSSAPI option names
From openssh-portable commit c14709356563.

Reported by:    cy
5792a639ab950fb7e6add09352e1cd41f1809bc2 Ed Maste 2026-07-10 03:15:37

debug: classified in 05-summary-prefix by 'openssh:'

netinet6: Remove unused rip6_usrreqs declaration
Fixes:        https://cgit.freebsd.org/src/commit/?id=e7d02be19d40063783d6b8f1ff2bc4c7170fd434
Signed-off-by:  Yusuke Ichiki <public@yusuke.pub>
3c8cc666a3d3d65aedd552364e5fd43221b90d55 Yusuke Ichiki 2026-06-20 00:47:26

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

libalias: use htons() when converting from host to network
f0b8c514a18d098d9e1cfd10fa4401f277cb2f1f Yusuke Ichiki 2026-07-10 18:11:00

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

routing: Subscribe nhops to ifnet link events
Update nexthop flags with interface link status events and
instead of checking link status of interface for every packet
only check the reachability flag of the final nexthop.

Reviewed by:    glebius
Discussed with: markj
Differential Revision: https://reviews.freebsd.org/D57375
d05d1f25608230edd300d59b96da6521b409d4f3 Pouria Mousavizadeh Tehrani 2026-07-08 19:55:46

debug: classified in 03-filenames_plain1 by '['sys/net/', 'sys/netinet/', 'sys/netinet6/']'

routing: Replace unreachable nhops in nhgrp
If a nhop gets an interface event, revalidate the nhops and
immediately try to recompile existing nexthop groups by
replacing unreachable nexthops with reachable ones.
If none are available, recompile them back to
their normal position in nexthop group slots.

Reviewed by:    glebius
Discussed with: markj
Relnotes:       yes
Differential Revision: https://reviews.freebsd.org/D57389
be42ac4dceacedb0e4f676a0614e14d125fab36b Pouria Mousavizadeh Tehrani 2026-06-01 20:07:27

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

System administration

Stuff in man section 8 (other than networking).

einj: Tool to manage APEI error injection
This tool supports two commands.  The list command outputs a summary
of injectable errors supported by the current system.  The inject
command injects the requested error.

Reviewed by:    gallatin, imp
Sponsored by:   Netflix
Differential Revision:  https://reviews.freebsd.org/D58026
81bab70dc6205032e58d15a87ccc8549f900316d John Baldwin 2026-07-07 18:15:49

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

reboot: fix openlog(3) calls
LOG_CONS was OR'd into the facility argument instead of logopt, leaving
logopt as 0.  The correct call is openlog(ident, LOG_CONS, LOG_AUTH),
as shutdown(8) and init(8) already do.

PR:     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=296315
Signed-off-by: Ricardo Branco <rbranco@suse.de>
Reviewed by: imp, des
Pull Request: https://github.com/freebsd/freebsd-src/pull/2300
f723b28c9663b70045e6db07f9fe72422a609c16 Ricardo Branco 2026-06-27 10:04:48

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

bhyve: allow overriding snapshot socket directory
By default bhyve(8) creates a snapshot socket in
"/var/run/bhyve/" (BHYVE_RUN_DIR).
As this is a system directory not writable by users,
this does not work when bhyve(8) is being started
as a non-root user.

Address that by allowing to override this directory.
In bhyve(8) it is done by setting 'rundir' option
with '-o rundir=<path>'.

In bhyvectl(8) it is done with '--rundir=<path>'.

MFC after:              1 month
Reviewed by:            bcr (manpages), bnovkov
Sponsored by:           The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D57494
ed7e0ebfa20e7e798d2e4e20623d452f1c715aa5 Roman Bogorodskiy 2026-06-07 07:31:30

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

laoder.efi: Fix error in download protcol
The download protocol calls download_data with FileOffset and
BufferLength of 0 first to start the download (no data yet
available). Calls it again with BufferLength == 0 and FileOffset the
size of the download (again, no data). It then starts calling with
BufferLength != 0 and FileOffset == 0 to start the download. The
heuristic I used to detect the start was wrong, so we'd allocate the
buffer twice. Fix that by being more explicit and not using the
heuristic that was bogus.

Fixes: https://cgit.freebsd.org/src/commit/?id=afee781523e4 ("loader.efi: Recognize new memdisk=<url> and memcd=<url> options")
Sponsored by:           Netflix
Differential Revision:  https://reviews.freebsd.org/D58068
a22fa5ec74e084c5786745e56939e78f7159007b Warner Losh 2026-07-10 04:04:20

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

loader.efi: Fix off by one error in size of the virtual disk
The end address is the final byte in the array, not one byte past the
end of the array, so we need to add 1 to get the full length.

Fixes: https://cgit.freebsd.org/src/commit/?id=59219fc76a4b ("loader.efi: efiblk_memdisk_preload passes the VirtualDisks to FreeBSD")
Sponsored by: Netflix
Differential Revision:  https://reviews.freebsd.org/D58069
603270b4d69ecf0a8405e34bd41838873ddad72d Warner Losh 2026-07-10 04:04:30

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

loader.efi: Simplify the code for null decompression a little
This code is simpler when we spell it the Unix way. Also, add sanity
checks to make sure the offset is where we think it is.

Fixes: https://cgit.freebsd.org/src/commit/?id=afee781523e4 ("loader.efi: Recognize new memdisk=<url> and memcd=<url> options")
Sponsored by: Netflix
Differential Revision:  https://reviews.freebsd.org/D58070
1d1298269d4c6e3ce41db6265f32ff6c2faecaf7 Warner Losh 2026-07-10 04:04:40

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

loader: Add two new build knobs for x86 BIOS loaders
We have two sets of BIOS loaders: One that lives in stand/i386 and one
that lives in stand/userboot. Add knows to turn these on/off, with the
default being on. These often aren't needed when creating a minimal UEFI
system, so add knobs to turn them off.  Given light-weight VMs have
created a new use cases for these loaders, there's no plans at all to
eliminate them.

Sponsored by:           Netflix
Differential Revision:  https://reviews.freebsd.org/D58072
bcb1b157fdf97d5296457a0a95dfc04e33c2faeb Warner Losh 2026-07-10 04:05:25

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

kldxref: Add -m filag to print info about modules in one file
kldxref -m <file> will print the same data that the '-d' flag produces,
except restrict the output to one file. This should be the full path to
the file, and the directory name to process is omitted.

Sponsored by:           Netflix
Differential Revision:  https://reviews.freebsd.org/D57902
45f9f6ebacff41a70673fdbc305a442afff13494 Warner Losh 2026-07-10 04:05:46

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

syslogd: Limit rights on procdescs
Reviewed by:  jfree, kib
MFC after:      3 weeks
Differential Revision:  https://reviews.freebsd.org/D58160
24816abb8740c387ad4aba4ad2fa4c23b191c351 Mark Johnston 2026-07-10 20:25:54

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

loader.efi: Add xz decompression
We can now decompress .xz compressed memory disks, like
FreeBSD-15.1-RELEASE-amd64-disc1.iso.xz

Sponsored by:           Netflix
Differential Revision:  https://reviews.freebsd.org/D58073
dc6c193bb4a67e2e9ee97d1e3ac3e2950bd16979 Warner Losh 2026-07-11 14:44:40

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

Commit group #5: loader: zstd based filesystem, zstdfs like gzipfs
loader: Add xzfs, like gzipfs but with xz.

This is just like gzipfs or bzipfs, except done with the newer xz
program. This is off by default for the moment.

Sponsored by:           Netflix
86d719ae68aa5f6db055e1fa7ede24b70e612ec7 Warner Losh 2026-07-11 14:46:14

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


loader: zstd based filesystem, zstdfs like gzipfs

Off by default.

Sponsored by:           Netflix
c61ee49cd06a610193493f033f04d38cf61f11e2 Warner Losh 2026-07-11 14:46:19

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


loader: Add forgotten xz.c and zstdfs.c

These were overlooked when I added compression support.

Fixes: https://cgit.freebsd.org/src/commit/?id=86d719ae68aa ("loader: Add xzfs, like gzipfs but with xz.")
Fixes: https://cgit.freebsd.org/src/commit/?id=c61ee49cd06a ("loader: zstd based filesystem, zstdfs like gzipfs")
Sponsored by:           Netflix
df9d6403caa6426e92f5e100602f4d2be474bbae Warner Losh 2026-07-11 20:46:55

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

zonectl: display conventional zones better during RZ
zonectl's Report Zones subcommand displays a tabular list of zones.  A
conventional zone's WP column is displayed as 0xffffffffffffffff , the
literal value that the HDD reports.  But that's too wide for the column,
causing the text to be misaligned.  It's also not really meaningful,
because the Write Pointer isn't really defined for a Conventional zone.
Change it to "-1" to fix the text misalignment.

MFC after:      2 weeks
Sponsored by:   ConnectWise
Reviewed by:    fuz
Differential Revision: https://reviews.freebsd.org/D57512
4735ef6196bcb2802ad7fc7d1b8054a4756d786b Alan Somers 2026-06-09 18:06:13

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

Libraries

Commit group #6: libc/resolv
libc/resolv: Drop Solaris 2 compatibility

MFC after:      1 week
Reviewed by:    kevans, markj
Differential Revision:  https://reviews.freebsd.org/D57922
aba9fffebf97d631f85e904813ff35ed031a3bac Dag-Erling Smørgrav 2026-07-06 12:23:24

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


libc/resolv: Refactor the option parser

Start the loop by finding the end of the option name, the name-value
separator (if any), and the end of the option.  Use those pointers to
simplify matching the option name and parsing the option value, and
validate option names and values more strictly.  This means that:

* We no longer accept trailing garbage in an option name or value.  For
  instance, we would previously interpret “edns0123” as “edns0” and
  “timeout:3xyz” as “timeout:3”.  This was actually quite lucky because
  we also failed to recognize the newline at the end of the option line
  as a whitespace character.

* For options that take a numerical argument, we would previously accept
  negative values and treat non-numerical arguments as 0, while large
  numerical arguments would be capped to the option's maximum permitted
  value.  Now, any failure to parse the argument, including overflow,
  results in the option being left unchanged.

MFC after:      1 week
Relnotes:       yes
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D57923
9bfdfecd27359130aa4ef63fc0aa32f98f9e7b50 Dag-Erling Smørgrav 2026-07-06 12:23:29

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


libc/resolv: Refactor the configuration parser

This was previously all a single loop in res_init(), apart from option
parsing which we cleaned up in a previous commit.  Break it out into
separate functions for reading the configuration line by line, setting
the default domain, setting the search list, and adding a nameserver
to the nameserver list.  Sprinkle bounds checks and code comments all
around.

The sortlist code, which has been disabled for the past 20 years, will
be dealt with in a separate commit.

MFC after:      1 week
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D57924
ffeb56905ed6a7ac759367096d6dc0596e82e03f Dag-Erling Smørgrav 2026-07-06 12:23:33

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


libc/resolv: Reimplement the sortlist parser

When we switched from the BIND4 resolver to the BIND9 resolver, the
sortlist parser was inadvertently disabled due to a missing #define, and
nobody seemed to notice.  The sorting code remained enabled in the
resolver, but there was no way to set a sort order.

Reimplement the sortlist parser, but correctly, and update the manual
accordingly.  The new parser accepts IPv4 and IPv6 addresses with or
without a mask or prefix length, just like the old one, except IPv6
support was a bit wonky in the original code.

Fixes:          https://cgit.freebsd.org/src/commit/?id=5342d17f09a8 ("Update the resolver in libc to BIND9's one.")
Relnotes:       yes
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D57925
fbe0257b5613f457af42f82efb2e3bc9395d0557 Dag-Erling Smørgrav 2026-07-06 12:23:37

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


libc/resolv: Add no-debug and no-rotate options

These are simply the reverse of the debug and rotate options.

Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D57926
60827d7885016861dc02caa45f3ce873ad2a020e Dag-Erling Smørgrav 2026-07-06 12:23:43

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

resolv.h: Remove unused parts
Reviewed by:  markj
Differential Revision:  https://reviews.freebsd.org/D57927
3f15998d25da08677d2c40bc2240de293aec4205 Dag-Erling Smørgrav 2026-07-06 12:23:50

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

acl_from_text.c: Allow negative uid/gid numbers to be handled
getfacl / acl_to_text() incorrectly prints uid/gid numbers as signed integers.
This causes uid / gid numbers larger than 2G (2147483648) to print as
negative numbers.
The libc acl_from_text() function does not handle negative numbers.
This diff adds a backwards compatiblity fix to allow negative numbers...

Reviewed by:    rmacklem
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D57180
d7d71341ae7d79886143a9ce427dca0e858eda97 Peter Eriksson 2026-07-06 19:33:22

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

libsysdecode: Teach mktables to handle enums
While here, clean up and simplify the existing code.

MFC after:      1 week
Reviewed by:    glebius, jhb
Differential Revision:  https://reviews.freebsd.org/D57993
8b197806dcdff5673dd4f77a97bf46035d14db2a Dag-Erling Smørgrav 2026-07-06 19:41:15

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

libsys: export pdopenpid(2)
Reviewed by:  markj
Tested by:      pho
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D57124
d6ff3bb3de91a2f1980c24e748ea5dc16b0987fd Konstantin Belousov 2026-05-20 02:05:02

debug: classified in 05-summary-prefix by 'lib.*:'

Regen
f7675fab2084ef5a2c0feb378ff396f0d5ed6c92 Konstantin Belousov 2026-05-20 02:06:37

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

libsys: export pddupfd(2)
Reviewed by:  markj
Tested by:      pho
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D57163
2a41a8f64ba12c0d446bf1d4ed1334610f013773 Konstantin Belousov 2026-05-21 19:19:57

debug: classified in 05-summary-prefix by 'lib.*:'

Regen.
080a7fe981783590bf7f0ff39eb44dc2eecd58a2 Konstantin Belousov 2026-05-21 19:13:18

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

Filesystems

ufs: Allow read-only mounting of NetBSD FFSv2 WAPBL filesystems
Skip UFS2 fs_metaspace upper-bound validation that rejects NetBSD FFSv2
WAPBL filesystems due to differing superblock layouts.

Detect the condition during mount instead and permit read-only mounts
while rejecting read-write mounts with EROFS.  This follows NetBSD's
recommendation for systems without WAPBL support and avoids modifying
unsupported journal metadata.

PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=296022
Signed-off-by: Ricardo Branco <rbranco@suse.de>
Reviewed by: imp, kirk
Pull Request: https://github.com/freebsd/freebsd-src/pull/2279
3eb80d8d7daf4f14c22dd462d8c4e5b6fc818bd4 Ricardo Branco 2026-06-13 08:26:58

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

Commit group #7: nfsd: Garbage collect stray NFSv4 state
nfsd: Garbage collect stray NFSv4 state

When a file is deleted on the NFS server by another client,
any NFSv4 state related to that file is left stranded.
This happens because the NFSv4 operations that free the
state use a CFH, which is set by a PutFH operation.
However, the PutFH fails with ESTALE because the file has
been deleted.

This patch adds a function called nfsrv_freestrandedstate()
that frees all the NFSv4 state related to a file and calls
this function when PutFH will be replying ESTALE.

While here, a helper function was defined to handle free'ng
of the nfslockfile structure and replaces the two places
where nearly identical code does this.

Reported by:    Richard Purdie <richard.purdie@linuxfoundation.org>
Tested by:      Michael Halstead <mhalstead@linuxfoundation.org>
MFC after:      2 weeks
c52bcd09c2a6736fe841fd72e3cfb74de5a35b03 Rick Macklem 2026-07-11 15:49:12

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


nfsd: Commit missing patches for c52bcd09c2a6

Oops, I missed the other files for the commit.

This should fix the build.

Pointy hat goes on me.

MFC after:      2 weeks
Fixes:  https://cgit.freebsd.org/src/commit/?id=c52bcd09c2a6 ("nfsd: Garbage collect stray NFSv4 state")
30d4d3db431a5df8084048c4d31e98e74d2f225a Rick Macklem 2026-07-11 19:30:51

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

tmpfs: extract tmpfs_rename_check/set_parent() from tmpfs_rename()
Reviewed by:  mckusick
Discussed with: markj
Tested by:      pho
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D57658
5e0b96e728af9916ac59d65e37155a95e06c3b5e Konstantin Belousov 2026-06-18 20:01:35

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

tmpfs: implement AT_RENAME_EXCHANGE
Reviewed by:  mckusick
Discussed with: markj
Tested by:      pho
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D57658
7e06c33151e7664f6d664ee282d8da1985ce94aa Konstantin Belousov 2026-06-18 18:40:40

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

Kernel

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

ibcore: Fix GID sysctl fallback formatting
When a GID table entry is empty or not yet present in the cache,
show_port_gid() falls back to printing a zero GID.  Use the existing
GID_PRINT_FMT/GID_PRINT_ARGS helpers instead of Linux's %pI6 format,
which FreeBSD printf treats as a pointer followed by "I6".
This makes empty GID sysctl entries consistently report
0000:0000:0000:0000:0000:0000:0000:0000.

Tested by:      Wafa Hamzah <wafah@nvidia.com> (mlx5_ib)
Reviewed by:    jhb, kib
Sponsored by:   NVIDIA Networking
Fixes:  https://cgit.freebsd.org/src/commit/?id=6a75471dbcf0 ("OFED: Various changes from Linux 4.19")
Differential Revision:  https://reviews.freebsd.org/D58042
b125b736eaf7da334b07dead671e48ecad3211b3 Slava Shwartsman 2026-07-02 15:06:39

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

Commit group #8: inotify: Unconditionally generate IN_IGNORED events for files/dirs
inotify: Unconditionally generate IN_IGNORED events for files/dirs

The implementation previously only generated an IN_IGNORED event for a
deleted watched file if the watch explicitly requested IN_DELETE_SELF.
This is not correct, IN_IGNORED should always be raised when the watched
subject is deleted.  Adjust the implementation of inotify_log_one()
accordingly.

This also fixes a problem where a deleted watched file's watch
would not be removed if IN_DELETE_SELF was not in the watch's event
mask, in which case the unlinked vnode would linger until the inotify
descriptor itself is closed.

Add a regression test.

Reported by:    jrtc27
Reviewed by:    jrtc27
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D58050
b70997c8c75adc3ab343c47d5ba7d01c9c774d9e Mark Johnston 2026-07-06 12:50:37

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


inotify: Ensure that "allocfail" is initialized in inotify_log_one()

Fixes:  https://cgit.freebsd.org/src/commit/?id=b70997c8c75a ("inotify: Unconditionally generate IN_IGNORED events for files/dirs")
f370bf9fafce82851bedb2b88bc21ec6ca0182df Mark Johnston 2026-07-08 19:28:43

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

jaildesc: Publish the new fd only after the jaildesc is initialized
jaildesc_alloc() finishes initializing the file structure only after it
is made visible from the file descriptor table via finit().  In that
window, other threads could try to perform operations on the descriptor
and thus access an incompletely initialized jaildesc.

Defer the finit() call until locks are initialized.  While here,
simplify the error path for falloc_caps().

Reported by:    Yuxiang Yang, Yizhou Zhao, Ao Wang, Xuewei Feng, Qi Li,
                and Ke Xu from Tsinghua University using GLM-5.2 from Z.ai
Reviewed by:    jamie
MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D58049
38dd686b9336e2de5deadc5f8cb5e46a845b0dd9 Mark Johnston 2026-07-06 12:51:11

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

Commit group #9: dtrace
dtrace: Improve DOF section size validation

The loop which validates each DOF section assumes that the section
header is present, so the section size must be at least as large as the
header, otherwise a small OOB access is possible.

Reviewed by:    christos
MFC after:      2 weeks
Sponsored by:   CHERI Research Centre
Differential Revision:  https://reviews.freebsd.org/D57975
c1b6ebc2b7584f93cea4d818468b2aee74475674 Mark Johnston 2026-07-06 13:20:33

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


dtrace: Fix DOF section bounds validation

We must ensure that each DOF section does not overlap with the DOF
header or section table.  Otherwise the relocations processed in the
second pass over sections can manipulate DOF metadata, leading to OOB
writes.

Reviewed by:    christos
MFC after:      2 weeks
Sponsored by:   CHERI Research Centre
Differential Revision:  https://reviews.freebsd.org/D57976
8dc98f4d25a31a8dfddbcc18eb0ee2e0f005ec15 Mark Johnston 2026-07-06 13:21:08

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


dtrace: Improve DOF string table validation

The check for a nul terminator implicitly assumes that the section size
is positive.  Make the assumption explicit.

Reviewed by:    christos
MFC after:      2 weeks
Sponsored by:   CHERI Research Centre
Differential Revision:  https://reviews.freebsd.org/D57977
b56b601c5ba603031312b9bc7ae895ecb0dcdaec Mark Johnston 2026-07-06 13:21:24

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


dtrace: Fix DOF section-specific validation

The entry size of the probe section is assumed to be at least
sizeof(dof_probe_t) by the loop further below.

enoff_sec->dofs_entsize was not being validated at all.

When multiplying an index by a table entry size, make sure the
multiplication can't overflow.

Fix an off-by-one when validating the translated probe argument array.

Make sure that the probe argument argvs are valid string offsets
even if the argument count is zero.

Reviewed by:    christos
MFC after:      2 weeks
Sponsored by:   CHERI Research Centre
Differential Revision:  https://reviews.freebsd.org/D57979
7f5fa76367d78e47d483fdf2cc72e5823d0f7807 Mark Johnston 2026-07-06 13:21:43

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

vfs: Fix resource leaks in kern_symlinkat()
Fixes:                https://cgit.freebsd.org/src/commit/?id=2ec2ba7e232d ("vfs: Add VFS/syscall support for Solaris style extended attributes")
Reported by:    Yuxiang Yang, Yizhou Zhao, Ao Wang, Xuewei Feng, Qi Li,
                and Ke Xu from Tsinghua University using GLM-5.2 from Z.ai
Reviewed by:    rmacklem, kib
MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D58053
58c73727d6e49de1fc4f4bc90621146cae8db2bc Mark Johnston 2026-07-06 15:42:52

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

nfsd: Optionally enable use of M_EXTPG mbufs for read replies
A test site determined that, for a Mellanox NIC which can handle
M_EXTPG mbufs, an improvement of 5-15% for read rate could be
achieved if the read reply was in M_EXTPG mbufs.

A patch that tried to determine if the outbound NIC supported
M_EXTPG mbufs (IFCAP_MEXTPG) did not pass review.
However, it does appear that this can be useful for NFS-over-RDMA.
(Which just happen to use NICs that do support M_EXTPG mbufs.)

As such, this patch enables them is xp_extpg is set to true,
which is never for now, but might be set true for RDMA or
when vfs.nfsd.enable_mextpg is set non-zero. (It is 0 by
default, so this is never enabled by default at this time.)

Tested by:      Greg Becker <becker.greg@att.net>
MFC after:      2 weeks
d516e52373e1768ea84bf1ca220671a44f413abe Rick Macklem 2026-07-07 00:10:11

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

procdesc_exit(): assert that _exit() was called
Check that the P_WEXIT flag is set.

Requested by:   markj
Reviewed by:    markj
Tested by:      pho
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D57124
aa1694e23401762c661da11bbf9016a368d37fbe Konstantin Belousov 2026-05-21 17:37:47

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

Commit group #10: sys_procdesc
sys_procdesc: extract procdesc_alloc()

Reviewed by:    markj
Tested by:      pho
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D57124
599d021224f2af3fc0befdbd6b804a328dd556f9 Konstantin Belousov 2026-05-20 02:02:54

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


sys_procdesc: extract pdtofdflags()

Reviewed by:    markj
Tested by:      pho
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D57124
974770199877ae7aa912b6dced909429c52dea93 Konstantin Belousov 2026-05-20 02:03:32

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


sys_procdesc: extract procdesc_destroy()

Reviewed byL    markj
Tested by:      pho
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D57124
90b560f7bae649f9770e787d9e268401a1319493 Konstantin Belousov 2026-06-05 01:42:44

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

procdesc: track count of open files
Introduce pd_fpcount that counts the number of file references to the
procdesc.  Remove the PDF_CLOSED flag, now it is expressed as
pd_fpcount == 0.

Only send SIGKILL and clear pointers when we are closing the last file
referencing procdesc.

This should be nop until the next commit.

Reviewed by:    markj
Tested by:      pho
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D57124
18b6bb5231bf1c927a6f8de24e466764fe1f7470 Konstantin Belousov 2026-05-21 00:47:20

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

procdesc: make PD_DAEMON per-file
Reviewed by:  markj
Tested by:      pho
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D57124
c0e1201aaba8860bdcfd754e35024a85ceb1580a Konstantin Belousov 2026-05-25 17:48:03

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

kern: add pdopenpid(2)
Reviewed by:  markj
Tested by:      pho
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D57124
5c32aa785184bb1e646b0b4c73d3c5fd9a6b8951 Konstantin Belousov 2026-05-20 02:04:02

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

sys: add AUE_PDOPENPID
Reviewed by:  markj
Tested by:      pho
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D57124
606061ea463dd1d7c3664b296e569b4b25d0f275 Konstantin Belousov 2026-05-20 02:14:24

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

mlx5: extend mlx5_ib_create_cq struct with fields from the current Linux ABI
This is backward ABI-compatible, because the only place in kernel that
uses the structure, namely the mlx5_ib_cq.c:mlx5_ib_create_cq()
function, copies in as much structure members as provided by userspace.

Tested by:      Wafa Hamzah <wafah@nvidia.com>
Sponsored by:   Nvidia networking
MFC after:      1 month
716bb8d3d40250b0b2b40480dc062abfab5665ed Konstantin Belousov 2026-06-02 21:59:16

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

ofed/ib_uverbs: release rdma_user_mmap entry ref in rdma_umap_close()
Import Linux upstream commit 3411f9f01b76bd88aa6e0e013847ab6479cb4f24.

rdma_umap_priv_init() takes a reference on the rdma_user_mmap entry for
every VMA it maps, but rdma_umap_close() never dropped it.  The entry
was therefore never freed and lingered in ucontext->mmap_xa, tripping
WARN_ON(!xa_empty(&ucontext->mmap_xa)) at context teardown and leaking
the firmware UAR on every context close.

Reviewed by:    kib
Tested by:      Wafa Hamzah <wafah@nvidia.com>
Sponsored by:   Nvidia networking
MFC after:      1 month
a7298669cd53a9fc8446c53db6872bc2f64c508d Ariel Ehrenberg 2026-06-08 10:56:16

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

linux: switch off interface name translation and schedule its removal
Modern Linuxes don't use ethX for almost 15 years already, see [1] and
[2].  The translation logic has always been a source of bugs and PITA.
Switch default to not translate (long due!) and schedule removal of the
code for FreeBSD 17.

[1] https://systemd.io/PREDICTABLE_INTERFACE_NAMES/
[2] https://www.freedesktop.org/software/systemd/man/latest/systemd.net-naming-scheme.html

Reviewed by:            iwtcex_gmail.com, vvd, melifaro, dchagin
Differential Revision:  https://reviews.freebsd.org/D57852
11bd6ade5dfdfb5160dd001542c4cfd44aed98bc Gleb Smirnoff 2026-07-07 21:19:17

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

Commit group #11: sendfile: stop abusing kern_writev()
sendfile: stop abusing kern_writev()

Provide convenient wrapper kern_filewrite() around fo_write().
Switch to use it in vn_sendfile().  This allows to avoid duplicate
fget() when we already have the reference to the file, which creates a
correctness race with the userspace.  Also td_retval[0] clearing hack
can be removed.

Reviewed by:    glebius, markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D58035
dfad790c8ccad05ff603ceaa5b2efe4205b38e1c Konstantin Belousov 2026-07-04 02:29:56

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


kern_filewrite(): unconditionally calculate cnt, it is used by callers

Reported by:    dhw, madpilot
Tested by:      dhw
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Fixes:  https://cgit.freebsd.org/src/commit/?id=dfad790c8cca ("sendfile: stop abusing kern_writev()")
b72397da275b098365532133688d555b842bad4f Konstantin Belousov 2026-07-08 14:54:25

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


kern_writefile(): fix several regressions

sendfile(): for trailers uio, set uio_rw to UIO_WRITE instead of checking it
kern_filewrite(): remove unused argument offset
kern_writev(): the check should compare cnt against zero, not uio_resid

Reported by:    markj
Fixes:  https://cgit.freebsd.org/src/commit/?id=dfad790c8cca ("sendfile: stop abusing kern_writev()")
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
1364d8fd9b25d6d3e9618e7be073a1a1b41aa19c Konstantin Belousov 2026-07-08 19:21:00

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

fget_remote(): return fcaps and fde_flags if requested
Reviewed by:  markj
Tested by:      pho
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D57163
77b6adbe5e351d1907e14d21c49291ff40ba879a Konstantin Belousov 2026-05-23 07:03:17

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

sys/capsicum.h: fix comment for CAP_PDWAIT
Reviewed by:  markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D57163
193fd496995d7d22d65c424716e8308fa769aa0a Konstantin Belousov 2026-05-21 19:11:02

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

Add CAP_PDDUPFD capability
Reviewed by:  markj
Tested by:      pho
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D57163
046a4efe78addafcd4810974d6c71c1cdd591b6b Konstantin Belousov 2026-05-21 19:12:22

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

kern: add pddupfd(2)
Reviewed by:  markj
Tested by:      pho
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D57163
1ad21a6521827473dc6692646e9c760a5b0521cd Konstantin Belousov 2026-05-21 19:12:45

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

kern/sys_process.c: clean up includes
Order them alphabetically.
Remove redundand sys/param.h.

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
f87f97d4c9b30dde1cdb3d72dfd699aed9c307e1 Konstantin Belousov 2026-05-26 01:24:54

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

linux/futex: Don't load a timeout when try-locking a mutex
linux_sys_futex() does not copyin a timespec for the timeout if the
operation is LINUX_FUTEX_TRYLOCK_PI, presumably because it doesn't make
sense to specify a timeout for a try-lock operation.  However, this
means that we pass a userspace timespec pointer to
linux_umtx_abs_timeout_init().

Modify linux_futex_lock_pi() to not initialize the timeout if we're
try-locking.

Reviewed by:    kib, dchagin
Reported by:    Yuxiang Yang, Yizhou Zhao, Ao Wang, Xuewei Feng, Qi Li,
                and Ke Xu from Tsinghua University using GLM-5.2 from Z.ai
MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D58061
407c7c339adb429efcb6658accd16399031c34ca Mark Johnston 2026-07-07 22:52:56

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

kern: imgact: fix imgp->interpreted
This is a mask, so the new value should have taken the next bit to avoid
breaking a shell script that's interpreted by a binmisc-activated
interpreter.

Add a brief note that the new value is only used within the ELF
activator.

Fixes:  https://cgit.freebsd.org/src/commit/?id=389c124fecb0 ("imgact_elf.c indicate that interpreter [...]")
Reported by:    "polyduekes" on discord, madpilot
Reviewed by:    kib, sjg (both previous version)
Differential Revision:  https://reviews.freebsd.org/D58063
f5329a0d14712ae990f650286a6d5a04617c7cb3 Kyle Evans 2026-07-08 02:56:38

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

linuxkpi: Add pm_runtime_resume_and_get
pm_runtime_resume_and_get is used by new versions of amdgpu, and began
use between Linux kernel version 6.12, and 6.14.

Reviewed by:    dumbbell
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57463
7e1245aafeece1a56af292c2652c6b835ccb6f10 Sourojeet A 2026-07-08 12:57:34

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

Regen syscalls tables.
This catches up with 692b0ef1506ba which added CAPENABLED to
clock_nanosleep(). Curiously recent additions of the pdopenpid(2) and
pddupfd(2) were done before the cited commit, and that regen did not
included the change.

Sponsored by:   The FreeBSD Foundation
e75fa2a613fc522be8ec501480902eabecf887e6 Konstantin Belousov 2026-07-08 15:22:59

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

vfs cache: further massage some commentary
750d429a228fb102d6e5d45bdc116489acbfff00 Mateusz Guzik 2026-07-08 21:13:34

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

timefd: Correct the required rights for timerfd_gettime()
Reviewed by:  jfree
MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D58084
de6193cf7d2c0c31e5ccafd098275a629a5ea49e Mark Johnston 2026-07-08 17:12:21

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

taskqueue: Avoid unbounded epoch read sections
The taskqueue thread loop tries to avoid entering and exiting net epoch
read sections for every task.  This reduces the overhead of net epoch
integration, but the implementation wasn't bounding the length of the
read section, so a busy taskqueue thread could hold an epoch open for an
unbounded period.  This is easy to achieve with the epair task, for
instance.

Bound the number of tasks that we'll execute without observing the
global epoch, and provide a sysctl to control it.  Let the default bound
be eight.

Reviewed by:    glebius
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D58031
a58590631ccc0fa5bdbbdf88021c6878d644d128 Mark Johnston 2026-07-08 17:12:54

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

epoch: Fix epoch_drain_callbacks()
This function is supposed to wait until all pending callbacks have been
executed.  This is useful in some contexts where we tear down some
context (like a VNET jail and its associated UMA zones) synchronously,
and we want to make sure that all pending asynchronous callbacks (which
may free objects to said UMA zones) have run first.

The implementation schedules a callback on each CPU and waits for them
all to run.  This assumes that, on a given CPU, callbacks are executed
in the order that they are pushed.  This assumption depends on the
implementation of epoch_call_task() and ck_epoch_poll_deferred(), and it
is not true in general.

Callbacks are pushed onto a per-CPU stack in LIFO order.
ck_epoch_poll_deferred() first pulls out the callbacks from epoch - 2,
which are always safe to execute, and in so doing reorders them such
that the oldest callback as at the top of the stack, so in this case,
epoch_call_task() will execute them in order.  However,
ck_epoch_poll_deferred() may determine that it is safe to execute
callbacks from epoch - 1 (or even from the current epoch if there are
no active readers), and in this case it will push those callbacks onto
the returned stack.  This means that epoch_call_task() will invoke those
newer destructors before the older ones, which means that
epoch_drain_callbacks() may return early.

Fix the correctness problem by simply doing all of this twice: once the
first callback is invoked, we know that all of the callbacks that were
pending at the time that epoch_drain_callbacks() was called are
scheduled to be executed, so when the second callback is executed we
know that they must be finished.  This is slow, but it is already slow,
and the slowness is less noticeable after commit dce56594991.

I note that in an ideal world, this function would not exist, and all of
the teardown would happen asynchronously, rather than the current
mismash of synchronous and asynchronous cleanup.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=290201
Reviewed by:    glebius
MFC after:      1 month
Differential Revision:  https://reviews.freebsd.org/D58030
7bf11a2f0c9ad7af00996105fd34e61f1040402b Mark Johnston 2026-07-08 17:13:01

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

linuxkpi: Add `to_acpi_device_node()` and `ACPI_COMPANION()`
The former is called by the latter. We return NULL because linuxkpi does
not implement ACPI (pseudo?) devices associated to regular devices.

The amdgpu DRM driver started to use `ACPI_COMPANION()` in Linux 6.13.

Reviewed by:    emaste
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57577
6d5f5f730a42eb49240bf1a21a65f4c5f7fd2843 Jean-Sébastien Pédron 2026-06-12 14:02:54

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

linuxkpi: Add `usleep_range_state()`
It takes a task state as its last argument. We enforce that this state
is `TASK_UNINTERRUPTIBLE` for the time being because other states are
not interpreted.

Change `usleep_range()` to call `usleep_range_state()` with the state
set to `TASK_UNINTERRUPTIBLE`, which is what Linux does too.

The amdgpu DRM driver starte to use `usleep_range_state()` in Linux
6.13.

Reviewed by:    emaste
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57579
e9f21e4f28ce8cf8ca890b86f8c791473976396f Jean-Sébastien Pédron 2026-06-12 16:00:56

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

kern_execve.c: simplify execve_block_wait()
Reviewed by:  markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D58147
8a365723923e4eadad962d9c7e8162dfbfe3e78c Konstantin Belousov 2026-07-10 10:05:13

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

renameat(2): add AT_RENAME_EXCHANGE flag
Currently no filesystems support it.

Reviewed by:    mckusick
Discussed with: markj
Tested by:      pho
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D57658
8e6e77ec25bc5809500d29bf318a843b40205657 Konstantin Belousov 2026-06-18 18:12:01

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

Build system

libllvmminimal: Fix building with LLVM < 21 on riscv64
On most architectures we end up not needing ABIBreak.cpp as, although
some of the sources here do reference EnableABIBreakingChecks (or, if
assertions are disabled, DisableABIBreakingChecks) at a source level, we
compile with -ffunction-sections and -fdata-sections, and link with
--gc-sections, and it happens to be the case that all references can be
GC'ed. However, prior to LLVM 21, the RISC-V backend did not apply
-fdata-sections to .sdata, where references to these symbols end up, and
for some files we're building with such references we end up not being
able to GC .sdata due to the other unrelated data in it, meaning that we
do in fact need to build ABIBreak.cpp.

Whilst we could make this conditional on the architecture, it's a tiny
file, and it's a bit fragile to rely on GC behaviour, so just include it
unconditionally.

Reviewed by:    dim, emaste
Fixes:          https://cgit.freebsd.org/src/commit/?id=770cf0a5f02d ("Fixups after llvm-project main llvmorg-21-init-19288-gface93e724f4 merge")
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D58044
7a0b9e30a5ba07066caffba51fa82ca3782a5da1 Jessica Clarke 2026-07-06 16:25:48

debug: classified in 02-filenames_wildcards by '.*Makefile'

pdfork.2: document pdopenpid(2)
Reviewed by:  markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D57124
3e8b68c26e2b108dac96517ef8fd26fe7dce5bcd Konstantin Belousov 2026-05-21 17:33:43

debug: classified in 02-filenames_wildcards by '.*Makefile'

Commit group #12: Retire the GNU subtree
Retire the GNU subtree

With GNU diff and cdialog gone, this is now an empty shell.

Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D55425
134a4c78d070f8c4ea43a060a7ae28d22ac39558 Dag-Erling Smørgrav 2026-07-07 06:47:40

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


Add a few missed files to ObsoleteFiles.inc

There were still some left-over files under usr/tests/gnu/usr.bin/diff,
causing the directory to not be fully removed. Add these to OLD_FILES.

Fixes:          https://cgit.freebsd.org/src/commit/?id=134a4c78d070
f72cfefae99befe47fefc4683cd6957edaaf0e86 Dimitry Andric 2026-07-12 14:15:29

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

debug: moved to build because 'Need to be grouped with 134a4c78d070f8c4ea43a060a7ae28d22ac39558'

pdfork.2: document pddupfd()
Reviewed by:  markj
Tested by:      pho
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D57163
c20558e5c9dadfdddc879ee50a65d14beb4992b9 Konstantin Belousov 2026-05-22 10:09:01

debug: classified in 02-filenames_wildcards by '.*Makefile'

XZ kernel build cleanup
-I${SRCTOP}/sys/contrib/xz-embedded/linux/lib/xz isn't used, and
.PATH: ${SRCTOP}/sys/contrib/xz-embedded/freebsd isn't used either.
Remove them both to simplify things a little.

Sponsored by:           Netflix
584ecfeb9cde1e4cf0ed27c4f822b316b67d320e Warner Losh 2026-07-10 04:05:54

debug: classified in 02-filenames_wildcards by '.*Makefile'

beinstall: Avoid chrooting into new world
The new world may use system calls that are not in the currently-running
kernel, so we cannot chroot into the new environment to run `make
installworld`, `etcupdate`, etc.  Partially revert commit 16702050ac95
("beinstall: perform pre-installworld steps") and switch back to using
DESTDIR for installworld and so on.

Reported by:    olivier
Reviewed by:    olivier
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D50682
7fde3e62231ac397a779e4fef729908c5ef6f53a Ed Maste 2025-06-04 13:33:30

debug: classified in 03-filenames_plain1 by 'tools/build/'

build: Retire LLVM_COV src.conf knob
I introduced it in commit 1b49115a40ad ("Promote llvm-cov to a
standalone option").  llvm-cov was previously enabled as part of the
CLANG_EXTRAS option.  I made it a standalone, default-enabled option for
parity with the tools provided by the GCC-based toolchain.

We no longer provide an in-tree GCC toolchain.  Now, just build llvm-cov
along with Clang to simplify build infrastructure.

Reviewed by:    dim
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D58155
ae0a3632b5080b953e138b69d2b96de54d9be8a3 Ed Maste 2026-05-04 14:34:07

debug: classified in 05-summary-prefix by 'build:'

tools/build: Don't set RANLIB for non-FreeBSD builds
RANLIB is not used by our build, so there is no need to set it.

Reviewed by:    imp
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D58156
513d3fde7c4665c1c83ad227ac4ec95c89b84add Ed Maste 2026-03-23 18:50:41

debug: classified in 02-filenames_wildcards by '.*Makefile'

loader: Add xzfs support by defualt to BIOS and EFI loaders
For the BIOS, add xzfs support. This is a tiny increase in the loader
size, but allows us to fetch compressed files from any of the
filesystems we support, including over the network.

For EFI, also add gzipfs and bzip2fs support we well. The increment for
these files is tiny.

Sponsored by:           Netflix
7db502d50c1e492f626fefc7d3925b85e05ae743 Warner Losh 2026-07-11 14:46:24

debug: classified in 02-filenames_wildcards by '.*Makefile'

bsd.dirs.mk: Fix MK_INSTALL_AS_USER for directories
Sponsored by:         Netflix
541e6e2d516b6c9d3681b24464e9ef53c1f2579a Warner Losh 2026-07-11 19:44:49

debug: classified in 03-filenames_plain1 by 'share/mk/'

tcp_bblog.4: Add a manual page for TCP Blackbox Logging
The tcp_bblog facility provides structured logging of TCP stack activity
for debugging and performance analysis. It is implemented in the kernel
and allows per-connection tracing of TCP events with low overhead.

Reviewed by:    tuexen, ziaee
MFC after:      1 week
Relnotes:       yes
Differential Revision:  https://reviews.freebsd.org/D56252
62e22d7cfc1ca1c25bede6aaeca370c163a9a1ef Gordon Bergling 2026-07-12 10:25:01

debug: classified in 02-filenames_wildcards by '.*Makefile'

Internal organizational stuff

git-mfc: Allow merging merge commits
In order to merge merge commits (such as vendor imports), we need to
tell git cherry-pick which of the two branches referenced in the commit
is the mainline.  In our case, it is always the first.

Approved by:    markj
5f4c87e6503cd0e1644b86201eafdb11e7e53b90 Dag-Erling Smørgrav 2026-07-06 19:58:47

debug: classified in 03-filenames_plain1 by 'tools/tools/git/'

git-mfc: Filter pending and dangling commits by committer
Previously we searched commits based on the author email address, but
this isn't really right: if I commit something from a contributor, I'm
still responsible for MFCing it, so really we should be filtering on the
committer.

Add a new --committer option to filter results by committer email
address, defaulting to the user.email value in the git config.

Keep the --author option, but don't filter by author unless the option
is explicitly specified.

Reported by:    des
Reviewed by:    des
Differential Revision:  https://reviews.freebsd.org/D58126
1f091ad283e9e9815f568d6fdf2b58d1e75f02b3 Mark Johnston 2026-07-10 14:44:09

debug: classified in 03-filenames_plain1 by 'tools/tools/git/'

git-mfc: Cherry-pick all commits in one git command
This allows one to resume from a conflict with a plain
`git cherry-pick --continue`, whereas before one would have to re-run
the original git-mfc command after resolving the conflict and running
`git cherry-pick --continue`.

Suggested by:   des
Reviewed by:    des
Differential Revision:  https://reviews.freebsd.org/D58129
59a4b6c2a06512bc7b62fdfe16df4afed355d2e5 Mark Johnston 2026-07-10 14:44:33

debug: classified in 03-filenames_plain1 by 'tools/tools/git/'

git-mfc: Add an ignore-list feature
Commit hashes listed in ~/.git-mfc-ignore are not listed in output of
git-mfc --dangling or --pending.  This is handy for silencing output
about commits that are tagged for MFC or as fixing another commit, but
which were not MFCed for some reason or other.

Requested by:   des
Reviewed by:    des
Differential Revision:  https://reviews.freebsd.org/D58161
8ae306a1c8eb919ca087cd20dc03e1d5a083abd6 Mark Johnston 2026-07-10 20:26:14

debug: classified in 03-filenames_plain1 by 'tools/tools/git/'

git-mfc: Update exception lists
This silences warnings when running git-mfc --pending against stable/13,
14 and 15.

Reviewed by:    des
Differential Revision:  https://reviews.freebsd.org/D58162
9bb576da3f6089ccb423966d65918e1fce346a32 Mark Johnston 2026-07-10 20:26:17

debug: classified in 03-filenames_plain1 by 'tools/tools/git/'

Testing

tests/procdesc: Add some test cases for pdopenpid()
Reviewed by:  kib
MFC with:       5c32aa785184 ("kern: add pdopenpid(2)")
Differential Revision:  https://reviews.freebsd.org/D58023
0083a4d6224f1290af31528b55ba27c51e27ba46 Mark Johnston 2026-07-07 14:14:39

debug: classified in 02b-filenames_wildcards2 by 'tests\/.*'

pddupfd(2): add basic test
Reviewed by:  markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D57163
23e94b040b9b99f097c113fc8576576ffec0486f Konstantin Belousov 2026-07-07 05:49:54

debug: classified in 02b-filenames_wildcards2 by 'tests\/.*'

tests/sendfile: move the helper program to common
In order to reuse the sendfile_helper program in pf tests, move it
to tests/sys/common directory, indicatint that it is also used from
another places than sys/kern.
Also make the readlen variable static.

Reviewed by:    gelbius, kp
Differential Revision:  https://reviews.freebsd.org/D58040
6a5ba658dd480206187776e3c25d9f710fac90fd KUROSAWA Takahiro 2026-07-07 19:09:06

debug: classified in 02b-filenames_wildcards2 by 'tests\/.*'

tests/sendfile_helper: support remote connection
In order to use the sendfile_helper program in a pf test script that
requires non-loopback interfaces, add functionality to sendfile with a
TCP socket that is connected to a remote host.
The behavior for unix sockets and TCP loopback sockets is unchanged.

Reviewed by:    glebius
Differential Revision:  https://reviews.freebsd.org/D58041
2039fe8ea421a93c466657485ba83b4b055f81dd KUROSAWA Takahiro 2026-07-07 19:11:19

debug: classified in 02b-filenames_wildcards2 by 'tests\/.*'

tests/inotify: Make an error message more useful
MFC after:    3 days
836a76ad95be2fcf2cd116d754c5888a731d57aa Mark Johnston 2026-07-08 17:09:42

debug: classified in 02b-filenames_wildcards2 by 'tests\/.*'

fusefs: fix gcc build error with shadowed variable in tests
Reported by:  gcc -Werror=shadow
Reviewed by:    asomers, markj
Fixes:  https://cgit.freebsd.org/src/commit/?id=ee1c3d38a26a ("fusefs: fix vnode locking violations during execve")
Differential Revision:  https://reviews.freebsd.org/D58130
c503d23a6ccb8090edabc1c90981f9b8f202e093 Ryan Libby 2026-07-10 17:51:03

debug: classified in 02b-filenames_wildcards2 by 'tests\/.*'

routing: Add test for nexthop subscription
Make sure we have reachability when one of our nexthops
gets down without deleting the route.

Differential Revision: https://reviews.freebsd.org/D57552
4d37c2ea3c863e802a0d58a70331f4da9e41486c Pouria Mousavizadeh Tehrani 2026-06-12 20:22:47

debug: classified in 02b-filenames_wildcards2 by 'tests\/.*'

boot-test.sh: Test many boot loader combinations.
This is a script that eventually will test boot with qemu all the
supproted combinations for the boot loader. There's several things that
could be done with gptboot or boot0sio (or not) that aren't tested. We
don't test the 10-odd hardware root devices we support, nor do we test
complex scenarios like RELAXED vs STRICT zfs efi booting.

However, the scenarios we do support are included here. We test aarch64,
amd64, armv7, powerpc64, powerpc64le, and riscv64 for BIOS, UEFI, and
Prep and OpenFirmware (as appropriate) crossed with CDROM, MBR and GPT
(and some hybrid) crossed with lua, 4th and simple loaders. Plus some
linuxboot and memdisk scenarios, including the recently added
compression for ram disk scenarios:

=== Results: 67 passed, 3 failed, 9 timed out (of 79) ===

The timeouts are well understood, usually failure to find the root
disk. The failures are bad console assumptions. netboot-bios fails
because TFTP with a single packet buffer in qemu gives horrible
throughput, so the test takes 18-20 minutes. Now that I have a
dashboard, I can fix the rest one by one.

There's also a powerpc architecture that you can request specifically,
but it's just for convenience and tests with the non-functional mac99
qemu machine. I will eventually eliminate this architecture. I added it
to make sure the FreeBSD version wasn't too hard coded since this
framework pulls from CD images to get the binaries for the minimal root
used in testing and there's no 15.x 32-bit powerpc images.

We need to add http and nfs root booting tests, but that's for the
future. Plus there's some other functional tests that we should also add
for different types of root (usb, sata, sas, nvme, ufs, emmc, sd, etc)
that would be useful to test, especailly the non-sata/non-nvme ones.
How we do that is still TBD.

I leaned on claude to iterate over the recipes that I've developed over
the years, collected off the internet or got on IRC recently to produce
this framework. Most of this code is fairly good, while a few parts,
especailly some of the comments, are detectable as AI produced. My plans
are to iteratively improve those.  Since this is just a test, and since
I've broken many scenarios w/o realizing, it's a good tradeoff. I've not
made it an ATF test since we test all the architectures, but I'm open to
feedback in this area.

Total time to test all the architectures is about 10 minutes. It assumes
you've built GENERIC* and the boot loader for all the architectures too.
In the future, I plan on moving to MINIMAL for all the boot testing, but
likely only after PCI devmatch is integrated into it. That would be
incrementally faster test times.

The man page is decent, but was also generated by Claude with only
trivial edits by me to date.... But at least there's a man page for it,
though neither it nor the script is installed onto the system.

Sponsored by: Netflix
Assisted-by: Claude Code (Opus 4.6, Opus 4.8(1M) and Sonet 5.0)
Differential Revision:  https://reviews.freebsd.org/D58008
a7ebe2d436e5d2fabf223796f992683c17acf50f Warner Losh 2026-07-11 19:36:51

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

Style, typos, and comments

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

libc/resolv: Dead code and style cleanup
Reviewed by:  markj
Differential Revision:  https://reviews.freebsd.org/D57928
4805b88edb009e53c4fee159138d2cbe0c848da7 Dag-Erling Smørgrav 2026-07-06 12:23:55

debug: classified in 01-style by '[sS]tyle'

cpu: cpu_get_pcpuid(): Fix typo in herald comment
Fixes:          https://cgit.freebsd.org/src/commit/?id=c3c8f4d9e662 ("cpu: New cpu_get_pcpuid(), retrieves internal CPU ID")
Sponsored by:   The FreeBSD Foundation
302d3a21ad9aae26a55aa8d8396c69f8ca8ac33e Olivier Certner 2026-07-06 14:49:58

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

x86/local_apic.c: Thermal interrupt support: Additional style fixes
Rename handler function type 'lapic_thermal_handle_function' to the
shorter 'lapic_thermal_handler_t'.  Move it closer to the function
declaration block where it is used.  Make it a true function type (no
pointer) and add explicit pointer marks on usage.

Rename 'lapic_thermal_function_value' to the more immediately clear
'lapic_thermal_function_arg'.  In lapic_thermal_enable(), use 'func_arg'
as the argument name for the handler argument, which at least refers to
function 'func', rather than the generic 'value'.

Finally, rename the global handler variable from
'lapic_thermal_function_ptr' to the shorter 'lapic_thermal_function'
(dynamic functions can be referenced only through a pointer).

MFC with:       87ba088fa310 ("x86/local_apic.c: Add support for installing a thermal interrupt handler")
Sponsored by:   The FreeBSD Foundation
e1f4a8cb8656e64a1fe2b1ab519821b14c4985a0 Olivier Certner 2026-07-02 13:05:09

debug: classified in 01-style by '[sS]tyle'

inotify: Fix comment typos
MFC after:    1 week
3e123be2305a30369f63bcee22ca5e0db527f320 Mark Johnston 2026-07-08 18:06:00

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

infiniband/core/ib_addr.c: fix typo
We should exit the net epoch instead of acquiring one more entry.

Reported by:    Wafa Hamzah <wafah@nvidia.com>
Reviewed by:    jhb
Sponsored by:   Nvidia networking
Fixes:  https://cgit.freebsd.org/src/commit/?id=4726b80d9379 ("OFED: Various changes from Linux 4.20")
Differential revision:  https://reviews.freebsd.org/D58127
3defe8195684c3ee4cf5295a58967e3face8dce1 Konstantin Belousov 2026-07-09 15:09:27

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

tmpfs_rename(): style
Reviewed by:  mckusick
Discussed with: markj
Tested by:      pho
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D57658
631b8ff9318a83b985d3a8a790dd0fc1bab9d5cd Konstantin Belousov 2026-06-19 08:11:18

debug: classified in 01-style by '[sS]tyle'

Contrib code

ee: Improve handling of malformed UTF-8 characters
In delete(), when copying the deleted character to the d_char buffer,
don't assume that it fits.  utf8_prev() may return a sequence of more
than 5 bytes.

In insert_utf8(), fix the copy-up of the line.  We extended the line by
"len" bytes, so "temp" has to be repositioned accordingly.  Compare with
plain insert().

Use sizeof when copying to buffers instead of hard-coding buffer sizes.

Don't dynamically allocate d_char, there is no need.

Fixes:          https://cgit.freebsd.org/src/commit/?id=62fba0054d9e ("ee: add unicode support")
Reported by:    Sayono Hiragi (overflow in delete())
Reviewed by:    bapt
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D57996
705a88a717272c52c897c3d28dc2997980ee67f4 Mark Johnston 2026-07-06 13:16:32

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

ee: Handle EINTR when waiting for a character
Otherwise one can't easily attach gdb to ee.

Reviewed by:    bapt
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D57997
a8f5e24070a2fffc752ac7855bfb49049dcbb41e Mark Johnston 2026-07-06 13:16:45

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

dtrace tests: Fix finding multiple process results
When looking up self process we can use `ps -p $$` directly rather
than grep which may find other processes ending in the expected PID.

Sponsored by:   Dell Inc.
Reviewed by:    markj, vangyzen
Differential Revision: https://reviews.freebsd.org/D58019
6a6d6d7d9c294efb8b4025d80e938f2c16c3aa5f Bryan Drewery 2026-07-03 00:37:02

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

Retire dialog
This is the last remaining piece of GPL software in the base system.
The installer transitioned to bsddialog four years ago, and the last
remaining dialog consumer, dpv, was turned off more than two years ago.
Retire dpv, libdpv, libfigpar (used only by dpv), and dialog itself.

Reviewed by:    dteske
Differential Revision:  https://reviews.freebsd.org/D55424
af202a5052b6e9a1885d06941ffbba7630acb7df Dag-Erling Smørgrav 2026-07-07 06:47:36

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

contrib/tzdata: import tzdata 2026c
665bb2d9a440d33e2ec2f9151e45b8cda93433ae Philip Paeps 2026-07-08 20:46:28

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

tzcode: Update to 2026c
MFC after:    1 week
28f617de7d9b9c708eacb3c2c13e5287e1b7354d Dag-Erling Smørgrav 2026-07-09 08:22:09

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

OpenSSH: Update to 10.4p1
Full release notes are available at
https://www.openssh.com/txt/release-10.4

Selected highlights from the release notes:

Potentially-incompatible changes
--------------------------------

 * sshd(8): configuration dump mode ("sshd -G") now writes directives
   in mixed case (e.g. "PubkeyAuthentication") whereas previously it
   emitted only lower-case names.

 * ssh(1), sshd(8): make the transport protocol stricter by
   disconnecting if the peer sends non-KEX messages during a post-
   authentication key re-exchange. Previously a malicious peer could
   continue sending non-key exchange messages without penalty. These
   would be buffered, causing memory to be wasted up until the
   connection terminated or the server/client hit a memory limit.
   Implementations that do not restrict messages sent during key
   exchange as per RFC4253 section 7.1 may be disconnected.
   Reported by Marko Jevtic.

Changes since OpenSSH 10.3
==========================

This release contains a number of security fixes as well as general
bugfixes and a couple of new features.

Security
========

 * sftp(1): when downloading files on the command-line using
   "sftp host:/path .", a malicious server could cause the file to
   be downloaded to an unexpected location. This issue was identified
   by the Swival Security Scanner.

 * scp(1): when copying files between two remote destinations, do
   not allow a malicious server to write files to the parent
   directory of the intended target directory.  This issue was
   identified by the Swival Security Scanner.

 * sshd(8): DisableForwarding=yes didn't override PermitTunnel=yes
   as it was documented to do. Note that PermitTunnel is not enabled
   by default. Reported independently by Huzaifa Sidhpurwala of
   Redhat and Marko Jevtic.

 * sshd(8): avoid a potential pre-authentication denial of service
   when GSSAPIAuthentication was enabled (this feature is off by
   default). This was not mitigated by MaxAuthTries, but would be
   penalised by PerSourcePenalties. This was reported by Manfred
   Kaiser of the milCERT AT (Austrian Ministry of Defence).

 * sshd(8): fix a number of cases where the minimum authentication
   delay was not being enforced. Reported by the Orange Cyberdefense
   Vulnerability Team.

 * ssh(1): fix a possible client-side use-after-free if the server
   changes its host key during a key reexchange. This was reported by
   Zhenpeng (Leo) Lin of Depthfirst.

New features
------------

 * All: add experimental support for a composite post-quantum
   signature scheme that combines ML-DSA 44 and Ed25519 as specified
   in draft-miller-sshm-mldsa44-ed25519-composite-sigs.

   This scheme is not enabled by default. To use it, you'll need
   to add it to HostKeyAlgorithms, PubkeyAcceptedAlgorithms, etc.
   Keys may be generated using "ssh-keygen -t mldsa44-ed25519".

Bugfixes
--------

 * sshd(8): avoid sending observably different messages for valid vs
   invalid users in GSSAPIAuthentication (disabled by default).

 * ssh(1), sshd(8): fix several bugs that incorrectly
   classified bulk traffic as interactive. bz3972, bz3958

 * ssh-keygen(1), ssh-add(1): skip unsupported key types when
   downloading resident keys from a FIDO token. Previously, downloads
   would abort when one was encountered. GHPR657

Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D58083
bb5c77e9d281d6def6835d48249898764bc6a5fe Ed Maste 2026-07-09 17:17:11

debug: classified in 05-summary-prefix by 'OpenSSH:'

readelf: Add support for ELF package metadata note
We don't use this note type today, but as a general purpose ELF
diagnostic tool readelf(1) ought to decode it.

References:
https://fedoraproject.org/wiki/Changes/Package_information_on_ELF_objects
https://systemd.io/ELF_PACKAGE_METADATA/

Reviewed by:    fuz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D47524
c18512056301fa97dd31c4cc9a78e18f1aa8b2d5 Ed Maste 2022-04-20 14:12:06

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

Reverted commits

Revert "loader.efi: Trim ZFS searching for other booting options"
This reverts commit 3e3fd1fde8e168910edc538966111c0b5f03cd5f.

This appears to break chainbooting with boot1.efi and similar scenarios
with Root-on-ZFS scenarios. Revert until it's better understood.

PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=296309
Sponsored by: Netflix
Differential Revision:  https://reviews.freebsd.org/D58071
c8842f1d18ae136cf5e3144540f76c7ebe0cd28a Warner Losh 2026-07-10 04:04:52

debug: classified in 00-reverts by 'This reverts commit \b([0-9a-fA-F]{40})\b'

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-07-13 17:53:16+00:00.

This work is supported by Tarsnap Backup Inc.

Alternate version: 2026-07-06 (release)