FreeBSD/src 67be955 — sys/netgraph ng_ksocket.c

netgraph/ng_ksocket: Enter epoch on NG_SEND_DATA_ONLY

The work queued by ng_send_fn() is intentionally processed
outside of the epoch in ngthread().
It is ng_ksocket's responsibility to enter epoch if it decides
to send data from such work.

Reviewed by:    glebius
Fixes:  104827151e2a ("ng_iface: don't recursively enter epoch ...")
Differential Revision:  https://reviews.freebsd.org/D60589
DeltaFile
+8-1sys/netgraph/ng_ksocket.c
+8-11 files

FreeBSD/src b8b23cf — usr.sbin/virtual_oss/virtual_oss main.c

virtual_oss(8): Fix cuse.ko check

There is no need at all to load the cuse module to just access the tool help.

kldload always checks for permissions first returning -EPERM if the user can't
load modules and -EEXIST if the user can, but the module is already loaded.

Approved by:            christos@
Differential Revision:  https://reviews.freebsd.org/D59844
MFC after:              2 weeks

(cherry picked from commit 5aac18d0faec96c768baf1a9de63a50de3796023)
DeltaFile
+5-2usr.sbin/virtual_oss/virtual_oss/main.c
+5-21 files

FreeBSD/src 9820afb — sys/compat/linuxkpi/common/include/linux kernel.h, sys/conf std.nodebug std.debug

LinuxKPI: introduce LINUXKPI_DEBUG to enable LinuxKPI debugging

This allows us to build kernels which will (if the sysctl is enabled
too) show pr_debug() and pr_devel() output.

Enable it by default for debug kernels.

This option can later also be used for other LinuxKPI parts, like
skbuffs, netdevice, rcu, ... to conditionally compile in debugging
support to further justify its existence beyond an in-code #define.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Reviewed by:    dumbbell, emaste
Differential Revision: https://reviews.freebsd.org/D54060
DeltaFile
+4-2sys/compat/linuxkpi/common/include/linux/kernel.h
+3-0sys/conf/options
+1-0sys/conf/std.nodebug
+1-0sys/conf/std.debug
+1-0sys/conf/kmod.mk
+10-25 files

FreeBSD/src bbfd52d — sys/compat/linuxkpi/common/include/linux ww_mutex.h mutex.h, sys/compat/linuxkpi/common/src linux_work.c linux_hrtimer.c

LinuxKPI: use LINUXKPI_DEBUG to determine on witness lock tracing

LinuxKPI by default tells witness to ignore the locks, which is
unhelpful in case of panics like 'panic: sleeping thread holds lnxspin'.
While I have edited the lock initialitzation manually in the past,
make this dependent on both LINUXKPI_DEBUG and WITNESS.
Define an internal _LKPI_MTX_NOWITNESS (and equivalent for other lock
types used) and set them accordingly in kconfig.h, a file automatically
included to all LinuxKPI compiled code (like global.h). (*)
In addition, in the debug case, also define WITNESS_ALL to get file,
line, and lock name as a lock name rather than just, e.g., lnxspin.

(*) We will need another follow-up as -include ordering is currently
wrong for LinuxKPI modules. See D60207.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Reviewed by:    dumbbell
Differential Revision: https://reviews.freebsd.org/D59231
DeltaFile
+28-1sys/compat/linuxkpi/common/include/linux/kconfig.h
+5-3sys/compat/linuxkpi/common/include/linux/spinlock.h
+2-2sys/compat/linuxkpi/common/include/linux/mutex.h
+1-1sys/compat/linuxkpi/common/src/linux_work.c
+1-1sys/compat/linuxkpi/common/src/linux_hrtimer.c
+1-1sys/compat/linuxkpi/common/include/linux/ww_mutex.h
+38-94 files not shown
+42-1310 files

FreeBSD/src 863fe7a — sys/compat/linuxkpi/common/include/linux pm_runtime.h

LinuxKPI: re-implement pm_runtime.h

The original implementation was based on OpenBSD under public domain
but just defined the functions to void.
FreeBSD later extended the file with more inline functions or dealing
with differences in Linux versions.

This rework tries to group some functions, adds properly typed arguments
and return values in some cases.
It further adjusts return values based on the !CONFIG_PM expectations.

Lastly pr_debug() calls are added so we could see if/how much these
functions are used in new/other works rather than code just compiling
but the functions entirely being ignored without the knowledge of the
person porting code.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Reviewed by:    dumbbell
Differential Revision: https://reviews.freebsd.org/D58169
DeltaFile
+136-32sys/compat/linuxkpi/common/include/linux/pm_runtime.h
+136-321 files

FreeBSD/src 53beb69 — sys/compat/linuxkpi/common/include/linux device.h, sys/compat/linuxkpi/common/include/linux/device devres.h

LinuxKPI; factor out parts of device.h into device/devres.h

In [1] it was pointed out that devm_kmemdup_* have moved apparently
in Linux 7.0 into their own device/devres.h header file from device.h.
Move them and other parts (some being dependencies) along.

device/devres.h gets included from device.h so all that changes is
prototype, macro, and inline function ordering.

This should prepare us in case drivers start directly including
the sub-header.  It also helps to keep device.h more reasable.

Suggested by:   dumbbell (in D56396) [1]
MFC after:      3 days
Reviewed by:    emaste
Differential Revision: https://reviews.freebsd.org/D60213
DeltaFile
+70-0sys/compat/linuxkpi/common/include/linux/device/devres.h
+1-52sys/compat/linuxkpi/common/include/linux/device.h
+71-522 files

FreeBSD/src 3521cce — sys/compat/lindebugfs lindebugfs.c, sys/compat/linuxkpi/common/include/linux debugfs.h

lindebugfs: implement debugfs_create_devm_seqfile()

Implement debugfs_create_devm_seqfile() keyed by device and a
read function.

This was implemented months ago in order to support debugfs with mt76
but hasn't been exercised since.

The code does not really seem to belong in lindebugfs, but also does
not really fit into debugfs.h (rather fs.h?); leave it here with a
comment for now as neither dumbbell nor I could come up with a better
place.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Reviewed by:    dumbbell
Differential Revision: https://reviews.freebsd.org/D57524
DeltaFile
+42-0sys/compat/lindebugfs/lindebugfs.c
+5-0sys/compat/linuxkpi/common/include/linux/debugfs.h
+47-02 files

FreeBSD/src 33901f0 — sys/netgraph/bluetooth/drivers/ubt ng_ubt.c

ng_ubt: ignore further MediaTek USB BT devices

Following 8b21c469dbd6 add more entries for various MT BT USB VPI
combinations given we currently do not support any of them.

Suggested by:   thierry (while testing MT7920 wireless)
MFC after:      3 days
Reviewed by:    emaste, imp
Differential Revision: https://reviews.freebsd.org/D60279
DeltaFile
+10-0sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c
+10-01 files

FreeBSD/src 8a7df6c — lib/libc/tests/sys Makefile

tests/libc: only build brk_test where libc provides sbrk

Replace the exclusion list with an allowlist of the architectures
whose libc exports brk/sbrk: amd64, i386, arm and powerpc.

On aarch64, riscv and loongarch libc does not export those symbols
and the test cannot run, so do not build it there. New architectures
now default to not building the test unless brk support is added.

MFC after:      1 week
Signed-off-by:  Xiaoqiang Zhao <zhaoxiaoqiang007 at gmail.com>
Reviewed by:    ngie
Differential Revision:  https://reviews.freebsd.org/D60357
DeltaFile
+2-1lib/libc/tests/sys/Makefile
+2-11 files

FreeBSD/src d45f069 — contrib/netbsd-tests/lib/libc/gen t_dir.c, contrib/netbsd-tests/lib/libc/sys t_mlock.c

tests/libc: use an allowlist for sbrk in NetBSD-derived tests

sbrk is obsolete and libc only provides it on amd64, arm, i386 and
powerpc.  Replace the growing exclusion lists in t_dir.c and t_mlock.c
with a single positive HAVE_SBRK definition per file, so architectures
without sbrk need not be enumerated as they are added.

Signed-off-by: Xiaoqiang Zhao <zhaoxiaoqiang007 at gmail.com>
Reviewed by:    ngie
Differential Revision:  https://reviews.freebsd.org/D60358
DeltaFile
+10-4contrib/netbsd-tests/lib/libc/gen/t_dir.c
+11-3contrib/netbsd-tests/lib/libc/sys/t_mlock.c
+21-72 files

FreeBSD/src e8431fa — contrib/netbsd-tests/lib/libc/gen t_dir.c, contrib/netbsd-tests/lib/libc/sys t_mlock.c

Revert "tests/libc: use an allowlist for sbrk in NetBSD-derived tests"

Need to update the commit message.

This reverts commit 36b849b5c76406bb6d9341bfb1a7f16ae5c189c9.
DeltaFile
+3-11contrib/netbsd-tests/lib/libc/sys/t_mlock.c
+4-10contrib/netbsd-tests/lib/libc/gen/t_dir.c
+7-212 files

FreeBSD/src 36b849b — contrib/netbsd-tests/lib/libc/gen t_dir.c, contrib/netbsd-tests/lib/libc/sys t_mlock.c

tests/libc: use an allowlist for sbrk in NetBSD-derived tests

sbrk is obsolete and libc only provides it on amd64, arm, i386 and
powerpc.  Replace the growing exclusion lists in t_dir.c and t_mlock.c
with a single positive HAS_SBRK definition per file, so architectures
without sbrk need not be enumerated as they are added.

Signed-off-by: Xiaoqiang Zhao <zhaoxiaoqiang007 at gmail.com>
Reviewed by:    ngie
Differential Revision:  https://reviews.freebsd.org/D60358
DeltaFile
+10-4contrib/netbsd-tests/lib/libc/gen/t_dir.c
+11-3contrib/netbsd-tests/lib/libc/sys/t_mlock.c
+21-72 files

FreeBSD/src ef758b5 — libexec/rtld-elf rtld.c

rtld: release rtld_bind_lock around calls to .preinit_array initializers

We unlock the bind lock around .init calls anyway.  Also, the main
object cannot be unloaded.

Reported and reviewed by:       dim
PR:     298943
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D60588
DeltaFile
+5-3libexec/rtld-elf/rtld.c
+5-31 files

FreeBSD/src f877ace — sys/net if_gre.c

if_gre(4): Cleanup unused RSS macros

RSS hash calculations no longer depend on RSS macro.
Therefore, remove unused macros and its XOR fallback.

Reviewed by:    adrian
Fixes:  9c55b2e8cd6b ("rss: Enable portions of RSS globally to ...")
Differential Revision:  https://reviews.freebsd.org/D60556
DeltaFile
+0-15sys/net/if_gre.c
+0-151 files

FreeBSD/src 4639904 — libexec/rtld-elf rtld.c

rtld: fix indent

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
DeltaFile
+2-2libexec/rtld-elf/rtld.c
+2-21 files

FreeBSD/src c3ac061 — lib/libsys mount.2, sys/kern vfs_mount.c

nmount: Introduce the "check_fsid" option

See the manpage addition for rationale

Reviewed by:    ziaee, kib
Approved by:    ziaee, kib
Differential Revision:  https://reviews.freebsd.org/D59930
DeltaFile
+238-0tests/sys/vfs/nmount_check_fsid.c
+44-9sys/kern/vfs_mount.c
+29-5lib/libsys/mount.2
+5-0tests/sys/vfs/Makefile
+316-144 files

FreeBSD/src 21f2245 — sys/net if_me.c

if_me: Do not reuse gre(4)'s static sysctl OID number

if_me(4) registers its net.link.me node with the static OID number
IFT_TUNNEL, the same number if_gre(4) has used for net.link.gre since
2003, so the two tunnel drivers collide under net.link.  Until
d35c4cfad580 that only printed a warning and left two nodes with the
same number; since then sysctl_register_oid() panics, so loading if_me
after if_gre (or the other way round) takes the box down:

  kldload if_gre
  kldload if_me
  panic: sysctl: OID number(131) is already in use for 'me'

Use OID_AUTO like the other tunnel drivers.  Nothing addresses the node
by number.

Reviewed by:            ae
MFC after:              3 days
Sponsored by:           Rubicon Communications, LLC ("Netgate")
Differential Revision:  https://reviews.freebsd.org/D60536
DeltaFile
+1-1sys/net/if_me.c
+1-11 files

FreeBSD/src f627ff5 — sys/riscv/include smp.h cpu.h, sys/riscv/riscv pmap.c mp_machdep.c

riscv/pmap.c: Don't pass hartid map to 'smp_rendezvous_cpus'

The pm_active bitmask is indexed by hart IDs which can differ from
CPU IDs. `pmap_invalidate_range_svinval` assumes that the map is
indexed by CPU IDs, which is wrong and causes remote TLB invalidations
on unrelated CPUs.

Fix this by adding a routine that converts a hart-indexed bitmask
to a CPU ID-indexed bitmask. While we're here, fix a similar issue
in `pmap_active_cpus`.

Fixes:  99360212c739 ("riscv/pmap.c: Add an Svinval-aware variant of pmap_invalidate_range")
Reported by:    markj
Reviewed by:    markj, mhorne
Differential Revision:  https://reviews.freebsd.org/D60072
DeltaFile
+31-8sys/riscv/riscv/mp_machdep.c
+6-5sys/riscv/riscv/pmap.c
+3-0sys/riscv/include/cpu.h
+0-1sys/riscv/include/smp.h
+40-144 files

FreeBSD/src 05c49e2 — share/man/man4 Makefile

man: Link mgb.4 to if_mgb.4

For consistency, create a symbolic link from mgb.4 to also
if_mgb.4

Reviewed by:            #manpages, ziaee, emaste
Differential Revision:  https://reviews.freebsd.org/D60551
MFC after:              3 days
DeltaFile
+1-0share/man/man4/Makefile
+1-01 files

FreeBSD/src 7a48c3f — share/man/man9 acl.9

acl(9): expound on NFSv4 constants' meanings

This change adds missing documentation for various NFSv4 constants
supported by acl(9).

Bump `.Dd` for the change.

MFC after:      1 week
Reviewed by:    rmacklem
Differential Revision:  https://reviews.freebsd.org/D58736
DeltaFile
+18-1share/man/man9/acl.9
+18-11 files

FreeBSD/src 62e958d — sys/contrib/openzfs/module/os/freebsd/zfs sysctl_os.c

zfs: drop duplicate `vfs.zfs.metaslab.condense_pct` sysctl

`metaslab.c` already registers this tunable via `ZFS_MODULE_PARAM`, so the
`SYSCTL_UINT` here is a second registration of the same leaf. This
resulted in messages like:

```
sysctl_register_oid: can't re-use a leaf (vfs.zfs.metaslab.condense_pct)
```

Remove the duplicate sysctl registration, as upstream (OpenZFS) did.

MFC after:      1 week
Signed-off-by:  Christos Longros <chris.longros at gmail.com>
Reviewed by:    imp, mm, ngie
Differential Revision:  https://reviews.freebsd.org/D57721
DeltaFile
+0-13sys/contrib/openzfs/module/os/freebsd/zfs/sysctl_os.c
+0-131 files

FreeBSD/src 869500e — lib/lib80211 lib80211_regdomain.c

lib80211: fix build with eXpat 2.9.0

eXpat 2.9.0 deprecates XML_GetCurrentLineNumber() in favour of
XML_GetCurrentLineNumber64().  The new function behaves the same
as the old one but is not prone to 32 bit integer wrap-around.

(cherry picked from commit 657c089950a0388811c7ba3f6d3e7127c297864e)
DeltaFile
+27-26lib/lib80211/lib80211_regdomain.c
+27-261 files

FreeBSD/src 1d33717 — contrib/expat Changes, contrib/expat/doc reference.html

contrib/expat: import expat 2.9.0

Changes: https://github.com/libexpat/libexpat/blob/R_2_9_0/expat/Changes

Security:       CVE-2026-102633
Security:       CVE-2026-77214
MFC after:      3 days

(cherry picked from commit 22c3edb31297a79ec3c7bf8f906be2df11b472d2)
DeltaFile
+790-0contrib/expat/tests/props_tests.c
+681-73contrib/expat/doc/reference.html
+413-154contrib/expat/lib/xmlparse.c
+56-220contrib/expat/lib/xmltok.c
+131-39contrib/expat/tests/basic_tests.c
+102-26contrib/expat/Changes
+2,173-51247 files not shown
+2,984-86753 files

FreeBSD/src 179dfe4 — lib/lib80211 lib80211_regdomain.c

lib80211: fix build with eXpat 2.9.0

eXpat 2.9.0 deprecates XML_GetCurrentLineNumber() in favour of
XML_GetCurrentLineNumber64().  The new function behaves the same
as the old one but is not prone to 32 bit integer wrap-around.

(cherry picked from commit 657c089950a0388811c7ba3f6d3e7127c297864e)
DeltaFile
+27-26lib/lib80211/lib80211_regdomain.c
+27-261 files

FreeBSD/src 94fd9b5 — contrib/expat Changes, contrib/expat/doc reference.html

contrib/expat: import expat 2.9.0

Changes: https://github.com/libexpat/libexpat/blob/R_2_9_0/expat/Changes

Security:       CVE-2026-102633
Security:       CVE-2026-77214

(cherry picked from commit 22c3edb31297a79ec3c7bf8f906be2df11b472d2)
DeltaFile
+790-0contrib/expat/tests/props_tests.c
+681-73contrib/expat/doc/reference.html
+413-154contrib/expat/lib/xmlparse.c
+56-220contrib/expat/lib/xmltok.c
+131-39contrib/expat/tests/basic_tests.c
+102-26contrib/expat/Changes
+2,173-51247 files not shown
+2,984-86753 files

FreeBSD/src 16bc669 — sys/netinet/libalias alias_local.h alias_db.h

libalias: index fully specified inbound links by remote endpoint

Inbound lookups find the (alias address, alias port, link type) group
with a splay tree and then walk grp->full, a list of every fully
specified link in that group, comparing the remote address and port.
With redirect_addr in front of a busy server, every client connection
to public:443 lands in the same group, so each inbound packet that is
not near the head of the list walks all of it.  TCP links live up to
24 hours unless libalias sees a clean close, so the list can grow to
hundreds of thousands of entries and saturate a core at a few hundred
packets per second.

Keep the fully specified links of a group in an RB tree ordered by
(dst_addr, dst_port).  Links that share an endpoint are ordered newest
first by a per-instance insertion counter, which keeps the "most recent
link wins" behaviour of the list (tested by 3_natin:2_portoverlap).

Lookups with an unknown remote address and a known port still scan the
group.  Each link grows by 16 bytes.

    [8 lines not shown]
DeltaFile
+102-42sys/netinet/libalias/alias_db.c
+7-1sys/netinet/libalias/alias_db.h
+4-1sys/netinet/libalias/alias_local.h
+113-443 files

FreeBSD/src 7ed9a5a — sys/compat/linsysfs linsysfs.c

linux: Exposes renderD nodes and chardev in sysfs

To allow normal users to render through the render device, we expose the
renderD node. This enables Wayland applications to use hardware
acceleration when running under the Linux emulator.

Additionally, libdrm and Mesa need to look up
/sys/dev/char/<major>:<minor> and <pcidev>/drm to identify the
corresponding renderer device (e.g., a renderD device). We expose this
path as well so that libdrm can locate the renderer.

Differential Revision: https://reviews.freebsd.org/D59190

(cherry picked from commit 102adf88e6e8f83a9ab9769732d168c501f8eb6c)
DeltaFile
+56-2sys/compat/linsysfs/linsysfs.c
+56-21 files

FreeBSD/src 8c47cbc — usr.bin/hexdump odsyntax.c

hexdump: Support octal and hex for -N option

GNU hexdump supports octal and hex, we add supports for BSD style
hexdump for better compatibility.

See: https://github.com/llvm/llvm-project/pull/206581/

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

(cherry picked from commit b8f1972d51cf93ba4393d621b126dbd408423b87)
DeltaFile
+1-1usr.bin/hexdump/odsyntax.c
+1-11 files

FreeBSD/src 305c304 — lib/libthr/thread thr_init.c thr_private.h

libthr: Support disable spinloop

Like yieldloops, we shoulde be able to set _thr_spinloops to zero.
Originally, it makes us to enformce default spin time even if we try to
disable it. Make MUTEX_ADAPTIVE_SPINS a one time initialization now.

Reviewed by:    kib
MFC after:      2 weeks
Differential Revision: https://reviews.freebsd.org/D60486
DeltaFile
+1-8lib/libthr/thread/thr_mutex.c
+6-0lib/libthr/thread/thr_private.h
+1-1lib/libthr/thread/thr_init.c
+8-93 files

FreeBSD/src 5b1f1fd — sys/dev/hyperv/vmbus hyperv_mmu.c

hyperv: Fix single page invalidation path

A single page invalidation sets addr2 == 0. In the original code, it
falsely flush the whole address in non global pmap. However, the
kernel pmap are all PG_G, which means a single page flush will always be
staled and thus become invalid. As a result, we set parameter based on
their op in a new helper function instead of relying on args. This
affects only on AMD platform as Intel has their PTI implementation.

PR:     291577
Tested by:      franco at opnsense.org
MFC after:      2 weeks
Differential Revision: https://reviews.freebsd.org/D60380
DeltaFile
+43-39sys/dev/hyperv/vmbus/hyperv_mmu.c
+43-391 files