FreeBSD/src ea130fasys/dev/virtio/network if_vtnet.c if_vtnetvar.h

virtio_net: Use bus_dma for command/ack buffers

While the majority of virtio platforms will be fully coherent, some may
require cache maintenance or other specific device memory handling (eg for
secure partitioning). Using bus_dma allows for these usecases.

The virtio buffers are marked as coherent; this should ensure that sync
calls are no-ops in the common cases.

Reviewed by:    andrew
Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D55564
DeltaFile
+285-65sys/dev/virtio/network/if_vtnet.c
+6-0sys/dev/virtio/network/if_vtnetvar.h
+291-652 files

FreeBSD/src 8193fa3sys/dev/virtio/network if_vtnet.c if_vtnetvar.h

virtio_net: Use bus_dma for rxq/txq buffers

While the majority of virtio platforms will be fully coherent, some may
require cache maintenance or other specific device memory handling (eg for
secure partitioning). Using bus_dma allows for these usecases.

The virtio buffers are marked as coherent; this should ensure that sync
calls are no-ops in the common cases.

Reviewed by:    andrew
Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D55492
DeltaFile
+281-17sys/dev/virtio/network/if_vtnet.c
+10-0sys/dev/virtio/network/if_vtnetvar.h
+291-172 files

FreeBSD/src 8fdaa1bsys/kern subr_busdma_bounce.c

busdma_bounce: Allocate bounce buffers as unprotected

Reviewed by:    andrew
Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D56519
DeltaFile
+3-3sys/kern/subr_busdma_bounce.c
+3-31 files

FreeBSD/src b1af054sys/fs/nfsserver nfs_nfsdserv.c

nfs_nfsdserv.c: Fix setting of birthtime for some ZFS pools

Some ZFS pools do not support va_birthtime and will return
EINVAL when a VOP_SETATTR() of it is attempted.  The MacOS
NFSv4 client sets va_birthtime (TimeCreate) in the same
Setattr with ctime/mtime and other attributes after a new
file is created.  The EINVAL failure leaves these new files
messed up (mode == 0).

This patch pretends the setting of TimeCreate succeeded if
ctime/mtime were also set in the same Setattr RPC, which
resolves the problem for the MacOS client.

If this fix is not sufficient, a new pathconf name to detect
if a file system supports birthtime may be needed.

PR:     296066
Tested by:      Will <freebsd.geography231 at slmails.com>
MFC after:      2 weeks
DeltaFile
+10-0sys/fs/nfsserver/nfs_nfsdserv.c
+10-01 files

FreeBSD/src 06d64eesys/arm64/arm64 gicv5_its.c, sys/conf files.arm64

arm64: Add an initial GICv5 ITS driver

Add a driver to support the GICv5 interrupt translation service (ITS).
The ITS is responsible to handling ITS events & translating them to an
interrupt to be delivered to the interrupt routing service (IRS).

An example event is a MSI or MSI-X is delivered. The ITS will generate
an LPI depending on which device sent the interrupt and the value the
device wrote.

This is a similar concept to the GICv3 ITS, however the implementation
details are different so it needs a new driver.

Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D54251
DeltaFile
+1,239-0sys/arm64/arm64/gicv5_its.c
+1-0sys/conf/files.arm64
+1,240-02 files

FreeBSD/src cbef29bsys/arm64/arm64 gicv5_iwb.c, sys/conf files.arm64

arm64: Add an initial GICv5 IWB driver

Add a driver to support the GICv5 interrupt wire bridge (IWB). The IWB
translates the change in state of an input wire and sends a MSI to
the interrupt translation service (ITS) to be translated to an LPI.

Unlike other MSI sources each wire has a fixed Event ID value it will
write in the MSI data.

Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D54252
DeltaFile
+561-0sys/arm64/arm64/gicv5_iwb.c
+1-0sys/conf/files.arm64
+562-02 files

FreeBSD/src cd94485sys/arm64/arm64 cpu_feat.c, sys/arm64/include cpu_feat.h

arm64: Add FEAT_ALWAYS_ENABLE to cpu_feat

A use for it has been found in the GICv5 driver where we need to read
the Interrupt Affinity ID early in the boot on the secondary CPUs.

Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D54249
DeltaFile
+12-10sys/arm64/arm64/cpu_feat.c
+6-1sys/arm64/include/cpu_feat.h
+18-112 files

FreeBSD/src c84261dsys/arm64/arm64 gicv5.c gicv5reg.h, sys/conf files.arm64

arm64: Add an initial GICv5 driver

Add an initial driver for the GICv5 interrupt controller.

This provides host-only support for the GICv5 interrupt controller. It
is specified in the ARM-AES-0070 document & based on version 00eac0.

In the GICv5 there are 3 interrupt spaces: PPI, SPI, and LPI. Unlike
previous interrupt controllers they don't share a single interrupt
ID range, so PPI IRQ 1 and SPI IRQ 1 are different interrupts. There
is a common irqsrc stricture that encodes this information as it is
common across the interrupt types.

Unlike previous GIC versions there are no software generated interrupts
that can target a configurable collection of CPUs. These have been
replaced with LPIs, where each CPU will have one allocated for each
IPI type.

This driver handles the CPU interface and interrupt routing service

    [6 lines not shown]
DeltaFile
+1,611-0sys/arm64/arm64/gicv5.c
+711-0sys/arm64/arm64/gicv5reg.h
+300-0sys/arm64/arm64/gicv5_fdt.c
+71-0sys/arm64/arm64/gicv5var.h
+2-0sys/conf/files.arm64
+2,695-05 files

FreeBSD/src a9e12d3sys/arm64/include _armreg.h

arm64: Support building sys/sysl instructions

Add support to build system instructions from a macro. These are based
on the existing support for msr/mrs instructions with adjustments for
the different instruction format.

Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D57017
DeltaFile
+28-0sys/arm64/include/_armreg.h
+28-01 files

FreeBSD/src fd1ee28share/man/man4 uvideo.4 Makefile

uvideo.4: Initial manual page

Fixes:                  b711ef9c75ba (import uvideo)
Reviewed by:            0mp, bapt, kevans
Differential Revision:  https://reviews.freebsd.org/D57622
DeltaFile
+39-0share/man/man4/uvideo.4
+1-0share/man/man4/Makefile
+40-02 files

FreeBSD/src 1db695eshare/man/man5 style.mdoc.5

style.mdoc.5: Document Nd style

The Nd macro takes the rest of the line as an argument,
so there is no need for extra quoting.

MFC after:      3 days

(cherry picked from commit 4ef1a73c22f8cd07f733bdeb6ff49da28ea8aa93)
DeltaFile
+9-2share/man/man5/style.mdoc.5
+9-21 files

FreeBSD/src ca8a1c3sys/kern subr_witness.c

witness: add tunables debug.witness.lock_order_{data_count,hash_size}

Add tunable debug.witness.lock_order_data_count to allow adjusting the
number of witness lock order data entries (stacks) without recompiling
the kernel.  This may help to display stacks when a lock order reversal
is reported but the number of entries is exhausted before recording the
first lock order, by allowing the user to reboot with an adjusted
tunable and try again.

Tunable debug.witness.lock_order_hash_size is also provided to allow the
hash table load factor to be managed, though that is not required.

Also tweak witness_lock_order_add to avoid computing a hash when it
won't be needed because the lock order data entries are exhausted.

Reviewed by:    kib, markj
Sponsored by:   Dell Inc.
Differential Revision:  https://reviews.freebsd.org/D57600
DeltaFile
+32-7sys/kern/subr_witness.c
+32-71 files

FreeBSD/src 08180f1sys/kern subr_witness.c

witness: actually set read-only tunables in time for witness_startup

SYSCTL_XXX with CTLFLAG_RDTUN and without CTLFLAG_NOFETCH should not be
used for values that are needed before SI_SUB_KLD.  Otherwise they are
tuned after they are needed.  Set CTLFLAG_RDTUN | CTLFLAG_NOFETCH for
the debug.witness.witness_count and debug.witness.skipspin sysctls and
add separate tunables for them, which run at SI_SUB_TUNABLES time, i.e.,
in time for witness_startup.

Reviewed by:    kib, markj
Sponsored by:   Dell Inc.
Differential Revision:  https://reviews.freebsd.org/D57613
DeltaFile
+13-7sys/kern/subr_witness.c
+13-71 files

FreeBSD/src 5726807sys/fs/nfsclient nfs_clvnops.c

nfs_clvnops.c: Fix the case where va_flags are being cleared

Commits c5d72d2 and 3b6d4c6 broke the case where the
archive/hidden/system attributes are being set false
(UF_ARCHIVE, UF_HIDDEN or UF_SYSTEM bits being cleared.)
and the NFS server does not support those attributes.
These patches only checked for support if the
archive/hidden/system attributes were non-zero.

This patch fixes the problem.

PR:     296088
Tested by:      Joshua Kinard <freebsd at kumba.dev>
MFC after:      1 week
Fixes:  c5d72d29fe0e ("nfsv4: Add support for the NFSv4 hidden and system attributes")
DeltaFile
+3-6sys/fs/nfsclient/nfs_clvnops.c
+3-61 files

FreeBSD/src bb14ba3lib/libc/gen daemon.3

daemon(3): Note about environment after calling daemon()

While here, fix missing comma typo.

Reviewed by:    0mp, ziaee
Approved by:    0mp, ziaee
MFC after:      3 days
Obtained from:  https://github.com/apple-oss-distributions/libc (partially)
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D57384
DeltaFile
+24-2lib/libc/gen/daemon.3
+24-21 files

FreeBSD/src 13184a6share/mk bsd.sys.mk

build: provide a FORTIFY_SOURCE.<src file> override

For native files we can do more minimal fixes to avoid this large of a
hammer, but for third party files it may not be worth the effort to try
and patch them.  NetBSD has the original _FORTIFY_SOURCE implementation
that ours is based on, for instance, but tests sourced from there can't
do an __ssp_real(foo) without being certain that `foo` actually has a
fortified definition.

This change does always define _FORTIFY_SOURCE as a result, so gate it
on CFLAGS not already containing _FORTIFY_SOURCE definitions.

This re-applies c46a0b59071614, but without re-defining _FORTIFY_SOURCE
needlessly.

PR:             294881
Reviewed by:    markj, sjg (both previous version)
Differential Revision:  https://reviews.freebsd.org/D57356
DeltaFile
+13-6share/mk/bsd.sys.mk
+13-61 files

FreeBSD/src 61e2ffdlib/libusb libusb.h

libusb: Sync libusb_class_code with upstream

This reflects the difference from the upstream libusb code.
See: https://github.com/libusb/libusb/blob/master/libusb/libusb.h

Reviewed by:    adrian
Event:          BSDCan 2026
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57620
DeltaFile
+5-0lib/libusb/libusb.h
+5-01 files

FreeBSD/src e290363sys/net iflib.c

iflib: Fix mbufs leaked by 0 len packets emitted from the if driver

Some interface drivers, notably bnxt, can insert 0 length packets onto
their receive queues when certain conditions are met, such as discarding
packets in the case of bnxt.

When this packet gets processed by assemble_segments(), The solitary
mbuf on the queue that composes it consist of a single zero length
fragment. The loop in assemble_segments() doesn't seem to expect
that a 0 length fragment can exist in the iri_frags list without a
non-zero length header preceding it. In this situation, without filter
intervention rxd_frag_to_sd() returns a pointer to the corresponding
mbuf in the rxq, where it is matched as a zero-length fragment and
immediately discarded without freeing as mh has not yet been assigned.

This change corrects this behavior by falling through the mh == NULL
case and freeing m on the condition that it is not NULL before
continuing the loop.


    [3 lines not shown]
DeltaFile
+4-4sys/net/iflib.c
+4-41 files

FreeBSD/src 6d4fafcsys/dev/ntsync ntsync.c

ntsync(9): do not double-free obj when finstall() failed

(cherry picked from commit 1491ab351b45b1c727eeed40027f7b5074b19ff5)
DeltaFile
+1-0sys/dev/ntsync/ntsync.c
+1-01 files

FreeBSD/src 1673a83sys/dev/ntsync ntsync.c

ntsync(9): free wait state on error from copyin of the object's array

(cherry picked from commit 281e350942b26b054ba5bc820c6aae4ae0e03a38)
DeltaFile
+3-1sys/dev/ntsync/ntsync.c
+3-11 files

FreeBSD/src 7d69db2sys/dev/ntsync ntsync.c ntsyncvar.h

ntsync(9): properly handle timeouts

(cherry picked from commit 96759ab67a42226679675e24e35549aea2aa49e0)
DeltaFile
+12-4sys/dev/ntsync/ntsync.c
+1-0sys/dev/ntsync/ntsyncvar.h
+13-42 files

FreeBSD/src f6ea5e1sys/dev/ntsync linux_ntsync.c

linux_ntsync(9): check the file type before calling native ntsync(9)

(cherry picked from commit 59b0df3441a9c71580445fed579d4432dce95115)
DeltaFile
+36-0sys/dev/ntsync/linux_ntsync.c
+36-01 files

FreeBSD/src c98e563libexec/rtld-elf/tests parse_integer_test.c Makefile

rtld-elf: add some tests for parse_integer()

(cherry picked from commit 3eafe0188410dcccb21c28a4c2e8f19c68861c76)
DeltaFile
+35-0libexec/rtld-elf/tests/parse_integer_test.c
+10-0libexec/rtld-elf/tests/Makefile
+45-02 files

FreeBSD/src 939a39dlibexec/rtld-elf rtld.c

rtld parse_integer(): support binary, octal, and hex C notations

(cherry picked from commit 4249a9bc098dd9e32105a2965e76abd702de4d4a)
DeltaFile
+34-9libexec/rtld-elf/rtld.c
+34-91 files

FreeBSD/src 17cf776sys/dev/mlx5/mlx5_en mlx5_en_main.c

mlx5en: guard against empty eth_proto_oper mask

eth_proto_oper is used to derive the active media mode, but an empty
mask leaves no valid bit for ilog2() to consume. Treat this as an
invalid carrier update, reset the active media state, and report the
unexpected PTYS value.

Reviewed by:    kib
Tested by:      Wafa Hamzah <wafah at nvidia.com>
MFC after:      1 week
Sponsored by:   NVIDIA Networking
DeltaFile
+7-0sys/dev/mlx5/mlx5_en/mlx5_en_main.c
+7-01 files

FreeBSD/src 0e2175ccontrib/ofed/libmlx5 mlx5.c, sys/dev/mlx5/mlx5_core mlx5_main.c

libmlx5: sync PCI device allowlist with mlx5_core_pci_table

Userspace mlx5_driver_init() only attached when vendor/device matched
hca_table, while the kernel already probed additional Mellanox PCI IDs
That mismatch prevented libibverbs from loading the mlx5 provider on
those HCAs.

Extend hca_table to mirror mlx5_core_pci_table and add cross-references
so future kernel ID additions are paired with a userspace update.

Reviewed by:    kib
Tested by:      Wafa Hamzah <wafah at nvidia.com>
Sponsored by:   Nvidia networking
MFC after:      1 week
DeltaFile
+19-0contrib/ofed/libmlx5/mlx5.c
+4-0sys/dev/mlx5/mlx5_core/mlx5_main.c
+23-02 files

FreeBSD/src 49b7836sys/dev/mlx5/mlx5_core mlx5_port.c

mlx5: Add missing speeds translation

Reviewed by:    kib
Tested by:      Wafa Hamzah <wafah at nvidia.com>
Sponsored by:   Nvidia networking
MFC after:      1 week
DeltaFile
+3-0sys/dev/mlx5/mlx5_core/mlx5_port.c
+3-01 files

FreeBSD/src b3c09afsys/ofed/drivers/infiniband/core ib_sysfs.c, sys/ofed/include/rdma ib_verbs.h

ibcore: Add support for XDR link speed.

Add new IBTA speed XDR, supporting signaling rate of 200Gb.

Reviewed by:    kib
Tested by:      Wafa Hamzah <wafah at nvidia.com>
MFC after:      1 week
Sponsored by:   NVIDIA Networking
Differential revision: https://reviews.freebsd.org/D57085
DeltaFile
+4-0sys/ofed/drivers/infiniband/core/ib_sysfs.c
+2-1sys/ofed/include/rdma/ib_verbs.h
+6-12 files

FreeBSD/src e5d8b77sys/dev/bnxt/bnxt_re ib_verbs.c, sys/dev/irdma irdma_kcompat.c

RDMA: Fix link active_speed size

According to the IB spec active_speed size should be u16 and not u8 as
before. Changing it to allow further extensions in offered speeds.

Linux commit:
376ceb31ff87 RDMA: Fix link active_speed size

Reviewed by:    kib
Tested by:      Wafa Hamzah <wafah at nvidia.com>
MFC after:      1 week
Sponsored by:   NVIDIA Networking
Differential revision: https://reviews.freebsd.org/D57084
DeltaFile
+3-3sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c
+3-2sys/dev/bnxt/bnxt_re/ib_verbs.c
+2-1sys/ofed/drivers/infiniband/core/ib_uverbs_std_types_device.c
+1-1sys/dev/qlnx/qlnxr/qlnxr_verbs.c
+1-1sys/dev/irdma/irdma_kcompat.c
+1-1sys/ofed/include/rdma/ib_verbs.h
+11-96 files

FreeBSD/src 51f313dsys/net if_media.h ieee8023ad_lacp.c

net/if_media.h: Add 800GBase-X and 200Gbit/s per lane support

Reviewed by:    kib
Tested by:      Wafa Hamzah <wafah at nvidia.com>
MFC after:      1 week
Sponsored by:   Nvidia networking
Differential revision: https://reviews.freebsd.org/D57083
DeltaFile
+42-0sys/net/if_media.h
+3-0sys/net/ieee8023ad_lacp.c
+45-02 files