FreeBSD/src 806adba — lib/libpfctl libpfctl.c, sys/netpfil/pf pf_nl.h

libpfctl: decode PFR_A_AF into a u8

The kernel sends PFR_A_AF as a u32, although it is documented and
parsed as a u8, and libpfctl decoded it with snl_attr_get_uint32()
straight into the u8 pfra_af.  That overwrote pfra_net, pfra_not and
pfra_fback, and left pfra_af zero on big-endian hosts.

Decode it via a temporary, and accept a u8 as well, so that the
kernel can be corrected later without breaking libpfctl.

Reviewed by:            kp
Approved by:            kp (mentor)
Fixes:                  f27e44e2e3b5 ("pf: convert DIOCRGETADDRS to netlink")
Sponsored by:           Rubicon Communications, LLC ("Netgate")
Differential Revision:  https://reviews.freebsd.org/D60110
DeltaFile
+17-1lib/libpfctl/libpfctl.c
+1-1sys/netpfil/pf/pf_nl.h
+18-22 files

FreeBSD/src 0dac2c5 — sys/contrib/openzfs/cmd/zinject translate.c, sys/contrib/openzfs/cmd/zpool zpool_main.c

Revert "zpool: Add zpool status -vv error ranges"

This reverts commit e903655c50fe2e710a4cdfe6e638454012ef6324.

The commit comes from the OpenZFS merge.

OpenZFS introduced in d2f5cb3a5 two new libraries: libbtree and
librange_tree. We don't have these in our build.

To keep diffs as minimal as possible and avoid future breakages we
should import these for the FreeBSD build with bells and whistles.

After this issue is resolved, e903655c5 can be re-committed.
DeltaFile
+25-292sys/contrib/openzfs/lib/libzfs/libzfs_pool.c
+51-182sys/contrib/openzfs/cmd/zpool/zpool_main.c
+0-173sys/contrib/openzfs/tests/zfs-tests/tests/functional/cli_root/zpool_status/zpool_status_-v.ksh
+4-75sys/contrib/openzfs/cmd/zinject/translate.c
+3-46sys/contrib/openzfs/module/zfs/zfs_znode.c
+1-23sys/contrib/openzfs/module/zfs/zfs_ioctl.c
+84-79111 files not shown
+94-88217 files

FreeBSD/src 77b7540 — sys/dev/sound/usb uaudio.c

snd_uaudio: Read the UAC2 sample rate back after setting it

Some devices only apply a new sample rate once it has been read back,
and produce no sound at all otherwise.

PR:             294803
Reported by:    tatsuki_makino at hotmail.com
Tested by:      tatsuki_makino at hotmail.com
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Reviewed by:    emaste
Differential Revision:  https://reviews.freebsd.org/D59616

(cherry picked from commit 694923501f56a5d4519f548ee06db603f9486bc7)
DeltaFile
+22-1sys/dev/sound/usb/uaudio.c
+22-11 files

FreeBSD/src 6aef93f — cddl/lib/libzfs Makefile

Revert "zfs: add btree.c to libzfs"

This reverts commit b4fdb5c236d00825c8e3ea8ffc7bc25dafb6abcf.
DeltaFile
+0-2cddl/lib/libzfs/Makefile
+0-21 files

FreeBSD/src b4fdb5c — cddl/lib/libzfs Makefile

zfs: add btree.c to libzfs

Fixes breakage from 34f9f5680 (openzfs/zfs at 1f380a4f3)
DeltaFile
+2-0cddl/lib/libzfs/Makefile
+2-01 files

FreeBSD/src 081f751 — stand/powerpc/ofw ofwfdt.c

stand/powerpc/ofw: do not truncate device tree properties to 1024 bytes

When the OpenFirmware loader flattens the firmware device tree into the
FDT it hands to the kernel (usefdt=1, i.e. on every real-mode OF system
such as pSeries LPARs and QEMU pseries guests), add_node_to_fdt() clamps
every property value to 1024 bytes.  Any larger property reaches the
kernel truncated.

On QEMU pseries the PCI host bridge's "interrupt-map" is 3584 bytes
(32 slots x 4 pins x 7 cells), so only the entries for slots 0-8 survive
and the entry for slot 9 is cut in the middle.  A PCI device in slot 9
or above therefore gets no INTx routing (irq 0), and with INVARIANTS the
partial trailing entry trips the "ofw_bus_search_intrmap: truncated map"
assertion in ofw_bus_search_intrmap() during PCI attach, panicking the
kernel as soon as such a device is present.  "ibm,drc-indexes",
"ibm,drc-names" and "ibm,drc-power-domains" are cut the same way.

Drop the clamp.  fdt_setprop() already reports a property that does not
fit into the FDT buffer, so no separate limit is needed.

    [4 lines not shown]
DeltaFile
+0-2stand/powerpc/ofw/ofwfdt.c
+0-21 files

FreeBSD/src 34f9f56 — sys/contrib/openzfs/man/man8 zstream.8, sys/contrib/openzfs/module/os/freebsd/spl acl_common.c

zfs: merge openzfs/zfs at 1f380a4f3

Notable upstream pull request merges:
 #17864 e903655c5 zpool: Add zpool status -vv error ranges
 #18820 -multiple zdb: account pending DDT-log frees in leak detection
 #18884 -multiple zio_crypt: establish platform interface; rework common
                  code to use it
 #19010 -multiple zfs_namecheck: reject '.' and '..' before a snapshot or
                  bookmark
 #19031 994fb1703 Fix metaslab count assertion in metaslab_group_alloc()
                  for small vdevs
 #19093 f5b2fc8e2 zfs_ctldir: make .zfs/snapshot/<name> btime the snapshot
                  creation time
 #19097 2dece2a34 zstream: report invalid record context without assertions
 #19102 78f49e1dd vdev_disk: simplify alignment checks for linear ABDs
 #19108 -multiple Fix permanent errors misfiled into the scrub error log
 #19110 fa4bc4dec spa_errlog: don't let one unresolvable entry hide the
                  whole error log
 #19116 b6dde8a17 zio_crypt: free the key unwrap uios when decryption fails

    [13 lines not shown]
DeltaFile
+0-2,076sys/contrib/openzfs/module/os/linux/zfs/zio_crypt.c
+0-1,809sys/contrib/openzfs/module/os/freebsd/zfs/zio_crypt.c
+1,679-0sys/contrib/openzfs/module/zfs/zio_crypt.c
+0-1,307sys/contrib/openzfs/module/os/freebsd/spl/acl_common.c
+218-158sys/contrib/openzfs/man/man8/zstream.8
+0-363sys/contrib/openzfs/module/os/freebsd/zfs/zfs_ioctl_compat.c
+1,897-5,713234 files not shown
+7,659-7,353240 files

FreeBSD/src e1c59c9 — sys/dev/cxgbe adapter.h t4_main.c

cxgbe: Report SR-IOV VF status

Retain the PF-accepted MAC and VLAN settings from the per-port t4iov
companion and expose them through the corresponding cxgbe ifnet.

Publish, snapshot, and destroy the cache under the existing adapter
synchronized-operation mechanism so status queries cannot race IOV
configuration or teardown.

Track successful t4iov attachment independently of the active VF count.
Restrict reporting to the port main VI, return an empty status for a
supported but unconfigured PF, and omit status from VF and auxiliary
VIs.

Reviewed by:    jhb
Sponsored by:   BBOX.io
Differential Revision:  https://reviews.freebsd.org/D58741
DeltaFile
+93-22sys/dev/cxgbe/t4_iov.c
+66-0sys/dev/cxgbe/t4_main.c
+10-0sys/dev/cxgbe/adapter.h
+169-223 files

FreeBSD/src fa78e1d — share/man/man4 pci.4, sys/dev/pci pci_private.h pci_iov.c

pci: Reserve bus numbers required by SR-IOV VFs

Some firmware assigns only one bus number to each PCI-PCI bridge.  This
prevents later SR-IOV VF enumeration when a VF routing ID falls on a bus
number already allocated to a sibling bridge.

Reserve only the additional bus numbers required by SR-IOV PFs.
Enumerate all directly attached functions before child drivers and
bridges attach, inspect their device_t objects for SR-IOV, and grow the
PCI bus resource through the highest possible VF routing ID.

First VF Offset and VF Stride may change when NumVFs changes.  Probe
every valid NumVFs value and preserve the original setting.  When the
upstream hierarchy uses ARI, temporarily enable the SR-IOV ARI Hierarchy
control in the lowest-numbered PF while sizing, then restore it.  Scope
active-VF detection to each conventional PCI slot; an ARI bus remains
one slot-0 hierarchy.  If firmware left VFs enabled on a device, do not
modify it and reserve only its active layout.


    [20 lines not shown]
DeltaFile
+189-0sys/dev/pci/pci.c
+9-9sys/dev/pci/pci_iov.c
+10-1share/man/man4/pci.4
+3-0sys/powerpc/ofw/ofw_pcibus.c
+3-0sys/dev/pci/pci_private.h
+214-105 files

FreeBSD/src da0067d — sbin/ipfw nat64clat.c

ipfw: guard against NULL deref with clat/plat prefixes without length

Found with:     Claude Code Sonnet 5
MFC after:      2 weeks

(cherry picked from commit 47b02ace19c53e72ad2290d974025292ff97464a)
DeltaFile
+3-0sbin/ipfw/nat64clat.c
+3-01 files

FreeBSD/src 5799049 — sys/kern imgact_elf.c

exec: Remove an unneeded capability mode check

The subsequent namei() call is relative to AT_FDCWD, and such lookups
are always disallowed in capability mode.

No functional change intended.

Reviewed by:    emaste
Differential Revision:  https://reviews.freebsd.org/D59888
DeltaFile
+0-9sys/kern/imgact_elf.c
+0-91 files

FreeBSD/src a76e986 — lib/libc/gen sysctl.3, sys/kern kern_sysctl.c

sysctl: Return ECAPMODE when trying to access sysctls in capability mode

We have always returned EPERM in this case, but it's incorrect, we
should return ECAPMODE for capability mode violations.  Fix the errno
value.

Reviewed by:    emaste
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D59887
DeltaFile
+3-0lib/libc/gen/sysctl.3
+1-1sys/kern/kern_sysctl.c
+4-12 files

FreeBSD/src c52f99a — sys/amd64/amd64 machdep.c

amd64: use WRMSRNS immediate form to update splitlock control, when available

(cherry picked from commit 20c09e6fece29dbcf4835b4dd90e969f1b9b3e59)
DeltaFile
+34-4sys/amd64/amd64/machdep.c
+34-41 files

FreeBSD/src 0dce4f2 — sys/amd64/amd64 mp_machdep.c machdep.c, sys/amd64/include md_var.h pcpu.h

amd64: cache MSR_MEMORY_CTL in pcpu

(cherry picked from commit 74d325fee2dbcb5f8541819481ce76f87c151a21)
DeltaFile
+11-0sys/amd64/amd64/initcpu.c
+3-4sys/amd64/amd64/machdep.c
+2-1sys/amd64/include/pcpu.h
+2-0sys/amd64/amd64/mp_machdep.c
+1-0sys/amd64/include/md_var.h
+19-55 files

FreeBSD/src d95433e — sys/amd64/amd64 sys_machdep.c, sys/x86/include sysarch.h

amd64: add userspace control for disabling splitlocks

(cherry picked from commit 51cea5416a2421f29d22100bc71ab6486b1dc54a)
DeltaFile
+26-1sys/amd64/amd64/sys_machdep.c
+2-0sys/x86/include/sysarch.h
+28-12 files

FreeBSD/src 6d6a824 — sys/amd64/amd64 vm_machdep.c exec_machdep.c, sys/amd64/include proc.h md_var.h

amd64: support for tracking per-thread 'disable splitlocks' state

(cherry picked from commit e318f24c0f53b52bd280b827509ad752db0497bf)
DeltaFile
+36-0sys/amd64/amd64/machdep.c
+14-0sys/amd64/amd64/pmap.c
+10-0sys/amd64/amd64/exec_machdep.c
+5-0sys/amd64/include/md_var.h
+2-0sys/amd64/include/proc.h
+2-0sys/amd64/amd64/vm_machdep.c
+69-03 files not shown
+72-09 files

FreeBSD/src ca7aa1c — sys/amd64/include proc.h

amd64: add md thread flags word

(cherry picked from commit dc975612213369f597449ced5a3c5edabc2aae6d)
DeltaFile
+1-0sys/amd64/include/proc.h
+1-01 files

FreeBSD/src b4a9afd — sys/amd64/amd64 machdep.c initcpu.c, sys/amd64/include md_var.h

amd64: calculate if hardware supports disabling splitlocks

(cherry picked from commit d8c1abb0e3409314fb89400bc85b5051649e91ab)
DeltaFile
+18-0sys/amd64/amd64/initcpu.c
+11-0sys/amd64/amd64/machdep.c
+3-0sys/amd64/include/md_var.h
+32-03 files

FreeBSD/src 77a99f3 — sys/amd64/amd64 trap.c

amd64: handle #AC in kernel mode

(cherry picked from commit c6d7235ac15d208435a839bf847dd898d9b1d9fe)
DeltaFile
+8-0sys/amd64/amd64/trap.c
+8-01 files

FreeBSD/src 54cb4bf — sys/amd64/include cpufunc.h

amd64: gate WRMSRNS immediate form on compiler support

(cherry picked from commit 53fe018630d06eeef6791cfacaa6dc9acdf4d669)
DeltaFile
+10-0sys/amd64/include/cpufunc.h
+10-01 files

FreeBSD/src 61412c0 — sys/amd64/include cpufunc.h

amd64 cpufunc.h: add WRMSRNS helpers

(cherry picked from commit 4a8acccc2e59b6ac5f4068471d94b40347ebeff0)
DeltaFile
+13-0sys/amd64/include/cpufunc.h
+13-01 files

FreeBSD/src ee05a36 — sys/netpfil/pf pf_table.c, tests/sys/netpfil/pf table.sh

pf: do not loop on an address that is cleared twice in pfr_clr_astats()

pfr_clr_astats() looks up each address it is given and inserts the entry
it finds at the head of a work queue. If the same address is given more
than once, the entry is inserted twice and the second insertion makes it
its own successor. pfr_clstats_kentries() then walks the queue forever,
with the rules lock held for writing, so packet processing and every
other pf operation in that vnet stop as well. To reproduce:

pfctl -e
pfctl -t foo -T add 192.0.2.1
pfctl -t foo -T zero 192.0.2.1 192.0.2.1

Do as pfr_del_addrs() does: clear pfrke_mark on the entries named, then
queue an entry only the first time it is seen. An address given more
than once is cleared, and counted, once. Validate all addresses before
any entry is touched.

Add a regression test.

    [6 lines not shown]
DeltaFile
+34-0tests/sys/netpfil/pf/table.sh
+9-2sys/netpfil/pf/pf_table.c
+43-22 files

FreeBSD/src f084f28 — sys/netpfil/pf pf_table.c, tests/sys/netpfil/pf table.sh

pf: fix NULL dereference in pfr_set_addrs() with feedback

Since DIOCRSETADDRS was converted to netlink, pf_handle_table_set_addrs()
calls pfr_set_addrs() with a NULL size2, as the netlink interface has no
buffer to return the deleted addresses in. pfr_set_addrs() only checked
size2 for NULL at the end of the function; with PFR_FLAG_FEEDBACK set it
dereferenced it unconditionally first. pfctl sets PFR_FLAG_FEEDBACK
when run with -v, so "pfctl -v -t foo -T replace ..." panicked the
kernel with a NULL pointer dereference. To reproduce:

pfctl -e
pfctl -t foo -T add 192.0.2.1
pfctl -v -t foo -T replace 192.0.2.2

Check size2 for NULL before dereferencing it, as is already done at the
end of the function. The per-address feedback for added and changed
addresses is still copied back as before; only the list of deleted
addresses, which the netlink caller has no room for, is skipped.


    [9 lines not shown]
DeltaFile
+34-0tests/sys/netpfil/pf/table.sh
+2-2sys/netpfil/pf/pf_table.c
+36-22 files

FreeBSD/src 334e874 — share/man/man4 wsp.4

wsp.4: Canonicalize SYNOPSIS + tag SPDX

MFC after:              3 days
Reviewed by:            wulf
Differential Revision:  https://reviews.freebsd.org/D59257
DeltaFile
+8-12share/man/man4/wsp.4
+8-121 files

FreeBSD/src 3a542d8 — share/man/man4 uep.4

uep.4: Canonicalize SYNOPSIS, KERNEL CONFIGURATION

MFC after:              3 days
Reviewed by:            glebius, wulf
Differential Revision:  https://reviews.freebsd.org/D59869
DeltaFile
+19-18share/man/man4/uep.4
+19-181 files

FreeBSD/src 9d30640 — sys/dev/hwpmc hwpmc_amd.h hwpmc_mod.c, sys/sys pmc.h

hwpmc_amd: add PerfMonV2 global-control path

Add support for AMD PerfMonV2 (Family 19h+) core counters, which need
both the per-counter EVSEL enable bit and the global GLOBAL_CTL bit set
to count. Detects PerfMonV2 at init and switches to v2-specific
start/stop/interrupt handlers; older CPUs and L3/DF counters keep using
the classic path unchanged.

Adds a read-only sysctl, kern.hwpmc.amd_perfmon_v2, to report which path
is active.

Signed-off-by:  Andre Silva <andasilv at amd.com>
Reviewed by:    Ali Mashtizadeh <ali at mashtizadeh.com>
Sponsored by:   AMD
Differential Revision:  https://reviews.freebsd.org/D58256
DeltaFile
+489-18sys/dev/hwpmc/hwpmc_amd.c
+69-0sys/dev/hwpmc/hwpmc_mod.c
+11-0sys/dev/hwpmc/hwpmc_amd.h
+5-0sys/sys/pmc.h
+574-184 files

FreeBSD/src c901f93 — usr.sbin/bhyve pci_emul.c

bhyve: fix boot device ordering

EDK2's QemuBootOrderLib inspects the bootorder file provided
via fw_cfg and requires it to be NUL-terminated. Otherwise,
it rejects the supplied bootorder and falls back to its
default boot order.

Currently, bhyve registers bootorder with qemu_fwcfg_add_file()
using bootorder_len returned by open_memstream(), which excludes
the trailing NUL byte.

Fix that by passing bootorder_len + 1 to qemu_fwcfg_add_file() so
the fw_cfg payload is properly NUL-terminated.

PR:             279720
Reviewed by:    markj
Found with:     codex (gpt-5.6-sol)
MFC after:      1 week
Sponsored by:   The FreeBSD Foundation

    [3 lines not shown]
DeltaFile
+1-1usr.sbin/bhyve/pci_emul.c
+1-11 files

FreeBSD/src 34b00ed — sys/dev/hwpmc hwpmc_ibs.c

hwpmc: fix IBS fetch and op NMI handling

Service each IBS unit with a valid bit set when fetch and op share an
NMI. Otherwise, op samples can be lost. Treat the extra NMI that follows
as expected (skip it).

Reviewed by:    mhorne
Fixes:  e51ef8ae490f ("hwpmc: Initial support for AMD IBS")
Differential Revision:  https://reviews.freebsd.org/D60004
DeltaFile
+20-3sys/dev/hwpmc/hwpmc_ibs.c
+20-31 files

FreeBSD/src f3c0dcd — sys/dev/ipmi ipmi_isa.c

ipmi: Add some additional diagnostic output on errors

Add some additional diagnostic output for IPMI code,
particularly on error paths. This has been found to be helpful at
$WORK and seems generally useful, so contributing the changes back to
upstream.

Sponsored by: Dell Technologies
Reviewed by: vangyzen@
Differential Revision: https://reviews.freebsd.org/D60091
DeltaFile
+16-1sys/dev/ipmi/ipmi_isa.c
+16-11 files

FreeBSD/src 2f49e40 — lib/clang llvm.build.mk, lib/clang/include/llvm/Config Disassemblers.def AsmPrinters.def

llvm: add LoongArch target support, not enabled by default

Note there is ongoing work to add LoongArch support to the base system,
but having target support in llvm is an essential component.

This must be explicitly enabled using WITH_LLVM_TARGET_LOONGARCH.

Reviewed by:    dim
MFC after:      1 week
Differential Revision: https://reviews.freebsd.org/D59899
DeltaFile
+49-6lib/clang/libllvm/Makefile
+3-4share/man/man5/src.conf.5
+6-0lib/clang/llvm.build.mk
+3-0lib/clang/include/llvm/Config/Disassemblers.def
+3-0lib/clang/include/llvm/Config/AsmPrinters.def
+3-0lib/clang/include/llvm/Config/AsmParsers.def
+67-106 files not shown
+74-1412 files