Skip to content

Update to the latest version#16

Merged
EthanCornell merged 605 commits intoEthanCornell:mainfrom
freebsd:main
May 3, 2025
Merged

Update to the latest version#16
EthanCornell merged 605 commits intoEthanCornell:mainfrom
freebsd:main

Conversation

@EthanCornell
Copy link
Copy Markdown
Owner

Update to the latest version

Lexi Winter and others added 30 commits April 24, 2025 01:50
the restriction on sending packets from anycast source addresses was
removed in RFC4291, so there's no reason to forbid binding to such
addresses.  this allows anycast services (e.g., DNS) to actually use
anycast addresses, which was previously impossible.

RFC4291 also removes the restriction that only routers may configure
anycast addresses; this was never enforced in code but was documented in
ifconfig.8.  update ifconfig.8 to document both changes.

PR:	285545
Reviewed by:	des, adrian
Approved by:	des (mentor)
Differential Revision:	https://reviews.freebsd.org/D49905
Commit 49bc071 ("nsswitch.conf: Avoid modification after
installation") changes handling of nsswitch.conf such that we make a
copy in the objdir during a build.  Historically, the in-tree
nsswitch.conf lived under etc.

The buildetc target and its copy set SUBDIR_OVERRIDE=etc when building
the object tree, but I think this isn't right when conf files are
scattered around the src tree.  If any of them require non-trivial
processing, they'll get skipped during buildetc, and then some
build-time commands may run during installetc.  In the linked PR, this
fails because the src tree is mounted read-only and no objdir was
created during buildetc.

Remove the SUBDIR_OVERRIDE for the _obj target, and build the
buildconfig target across the tree.

PR:		286072
Fixes:		49bc071 ("nsswitch.conf: Avoid modification after installation")
Reviewed by:	brooks, dim
Tested by:	dim, Alastair Hogge <agh@riseup.net>
Differential Revision:	https://reviews.freebsd.org/D49960
Upstream llvm compiles most of their subprojects with -std=c++17
explicitly, not -std=gnu++17. In gnu++17 mode, both clang and gcc define
the macro 'i386' on i386, which clashes with a namespace identifier in
contrib/llvm-project/llvm/include/llvm/ExecutionEngine/JITLink/i386.h.

Since the default after 6527682 is now CXXSTD=gnu++17, explicitly
set CXXSTD=c++17 for lib/clang, lib/libclang_rt and lib/libomp.
Only pkg.pkg is supported since 0cd9513.

Reviewed by:	emaste, ziaee
Fixes: 0cd9513 ("pkg: retire backwards compatibility bootstrap support")
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D49994
The index value in the loop in vm_map_pmap_enter jumps by 1, or some
superpage size, in each iteration. Jump by the superpage size only
when the entire superpage is being mapped.

Reported by:	pho
Reported-by: syzbot+1cc9ede76727d2ea2e8d@syzkaller.appspotmail.com
Reviewed by:	alc, kib, markj
Tested by:	pho
Fixes:	Fixes: b3d89a0 ("vm_map: use page iterators in pmap_enter")
Differential Revision:	https://reviews.freebsd.org/D49987
Use iterators in place of tailq pointers in vm_object_unwire().

Reviewed by:	kib
Differential Revision:	https://reviews.freebsd.org/D49939
Define vm_page_grab_valid_iter() to be the function that does the work
of vm_page_grab(), but has an iterator parameter passed to it. In a
couple of places, this can be called directly to let an iterator get
reused.

Reviewed by:	markj
Differential Revision:	https://reviews.freebsd.org/D49942
Replace tailq pointers with iterators in the DB_SHOW* functions.

Reviewed by:	kib
Differential Revision:	https://reviews.freebsd.org/D49947
Replace the listq pointers with iterators in vm_object_list_handle().

Reviewed by:	kib
Differential Revision:	https://reviews.freebsd.org/D49946
Check the object pctrie, rather than the memq, to detect an empty
object.

Reviewed by:	kib
Differential Revision:	https://reviews.freebsd.org/D49948
This is needed for rtw89 updates.

Sponsored by:	The FreeBSD Foundation
MFC after:	3 days
Reviewed by:	emaste, zarychtam_plan-b.pwste.edu.pl
Differential Revision: https://reviews.freebsd.org/D50000
Some code relies on header pollution (or self-sustainability).
Add cleanup.h to mutex.h as that is one case it seems to be used with.

Sponsored by:	The FreeBSD Foundation
MFC after:	3 days
Reviewed by:	emaste
Differential Revision: https://reviews.freebsd.org/D50001
An updated rtw88 driver requires minimal changes to leds.h.  On
the positive side we can now remove the __DUMMY from the enum as we
actually have a valid field name.

Sponsored by:	The FreeBSD Foundation
MFC after:	3 days
Reviewed by:	emaste
Differential Revision: https://reviews.freebsd.org/D50002
Implement container_of_const() needed for wireless driver updates.

Sponsored by:	The FreeBSD Foundation
MFC after:	3 days
Reviewed by:	emaste
Differential Revision: https://reviews.freebsd.org/D49999
Use a macro to automatically gather the length of the array while
we can.

Sponsored by:	The FreeBSD Foundation
MFC after:	3 days
Reviewed by:	emaste
Differential Revision: https://reviews.freebsd.org/D50007
Add pci_info() needed for a driver update.  While here prefix
__VA_ARGS__ with ## for pci_err and pci_info in case we are only
passed a string without format arguments.

Sponsored by:	The FreeBSD Foundation
MFC after:	3 days
Reviewed by:	emaste
Differential Revision: https://reviews.freebsd.org/D50009
Driver updates introduce a new field "mlo" to the sta.
Add the field to the struct and initialize it in the 802.11 compat
code along with a IMPROVE so once we get to 11be we can deal with it.

Sponsored by:	The FreeBSD Foundation
MFC after:	3 days
Move some structs into the appropriate header to be visible.
Add new fields to structs and enums.

Remove arguments from two functions (one function currently unused
by drivers in the tree, for the other the argument was unused).
Adjust the iwlwifi accordingly.  This is in preparation for new
driver versions to allow a smooth transition.

Sponsored by:	The FreeBSD Foundation
MFC after:	3 days
The zfs command to do this is a bit longer and harder to remember. In
the last few releases mount(8) learned how to do this, so lets show it
in the manual.

MFC after:		3 days
Reported by:		Jan Bramkamp <crest+freebsd@rlwinm.de>
Discussed with:		cperciva, emaste
Reviewed by:		mhorne
Approved by:		mhorne (mentor)
Differential Revision:	https://reviews.freebsd.org/D49988
Add a call to pctrie_iter_reset after vm_fault_allocate returns to
vm_fault_allocate, since the iterator may be corrupted.

Reviewed by:	kib
Differential Revision:	https://reviews.freebsd.org/D49957
Use an iterator instead of tailq pointers in vm_object_populate().

Reviewed by:	kib
Differential Revision:	https://reviews.freebsd.org/D49938
Commit 2ec2ba7 added support for Solaris style extended
attributes (called named attributes, which is the NFSv4
terminology) to the VFS.

This patch updates the NFS code common to the NFS client and
server, to prepare it for the addition of named attribute
support.

The actual support for named attributes in the NFSv4 client
and server will be done in future commits.
An earlier commit relaxed the TA/RA rules around control frames
to fix other issues, however it now results in control frames
not specifically from a known node / to us to be handled in the control
path.

Specifically, rtwn(4) RTL8812/RTL8821 NICs are currently passing BARs
from the AP TA to any destination to us; which is tripping up BAW
tracking and causing traffic hangs.

So do the check before vap->iv_recv_ctl() is called in each input path.

Note that mesh doesn't seem to pass the control frames up; however
I haven't tested/validated mesh in a long while and I know it's
currently broken.

Differential Revision:	https://reviews.freebsd.org/D49575
This adds the ASMC support for the macmini 6,1 and 6,2.

PR:		kern/268141
Differential Revision:	https://reviews.freebsd.org/D49929
Use iterators instead of tailq_next pointers in vm_fault_populate().

Reviewed by:	kib
Differential Revision:	https://reviews.freebsd.org/D50010
This reverts commit 925906a.

The effects of releasing and acquiring the object write lock
a few lines into the loop were not carefully considered.

Reported by: alc
Replace a use of TAILQ_NEXT with a pctrie lookup, in order to allow
the TAILQ to be elimiated soon.

Reviewed by:	alc
Differential Revision:	https://reviews.freebsd.org/D50010
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
For instance, the structure contains the struct _Unwind_Exception, and
it seems that libgcc requires specific alignment for it.

PR:	285711
Tested by:	Oleg Sidorkin <osidorkin@gmail.com>
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
5u623l20 and others added 28 commits May 2, 2025 00:56
The current default image is set to 13.4 which is going to reach EOL
soon so switch the default CI image to 14.

Will be merged into stable/14 only. This has no operational effect on
the build itself.

Approved by:	emaste
MFC after:	3 days
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D50110
Mountd reloads the exports(5) file(s) when it receives a SIGHUP
and then compares the old and new exports, updating any ones that
have changed in the kernel.

Without this patch, mountd failed to recognize that a network/host(s)
had changed, if there was no other change to the exports line.
As such, the change of network/hosts(s) did not take effect until
the mountd daemon was (re)started.

This patch fixes the code so that it checks for changes in
the network/host(s) list for an exports line.

PR:	286260
MFC after:	3 days
In managing freed PG_NOFREE pages, use ref_count instead of pindex for
counting pages in freed PG_NOFREE blocks. No change in behavior is
expected. This restores the (useful) property that the pindex field is
of interest only for pages that are mapped to objects.

Reviewed by:	markj
Differential Revision:	https://reviews.freebsd.org/D50112
Sponsored by:	The FreeBSD Foundation
Sponsored by:	The FreeBSD Foundation
Because we do not drain the hdac callout during detach, hot-unloading
can result in a panic if the callback fires after we have freed the
resources it uses.

pcm0: detached
pcm1: detached
hdaa0: detached
hdacc0: detached
Kernel page fault with the following non-sleepable locks held:
exclusive sleep mutex hdac0 (HDA driver mutex) r = 0 (0xfffffe000212c820) locked @ /mnt/src/sys/dev/sound/pci/hda/hdac.c:400

[...]

db_trace_self_wrapper() at db_trace_self_wrapper+0xa5/frame 0xfffffe0046b04490
kdb_backtrace() at kdb_backtrace+0xc6/frame 0xfffffe0046b045f0
vpanic() at vpanic+0x226/frame 0xfffffe0046b04790
panic() at panic+0xb5/frame 0xfffffe0046b04850
trap_fatal() at trap_fatal+0x65b/frame 0xfffffe0046b04950
trap_pfault() at trap_pfault+0x12b/frame 0xfffffe0046b04a70
trap() at trap+0x54c/frame 0xfffffe0046b04c50
calltrap() at calltrap+0x8/frame 0xfffffe0046b04c50
--- trap 0xc, rip = 0xffffffff8412e7ec, rsp = 0xfffffe0046b04d20, rbp = 0xfffffe0046b04d40 ---
hdacc_stream_intr() at hdacc_stream_intr+0x3c/frame 0xfffffe0046b04d40
hdac_intr_handler() at hdac_intr_handler+0x15c/frame 0xfffffe0046b04d90
ithread_loop() at ithread_loop+0x387/frame 0xfffffe0046b04ef0
fork_exit() at fork_exit+0xa3/frame 0xfffffe0046b04f30
fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0046b04f30
--- trap 0xc, rip = 0x829cc531a, rsp = 0x82b8b7a88, rbp = 0x82b8b7aa0 ---
KDB: enter: panic
[ thread pid 12 tid 100211 ]
Stopped at      kdb_enter+0x34: movq    $0,0x1f09af1(%rip)
db>

Sponsored by:	The FreeBSD Foundation
MFC after:	1 day
Reviewed by:	kib, adrian
Differential Revision:	https://reviews.freebsd.org/D50087
Due to a regression in ZFS, a pool's status may not change to DEGRADED
promptly after a vdev becomes faulted.  This test is primarily concerned
with vdev status, not pool status, so work around the bug by doing a
"zpool reopen".  Otherwise the test would time out waiting for a status
change that never came.

MFC to stable/14 only.

openzfs/zfs#16245

MFC after:	2 weeks
Sponsored by:	ConnectWise
These check if we can should use a superpage to create the static map.
As it is arm specific we can use an arm-specific macro here.

Reviewed by:	mhorne
Sponsored by:	Arm Ltd
Differential Revision:	https://reviews.freebsd.org/D50013
Call pmap_mapdev directly. If it can allocate this memory using the
static device map via devmap_ptov it will so there is no need to call
it directly.

Reviewed by:	mhorne
Sponsored by:	Arm Ltd
Differential Revision:	https://reviews.freebsd.org/D50014
The devmap_ptov and devmap_vtop functions are only used in this file.

Reviewed by:	mhorne
Sponsored by:	Arm Ltd
Differential Revision:	https://reviews.freebsd.org/D50015
We only create the static devmap on arm. Stop building this code on
other architectures.

Reviewed by:	mhorne, imp
Sponsored by:	Arm Ltd
Differential Revision:	https://reviews.freebsd.org/D50016
These files don't use it, we can stop including sys/devmap.h.

Reviewed by:	mhorne
Sponsored by:	Arm Ltd
Differential Revision:	https://reviews.freebsd.org/D50017
As pmap_mapbios is used to map a physical address with a default memory
attribute we can try to use the DMAP region. For now check if all pages
are mapped, however it is expected this check can be removed later
after testing on more hardware.

Reviewed by:	alc, markj, jhb (earlier version)
Sponsored by:	Arm Ltd
Differential Revision:	https://reviews.freebsd.org/D42732
Previously, the CI Makefile used `kldload -n vmm` to determine whether
the host supported bhyve virtualization. However, due to changes in how
QEMU/KVM exposes CPU features to guests, this check no longer reliably
indicates the presence of usable VMX/SVM support.

In particular, modern QEMU configurations expose the vmx CPUID bit by
default, allowing the vmm module to load even when nested virtualization
is disabled.  This causes the old check to incorrectly succeed inside
virtualized environments where bhyve cannot function.

This patch replaces the check with a sysctl-based approach that inspects
kern.vm_guest. If the system identifies itself as running inside a guest
(!= "none"), we assume nested virtualization is unavailable and fallback
to QEMU.

This change ensures CI behaves correctly on platforms where the vmm
module loads but is not usable.

Approved by:	emaste
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D50115
querying the lockstate for write-locked state.

Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
If filter needs to be loader, we restart after the lock upgrade.  But
possible binds in the resolver itself would try to recurse on the lock,
which can be only done for the read locks.

PR:	286502
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
PR:	286505
Reviewed by:	olce
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D50117
Import manual from OpenBSD, tweaked for our system.

Obtained from:		OpenBSD (initially)
Fixes:			1ad0f7e91582dd (Import iwx)
Reviewed by:		adrian, bz, emaste, mhorne, thj, Pat Maddox
Approved by:		mhorne (mentor)
Differential Revision:	https://reviews.freebsd.org/D49687
LIO_FOFFSET needs to be masked off, as it is in aio_aqueue().

Reported by:	syzbot+b6e15476c91852bb2264@syzkaller.appspotmail.com
Reviewed by:	kib, asomers
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D50118
No functional change intended.

Reviewed by:	olce, kib
MFC after:	2 weeks
Sponsored by:	Klara, Inc.
Differential Revision:	https://reviews.freebsd.org/D50105
No functional change intended.

Reviewed by:	olce, kib
MFC after:	2 weeks
Sponsored by:	Klara, Inc.
Differential Revision:	https://reviews.freebsd.org/D50106
The condition `flag == NFC_ISDOTDOT && vp != NULL && vp->v_type != VDIR`
is never true at this point in the function.  This is asserted slightly
earlier.  So, remove some dead code and simplify control flow.

N.B. we set v_cache_dd for all vnode types, not just VDIR.  This seems
to be intentional, see commit ce575cd.  For regular files it
appears to effectively represent the most recently entered cache entry
for the vnode.

No functional change intended.

Reviewed by:	olce, kib
MFC after:	2 weeks
Sponsored by:	Klara, Inc.
Differential Revision:	https://reviews.freebsd.org/D50107
It can trigger failures in unrelated tests when it modifies the maxfiles
limit.

MFC after:	1 week
PF should send a challenge ACK as response to SYN, which matches existing
state. Extra thanks goes to bluhm@ for careful testing and fixing patch I've
sent to tech@

O.K. henning@ bluhm@

Obtained from:	OpenBSD, sashan <sashan@openbsd.org>, 6679bb1581
Sponsored by:	Rubicon Communications, LLC ("Netgate")
If there's a state conflict with an open state and a new SYN we send an ack
probe. Verify that this works as expected.

Sponsored by:	Rubicon Communications, LLC ("Netgate")
When using a /32 IPv4 interface address, pfctl(8) reports a 0.0.0.0
as broadcast address.  The kernel does not consider this a broadcast
address and ifconfig(8) has a check to exclude it.  Use the same
check in pfctl(8).
Found by regress/sbin/pfctl pfi2; OK mikeb@

Obtained from:	OpenBSD, bluhm <bluhm@openbsd.org>, cf181e999d
Sponsored by:	Rubicon Communications, LLC ("Netgate")
@EthanCornell
Copy link
Copy Markdown
Owner Author

Update to the latest version

@EthanCornell EthanCornell merged commit 8b8c14d into EthanCornell:main May 3, 2025
6 of 7 checks passed
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.