Commit Graph

309009 Commits

Author SHA1 Message Date
Konstantin Belousov 9ca9a79ea6 Revert erronously pushed series of commits, which should not be.
Sorry for the mess.

Revert "sys/vnode.h: remove stale comment"
This reverts commit f193f5a749.

Revert "vfs: convert VFS_OPs from macros to static inlines"
This reverts commit 48bf024f2e.

Revert "vnode: add VIRF_KNOTE flag"
This reverts commit 7fe74a0276.

Revert "vfs: convert vfs_op_thread_* macros to static inlines"
This reverts commit a61a696e78.

Revert "struct vnode: assign v_rl.resv1 as v_vrflag"
This reverts commit d990e8f0e9.

Revert "sys/rangelock.h: explicitly enumerate padding at the end of the structure"
This reverts commit a770638ecf.

Revert "bufspace_wait(): only try to help bufdaemon if there is a chance to help"
This reverts commit 067cfac2e7.

Revert "Add O_SYMLINK emulation"
This reverts commit f9458655e7.

Revert "libc: add freadlink(3)"
This reverts commit ae6a13deb8.

Revert "Add O_SYMLINK emulation"
This reverts commit 2213820b6f.
2026-05-03 23:12:03 +03:00
Konstantin Belousov f193f5a749 sys/vnode.h: remove stale comment
The source sweep is not going to happen.

Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D56611
2026-05-03 22:58:37 +03:00
Konstantin Belousov 48bf024f2e vfs: convert VFS_OPs from macros to static inlines
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D56611
2026-05-03 22:58:37 +03:00
Konstantin Belousov 7fe74a0276 vnode: add VIRF_KNOTE flag
to indicate non-empty vnode knote list.  Use it instead of
VN_KNLIST_EMPTY() and guard note activations with it.

Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D56611
2026-05-03 22:58:37 +03:00
Konstantin Belousov a61a696e78 vfs: convert vfs_op_thread_* macros to static inlines
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D56611
2026-05-03 22:58:37 +03:00
Konstantin Belousov d990e8f0e9 struct vnode: assign v_rl.resv1 as v_vrflag
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:
2026-05-03 22:58:37 +03:00
Konstantin Belousov a770638ecf sys/rangelock.h: explicitly enumerate padding at the end of the structure
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:
2026-05-03 22:58:37 +03:00
Konstantin Belousov 067cfac2e7 bufspace_wait(): only try to help bufdaemon if there is a chance to help
Only call buf_flush() if there are some dirty buffers belonging to the
vnode we are allocating the buffer for.  Otherwise the bd dirty queue
scan cannot find anything and it makes no sense to spend CPU doing it.
2026-05-03 22:58:37 +03:00
Konstantin Belousov f9458655e7 Add O_SYMLINK emulation
for MacOSX partial compatibility, defined as O_PATH | O_SYNC | O_DIRECT.

libc openat() wrapper is modified to fstat() the descriptor and re-open
in the normal mode if the type is not symlink.

Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D56365
2026-05-03 22:58:36 +03:00
Konstantin Belousov ae6a13deb8 libc: add freadlink(3)
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D56365
2026-05-03 22:58:36 +03:00
Konstantin Belousov 2213820b6f Add O_SYMLINK emulation
for MacOSX partial compatibility, defined as O_PATH | O_NOFOLLOW.
fstat(2) and freadlink(3) works on the resulting file descriptors,
but reads on the regular file do not.

More complete but more hackish version was developed but deemed too
hackish.

Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D56365
2026-05-03 22:58:36 +03:00
Konstantin Belousov fbecfc4aa0 fdescfs: do not change vnode type on VOP_GETATTR()
There is no point to do it.  The VNON type is good enough for fdescfs
operations, and changing the type on stat(2) is arbitrary and does not
serve much purpose, because we recalculate the returned file type on
each stat(2) anyway.

But setting the type to VLNK has undesired consequence of namei()
trying VOP_READLINK() there, which might fail since it defer the
calculation of path to vn_fullpath().

Submitted by:	Mike <mmpestorich@gmail.com>
PR:	294768
MFC after:	2 weeks
2026-05-03 22:58:36 +03:00
Stephen J. Kiernan b89155be25 bsd.endian.mk: Avoid use of M_ListToSkip
While the src build works fine with M_ListToSkip, it can break the
ports build. For now, it is safer just to do the actual variable
modifiers in place.

Reported by:	se
Fixes: 		01674e15de ("bsd.endian.mk: Optimize the handling...")
2026-05-03 15:39:50 -04:00
Justin Hibbits 9d423705db dpaa: Support jumbo frames as multi-buffer frames 2026-05-03 15:09:30 -04:00
Justin Hibbits 6464974c5a dpaa: Enable checksum offloading for IPv4 and IPv6
Enable the FMan hardware parser to take advantage of some offloading.
This enables receive and transmit checksum offloading for both IPv4 and
IPv6.

Additional offloading capabilities the DPAA supports include:
* vlan parsing
* Transmit rate limiting
* IEEE-1588 timestamps
* Soft parsing for custom protocol checking
* Congestion handling
2026-05-03 15:09:29 -04:00
Justin Hibbits fd8d34ce27 dpaa: Migrate from NCSW base to a home-grown driver
The NCSW reference base requires tuning for each target, and currently
is configured for FMANv2.  This doesn't readily work on FMANv3 devices,
such as the T-series powerpc, or the LS1043 ARM.  Since Freescale/NXP
abandoned the NCSW driver a decade ago, it makes sense to abandon it
ourselves as well.  This new driver uses a combination of the NCSW
driver and the Linux driver (BSD/GPL dual licensed) as a reference, but
contains no actual code from them.

The DPAA (Data Path Acceleration Architecture) subsystem consists of the
following components:

* BMan -- Buffer Manager.  Manages buffer pools of different sizes (one
  size per pool, up to 64 pools)
* QMan -- Queue Manager.  Manages the interfaces between DPAA-based
  components and the CPU(s).
* FMan -- Frame Manager.  Responsible for all ethernet-related
  processing.  Consists itself of the following components:
  * Ports -- interfaces to the QMan.  An ethernet interface consists of
    2 ports.
    Ports use "Next-invoked action" (NIA) descriptors to form a pipeline
    for processing on receive and transmit.
  * Parser -- performs protocol header parsing and validation.  Both
    hardware and software parsers are available.
  * KeyGen -- Key generator, used to start the classification process
    (for the Policer), generating FQIDs and other keys based on the
    frame input.
  * Policer -- performs traffic shaping and classification
* MAC -- SoC specific ethernet MAC (dTSEC, TGEC, mEMAC).  Currently
  supports dTSEC and mEMAC, along with their MDIO blocks.

Additional components not yet handled:
SEC -- Security engine (crypto)
RE -- RAID engine
RapidIO
DCE -- Decompression/Compression engine, supports ZLIB, DEFLATE, and
GZIP, as well as base64 encoding and decoding.

BMan and QMan are accessed via cache-coherent portals, using ring
buffers as I/O.  The intent is for portals to be per-CPU (core/thread)
to reduce locking contention and improve performance.  This driver pins
interrupt handlers to the CPU "owning" a given portal, and uses critical
sections to prevent switching while accessing the portal.
2026-05-03 15:09:29 -04:00
Justin Hibbits d22051b18e iicbus/rtc: Add driver for the Ricoh rs5c372 RTC
This RTC chip supports 2 alarm timers in addition to RTC functionality,
but this driver only supports the RTC at this time.
2026-05-03 15:09:28 -04:00
Justin Hibbits 9684027803 sysctl: Fix typo in DDB help text example 2026-05-03 15:09:28 -04:00
Alexander Ziaee dd97c3d83f ocs_fc.4: Cleanup
+ more consistent document description
+ enumerate available options in synopsis in vt.4 style
+ tag spdx
+ tweak list rendering
+ cleanup HARDWARE
+ reflow excessively long lines silencing linter warnings
+ fix link macros

MFC after:		3 days
Reported by:		michaelo (hardware notes)
Differential Revision:	https://reviews.freebsd.org/D56753
2026-05-03 14:29:43 -04:00
Alexander Ziaee 809504f331 man: Kill off MANSUBDIRs
Three architecture dependent manuals are installed to MANSUBDIRs,
creating at least two empty manual page directories on everyone's
boxxen. Move those manuals to their canonical area, enhancing clarity,
grepability, removing useless inodes, and increasing consistency with
the rest of the architecture dependent manuals which are unconditionally
installed, and noted at the top of the rendered manual.

MFC after: 3 days
2026-05-03 13:53:25 -04:00
Alexander Ziaee 33fbfceeb4 nvram.8: Align option list and tag SPDX
MFC after:	3 days
2026-05-03 13:39:48 -04:00
Alexander Ziaee 28deec9b7e ports.7/FILES: Expand and refactor into 3 tables
Add make.conf, CHANGES, CONTRIBUTING.Md, UPDATING, and Tools/scripts.
Refactor the FILES section of the ports reference manual into a bigger
table with three sections separated by root directory. Remove preceeding
article from all but "the big Kahuna", and root dirs where reasonable.

MFC after:              3 days
Relnotes:		yes
Reported by:            adamw, arrowd, linimon
Differential Revision:	https://reviews.freebsd.org/D55441
2026-05-03 13:29:06 -04:00
Dag-Erling Smørgrav 0733afdb4d lockf: Test that lockf does not spin on fd
PR:		294832
MFC after:	1 week
Reviewed by:	markj
Differential Revision:	https://reviews.freebsd.org/D56723
2026-05-03 17:35:15 +02:00
Christian Ullrich d90513ea85 lockf: Avoid spinning when operating on an fd
When operating on a file descriptor, acquire_lock() would ignore the
flags argument and always operate in non-blocking mode, resulting in
unnecessary busy-looping.

PR:		294832
MFC after:	1 week
Reviewed by:	markj
Differential Revision:	https://reviews.freebsd.org/D56722
2026-05-03 17:35:10 +02:00
Dag-Erling Smørgrav 0095c14256 stat: Drop unused code and conditionals
We haven't pulled from upstream in over 15 years, and the codebases
have diverged so far it is unlikely that we ever will.

* Drop NetBSD and OpenBSD version control information.

* Drop support for building on non-BSD / non-POSIX platforms.

* Fix a few minor style issues.

Reviewed by:	markj
Differential Revision:	https://reviews.freebsd.org/D56771
2026-05-03 17:35:06 +02:00
Ahmad Khalifa bc83f41458 vt_core: don't draw the splash if a panic occurred
The shutdown splash draws over all the useful info if ddb(4) is
disabled. Don't draw the splash screen if we're rebooting because of a
panic.

MFC after:	3 days
2026-05-03 18:15:38 +03:00
Ed Maste 9b0d9401e6 toolchain: Correct LLVM_BINUTILS pkg pkg dependency
The LLVM binutils are in the clang package.

Reported by: jlduran
Fixes: c4f08d46c7 ("llvm-*: Move all LLVM_BINUTILS symlinks to toolchain package")
2026-05-03 07:46:41 -04:00
Zhenlei Huang 9137c66c2e tests/carp: Rework unicast_v4
For unicast tests, it is sufficient to use wait_for_carp() to verify
the setup is sane. Additional sanity checks are not necessarily
required but can serve purpose for redundancy.

For some unclear reason routed(8) is advertising route to carp BACKUP.
That makes the test flaky. Also routed(8) is marked deprecated and may
be removed from base in the future. Let's just add static route entry
manually for additional sanity checks.

Other noticeable changes:
  1. Add atf_check to configuration steps to prevent potential failure
on setup. That helps diagnosing on failure.
  2. Shorten the names of jails to improve readability.
  3. Prefer `[ifconfig|route|sysctl] -j` over `jexec [ifconfig|route|sysctl]`
to make the lines shorter.

PR:		294817
Reviewed by:	glebius (previous version), pouria, markj
Fixes:		93fbdef51a tests: carp: Update test case unicast_v4 to catch PR 284872
MFC after:	3 days
Differential Revision:	https://reviews.freebsd.org/D56761
2026-05-03 19:02:15 +08:00
Jose Luis Duran 5a6d9479ae blocklistd: Fix RFC1918 typo
The address in the configuration file example was intended to be from
the 192.168.0.0/16 range of IPv4 private addresses (RFC1918).

Reported on mastodon.social at
https://mastodon.social/@asmodai/116316630762241486.

Fix submitted upstream by emaste@.  Fixing locally first.

Reviewed by:	emaste
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D56773
2026-05-03 05:31:51 +00:00
Stephen J. Kiernan 01674e15de bsd.endian.mk: Optimize the handling of big/little endian determination.
Add variables to contain lists of MACHINE_ARCH values to use
to determine little or big endian.

Only error out about not being able to determine endianess if
TARGET_ENDIANNESS is empty and not cross-compiling.

Reviewed by:	sjg
Obtained from:	Hewlett Packard Enterprise Development LP
Differential Revision:	https://reviews.freebsd.org/D44629
2026-05-02 22:21:56 -04:00
Rick Macklem 821976facf nfsd: Get rid of NFSD_VNET macros
When the nfsd was vnet'd, the VNET macros were hidden
behind macros that had the NFSD_ prefix on them.
This was done because, at the time, it was thought
that something other than vnet might be used for this.
That has not happened and probably will not happen,
so this patch replaces these obscuring macros with
the regular vnet ones.

There should be no semantics change caused by
this commit.

Discussed with:	bz, glebius
MFC after:	1 month
2026-05-02 14:36:43 -07:00
Ryan Libby 050b3ff753 libzpool: force inlining of xxhash after removing xxhash.c
libzpool had a number of undefined symbols related to xxhash after
xxhash.c was removed from the build.

Fixes:	8a62a2a565 ("zfs: merge openzfs/zfs@f8e5af53e")
Reviewed by:	jhb
Differential Revision:	https://reviews.freebsd.org/D56770
2026-05-02 13:01:10 -07:00
Rick Macklem a6e527f893 nfscl: Fix handling of gssd upcalls for the NFS client
Without this patch, all upcalls to the gssd daemon are
done in vnet0 (outside of any vnet jail).  This does
not work well, because a user principal's credential
cache can be within the jail (/tmp/krb5cc_NNN in the
jail's namespace).

This patch modifies the client so that RPCs done
from within vnet jails does an upcall to a gssd
daemon running within the vnet jail.  It required
that the cache of uid->credential shorthands in
the rpcsec_gss be vnet'd.

The situation is still less than ideal and sec=krb5[ip]
mounts that are visible within vnet jails is still
not something I would recommend, but it can work ok
with this patch.

Vnet'ng the NFS client so that mounts can be done
within vnet jails is probably more useful, but that
will require additional work.

Discussed with:	glebius
MFC after:	1 month
2026-05-02 12:36:00 -07:00
Dag-Erling Smørgrav 72b1aae09b stat: The devname test case requires root
Fixes:		4d4acdbfc2 ("stat: fix use of devname(3)")
2026-05-02 19:29:42 +02:00
John Baldwin 6f8312bdff ctl_ioctl_frontend: Reject out-of-range initiator IDs
Various places in CTL assume that initiator IDs are not larger than
CTL_MAX_INIT_PER_PORT.  Other IDs such as lun IDs are validated in
places such as ctl_scsiio_precheck, but initiator IDs submitted by
userland were not previously validated.

PR:		291059
Reported by:	Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org>
Reviewed by:	asomers
Sponsored by:	Chelsio Communications
Differential Revision:	https://reviews.freebsd.org/D56628
2026-05-02 12:43:29 -04:00
Alan Somers 3e845b1090 ping: fix listing test cases when scapy is not installed
The ATF-python test program was attempting to list test cases that
require scapy.  But it attempted to import the scapy module before the
test cases had been listed, resulting in an ImportError that kyua
interpreted as a test program crash.

Fix this behavior by handling that ImportError well enough to list test
cases, but not run them.  If scapy isn't present, Kyua will refuse to
run the test cases.  But it needs to be able to list them in order to
know to skip them.

Sponsored by:		ConnectWise
MFC after:		2 weeks
Reviewed by:		maxim
Differential Revision:	https://reviews.freebsd.org/D56765
2026-05-02 09:20:16 -06:00
Robert Clausecker 9f98195ff6 man/math.3: mention fmaximum_mag_num, fminimum_mag_num
PR:		294719
MFC after:	1 month
2026-05-02 16:53:08 +02:00
Jesús Blázquez 7c20e15592 lib/msun: Replaced pattern to force exception in _num families
Replaced the old pattern of using a ternary to force addition
(raising exceptions for sNaN's) with a new one using a volatile
variable. The _mag_num family was already implemented with this pattern

PR:		294719
Reviewed by:	fuz, kargl
MFC after:	1 month
2026-05-02 16:50:49 +02:00
Jesús Blázquez f62d826a6f lib/msun: fmaximum_mag_num family. Tests and man page
Added the fmaximum_mag_num{,f,l} and fminimum_mag_num{,f,l} functions.

PR:		294719
Reviewed by:	fuz, kargl
MFC after:	1 month
2026-05-02 16:50:13 +02:00
Martin Matuska f9590540c5 zfs: merge openzfs/zfs@84ffe564d
Notable upstream pull request merges:
 #18387 656285140 Handle raidz errors <= nparity rather than ignoring
 #18401 1cebe8a38 libzfs: report invalid permission name in zfs allow
 #18430 513710ed2 Fix "panic: cache_vop_rename: lingering negative entry"
 #18440 37e3a260f dmu_direct: avoid UAF in dmu_write_direct_done()
 #18445 2eee4ac1e Fix: draid autopkgtests fail on s390x architecture
 #18448 8da472973 key lookup failure should always return EACCES
 #18456 4a58ab8ce zfs.4: document five missing module parameters

Obtained from:	OpenZFS
OpenZFS commit:	84ffe564df
2026-05-02 09:18:34 +02:00
Maxim Konovalov 069681afd5 ping: use CLOCK_REALTIME for ICMP Originate Timestamp
RFC 792 defines the ICMP Originate Timestamp field as milliseconds
since midnight UTC.  However, ping(8) currently derives this value
from CLOCK_MONOTONIC, which represents time since an unspecified
starting point and is not related to UTC.

The issue was introduced by commit 1ad76f1b60, which replaced
gettimeofday(2) with clock_gettime(CLOCK_MONOTONIC) for timekeeping
in ping(8).

Fix this by using CLOCK_REALTIME when generating the ICMP originate
timestamp.

Before:

$ ping -Mt -c1 127.0.0.1
ICMP_TSTAMP
PING 127.0.0.1 (127.0.0.1): 56 data bytes
<...> time=0.061 ms tso=16:50:31 tsr=17:38:28 tst=17:38:28

(note the tso is off)

After:

$ ping -Mt -c1 127.0.0.1
ICMP_TSTAMP
PING 127.0.0.1 (127.0.0.1): 56 data bytes
<...> time=0.038 ms tso=17:42:09 tsr=17:42:09 tst=17:42:09

Reviewed by:		asomers, glebius
Fixes:			1ad76f1b60
MFC after:		1 month
Differential Revision:	https://reviews.freebsd.org/D56759
2026-05-02 03:16:55 +00:00
Ed Maste c4f08d46c7 llvm-*: Move all LLVM_BINUTILS symlinks to toolchain package
Some of the LLVM binary utilities were included in the Clang package
(because they did not set an explicit PACKAGE).

Add a new Makefile under clang/toolchain to create the symlinks and man
links for ar, c++filt, nm, and so on (without the llvm-* prefix) when
LLVM_BINUTILS is enabled (as it is by default).

PR:		293610
Reviewed by:	bapt, ivy, brooks
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55692
2026-05-01 19:33:51 -04:00
Adrian Chadd 0de6295af2 powerpc: refactor dmamap setup; free dmamap in error paths
* refactor the dmamap allocation / setup path for future code changes
  to align with arm64 busdma code;
* free the dmamap allocation if the dma segment list can't be allocated;
* free the dmamap allocation during the busdma dmamem allocation path
  if the actual memory allocation itself fails.

Locally tested:

* POWER9 ppc64le native boot, Raptor Engineering Blackbird
* POWER8 ppc6le, IBM POWER S822LC

https://reviews.freebsd.org/D56244
2026-05-01 14:15:06 -07:00
Adrian Chadd c7040d3eaa powerpc: busdma declaration shuffling
Shuffle some of the declarations around to match other implementations.
Expected to be a no-op.

Differential Revision: https://reviews.freebsd.org/D56243
2026-05-01 14:14:59 -07:00
Adrian Chadd 7c57d2499c powerpc: use local flags for bounce buffers instead of common flags
Migrate to using local flags for bounce buffers instead of the
common flag field.

Differential Revision: https://reviews.freebsd.org/D56208
2026-05-01 14:14:52 -07:00
Adrian Chadd 00ec88d2aa powerpc: refactor common busdma tag setup
Refactor the common busdma tag setup code into busdma_machdep.c

Locally tested:

* qemu VM, pseries-9 / power9
* qemu VM, pseries-8 / power8

Differential Revision:	https://reviews.freebsd.org/D55340
2026-05-01 14:14:44 -07:00
Adrian Chadd df3bd7201e powerpc: add in some busdma domain setup
* Implement the basic tag domain set routine
* Set the domain to the parent domain if provided

This is just plumbing for eventual work to re-allocate things into
the currently configured domain.

Differential Revision:	https://reviews.freebsd.org/D55315
2026-05-01 14:14:37 -07:00
Adrian Chadd 330e4f6acb powerpc: create a tag with the parents implementation if supplied
If a parent tag is supplied then use its implementation.

Differential Revision:	https://reviews.freebsd.org/D55314
2026-05-01 14:14:31 -07:00
Adrian Chadd 3bcb7c2a33 powerpc: initial straight port of busdma_machdep.c -> busdma_bounce.c
This is a straight port of the code and doesn't yet handle
different implementations (which will be in a subsequent commit.)

Locally tested:

* G5 SMP (2x PPC970mp)
* power8 / power9 pseries QEMU VM
* power8 powernv

Differential Revision:	https://reviews.freebsd.org/D55313
2026-05-01 14:14:23 -07:00
Ricardo Branco 459ac3044b namei: Preserve ABI root for absolute symlinks before fallback
D40479 changed namei() so that an absolute symlink target
encountered during an ABI-root lookup restarts from the native root.
This helps the native fallback case, but it also makes successful
lookups inside an ABI root escape that root while following absolute
symlinks.

Only switch absolute symlink lookup to the native root after namei()
is already in the restarted/native fallback pass.
Do not mark the lookup as restarted merely because an absolute
symlink was encountered while still resolving inside the ABI root.

This preserves the intended native fallback behavior while keeping
absolute symlinks within a successfully resolved ABI-root path in
the ABI namespace.

Signed-off-by:	Ricardo Branco <rbranco@suse.de>
PR:		289739
Reviewed by:	kib
Fixes:		cea7c564c7 ("namei: Reset the lookup to ...")
Pull-Request:	https://github.com/freebsd/freebsd-src/pull/2166
2026-05-01 23:57:36 +03:30