FreeBSD/src b556d9c — share/man/man7 ports.7

ports.7: Add the DEVELOPER make variable

make.conf(5) says make variables that are for the ports tree should
be documented in ports(7). Add this from the porters handbook.

MFC after:              3 days
Reviewed by:            alven
Event:                  FreeBSD 2026 Vendor Summit
Differential Revision:  https://reviews.freebsd.org/D61272
DeltaFile
+4-1share/man/man7/ports.7
+4-11 files

FreeBSD/src 5b5f93f — contrib/bc/vs bcl.vcxproj.filters bc.vcxproj.filters, contrib/bc/vs/tests tests_dc.bat tests_bc.bat

contrib/bc: remove vs sub-directory

Some of the files in the vs sub-directory are checked out with  CRLF
line breaks via .getattributes. This causes issues when checking out
the source tree with other tools that operate on Git repositories like
"got". Remove the vs sub-directory from the contrib tree, since it is
not required on FreeBSD.

(cherry picked from commit 94d4ba04a96f495d635bf246e4d5021eb1faab22)
DeltaFile
+0-301contrib/bc/vs/bc.vcxproj
+0-264contrib/bc/vs/bcl.vcxproj
+0-170contrib/bc/vs/bc.vcxproj.filters
+0-104contrib/bc/vs/tests/tests_bc.bat
+0-87contrib/bc/vs/bcl.vcxproj.filters
+0-61contrib/bc/vs/tests/tests_dc.bat
+0-9873 files not shown
+1-1,0559 files

FreeBSD/src 6129bc4 — share/man/man4 iscsi.4, sys/dev/iscsi iscsi.c

iSCSI: Fast and per-session timeouts

Support per-session configurable ping (SCSI NOP) and login timeouts
similar to what is supported in the Linux iSCSI initiator configuration file.

Reduce iscsi timer granularity to 0.1 sec.
For backwards compatibility, when all timers are selected on integer numbers,
all status messages are unchanged. If the higher granularity is used, the
log messages include sub-second granularity.

The sysctl(3) interface has changed from pure int to string, in order to
support fractional seconds in a human-readable, dotted notation.

Reviewed By: #netapp, #manpages, jhb, pauamma_chezdork.com, siderop1_netapp.com
Sponsored by: NetApp, Inc.
Differential Revision: https://reviews.freebsd.org/D32540
DeltaFile
+35-18sys/dev/iscsi/iscsi.c
+23-2usr.bin/iscsictl/parse.y
+8-6usr.bin/iscsictl/iscsictl.c
+6-2usr.sbin/iscsid/iscsid.c
+4-3share/man/man4/iscsi.4
+3-3usr.bin/iscsictl/iscsi.conf.5
+79-342 files not shown
+82-348 files

FreeBSD/src e0c6b88 — sys/dev/irdma irdma_utils.c irdma_cm.c

irdma: improve TCP header validation

iWARP handling code deals with TCP header processing outside of the normal TCP stack.
Add validation checks to verify the internal integrity of the TCP headers.

Reviewed By: tuexen, O11 Intel Networking group, #transport, bartosz.sobczak_intel.com
Sponsored by: NetApp, Inc.
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D58323
DeltaFile
+20-2sys/dev/irdma/irdma_cm.c
+13-0sys/dev/irdma/irdma_utils.c
+33-22 files

FreeBSD/src 9a8234b — sys/dev/sdhci sdhci_pci.c

sdhci_pci: Add Intel Sunrise Point-LP SDXC controller

Co-authored-by: Michael Osipov <michaelo at FreeBSD.org>
PR:             300175
Reviewed by:    imp
MFC after:      3 days
Differential Revision:  https://reviews.freebsd.org/D60973

(cherry picked from commit 584f44221f45c5c26ec2a2888a3815c6f34bfad0)
DeltaFile
+2-0sys/dev/sdhci/sdhci_pci.c
+2-01 files

FreeBSD/src b3eec38 — sys/dev/sdhci sdhci_pci.c

sdhci_pci: Add Intel Sunrise Point-LP SDXC controller

Co-authored-by: Michael Osipov <michaelo at FreeBSD.org>
PR:             300175
Reviewed by:    imp
MFC after:      3 days
Differential Revision:  https://reviews.freebsd.org/D60973

(cherry picked from commit 584f44221f45c5c26ec2a2888a3815c6f34bfad0)
DeltaFile
+2-0sys/dev/sdhci/sdhci_pci.c
+2-01 files

FreeBSD/src d0666b1 — usr.bin/uname uname.1

uname.1: Document which flags are non-POSIX

MFC after:              3 days
Reviewed by:            ziaee
Differential Revision:  https://reviews.freebsd.org/D58476
DeltaFile
+11-1usr.bin/uname/uname.1
+11-11 files

FreeBSD/src f3b6bb1 — secure/lib/libcrypto Makefile compat.c

openssl: restore removed libcrypto symbols as compat symbols

c01c0a27cb82 (D60397) stopped exporting 52 names from libcrypto.so.35 that
upstream does not export.  Binaries and libraries linked against the
earlier libcrypto.so.35 can still import them; the libssl.so.35 from
15.0 and 15.1 imports 15 of them, so it fails to load with the new
libcrypto.

Provide all 52 again as non-default (compat) versions, in the version
nodes they had before: OPENSSL_cpuid_setup at OPENSSL_3_0_9, the others
@OPENSSL_3_5_0.  Existing consumers resolve them; new links cannot bind
to them.  The default exports do not change and still match upstream.

The wrappers live in a new FreeBSD-only file, compat.c.  Remove it at
the next SHLIB_MAJOR bump.

Reviewed by:            ngie
Fixes:                  c01c0a27cb82 ("openssl: make libcrypto export the same symbols as upstream")
MFC after:              2 weeks

    [3 lines not shown]
DeltaFile
+425-0secure/lib/libcrypto/compat.c
+9-0secure/lib/libcrypto/Makefile
+434-02 files

FreeBSD/src 46453f0 — secure/lib/libcrypto/modules Makefile.inc, secure/lib/libcrypto/modules/legacy Version.map Makefile

openssl: build legacy provider as upstream does

- Build with libcrypto's compile flags: modules/Makefile.inc now
  includes libcrypto's Makefile.inc, which brings in Makefile.common
  (NDEBUG, the asm dispatch defines, OPENSSL_PIC, the directory
  defines).  Before this change, assertions were enabled in legacy.so.
- Use upstream's per-architecture source list: the provider's own CPU
  capability code (cpuid asm and armcap.c/ppccap.c, or mem_clr.c
  without asm), and the MD5, RC4 and DES asm where upstream uses it.
  The provider no longer uses libcrypto's exported RC4, SHA1 and
  CRYPTO_*128 functions.
- Drop the objects that upstream's linker leaves out of legacy.so
  (fcrypt_b.c, md5_one.c, md5_sha1.c, provider_err.c and
  ciphercommon_{ccm,gcm}*.c / ciphercommon_hw.c).  Without them,
  params_idx.c is not needed either.
- Add a version script, a copy of upstream's providers/legacy.ld, so
  that only OSSL_provider_init is exported.  Around 209 symbols were
  exported before.


    [5 lines not shown]
DeltaFile
+49-18secure/lib/libcrypto/modules/legacy/Makefile
+3-9secure/lib/libcrypto/modules/Makefile.inc
+5-0secure/lib/libcrypto/modules/legacy/Version.map
+57-273 files

FreeBSD/src 40371e5 — cddl/contrib/opensolaris/tools/ctf/cvt ctfconvert.c

ctfconvert: Make the absence of debug info non-fatal

When compiled with gcc14, subr_ticks.o legitimately doesn't contain any
DWARF sections.  Just emit a warning in this case.  In general we still
want to run ctfconvert on asm files.

Reviewed by:    emaste, des
Fixes:          e959f2a7d8a8 ("ctf*: exit with error upon terminate()")
Differential Revision:  https://reviews.freebsd.org/D61231
DeltaFile
+7-2cddl/contrib/opensolaris/tools/ctf/cvt/ctfconvert.c
+7-21 files

FreeBSD/src 8fb539b — sys/amd64/vmm x86.h x86.c

amd64/vmm: Don't advertise AMD PerfMonV2 or performance counters

vmm does not handle CPUID leaf 0x80000022, so a FreeBSD guest on a
Family 19h or later host panics on "kldload hwpmc", which trusts the
PerfMonV2 bit and writes AMD_PMC_GLOBAL_CTL.

Tested by:      Osvaldo Janeri Filho <ojanerif at amd.com>
MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
Reviewed by:    markj, kib
Differential Revision:  https://reviews.freebsd.org/D61141
DeltaFile
+11-0sys/amd64/vmm/x86.c
+1-0sys/amd64/vmm/x86.h
+12-02 files

FreeBSD/src 0efaebd — sys/dev/hwpmc hwpmc_amd.c

hwpmc: Decline the AMD PerfMonV2 path when GLOBAL_CTL is absent

The v2 path writes AMD_PMC_GLOBAL_CTL whenever the PerfMonV2 CPUID bit
is set. bhyve passes that bit through from the host but does not emulate
the register, so loading hwpmc in a guest on a Family 19h or later host
panics the kernel.

amd_v2_hwcheck_cpu() already probes EVSEL MSRs, so probe GLOBAL_CTL
there too, in order to reject the v2 path and fall back to the generic
CPU class.

Fixes:          9d3064010590 ("hwpmc_amd: add PerfMonV2 global-control path")
Tested by:      Osvaldo Janeri Filho <ojanerif at amd.com>
MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
Reviewed by:    mhorne, afscoelho at gmail.com
Differential Revision:  https://reviews.freebsd.org/D61133
DeltaFile
+17-3sys/dev/hwpmc/hwpmc_amd.c
+17-31 files

FreeBSD/src c5b902b — sbin/dhclient/tests functional.py

tests/dhclient: Skip tests if scapy is not installed

Fixes:  a143197801c6 ("dhclient: Add some regression tests")
(cherry picked from commit 8fa55fdcae4ecbd2ec13ef91cc9d172095e21189)
DeltaFile
+4-2sbin/dhclient/tests/functional.py
+4-21 files

FreeBSD/src 927ed61 — usr.sbin/inetd inetd.c

inetd: use snprintf() in inetd_setproctitle()

inetd_setproctitle() formats se_service (the service name taken verbatim
from inetd.conf) and the peer address into an 80-byte buffer with
sprintf(). A long service name can overflow it. Bound both calls with
snprintf().

MFC after:      1 week
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D60879

(cherry picked from commit 9ab2bf0f4296e8bfafe4dc70f2f200265e6933bd)
DeltaFile
+2-2usr.sbin/inetd/inetd.c
+2-21 files

FreeBSD/src 2958f9c — sys/vm vm_glue.c vm_extern.h

vm_glue: Use the right type for size arguments to {user,kern}acc()

MFC after:      1 week
Sponsored by:   The FreeBSD Foundation

(cherry picked from commit c525db0c44b7db430b67fdd276f0a22c2f8e9f61)
DeltaFile
+2-2sys/vm/vm_glue.c
+2-2sys/vm/vm_extern.h
+4-42 files

FreeBSD/src 8afd77a — usr.sbin/bhyve gdb.c

bhyve: fix integer overflow in qXfer packet parser

doff + dlen overflows unsigned int when both values are close to UINT_MAX,
causing the wrong branch to execute and passing an unbounded length to
append_binary_data().  Rewrite the comparison to avoid the addition.

Reviewed by:    markj
Fixes:          f81cdf24ba54 ("bhyve: Add support for XML register definitions")
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D60847

(cherry picked from commit 5ce0ab7355264d38fcde4684f0a64347ec0f5234)
DeltaFile
+1-1usr.sbin/bhyve/gdb.c
+1-11 files

FreeBSD/src d4f4bd1 — sys/kern vfs_inotify.c

inotify: Open target the directory when adding a watch

When an application uses inotify to watch a directory,
vn_inotify_add_watch() reads the directory entries and does a name
lookup so as to induce the filesystem to create namecache entries.
Some filesystems expect the directory to be opened before VOP_READDIR
can be called, so do that.

PR:             299239
Reviewed by:    kib
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D60782

(cherry picked from commit de80428118101624aaeaae02d59665d1027ff10e)
DeltaFile
+9-0sys/kern/vfs_inotify.c
+9-01 files

FreeBSD/src 88e562a — sys/dev/hyperv/utilities hv_kvp.c

hv_kvp: Fix some bugs and nits

- Use pending_mutex to synchronize several state flags.  In particular,
  ensure that two threads can't race to open the device file at the same
  time.[1]
- Fix an off-by-one in hv_kvp_dev_daemon_read() that would result in a
  one-byte OOB read if the caller supplied a large enough read buffer.[2]
- Change the device permissions to 0600: hv_kvp_dev_daemon_read()
  returns an error until the owning process registers itself with a
  write, so there's no sense in providing read-only access.
- Use bool instead of boolean_t.
- Don't return negative error numbers to userspace.
- Call seldrain() when closing the device.

Reported by:    pixelpop [1][2]
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D60387

(cherry picked from commit ebf1041fc854c531a27efd9f979e28d57306777d)
DeltaFile
+28-39sys/dev/hyperv/utilities/hv_kvp.c
+28-391 files

FreeBSD/src 8f7257c — sbin/dhclient dhclient.c

dhclient: Avoid out-of-bounds reads in check_classless_option()

The loop did not verify that the option buffer is large enough before
reading an address.

Reported by:    Andrew Griffiths <andrew at calif.io>
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D60484

(cherry picked from commit 368a1bfcd49315e8dd3e56ca6744ce5d74ef737b)
DeltaFile
+43-31sbin/dhclient/dhclient.c
+43-311 files

FreeBSD/src 077a583 — usr.sbin/bhyve pci_virtio_input.c

bhyve: Fix virtio-input event array resizing

Use the new array size when calling realloc().  Note that this queue
stores events read from a host evdev device, i.e., it is not
guest-controlled.

While here, use the cdefs.h __unused macro and use them correctly, i.e.,
don't mark "arg" as unused when it isn't.

Reported by:    Brian Delgado from Intel using Anthropic Opus 4.8
Fixes:          054accac71e0 ("Add a virtio-input device emulation.")
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D60679

(cherry picked from commit f1986e5b88630b1404a202251499bca0f97f5f06)
DeltaFile
+7-13usr.sbin/bhyve/pci_virtio_input.c
+7-131 files

FreeBSD/src 9e81585 — sbin/dhclient/tests functional.py

tests/dhclient: import scapy inside vnet

This fixes a [CI failure][0].

[0] https://ci.freebsd.org/job/FreeBSD-main-amd64-test/29813/testReport/sbin.dhclient.functional/py/__test_cases_list__/

PR:             299641
Reviewed by:    markj, ngie
MFC after:      3 days
Sponsored by:   The FreeBSD Foundation
Pull Request:   https://ron-dev.freebsd.org/FreeBSD/src/pulls/83

(cherry picked from commit bd87fc2a1c1a20a080c38b12a55b377967a7c4a7)
DeltaFile
+50-47sbin/dhclient/tests/functional.py
+50-471 files

FreeBSD/src 0a8afdf — sbin/dhclient/tests Makefile functional.py

dhclient: Add some regression tests

Add tests for some recently fixed bugs in dhclient.  All of these tests
set up two VNET jails connected by an epair.  dhclient runs in one jail,
and the test code runs on the other end.  It uses scapy to inject
"interesting" packets in response to DHCPDISCOVER messages from
dhclient, then checks the configured interface and lease file.

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

(cherry picked from commit a143197801c680b958ab662c88cf086668a1958b)
DeltaFile
+242-0sbin/dhclient/tests/functional.py
+2-0sbin/dhclient/tests/Makefile
+244-02 files

FreeBSD/src 1e314d8 — sys/dev/virtio/p9fs virtio_p9fs.c

virtio_p9fs: Mark response buffers as initialized for KMSAN

MFC after:      1 week
Sponsored by:   The FreeBSD Foundation

(cherry picked from commit eca7cba74c95c8cd64c0ea4299984484784aa836)
DeltaFile
+4-1sys/dev/virtio/p9fs/virtio_p9fs.c
+4-11 files

FreeBSD/src 8e12821 — lib/libpam/modules/pam_exec pam_exec.c

pam_exec: fix the stderr close test and avoid a double close

The cleanup tested cherr[0] when closing cherr[1].  The parent also closed
chin[0]/chout[1]/cherr[1] after pdfork() without clearing them, so the out:
cleanup path closed them again.  Clear each fd after closing and test the right
one.

Reviewed by:    des, markj
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D60924

(cherry picked from commit 06abe08de45d251410949eac1bbb025367275260)
DeltaFile
+10-4lib/libpam/modules/pam_exec/pam_exec.c
+10-41 files

FreeBSD/src 7cb57bf — sys/vm vm_kern.c

vm_kern: wrap around in kmem_back() when the last domain is empty

kmem_back() picks the domain from the address and, when that domain has
no memory, steps forward until it finds one that does:

domain = (addr >> KVA_QUANTUM_SHIFT) % vm_ndomains;
while (VM_DOMAIN_EMPTY(domain))
        domain++;

Nothing stops the walk at vm_ndomains.  When the empty domain is the
last one, the loop runs through the unused tail of vm_dom[] (all empty)
and on into whatever follows vm_dom[MAXMEMDOM] in memory, until a word
there happens to look like a non-zero page count; kmem_back_domain()
then allocates from that garbage domain.  Ordinary allocations never
get here, because the per-domain arenas and the domainset iterators
skip empty domains.  Only the direct callers of kmem_back() do: kinst
(one trampoline per thread, allocated when the module loads) and
memguard.


    [8 lines not shown]
DeltaFile
+1-1sys/vm/vm_kern.c
+1-11 files

FreeBSD/src 06da67d — sys/amd64/vmm/io vlapic.h vlapic.c

amd64/vmm: Port vlapic interface changes from illumos (duplicate)

This is a port of the bits related to vlapic-enablement of the following
bhyve improvement from illumos:

  14598 bhyve vlapic should handle APICBASE changes
  https://www.illumos.org/issues/14598

A LAPIC can be enabled/disabled in two ways:
  - by the global-enable bit in the APICBASE MSR
  - by the software-enable bit in the APIC's SVR register

This change allows distinguishing between both forms of enablement where
that matters. The more involved changes to allow guests to modify the
APICBASE MSR are not included at this time.

Reviewed by:    corvink, markj
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D56347

    [2 lines not shown]
DeltaFile
+44-30sys/amd64/vmm/io/vlapic.c
+0-1sys/amd64/vmm/io/vlapic.h
+44-312 files

FreeBSD/src 2f300b5 — usr.sbin/bhyve pci_emul.h pci_emul.c

bhyve: Treat BAR registration failures as non-fatal

Some guest operating systems (at least 9front) will leave device I/O
space decoding enabled while probing BAR sizes.  In this case, a
sufficiently large 32-bit BAR can overlap with the HPET MMIO region
fixed at 0xfed00000.  This results in an assertion failure in
modify_bar_registration(), even though the collision is transient, i.e.,
the guest will promptly map the BAR elsewhere.

Tolerate such overlaps.  Keep track of a BAR's registration state and
make sure that modify_bar_registration() doesn't try to unregister an
I/O space if registration failed.

This fixes a problem where a 32MB framebuffer ends up overlapping with
the HPET MMIO region, causing some guests to crash with an assertion
failure when probing BARs during boot.

PR:             290098
Reviewed by:    bnovkov

    [5 lines not shown]
DeltaFile
+31-15usr.sbin/bhyve/pci_emul.c
+2-0usr.sbin/bhyve/pci_emul.h
+33-152 files

FreeBSD/src 67b17be — sys/fs/nfsserver nfs_nfsdserv.c

nfsserver: use the destination export for the COPY/CLONE write check

The write-permission check on the destination file in
nfsrvd_copy_file_range() and nfsrvd_clone() tested
NFSVNO_EXSTRICTACCESS() on the source export instead of the destination
export.

Rick notes:
    The change is harmless and mostly meaningless.
    NFSVNO_EXSTRICTACCESS() is a placeholder for some site that might
    not want to let the file "owner" get access despite mode bits.

    The "owner override" is a hack that has existed forever in NFS,
    since applications often create files with O_WRONLY, but mode 444.
    This works for POSIX, but would make NFS writes fail, since they
    check mode on every write, instead of just at POSIX open(). The hack
    is to always allow the file owner to have write access.

    Without the hack, lots of applications would break over NFS, so I

    [8 lines not shown]
DeltaFile
+2-2sys/fs/nfsserver/nfs_nfsdserv.c
+2-21 files

FreeBSD/src 149cebf — sys/kern kern_malloc.c

malloc: Fix realloc() for large allocations

min() truncates its parameters.

MFC after:      1 week
Sponsored by:   The FreeBSD Foundation

(cherry picked from commit ca16e7a4920415bf9d09cf76bd2c3cda7447c098)
DeltaFile
+2-2sys/kern/kern_malloc.c
+2-21 files

FreeBSD/src 20f5874 — sys/sys msan.h

kmsan: Add a required forward type declaration

MFC after:      1 week

(cherry picked from commit ad37abf653f77c59ce6c296eda9976c74c905d2e)
DeltaFile
+1-0sys/sys/msan.h
+1-01 files