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

LinuxKPI: restore several hard coded return values for the CONFIG_PM case

drm-kmod sets CONFIG_PM (unclear if for other parts) but LinuxKPI
has no understanding of a dev->power implementation for pm_runtime.h.

The return values based on !CONFIG_PM thus cause problems to drm-kmod.
Return the previous values under CONFIG_PM but leave the TODO logging
as the actual implementation is missing and return values may not be
universally correct (beyond the known drm-kmod use cases).

The following functions having a return value but none sepcific for
CONFIG_PM as (based on drm-kmod master):
pm_runtime_resume          only caller ignores the return value
pm_runtime_set_active      two callers ignore the return value
pm_runtime_put_autosuspend all callers seem to ignore the return value
pm_runtime_autosuspend     2/3 callers ignore the return value;
                           3rd is #ifdef __linux__
pm_runtime_suspended       3/4 callers ... do check the return value
                           but the logic expects the false, which also

    [7 lines not shown]
DeltaFile
+22-5sys/compat/linuxkpi/common/include/linux/pm_runtime.h
+22-51 files

FreeBSD/src 06abe08 — 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
DeltaFile
+10-4lib/libpam/modules/pam_exec/pam_exec.c
+10-41 files

FreeBSD/src 6f051f0 — 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

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

FreeBSD/src 9ab2bf0 — 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
DeltaFile
+2-2usr.sbin/inetd/inetd.c
+2-21 files

FreeBSD/src 4058241 — sys/x86/x86 mp_x86.c

x86/mp_x86.c: unbreak COUNT_IPIS

Fixes:  3a0e2ca3eecd ("x86: ipi_bitmap_handler(): Account for IPIs correctly on COUNT_IPIS")
DeltaFile
+2-2sys/x86/x86/mp_x86.c
+2-21 files

FreeBSD/src 8dfa23d — sys/amd64/linux linux_sysvec.c, sys/amd64/linux32 linux32_sysvec.c

sys: centralize SV_* flags definitions for ELF Linux ABIs

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
DeltaFile
+1-3sys/i386/linux/linux_sysvec.c
+1-3sys/amd64/linux32/linux32_sysvec.c
+1-2sys/arm64/linux/linux_sysvec.c
+1-2sys/amd64/linux/linux_sysvec.c
+2-0sys/sys/sysent.h
+6-105 files

FreeBSD/src f69d974 — sys/amd64/amd64 elf_machdep.c, sys/arm/arm elf_machdep.c

sys: centralize SV_* flags definitions for several FreeBSD ABIs

The omitted ABI is compat32 on arm64, which lacks SV_ASLR.

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
DeltaFile
+2-6sys/amd64/amd64/elf_machdep.c
+2-4sys/powerpc/powerpc/elf64_machdep.c
+1-3sys/compat/ia32/ia32_sysvec.c
+1-3sys/arm/arm/elf_machdep.c
+1-2sys/riscv/riscv/elf_machdep.c
+3-0sys/sys/sysent.h
+10-183 files not shown
+13-249 files

FreeBSD/src dca0b0a — sys/sys sysent.h

sys/sysent.h: align SV_* flags values, provide full 32bit

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
DeltaFile
+13-13sys/sys/sysent.h
+13-131 files

FreeBSD/src 2d6f961 — crypto/openssh servconf.c

ssh: use defaultkey sentinel for ML-DSA-44 default host key

servconf_add_hostkey() compares its file argument to defaultkey by
pointer to skip an unreadable default key; the ML-DSA-44 entry passed
the "[default]" literal, so the skip (and the "No host key files found"
fallback) never applied to it.

MFC after:      1 week
Reviewed by:    emaste
Fixes: bb5c77e9d281 ("OpenSSH: Update to 10.4p1")
Differential Revision:  https://reviews.freebsd.org/D60922
DeltaFile
+1-1crypto/openssh/servconf.c
+1-11 files

FreeBSD/src dd6a1fe — . ObsoleteFiles.inc

ObsoleteFiles.inc: Add moved certificates

These two moved from trusted to untrusted.

Fixes:          21ac4761428c ("ObsoleteFiles.inc: Add dropped certificates")
DeltaFile
+2-0ObsoleteFiles.inc
+2-01 files

FreeBSD/src 21ac476 — . ObsoleteFiles.inc

ObsoleteFiles.inc: Add dropped certificates

Reported by:    michaelo@
Fixes:          82af7f44ebef ("caroot: Regenerate")
DeltaFile
+7-0ObsoleteFiles.inc
+7-01 files

FreeBSD/src 82af7f4 — secure/caroot/trusted ePKI_Root_Certification_Authority.pem SECOM_TLS_RSA_Root_CA_2024.pem, secure/caroot/untrusted SecureSign_Root_CA16.pem Telia_RSA_Email_Root_CA_v3.pem

caroot: Regenerate

Regenerate using certificate data from NSS 3.131.1.

Upstream dropped emSign_ECC_Root_CA_-_G3.pem entirely; we deliberately
move it to untrusted instead to block its reintroduction through e.g.
an outdated copy of security/ca_root_nss.

Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D60906
DeltaFile
+135-0secure/caroot/untrusted/SECOM_SMIME_RSA_Root_CA_2024.pem
+0-134secure/caroot/trusted/ePKI_Root_Certification_Authority.pem
+134-0secure/caroot/untrusted/Telia_RSA_Email_Root_CA_v3.pem
+134-0secure/caroot/trusted/SECOM_TLS_RSA_Root_CA_2024.pem
+134-0secure/caroot/trusted/Telia_RSA_TLS_Root_CA_v3.pem
+132-0secure/caroot/untrusted/SecureSign_Root_CA16.pem
+669-13412 files not shown
+1,027-63818 files

FreeBSD/src ceb5755 — sys/conf files.arm64, sys/crypto/armv8 armv8_crypto.c

arm64: enable ossl accelerated AES-GCM on arm64

Connect the baseline OpenSSL ARMv8 fused AES-GCM kernels to the OCF
ossl driver. Advertise the algorithm only when the system-wide capability set
includes both AES and PMULL.

Note that get_kernel_reg() is used to detect features such as PMULL
because the ossl device attaches before arm64 populates elf_hwcap when
ossl is built into the kernel or pre-loaded at boot.

Prefer OSSL over armv8crypto for AES-GCM sessions while retaining
armv8crypto as a fallback.

This provides about a 50% speedup for a Netflix ktls workload on a small
neoverse N1 board.

Reviewed by: markj
Constructive review feedback from: andrew, ngie
Differential Revision: https://reviews.freebsd.org/D60097
Sponsored by: Netflix
DeltaFile
+84-4sys/crypto/openssl/ossl_aes_gcm.c
+24-7sys/crypto/openssl/ossl_aarch64.c
+8-1sys/conf/files.arm64
+5-1sys/crypto/armv8/armv8_crypto.c
+4-1sys/modules/ossl/Makefile
+1-1sys/crypto/openssl/ossl.c
+126-156 files

FreeBSD/src f69099f — sys/net if_media.h

if_media: Add 100BASE-T1 and 1000BASE-T1 media types

100BASE-T1 (IEEE 802.3bw) and 1000BASE-T1 (IEEE 802.3bp) are Single-Pair
Ethernet (SPE) standards intended for use in automotive and industrial
applications.

Reviewed by:    kbowling
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D60864
DeltaFile
+6-0sys/net/if_media.h
+6-01 files

FreeBSD/src ef7d701 — sys/arm64/arm64 efirt_machdep.c

arm64: Fix EFI runtime mappings with 16K pages

Map complete EFI descriptor ranges at the kernel page granularity
and merge compatible entries when 4K EFI regions share a kernel page.
Preserve execution when any sharing region requires it and reject
conflicting mapping attributes without panicing.

This gets my small N1 booting with 16K pages.

Reviewed by: chs, imp
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D60749
DeltaFile
+23-8sys/arm64/arm64/efirt_machdep.c
+23-81 files

FreeBSD/src d830774 — stand/userboot/userboot libuserboot.h main.c

stand: userboot: improve userdisk error handling

Currently, userdisk_init() iterates through disks and
checks whether DIOCGSECTORSIZE and DIOCGMEDIASIZE ioctls
are available for the device. If either ioctl fails, userdisk_init()
returns ENXIO with ud_info only partially initialized.
devinit() records the failure, but loader_main() ignores
devinit()'s return value, so later code may access an
uninitialized entry.

In certain cases this code can still boot from a disk even if
userdisk_init() returns ENXIO, for example, when the first of
two disks is valid and the second errors out.

To address this issue while not breaking the current behavior, do
the following:

 - Zero-initialize the userdisk_info array and use a zero media size
   to mark disks that do not support the ioctls mentioned above or

    [16 lines not shown]
DeltaFile
+32-13stand/userboot/userboot/userboot_disk.c
+6-3stand/userboot/userboot/main.c
+1-0stand/userboot/userboot/libuserboot.h
+39-163 files

FreeBSD/src e48eb1c — . .mailmap

mailmap: Add entry for longros

Approved by:    jrm (mentor)
Differential Revision:  https://reviews.freebsd.org/D60912
DeltaFile
+2-0.mailmap
+2-01 files

FreeBSD/src ec1754a — usr.bin/diff diff.c

diff: diff regular files when `-q` is specified again

c30a321a61ce accidentally modified the code paths when diffing regular
files to not diff them if `-q` was specified. Call `diffreg(..)` again,
regardless of whether or not `-q` was specified to restore the
functionality pre-c30a321a61ce, while only printing out the result to
the console if `-q` is not specified.

This change unbreaks diff so 2 files which differ are reported again via
the exit code when with `-q` is specified.

MFC after:      3 days
PR:             299643
Reviewed by:    des
Differential Revision: https://reviews.freebsd.org/D60910
Fixes: c30a321a61ce ("diff: support -qq to output absolutely nothing")
DeltaFile
+3-3usr.bin/diff/diff.c
+3-31 files

FreeBSD/src e8923c7 — sys/amd64/linux linux_sysvec.c, sys/amd64/linux32 linux32_sysvec.c

devfs: make persistent controlling terminal an ABI property

Linux leaves the session's controlling terminal in place after the
last file descriptor on the slave is closed, so a later open of
/dev/tty succeeds.  FreeBSD drops the session vnode reference on that
close. /dev/tty then fails, which breaks Linux programs such as xterm
that close the pty slave during startup and expect /dev/tty to keep
working.

When the closer is a Linux process, leave the session reference in
place.  Still pass FLASTCLOSE to the driver so the master sees hangup.
Native close behavior is unchanged.

Add the SV_PERSISTENT_CTTY sysentvec flag for ABIs that retain the
controlling terminal after the last slave descriptor is closed.  This
keeps the devfs behavior ABI-agnostic and allows other ABIs to request
the same semantics if needed.  Use the flag in devfs_close().

Reviewed by:    kib

    [2 lines not shown]
DeltaFile
+7-1sys/fs/devfs/devfs_vnops.c
+3-2sys/i386/linux/linux_sysvec.c
+2-1sys/amd64/linux32/linux32_sysvec.c
+1-1sys/arm64/linux/linux_sysvec.c
+1-1sys/amd64/linux/linux_sysvec.c
+1-0sys/sys/sysent.h
+15-66 files

FreeBSD/src 44961ed — share/man/man4 termios.4

termios.4: clarify the behavior on the last close of controlling terminal

Reviewed by:    kib
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D60701
DeltaFile
+6-6share/man/man4/termios.4
+6-61 files

FreeBSD/src 07ab87b — sys/powerpc/powerpc mp_machdep.c

powerpc: powerpc_ipi_handler(): Stop first, preempt last

Preemption should happen last so that other IPIs have a chance to be
executed in due course, in particular hardclockintr().  So, move
handling of IPI_PREEMPT at the end.

An IPI_STOP/IPI_STOP_HARD request should be processed immediately to
avoid risks that further processing changes the system state on panic,
or worse itself causes another panic on corrupted kernel state.

While here, move IPI_AST handling just before IPI_PREEMPT.  We currently
do not need to do anything for it, but if we were to, it is likely that
would have to happen after other IPIs but IPI_PREEMPT.

Reviewed by:    jhibbits
Fixes:          9d5a22b928c2 ("MFp4: SMP support")
Fixes:          12640815f815 ("MFp4: SMP support")
Fixes:          7ed09a6778d3 ("powerpc: Rework IPI message processing")
MFC after:      1 week

    [2 lines not shown]
DeltaFile
+17-11sys/powerpc/powerpc/mp_machdep.c
+17-111 files

FreeBSD/src 3a0e2ca — sys/x86/x86 mp_x86.c

x86: ipi_bitmap_handler(): Account for IPIs correctly on COUNT_IPIS

A preemption could occur before the updates to the initial CPU's IPI
counters, leading to a potential non-atomic updates of these counters
from another CPU.

Reviewed by:    kib
Fixes:          ff326a187907 ("x86: Restore the critical section (...)")
MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D60862
DeltaFile
+12-13sys/x86/x86/mp_x86.c
+12-131 files

FreeBSD/src b83bd6f — sys/x86/x86 mp_x86.c

x86: ipi_bitmap_handler(): Preempt last, reduce critical section

Preemption should happen last so that other IPIs have a chance to be
executed in due course, in particular hardclockintr().  So, move
handling of IPI_PREEMPT at the end.

Reduce the critical section to be in force only around hardclockintr(),
which needs it to execute entirely without preemption (because of code
it calls that can enter a critical section; interrupts are already
disabled in this handler, as usual).

The critical_exit() following hardclockintr() may cause preemption if
due.  If that happens, there is no need to preempt again on IPI_PREEMPT,
so make sure sched_preempt() is not called in this case.

This fixes inadvertent removal of the optimization that sched_preempt()
should be called outside of a critical section to perform an immediate
context switch in the case of IPI_HARDCLOCK and IPI_PREEMPT being
handled at the same time.

    [10 lines not shown]
DeltaFile
+27-18sys/x86/x86/mp_x86.c
+27-181 files

FreeBSD/src eefc98f — stand/userboot/userboot libuserboot.h main.c

stand: userboot: improve userdisk error handling

Currently, userdisk_init() iterates through disks and
checks whether DIOCGSECTORSIZE and DIOCGMEDIASIZE ioctls
are available for the device. If either ioctl fails, userdisk_init()
returns ENXIO with ud_info only partially initialized.
devinit() records the failure, but loader_main() ignores
devinit()'s return value, so later code may access an
uninitialized entry.

In certain cases this code can still boot from a disk even if
userdisk_init() returns ENXIO, for example, when the first of
two disks is valid and the second errors out.

To address this issue while not breaking the current behavior, do
the following:

 - Zero-initialize the userdisk_info array and use a zero media size
   to mark disks that do not support the ioctls mentioned above or

    [16 lines not shown]
DeltaFile
+32-13stand/userboot/userboot/userboot_disk.c
+6-3stand/userboot/userboot/main.c
+1-0stand/userboot/userboot/libuserboot.h
+39-163 files

FreeBSD/src ebf1041 — 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
DeltaFile
+28-39sys/dev/hyperv/utilities/hv_kvp.c
+28-391 files

FreeBSD/src a11b901 — 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
DeltaFile
+44-30sys/amd64/vmm/io/vlapic.c
+0-1sys/amd64/vmm/io/vlapic.h
+44-312 files

FreeBSD/src 0ce9d6e — contrib/openbsm/bin/auditdistd proto_common.c

auditdistd: Fix build failure

Fixes:          4f19e4aca4f4 ("auditdistd: Use void pointers for opaque data")
Reported by:    garga@
DeltaFile
+1-1contrib/openbsm/bin/auditdistd/proto_common.c
+1-11 files

FreeBSD/src dff56e8 — sbin/hastd proto_common.c

hastd: Fix build failure

Fixes:          a5e6bee5a0bf ("hastd: Use void pointers for opaque data")
Reported by:    garga@
DeltaFile
+1-1sbin/hastd/proto_common.c
+1-11 files

FreeBSD/src 8430de4 — sys/conf files, sys/dev/wg if_wg.c

wg: fix the LINT-NOIP build

We don't have anything to tunnel without INET or INET6, so just smack
it with the same config(5) hammer that ovpn uses and exclude it from
such builds.

Reported by:    mjg
Reviewed by:    emaste, markj
Differential Revision:  https://reviews.freebsd.org/D60896
DeltaFile
+4-4sys/conf/files
+0-2sys/dev/wg/if_wg.c
+4-62 files

FreeBSD/src 8208040 — sys/netpfil/pf pf_lb.c, tests/sys/netpfil/pf nat.sh

pf: first-match-wins for nat rules, even in anchors

Ensure we stop evaluating nat rules if we find a match in a nat-anchor.

PR:             299320
MFC after:      1 week
Sponsored by:   Rubicon Communications, LLC ("Netgate")

(cherry picked from commit b5219c068fbc133dde91d5cf48423e34ce27bd4f)
DeltaFile
+91-0tests/sys/netpfil/pf/nat.sh
+4-0sys/netpfil/pf/pf_lb.c
+95-02 files