FreeBSD/src eb9e38esys/compat/linuxkpi/common/include/linux fs.h

linuxkpi: Add compat_ptr_ioctl

Adding the `compat_ptr_ioctl` function for amdkfd support it's called by
kfd_chardev.c

Reviewed by:    dumbbell
Differential Revision:  https://reviews.freebsd.org/D58076
DeltaFile
+9-0sys/compat/linuxkpi/common/include/linux/fs.h
+9-01 files

FreeBSD/src a7f51f6usr.sbin/pw pw_group.c

pw: fix error message in grp_set_passwd to use correct fd

MFC After:      1 week

(cherry picked from commit cd575d557bc090cc9fff41b085bd0aee40a42c38)
DeltaFile
+1-1usr.sbin/pw/pw_group.c
+1-11 files

FreeBSD/src 81f8462usr.sbin/pw pw_user.c

pw: simplify group lookup in usermod

MFC After:      1 week

(cherry picked from commit 885b0483fe2e1afc45caaf1294b4b755d1c7abae)
DeltaFile
+1-3usr.sbin/pw/pw_user.c
+1-31 files

FreeBSD/src 8cca719usr.sbin/pw pw_user.c, usr.sbin/pw/tests pw_userdel_test.sh

pw: remove mail file with unlinkat instead of building a path

This is consistent with how at jobs and crontabs are removed.

MFC After:      1 week

(cherry picked from commit 1ccf8075eaa84088ad4acb65aabb1e59c3fddd3f)
DeltaFile
+16-0usr.sbin/pw/tests/pw_userdel_test.sh
+7-4usr.sbin/pw/pw_user.c
+23-42 files

FreeBSD/src c780045usr.sbin/pw pw_user.c, usr.sbin/pw/tests pw_userdel_test.sh

pw: remove crontab with unlinkat instead of spawning crontab

crontab -r only unlinks the crontab file, so spawn it directly with
unlinkat() relative to conf.rootfd.  This also makes the crontab
removal work with pw -R.

MFC After:      1 week

(cherry picked from commit ba391775e8acb7a539c18f1231a396a7d0d763e9)
DeltaFile
+5-21usr.sbin/pw/pw_user.c
+18-0usr.sbin/pw/tests/pw_userdel_test.sh
+23-212 files

FreeBSD/src 4a86c33usr.sbin/pw pw_user.c, usr.sbin/pw/tests pw_userdel_test.sh

pw: fix at job removal when deleting a user

rmat() used stat() with a path relative to the current working
directory, so it never found the job files in /var/at/jobs and the
at(1) jobs of a deleted user were never removed.

ef7d0eb9489f also broke it by introducing a typo: /usr/sbin/atrm instead
of /usr/bin/artm.

Use fstatat() with the directory fd to stat the job files relative to
the at jobs directory, and unlinkat() them directly instead of spawning
atrm.

Those changes allow us to make it works with pw -R.

MFC After:      1 week

(cherry picked from commit 6b6aa45f9a1a35acb7fef68824c1a5eb08503909)
DeltaFile
+29-0usr.sbin/pw/tests/pw_userdel_test.sh
+13-14usr.sbin/pw/pw_user.c
+42-142 files

FreeBSD/src e4922f4usr.sbin/pw pw_user.c

pw: cleanup

No functional change intended.

MFC After:      1 week

(cherry picked from commit 5f5a1657a921c3f7a84ef326c2116d986409e161)
DeltaFile
+21-22usr.sbin/pw/pw_user.c
+21-221 files

FreeBSD/src bd81f04usr.sbin/pw pw.c, usr.sbin/pw/tests Makefile pw_test.sh

pw: check -M, -V and -R input to avoid dereferencing argv[2]

MFC After: 1 week

(cherry picked from commit 2350f75acb0da0271ccff1fb22381f7e8c5948f8)
DeltaFile
+20-0usr.sbin/pw/tests/pw_test.sh
+8-0usr.sbin/pw/pw.c
+2-1usr.sbin/pw/tests/Makefile
+30-13 files

FreeBSD/src 0cb7172usr.sbin/pw pw_utils.c pw_user.c, usr.sbin/pw/tests Makefile pw_useradd_test.sh

pw: use _PWDASH pseudo-fd for "-" in pw_checkfd

pw_checkfd() returned the character "-" (45) for the "-" argument,
which was ambiguous with a real file descriptor.

MFC After:      1 week

(cherry picked from commit 92e8a76b87862aa2ee7e6c3f637034e60ffbc2e6)
DeltaFile
+107-0usr.sbin/pw/tests/pw_unit_test.c
+35-0usr.sbin/pw/tests/pw_useradd_test.sh
+9-1usr.sbin/pw/tests/Makefile
+3-3usr.sbin/pw/pw_user.c
+3-3usr.sbin/pw/pw_group.c
+1-1usr.sbin/pw/pw_utils.c
+158-81 files not shown
+159-87 files

FreeBSD/src fa7094cshare/man/man5 rc.conf.5

rc.conf.5: Improve NOAUTO configuration + tag SPDX

- Show how to start a NOAUTOed interface
- "configured" is not quite right, try to improve that

MFC after:              3 days
Event:                  EuroBSDcon Devsummit 2026
Reviewed by:            adrian
Discussed with:         Antranig Vartanian <antranigv at freebsd.am>
Differential Revision:  https://reviews.freebsd.org/D59571
DeltaFile
+8-3share/man/man5/rc.conf.5
+8-31 files

FreeBSD/src a8a6eacsys/compat/linux linux_misc.h linux_misc.c

linux: implement prctl PR_{G,S}ET_THP_DISABLE

Since we don't have THP in FreeBSD, return that it's disabled. Linux
applications use this to get around the weird latency spikes THP in
Linux creates. Since FreeBSD superpages don't suffer from this issue,
just say it's disabled.

This removes the noisiest noise from the linux claude running on
FreeBSD.

Sponsored by:           Netflix
DeltaFile
+18-0sys/compat/linux/linux_misc.c
+2-0sys/compat/linux/linux_misc.h
+20-02 files

FreeBSD/src a259b98sbin/bectl/tests bectl_test.sh, sbin/nvmecontrol/tests basic.sh

tests: skip gracefully when the tested binary's own package isn't installed

pkgbase splits programs and their tests into separate packages (e.g.
unifdef/yacc/indent/file2c -> toolchain, jail -> jail, etc), while their
tests always land in the generic tests package.  Installing just the
tests package therefore leaves these suites unable to find the binary
they exercise, and they fail confusingly instead of skipping.

Rather than force all packages to be installed for the tests package,
make the tests cope with the missing packages.  Add require.progs (or,
for TAP/PLAIN-style suites with no atf_set hook: TEST_METADATA
required_programs) for the binary under test in: bectl, certctl,
ctfconvert, dhclient, file2c, indent, ipfw, jail, lastcomm, mixer,
newsyslog, nvmecontrol, pfctl, praudit, sa, syslogd, tunefs, unifdef,
yacc, ztest.

I skipped adding data for all the binaries in the base runtime
package for simplicity.


    [4 lines not shown]
DeltaFile
+16-0usr.sbin/syslogd/tests/syslogd_test.sh
+10-1sbin/bectl/tests/bectl_test.sh
+10-0usr.sbin/praudit/tests/praudit_test.sh
+10-0sbin/nvmecontrol/tests/basic.sh
+7-1usr.sbin/jail/tests/jail_basic_test.sh
+6-0usr.sbin/certctl/tests/certctl_test.sh
+59-215 files not shown
+93-221 files

FreeBSD/src 73df5f2share/man/man4 Makefile

man: Do glob expansion with echo instead of ls

echo is a shell builtin, and always present. While ls usually works,
some upgrade scenarios need to have ls be a build to to work
correctly. Rather than add it as a build tool, use echo instead which is
always safe because sh is a build tool.

Sponsored by:           Netflix
DeltaFile
+1-1share/man/man4/Makefile
+1-11 files

FreeBSD/src 3579336sbin/nvmecontrol nvmecontrol.8 power.c

nvmecontrol: Add APST feature support

Add -a, -d and -m options to the power subcommand to manage APST,
along with additional status output when invoked without args.

Signed-off-by: Alexey Sukhoguzov <sap at eseipi.net>
Reviewed-by: imp
DeltaFile
+158-9sbin/nvmecontrol/power.c
+20-1sbin/nvmecontrol/nvmecontrol.8
+178-102 files

FreeBSD/src c4c7909share/man/man4 dtrace_cam.4, sys/cam cam_periph.c

dtrace: Instrument more of the CAM device lifecycle

cam::periph:error, cam::{,a,n,sd}da:error
        Trace the error evolution for I/O errors the periph encounters

cam::periph:recovery, cam::{,a,n,sd}da:recovery
        Trace the result of the error sorting

cam::periph:invalidate
        Trace device invalidations

cam::periph:hold-boot
cam::periph:release-boot
cam::xpt:hold-boot
cam::xpt:release-boot
        Trace boot holds and releases at different levels

cam::xpt:bus-register
        Trace new busses added

    [9 lines not shown]
DeltaFile
+136-4share/man/man4/dtrace_cam.4
+12-2sys/cam/scsi/scsi_da.c
+14-0sys/cam/cam_periph.c
+11-1sys/cam/nvme/nvme_da.c
+11-1sys/cam/mmc/mmc_da.c
+11-1sys/cam/ata/ata_da.c
+195-92 files not shown
+210-108 files

FreeBSD/src afb6089usr.sbin/mpsutil mpsutil.8 mps_show.c

mpsutil: Add Show Discovery command

Prints the current discovry tables for the driver.

Sponsored by:           Netflix
Assisted by:            Claude (sonet-5)
Differential Revision:  https://reviews.freebsd.org/D58528
DeltaFile
+205-0usr.sbin/mpsutil/mps_show.c
+14-0usr.sbin/mpsutil/mpsutil.8
+219-02 files

FreeBSD/src d04083dsbin/devd devd.conf.5, sys/cam cam_periph.c

cam: Add devctl message for invalidation of a periph.

Report serial number, if available, otherwise report the path of the
device invalidated.

Sponsored by:           Netflix
Differential Revision:  https://reviews.freebsd.org/D58527
DeltaFile
+22-3sys/cam/cam_periph.c
+3-1sbin/devd/devd.conf.5
+25-42 files

FreeBSD/src a67354fsys/cam cam_periph.c

cam: Refactor cam_periph_devctl_notify init/fini bits

To be able to create other kinds of devctl notifications that don't flow
through cam_periph_devctl_notify, refactor out the header / trailers we
do and the sbuf life cycle management. No functional change.

Sponsored by:           Netflix
Differential Revision:  https://reviews.freebsd.org/D58526
DeltaFile
+54-20sys/cam/cam_periph.c
+54-201 files

FreeBSD/src e2bcab5sys/cam/scsi scsi_da.c

da: Fix logic error

Apply de-morgan's law correctly to force only 4/2 to go to the
invalidate stage for that ASC/ASCQ.

Fixes: d78d04b17cb24
Sponsored by:           Netflix
MFC After: 1 week
Reviewed by:    ali_mashtizadeh.com, mav
Differential Revision:  https://reviews.freebsd.org/D58525
DeltaFile
+1-1sys/cam/scsi/scsi_da.c
+1-11 files

FreeBSD/src 0bc6c92sys/cam/scsi scsi_da.c

da: Stop the probing when periph invalidated in dadone_proberc

When READ CAPACITY fails, we call cam_periph_invalidate() for some
hopeless ASC/ASCQ combinations and then fall through to test the cache
state. This results in excess commands to the abandoned device that may
take a while to timeout and/or report confusing errors. Instead, call
daprobedone() when the periph is invalid to terminate the probe.

Fixes: d78d04b17cb24
Sponsored by:           Netflix
MFC After: 1 week
Differential Revision:  https://reviews.freebsd.org/D58524
DeltaFile
+6-0sys/cam/scsi/scsi_da.c
+6-01 files

FreeBSD/src d48e9bfstand/efi/loader loader_efi.h memdisk.c

loader.efi: fetch initmd specified by DHCP

Configure net0, read the DHCP-provided initmd URL, and download it
through the file API so directly booted loader.efi can construct its
root memory disk.

Sponsored by:           Netflix
Differential Revision:  https://reviews.freebsd.org/D59432
DeltaFile
+31-0stand/efi/loader/memdisk.c
+1-0stand/efi/loader/loader_efi.h
+32-02 files

FreeBSD/src 8821d42stand/efi/loader memdisk.c

loader.efi: Allow downloading of ramdisk or md to be aborted

Hitting <ESC> will now allow one to abort a (possibly mistaken)
download.

Sponsored by:           Netflix
DeltaFile
+39-3stand/efi/loader/memdisk.c
+39-31 files

FreeBSD/src 0ca1204stand/efi/loader main.c

loader.efi: Eat the character used to break to OK

When we can't find root, we give the user a chance to drop to the boot
loader OK prompt. We should eat the character that's pressed to not
interfere with the interactive session.

Sponsored by:           Netflix
DeltaFile
+3-1stand/efi/loader/main.c
+3-11 files

FreeBSD/src 08265d5stand/efi/loader memdisk.c

loader: Fix starting typo

Fixes:                  a22fa5ec74e0 ("laoder.efi: Fix error in download protcol")
Sponsored by:           Netflix
Differential Revision:  https://reviews.freebsd.org/D59434
DeltaFile
+1-1stand/efi/loader/memdisk.c
+1-11 files

FreeBSD/src 25b58ebstand/efi/loader loader_efi.h memdisk.c

loader.efi: download md images through file API

Feed the existing decompressor from loader file descriptors as well as
iPXE callbacks, allowing arbitrary HTTP filesystem URLs to become
kernel-exportable memory disks.

Sponsored by:           Netflix
Differential Revision:  https://reviews.freebsd.org/D59431
DeltaFile
+87-15stand/efi/loader/memdisk.c
+1-0stand/efi/loader/loader_efi.h
+88-152 files

FreeBSD/src 6de311dstand/efi/loader loader_efi.h main.c

loader.efi: download DHCP initmd specified image

When we haven't downloaded an image via mem{disk,cd} and ipxe, try any
image specified by the FreeBSD-specific initmd dhcp option. This allows
direct booting of loader.efi with a detached root ramdisk filesystem.

Sponsored by:           Netflix
Differential Revision:  https://reviews.freebsd.org/D59433
DeltaFile
+13-10stand/efi/loader/memdisk.c
+4-2stand/efi/loader/main.c
+1-1stand/efi/loader/loader_efi.h
+18-133 files

FreeBSD/src 5bbd617stand/efi/libefi efinet.c

loader.efi: release SNP after network configuration

Close the exclusively opened SNP protocol after loader networking
finishes so the firmware network stack can reconnect the controller and
service a subsequent HTTP request.

Sponsored by:           Netflix
Differential Revision:  https://reviews.freebsd.org/D59430
DeltaFile
+4-0stand/efi/libefi/efinet.c
+4-01 files

FreeBSD/src e6b997cstand/common dev_net.h dev_net.c

loader: add standalone network configuration

Allow callers to obtain DHCP configuration without opening a network
file, enabling loader.efi to discover an initmd URL before handing the
interface back to firmware HTTP.

Differential Revision:  https://reviews.freebsd.org/D59429
Sponsored by:           Netflix
DeltaFile
+56-27stand/common/dev_net.c
+1-0stand/common/dev_net.h
+57-272 files

FreeBSD/src a098fd0stand/libsa bootp.h bootp.c

loader: request DHCP initmd option

Request FreeBSD RFC 3925 PEM 2238 DHCP 125 option. Use suboption 1 to
specify a ramdisk image to load and use to load the kernel and as the
root file system.

Differential Revision:  https://reviews.freebsd.org/D59428
Sponsored by:           Netflix
DeltaFile
+58-1stand/libsa/bootp.c
+5-0stand/libsa/bootp.h
+63-12 files

FreeBSD/src 6788e42stand/efi/libefi efihttp.c

stand/efihttp: Support arbitrary http[N]://host[:port]/path devspecs

Until now, the "http" device only worked when firmware itself booted
loader.efi via EFI HTTP Boot: efihttp_dev_init() required a URI node on
the loader's own boot device path, and every fetch went to that same
server. Add a second form, using the parse_uri() helper from libsa/dev.c,
that works anywhere: http[N]://host[:port]/path (N is a network interface
unit, defaulting to 0). This lets a devspec like this be used as rootdev,
in loader.conf, or interactively, independent of how loader.efi itself
was booted.

Network configuration is shared, loader-wide state (the myip/netmask/
gateip/nameip globals from net.h): if something has already configured
them (e.g. tftp/nfs via net_open()), the http device just reuses those
values, applying them to EFI_IP4_CONFIG2_PROTOCOL as a static address. If
nothing has, it drives IP4Config2's own DHCP directly instead of calling
netdev's net_open(): net_open() opens the NIC's SNP
EFI_OPEN_PROTOCOL_EXCLUSIVE, which would disconnect the Mnp/Ip4/.../
HttpDxe driver chain this code depends on. That chain is also commonly

    [8 lines not shown]
DeltaFile
+342-2stand/efi/libefi/efihttp.c
+342-21 files