This is a display of mostly-automatically-classified git commits from 2026-04-20 to 2026-04-26.
DEBUG: This version of the report is primarily for checking the classifiers, and therefore contains extra information (in this colour).
Table of contents and commits per category:
| (2) | Highlighted commits (these are copies, not in stats) | |
| 10 | 3.8% | Userland programs |
| 18 | 6.8% | Documentation |
| 31 | 11.7% | Hardware support |
| 23 | 8.6% | Networking |
| 7 | 2.6% | System administration |
| 7 | 2.6% | Libraries |
| 2 | 0.8% | Filesystems |
| 78 | 29.3% | Kernel |
| 21 | 7.9% | Build system |
| 1 | 0.4% | Internal organizational stuff |
| 9 | 3.4% | Testing |
| 2 | 0.8% | Style, typos, and comments |
| 33 | 12.4% | Contrib code |
| 24 | 9.0% | Reverted commits |
| 0 | 0.0% | Unclassified commits |
| 266 | 100% | total |
| Technical notes about this page |
debug: info about the automatic classification
| num | % | num changed | stage |
|---|---|---|---|
| 25 | 9.4% | 0 | 00-reverts |
| 5 | 1.9% | 0 | 01-style |
| 27 | 10.2% | 0 | 02-filenames_wildcards |
| 10 | 3.8% | 0 | 02b-filenames_wildcards2 |
| 98 | 36.8% | 0 | 03-filenames_plain1 |
| 87 | 32.7% | 0 | 04-filenames_plain2 |
| 6 | 2.3% | 0 | 05-summary-prefix |
| 8 | 3.0% | 0 | Manually-classified commits |
| 0 | 0.0% | 0 | Unclassified commits |
debug: more stats
| num | % | stage |
|---|---|---|
| 0 | 0.0% | Misclassified commits |
| 258 | 97.0% | Classified commits, no corrections |
debug: groups
| 12 | 4.5% | num in revert |
| 5 | 1.9% | num in fixes |
| 65 | 24.4% | num in consecutive |
| 82 | 30.8% | Commits in groups |
For extra visibility, these are copies of commits found in
other sections. Most (if not all) come from the commit message
containing "Relnotes:", or commits modifying
UPDATING.
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvm-project release/21.x llvmorg-21.1.8-0-g2078da43e25a, a.k.a. 21.1.8 release. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in
05-summary-prefix by 'Merge '
PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in
04-filenames_plain2 by 'sys/'
Commits about commands found in man section 1 (other than networking).
Reviewed by: imp Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D55461
debug: classified in
04-filenames_plain2 by
'usr.bin/'
Format the message. Convert category to the source name if known. Still print the raw value for the category, and the values of the EXTERROR() optional arguments. Requested and reviewed by: mckusick Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D56542
debug: classified in
04-filenames_plain2 by
'usr.bin/'
so=\E[3m (italic) is incorrect, should be so=\E[7m (reverse video). se=\E[23m (italic off) is incorrect, should be se=\E[27m (reverse off). mr=\E[7m (reverse video) is correctly defined in the same entry. screen-256color inherits from screen via tc=screen and is fixed transitively. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294499 Pull Request: https://github.com/freebsd/freebsd-src/pull/2139 MFC after: 1 week Signed-off-by: Dan Mahoney <freebsd@gushi.org>
debug: Commit manually moved from "unknown" to "userland".
This makes it consistent with libc formatting. Requested by: mckusick Sponsored by: The FreeBSD Foundation MFC after: 1 week
debug: classified in
04-filenames_plain2 by
'usr.bin/'
ident: Clean up * Use libcasper instead of reinventing it. * Add long option support. * Drop pointless use of temporary locales. * Consistently check for stdio errors. * Clean up the code. * Clean up and expand the tests. MFC after: 1 week Reviewed by: ngie Differential Revision: https://reviews.freebsd.org/D56505
debug: classified in
04-filenames_plain2 by
'usr.bin/'
ident: Fix typo in manual page Fixes: https://cgit.freebsd.org/src/commit/?id=394f6b1b0a65 ("ident: Clean up")
debug: classified in 01-style
by '[tT]ypo'
debug: moved to userland
because 'Need to be grouped with
394f6b1b0a658755a9420906fb7a459c3d9501a5'
* Error out if more than one argument is given. * Check for stdio errors. * Clean up the code. * Clean up and expand the tests. MFC after: 1 week Reviewed by: ngie Differential Revision: https://reviews.freebsd.org/D56506
debug: classified in
04-filenames_plain2 by
'usr.bin/'
Set the -f flag to sh(1) to disable pathname expansion. Also, quote the jail variable to ensure correct behavior when passed to jexec(8). Signed-off-by: Nami Arjmandi <namiarjmandi@gmail.com> Reviewed by: pouria Pull-Request: https://github.com/freebsd/freebsd-src/pull/2158
debug: classified in
03-filenames_plain1 by 'bin/'
Things like `{ some_program; } >/dev/null` use vfork, so use vfork
similarly for things like `some_program >/dev/null`.
This cannot be done for command substitutions, because of two problems:
* Redirections might cause the error message for later redirections or
for an unknown command to be sent to the pipe (to be substituted), and
this might cause a deadlock if the message is too long.
* The assignment of the pipe needs to come before instead of after the
redirections.
Reviewed by: bdrewery
Differential Revision: https://reviews.freebsd.org/D55190
debug: classified in
03-filenames_plain1 by 'bin/'
Pseudo filesystems (e.g., procfs) advertise a zero file size. Fix reverse() to handle such a case similarly as forward() so that '-r' works on pseudo filesystems. Signed-off-by: Aaron LI <aly@aaronly.me> Reviewed by: pouria, Ricardo Branco <rbranco@suse.de>, des Fixes: https://cgit.freebsd.org/src/commit/?id=1fb3caee7 ("tail: Do not trust st_size if it equals zero.") Pull-Request: https://github.com/freebsd/freebsd-src/pull/2080
debug: classified in
04-filenames_plain2 by
'usr.bin/'
Man pages, release notes, etc.
`pfctl -A`, `-N`, `-O`, and `-R` restrict which rule types and options
are loaded. The man page language ("Load only...") does not make it
clear that these options can be combined to (re)load multiple rule types
and/or options without reloading the entire packet filter.
Add language to make it explicitly clear that these flags combine.
Reviewed by: kp
Signed-off-by: Ross Williams <ross@ross-williams.net>
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
Reviewed by: markj, Ricardo Branco <rbranco@suse.com> Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D56507
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
The gpart manual says that sizes are specified in blocks, unless an SI unit suffix is provided. This confuses new operators because GEOM uses binary bytes, a large difference at modern storage pool sizes. Rewrite suffixes in all GEOM manuals to consistently clarify this, matching what we and the rest of the industry have been doing in other documentation. While here, use non-breaking spaces between numbers and units, unless they are already written with a hyphen. MFC after: 3 days Reviewed by: fuz Reported by: bbaovanc <bbaovanc@bbaovanc.com> Differential Revision: https://reviews.freebsd.org/D56534
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
Some targets override the default value of DISTRIBUTIONS. Document that in the manual page. Reported by: Nia Alarie <nia@NetBSD.org> Reviewed by: jlduran MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D56528
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
Last time I generated this, there were many copies of WITH_CASPER for reasons unknown. Sponsored by: Netflix
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
Previous authors appear to have prioritized brevity over clarity. This unfortunately resulted in a manual page that left its reader with the false impression that Kyua is difficult to use. Attempt to correct this by providing more and simpler examples with longer explanations. While here, correct outdated information about where Kyua stores its logs and results. MFC after: 1 week Reviewed by: ziaee, ngie Differential Revision: https://reviews.freebsd.org/D56475
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
Sponsored by: The FreeBSD Foundation Reviewed by: bapt, philip Approved by: philip (mentor)
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
build.7: Improve make delete-old example Be more explicit that deleting old files and libraries needs to be really after you're rebooted a third time and you're really actually sure your applications aren't using old libs, following irc discussion. Also adjust an example slightly to fit on 80 character console. MFC after: 3 days Discussed with: emaste, fuz, jhb Differential Revision: https://reviews.freebsd.org/D54079
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
build.7: Explain packaging a custom kernel MFC after: 3 days (to 15 only) Requested by: vermaden Discussed with: emaste, ivy, Mark Millard <markmi_dsl-only.net> Differential Revision: https://reviews.freebsd.org/D56217
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
build.7: Explain specifying multiple KERNCONFs MFC after: 3 days Reviewed by: ivy, mhorne Differential Revision: https://reviews.freebsd.org/D56281
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
MFC after: 3 days (to 15) Discussed with: bapt, emaste, ivy Differential Revision: https://reviews.freebsd.org/D56389
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D56463
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
- Add `.Nm` section for securelevel(7) to match corresponding MLINKS entry. - Fix the spelling for mac(4) (the actual subsystem manpage is spelled out in lowercase. MFC after: 1 week
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
- Rename `.Nm .rhosts` to `.Nm rhosts` to match the MLINK for the manpage. - Use `.Pa` instead of `.Nm` when discussing the paths for `.rhosts` and `hosts.equiv.5` for explicitness and clarity. Bump .Dd for the change. MFC after: 1 week
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294757 Reported by: Ulrich Eduard MFC after: 1 week
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
Describe how the LoaderEnv and NextLoaderEnv variables can be used. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293054 Reviewed by: imp Sponsored by: Wiesbaden Hackathon 202604 Differential Revision: https://reviews.freebsd.org/D56633
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
Noted by: mckusick
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
Hardware drivers and architecture-specific code.
If soreserve() or sosetopt() (to set TCP_NODELAY) fails after claiming the socket from the file descriptor, explicitly close the socket before returning failure. Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D55493
debug: classified in
03-filenames_plain1 by
'sys/dev/'
AMD64 Architecture Programmer's Manual Volume 3 says the following: > ECX[15:0] contains a count of the number of sequential pages to > invalidate in addition to the original virtual address, starting from > the virtual address specified in rAX. A count of 0 invalidates a > single page. ECX[31]=0 indicates to increment the virtual address at > the 4K boundary. ECX[31]=1 indicates to increment the virtual address > at the 2M boundary. The maximum count supported is reported in > CPUID function 8000_0008h, EDX[15:0]. ECX[31] being what we call INVLPGB_2M_CNT, signaling to increment the VA by 2M. > This instruction invalidates the TLB entry or entries, regardless of > the page size (4 Kbytes, 2 Mbytes, 4 Mbytes, or 1 Gbyte). [...] Combined with this, my interpretation of the current code is: if <va> is aligned on a PDE boundary, we'll use INVLPGB_2M_CNT to try and invalidate <cnt> PDEs with a single call, but that only works if <va> is the start of at least <cnt> 2M pages. Otherwise, if <va> or any of the subsequent PDEs isn't actually a superpage, then we would actually only invalidate the *first* page within the PDE before skipping to the next PDE, leaving the remainder of the 4K pages in between as they were. The implication would seem to be that we would need to inspect the range that we're trying to invalidate if we're planning on using INVLPGB_2M_CNT at all, so this patch just simplifies it to a series of 4K invalidations. My gut feeling is that we likely still come out on top vs. the TLB shootdown we're avoiding. This seems to explain some issues we've seen lately with fdgrowtable() and kqueue on recent Zen4/Zen5 EPYC hardware, where we'd experience corruption that we can't explain. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293382 Reviewed by: alc, kib, markj Differential Revision: https://reviews.freebsd.org/D56458
debug: classified in
03-filenames_plain1 by
'sys/amd64/'
In addition to the locally generated statistics counters, dpaa2 ni provides a larger set of counters than we currently export via sysctl. Add (most of) the missing counters and descriptions. Around Page 3/4 there are some things left to do if we want. Also the manual was not clear on the descriptions of 3/0 and 3/1. The second half of the change adds another sysctl note which exports the link-state, speed, and capabilities set as a text-blob. This is especially interesting in case the "ni" stops passing packets. From what I have found in that case the (internal) link state of the ni goes DOWN but we do not see an interrupt for a link-state change. Being able to diagnose the state helps to (manually) fix it for now by changing the media status to 10BaseT or none and then back to auto. That usually brings the internal link state back UP. MFC after: 3 days PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=279352 Reviewed by: dsl, tuexen Differential Revision: https://reviews.freebsd.org/D55321
debug: classified in
03-filenames_plain1 by
'sys/dev/'
This change enables process-wide sampling to work with IBS by ensuring that read/write only gets or sets the current counter. Reviewed by: mhorne Sponsored by: Netflix Pull Request: https://github.com/freebsd/freebsd-src/pull/2131
debug: classified in
03-filenames_plain1 by
'sys/dev/'
Add device IDs for several USB Ethernet adapters that use RTL8152 and RTL8153 chips but are not yet recognized by ure(4). This includes adapters from Cisco/Linksys, D-Link, Lenovo, Microsoft Surface, Realtek, Samsung, and TP-Link. All added devices use chip revisions already handled by ure_read_chipver(). Signed-off-by: Christos Longros <chris.longros@gmail.com> Reviewed by: adrian Differential Revision: https://reviews.freebsd.org/D55748
debug: classified in
03-filenames_plain1 by
'sys/dev/'
FreeBSD and NetBSD has copied these lines from the x86 architecture when porting to other machines and forgetting to delete them. Reviewed by: mhorne Sponsored by: Netflix Pull Request: https://github.com/freebsd/freebsd-src/pull/2154
debug: classified in
03-filenames_plain1 by
'sys/powerpc/'
Regenerate linux syscall prototypes for membarrier(2). Signed-off-by: Ricardo Branco <rbranco@suse.de> PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=281691 Reviewed by: kib, pouria Pull-Request: https://github.com/freebsd/freebsd-src/pull/2147
debug: classified in
03-filenames_plain1 by '['sys/amd64/',
'sys/arm64/', 'sys/i386/']'
Many applications, desktop environments, window managers & text editors favor the usage of Alt or Ctrl over Super (Cmd). On a Macbook it is quite annoying that the Super (Cmd) key gets pride of place by the spacebar. The standard MacBook Cmd key location only really makes sense for macOS or maybe in some tiling wm if Mod4/Super is your main modifier. For most mainstream desktops and window managers, having Alt or Ctrl in that location makes much much more sense. This patch adds two sysctls for swapping either Opt(Alt) or Ctrl with Cmd(Super). Linux has similar sysctls to this; allowing a user to make an Apple keyboard more "orthodox"/useful at a level that takes effect independent of typing context - ie) tty, Xorg and/or wayland. Having a sysctl to do these swaps means that a user doesn't have to faff about with both creating a custom vt keymap AND figure out which magic setxkbmap incantation one needs to make one's keyboard behave as desired across environments. Signed-off-by: ~Not Toby <0x2b@0xff.art> Reviewed by: wulf MFC after: 1 week Pull Request: https://github.com/freebsd/freebsd-src/pull/2141
debug: classified in
03-filenames_plain1 by
'sys/dev/'
It is allocated with M_WAITOK in ac97_create(). Sponsored by: The FreeBSD Foundation MFC after: 1 week Pull Request: https://ron-dev.freebsd.org/FreeBSD/src/pulls/17
debug: classified in
03-filenames_plain1 by
'sys/dev/'
pmap_init always uses 16-bit VMIDs when supported, but we never enable them in VTCR_EL2 (for ASIDs, locore enables them in TCR_EL1 and pmap_init keys off whether they've been enabled, but the order in which pmap_init and vmmops_modinit run is reversed). As a result, although the full 16-bit value can be stored to VTTBR_EL2 and read back, the upper 8 bits are treated as 0, and so VMIDs that our VMID allocation believes are distinct end up aliasing. In future this interface may change such that vmm decides on the VMID width and tells the pmap to use that, with appropriate support for unloading and reloading vmm, but that can come as a follow-up change, as this is a more minimal bug fix. Reviewed by: markj Obtained from: CheriBSD Fixes: https://cgit.freebsd.org/src/commit/?id=47e073941f4e ("Import the kernel parts of bhyve/arm64") MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D55860
debug: classified in
03-filenames_plain1 by
'sys/arm64/'
This was encountered on a Gigabyte GA-P55A-UD4 motherboard identifying itself
as:
ahci0@pci0:2:0:0: class=0x01018f rev=0x11 hdr=0x00 vendor=0x1b4b device=0x91a3 subvendor=0x1458 subdevice=0xb000
vendor = 'Marvell Technology Group Ltd.'
class = mass storage
subclass = ATA
The physical chip has "88SE9128-NAA2" printed on it.
Similar code has been in Linux for a long time:
https://github.com/torvalds/linux/commit/50be5e3657cd2851a297dc0b3fd459f25829d29b
Co-authored-by: Michael Osipov <michaelo@FreeBSD.org>
PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=288526
Reviewed by: jhb
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D56464
debug: classified in
03-filenames_plain1 by
'sys/dev/'
No functional change, but this is friendlier for CHERI. Effort: CHERI upstreaming Reviewed by: kib Sponsored by: AFRL, DARPA Pull Request: https://github.com/freebsd/freebsd-src/pull/2068
debug: classified in
03-filenames_plain1 by
'sys/riscv/'
Effort: CHERI upstreaming Reviewed by: kib Sponsored by: AFRL, DARPA Pull Request: https://github.com/freebsd/freebsd-src/pull/2068
debug: classified in
03-filenames_plain1 by '['sys/amd64/',
'sys/arm64/', 'sys/dev/', 'sys/riscv/']'
Effort: CHERI upstreaming Reviewed by: kib Sponsored by: AFRL, DARPA Pull Request: https://github.com/freebsd/freebsd-src/pull/2068
debug: classified in
03-filenames_plain1 by
'sys/dev/'
Consistently use vm_paddr_t for the type returned from moea64_bootstrap_alloc and avoid temporarily smuggling it via a pointer. Instead, be explicit in the places that assume a 1:1 mapping. Effort: CHERI upstreaming Reviewed by: kib Sponsored by: AFRL, DARPA Pull Request: https://github.com/freebsd/freebsd-src/pull/2068
debug: classified in
03-filenames_plain1 by
'sys/powerpc/'
Effort: CHERI upstreaming Reviewed by: kib Sponsored by: AFRL, DARPA Pull Request: https://github.com/freebsd/freebsd-src/pull/2068
debug: classified in
03-filenames_plain1 by '['sys/amd64/',
'sys/arm64/']'
This should fix dhcp on an unitialized interface. This solution was found while comparing against another driver, SIOCSIFFLAGS is used by dhclient to force the interface up before it has an IP address. However, all setup work is done in llan_init(), so the interface would not be enabled if configured via only the SIOCSIFFLAGS ioctl. By running llan_init() when the interface is forced up via SIOCSIFFLAGS, the interface is initialized properly. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292164
debug: classified in
03-filenames_plain1 by
'sys/powerpc/'
Ensure that the optional MSRs and the user flags are guarded by the cpuid feature flags. This prevents the user from triggering undefined behavior or crashes on AMD processors where some of these features are not present. As part of this, I added the branch target and DATA4 MSRs to the IBS op state as those are only present on a subset of the Zen chips that I have tested. Reviewed by: mhorne Sponsored by: Netflix Pull Request: https://github.com/freebsd/freebsd-src/pull/2133
debug: classified in
03-filenames_plain1 by '['lib/libpmc/',
'sys/dev/']'
Remove the perfmon performance monitoring facility that was for Intel Pentium and Pentium Pro processors. Reviewed by: imp,mhorne,emaste Pull Request: https://github.com/freebsd/freebsd-src/pull/2155
debug: Commit manually moved from "unknown" to "hardware".
The comments in tone() were referring to pre-2000 logic that does not exist any more. This patch updates them. Signed-off-by: Raphael Poss <knz@thaumogen.net> Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/1922
debug: classified in
03-filenames_plain1 by
'sys/dev/'
When the frequency configuration logic was moved to clock.c in 2008, a mutex lock was added there (timer_spkr_setfreq) to serialize accesses to the I/O register. Since then, no more calls to disable/enable_intr were needed in spkr.c than they were needed in the other callers to the same timer_spkr functions in syscons / kern_cons, that is, not at all. This is because there are no other accesses remaining in the kernel to the i8254 timers after boot than through clock.c. For context, see commits e46598588587b4897f6604489364f83fffd4d033 and 93f5134aaf829826dbcbea457bfeb27389761854. Signed-off-by: Raphael Poss <knz@thaumogen.net> Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/1922
debug: classified in
03-filenames_plain1 by
'sys/dev/'
Signed-off-by: Raphael Poss <knz@thaumogen.net> Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/1922
debug: classified in
03-filenames_plain1 by
'sys/dev/'
If two processes are holding a spkr fd, we want orderly access to the allocated tone buffer and the speaker itself. Signed-off-by: Raphael Poss <knz@thaumogen.net> Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/1922
debug: classified in
03-filenames_plain1 by
'sys/dev/'
Prior to this patch, a thread would get EBUSY on open(2) if another thread had the speaker open. With this patch, two or more threads/processes can use the speaker device at the same time. When two or more threads write to the speaker concurrently, individual melodies--single strings, as written by write(2) or ioctl(2) with command SPKRTONE/SPKRTUNE--are played atomically. Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/1922
debug: classified in
03-filenames_plain1 by
'sys/dev/'
Make this data const (it doesn't change) which will also move it to a text section. Signed-off-by: Raphael Poss <knz@thaumogen.net> Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/1922
debug: classified in
03-filenames_plain1 by
'sys/dev/'
The ena_[rt]x_cleanup functions are limited internally to a maximum number of packets; this ensures that TX doesn't starve RX (or vice versa) and also attempts to ensure that we get a chance to refill the RX buffer ring before the device runs out of buffers and starts dropping packets. Historically these functions have returned the number of packets which they processed which ena_cleanup compares to their respective budgets to decide whether to reinvoke them. This is unnecessary complication; since the precise number of packets processed is never used, adjust the APIs of those functions to return a bool indicating if they want to be reinvoked (aka if they hit their limits). Since ena_tx_cleanup now only uses work_done if diagnostics are enabled (ena_log_io macros to nothing otherwise) eliminate that variable and pass its value (ENA_TX_BUDGET - budget) to ena_log_io directly. No functional change intended; this will simplify a future commit. Reviewed by: akiyano Sponsored by: Amazon MFC after: 6 days Differential Revision: https://reviews.freebsd.org/D56478
debug: classified in
03-filenames_plain1 by
'sys/dev/'
We had ENA_RX_BUDGET = 256 in order to allow up to 256 received packets to be processed before we do other cleanups (handling tx packets and, critically, refilling the rx buffer ring). Since the ring holds 1024 buffers by default, this was fine for normal packets: We refill the ring when it falls below 7/8 full, and even with a large burst of incoming packets allowing it to fall by another 1/4 before we consider refilling the ring still leaves it at 7/8 - 1/4 = 5/8 full. With jumbos, the story is different: A 9k jumbo (as is used by default within the EC2 network) consumes 3 descriptors, so a single rx cleanup pass can consume 3/4 of the default-sized rx ring; if the rx buffer ring wasn't completely full before a packet burst arrives, this puts us perilously close to running out of rx buffers. This precise failure mode has been observed on some EC2 instance types within a Cluster Placement Group, resulting in the nominal 10 Gbps single-flow throughput between instances dropping to ~100 Mbps as a result of repeated rx overruns causing packet loss and ultimately retransmission timeouts. To correct this, switch from processing up to ENA_RX_BUDGET (256) packets to processing up to ENA_RX_DESC_BUDGET (256) descriptors (or slightly more, if we hit the limit in the middle of a packet). This ensures that, even with jumbos, we refill the ring before processing most of a ring worth of descriptors, and returns the throughput to expected levels. Note that theoretically up to ENA_PKT_MAX_BUFS (19) descriptors can be used for a single packet, in which case even 54 packets would exhaust the default rx buffer ring; it's not clear if this ever occurs in practice, but this fix will address that case as well. Reviewed by: akiyano Sponsored by: Amazon MFC after: 6 days Differential Revision: https://reviews.freebsd.org/D56479
debug: classified in
03-filenames_plain1 by
'sys/dev/'
Even though the functions are currently executed in the correct order, there's no garuntee that this will always be the case. Reported by: kevans Discussed with: kevans Fixes: https://cgit.freebsd.org/src/commit/?id=4b862c713ac5556ab4bd1828b47c5eb9cb28e067 MFC after: 3 days
debug: classified in
03-filenames_plain1 by
'sys/dev/'
These are NULL if they're not implemented. Make sure all the functions we need are there before doing anything. Also invert the first if statment to lessen the indentation a bit. Reported by: Quentin Thébault <quentin.thebault@defenso.fr> MFC after: 3 days
debug: classified in
03-filenames_plain1 by
'sys/dev/'
Removes the deprecated loader tunable fixup_needs_csum. Removes also the sysctl counter rx_csum_bad_offset that is no longer in use. Reviewed by: tuexen Event: Wiesbaden Hackathon 2026 Differential Revision: https://reviews.freebsd.org/D55588
debug: classified in
03-filenames_plain1 by '['sys/arm/',
'sys/dev/']'
This fixes the case where selected_size is never set to anything
in the loop. Whilst here, also set selected_fw to NULL so the case
of "no firmware" correctly sets everything to NULL/0.
```
--- ucode_subr.o ---
/workspace/src/sys/x86/x86/ucode_subr.c: In function 'ucode_amd_find':
/workspace/src/sys/x86/x86/ucode_subr.c:237:25: warning: 'selected_size' may be used uninitialized [-Wmaybe-uninitialized]
237 | *selected_sizep = selected_size;
| ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/ workspace/src/sys/x86/x86/ucode_subr.c:105:16: note: 'selected_size' was declared here
105 | size_t selected_size;
| ^~~~~~~~~~~~~
```
Reviewed by: emaste
Differential Revision: https://reviews.freebsd.org/D55439
debug: classified in
03-filenames_plain1 by
'sys/x86/'
Network-related commands, library, and kernel.
If we take an early goto out_unlocked inp is uninitialized and then may be used in SCTP_LTRACE_ERR_RET(). Initialize inp to NULL to avoid warnings. Found with: gcc15 tinderbox build MFC after: 3 days Reviewed by: tuexen, pouria Differential Revision: https://reviews.freebsd.org/D56503
debug: classified in
03-filenames_plain1 by
'sys/netinet/'
pf assumes that interface names are unique (and share a namespace with
interface group names).
Unfortunately the FreeBSD network stack has a few edge cases where this
assumption can be violated. Try to be more robust against this: rather
than changing the association between a kif and ifp just ignore the next
interface with the same name.
Sponsored by: Rubicon Communications, LLC ("Netgate")
debug: classified in
03-filenames_plain1 by
'sys/netpfil/'
pf_udp_mapping_insert() may lock more than one row at a time. Fixes: https://cgit.freebsd.org/src/commit/?id=cd5ff4e841fb ("pf: use hashalloc(9) for key, id, src-node and udp-endpoint hashes") Reviewed by: kp Differential Revision: https://reviews.freebsd.org/D56501
debug: classified in
03-filenames_plain1 by
'sys/netpfil/'
Signed-off-by: Peter Ganzhorn <peter.ganzhorn@gmail.com> Reviewed by: zlei Fixes: https://cgit.freebsd.org/src/commit/?id=6d49b41ee84b iflib: Add pfil hooks MFC after: 3 days Pull Request: https://github.com/freebsd/freebsd-src/pull/2150
debug: classified in
03-filenames_plain1 by
'sys/net/'
This ensures that child processes are reaped in the outer loop in main(). PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294035 Reviewed by: asomers Fixes: https://cgit.freebsd.org/src/commit/?id=66b107e82b2f ("ctld: Use kevent(2) for socket events rather than select(2)") Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D56525
debug: classified in
03-filenames_plain1 by
'usr.sbin/ctld/'
PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293076 Reported by: Ken J. Thomson <thomsonk@yandex.com> Reviewed by: asomers Fixes: https://cgit.freebsd.org/src/commit/?id=969876fcee57 ("ctld: parse config file independently of getting kernel info") Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D55767
debug: classified in
03-filenames_plain1 by
'usr.sbin/ctld/'
This results in slightly less duplicated code. Reviewed by: asomers Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D56526
debug: classified in
03-filenames_plain1 by
'usr.sbin/ctld/'
With securelevel set (for pf that means >= 3) we're expected to reject
rule changes. However, we allowed interface flags to be changed, which
would allow 'set skip on X' to be changed.
Remove DIOCSETIFFLAG and DIOCCLRIFFLAG from the securelevel whitelist.
MFC after: 1 week
Reported by: cyberkittens
Sponsored by: Rubicon Communications, LLC ("Netgate")
debug: classified in
03-filenames_plain1 by
'sys/netpfil/'
pf: only allow a subset of netlink calls when securelevel is set
Extend the genl_cmd struct to allow calls to also carry a securelevel.
If that's set compare the current securelevel to only allow the call if
the level is lower than that.
If no value is specified continue to allow calls in any securelevel,
as before.
This allows us to easily implement the same securelevel restrictions for
pf as we have for the corresponding ioctls.
Reviewed by: glebius
MFC after: 1 week
Sponsored by: Rubicon Communications, LLC ("Netgate")
Differential Revision: https://reviews.freebsd.org/D56390
debug: classified in
03-filenames_plain1 by '['sys/netlink/',
'sys/netpfil/']'
netlink: fix LINT-NOVIMAGE build Include the required header for securelevel_ge() Fixes: https://cgit.freebsd.org/src/commit/?id=9933bdcb1264 ("pf: only allow a subset of netlink calls when securelevel is set") Sponsored by: Rubicon Communications, LLC ("Netgate")
debug: classified in
03-filenames_plain1 by
'sys/netlink/'
Once we hand an mbuf over to netisr_queue() we may no longer access it. Save the length before the call so we can use it to increment counters afterwards. Fixes: https://cgit.freebsd.org/src/commit/?id=956acdce0505 ("loopback: Account for packet drops") Sponsored by: Rubicon Communications, LLC ("Netgate")
debug: classified in
03-filenames_plain1 by
'sys/net/'
We are searching through the hash that has only wildcard bindings. This was missed by fdb987bebddf05e15a5af840379c7715a94aec1c. Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D56488
debug: classified in
03-filenames_plain1 by '['sys/netinet/',
'sys/netinet6/']'
After commit 9b76228006d8, tcp_hptsi() dereferences inp_socket in order to get the inpcb's VNET. This means that mock inpcbs created by the HPTS test fixture must set inp_socket. Also set the current VNET there; previously, it was NULL, and this was not noticed since VNET_DEBUG is disabled even in debug kernels. Fixes: https://cgit.freebsd.org/src/commit/?id=9b76228006d8 ("inpcb: retire inp_vnet")
debug: classified in
03-filenames_plain1 by
'sys/netinet/'
We should look at the table name for automatic tables as well. These
are different tables, so the rules using them are (or can be) different
as well.
MFC after: 3 days
Reported by: Michael Sinatra <michael@burnttofu.net>
Sponsored by: Rubicon Communications, LLC ("Netgate")
debug: classified in
03-filenames_plain1 by
'sys/netpfil/'
PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293076 Reviewed by: asomers Fixes: https://cgit.freebsd.org/src/commit/?id=969876fcee57 ("ctld: parse config file independently of getting kernel info") Differential Revision: https://reviews.freebsd.org/D56523
debug: classified in
03-filenames_plain1 by
'usr.sbin/ctld/'
The default implementation of is_dummy should return false. Only portal group ports should possibly return true. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293076 Reported by: Ken J. Thomson <thomsonk@yandex.com> Fixes: https://cgit.freebsd.org/src/commit/?id=6acc7afa34aa ("ctld: Convert struct port to a hierarchy of C++ classes") Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D56524
debug: classified in
03-filenames_plain1 by
'usr.sbin/ctld/'
This ensures it will be destroyed (removing the associated pidfile) anytime the process exits, including from exit(3) calls. This fixes a few places that would "leak" the pidfile on certain errors. This also removes the need for some convoluted logic where configuration objects would hand-off ownership of the pidfile handle from the old configuration to the new configuration. Reviewed by: asomers Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D56527
debug: classified in
03-filenames_plain1 by
'usr.sbin/ctld/'
pf_route() and pf_route6() forward broadcast and multicast traffic
when a route-to rule matches, without any check against the output
interface's broadcast domain. This is a deliberate property of the
route option code path, but it is not documented and the workaround
is non-obvious.
Document the behavior in pf.conf(5) with example block-out rules on
the target interface, scoped with the received-on qualifier so that
only forwarded traffic is dropped while the router's own broadcast
and multicast traffic continues to pass.
Add regression tests covering the full broadcast/multicast and
forwarded/local matrix on both IPv4 and IPv6.
Reviewed by: glebius, kp
Approved by: kp (mentor)
MFC after: 1 week
Sponsored by: Rubicon Communications, LLC ("Netgate")
Differential Revision: https://reviews.freebsd.org/D56559
debug: classified in
05-summary-prefix by 'pf:'
Case-insensitive TargetName matching on logins was accidentally removed, let's fix that by normalizing TargetName again according to RFC 3722. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294522 Fixes: https://cgit.freebsd.org/src/commit/?id=4b1aac931465f39c5c26bfa1d5539a428d340f20 Sponsored by: ConnectWise MFC after: 1 week Reviewed by: asomers, jhb Approved by: asomers (mentor) Differential Revision: https://reviews.freebsd.org/D56469
debug: classified in
03-filenames_plain1 by
'usr.sbin/ctld/'
Reported by: KMSAN MFC after: 1 week
debug: classified in
03-filenames_plain1 by
'sys/netinet/'
Make it more obvious that this field is not used. No functional change. Event: Wiesbaden Hackathon 202604
debug: classified in
03-filenames_plain1 by
'sys/net/'
The rationality is that the driver private data holds a strong reference to the interface, and the detach operation shall never fail. Given the vmove operation, if_vmove_loan(), if_vmove_reclaim() or vnet_if_return() is not atomic and spans multiple steps, acquire ifnet_detach_sxlock only for if_detach_internal() and if_vmove() is not sufficient. It is possible that the thread running if_detach() sees stale vnet, or the vmoving is in progress, then if_unlink_ifnet() will fail. Fix that by extending coverage of ifnet_detach_sxlock a bit to also cover if_unlink_ifnet(), so that the entire detach and vmove operation is serialized. Given it is an error when the if_unlink_ifnet() fails, and if_detach() is a public KPI, prefer panic() over assertion on failure, to indicate explicitly that bad thing happens. That shall also prevent potential corrupted status of the interface, which is a bit hard to diagnose. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292993 Reviewed by: glebius MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D56374
debug: classified in
03-filenames_plain1 by
'sys/net/'
Add SIOCGIFCAP ioctl-command for tun/tap character device to be used by bhyve for offloading in the future. Add SIOCSIFCAP for symmetry. Reviewed by: markj, pouria, tuexen MFC after: 1 week Event: Wiesbaden Hackathon 2026 Differential Revision: https://reviews.freebsd.org/D51289
debug: classified in
03-filenames_plain1 by
'sys/net/'
Stuff in man section 8 (other than networking).
The `pfctl -S` flag was added to disable DNS resolution in <https://reviews.freebsd.org/D50724> but documentation and error messages refer to a `pfctl -N` flag for the same purpose. The `pfctl -N` flag performs an unrelated function, so the docs and error messages need to be changed. Caught this when revising documentation for the `-N` flag. Reviewed by: kp Signed-off-by: Ross Williams <ross@ross-williams.net>
debug: classified in
03-filenames_plain1 by 'sbin/'
After we found some preloaded z_initfirst object, we must process till the end of the preload list still, not stopping on the first found object. Reported by: des Reviewed by: des, markj, siderop1@netapp.com Fixes: https://cgit.freebsd.org/src/commit/?id=78aaab9f1cf359f3b7325e4369653f6b50593393 Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D56466
debug: classified in
03-filenames_plain1 by
'libexec/'
Initialize nla_geneve_link structure to zero to prevent segfault when a TLV is not received by the netlink parser. Reported by: Seth Hoffert <seth.hoffert@gmail.com> Fixes: https://cgit.freebsd.org/src/commit/?id=688e289ee904 ("ifconfig: Add support for geneve (netlink)")
debug: classified in
03-filenames_plain1 by 'sbin/'
Also treate ':' at the start of a line as for '#' ie. a comment.
debug: classified in
03-filenames_plain1 by
'libexec/'
Treat '#' as a comment anywhere, but ':' only at start of line.
debug: classified in
03-filenames_plain1 by
'libexec/'
rather than with read() to alleviate concerns about partial reads.
debug: classified in
04-filenames_plain2 by
'usr.sbin/'
Use "read -r" to set the root password in "bsdinstall rootpass" to prevent issues with passwords containing one or more backslash characters. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294781 Discussed with: tuexen, crest Approved by: khorben MFC after: 3 days Event: Wiesbaden Hackathon 202604
debug: classified in
04-filenames_plain2 by
'usr.sbin/'
vm_vcpu_open() really should check the value returned from malloc() and return NULL on failure. Also, all users of vm_vcpu_open() need to check the returned value for NULL, too. Reviewed by: corvink, markj MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D56346
debug: classified in
05-summary-prefix by 'lib.*:'
Prior to the change 4f809ffec69c, the sizes are formated by humanize_number(3) with the flag HN_DECIMAL, which displays the result using one decimal place when it is less than 10. That is more accurate and useful. Add equivalent field modifier hn-decimal to xo_emit() to restore the previous behavior. Reported by: Mark Millard Reviewed by: js Fixes: https://cgit.freebsd.org/src/commit/?id=4f809ffec69c gpart: add libxo support for "show" subcommand + man page updates MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D56514
debug: classified in
04-filenames_plain2 by 'lib/'
These are required by ISO/IEC 9899:2024 § 7.18.1 ¶ 1 but were forgotten in my initial work. The current approach leaks intptr_t, uintptr_t, intmax_t, and uintmax_t through <sys/_stdint.h>. This could be avoided using a more complicated approach if desired. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294131 Fixes: https://cgit.freebsd.org/src/commit/?id=6296500a85c8474e3ff3fe2f8e4a9d56dd0acd64 Reported by: Collin Funk <collin.funk1@gmail.com> Reviewed by: imp MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D56515
debug: Commit manually moved from "unknown" to "libs".
The maximum and minimum functions, as well as nextafter and nexttoward, were using manual NaN checks instead of the isnan() macro. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294692 Reviewed by: fuz, kargl MFC after: 1 month
debug: classified in
04-filenames_plain2 by 'lib/'
Makes the code easier to understand. MFC after: 1 week
debug: classified in
04-filenames_plain2 by 'lib/'
This partially reverts upstream libc++ commit aa7f377c965c: [libc++] Remove libc++'s own stdint.h and locale.h (#107436) These headers are not doing anything beyond the system or compiler provided equivalent headers, so there's no real reason to keep them around. Reducing the number of C headers we provide in libc++ simplifies our header layering and reduces the potential for confusion when headers are layered incorrectly. The problem is that libc++'s own `stdint.h` _does_ do something: it defines `__STDC_LIMIT_MACROS` and `__STDC_CONSTANT_MACROS` before including the system `stdint.h`, causing the latter to expose macros like `SIZE_MAX`, `UINT64_C`, and others. If the `__STDC_LIMIT_MACROS` and `__STDC_CONSTANT_MACROS` macros are not exposed, C++ programs compiled for standards before C++11 can fail with errors due to those macros not being available. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: Commit manually moved from "unknown" to "libs".
This is because contrib/llvm-project/llvm/lib/Support/Unix/Threading.inc attempts to use pthread_get_name_np(3) and pthread_set_name_np(3), which are not defined on Linux. Reported by: ivy PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in
04-filenames_plain2 by 'lib/'
Compiling a LINT-NOIP kernel (assumingly also a NOINET) port and ip are set but not used in nfsrv_getclientipaddr(). Hide the variables behind #ifdef checks and do likewise for the parsing results. Admittingly the code probably wants to be rewritten one day. Found with: gcc15 tinderbox build MFC after: 3 days Reviewed by: rmacklem Differential Revision: https://reviews.freebsd.org/D56502
debug: classified in
03-filenames_plain1 by
'sys/fs/'
Under conditions of low memory, getblk can fail. fusefs was not handling those failures very systematically. It was always using PCATCH, which appears to have been originally copy/pasted from the NFS client code, but isn't always appropriate: * During fuse_vnode_setsize_immediate, which can be called from many different VOPs and from the vn_delayed_setsize mechanism, remove PCATCH. Some of these callers cannot tolerate allocate failure. * In fuse_inval_buf_range, don't assume that getblk will always succeed. * When calling fuse_inval_buf_range from VOP_ALLOCATE, VOP_COPY_FILE_RANGE, or VOP_WRITE (with IO_DIRECT), return EINTR if the allocation fails. * When calling fuse_inval_buf_range from VOP_DEALLOCATE, remove PCATCH. This VOP must not fail with EINTR. No new tests, because I can't force any particular getblk call to fail. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293957 Sponsored by: ConnectWise Reported by: zjk7@wp.pl MFC after: 1 week
debug: classified in
03-filenames_plain1 by
'sys/fs/'
Kernel stuff (other than networking, filesystems, and drivers).
Reviewed by: markj, Ricardo Branco <rbranco@suse.com> Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D56507
debug: classified in
04-filenames_plain2 by 'sys/'
Reported by: Ricardo Branco <rbranco@suse.com> Reviewed by: markj, Ricardo Branco <rbranco@suse.com> Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D56507
debug: classified in
04-filenames_plain2 by 'sys/'
- kaudit_to_bsm: Log IPv6 as well as IPv4 and unix addrs - au_to_sock_inet128: Treat ports the same way as au_to_sock_inet32() as just pushing a uint16 causes byte ordering problems on little endian. Differential Revision: https://reviews.freebsd.org/D39633 Sponsored by: Netflix Reviewed by: csjp
debug: classified in
04-filenames_plain2 by 'sys/'
The TIOCNOTTY handler detaches the calling process from its controlling terminal. It clears the link from the session to the tty, but not the pointers from the tty to the session and process group. This means that sess_release() doesn't call tty_rel_sess(), and that pgdelete() doesn't call tty_rel_pgrp(), so the pointers are left dangling. Fix this by clearing pointers in tty_drop_ctty(). Add a standalone regression test. Approved by: so Security: FreeBSD-SA-26:10.tty Security: CVE-2026-5398 Reported by: Nicholas Carlini <npc@anthropic.com> Reviewed by: kib, kevans Fixes: https://cgit.freebsd.org/src/commit/?id=1b50b999f9b5 ("tty: implement TIOCNOTTY") Differential Revision: https://reviews.freebsd.org/D56046
debug: classified in
04-filenames_plain2 by 'sys/'
pkru: Fix handling of 1GB largepage mappings pmap_pkru_update_range() did not handle the case where a PDPE has PG_PS set. More generally, the SET_PKRU and CLEAR_PKRU sysarch implementations did not check whether the request covers a "boundary" vm map entry. Fix this, add the missing PG_PS test, and add some tests. Approved by: so Security: FreeBSD-SA-26:11.amd64 Security: CVE-2026-6386 Reported by: Nicholas Carlini <npc@anthropic.com> Reviewed by: kib, alc Differential Revision: https://reviews.freebsd.org/D56184
debug: classified in
04-filenames_plain2 by 'sys/'
tests/posixshm: Check for hardware support in largepage_pkru MFC after: 3 days Fixes: https://cgit.freebsd.org/src/commit/?id=ca87c0b8e396 ("pkru: Fix handling of 1GB largepage mappings")
debug: classified in
02b-filenames_wildcards2 by
'tests\/.*'
debug: moved to kernel because
'Need to be grouped with
ca87c0b8e396fff01d55f1985c2556934c35a950'
The epoch(9) subsystem implements per-CPU queues of object destructors which get invoked once it is safe to do so. These queues are polled via hardclock(). When a CPU is about to go idle, we reduce the hardclock frequency to 1Hz by default, to avoid unneeded wakeups. This means that if there is any garbage in these destructor queues, it won't be cleared for at least 1s (and possibly longer) even if it would otherwise be safe to do so. epoch_drain_callbacks() is used in some places to provide a barrier, ensuring that all garbage present in the destructor queues is cleaned up before returning. It's implemented by adding a fake destructor in the queues and blocking until it gets run on all CPUs. The above-described phenomenon means that it can take a long time for these calls to return, even (especially) when some CPUs are idle. This causes long delays when destroying VNET jails, for instance, as epoch_drain_callbacks() is invoked each time a network interface is destroyed. Work around this problem by not disabling the hardclock timer if there is garbage present in the destructor queues. The implementation of epoch_drain_callbacks() has other problems, but this small change on its own gives a good improvement, especially when running networking regression tests. Moreover, we should aim to invoke destructors in a timely manner, so the change is generally beneficial. Reviewed by: glebius MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D56508
debug: classified in
04-filenames_plain2 by 'sys/'
linuxkpi: Define diagnostic macros like `might_resched()` or `cant_sleep()` They are no-ops on FreeBSD. While here, move the already defined `might_sleep*()` macros from <linux/wait.h> to <linux/kernel.h> where they belong. The DRM generic code started to use `might_fault()` in Linux 6.12. Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D56434
debug: classified in
04-filenames_plain2 by 'sys/'
linuxkpi: Define `dev_err_probe*()` They differ from other `dev_*()` logging functions by returning the passed error code. The error code is also used to determine if the message should be logged in the first place and at which log level. The DRM generic code started to use it in Linux 6.12. Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D56435
debug: classified in
04-filenames_plain2 by 'sys/'
linuxkpi: Define `__GFP_THISNODE` It is used to force the NUMA node to allocate from. This flag is unimplemented for now because we don't have an implementation of `alloc_pages_node()` yet. The DRM TTM code started to use this flag in Linux 6.12. Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D56436
debug: classified in
04-filenames_plain2 by 'sys/'
linuxkpi: Define `sort_r()` Like Linux `sort()` and FreeBSD `qsort()`, `sort_r()` is a wrapper around FreeBSD `qsort_r()`. The i915 DRM driver started to use it in Linux 6.12. Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D56437
debug: classified in
04-filenames_plain2 by 'sys/'
linuxkpi: Define `MINORBITS` We can't really define a proper value for this constant because minor and major are encoded in a complex way on FreeBSD which cannot be represented with a simple shift. The DRM generic code started to use it in Linux 6.12. In this context, `MINORBITS` is used to define an upper limit passed to `xa_alloc()`. Therefore it is not used to encode or decode minors. It is used as an arbitrary value. Therefore, we define the constant to 20, like on Linux. Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D56447
debug: classified in
04-filenames_plain2 by 'sys/'
linuxkpi: Add several `guid_*()` functions The DRM generic code and the amdgpu DRM driver started to use several of these functions in Linux 6.12. Likewise for `UUID_SIZE`. Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D56448
debug: classified in
04-filenames_plain2 by 'sys/'
linuxkpi: Include <linux/uuid.h> from <linux/mod_devicetable.h> The DRM generic code started to deppend on this indirect include of <linux/uuid.h> in Linux 6.12. Reviewed by: bz, emaste Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D56449
debug: classified in
04-filenames_plain2 by 'sys/'
linuxkpi: Add `fop_flags` to `struct file_operations` ... along with the `FOP_*` flag constants. Note that this `fop_flags` field is not used on FreeBSD. It is added to make the DRM drivers compile out of the box. The DRM generic code and drivers started this in Linux 6.12. Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D56450
debug: classified in
04-filenames_plain2 by 'sys/'
linuxkpi: Pass a `const void *` to `krealloc()` This matches the API on Linux. Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D56451
debug: classified in
04-filenames_plain2 by 'sys/'
linuxkpi: Passing a size of zero to `krealloc()` frees the pointer This matches the API on Linux. Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D56452
debug: classified in
04-filenames_plain2 by 'sys/'
Expose process reaper metadata through struct kinfo_proc so userland
can reconstruct reaper hierarchies from kern.proc.all without adding
a new procctl(2) operation.
Two pid_t fields are added by carving 8 bytes from ki_sparestrings
(46 -> 38), restoring KI_NSPARE_INT to 2 and keeping sizeof(struct
kinfo_proc) unchanged:
ki_reaper: PID of the owning reaper process
ki_reapsubtree: PID of the direct child of the reaper that roots
the subtree the process belongs to
fill_kinfo_proc_pgrp() populates both fields under proctree_lock.
kvm_proclist() is updated for crash dump consumers. The freebsd32
compat struct and freebsd32_kinfo_proc_out() are updated accordingly.
PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293871
Reviewed by: kib
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D56538
debug: Commit manually moved from "unknown" to "kernel".
linux: Support PR_GET_CHILD_SUBREAPER prctl(2) PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294651 Signed-off-by: Ricardo Branco <rbranco@suse.de> Reviewed by: kib, pouria Pull-Request: https://github.com/freebsd/freebsd-src/pull/2151
debug: classified in
04-filenames_plain2 by 'sys/'
linux: Fix a typo in a header comment PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294651 Reported by: Dmitry Lukhtionov <dmitryluhtionov@gmail.com> Fixes: https://cgit.freebsd.org/src/commit/?id=50ff71e956b6 ("linux: Support PR_GET_CHILD_SUBREAPER prctl(2)") Pull-Request: https://github.com/freebsd/freebsd-src/pull/2151
debug: classified in 01-style
by '[tT]ypo'
debug: moved to kernel because
'Need to be grouped with
50ff71e956b631b56a878bd723a9b32dfbdac60f'
PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294651 Signed-off-by: Ricardo Branco <rbranco@suse.de> Reviewed by: kib, pouria Pull-Request: https://github.com/freebsd/freebsd-src/pull/2151
debug: classified in
04-filenames_plain2 by 'sys/'
kexec_load() + reboot is intended to be equivalent to a system reboot. However kexec_load() can load arbitrary data as the target kernel, leading to execution of arbitrary code, even though it's effectively in a new context. Rather than being equivalent to a system reboot, it's also equivalent to kldload(), which loads arbitrary code into the running kernel. Since kldload() is blocked at securelevel 1, also block kexec_load(). Reported by: markj Fixes: https://cgit.freebsd.org/src/commit/?id=e02c57ff3 ("kern: Introduce kexec system feature (MI)") Sponsored by: Hewlett Packard Enterprise Differential Revision: https://reviews.freebsd.org/D56580
debug: classified in
04-filenames_plain2 by 'sys/'
linuxkpi: Add `struct kmsg_dump_detail` This structure is used in a modified definition of `struct kmsg_dumper` field `dump` in Linux 6.12. Therefore this field has two definitions put behind the values of `LINUXKPI_VERSION`. The DRM generic code started to use it in Linux 6.12. Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D56433
debug: classified in
04-filenames_plain2 by 'sys/'
linuxkpi: Add more `struct folio`-related functions The i915 DRM driver started to replace the use of `struct page` by `struct folio` in its GEM shmem code in Linux 6.12. linuxkpi were missing a few more functions: `kmap_local_folio()`, `memcpy_to_folio()` and `offset_in_folio()`. They are equivalent of their `struct page` counterparts. One difference is that `kmap_local_folio()` takes an offset argument and the returned address takes this offset into account. Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D56438
debug: classified in
04-filenames_plain2 by 'sys/'
linuxkpi: Define `fd_file()` This macro simply returns the `file` field of the `struct fd`. The DRM generic code and the amdgpu driver started to use it in Linux 6.12. Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D56440
debug: classified in
04-filenames_plain2 by 'sys/'
linuxkpi: Add `mem_is_zero()` The DRM generic code and the i915 DRM driver started to replace the use of `memchr_inv()` by a `mem_is_zero()` in Linux 6.12. We reuse the previous use of `memchr_inv()` to implement `mem_is_zero()`. Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D56442
debug: classified in
04-filenames_plain2 by 'sys/'
linuxkpi: Add `kmemdup_array()` It is similar to `kmemdup()` but takes a number of elements to duplicate and their size. The i915 DRM driver started to use it in Linux 6.12. Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D56444
debug: classified in
04-filenames_plain2 by 'sys/'
linuxkpi: <asm/unaligned.h> is moved to <linux/unaligned.h> in Linux 6.12 Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D56454
debug: classified in
04-filenames_plain2 by 'sys/'
linuxkpi: Define a guard for the `mutex` type The amdgpu DRM driver started to use `guard(mutex)` in Linux 6.12.x. Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D56571
debug: classified in
04-filenames_plain2 by 'sys/'
linuxkpi: Add `register_pm_notifier()` and `unregister_pm_notifier()` They are empty stub returning success for now, like the previously defined stubs in this header. Several constant are also defined in the process. The amdgpu DRM driver started to use them in Linux 6.12.x. Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D56572
debug: classified in
04-filenames_plain2 by 'sys/'
linuxkpi: Add `atomic_read_acquire()` This function calls `raw_atomic_read_acquire()` which is also added. They are located in <linux/atomic/*.h> headers, both included from <linux/atomic.h>. The amdgpu DRM driver started to use this in Linux 6.12.x. Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D56573
debug: classified in
04-filenames_plain2 by 'sys/'
linuxkpi: Define `system_state` This is a global variable used to track the state of the system, like booting, running, halting and so on. This variable is based on the `enum system_states` enumeration. For now, always set `system_state` to `SYSTEM_RUNNING`. The amdgpu DRM driver started to use this in Linux 6.12.x. Reviewed by: emaste Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D56575
debug: classified in
04-filenames_plain2 by 'sys/'
linuxkpi: Define `DIV_U64_ROUND_UP()` It is the same as `DIV64_U64_ROUND_UP()` but takes a 32-bit integer as the divisor. The amdgpu DRM driver started to use this in Linux 6.12.x. Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D56576
debug: classified in
04-filenames_plain2 by 'sys/'
linuxkpi: Add `rb_add()` It is the same as `rb_add_cached()` but it works on `struct rb_root`, not a `struc rb_root_cached`. It also does not return anything. The DRM generic code started to use this in Linux 6.12.x. Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D56577
debug: classified in
04-filenames_plain2 by 'sys/'
FreeBSD has a native membarrier(2) syscall which is mostly compatible with Linux. This is a thin wrapper around kern_membarrier() that translates all available commands and flags. Also update the syscalls.master prototypes to match the Linux 5.10+ three-argument form. Pre-5.10 binaries using the two-argument form continue to work: cpu_id is only consulted for RSEQ commands, which FreeBSD does not support and which kern_membarrier() rejects with EINVAL, matching Linux semantics. Signed-off-by: Ricardo Branco <rbranco@suse.de> PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=281691 Reviewed by: kib, pouria Pull-Request: https://github.com/freebsd/freebsd-src/pull/2147
debug: classified in
04-filenames_plain2 by 'sys/'
linuxkpi: Move {lower,upper}_32_bits macros to <linux/wordpart.h>
... from <linux/compiler.h>.
<linux/wordpart.h> is the header defining them on Linux 6.12 (I didn't
check older versions).
<linux/wordpart.h> is also included from <linux/kernel.h>.
The DRM generic code started to depend on <linux/wordpart.h> in Linux
6.12.
Reviewed by: bz
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56441
debug: classified in
04-filenames_plain2 by 'sys/'
linuxkpi: Add Linux 6.12 variant of `kvrealloc()` In Linux 6.12, the API changed to be closer to `krealloc()`: * The function does not take the old size anymore * The function becomes a wrapper around `krealloc()` with a fallback mechanism. Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D56453
debug: classified in
04-filenames_plain2 by 'sys/'
linuxkpi: Move `ARRAY_SIZE` to <linux/array_size.h> The DRM generic code started to import this header directly in Linux 6.12.x. Let's move the definition of `ARRAY_SIZE()` (the only thing that <linux/array_size.h> defines) to this header. Also, include <linux/array_size.h> from the same headers as Linux. This includes <linux/kernel.h>, so the change should not break anything. Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D56570
debug: classified in
04-filenames_plain2 by 'sys/'
linuxkpi: Add `memdup_array_user()` The amdgpu DRM driver started this in Linux 6.12.x. Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D56574
debug: classified in
04-filenames_plain2 by 'sys/'
linuxkpi: Define `min_array()` and `max_array()` They are macros that return the minimum or maximum values of an array of integers. They assume that the array contains elements. The i915 DRM driver started to use `min_array()` in Linux 6.12.x. Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D56583
debug: classified in
04-filenames_plain2 by 'sys/'
linuxkpi: Add `pci_dev_is_disconnected()` For now, it is an empty stub that always return false. On Linux, it looks at an internal error state of the device to determine if it is disconnected. The amdgpu DRM driver started this in Linux 6.12.x. Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D56582
debug: classified in
04-filenames_plain2 by 'sys/'
linuxkpi: Move `GENMASK()` to <linux/bits.h> ... from <linux/bitops.h>. This matches the location on Linux. <linux/bits.h> is also included from <linux/bitops.h>. Therefore it will not break anything. Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D56584
debug: classified in
04-filenames_plain2 by 'sys/'
`sizeof(*ndev->name)` is `sizeof(char)`, not IFNAMSIZ, so the interface name was effectively limited to a single byte. Use `sizeof(ndev->name)` for the `char name[IFNAMSIZ]` member. Signed-off-by: Weixie Cui <cuiweixie@gmail.com> Reviewed by: pouria Pull-Request: https://github.com/freebsd/freebsd-src/pull/2111
debug: classified in
04-filenames_plain2 by 'sys/'
Add missing directories and fix alphabetical ordering Signed-off-by: Minsoo Choo <minsoo@minsoo.io> Sponsored by: FreeBSD Foundation Reviewed by: imp, mhorne, pouria Pull-Request: https://github.com/freebsd/freebsd-src/pull/2146
debug: classified in
04-filenames_plain2 by 'sys/'
This flag combines `GFP_KERNEL` and `__GFP_ACCOUNT`. The latter is also defined in this commit. It is defined as a no-op flag as it is not implemented. The DRM generic code started to use it in Linux 6.12.x. Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D56587
debug: classified in
04-filenames_plain2 by 'sys/'
It indicates to `alloc_pages()` to allocate the pages from the current NUMA domain. If it couldn't, it should not retry elsewhere and return failure. Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D56590
debug: classified in
04-filenames_plain2 by 'sys/'
The seq_file.rst documentation in the Linux kernel documents the iterator interface for the seq_file structure. In particular, the ppos passed to seq_read is a logical offset into a seq_file managed by the iterator interface, not an offset into the generated data. For example, if a seq_file outputs state for each node in a linked-list or array, *ppos might be used as the index of the node to output, not a byte offset. Rewrite seq_read to honor this contract which fixes a few bugs: - Treat *ppos as a logical iterator offset that is only updated by the next callback after outputting a single item via the show method. - Use a loop to permit outputting descriptions of multiple items if the user buffer is large enough. - Always invoke the stop method after terminating the loop to cleanup any state setup by start (e.g. if start allocated a buffer or obtained a lock, the stop method is called to cleanup). While here, implement support for SEQ_SKIP as documented in the Linux documentation even though it is not currently used in the tree. Reviewed by: bz Sponsored by: AFRL, DARPA Differential Revision: https://reviews.freebsd.org/D55899
debug: classified in
04-filenames_plain2 by 'sys/'
Effort: CHERI upstreaming Reviewed by: kib Sponsored by: AFRL, DARPA Pull Request: https://github.com/freebsd/freebsd-src/pull/2068
debug: classified in
04-filenames_plain2 by 'sys/'
Effort: CHERI upstreaming Reviewed by: kib Sponsored by: AFRL, DARPA Pull Request: https://github.com/freebsd/freebsd-src/pull/2068
debug: classified in
04-filenames_plain2 by 'sys/'
Effort: CHERI upstreaming Reviewed by: kib Sponsored by: AFRL, DARPA Pull Request: https://github.com/freebsd/freebsd-src/pull/2068
debug: classified in
04-filenames_plain2 by 'sys/'
Effort: CHERI upstreaming Reviewed by: kib Sponsored by: AFRL, DARPA Pull Request: https://github.com/freebsd/freebsd-src/pull/2068
debug: classified in
04-filenames_plain2 by 'sys/'
This removes the need for several casts to pointer in callers. Effort: CHERI upstreaming Reviewed by: kib Sponsored by: AFRL, DARPA Pull Request: https://github.com/freebsd/freebsd-src/pull/2068
debug: classified in
04-filenames_plain2 by 'sys/'
Effort: CHERI upstreaming Reviewed by: kib Sponsored by: AFRL, DARPA Pull Request: https://github.com/freebsd/freebsd-src/pull/2068
debug: classified in
04-filenames_plain2 by 'sys/'
Effort: CHERI upstreaming Reviewed by: kib Sponsored by: AFRL, DARPA Pull Request: https://github.com/freebsd/freebsd-src/pull/2068
debug: classified in
04-filenames_plain2 by 'sys/'
Effort: CHERI upstreaming Reviewed by: kib Sponsored by: AFRL, DARPA Pull Request: https://github.com/freebsd/freebsd-src/pull/2068
debug: classified in
04-filenames_plain2 by 'sys/'
Effort: CHERI upstreaming Reviewed by: kib Sponsored by: AFRL, DARPA Pull Request: https://github.com/freebsd/freebsd-src/pull/2068
debug: classified in
04-filenames_plain2 by 'sys/'
Effort: CHERI upstreaming Reviewed by: kib Sponsored by: AFRL, DARPA Pull Request: https://github.com/freebsd/freebsd-src/pull/2068
debug: classified in
04-filenames_plain2 by 'sys/'
Add explicit uintptr_t casts to the arguments to these macros so that the work both with virtual addresses (e.g. vm_offset_t) and pointers. Drop no-longer-needed casts in various invocations of DMAP_TO_PHYS. Effort: CHERI upstreaming Reviewed by: kib Sponsored by: AFRL, DARPA Pull Request: https://github.com/freebsd/freebsd-src/pull/2068
debug: classified in
04-filenames_plain2 by 'sys/'
Add a new PHYS_TO_DMAP_ADDR that still returns an address for use in places that only need an address and not a pointer. Effort: CHERI upstreaming Reviewed by: kib Sponsored by: AFRL, DARPA Pull Request: https://github.com/freebsd/freebsd-src/pull/2068
debug: classified in
04-filenames_plain2 by 'sys/'
Effort: CHERI upstreaming Reviewed by: kib Sponsored by: AFRL, DARPA Pull Request: https://github.com/freebsd/freebsd-src/pull/2068
debug: classified in
04-filenames_plain2 by 'sys/'
Effort: CHERI upstreaming Suggested by: kib Reviewed by: kib Sponsored by: AFRL, DARPA Pull Request: https://github.com/freebsd/freebsd-src/pull/2068
debug: classified in
04-filenames_plain2 by 'sys/'
Effort: CHERI upstreaming Reviewed by: kib Sponsored by: AFRL, DARPA Pull Request: https://github.com/freebsd/freebsd-src/pull/2068
debug: classified in
04-filenames_plain2 by 'sys/'
Effort: CHERI upstreaming Sponsored by: AFRL, DARPA
debug: classified in
04-filenames_plain2 by 'sys/'
kern: vfs: add MAC checks for mount/unmount/update The unmount check is straightforward and only really needs the struct mount and flags used, in case a MAC policy wants to reject force-unmounts or do special handling for FSID-based unmounts. The mount check offers as much information as I think might be of interest to a MAC policy: the vnode to be mounted on, vfsconf, and applicable mount options. XNU also has a later version that just takes a struct mount for everything that VFS_MOUNT() has to offer, but my draft policy doesn't need any of that. It also doesn't really need the unmount check, but it seems reasonable to add it while I'm here. The update check similarly passes the flags/options for the operation, along with the struct mount and label. Reviewed by: kib, olce Differential Revision: https://reviews.freebsd.org/D55601
debug: classified in
04-filenames_plain2 by 'sys/'
kern: mac: sprinkle a bit of const correctness mpc_name and mpc_fullname are string literals in correct usage, so they should really be const instead. mpc_ops aren't typically const, but the framework shouldn't be doing anything to clobber it; thus, good to constify it as a reminder. Switch to using a slightly more semantically correct `void **` in the fastpath bits while we're here, since we only do arithmetic on the outer layer of pointer and compare the inner to a pointer-typed (NULL). Reviewed by: bapt Differential Revision: https://reviews.freebsd.org/D55702
debug: classified in
04-filenames_plain2 by 'sys/'
kern: mac: bump the MAC_VERSION for 16.x Reviewed by: bapt Differential Revision: https://reviews.freebsd.org/D55703
debug: classified in
04-filenames_plain2 by 'sys/'
The specificgid functionality has historically allowed only a single group to be exempt, but in practice one might want a few services to be exempt for reasons. From a security perspective, we probably don't want to encourage unrelated users to be grouped together solely for this purpose, as that creates one point of shared access that could be used for nefarious purposes. Normalize the group list as we do cr_groups to allow for linear matching rather than quadratic, we just need to account for the differences in FreeBSD 15.0+ where cr_groups is entirely supplementary groups vs. earlier versions, where cr_groups[0] is the egid and the rest is sorted. Reviewed by: csjp, des (earlier version) Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D56592
debug: classified in
04-filenames_plain2 by 'sys/'
The pass(4) driver's CAMIOCOMMAND and CAMIOQUEUE ioctls accept arbitrary CCBs from userland. This device requires root to open, and thus send these commands. Previously, the only func_code filter was a blocklist check against the XPT_FC_XPT_ONLY flag. This missed several dangerous func_codes that lack that flag: - XPT_ABORT: the abort_ccb field is a raw kernel pointer from the user CCB payload. xpt_action_default() dereferences it without validation, leading to kernel crashes or worse. - XPT_SASYNC_CB: the callback and callback_arg fields come directly from the user CCB payload and get registered as a kernel async callback, allowing arbitrary kernel code execution. - Target mode CCBs (XPT_EN_LUN, XPT_TARGET_IO, etc.) fall through directly to the SIM with user-controlled payloads. Replace the XPT_FC_XPT_ONLY blocklist with an explicit allowlist of CCB function codes that are known to be safe for userland to submit: I/O operations (SCSI, ATA, NVMe, SMP, MMC), device queries, transport settings, and a handful of safe control operations (NOOP, REL_SIMQ, RESET_DEV, DEBUG). Normally, the /dev/pass* permissions only allow root to access them, so this is only a safety issue by default. Also reject CAM_DATA_PADDR and CAM_DATA_SG_PADDR, since these pass user-supplied physical addresses directly to DMA with no validation, which on systems without an IOMMU allows arbitrary host memory access. Add `options PASS_UNSAFE_PADDR` to allow the old behavior. Verified that camdd, camcontrol, smartmontools, and cdrtools use only func_codes on the allowlist (XPT_SCSI_IO, XPT_ATA_IO, XPT_NVME_IO, XPT_NVME_ADMIN, XPT_PATH_INQ, XPT_GDEV_TYPE, XPT_GET_TRAN_SETTINGS, XPT_SET_TRAN_SETTINGS, XPT_RESET_DEV, XPT_DEBUG) and none use CAM_DATA_PADDR. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293888, https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293890 Assisted-By: Claude Opus 4.6 (1M context) Sponsored by: Netflix Reviewed by: jhb Differential Revision: https://reviews.freebsd.org/D56486
debug: classified in
04-filenames_plain2 by 'sys/'
XPT_GDEVLIST in xpt_action_default has two early-return paths (list changed and index not found) that set cgdl->status but not ccb_h.status. Since xpt_action sets ccb_h.status to CAM_REQ_INPROG before dispatching, and XPT_GDEVLIST is an non-queued CCB, cam_periph_ccbwait skips the sleep loop and immediately hits the KASSERT checking that status != CAM_REQ_INPROG, causing a panic. Set ccb_h.status = CAM_REQ_CMP at the top of the code rather than the bottom. Any future error paths will be right (since this command can't fail at the command level, just in the status of the data level). PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293899 Assisted-By: Claude Opus 4.6 (1M context) Sponsored by: Netflix Reviewed by: jhb Differential Revision: https://reviews.freebsd.org/D56487
debug: classified in
04-filenames_plain2 by 'sys/'
Create a tunable for the maxinum number of 'high power' commands to schedule, kern.cam.max_high_power. Default remains at 4. Differential Revision: https://reviews.freebsd.org/D56462
debug: classified in
04-filenames_plain2 by 'sys/'
It turns out interface ioctls are defined not just in sockio.h, but are spread among many files. When I added SIOCGI2CPB at the bottom of the file, the next number (160) collided with an ioctl (IPSECGREQID) that I was unaware of in another file. Fix this by moving to a number that is unclaimed. Fixes: https://cgit.freebsd.org/src/commit/?id=cf1f21572897 (net: Add SIOCGI2CPB ioctl & add page/bank fields to ifi2creq) Reported by: dhw Reviewed by: imp
debug: classified in
04-filenames_plain2 by 'sys/'
kgss: remove KGSS_VNET_* macros family The original idea was that something else than VNET(9) might be used for kgss in jails, but that is very unlikely to happen. Mechanical change done with sed+grep. No functional change. Reviewed by: rmacklem Differential Revision: https://reviews.freebsd.org/D56560
debug: classified in
04-filenames_plain2 by 'sys/'
kgss: remove unnecessary CURVNET_SET() and kgss_gssd_handle checks These RPC methods correctly acquire the kgss_gssd_handle later with call to kgss_gssd_client(). Reviewed by: rmacklem Differential Revision: https://reviews.freebsd.org/D56561
debug: classified in
04-filenames_plain2 by 'sys/'
kgss: de-virtualize kgss_gssd_handle The RPC client is more of a class rather than an instance. RPCs from different VNETs are served by the same client. This makes the kgss layer fully transparent to VIMAGE and not even required to be aware of it. It is responsibility of the rpcsec_gss module to have curvnet set on the calling thread when doing RPC calls via kgssapi. This change should enable proper operation of an NFS server with gssd(8) in a VIMAGE jail. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294501 Reviewed by: rmacklem Differential Revision: https://reviews.freebsd.org/D56562
debug: classified in
04-filenames_plain2 by 'sys/'
PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in
04-filenames_plain2 by 'sys/'
The inotify flags are copied from the lower vnode into the nullfs vnode so that the INOTIFY() macro will invoke VOP_INOTIFY on the nullfs vnode; this is then bypassed to the lower vnode. However, when a nullfs vnode is reclaimed we should clear these flags, as the vnode is now doomed and no longer forwards VOPs to the lower vnode. Add regression tests. Remove a test in vn_inotify_revoke() which is no longer needed after this change. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292495 Reviewed by: kib Reported by: Jed Laundry <jlaundry@jlaundry.com> Fixes: https://cgit.freebsd.org/src/commit/?id=f1f230439fa4 ("vfs: Initial revision of inotify") MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D56639
debug: classified in
04-filenames_plain2 by 'sys/'
MFC after: 1 week Sponsored by: The FreeBSD Foundation
debug: classified in
04-filenames_plain2 by 'sys/'
Add following sys/fs entries to linprocfs(4): * proc/sys/fs/file-max * proc/sys/fs/file-nr * proc/sys/fs/nr_open * proc/sys/fs/overflowuid * proc/sys/fs/overflowgid * proc/sys/fs/suid_dumpable * proc/sys/fs/protected_hardlinks Also, add /proc/sys/kernel/threads-max Signed-off-by: Ricardo Branco <rbranco@suse.de> PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294713 Reviewed by: markj, pouria Pull-Request: https://github.com/freebsd/freebsd-src/pull/2159
debug: classified in
04-filenames_plain2 by 'sys/'
Sort the options in each of the sections alphabetically. Sponsored by: Netflix
debug: classified in
03-filenames_plain1 by
'share/mk/'
161f8edc651c7 ("bsd.mkopt.mk: Prepare a list of all build options")
restructured things and now we should simply strip the leading double
underbar. This fixes the oddity noticed in
4ed20e0236dd0 ("kshim/usb: Add build option."), where WITH_CASPER made
a surprise appearance.
This is a part of D56558, but not the meat of the change.
Reviewed by: emaste, imp
debug: classified in
03-filenames_plain1 by
'tools/build/'
pkgconf: import into the base system This introduces the following option: * MK_PKGCONF: determines if pkgconf and bomtool should be built The objective is to allow the creation of SBOM information while building FreeBSD's src tree. The build system cannot rely on the presence of bomtool (and eventually also spdxtool) in the build environment, except for having it as part of the src tree directly. The framework implementing the generation of SBOM files is under review in D56474. This will also help simplifying the build, with the introduction of another framework relying on the availability of pkgconf. Sponsored by: Alpha-Omega, The FreeBSD Foundation Reviewed by: bapt, philip Approved by: philip (mentor) Differential Revision: https://reviews.freebsd.org/D56404
debug: Commit manually moved from "unknown" to "build".
packages: Register pkgconf This should fix the creation of the new packages introduced by the import of pkgconf into the base system. Fixes: https://cgit.freebsd.org/src/commit/?id=b8352da33f34 ("pkgconf: import into the base system") PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294724 Reviewed by: ivy, ngie Approved by: ngie Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D56589
debug: classified in
02-filenames_wildcards by
'release/.*'
libpkgconf: Fix paths
${LOCALBASE:U} evaluates to exactly the same thing as ${LOCALBASE}.
Presumably what was meant was ${LOCALBASE:U/usr/local}.
Fixes: https://cgit.freebsd.org/src/commit/?id=b8352da33f34 ("pkgconf: import into the base system")
Reviewed by: khorben
Differential Revision: https://reviews.freebsd.org/D56642
debug: classified in
05-summary-prefix by 'lib.*:'
depends-cleanup: Fix typos in comment Fixes: https://cgit.freebsd.org/src/commit/?id=4dd97955e68d ("libpkgconf: Fix paths")
debug: classified in 01-style
by '[tT]ypo'
debug: moved to build because
'Need to be grouped with
4dd97955e68df02b26d59e4e7c9a8167947a5164'
Fixes: https://cgit.freebsd.org/src/commit/?id=0ddaa4c86d68 ("arm64: Add arm64 SVE tests") Sponsored by: The FreeBSD Foundation
debug: classified in
02-filenames_wildcards by
'.*Makefile'
`PIC_FLAG` should be used strictly for `-fPIC`, `-fpic`, etc, options. `SHARED_CFLAGS` is the more appropriate place to this flag to be set. Requested by: jrtc27 MFC after: 3 days MFC with: 3797fe720a
debug: classified in
02-filenames_wildcards by
'.*Makefile'
MFC after: 1 week Fixes: https://cgit.freebsd.org/src/commit/?id=d03c82c28da86 ("release: add optional OCI images")
debug: classified in
03-filenames_plain1 by
'tools/build/'
- Update sources to match current installed files list. This involved adding and removing some example files. - Sort the list alphabetically so it'll be easier to spot future updates. MFC after: 1 week
debug: classified in
03-filenames_plain1 by
'tools/build/'
- Remove the generated files (`file1`). - Remove the top-level example `Kyuafile`. MFC after: 1 week
debug: classified in
03-filenames_plain1 by
'tools/build/'
Nobody will test it as long as it's not tied into the top-level target, and we don't really have a good reason not to cut over to it since it does produce identical results. Switch over but do not remove the old sh implementation yet, just in case. Note that this replacement is driven by a significant speedup from how the new version is designed: tha lua version actually tries to parallelize its data collection efforts to speed up generation. Reviewed by: imp (previous version), emaste Differential Revision: https://reviews.freebsd.org/D56558
debug: classified in
02-filenames_wildcards by
'.*Makefile'
Instead of driving the world package build from Makefile.inc1, use a subdir build where each package has a subdirectory under packages/ using the new <bsd.pkg.mk>. Convert some metadata that was previously in the UCL files (e.g. sets and dependencies) to Makefile variables. Build the packages under objdir (not repodir), and use the new stagepackages target to copy them to repodir when creating the repository. Determine an explicit list of packages to build in packages/Makefile based on enabled src.conf options, and add logic to abort the build if we attempt to build an empty package. This inverts the previous logic in Makefile.inc1 which would simply skip empty packages. There are a few advantages to doing it this way: * The package build works more like the rest of the build system, so it's more accessible to developers. * We can customise the packages we build based on src.conf options, e.g. skipping a package entirely, or adjusting its dependencies based on what it actually requires. * We have a specific list of packages that we want to build, and an unexpectedly missing package results in a build error, instead of silently producing a broken repository. * It's possible to build (and in the future, install) an individual package without having to rebuild the entire repository. This doesn't apply to the dtb, kernel-* or src-* packages; those have their own build systems in Makefile.inc1 and will be converted later. MFC after: 4 weeks (stable/15 only) Reviewed by: jlduran, sjg, brooks Sponsored by: https://www.patreon.com/bsdivy Differential Revision: https://reviews.freebsd.org/D56087
debug: classified in
05-summary-prefix by
'packages:'
During a discussion about using -fms-extensions jhb pointed out that we have them enabled in the kernel for gcc by default (even multiple times in one part). I had missed all that and clang still failed on my use case (needing another option). The original cause for enabling them for our tree back then was that we needed to support C11 anonymous struct/unions. Our in-tree gcc 4.2.1, despite later patches, needed the -fms-extensions to support these even though this was not the expected use case for that option ( cc4a90c445aa0 enabled it globally for the kernel). clang at that time (or at least when it became default for 10.0) already was fine (with C11). Any later gcc (4.6.0 onwards) did not need that option anymore, even when compiled for -std=iso9899:1990 (which does not support anonymous structs/unions) unless one would add -pedantic (see gcc git 4bdd0a60b27a). This is also the reason why userland cddl sources now compile with the option removed despite CSTD=c99. The only driver which needed the option recently was ccp, but that was fixed in 8d3f41dbcb2a by jhb. So cleanup all uses cases of -fms-extensions for the moment as they are no longer needed given all compilers currently supported seem to be fine without them and gcc-4.2.1 was removed from the tree in stable/13 in 2020 (a9854bc3812b). Reported by: jhb (all this but possibly the world CDDL parts) Sponsored by: The FreeBSD Foundation MFC after: 3 days Reviewed by: emaste (earlier), imp, jhb, glebius Differential Revision: https://reviews.freebsd.org/D55072
debug: Commit manually moved from "unknown" to "build".
MFC with: efb77950fdd Fixes: https://cgit.freebsd.org/src/commit/?id=efb77950fdd ("dtrace: Add definitiosn for the cam dtrace provider") Differential Revision: https://reviews.freebsd.org/D56588
debug: classified in
03-filenames_plain1 by
'tools/build/'
PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in
02-filenames_wildcards by
'.*Makefile'
This reverts base 4822a2cf990048c6eed7822fd34a1aeeb7c39cdf. The change in base aa0bc7cca153f67f8becec8a8fb259ff5fd30fd0 already fixed the original issue, which is that newer versions of lld complain "section '.text' address (0x38000) is smaller than image base (0x10000000); specify --image-base". Reported by: ivy PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in
02-filenames_wildcards by
'.*Makefile'
packages: Register pkgconf This should fix the creation of the new packages introduced by the import of pkgconf into the base system. Fixes: https://cgit.freebsd.org/src/commit/?id=b8352da33f34 ("pkgconf: import into the base system") Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D56589
debug: classified in 00-reverts
by 'This reverts commit
\b([0-9a-fA-F]{40})\b'
Revert "packages: Register pkgconf" This reverts commit 970cef9f652ec4d902b20cba6d99dce48458d7b6. I made a mistake when rebasing 1342eb5a832fa10e689a29faab3acb6054e4778c; I did not mean to re-introduce this one.
debug: classified in 00-reverts
by 'This reverts commit
\b([0-9a-fA-F]{40})\b'
Building pkgconf with GCC 14 currently fails with: no option '-Wincompatible-pointer-types-discards-qualifiers' This relaxes warnings for libpkgconf, pkgconf(1), and bomtool(1) until the improvements are published upstream (see PR #444). Co-authored-by: ngie Approved by: ngie Sponsored by: The FreeBSD Foundation Event: Wiesbaden Hackathon 202604 Differential Revision: https://reviews.freebsd.org/D56591
debug: classified in
02-filenames_wildcards by
'.*Makefile'
The apm(8) rc script only works on i386, but it's installed on all platforms. Only install it on i386, which avoids creating a useless FreeBSD-apm package on other platforms. While here, build the acpi package on i386. MFC after: 2 weeks Reviewed by: imp Sponsored by: https://www.patreon.com/bsdivy Differential Revision: https://reviews.freebsd.org/D56629
debug: classified in
02-filenames_wildcards by
'.*Makefile'
bhyve(8) on amd64 needs iasl(8) to run, otherwise it fails with:
/bin/sh: /usr/sbin/iasl: not found
bhyve: BASL failed @ build_dsdt:484
Failed to execute basl_compile(ctx, basl_fwrite_dsdt): Unknown
error: 32512
bhyve: BASL failed @ acpi_build:899
Failed to execute build_dsdt(ctx): Unknown error: 32512
Assertion failed: (error == 0), function bhyve_init_platform_late, file
/home/pkgbuild/worktrees/main/usr.sbin/bhyve/amd64/bhyverun_machdep.c,
line 394.
Register the "acpi" package which provides iasl(8) as a dependency for
bhyve on amd64.
Reviewed by: markj (previous revision), ivy
Differential Revision: https://reviews.freebsd.org/D56498
Sponsored by: The FreeBSD Foundation
debug: classified in
02-filenames_wildcards by
'.*Makefile'
PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in
03-filenames_plain1 by
'ObsoleteFiles.inc'
The test verifies that a socket can bind to a local address assigned by connect(2) to a different socket. It was however trying to bind to the wrong address, and the check of the result was inverted, so this went unnoticed. It also needs to set SO_REUSEADDR for this to succeed. Reported by: glebius MFC after: 1 week
debug: classified in
02b-filenames_wildcards2 by
'tests\/.*'
The underlying bugs which caused them to be flaky are now fixed. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=258766
debug: classified in
02b-filenames_wildcards2 by
'tests\/.*'
debug: classified in
02b-filenames_wildcards2 by
'tests\/.*'
Approved by: pouria Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D56569
debug: classified in
02b-filenames_wildcards2 by
'tests\/.*'
Each test case in opcodes.sh uses ctladm to create and remove the LUN it exercises, but only sg_opcodes was listed in require.progs. On systems where ctladm is not builded the tests would fail at setup instead of being skipped cleanly. Approved by: asomers Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D56568
debug: classified in
02b-filenames_wildcards2 by
'tests\/.*'
_ isn't part of the allowed IQN format, but - is. None functional change. Reviewed by: asomers, ngie Approved by: asomers (mentor) MFC after: 1 week Sponsored by: ConnectWise Differential Revision: https://reviews.freebsd.org/D56557
debug: classified in
02b-filenames_wildcards2 by
'usr.sbin/.*/tests/.*'
The new version of incrementing `jid` is a little cleaner and harder to mess up, and also fix a nwlin omission while we're here. These comments were dropped on D51502; ngie takes a co-author credit so that they're not blamed for the commit message, but I can't claim that I tweaked their suggestions. Co-authored-by: ngie
debug: classified in
02b-filenames_wildcards2 by
'usr.sbin/.*/tests/.*'
This matches pflog.sh tests and fixes flaky tests found in CI[0]. [0] https://ci.freebsd.org/job/FreeBSD-main-amd64-test/28126/testReport/junit/sys.netpfil.pf/nat/endpoint_independent_exhaust/ PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=289628 Reviewed by: glebius Approved by: lwhsu (mentor) Sponsored by: The FreeBSD Foundation MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D56145
debug: classified in
02b-filenames_wildcards2 by
'tests\/.*'
- Don't use /dev/null as the pidfile for inetd, that doesn't work properly. Create a pidfile in the per-test scratch directory. - Use atf_check to validate results from setup commands. MFC after: 1 week
debug: classified in
02b-filenames_wildcards2 by
'tests\/.*'
These could go in other categories, but it's more clear if they're here instead.
This prevents unwanted change when saving files on IDEs (e.g. VSCode, Zed) Signed-off-by: Minsoo Choo <minsoo@minsoo.io> Sponsored by: The FreeBSD Foundation Pull request: https://github.com/freebsd/freebsd-src/pull/2152
debug: classified in 01-style
by '[wW]hitespace'
Signed-off-by: Roman <nnov.brody@gmail.com> Pull-request: https://github.com/freebsd/freebsd-src/pull/2156
debug: classified in 01-style
by '[tT]ypo'
Fixes: https://cgit.freebsd.org/src/commit/?id=d8fbbd371ca1 ("zfs: merge openzfs/zfs@https://cgit.freebsd.org/src/commit/?id=1644e2ffd") Reported by: Jenkins
debug: classified in
03-filenames_plain1 by
'sys/contrib'
Due to FreeBSD-specific code it seems a code update was not applied to the FreeBSD part during the v6.17 driver update. Add the missing lines. Sponsored by: The FreeBSD Foundation MFC after: 3 days Fixes: https://cgit.freebsd.org/src/commit/?id=b35044b38f74c
debug: classified in
03-filenames_plain1 by
'sys/contrib'
git-subtree-dir: contrib/pkgconf git-subtree-mainline: 45827f9ad2e32ec8e4cdde62cbf722a48fb1b396 git-subtree-split: 6294b6ab217a2d5f1d2bc23a64505a228294c508
debug: classified in
03-filenames_plain1 by
'contrib/'
Changes: https://github.com/eggert/tz/blob/2026b/NEWS MFC after: 3 days
debug: classified in
03-filenames_plain1 by
'contrib/'
Effort: CHERI upstreaming Reviewed by: kib Sponsored by: AFRL, DARPA Pull Request: https://github.com/freebsd/freebsd-src/pull/2068
debug: classified in
03-filenames_plain1 by
'sys/contrib'
fetch_newgroups_tok(3): clamp group count to AUDIT_MAX_GROUPS before the loop to prevent a stack buffer overflow when a crafted record specifies more than 16 groups. fetch_execarg_tok(3), fetch_execenv_tok(3): add a bounds check at the top of the string-walking loop to prevent an out-of-bounds read when the previous string's nul byte is the last byte of the record buffer. fetch_sock_unix_tok(3): clamp the memchr search length to the number of bytes remaining in the buffer to prevent an out-of-bounds read on short tokens. Also clamp slen to sizeof(path) to prevent a one-byte overflow when no nul byte is found within the path data. fetch_socket_tok: fix copy-paste error where the remote address was written into l_addr instead of r_addr. Previously reported by: @haginara Define AU_UNIX_PATH_MAX as 108 (the largest sun_path across all supported platforms) and use it in au_socketunix_t instead of the hardcoded 104. Update fetch_sock_unix_tok to derive its search bound from sizeof(tok->tt.sockunix.path) so cross-platform records from Solaris and Linux with paths up to 108 bytes parse correctly without truncation. REF: https://github.com/openbsm/openbsm/pull/87 Reviewed by: kevans, markj Differential Revision: https://reviews.freebsd.org/D56510
debug: classified in
03-filenames_plain1 by
'contrib/'
MFC after: 1 week
debug: classified in
03-filenames_plain1 by
'contrib/'
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvm-project main llvmorg-21-init-19288-gface93e724f4, the last commit before the upstream release/21.x branch was created. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in
03-filenames_plain1 by
'contrib/'
This adjusts the llvmorg-21-init-19288-gface93e724f4 import: add partial third-party/ top-level directory. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in
03-filenames_plain1 by
'contrib/'
This adjusts the llvmorg-21-init-19288-gface93e724f4 import: add partial libc/ top-level directory. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in
03-filenames_plain1 by
'contrib/'
This adjusts the llvmorg-21-init-19288-gface93e724f4 import: add more items to the libc/ top-level directory. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in
03-filenames_plain1 by
'contrib/'
Fix various configuration fails, update generated headers, Makefiles, etc. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: Commit manually moved from "unknown" to "contrib".
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvm-project release/21.x llvmorg-21.1.7-0-gcd708029e0b2, a.k.a. 21.1.7 release. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in
05-summary-prefix by 'Merge '
[libc++] Simplify the implementation of __libcpp_{,de}allocate (#147989)
GCC 15 also supports `__buitin_operator_{new,delete}` now, so the
`#else` cases are dead code. This patch inlines the calls to the wrapper
functions and simplifies some surrounding code.
This is part of making libc++ 21 build with GCC 14.
PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after: 1 month
debug: classified in
03-filenames_plain1 by
'contrib/'
[libc++] Remove dead code from <type_traits> (#143854) Since we've upgraded to GCC 15 now, we can remove a bunch of dead code from `<type_traits>`. This is part of making libc++ 21 build with GCC 14. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in
03-filenames_plain1 by
'contrib/'
Otherwise, gcc will not be able to compile parts of libc++ 21 in -m32
mode, resulting in errors similar to:
In file included from /usr/src/contrib/llvm-project/libc/shared/str_to_float.h:13,
from /usr/src/contrib/llvm-project/libcxx/src/include/from_chars_floating_point.h:14,
from /usr/src/contrib/llvm-project/libcxx/src/charconv.cpp:12:
/usr/src/contrib/llvm-project/libc/src/__support/str_to_float.h: In function 'void __llvm_libc::internal::set_implicit_bit(__llvm_libc::fputil::FPBits<T>&) [with T = long double]':
/usr/src/contrib/llvm-project/libc/src/__support/str_to_float.h:77:10: error: 'struct __llvm_libc::fputil::FPBits<long double>' has no member named 'set_implicit_bit'
77 | result.set_implicit_bit(result.get_biased_exponent() != 0);
| ^~~~~~~~~~~~~~~~
PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after: 1 month
debug: classified in
03-filenames_plain1 by
'contrib/'
[PowerPC] need to set CallFrameSize for the pass PPCReduceCRLogicals when insert a new block (#151017) In the [ [CodeGen] Store call frame size in MachineBasicBlock](https://reviews.llvm.org/D156113), it mentions When a basic block has been split in the middle of a call sequence. the call frame size may not be zero, it need to set the setCallFrameSize for the new MachineBasicBlock. but in the function `splitMBB(BlockSplitInfo &BSI)` in the llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp , it do not setCallFrameSzie for the new MachineBasicBlock `NewMBB`, we will setCallFrameSzie in the patch. the patch fix the crash mention in https://github.com/llvm/llvm-project/pull/144594#issuecomment-2993736654 This fixes "error in backend: Found 1 machine code errors" while crypto/openssh/packet.c for PowerPC64. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in
03-filenames_plain1 by
'contrib/'
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvm-project release/21.x llvmorg-21.1.8-0-g2078da43e25a, a.k.a. 21.1.8 release. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in
05-summary-prefix by 'Merge '
libcxx-compat: revert llvmorg-21-init-9130-g9e3982d9ae81:
[libc++] Replace __libcpp_{ctz, clz} with __builtin_{ctzg, clzg} (#133920)
`__libcpp_{ctz, clz}` were previously used as fallbacks for `__builtin_{ctzg, clzg}` to ensure compatibility with older compilers (Clang 18 and earlier), as `__builtin_{ctzg, clzg}` became available in Clang 19. Now that support for Clang 18 has been officially dropped in #130142, we can now safely replace all instances of `__libcpp_{ctz, clz}` with `__count{l,r}_zero` (which internally call `__builtin_{ctzg, clzg}` and eliminate the fallback logic.
Closes #131179.
This is part of making libc++ 21 build with clang 18.
PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067
MFC after: 1 month
debug: classified in
03-filenames_plain1 by
'contrib/'
libcxx-compat: revert llvmorg-21-init-15984-g650b451d0065: [libc++] Simplify the implementation of pointer_traits a bit (#142260) This is part of making libc++ 21 build with clang 18. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in
03-filenames_plain1 by
'contrib/'
libcxx-compat: revert llvmorg-19-init-5639-ga10aa4485e83: [libc++] Simplify the implementation of remove_reference (#85207) GCC 13 introduced the type trait `__remove_reference`. We can simplify the implementation of `remove_reference` a bit by using it. This is part of making libc++ 21 build with clang 18. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in
03-filenames_plain1 by
'contrib/'
libcxx-compat: revert llvmorg-21-init-10154-ge43e8ec7afbd: [libc++] Remove dead implementation of is_nothrow_convertible and merge the remaining code into is_convertible.h (#137717) We can use the `__is_nothrow_convertible` builtin unconditionally now, which makes the implementation very simple, so there isn't much of a need to keep a separate header around. This is part of making libc++ 21 build with clang 18. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in
03-filenames_plain1 by
'contrib/'
libcxx-compat: revert llvmorg-21-init-8400-g703cfe745b96: [libc++] Replace __libcpp_popcount by __builtin_popcountg (#133937) `__libcpp_popcount` was previously used as a fallback for `__builtin_popcountg` to ensure compatibility with older compilers (Clang 18 and earlier), as `__builtin_popcountg` became available in Clang 19. Now that support for Clang 18 has been officially dropped in #130142, we can now safely replace all instances of `__libcpp_popcount` with `__builtin_popcountg` and eliminate the fallback logic. This is part of making libc++ 21 build with clang 18. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in
03-filenames_plain1 by
'contrib/'
libcxx-compat: fix llvmorg-21-init-18351-gfcc09b6f0267: [libc++] Fix std::make_exception_ptr interaction with ObjC (#135386) Clang treats throwing/catching ObjC types differently from C++ types, and omitting the `throw` in `std::make_exception_ptr` breaks ObjC invariants about how types are thrown/caught. Fixes #135089 Co-authored-by: Louis Dionne <ldionne.2@gmail.com> Only use lambdas when in !defined(_LIBCPP_CXX03_LANG), so this will compile with clang 18 and lower, in C++03 mode and earlier. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in
03-filenames_plain1 by
'contrib/'
libcxx-compat: fix llvmorg-21-init-12415-g3a86e0bd29f3: [libc++] Optimize std::getline (#121346) ``` ----------------------------------------------- Benchmark old new ----------------------------------------------- BM_getline_string 318 ns 32.4 ns ``` Move the __bump_stream() lamda in <istream> to a separate function, so this will compile with clang 18 and lower, in C++03 mode and earlier. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in
03-filenames_plain1 by
'contrib/'
[Clang] Don't diagnose missing members when looking at the instantiating class template (#180725) The perfect matching patch revealed another bug where recursive instantiations could lead to the escape of SFINAE errors, as shown in the issue. Fixes https://github.com/llvm/llvm-project/issues/179118 This fixes compile errors in the www/qt5-webengine port. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in
03-filenames_plain1 by
'contrib/'
[Clang] Fix a regression introduced by #147046 (#150893) Static functions have an implicit object argument during deduction. This fixes an assertion while compiling the devel/corrade port. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in
03-filenames_plain1 by
'contrib/'
PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in
03-filenames_plain1 by
'contrib/'
[clang] create local instantiation scope for matching template template parameters (#183219) This fixes a bug where a partial substitution from the enclosing scope is used to prepopulate an unrelated template argument deduction. Fixes #181166 This fixes an expected error when building the devel/catch port. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in
03-filenames_plain1 by
'contrib/'
[libc++] Fix iostream size ABI break (#185839) In #124103 we changed the size of various iostream objects, which turns out to be ABI breaking when compiling non-PIE code. This ABI break is safe to fix, since for any programs allocating more memory for the iostream objects, the remaining bytes are simply unused now. Fixes #185724 This fixes the ABI break that causes programs that use the standard streams to terminate in various interesting ways, usually by throwing an unexpected std::bad_cast exception. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in
03-filenames_plain1 by
'contrib/'
[Headers][X86] Remove more duplicated typedefs (#153820) They are defined in mmintrin.h This fixes a -Werror warning in openzfs, which compiles for C99, and C99 does not allow for typedef redefinitions. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in
03-filenames_plain1 by
'contrib/'
PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in
03-filenames_plain1 by
'contrib/'
Add a volatile qualifier in the loop which triggers SIGBUS, as otherwise the compiler is smart enough to elide it, replacing it with a check for page != 0. MFC after: 1 week
debug: classified in
03-filenames_plain1 by
'contrib/'
Import tzdata 2026b
debug: classified in 00-reverts
by 'This reverts commit
\b([0-9a-fA-F]{40})\b'
Revert "Import tzdata 2026b" This reverts commit 5417f0bbde91c148b3c3982eb2ab23a675b5e8d1.
debug: classified in 00-reverts
by 'This reverts commit
\b([0-9a-fA-F]{40})\b'
speaker(4): move static data to bss Signed-off-by: Raphael Poss <knz@thaumogen.net> Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/1922
debug: classified in 00-reverts
by 'This reverts commit
\b([0-9a-fA-F]{40})\b'
Revert "speaker(4): move static data to bss" This reverts commit 690ef95b3354ac7a80aa469fa7a8f15f07962f83. The commit message was wrong.
debug: classified in 00-reverts
by 'This reverts commit
\b([0-9a-fA-F]{40})\b'
nda: Filter non-storage nvme drives Non-stroage drives have namespaces, but no storage attached. These drives have a different interface type than storage drives, so ignore them for the nvme_sim, which just handles storage. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D56461
debug: classified in 00-reverts
by 'This reverts commit
\b([0-9a-fA-F]{40})\b'
Revert "nda: Filter non-storage nvme drives" This reverts commit b40205855e100a4bd95f89e97c15d268ef5b3a35. There's an aparent path lifetime issue in it that needs to be investigated. Sponsored by: Netflix
debug: classified in 00-reverts
by 'This reverts commit
\b([0-9a-fA-F]{40})\b'
imgact_elf: Fix uninitialized variable use in note_procstat_auxv Found building with latest clang MFC after: 3 days
debug: classified in 00-reverts
by 'This reverts commit
\b([0-9a-fA-F]{40})\b'
Revert "imgact_elf: Fix uninitialized variable use in note_procstat_auxv" This reverts commit 753a166bdeb3aeba02fd9678e7360f0929007368. It appears to be unnecessary now.
debug: classified in 00-reverts
by 'This reverts commit
\b([0-9a-fA-F]{40})\b'
Revert "libcxx-compat: update libcxx.imp for headers that were reintroduced by reverts" This reverts commit caf0ccccc304e3e7938c9722f1deb0a362fd70d5, in preparation for merging llvm 21. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in 00-reverts
by 'This reverts commit
\b([0-9a-fA-F]{40})\b'
Revert "libcxx-compat: install headers that were reintroduced by reverts" This reverts commit 8ad38d5eb3985ef778a7d36093878b0b373ccedf, in preparation for merging llvm 21. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in 00-reverts
by 'This reverts commit
\b([0-9a-fA-F]{40})\b'
Revert "libcxx-compat: don't remove headers that were reintroduced by reverts" This reverts commit 2b3703a4f4519e202c3bdf12e7e13d9b5fdbc3f3, in preparation for merging llvm 21. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in 00-reverts
by 'This reverts commit
\b([0-9a-fA-F]{40})\b'
Revert "libcxx-compat: revert llvmorg-19-init-4003-g55357160d0e1:" This reverts commit fd17362f6225085e60eabed8af7421838100b457, in preparation for merging llvm 21. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in 00-reverts
by 'This reverts commit
\b([0-9a-fA-F]{40})\b'
Revert "libcxx-compat: revert llvmorg-19-init-4504-g937a5396cf3e:" This reverts commit a7455c47801ea1e4c4eed10cab2072375f6f92a2, in preparation for merging llvm 21, in preparation for merging llvm 21. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in 00-reverts
by 'This reverts commit
\b([0-9a-fA-F]{40})\b'
Revert "libcxx-compat: revert llvmorg-19-init-5639-ga10aa4485e83:" This reverts commit 267fa9ab814c23ca97b8b7e1740f4da51485ac72, in preparation for merging llvm 21. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in 00-reverts
by 'This reverts commit
\b([0-9a-fA-F]{40})\b'
Revert "libcxx-compat: revert llvmorg-19-init-8667-g472b612ccbed:" This reverts commit f7570f1eb0dc056dfce9d7500157538c670edaf6, in preparation for merging llvm 21. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in 00-reverts
by 'This reverts commit
\b([0-9a-fA-F]{40})\b'
Revert "libcxx-compat: revert llvmorg-19-init-17473-g69fecaa1a455:" This reverts commit cab3680acf8e6ea40c686d4f26db4429e26a5331, in preparation for merging llvm 21. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in 00-reverts
by 'This reverts commit
\b([0-9a-fA-F]{40})\b'
Revert "libcxx-compat: revert llvmorg-19-init-17727-g0eebb48fcfbc:" This reverts commit f12b6acbe1ea1c425c0e21d80097115e4ad33017, in preparation for merging llvm 21. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in 00-reverts
by 'This reverts commit
\b([0-9a-fA-F]{40})\b'
Revert "libcxx-compat: revert llvmorg-19-init-17728-g30cc12cd818d:" This reverts commit 198b947ebc6834eade6acc52c5441a38693b8822, in preparation for merging llvm 21. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in 00-reverts
by 'This reverts commit
\b([0-9a-fA-F]{40})\b'
Revert "libcxx-compat: revert llvmorg-19-init-17853-g578c6191eff7:" This reverts commit 2facc097b9b28a81b925c924f27f09b40f29fd4d, in preparation for merging llvm 21. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in 00-reverts
by 'This reverts commit
\b([0-9a-fA-F]{40})\b'
Revert "libcxx-compat: revert llvmorg-19-init-18062-g4dfa75c663e5:" This reverts commit 6933315cf57fc3f505431bff7a0075df471d7453, in preparation for merging llvm 21. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in 00-reverts
by 'This reverts commit
\b([0-9a-fA-F]{40})\b'
Revert "libcxx-compat: revert llvmorg-19-init-18063-g561246e90282:" This reverts commit 1d99ada3215dbc28665fe051f9ccf028a2a02ce8, in preparation for merging llvm 21. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292067 MFC after: 1 month
debug: classified in 00-reverts
by 'This reverts commit
\b([0-9a-fA-F]{40})\b'
loader.efi(8): Document LoaderEnv and NextLoaderEnv EFI variables Describe how the LoaderEnv and NextLoaderEnv variables can be used. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293054 Reviewed by: imp Sponsored by: Wiesbaden Hackathon 202604 Differential Revision: https://reviews.freebsd.org/D56633
debug: classified in 00-reverts
by 'This reverts commit
\b([0-9a-fA-F]{40})\b'
Revert "loader.efi(8): Document LoaderEnv and NextLoaderEnv EFI variables" This reverts commit cf7d4b04e9ae890f2a0f5811234e926f75a0c237. I attributed the wrong author of the patch.
debug: classified in 00-reverts
by 'This reverts commit
\b([0-9a-fA-F]{40})\b'
Not classified automatically, and waiting for manual attention.
-- no commits in this category this week --
Dates:
cgit.freebsd.org/src. Git accurately records the
order of commits, but not their dates.Automatic grouping:
This reverts commit \\b([0-9a-fA-F]{40})\\b
and the hash was found in this week's commits.
Automatic categories:
Source code:
Generated with commits-periodical 0.20 at 2026-05-11 20:37:52+00:00.
This work is supported by Tarsnap Backup Inc.
Alternate version: 2026-04-20 (release)