Commit Graph

310054 Commits

Author SHA1 Message Date
Rob Norris cf80080a0f unit/zap: zap_value_search
Two separate tests, one for basic operation and one for the "value mask"
feature.

Sponsored-by: TrueNAS
Reviewed-by: Alexander Motin <alexander.motin@TrueNAS.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Rob Norris <rob.norris@truenas.com>
Closes #18630
2026-06-05 10:19:47 -07:00
Rob Norris 63fad3403c unit: rand helpers
Sponsored-by: TrueNAS
Reviewed-by: Alexander Motin <alexander.motin@TrueNAS.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Rob Norris <rob.norris@truenas.com>
Closes #18630
2026-06-05 10:19:43 -07:00
Rob Norris 089a54fc19 zap: add zap_value_search_by_dnode()
This operates entirely on a cursor, so the two entry points just
instantiate a new cursor and then pass it into the worker.

Sponsored-by: TrueNAS
Reviewed-by: Alexander Motin <alexander.motin@TrueNAS.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Rob Norris <rob.norris@truenas.com>
Closes #18630
2026-06-05 10:19:38 -07:00
Rob Norris c869c0f240 unit/zap: zap_*_int and zap_*_int_key
Sponsored-by: TrueNAS
Reviewed-by: Alexander Motin <alexander.motin@TrueNAS.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Rob Norris <rob.norris@truenas.com>
Closes #18630
2026-06-05 10:19:33 -07:00
Rob Norris 0ff134fbdd zap: add _by_dnode() variants for int and int_key functions
These functions are far too simple to make wrapping worthwhile, so
instead we just lift the important shared bit - the value->string
conversion - into a small macro, and use it in all of them.

Sponsored-by: TrueNAS
Reviewed-by: Alexander Motin <alexander.motin@TrueNAS.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Rob Norris <rob.norris@truenas.com>
Closes #18630
2026-06-05 10:19:29 -07:00
Rob Norris fd70c222f9 unit/zap: zap_increment
Sponsored-by: TrueNAS
Reviewed-by: Alexander Motin <alexander.motin@TrueNAS.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Rob Norris <rob.norris@truenas.com>
Closes #18630
2026-06-05 10:19:24 -07:00
Rob Norris 1266435523 zap: add zap_increment_by_dnode()
Make consistent with the standard pattern, with zap_increment() becoming
a simple wrapper around zap_increment_by_dnode().

This has a small, likely unnoticeable, behaviour change. The previous
version didn't use the _by_dnode() functions, so the ZAP, dnode and dbuf
could theoretically be evicted between calls. With the dnode held across
the calls, this won't happen anymore. This is almost certainly a good
thing.

Sponsored-by: TrueNAS
Reviewed-by: Alexander Motin <alexander.motin@TrueNAS.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Rob Norris <rob.norris@truenas.com>
Closes #18630
2026-06-05 10:19:19 -07:00
Rob Norris 47b53fda7d zap: remove zap_join() functions
These work, but are limited in their focus (single uint64_t key). The
last use anywhere was removed in d4a72f2386 (~2017). Better to remove
them rather than bother to uplift them to the new _by_dnode() structure.
They're simple to recreate if we ever do need them again.

Sponsored-by: TrueNAS
Reviewed-by: Alexander Motin <alexander.motin@TrueNAS.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Rob Norris <rob.norris@truenas.com>
Closes #18630
2026-06-05 10:19:13 -07:00
Rob Norris 9ff3fdfc54 zap: remove zap_increment_int()
This is a strange function that can't possibly work sensibly with
zap_add_int()/zap_remove_int()/zap_lookup_int(), as it allows the key
and value to diverge, which is not how these functions appear to work.

It would make more sense if it were called zap_increment_int_key(), as
that family can have divergent key and value. But it doesn't.

Fortunately, nothing uses it. There was a function named
zap_increment_int() in Sun ZFS, that was renamed to zap_increment()
early in ZoL's lifetime, and is unrelated.

So, remove it, and fix up some very old comments referring to it.

Sponsored-by: TrueNAS
Reviewed-by: Alexander Motin <alexander.motin@TrueNAS.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Rob Norris <rob.norris@truenas.com>
Closes #18630
2026-06-05 10:18:46 -07:00
Dag-Erling Smørgrav 641e8e3956 Revert "libc: Constify the getcap API"
This broke cross-building on Linux and macOS.

This reverts commit 823d00b2d4.
2026-06-05 19:15:46 +02:00
Mark Johnston 2404d8d741 linux: Drop unneeded PHOLDs
There's no point in acquiring a hold if the proc lock isn't going to be
dropped.

Reviewed by:	kib
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D57468
2026-06-05 16:54:59 +00:00
Tony Hutter cab50d5adb Add additional verification of size fields and strings (#18623)
- Check for size fields that convert to smaller integers.
- Explicitly terminate bootenv string.
- Initialize variables that could be returned in an error case.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Chris Longros <chris.longros@gmail.com>
Reviewed-by: Alexander Motin <alexander.motin@TrueNAS.com>
Signed-off-by: Tony Hutter <hutter2@llnl.gov>
Closes #18623
2026-06-05 09:48:55 -07:00
Dag-Erling Smørgrav 77fdeba18c fts: Correct description of fts_set
MFC after:	1 week
Sponsored by:	Klara, Inc.
Fixes:	e030e4e73f ("lib/libc/gen/fts.3: use 'options' consistently in fts_set() description")
Differential Revision:	https://reviews.freebsd.org/D57326
2026-06-05 18:47:14 +02:00
Ed Maste 2ea49bb595 arch.7: Remove 32-bit powerpc from tables
Most 32-bit architecture support has been deprecated for FreeBSD 16.

Reviewed by:	des
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57472
2026-06-05 12:35:25 -04:00
Ed Maste 5805fadd0d arch.7: arch.7: Add wchar_t signedness
Most architectures have the same signedness for char and wchar_t, but
powerpc has the unusual combination of unsigned char and signed wchar_t.

Reviewed by:	des, jhb, markj
Sponsored by:	The FreeBSD Foundation
2026-06-05 12:25:43 -04:00
Alex Arslan 0b862a795a arm64: Expose ESR in mcontext
At present, the exception syndrome register (ESR) is not accessible via
the user context on FreeBSD AArch64, which makes it difficult to
determine the cause of an exception. For example, a signal handler might
get a `SIGSEGV` with `SEGV_ACCERR`, but it can't know whether that
occurred due to a bad read or write. The change implemented here
includes ESR in `struct __mcontext`, thereby allowing access via
`ucontext_t` for use by signal handlers, sanitizers, debuggers, etc.

Note that this addition consumes one of the seven spare 64-bit slots in
`struct __mcontext`.

Signed-off-by: Alex Arslan <ararslan@comcast.net>
Reviewed by:	andrew
Pull Request:	https://github.com/freebsd/freebsd-src/pull/2053
2026-06-05 17:15:36 +01:00
Alex Arslan 5cc3fa0988 arm64: Add exception flag for ksiginfo_t and set in trapsignal
The `ksiginfo_t` flag `KSI_TRAP` is set both for exceptions and when
copying between userspace and the kernel fails. In the latter case, the
exception syndrome register as captured in `struct trapframe` won't be
valid. That means we can't use `KSI_TRAP` to determine whether `tf_esr`
is valid. This motivates the addition of a new flag, here called
`KSI_EXCEPT`, for specifically identifying signals caused by exceptions.
It is added to `ksi_flags` via `trapsignal`.

Signed-off-by: Alex Arslan <ararslan@comcast.net>
Reported by:	andrew
Pull Request:	https://github.com/freebsd/freebsd-src/pull/2053
2026-06-05 17:15:36 +01:00
Antranig Vartanian 8f6c577c9f bhyve(8): allow cpu pinning using N-M:X-Y ranges
bhyve's -p allows to pin guest's virtual CPU vcpu to hostcpu, however
this becomes very tedious work when you have to pin more than a single
CPU.

This allows to pass a range to -p, e.g. -p 0-3:4-7 which will pin the
cpus 0:4, 1:5, 2:6, 3:7. The ranges must be equal and the CPU numbers
must be ascending.

Sponsored by: Armenian Bioinformatics Institute
Reviewed by:	corvink, markj
Tested by:	bnovkov
MFC after:	3 weeks
Differential Revision:	https://reviews.freebsd.org/D54937
2026-06-05 18:07:49 +02:00
Dag-Erling Smørgrav b5a96894f6 rc: Bail if /dev/null is not a device
On startup, check that /dev/null exists and is a character device.
Otherwise, one of two things will happen: either /dev is a writable
directory and we will immediately create /dev/null as a regular file
and dump garbage into it, or it does not and we will spit out a stream
of error messages about failing to create /dev/null.

PR:		295782
MFC after:	1 week
Reviewed by:	jhb, emaste
Differential Revision:	https://reviews.freebsd.org/D57447
2026-06-05 17:53:29 +02:00
Dag-Erling Smørgrav ddf6fad029 etcupdate: Make nobuild the default
The common case for etcupdate is to run it after building and installing
the world, in which case we already have an object directory to draw on.
Add a -b option to turn nobuild off (opposite of -B), and turn nobuild
on by default.

MFC after:	1 week
Reviewed by:	jhb, emaste
Differential Revision:	https://reviews.freebsd.org/D57306
2026-06-05 17:53:25 +02:00
Jitendra Bhati c606eb3713 fts: address post-merge feedback on fts_children_test.c
- Remove fts_check_debug() which is only needed by test cases
  that use the fts_test() helper; fts_children_test.c does not
  call fts_test()
- Remove fts_lexical_compar where traversal order does not matter
  for the test result
- Drop fts_test.h and copy fts_lexical_compar locally
- Pull up NULL argument onto same line as fts_open

Fixes:		e624417db8 ("lib/libc/tests/gen: add fts_children() tests")
Sponsored by:	Google LLC (GSoC 2026)
Reviewed by:	des, asomers
MFC after:	2 weeks
Pull Request:	https://github.com/freebsd/freebsd-src/pull/2260
2026-06-05 09:16:20 -06:00
Jim Brown f4424a2733 dhclient.conf.5: Correct crossreference
PR:		285614
Reviewed by:	ziaee, michaelo, jrm
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D49489
2026-06-05 15:13:32 +00:00
Jitendra Bhati ee213339f4 fts: address post-merge feedback on fts_set_test.c
Per review by des@:

- Remove fts_check_debug() which has no effect in fts_set_test.c, and
  remove unused #include "fts_test.h"
- Add errno = 0 before fts_read() so errno check is meaningful
- Remove fts_lexical_compar where traversal order does not matter
- Change int boolean flags to bool throughout
- Use !saw_inside instead of saw_inside == false
- Move fts_set_clientptr/fts_get_clientptr test inside fts_read()
  loop so the pointer is exercised during active traversal

Fixes:		940142d610 ("lib/libc/tests/gen: add fts_set() tests")
Sponsored by:	Google LLC (GSoC 2026)
Reviewed by:	des, asomers
MFC after:	2 weeks
Pull Request:	https://github.com/freebsd/freebsd-src/pull/2258
2026-06-05 09:06:33 -06:00
Rick Macklem 3dfbbe8586 nfsd: Add per-MDS fs striping configuration
Commit 72e57bc264 added support for striping to the pNFS
server when using the Flexible File layout.
It is configured globally via the following sysctls:
vfs.nfsd.pnfsstripeunit - Size (in bytes) of a stripe
vfs.nfsd.pnfsstripecnt - # of DSs to stripe across

This patch allows the above settings to be overridden
on a per-MDS exported file system basis.  With this
patch, a stripeunit can optionally be specified for
the MDS file system listed when one is listed after
a '#' in the "-p" nfsd argument.  This is done by
appending "@NNN", where NNN is the stripeunit, in bytes.

The current syntax implies that neither a '#' nor '@'
can be in the MDS mount point's directory path.

This patch does not affect current pNFS server
configurations (of which there appears to be very
few, anyhow).
2026-06-05 07:59:42 -07:00
Yoshihiro Takahashi e3fa020202 protocols: Update with IANA list
- Update /etc/protocols with IANA list updated 2026-03-09.
- Document that 240 (pfsync) is not assigned by IANA.
- Document deprecated protocols.

PR:		295739
Reviewed by:	des
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D57445
2026-06-05 22:14:06 +09:00
Bjoern A. Zeeb cda79e505e LinuxKPI: 802.11: set flag if frame should be part of an A-MPDU
In the output path where we are sending a frame to the driver mark it
if it should be part of an A-MPDU based on its tid, type, and whether
net80211 thinks that we are in the right state for this.

Sponsored by:	The FreeBSD Foundation
MFC after:	3 days
2026-06-05 12:09:23 +00:00
Bjoern A. Zeeb 259efa730c LinuxKPI: 802.11: make *addba* work better
Fill in more details for lkpi_ic_addba_request(), lkpi_ic_addba_response(),
and lkpi_ic_addba_response_timeout().

Migrate the ltxq flags seen_dequeue and stopped to a bitfield and add %b
support to log messages.   This seemed the better approach after needing
an additional stop field for BA while we have to hold packets from being
transmitted.

Sponsored by:	The FreeBSD Foundation
MFC after:	3 days
2026-06-05 12:09:23 +00:00
Bjoern A. Zeeb 22ac9be92d LinuxKPI: 802.11: adjust tracing for action/ampdu/addba functions
Adjust the pure debug tracing to no longer be under HT and add more
to the other functions we are interested in, so we can follow the
calls more easily.

Sponsored by:	The FreeBSD Foundation
MFC after:	3 days
2026-06-05 12:09:22 +00:00
Bjoern A. Zeeb a993d28111 LinuxKPI: 802.11: add note about rate control support under boot -v
We currently do not support rate control in LinuxKPI.  As more drivers
and chipsets gain suppport for higher throughput add a note under
bootverbose if we hit one of these cases (currently only older iwlwifi
chipsets).

Sponsored by:	The FreeBSD Foundation
MFC after:	3 days
2026-06-05 12:09:22 +00:00
Bjoern A. Zeeb fb97712a7f LinuxKPI: 802.11: implement ieee80211_start_tx_ba_session()
Implement ieee80211_start_tx_ba_session() as a start for rtw8x (and
select mt76 chipsets) to support more throughput.

Sponsored by:	The FreeBSD Foundation
MFC after:	3 days
2026-06-05 12:09:22 +00:00
Bjoern A. Zeeb ba796102fe LinuxKPI: 802.11: add three more driver downcalls
Add (*link_sta_rc_update), (*set_bitrate_mask), and
(*sta_set_decap_offload) mac80211 driver downcalls in preparation
for further work.

Sponsored by:	The FreeBSD Foundation
MFC after:	3 days
2026-06-05 12:09:21 +00:00
Baptiste Daroussin d798491238 nuageinit: implement ssh_authkey_fingerprints support
Add support for the 'ssh_authkey_fingerprints' cloud-config key
which logs SSH host key fingerprints to the console via ssh-keygen.
2026-06-05 13:17:55 +02:00
Baptiste Daroussin 58184a301a nuageinit: implement keyboard support 2026-06-05 13:17:22 +02:00
Baptiste Daroussin 4662263c24 nuageinit: implement resolv_conf support
Add support for the 'resolv_conf' cloud-config key which writes
directly to /etc/resolv.conf.
2026-06-05 13:15:37 +02:00
Baptiste Daroussin 797dad91ff nuageinit: implement mounts support
Add support for the 'mounts' cloud-config key which configures
mount points by appending entries to /etc/fstab and creating
the corresponding directories.
2026-06-05 13:15:16 +02:00
Baptiste Daroussin 6e54d00867 nuageinit: add tests for bootcmd, ssh_deletekeys, disable_root, manage_etc_hosts 2026-06-05 08:38:33 +02:00
Baptiste Daroussin ba58e8ad72 nuageinit: implement manage_etc_hosts support
Add support for adding the instance hostname to /etc/hosts on the
127.0.0.1 and ::1 localhost lines, matching cloud-init's default
behaviour (manage_etc_hosts: true).

create a revolve_hostname helper to avoid code duplucation.
2026-06-05 07:49:16 +02:00
Baptiste Daroussin b9be7608cd nuageinit: implement bootcmd support
Add support for the 'bootcmd' cloud-config directive, which allows
running commands very early in the boot process, before the hostname
is set and before the network is configured.

- nuageinit: bootcmd() function follows the same pattern as runcmd(),
  writing commands to /var/cache/nuageinit/bootcmds instead of runcmds.
  It is the first entry in the pre_network_calls table.

- rc.d/nuageinit: execute /var/cache/nuageinit/bootcmds immediately
  after /usr/libexec/nuageinit completes, before unmounting the config
  drive. This ensures bootcmd runs before NETWORKING per cloud-init spec.
2026-06-05 07:00:00 +02:00
Baptiste Daroussin ab478de1f9 pw: fix incorrect metalog path in mkdir_home_parents 2026-06-05 08:01:56 +02:00
Baptiste Daroussin fe1e912d5a pw: fix setmode(NULL) crash when homemode is a boolean value 2026-06-05 08:01:50 +02:00
Baptiste Daroussin 5f9c8f142d pw: fix const qualification in unquote()
The unquote() function took a const char * parameter but modified the
string in-place (removing quote characters). Change the parameter to
char * and update callers that passed const char * to cast explicitly.
2026-06-05 08:01:44 +02:00
Baptiste Daroussin 4fd8a69ec6 pw: fix inverted condition in shell_path error handling 2026-06-05 08:01:35 +02:00
Baptiste Daroussin 13f4a37b53 pw: fix uninitialized name pointer in pw_group_del
The 'name' variable could be left uninitialized if neither the
positional argument nor -n is supplied, leading to undefined
behavior when passed to getgroup().
2026-06-05 08:01:24 +02:00
Baptiste Daroussin 1cc5684b32 pw: remove duplicate pw_user_add declarations 2026-06-05 08:01:09 +02:00
Xin LI f7c0bd206f file: normalize .result files to ensure trailing newline on install
Some upstream result files introduced in file 5.47 (e.g., bgcode.result)
lack a trailing newline, causing the contrib_file_tests ATF test to
fail with "cmp: EOF on bgcode.result".  Generate normalized copies
of the expected results and install those instead.

MFC after:	3 days
Fixes:		e949ce9dc0
2026-06-04 21:48:19 -07:00
Tony Hutter 6cc4492607 CI: Add alternative URLs for CentOS stream
Fallback to trying the "CentOS Strean Composes" repo for the qcow2
images if the regular URLs fail.  The Composes repo contains the daily
autobuilt Stream images.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Tony Hutter <hutter2@llnl.gov>
Closes #18628
2026-06-04 17:52:36 -07:00
Brian Behlendorf c4d0f3dd41 CI: Increase default RCU stall timeout on Linux
When CONFIG_RCU_CPU_STALL_TIMEOUT is configured an RCU stall which
exceeds the default timeout will trigger an NMI and panic the VM.
Given the heavily virtualized nature of the CI environment we want
to make sure to only trigger this due to a real deadlock and not
due to over-subscription of the systems resources.  This timeout
normally defaults to 20-30 seconds and this change increases it
to 120 seconds.

Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #18624
2026-06-04 17:41:11 -07:00
Brian Behlendorf cae1421e8d CI: Update CodeQL actions to v4
CodeQL Action v3 has been deprecated and will be retired
December 2026.  Update codeql.yml to use CodeQL Action v4
and update the runner to ubuntu-24.04.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #18629
2026-06-04 17:39:39 -07:00
Brian Behlendorf a851ba8eb9 CI: Re-enable CodeQL workflows on push
This workflow was disabled 'on push' recently in commit 1916c2c5
to reduce redundant CI runs.  However, this check is fairly quick
and we want it run regularly against the branches.  Enable it.

Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #18627
2026-06-04 16:55:48 -07:00
Tony Hutter 2076569ce8 Remove /etc/sudoers.d/zfs
The smartctl exception in /etc/sudoers.d/zfs doesn't cover devices
like NVMe or symlinked devices.  Just get rid of it rather than
keep maintaining it.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Alexander Motin <alexander.motin@TrueNAS.com>
Signed-off-by: Tony Hutter <hutter2@llnl.gov>
Closes #18626
2026-06-04 16:45:13 -07:00