FreeBSD/src 91d8163 — libexec/rtld-elf rtld.c

rtld: fix leak in get_program_var_addr() on the error path

Fixes:  1e370f038778 ("rtld: stop using unbound alloca()")
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
DeltaFile
+3-1libexec/rtld-elf/rtld.c
+3-11 files

FreeBSD/src 175595b — libexec/rtld-elf rtld.c

dl_iterate_phdr(3): do not return garbage for objects not using TLS

For objects without a TLS segment, tlsindex is zero. tls_get_addr_slow()
then reads dtv_slots[-1], which is dtv_size, and returns it as the TLS
address. Set dlpi_tls_data to NULL for such objects instead.

Fixes:  d36d68161517 ("rtld dl_iterate_phdr(): dlpi_tls_data is wrong")
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
DeltaFile
+6-2libexec/rtld-elf/rtld.c
+6-21 files

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

rtld: some cosmetics in donelist_init()

Add a missing word in the comment.
Make each assignment a separate statement.
Fix formatting.

Fixes:  1e370f038778 ("rtld: stop using unbound alloca()")
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
DeltaFile
+5-5libexec/rtld-elf/rtld.c
+5-51 files

FreeBSD/src 83fdec2 — sys/kern vfs_init.c

vfs_register: prevent kernel crash

vfs_register hashes the filesystem name and uses it for sysctl oids.
A filesystem name which hashes to 0 crashes in sysctl_register_oid().

Map 0 to 1 to prevent the kernel crash.

This can be tested with "udf2" as the filesystem name.

MFC after:      1 month
MFC to:         stable/15 stable/14
Reviewed by:    kib
Differential Revision: https://reviews.freebsd.org/D59839

(cherry picked from commit 3897678132e71df70dbb18bf8e2f19124beee5d7)
DeltaFile
+2-0sys/kern/vfs_init.c
+2-01 files

FreeBSD/src f581891 — sys/kern vfs_init.c

vfs_register: prevent kernel crash

vfs_register hashes the filesystem name and uses it for sysctl oids.
A filesystem name which hashes to 0 crashes in sysctl_register_oid().

Map 0 to 1 to prevent the kernel crash.

This can be tested with "udf2" as the filesystem name.

MFC after:      1 month
MFC to:         stable/15 stable/14
Reviewed by:    kib
Differential Revision: https://reviews.freebsd.org/D59839

(cherry picked from commit 3897678132e71df70dbb18bf8e2f19124beee5d7)
DeltaFile
+2-0sys/kern/vfs_init.c
+2-01 files

FreeBSD/src 6a936d9 — contrib/llvm-project/libunwind/include __libunwind_config.h, contrib/llvm-project/libunwind/src UnwindCursor.hpp

Merge commit 4d7292e58078 from llvm-project (by Minsoo Choo):

  [libunwind] Unwind through AArch64 FreeBSD signal trampolines (#235065)

  Retried from https://reviews.llvm.org/D155066.

  Recognize signal trampolines using KERN_PROC_SIGTRAMP when unwind
  metadata is unavailable. Restore the interrupted PC, LR, SP, general
  registers, and valid floating-point registers.

  Add coverage for unwinding out of an interrupted leaf function on both
  regular and alternate signal stacks.

  Assisted-by: GPT

MFC after:      1 week
DeltaFile
+76-1contrib/llvm-project/libunwind/src/UnwindCursor.hpp
+3-0contrib/llvm-project/libunwind/include/__libunwind_config.h
+79-12 files

FreeBSD/src 28ec7cb — contrib/llvm-project/libunwind/src assembly.h UnwindCursor.hpp

Merge commit fd4113508a64 from llvm-project (by Minsoo Choo):

  [libunwind] Support extended amd64 segment registers (#229176)

  Raise the amd64 DWARF register limit to 59 and add RFLAGS, all six
  segment selectors, FS.base, and GS.base to the register model. Capture
  the extended state and restore it when resuming, using sigreturn() on
  FreeBSD to restore selectors and bases together. Pack the state into the
  existing context buffers without changing their public sizes or the
  Windows XMM offsets.

  Add tests for register access, signal-frame CFI recovery, register
  bounds, and resume behavior.

  Assisted-by: GPT

MFC after:      1 week
DeltaFile
+92-7contrib/llvm-project/libunwind/src/Registers.hpp
+62-7contrib/llvm-project/libunwind/src/UnwindRegistersRestore.S
+57-5contrib/llvm-project/libunwind/src/UnwindRegistersSave.S
+52-0contrib/llvm-project/libunwind/src/libunwind.cpp
+27-0contrib/llvm-project/libunwind/src/UnwindCursor.hpp
+18-0contrib/llvm-project/libunwind/src/assembly.h
+308-193 files not shown
+320-229 files

FreeBSD/src f7114dc — libexec/pkg-serve pkg-serve.8

manpages: Fix unusual Xr order
DeltaFile
+1-1libexec/pkg-serve/pkg-serve.8
+1-11 files

FreeBSD/src 44a5cf1 — usr.bin/iscsictl iscsictl.8, usr.bin/netstat netstat.1

manpages: Fix unusual Xr order
DeltaFile
+2-2usr.bin/tcopy/tcopy.1
+2-2usr.bin/sockstat/sockstat.1
+1-1usr.bin/runat/runat.1
+1-1usr.bin/procstat/procstat.1
+1-1usr.bin/netstat/netstat.1
+1-1usr.bin/iscsictl/iscsictl.8
+8-86 files

FreeBSD/src 3f4743d — usr.sbin/apm apm.8, usr.sbin/arp arp.8

manpages: Fix unusual Xr order
DeltaFile
+2-2usr.sbin/moused/msconvd/msconvd.8
+1-1usr.sbin/moused/moused/moused.8
+1-1usr.sbin/arp/arp.8
+1-1usr.sbin/apm/apm.8
+5-54 files

FreeBSD/src 7411972 — sbin/mount mount.8, sbin/mount_nfs mount_nfs.8

manpages: Fix unusual Xr order
DeltaFile
+1-1sbin/savecore/savecore.8
+1-1sbin/mount_nfs/mount_nfs.8
+1-1sbin/mount/mount.8
+3-33 files

FreeBSD/src 14680d2 — bin/ps ps.1

ps.1: Fix unusual Xr order
DeltaFile
+2-2bin/ps/ps.1
+2-21 files

FreeBSD/src 51a5311 — bin/df df.1

df.1: Fix unusual Xr order
DeltaFile
+1-1bin/df/df.1
+1-11 files

FreeBSD/src 8dac0bd — sys/dev/sound/pci/hda hdac.h hdac.c

snd_hda: Identify AMD Audio Coprocessor

This makes the driver attach, but the device is still not usable.

Reported by:    Lukasz Wencki <lukasz at smail.net.pl>
MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
DeltaFile
+1-0sys/dev/sound/pci/hda/hdac.h
+1-0sys/dev/sound/pci/hda/hdac.c
+2-02 files

FreeBSD/src 83f24cf — sys/powerpc/powerpc exec_machdep.c

powerpc: keep the VSX halves of the FPRs across back-to-back signals

grab_mcontext() only put the second halves of vs0-31 into the context
while the thread owned the VSX unit, but sigreturn(2) gives ownership
up so that the next use reloads the registers lazily. A signal that
arrives right after a sigreturn, like one the handler's mask was
holding back, got a context without them and its own sigreturn then
zeroed them in the PCB.

The halves saved in the PCB are current whenever the FP state is, since
VSX instructions can't run without PCB_VSX and save_fpu() stores them
in that case, so export them together with the FP registers.

Reviewed by:    jhibbits
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D60754

(cherry picked from commit 64b2fea9a2f90c2cc6097ed2d69acbfeeb13058d)
(cherry picked from commit 0e9af9fb72884e77de79e37069a162e1563ca86b)
DeltaFile
+14-6sys/powerpc/powerpc/exec_machdep.c
+14-61 files

FreeBSD/src 0e9af9f — sys/powerpc/powerpc exec_machdep.c

powerpc: keep the VSX halves of the FPRs across back-to-back signals

grab_mcontext() only put the second halves of vs0-31 into the context
while the thread owned the VSX unit, but sigreturn(2) gives ownership
up so that the next use reloads the registers lazily. A signal that
arrives right after a sigreturn, like one the handler's mask was
holding back, got a context without them and its own sigreturn then
zeroed them in the PCB.

The halves saved in the PCB are current whenever the FP state is, since
VSX instructions can't run without PCB_VSX and save_fpu() stores them
in that case, so export them together with the FP registers.

Reviewed by:    jhibbits
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D60754

(cherry picked from commit 64b2fea9a2f90c2cc6097ed2d69acbfeeb13058d)
DeltaFile
+14-6sys/powerpc/powerpc/exec_machdep.c
+14-61 files

FreeBSD/src 3e05143 — . Makefile.in configure, admin ltmain.sh

kyua: import kyua-0.15.1

This change adds kyua kyua-0.15.1 from [upstream][1].

The kyua-0.15.1 artifact was been verified by [SHA256 checksum][3].

This release contains several (largely minor) bugfixes: the primary focus was
to address issues found when using the GoogleTest parser with Kyua 0.15.0.

More information about the release (from a high level) can be found in
the [release notes][4].

Updated via [`update_kyua.sh`][4] `update_kyua.sh 0.15.1 kyua-0.15.1`.

1: https://github.com/freebsd/kyua/releases/download/kyua-0.15.1/kyua-0.15.1.tar.gz
2: https://github.com/freebsd/kyua/releases/download/kyua-0.15.1/kyua-0.15.1.tar.gz.sha256
3: https://github.com/freebsd/kyua/blob/kyua-0.15.1/NEWS.md
4: https://codeberg.org/ngie/freebsd-powertools:shell/update_kyua.sh@10a04edb
DeltaFile
+601-159m4/libtool.m4
+442-230configure
+245-80admin/ltmain.sh
+134-63engine/googletest_result.cpp
+111-30engine/googletest_result_test.cpp
+93-37Makefile.in
+1,626-59932 files not shown
+1,845-86038 files

FreeBSD/src dc1514e — sys/x86/include sysarch.h

x86: make machine/sysarch.h usable from assembler

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
DeltaFile
+8-4sys/x86/include/sysarch.h
+8-41 files

FreeBSD/src a3214d4 — share/mk bsd.confs.mk

share/mk/bsd.confs.mk: fix trivial typo in message

The error message noting that the file should not be included said
"bsd.conf.mk" before this change. Now it correctly says "bsd.confs.mk".

MFC after:      3 days
DeltaFile
+1-1share/mk/bsd.confs.mk
+1-11 files

FreeBSD/src 81f86c9 — sys/dev/usb/net if_smsc.c

smsc: Allow 10BASE-T1L/-T1S media

These are Single-Pair Ethernet types (SPE) from 802.3cg. smsc sets the
link flag only if mii_media_active is one of a known set of media types.

Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D60745
DeltaFile
+2-0sys/dev/usb/net/if_smsc.c
+2-01 files

FreeBSD/src b958547 — sbin/sysctl sysctl.8

jail.8: fix a typo, sort Xr

PR:             299990 (typo part)
MFC after:      1 week
DeltaFile
+3-3sbin/sysctl/sysctl.8
+3-31 files

FreeBSD/src e809c7d — usr.sbin/bhyve pci_nvme.c config_schema.h, usr.sbin/bhyve/aarch64 bhyverun_machdep.c

bhyve: add command to list config options

For a software built on top of bhyve(8) and/or managing bhyve(8),
it is very convenient to know what specific features the given binary supports.
Currently, bhyve(8) provides some of this information, and it could be
retrieved by parsing `bhyve -h`, `bhyve -s help`, `bhyve -l help`.

Sometimes it is not enough, for example, the recently added
"oemstrings" feature cannot be fully probed using these commands.
Over time, some workarounds were suggested. Specifically:

 - Mapping features to __FreeBSD_version. I see at least two issues with
   that:

     * __FreeBSD_version does not directly map to bhyve(8) features,
       so this is simply not accurate.
     * bhyve(8) might be updated separately from the system, which
       is not so uncommon, especially for development purposes.
       Then such a probing will be inaccurate.

    [32 lines not shown]
DeltaFile
+202-0usr.sbin/bhyve/config_schema.c
+95-0usr.sbin/bhyve/amd64/bhyverun_machdep.c
+40-0usr.sbin/bhyve/config_schema.h
+22-0usr.sbin/bhyve/aarch64/bhyverun_machdep.c
+20-0usr.sbin/bhyve/pci_nvme.c
+18-0usr.sbin/bhyve/riscv/bhyverun_machdep.c
+397-04 files not shown
+423-110 files

FreeBSD/src a03b051 — usr.bin/locate/locate locate.1

locate.1: clarify bytes vs. characters

The database stores bytes, not characters. Remove the historical
note about 7-bit storage. Also document that -i ignores case only
for ASCII letters.

Reviewed by: ziaee
MFC after: 3 days
DeltaFile
+12-9usr.bin/locate/locate/locate.1
+12-91 files

FreeBSD/src a3d1d4e — sys/arm64/linux linux_sysvec.c

arm64 linux: Allow FUTEX_REQUEUE on arm64 by setting the brand flag

Better change is to provide the dedicated musl brandinfo, as it is done
on amd64/i386, which should be done later.

PR:     299836
MFC after:      1 week
DeltaFile
+2-1sys/arm64/linux/linux_sysvec.c
+2-11 files

FreeBSD/src 9a8d5af — sys/compat/linux linux_misc.c

linux: correct errors from mremap(2)

Linux returns EFAULT when the range to be remapped is not mapped at all,
and ENOMEM only when it is mapped but cannot be grown in place. Callers
depend on that distinction: musl's pthread_getattr_np() measures the
main thread stack by growing a one page mapping and retries while errno
is ENOMEM. Returning ENOMEM for every growth request makes that loop
spin forever.

PR:     299835
MFC after:      1 week
DeltaFile
+5-2sys/compat/linux/linux_misc.c
+5-21 files

FreeBSD/src 30b7087 — 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

(cherry picked from commit 8430de47aa7c004e1330b8f6a3018c360425606e)
DeltaFile
+4-4sys/conf/files
+0-2sys/dev/wg/if_wg.c
+4-62 files

FreeBSD/src ea041ed — stand/efi/loader main.c

loader.efi: devinit() just after parsing args instead

c4640126f1160 ("loader.efi: Apply command-line DHCP overrides earlier")
was really good, but moving it just one statement earlier is even
better.  polarian on Libera describes a GELI setup on a system that
doesn't advertise a serial console via ConOut.  They don't have serial
input at the point that they would get prompted for the GELI passphrase,
but if we parse args just before devinit() then he can override the
console with `efibootmgr -e`.  This gives UEFI one advantage over BIOS
loader, as /boot.config isn't available to provide that kind of override
if your impediment is GELI.

We also considered reading loader.env earlier, but we have a chicken/egg
problem in that we must have probed for the ESP to be able to open() it.
We would instead need a devinit_early() and devinit_late() scheme that
allows GELI probing to be deferred until the later pass, after reading
loader.env to pick up the console override.  That's an idea I'd still
like to discuss because it's more robust than hoping that firmware won't
wipe out our efibootmgr(8) entries.

    [5 lines not shown]
DeltaFile
+6-2stand/efi/loader/main.c
+6-21 files

FreeBSD/src 5245187 — etc/mtree BSD.var.dist, libexec/rc rc.conf

rc: add a backlight service to save/restore backlight levels

The default on my laptop is annoyingly bright, and this is a useful
feature to mitigate that.  The backlight script is largely a copy of the
mixer service which provides the same value for mixers, but this one is
specifically dependant on kld to allow DRM drivers a chance to attach.

Note that it's off by default to avoid interference with DEs, and
document the capability in backlight(8).  Set backlight_enable=YES in
rc.conf(5) to enable save/restore.

Relnotes:       maybe
Reviewed by:    bapt, ivy, manu, ziaee

(cherry picked from commit c45bdb39fe985b43afc63b7cbd989fe7a61673b7)
DeltaFile
+88-0libexec/rc/rc.d/backlight
+10-1usr.bin/backlight/backlight.8
+6-1share/man/man5/rc.conf.5
+2-0etc/mtree/BSD.var.dist
+1-0libexec/rc/rc.d/Makefile
+1-0libexec/rc/rc.conf
+108-26 files

FreeBSD/src 84ec2d3 — stand/userboot userboot.h, stand/userboot/userboot main.c

iuserboot: bump the interface to v6, add an accept_interpreter callback

If an explicit loader wasn't requested, then bhyveload(8) maintains a
/boot handle that it can use for swapping to a different flavor.  This
means that we expose all of the host /boot to the sandbox for the
duration of script execution.

Add a callback to ack that we're OK with the interpreter so that
bhyveload(8) can release the bootfd.  This is worth doing because it's
prior to guest script execution, so we're still running a reasonably
untainted process.

Reviewed by:    imp, jhb

(cherry picked from commit 619d09217720cb82f562b51e98576438dc11c830)
DeltaFile
+18-5usr.sbin/bhyveload/bhyveload.c
+12-0stand/userboot/userboot.h
+2-0stand/userboot/userboot/main.c
+32-53 files

FreeBSD/src 77f8982 — sys/dev/sound/usb uaudio.c

snd_uaudio: recognize hardware sidetone as a monitor

The Logitech H390, for instance, has the following interface layout:

~~
7 INPUT              34 INPUT            10 INPUT
  Mic (0x201)          Mic (0x201)         USB Stream (0x101)
   |                    |                     |
   v                    v                     |
 19 FEATURE           35 FEATURE              |
   |                    |                     |
   v                    v                     |
 25 EXTENSION           +------> 36 MIXER <---+
   |                              |
   v                              v
 13 OUTPUT                     22 FEATURE
 USB Stream (0x101)               |
                                  v
                               16 OUTPUT

    [30 lines not shown]
DeltaFile
+20-2sys/dev/sound/usb/uaudio.c
+20-21 files