DragonFlyBSD/src aadd936share/misc iso639

iso639: Sync with upstream.
DeltaFile
+8-8share/misc/iso639
+8-81 files

DragonFlyBSD/src b5bf93fshare/misc bsd-family-tree

bsd-family-tree: Sync with FreeBSD.
DeltaFile
+469-398share/misc/bsd-family-tree
+469-3981 files

DragonFlyBSD/src 5bb0a15share/misc pci_vendors

Update the pciconf(8) database.

Feb 13, 2026 snapshot from https://pci-ids.ucw.cz
DeltaFile
+5,661-480share/misc/pci_vendors
+5,661-4801 files

DragonFlyBSD/src 544f5b8share/man/man4 ktr.4, sys/conf options

Remove obsolete KTR_DMCRYPT kernel option.
DeltaFile
+0-6share/man/man4/ktr.4
+0-1sys/conf/options
+0-1sys/config/LINT64
+0-83 files

DragonFlyBSD/src 4f67a71share/zoneinfo leap-seconds.list Makefile

Add leap-seconds.list to /usr/share/zoneinfo.

It was introduced in tzdata2024a and some software (such as
Hare language) expects this to be present. This version is
from tzdata2025c. I'll do a full upgrade of tzdata2025c in a
later commit.

Pointed-out-by: mneumann
DeltaFile
+120-0share/zoneinfo/leap-seconds.list
+2-1share/zoneinfo/Makefile
+122-12 files

DragonFlyBSD/src b884917sys/dev/virtual/nvmm/x86 nvmm_x86_internal.h nvmm_x86.h

nvmm(4): Extract out nvmm_x86_internal.h from nvmm_x86.h

Similar to nvmm_internal.h, extract the kernel-only bits from nvmm_x86.h
and put into a separate 'nvmm_x86_internal.h'.
DeltaFile
+241-0sys/dev/virtual/nvmm/x86/nvmm_x86_internal.h
+0-208sys/dev/virtual/nvmm/x86/nvmm_x86.h
+1-0sys/dev/virtual/nvmm/x86/nvmm_x86_svm.c
+1-0sys/dev/virtual/nvmm/x86/nvmm_x86.c
+1-0sys/dev/virtual/nvmm/x86/nvmm_x86_vmx.c
+244-2085 files

DragonFlyBSD/src a91151fsys/dev/virtual/nvmm/x86 nvmm_x86_svm.c

nvmm(4): Enable selective CR0 write intercept in the SVM backend

Similar to the VMX backend [1], enable selective CR0 write intercept in
the SVM backend to force CR0_ET/CR0_NE to 1, and CR0_CD/CR0_NW to 0.

This addresses the severe performance issue observed in UEFI guests [2].
When booting a DragonFly installation ISO on my AMD 3700X, it previously
took 50-60 seconds from VM power-on before the kernel started loading,
and around 17 *minutes* to reach the login prompt.  Even when the guest
OS was otherwise idle, the qemu process consumed 40-50% CPU.

Note that the selective CR0 write intercept is enabled only when the CPU
supports the DecodeAssists feature, as the intercept handling relies on
the decoded information provided in EXITINFO1.  A diagnostic message is
printed in svm_ident() when DecodeAssists is unavailable.

Meanwhile, rename 'VMCB_CTRL_INTERCEPT_CR0_SPEC' to
'VMCB_CTRL_INTERCEPT_CR0_SEL' to better align with
'VMCB_EXITCODE_CR0_SEL_WRITE'.

    [9 lines not shown]
DeltaFile
+90-4sys/dev/virtual/nvmm/x86/nvmm_x86_svm.c
+90-41 files

DragonFlyBSD/src 71d6bbasys/dev/virtual/nvmm nvmm.h

nvmm(4): Comment all versions of NVMM_KERN_VERSION
DeltaFile
+5-0sys/dev/virtual/nvmm/nvmm.h
+5-01 files

DragonFlyBSD/src 89a608fsys/dev/virtual/nvmm nvmm_os.h

nvmm(4): Tweak os_atomic_load_uint() to use relaxed semantic

The original NetBSD code uses atomic_load_relaxed(), so this macro
should be "atomic_load_int()", i.e., without the "acquire" semantic.

Also, the relaxed semantic suffices for the current use cases.
DeltaFile
+1-1sys/dev/virtual/nvmm/nvmm_os.h
+1-11 files

DragonFlyBSD/src 2973316share/zoneinfo leap-seconds.list Makefile

Add leap-seconds.list to /usr/share/zoneinfo.

It was introduced in tzdata2024a and some software (such as
Hare language) expects this to be present. This version is
from tzdata2025c. I'll do a full upgrade of tzdata2025c in a
later commit.

Pointed-out-by: mneumann
DeltaFile
+120-0share/zoneinfo/leap-seconds.list
+2-1share/zoneinfo/Makefile
+122-12 files

DragonFlyBSD/src 2f97cb6test/testcases/libnvmm h_mem_assist_asm.S h_mem_assist.c

testcases/libnvmm: Add two memory tests using RIP-relative addressing

While these two tests do not exercise the RIP-relative address
calculation path in store_to_gva(), they can help validate the x86
instruction decoder.

Credit: Claude Sonnet 4.5 (https://claude.ai/)
DeltaFile
+66-0test/testcases/libnvmm/h_mem_assist_asm.S
+6-0test/testcases/libnvmm/h_mem_assist.c
+72-02 files

DragonFlyBSD/src ceb0e49lib/libnvmm libnvmm_x86.c

libnvmm(3): Fix RIP-relative addressing in store_to_gva()

RIP-relative addressing uses the start address of the *next* instruction
as the base, rather than the *current* one.  Adjust RIP by the
instruction length when computing the effective address.

NOTE: This bug does not affect memory assists:
- The MMIO exits handled by assist_mem_single() do not call
  store_to_gva().  In addition, assist_mem_single() does not compute
  RIP-relative addresses, as the effective GPA is already provided in
  'exit->u.mem.gpa'.
- Other MMIO exits handled by assist_mem_double_movs() do call
  store_to_gva(), but only for RSI/RDI-based operands.

Credit: Claude Sonnet 4.5 (https://claude.ai/)
DeltaFile
+5-0lib/libnvmm/libnvmm_x86.c
+5-01 files

DragonFlyBSD/src 1eb8710sbin/fdisk fdisk.c

fdisk(8): Fix uint32_t overflow in print_part()

dp_size is uint32_t and would overflow when is multipled by secsize
(512), and that resulted in printing a wrong partition size in MB.

While there, tweak 'Meg' to 'MB' to be clearer.
DeltaFile
+3-3sbin/fdisk/fdisk.c
+3-31 files

DragonFlyBSD/src dea513atest/testcases/libnvmm h_mem_assist_asm.S h_mem_assist.c

testcases/libnvmm: Add two memory tests using RIP-relative addressing

While these two tests do not exercise the RIP-relative address
calculation path in store_to_gva(), they can help validate the x86
instruction decoder.

Credit: Claude Sonnet 4.5 (https://claude.ai/)
DeltaFile
+66-0test/testcases/libnvmm/h_mem_assist_asm.S
+6-0test/testcases/libnvmm/h_mem_assist.c
+72-02 files

DragonFlyBSD/src dfc90adlib/libnvmm libnvmm_x86.c

libnvmm(3): Fix RIP-relative addressing in store_to_gva()

RIP-relative addressing uses the start address of the *next* instruction
as the base, rather than the *current* one.  Adjust RIP by the
instruction length when computing the effective address.

NOTE: This bug does not affect memory assists:
- The MMIO exits handled by assist_mem_single() do not call
  store_to_gva().  In addition, assist_mem_single() does not compute
  RIP-relative addresses, as the effective GPA is already provided in
  'exit->u.mem.gpa'.
- Other MMIO exits handled by assist_mem_double_movs() do call
  store_to_gva(), but only for RSI/RDI-based operands.

Credit: Claude Sonnet 4.5 (https://claude.ai/)
DeltaFile
+5-0lib/libnvmm/libnvmm_x86.c
+5-01 files

DragonFlyBSD/src dbfba94sys/kern subr_alist.c subr_blist.c

kernel - Fix overflow in alist and blist code

* This code tracks swap space and large blocks of contiguous DMA memory.

* Fix overflows in array size calculations that did not take into
  account terminator entries.

  (a) Remove terminals from alists entirely.
  (b) Account for space used by the terminator in blists.

Found-by: tuxillo / AI
DeltaFile
+61-20sys/kern/subr_alist.c
+7-2sys/kern/subr_blist.c
+68-222 files

DragonFlyBSD/src 0258b0fsys/kern kern_shutdown.c

kernel - Fix serious root vulnerabilities in the caps code (2)

* Remove debugging kprintf() in sys_reboot()
DeltaFile
+0-2sys/kern/kern_shutdown.c
+0-21 files

DragonFlyBSD/src 35a77c5sys/kern kern_caps.c vfs_syscalls.c, sys/sys caps.h

kernel - Fix serious root vulnerabilities in the caps code

* The caps code was inadvertently allowing many root-only operations
  to be run from user mode, particularly mount/umount ops by assuming
  a root creds check that was not taking place in some of the API
  calls, but was taking place in others.

* All API calls now check root creds by default unless passed the
  appropriate flag.

Found-by: ivadasz (Imre Vadasz)
DeltaFile
+8-8sys/kern/kern_caps.c
+10-2sys/kern/vfs_syscalls.c
+4-4sys/kern/kern_exec.c
+4-2sys/sys/caps.h
+3-1sys/kern/kern_shutdown.c
+1-1sys/kern/kern_sig.c
+30-186 files

DragonFlyBSD/src 7bffb93sys/kern subr_alist.c subr_blist.c

kernel - Fix overflow in alist and blist code

* This code tracks swap space and large blocks of contiguous DMA memory.

* Fix overflows in array size calculations that did not take into
  account terminator entries.

  (a) Remove terminals from alists entirely.
  (b) Account for space used by the terminator in blists.

Found-by: tuxillo / AI
DeltaFile
+61-20sys/kern/subr_alist.c
+7-2sys/kern/subr_blist.c
+68-222 files

DragonFlyBSD/src 7c543eflib/libnvmm libnvmm.c

libnvmm(3): Fix nvmm_vcpu_create() to check malloc() error
DeltaFile
+7-2lib/libnvmm/libnvmm.c
+7-21 files

DragonFlyBSD/src 5d6e3acusr.bin/netstat route.c

netstat(1): Use same width for 'Netif' column in IPv4/IPv6 cases

This utility used a narrower 'Netif' column for IPv4 than IPv6, which
looks a bit strange and is actually insufficient nowadays, since we
supports to customize the interface name.  So just use the same column
width for both IPv4 and IPv6.
DeltaFile
+1-2usr.bin/netstat/route.c
+1-21 files

DragonFlyBSD/src 1349ae1share/misc pci_vendors

Update the pciconf(8) database.

May 23, 2023 snapshot from https://pci-ids.ucw.cz
DeltaFile
+151-10share/misc/pci_vendors
+151-101 files

DragonFlyBSD/src 356be0fshare/misc pci_vendors

Update the pciconf(8) database.

April 10, 2023 snapshot from https://pci-ids.ucw.cz
DeltaFile
+341-416share/misc/pci_vendors
+341-4161 files

DragonFlyBSD/src 11f3fb1share/misc pci_vendors

Update the pciconf(8) database.

February 23, 2023 snapshot from https://pci-ids.ucw.cz
DeltaFile
+917-142share/misc/pci_vendors
+917-1421 files

DragonFlyBSD/src 3eebf54contrib/gcc-8.0/libstdc++-v3/config/locale/dragonfly codecvt_members.cc

libstdc++: Fix unsigned wraparound in codecvt::do_length [PR105857]

When the max argument to std::codecvt<wchar_t, char, mbstate_t>::length
is SIZE_MAX/4+1 or greater the multiplication with sizeof(wchar_t) will
wrap to a small value, and the alloca call will have a buffer that's
smaller than requested. The call to mbsnrtowcs then has a buffer that is
smaller than the value passed as the buffer length. When libstdc++.so is
built with -D_FORTIFY_SOURCE=3 the mismatched buffer and length will get
detected and will abort inside Glibc.

When it doesn't abort, there's no buffer overflow because Glibc's
mbsnrtowcs has the same len * sizeof(wchar_t) calculation to determine
the size of the buffer in bytes, and that will wrap to the same small
number as the alloca argument. So luckily Glibc agrees with the caller
about the real size of the buffer, and won't overflow it.

Even when the max argument isn't large enough to wrap, it can still be
much too large to safely pass to alloca, so we should limit that. We
already have a loop that processes chunks so that we can handle null

    [4 lines not shown]
DeltaFile
+6-3contrib/gcc-8.0/libstdc++-v3/config/locale/dragonfly/codecvt_members.cc
+6-31 files

DragonFlyBSD/src d1ed712lib/libnvmm libnvmm.3

libnvmm.3: Fix one .Nx (NetBSD) to .Dx (DragonFly)
DeltaFile
+1-1lib/libnvmm/libnvmm.3
+1-11 files

DragonFlyBSD/src 2779004sys/dev/virtual/nvmm/x86 nvmm_x86_vmx.c nvmm_x86.c

nvmm(4): Expose ARCH_CAP to guest only if the host CPU supports it

* Don't expose ARCH_CAP to guest on AMD CPUs, because the ARCH_CAP
  feature bit and the IA32_ARCH_CAPABILITIES MSR are Intel-specific and
  unavailable on AMD systems.  I decided to not follow Linux KVM, which
  chose to always provide ARCH_CAP and emulate the MSR for AMD CPUs.

* Check whether the host CPU supports the ARCH_CAP feature bit and only
  expose it to the guest if the host supports it.

Credit to tuxillo and Claude Opus LLM for the analyses and initial
patches.
DeltaFile
+14-7sys/dev/virtual/nvmm/x86/nvmm_x86_vmx.c
+2-2sys/dev/virtual/nvmm/x86/nvmm_x86.c
+16-92 files

DragonFlyBSD/src 6582506sys/cpu/x86_64/include cpufunc.h

cpu/x86_64: Fix do_cpuid() to explicitly set ECX=0

The old do_cpuid() did not initialize ECX before executing the CPUID
instruction, so the results could be incorrect when ECX contained a
non-zero garbage value.

This issue was observed on Intel CPUs when booting a FreeBSD 14.x/15.x
ISO under NVMM, where it caused a general protection fault (#GP) shortly
after the FreeBSD kernel was loaded:

    qemu-system-x86_64: NVMM: Mem Assist Failed [gpa=0xbfff8]
    qemu-system-x86_64: NVMM: Failed to execute a VCPU.
    Abort trap (core dumped)

It occurred when NVMM tried to handle the reading of
IA32_ARCH_CAPABILITIES MSR but the second do_cpuid() returned the
incorrect results indicating that the MSR was unavailable.

The problem was first reported by mneumann in bug #3310 on 2025-11-26 [1].

    [11 lines not shown]
DeltaFile
+6-8sys/cpu/x86_64/include/cpufunc.h
+6-81 files

DragonFlyBSD/src da6ab61sys/kern kern_proc.c

KERN_PROC - Fix KERN_PROC_ARGS and KERN_PROC_CWD to return length if oldptr==NULL.

Sysctl handlers still have to compute the full output, even when
oldptr == NULL. This is necessary to implement the behavior documented in
sysctl(3), that it will return the required buffer length in "oldlenp", if
"oldptr" is NULL and "oldlenp" is not NULL.
DeltaFile
+46-48sys/kern/kern_proc.c
+46-481 files

DragonFlyBSD/src 5ff5cabsys/vfs/procfs procfs_status.c procfs_dbregs.c

procfs - Don't reset fd offset when reading regs, fpregs, or dbregs files.

* For repeated reads, we can simply use pread(2). And this way, we allow for
  normal shell tooling to work correctly on these procfs files.

* This also matches the behavior on NetBSD.
DeltaFile
+1-1sys/vfs/procfs/procfs_status.c
+0-1sys/vfs/procfs/procfs_dbregs.c
+0-1sys/vfs/procfs/procfs_fpregs.c
+0-1sys/vfs/procfs/procfs_regs.c
+1-44 files