FreeBSD/src ea13f18 — cddl/usr.sbin/dwatch dwatch dwatch.1

dwatch(1): Use mdo(1) instead of sudo(8) when configured

Reviewed by:    dteske, olce
Approved by:    christos (mentor)
MFC after:      1 week
Sponsored by:   fme AG
Differential Revision:  https://reviews.freebsd.org/D60408

(cherry picked from commit b6a573aa771e4a4b239a7bfeb074d1d25e811c1b)
DeltaFile
+4-2cddl/usr.sbin/dwatch/dwatch.1
+2-1cddl/usr.sbin/dwatch/dwatch
+6-32 files

FreeBSD/src f4fe4c3 — sys/netpfil/pf pf_table.c, tests/sys/netpfil/pf limiters.sh

pf: Remove a table entry regardless of its mark

pfr_remove_kentry() returns without removing an entry whose mark is
set.  The mark is scratch space for the operations that handle a list
of addresses: each resets it before use and leaves it set on the
entries it kept, so after "pfctl -T replace" or "pfctl -T zero" of an
address the entry stays marked.  An address a source limiter put in
its table is then never taken out again when the source falls below
the low-water mark.

Remove the entry whether it is marked or not; nothing else is in the
work queue.

Add a regression test.

Reviewed by:            kp
Fixes:                  461648121230 ("pf: introduce source and state limiters")
Sponsored by:           Rubicon Communications, LLC ("Netgate")
Differential Revision:  https://reviews.freebsd.org/D60530
DeltaFile
+56-0tests/sys/netpfil/pf/limiters.sh
+0-4sys/netpfil/pf/pf_table.c
+56-42 files

FreeBSD/src d561278 — sbin/umbctl umbctl.8, share/man/man4 umb.4

Revert "umb: Update man page HISTORY"

Oops, pushed in error from a staging branch.

This reverts commit ed797306243f3bdbbfd5d8223ec8698b9d7fe319.
DeltaFile
+1-1share/man/man4/umb.4
+1-1sbin/umbctl/umbctl.8
+2-22 files

FreeBSD/src 98b7f63 — share/man/man4 Makefile

man4: Install mgb.4 on all architectures

mgb(4) is not x86-only now, so install its manpage everywhere and make
if_mgb.4 link creation work, which is already on all architectures.

Sponsored by:   The FreeBSD Foundation
DeltaFile
+1-2share/man/man4/Makefile
+1-21 files

FreeBSD/src ed79730 — sbin/umbctl umbctl.8, share/man/man4 umb.4

umb: Update man page HISTORY

It was merged to stable/14 prior to FreeBSD 14.4.
DeltaFile
+1-1share/man/man4/umb.4
+1-1sbin/umbctl/umbctl.8
+2-22 files

FreeBSD/src 617c700 — sys/conf newvers.sh

newvers.sh: Report -dirty also with staged changes

We add -dirty to the uname version string if the tree does not match the
reported hash. Previously, staged but uncommitted changes were ignored.
Noted by naddy@ in D60606.

Reviewed by:    cperciva, imp
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D60722
DeltaFile
+1-1sys/conf/newvers.sh
+1-11 files

FreeBSD/src 79d491b — contrib/elftoolchain/libelftc elftc_timestamp.3 elftc_reloc_type_str.3, contrib/openbsm/bin/auditdistd unlinkat.h trail.h

Remove "All Rights Reserved" from FreeBSD Foundation copyrights

These ones were unambiguous cases where the Foundation was the only
listed copyright holder.
DeltaFile
+1-1contrib/elftoolchain/libelftc/elftc_timestamp.3
+1-1contrib/elftoolchain/libelftc/elftc_reloc_type_str.3
+0-1contrib/openbsm/compat/compat.h
+0-1contrib/openbsm/compat/closefrom.h
+0-1contrib/openbsm/bin/auditdistd/unlinkat.h
+0-1contrib/openbsm/bin/auditdistd/trail.h
+2-631 files not shown
+2-3737 files

FreeBSD/src a143197 — 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
DeltaFile
+242-0sbin/dhclient/tests/functional.py
+2-0sbin/dhclient/tests/Makefile
+244-02 files

FreeBSD/src 368a1bf — 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
DeltaFile
+43-31sbin/dhclient/dhclient.c
+43-311 files

FreeBSD/src 35a226d — tests/sys/kern Makefile sigreturn_fpregs_ppc64.S

tests/sys/kern: stress FP registers across sigreturn on powerpc64

This is the program that found the races fixed in 1f1043d550ea. One
thread keeps a pattern in f14-f31 across a signal, while helpers pinned
to the same CPU keep different patterns in the real registers and get
woken up from another CPU to preempt it at random points. If the kernel
ever hands it somebody else's registers, the pattern doesn't match.

The register loads, the thr_kill() and the handshake with the helper are
in assembly so that nothing touches the FP registers between sigreturn
and the check. It runs for ten seconds and is skipped with fewer than
two CPUs.

Requested by:   adrian
Approved by:    jhibbits
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D60411
DeltaFile
+233-0tests/sys/kern/sigreturn_fpregs.c
+175-0tests/sys/kern/sigreturn_fpregs_ppc64.S
+6-0tests/sys/kern/Makefile
+414-03 files

FreeBSD/src eaaf838 — sys/powerpc/aim locore64.S trap_subr64.S, sys/powerpc/include pcpu.h

powerpc64: give each CPU its own KDB trap stack

Kernel mode program, trace, breakpoint and machine check exceptions go
through dbtrap, which saves the registers on trapstk and, if KDB doesn't
want the trap, restores them from there and continues with the normal
trap handler. There was just one trapstk for all CPUs, so when two of
them trapped at the same time they overwrote each other's frame and one
of them carried on with the other's registers. DTrace fbt probes are
these traps, so a probe on a function that runs on several CPUs at once
took the kernel down within seconds.

Keep the stack in the pcpu instead. The boot CPU gets a static one,
since it's set up before malloc works, the others allocate theirs in
cpu_pcpu_init() like the Book-E critical interrupt stack.

Approved by:    jhibbits
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D60362
DeltaFile
+27-0sys/powerpc/aim/aim_machdep.c
+0-7sys/powerpc/aim/locore64.S
+3-4sys/powerpc/aim/trap_subr64.S
+2-1sys/powerpc/include/pcpu.h
+1-0sys/powerpc/powerpc/genassym.c
+33-125 files

FreeBSD/src c4fde87 — libexec/rtld-elf/powerpc rtld_start.S, libexec/rtld-elf/powerpc64 rtld_start.S

rtld: add .cfi_undefined lr to rtld_start.S on powerpc*

Without it, LLVM libunwind doesn't know where to stop when unwinding the
main thread, so it uses a stale LR as the return address and crashes.
Our libunwind doesn't do that since 5866c369e4fd reverted it, but
programs that bundle their own copy, like ClickHouse, are hit by it.

amd64, arm64, i386 and riscv already have the same annotation.

Approved by:    jhibbits
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D60740
DeltaFile
+1-0libexec/rtld-elf/powerpc64/rtld_start.S
+1-0libexec/rtld-elf/powerpc/rtld_start.S
+2-02 files

FreeBSD/src d7d237c — share/man/man4 acpi_apple.4, sys/dev/apple_acpi apple_acpi.c apple_platform.c

acpi_apple: Apple platform ACPI driver,

handles wake-on-LAN arming and lid state on the PCH
PMC/GMUX platform instance, and panel backlight
control on the PNLF instance, registering with
backlight(9).

Reviewed by:    ziaee, adrian
Differential Revision:  https://reviews.freebsd.org/D58867
DeltaFile
+771-0sys/dev/apple_acpi/apple_backlight.c
+149-0sys/dev/apple_acpi/apple_acpi.h
+123-0sys/dev/apple_acpi/apple_platform.c
+120-0sys/dev/apple_acpi/apple_acpi.c
+74-0share/man/man4/acpi_apple.4
+8-0sys/modules/acpi/acpi_apple/Makefile
+1,245-03 files not shown
+1,255-09 files

FreeBSD/src 802f5e4 — sbin/ggate/ggated ggated.c, sbin/ggate/ggatel ggatel.c

ggate: fix test intermittency

* ggatel: fix piped output.  Flush stdout before daemonizing, so the
  output can be read when it's in a command pipeline.

* ggated: bind the port _before_ daemonizing, so an invoking script can
  be sure that the port is bound as soon as the command returns.

* tests: allow ggatec or ggatel to automatically allocate a device
  number instead of choosing one in a racy way.

With all of these changes I can no run the tests 1000 times without
fail.  And in parallel, too.

MFC after:      1 week
Sponsored by:   ConnectWise
PR:             298942
Reported by:    siva
Reviewed by:    ngie
Differential Revision: https://reviews.freebsd.org/D60707
DeltaFile
+17-31tests/sys/geom/class/gate/ggate_test.sh
+13-8sbin/ggate/ggated/ggated.c
+3-1sbin/ggate/ggatel/ggatel.c
+0-3tests/sys/geom/class/gate/Makefile
+33-434 files

FreeBSD/src a045cfb — sys/dev/sound/pcm sound.h

sound: Remove obsolete comment from sound.h

MFC after:      1 week
Sponsored by:   The FreeBSD Foundation

(cherry picked from commit 20381bce4b63975494a2f4bc84257f6932e6d379)
DeltaFile
+0-6sys/dev/sound/pcm/sound.h
+0-61 files

FreeBSD/src 6db6755 — share/man/man7 ports.7

ports.7: Document how to use mdo(1) for SU_CMD

Reviewed by:    olce
MFC after:      1 week
Sponsored by:   fme AG
Differential Revision:  https://reviews.freebsd.org/D60443

(cherry picked from commit 8eb863097f264794eccd8ef7cdaf95aa80260353)
DeltaFile
+3-1share/man/man7/ports.7
+3-11 files

FreeBSD/src a4939c5 — sys/dev/virtio/gpu virtio_gpu.c

virtio_gpu: use an X8R8G8B8 resource on big-endian guests

The virtio-gpu resource formats are defined by byte order in memory,
while vt(4) and the X server (through vt_fb and the fb mmap) write
native 32-bit 0x00RRGGBB pixels into the shadow framebuffer.  On a
big-endian guest such as powerpc64 those pixels land in memory as
00 RR GG BB, which the host interprets under B8G8R8X8 with red and
blue swapped and the padding byte taken as blue: white renders yellow
and blue renders black.

Request X8R8G8B8 on big-endian guests instead, which is also what the
Linux driver does (DRM_FORMAT_HOST_XRGB8888).  Reproduced with a colour
test pattern on a powerpc64 QEMU pseries guest using the identically
coded out-of-tree fork of this driver (graphics/virtio-gpu-qemu-kmod);
little-endian guests are unchanged.

Differential Revision:  https://reviews.freebsd.org/D60085
Approved by:    jhibbits
MFC after:      1 week

    [3 lines not shown]
DeltaFile
+7-1sys/dev/virtio/gpu/virtio_gpu.c
+7-11 files

FreeBSD/src ceaf30c — sys/dev/virtio/gpu virtio_gpu.c

virtio_gpu: use an X8R8G8B8 resource on big-endian guests

The virtio-gpu resource formats are defined by byte order in memory,
while vt(4) and the X server (through vt_fb and the fb mmap) write
native 32-bit 0x00RRGGBB pixels into the shadow framebuffer.  On a
big-endian guest such as powerpc64 those pixels land in memory as
00 RR GG BB, which the host interprets under B8G8R8X8 with red and
blue swapped and the padding byte taken as blue: white renders yellow
and blue renders black.

Request X8R8G8B8 on big-endian guests instead, which is also what the
Linux driver does (DRM_FORMAT_HOST_XRGB8888).  Reproduced with a colour
test pattern on a powerpc64 QEMU pseries guest using the identically
coded out-of-tree fork of this driver (graphics/virtio-gpu-qemu-kmod);
little-endian guests are unchanged.

Differential Revision:  https://reviews.freebsd.org/D60085
Approved by:    jhibbits
MFC after:      1 week

    [2 lines not shown]
DeltaFile
+7-1sys/dev/virtio/gpu/virtio_gpu.c
+7-11 files

FreeBSD/src f84cdc2 — sys/netpfil/pf if_pfsync.c

pfsync: use result of m_pullup()
DeltaFile
+2-2sys/netpfil/pf/if_pfsync.c
+2-21 files

FreeBSD/src c27ed49 — sys/dev/iwm if_iwm_pcie_trans.h if_iwm_pcie_trans.c

iwm: add return status to set/clear prph bits

This brings these functions inline with OpenBSD

Locally tested:

* 3160, STA mode
* 7260, STA mode
* 8260, STA mode
* 9260, STA mode

Obtained from: OpenBSD a6e25c727a2214219715b51ba6af2221d7e0d674

Reviewed by:    emaste
Differential Revision:  https://reviews.freebsd.org/D60211
DeltaFile
+7-6sys/dev/iwm/if_iwm_pcie_trans.c
+3-3sys/dev/iwm/if_iwm_pcie_trans.h
+10-92 files

FreeBSD/src 103a4f0 — sys/dev/iwm if_iwmvar.h if_iwm_phy_ctxt.h

iwm: update phy context routines; add HT channel width parameter

Update the phy context routines to match what the openbsd snapshot
is doing.  This involves some HT channel width stuff which although
I am not doing HT right now, it was juts easier to sync these
entirely versus just a partial sync.

* Update the phy context routines to match what openbsd is doing
* Although the openbsd driver has an iwm_phy_ctxt_update() routine
  instead of add and modify, I'm leaving it as-is for now.
  A bunch of refactoring is going to need to be done to properly
  use an iwm_phy_ctxt_update() call and I didn't want to tackle
  that in here.
* Add a UHB firmware capability phy context call; I can't test it
  but it's mostly copy/paste.
* Add in a util to turn ieee80211_channel into the 'sco' variable
  (the HT low/hi parameter) since it's done in openbsd in a
  slightly different way.


    [10 lines not shown]
DeltaFile
+101-19sys/dev/iwm/if_iwm_phy_ctxt.c
+18-0sys/dev/iwm/if_iwm_util.h
+6-2sys/dev/iwm/if_iwm.c
+5-0sys/dev/iwm/if_iwm_phy_ctxt.h
+1-0sys/dev/iwm/if_iwmvar.h
+131-215 files

FreeBSD/src ed92055 — sys/dev/iwm if_iwm.c

iwm: bring IWM_CSR_HW_IF_CONFIG_REG programming in line with openbsd

bring the iwm_nic_config() / IWM_CSR_HW_IF_CONFIG_REG programming
in line with openbsd.

Locally tested:

* 3160 STA mode
* 7260 STA mode
* 8260 STA mode
* 9260 STA mode

Obtained from: OpenBSD a6e25c727a2214219715b51ba6af2221d7e0d674

Differential Revision:  https://reviews.freebsd.org/D60081
DeltaFile
+8-5sys/dev/iwm/if_iwm.c
+8-51 files

FreeBSD/src 8d53176 — sys/dev/iwm if_iwmvar.h if_iwm_util.c

iwm: add DQA (dynamic queue assignment)

This is the minimum set of DQA bits from iwm at the given openbsd
commit place.

* add a method to map ac to queue / ring
* use the DQA command queue if needed
* glue to wire it up

Locally tested:

* Intel 7260, STA mode
* Intel 9260, STA mode
* Intel 8260, STA mode
* Intel 3160, STA mode

Obtained from: OpenBSD a6e25c727a2214219715b51ba6af2221d7e0d674

Differential Revision:  https://reviews.freebsd.org/D60080
DeltaFile
+73-14sys/dev/iwm/if_iwm.c
+22-6sys/dev/iwm/if_iwm_sta.c
+1-1sys/dev/iwm/if_iwm_util.c
+1-0sys/dev/iwm/if_iwmvar.h
+97-214 files

FreeBSD/src 472a735 — sys/fs/nfsserver nfs_nfsdsocket.c

nfs_nfsdsocket.c: Fix "nfsstats -d" for ERELOOKUP

When ERELOOKLUP is returned by a file operation
(always vop_lookup?) the operation is retried without
doing nfsrv_statsend().

This patch fixes this problem,

The only effect of the bug was bogus "nfsstat -d"
output.

PR:     298534

(cherry picked from commit 9a237074d380233e93a17ddee6b155cc2f90ee96)
DeltaFile
+7-0sys/fs/nfsserver/nfs_nfsdsocket.c
+7-01 files

FreeBSD/src e4a203a — sys/fs/nfsserver nfs_nfsdsocket.c

nfs_nfsdsocket.c: Fix "nfsstats -d" for ERELOOKUP

When ERELOOKLUP is returned by a file operation
(always vop_lookup?) the operation is retried without
doing nfsrv_statsend().

This patch fixes this problem,

The only effect of the bug was bogus "nfsstat -d"
output.

PR:     298534

(cherry picked from commit 9a237074d380233e93a17ddee6b155cc2f90ee96)
DeltaFile
+7-0sys/fs/nfsserver/nfs_nfsdsocket.c
+7-01 files

FreeBSD/src c30a321 — usr.bin/diff diff.h diff.1

diff: support -qq to output absolutely nothing

This is similar to `cmp -s`, but can be combined with:
-B --ignore-blank-lines
-b --ignore-space-change
-w --ignore-all-space

To only report a difference if it doesn't involve whitespace

Reviewed by:    des, bapt, markj (previous version), ziaee (man page)
MFC after:      1 week
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D46717
DeltaFile
+10-3usr.bin/diff/diff.c
+5-2usr.bin/diff/diffreg.c
+4-1usr.bin/diff/diff.1
+1-0usr.bin/diff/diff.h
+20-64 files

FreeBSD/src 1da1ad3 — tests/sys/netpfil/common nat.sh utils.subr

tests/netpfil: reference manual pages in atf_skip statements

For those modules that don't have a manual page spell out full name of a
loadable module.
DeltaFile
+7-7tests/sys/netpfil/common/utils.subr
+1-1tests/sys/netpfil/common/nat.sh
+8-82 files

FreeBSD/src 169e254 — sys/fs/fuse fuse_vnops.c fuse_ipc.c, tests/sys/fs/fusefs mockfs.hh mockfs.cc

fusefs: fix a deadlock caused by daemons that never initialize

If a daemon never responds to FUSE_INIT, but some process attempts to
access the mountpoint, and a different process (possibly the daemon
itself) attempts to unmount, a deadlock would result.

Fix this bug by blocking any thread that enters fuse_vfsop_root until
the daemon responds to FUSE_INIT or it times out.  That will block any
thread attempting to lookup a path in the fuse mountpoint, before it
even gets to fuse VOPs.  Remove less thorough initialization checks in
fuse_ticket_fetch and fuse_vnop_access that are no longer necessary.
And add a test case.

PR:             287431
Sponsored by:   ConnectWise
Reviewed by:    js
Differential Revision: https://reviews.freebsd.org/D59737

(cherry picked from commit 0bd6348b52e1991fafc55128173c989dab36dfd9)
DeltaFile
+75-11tests/sys/fs/fusefs/pre-init.cc
+31-0sys/fs/fuse/fuse_vfsops.c
+1-23sys/fs/fuse/fuse_ipc.c
+0-14sys/fs/fuse/fuse_vnops.c
+8-1tests/sys/fs/fusefs/mockfs.cc
+1-1tests/sys/fs/fusefs/mockfs.hh
+116-503 files not shown
+119-529 files

FreeBSD/src 9d50245 — sys/amd64/include ieeefp.h, sys/arm/include ieeefp.h

machine/ieeefp.h: include <sys/cdefs.h>

The <machine/ieeefp.h> headers wrap their deprecated FPU control
prototypes in __BEGIN_DECLS/__END_DECLS but rely on the includer to
have pulled in <sys/cdefs.h>.  Including <floatingpoint.h> first on
arm, arm64, powerpc and riscv (or amd64 <machine/ieeefp.h> with
__IEEEFP_NOINLINES__) fails with "unknown type name '__BEGIN_DECLS'".
This breaks e.g. devel/py-pyinstaller.

Suggested by:   jhb
Reviewed by:    jhb
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D59659
DeltaFile
+2-0sys/riscv/include/ieeefp.h
+2-0sys/powerpc/include/ieeefp.h
+2-0sys/arm64/include/ieeefp.h
+2-0sys/arm/include/ieeefp.h
+1-0sys/amd64/include/ieeefp.h
+9-05 files

FreeBSD/src 99a3150 — usr.sbin/bhyve pci_hda.c

bhyve: Improve HDA stream descriptor validation

The length of each block in the stream must be non-zero.  This is
assumed in hda_transfer(), otherwise an out-of-bounds read or write is
possible.

Use atomic loads to access stream descriptor fields, since they are
guest-controlled.  Make sure that the descriptor array is suitably
aligned so that we can drop the __packed annotation from the structure
definition; per section 3.3.42 of the HDA spec the BDL pointer is
supposed to be 128-byte aligned, in fact.

Approved by:    so
Security:       FreeBSD-SA-26:72.bhyve
Security:       CVE-2026-101310
Reported by:    Brian Delgado from Intel using Anthropic Opus 4.8
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D60678
DeltaFile
+15-8usr.sbin/bhyve/pci_hda.c
+15-81 files