Skip to content

update#19

Merged
EthanCornell merged 1260 commits intoEthanCornell:mainfrom
freebsd:main
Jul 29, 2025
Merged

update#19
EthanCornell merged 1260 commits intoEthanCornell:mainfrom
freebsd:main

Conversation

@EthanCornell
Copy link
Copy Markdown
Owner

No description provided.

zxombie and others added 30 commits July 21, 2025 13:07
Follow interrupt-map properties until either an interrupt controller or
invalid node is found. In the former case return the translated details
for the interrupt controller driver to decode. In the latter case return
0 as an error.

Tested on the Arm DTS files that use interrupt-maps and with a
userspace test.

Sponsored by:	Arm Ltd
Differential Revision:	https://reviews.freebsd.org/D51257
Allow building OCI images if the source tree is not /usr/src. This also
removes the copy of /etc/pkg/FreeBSD.conf which is not needed for the
OCI image build.

MFC after:	3 days
The patch was originally written by hrs [1], and later modified by meta
to use named flags instead of generic link-layer flags.

[1] https://reviews.freebsd.org/D45854

PR:		280736
Co-authored-by:	Hiroki Sato <hrs@FreeBSD.org>
Reviewed by:	ae, ziaee, zlei, pauamma
Reported by:	Kazuki Shimizu <kazubu@jtime.net>
Approved by:	pauamma (manpages)
Approved by:	ae
MFC after:	2 weeks
Sponsored by:	Cybertrust Japan
Differential Revision:	https://reviews.freebsd.org/D51297
Set WITH_MITKRB5=yes as the default.

Rebuild all USES=gssapi ports is recommended.

A clean buildworld is required.

Relnotes:	yes
This adds support for a new `print_delay` environment variable,
which inserts a delay in microseconds when `putchar` encounters a
newline character. This can be useful when debugging.

Reviewed by:	markj, imp, ziaee, mckusick (mentor)
Approved by:	markj, imp, ziaee, mckusick (mentor)
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D50832
It does not appear to get much, if any, testing, and doesn't seem to be
worth the maintenance overhead.  Virtually all amd64 hardware has
multiple cores.  The CPU and memory usage overhead of the SMP option in
single-vCPU VMs is quite marginal and not worth maintaining.

Reviewed by:	alc (pmap.c), kib
Differential Revision:	https://reviews.freebsd.org/D51403
Differential Revision:	https://reviews.freebsd.org/D51345
Also merge two printf()s.  No functional change intended.

Reviewed by:	kib
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D51452
Also make the array const.  No functional change intended.

MFC after:	1 week
Symbols defined using assembler directives lack type info, but in this
case one ought to be able to cast a pointer to the symbol and
dereference the pointer to get a value.  Without this change, D
disallows this trick since it requires all identifiers to have a type.

Relax the rules slightly and allow an identifier to have type "void" if
we know we're just taking its address.

As a result, the following dtrace invocation works:

  dtrace -n 'tick-1s {printf("%d", *(int *)&`ticks);}'

In particular, since commit b2b974f ("clock: Simplify subr_ticks
and rename"), "ticks" does not have any type info associated with it, so
its value couldn't be printed.  This trick provides a workaround and is
probably generally useful.

Add a regression test which exercises this functionality.

PR:		287752
Reviewed by:	avg
MFC after:	1 month
Differential Revision:	https://reviews.freebsd.org/D51417
makefs currently does not implement compression for ZFS datasets, as
doing so seems somewhat fraught with compatibility issues.  As a result,
the root dataset has compression disabled, and all others inherit from
that.

However, it may be useful to enable compression for new files once the
generated pool is actually imported.  Thus, implement a per-data
compression option.  By default, compression is inherited from the
parent dataset and disabled on the root dataset.

Add a regression test.

PR:		288241
MFC after:	1 month
This will be used by the test suite to enable running makefs/zfs tests
in parallel.

MFC after:	1 month
Use the script PID as a pool GUID.  This way, tests running in parallel
will have pool GUIDs that won't collide, and the tests no longer need to
be serialized.

MFC after:	1 month
Use the correct variable in the correct way. The app limited period
is cleared when gp_seq is greater than or equal to
cleared_app_ack_seq.

Reviewed by:		rrs, tuexen, Nick Banks
MFC after:		1 week
Sponsored by:		Netflix, Inc.
Differential Revision:	https://reviews.freebsd.org/D51441
For DIRDEPS_BUILD we want to ignore _SUBDIR regardless of
.MAKE.LEVEL

Reviewed by:	stevek
Differential Revision:	https://reviews.freebsd.org/D51454
  [Clang][NFCI] Cleanup the fix for default function argument substitution (#104911)

  (This is one step towards tweaking `getTemplateInstantiationArgs()` as
  discussed in llvm/llvm-project#102922)

  We don't always substitute into default arguments while transforming a
  function parameter. In that case, we would preserve the uninstantiated
  expression until after, e.g. building up a CXXDefaultArgExpr and
  instantiate the expression there.

  For member function instantiation, this algorithm used to cause a
  problem in that the default argument of an out-of-line member function
  specialization couldn't get properly instantiated. This is because, in
  `getTemplateInstantiationArgs()`, we would give up visiting a function's
  declaration context if the function is a specialization of a member
  template. For example,

  ```cpp
  template <class T>
  struct S {
    template <class U>
    void f(T = sizeof(T));
  };

  template <> template <class U>
  void S<int>::f(int) {}
  ```

  The default argument `sizeof(U)` that lexically appears inside the
  declaration would be copied to the function declaration in the class
  template specialization `S<int>`, as well as to the function's
  out-of-line definition. We use template arguments collected from the
  out-of-line function definition when substituting into the default
  arguments. We would therefore give up the traversal after the function,
  resulting in a single-level template argument of the `f` itself. However
  the default argument here could still reference the template parameters
  of the primary template, hence the error.

  In fact, this is similar to constraint checking in some respects: we
  actually want the "whole" template arguments relative to the primary
  template, not those relative to the function definition. So this patch
  adds another flag to indicate `getTemplateInstantiationArgs()` for that.

  This patch also consolidates the tests for default arguments and removes
  some unnecessary tests.

This fixes a crash or assertion failure while building tests for the
devel/hpx port.

PR:		288352
MFC after:	3 days
The metatags file informs install of kernel and modules to load,
allow it to also case variables to be set in env.

Reviewed by:	imp
Sponsored by:	Juniper Networks, Inc
Differential Revision:	https://reviews.freebsd.org/D51446
Currently bsdinstall does not install FreeBSD-base.conf when performing
an offline pkgbase installation. This commit fixes that.

PR:		287821
Reviewed by:	emaste
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D51101
Remove the failed request queue, it's been unused since bc85cd3
when we removed the last function that referenced it. Also adjust
the comment for the reset taskqueue. We still start 2 threads.

Sponsored by:		Netflix
Move the AER processing into the taskqueue thread. We do memory
allocations and such burried deep in things we call, so this just makes
all that simpler and doesn't stall the completion thread. It fixes a few
panics if you get a reliability failure from the drive at the wrong
time.

Sponsored by:		Netflix
MFC After:		2 weeks
Fetch vm_guest on startup in case we're running under a hypervisor.

Co-authored-by: eugen@
PR: 287873
Sponsored by:		Netflix
Turns out, we don't use the results of xpt_path_inq here at all. And it
also causes problems. Since it calls xpt_cam_inq to do this useless
XPT_PATH_INQ, it loses the original priority we had for the CCB. This
priority should be CAM_PRIORITY_XPT, but was oringially set to
CAM_PRIORITY_NORMAL. This worked to enumerate the device because no
normal priority CCBs were queued by anything doing the
enumeration. However, when I changed xpt_path_inq to use the more proper
PRIORITY_NONE, it exposed this bug because queued CCBs with
PRIORITY_NONE sometimes won't run. This caused the probe device to stop
after its first operation. Removing the xpt_path_inq means we no longer
step on the important fields we get from xpt_schedule, allowing probing
to work correctly.

Noticed by: bz@
Sponsored by: Netflix
Queued CCBs usually are queued at CAM_PRIORITY_NORMAL, unless they are
doing error recovery, or device enumeration of some kind. They should
never be queued at CAM_PRIORITY_NONE, which should only be used for CCBs
that are immediate. For sdda_start_init_task(), we allocate a ccb,
initialize it then use it to talk to the SD/MMC card to query it,
negotiate the speed and lane sizes, etc. Most of these commands are
queued, so use the normal priority.

Sponsored by:		Netflix
All queued CCBs should be created with a real priority (one that's not
CAM_PRIORITY_NONE). Recently, I introduced a bug that revealed a latent
MMC bug where it would stop enumerating due to a bad priority. Add an
assert to catch that (the other bug in mmc_da that it found has been
fixed).

Sponsored by:		Netflix
The following up advertising of IFCAP_HWCSUM capability unconditionally
overwrite IFCAP_LINKSTATE.

Reviewed by:	kbowling
MFC after:	3 days
Differential Revision:	https://reviews.freebsd.org/D51450
The hardware can count statistics and the driver has already retrieved
them via qlnx_get_counter().

Advertise the IFCAP_HWSTATS capability to avoid the net stack from
double counting IFCOUNTER_IBYTES.

Reviewed by:	kbowling
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D51451
The EFI_PROPERTIES_TABLE has been deprecated in the UEFI specification.
It is now replaced by the EFI_MEMORY_ATTRIBUTES_TABLE, which provides
a new header and data format for describing memory region attributes.

Reviewed by:    imp
Approved by:    markj (mentor)
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D49998
Similar to shutdown(8), refuse to reboot if /var/run/noshutdown is
present.  The -f option can be used to force operation.

Reviewed by:	imp
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D51241
Fix a mistake in a log message that leaked from my preliminary patch.

PR:		287873
MFC after:	3 days
X-MFC-with:	bd4a4e4
Limit calls to /usr/libexec/hyperv/hyperv_vfattach to Hyper-V guests.

PR:		287873
MFC after:	3 days
kostikbel and others added 28 commits July 28, 2025 19:22
… call

This restores the feature of EXTERROR() being allowed at any context
except the interrupt handlers.

Reviewed by:	emaste
Sponsored by:	The FreeBSD Foundation
Differential revision:	https://reviews.freebsd.org/D51595
Move LLVM ar, nm, and size.  Also move elftoolchain strings, which
should have already been there.

The remaining LLVM utilities (including strings) stay in -clang for now
since they're links to other executables.

Reviewed by:	des, dim
Differential Revision:	https://reviews.freebsd.org/D51583
The PVID option is exposed to the user as 'untagged', but the API was
inconsistent on whether it's called 'untagged' or 'PVID'.  Standardise
on calling it PVID everywhere in the code, since this is the 802.1Q
terminology.

Keep 'untagged' as the user-facing term since sysadmins are not network
admins and are often not familiar with the term PVID.

Approved by:	des
Differential Revision:	https://reviews.freebsd.org/D51182
Disallow this:

	ifconfig bridge0 create
	ifconfig bridge0.1 create
	ifconfig bridge0 addm bridge0.1

Also disallow this:

	ifconfig vlan1 create
	ifconfig bridge0 create
	ifconfig bridge0 addm vlan1
	ifconfig vlan1 vlan 1 vlandev bridge0

Firstly, this panics due to trying to take BRIDGE_LOCK recursively.
Secondly, even if it worked, it could cause packet forwarding loops.

Reviewed by:	des
Differential Revision:	https://reviews.freebsd.org/D51310
This section adds several style guidelines for C++ in FreeBSD's base
system both enumerating some differences relative to the C KNF style
and addressing some unique C++ idioms not addressed by the existing
KNF style.

This section is not exhaustive but does include an initial set of
guidelines.

Reviewed by:	ivy, emaste
Sponsored by:	Chelsio Communications
Differential Revision:	https://reviews.freebsd.org/D50983
Reviewed by:	imp
Fixes:		4728f53 ("Move LOADER_{NO,}_GELI_SUPPORT to MK_LOADER_GELI")
Differential Revision:	https://reviews.freebsd.org/D51598
These link against libsa instead of pulling individual sources from
the libsa source directory.

Reviewed by:	imp
Differential Revision:	https://reviews.freebsd.org/D51599
This moves the checks previously under #ifdef STRICT in
nvmf_nqn_valid() into a separate helper for userland.  This
requires that the NQN starts with "nqn.YYYY-MM." followed by at
least one additional character.

Reviewed by:	asomers
Differential Revision:	https://reviews.freebsd.org/D48767
Suppose a kernel module A defines an SDT provider and probes, and kernel
linker file B, dependant on A, contains tracepoints for those probes.
When sdt.ko is loaded, it iterates over all loaded KLDs to initialize
probe structures and register them with dtrace.  In particular it uses
linker_file_foreach(), which is not sorted; in the above scenario, B may
be visited before A.  Thus, it's possible for sdt_kld_load_probes() to
try to add tracepoints to an uninitialized SDT probe.

An example of the above arises when pfsync, pf, and sdt are loaded in
that exact order after commit 4bb3b36.

Fix this by initializing probe structures in the first pass over loaded
KLDs.  Then, the second pass can safely add tracepoints to any probe
structure.

Note that the scenario where B and A are loaded after sdt.ko is already
handled properly, as there, the kld_load eventhandler is responsible for
registering probes with dtrace, and that eventhandler fires for
dependencies before it does for the dependent KLD.  This presumes,
however, that there are no cycles in the dependency graph.

Reported by:	jenkins
MFC after:	2 weeks
…me()

Otherwise it is sign-extended into 64bit ino_t on the call to
ufs_dirrewrite().  This causes invalid inode number recorded in the SU
tracking structures (newdirem) and triggers corresponding panics.

Reviewed by:	mckusick, olce
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D51573
Use proper comparision operators when we need to see if newparent was
set to not-zero value.

Reviewed by:	mckusick, olce
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D51573
PR:		287620
Approved by:	db@ (Mentor, implicit)
Read IIC-HID reports as a single I²C transaction, instead of reading
first the two byte length field, holding the bus, and then the rest
of the report in a separate transaction.

While technically legal, I²C bus split transactions are not universally
supported, and in particular the "Snapdragon Elite" ARM CPU does
not seem to support them.

It is also not obvious that they are beneficial in this case, given
the overhead of controller setup, interrupts and tear-down.

Reviewed by: wulf
Differential Revision: https://reviews.freebsd.org/D51302
This describes the current status of the implementation.
While there, be a bit more precise on how long the checksum
computation is delayed.

Reviewed by:		Timo Völker, bcr
MFC after:		1 week
Differential Revision:	https://reviews.freebsd.org/D51590
This is based on the description of sysctl -d.

Reviewed by:		Timo Völker, bcr
MFC after:		1 week
Differential Revision:	https://reviews.freebsd.org/D51604
Fixes:	610319c
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Sponsored by:	Rubicon Communications, LLC ("Netgate")
…net()

There are scenarios where we can end up looking up an interface by its scope and
turn up an interface that doesn't have IPv6 enabled on it. If that happens we
could end up dereferencing a NULL pointer accessing ifp->if_afdata[AF_INET6].
Check for this.

One such scenario is if a firewall rewrites a destination address to a
link-local address, with an embedded scope for such an interface. Attach a test
case which provokes this.

PR:		288263
Reported by:	Robert Morris <rtm@lcs.mit.edu>
Reviewed by:	zlei
Sponsored by:	Rubicon Communications, LLC ("Netgate")
Differential Revision:	https://reviews.freebsd.org/D51500
Sponsored by:	Rubicon Communications, LLC ("Netgate")
Despite the name, isrmdir is not a boolean-valued, it is also used to
pass a new parent inode number down to the SU layer.

Fixes:		98eb6f0 ("ufs: restore conditional")
Reviewed by:	kib
Reported by:	syzbot+fbfff9613b6dab616124@syzkaller.appspotmail.com
Reported by:	syzbot+02cb048d48b51bcd9c41@syzkaller.appspotmail.com
Reported by:	syzbot+98c39c45a437812f7683@syzkaller.appspotmail.com
Reported by:	syzbot+6fb8cb919cc686d1a1d0@syzkaller.appspotmail.com
Reported by:	syzbot+fb35cce6a6f5075a6692@syzkaller.appspotmail.com
Reported by:	syzbot+602fb6ee1a39abfd3b5c@syzkaller.appspotmail.com
Reported by:	syzbot+5cb82352555d5d505640@syzkaller.appspotmail.com
Reported by:	syzbot+6a4ea1e13f4e07369785@syzkaller.appspotmail.com
Reported by:	syzbot+18722c8e4008048efb51@syzkaller.appspotmail.com
libedit breaks the bootstrap on MacOS and Linux.

Activate libedit only for the regular build not for the bootstrap
tools

While here fix the definition of the dependency chain between
libkrb5ss and libedit (and libtinfow) via src.libnames.mk

Remove a local patch to find the readline compatible header and
find them via proper CFLAGS.
Upstream had a poor description for KbdInteractiveAuthentication prior
to the 10.0p2 release.  We use KbdInteractiveAuthentication for PAM
authentication, and we replaced the poor description with a note about
use by PAM.

In 10.0p2 the upstream description has been fixed.  Incorporate that
text now as it is an improvement and avoids a conflict in the upcoming
10.0p2 import.

Reviewed by:	jhb
Sponsored by:	The FreeBSD Foundation
This is required to build libkrb5support.

Fixes:		7e35117 ("Makefile: Hook MIT KRB5 into the build")
Certain SR-IOV devices enumerate Virtual Functions (VFs) on a different
PCIe bus than their parent Physical Function (PF).  In such cases, the
default subordinate bus range assigned by BIOS may be insufficient to cover
all VFs.

This patch dynamically expands the subordinate bus range by:
- Allocating additional bus numbers using bus_alloc_resource() when VFs are
  initialized
- Releasing the reserved bus range during VF deletion via
  bus_release_resource()

Reviewed by:	jhb
blist_create() panics on zero nblks.

Reported by:	olivier
Reviewed by:	alc, markj
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D51618
zfs/fs.c:
zfs/objset.c:
zfs/vdev.c:
zfs/zap.c:
Add include sys/param.h

dsl_dir_alloc() needs to set parent = NULL to silence warning
about 'parent' may be used uninitialized. Warning is given because
we break the loop when nextdir == NULL and parent was not previously set.
(it should not happen, but compiler does not know that).

zap_add() and zap_fat_write_array_chunk() takes uint8_t *, use type
cast.

zap_fat_write_array_chunk() should check sz for 0 to avoid
use of uninitialized pointer.

unchecked function returns.

Reviewed by:	markj
Differential revision:  https://reviews.freebsd.org/D51592
The dataset mountpoints get link count and size calculated by
content of dataset root directory, but this will break libzfs
dir_is_empty_stat() test.

For fix, we need to check if the directory is mountpoint for
dataset, and calculate the link count and size accordingly.

Reviewed by:    markj
Differential revision:  https://reviews.freebsd.org/D51593
@EthanCornell EthanCornell merged commit f0bc513 into EthanCornell:main Jul 29, 2025
7 of 8 checks passed
@github-actions
Copy link
Copy Markdown

Thank you for taking the time to contribute to FreeBSD!
There are a few issues that need to be fixed:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.