FreeBSD git weekly: 2026-07-01 to 2026-09-3xi01

Introduction

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

This report is still in progress.

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

Table of contents and commits per category:

(6) Highlighted commits (these are copies, not in stats)
4 1.4% Userland programs
11 3.9% Documentation
71 25.3% Hardware support
20 7.1% Networking
16 5.7% System administration
25 8.9% Libraries
11 3.9% Filesystems
63 22.4% Kernel
17 6.0% Build system
6 2.1% Internal organizational stuff
15 5.3% Testing
7 2.5% Style, typos, and comments
11 3.9% Contrib code
4 1.4% Reverted commits
0 0.0% Unclassified commits
281 100% total
Technical notes about this page

debug: info about the automatic classification

num % num changed stage
4 1.4% 0 00-reverts
8 2.8% 0 01-style
21 7.5% 0 02-filenames_wildcards
14 5.0% 0 02b-filenames_wildcards2
117 41.6% 0 03-filenames_plain1
90 32.0% 0 04-filenames_plain2
9 3.2% 0 05-summary-prefix
18 6.4% 0 Manually-classified commits
0 0.0% 0 Unclassified commits

debug: more stats

num % stage
0 0.0% Misclassified commits
263 93.6% Classified commits, no corrections

debug: groups

2 0.7% num in revert
2 0.7% num in fixes
59 21.0% num in consecutive
63 22.4% 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.

ktls: Add a tunable to disable TLS receive
TLS receive offload is really only beneficial for in-kernel use cases
(such as NFS over TLS) or when using a hardware offload.  In addition,
several recent SAs have involved the TLS receive path, but the only
current mitigation for those is to disable TLS offload entirely.

Reviewed by:    ziaee, gallatin, markj
Relnotes:       yes
Sponsored by:   Netflix
Sponsored by:   Chelsio Communications
Co-authored-by: John Baldwin <jhb@FreeBSD.org>
Differential Revision:  https://reviews.freebsd.org/D57974
08cda4bcd43cfcb2c0b1abd29bc7cd30896727bc Andrew Gallatin 2026-07-01 00:53:15

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

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".

tail: Allow repetitive or contraditory options
Unlike its GNU counterpart, our tail(1) has always errored out if given
repetitive or contradictory options, even prior to Keith Bostic's 1991
reimplementation.  There is no good reason to continue to do so, not
even tradition, since many other commands (including head(1)) simply
apply the rightmost option in cases like this.

MFC after:      1 week
Reviewed by:    allanjude, markj
Differential Revision:  https://reviews.freebsd.org/D58192
9fc14dbe4897c4541113b9ba98236fbd7eb75380 Dag-Erling Smørgrav 2026-07-13 06:42:40

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

fetch: Stop setting an alarm
Now that fetchTimeout works reliably, setting an alarm is not only no
longer necessary but counterproductive, as it will trigger even if the
connection is not actually stalled but merely slow.

While here, improve the wording of the manual page's description of the
various options for setting a timeout.

MFC after:      1 week
Reviewed by:    op
Differential Revision:  https://reviews.freebsd.org/D57911
3dddfe29248c47d1a80dc96a76a308ae910b2a24 Dag-Erling Smørgrav 2026-07-13 06:43:46

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

mkimg: Add ms-basic-data alias for GPT
While preparing GPT-schemed RaspberryPi images for the NanoBSD
Reimagined GSoC 2026 project, a discrepancy was identified between
mkimg(1) and gpart(8) regarding Microsoft Basic Data partitions (GUID
!ebd0a0a2-b9e5-4433-87c0-68b6b72699c7).

Currently, mkimg(1) relies on the MBR-centric name "ntfs" to identify
this partition type under the GPT scheme.  Conversely, gpart(8)
identifies this type as "ms-basic-data".

To allow automation scripts (such as those consuming from gpart backup)
to use a common partition type across tools, add ALIAS_MS_BASIC_DATA as
a valid alias.

This is part of a larger effort to avoid a custom, MBR-based image
generation logic for embedded SoCs like the Raspberry Pi, standardizing
on GPT layouts across all supported FreeBSD embedded devices.

Reviewed by:    imp
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D58198
67f1c082b5ec37e2060b74e6f1f952ed38761468 Jose Luis Duran 2026-07-13 12:25:30

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

Documentation

Man pages, release notes, etc.

ps.1: Fix broken comment line
While here, remove the long-unused dash in the first line.

Reviewed by:    ziaee, olce
Fixes:          https://cgit.freebsd.org/src/commit/?id=ddf144a04b53 ("ps.1: Revamp: Explain general principles, update to match reality")
MFC after:      1 day
Differential Revision:  https://reviews.freebsd.org/D58038
759ce9a2b38e1de70c14c81dee7e245bf0bc6b94 Artem Bunichev 2026-07-05 19:01:36

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

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]'

kqueue.2: document NOTE_PDSIGCHLD
Reviewed by:  markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D58123
4cd67a0eea4eba63cf50a45a4665d8700df8d188 Konstantin Belousov 2026-07-10 15:26:50

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

libfetch: Document fetchTimeout
Document the global fetchTimeout variable, now that it works reliably.

MFC after:      1 week
Reviewed by:    op
Differential Revision:  https://reviews.freebsd.org/D57910
27b411734c75a7a5abe641d7fbb99dfc622e9aba Dag-Erling Smørgrav 2026-07-13 06:43:42

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

Hardware support

Hardware drivers and architecture-specific code.

Commit group #0: asmc
asmc: try PIO before MMIO to avoid false T2 detection

Add hw.asmc.system-state and hw.asmc.board-id read-only sysctls to
expose the T2 system state register and Mac board identifier via SMC.

Try PIO access before MMIO during probe to prevent false T2 detection
on Macs that happen to have something mapped at the T2 BAR address.

Reviewed by:    adrian
Differential Revision:  https://reviews.freebsd.org/D57844
bb1e071be47fa03accadace587784c85654de91e Abdelkader Boudih 2026-07-01 00:13:42

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


asmc: add system state and board identity sysctls

Add dev.asmc.0.system subtree with read-only sysctls for SMC diagnostic
and identity keys: shutdown_cause (MSSD), sleep_cause (MSSP),
thermal_status (MSAL), time_of_day (CLKT), power_state (MSPS),
board_id (RPlt), and chip_gen (RGEN).

Each sysctl is registered only if the key exists on the hardware.

Reviewed by:    adrian
Differential Revision:  https://reviews.freebsd.org/D57853
6a1bd5212f290933d1429a6d4787394ee53e3181 Abdelkader Boudih 2026-07-01 00:15:24

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


asmc: deduplicate sensor converters and cause sysctls

Replace per-type spXX_to_milli() functions with a table-driven
asmc_sensor_convert() that looks up the divisor by SMC type string.

Reviewed by:    adrian
Differential Revision:  https://reviews.freebsd.org/D57854
126f82a3eb613976f477aa8326a208459f60465d Abdelkader Boudih 2026-07-01 00:15:51

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

rge: Fix 32-bit powerpc build
Book-E powerpc has 64-bit bus_addr_t but only a 32-bit bus_size_t.  Use
the right macros for maxsize and maxsegsize to fix the build.

Fixes:  https://cgit.freebsd.org/src/commit/?id=4bf8ce037 ("if_rge: initial import of if_rge driver from OpenBSD.")
Reviewed by:    adrian
Differential Revision:  https://reviews.freebsd.org/D57794
2b5d1d8e298b2f5aff68fd5106d9b09d59fda907 Justin Hibbits 2026-07-01 02:30:24

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

hym8563: Fix 32-bit powerpc build
Depend on clknode_if.h in the module Makefile, so that it gets
explicitly built for the module.  Also, reduce the #if guards to only
the new clock output code, and gate them on all powerpc, not just
powerpc64.

Fixes:  https://cgit.freebsd.org/src/commit/?id=6b77d34f ("HYM8563: Add support for clock output.")
Reviewed by:    mmel
Differential Revision:  https://reviews.freebsd.org/D57795
a8566c71ce4640d1339a64384f0089cffb249b2c Justin Hibbits 2026-07-01 02:30:31

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

powerpc/pmap: Fix 32-bit Book-E build
17f02f732dfdc29154fa3b6b664e6da1a577a839 Justin Hibbits 2026-06-22 22:51:54

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

powerpc: Remove DPAA from MPC85XX, it's 64-bit only now
21ae6119bbd03eb3ac4cf87df4e26f8ae0ffb78e Justin Hibbits 2026-06-22 22:53:37

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

powerpc/conf: Remove temporary additions from QORIQ64
These were added during the DPAA driver rewrite, and should not have
gone in then.  Remove them.
a88932b42c36b179656fd71ce6ce9907447da6af Justin Hibbits 2026-06-22 02:13:31

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

x86: add CPUID bits for SHA512/SM3/SM4
Reviewed by:  mav
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D58003
cf851111b02fae7425f9642460762d644983fdca Konstantin Belousov 2026-07-01 23:29:04

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

usb/quirks: Add entry for Verbatim Store'n'Go
PR:           https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=199101
MFC after:      1 week
Reviewed by:    imp
Differential Revision:  https://reviews.freebsd.org/D57929
e1a0592ccd8141c609b45dfbe2fba13929ee4d51 Damian Weber 2026-07-02 12:59:36

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

usb/quirks: Sort the USB mass storage quirks
MFC after:    1 week
Reviewed by:    imp
Differential Revision:  https://reviews.freebsd.org/D57930
43da0c93ff9da32fda89d58727cd9bbe7beea4c9 Dag-Erling Smørgrav 2026-07-02 12:59:42

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

acpi: ignore wake button press replayed by firmware on resume
Some firmware delivers the power or sleep button press that woke the
system as an ordinary button press (Notify 0x80) shortly after resume,
rather than as the wakeup notification (Notify 0x02) the ACPI
specification requires for a button that is also a wake source.

On affected machines (e.g. the Framework Laptop 12, Intel Raptor Lake-P)
the power button is a control-method device behind the embedded
controller.  The EC latches the key press that woke the system across the
sleep transition and flushes it through its normal _Qxx query path as
soon as it is reinitialized on resume.  The replayed press is
indistinguishable from a genuine one, so the kernel honors it as a fresh
suspend request and the machine suspends again immediately after waking;
it cannot be kept awake with the button.

The event cannot be filtered at its source: it arrives over the same EC
query path that also carries legitimate events (lid, AC, thermal,
battery), so suppressing the drain would lose real notifications.
Instead, record the time of resume and ignore a button-initiated suspend
that arrives within a short grace window of it.  The timestamp is taken
before DEVICE_RESUME() re-initializes the EC, so it is set before the
replay can be processed on the ACPICA notify taskqueue; otherwise the
replay can be evaluated before the timestamp is written and slip through.
Measured from that point, the replay lands at ~600 ms across many cycles
on a Framework Laptop 12, whereas a deliberate press cannot occur that
quickly -- it happens well after the display is back -- so a one-second
window separates the two without ignoring real presses for any
perceptible time.

Spec-compliant firmware reports the wake as Notify 0x02, which is handled
on a different path and never reaches this check, so there is no change
in behavior on such systems.

The replay window is a fixed compile-time constant rather than a tunable
on purpose: it tracks a hardware characteristic -- the EC's post-resume
replay latency -- not a user policy, so there is no value a user would
meaningfully choose.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=296243
Reviewed by:    adrian, imp (earlier revision), olce
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D57712
d1b62492f97f5044b498fa4624e3a007a43efa6f Devin Teske 2026-06-20 16:17:40

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

hwpstate_intel(4): Use new cpu_get_pcpuid(), constify related variables
Also, add a check in the attach method that a per-CPU structure is
provided by the bus.  This allows to remove such checks in multiple
functions.  The check cannot currently fail as all x86 CPU drivers
(ACPI, legacy) provide the CPU_IVAR_PCPU instance variable, but it is
safer to have it, especially as an example to other driver writers.

Event:          Halifax Hackathon 202606
Location:       Seat 36K in AC667, still waiting for a gate at Montréal-Trudeau
Sponsored by:   The FreeBSD Foundation
74e43f631b51089e040e40b9887e94c1585203f9 Olivier Certner 2026-06-26 22:41:20

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

hwpstate_amd(4): Use new cpu_get_pcpuid(), constify related variables
Also, add a check in the attach method that a per-CPU structure is
provided by the bus.  This allows to remove such checks in multiple
functions.  The check cannot currently fail as all x86 CPU drivers
(ACPI, legacy) provide the CPU_IVAR_PCPU instance variable, but it is
safer to have it, especially as an example to other driver writers.

Event:          Halifax Hackathon 202606
Location:       Seat 25A in AF0349, before leaving Montréal-Trudeau
Sponsored by:   The FreeBSD Foundation
7e0df6af8dd0f7d1ab77ecc0c41cb543e015eeb1 Olivier Certner 2026-06-27 02:16:42

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

iwn: assign sequence number to raw transmit frames
This fixes associating to various APs.

It worked fine to a FreeBSD AP (which is a wholly separate problem
I'm going to need to dive into) but not to my tplink AX1800 Wifi-6
router.

PR: kern/https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=296503

Locally tested:

* STA: Intel Centrino Advanced-N 6205 (iwn), Lenovo T420
* AP: TP-Link AX1800 wifi-6 router
830f690eb676ab1223bfc887a8d70691a355a656 Adrian Chadd 2026-07-03 23:06:22

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

fwip: Fix M_PKTHDR loss in fwip_async_output broadcast path
M_PREPEND in the broadcast branch may call m_prepend(9) which allocates
a new head mbuf and calls m_move_pkthdr(), stripping M_PKTHDR from the
old mbuf.

xfer->mbuf was set before M_PREPEND, so it pointed at the
deheadered old mbuf. bus_dmamap_load_mbuf(9) asserts M_PKTHDR and
panics.

Reviewed by:    zlei, adrian
Differential Revision:  https://reviews.freebsd.org/D57495
22ddc9eb1d7a4fffe78b0692bdc4ec03e1d04ac4 Abdelkader Boudih 2026-07-05 18:26:05

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

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 #1: 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 #2: 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 #3: 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 #4: 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 #5: 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/'

FDT: implement fdt_ether_get_addr()
Introduce fdt_ether_get_addr() in fdt_common.c/h that tries standard
DT properties in the correct order and falls back to a random address
when needed. This should be used by ethernet drivers instead of open-coding
the same logic.

MFC after:      2 weeks

Reviewed by:    mhorne, adrian, bz, jrtc27
Differential Revision:  https://reviews.freebsd.org/D58104
920518cf2e75012135104886d92814c048baa2fb Michal Meloun 2026-07-13 08:34:22

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

Networking

Network-related commands, library, and kernel.

net80211: fix CCMP/GCMP AAD for MFP frames
Update ieee80211_crypto_init_aad() to do what 802.11-2020 says -
only mask fc[0] bits 4-6 on data frames, not on management frames.
This (with other diffs to actually negotiate MFP and configure
ath(4) for MFP + software keys) allows the CCMP path to decrypt
CCMP MFP frames in the software path.

Differential Revision:  https://reviews.freebsd.org/D57799
a2d087b67e14ea2a2496d6424df8d9668e271177 Adrian Chadd 2026-07-01 00:18:00

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

inpcb: use correct mask in in6_pcblookup_lbgroup()
There is no visible bug fixed as in current tree masks are the same.

Fixes:  https://cgit.freebsd.org/src/commit/?id=6883b120c53735ff1681ef96d257f376731f56b3
6b75f8ff5e1b0d7ac7d576c1723d734681247fbf Gleb Smirnoff 2026-07-01 05:40:22

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

netlink: add const variants of NLA iteration macros
Add const-qualified versions of the NLA iteration helpers to allow
walking immutable netlink attribute buffers without discarding const
qualifiers.

This introduces NLA_NEXT_CONST(), _NLA_END_CONST(), and
NLA_FOREACH_CONST() in netlink_snl.h.

Signed-off-by: Ishan Agrawal <iagrawal9990@gmail.com>
Sponsored-by : Google LLC (GSoC 2026)
c9d98c0134864d8bc69006b92d34a3b22c940870 Ishan Agrawal 2026-06-28 04:14:28

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

truss: track Netlink socket protocols
Record the Netlink protocol associated with AF_NETLINK sockets when
they are created and pass it to libsysdecode during message decoding.

Use the protocol to distinguish between Generic Netlink and Route
Netlink sockets, ensuring that Generic Netlink decoding is only
performed for NETLINK_GENERIC sockets.

Signed-off-by:  Ishan Agrawal <iagrawal9990@gmail.com>
Reviewed by:    kp
Sponsored-by :  Google LLC (GSoC 2026)
8a1576dc26b90706948061e5ed33f07a03a5899c Ishan Agrawal 2026-07-04 03:40:31

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

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/'

sockstat: fix SCTP support
Provide a name for SCTP sockets.

Fixes:          https://cgit.freebsd.org/src/commit/?id=8b2b62b49d88 ("sockstat: consolidate unix(4) protocols in the array of protocols")
f2f50c80ae27a97a66b8d4a1b5dd6ee9d63ff18f Michael Tuexen 2026-07-13 09:08:01

debug: classified in 03-filenames_plain1 by 'usr.bin/sockstat/'

System administration

Stuff in man section 8 (other than networking).

jail: prevent a null derefence on array parameter assignment
The same variable was used as a counter for an inner and out loop.
Add a new one for the inner loop.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=283934
Reported by:    crest at rlwinm.de
6d9bc46cd7fc48ece597162d3ca413fc9d67b5f0 Jamie Gritton 2026-07-01 18:36:08

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

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 #6: 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/'

pkg: Add -j and -r options
This allows pkg(7) to be used to bootstrap a jail or chroot, and to
recognize the -j and -r options and pass them through to pkg(8) if
already bootstrapped.

Note that this does not address the issue of repository keys.  If using
a signed package repository, you will still need to copy /usr/share/keys
into the target environment before or after bootstrapping, or pkg will
be unable to verify package signatures.

MFC after:      1 week
Reviewed by:    imp, bapt
Differential Revision:  https://reviews.freebsd.org/D58165
d94e034d504682be56fc2e9d20ac2c0fe15b70ec Dag-Erling Smørgrav 2026-07-13 15:32:41

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

Libraries

powerpc64le: switch from calling wrappers to weak references
c9991e01149b5cd5a6710d70921b203ef7f16fc2 Piotr Kubaj 2026-06-25 17:33:42

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

libsysdecode: Fix shutdownhow table
MFC after:    1 week
Fixes:          https://cgit.freebsd.org/src/commit/?id=c3276e02beab ("sockets: make shutdown(2) how argument a enum")
Reviewed by:    glebius
Differential Revision:  https://reviews.freebsd.org/D57915
402a6574886a90b8025777b3b2c960c88677462d Dag-Erling Smørgrav 2026-07-01 10:06:52

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

libc locale/localeconv.c: use release semantic when clearing locale_changed
PR:   https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=296410
Submitted by:   Tomas Vondra <tomas@vondra.me>
MFC after:      1 week
4efbcf36a0d49ab142023a767871532f515f1381 Konstantin Belousov 2026-07-05 02:50:27

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

Commit group #7: libsysdecode
libsysdecode: decode Generic Netlink controller messages

Decode Generic Netlink controller (GENL_ID_CTRL) messages in
Netlink payloads. Display the Generic Netlink header along with
the CTRL_CMD_GETFAMILY attributes, including the family ID and
family name.

Signed-off-by:  Ishan Agrawal <iagrawal9990@gmail.com>
Reviewed by:    kp
Sponsored-by:   Google LLC (GSoC 2026)
80586e853674c6d63888379274accea5c82407f2 Ishan Agrawal 2026-06-29 05:17:14

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


libsysdecode: cache Generic Netlink family IDs

Record Generic Netlink family IDs learned from
CTRL_CMD_GETFAMILY responses and use them to decode subsequent
Generic Netlink messages using symbolic family names instead of
numeric IDs.

Signed-off-by:  Ishan Agrawal <iagrawal9990@gmail.com>
Reviewed by:    kp
Sponsored-by:   Google LLC (GSoC 2026)
c268c80fc3d5eaeec2d01205b338dbaa7661502a Ishan Agrawal 2026-06-29 06:00:40

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


libsysdecode: decode PF Generic Netlink commands

Decode the Generic Netlink command header for messages
belonging to the PF Generic Netlink family. Display the
command name using the PF Generic Netlink command decoder.

Signed-off-by:  Ishan Agrawal <iagrawal9990@gmail.com>
Reviewed by:    kp
Sponsored-by:   Google LLC (GSoC 2026)
fa50691ecf87c2d0ec35480222557173c11a5baa Ishan Agrawal 2026-06-29 06:21:59

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

Commit group #8: 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".

Commit group #9: libfetch
libfetch: Overhaul socket read / write

* Make fetch_ssl_read() and fetch_ssl_write() behave more like read(2)
  and write(2), and drop fetch_socket_read() in favor of read(2).

* Don't request POLLERR, it's implied.

* Don't needlessly set errno, it's relatively costly.

* Always check for EAGAIN from writev(2), otherwise we will abort on a
  short write instead of proceeding to poll(2).

* Always check for EAGAIN from poll(2) even though it can't happen on
  FreeBSD; POSIX says it can, and it might in the future.

* Rewrite fetch_read() and fetch_writev() to be more similar to each
  other.  The main difference is that a partial read is treated as
  success while a partial write is treated as failure.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=296316
MFC after:      1 week
Reviewed by:    op
Differential Revision:  https://reviews.freebsd.org/D57906
32c341bd1c8b1154128f62fafa6988ed29db564a Dag-Erling Smørgrav 2026-07-13 06:43:28

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


libfetch: Add read buffering

Previously, we would read FTP control connection messages and HTTP
reponse headers one character at a time.  Now, we read as much as will
fit in our buffer and look for a newline.  If there is data left over,
it will be reused by the next fetch_getln() call.  This also requires
the addition of a fetch_bufread() which takes the buffer into account,
otherwise the start of the HTTP response body will be stuck in the
buffer after we read the last line of the header.

This should noticeably improve HTTP performance, especially for small
transfers.

MFC after:      1 week
Reviewed by:    op
Differential Revision:  https://reviews.freebsd.org/D57907
a1978277379cf65f1339ab062f335c6f1fa6239f Dag-Erling Smørgrav 2026-07-13 06:43:33

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


libfetch: Apply timeout to connection attempts

Mark the socket non-blocking before connecting and poll for completion,
applying fetchTimeout if set.

MFC after:      1 week
Reviewed by:    op
Differential Revision:  https://reviews.freebsd.org/D57909
848f360c8f9ae8d1d97c61f5d63fc624926d5dcd Dag-Erling Smørgrav 2026-07-13 06:43:37

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

libfetch: Make fetch_ref an inline
Make fetch_ref() an inline and provide a fetch_deref().

MFC after:      1 week
Reviewed by:    op
Differential Revision:  https://reviews.freebsd.org/D57944
d4e0e1fbc237f0765b9f32b291c087348031c921 Dag-Erling Smørgrav 2026-07-13 06:43:51

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

libfetch: Reduce copying
Reduce the amount of copying we do when performing buffered reads.

MFC after:      1 week
Reviewed by:    op
Differential Revision:  https://reviews.freebsd.org/D58113
60382b4a04fa39e9bf65b964b1b7b4bed6eaa56a Dag-Erling Smørgrav 2026-07-13 06:43:56

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

libnetmap: fix error path in nmport_extmem_from_file
Reviewed by:  zlei, vmaffione
Obtained from:  https://github.com/luigirizzo/netmap/commit/b52a2bcae35e56548acfb0849b248a1e4b0c0c3b
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D58150
fcaf15e54162fe14483fdf4ac28c67c51e424441 Jose Luis Duran 2026-07-13 12:23:14

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

libnetmap: fix extra indirection in nmreq_remove_option
Reviewed by:  zlei, vmaffione
Obtained from:  https://github.com/luigirizzo/netmap/commit/7d9177ed9a121e66bf4eaa0acb5d574e408297da
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D58151
141b6645204966a0e1ae10dd059c670e2a58e6e1 Giuseppe Lettieri 2026-07-13 12:24:16

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

Filesystems

autofs: rename sx lock description for am_lock
Rename am_lock description from autofslk -> autfsm.

The lock description, autofslk, is used as the description for
autofs_softc->sc_lock, which is used to protect autofs requests and the
like as opposed to am_lock which protects autofs nodes for a given
mount.

This change allows witness to distinguish different lock orders for each
lock.

Reviewed by:    kib
Differential Revision:  https://reviews.freebsd.org/D57972
29b07ef31379575fff4344ec331b90c96d899cc7 Robert Wing 2026-07-01 09:18:33

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

zfs: fix SIMD defines to match OpenZFS HAVE_SIMD() macro
The OpenZFS merge 80aae8a3f8aa introduced HAVE_SIMD() which checks for
HAVE_TOOLCHAIN_* defines via simd_config.h.  The kernel module Makefile
was updated, but kern.pre.mk (static kernel build) and the libzpool/libzfs
Makefiles were missed, still using the old HAVE_SSE2 etc. names.  This
caused all vectorized raidz, fletcher, and blake3 implementations to be
compiled out.
de6872045c07b7eeffe66cba40e7feed23eefc9e Alexander Motin 2026-07-01 17:09:49

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

ffs: do not return ESTALE on attempt to ffs_unotovp() on unlinked inode
The consequences are:
- for nfs exports and fhopen(2), unlinked but still referenced inodes
  are accessible
- for ffs_vput_pair() with unlock_vp = false, spurious ESTALE is not
  returned when the inode is still alive but unlinked

Note that tmpfs does not return ESTALE for the unlinked nodes.
The same behavior is claimed for Linux in
https://github.com/openzfs/zfs/issues/18699

Reviewed by:    rmacklem
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D57982
c041b82c59e885d106f45454302bad3d9dcc58a7 Konstantin Belousov 2026-07-01 01:14:45

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

fusefs: fix vnode locking violations during execve
Fix two locking violations that could happen during execve, while
executing a file stored on fusefs.  Both would cause panics on an
INVARIANTS kernel after 15.0, or a DEBUG_VFS_LOCKS kernel prior to that.
Neither is likely to be noticeable on a release kernel.

* Don't assume that the vnode is exclusively locked during VOP_CLOSE.
  It usually is thanks to !MNTK_LOOKUP_SHARED, but isn't during execve,
  which locks the vnode outside of the lookup path.

* Totally rewrite fuse_io_invalbuf.  It's had a number of problems ever
  since its original introduction[^1]:

  - Don't assume that the vnode is exclusively locked.  That assumption
    failed during execve just like the assumption in fuse_vnop_close.

  - Don't livelock forever if vinvalbuf returns ENOSPC or EDQUOT.

  - Don't attempt to handle multiple threads calling this function at
    the same time.  That would be impossible if the vnode truly were
    exclusively locked.  So the code was dead.  Or it would've been, if
    the assumption hadn't been wrong.  Furthermore, both vinvalbuf and
    vnode_pager_clean_sync only require a shared vnode lock, and are
    already capable of dealing with multiple simultaneous callers.

  - Using fvdat->flag in this way would require some sort of mutex
    protection, if the vnode weren't exclusively locked.

 * Add new test cases that trigger both of the aforementioned panics.

[^1]: https://github.com/glk/fuse-freebsd/commit/efe6eb3005e7633b4e31d5e453eacbaa0cba42fa

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=295957
Reported by:    dan.kotowski@a9development.com
MFC after:      2 weeks
Sponsored by:   ConnectWise
Reviewed by:    markj
Differential Revision: https://reviews.freebsd.org/D57536
ee1c3d38a26aa63fca8e9f86c0d456800d5e2576 Alan Somers 2026-06-10 20:39:22

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

autofs: enable witness for autofs node lock
Previously, an_vnode_lock was initialized with SX_NOWITNESS to silence
lock order reversals. The reversals would occur when autofs_node_vn()
was called with the directory vnode lock held, then lock an_vnode_lock,
then lock the vnode attached to the autofs node. It looked like:

    directory vnode -> an_vnode_lock -> vnode attached to autofs node

The established lock order is now vnode -> an_vnode_lock

Currently, we don't have to worry about losing an autofs node during the
unlock/lock as autofs nodes are only removed during an unmount() after
vflush(). When autofs_node_vn() is called, the mountpoint has either
been busied (preventing unmount) or a directory vnode is locked which
prevents vflush() from finishing until the directory vnode is unlocked.

Reviewed by:    kib
Differential Revision:  https://reviews.freebsd.org/D57857
2de20c5c77cf8d5b2059054cff0e0c1fc124739d Robert Wing 2026-07-03 18:55:37

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

nfs_clstate.c: Fix handling of delegation upgrades
Commit 016570c4463d modified the client to handle
the upgrade of a read delegation to a write delegation,
where the server provides the same delegation stateid
to the client.  However, it failed to check if the
delegation structure was currently in use.  Without this
patch, if the structure was in use, a use after free
could occur.

This patch handles the "in use" case by copying the
necessary fields into the current/old structure and
free's the new one instead of the old one that is
"in use".

PR:     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=296224
MFC after:      2 weeks
fe6677e7f440d1aa52de036639efc55047ab9a2b Rick Macklem 2026-07-04 22:00:02

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

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 #10: 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).

ktls: Centralize the check for CBC ciphers
Move the check out of ktls_enable_(rx|tx) and into ktls_create_session.

Reviewed by:    gallatin, markj
Sponsored by:   Chelsio Communications
Differential Revision:  https://reviews.freebsd.org/D57973
9cee48180d7a3d612110b4433f82bade288f326b John Baldwin 2026-07-01 00:52:55

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

ktls: Add a tunable to disable TLS receive
TLS receive offload is really only beneficial for in-kernel use cases
(such as NFS over TLS) or when using a hardware offload.  In addition,
several recent SAs have involved the TLS receive path, but the only
current mitigation for those is to disable TLS offload entirely.

Reviewed by:    ziaee, gallatin, markj
Relnotes:       yes
Sponsored by:   Netflix
Sponsored by:   Chelsio Communications
Co-authored-by: John Baldwin <jhb@FreeBSD.org>
Differential Revision:  https://reviews.freebsd.org/D57974
08cda4bcd43cfcb2c0b1abd29bc7cd30896727bc Andrew Gallatin 2026-07-01 00:53:15

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

Commit group #11: linuxulator: Fix O_PATH file descriptors errno for f*xattr(2)
linuxulator: Fix O_PATH file descriptors errno for f*xattr(2)

LTP open13 expects these operations to fail with EBADF, matching
Linux behavior, but FreeBSD currently returns EOPNOTSUPP
for fgetxattr() on an O_PATH fd

Look up Linux fd-based xattr descriptors with getvnode()
and route the operations through shared kern_extattr_*_fp()
helpers so the O_PATH check and the extattr operation use the
same referenced file.

Apply the same EBADF handling to fsetxattr(), fremovexattr(), and
flistxattr() so the xattr paths stay consistent.

Signed-off-by:  YAO, Xin <mr.yaoxin@outlook.com>
PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=295537
Reviewed by:    kib
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2263
2c905456312b2e5986afe3402a9c87d49eb9cf86 YAO, Xin 2026-05-07 06:39:16

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


linuxulator: Fix operator precedence for LINUX_XATTR_FLAGS in setxattr()

The LINUX_XATTR_FLAGS macro expands to (LINUX_XATTR_CREATE|LINUX_XATTR_REPLACE).
Without parentheses around the macro expansion, the bitwise & operator has
higher precedence than |, causing incorrect flag evaluation and a compiler
warning.

Add the missing parentheses around LINUX_XATTR_FLAGS to ensure correct
operator grouping, matching the existing usage in getxattr().

Signed-off-by:  YAO, Xin <mr.yaoxin@outlook.com>
Fixes:          https://cgit.freebsd.org/src/commit/?id=2c905456312b ("linuxulator: Fix O_PATH file descriptors errno for f*xattr(2)")
Reviewed by:    kib
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2306
8ad097de02263d92df3368a2f5035faa365e7956 YAO, Xin 2026-07-01 20:10:13

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

linuxulator: Add linux_extattr_get_vp() for atomic getxattr
Move the atomic size-probe-and-read logic into a new
linux_extattr_get_vp() function in linux_xattr.c instead of
modifying the generic extattr_get_vp() in vfs_extattr.c.
This keeps Linux-specific getxattr semantics (ERANGE on
too-small buffer, EOPNOTSUPP to ENOATTR mapping)
self-contained within the linuxulator.

The function probes the attribute size and reads the data
under a single vnode lock, preventing a TOCTOU race between
the size probe and data read.

Signed-off-by:  YAO, Xin <mr.yaoxin@outlook.com>
Reviewed by:    kib
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2263
2fc95fe26e725439209217f53dd76437a52be76b YAO, Xin 2026-06-29 01:55:25

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

Commit group #12: CHERI
CHERI: declare mem{cpy,move}_data

Declare kernel-only, provenance-discarding memcpy_data, and memmove_data
APIs intended to copy raw data which does not contain pointers (e.g.,
buffers on their way to or from network or storage devices).  On CHERI
architectures, they will explicitly remove tags from capabilities,
removing any provenance.  This reduces the risk of accidental spread of
pointers on CHERI systems.

Document that bcopy preserves pointer provenance.

Reviewed by:    ziaee, kib, adrian, markj
Effort:         CHERI upstreaming
Sponsored by:   DARPA, AFRL, Innovate UK
Differential Revision:  https://reviews.freebsd.org/D57662
7f55dbe6ae89c356db1bc4fb2c42d9d007ae5da1 Brooks Davis 2026-07-01 11:45:51

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


CHERI: add sooptcopyinptr to preserve pointer provenance

Most socket options don't involve pointers so make the default
sooptcopyin discard provenance and add a sooptcopyinptr that preserves.

Reviewed by:    markj, emaste
Effort:         CHERI upstreaming
Sponsored by:   DARPA, AFRL, Innovate UK
Differential Revision:  https://reviews.freebsd.org/D57665
f14bdfefa41c7d81dd1317e61b98de22dc03016c Brooks Davis 2026-07-01 11:46:39

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


CHERI: make mem{cpy,move}(9) CHERI compatible

- Use intptr_t in place of long as the word type in the core copying
  loop where aligned words a copied.  This preserved the provenance of
  any copied pointers.
- When working with the address of src or dst use ptraddr_t rather than
  uintptr_t.  This avoid ambigious provenance in expressions involving
  multiple addresses.

As a minor tweak, rename the function to memmove since that is the
interface it implements (overlapping src and dst are permitted) and make
memcpy the alias rather than the other way around.

Reviewed by:    kib, markj
Effort:         CHERI upstreaming
Sponsored by:   Innovate UK
Differential Revision:  https://reviews.freebsd.org/D57965
17602eb3eae95a53c973a5ceb4fc3134a770e8d6 Brooks Davis 2026-07-01 11:46:55

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

Commit group #13: CHERI: declare fueptr and suptr
fetch.9: fix a typo

Fixes:          https://cgit.freebsd.org/src/commit/?id=a1c52e05f571 ("CHERI: declare fueptr and suptr")
Effort:         CHERI upstreaming
Sponsored by:   Innovate UK
524fb0444f3ad0f52b6f706267181564e33f9771 Brooks Davis 2026-07-01 14:09:15

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

debug: moved to kernel because 'Need to be grouped with a1c52e05f571607db361f49993b36b0288f1d8f3'

unix: Fix a socket refcount leak in uipc_sendfile_wait()
Fixes:                https://cgit.freebsd.org/src/commit/?id=d15792780760 ("unix: new implementation of unix/stream & unix/seqpacket")
Reviewed by:    glebius
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D57967
2a4b8fd1dc070e71fbaab6f12c1c9e4452652aa7 Mark Johnston 2026-07-01 15:35:10

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

jail: prevent a race between jail_attach in different threads
Attaching to a jail changes its root directory and its process
credentials. These operations both require unlocking the jail, and also
need allprison_lock unlocked. That means that if two threads are trying
to attach to different jails at the same time, it's possible for the
process to end up with one jail's root directory but the other jail's
credentials.

Solve this by forcing the process into single-threaded mode during
system calls that attach to a jail (jail_attach, jail_attach_jd, and
sometimes jail_set).

Reviewed by:    kib, markj
MFC after:      3 days
Differential Revision:  https://reviews.freebsd.org/D57858
d4e0f4dab2d7f4de46bb79db1ca7e6e8a2e34746 Jamie Gritton 2026-07-02 22:48:07

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

newvers.sh: Avoid spurious -dirty in git revision
If git is installed and .git exists but git rev-parse failed to report a
hash we previously produced just "-dirty" as the git revision.  Gate the
git commit count and -dirty check on the rev-parse passing.

Reviewed by:    jlduran
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57995
465a3b7adc008c068741594f6c922ede98924f39 Ed Maste 2026-07-01 14:35:10

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

cpu: New cpu_get_pcpuid(), retrieves internal CPU ID
It is a handy shortcut that will be used extensively in
hwpstate_intel(4) and hwpstate_amd(4).

Warn users that it panics if the parent bus does not provide the
CPU_IVAR_PCPU instance variable.  That condition should be tested by
callers (doing so once is enough).  Suggest to do that in driver's
attach method.

Reviewed by:    jhb (code)
Event:          Halifax Hackathon 202606
Location:       Seat 36K in AC667, waiting for a gate at Montréal-Trudeau
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D57897
c3c8f4d9e66287b24af2b3881c528236b836f2f1 Olivier Certner 2026-06-26 22:17:35

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

sys/systm.h: include sys/limits.h for SSIZE_MAX
This makes the header more self-contained.
The symbol is needed only on 32bit arches, but the include file is
provided unconditionally to make the namespace population predictable.

PR:     https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=296489
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
bcb471cfb499f61d98abdc7bfd48bee0e229b02b Konstantin Belousov 2026-07-04 01:24:00

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

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 #14: 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 #15: 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 #16: 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 #17: 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/'

kern_thread: Fix i386 p_emuldata KBI assertion
On amd64 there was 4 bytes of padding between the 20-byte p_comm and
(for LP64) 8-byte p_sysent, so the addition of p_execblock just caused
that padding to be eaten up. However, on i386, there was no such
padding, and so the addition of p_execblock rippled through to
p_emuldata.

Fixes:  https://cgit.freebsd.org/src/commit/?id=e1a84b7708c2 ("execve_block(): a mechanism for mutual exclusion with execve() on the process")
f6ee1d20d36813e9906916f48cf06f44a2fd668d Jessica Clarke 2026-07-13 03:03:03

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

procdesc: add NOTE_PDSIGCHLD
The note type wakes up when there is something for pdwait(2) to report
on the process descriptor.

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D58123
2a5e58c59694bc719d7ab82abb1c65ee2045329d Konstantin Belousov 2026-07-09 11:08:45

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

pdwait(2): make debugging events functional
We need to wake up the pdwait(2) waiters when procdesc event is
reported.

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D58172
0f1718e0d588375d6ab6be52f5253fe143c5c75f Konstantin Belousov 2026-07-11 15:50:26

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

kern: add fget_procdesc()
Convert several callers to use fget_procdesc().
Eliminate procdesc_find() and directly use fget_procdesc() in
sys_pdkill().  Previous code structure required to fdrop() procdesc
while the process is locked.

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D58117
97de8330e1683e41883887d19ea489bda90e5c61 Konstantin Belousov 2026-07-08 14:21:58

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

Commit group #18: LinuxKPI
LinuxKPI: add system_percpu_wq

In Linux v6.17 system_wq was replaced (renamed to) system_percpu_wq,
with the old name still present.

We just alias system_percpu_wq to linux_system_short_wq like we do
for system_wq to keep both around for the forseeable future.

Note: the original system_wq was a per-cpu queue upstream as well
based on my understanding but we never implemented it as such.
That means we are still lacking a per-cpu implementation for
system_percpu_wq but at least we do not change the status-quo
of the LinuxKPI implementation with this.

Note2: we should add a check somewhere for LINUXKPI_VESION >=
61700 to print a warning if anyone still uses the system_wq
to detect any possible sami-native or out-of-tree drivers
relying on this and not properly updating.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Reviewed by:    dumbbell; emaste (comments on previous review)
Differential Revision: https://reviews.freebsd.org/D57730
058ce52660fb52ada41462d339fb1ce6aca48cf3 Bjoern A. Zeeb 2026-01-21 13:53:34

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


LinuxKPI: fix lkpi_pci_get_device() reference counting on device

In case we are passed an "odev" (a device to start the search from),
that device would have an extra reference.  The best way to illustrate
this is to look at for_each_pci_dev(), which will return one device
after the other.  Upon first return we return a pdev with a reference.
That pdev is then passed in as odev on the next call.  If we do not
clear the reference it will be leaked.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Fixes:          https://cgit.freebsd.org/src/commit/?id=910cf345d0ee9 ("LinuxKPI: pci: implement ...")
Reviewed by:    dumbbell, emaste
Differential Revision: https://reviews.freebsd.org/D57428
f9a37065b6948831f62a33fd0c68c96985b01a41 Bjoern A. Zeeb 2026-06-01 04:58:00

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


LinuxKPI: pci detach: implement a proper detach (release) path

There are two paths in the LinuxKPI PCI code to instantiate a "pdev"
(LinuxKPI pci_dev).  One is using the FreeBSD bus framework and the
pdev will be the softc.
This commit starts cleaning up the detach path for just that case
to the best possible.

So far we did a lot of the work in linux_pci_detach_device(), which is
the internal handler of the detach function and little in the
(*release) callback (devres cleanup only).
The problem with that is, that we tear down resources which later in the
devres cleanup are needed.  With them not being there anymore we panic, e.g.,
in lkpi_dma_unmap < lkpi_dmam_free_coherent < lkpi_devres_release_free_list.
The solution is to migrate most of the cleanup work into the (*release)
callback, which will automatically be called when the device (kobj) reference
drops to zero.  The only work which should be done immediately is to let the
dirver do its cleanup;  this has to happen before we try to teardown the
resources, but also we do want this to happen when detach is called
(the first time).
One problem we have with the deferred cleanup of the remaining parts is
that we do not know upon calling pci_dev_put() whether this cleared
the last reference and triggered the cleanup or not but we cannot return
from the detach function with pending resources and dangling pointers,
which then may be used.  In order to work around this, we clear the
(*release) callback function when it is run and check for that in the
detach routine.  If the (*release) callback was not run, we refuse to
detach (force would be needed) as we'd rather keep the device than
risk a follow-up panic on leaked resources.  Given this should not happen
in a well programmed world, I believe it is fine to take that and log it
to let the user know.

Try to leave a few comments behind to help with understanding in the
future.

With this we can unload the mt7921 driver (or shutdown the system)
without panic.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Reviewed by:    dumbbell
Differential Revision: https://reviews.freebsd.org/D57429
66b25ddf9125b2f3707e0f22b01b47bdff463fa7 Bjoern A. Zeeb 2026-06-01 23:59:01

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


LinuxKPI: 802.11: lkpi_80211_txq_tx_one() only pass sta if added to drv

If we are doing a direct (*tx) downcall, only pass sta as meta data
if it was added to the driver (via the state machine).  This prevents
us passing a sta not known to the driver leading to possible follow-up
complications/errors.  This will usually happen if (a) we are doing
software scanning, or (b) if net80211 decides to change the ni from
under us and sends a packet with the new ni.

Adjust a debug statement before to also have the added_to_drv field
in it to ease debugging.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
c6e70c68d2ce5cfbcace251ef6ed2f1eae912a74 Bjoern A. Zeeb 2026-07-11 13:35:31

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

Build system

pkgconf: match the update to version 2.9.93
This update brings spdxtool(1), with the ability to generate software
bill of material files (SBOM) in the SPDX 3.0.1 format (JSON-LD).

Reviewed by:    markj
Approved by:    markj
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D57953
43b1ade21e22c0b758f8d83e4707df3024413833 Pierre Pronchery 2026-06-24 20:01:00

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

src.conf(5): Suggest using ccache4
We have separate ports for Ccache 3 and 4.  Suggest both, rather than
only the Ccache 3 port.  Rearrange the text somewhat to avoid an
excessively ragged edge on a standard 80-column terminal.

MFC after:      1 week
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D58005
a2545f68f64b4cfcc13ca2d372c8b9fef1c6331e Dag-Erling Smørgrav 2026-07-02 15:16:52

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

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 #19: 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'

Add sbintime.9 manual page
sbintime.9 is a manual page that documents the usage of sbintime_t and
its helper functions.

MFC after:      1 week
Reviewed by:    ziaee, markj
Differential Revision:  https://reviews.freebsd.org/D57931
c3f6c655dd155f4c84ce743c86e07d9f0b6b348a Ka Ho Ng 2026-07-13 00:21:01

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

mt76: further adjust debugfs compile time options
The debugfs options between the various modules (core and chipsets)
are not 100% de-coupled.  This means we may run into unresolveable
symbols at load time of the modules if we enable certain options
generally or for core but not for the chipset.
For now: always build the core module with debugfs support.
Migrate the CONFIG_MAC80211_DEBUGFS flag into the Makefile of each
chipset so we can individually turn it on.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
ec17c2454bf03f954e460bfe3c95e35f638ba71e Bjoern A. Zeeb 2026-07-11 13:40:29

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

acpi_einj: Add acpi_if.h to SRCS
This is included via acpivar.h so needs to be in SRCS to be generated.

Reported by:    bz
Fixes:  https://cgit.freebsd.org/src/commit/?id=bc49842769bd ("acpi_einj: Support for ACPI error injection")
Sponsored by:   Arm Ltd
237c69a9906e21b9992585ec8477d8d1cd616b7a Andrew Turner 2026-07-08 05:50:59

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

Internal organizational stuff

Add myself as ports committer, update mentor/mentee
This completes step 5 from Committer's Guide.

Approved by:            jbo (mentor)
Differential Revision:  https://reviews.freebsd.org/D57934
e89a398c108ff4db2b7985ad591e62b9e1ea7222 Martin Cracauer 2026-07-03 18:22:09

debug: classified in 03-filenames_plain1 by 'share/misc/committers-ports.dot'

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/socket_afinet: make child_bind() return a full spectre of results
There is no functional change for existing tests, but allows to write a test
that would expect an immediate success of bind(2).
57cc01057bb21fec37fa4fb7416b4a1f29a211c0 Gleb Smirnoff 2026-07-01 05:47:47

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

tests/socket_afinet: extend bind_connected_port_test to cover more cases
- Test SOCK_DGRAM (UDP) sockets.
- Test binding to 0:port and to a addr:port in presence of connected socket
  using the port.

Differential Revision:  https://reviews.freebsd.org/D56707
0bc0b0c3f73812fdcdb89865879c7478bcbc7323 Gleb Smirnoff 2026-07-01 05:48:06

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

tests/netinet/socket_afinet: reduce tautology in test cases names
Just avoid repeating the test program name in every test case name.
No functional change.

Reviewed by:            markj
Differential Revision:  https://reviews.freebsd.org/D56727
51eb574064802d7697a55b502cc169eeb43fba58 Gleb Smirnoff 2026-07-01 05:48:16

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

tests/socket_afinet: make multibind test more verbose on failure
07db0309378cd85ba72992e838675ba57abdca75 Gleb Smirnoff 2026-07-01 05:48:23

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

tests: fix checksum computation
This fixes an endianness bug in sys/netinet/ip_reass_test.
Just use the code from RFC 1071.

Reported by:            glebius
Reviewed by:            glebius, Timo Völker
MFC after:              1 week
Sponsored by:           Netflix, Inc.
Differential Revision:  https://reviews.freebsd.org/D57988
fbc039e512c3bb1635ad20cc8f70ad608ea818b7 Michael Tuexen 2026-07-01 16:07:04

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

tests/aslr: Fix spurious test failures
/sbin/ping and /sbin/ping6 are hard-linked, and the vmmap sysctl handler
doesn't know which name was used to launch the process.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=296116
MFC after:      3 days
Fixes:          https://cgit.freebsd.org/src/commit/?id=080a4087014e ("tests: Fix race condition in aslr_setuid")
81cf9a0ca765b48a430da61c221be17c4d0f753a Mark Johnston 2026-07-03 19:28:22

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

tests/if_wg: Let wg_vnet_parent_routing run in a VNET jail
MFC after:    1 week
0dbd497fff17416728c9c98f27a0612c89c7143c Mark Johnston 2026-07-03 19:31:15

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

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.

ctfmerge.1: Fix uniqlabel typos
The flag is -D, but it was written as a second -d. Add a period too.

MFC after:      3 days
4f293e32e4529617dd05bd64fd3c22a57a56a355 Alexander Ziaee 2026-06-30 14:12:03

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

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

Merge commit '0cf7106da9f36671ef62142c27de98eee9d874d6' into khorben/pkgconf-2.9.93
592efe252472a3385acf36b1f49ecf710a7f3d9c Pierre Pronchery 2026-07-01 00:24:13

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

pkgconf: determine the default paths dynamically
This automatically computes the correct PKG_CONFIG_PATH with LOCALBASE
from the environment (when set) or from the "user.localbase" sysctl, in
this order.

Reviewed by:    des
Approved by:    des
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D57246
c146f5ae308ee47f2832fb3df1e14f864be70015 Pierre Pronchery 2026-05-26 13:48:49

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

Merge bmake-20260704
Merge commit 'e988c5eab5231646c612d35ff5b16122cebfbf6a'
5dfe1956df4b37af4892aaff3fafe70c0d6d7466 Simon J. Gerraty 2026-07-05 18:29:48

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

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

Commit & revert pair: zfs: Wire sha512 offload to the build
zfs: Wire sha512 offload to the build

FreeBSD main just got the CPUID_STDEXT4_SHA512 define.

OpenZFS PR #18732
cd61eb4f6681b13d98b6a7be252500ad30f05f74 Alexander Motin 2026-07-02 17:58:12

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


Revert "zfs: Wire sha512 offload to the build"

This reverts commit cd61eb4f6681b13d98b6a7be252500ad30f05f74.

Some people report module load failure due to undefined symbol.
I don't have those problems myself, so it might be a question of
full rebuild.  But I don't have time right now, so just revert.
b77f6ae68941c0a1f624fe351becd3726bac1cee Alexander Motin 2026-07-04 09:14:02

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

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'

Revert "chflags: Add a new UF_DONTCACHE flag"
This reverts commit 74654ba3b1b3bcf6ba8870a54310accbb6adbf0b.

Apparently it breaks cross building from Linux for some
reason.  I'll admit I didn't even know we supported cross
building from Linux.
88711f144170df4e8a4f3359c9e6089dad836951 Rick Macklem 2026-07-13 02:59:26

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

This work is supported by Tarsnap Backup Inc.

Alternate version: 2026-07-01 (release)