Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

24.04.1 system update #321

Merged
merged 1,233 commits into from
Apr 17, 2024
Merged

24.04.1 system update #321

merged 1,233 commits into from
Apr 17, 2024

Conversation

ericbsd
Copy link
Member

@ericbsd ericbsd commented Apr 16, 2024

No description provided.

gbergling and others added 30 commits March 3, 2024 18:47
- s/opration/operation/

(cherry picked from commit 04d5a8ae04013fd34e3bde5e401b6eaff46ac9c2)
- s/successfull/successful/

MFC after:	3 days

(cherry picked from commit e2f36496136975d4b591b230a71986f1508629c1)
- s/dumpped/dumped/

(cherry picked from commit 8f87d402e32178974038212fbf4b1564447df0e0)
- s/successfull/successful/

(cherry picked from commit 6bce41a38e32decbce80bb1586cdd9400c83eb97)
The manpage of nvmecontrol(8) has the following SYNOPSIS:

nvmecontrol format [-f fmt] [-m mset] [-o pi] [-l pil] [-E]
[-C] <device-id | namespace-id>

The correct switch for the pi option is -p according
to sbin/nvmecontrol/format.c:

OPT("pi", 'p', arg_uint32, opt, pi, "Protective information")

So correct the SYNOPSIS section accordingly.

PR:	276554
Reviewed by:	imp
Differential Revision:	https://reviews.freebsd.org/D44099

(cherry picked from commit 77f6c0ce92888d047d91e87b931242403764902b)
The last example in the manpage md5(1) wants to demonstrate
GNU mode (md5sum), but uses BSD mode (md5) instead:

In GNU mode, the -c option does not compare against a hash string
passed as parameter. Instead, it expects a  digest file,
as created under the name digest for /boot/loader.conf in
the example above.

PR:	276560
Reviewed by:	mhorne
Differential Revision:	https://reviews.freebsd.org/D44098

(cherry picked from commit 865baeaf1abeb14327ad6a4a1f8ce722e242ff73)
(cherry picked from commit 1a56620b7958cac2b9048589cb730c46958ab539)
The sample rate selection of snd_uaudio(4) at runtime was implicitly
relying on a specific order in the device config list. In case a default
was set through the hw.usb.uaudio.default_rate sysctl tunable, commit
42fdcd9fd917 removed a duplicate sample rate entry from that list, which
inadvertently broke sample rate selection at runtime. Implement sample
rate selection in a way that works for any order in the device config
list.

Reported by:	Lexi Winter <lexi@le-fay.org>
MFC after:	1 week
Reviewed by:	christos
Differential Revision:	https://reviews.freebsd.org/D44051

(cherry picked from commit a9341f0f0ae01b4d249dbf3bacfa420152c46aef)
Shared vs. exclusive locking is determined not by MNT_EXTENDED_SHARED
but by MNT_SHARED_WRITES (although there are several places that
ignore this and simply always use an exclusive lock).  Also add a
comment on the possible difference between VOP_GETWRITEMOUNT(vp)
and vp->v_mount on this path.

Found by local testing of unionfs atop ZFS with DEBUG_VFS_LOCKS.

Reviewed by:	kib, olce
Differential Revision: https://reviews.freebsd.org/D43816

(cherry picked from commit 9530182e371dee382b76d8594f65633a304b396f)
unionfs_mkshadowdir() may be invoked on a non-leaf pathname component
during lookup, in which case the NUL terminator of the pathname buffer
will be well beyond the end of the current component.  cn_namelen in
this case will still (correctly) indicate the length of only the
current component, but ZFS in particular does not currently respect
cn_namelen, leading to the creation on inacessible files with slashes
in their names.  Work around this behavior by temporarily NUL-
terminating the current pathname component for the call to VOP_MKDIR().

openzfs/zfs#15705 has been filed to track
a proper upstream fix for the issue at hand.

PR:		275871
Reported by:	Karlo Miličević <karlo98.m@gmail.com>
Tested by:	Karlo Miličević <karlo98.m@gmail.com>
Reviewed by:	kib, olce
Differential Revision: https://reviews.freebsd.org/D43818

(cherry picked from commit a2ddbe019d51b35f9da2cb5ddca8c69f0ee422da)
If the underlying upper FS supports shared locking for write ops,
as is the case with ZFS, VOP_FSYNC() may only be called with the vnode
lock held shared.  In this case, temporarily upgrade the lock for
those unionfs maintenance operations which require exclusive locking.

While here, make unionfs inherit the upper FS' support for shared
write locking.  Since the upper FS is the target of VOP_GETWRITEMOUNT()
this is what will dictate the locking behavior of any unionfs caller
that uses vn_start_write() + vn_lktype_write(), so unionfs must be
prepared for the caller to only hold a shared vnode lock in these
cases.

Found in local testing of unionfs atop ZFS with DEBUG_VFS_LOCKS.

Reviewed by:	kib, olce
Differential Revision: https://reviews.freebsd.org/D43817

(cherry picked from commit 2656fc29be8b0fc1cd9e64ed52aa0a61fe87744c)
Store the upper/lower FS mount objects in unionfs per-mount data and
use these instead of the v_mount field of the upper/lower root
vnodes.  As described in the referenced PR, it is unsafe to access this
field on the unionfs unmount path as ZFS rollback may have obliterated
the v_mount field of the upper or lower root vnode.  Use these stored
objects to slightly simplify other code that needs access to the
upper/lower mount objects as well.

PR:		275870
Reported by:	Karlo Miličević <karlo98.m@gmail.com>
Tested by:	Karlo Miličević <karlo98.m@gmail.com>
Reviewed by:	kib (prior version), olce
Differential Revision: https://reviews.freebsd.org/D43815

(cherry picked from commit cc3ec9f7597882d36ee487fd436d1b90bed0ebfd)
The UFS1 integrity checks added in FreeBSD 14 were too aggressive
for UFS1 filesystems created in FreeBSD 4 and 9 systems. This patch
removes those tests which can be done safely since they are not
relevant to the current implementation of UFS1.

This is a follow-on report to bug report 264450 (comments 21-28).

Reported by: slb@sonnet.com
Tested by:   slb@sonnet.com
PR:          264450

(cherry picked from commit b241767f8ef38f9ca7c109fe2fccd11ccbfaa4f0)
(cherry picked from commit 2496fb72cf37bb9aa0cbd108ded06324ea52bd11)
(cherry picked from commit 799940154c70597a46627deb4d0b98e174b27b98)
(cherry picked from commit 5db5c6c87a75f8b1871f021726fc4697253ae5cf)
In 2024, users are more likely to have working HTTP than working FTP.
Present http://ftp.FreeBSD.org as the first option in the installer.
Keep ftp://ftp.FreeBSD.org as the second option.

MFC after:	3 weeks

(cherry picked from commit 9c59988175ffd6b42c6927c0939e13abc43f7344)
Commit de6feef limited the amount of debuginfo generated for clang
and other llvm-related executables. This was done to save disk space and
memory during building, but it makes debugging any of these executables
much harder.

Add a new src.conf(5) setting, WITH_LLVM_FULL_DEBUGINFO, to generate
full debuginfo instead. This is off by default, but could for example be
enabled for release builds or snapshots, so llvm executables are easier
to debug.

Reviewed by:	emaste
MFC after:	1 week
Differential Revision: https://reviews.freebsd.org/D43839

(cherry picked from commit 73ff7384e025033abc98fd5437a48beb8077a90b)
  [PEI] Don't zero out noreg operands

  A tail call may have $noreg operands.

  Fixes a crash.

  Reviewed By: xgupta

  Differential Revision: https://reviews.llvm.org/D156485

This should fix an assertion failure building qemu, specifically those
parts using -fzero-call-used-regs.

Reported by:	Daniel Berrangé <dan-freebsd@berrange.com>
PR:		277474
MFC after:	3 days

(cherry picked from commit a39b3aa463f3474fabb3aedb5aecf943b54b4357)
Reviewed by:	melifaro
MFC after:	1 week
Sponsored by:	Rubicon Communications, LLC ("Netgate")
Differential Revision:	https://reviews.freebsd.org/D44088

(cherry picked from commit 48f33b55b0148c3c8991e53156f37c42b8bc22e9)
The paper "T-RACKs: A Faster Recovery Mechanism for
TCP in Data Center Networks" has nothing to do with
our TCP RACK implementation, so remove it.

Reported by:	tuexen

(cherry picked from commit 7701b993554321f305ef662a26238f375c4d2dba)
When booting a KMSAN kernel on an Ampere Altra, I've seen some boot time
hangs when the XHCI controller driver attempts to allocate memory for
32-bit DMA.  The system boots fine with a GENERIC kernel; I believe that
the additional memory requirements of KMSAN push it over the edge.  The
system has a bit less than 2GB of RAM below the 4GB boundary.

Allocate a new freelist to segregate memory below 4GB, as we do on
amd64, so that such memory allocation failures are less likely to occur.

Reviewed by:	alc
MFC after:	1 month
Sponsored by:	Klara, Inc.
Sponsored by:	Juniper Networks, Inc.
Differential Revision:	https://reviews.freebsd.org/D43503

(cherry picked from commit 48d5dab7bace6bae938672784ca3aa8733d72eb9)
Obtained from:	CheriBSD
Reviewed by:	jhb, kib, markj
MFC after:	2 weeks
Sponsored by:	CHaOS, EPSRC grant EP/V000292/1
Differential Revision:	https://reviews.freebsd.org/D43710

(cherry picked from commit f82e98237395693d1825243ff7b111aa321d383f)
Introduce the allocuio() and freeuio() functions to allocate and
deallocate struct uio. This hides the actual allocator interface, so it
is easier to modify the sub-allocation layout of struct uio and the
corresponding iovec array.

Obtained from:	CheriBSD
Reviewed by:	kib, markj
MFC after:	2 weeks
Sponsored by:	CHaOS, EPSRC grant EP/V000292/1
Differential Revision:	https://reviews.freebsd.org/D43711

(cherry picked from commit 61cc4830a7b16400efade3d884a59fda6d80d651)
Allows the development, testing and deployment of netmap(4)-based code
on arm64 without having to recompile the kernel.  netmap(4) is already
in the amd64 and powerpc64 default configs, so it does not seem
unreasonable to also provide it on arm64 by default.

Note that netmap(4) is useful even on systems without NIC that fully
support it.

Reviewed by:	vmaffione
MFC after:	1 month
Differential Revision:	https://reviews.freebsd.org/D43702

(cherry picked from commit df64d7c8c82d59958cb546b23ba240ab97dc5033)
In a follow-up revision the gdb stub will support sending an XML target
description to gdb, which lets us send additional registers, including
the ones added in this patch.

Reviewed by:	jhb
MFC after:	1 month
Sponsored by:	Innovate UK
Differential Revision:	https://reviews.freebsd.org/D43665

(cherry picked from commit f493ea650e6137ba657dfa0627da1e8bb4a985e9)
PR:	277414

(cherry picked from commit 7e4ac11b6076e6a9bf7341ddeae22784284ed733)
(cherry picked from commit 8db56defa766eacdbaf89a37f25b11a57fd9787a)
(cherry picked from commit 80ac36c3a2a87a19790eba487466bf70d55f566e)
bsdjhb and others added 24 commits April 8, 2024 10:53
This is very unlikely to fail (and if it does, CAM isn't going to work
regardless), but fail with an error rather than a gauranteed panic via
NULL pointer dereference.

PR:		276770
Reported by:	Qiushi <w290680224@gmail.com>

(cherry picked from commit eb86c6c5b462c996e44c45ba496937b75ef22da3)
acpi_set_resource excludes certain types of resources for certain
devices.  The intention of this is to avoid adding resource entries
for bogus resources enumerated via _CRS.  However, this also prevents
drivers from adding those resources explicitly if needed.  To fix
this, move the logic to exclude these resources into an ignore hook
used when parsing _CRS to create the initial set of resources for each
device.

Reviewed by:	imp
Differential Revision:	https://reviews.freebsd.org/D43892

(cherry picked from commit 055c1fe230ce5a2997c03a3cc2431baea1594566)
The rman description strings now match those used in the PCI-PCI
bridge driver.  Using more specific names removes ambiguity in devinfo -u
output on systems with multiple host to PCI bridges.

Reviewed by:	imp
Differential Revision:	https://reviews.freebsd.org/D43890

(cherry picked from commit 51f8ac224f3b87555ea17c7e7c4015a2a2b8b191)
These are already inherited from generic_pcie_core_driver.

Reviewed by:	imp
Differential Revision:	https://reviews.freebsd.org/D43888

(cherry picked from commit 93923685d35d95e76bd2c125c007e13354b9428c)
This fixes a panic if a driver uses bus_set_resource to add a resource
that fails to reserve and then deletes the resource via
bus_delete_resource.

Reviewed by:	imp
Differential Revision:	https://reviews.freebsd.org/D43891

(cherry picked from commit e05436d577de98944b97b9cf510b29c4d2091b3f)
The #ifdef DDB code in parse_metadata was dead code without opt_ddb.h.
While here, update the call to db_fetch_ksymtab for changes in commit
02bc014.

Reviewed by:	mhorne
Obtained from:	CheriBSD
Differential Revision:	https://reviews.freebsd.org/D43919

(cherry picked from commit 962b0bcbd924d308016237abc991280f15777e7f)
Using an explicit bus space tag and handle is deprecated.

Reviewed by:	emaste
Differential Revision:	https://reviews.freebsd.org/D43885

(cherry picked from commit 76c678688634e9e2ea5f6369fb979aabddbfe426)
When a packet matches an existing dynamic rule for a keep-state rule,
the matching engine advances the "instruction pointer" to the action
portion of the rule skipping over the match conditions.  However, the
code was merely breaking out of the switch statement rather than doing
a continue, so the remainder of the loop body after the switch was
still executed.  If the first action opcode contains an F_NOT but not
an F_OR (such as an "untag" action), then match is toggled to 0, and
the code exits the inner loop via a break which aborts processing of
the actions.

To fix, just use a continue instead of a break.

PR:		276732
Reviewed by:	jhb, ae
MFC after:	2 weeks

(cherry picked from commit 62b1faa3b7495de22a3225e42dabe6ce8c371e86)
Define SNL_DECLARE_FIELD_PARSER* macros to create a parser that has
no output attributes only input fields and use this to define the
snl_donemsg_parser.

This removes the need for the zero-length nla_p_donemsg[] variable.
Zero length arrays are not valid in ISO C.

Reviewed by:	jrtc27, melifaro
Differential Revision:	https://reviews.freebsd.org/D43918

(cherry picked from commit 69945c49fea7ac2352c1fd7d22f70f2e3861ba81)
Obtained from:	CheriBSD

(cherry picked from commit c6a6ec85a70314b8270e25a06e77e2e7c95c7055)
…strings

In particular, don't try to byteswap the values as 64-bit integers and
always print a non-empty version as a string.

Reviewed by:	chuck, imp
Sponsored by:	Chelsio Communications
Differential Revision:	https://reviews.freebsd.org/D44121

(cherry picked from commit 7485926e09a08fbfe83a9bc908e7d43aaca4c172)
Reported by:	Coverity Scan
CID:		1539214
Fixes:		7485926e09a0 nvme: Firmware revisions in the firmware slot info logpage are ASCII strings

(cherry picked from commit 1b38f851d809950cfe112c705029f40edd0579b3)
GitHub is emitting a warning that v3 is deprecated due to using
Node.js 16.

(cherry picked from commit e6dccf00500d7e9e2311b372e28897df7c0421dd)
These are bus addresses not CPU virtual addresses.

Reviewed by:	andrew
Sponsored by:	University of Cambridge, Google, Inc.
Differential Revision:	https://reviews.freebsd.org/D44343

(cherry picked from commit 66658b0f2775824b2a80fb56ca15e6ceae2f8240)
If a string is at or near the end of an input file and the amount of
remaining data in the file is smaller than the maximum string size,
the pread(2) system call would return a short read which is treated as
an error.  Instead, add a new helper function for reading a string
which permits short reads so long as the data read from the file
contains a terminated string.

Reported by:	jrtc27
Reviewed by:	jrtc27
Sponsored by:	University of Cambridge, Google, Inc.
Differential Revision:	https://reviews.freebsd.org/D44419

(cherry picked from commit 785600d0fb13d6f0b4595bf4dbbc048113dda71d)
Reviewed by:	np
Sponsored by:	Chelsio Communications
Differential Revision:	https://reviews.freebsd.org/D43999

(cherry picked from commit 25429e274371eba9a90ea27cbf73e88329916e0d)
Use a separate state for when a request to set RX_QUIESCE has been
sent but the resulting TCB reply has not been received.  In
particular, this correctly handles the case where data has been
received and queued in the receive queue before the quiesce request
takes effect.

Reviewed by:	np
Sponsored by:	Chelsio Communications
Differential Revision:	https://reviews.freebsd.org/D44435

(cherry picked from commit 9978c6289d621ac9edc95acb4e0f527a62a49b03)
Despite the name, linker_file_unload() will drop a reference and return
success when the module file has dependants, i.e. it has more than one
reference. When user request to unload such modules then the kernel
should reject unambiguously and immediately.

PR:		274986
Reviewed by:	dfr, dab, jhb
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D42527

(cherry picked from commit f43ff3e15c8b4b161ce09c8ab008abc4222db26b)
A nonzero `userrefs` of a linker file indicates that the file, either
loaded from kldload(2) or preloaded, can be unloaded via kldunload(2).
As for the kernel file, it can be unloaded by the loader but should not
be after initialization.

This change fixes regression from d9ce8a4 which incidentally
increases `userrefs` of the kernel file.

Reviewed by:	dfr, dab, jhb
Fixes:	d9ce8a4 kern_linker: Handle module-loading failures in preloaded .ko files
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D42530

(cherry picked from commit 39450eba8e6cd5b83def724481127b58ecc1fcc1)
* The empty test case no longer fails because 89f1dcb3eb46 causes empty
  files to bypass the bug.
* The bug still exists, so add a test case which exercises it.
* While here, tighten up some of the checks.

A similar patch has been submitted upstream.

PR:		274615
X-MFC-With:	89f1dcb3eb46
Sponsored by:	Juniper Networks, Inc.
Sponsored by:	Klara, Inc.
Reviewed by:	markj
Differential Revision:	https://reviews.freebsd.org/D44609

(cherry picked from commit 8311bc5f17dec348749f763b82dfe2737bc53cd7)
Replace incorrect constant 576 with IF_MINMTU to check for minumum MTU.
This unbreaks bridging tap interfaces with small mtu.

(cherry picked from commit 319a5d086b50f38618b62c78e83b12931f00b508)
fdisk and disklabel are legacy tools for legacy disk partitioning
schemes.

Reviewed by:	imp
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D43564

(cherry picked from commit 8669e516f0e6f48a5017db9e5f4768275f1deaa8)
And updated the version to 24.04.1
@ericbsd ericbsd requested a review from a team as a code owner April 16, 2024 23:54
@ericbsd ericbsd changed the title 24.04.1 system updated 24.04.1 system update Apr 16, 2024
@ericbsd ericbsd merged commit 2a31748 into stable/14 Apr 17, 2024
4 checks passed
@ericbsd ericbsd deleted the 24.04.1 branch April 17, 2024 10:08
@ericbsd ericbsd self-assigned this Apr 17, 2024
@ericbsd ericbsd added the feature New feature or request label May 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature or request
Projects
Archived in project