This is a display of mostly-automatically-classified git commits from 2026-09-07 to 2026-09-13.
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:
| (3) | Highlighted commits (these are copies, not in stats) | |
| 0 | 0.0% | Userland programs |
| 36 | 16.1% | Documentation |
| 58 | 26.0% | Hardware support |
| 15 | 6.7% | Networking |
| 34 | 15.2% | System administration |
| 9 | 4.0% | Libraries |
| 1 | 0.4% | Filesystems |
| 37 | 16.6% | Kernel |
| 9 | 4.0% | Build system |
| 5 | 2.2% | Internal organizational stuff |
| 6 | 2.7% | Testing |
| 5 | 2.2% | Style, typos, and comments |
| 6 | 2.7% | Contrib code |
| 2 | 0.9% | Reverted commits |
| 0 | 0.0% | Unclassified commits |
| 223 | 100% | total |
| Technical notes about this page |
debug: info about the automatic classification
| num | % | num changed | stage |
|---|---|---|---|
| 2 | 0.9% | 0 | 00-reverts |
| 6 | 2.7% | 0 | 01-style |
| 41 | 18.4% | 0 | 02-filenames_wildcards |
| 4 | 1.8% | 0 | 02b-filenames_wildcards2 |
| 109 | 48.9% | 0 | 03-filenames_plain1 |
| 49 | 22.0% | 0 | 04-filenames_plain2 |
| 2 | 0.9% | 0 | 05-summary-prefix |
| 10 | 4.5% | 0 | Manually-classified commits |
| 0 | 0.0% | 0 | Unclassified commits |
debug: more stats
| num | % | stage |
|---|---|---|
| 0 | 0.0% | Misclassified commits |
| 213 | 95.5% | Classified commits, no corrections |
debug: groups
| 2 | 0.9% | num in revert |
| 2 | 0.9% | num in fixes |
| 44 | 19.7% | num in consecutive |
| 48 | 21.5% | 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.
Desktop AMIs have xrdp enabled and boot to a KDE desktop; they are as compatible as possible with EC2 Windows AMIs, setting a random password and printing it to the console in encrypted format to be retrieved using the EC2 GetPasswordData API. Two rc.d scripts are included in this commit which will not exist in the long term: ec2_addpass will become part of the ec2-scripts package, and ec2_desktop_extras will go away once its functionality is included elsewhere. MFC After: 1 month Relnotes: yes Sponsored by: Amazon
debug: classified in
02-filenames_wildcards by '['.*Makefile',
'release/.*']'
Accept and validate the ipv6only option. When dhclient receives this option and IPv6 connectivity is available, stop the DHCP configuration process and wait for the duration specified by the option before restarting DHCP discovery. If the address was previously leased, disassociate it and send a DHCPRELEASE packet. Use netlink to check for IPv6 connectivity. Also, unregister ignored options from default PRL. Reviewed by: ziaee, kfv Tested by: Marek Zarychta <zarychtam@plan-b.pwste.edu.pl> Relnotes: yes Differential Revision: https://reviews.freebsd.org/D56637
debug: classified in
03-filenames_plain1 by 'sbin/'
tpm(4) was removed from amd64 GENERIC because it broke suspend and resume. The preceding lifecycle, state-save, interrupt, locality, and teardown fixes address those failures for both TPM 1.2 and TPM 2.0. Restore the driver to amd64 GENERIC and MINIMAL, where TPM entropy harvesting remained enabled. Enable the driver and entropy harvesting in the MPC85XX and QORIQ64 configurations, which already provide FDT, spibus, and the platform SPI controller required by FDT-attached TPMs. Leave the generic AIM and POWER configurations unchanged because they have no TPM attachment bus. The TPM 1.2 path completed repeated S3 cycles and command tests on ThinkPad T430 and T440p systems. The TPM 2.0 path completed repeated device and full-system suspend/resume cycles on a ThinkPad P51. The PowerPC configuration matrix was checked to retain tpm(4) only where its FDT SPI attachment path is present. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=291067 Reviewed by: kevans Tested by: Marek Zarychta <zarychtam_plan-b.pwste.edu.pl> (tpm1.2) Fixes: https://cgit.freebsd.org/src/commit/?id=16f8ea6a81b5 ("amd64: Remove tpm(4) from GENERIC for now") MFC after: 1 month Relnotes: yes Sponsored by: BBOX.io Differential Revision: https://reviews.freebsd.org/D59247
debug: classified in
03-filenames_plain1 by '['sys/amd64/',
'sys/powerpc/']'
Commits about commands found in man section 1 (other than networking).
-- no commits in this category this week --
Man pages, release notes, etc.
An unbraced pipe list made -n look like it could take a uid (or gid). Use braces for a single choice of name or id, and keep -u newuid / -g newgid on the name invocation only. Drop the USER/GROUP OPTIONS sentences that said -n could be a numeric id. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=269193 MFC after: 3 days Reviewed by: bapt Differential Revision: https://reviews.freebsd.org/D59472
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
Driver-specific extension namespaces are optional. Describe their role without implying that every provider supplies one. Clarify that the VLAN count excludes membership installed implicitly by the PF without implying that an explicit VID 0 request cannot consume a reported filter. Sponsored by: BBOX.io
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
Reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D59349
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
MFC after: 3 days Event: Berlin Hackathon 202609
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
MFC after: 3 days Reported by: Artem Bunichev <temcbun@gmail.com> Differential Revision: https://reviews.freebsd.org/D58329
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=261496 Fixes: https://cgit.freebsd.org/src/commit/?id=554442439dd0 ("Change the memory heuristics") MFC after: 3 days Reported by: wosch
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
Since apropos(8) uses case-insensitive regular expressions by default for both manpage names and descriptions, pfctl appears in results regardless of the parenthetical initialism. MFC after: 1 week Reported by: ziaee@
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=298348 MFC after: 2 weeks
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
rc.conf.5: Improve NOAUTO configuration + tag SPDX - Show how to start a NOAUTOed interface - "configured" is not quite right, try to improve that MFC after: 3 days Event: EuroBSDcon Devsummit 2026 Reviewed by: adrian Discussed with: Antranig Vartanian <antranigv@freebsd.am> Differential Revision: https://reviews.freebsd.org/D59571
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
rc.conf.5: Fix typo Fixes: https://cgit.freebsd.org/src/commit/?id=fa7094c5b06f ("Improve NOAUTO configuration") MFC after: 3 days Reported by: Herbert J. Skuhra <herbert@gojira.at> Event: EuroBSDcon Devsummit 2026
debug: classified in 01-style
by '[tT]ypo'
debug: moved to doc because
'Need to be grouped with
fa7094c5b06fe31a025906bcee922a46c1b36ed6'
While here, tag SPDX. Event: EuroBSDcon Devsummit 2026 MFC after: 3 days Reviewed by: wulf Differential Revision: https://reviews.freebsd.org/D59256
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
The resume callback also runs when suspend fails, without an intervening PCI power-state transition or configuration-space restore. Document that drivers must not assume either has occurred. MFC after: 2 weeks Sponsored by: BBOX.io
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
- remove old wifi drivers, these are very old and we have many more - add quick start guide to connecting to wifi Event: EuroBSDCon 2026 MFC after: 3 days Reviewed by: bz, emaste Differential Revision: https://reviews.freebsd.org/D59615
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
Update case synopsis, split description into paragraphs, improve markup, light wordsmithing, and import exit status line from NetBSD. While here, remove the '-' from the beginning of this document. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=298329 Event: EuroBSDcon 2026 Fixes: https://cgit.freebsd.org/src/commit/?id=c9afaa63894e ("Add case statement fallthrough") Fixes: https://cgit.freebsd.org/src/commit/?id=f7a9b7fe3a8d ("Allow a left parenthesis before patterns in case blocks") Fixes: https://cgit.freebsd.org/src/commit/?id=e00e16ad7f86 ("Allow empty case/esac statements") MFC after: 3 days Reviewed by: bcr, jilles, Artem Bunichev <temcbun@gmail.com> Differential Revision: https://reviews.freebsd.org/D59518
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
glabel.8: clarify volume labels, metadata identifiers, and generic GEOM labels Change description of manual page to add precision. Split out filesystem, GPT and GEOM labels. Give an example for each filesystem for the program to show how to set a label. Clarify examples and use ada device names consistently. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=262207 Differential Revision: https://reviews.freebsd.org/D51030
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
glabel.8: Fix description, improve table, tag spdx - restore missing search keyword "disk", GEOM provider is a lgoical disk - editorial nits on file system table to improve search and rendering - correct msdosfs terminology, they are FAT filesystems - use consistent spelling of filesystem Fixes: https://cgit.freebsd.org/src/commit/?id=05a2d40ac240 Event: EuroBSDcon 2026 MFC after: 3 days Discussed with: bcr, vishwin
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
Many of our man pages contain links to websites that are still using http. Convert them to use https. I skipped those that: - were not available anymore, - did not provide an SSL page, - had caused an SSL validation error, - were not the original link anymore (i.e. aquisition) - where the site structure had changed, causing 404s on the new site Event: EuroBSDcon 2026 Reviewed by: carlavilla (very fast, thanks for that) Differential Revision: https://reviews.freebsd.org/D59629
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
Event: EuroBSDcon 2026 MFC after: 3 days
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
Event: EuroBSDcon 2026 MFC after: 3 days
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
Event: EuroBSDcon 2026 MFC after: 3 days
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
Event: EuroBSDcon 2026 MFC after: 3 days
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
Sections are in all caps, and subsections are in title case. Sections also have a standard order. This manual could certainly be reformatted more to conform further to our conventions, but this is a step in the right direction. While here, remove the stray hyphen from the beginning of this document. Event: EuroBSDcon 2026 MFC after: 3 days
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
Event: EuroBSDcon 2026 MFC after: 3 days
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
Event: EuroBSDcon 2026 MFC after: 3 days
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
Event: EuroBSDcon 2026 MFC after: 3 days
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
Event: EuroBSDcon 2026 MFC after: 3 days
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
Event: EuroBSDcon 2026 MFC after: 3 days
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
Event: EuroBSDcon 2026 MFC after: 3 days
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
Event: EuroBSDcon 2026 MFC after: 3 days
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
Event: EuroBSDcon 2026 MFC after: 3 days
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
Event: EuroBSDcon 2026 MFC after: 3 days
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
Event: EuroBSDcon 2026 MFC after: 3 days
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
Also, add the missing blank comment line at the top of the file. Event: EuroBSDcon 2026 MFC after: 3 days
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
Hardware drivers and architecture-specific code.
The shared code already recognizes IAVF_DEV_ID_VF_HV and handles it through the regular iavf register and virtchnl paths, but the PCI probe table omits it. Add the missing entry so the driver attaches. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=239849 MFC after: 1 week
debug: classified in
03-filenames_plain1 by
'sys/dev/'
iflib releases queue mappings after IFDI_STOP() returns. If a Physical Function reset fails, returning with PCI bus mastering enabled can therefore leave the device able to access mappings which the framework is about to recycle. Disable bus mastering and drain pending PCIe transactions when reset fails during initialization or stop. Re-enable and verify bus mastering only after a later reset succeeds and before queue programming begins. Treat inability to establish the DMA fence as a fail-stop invariant violation. MFC after: 2 weeks Sponsored by: BBOX.io
debug: classified in
03-filenames_plain1 by
'sys/dev/'
dsp_chn_alloc() stopped at the first primary channel that was either idle or already had vchans. Since the list is walked in order, the first channel matched both conditions once it had been used, so every client after the first was stacked onto it as a vchan and the remaining primary channels were never allocated at all. This is invisible on devices with a single primary channel, but not on those which provide several. snd_emu10kx(4), for instance, registers four primary channels for its front device, each able to run with its own rate. Look for an idle primary channel first, and only fall back to sharing one that already has vchans when there is none left. Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D59084
debug: classified in
03-filenames_plain1 by
'sys/dev/'
Makes it easier to test scenarios involving more than 1 primary channels per direction. Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D59085
debug: classified in
03-filenames_plain1 by
'sys/dev/'
The playback voices always loop over the whole EMU_PLAY_BUFSZ buffer, but emupchan_setblocksize() only recorded the new block size and left the block count as it was set up by emu_vinit(). The blocks then no longer covered the whole buffer, and the part they left out was played without ever being written to, which became audible as distortion once playback started going through a virtual channel. Resize the buffer, so that the block count and size always cover it. Fixes: https://cgit.freebsd.org/src/commit/?id=02d4eeabfd73 ("sound: Allocate vchans on-demand") PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=287687 MFC after: 1 week Sponsored by: The FreeBSD Foundation Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D59444
debug: classified in
03-filenames_plain1 by
'sys/dev/'
We don't consistently clear PGA_WRITEABLE on fictitious, managed pages. Some functions do, e.g., pmap_remove_all(), but several do not. At worst, this is just a pessimization, but there is no good reason to be inconsistent. Clear PGA_WRITEABLE in those that previously did not by introducing (and using) the helper function pmap_page_is_mapped_locked() that implements the correct test. Reviewed by: kib, markj MFC after: 3 weeks Differential Revision: https://reviews.freebsd.org/D59466
debug: classified in
03-filenames_plain1 by '['sys/amd64/',
'sys/arm64/']'
create_rss_raw_qp_tir() wrote MLX5_RX_HASH_FUNC_TOEPLITZ (the userspace ABI flag, value 1) into tirc.rx_hash_fn. That field takes the hardware encoding from mlx5_ifc.h, where 1 is INVERTED_XOR8 and Toeplitz is MLX5_TIRC_RX_HASH_FN_HASH_TOEPLITZ (2). Reviewed by: kib, slavash Sponsored by: Nvidia Networking MFC after: 1 week
debug: classified in
03-filenames_plain1 by
'sys/dev/'
USB Vendor:Product 0x2357:0x0115 The data was provided by Pavel Timofeev (timp87 gmail com) and the device will be supported by rtw88 USB (rtw8822bu.c) in the future. MFC after: 3 days
debug: classified in
03-filenames_plain1 by
'sys/dev/'
bce_vhci_endpoint_create() was registering both the IN and OUT submission queues on every call, regardless of which direction the endpoint actually needed. The per-stage firmware registration failures weren't rate-limited, so a stuck registration will spam the console. Tested on: MacBookPro15,2 Macmini8,1 MacBookPro15,3 MacBookPro16,2 Reviewed by: adrian Differential Revision: https://reviews.freebsd.org/D58831
debug: classified in
03-filenames_plain1 by
'sys/dev/'
The Create I/O queue commands carried magic 0x1/0x3 cdw11 values, and the implicit QPRIO of zero classifies every I/O queue Urgent the moment weighted round robin arbitration is enabled. No functional change with the round robin default. Approved by: ngie (co-mentor) Reviewed by: ngie, imp, adrian Differential Revision: https://reviews.freebsd.org/D59153
debug: classified in
03-filenames_plain1 by
'sys/dev/'
MAXCMD is the maximum number of commands the controller processes at one time for a particular I/O queue. Allocating more trackers than that only queues commands inside the controller. Controllers reporting 0 are unaffected. Approved by: ngie (co-mentor) Reviewed by: ngie, imp Differential Revision: https://reviews.freebsd.org/D59154
debug: classified in
03-filenames_plain1 by
'sys/dev/'
The original implementation assumed that the start/reply doorbells lived within the device _CRS space, but that isn't always the case. On my AMD Ryzen 7640U-based frame.work laptop, device memory runs from 0xc0500000-0xc0500fff while the doorbells are up around 0xc0508000. Stop sanity checking the addresses and just map them in to work reliably whether they're within the device range or not. pluton_wait_reply is cribbed from tpm_wait_for_u32, but rewritten slightly to read in just one place and to read one last time before giving up at the end of the timeout, just in case. Reviewed by: kbowling Differential Revision: https://reviews.freebsd.org/D59327
debug: classified in
03-filenames_plain1 by
'sys/dev/'
arm64: Fix the CTR_EL0 field names Use the field names from the Arm Documentation for the CTR_EL0 register. These will later be generated from a BSD Licensed JSON file so to reduce the diff for that rename now. Reviewed by: Kajetan Puchalski <kajetan.puchalski@arm.com> Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D59173
debug: Commit manually moved from "unknown" to "hardware".
arm64: Fix the ICC_SGI1R_EL1 field names Use the field names from the Arm Documentation for the ICC_SGI1R_EL1 register. These will later be generated from a BSD Licensed JSON file so to reduce the diff for that rename now. Reviewed by: Kajetan Puchalski <kajetan.puchalski@arm.com> Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D59174
debug: classified in
03-filenames_plain1 by
'sys/arm64/'
arm64: Fix the ID_AA64MMFR1_EL1.CMOW name This was incorrectly names CMOVW. Remove the unneeded 'V'. Reviewed by: Kajetan Puchalski <kajetan.puchalski@arm.com> Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D59175
debug: classified in
03-filenames_plain1 by
'sys/arm64/'
arm64: Remove ID_AA64PFR0_GIC_BITS
It's unused since 05f6f65c3bda ("arm64: add CHECK_CPU_FEAT() for
checking feature support in assembly"). It's been replaces with a
commonly named ID_AA64PFR0_GIC_WIDTH macro.
Reviewed by: Kajetan Puchalski <kajetan.puchalski@arm.com>
Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D59177
debug: classified in
03-filenames_plain1 by
'sys/arm64/'
arm64: Rename some ID_AA64DFR0_EL1 macros These macros are used to extract the number of breakpoints and watchpoints from the register. Rename them to not conflict with the common meaning of an _VAL macro in this file. Reviewed by: Kajetan Puchalski <kajetan.puchalski@arm.com> Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D59178
debug: classified in
03-filenames_plain1 by
'sys/arm64/'
arm64: Add ICC_SGI1R_IRM_VAL and use it This will be the name of the generated macro. As we only need to check if this field is set or not use the common ICC_SGI1R_IRM_VAL name. Reviewed by: Kajetan Puchalski <kajetan.puchalski@arm.com> Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D59179
debug: classified in
03-filenames_plain1 by
'sys/arm64/'
arm64: Fix the capitalization of CurrentEL Use the same capitalization as the Arm documentation. Reviewed by: Kajetan Puchalski <kajetan.puchalski@arm.com> Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D59180
debug: classified in
03-filenames_plain1 by
'sys/arm64/'
arm64: Move the CNTV_CTL_EL0 fields to armreg.h They are architecturally defined, so should be in the common location. Reviewed by: emaste, Kajetan Puchalski <kajetan.puchalski@arm.com> Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D59181
debug: classified in
03-filenames_plain1 by
'sys/arm64/'
ICH_VTR_EL2.PREbits contains the number of virtual preemption bits implemented minus one, analogous to ICH_VTR_EL2.PRIbits. Unlike PRIbits, the macro for PREbits does not account for "minus one". Make the two match. Signed-off-by: Kajetan Puchalski <kajetan.puchalski@arm.com> Reviewed by: andrew Sponsored by: Arm Ltd Pull Request: https://github.com/freebsd/freebsd-src/pull/2391
debug: classified in
03-filenames_plain1 by
'sys/arm64/'
Fix incorrect opcode on CLIDR_EL1. Signed-off-by: Kajetan Puchalski <kajetan.puchalski@arm.com> Reviewed by: andrew Sponsored by: Arm Ltd Pull Request: https://github.com/freebsd/freebsd-src/pull/2400
debug: classified in
03-filenames_plain1 by
'sys/arm64/'
pmap_stage2_fault is supposed to invalidate the icache if it is accessing an executable page. Instead, the condition currently checks whether execution is disallowed at any EL. Make it check whether execution is allowed at any EL to match the intended behaviour. Signed-off-by: Kajetan Puchalski <kajetan.puchalski@arm.com> Reviewed by: andrew Sponsored by: Arm Ltd Pull Request: https://github.com/freebsd/freebsd-src/pull/2416
debug: classified in
03-filenames_plain1 by
'sys/arm64/'
Reviewed by: andrew Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D59170
debug: classified in
03-filenames_plain1 by
'sys/arm64/'
Reviewed by: andrew Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D59168
debug: classified in
03-filenames_plain1 by '['sys/arm64/',
'sys/dev/']'
Reported by: alc Tested by: alc Reviewed by: andrew Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D59476
debug: classified in
03-filenames_plain1 by
'sys/arm64/'
Add support for reading the MPERF (MSR 0xE7) and APERF (MSR 0xE8) model-specific registers on AMD/Intel CPUs through hwpmc(4). These counters track maximum and actual performance frequency respectively, and are used to compute effective CPU frequency scaling independent of the nominal TSC rate. The name of the class was chosen as PERF because later support for other PERF MSRs can be added to the same class. Extend libpmc(3) to expose the AMD/Intel MPERF/APERF counters added to hwpmc(4) in the companion kernel change, so userland consumers (pmcstat(8), etc.) can allocate and read these events by name. Document the new PERF class and its MPERF/APERF counters in a new pmc.perf.3 manual page, describing their semantics and how to read them via pmc(3) and pmcstat(8). Bump PMC_VERSION_MINOR. Signed-off-by: Anderson Nascimento <anascime@amd.com> Reviewed by: Ali Mashtizadeh <ali@mashtizadeh.com>, mhorne Reviewed by: ziaee (manpages) Sponsored by: AMD Differential Revision: https://reviews.freebsd.org/D58647
debug: classified in
03-filenames_plain1 by '['lib/libpmc/',
'sys/amd64/', 'sys/dev/', 'sys/sys/pmc.h']'
Previously each channel allocated its own set of buffers using the channel's DMA tag which causes a DMA lock contention under load. Even a single saturated 1 Gbps link caused ~50,000 adaptive mutex spin events (as per lockstat) per second. With the proposed approach there's no more contention on the channel's DMA mutex and the adaptive mutex spin events dropped to ~6,000/s. Stress test where iperf3 pushed as much traffic as possible to the 4 ports revealed that throughput drops from expected 940 Mbps down to 600-800 on each link with the "bounce pages lock" generating ~110,000 adaptive mutex spin events per second, but this is to be addressed later on. Tested by: flo_purplekraken.com, gnikl_justmail.de, bofh@ MFC after: 3 weeks Differential Revision: reviews.freebsd.org/D59463 Event: EuroBSDcon Devsummit 2026
debug: classified in
03-filenames_plain1 by
'sys/dev/'
Reviewed by: dsl Approved by: dsl Obtained from: flo_purplekraken.com MFC after: 3 weeks Differential Revision: https://reviews.freebsd.org/D59497 Event: EuroBSDcon Devsummit 2026
debug: classified in
03-filenames_plain1 by
'sys/dev/'
This fixes the build with gcc 16 after the changes to -Wunused*[0]. [0] https://gcc.gnu.org/gcc-16/porting_to.html#changes-to-wunused Reviewed by: np MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D59545
debug: classified in
03-filenames_plain1 by
'sys/dev/'
Commit 851dffef532a added the Lunar Lake-M I2C controllers 0 through 3 (0xa878-0xa87b), which sit on PCI device 0x15. The platform exposes two further controllers at 0xa850 and 0xa851 on PCI device 0x19, reported by Intel as I2C #4 and #5. This mirrors the layout already handled for Arrow Lake-U, where both the 0x777x and 0x775x ranges are listed. On an HP OmniBook X Flip 16-as0xxx (Core Ultra 9 288V) the firmware enables only four of the six controllers, and both HID devices sit on the two that were missing: an ELAN2514 touchscreen on controller 4 and a SYNA3503 touchpad on controller 5. Neither attaches without this change, so the machine has no working pointing device. Like the other four, these use the Tiger Lake revision of the I2C IP; Linux treats 0xa850/0xa851 identically to 0xa878-0xa87b in intel-lpss-pci.c. Tested on: HP OmniBook X Flip 16-as0xxx (Intel Core Ultra 9 288V) Reviewed by: vexeduxr MFC after: 2 weeks Signed-off-by: Kang Kang <kk1987@gmail.com> Pull Request: https://github.com/freebsd/freebsd-src/pull/2406
debug: classified in
03-filenames_plain1 by
'sys/dev/'
If we skip one of the constraint package elements and decrement sc->constraint_count, sc->constraints would end up sparse and some of our constraints would be put after sc->constraint_count. Reviewed by: olce Sponsored by: The FreeBSD Foundation Event: EuroBSDCon Devsummit 2026 Differential Revision: https://reviews.freebsd.org/D59562
debug: classified in
03-filenames_plain1 by
'sys/dev/'
AMD doesn't encode page depth in eptp. As a result, the page level is decided by the host la57 value. Without this, it uses 4 level page and therefore cause machine enable la57 have garbage page translation. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=291768 Reviewed by: kib Tested by: Antranig Vartanian <antranigv@freebsd.am> MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D57978
debug: classified in
03-filenames_plain1 by
'sys/amd64/'
Add a driver for the Sony PS5 DualSense controller (054c:0ce6) providing gamepad input via evdev, lightbar RGB LED control, and player indicator LEDs through sysctl. Signed-off-by: Christos Longros <chris.longros@gmail.com> Reviewed by: ziaee, wulf MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D56345
debug: Commit manually moved from "unknown" to "hardware".
The firmware recovery callout continues polling controller registers after a power transition. An inaccessible E610 GL_MNG_FWSM register reads as all ones in D3, which looks like firmware recovery mode and queues an iflib reset while the device is suspended. A later D0 poll then reports recovery complete and queues another reset. Pause and drain the callout before terminal stop policy is applied, prevent an in-flight callback from rearming it, and restart polling only after resume has cleared the wake state. Track callout initialization so partial attach cleanup does not drain an uninitialized callout. The false transition was reproduced on a dual-port E610 with direct D3 and system S3. Validate the guard with wake-disabled and wake-armed D3, three repeated D3 cycles per port, and an S3 magic-packet wake. Both ports returned to D0 without a false recovery transition. MFC after: 2 weeks Sponsored by: BBOX.io
debug: classified in
03-filenames_plain1 by
'sys/dev/'
Do not let iflib publish a running interface when the virtual device rejected its enable command. Mark initialization failed and leave the interface stopped. MFC after: 2 weeks Sponsored by: BBOX.io
debug: classified in
03-filenames_plain1 by
'sys/dev/'
ixl_set_state() takes a bit index, not a bit mask. ORing the reset request and critical error indices produced the global reset index, so a critical interrupt could mask its cause without scheduling the intended PF reset. Set both state bits explicitly. MFC after: 2 weeks Sponsored by: BBOX.io
debug: classified in
03-filenames_plain1 by
'sys/dev/'
PF iflib callbacks receive struct ice_softc, not struct ice_mirr_if. Resolve the mirror interface through sc->mirr_if before checking or resetting subinterface state. Use the same mirror softc when rebuilding its VSI. This records the required subinterface reset in the state consumed by the PF callback, rather than overlaying the PF softc and leaving rebuilt queues stopped. MFC after: 2 weeks Sponsored by: BBOX.io
debug: classified in
03-filenames_plain1 by
'sys/dev/'
Rebuilding the Flow Director tables does not initialize the interface or restore its queues. Do not set IFF_DRV_RUNNING from that operation: iflib owns the flag, and may have cleared it while a watchdog reset is pending. Restoring it here could admit traffic before the deferred stop and initialization have run. Keep the table rebuild and Flow Director interrupt re-enable unchanged. This path is conditional on IXGBE_FDIR. MFC after: 2 weeks Sponsored by: BBOX.io
debug: classified in
03-filenames_plain1 by
'sys/dev/'
debug: classified in
03-filenames_plain1 by
'sys/powerpc/'
Add a new "high temp" threshold below the max temp, in order to ramp the fans (or pump for liquid cooled quads) sooner, and avoid the maximum temperature. From the PR, this makes older G5 quads louder, but usable, instead of hitting max temperature and forcing a thermal shutdown. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=209202 Submitted by: gmbroome (PR)
debug: classified in
03-filenames_plain1 by
'sys/powerpc/'
The dongle uses the rtl8723bu chip. Also add an entry for it in usbdevs.
debug: classified in
03-filenames_plain1 by
'sys/dev/'
No functional change, just simplify the code flow a little.
debug: classified in
03-filenames_plain1 by
'sys/dev/'
Machine check and critical exceptions are independent of each other, and can interrupt each other. Since they're asynchronous we cannot trust that the existing stack pointer (%r1) is correct at time of entry, so add a private machine check stack separate from the critical exception stack. As part of this, switch to the STANDARD_CRIT_PROLOG() for machine check exceptions, and overload the macro to specify the stack to switch to. Also add a savearea argument to CRIT_SRR_RESTORE() so that we can restore machine check exception state from the right location.
debug: classified in
03-filenames_plain1 by
'sys/powerpc/'
Some firmware inexplicably decides to do non-standard and annoying stuff
here, e.g. the Fujitsu Futro S940 with an Intel Pentium J5005 sometimes
returns the following when calling the DEVICE_CONSTRAINTS function on
the Intel DSM:
Return (Package (0x01)
{
Zero
})
(Package elements here are supposed to be constraint packages, not just a
single value.)
First reported in the following forum post:
https://forum.netgate.com/topic/201090/2.9.0-beta-leads-to-kernel-panic-on-boot
Reported by: TampertK on forum.netgate.com
Reviewed by: olce
Sponsored by: The FreeBSD Foundation
Event: EuroBSDCon Devsummit 2026
Differential Revision: https://reviews.freebsd.org/D59566
debug: classified in
03-filenames_plain1 by
'sys/dev/'
Also match behaviour with Intel constraint parsing by skipping malformed constraints instead of failing hard. Reviewed by: olce Sponsored by: The FreeBSD Foundation Event: EuroBSDCon Devsummit 2026 Differential Revision: https://reviews.freebsd.org/D59568
debug: classified in
03-filenames_plain1 by
'sys/dev/'
MMUCFG::PIDSIZE is the TID field size less 1, so adjust to get the full width.
debug: classified in
03-filenames_plain1 by
'sys/powerpc/'
QEMU doesn't appear to emulate the MMUCFG register for Book-E CPUs, so give a sane small default of 7, for an 8 bit PID register.
debug: classified in
03-filenames_plain1 by
'sys/powerpc/'
The ASUS PRIME X570-P carries a Nuvoton NCT6798D, Super I/O device ID 0xd42b. Add an exact-match entry to both. Exact rather than masked: the neighboring 0xd42a entries are deliberately exact with an extid because that ID is claimed by both NCT6796D-E and NCT5585D, and widening the family would make them collide. The NCT6798D has seven tachometers, so raise NCTHWM_FAN_MAX to seven and describe the two extra ones; existing entries keep fan_count = 5 and are unaffected. Fan names follow the NCT6779 convention and do not map to any board's physical headers. Tested on: ASUS PRIME X570-P, Ryzen 9 5950X, FreeBSD 16.0-CURRENT. Approved by: adrian Reviewed by: stephane.rochoy_stormshield.eu, adrian Differential Revision: https://reviews.freebsd.org/D58291 Signed-off-by: Nick Price <nprice@FreeBSD.org>
debug: classified in
03-filenames_plain1 by
'sys/dev/'
puc has preferred MSI for every card since MSI support was added, with only a global tunable to opt out. uart(4) makes the same decision for the serial devices it attaches directly, and has since grown two defences: it skips MSI unless the device advertises exactly one vector, because attaching a single instance to a device offering many has caused problems (PR 235016), and it lets individual devices be flagged when they claim MSI support that does not work. Adopt both. Approved by: adrian (mentor) Reviewed by: adrian Differential Revision: https://reviews.freebsd.org/D59623 Signed-off-by: Nick Price <nprice@FreeBSD.org>
debug: classified in
03-filenames_plain1 by
'sys/dev/'
Two 16850 UARTs in the first I/O BAR at offset 0xc0, 8 bytes apart. Approved by: adrian (mentor) Reviewed by: imp, adrian Differential Revision: https://reviews.freebsd.org/D59512 Signed-off-by: Nick Price <nprice@FreeBSD.org>
debug: classified in
03-filenames_plain1 by
'sys/dev/'
tpm(4) was removed from amd64 GENERIC because it broke suspend and resume. The preceding lifecycle, state-save, interrupt, locality, and teardown fixes address those failures for both TPM 1.2 and TPM 2.0. Restore the driver to amd64 GENERIC and MINIMAL, where TPM entropy harvesting remained enabled. Enable the driver and entropy harvesting in the MPC85XX and QORIQ64 configurations, which already provide FDT, spibus, and the platform SPI controller required by FDT-attached TPMs. Leave the generic AIM and POWER configurations unchanged because they have no TPM attachment bus. The TPM 1.2 path completed repeated S3 cycles and command tests on ThinkPad T430 and T440p systems. The TPM 2.0 path completed repeated device and full-system suspend/resume cycles on a ThinkPad P51. The PowerPC configuration matrix was checked to retain tpm(4) only where its FDT SPI attachment path is present. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=291067 Reviewed by: kevans Tested by: Marek Zarychta <zarychtam_plan-b.pwste.edu.pl> (tpm1.2) Fixes: https://cgit.freebsd.org/src/commit/?id=16f8ea6a81b5 ("amd64: Remove tpm(4) from GENERIC for now") MFC after: 1 month Relnotes: yes Sponsored by: BBOX.io Differential Revision: https://reviews.freebsd.org/D59247
debug: classified in
03-filenames_plain1 by '['sys/amd64/',
'sys/powerpc/']'
move thermal shutdown arming to the admin poll this gives a more reasonable delay prior to the first attempt, and also allows us to retry and make the option runtime-tuneable via a new disable_thermal_arm sysctl Approved by: adrian (mentor) Reviewed by: adrian Differential Revision: https://reviews.freebsd.org/D59593 Signed-off-by: Nick Price <nprice@FreeBSD.org>
debug: classified in
03-filenames_plain1 by
'sys/dev/'
When interface is up and running 'kldunload if_iwx' stops the device and executes RUN -> INIT state transition. Since the device is already stopped iwx_run_stop fails to stop the device again and returns non-zero exit code from iv_newstate callback which triggers 'INIT state change failed' assertion. I reused IWX_FLAG_SHUTDOWN flag to: a) set it in iwx_detach b) check it in iwx_newstate_sub - when it is set all custom state transition logic is skipped Accidentally found while experimenting with iwlwifi / iwx drivers Reviewed by: adrian Differential Revision: https://reviews.freebsd.org/D59624
debug: classified in
03-filenames_plain1 by
'sys/dev/'
Chromebook keyboards driven by the ChromeOS EC emit the top-row action keys as scancode set 1 codes 0xE0 0x11 - 0xE0 0x1E (see the codeset 1 comments on the SCANCODE_* enum in chrome-ec include/keyboard_8042_sharedlib.h). The e0 half of the evdev_scancode2key() translation table leaves eleven of those at NONE, so on FreeBSD those keys emit no evdev event at all and userspace remappers such as keyd have nothing to bind to: e0 11 fullscreen KEY_ZOOM e0 12 overview KEY_SCALE e0 13 screenshot KEY_SYSRQ e0 14 brightness down KEY_BRIGHTNESSDOWN e0 15 brightness up KEY_BRIGHTNESSUP e0 16 privacy screen toggle KEY_PRIVACY_SCREEN_TOGGLE e0 17 kbd backlight down KEY_KBDILLUMDOWN e0 18 kbd backlight up KEY_KBDILLUMUP e0 1a play/pause KEY_PLAYPAUSE e0 1b mic mute KEY_MICMUTE e0 1e kbd backlight toggle KEY_KBDILLUMTOGGLE Fill those in. Only entries that were previously NONE are touched: the EC's remaining top-row codes already have mappings here (e0 10 prev track, e0 19 next track, e0 20 mute, e0 2e / e0 30 volume, e0 67 refresh, e0 69 forward, e0 6a back), as do e0 1c keypad enter and e0 1d right control, and none of them change. Signed-off-by: Kang Kang <kk1987@gmail.com> Tested on: Lenovo ThinkPad C14 Chromebook (Google primus, ChromeOS EC) Reviewed by: wulf MFC after: 2 weeks
debug: classified in
03-filenames_plain1 by
'sys/dev/'
The current interrupt path uses the IRQ resource value directly as the LPC SIRQ selector in TPM_INT_VECTOR and already restricts it to 1 through 15. This is a driver limitation: a parent interrupt number need not equal an LPC SIRQ channel, and SPI TPMs can use a separate parallel interrupt. On the reported system with ACPI IRQ 45, the existing range check runs after handler registration and returns before disabling firmware interrupt delivery. This can leave a polling device with a handler on an asserted source. Disable and verify interrupt delivery before registering a handler or starting common TPM services. Preserve the existing range policy, using polling without registering a handler for routes rejected by that check, and release their IRQ resources. Keep a failed setup's potentially stale output cookie out of the device state; the interrupt framework may already have removed that handler. Cancel timed-out locality requests in the shared request helper, covering both interrupt programming and commands. Permit attach after a locality timeout if the enable register proves delivery is already off, allowing later command recovery. If delivery remains enabled and cannot be quiesced, fail attach instead of exposing a device node for possible later recovery. Report this as a quiesce failure since locality acquisition as well as register programming can fail. On detach, publish dying and serialize with commands before quiescing TPM interrupt delivery. Do this for polling devices too, since firmware may have re-enabled delivery and resume-time quiescing may have failed. Quiesce before common release destroys the command lock and before removing any handler. Report hardware quiesce failure while completing software cleanup. Reported by: adrian Reviewed by: adrian, imp MFC after: 2 weeks Sponsored by: BBOX.io Differential Revision: https://reviews.freebsd.org/D59645
debug: classified in
03-filenames_plain1 by
'sys/dev/'
Add driver for Intel Power Management Controller (PMC) found on Sunrise Point PCH chipsets. This device exposes S0ix sleep state residency counters and power management status. Sysctls provided: dev.intelpmc.0.slp_s0_residency_us - Time in deepest sleep (us) dev.intelpmc.0.ltr_ignore - LTR ignore mask dev.intelpmc.0.pm_cfg - PM configuration register dev.intelpmc.0.pm_sts - PM status register dev.intelpmc.0.access_denied - Firmware lock status Supported devices for now: - Sunrise Point-LP (0x9D21) - Sunrise Point-H (0xA121) Note: Later PCH generations (Cannon Lake, Tiger Lake, ect.) have different PMC register layouts according to the datasheet and would need per-generation tables. I avoided adding untested hardware in case they have a quirk. Reviewed by: olce, adrian Differential Revision: https://reviews.freebsd.org/D54881
debug: Commit manually moved from "unknown" to "hardware".
Firmware expose a DSDT sized for the largest SKU of the platform, so a verbose boot prints an "ignored" line for every vacant processor slot. A vacant slot has no enabled MADT entry; a CPU that failed to come online does. Reviewed by: olce, adrian Differential Revision: https://reviews.freebsd.org/D59551
debug: classified in
03-filenames_plain1 by
'sys/dev/'
Network-related commands, library, and kernel.
As per RFC 3590 MLD Report and Done messages are permitted to use the
unspecified address as a source address (e.g. during duplicate address
detection for the first IPv6 address). Allow this, but only this.
Reported by: Alexander Leidinger <Alexander@Leidinger.net>
Reviewed by: bms
See also: OpenBSD, sashan <sashan@openbsd.org>, 60036e8507
Sponsored by: Rubicon Communications, LLC ("Netgate")
Differential Revision: https://reviews.freebsd.org/D59334
debug: classified in
03-filenames_plain1 by
'sys/netpfil/'
Revision 1.1212 of pf.c weakened the TCP reset check in stateful
connection tracking to let legitimate resets pass in the backwards
window. Such a reset is accepted only if its acknowledgment number
matches perfectly. But as a workaround for broken stacks, pf
replaces an acknowledgment number of 0 in a reset with the tracked
sequence of the peer. Then the perfect match always succeeds, and
an attacker can spoof resets more easily than intended. Use the
acknowledgment number from the wire, before the workaround has
modified it.
discovered by Minghao Zhang; OK sashan@
Obtained from: OpenBSD, bluhm <bluhm@openbsd.org>, 1e0a1f4b82
Sponsored by: Rubicon Communications, LLC ("Netgate")
debug: classified in
03-filenames_plain1 by
'sys/netpfil/'
when collecting necessary locks for the operation. The IPv6 version is already correct. Submitted by: Nick Price <nick spun.io> Fixes: https://cgit.freebsd.org/src/commit/?id=1dda8ba77a20d983774a3bf0e94c51c93f1d8758
debug: classified in
03-filenames_plain1 by
'sys/netinet/'
The syncache entry holds one TCPS_SYN_RECEIVED count that normally is transferred to the the newborn tp. Upon failure syncache_socket() shall not use TCPSTATES_INC/TCPSTATES_DEC (see 5050df3f4aa4 why). But when syncache_socket() fails in_pcbconnect(), it calls tcp_discardcb() to free resources that were just allocated by tcp_newtcpcb() and this tcp_discardcb() would do TCPSTATES_DEC(tp->t_state). The t_state is TCPS_CLOSED at this point. Make tcp_discardcb() symmetrical to tcp_newtcpcb() - not responsible for the TCPSTATES. Make the caller responsible for state count book keeping. Reviewed by: tuexen Fixes: https://cgit.freebsd.org/src/commit/?id=3703e1a73e0e0367c04f47f793e46495e46e647b Differential Revision: https://reviews.freebsd.org/D59325
debug: classified in
03-filenames_plain1 by
'sys/netinet/'
PF-administered priority need not impose an access VLAN. Permit the existing VLAN PCP attribute in either access or trunk mode, while keeping VLAN identifier and protocol access only. Display trunk PCP in ifconfig and document the broader meaning in the kernel snapshot, libifconfig, and rtnetlink contracts. This changes no attribute numbers, wire encoding, or structure layout. Reported by: kib Sponsored by: BBOX.io
debug: Commit manually moved from "unknown" to "network".
ND_OPT_ROUTE_INFO is 24, so an access of that index is technically out of bounds, though note that the per-option struct has an entry for this option. Fix the array size to appease -fsanitize=array-bounds. Reviewed by: pouria, glebius MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D59392
debug: classified in
03-filenames_plain1 by
'sys/netinet6/'
This fixes the build with gcc 16 after the changes to -Wunused*[0]. [0] https://gcc.gnu.org/gcc-16/porting_to.html#changes-to-wunused Reviewed by: cy MFC after: 3 days Sponsored by: The FreeBSD Foundation
debug: classified in
03-filenames_plain1 by
'sys/netpfil/'
This fixes the build with gcc 16 after the changes to -Wunused*[0]. [0] https://gcc.gnu.org/gcc-16/porting_to.html#changes-to-wunused Reviewed by: gallatin MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D59544
debug: classified in
03-filenames_plain1 by
'sys/net/'
sbuf_new_auto() sleeps, and ng_hci_default_rcvmsg() can run under the raw HCI socket pcb mutex held across NG_SEND_MSG_PATH(). Reported by: WITNESS Fixes: https://cgit.freebsd.org/src/commit/?id=ad91d47db306 Reviewed by: glebius, adrian Differential Revision: https://reviews.freebsd.org/D59550
debug: classified in
03-filenames_plain1 by
'sys/netgraph/'
This fixes the build with gcc 16 after the changes to -Wunused*[0]. [0] https://gcc.gnu.org/gcc-16/porting_to.html#changes-to-wunused Reviewed by: tuexen MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D59590
debug: classified in
03-filenames_plain1 by
'sys/netinet/'
bridge_pfil() returned a fragmentation failure without counting it, and bridge_fragment() dropped a chain on three allocation failures without counting those either. Count the first on the filtered interface and the others with ips_odropped, which is what ip_fragment() uses for the same failure and what bridge_fragment() already uses for its success case. Reviewed by: gallatin Differential Revision: https://reviews.freebsd.org/D59391 Assisted-by: Claude Code (Fable 5, Opus 5)
debug: classified in
03-filenames_plain1 by
'sys/net/'
iflib: Track queue datapath lifecycle Track whether iflib queue mappings may still be accessed by the device. Keep the state private to iflib and conservative: an unknown or failed device must pass through IFDI_STOP() before mappings are reused or released, while a device known to be stopped need not receive another hardware stop. Enter the starting state before IFDI_INIT(), publish running only after receive buffers and framework state are ready, and stop hardware if receive-buffer setup fails after driver initialization. Do not initialize an administratively-down interface merely because its MTU, capabilities, VLAN configuration, or media changed. Preserve successful retries for an administratively-up interface whose previous initialization failed. This state describes ownership of iflib datapath mappings only. It deliberately makes no claim about firmware queues, administrative DMA, PCI power state, or whether a driver can safely elide a hardware reset. Reviewed by: iflib (gallatin) MFC after: 2 weeks Sponsored by: BBOX.io Differential Revision: https://reviews.freebsd.org/D59328
debug: classified in
03-filenames_plain1 by
'sys/net/'
iflib: Own queue quiescence during power transitions Perform a terminal datapath stop before suspend and shutdown callbacks, then drain the private configuration taskqueue before entering low power. Track power state independently of queue ownership and prevent built-in admin, IOV, LED, and media-status callbacks from accessing a suspended device. Restore driver-specific state while the datapath remains stopped. Initialize it exactly once on resume when the interface is administratively up, and keep an administratively-down interface stopped. Roll back the driver when suspend or child suspension fails. Add ifdi_power_prepare() for policy which must be established before the terminal stop. Use it to snapshot ixgbe(4) wake policy and preserve X550EM PHY ordering, and remove the duplicate stop from aq(4). Reviewed by: iflib (gallatin) MFC after: 2 weeks Sponsored by: BBOX.io Differential Revision: https://reviews.freebsd.org/D59329
debug: Commit manually moved from "unknown" to "network".
iflib: Reject media changes during suspend iflib gates its built-in administrative and media-status callbacks once a power transition starts, but iflib_media_change() could still invoke a driver while the device was suspending or suspended. Several drivers perform PHY or firmware I/O directly from this callback. Return EBUSY before invoking IFDI_MEDIA_CHANGE() unless the device is active. ifmedia then restores the prior selection, avoiding both suspended hardware access and an unvalidated configuration that would need to be replayed during resume. Validated with device suspend on 82579LM, I210, and I225-IT controllers. Media-selection requests returned EBUSY on every suspended device. Resume restored the linked management interfaces at 1 Gbps with working traffic and no watchdogs; unconfigured interfaces retained their prior admin and link state. Reviewed by: iflib (gallatin) MFC after: 2 weeks Sponsored by: BBOX.io Differential Revision: https://reviews.freebsd.org/D59330
debug: classified in
03-filenames_plain1 by
'sys/net/'
Application may set sin_port to some value. Although this value is not used by SOCK_RAW, it breaks a check that the address is available. A perfect fix would be not use sockaddrs for ifaddrs, but that would be a bigger change. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=298366 Reviewed by: pouria, bnovkov, adrian Differential Revision: https://reviews.freebsd.org/D59570 Fixes: https://cgit.freebsd.org/src/commit/?id=948ad32ae1e0811f45e1d38f26636fefed5051f0
debug: classified in
03-filenames_plain1 by
'sys/netinet/'
Stuff in man section 8 (other than networking).
When an NSS backend returns a canonical pw_name or gr_name that differs from the lookup name supplied by the NFSv4 upcall, nfsuserd stores the successful mapping in the kernel cache under the canonical name instead of the requested name. This causes the retry lookup performed by nfsv4_strtouid() or nfsv4_strtogid() to miss the newly inserted cache entry, resulting in the default UID/GID being returned although the NSS lookup itself succeeded. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=296753 Reviewed by: rmacklem Tested by: Emanuel Helms <emanuel@nfv.cc> MFC after: 2 weeks
debug: classified in
04-filenames_plain2 by
'usr.sbin/'
This fixes the build with gcc 16 after the changes to -Wunused*[0]. [0] https://gcc.gnu.org/gcc-16/porting_to.html#changes-to-wunused Reviewed by: delphij MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D59543
debug: classified in
03-filenames_plain1 by 'sbin/'
This fixes the build with gcc 16 after the changes to -Wunused*[0]. [0] https://gcc.gnu.org/gcc-16/porting_to.html#changes-to-wunused Reviewed by: glebius MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D59541
debug: classified in
03-filenames_plain1 by 'sbin/'
This fixes the build with gcc 16 after the changes to -Wunused*[0]. [0] https://gcc.gnu.org/gcc-16/porting_to.html#changes-to-wunused Reviewed by: ken, imp MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D59540
debug: classified in
03-filenames_plain1 by 'sbin/'
loader: Allow this to compile w/o MD_IMAGE_SIZE defined Slight tweak to allow md.c to be compiled when MD_IMAGE_SIZE isn't defined. Sponsored by: Netflix Reviewed by: olivier, tsoome Differential Revision: https://reviews.freebsd.org/D59415
debug: classified in
03-filenames_plain1 by 'stand/'
loader: Small tweak to how md is configured Only the EFI loader supports the md devices (as the moment). Create LOADER_MD_SUPPORT and only try to compile md when that's true. For the moment, also allow it when only MD_IMAGE_SIZE is defined, but that will be dropped since LOADER_MD_SUPPORT is a superset. Sponsored by: Netflix Reviewed by: tsoome Differential Revision: https://reviews.freebsd.org/D59416
debug: classified in
03-filenames_plain1 by 'stand/'
loader: Move ramdisk export to md.c Move the common routine to md.c and use it where we do memdisks today. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D59417
debug: classified in
03-filenames_plain1 by 'stand/'
loader: Allow dynmaic creation of MD disks Augment the md device to allow creation of md devices. This is useful when UEFI doesn't support RamDisk and in other cases where we have a handy initrd-like image we want to use. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D59418
debug: classified in
03-filenames_plain1 by 'stand/'
loader: Use %u to print unsigned value Fixes: https://cgit.freebsd.org/src/commit/?id=7055aa7a070f Sponsored by: Netflix
debug: classified in
03-filenames_plain1 by 'stand/'
When someone has loaded a ram disk, that's a stronger hint about what to boot than the UEFI boot manager. Prefer it and rework a little the #ifdefs to reduce their number. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D59419
debug: classified in
03-filenames_plain1 by 'stand/'
Allow md devices like efi allows them. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D59420
debug: classified in
03-filenames_plain1 by 'stand/'
Some UEFI firmwares do not contain the RamDisk protocol. When this happens, load the file into a md disk instead. This is less desireable than the RamDisk (since that allows better chain-booting options), but sufficient to boot an image as a md device for FreeBSD. While most severs have the RamDisk protocol enabled in their builds, I have two IoT class boards from different manufacturers that do not. Since it works just fine with this fallback, that's preferable. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D59421
debug: classified in
03-filenames_plain1 by 'stand/'
Add parse_uri(), a helper for devices whose devspec can take a "[N]://host[:port][/path]" form in addition to the traditional "N:path" form. It returns EINVAL when devspec doesn't match that pattern, so a caller's own dv_parsedev can fall back to the traditional form. Un-static default_parsedev() so it can serve as that fallback. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D59422
debug: classified in
03-filenames_plain1 by 'stand/'
stand/efihttp: Support arbitrary http[N]://host[:port]/path devspecs Until now, the "http" device only worked when firmware itself booted loader.efi via EFI HTTP Boot: efihttp_dev_init() required a URI node on the loader's own boot device path, and every fetch went to that same server. Add a second form, using the parse_uri() helper from libsa/dev.c, that works anywhere: http[N]://host[:port]/path (N is a network interface unit, defaulting to 0). This lets a devspec like this be used as rootdev, in loader.conf, or interactively, independent of how loader.efi itself was booted. Network configuration is shared, loader-wide state (the myip/netmask/ gateip/nameip globals from net.h): if something has already configured them (e.g. tftp/nfs via net_open()), the http device just reuses those values, applying them to EFI_IP4_CONFIG2_PROTOCOL as a static address. If nothing has, it drives IP4Config2's own DHCP directly instead of calling netdev's net_open(): net_open() opens the NIC's SNP EFI_OPEN_PROTOCOL_EXCLUSIVE, which would disconnect the Mnp/Ip4/.../ HttpDxe driver chain this code depends on. That chain is also commonly disconnected already by whatever chained us here (e.g. iPXE excludes and exclusively opens SNP for its own raw I/O), so reconnect it explicitly with ConnectController() before giving up. The legacy EFI HTTP Boot path is untouched. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D59423
debug: classified in
03-filenames_plain1 by 'stand/'
loader.efi: Fix memory leak in efihttp_dev_close Save enough context to free the host we allocated in open on close. Fixes: https://cgit.freebsd.org/src/commit/?id=6788e42d53c6 Noticed by: claude + Sonet 5 Sponsored by: Netflix
debug: classified in
03-filenames_plain1 by 'stand/'
Request FreeBSD RFC 3925 PEM 2238 DHCP 125 option. Use suboption 1 to specify a ramdisk image to load and use to load the kernel and as the root file system. Differential Revision: https://reviews.freebsd.org/D59428 Sponsored by: Netflix
debug: classified in
03-filenames_plain1 by 'stand/'
Allow callers to obtain DHCP configuration without opening a network file, enabling loader.efi to discover an initmd URL before handing the interface back to firmware HTTP. Differential Revision: https://reviews.freebsd.org/D59429 Sponsored by: Netflix
debug: classified in
03-filenames_plain1 by 'stand/'
loader.efi: release SNP after network configuration Close the exclusively opened SNP protocol after loader networking finishes so the firmware network stack can reconnect the controller and service a subsequent HTTP request. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D59430
debug: classified in
03-filenames_plain1 by 'stand/'
loader.efi: download md images through file API Feed the existing decompressor from loader file descriptors as well as iPXE callbacks, allowing arbitrary HTTP filesystem URLs to become kernel-exportable memory disks. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D59431
debug: classified in
03-filenames_plain1 by 'stand/'
loader.efi: fetch initmd specified by DHCP Configure net0, read the DHCP-provided initmd URL, and download it through the file API so directly booted loader.efi can construct its root memory disk. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D59432
debug: classified in
03-filenames_plain1 by 'stand/'
loader.efi: download DHCP initmd specified image
When we haven't downloaded an image via mem{disk,cd} and ipxe, try any
image specified by the FreeBSD-specific initmd dhcp option. This allows
direct booting of loader.efi with a detached root ramdisk filesystem.
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D59433
debug: classified in
03-filenames_plain1 by 'stand/'
When we can't find root, we give the user a chance to drop to the boot loader OK prompt. We should eat the character that's pressed to not interfere with the interactive session. Sponsored by: Netflix
debug: classified in
03-filenames_plain1 by 'stand/'
Hitting <ESC> will now allow one to abort a (possibly mistaken) download. Sponsored by: Netflix
debug: classified in
03-filenames_plain1 by 'stand/'
mpsutil: Add Show Discovery command Prints the current discovry tables for the driver. Sponsored by: Netflix Assisted by: Claude (sonet-5) Differential Revision: https://reviews.freebsd.org/D58528
debug: classified in
04-filenames_plain2 by
'usr.sbin/'
mpsutil: Better naming form the discovery_status function It's really discovery_status_str(). Rename it and use open_memstream() to write the string so we don't have to play as many str* games. Fixes: https://cgit.freebsd.org/src/commit/?id=afb60897a15c Noticed by: claude + Sonet 5 (size error, bad fix ignored) Sponsored by: Netflix
debug: classified in
04-filenames_plain2 by
'usr.sbin/'
nvmecontrol: Add APST feature support Add -a, -d and -m options to the power subcommand to manage APST, along with additional status output when invoked without args. Signed-off-by: Alexey Sukhoguzov <sap@eseipi.net> Reviewed-by: imp
debug: classified in
03-filenames_plain1 by 'sbin/'
nvmecontrol: Fix APST transition encoding Use uin64_t casts to encode data sent to avoid overflows. Fixes: https://cgit.freebsd.org/src/commit/?id=35793364d722 Sponsored by: Netflix
debug: classified in
03-filenames_plain1 by 'sbin/'
nvmecontrol: Minor correctness issues Turn an assert into a bounds check to not overflow if the nvme drive reports too many power states (we validate the user input, but not the drive's identify data). Use a uint32_t instead of int for entry so right shift we do is defined. No functional changes. Fixes: https://cgit.freebsd.org/src/commit/?id=35793364d722 Noticed by: claude + Sonet 5 Sponsored by: Netflix
debug: classified in
03-filenames_plain1 by 'sbin/'
dhclient(8): Add support for IPv6-Only option (RFC 8925) Accept and validate the ipv6only option. When dhclient receives this option and IPv6 connectivity is available, stop the DHCP configuration process and wait for the duration specified by the option before restarting DHCP discovery. If the address was previously leased, disassociate it and send a DHCPRELEASE packet. Use netlink to check for IPv6 connectivity. Also, unregister ignored options from default PRL. Reviewed by: ziaee, kfv Tested by: Marek Zarychta <zarychtam@plan-b.pwste.edu.pl> Relnotes: yes Differential Revision: https://reviews.freebsd.org/D56637
debug: classified in
03-filenames_plain1 by 'sbin/'
dhclient(8): Fix dhcpack comment Restore a comment accidentally removed above dhcpack. Fixes: https://cgit.freebsd.org/src/commit/?id=37fd3fcaaf0e ("dhclient(8): Add support for IPv6-Only option (RFC 8925)")
debug: classified in
03-filenames_plain1 by 'sbin/'
loader.efi: Expose efi_devpath_get_mac to get mac This is a convenient way to test if a device path is a nic or not, so expose it to the world. Sponsored by: Netflix
debug: classified in
03-filenames_plain1 by 'stand/'
loader.efi: Only try to download md if we're netbooting The only possible time we could download the initmd that the dhcp server told us about is if we're netbooting. So only attempt to do that if the load device for loader.efi is a network. IF you are booting off disk and then need to snag an initmd off the network, that's a different path, and wouldn't need to necessarily do a dhcp exchange, except to get the IP address. Sponsored by: Netflix
debug: classified in
03-filenames_plain1 by 'stand/'
Sponsored by: Netflix
debug: classified in
03-filenames_plain1 by 'stand/'
GPT+ZFS+UEFI boots fine, but the manual guided wizard prevented it. MFC after: 3 days Reviewed by: imp, adrian Differential Revision: https://reviews.freebsd.org/D59603
debug: classified in
04-filenames_plain2 by
'usr.sbin/'
Utilize the ARCHLEVEL framework from libc/amd64/string to provide the way for runtime selection of the implementation, if wanted. Reviewed by: fuz, kfv Discussed with: kargl Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D59462
debug: classified in
04-filenames_plain2 by 'lib/'
When doing a basic `jls -n`, jls(8) will jailparam_get() the mac.label for every jail on the system using the same set of jailparams, and thus the same jp_value. We only init the mac_t the first time, so the first jail would populate it with `?` from /etc/mac.conf and the resulting jail_get(2) would clobber it with the empty string, then a second jail would try to pass the empty string to the kernel and fail because it must have a non-zero length. Fix it by invoking jps_get() every time. Drop some comments to note that jps_get() will be invoked with zero || garbage from previous call, and be sure that we don't leak our previous mac_t. There aren't any other jps_get implementations at this time, so this shouldn't cause any unexpected problems. Reported by: ivy Reviewed by: jamie Differential Revision: https://reviews.freebsd.org/D57280
debug: classified in
04-filenames_plain2 by 'lib/'
Reviewed by: fuz Approved by: fuz (mentor) MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D59553
debug: classified in
04-filenames_plain2 by 'lib/'
Replaced hardcoded jail parameter name strings in the base userland consumers with the JAIL_PARAM_* constants. No functional change. Reviewed by: jamie, adrian Differential Revision: https://reviews.freebsd.org/D59577
debug: classified in
05-summary-prefix by 'lib.*:'
This fixes rounding at the last bit for subnormals. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=298260 Reviewed by: kib MFC after: 1 week Differential revision: https://reviews.freebsd.org/D59579
debug: classified in
04-filenames_plain2 by 'lib/'
PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=298260 Reviewed by: kib MFC after: 1 week Differential revision: https://reviews.freebsd.org/D59579
debug: classified in
04-filenames_plain2 by 'lib/'
Event: EuroBSDcon 2026 Requested by: fuz Reviewed by: fuz, rmacklem Differential Revision: https://reviews.freebsd.org/D59588
debug: classified in
04-filenames_plain2 by 'lib/'
Required to prevent function-like macros with the same name from being expanded in the definitions once they become active in a later C mode. Without the parentheses, the macro would rewrite the declarator, and the file would consequently fail to compile. This style is already used for similar cases such as mempcpy(). Reviewed by: fuz Approved by: fuz (mentor) MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D59600
debug: classified in
05-summary-prefix by 'lib.*:'
Reviewed by: dteske, fuz Approved by: dteske (mentor), fuz (mentor) MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D59612
debug: classified in
04-filenames_plain2 by 'lib/'
Linux resolves a path below /proc/self/fd/N in the directory the
descriptor names, and linprocfs makes /proc/<pid>/fd a symlink to
/dev/fd. Under linrdlnk the fdescfs node carries only VV_READLINK,
which namei will not walk through, so such a path fails with ENOTDIR.
Return the underlying vnode from fdesc_lookup for a non-final component,
or a trailing slash, reusing the machinery the nodup option already
uses. The last component is untouched, so open("/dev/fd/N") keeps its
dup(2) semantic; a descriptor with no vnode behind it, such as a pipe,
yields ENOTDIR.
Add ATF coverage for traversal, descriptor reuse, and preservation of
last-component and mount-option semantics.
Approved by: adrian (mentor)
Reviewed by: kib, adrian
Differential Revision: https://reviews.freebsd.org/D59393
Signed-off-by: Nick Price <nprice@FreeBSD.org>
debug: Commit manually moved from "unknown" to "filesystems".
Kernel stuff (other than networking, filesystems, and drivers).
The vhci portion of the driver relies on usb(4) for both constants and functionality. Add an explicit dependency on usb(4) in `files.amd64` so it builds properly 100% of the time in a static kernel config. Reviewed by: seuros Differential Revision: https://reviews.freebsd.org/D59469
debug: classified in
04-filenames_plain2 by 'sys/'
Since the vp_crossmp vnode can leak into vn_vptocnp() calls due to nullfs file mounting, not all lock requests are non-sleeping. The requirement for the crossmp locking is that all lock requests should be shared. Then, it does not matter if the requests allow sleeping, since all locks are shared. Also, check the lock type by correctly masking it with LK_TYPE_MASK. Reported and tested by: pho Reviewed by: jah, markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D59468
debug: classified in
04-filenames_plain2 by 'sys/'
Reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D59349
debug: classified in
04-filenames_plain2 by 'sys/'
linuxkpi: Alias `sd` field of `struct kobject`
On Linux, a `struct kernfs_node *` pointer, representing a directory in
sysfs, is kept in the `sd` struct field.
We don't have that on FreeBSD because we use sysctls instead. Let's
alias the sysctl OID pointer to `sd` using an union.
This pointer is checked by the DRM drivers using:
if (var->kobj.sd) {
...
}
The amdgpu DRM driver started to use these checks in Linux 6.13.
Reviewed by: bz
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57586
debug: classified in
04-filenames_plain2 by 'sys/'
linuxkpi: Add `kthread_run_worker()` On Linux, `kthread_run_worker()` differs from `kthread_create_worker()` by waking up the task after creating it with `kthread_create_worker()`. On FreeBSD, we already execute it and wait for it, so probably no need to do anything further. Therefore, `kthread_run_worker()` is an alias to `kthread_create_worker()`. The DRM drivers generic code started to replace `kthread_create_worker()` by `kthread_run_worker()` as is in Linux 6.14. Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D57701
debug: classified in
04-filenames_plain2 by 'sys/'
linuxkpi: Update `struct vm_area_struct` when an existing mapping is extended
With Mesa 26 and DRM drivers in Linux 6.13, userspace will try to extend
an existing mmap, at last push the end address further.
Before this change, the mapping was not updated, but userspace would try
to access a page after the initial end address, leading to a panic
triggered by the following assertion in `vm_fault_populate()`:
MPASS(fs->first_pindex <= pager_last);
Reviewed by: bz
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D58195
debug: classified in
04-filenames_plain2 by 'sys/'
linuxkpi: Add `split_page()` This function is supposed to split large pages into an array of `PAGE_SIZE`-sized pages, with correct refcounting. This is apparently used to allow some drivers to free a part of a large page only. I don't think we use large pages in linuxkpi. Therefore, this new function is curently a no-op. The DRM drivers TTM memory manager started to use it in Linux 6.15. Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D58762
debug: classified in
04-filenames_plain2 by 'sys/'
Before this change, the assertion would not catch a page index matching the end address, even though the end address of a mapping is outside of that mapping. While here, add another assertion to catch page indexes outside of the expected range earlier. Also, pagefaulting an address outside of the mapping range should return `VM_FAULT_SIGBUS` instead of panicing. Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D58194
debug: classified in
04-filenames_plain2 by 'sys/'
The function converts a number of seconds since Epoch to a `struct tm`. The implementation was copied from `contrib/tzcode/localtime.c`. The amdgpu DRM driver started to use it in Linux 6.15. Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D58758
debug: classified in
04-filenames_plain2 by 'sys/'
`hrtimer_setup()` replaces `hrtimer_init()` in Linux 6.15. The API and the role are the same, except: * it takes the `function` callback as argument * if `function` is NULL, it assigns a default callback At the same time, we hide `hrtimer_init()` if LINUXKPI_VERSION is greater than or equal to 61500 because it was dropped in Linux 6.15. Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D58757
debug: classified in
04-filenames_plain2 by 'sys/'
The amdkfd driver requires the `tgid` to be a part of the `task_struct`. This patch introduces the `tgid` member to `task_struct`. Reviewed by: bz Sponsored By: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D58228
debug: classified in
04-filenames_plain2 by 'sys/'
This macro was moved from <drm/drm_util.h> to <linux/util_macros.h> in Linux 6.15. Submitted by: Sourojeet Adhikari Approved by: adrian, bz, emaste, seuros Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D57465
debug: classified in
04-filenames_plain2 by 'sys/'
jiffies64_to_msecs is used by kfd_process.c in the amd/amdkfd driver from Linux kernel 6.12. Submitted by: Sourojeet Adhikari Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D58075
debug: classified in
04-filenames_plain2 by 'sys/'
linuxkpi: Add device under parent, not under class
In `device_add()`, the function used to add the given device under its
class. This is used to build a sysctl tree. We ended up with devices or
"pseudo" devices (like the output connectors of a GPU). For example with
an output connector:
sysctl sys.class.drm.card0-DP-1
This device should be added under its parent if it has one. With this
fix, the same output connector is now:
sysctl sys.device.drmn1.card0.card0-DP-1
Reviewed by: bz
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55175
debug: classified in
04-filenames_plain2 by 'sys/'
linuxkpi: Add `pci_map_rom()` and `pci_unmap_rom()` They were already defined as macros in various places in DRM drivers, aliasing the `vga_pci_map_bios()` and `vga_pci_unmap_bios()` functions. Let's move them to linuxkpi and avoid copies everywhere. Because they use the `vga_pci` code internally, `pci_map_rom()` checks whether the given device is a video card. If it is not, it logs a "TODO" and returns NULL. Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D57573
debug: classified in
04-filenames_plain2 by 'sys/'
linuxkpi: Define `DEFINE_CLASS()` and `CLASS()` `DEFINE_CLASS()` is in fact named `LINUXKPI_DEFINE_CLASS()` because it conflicts with `DEFINE_CLASS()` defined in <sys/kobj.h>. This macro defines a type and a pair of constructor/destructor functions. They are to be used by `CLASS()`: this one declares a variable, initialise it with the constructor and set the `__cleanup()` attribute to call the destructor once the variable goes out of scope. The DRM drivers generic code started to use `CLASS()` in Linux 6.13. It requires the `fd` class to be defined in <linux/file.h>. Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D57583
debug: classified in
04-filenames_plain2 by 'sys/'
When DTrace catches a data abort exception it resumes execution on the next instruction. If a probe executes copyinto from unmapped memory, then dtrace_copy keeps faulting on successive bytes until the loop counter is exhausted. Detect the situation by witnessing the absence of zero-extension from an aborted unprivileged load. Reviewed by: markj MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D59341
debug: classified in
04-filenames_plain2 by 'sys/'
Userland jail managers hardcode jail parameter name strings; nothing in the headers has ever named them, even when sys/jail.h already has JAIL_META_PRIVATE/JAIL_META_SHARED for the metadata pair. Added JAIL_PARAM_* string constants for the static parameters registered by the base kernel. No functional change. MFC After: 1 week Reviewed by: jamie, adrian Differential Revision: https://reviews.freebsd.org/D59572
debug: classified in
04-filenames_plain2 by 'sys/'
The implementation comes from `isqrt64()` in `sys/cam/cam_iosched.c`. It is modified to take an `unsigned long` and return an `unsigned int`. The i915 DRM driver started to use it in Linux 6.15. Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D58251
debug: classified in
04-filenames_plain2 by 'sys/'
When READ CAPACITY fails, we call cam_periph_invalidate() for some hopeless ASC/ASCQ combinations and then fall through to test the cache state. This results in excess commands to the abandoned device that may take a while to timeout and/or report confusing errors. Instead, call daprobedone() when the periph is invalid to terminate the probe. Fixes: https://cgit.freebsd.org/src/commit/?id=d78d04b17cb24 Sponsored by: Netflix MFC After: 1 week Differential Revision: https://reviews.freebsd.org/D58524
debug: classified in
04-filenames_plain2 by 'sys/'
Apply de-morgan's law correctly to force only 4/2 to go to the invalidate stage for that ASC/ASCQ. Fixes: https://cgit.freebsd.org/src/commit/?id=d78d04b17cb24 Sponsored by: Netflix MFC After: 1 week Reviewed by: ali_mashtizadeh.com, mav Differential Revision: https://reviews.freebsd.org/D58525
debug: classified in
04-filenames_plain2 by 'sys/'
To be able to create other kinds of devctl notifications that don't flow through cam_periph_devctl_notify, refactor out the header / trailers we do and the sbuf life cycle management. No functional change. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D58526
debug: classified in
04-filenames_plain2 by 'sys/'
Report serial number, if available, otherwise report the path of the device invalidated. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D58527
debug: classified in
04-filenames_plain2 by 'sys/'
cam::periph:error, cam::{,a,n,sd}da:error
Trace the error evolution for I/O errors the periph encounters
cam::periph:recovery, cam::{,a,n,sd}da:recovery
Trace the result of the error sorting
cam::periph:invalidate
Trace device invalidations
cam::periph:hold-boot
cam::periph:release-boot
cam::xpt:hold-boot
cam::xpt:release-boot
Trace boot holds and releases at different levels
cam::xpt:bus-register
Trace new busses added
These additions allow fairly complete instrumentation of the discovery
process at boot through dtrace's anonymous tracing. It would be mildly
better to have the boot holds have the periph, but dtrace sbts have to
be static at compile time.
Sponsored by: Netflix
Reviewed by: dteske
Differential Revision: https://reviews.freebsd.org/D58523
debug: classified in
04-filenames_plain2 by 'sys/'
linux: implement prctl PR_{G,S}ET_THP_DISABLE
Since we don't have THP in FreeBSD, return that it's disabled. Linux
applications use this to get around the weird latency spikes THP in
Linux creates. Since FreeBSD superpages don't suffer from this issue,
just say it's disabled.
This removes the noisiest noise from the linux claude running on
FreeBSD.
Sponsored by: Netflix
debug: classified in
04-filenames_plain2 by 'sys/'
linux: LINUX_PR_SET_THP_DISABLE all non-zero values are disable Linux treats any nonzero value as "disable", so accept them all. Fixes: https://cgit.freebsd.org/src/commit/?id=a8a6eac57091 Sponsored by: Netflix
debug: classified in
04-filenames_plain2 by 'sys/'
Adding the `compat_ptr_ioctl` function for amdkfd support it's called by kfd_chardev.c Reviewed by: dumbbell Differential Revision: https://reviews.freebsd.org/D58076
debug: classified in
04-filenames_plain2 by 'sys/'
Add support for hierarchical softc layout so that a leaf class and each of its base classes owns a private softc region inside a single allocation. device_get_softc_class(dev, cls) returns a pointer to the softc that belongs to the requested class. The classic device_get_softc() still returns the leaf softc and remains fully compatible with existing drivers. Existing drivers are unaffected; they simply obtain a slightly larger softc block when they inherit from base classes. MFC after: 2 months Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D59115
debug: classified in
04-filenames_plain2 by 'sys/'
Linux executes irq_work callbacks from an interrupt context that provides implicit RCU read-side protection. LinuxKPI dispatches these callbacks through a taskqueue, so provide equivalent protection explicitly. This prevents an RCU grace period from completing while an irq_work callback is still using an RCU-protected object. Suggested by: wulf Tested by: JustAnotherHumanBeing Signed-off-by: JustAnotherHumanBeing <oleglelchuk@gmail.com> Pull Request: https://github.com/freebsd/freebsd-src/pull/2385
debug: classified in
04-filenames_plain2 by 'sys/'
bridge_pfil() pulled up min(m_pkthdr.len, max_protohdr) bytes. When the mapped head is shorter than that and followed by an unmapped (M_EXTPG) mbuf -- a sendfile(2) or KTLS segment from a member advertising IFCAP_MEXTPG -- m_pullup() ran into it and dereferenced a NULL mtod(), panicking the kernel. Pull up the Ethernet header first, and the SNAP/LLC header only for an 802.3 frame. This is similar to pf and ip_output(). m_pullup() and m_copyup() asserted only the first mbuf; assert inside both copy loops so the shape trips the check. Fixes: https://cgit.freebsd.org/src/commit/?id=c38abd64dbc1 ("if_epair: support IFCAP_MEXTPG") Suggested by: markj Reviewed by: markj, gallatin Assisted-by: Claude Code (Fable 5, Opus 5)
debug: classified in
04-filenames_plain2 by 'sys/'
This should be it for a while, but there will be another cycle of "glue" updates. I just found out that I'll need to create an alternate code path that uses a contigmalloc() blob instead of scatter/gather of pages, since some NICs cannot do the scatter/gather of pages well. This commit should not affect non-RDMA behaviour. MFC after: 3 months Fixes: https://cgit.freebsd.org/src/commit/?id=884ee8d6c9b4 ("nfscl: Add some glue for client side NFS over RDMA")
debug: classified in
04-filenames_plain2 by 'sys/'
This was a rather dumb miss on my part in commit 42442d7a6e.
LK_CANRECURSE is clearly needed in any case in which the covered vnode
is held exclusive across the call to VFS_ROOT(), regardless of whether
it was initially held exclusive or upgraded. The commit message for
that change also noted that unionfs lookup only worked without
LK_CANRECURSE due to a coincidence of the then-current unionfs
implementation. As it happens, said coincidence was recently removed
in commit b952606b4f ("unionfs_lock(): eliminate LK_CANRECURSE special-
case").
PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=298201
Reported by: olivier
Fixes: https://cgit.freebsd.org/src/commit/?id=42442d7a6e "Generalize the VV_CROSSLOCK logic in
vfs_lookup"
Reviewed by: kib, markj, pho
Tested by: pho
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D59494
debug: classified in
04-filenames_plain2 by 'sys/'
Align behavior between the Linux cancel_delayed_work_sync() function return value and the LinuxKPI equivalent. Linux cancel_delayed_work_sync() returns whether delayed work was pending, even if canceled before executing. This includes the case where the timer fired and work was queued but the callback had not yet started. The LinuxKPI version used the return value from taskqueue_cancel() as the return value of the public facing API, which inverted the behavior of two cases, violating the Linux API contract. Queued work which was removed before running would return false, and work whose callback was already executing would return true. Track the taskqueue pending count separately from the taskqueue_cancel() return value. Use the pending count for the public return value. Use taskqueue_cancel() return value only to decide whether state needs to be re-checked. This fixes behavior in consumers which use the return value of cancel_delayed_work_sync() to distinguish canceled pending work from work that was already running or idle. Signed-off-by: Ryan Fahy <ryan@rfahy.com> Reviewed by: wulf MFC after: 1 month Pull Request: https://github.com/freebsd/freebsd-src/pull/2268
debug: classified in
04-filenames_plain2 by 'sys/'
Rename the sendfile() function to kern_sendfile(), expand the arguments previously passed in struct sendfile_args, and extend with two function pointer arguments to copy in the header/trailer structure and the create uio's for the header and trailer as required. Use this to allow the removal of freebsd32_do_sendfile() which was a nearly identical duplicate of sendfile() with attendant maintenance cost. Reviewed by: kib, markj Effort: CHERI upstreaming Sponsored by: Innovate UK Differential Revision: https://reviews.freebsd.org/D59034
debug: classified in
04-filenames_plain2 by 'sys/'
The lock acquisition in g_raid3_ctl_insert() was improperly dropped a while ago, making it impossible to add or replace a device in an existing graid3. This went unnoticed because the tests are broken. MFC after: 1 week Fixes: https://cgit.freebsd.org/src/commit/?id=fcf69f3dbce6 ("Consistently use gctl_get_provider instead of home-grown variants.") Event: EuroBSDcon 2026 DevSummit Reviewed by: delphij Differential Revision: https://reviews.freebsd.org/D59563
debug: classified in
04-filenames_plain2 by 'sys/'
On Linux `dma_length` field of `struct scatterlist` is present on the
arches where DMA mapping code is able to coalesce adjacent segments
of physical address space. It contains total length of coalesced
segments while `length` field contains non-coalesced length of each
segment. On other arches `dma_length` is aliased to `length` field with
`sg_dma_len` macro. As FreeBSD does not merge scatterlist segments it
do not have `dma_length` field. It is appered that at least i915kms
driver depends on existence of `dma_length` field.
Add the field and disable it by default. To enable add to Makefile
.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64" || \\
${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "powerpc"
CFLAGS+= -DCONFIG_NEED_SG_DMA_LENGTH
.endif
Reported by: Ryan Fahy
Reviewed by: bz
MFC after: 1 month
GHI: https://github.com/freebsd/drm-kmod/issues/315
Differential Revision: https://reviews.freebsd.org/D59630
debug: classified in
04-filenames_plain2 by 'sys/'
The active LBA format's MS field was never examined. I/O to a metadata-formatted namespace carries neither interleaved metadata nor MPTR, so every command is malformed, yet the namespace attaches as a disk with the wrong sector size. Reviewed by: imp, adrian Differential Revision: https://reviews.freebsd.org/D59625
debug: classified in
04-filenames_plain2 by 'sys/'
Desktop AMIs have xrdp enabled and boot to a KDE desktop; they are as compatible as possible with EC2 Windows AMIs, setting a random password and printing it to the console in encrypted format to be retrieved using the EC2 GetPasswordData API. Two rc.d scripts are included in this commit which will not exist in the long term: ec2_addpass will become part of the ec2-scripts package, and ec2_desktop_extras will go away once its functionality is included elsewhere. MFC After: 1 month Relnotes: yes Sponsored by: Amazon
debug: classified in
02-filenames_wildcards by '['.*Makefile',
'release/.*']'
which makes the variable available for machine/Makefile.inc usage. Reviewed by: fuz, kfv Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D59462
debug: classified in
02-filenames_wildcards by
'.*Makefile'
Build with 1.5 * ncpu jobs instead of hardcoding 40. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D59515
debug: Commit manually moved from "unknown" to "build".
BEARSSL is disabled by default, add this here to make sure it doesn't break. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D59516
debug: Commit manually moved from "unknown" to "build".
Give the WITHOUT_LOADER_BIOS_TEXTONLY build its own log file.
debug: Commit manually moved from "unknown" to "build".
This module is intended to compile in its own directory. Therefore, the SYSDIR is not defined by default. See 0433870efefc. Fixes: https://cgit.freebsd.org/src/commit/?id=8e985774117d ("kern: Remove needless kern.opts.mk")
debug: classified in
02-filenames_wildcards by
'.*Makefile'
echo is a shell builtin, and always present. While ls usually works, some upgrade scenarios need to have ls be a build to to work correctly. Rather than add it as a build tool, use echo instead which is always safe because sh is a build tool. Sponsored by: Netflix
debug: classified in
02-filenames_wildcards by
'.*Makefile'
For consistency, create a symbolic link from mlx5en.4 to also if_mce.4 Reviewed by: ziaee, #manpages Event: EuroBSDCon 2026 Differential Revision: https://reviews.freebsd.org/D59610 MFC after: 3 days
debug: classified in
02-filenames_wildcards by
'.*Makefile'
This fixes the build with gcc 16's aggressive inlining. Reviewed by: ngie MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D59538
debug: classified in
02-filenames_wildcards by
'.*Makefile'
debug: Commit manually moved from "unknown" to "internal".
debug: classified in
03-filenames_plain1 by
'share/misc/bsd-family-tree'
I have been the de-facto maintainer for a few years now. Also mention the #scheduler group for reviews on Phabricator. Sponsored by: The FreeBSD Foundation
debug: classified in
03-filenames_plain1 by '['.github/',
'MAINTAINERS']'
These files are not about scheduling per se but about priority management, mostly from user space.
debug: classified in
03-filenames_plain1 by '['.github/',
'MAINTAINERS']'
Suggested by: des
debug: classified in
03-filenames_plain1 by
'.github/'
Check that wildcard bind(2) doesn't yet select a local address, and later connect(2) succeeds.
debug: classified in
02b-filenames_wildcards2 by
'tests\/.*'
Reviewed by: asomers MFC after: 3 days Sponsored by: The FreeBSD Foundation
debug: classified in
02b-filenames_wildcards2 by
'tests\/.*'
This fixes the build with gcc 16 after the changes to -Wunused*[0]. [0] https://gcc.gnu.org/gcc-16/porting_to.html#changes-to-wunused Reviewed by: markj MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D59542
debug: classified in
02b-filenames_wildcards2 by
'tests\/.*'
These exercise lookup traversal from tmpfs into unionfs, which is useful because, unlike UFS, tmpfs does not allow recursion on its vnode locks by default. unionfs22.sh exercises these lookups with a normal unionfs mount, while unionfs23.sh uses '-o below' for the unionfs mount and reproduces the panic described in PR 298201. Reviewed by: kib, markj, pho Tested by: pho Differential Revision: https://reviews.freebsd.org/D59494
debug: classified in
03-filenames_plain1 by
'tools/test/'
The script was passing the wrong device name to `graid3 insert` and didn't notice that the command was failing. MFC after: 1 week Event: EuroBSDcon 2026 DevSummit Reviewed by: delphij Differential Revision: https://reviews.freebsd.org/D59564
debug: classified in
02b-filenames_wildcards2 by
'tests\/.*'
Reviewed by: dteske, fuz Approved by: dteske (mentor), fuz (mentor) MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D59611
debug: classified in
03-filenames_plain1 by
'lib/libc/tests/'
These could go in other categories, but it's more clear if they're here instead.
debug: classified in 01-style
by '[sS]tyle'
debug: classified in 01-style
by '[wW]hitespace'
Fixes: https://cgit.freebsd.org/src/commit/?id=a22fa5ec74e0 ("laoder.efi: Fix error in download protcol") Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D59434
debug: classified in 01-style
by '[tT]ypo'
- s/ascic/ASCII/ MFC after: 3 days
debug: classified in 01-style
by '[tT]ypo'
- s/untill/until/ MFC after: 3 days
debug: classified in 01-style
by '[tT]ypo'
These files provide no value in the FreeBSD tree proper and change frequently, depending on what machine I generate the release tarball on (and what versions of autotools are on the host). Nuke the autogenerated files to avoid bloating commit history/the tree. MFC after: 3 days Requested by: Benjamin Jacobs <freebsd@dev.thsi.be>
debug: classified in
03-filenames_plain1 by
'contrib/'
This fixes the build with gcc 16 after the changes to -Wunused*[0]. [0] https://gcc.gnu.org/gcc-16/porting_to.html#changes-to-wunused Reviewed by: markj MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D59537
debug: classified in
03-filenames_plain1 by
'cddl/contrib/'
pkgbase splits programs and their tests into separate packages (e.g. unifdef/yacc/indent/file2c -> toolchain, jail -> jail, etc), while their tests always land in the generic tests package. Installing just the tests package therefore leaves these suites unable to find the binary they exercise, and they fail confusingly instead of skipping. Rather than force all packages to be installed for the tests package, make the tests cope with the missing packages. Add require.progs (or, for TAP/PLAIN-style suites with no atf_set hook: TEST_METADATA required_programs) for the binary under test in: bectl, certctl, ctfconvert, dhclient, file2c, indent, ipfw, jail, lastcomm, mixer, newsyslog, nvmecontrol, pfctl, praudit, sa, syslogd, tunefs, unifdef, yacc, ztest. I skipped adding data for all the binaries in the base runtime package for simplicity. Assisted-by: Claude Code (Sonnet 5) Sponsored by: Netflix Reviewed by: ngie Differential Revision: https://reviews.freebsd.org/D58262
debug: classified in
03-filenames_plain1 by
'contrib/'
Changes: https://github.com/eggert/tz/blob/2026d/NEWS MFC after: 3 days
debug: classified in
03-filenames_plain1 by
'contrib/'
tzcode: Update to 2026c MFC after: 1 week
debug: classified in
03-filenames_plain1 by
'contrib/'
libc/stdtime: Catch up with tzcode 2026d Fixes: https://cgit.freebsd.org/src/commit/?id=212e35249432 ("tzcode: Update to 2026c")
debug: classified in
04-filenames_plain2 by 'lib/'
debug: moved to contrib because
'Need to be grouped with
212e3524943222650688bd1f49d5eb4c9326de7f'
contrib/lutok: remove autotools and doxygen generated files These files provide no value in the FreeBSD tree proper and change frequently, depending on what machine I generate the release tarball on (and what versions of autotools are on the host). Nuke the autogenerated files to avoid bloating commit history/the tree. MFC after: 3 days Requested by: Benjamin Jacobs <freebsd@dev.thsi.be>
debug: classified in 00-reverts
by 'This reverts commit
\b([0-9a-fA-F]{40})\b'
Revert "contrib/lutok: remove autotools and doxygen generated files" I messed up the commit title. Redo it with a correct summary. This reverts commit 3dbe1800848ca71f5cc083f1d5c5b4759b601fae.
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.21 at 2026-10-05 16:54:58+00:00.
This work is supported by Tarsnap Backup Inc.
Alternate version: 2026-09-07 (release)