FreeBSD/src 0a81077share/man/man4 ufshci.4

ufshci.4: Canonicalize SYNOPSIS, LOADER TUNABLES

+ Update SYNOPSIS to the new standard format
+ Rename CONFIGURATION to the usual LOADER TUNABLES
+ Adjust tunable markup for inclusion in the search index
+ Editorial nit: Unwind a parenthetical

MFC after:      3 days
DeltaFile
+18-28share/man/man4/ufshci.4
+18-281 files

FreeBSD/src acaab48share/man/man4 ufoma.4

ufoma: Describe better, short SYNOPSIS, tag SPDX

This driver is for NTT DoCoMo 3G cellular equiment, which afaict all
went offline six months ago. Tidy up the entry until we can remove it.

MFC after:      3 days
DeltaFile
+10-15share/man/man4/ufoma.4
+10-151 files

FreeBSD/src 6a34abbsys/netpfil/pf if_pfsync.c, tests/sys/netpfil/pf pfsync.sh

pfsync: when importing a state clear take the interface name into account

When one pfsync host clears states it informs its peers about this.
While processing such messages, in pfsync_in_clr() we failed to take the
interface name into account.
This meant that if one host cleared states on one interface the peers
would clear all states, not just those on the affected interface.

Actually check for the interface in pfsync_in_clr()

Sponsored by:   Rubicon Communications, LLC ("Netgate")
DeltaFile
+86-0tests/sys/netpfil/pf/pfsync.sh
+10-6sys/netpfil/pf/if_pfsync.c
+96-62 files

FreeBSD/src e20ed58sys/kern kern_lockf.c

lockf: Truncate the active lock list earlier in lf_purgelocks()

Otherwise vfs_report_lockf() can race with lf_purgelocks() while the
latter is freeing active lock entries without any locks held.

Reviewed by:    kib
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D59768
DeltaFile
+8-7sys/kern/kern_lockf.c
+8-71 files

FreeBSD/src fecb953sys/netinet6 udp6_usrreq.c

udp: Let jail policy rewrite the dstaddr for v6 sendto()s

When performing an unconnected sendto() on a v6 UDP socket in a classic
jail, we were not applying the usual policy of replacing the loopback
addr with the jail's primary IP.  Compare with, e.g., udp6_connect() or
the IPv4 udp_send().  Fix that.

Reported by:    Yuxiang Yang, Yizhou Zhao, Ao Wang, Xuewei Feng, Qi Li,
                and Ke Xu from Tsinghua University using GLM-5.1 from Z.ai
Reviewed by:    bz, glebius
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D59772
DeltaFile
+4-0sys/netinet6/udp6_usrreq.c
+4-01 files

FreeBSD/src fa4f76estand/common gfx_fb.c, stand/efi/loader copy.c bootinfo.c

stand: remove unused variables

(cherry picked from commit 7d48a56205224cfa969c32b47496dc8ac6a6a637)
DeltaFile
+1-3stand/efi/loader/main.c
+1-2stand/efi/loader/bootinfo.c
+0-2stand/efi/loader/arch/amd64/multiboot2.c
+1-1stand/efi/loader/copy.c
+0-1stand/efi/loader/arch/amd64/trap.c
+0-1stand/common/gfx_fb.c
+3-106 files

FreeBSD/src a43fff2stand/common gfx_fb.c, stand/efi/loader copy.c bootinfo.c

stand: remove unused variables

(cherry picked from commit 7d48a56205224cfa969c32b47496dc8ac6a6a637)
DeltaFile
+2-5stand/efi/loader/main.c
+1-2stand/efi/loader/bootinfo.c
+0-2stand/efi/loader/arch/amd64/multiboot2.c
+1-1stand/efi/loader/copy.c
+0-1stand/efi/loader/arch/amd64/trap.c
+0-1stand/common/gfx_fb.c
+4-126 files

FreeBSD/src a4ea046sys/dev/sound/pci hdspe-pcm.c hdsp-pcm.c

snd_hdsp*: malloc(9) with M_WAITOK

Perform the allocations outside the lock section so that we can use
M_WAITOK. Holding the lock here is actually not really necessary and we
could just as well remove it, but keep it for consistency.

Sponsored by:   The FreeBSD Foundation
MFC after:      1 month
Reviewed by:    kib
Differential Revision:  https://reviews.freebsd.org/D59079

(cherry picked from commit b5c1ab6c8f2811278b801084713a6618f3b783d3)
DeltaFile
+15-2sys/dev/sound/pci/hdspe-pcm.c
+15-2sys/dev/sound/pci/hdsp-pcm.c
+30-42 files

FreeBSD/src 1490193sys/dev/sound dummy.c

snd_dummy: Bump primary channel count

Makes it easier to test scenarios involving more than 1 primary channels
per direction.

Sponsored by:   The FreeBSD Foundation
MFC after:      2 weeks
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D59085

(cherry picked from commit 358fe149f591028945a8e5a51dff9121a2358c85)
DeltaFile
+2-2sys/dev/sound/dummy.c
+2-21 files

FreeBSD/src eefd556sys/dev/sound/pcm dsp.c

sound: Prefer idle primary channels when allocating

dsp_chn_alloc() stopped at the first primary channel that was either
idle or already had vchans. Since the list is walked in order, the first
channel matched both conditions once it had been used, so every client
after the first was stacked onto it as a vchan and the remaining primary
channels were never allocated at all.

This is invisible on devices with a single primary channel, but not on
those which provide several. snd_emu10kx(4), for instance, registers
four primary channels for its front device, each able to run with its
own rate.

Look for an idle primary channel first, and only fall back to sharing
one that already has vchans when there is none left.

Sponsored by:   The FreeBSD Foundation
MFC after:      2 weeks
Reviewed by:    markj

    [3 lines not shown]
DeltaFile
+17-7sys/dev/sound/pcm/dsp.c
+17-71 files

FreeBSD/src e376d28sys/conf NOTES

LINT: enable KLD_DEBUG

Without this, no kernel config contained this option so it was easy to
break.

Sponsored by:   Innovate UK
DeltaFile
+5-0sys/conf/NOTES
+5-01 files

FreeBSD/src 0a3d54asys/kern kern_linker.c

kern_linker: use __func__ correctly in diagnostics

__func__ is a variable not a string literal so pass it to printf.  This
only manifest when KLD_DEBUG was defined so wasn't tested by an kernel
including LINT.

Reported by:    Mark Millard <marklmi at yahoo.com>
Sponsored by:   Innovate UK
DeltaFile
+3-3sys/kern/kern_linker.c
+3-31 files

FreeBSD/src 2cfb88elibexec/rtld-elf rtld.c

rtld: more caution when parsing in digest_notes()

(cherry picked from commit fa848d4d0c0371cdbf39265b6528f4c61bc02c7d)
DeltaFile
+10-5libexec/rtld-elf/rtld.c
+10-51 files

FreeBSD/src deb4c73sys/powerpc/aim mmu_radix.c

powerpc/radix: acquire the pmap lock in mmu_radix_extract()

mmu_radix_extract() walks the page tables without holding the pmap lock,
unlike its hash MMU counterpart moea64_extract(). A concurrent unmap can
free and recycle the page table page being walked, so the read returns
whatever now occupies that memory and the caller gets a physical address
that never existed.

That is how mmu_radix_sync_icache() came to hand a bogus address to
__syncicache() and panic the machine. Commit 1574ca1955f5 worked around
it by taking the pmap lock in mmu_radix_sync_icache(), but the machine
independent callers of pmap_extract() - vm_sync_icache(), proc_rwmem()
and the vslock() paths - remain exposed to the same failure.

Rename the existing body to mmu_radix_extract_locked(), which asserts the
lock, and make mmu_radix_extract() a thin wrapper that acquires it.
mmu_radix_sync_icache() already holds the pmap lock, so it calls the
locked variant directly and neither recurses nor reacquires the lock once
per page.

    [7 lines not shown]
DeltaFile
+15-5sys/powerpc/aim/mmu_radix.c
+15-51 files

FreeBSD/src ab2e484sys/powerpc/aim mmu_radix.c

powerpc/radix: take the pmap lock in mmu_radix_sync_icache()

mmu_radix_sync_icache() walked the page tables with an unlocked
pmap_extract() and passed the result straight to PHYS_TO_DMAP(),
checking only that it was non-zero.  Nothing keeps the mapping - or the
page table page holding it - alive across that window: if another thread
of the same process tears a mapping down concurrently, the page table
page can be freed and reused, so pmap_extract() reads arbitrary memory
and returns a bogus physical address.  __syncicache() then dereferences
an unmapped direct map address and the kernel takes a data storage
interrupt:

  fatal kernel trap:
     exception       = 0x300 (data storage interrupt)
     virtual address = 0xc003317ca6022a00
     dsisr           = 0x40000000
     srr0            = 0xc000000000f59460 (__syncicache)
     lr              = 0xc000000000f23588 (mmu_radix_sync_icache)
            pid = 23878, comm = skyframe-evaluator-

    [27 lines not shown]
DeltaFile
+2-0sys/powerpc/aim/mmu_radix.c
+2-01 files

FreeBSD/src e77d5a7sys/powerpc/aim mmu_radix.c

powerpc/radix: acquire the pmap lock in mmu_radix_extract()

mmu_radix_extract() walks the page tables without holding the pmap lock,
unlike its hash MMU counterpart moea64_extract(). A concurrent unmap can
free and recycle the page table page being walked, so the read returns
whatever now occupies that memory and the caller gets a physical address
that never existed.

That is how mmu_radix_sync_icache() came to hand a bogus address to
__syncicache() and panic the machine. Commit 1574ca1955f5 worked around
it by taking the pmap lock in mmu_radix_sync_icache(), but the machine
independent callers of pmap_extract() - vm_sync_icache(), proc_rwmem()
and the vslock() paths - remain exposed to the same failure.

Rename the existing body to mmu_radix_extract_locked(), which asserts the
lock, and make mmu_radix_extract() a thin wrapper that acquires it.
mmu_radix_sync_icache() already holds the pmap lock, so it calls the
locked variant directly and neither recurses nor reacquires the lock once
per page.

    [7 lines not shown]
DeltaFile
+15-5sys/powerpc/aim/mmu_radix.c
+15-51 files

FreeBSD/src 191bfb6sys/powerpc/aim mmu_radix.c

powerpc/radix: take the pmap lock in mmu_radix_sync_icache()

mmu_radix_sync_icache() walked the page tables with an unlocked
pmap_extract() and passed the result straight to PHYS_TO_DMAP(),
checking only that it was non-zero.  Nothing keeps the mapping - or the
page table page holding it - alive across that window: if another thread
of the same process tears a mapping down concurrently, the page table
page can be freed and reused, so pmap_extract() reads arbitrary memory
and returns a bogus physical address.  __syncicache() then dereferences
an unmapped direct map address and the kernel takes a data storage
interrupt:

  fatal kernel trap:
     exception       = 0x300 (data storage interrupt)
     virtual address = 0xc003317ca6022a00
     dsisr           = 0x40000000
     srr0            = 0xc000000000f59460 (__syncicache)
     lr              = 0xc000000000f23588 (mmu_radix_sync_icache)
            pid = 23878, comm = skyframe-evaluator-

    [27 lines not shown]
DeltaFile
+2-0sys/powerpc/aim/mmu_radix.c
+2-01 files

FreeBSD/src cb1ee0csys/kern vfs_lookup.c

vfs_lookup_cross_mount(): fix missing LK_CANRECURSE

This was a rather dumb miss on my part in commit 42442d7a6e.
LK_CANRECURSE is clearly needed in any case in which the covered vnode
is held exclusive across the call to VFS_ROOT(), regardless of whether
it was initially held exclusive or upgraded.  The commit message for
that change also noted that unionfs lookup only worked without
LK_CANRECURSE due to a coincidence of the then-current unionfs
implementation.  As it happens, said coincidence was recently removed
in commit b952606b4f ("unionfs_lock(): eliminate LK_CANRECURSE special-
case").

PR:             298201
Reported by:    olivier
Fixes:          42442d7a6e "Generalize the VV_CROSSLOCK logic in
vfs_lookup"
Reviewed by:    kib, markj, pho
Tested by:      pho
Differential Revision:  https://reviews.freebsd.org/D59494

    [2 lines not shown]
DeltaFile
+8-4sys/kern/vfs_lookup.c
+8-41 files

FreeBSD/src 23152casys/kern vfs_lookup.c

vfs_lookup_cross_mount(): fix missing LK_CANRECURSE

This was a rather dumb miss on my part in commit 42442d7a6e.
LK_CANRECURSE is clearly needed in any case in which the covered vnode
is held exclusive across the call to VFS_ROOT(), regardless of whether
it was initially held exclusive or upgraded.  The commit message for
that change also noted that unionfs lookup only worked without
LK_CANRECURSE due to a coincidence of the then-current unionfs
implementation.  As it happens, said coincidence was recently removed
in commit b952606b4f ("unionfs_lock(): eliminate LK_CANRECURSE special-
case").

PR:             298201
Reported by:    olivier
Fixes:          42442d7a6e "Generalize the VV_CROSSLOCK logic in
vfs_lookup"
Reviewed by:    kib, markj, pho
Tested by:      pho
Differential Revision:  https://reviews.freebsd.org/D59494

    [2 lines not shown]
DeltaFile
+8-4sys/kern/vfs_lookup.c
+8-41 files

FreeBSD/src f6ae5b1. configure, cli cmd_debug.cpp

kyua: import kyua-0.15.0-rc1

This change adds kyua kyua-0.15.0-rc1 from [upstream][1].

The kyua-0.15.0-rc1 artifact was been verified by [SHA256 checksum][3].

This release incorporates items upstreamed from FreeBSD src and uses C++
attributes (`[[maybe_unused]]` and `[[noreturn]]`) instead of ad hoc
equivalents.

More information about the release (from a high level) can be found in
the [release notes][4].

Updated via [`update_kyua.sh`][4] `update_kyua.sh 0.15.0-rc1 kyua-0.15.0`.

1: https://github.com/freebsd/kyua/releases/download/kyua-0.15.0-rc1/kyua-0.15.0-rc1.tar.gz
2: https://github.com/freebsd/kyua/releases/download/kyua-0.15.0-rc1/kyua-0.15.0-rc1.tar.gz.sha256
3: https://github.com/freebsd/kyua/blob/kyua-0.15.0-rc1/NEWS.md
4: https://codeberg.org/ngie/freebsd-powertools:shell/update_kyua.sh@10a04edb
DeltaFile
+44-150configure
+82-1cli/cmd_debug.cpp
+0-64m4/compiler-features.m4
+13-13engine/scheduler.hpp
+12-12engine/scheduler_test.cpp
+24-0utils/process/child.cpp
+175-24035 files not shown
+325-34041 files

FreeBSD/src 2d20de9usr.sbin/nfsuserd nfsuserd.c

nfsuserd.c: Fix handling where pw_name/gr_name differ from lookup name

When an NSS backend returns a canonical pw_name or gr_name that differs from
the lookup name supplied by the NFSv4 upcall, nfsuserd stores the successful
mapping in the kernel cache under the canonical name instead of the requested
name.

This causes the retry lookup performed by nfsv4_strtouid() or
nfsv4_strtogid() to miss the newly inserted cache entry, resulting in the
default UID/GID being returned although the NSS lookup itself succeeded.

PR:     296753

(cherry picked from commit 1771ab245c2341033f0cee3bd098c76888cf3515)
DeltaFile
+4-2usr.sbin/nfsuserd/nfsuserd.c
+4-21 files

FreeBSD/src 45198c6usr.sbin/nfsuserd nfsuserd.c

nfsuserd.c: Fix handling where pw_name/gr_name differ from lookup name

When an NSS backend returns a canonical pw_name or gr_name that differs from
the lookup name supplied by the NFSv4 upcall, nfsuserd stores the successful
mapping in the kernel cache under the canonical name instead of the requested
name.

This causes the retry lookup performed by nfsv4_strtouid() or
nfsv4_strtogid() to miss the newly inserted cache entry, resulting in the
default UID/GID being returned although the NSS lookup itself succeeded.

PR:     296753

(cherry picked from commit 1771ab245c2341033f0cee3bd098c76888cf3515)
DeltaFile
+4-2usr.sbin/nfsuserd/nfsuserd.c
+4-21 files

FreeBSD/src 5cb9699. Makefile.in configure, admin config.sub ltmain.sh

kyua: import kyua-0.15.0-beta1

This change adds kyua kyua-0.15.0-beta1 from [upstream][1].

The kyua-0.15.0-beta1 artifact was been verified by [SHA256 checksum][3].

This change contains a number of new features and bugfixes, as well as
the official upstreaming of several features previously committed to the
FreeBSD src tree.

More information about the release (from a high level) can be found in
the [release notes][4].

Updated via [`update_kyua.sh`][4] `update_kyua.sh 0.15.0-beta1 kyua-0.15.0`.

1: https://github.com/freebsd/kyua/releases/download/kyua-0.15.0-beta1/kyua-0.15.0-beta1.tar.gz
2: https://github.com/freebsd/kyua/releases/download/kyua-0.15.0-beta1/kyua-0.15.0-beta1.tar.gz.sha256
3: https://github.com/freebsd/kyua/blob/kyua-0.15.0-beta1/NEWS.md
4: https://codeberg.org/ngie/freebsd-powertools:shell/update_kyua.sh@10a04edb
DeltaFile
+24,484-0configure
+11,524-0admin/ltmain.sh
+11,024-0Makefile.in
+8,488-0m4/libtool.m4
+2,907-0bootstrap/testsuite
+1,802-0admin/config.sub
+60,229-0193 files not shown
+73,499-2,207199 files

FreeBSD/src ac2d088. INSTALL.md configure, admin ltmain.sh config.guess

atf: import atf-0.26-rc1

This change adds atf atf-0.26-rc1 from [upstream][1].

The atf-0.26-rc1 artifact was been verified by [SHA256 checksum][3].

This release contains the upstreamed version of `require.kmods` support
provided by des@ in [freebsd at 83a1ee57][require-kmods-support].

More information about the release (from a high level) can be found in
the [release notes][4].

Updated via [`update_atf.sh`][4] `update_atf.sh 0.26-rc1 atf-0.26`.

1: https://github.com/freebsd/atf/releases/download/atf-0.26-rc1/atf-0.26-rc1.tar.gz
2: https://github.com/freebsd/atf/releases/download/atf-0.26-rc1/atf-0.26-rc1.tar.gz.sha256
3: https://github.com/freebsd/atf/blob/atf-0.26-rc1/NEWS.md
4: https://codeberg.org/ngie/freebsd-powertools:shell/update_atf.sh@10a04edb
require-kmods-support: https://cgit.freebsd.org/src/commit/?id=83a1ee578c9d1ab7013e997289c7cd470c0e6902
DeltaFile
+938-1,490admin/config.sub
+597-932admin/config.guess
+159-601m4/libtool.m4
+243-426configure
+80-245admin/ltmain.sh
+44-72INSTALL.md
+2,061-3,76625 files not shown
+2,515-3,86431 files

FreeBSD/src a6deeaasys/cddl/contrib/opensolaris/uts/common/sys dtrace_impl.h, sys/cddl/dev/dtrace/aarch64 dtrace_isa.c dtrace_asm.S

dtrace/arm64: Fix copyout and copyoutstr

Calling dtrace_copy and dtrace_copystr with the kaddr and uaddr
arguments inversed does not work with PAN. Rename them
dtrace_copyin_pan and dtrace_copyinstr_pan, respectively, and
implement dtrace_copyout_pan and dtrace_copyoutstr_pan.

Avoid excessive faulting by checkin DTrace's CPU flags. Implement the
trick from OpenSolaris/Illumos of only checking the flags when
crossing into a new page, altough more effectively by examining the
vaddr instead of the count.

Reviewed by:    markj
MFC after:      3 weeks
Differential Revision:  https://reviews.freebsd.org/D59449
DeltaFile
+62-6sys/cddl/dev/dtrace/aarch64/dtrace_asm.S
+4-4sys/cddl/dev/dtrace/aarch64/dtrace_isa.c
+7-0sys/cddl/contrib/opensolaris/uts/common/sys/dtrace_impl.h
+73-103 files

FreeBSD/src 49bb214share/misc committers-src.dot

committers-src: add myself (seuros@) with adrian as mentor

Reviewed by:    adrian
Differential Revision:  https://reviews.freebsd.org/D59861
DeltaFile
+2-0share/misc/committers-src.dot
+2-01 files

FreeBSD/src 15efd93share/misc committers-src.dot

add nprice to committers-src

Approved by:    adrian (mentor)
Reviewed by:    adrian
Differential Revision:  https://reviews.freebsd.org/D59860

Signed-off-by: Nick Price <nprice at FreeBSD.org>
DeltaFile
+2-0share/misc/committers-src.dot
+2-01 files

FreeBSD/src 9401bfbsbin/hastd proto_socketpair.c proto_impl.h

hastd: Use fixed-length protocol names

All communication between hastd nodes and internally between hastd and
its worker children passes through the same pair of send / receive
functions.  The receive function uses recv(2) with the MSG_WAITALL flag,
which in theory means we should never get a short read.  However, when
handing off a socket to a worker child, we also pass a variable-length
string identifying the type of socket we're passing, and reading this
string relies on a short read.  This used to work because the arrival of
the descriptor would interrupt the recv(2) call, but this bug was fixed
when the AF_UNIX code was rewritten a while ago and hastd has been
broken ever since.

Fixing the length of the protocol name to four characters including the
terminating null solves the short-read bug by never requiring a short
read (nothing else in hastd requires one).

Note that this issue appears to have been reported independently first
by Alessandro Sagratini in PR 292322 and then by Martin Vidovic in

    [11 lines not shown]
DeltaFile
+5-10sbin/hastd/proto.c
+1-1sbin/hastd/proto_socketpair.c
+1-1sbin/hastd/proto_impl.h
+7-123 files

FreeBSD/src e4b16e7sbin/hastd nv.c

hastd: Ensure nvpair padding is initialized

The proto-libnv implementation embedded in hastd pads names and values
out to the nearest multiple of eight bytes, but leaves the padding
uninitialized, leaking up to 14 bytes of recycled heap per pair in a
message.

While here, switch from bcopy() to memcpy().

MFC after:      3 days
Reviewed by:    kevans, emaste
Differential Revision:  https://reviews.freebsd.org/D59343

(cherry picked from commit 911bda7cffbf358c4e83ea05cfe980d429aff61c)
DeltaFile
+3-3sbin/hastd/nv.c
+3-31 files

FreeBSD/src 1e00200contrib/unbound config.h.in configure, contrib/unbound/services authzone.c

unbound: Update to 1.26.1

Release notes at
    https://community.nlnetlabs.nl/t/unbound-1-26-1-released

Merge commit '120aa088f4807126af42a652a07c5090e7294fcf'

Security:       CVE-2026-77860
Security:       CVE-2026-77955
Security:       CVE-2026-78227
Security:       CVE-2026-80225
Security:       CVE-2026-81634
Security:       CVE-2026-81642
Security:       CVE-2026-82717
Security:       CVE-2026-82720
Security:       CVE-2026-85501
(cherry picked from commit 1fb9c5ffe25fcba0857c4fdf6ed19ca5bf6bc858)
DeltaFile
+3,518-3,462contrib/unbound/util/configlexer.c
+1,936-2,732contrib/unbound/configure
+2,070-2,037contrib/unbound/util/configparser.c
+189-199lib/libunbound/config.h
+186-196contrib/unbound/config.h.in
+177-67contrib/unbound/services/authzone.c
+8,076-8,69352 files not shown
+8,842-8,93958 files